turtlebot3入门教程

旨在用于教育,研究,产品原型和爱好应用的目的。 
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 / s0.26m / s
最大转速2.84rad / s(162.72deg / s)1.82rad / s(104.27deg / s)
最大有效载荷15kg30kg
尺寸(长x宽x高)176mm x 138mm x 188mm306mm×283mm×143mm
重量(+ SBC +电池+传感器)0.995kg1.745kg
攀登门槛10mm以下
预计运行时间2h 30m2h
预计充电时间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板824
35mm板支架412
45mm板支架1210
板支持1212
链轮22
橡胶轮胎22
球脚轮12
钢球12
螺栓套11
螺母组11
铆钉610
铆钉间隔44
梦幻L支架 2
发动机XL430-W350-T2 
XM430-W210-T 2
Horn for XM430-W210-T 2
控制器OpenCR11

功率

电池

电缆

SMPS 12V 5A11
AC代码11
LIPO电池11.1V 1800mAh11
LIPO电池充电器11
电池转换电缆11
RaspberryPi电源(5V)电缆1 
焦耳电源(12V)电缆 1

通讯

电缆

机器人电缆-X3P 100mm1 
机器人电缆-X3P 180mm11
机器人电缆-X3P 240mm 1
USB2.0到microB电缆22
SBCRaspberryPi 3型号B1 
英特尔®Joule™570x 1
传感器激光距离传感器11
英特尔®Realsense™R200 1
记忆MicroSD卡8G1 
工具螺丝刀11
铆接工具11
Velcro电池11
USB2LDS11
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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UI设计工具比较:Sketch、Adobe XD、墨刀、Mockplus、Axure RP

UI设计工具,分为2个派系。 其中,最大、最主流的派系,是Sketch、Adobe XD、墨刀这个派系。 这个派系的软件,操作方式、思路都非常接近,连常用快捷键都一样,会一个就等于都会了。 在一个无限大的画布上&…

光学字符识别 Tesseract-OCR 的下载、安装和基本用法

OCR:即Optical Character Recognition,光学字符识别,是指检查纸或者图片上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程; Tesseract-OCR:一款由…

利用官方支持为基于GitHub Pages的Hexo博客启用HTTPS

2022-01-25 更新:博客新地址:https://www.itbob.cn/,文章距上次编辑时间较远,部分内容可能已经过时! HTTP(超文本传输协议),是一个基于请求与响应,无状态的,应…

标注功能介绍

Mockplus3.5.0.1版本中,新增了标注功能。多种标注模式,智能生成,随时查看。原型设计效率更高。 Mockplus的标注功能有以下四种模式: 1、无选中标注 在未选中任何组件时,按住Ctrl键,鼠标经过某个组件&#…

REVERSE-COMPETITION-HGAME2022-Week3

REVERSE-COMPETITION-HGAME2022-Week3Answers Windowscreakme3hardenedfishmanAnswer’s Windows 含有GUI的程序,ida打开,ShiftF12打开字符串窗口,发现"right"和"wrong" 对"right"查找交叉引用,来…

NuGet的简单使用

什么是NuGet? NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,NuGet能够令你在项目中添加、移除和更新引用的工作变得更加…

Python3 爬虫学习笔记 C02 【基本库 requests 的使用】

Python3 爬虫学习笔记第二章 —— 【基本库 requests 的使用】文章目录【2.1】 requests 简介【2.2】 requests 基本用法 【2.3】 requests 构建 GET 请求 【2.3.1】 基本用法【2.3.2】 二进制数据抓取 【2.3.3】 添加 headers【2.4】 requests 构建 POST 请求 【2.5】 request…

REVERSE-COMPETITION-HGAME2022-Week4

REVERSE-COMPETITION-HGAME2022-Week4( WOW )serverezvmhardasm( WOW ) 32位exe,ida打开 观察伪代码逻辑,上面的红框中,输入经过加密,密文放入Buf2中,然后Buf2和已知的密文res比较 比较完,打印"win&q…

Python3 爬虫学习笔记 C03 【Ajax 数据爬取】

Python3 爬虫学习笔记第三章 —— 【Ajax 数据爬取】文章目录【3.1】Ajax 简介 【3.2】解析真实地址提取【3.1】Ajax 简介 Ajax — Asynchronous Javascript And XML(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。可…

REVERSE-COMPETITION-HWS-5TH-2022

REVERSE-COMPETITION-HWS-5TH-2022re1re2re3re1 64位exe,ida打开,来到main函数 输入的长度应为32,输入经过TEA加密,密文与已知的cipher进行比较 进入TEA函数,发现是魔改TEA,需一次性传入8个unsigned int&…

REVERSE-COMPETITION-DSCTF-2022

REVERSE-COMPETITION-DSCTF-2022catchmeFFunctionnothingbad_applefantastic_cpucatchme 安卓逆向,java层传递输入,调用native层的check方法 ida打开.so文件,没有直接找到check方法,JNI_OnLoad也看不出什么 Findcrypt查到AES的S盒…

01-单一职责原则(SPR)

1. 背景 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 2. 定义 不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 3.…

Python3 已经安装相关库,Pycharm 仍然报错 ModuleNotFoundError: No module named 'xxxxxx' 的解决办法

以 requests 库为例,打开 cmd,运行命令 pip install requests,即可安装 requests 库,由于我已经安装过,所以会提示 Requirement already satisfied 此时,我们使用 Pycharm 运行以下代码: impo…

Sharepoint学习笔记—Site Definition系列-- 3、创建ListDefinition

创建一个List Definition有多条途径,这里由于我们要基于前面的用户自定义Content Type来创建一个List Defintion,所以我们就需要使用到List Definition From Content Type模板。 这里先大致描述如何创建List Definition,然后重点介绍一下Li…

Sharepoint学习笔记—error处理-- The user does not exist or is not unique.

看到网上不少人遇到过这种类似的错误,而产生这种错误的原因也有多种,我产生此错误的背景是在试图通过ECMAscript对象模型把一个User添加到某个指定的Group中时遇到的。 问题1.当我试图把一个User添加到Sharepoint的某个指定的Group,…

Knockout学习笔记之二($root,$parent及$data的区别)

以下是我从Google上找到的一个例子,非常生动形象,我修改了部分代码,具体内容如下: 对于$root 与$parent的区别: $root refers to the view model applied to the DOM with ko.applyBindings;译:$root 是指…

GitHub 学生认证,申请 GitHub 学生包

GitHub 面对学生推出了学生认证服务,通过认证后就可以得到学生包,学生包大概有十几项优惠,包括 DATADOG Pro 帐户、免费两年的10台服务器,Icons8 3个月的带图标,照片,插图和音乐订阅服务、JETBRAINS 专业桌…

Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告

在学习 Python3 爬虫关系型数据库储存时,利用 pymysql 连接 MySQL 建表,测试用的代码如下,第一句 SQL 用于获取当前 MySQL 的版本信息,第二句 SQL 执行创建 spiders 数据库的操作,如果程序代码正确,将会输出…

完美解决 bash: hexo: command not found

背景介绍:有好几天没动过 Hexo 博客了,今天准备更新的时候输入 hexo s,报错 bash: hexo: command not found,这是啥情况?以前都好好的,想了一下,大概是这几天折腾各种 Python 库的原因&#xff…

Sharepoin学习笔记 —架构系列--02 Sharepoint的处理(Process)与执行模型(Trust Model) 1

Sharepoint210有四种执行模型: 1、完全信任执行模型(Full Trust) 2、Bin/CAS 执行模型 (1与2都属于场解决方案) 3、沙盒执行模型(Sand Box) 4、 混合执行方法(Hybrid Approach) Sharepoint最简单的处理模型就是一个完整的Asp.net应…