北京智能佳科技有限公司
www.bjrobot.com 010-82488500 1
TurtleBot3 burger(汉堡)ROS平台
用户使用手册
版 本:0.3.3
修订日期:2019/06/05
作 者:北京智能佳科技有限公司
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 2
修订历史记录
版本 时间 说明
0.2.1 2017/12/06 增加 burger机器人网络配置说明
0.2.2 2017/12/06 增加 burger仿真功能的说明
0.2.3 2017/12/27 更名为《TurtleBot3 burger(汉堡)ROS平台
用户使用手册》
02.4 2018/08/07 修改了部分编辑错误,增加了 FAQ问答章节
0.2.5 2018/10/12 对国内源进行了补充说明,修改了部分错误
0.2.6 2019/01/22 对 360激光传感器作了补充说明,增加了在非
管理员权限下使用 openCR串口的方法
0.3.0 2019/01/28 增加 TB3进阶应用教程
0.3.1 2019/04/24 修改没有 root权限对 openCR操作的方法
0.3.2 2019/05/23 增加 arduino下载程序的方法
0.3.3 2019/06/05 增加 openCR固件修复方法
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 3
目录
汉堡(树莓派)系统安装.............................................................................. 71.镜像(.img)下载:...........................................................................................72.制作 Linux启动盘(SD卡)............................................................................ 93.系统安装............................................................................................................104.网络配置............................................................................................................11
Ubuntu16.04系统镜像制作.......................................................................... 12
在笔记本上安装 Ubuntu系统(Ubuntu16.04).........................................15
ROS安装........................................................................................................161. 版本选择..........................................................................................................162. 软件中心配置..................................................................................................163. 添加源..............................................................................................................174. 安装 ROS.........................................................................................................176. 初始化 ROS.....................................................................................................177. 安装 rosinstall.................................................................................................. 178. 初始化环境变量:.............................................................................................189. 测试 ROS.........................................................................................................1810. USB设置........................................................................................................18
OpenCR软件配置..........................................................................................211.编译器设置........................................................................................................212.安装 Arduino IDE................................................................................................213.运行 Arduino......................................................................................................214.从 Boards Manager 安装 OpenCR1.0包...........................................................225.端口设置............................................................................................................246.下载机器人 openCR 默认固件......................................................................... 247. openCR 固件修复............................................................................................. 25
开始使用.........................................................................................................271.启动 Turtlebot3.................................................................................................. 272.启动 Turtlebot-burger........................................................................................ 273.运行 RViz...........................................................................................................27
远程控制.........................................................................................................291.说明....................................................................................................................292.方法....................................................................................................................29
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 4
3.结果....................................................................................................................29
SLAM..............................................................................................................301.说明....................................................................................................................302通过远程操作创建地图....................................................................................303.将地图保存到文件............................................................................................30
导航.................................................................................................................311.说明....................................................................................................................312.准备....................................................................................................................313.开始导航............................................................................................................31
仿真.................................................................................................................331.安装 TurtleBot3 Simulation...............................................................................332.启动仿真............................................................................................................333.Gazebo仿真.......................................................................................................34
TB3进阶应用教程........................................................................................ 381. 应用(障碍检测)..........................................................................................382. 应用(定点导航)..........................................................................................393. 应用(固定线路巡逻)..................................................................................404. 应用(自动泊车)..........................................................................................415. windows远程桌面控制................................................................................... 436. 应用(安卓 APP控制).................................................................................467. 更新源代码......................................................................................................47
FAQ.................................................................................................................48
专有名词解释.................................................................................................49
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 5
重要信息
注意:在安装机器人之前必须先看电子文档,如果由于不看文档
造成接线出现问题一律不再报修范围内;智能佳不对用户因疏忽或误
用产品而导致的任何损失或损害负责。
请在开始之前请仔细阅读电子使用说明文档。
1.严格按照说明手册以及官方网站的网页教程操作;
教程网址 1: http://www.rosrobot.cn/
教程网址 2:http://emanual.robotis.com/docs/en/platform/turtlebot3/overview/
2.在接线的时候要断电操作,要反复确认,确保接线(电源线)正确,
电源正负正确,因接线问题造成机器人损害不在报修范围内。
3. 只能使用套件中包含的电池和充电器。电池一个月最少要充电一
次,长时间搁置导致电池过放而不能正常使用也不再报修范围内。
4.当机器人运行时,理清线路,谨防无意间拖拽机器人造成机器人损
坏。
5.请勿将机器人放置在靠近水源,热源或火源的地方。
6.冬天容易产生静电,在接触控制板时一定先去除静电,如果由于静
电作用造成损坏也不在报修范围之内。
7.文档中或官方网站教程中未提及的做法,要提前询问相关技术人
员,谨慎操作。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 6
安装注意事项
上电前一定要反复确认正负极是否正确,如果接反,树莓派板子
就报废了。这个不在报修范围内,请谨慎操作!
2.连接 wifi操作步骤:
1):输入以下命令:
cd /etc/wpa_supplicant/
ls
wpa_passphrase 你的 wifi名字 你的 wifi密码 >wpa_supplicant.conf
ls
解释:
切换到/etc/wpa_supplicant/目录下
ls查看当前文件夹下的文件
写入 wifi配置文件
ls 再次查看目录,发现已经增加 wpa_suppliact.conf文件
2):重启
3)点击右上角的 wifi连接,点击 wifi,输入密码,回车即可。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 7
汉堡(树莓派)系统安装
1.镜像(.img)下载:
就 burger而言,树莓派需安装 Linux操作系统,其中,SD卡(默认 8G)是
作为启动磁盘。
安装系统版本:Ubuntu MATE(笔者安装:Ubuntu MATE 16.04.2) 下载地址:https://ubuntu-mate.org/download/ 如图:1.打开下载链接:https://ubuntu-mate.org/download/
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 9
2.制作 Linux启动盘(SD卡)
准备:制作工具Win32DiskImager
安装:
1. 解压上述下载的操作系统镜像压缩文件,得到 img镜像文件。
2. .将 SD使用卡托或者读卡器后,连上电脑。
3. 解压并运行 win32diskimager工具。
4. 在软件中选择系统镜像(img文件),“Device”下选择 SD的盘符,然后选择
“Write”,期间出现对话框选择是。
5.等待写入进程,安装过程可能有些慢,根据你 SD卡的速度而定的。等到出现
对话框 write successful就说明成功了。
这样,Linux系统启动盘就做好了。
6.将 SD卡插入树莓派 3的 SD卡槽内。
7.树莓派主板上电,即可进入系统安装。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 10
3.系统安装
1. 设置系统使用的语言,选择简体(中文)。
2. 设置WiFi,可以在后面设置也是一样的。
选择您要连接的 wifi,输入相应的密码,这样在后期的系统安装过程中会利
用网络的资源。
3. 设置时区。
选择一个时区,用鼠标在地图上点击一个位置就可以。
4. 等待之前的设置完成。
5.选择键盘布局,点击,继续。
6.创建用户名和密码,并牢记(后面会用到)。
7. 系统的安装占用了很多的空间,如果需要添加更多的功能需要增加 TF 卡的容
量。后面尝试添加一些应用。
温馨提示:系统安装完毕,大概就剩下 3.9G。安装完 ROS之后,大概会剩下 1.2G,内存且用且珍惜。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 11
4.网络配置
为了实现 Turblebot3和电脑,Turblebot3之间的相互通信,需要获取远程 PC和 Turblebot3的 IP 地址。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 12
Ubuntu16.04系统镜像制作
准备:UltraISO软件(如果只是为了制作启动优盘,可以使用未注册版本。)
镜像:Ubuntu16.04.03-desktop-adm64.isoU盘:8G以上(包含 8G) 打开 UltraISO
UltraISO主界面如下:
打开 ISO文件
选择菜单文件>>打开,弹出打开 ISO文件对话框
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 13
选择镜像文件并单击打开按钮,打开 ISO 文件
写入硬盘镜像
选择菜单文件>>打开,弹出写入硬盘镜像对话框
选择硬盘驱动器和写入方式,然后点击写入按钮,等待完成即可。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 15
在笔记本上安装 Ubuntu系统(Ubuntu16.04)
1.插入 Ubuntu16.04启动 U盘,重启笔记本电脑(64位),开机后,按 F12键(联想笔记本,其他的可以查询 U盘启动快捷键),进入 Ubuntu安装界面,
选择第二个选项:安装 Ubuntu。2.进入准备安装 Ubuntu界面后将“安装 Ubuntu时下载更新”、“为图形或无线
硬件…..”前面打上对勾。
3.进入安装类型界面,选择“其他类型”,点击“继续”点击“创建新分区表”继续
选择产生的空闲分区
点击的“+”创建 4个主要的基础分区
创建/分区:
>5G 主分区 空间起始位置 Ext4日志文件系统 /创建 swap分区:
2048MB 逻辑分区 空间起始位置 交换空间
创建 boot分区:
200MB 逻辑分区 空间起始位置 Ext4日志文件系统 /boot创建 home分区:剩余的空间 逻辑分区 空间起始位置 Ext4日志文件系统 /home还可创建自己的其他分区如/123分区 只要设置为逻辑分区、空间起始位置、Ext4日志文件系统
4.修改“安装启动引导器的设备”选择/boot分区(/dev/sda6)点击“现在安装”继续
选择时区
继续
选择键盘布局(使用默认)
继续
5. 创建用户(计算机名日后可改)
密码要复杂
密码为登录密码请务必牢记
继续
6. 开始安装,等待…………7.安装完成后重启。
8.Ubuntu系统安装完成。
镜像源:http://mirror.pnl.gov/releases/xenial/
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 16
ROS安装
1.版本选择
ROS是运行在 Linux 之上的,所以首先您的电脑和机器人(汉堡/华夫饼)
首先得有 Linux环境,之前的 ubuntu系统的安装都是为此做准备的。Ubuntu是对 ROS支持最好的。
Ubuntu 和 ROS 都是存在不同的版本,而且 ROS各个版本之间互不兼容,
所以每一个 ROS 版本都对应着一个或两个对应的 Ubuntu 版本。
ROS发布日期 ROS版本 对应 Ubutnu版本
2016.3 ROS Kinetic Kame Ubuntu 16.04 (Xenial) /Ubuntu 15.10 (Wily)
2015.3 ROS Jade Turtle Ubuntu 15.04 (Wily) /Ubuntu LTS 14.04 (Trusty)
2014.7 ROS Indigo Igloo Ubuntu 14.04 (Trusty)注:ubuntu14.04版本装 Kinetic版本是装不上去的,indigo同理。
最终选择 Ros版本:ROS Kinetic Kame
2.软件中心配置
首先打开软件和更新对话框,具体可以在 Ubuntu 最左上角的搜索按钮中搜
索。打开后按照下图进行配置(确保你的"restricted","universe," 和 "multiverse."前是打上勾的):
配置完成后就可以关闭该窗口了。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 17
3.添加源
打开一个控制台(Ctrl + Alt + T), 输入如下指令:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_rel
ease -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
如果上述源不起作用,请尝试下面国内的源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.
cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/r
os-latest.list'
设置秘钥:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 -
-recv-key 0xB01FA116
4.安装 ROS
首先确保系统软件处于最新版。
sudo apt-get update
安装 ROS kinetic全功能版。指令如下:
sudo apt-get install ros-kinetic-desktop-full
等待若干分钟,网络要给力。
安装完成后,可以用下面的命令来查看可使用的包:到现在,虽然是安装完了,
但是还不能用 ROS哦!
6. 初始化 ROS
首先呢,需要先初始化 rosdep,具体如下:
sudo rosdep init
rosdep update
7. 安装 rosinstall
这是安装 ROS的各种功能包的程序。它是被频繁使用的有用的工具,因此
务必要安装它。
sudo apt-get install python-rosinstall
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 18
8. 初始化环境变量:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
上面两句非常非常非常重要,很多小伙伴在日常的开发过程中,有的找不到
Package, 找不到 node, 很多情况下都是没有添加 source。
9.测试 ROS
首先,启动 ROS环境
roscore
看看显示 started core service [/rosout] 了没有?如果没问题,恭喜你,你成功了。
10.USB设置
USB设置(以下允许将 USB端口用于没有 root权限的 OpenCR板)
cd ~/catkin_ws/src/turtlebot3/turtlebot3_bringup
sudo cp ./99-turtlebot3-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 19
安装 Turtlebot3 ROS包
1.安装 Turtlebot3依赖包
在 Ubuntu终端界面输入命令:
sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-
kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd
-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-ard
uino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-ki
netic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ro
s-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinet
ic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image
-view ros-kinetic-gmapping ros-kinetic-navigation
2.创建 ROS工作目录
cd ~
sudo mkdir catkin_ws
cd catkin_ws
sudo mkdir src
3.下载依赖包
安装 git(一般新系统里没有)
sudo apt-get install git
下载依赖包,需要一定时间。(注意:在此一定要安装雷达驱动)
注意:下载 turtlebot3包的时候,时间有点长,请耐心等待。
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
4.编译
cd ~/catkin_ws && catkin_make
如果没有出现红色错误,即安装成功,否则继续检查之前的操作。
5.网络配置
ROS需要 IP地址在 turtlebot和远程 PC之间进行通信
分别在 turtlebot和 PC,执行如下命令获得对应的 IP地址:
ifconfig
记住当前的 wlan或者以太网口的 ip地址。
修改.bashrc
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 20
gedit ~/.bashrc
(也可以使用 vim编辑器)
sudo apt-get install vim
vim ~/.bashrc
环境变量配置
echo “source ~/catkin_ws/devel/setup.bash”>> ~/.bashrc
source .bashrc
立即生效
TURTLEBOT配置如下(在文件末尾编辑即可):
export ROS_MASTER_URI = http://IP_OF_PC:11311
export ROS_HOSTNAME = IP_OF_TURTLEBOT
注意:IP_OF_PC指的是远程 PC的 IP地址,IP_OF_TURTLEBOT 指的是机器人
的 IP远程 PC配置如下:
export ROS_MASTER_URI = http://IP_OF_PC:11311
export ROS_HOSTNAME = IP_OF_PC
ROS_MASTER 运行在远程 PC上。(在远程 PC上执行 roscore)让环境生效:
source ~/.bashrc
6. 非管理员运行 openCR节点,USB设置(以下允许将 USB端口用于没有 root权限的 OpenCR板)
cd ~/catkin_ws/src/turtlebot3/turtlebot3_bringup
sudo cp ./99-turtlebot3-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 21
OpenCR软件配置
注意:openCR的软件设置这一章节是针对 PC的,机器人不需要安装 arduino,您可以选择在 ubuntu下安装,也可以选择在 windows下安装;都是可以的,凭
个人喜好。
1.编译器设置
由于 OpenCR 库是为 32 位平台构建的,64 位 PC 需要用于 Arduino IDE 的
32位编译器相关内容,需要执行如下命令:
sudo apt-get install libncurses5-dev:i386
2.安装 Arduino IDE
OpenCR需 Arduino IDE 1.16.0及之后的版本
可以从官方的 arduino主页下载最新版本,
地址:https://www.arduino.cc/en/Main/Software将下载的文件解压缩到所需的文件夹比如用户的根目录下 tools,并从终端执
行安装文件。如下:
mkdir ~/toolswget https://www.arduino.cc/download_handler.php?f=/arduino-1.8.3-linux64.tar.xzcd ~/tools/arduino-1.16.0./install.sh
增加路径到环境中:
vim ~/.bashrcexport PATH=$PATH:$HOME/tools/arduino-1.16.0source ~/.bashrc
3.运行 Arduino
在 linux下,新终端执行:
arduino
或直接运行
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 22
~/tools/arduino-1.16.0/arduino
4.从 Boards Manager安装 OpenCR1.0包
1) 增加 Boards Manager运行 IDE,点击 File → Preferences, 复制如下内容到 Additional Boards ManagerURLs:
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
如图:
2) 通过 Boards Manager安装 OpenCR软件包
点击 Tools → Board → Boards Manager.图示:
在文本框中键入 OpenCR以查找包。找到 OpenCR by ROBOTIS后,点击
Install.图示:
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 23
安装后,将显示“INSTALLED”
OpenCR Board列在 Tools → Board 中。
图示:
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 24
5.端口设置
此步骤显示程序上传的端口设置。
OpenCR应通过 USB端口连接到 PC和 OpenCR板。
选择 Tools → Port → /dev/ttyACM0.图示:
6.下载机器人 openCR默认固件
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 25
7. openCR固件修复
如果下载了已损坏或未完成的固件且电路板冻结或无法工作,则必须进入引
导加载程序才能下载正常固件。
要执行引导加载程序,请按照以下说明操作。
1).进入修复固件模式。
同时按住 PUSH SW2按键和 Reset按钮
释放 Reset按钮
松开 PUSH SW2按钮
重置后,OpenCR将进入引导加载程序。 当引导加载程序运行时,STATUSLED每 100ms闪烁一次。
2).下载下载器 opencr_ld
https://github.com/ROBOTIS-GIT/OpenCR/tree/master/arduino/opencr_ardu
ino/tools/opencr_tools_1.0.0
3).打开官方默认固件 turtleot3_core;另存一下,然导出可执行二进制 bin
文件;
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 26
4).修复固件,命令格式如下:
opencr_ld <Communication port> <Baudrate> <Firmware binary> <Firmware execution status [0|1]>
Communication port:Linux 的串口名称通常为/ dev / ttyACM0,它应与连接
到 OpenCR的串口相同。
Baudrate:以 115,200bps的速率进行通信和输入的速度。
Firmware binary:固件二进制映像具有 bin的扩展名。
Firmware execution status:如果为 1,则在下载固件后将执行固件。 如果未
输入或为 0,则仅执行下载固件。
5).如果 OpenCR 连接到 ttyACM0 端口,则将二进制文件 opencrfw.bin 复制到
opencr_ld目录中。
sudo opencr_ld /dev/ttyACM0 115200 ./turtlebot3_core.ino.openCR.bin 1
其中,turtlebot3_core.ino.openCR.bin 是您导出的二进制文件的名称;
6).成功修复后的结果如下:
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 27
开始使用
这一节我们来讲 Turtlebot3如何启动和使用
1.启动 Turtlebot3
[远程主机(笔记本电脑)]运行 roscore笔记本电脑打开终端(ctrl+Alt+T),获取 root权限,输入 roscore,如果显示 startedcore service [/rosout] ,则说明 roscore打开成功。
roscore
2.启动 Turtlebot-burger
[Turtlebot3之树莓派 3]启动 launch文件
如果没有安装,请首先安装雷达驱动
sudo apt-get install ros-kinetic-hls-lfcd-lds-driver
运行机器人程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
这是开启机器人所有设备,也可以单独开启,分步操作。
roslaunch turtlebot3_bringup turtlebot3_lidar.launchroslaunch turtlebot3_bringup turtlebot3_core.launch
如果终端显示 lost sync with device错误信息,则说明 TurtleBot3的传感器设备必
须未完全与树莓派相连接。
3.运行 RViz
[远程主机(笔记本电脑)]运行 RViz
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_bringup turtlebot3_model.launch
如果是华夫派的话。
export TURTLEBOT3_MODEL=waffle_piroslaunch turtlebot3_bringup turtlebot3_model.launch
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 28
RViz(The ROS Visualization Tool): 机器人操作系统 3D可视化工具。
它的作用就是:一个虚拟世界,用来模拟机器人在现实世界的运行效果。简
单的说它就是 ROS的一个模拟器软件。一个显示机器人实体的工具。
运行效果如图所示:
ROS下的图形化模拟环境 RViz
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 29
远程控制
这一节我们来讲远程控制 Turtlebot3的方法
1.说明
此方法是在远程 PC(笔记本电脑)操作的,而不是在树莓派(机器人)上
操作的。在树莓派(机器人)上操作此步骤是无用的。
其他几种无线设备(例如 PS3,XBOX 360,ROBOTIS RC100等)也可以控
制。
下面以远程笔记本的键盘控制为例:
2.方法
[远程主机(笔记本电脑)]运行远程操作
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
3.结果
[远程主机(笔记本电脑)] 如果文件成功启动,终端将显示以下内容。
Control Your Turtlebot3!---------------------------Moving around:
wa s d
x
w/x : increase/decrease linear velocitya/d : increase/decrease angular velocityspace key, s : force stop
CTRL-C to quit
接下来就可以通过笔记本电脑上的 w/x/a/d/s来控制机器人的前、后、左、右、
停动作了。
按键说明:w/x:增加/减少线速度(前后)
a/d:增加/减少角速度(左右)
空格/s:急停按键
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 30
SLAM
这一节我们来讲 Turtlebot3的 SLAM
1.说明
SLAM(The Simultaneous Localization and Mapping) 同步定位与地图构建:希
望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征
(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地
图,从而达到同时定位和地图构建的目的。(维基百科)
2通过远程操作创建地图
[远程主机(笔记本电脑)] 打开终端,然后运行 SLAM启动文件。
针对 burger:
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_slam turtlebot3_slam.launch
[远程主机(笔记本电脑)] 启动 RViz可视化模型
rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
[远程主机(笔记本电脑)] 启动键盘操作
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
3.将地图保存到文件
[远程主机(笔记本电脑)] 打开终端,然后运行地图保存节点
rosrun map_server map_saver -f ~/map
map.pgm和 map.yaml 在 ~/ 目录里创建
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 31
导航
这一节我们来讲 Turtlebot3的导航功能
1.说明
导航技术的主要用途:使机器人进入期望的位置。
2.准备
已经启动 burger 已经建好地图
3.开始导航
[远程主机(笔记本电脑)] 启动导航文件
针对 burger:
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
[远程主机(笔记本电脑)]启动 RViz
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
[远程主机(笔记本电脑)] 在开始导航之前,TurtleBot3 需知道它的位置和姿态。
为了更新初始位置数据,可以按照以下步骤进行:
1). 点击 2D Pose Estimate按键。
2). 通过单击并拖动地图上的方向来设置机器人在地图上的大致位置。
每个绿色箭头代表 TurtleBot3 的预期位置。 激光扫描仪将在地图上绘制线
条,如地图上的墙壁。 如果图形没有正确显示图形,请从上面的“2D PoseEstimate”按钮重复定位 TurtleBot3。
如果图形没有显示线条,请重复上述过程。
[远程主机(笔记本电脑)] 当 TurtleBot3已经定位,它将自动计划路径。
为了到达目标位置,需遵循以下做法:
点击 2D Nav Goal按钮
点击地图上的一个特定点来设置一个目标位置,拖动光标到 TurtleBot3应该
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 32
面对的方向。
注意:如果无法创建目标位置的路径,则设置目标位置可能会失败。 如果
可以,请重新建立一个比较宽敞的地图,给机器人足够的反应空间,有利于导
航顺利进行。
如果您希望在机器人到达目标位置之前停止机器人,请将 TurtleBot3 的
当前位置设置为目标位置。使得机器人放弃之前任务,跑向该任务位置。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 33
仿真
这一节我们来讲 Turtlebot3的仿真实验
测试环境:Ubuntu 16.04 和 ROS Kinetic Kame.
注意:TurtleBot3 Simulation依赖于 turtlebot3步骤:
1.安装 TurtleBot3 Simulation
cd ~/catkin_ws/src/git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.gitcd ~/catkin_ws && catkin_make
2.启动仿真
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_fake turtlebot3_fake.launch
注意:TurtleBot3 仿真节点不依赖实体机器人,也可以在 rviz里通过 teleop节点
进行控制。
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 34
3.Gazebo仿真
第一次使用 gazebo需要比较长的时间加载模型。
第一次使用 Turtlebot3的 gazebo仿真,需要把 Turtlebot3的模型文件,复制
到 gazebo的模型目录里
mkdir -p ~/.gazebo/models/cp -r ~/catkin_ws/src/turtlebot3_simulations/turtlebot3_gazebo/worlds/turtlebot3 ~/.gazebo/models/
设置模型参数,指定使用那种机器人型号:burger 或者 waffle
export TURTLEBOT3_MODEL=burger
启动世界地图,默认的空白地图环境中加载 Turtlebot3机器人
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
效果:
启动更复杂些的地图
roslaunch turtlebot3_gazebo turtlebot3_world.launch
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 35
用键盘控制 turtlebot3
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
启动仿真
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_gazebo turtlebot3_simulation.launch
启动 RVIZ可视化
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 36
360激光距离传感器
360激光距离传感器 LDS-01是一款 2D激光扫描仪,能够 360度感应,收集
机器人周围的一组数据,用于 SLAM(同时定位和制图)和导航。
LDS-01用于 TurtleBot3 Burger,Waffle和Waffle Pi型号。它支持 USB接口
(USB2LDS),易于安装在 PC上。它支持嵌入式 baord的 UART接口。
我们为 LSD提供 ROS包。hls_lfcd_lds_driver包为 HLS(Hitachi-LG 传感器)
LFCD LDS(激光距离传感器)提供驱动程序。
注意:由于固件更新(在 2017年 10月购买后),传感器在通电时直接运行。
1. 安装
sudo apt-get install ros-kinetic-hls-lfcd-lds-driver
2. 增加 USB权限
sudo chmod a+rw /dev/ttyUSB0
3. 运行 hlds_laser_publisher节点
roslaunch hls_lfcd_lds_driver hlds_laser.launch
4. 用 Rviz运行 hlds_laser_publisher节点
roslaunch hls_lfcd_lds_driver view_hlds_laser.launch
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 37
360激光距离传感器不提供专用接口板,但您可以将其连接到嵌入式板的电
源和 UART,如下所示。
OpenCR通过 Arduino IDE开发和下载固件。因此,您必须提前安装 ArduinoIDE并安装 OpenCR板包。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 38
TB3进阶应用教程
1.应用(障碍检测)
这一节我们来讲 TB3是如何实现壁障的。
准备:[远程 PC] 安装 turtlebot3_applications步骤:
1. 下载源码包。
sudo apt-get install ros-kinetic-ar-track-alvarsudo apt-get install ros-kinetic-ar-track-alvar-msgscd ~/catkin_ws/srcgit clone https://github.com/ROBOTIS-GIT/turtlebot3_applications.gitgit clone https://github.com/ROBOTIS-GIT/turtlebot3_applications_msgs.git
2. 编译。
cd ~/catkin_ws/catkin_make
3. 如果没有显示错误,则 turtlebot3_applications安装完成。
4. [远程 PC]启动 roscore
roscore
5. [TurtleBot]开启启动程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
6. [远程 PC]启动壁障应用程序
roslaunch turtlebot3_example turtlebot3_obstacle.launch
7. 效果:
启动后,机器人向前运动;遇到障碍物时,机器人会自动停下来。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 39
2. 应用(定点导航)
这一节我们来讲 TB3是如何实现定点导航的。
准备:和应用 1相同,安装 turtlebot3_applications。目标:实现提供一个 2D坐标(x,y)和角度 Z,即可让小车自动到达对应的位
置和方向
步骤:
1. [远程 PC]启动 roscore
roscore
2. [TurtleBot]开启启动程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
3. [远程 PC]启动定点导航应用程序
roslaunch turtlebot3_example turtlebot3_pointop_key.launch
4. 效果
提供一个 2D坐标(x,y)和角度 Z,即可让小车自动到达对应的位置和方向
例如提供(0.5, 0.3, 60), 小车移动到点 (x = 0.5m, y = 0.3m) 和旋转 60 度。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 40
3. 应用(固定线路巡逻)
这一节我们来讲如何实现小车根据固定线路行走。
准备:和应用 1相同,安装 turtlebot3_applications。目标:可以实现 TB3根据不同形状,正方形,圆形,三角形行走
步骤:
1. [远程 PC]启动 roscore
roscore
2. [TurtleBot]开启启动程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
3. [远程 PC]启动启动 Action服务端
rosrun turtlebot3_example turtlebot3_server
4. [远程 PC]启动启动 Action客户端
roslaunch turtlebot3_example turtlebot3_client.launch
这个例子使用 action话题,Action客户端转换数据(mode, area, count)给 action服务器端,action服务器端传输 cmd_vel话题给小车
mode : s - Patrol to Square t - Patrol to Triangle c - Patrol to Circle
area : Square, Triangle mode - length of side (m) Circle mode - radius (m)
count - patrol count
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 41
4. 应用(自动泊车)
这一节我们来讲如何实现自动泊车功能。
准备:和应用 1相同,安装 turtlebot3_applications。步骤:
1. [远程 PC] 安装依赖包
sudo apt-get install python-pipsudo pip install numpysudo pip install --upgrade pip
2. [远程 PC] 增加文件权限
cd ~/catkin_ws/src/turtlebot3_applications/turtlebot3_automatic_parking/srcsudo chmod +x automatic_parking.py
3. 先准备一条宽度为 10CM,长度 20CM的黄色反光带,贴在墙上,贴条高度
是跟小车高度平齐或高一些,保证雷达视线范围在贴条里。
4. [远程 PC] 启动 roscore
roscore
5. [TurtleBot]开启启动程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
6. [远程 PC]启动 remote文件
export TURTLEBOT3_MODEL=burgerroslaunch turtlebot3_bringup turtlebot3_remote.launch
7. [远程 PC] 启动 rviz
rosrun rviz rviz -d `rospack find turtlebot3_automatic_parking`/rviz/turtlebot3_automatic_parking.rviz
可以切换不同话题查看激光数据
查看/scan话题
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 42
查看/scan_spot话题
8. [远程 PC] 运行自动泊车
rosrun turtlebot3_automatic_parking automatic_parking.py
容易出现报错:
start_angle = spot_angle_index[2]IndexError: list index out of range
因为默认是阀值是 100,如果得到的符合条件的激光数据太少就会报错。可能需
要测试多次才能成功,这个跟你找到的反光带有关系,可以通过打印出来了解应
该使用什么阀值作为检测到的反光带的激光强度,如图:
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 43
5. windows远程桌面控制
这一节我们来讲通过 vino软件,windows桌面如何控制 TB3的系统。
步骤如下:
1. 安装 vino
sudo apt-get install vino ssh
2. 进行 vino软件配置
敲入命令行:
vino-preferences
弹出的界面勾上选项“Allow other users to view your desktop”、“Allow otherusers to control your desktop”。
弹出的界面取消打勾“You must confirm each access to this machine。”
3. 禁止 require-encryption,执行命令
gsettings set org.gnome.Vino require-encryption false
4. 设置自动启动。
选择“system”,再次选择 Control Center。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 44
选择“Startup Application”
点击 "Add" 按钮。按照下面提示输入
Name: Remote DesktopCommand Path: /usr/lib/vino/vino-server
5. 设置允许远程操作。
System tools > dconf Editor > org > gnome > desktop > remote-access。
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 45
6. Windows访问测试:打开 TightNVC输入 IP地址:
效果如下图所示:
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 46
6. 应用(安卓 APP控制)
这一节我们来讲如何通过手机 APP来控制 turtlebot3准备:下载 APP步骤:
1. [远程 PC]启动 roscore
roscore
2. [TurtleBot] 开启启动程序
roslaunch turtlebot3_bringup turtlebot3_robot.launch
3. [TurtleBot] 启动树莓派摄像头
roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
4. [Android Phone] 打开 ROS_Control APP 添加机器人
将 http://localhost:11311中的 localhost更改为主机 IP(即远程 PC的 IP) 进入控制界面时可以选择相应的 Control Mode Joystick:为模拟手柄控制
Tilt:为重力感应控制
Simple Waypoint:暂不支持
Waypoint:暂不支持
RamdomWalk:暂不支持
点击左上角进入菜单栏->Preferences->Topics,订阅相应的话题
Joystick Topic 对应的话题为 /cmd_vel Image Topic 对应的话题为 /raspicam_node/image/compressed
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 47
7. 更新源代码
这一节我们来讲如何在 turtlebot3中更新源代码和固件。
步骤:
1. [远程 PC]更新 PC中源代码
cd ~/catkin_ws/src/turtlebot3git pullcd ~/catkin_ws/src/turtlebot3_msgsgit pullcd ~/catkin_ws/catkin_make
2. [TurtleBot] 更新树莓派开发板中源代码
cd ~/catkin_ws/src/turtlebot3git pullcd ~/catkin_ws/src/turtlebot3_msgsgit pullcd ~/catkin_ws/src/hls_lfcd_lds_drivergit pullcd ~/catkin_ws/catkin_make -j1
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 48
FAQ
1. 小车构建地图之后自己导航还是走不了。
本机与服务器时间相差太远,ntpd将无法同步成功,解决的问题是如何让主
从机时间同步。
在线安装 ntp,配置时间同步
在线安装的方式很简单,只需要执行以下命令即可帮你安装好 ntp以及所有
的依赖包
sudo apt-get install ntp
安装完成后可以通过如下命令查看 NTP服务是否启动:
service --status-all
或者
ps -aux | grep ntp
其余配置参考:https://blog.csdn.net/u013712826/article/details/61938675/配置方法 2:主从机分别安装:
sudo apt-get install chrony
主从机分别安装:
sudo apt-get install ntpdate
校准时间命令:
sudo ntpdate ntp.ubuntu.com
效果如下:
$ sudo ntpdate ntp.ubuntu.com3 Oct 14:31:36 ntpdate[4709]: adjust time server 91.189.89.199 offset 0.025464 sec
主从机分别验证时间命令:
date
效果如下:
$ dateTue Oct 3 14:31:40 CST 2017
检查主从机时间是否差异
有些主机可能需要设置硬件时钟与系统时钟同步
北京智能佳科技有限公司
www.bjrobot.com 010-82488500 49
专有名词解释
1.*.pgmPGM是 Portable Gray Map的缩写。它是灰度图像格式中一种最简单的格式
标准。另外两种与之相近的图片格式是 PBM和 PPM。它们分别相应着黑白图像
和彩色图像。
PGM的数据存放方式相比于 JPG来说是非常 easy的,由于它不进行数据压
缩。自然的 PGM的图片的大小也就比较大了。一个 120*128 8-bit的灰度图像,
PGM的大小是 44kb,而将这个图片转化为 JPG格式后。大小仅为 4kb。PGM 格式图像格式分为两类:P2和 P5 类型.不管是 P2还是 P5 类型的 PGM
文件,都由两部分组成,文件头部分和数据部分.P5格式
P5格式的文件,每个像素用可以用二进制表示.比如有一幅 P5格式图像,灰度
值可能的最大值为 255,它的第一行第一列像素值为 100,那么该图像每个像素使
用一个字节表示,第一行第一列为数值为 100的二进制一个字节表示.如果这副图
灰度值可能的最大值是 65535,那么它的第一行第一列为数值为 100 的二进制两
个字节表示(因为表示到 65535 需要两个字节).每个像素数据之间没有间隔的连
续存储,图像一行信息结束后从下一行第一列继续,两行图像数据之间也没有间隔
的连续存储,直到将图像的所有信息表示完.因为是以二进制表示,所以数据部分
在记事本中打开后看到的将会是乱码.P2格式
P2格式的文件,每个像素使用字符串来表示,比如一副 P2格式图像,灰度值可
能的最大值为 255,它的第一行第一列像素值为 100,那么该图像图像每个像素使
用 3 个 ASCII 字符表示,第一行第一列数据为 ASII 表示的"100".不同于 P5 格式,每个像素数据之间需要用一个空格符分开存储,在图像的每一行数据结束时需要
换行.还有一点需要注意,P2格式文件数据部分当数据超过 70个字节的时候,会自
动换行.也就是说图像的每一行数据末尾,或者存储时超过 70个字节时,需要进行
换行.
Top Related