一、硬件安装视频&资料
我自己录了个小视频,链接:TurtleBot3-Burger硬件安装记录 萌新之一镜到底&手机剪辑。 这个链接有智能佳提供的装配视频和硬件清单: Turtlebot3入门教程 —— 硬件配置( Hardware Setup )。 官方提供的说明书手册电子版:装配资料——GitHub链接。
硬件效果和三视图
TurtleBot3 Burger 3D Model: https://goo.gl/n3bGNr。
二、软件安装和环境搭建流程
可以参考:北京智能佳提供的教程。 这里就不做对PC端Ubuntu18.04 LTS安装和ROS Melodic安装的流程了,网上有很多可以查阅。
①PC端部分
1.安装turtlebot3及其依赖项, 参考来源:http://emanual.robotis.com/docs/en/platform/turtlebot3/pc_setup/#install-dependent-ros-packages;
sudo apt install ros-melodic-desktop-full ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers ros-melodic-turtlebot3-gazebo
2.下载TurtleBot3依赖包(PC端和树莓派都需要编译);
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
cd ~/catkin_ws && catkin_make
不报错就没有问题啦~ 3.ROS需要IP地址在turtlebot和远程PC之间进行通信,执行:
ifconfig
记住当前以太网口的IP地址,并修改.bashrc。 如果没有这个命令,则执行:
sudo apt-get install net-tools
ifconfig
4.设置turtlebot相关的.bashrc配置,设置机器人构型。构型为burger、waffle或waffle pi,根据手头机型设置:
export TURTLEBOT3_MODEL=burger
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
注意:export
之后的内容不能出现空格!!!否则会报错!!! ROS Master运行在远程PC上(在远程PC上执行roscore); 5.非管理员运行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
②Raspberry Pi部分
1.给树莓派安装Linux,需要和PC端一致; 我用这个感觉特别特别慢,提供一个BT种子可以使用百度网盘,离线下载中的BT下载,亲测很快! (链接:https://pan.baidu.com/s/1ngAPm3J-z7qwSLFL75czbw 提取码: e15o) 也可以使用这个,这个是我经过BT种子导出的网盘文件: (链接: https://pan.baidu.com/s/1xMZc7iWAoK-D2i4H2FEh6g 提取码: 3xow ) 2.准备工具 Win32DiskImager (链接: https://pan.baidu.com/s/1troKxg66QOLZmkvAXr16xg 提取码: zkfa)
- 解压上述下载的操作系统镜像压缩文件,得到 img 镜像文件。
- 将 SD 使用卡托或者读卡器后,连上电脑。
- 解压并运行 win32diskimager 工具。
- 在软件中选择系统镜像(img 文件),“Device”下选择 SD 的盘符,然后选择 “Write”,期间出现对话框选择是。
中间这点要没有GIF了,因为去到了Raspberry Pi。 3.将 SD 卡插入树莓派 3 的 SD 卡槽内。 4.即可进入树莓派安装了。 我这里使用的是HDML线接我家的台式机显示屏,USB接口连接鼠标和键盘,使用5V/2A老式安卓手机的那个接口接电。 安装过程也是很简单了,比起双系统的Ubuntu这个简直轻而易举,不用管分配空间,所以就不多说了。重点是需要用ifconfig
命令得到树莓派的wlan地址。然后跳转到上面我们提到的PC端和树莓派配置地址的地方修改。 5.接下来在树莓派安装ROS,和PC端安装ROS相似,这里也不过多讲解了,我先试试,我会记录下出错解决的地方。 这里放几个我参考的【链接】:最重要的!换用国内apt源解决树莓派安装ubuntu后apt-get速度慢的问题因为不换源真的慢的要死!
- wiki官方教程;(官方教程就OK啦!)
- Ubuntu18.04 ssh 开机自动启动的设置方法;
- [树莓派]Ubuntu MATE 18.04安装ROS环境;
6.有些小伙伴可能和我一样都给开机设置了密码,为了方便使用,可以这样取消开机询问密码。点击桌面右上角的设置浮动块,点击System Settings,点击用户和组就可以看到密码后面写的登录时询问,改成不询问就好啦。
③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 及之后的版本,可以到官网https://www.arduino.cc/en/Main/Software下载; 3.将下载的文件解压缩到所需的文件夹比如用户的根目录下,并从终端执行安装文件; 也可以用我放在网盘里的链接: https://pan.baidu.com/s/1-ro0x5Rr6iIzGgK8IA-n0g 密码: mdkd
mkdir ~/tools
wget https://www.arduino.cc/download_handler.php?f=/arduino-1.8.12-linux64.tar.xz
cd ~/tools/arduino-1.8.12
sudo ./install.sh
4.执行Arduino最好用sudo arduino
打开(root权限);增加 Boards Manager; 运行IDE,点击 File → Preferences,复制下面的内容到 Additional Boards Manager URLs:
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
5.通过Board Manager安装OpenCR软件包,点击 Tools → Boards Manager; 6.OpenCR Board 列在 Tools → Board 中; 7.设置端口,OpenCR 应通过 USB 端口连接到 PC 和 OpenCR 板;选择 Tools → Port → /dev/ttyACM0;(我的是/dev/ttyACM1大家可以拔掉再插上看看) OpenCR板上走马灯会亮; 8.选择DFU编译模式。 9.下载机器人OpenCR默认固件;文件的示例中大家会发现有很多示例代码;选择turtle_core;(尝试compile and upload) 如果下载了已损坏或未完成的固件且电路板冻结或无法工作,则必须进入引导加载程序才能下载正常固件:警告:(不满足这种情况不用执行这步!) 1.进入修复固件模式;
-
- 同时按住 PUSH SW2 按键和 Reset 按钮;
- 释放 Reset 按钮;
- 松开 PUSH SW2按钮。
重置后,OpenCR将进入引导加载程序。STATUS LED每100ms闪烁一次。 2.下载下载器 opencr_ld 3.打开官方默认固件 turtlebot3_core;另存一下,导出可执行二进制bin文件; 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
其中,tutlebot3_core.ino.openCR.bin 是您导出的二进制文件的名称. 6.修复成功后的结果如下: 参考资料: 1.《ROS机器人编程介绍 -中文版》链接: https://pan.baidu.com/s/1T3-HUdA9EodY4Y9snStsqg 密码: utbn 2.Ubuntu18.04+Melodic ROS+TurtleBot3安装过程碰到的部分问题及解决方法; 3.Ubuntu18.04 LTS安装ROS melodic和turtlebot3; 之后会继续更新我使用小乌龟的历程哈~
补充:
我在安装turtlebot3-simulations的时候出现了错误: 1.类似如图所示的编译无-std=c++11的错误; 可以在这个 turtlebot3_simulations/turtlebot3_fake 的目录下修改那个 CMakeLists.txt ,加上这句话:
add_compile_options(-std=c++11)
2.然后就有了我第二个错误; 可以参考这个博客https://blog.csdn.net/qq_37668436/article/details/104221075#1_5;简单说就是这个文件里面isnan前面没加std::
的问题。 提供一下我已经修改过的 turtlebot3_simulations 这个包: 链接: https://pan.baidu.com/s/1omp0YrLoLuMzy8N3xa0few 密码: w3hg