旨在用于教育,研究,产品原型和爱好应用的目的。
TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。
由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。
说明:
目录:
TurtleBot3入门教程-概述
TurtleBot3入门教程-特点
TurtleBot3入门教程-规格
TurtleBot3入门教程-硬件设置
TurtleBot3入门教程-PC软件设置
TurtleBot3入门教程-SBC软件设置
TurtleBot3入门教程-OpenCR软件设置
TurtleBot3入门教程-开始使用
TurtleBot3入门教程-遥控
TurtleBot3入门教程-SLAM
TurtleBot3入门教程-导航
TurtleBot3入门教程-LDS
参考:
一、入门教程-概述
说明:
在ROSCon2016上介绍Turtlebot3
硬件
软件
该软件以完全开源的形式提供。主要许可证是Apache 2.0许可证。预计全部资源发布是2017年第一季度。
https://github.com/ROBOTIS-GIT/turtlebot3
https://github.com/ROBOTIS-GIT/OpenCR
开源许可证
硬件许可证:
软件许可证:
文件许可证:
资源
出版物
二、入门教程-特点
说明:
世界上最受欢迎的ROS平台
低成本
小尺寸
ROS标准
结构可扩展性
移动机器人的模块化执行器
开源ROS的控制板
强大的传感器
开放源码
三、入门教程-规格
说明:
Turtlebot图:
规格
项目 | 基本 | 高级 |
---|---|---|
最大平移速度 | 0.22m / s | 0.26m / s |
最大转速 | 2.84rad / s(162.72deg / s) | 1.82rad / s(104.27deg / s) |
最大有效载荷 | 15kg | 30kg |
尺寸(长x宽x高) | 176mm x 138mm x 188mm | 306mm×283mm×143mm |
重量(+ SBC +电池+传感器) | 0.995kg | 1.745kg |
攀登门槛 | 10mm以下 | |
预计运行时间 | 2h 30m | 2h |
预计充电时间 | 2h 30m | |
PC连接 | USB | |
IMU | 陀螺仪3轴 | |
加速度计3轴 | ||
磁力计3轴 | ||
电源连接器 | 3.3V / 800mA | |
5V / 2A | ||
12V / 1A | ||
插脚 | GPIO 18引脚 | |
Arduino 32针 | ||
音频 | 几个可编程蜂鸣声序列 | |
可编程LED | 用户LED x 4 | |
状态LED | 板状态x 1 | |
电池状态x 1 | ||
Arduino LED x 1 | ||
纽扣 | 按钮x 2 | |
电池 | 锂聚合物11.1V 1800mAh / 19.98Wh 5C | |
固件升级 | 通过USB /通过JTAG | |
充电适配器 | 输入:100-240V,AC 50 / 60Hz,1.5A @ max | |
输出:12V DC,5A |
尺寸
组件
SBC:
传感器:
图示:
概述
基本性能规格
项目 | 规格 |
---|---|
工作电源电压 | 5V DC±5% |
光源 | 半导体激光二极管(λ= 785nm) |
激光安全 | IEC60825-1 Class 1 |
目前的消费 | 400mA以下(冲击电流1A) |
检测距离 | 120mm〜3,500mm |
接口 | 3.3V USART(230,400 bps)每6度42bytes,全双工选项 |
环境光电阻 | 10,000 lux 或更小 |
采样率 | 1.8kHz |
尺寸 | 69.5(W)×95.5(D)×39.5(H)mm |
质量 | 低于125g |
测量性能规格
项目 | 规格 |
---|---|
距离范围 | 120〜3500mm |
距离精度(120mm〜499mm) | ±15mm |
距离精度(500mm〜3,500mm) | ±5.0% |
距离精度(120mm〜499mm) | ±10mm |
距离精度(500mm〜3,500mm) | ±3.5% |
扫描速率 | 300±10rpm |
角范围 | 360° |
角分辨率 | 1° |
规范文档
在TurtleBot3使用LDS
控制板
图示:
概述
规格
项目 | 规格 |
---|---|
微控制器 | STM32F746NGH6 /具有FPU的32位ARMCortex®-M7(216MHz,462DMIPS) |
传感器 | 陀螺仪3Axis,加速度计3Axis,磁力计3Axis(MPU9250) |
程序员 | ARM Cortex 10pin JTAG / SWD连接器 |
USB设备固件升级(DFU) | |
串行 | |
扩展引脚 | 32引脚(L 14,R 18)* Arduino Uno Revision 3连接 |
传感器x 4针 | |
扩展连接器x 18针 | |
通信电路 | USB(Micro-B USB连接器/ USB 2.0 /主机/ Peripehral / OTG) |
TTL(JST 3pin / Dynamixel) | |
RS485(JST 4pin / Dynamixel) | |
UART x 2 | |
CAN | |
LED和按钮 | LD2(红/绿):USB通信 |
用户LED x 4:LD3(红色),LD4(绿色),LD5(蓝色) | |
用户按钮x 2 | |
权力 | 外部输入源 |
5 V(USB VBUS),7-24 V(电池或SMPS) | |
默认电池:LI-PO 11.1V 1,800mAh 19.98Wh | |
默认SMPS:12V 5A | |
外部输出源 | |
12V@1A, 5V@4A, 3.3V@800mA | |
电源LED:LD1(红色,3.3 V电源打开) | |
复位按钮x 1(用于板的电源复位) | |
电源开关x 1 | |
尺寸 | 105(W)×75(D)mm |
质量 | 60g |
执行器
四、入门教程-硬件设置
硬件图:
组件
每个模型的部件数量 | 基本 | 高级 | |
---|---|---|---|
机壳 | Waffle板 | 8 | 24 |
35mm板支架 | 4 | 12 | |
45mm板支架 | 12 | 10 | |
板支持 | 12 | 12 | |
链轮 | 2 | 2 | |
橡胶轮胎 | 2 | 2 | |
球脚轮 | 1 | 2 | |
钢球 | 1 | 2 | |
螺栓套 | 1 | 1 | |
螺母组 | 1 | 1 | |
铆钉 | 6 | 10 | |
铆钉间隔 | 4 | 4 | |
梦幻L支架 | 2 | ||
发动机 | XL430-W350-T | 2 | |
XM430-W210-T | 2 | ||
Horn for XM430-W210-T | 2 | ||
控制器 | OpenCR | 1 | 1 |
功率 电池 电缆 |
SMPS 12V 5A | 1 | 1 |
AC代码 | 1 | 1 | |
LIPO电池11.1V 1800mAh | 1 | 1 | |
LIPO电池充电器 | 1 | 1 | |
电池转换电缆 | 1 | 1 | |
RaspberryPi电源(5V)电缆 | 1 | ||
焦耳电源(12V)电缆 | 1 | ||
通讯 电缆 |
机器人电缆-X3P 100mm | 1 | |
机器人电缆-X3P 180mm | 1 | 1 | |
机器人电缆-X3P 240mm | 1 | ||
USB2.0到microB电缆 | 2 | 2 | |
SBC | RaspberryPi 3型号B | 1 | |
英特尔®Joule™570x | 1 | ||
传感器 | 激光距离传感器 | 1 | 1 |
英特尔®Realsense™R200 | 1 | ||
记忆 | MicroSD卡8G | 1 | |
工具 | 螺丝刀 | 1 | 1 |
铆接工具 | 1 | 1 | |
Velcro电池 | 1 | 1 | |
USB2LDS | 1 | 1 | |
USB3.0集线器 | 1 |
装配
五、入门教程-PC软件设置
说明:
安装Ubuntu
安装ROS版本kinetic和相关包:
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/kinetic/ros_install.sh && chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic
安装TurtleBot3及依赖包:
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-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-hls-lfcd-lds-driver ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-gmapping ros-kinetic-turtlebot-teleop
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make
网络配置
ifconfig
gedit ~/.bashrc
ROS_MASTER_URI = http://IP_OF_PC:11311
ROS_HOSTNAME = IP_OF_TURTLEBOT
ROS_MASTER_URI = http://IP_OF_PC:11311
ROS_HOSTNAME = IP_OF_PC
ROS_MASTER 运行在远程PC上。
让环境生效:
source ~/.bashrc
六、入门教程-SBC软件设置
简便安装:
安装前准备
系统安装步骤
格式Miscro SD卡为FAT32格式
Image File处选择Raspbian映像文件
Device处选择盘符为你读卡器的盘符
Micro SD卡插入树莓派,接通电源启动
树莓派3手工安装:
(1)安装Ubuntu MATE for Raspberry Pi 3
(2)为Raspberry Pi 3安装TurboBot3依赖的ROS包
sudo apt-get install ros-kinetic-amcl ros-kinetic-rosserial ros-kinetic-map-server ros-kinetic-move-base
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/kinetic/ros_install.sh && chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic
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-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-hls-lfcd-lds-driver ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-turtlebot-teleop ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make
wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
英特尔®Joule™手工安装:
(1)安装Ubuntu的英特尔®Joule™(TurtleBot3 Premium型号)
下载英特尔®Joule™的Ubuntu 16.04版本的映像。
制作可启动的USB驱动器来安装Ubuntu:
(2)安装ROS和软件包
七、入门教程-OpenCR软件设置
OpenCR
OpenCR的ArduinoIDE设置
USB端口设置
wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
编译器设置
sudo apt-get install libncurses5-dev:i386
安装Arduino IDE
OpenCR需Arduino IDE 1.16.0及之后的版本
从官方的arduino主页下载最新版本,地址:https://www.arduino.cc/en/Main/Software
将下载的文件解压缩到所需的文件夹比如用户的根目录下tools,并从终端执行安装文件。如下:
mkdir ~/tools
wget
cd ~/tools/arduino-1.16.0
./install.sh
增加路径到环境中:
gedit ~/.bashrc
export PATH=$PATH:$HOME/tools/arduino-1.16.0
source ~/.bashrc
运行Arduino IDE
arduino
将OpenCR板移植到Arduino IDE
(1)增加Boards Manager
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
大概需要20多分钟完成。
如图:
(2)通过Boards Manager安装OpenCR软件包
点击Tools → Board → Boards Manager.
在文本框中键入OpenCR以查找包。找到OpenCR by ROBOTIS后,点击Install.
安装后,将显示“INSTALLED”
OpenCR Board列在Tools → Board 中。
(3)端口设置
(4)调制解调器删除
sudo apt-get purge modemmanager
(5)Bootloader写入
(6)Programmer 设置
(7)运行DFU模式
(8)下载bootloader
OpenCR固件的ROS设置
将TurtleBot3固件添加到OpenCR中
用于ROS的OpenCR固件(或源)是控制ROS中的Dynamixel和传感器。
固件位于OpenCR示例中,也由board manager下载。
初级版本:点击File → Examples → turtlebot3 → turtlebot_basic → turtlebot3_core
高级版本:点击File → Examples → turtlebot3 → turtlebot_premium → turtlebot3_core
点击Upload上传到OpenCR板
图示:
八、入门教程-开始使用
启动TurtleBot3
roscore
sudo chmod a+rw /dev/ttyUSB0
roslaunch turtlebot3_bringup turtlebot3_robot.launch
如果终端显示lost sync with device错误信息,则说明TurtleBot3的传感器设备必须未完全连接
现在,用各种远程操作方法测试TurtleBot3
九、入门教程-远程操作
远程操作
当在TurtleBot3的SBC上操作时,以下说明是无用的。
在远程PC上执行此操作。
TurtleBot3将由各种设备远程操作。
我们使用几种无线设备(例如PS3,XBOX 360,ROBOTIS RC100等)对其进行了测试。
该示例由ROS在Ubuntu mate 16.04上使用Raspberry Pi 3(除了通过LEAP Motion测试)和OpenCR控制Dynamixel XM-430。
键盘控制
sudo apt-get install ros-kinetic-teleop-twist-keyboard
roslaunch turtlebot3_bringup turtlebot3_teleop_key.launch
Control Your Turtlebot!
---------------------------
Moving around:
u i o
j k l
m , .
q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%
space key, k : force stop
anything else : stop smoothly
CTRL-C to quit
currently: speed 0.2 turn 1
RC100控制
PS3操纵杆
sudo apt-get install ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
roslaunch teleop_twist_joy teleop.launch
XBOX 360操纵杆
sudo apt-get install xboxdrv ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
xboxdrv --silent
roslaunch teleop_twist_joy teleop.launch
Wii遥控器
rosdep install wiimote
rosmake wiimote
rosrun wiimote wiimote_node.py
rosrun learning_wiimote turtle_teleop_wiimote
Nunchuk控制
Android控制
LEAP Motion
leapd
LeapCommandPanel
git clone [email protected]:warp1337/rosleapmotion.git
rosrun leap_motion sender.py
十、入门教程-SLAM
说明:
SLAM
日期: 2016.11.29
机器人: TurtleBot3基本模型
传感器: 激光距离传感器
包装: Gmapping/Cartographer
地点: ROBOTIS实验室和总部,15楼的走廊
时间: 55分钟
距离: 共351米
通过远程操作创建地图
export TURTLEBOT3_MODEL=basic
roslaunch turtlebot3_slam turtlebot3_slam.launch
rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
将地图保存到文件
rosrun map_server map_saver -f ~/map
十一、入门教程-导航
说明:
导航
export TURTLEBOT3_MODEL = basic
roslaunch turtlebot3_navigation turtlebot3_navigation.launch
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
参考文档:
十二、入门教程-LDS
说明:
图示:
概述
基本性能规格
项目 | 规格 |
---|---|
工作电源电压 | 5V DC±5% |
光源 | 半导体激光二极管(λ= 785nm) |
激光安全 | IEC60825-1 Class 1 |
目前的消费 | 400mA以下(冲击电流1A) |
检测距离 | 120mm〜3,500mm |
接口 | 3.3V USART(230,400 bps)每6度42bytes,全双工选项 |
环境光电阻 | 10,000 lux 或更小 |
采样率 | 1.8kHz |
尺寸 | 69.5(W)×95.5(D)×39.5(H)mm |
质量 | 低于125g |
测量性能规格
项目 | 规格 |
---|---|
距离范围 | 120〜3500mm |
距离精度(120mm〜499mm) | ±15mm |
距离精度(500mm〜3,500mm) | ±5.0% |
距离精度(120mm〜499mm) | ±10mm |
距离精度(500mm〜3,500mm) | ±3.5% |
扫描速率 | 300±10rpm |
角范围 | 360° |
角分辨率 | 1° |
规范文档
在TurtleBot3使用LDS