TurtleBot3burger(汉堡)ROS 平台 用户使用手册 ·...

49
北京智能佳科技有限公司 www.bjrobot.com 010-82488500 1 TurtleBot3 burger (汉堡) ROS 平台 用户使用手册 本:0.3.3 修订日期:2019/06/05 者:北京智能佳科技有限公司

Transcript of TurtleBot3burger(汉堡)ROS 平台 用户使用手册 ·...

Page 1: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 1

TurtleBot3 burger(汉堡)ROS平台

用户使用手册

版 本:0.3.3

修订日期:2019/06/05

作 者:北京智能佳科技有限公司

Page 2: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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固件修复方法

Page 3: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对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

Page 4: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 5: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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.文档中或官方网站教程中未提及的做法,要提前询问相关技术人

员,谨慎操作。

Page 6: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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,输入密码,回车即可。

Page 7: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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/

Page 8: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 8

Page 9: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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.树莓派主板上电,即可进入系统安装。

Page 10: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 10

3.系统安装

1. 设置系统使用的语言,选择简体(中文)。

2. 设置WiFi,可以在后面设置也是一样的。

选择您要连接的 wifi,输入相应的密码,这样在后期的系统安装过程中会利

用网络的资源。

3. 设置时区。

选择一个时区,用鼠标在地图上点击一个位置就可以。

4. 等待之前的设置完成。

5.选择键盘布局,点击,继续。

6.创建用户名和密码,并牢记(后面会用到)。

7. 系统的安装占用了很多的空间,如果需要添加更多的功能需要增加 TF 卡的容

量。后面尝试添加一些应用。

温馨提示:系统安装完毕,大概就剩下 3.9G。安装完 ROS之后,大概会剩下 1.2G,内存且用且珍惜。

Page 11: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 11

4.网络配置

为了实现 Turblebot3和电脑,Turblebot3之间的相互通信,需要获取远程 PC和 Turblebot3的 IP 地址。

Page 12: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 12

Ubuntu16.04系统镜像制作

准备:UltraISO软件(如果只是为了制作启动优盘,可以使用未注册版本。)

镜像:Ubuntu16.04.03-desktop-adm64.isoU盘:8G以上(包含 8G) 打开 UltraISO

UltraISO主界面如下:

打开 ISO文件

选择菜单文件>>打开,弹出打开 ISO文件对话框

Page 13: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 13

选择镜像文件并单击打开按钮,打开 ISO 文件

写入硬盘镜像

选择菜单文件>>打开,弹出写入硬盘镜像对话框

选择硬盘驱动器和写入方式,然后点击写入按钮,等待完成即可。

Page 14: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 14

至此,Ubuntu16.04系统盘完成!!!

Page 15: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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/

Page 16: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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."前是打上勾的):

配置完成后就可以关闭该窗口了。

Page 17: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 18: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 19: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 20: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 21: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

或直接运行

Page 22: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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.图示:

Page 23: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 23

安装后,将显示“INSTALLED”

OpenCR Board列在 Tools → Board 中。

图示:

Page 24: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 24

5.端口设置

此步骤显示程序上传的端口设置。

OpenCR应通过 USB端口连接到 PC和 OpenCR板。

选择 Tools → Port → /dev/ttyACM0.图示:

6.下载机器人 openCR默认固件

Page 25: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对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

文件;

Page 26: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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).成功修复后的结果如下:

Page 27: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 28: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 28

RViz(The ROS Visualization Tool): 机器人操作系统 3D可视化工具。

它的作用就是:一个虚拟世界,用来模拟机器人在现实世界的运行效果。简

单的说它就是 ROS的一个模拟器软件。一个显示机器人实体的工具。

运行效果如图所示:

ROS下的图形化模拟环境 RViz

Page 29: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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:急停按键

Page 30: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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 在 ~/ 目录里创建

Page 31: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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应该

Page 32: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 32

面对的方向。

注意:如果无法创建目标位置的路径,则设置目标位置可能会失败。 如果

可以,请重新建立一个比较宽敞的地图,给机器人足够的反应空间,有利于导

航顺利进行。

如果您希望在机器人到达目标位置之前停止机器人,请将 TurtleBot3 的

当前位置设置为目标位置。使得机器人放弃之前任务,跑向该任务位置。

Page 33: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 34: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 35: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 36: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 37: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 37

360激光距离传感器不提供专用接口板,但您可以将其连接到嵌入式板的电

源和 UART,如下所示。

OpenCR通过 Arduino IDE开发和下载固件。因此,您必须提前安装 ArduinoIDE并安装 OpenCR板包。

Page 38: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对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. 效果:

启动后,机器人向前运动;遇到障碍物时,机器人会自动停下来。

Page 39: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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 度。

Page 40: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 41: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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话题

Page 42: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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,如果得到的符合条件的激光数据太少就会报错。可能需

要测试多次才能成功,这个跟你找到的反光带有关系,可以通过打印出来了解应

该使用什么阀值作为检测到的反光带的激光强度,如图:

Page 43: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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。

Page 44: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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。

Page 45: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

www.bjrobot.com 010-82488500 45

6. Windows访问测试:打开 TightNVC输入 IP地址:

效果如下图所示:

Page 46: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 47: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

Page 48: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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

检查主从机时间是否差异

有些主机可能需要设置硬件时钟与系统时钟同步

Page 49: TurtleBot3burger(汉堡)ROS 平台 用户使用手册 · 管理员权限下使用openCR串口的方法 0.3.0 2019/01/28 增加TB3进阶应用教程 0.3.1 2019/04/24 修改没有root权限对openCR操作的方法

北京智能佳科技有限公司

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个字节时,需要进行

换行.