旨在用于教育,研究,产品原型和爱好应用的目的。 
TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。 
由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。

turtlebot3入门教程

turtlebot3入门教程-目录

说明

  • 介绍Turtlebo3是TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人。
  • 它旨在用于教育,研究,产品原型和爱好应用的目的。
  • TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。
  • 由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。

目录

TurtleBot3入门教程-概述
TurtleBot3入门教程-特点
TurtleBot3入门教程-规格
TurtleBot3入门教程-硬件设置
TurtleBot3入门教程-PC软件设置
TurtleBot3入门教程-SBC软件设置
TurtleBot3入门教程-OpenCR软件设置
TurtleBot3入门教程-开始使用
TurtleBot3入门教程-遥控
TurtleBot3入门教程-SLAM
TurtleBot3入门教程-导航
TurtleBot3入门教程-LDS

参考:

  • http://turtlebot3.readthedocs.io/en/latest/
  • https://github.com/ROBOTIS-GIT/turtlebot3
  • https://github.com/ROBOTIS-GIT/OpenCR

、入门教程-概述

说明

  • TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人。
  • 它旨在用于教育,研究,产品原型和爱好应用的目的。
  • TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。
  • 由于提供了其他选项,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。
  • TurtleBot3意愿通过应用SBC(单板计算机),深度传感器和3D打印的最新技术进步,成为创客运动的中心。

在ROSCon2016上介绍Turtlebot3

  • 作者:Yoonseok Pyo,Yoshihiro Shibata,Leon Jung,Darby Lim(ROBOTIS)
  • PDF:http://roscon.ros.org/2016/presentations/ROSCon2016_Turtlebot3_ROBOTIS.pdf
  • 视频:https://vimeo.com/187699447

硬件

  • Turtlebot3的默认组件如下:底盘,电机,车轮,OpenCR板,计算机,传感器,电池。
  • 底盘是华夫板,板支撑,球形脚轮等。底盘的大特征在于Waffle板,这是所有TurtleBot3部件中最大的,但是比手小。
  • 该板将提供为注塑成型,并且其实现低成本,但是利用CAD数据来3D打印也一样可用。
  • Turtlebot3 Basic是一个两轮差速驱动类型的平台,但也能够支持不同结构和机械定制如:汽车,自行车,拖车等。
  • CAD数据发布到Onshape,这是一个全云3D CAD编辑器。
  • 通过使用计算机或甚至通过便携式设备通过Web浏览器访问。
  • 这里允许协同完成绘图和组装工作。
  • CAD模型:
    • TurtleBot3基本型号:https://goo.gl/n3bGNr
    • TurtleBot3高级版:https://goo.gl/wCDvVI

软件

  • 该软件以完全开源的形式提供。主要许可证是Apache 2.0许可证。预计全部资源发布是2017年第一季度。

  • https://github.com/ROBOTIS-GIT/turtlebot3

  • https://github.com/ROBOTIS-GIT/OpenCR

开源许可证

  • 硬件许可证:

    • TurtleBot3是一个开源硬件项目,如开源硬件语言原则和定义v1.0所述。
  • 软件许可证:

    • 主要软件是根据Apache 2.0许可证发布的。然而,一些资源是根据根据许可证3-Clause BSD License/GPLv3。
  • 文件许可证:

    • 文件根据CC BY 4.0发布。

资源

  • http://www.turtlebot.com/
  • http://turtlebot3.rtfd.io/
  • http://wiki.ros.org/Robots/TurtleBot
  • https://github.com/ROBOTIS-GIT/open_manipulator
  • https://github.com/ROBOTIS-GIT/DynamixelSDK
  • https://github.com/ROBOTIS-GIT/dynamixel-workbench

出版物

  • IEEE Spectrum: http://spectrum.ieee.org/automaton/robotics/diy/robotis-and-osrf-announce-turtlebot-3-smaller-cheaper-and-modular
  • 3D Printing Industry:https://3dprintingindustry.com/news/advances-robotics-made-easier-forthcoming-3d-printed-turtlebot-96844/
  • ROBOHUB: http://robohub.org/celebrating-9-years-of-ros/

入门教程-特点

说明:

  • 介绍Turtlebot3主要特点

合作方

世界上最受欢迎的ROS平台

  • TurtleBot是世界上最受欢迎的开源机器人用于教育和研究。
  • 新一代“TurtleBot3”是一种小型,低成本,完全可编程,基于ROS的移动机器人。
  • 它旨在用于教育,研究,产品原型和爱好应用的目的。

低成本

  • TurtleBot是为了从教育和原型研究和发展的成本意识的需求而建立的。
  • TurtleBot3是配备了通用360度LiDAR的SLAM移动机器人中最经济的机器人。

小尺寸

  • TurtleBot3 Basic的尺寸为140mm x 140mm x 150mm(长x宽x高)。
  • 它的大小是TurtleBot1和2的1/4大小, 甚至可以在背包里携带。

ROS标准

  • TurtleBot品牌由Open Source Robotics Foundation, Inc. (OSRF)管理,OSRF开发和管理ROS。如今,ROS已经成为世界各地所有机器人的向往参与的平台。TurtleBot可以集成到现有的基于ROS的机器人,同时也是学习ROS的经济实惠的平台。

结构可扩展性

  • TurtleBot3鼓励用户使用一些替代选项自定义其机械结构:开源嵌入式板(作为控制板),计算机和传感器。
  • Turtlebot3 Basic是一个两轮差速驱动类型的平台,但能够在许多方面比如结构和机械定制:汽车,自行车,拖车等。
  • 延伸想象之外的想法。

移动机器人的模块化执行器

  • TurtleBot3允许通过使用2个Dynamixels在车轮关节上获得精确的空间数据
  • Dynamixel X系列可以通过以下6种操作模式之一进行操作:
    • 车轮的速度控制模式
    • 扭矩控制模式
    • 关节的位置控制模式等
  • Dynamixel甚至可用于制作移动操纵器,因为它轻巧,但可以用速度,扭矩和位置精确控制
  • Dynamixel是使TurtleBot更完善的核心组件。

开源ROS的控制板

  • 开源控制板OpenCR,它是软硬件都开源的,适用于ROS通信的控制板。
  • 它具有不仅支持控制Dynamixel而且还支持基本识别任务的ROBOTIS传感器,如触摸传感器,红外传感器,彩色传感器等。
  • 它在板内有一个IMU传感器,以便它可以加强许多精确的控制。
  • 该板具有3.3V,5V,12V电源,以加强可用的计算机设备阵容。

强大的传感器

  • TurtleBot3 Basic使用360°LiDAR。
  • TurtleBot3高级型号配备360°激光雷达,但另外还提供了一个功能强大的英特尔®实感™与识别SDK。
  • 这将是制作移动机器人的最佳解决方案。

开放源码

  • TurtleBot3的硬件,固件和软件是作为开源提供的。
  • 基本上,TurtleBot3的所有组件都将作为注塑成型提供,并且它实现了低成本,但是也提供用于3D打印的CAD数据。
  • CAD数据发布到Onshape,这是一个全云3D CAD编辑器。通过使用计算机或甚至通过便携式设备通过Web浏览器访问。这里允许协同完成绘图,组装工作。
  • 此外,OpenCR板的所有细节,包括电路图,PCB Gerber,BOM和固件源也在开源许可下,针对ROS用户和社区开源。

入门教程-规格

说明

  • 介绍Turtlebot3规格

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:

    • Intel® Joule™ : http://ark.intel.com/products/96414/Intel-Joule-570x-Developer-Kit
    • Raspberry Pi 3 Model B : https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
  • 传感器:

    • Laser Distance Sensor :

    图示:

    概述

    • HLS-LFCD LDS用于TurtleBot3的两种型号。
    • LDS(激光距离传感器)是将由障碍物检测收集的数据发送到用于SLAM技术的主机的传感器

    基本性能规格

    项目 规格
    工作电源电压 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°
    角分辨率

    规范文档

    • 包括内容如基本性能,测量性能,机构布局,光路,数据信息,引脚描述,命令。

    在TurtleBot3使用LDS

    • HLS-LFCD LDS用于TurtleBot3 Basic和TurtleBot3 Premium。
    • 图示:
    • Intel® Realsense™ R200 : https://software.intel.com/en-us/RealSense/R200Camera
  • 控制板

    • OpenCR :

图示:

概述

  • OpenCR是TurtleBot3的主控制器板。
  • OpenCR或ROS的开源控制模块是为ROS嵌入式系统开发的,提供了完整的开源硬件和软件。
  • Board的所有内容包括Schematics,PCB Gerber,BOM和TurtleBot3的固件源可以根据开源许可证免费分发给用户和ROS社区。
  • STM32F7系列是OpenCR板内的主芯片,具有非常强大的ARM Cortex-M7浮点单元。
  • OpenCR的开发环境从支持为年轻学生的Arduino IDE和Scratch到传统固件开发环境的专家。
  • 该板提供一组数字和模拟输入/输出引脚,可从pne电路连接到另一个或内置IMU传感器。
  • 该板的通信接口包括与PC通信的USB和用于其他嵌入式设备的UART,SPI,I2C,CAN。
  • 要使用SBC,OpenCR板可以提供最佳解决方案。
  • 它支持一些电源输出:12V,5V,3.3V的SBC和传感器。
  • 它还在两个外部电源输入中具有热插拔功能:电池和SMPS。

规格

项目 规格
微控制器 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
  • 从“shore power”(12V,5A SMPS)切换到“移动电源”(电池)的热插拔:电源板支持不间断电源(UPS)类型的功能。
  • 执行器

    • Dynamixel X series : http://en.robotis.com/index/product.php?cate_code=10121110

入门教程-硬件设置

硬件图:

组件

  • TurtleBot3有两种不同的型号:Basic和Premium。
  • 两种型号之间的巨大差异是电机,SBC(单板计算机)和传感器。
  • 以下列表显示了其组件:
每个模型的部件数量 基本 高级
机壳 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

装配

  • 每个TurtleBots在箱子里都没有组装。按照说明组装TurtleBot3。

五、入门教程-PC软件设置

说明:

  • 介绍如何在PC上安装相关系统和软件。
  • 测试的系统版本是Ubuntu 16.04.1, ROS版本是Kinetic Kame

安装Ubuntu

  • 在远程PC(台式机或笔记本电脑)中安装
  • 系统版本Ubuntu 16.04.1:
    • https://www.ubuntu.com/download/desktop
    • https://www.ubuntu.com/download/desktop/install-ubuntu-desktop

安装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
  • 详细安装过程:http://wiki.ros.org/kinetic/Installation/Ubuntu

安装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
  • turtlebot3
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make
  • 如果catkin_make完成没有任何错误,使用TurtleBot3的准备将完成。

网络配置

  • ROS需要IP地址在turtlebot和远程PC之间进行通信
  • 分别在turtlebot和PC,执行如下命令获得对应的IP地址:
ifconfig
  • 修改.bashrc
gedit ~/.bashrc
  • TURTLEBOT配置如下:
ROS_MASTER_URI = http://IP_OF_PC:11311
ROS_HOSTNAME   = IP_OF_TURTLEBOT
  • PC配置如下:
ROS_MASTER_URI = http://IP_OF_PC:11311
ROS_HOSTNAME   = IP_OF_PC
  • ROS_MASTER 运行在远程PC上。

  • 让环境生效:

source ~/.bashrc

入门教程-SBC软件设置

简便安装:

  • 在Raspberry Pi 3(TurtleBot3 Basic)通过镜像安装Ubuntu MATE和Turtlebot3
  • 利用SDcard读卡器来安装TurtleBot3 Basic映像
  • SD卡的容量应大于8 GB,以便安装TurtleBot3 Basic映像
  • 磁盘映像文件包含Ubuntu MATE 16.04.1和ROS kinetic kame
  • Raspberry Pi 3镜像下载:https://goo.gl/uOvWLh
  • 镜像安装方法:

安装前准备

  • 镜像系统 官网下载
  • 下载Win32DiskImager软件并安装
  • 一张Micro SD卡
  • 一块树莓派3开发板
  • 树莓派3电源
  • HDMI线
  • 支持HDMI的显示器或电视机
  • 一条网线(可选)
  • 键盘
  • 鼠标
  • 电脑,安装Windows系统

系统安装步骤

  1. 格式Miscro SD卡为FAT32格式

  2. 启动Win32DiskImager

  3. Image File处选择Raspbian映像文件

  4. Device处选择盘符为你读卡器的盘符

  5. 点Write,然后点一下Yes确定操作,开始系统写入

  6. 写入完成,提示成功

  7. Micro SD卡插入树莓派,接通电源启动

树莓派3手工安装:

  • 适用在树莓派3上安装(TurtleBot3 Basic)

(1)安装Ubuntu MATE for Raspberry Pi 3

  • 下载Raspberry Pi 3版本的Ubuntu MATE 16.04.1。
  • 下载地址:https://ubuntu-mate.org/download/
  • 下载镜像:https://ubuntu-mate.org/raspberry-pi/
  • 安装镜像:参见上文

(2)为Raspberry Pi 3安装TurboBot3依赖的ROS包

  • 安装依赖包:
sudo apt-get install ros-kinetic-amcl ros-kinetic-rosserial ros-kinetic-map-server ros-kinetic-move-base
  • 安装ROS:
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
  • 或者采用官方指南:http://wiki.ros.org/kinetic/Installation/Ubuntu
  • 安装turtlebot依赖:
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
  • 安装turtlebot
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make
  • 如果catkin_make完成没有任何错误,使用TurtleBot3的准备将完成。
  • USB设置:以下允许将USB端口用于没有root权限的OpenCR板
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™手工安装:

  • 适用在英特尔®Joule™安装(TurtleBot3 Premium)

(1)安装Ubuntu的英特尔®Joule™(TurtleBot3 Premium型号)

  • 下载英特尔®Joule™的Ubuntu 16.04版本的映像。

    • 镜像地址:https://developer.ubuntu.com/core/get-started/intel-joule#alternative-install:-ubuntu-desktop-16.04-lts
  • 制作可启动的USB驱动器来安装Ubuntu:

    • https://software.intel.com/en-us/node/705675#ubuntu
    • https://software.intel.com/en-us/node/700692

(2)安装ROS和软件包

  • 参考树莓派3的安装ROS和软件包方法

入门教程-OpenCR软件设置

OpenCR

  • OpenCR根据SBC的指令控制Dynamixels。为此,应在板中构建特定的固件。请参阅说明并配置设置。

OpenCR的ArduinoIDE设置

  • 按照说明在远程PC上获得OpenCR Arduino开发环境

USB端口设置

  • 使OpenCR USB端口能够在没有root权限的情况下上传Arduino IDE程序。
  • 执行如下命令:
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

编译器设置

  • 由于OpenCR库是为32位平台构建的,64位PC需要用于Arduino IDE的32位编译器相关内容:
  • 执行如下命令:
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

  • 在linux下,新终端执行:
arduino
  • 图示:

将OpenCR板移植到Arduino IDE

(1)增加Boards Manager

  • 运行IDE,点击File → Preferences, 复制如下内容到Additional Boards Manager URLs:
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)端口设置

  • 此步骤显示程序上传的端口设置。
  • OpenCR应通过USB端口连接到PC和OpenCR板。
  • 选择Tools → Port → /dev/ttyACM0.
  • 图示:
  • /dev/ttyACM0的值可能会根据不同PC环境有差异。

(4)调制解调器删除

  • 在使用Arduino IDE编程并将程序上传到OpenCR后,OpenCR将重新启动并重新连接。
  • 同时,Linux的调制解调器相关软件包将发送AT命令来管理设备。
  • 因此显示OpenCR上的连接错误,因此此步骤应该预先完成。
sudo apt-get purge modemmanager

(5)Bootloader写入

  • STM32F7xx用于OpenCR板上的主MCU,支持DFU(设备固件升级)
  • 这使MCU的内置引导加载程序本身能够通过使用USB引导DFU协议,主要用于引导加载程序初始化,恢复模式和引导加载程序更新
  • 最大的优点是让用户能够使用USB引导加载程序,无需其他JTAG设备
  • 使用嵌入在MCU中的DFU模式写入固件,而无需编写/调试设备,例如STLink。

(6)Programmer 设置

  • 选择Tools → DFU-UTIL
  • 图示:

(7)运行DFU模式

  • 按下Reset同时按下Boot键,就能激活DFU模式
  • 图示:

(8)下载bootloader

  • 点击Tools → Burn 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

  • [Remote PC]运行ROScore
roscore
  • [TurtleBot3 SBC]给LiDAR连接到ttyUSB0套接字的读/写权限
sudo chmod a+rw /dev/ttyUSB0
  • [TurtleBot3 SBC]启动launch文件
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。

键盘控制

  • [Remote PC] 安装软件包
sudo apt-get install ros-kinetic-teleop-twist-keyboard
  • [Remote PC] 启动进行简单远程操作测试
roslaunch turtlebot3_bringup turtlebot3_teleop_key.launch
  • [Remote PC] 如果文件成功启动,终端将显示以下内容。
Control Your Turtlebot!
---------------------------
Moving around:u    i    oj    k    lm    ,    .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 smoothlyCTRL-C to quitcurrently:    speed 0.2       turn 1

RC100控制

  • 使用ROBOTIS RC100的设置已经在ROS的OpenCR固件中,因此没有更多的必需软件包

PS3操纵杆

  • [Remote PC] 通过蓝牙或USB电缆将PS3操纵杆连接到PC。
  • [Remote PC] 安装PS3操纵杆软件包
sudo apt-get install ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
  • [Remote PC] 启动PS3操纵杆的遥控软件包
roslaunch teleop_twist_joy teleop.launch

XBOX 360操纵杆

  • [Remote PC] 通过蓝牙将PS3操纵杆连接到PC。
  • [Remote PC] 安装XBOX 360操纵杆软件包
sudo apt-get install xboxdrv ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
  • [Remote PC] 运行XBOX 360操纵杆的遥控软件包
xboxdrv --silent
roslaunch teleop_twist_joy teleop.launch

Wii遥控器

  • [Remote PC] 通过蓝牙将Wii遥控器连接到PC
  • [Remote PC] 安装Wii遥控器软件包
rosdep install wiimote
rosmake wiimote
  • [Remote PC] 运行Wii遥控器的遥控器软件包
rosrun wiimote wiimote_node.py
rosrun learning_wiimote turtle_teleop_wiimote

Nunchuk控制

  • 待完善

Android控制

  • 下载ROS Teleop并运行应用程序

LEAP Motion

  • [Remote PC] 通过蓝牙将LEAP运动连接到PC。
  • [Remote PC] 安装LEAP Motion软件包
    • https://www.leapmotion.com/setup
    • https://developer.leapmotion.com/downloads/sdk-preview
  • 简单安装方法:
leapd
LeapCommandPanel
git clone git@github.com:warp1337/rosleapmotion.git
  • [Remote PC] 运行LEAP Motion
rosrun leap_motion sender.py

入门教程-SLAM 

说明:

  • 介绍如何通过turtlebot3进行SLAM测试

SLAM

  • The Simultaneous Localization and Mapping(SLAM)
  • 同步定位与地图构建(SLAM或Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。(维基百科)
  • SLAM技术是TurtleBot3的典型功能,是Turtlebot品牌的一类。这里的视频显示了TurtleBot3可以绘制多少精确的地图,即使它是一个小的便宜的机器人平台。
  • 相关信息:
日期: 2016.11.29
机器人:    TurtleBot3基本模型
传感器:    激光距离传感器
包装: Gmapping/Cartographer
地点: ROBOTIS实验室和总部,15楼的走廊
时间: 55分钟
距离: 共351米

通过远程操作创建地图

  • [Remote PC]打开终端,然后运行SLAM启动文件
export TURTLEBOT3_MODEL=basic
roslaunch turtlebot3_slam turtlebot3_slam.launch
  • [Remote PC] 通过Rviz可视化模型
rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz

将地图保存到文件

  • [Remote PC] 打开终端,然后运行地图保存节点
rosrun map_server map_saver -f ~/map

十一入门教程-导航 

说明:

  • 介绍如何利用Turtlebot3进行导航
  • 导航技术的主要用途是使机器人进入期望的位置。

导航

  • [Remote PC]启动导航文件
export  TURTLEBOT3_MODEL = basic
roslaunch turtlebot3_navigation turtlebot3_navigation.launch
  • 启动Rviz
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
  • [Remote PC] 在开始导航之前,TurtleBot3应该知道它的位置和姿势。
  • 要给出初始数据,请按照说明进行操作。
    • 点击2D Pose Estimate按钮
    • 通过单击并拖动地图上的方向来设置地图上的大致位置。
  • 箭头的每个点意味着TurtleBot3的预期姿势。激光扫描仪将在近似位置绘制线条,如地图上的墙壁。
  • 如果图形没有显示线条,请重复上述过程。
  • [远程PC]当TurtleBot3已经定位,它将自动计划路径。
  • 要发送目标位置:
    • 点击 2D Nav Goal按钮
    • 点击地图上你想要的TurtleBot驱动和拖动方向TurtleBot应该指向地方
  • 如果目标位置的路径被阻止,这可能会失败。
  • 要在机器人到达目标位置之前停止机器人,请发送TurtleBot3的当前位置。

参考文档:

  • http : //wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map

十二入门教程-LDS

说明:

  • 介绍Turtlebot3的激光雷达LDS

图示:

概述

  • HLS-LFCD LDS用于TurtleBot3的两种型号。
  • LDS(激光距离传感器)是将由障碍物检测收集的数据发送到用于SLAM技术的主机的传感器

基本性能规格

项目 规格
工作电源电压 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°
角分辨率

规范文档

  • 包括内容如基本性能,测量性能,机构布局,光路,数据信息,引脚描述,命令。

在TurtleBot3使用LDS

  • HLS-LFCD LDS用于TurtleBot3 Basic和TurtleBot3 Premium。

turtlebot3入门教程相关推荐

  1. Turtlebot3入门教程(Burger)

    说明 随便写写,整理思绪,并无他意 在Ubuntu上远程连接树莓派,可采用如下办法: ssh [用户名]@[IP] 然后输入密码 一. PC系统软件安装 (1)安装Ubuntu16.04 略 (2)安 ...

  2. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  3. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  4. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  5. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  6. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  7. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  8. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  9. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

最新文章

  1. 7.1 pdo 宝塔面板php_宝塔面板配置阿里云服务器步骤和教程
  2. 网络数据包收发流程(三):e1000网卡和DMA
  3. php文件上传参数设置
  4. [_CN] Eclipse精要与高级开发技术 note
  5. zabbix分布式监控环境完全编译安装部署
  6. bzoj4773 负环
  7. 论文英文参考文献[10]的时候后面多空格_英语论文写作中空格及特殊符号的正确使用方法...
  8. ENVI5.1中Landsat 8数据大气校正
  9. C++中清理map的代码
  10. 支持商用,开源的商城系统,推荐给你
  11. mdoublem matlab,imhist以及matlab图像矩阵的数据类型
  12. 计算机网络中职试题,中职计算机网络基础试题
  13. java ad freeradius_freeradius集合mariadb+深信服的AC做实名认证
  14. 微软亚洲研究院公布12项顶级研发成果(组图)
  15. PVE系列教程(七)、安装iKuai软路由
  16. 理财投资 之 基金投资 - #1篇:基金基础知识扫盲
  17. idea中执行“npm”命令,提示‘npm‘ 不是内部或外部命令,也不是可运行的程序
  18. java 面试知识点总结
  19. 蓝桥杯单片机-DS1302时钟模块
  20. 计算机电源高效率模式,Windows7的三种电源模式对硬件工作频率的影响

热门文章

  1. python-if条件判断与while/for循环
  2. 11 Python之初识函数
  3. CAS单点登陆的两个原理图
  4. 51Nod--1100-斜率最大
  5. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系...
  6. Java进阶04 RTTI
  7. EBS业务学习之应付INVOICE类型
  8. java指令和javac指令总结
  9. Java学习笔记5-1——多线程
  10. python提取网页中p标签中的内容_使用Python进行爬虫的初学者指南