WHEELTEC ROS机器人与鲁班猫1S使用手册
轮趣说明
本站使用手册适用于鲁班猫1S,鲁班猫1S是由轮趣科技和野火联合推出的基于RK3566芯片的ROS开发板;22nm制程工艺,1.8GHz主频,集成四核64位Cortex-A55处理器,内置独立的NPU算力可达1TOPS,可用于轻量级人工名能应用。鲁班猫 18同时支持ubuntu18.04、ubuntu20.04系统,可流畅运行ROS 1、ROS 2等主流机器人操作系统。内存则有2GB或4GB LPDDR4X内存可选,提供与树莓派和Jetson nano类似的内存卡接口,可自行拓展存储空间,特别方便ROS机器人开发和镜像烧录备份。
本站由轮趣科技(东莞)有限公司撰写,本公司具有本网站的所有权。
WHEELTEC ROS 机器人产品介绍
麦轮车R550产品介绍
R550是轮趣科技面向ROS教育入门场景的旗舰产品,融合了轮趣科技7年底盘技术和3年的ROS视频教程积累,把教学性能、性价比、品质做到了非常理想的状态。R550提供了多种底盘可选和源码级的视频教程(非演示教程),搭载轮趣科技的战略伙伴提供的高性价比雷达和深度相机等配件,可满足建图导航、深度学习、3D视觉、机器人编队等方向的学习。提供技术支持,可以满足零基础入门和提高。
轮趣科技也为有需要的开发者们提供了配置好相应环境的开源镜像
麦轮车R550 ROS1镜像链接:
链接: https://pan.baidu.com/s/1TIbvILUxG0UG7X7Gv0B1fQ
提取码: xsax
R550 ROS2镜像链接:
链接:https://pan.baidu.com/s/1uxw4a6eRZPyh0qiLcA-AFg
提取码:s112
手册内容以ROS1使用及适配为主,ROS2使用请参照我司其他相关资料。
智能平衡车B585产品介绍
智能平衡车B585为轮趣科技经典产品平衡小车的高配版本,使用高性能平衡小车底盘,配备自有专利的GMR高精度编码器,兼容PID速度位置闭环控制学习,提供数学建模供开发者进行深入研究学习,同时具备姿态识别技术,可根据算法判断小车状态从而自动开启或关闭平衡系统,搭载激光雷达可实现避障跟随等功能,搭载ROS主控还可实现建图导航功能,可满足平衡控制方向开发者的使用需求。
该产品同样配备已配置好相应环境的开源镜像
智能平衡车B585 ROS1镜像链接:
链接: https://pan.baidu.com/s/1VGJLFjag2uLk5bjHNbpH-A
提取码: drpq
鲁班猫1S镜像的烧录
烧录准备:
Windows系统、需要烧录镜像的SD卡、读卡器
软件工具:
SD卡格式化工具、镜像烧录工具:balenaEtcher
首先我们要做的准备工作有:空的SD卡(如何格式化SD卡可参阅【4.格式化SD卡】)、读卡器(用3.0的读卡器会快很多也比较稳定)、32G/64G镜像文件(镜像可联系原购买渠道获取)。
我们现在最新版本的镜像文件是32G的,可使用32G/64G的SD卡进行烧录。使用的工具是balenaEtcher,关于它的获取我们提供了当前最新版的1.78版本软件。
或者我们可以在balenaEtcher烧录工具的官方网站下载
下载地址:https://www.balena.io/etcher/
balenaEtcher烧录工具分为windows、macOs和linux系统。大家可以根据自身需求下载对应的系统软件。
烧录步骤:
打开balenaEtcher工具,点击[Select image]选择镜像所在路径 (注意:烧录时选择的镜像文件格式为.gz压缩文件,压缩文件不需要手动解压,烧录过程中会自行解压。)
点击[Select target]选择SD卡所接入的读卡器设备。
点击[Flash!] 进行烧录。
等待烧录完成之后,界面显示Flash Complete!,拔出我们烧录完成的SD卡,便可以直接插在小车上正常使用啦。
鲁班猫1S镜像的备份
首先我们要做的准备工作有:
含有镜像的SD卡、读卡器、安装了ubuntu环境的电脑。
备份步骤:
把含有镜像的卡用读卡器接到硬盘剩余空间大于30G的Ubuntu系统上,建议使用装有ubuntu系统的电脑,虚拟机备份存在备份失败的可能性。
备份过程为:
首先打开一个终端输入命令 “sudo fdisk -u –l” 查看SD卡所在磁盘分区;
在备份的路径目录下打开终端使用命令 “sudo -i”进入root模式准备备份
例如我准备备份在/home 路径下
主目录下打开终端输入命令开始备份:
sudo dd if=磁盘分区 | gzip > /home/镜像文件名.img.gz
例如我这里的SD卡所在磁盘分区为/dev/sdb,镜像文件名是RK3566_B585_11_29,镜像格式为.img.gz格式。
sudo dd if=/dev/sdb | gzip -c > /home/RK3566_B585_11_29.img.gz
备份过程可以新打开一个终端使用命令:
sudo pkill -USR1 -n -x dd
查看一次当前进度,或者使用命令:
sudo watch -n 5 pkill -USR1 -n -x dd
定时5秒刷新一次当前进度。
备份完成后会弹出输入栏如下图所示:
备份完成后的镜像文件
这时便可以将备份的镜像文件直接用U盘直接拷贝出来进行其它操作使用了。
格式化SD卡
使用读卡器将sd卡接入Windows系统,建议先使用软件进行格式化,软件下载链接如下:
下载链接: https://pan.baidu.com/s/1ELVMtkPIoxvnK0gRycUEEw
提取码: 42ev
然后使用cmd命令再次进行格式化,具体操作步骤如下:
在windows的cmd界面输入diskpart
查看磁盘: list disk
选中内存卡所在的磁盘(29GB 此处以disk 3为例) :select disk 3
输入清除命令:clean
机器人产品上电注意事项
麦轮车R550注意事项
R550满电状态下为12.60V,可通过OLED屏幕查看电量,电量低于10V时无法对产品进行控制,建议电量低于10.5V时进行充电操作。
智能平衡车B585注意事项
B585满电状态下为12.60V,可通过OLED屏幕查看电量,电量低于11.1V时无法对产品进行控制,建议电量低于11.5V时进行充电操作。
因B585为平衡车产品,建议将平衡车置于平面后再开机操作,因为我们的平衡车产品开机就会进行姿态检测来保持平衡。
机器人与PC端建立多机通信操作说明
如果想通过PC端远程控制的方式实现ROS机器人产品的功能,我们就需要对产品和PC端进行多机通信配置,通常我们使用的方法是由ROS主控发出热点,PC端开启Windows虚拟机连接该热点来实现多机通信,即ROS主控作为主机,虚拟机作为从机。要实现多机通信,我们就需要确认主从机的ip地址,并在.bashrc文件中进行配置。主控与虚拟机的成品镜像已默认完成该部分配置,若使用我们所提供的成品镜像,可跳转到本节第4小节开始进行机器人功能使用。
虚拟机镜像链接:
链接: https://pan.baidu.com/s/1Wgghv7fsIopfga7iC4IxkA
提取码: 3kc5
确认主机端(ROS机器人)IP地址
由ROS主控发出热点时,ROS机器人为主机,首先需要使用ip a指令查看主机IP地址
可得主机的IP地址是192.168.0.100,这是因为我们的ROS机器人配置为热点模式时已经固定好了IP地址。
主机端(ROS机器人).bashrc文件配置
在主机的.bashrc文件中,我们需要对主机及从机的IP地址进行配置,ROS_MASTER_URI为主机IP地址,只有主机可以启动roscore,而ROS_HOSTNAME需设置为当前设备(此处为主机)的IP地址,否则无法与其它设备进行ROS通信。.bashrc文件为隐藏文件,可使用Ctrl+H在文件管理器中显示隐藏文件或用文本编辑器编辑的方式查看,这里我们使用gedit方式打开
可查看得小车默认的.bashrc文件配置如下
因为将小车作为ROS主机,因此这里ROS_MASTER_URI与ROS_HOSTNAME均为小车默认固定的IP地址192.168.0.100,配置完.bashrc文件后,需要运行source .bashrc使更改生效:
注意source命令只对当前及后面打开的终端有效,如开启几个终端后再更改.bashrc文件时,需要对所有已打开的终端都运行一遍source命令或打开新的终端配置才会生效。
确认从机端(虚拟机)IP地址
当ROS主机发出热点由PC端虚拟机来进行连接时,虚拟机就作为从机,首先查看虚拟机IP地址:
虚拟机的IP地址为192.168.0.136,这是因为我们也对虚拟机的IP地址进行了固定。
从机端(虚拟机).bashrc文件配置
虚拟机.bashrc文件查看配置方式同ROS机器人
前面我们已经查看到主机端(ROS机器人)默认热点IP地址为192.168.0.100,同时虚拟机静态IP地址默认固定为192.168.0.136,ROS_MASTER_URI为主机IP地址,因此设置为192.168.0.100,而ROS_HOSTNAME为当前设备的IP地址,即虚拟机IP地址192.168.0.136。
SSH登录
输入远程登录指令ssh -Y wheeltec@192.168.0.100,这里-Y的目的是远程运行图形应用,如果不需要运行图形应用也可以不加-Y。在SSH登录时,我们可能会碰到图中显示的问题,这是由于当前使用的主控与之前所远程登录使用的主控不同,只需要复制终端所提示的ssh-keygen这一行内容后重新进行登录即可。
这里我们可以注意到,登录前终端的用户名为wheeltec_client,这代表的是虚拟机端
而登录后,终端用户名变为wheeltec,这代表我们已经成功登陆到小车端,可以在此运行小车工作空间的文件
SSH无法远程登录的解决方法
如果无法进行远程登录的话,有两种可能性:用户名错误或虚拟机配置错误。
我们小车的用户名是wheeltec,ssh登录指令为:ssh[空格]用户名@ROS主机IP地址,如果用户名错误或IP地址不对应都可能造成远程登录失败。
虚拟机配置错误的解决方法首先是查看虚拟机的网卡设置,首先我们可以在电脑连接网络处查看连接小车所使用的网卡,连接小车WiFi后点击属性
进入WiFi属性页面,在下方描述处可看到连接该WiFi所使用的网卡
进入虚拟机,在虚拟机左上角找到编辑,点击虚拟网络编辑器
对应的虚拟机选择桥接模式,并在下方“已桥接至”处选择正确的网卡
接着可以查看对应的虚拟机是否处于桥接模式,在左侧栏内右键选中使用的虚拟机,点击设置
选择网络适配器,右侧网络连接处选择桥接模式
设置为桥接模式后,才能进行远程登录。
NFS挂载
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
我们可以通过使用NFS挂载的方式将主机端的文件挂载到客户端(此处为从机端即虚拟机),实现在虚拟机对主机端的源码进行查看修改等。
在客户端(此处为虚拟机)运行命令行:
sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt
这里的命令行是将主机端的工作空间挂载到了/mnt路径下,因此我们要通过打开这个路径的方式来查看其中挂载的文件。查看挂载文件可以直接在虚拟机的文件系统进行查看,首先点击左侧的文件
点击其他位置,选择计算机进入系统根目录
进入根目录后,我们可以看到很多的文件夹,打开所挂载的mnt文件夹
进入mnt路径下,可以看到主机工作空间已经成功挂载,想要查看或修改功能包的源码可以查看其中的src文件夹
还可以使用Sublime Text编辑器查看主机端的文件,我们依旧是要在Sublime Text中打开mnt文件夹来查看主机端的文件,选择文件→打开文件夹,然后选择根目录下的mnt文件夹打开,我们就可以在Sublime Text中查看主机端的文件并做修改了。
产品功能操作说明
因为我们镜像默认设置为由ROS主控发出热点,PC端连接该热点来实现多机通信,所以下文中主机端为ROS主控端,即SSH登录后的终端,从机端为PC端虚拟机,即在虚拟机本地打开的终端。
视觉跟随功能(B585无视觉传感器,不支持此项)
视觉跟随是实现ROS机器人对目标颜色的物体进行跟随。
在主机端运行命令行:
roslaunch simple_follower visual_follower.launch
执行完命令之后,小车开始寻找目标物体。默认情况下,小车视觉跟随目标为红色物体,小车会通过目标物体的位置进行相关计算获得运动速度,从而实现对目标物体的跟随。
雷达跟随功能
雷达跟随功能利用激光雷达360°实时扫描特性,寻找周围可检测到的最近的物体,并对其进行跟随。
在主机端运行命令行:
roslaunch simple_follower laser_follower.launch
雷达跟随启动后,小车会不断寻找雷达扫描范围内距离最近的目标,之后找到一个距离最近且合理的目标进行跟随,最终与被跟随物保持适当的距离(即所设置的中距值),车头正对被跟随物体(即小车与被跟随物体之间夹角为0°)。
建图功能
2D建图功能通过激光雷达来实现SLAM建图,扫描所得地图为2D平面效果。
该功能需要开启两个远程登录到主机端的终端。
在主机端运行命令行:
roslaunch turn_on_wheeltec_robot mapping.launch
可通过多种控制方式控制机器人移动完成建图,此处以ROS键盘控制方式为例:
在主机端运行命令行:
roslaunch wheeltec_robot_rc keyboard_teleop.launch
使用ROS中的可视化工具Rviz可对建图效果进行查看,
在从机端(虚拟机)运行命令行:
rviz
效果示例如下:
建图完成后,需对所建地图进行保存。
在主机端运行命令行:
roslaunch turn_on_wheeltec_robot map_saver.launch
导航功能
2D导航功能通过激光雷达来实现SLAM导航,使用2D建图功能所保存地图来进行。
在主机端运行命令行:
roslaunch turn_on_wheeltec_robot navigation.launch
同样使用ROS中的可视化工具Rviz对导航效果进行查看,
在从机端(虚拟机)运行命令行:
rviz
效果示例如下:
导航模式有两种:
一种是单点导航,点击rviz上方2D Nav Goal按键,然后在地图中选定导航点与方向,单击鼠标确定导航目标点位置,并且不要松开,继续拖动选择导航目标方向,确定后松手,小车就会运动到所指定的目标点,在运行rviz的终端也会显示目标点的坐标;
另一种是多点导航,点击rviz界面上方的Publish Point设置用于多点导航的点,当设置多个点时,小车会在这几个点之间往复运动,注意使用Publish Point工具进行多点导航时,所设置的导航点默认方向都是小车的初始车头方向。
如何在原始环境上安装ROS
如开发者有自行配置ROS开发环境的需求,可以使用我们所提供的原始镜像进行配置,镜像信息如下:
轮趣-鲁班猫1S Ubuntu18原始镜像——
链接:https://pan.baidu.com/s/1NjZseZePQz70N1KIAuAqhQ
提取码:c3y1
Ubuntu版本:18.04
用户名:wheeltec 密码:dongguan
ROS安装方式可参考官方wiki页面所提供的教程,此处仅列出ubuntu环境下ROS melodic版本的安装教程链接:
NFS远程挂载配置
NFS服务端配置
首先需要服务端将自己的文件挂载出来,然后才能被客户端访问。以下的步骤都是在服务端(ROS主机)执行。
A.安装NFS服务端:
sudo apt-get install nfs-kernel-server
B.添加NFS共享目录(要挂载的文件夹):
sudo vim /etc/exports
在文末添加以下指令后保存退出,这个指令前面是要挂载的文件路径,*表示允许任何网段IP的系统访问该NFS目录。
/home/wheeltec/wheeltec_robot *(rw,sync,no_root_squash)
C.给挂载的目录设置权限以及修改文件用户:
sudo chmod -R 777 /home/wheeltec/wheeltec_robot
sudo chown -R 777 /home/wheeltec/wheeltec_robot
因为“wheeltec_robot”文件夹有子文件夹,在命令中添加“-R”是说明命令的作用域包括该文件夹和其包括的全部子文件夹。
D.启动NFS:
第一次开启NFS时,需要先启动NFS再重启NFS。
sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/nfs-kernel-server restart
接下来检查服务端有没有配置、开启成功:
E.挂载NFS:
将本地的/home/wheeltec/wheeltec_robot路径挂载到本地/mnt路径下,“192.168.0.100”是服务端的IP地址。
sudo mount -t nfs -o nolock 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt
F.查看是否挂载成功:
可以直接打开/mnt目录查看里面的内容是否/home/wheeltec/wheeltec_robot目录相同,或者直接使用指令df -h查看所有挂载的项目。
NFS客户端配置
挂载是在客户端(此处为从机端)实现的,因为客户端无法直接查看小车工作空间中的文件,需要通过NFS把服务端的文件挂载到客户端后,客户端才可以查看和编辑服务端的文件。NFS客户端只需要安装即可自动配置完成。
安装NFS客户端:
sudo apt-get install nfs-common
NFS挂载使用
此处与前文6.7小节 NFS挂载部分内容一致,不再重复,可参照前文。
网络连接与静态IP配置
通常我们使用由ROS主控发出热点,PC端连接该热点的方式来实现多机通信的,即ROS主控作为主机,PC端作为从机。若要实现多机通信,就需要先进行网络连接设置与静态IP配置。
首先将机器人产品连接显示屏,在右上方找到WiFi图标,点击Edit Connection
点击左下角加号新建一个连接(另外,可以选中任一连接后点击减号,以删除所选连接,留下用户自己所需的连接)
新建连接类型选择WiFi
首先是WiFi选项卡,在SSID处设置WiFi名称,Mode处选择Hotspot创建热点
WiFi安全性选项卡中主要是设置加密类型和密码,用户可以自行选择,通常选用WPA&WPA2类型
IPv4选项卡主要是IP地址的设置,这里就是我们固定IP地址的地方,依次输入要设置的IP地址、子网掩码和网关
IPv6地址选择忽略后电机右下方保存,热点就创建完毕了
若想要切换到我们刚刚所创建的热点,依旧点击右上方WiFi图标,选择Disconnect
再点击connect to hidden Wi-Fi network
在connection处选择要连接的连接名,注意此处选择的不是WiFi名,是在刚刚创建窗口中最上方的connection name
点击连接后重新点击WiFi图标,可以看到已经连接到了刚刚所创建的热点
版权说明
1 本站所有源码归轮趣科技(东莞)有限公司所有。
2 源码不可以用于的其他商业用途(本公司销售的配套开发产品销售除外),不须授权。
3 轮趣科技(东莞)有限公司对所有代码功能不做任何保证,请使用者自行测试,后果自负。
4 如发现BUG或有优化,欢迎发布和提问至本公司论坛
>本公司论坛地址:http://bbs.wheeltec.net/
6 使用本源码则相当于认同本版权说明。
7 如侵犯你的权利,请联系:wheeltec@wheeltec.net
8 保留所有文档所有权利。
9 一切解释权归轮趣科技(东莞)有限公司。