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产品介绍

_images/01mailun.png

​ 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产品介绍

_images/02B858.png

​ 智能平衡车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版本软件。

_images/p1shaoru.png

或者我们可以在balenaEtcher烧录工具的官方网站下载

下载地址:https://www.balena.io/etcher/

balenaEtcher烧录工具分为windows、macOs和linux系统。大家可以根据自身需求下载对应的系统软件。

_images/P2shaolu.png

烧录步骤:

  1. 打开balenaEtcher工具,点击[Select image]选择镜像所在路径 (注意:烧录时选择的镜像文件格式为.gz压缩文件,压缩文件不需要手动解压,烧录过程中会自行解压。)

  2. 点击[Select target]选择SD卡所接入的读卡器设备。

  3. 点击[Flash!] 进行烧录。

等待烧录完成之后,界面显示Flash Complete!,拔出我们烧录完成的SD卡,便可以直接插在小车上正常使用啦。

_images/P3shaolu.png

鲁班猫1S镜像的备份

首先我们要做的准备工作有:

含有镜像的SD卡、读卡器、安装了ubuntu环境的电脑。

备份步骤:

把含有镜像的卡用读卡器接到硬盘剩余空间大于30G的Ubuntu系统上,建议使用装有ubuntu系统的电脑,虚拟机备份存在备份失败的可能性。

备份过程为:

  1. 首先打开一个终端输入命令 “sudo fdisk -u –l” 查看SD卡所在磁盘分区;

  2. 在备份的路径目录下打开终端使用命令 “sudo -i”进入root模式准备备份

    例如我准备备份在/home 路径下

  3. 主目录下打开终端输入命令开始备份:

    sudo dd if=磁盘分区 | gzip > /home/镜像文件名.img.gz

例如我这里的SD卡所在磁盘分区为/dev/sdb,镜像文件名是RK3566_B585_11_29,镜像格式为.img.gz格式。

_images/P4beifen.png

    sudo dd if=/dev/sdb | gzip -c > /home/RK3566_B585_11_29.img.gz
  1. 备份过程可以新打开一个终端使用命令:

    _images/P5beifen.png

    sudo pkill -USR1 -n -x dd

查看一次当前进度,或者使用命令:

    sudo watch -n 5 pkill -USR1 -n -x dd 

定时5秒刷新一次当前进度。

备份完成后会弹出输入栏如下图所示:

_images/P6beifen.png

备份完成后的镜像文件

_images/P7beifen.png

这时便可以将备份的镜像文件直接用U盘直接拷贝出来进行其它操作使用了。

格式化SD卡

​ 使用读卡器将sd卡接入Windows系统,建议先使用软件进行格式化,软件下载链接如下:

下载链接: https://pan.baidu.com/s/1ELVMtkPIoxvnK0gRycUEEw

提取码: 42ev

_images/P8geshihua.png

然后使用cmd命令再次进行格式化,具体操作步骤如下:

  1. 在windows的cmd界面输入diskpart

  2. 查看磁盘: list disk

  3. 选中内存卡所在的磁盘(29GB 此处以disk 3为例) :select disk 3

  4. 输入清除命令: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地址

_images/P1shangshou.png

可得主机的IP地址是192.168.0.100,这是因为我们的ROS机器人配置为热点模式时已经固定好了IP地址。

主机端(ROS机器人).bashrc文件配置

在主机的.bashrc文件中,我们需要对主机及从机的IP地址进行配置,ROS_MASTER_URI为主机IP地址,只有主机可以启动roscore,而ROS_HOSTNAME需设置为当前设备(此处为主机)的IP地址,否则无法与其它设备进行ROS通信。.bashrc文件为隐藏文件,可使用Ctrl+H在文件管理器中显示隐藏文件或用文本编辑器编辑的方式查看,这里我们使用gedit方式打开

_images/P2shangshou.png

可查看得小车默认的.bashrc文件配置如下

_images/P3shangshou.png

因为将小车作为ROS主机,因此这里ROS_MASTER_URI与ROS_HOSTNAME均为小车默认固定的IP地址192.168.0.100,配置完.bashrc文件后,需要运行source .bashrc使更改生效:

_images/P4shangshou.png

注意source命令只对当前及后面打开的终端有效,如开启几个终端后再更改.bashrc文件时,需要对所有已打开的终端都运行一遍source命令或打开新的终端配置才会生效。

确认从机端(虚拟机)IP地址

当ROS主机发出热点由PC端虚拟机来进行连接时,虚拟机就作为从机,首先查看虚拟机IP地址:

_images/P5shangshou.png

虚拟机的IP地址为192.168.0.136,这是因为我们也对虚拟机的IP地址进行了固定。

从机端(虚拟机).bashrc文件配置

虚拟机.bashrc文件查看配置方式同ROS机器人

_images/P6shangshou.png

前面我们已经查看到主机端(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这一行内容后重新进行登录即可。

_images/P7shangshou.png

这里我们可以注意到,登录前终端的用户名为wheeltec_client,这代表的是虚拟机端

_images/P8shangshou.png

而登录后,终端用户名变为wheeltec,这代表我们已经成功登陆到小车端,可以在此运行小车工作空间的文件

_images/P9shangshou.png

SSH无法远程登录的解决方法

如果无法进行远程登录的话,有两种可能性:用户名错误或虚拟机配置错误。

我们小车的用户名是wheeltec,ssh登录指令为:ssh[空格]用户名@ROS主机IP地址,如果用户名错误或IP地址不对应都可能造成远程登录失败。

_images/P10shangshou.png

虚拟机配置错误的解决方法首先是查看虚拟机的网卡设置,首先我们可以在电脑连接网络处查看连接小车所使用的网卡,连接小车WiFi后点击属性

_images/P11shangshou.png

进入WiFi属性页面,在下方描述处可看到连接该WiFi所使用的网卡

_images/P12shangshou.png

进入虚拟机,在虚拟机左上角找到编辑,点击虚拟网络编辑器

_images/P13shangshou.png

对应的虚拟机选择桥接模式,并在下方“已桥接至”处选择正确的网卡

_images/P14shangshou.png

接着可以查看对应的虚拟机是否处于桥接模式,在左侧栏内右键选中使用的虚拟机,点击设置

_images/P15shangshou.png

选择网络适配器,右侧网络连接处选择桥接模式

_images/P16shangshou.png

设置为桥接模式后,才能进行远程登录。

NFS挂载

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

我们可以通过使用NFS挂载的方式将主机端的文件挂载到客户端(此处为从机端即虚拟机),实现在虚拟机对主机端的源码进行查看修改等。

在客户端(此处为虚拟机)运行命令行:

 sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot  /mnt

_images/P17shangshou.png

这里的命令行是将主机端的工作空间挂载到了/mnt路径下,因此我们要通过打开这个路径的方式来查看其中挂载的文件。查看挂载文件可以直接在虚拟机的文件系统进行查看,首先点击左侧的文件

_images/P18shangshou.png

点击其他位置,选择计算机进入系统根目录

_images/P21shangshou.png

进入根目录后,我们可以看到很多的文件夹,打开所挂载的mnt文件夹

_images/P19shangshou.png

进入mnt路径下,可以看到主机工作空间已经成功挂载,想要查看或修改功能包的源码可以查看其中的src文件夹

_images/P20shangshou.png

还可以使用Sublime Text编辑器查看主机端的文件,我们依旧是要在Sublime Text中打开mnt文件夹来查看主机端的文件,选择文件→打开文件夹,然后选择根目录下的mnt文件夹打开,我们就可以在Sublime Text中查看主机端的文件并做修改了。

_images/P22shangshou.png

产品功能操作说明

因为我们镜像默认设置为由ROS主控发出热点,PC端连接该热点来实现多机通信,所以下文中主机端为ROS主控端,即SSH登录后的终端,从机端为PC端虚拟机,即在虚拟机本地打开的终端。

视觉跟随功能(B585无视觉传感器,不支持此项)

_images/P30shangshou.png

视觉跟随是实现ROS机器人对目标颜色的物体进行跟随。

在主机端运行命令行:

   roslaunch simple_follower visual_follower.launch 

执行完命令之后,小车开始寻找目标物体。默认情况下,小车视觉跟随目标为红色物体,小车会通过目标物体的位置进行相关计算获得运动速度,从而实现对目标物体的跟随。

雷达跟随功能

_images/P31shangshou.png

雷达跟随功能利用激光雷达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

效果示例如下:

_images/P32shangshou.png

建图完成后,需对所建地图进行保存。

在主机端运行命令行:

   roslaunch turn_on_wheeltec_robot map_saver.launch

导航功能

2D导航功能通过激光雷达来实现SLAM导航,使用2D建图功能所保存地图来进行。

在主机端运行命令行:

   roslaunch turn_on_wheeltec_robot navigation.launch 

同样使用ROS中的可视化工具Rviz对导航效果进行查看,

在从机端(虚拟机)运行命令行:

   rviz

效果示例如下:

_images/P33shangshou.png

导航模式有两种:

一种是单点导航,点击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版本的安装教程链接:

链接:https://wiki.ros.org/melodic/Installation/Ubuntu

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)

_images/P1anzhuanpeizhi.png

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查看所有挂载的项目。

_images/P2anzhuanpeizhi.png

NFS客户端配置

挂载是在客户端(此处为从机端)实现的,因为客户端无法直接查看小车工作空间中的文件,需要通过NFS把服务端的文件挂载到客户端后,客户端才可以查看和编辑服务端的文件。NFS客户端只需要安装即可自动配置完成。

安装NFS客户端:

  sudo  apt-get  install  nfs-common 

NFS挂载使用

此处与前文6.7小节 NFS挂载部分内容一致,不再重复,可参照前文。

网络连接与静态IP配置

通常我们使用由ROS主控发出热点,PC端连接该热点的方式来实现多机通信的,即ROS主控作为主机,PC端作为从机。若要实现多机通信,就需要先进行网络连接设置与静态IP配置。

首先将机器人产品连接显示屏,在右上方找到WiFi图标,点击Edit Connection

_images/P3anzhuanpeizhi.png

点击左下角加号新建一个连接(另外,可以选中任一连接后点击减号,以删除所选连接,留下用户自己所需的连接)

_images/P4anzhuanpeizhi.png

新建连接类型选择WiFi

_images/P5anzhuanpeizhi.png

首先是WiFi选项卡,在SSID处设置WiFi名称,Mode处选择Hotspot创建热点

_images/P6anzhuanpeizhi.png

WiFi安全性选项卡中主要是设置加密类型和密码,用户可以自行选择,通常选用WPA&WPA2类型

_images/P7anzhuanpeizhi.png

IPv4选项卡主要是IP地址的设置,这里就是我们固定IP地址的地方,依次输入要设置的IP地址、子网掩码和网关

_images/P8anzhuanpeizhi.png

IPv6地址选择忽略后电机右下方保存,热点就创建完毕了

_images/P9anzhuanpeizhi.png

若想要切换到我们刚刚所创建的热点,依旧点击右上方WiFi图标,选择Disconnect

_images/P10anzhuanpeizhi.png

再点击connect to hidden Wi-Fi network

_images/P11anzhuanpeizhi.png

在connection处选择要连接的连接名,注意此处选择的不是WiFi名,是在刚刚创建窗口中最上方的connection name

_images/P12anzhuanpeizhi.png

点击连接后重新点击WiFi图标,可以看到已经连接到了刚刚所创建的热点

_images/P13anzhuanpeizhi.png

版权说明

1 本站所有源码归轮趣科技(东莞)有限公司所有。
2 源码不可以用于的其他商业用途(本公司销售的配套开发产品销售除外),不须授权。
3 轮趣科技(东莞)有限公司对所有代码功能不做任何保证,请使用者自行测试,后果自负。
4 如发现BUG或有优化,欢迎发布和提问至本公司论坛
  >本公司论坛地址:http://bbs.wheeltec.net/
6 使用本源码则相当于认同本版权说明。
7 如侵犯你的权利,请联系:wheeltec@wheeltec.net
8 保留所有文档所有权利。
9 一切解释权归轮趣科技(东莞)有限公司。