精华内容
下载资源
问答
  • TurtleBot3 TurtleBot3 AutoRace的ROS软件包 版 Kinetic + Ubuntu Xenial Melodic + Ubuntu仿生 适用于TurtleBot3的ROBOTIS电子手册 Wiki的turtlebot3_autorace软件包 (元包) 与TurtleBot3相关的开源 与...
  • https://www.ncnynl.com/category/turtlebot3-tutorial/ 官方教程 https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/ 注意 需要注意的是ROS需要IP地址在turtlebot和远程PC之间进行通信 修改....
  • 我自己录了个小视频,链接:TurtleBot3-Burger硬件安装记录 萌新之一镜到底&手机剪辑。 这个链接有智能佳提供的装配视频和硬件清单: Turtlebot3入门教程 —— 硬件配置( Hardware Setup )。 官方提供的说明书手册...
  • 官方turtlebot3_simulations总是编译错误,这个是我已经修改好的包,修改了-std=c++11和isnan→std::isnan其他部分未改动。
  • Turtlebot3硬件都是开源的,您可以在其Wiki上找到汉堡和华夫饼干底板的STL文件。 您可以3D打印多余的底板,并根据需要修改Turtlebot3。 以下是TB3 Burger的3级Mod的示例。 它带有8个基板,而我3D打印了另一个基板,...
  • TurtleBot3 TurtleBot3的ROS 1软件包 开发 主 Kinetic + Ubuntu Xenial Melodic + Ubuntu仿生 Noetic + Ubuntu焦点 TurtleBot3的ROS 2软件包 ros2-devel ros2 短跑+ Ubuntu Bionic Foxy + Ubuntu焦点 适用于...
  • turtlebot3 waffle pi 基础教程,包括对机器人的简单介绍,机器人硬件的组装,软件的安装以及一些功能实现的教程。
  • sudo apt install ros-${ROS_DISTRO}-turtlebot3 ros-${ROS_DISTRO}-navigation ros-${ROS_DISTRO}-dwa-local-planner ros-${ROS_DISTRO}-slam-karto 使用方法 自主探索 该程序在Ubuntu 16.04+kinetic上测试通过, ...
  • turtlebot3功能包,下载编译即可用
  • ROS中用于移动机器人(turtlebot3_burger)定位的粒子滤波算法的实现。 内容: ->包含算法所需的里程表和激光雷达数据的文件夹 ->每个步骤都包含粒子数据的文件夹 >包含地图参数的文件夹 >绘制所选地图及其特征...
  • Turtlebot3_Gripper 带抓手的Turtlebot 3。 配置 cd ~/catkin_ws/src,, git clone , cd .. , catkin build , source ~/catkin_ws/devel/setup.bash , echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc , ...
  • turtlebot3激光雷达Qt程序源码,串口驱动程序及数据解析源码,亲测可用。
  • TURTLEBOT3的差异控制 (自动移动机器人) 对具有差动驱动的机器人进行运动学控制。 运行脚本时,可以在手动和自动模式之间切换。 在手动模式下,您可以设置机器人的线速度和角速度。 在自动模式下,您可以设置...
  • TurtleBot3 TurtleBot3交付的ROS软件包 版 Kinetic + Ubuntu Xenial Melodic + Ubuntu仿生 -- 适用于TurtleBot3的ROBOTIS电子手册 Wiki的turtlebot3_deliver软件包 (元包) 与TurtleBot3相关的开源 与TurtleBot3...
  • TurtleBot3 TurtleBot3应用程序的ROS软件包 版 Kinetic + Ubuntu Xenial Melodic + Ubuntu仿生 适用于TurtleBot3的ROBOTIS电子手册 Wiki的turtlebot3_applications软件包 (元包) 与TurtleBot3相关的开源 与...
  • Turtlebot 3 Autorace仿真是一个ROS包,其允许运行turtlebot3_autorace从ROBOTIS-GIT中模拟。 它是完全可参数化和可定制的。 接下来,将按照说明开始使用标准示例,并定制卡车以测试包装。 链接到视频: 入门 假定...
  • turtlebot3_simulations:TurtleBot3的模拟
  • turtlebot3的硬件组装手册,这个是burger的安装手册,从官网wiki上下的,因为是放在google上的特作此备份。
  • turtlebot3_msgs:TurtleBot3的ROS消息包
  • TurtleBot3练习:移动 TurtleBot3基本电动机操作实践。 练习套餐! 这是用于在TurtleBot3上练习电机消息用法的教程包。 TurtleBot3위한위한익히ROS튜토리얼지입니다。 由KAsimov ROS开发项目构建: ://kasimov....
  • turtlebot3 waffle pi 的入门教程,适合菜鸟入门使用。
  • turtlebot3.tar.gz

    2020-02-09 17:11:08
    文档包含turtlebot3的所有安装文件以及仿真,还有自己写的一些控制脚本,使用详情可以参考我的博客:https://blog.csdn.net/qq_37668436/article/details/104221075
  • Turtlebot3具有3个模型[burger,waffle,waffle_pi]。\ 已编辑waffle_pi urdf文件,其中已删除所有传感器。 因此,仅使用“华夫饼” 怎么跑 1号航站楼:- export TURTLEBOT3_MODEL= " waffle " roslaunch turtlebot...
  • 机器人研究 大学专题 环境 Ubuntu 18.04 ROS1旋律 src / 所有ROS封装 配套 square_walk_control:控制机器人走正方形,每五秒转向 ... prevent_obstacle_control:在安全距离内,Turtlebot3会倒行
  • turtlebot3_from_scratch:具有EKF SLAM的Turtlebot3和Scratch的逆运动学
  • ROS开源项目turtlebot3

    2018-01-17 12:28:16
    ROS开源项目turtlebot3完整代码 TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人。 它旨在用于教育,研究,产品原型和爱好应用的目的。 TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲...
  • turtlebot3入门教程

    千次阅读 2020-03-12 09:42:05
    TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。 由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。 turtlebot3入门教程 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

    硬件

    • 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

    开源许可证

    资源

    • 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:

    • 传感器:

      • 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。
      • 图示:
        请输入图片描述
       

       

    • 控制板

      • 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)类型的功能。

     



    入门教程-硬件设置
     

    硬件图:

    请输入图片描述

    组件

    • 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型号)

    (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    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控制

    • 使用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控制

    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的机器人模型文件集成到自己的项目中,并使用该模型文件在Rviz和Gzebo下进行数据可视化和运动仿真。

    简述

    机器人仿真环境与物理世界环境已高度相似,在没有真实的机器人和硬件时,这是一个很好的替代工具。另外,我们可以将算法应用到实际机器人之前在仿真环境中进行验证和测试。机器人建模可以使用urdf文件或者xacro文件,复杂的机器人对应的模型文件也比较复杂,实际项目中可以使用solidworks来自动生成。这里,我们使用turtlebot3元包中已经创建好的模型文件来进行仿真。

    turtlebot3功能包下载

    turtlebot3功能包中包含了TurtleBot3的机器人模型、SLAM和导航功能包、遥控功能包和bringup功能包等,另一个功能包turtlebot3_simulations中包含了更丰富的仿真文件。后面将从这两个包中复制出我们需要的文件来集成,并进行仿真。

    turtlebot3包下载地址:https://github.com/ROBOTIS-GIT/turtlebot3

    turtlebot3_simulations包下载地址:https://github.com/ROBOTIS-GIT/turtlebot3_simulations

    turtlebot3模型文件集成

    turtlebot3有三个版本,burger、waffle和waffle_pi,其中waffle_pi版本中配备的传感器最全面,下面使用的模型文件均为此版本。
    在这里插入图片描述
    这里在项目中创建一个功能包turtlebot3_sim_test,创建时注意添加urdf、xacro、gazebo_ros依赖
    在这里插入图片描述

    PS:关于urdf的介绍,参考:http://wiki.ros.org/urdf
            关于xacro的介绍,参考:http://wiki.ros.org/xacro

    在turtlebot3_sim_test功能包下创建几个目录:

    1. urdf:用来存储urdf 文件
      将下载的包中turtlebot3-master/turtlebot3_description/urdf目录下turtlebot3_waffle_pi.urdf.xacro文件拷贝到robot_test_ws/src/turtlebot3_sim_test/urdf目录下,这是waffle_pi机器人的模型文件
      在这里插入图片描述

    2. meshes:用来存储机器人模型的渲染文件
      将下载的包中turtlebot3-master/turtlebot3_description/meshes目录下的全部文件拷贝到robot_test_ws/src/turtlebot3_sim_test/meshes目录下,这是waffle_pi机器人的模型渲染文件
      在这里插入图片描述

    3. worlds:用来存储gazebo仿真环境文件
      将下载的包中turtlebot3_simulations-master/turtlebot3_gazebo/worlds目录下的turtlebot3_house.worldturtlebot3_world.world文件拷贝到robot_test_ws/src/turtlebot3_sim_test/worlds目录下,这是已经创建好的仿真环境,如果目前电脑的配置不高或者想快速体验的话可以集成turtlebot3_world.world文件,否则建议使用turtlebot3_house.world文件,这个文件与物理环境比较相似,不过在第一次加载时需要几分钟的时间
      在这里插入图片描述

    4. models:用来存储gazebo仿真环境配置文件
      将下载的包中turtlebot3_simulations-master/turtlebot3_gazebo/models目录下的turtlebot3_houseturtlebot3_world两个文件夹拷贝到robot_test_ws/src/turtlebot3_sim_test/models目录下,这是已经创建好的仿真环境配置文件,其中包含了gazebo中的仿真道具
      在这里插入图片描述

    5. rviz:用来存储rviz环境下机器人配置文件
      后面使用到时再进行记录

    6. launch:用来存储启动文件
      后面使用到时再进行记录

    创建完之后的完整目录如下图所示,后面仿真时会用到这些目录下的文件:
    在这里插入图片描述


    在Rviz中显示机器人模型

    下面在turtlebot3_sim_test包中添加turtlebot3_sim_rviz.launch文件来在rviz中显示机器人模型

    <launch>
        <arg name="model" default="waffle_pi" />
        
        <!-- 在参数服务器载入xacro文件 -->
        <param name="robot_description" command="$(find xacro)/xacro $(find turtlebot3_sim_test)/urdf/turtlebot3_$(arg model).urdf.xacro" />
    
        <!-- 启动rviz -->
        <node name="rviz" pkg="rviz" type="rviz" />
    
        <!-- 启动机器人状态和关节状态发布节点 -->
        <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
        <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
    
    </launch>
    

    这里加载的机器人模型文件为turtlebot3_waffle_pi.urdf.xacro,在这个xacro文件中多处引用下载的turtlebot3功能包中的turtlebot3_description目录下的文件,这里要修改成我们自己的文件路径(turtlebot3_sim_test),否则会找不到依赖文件。如果感觉麻烦的话,也可以直接将下载的turtlebot3包下的turtlebot3_description包整个复制到我们的项目中
    在这里插入图片描述

    启动launch文件

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_rviz.launch

    启动之后rviz并没有显示机器人模型
    在这里插入图片描述
    将左上角的map更改为base_link,点击左下角的Add按钮,添加RobotModel选项后即会显示机器人模型,还可以添加TF坐标关系等
    在这里插入图片描述
    可以将已设置好的配置保存为文件,下次启动launch文件时即可自动加载配置信息,在turtlebot3_sim_test包中添加rviz文件夹,点击左上角的File->Save Config As,然后选择保存的目录,输入文件名称后,点右上角的Save按钮即可保存配置文件。上面下载的功能包turtlebot3-master/turtlebot3_description/rviz目录下有一个model.rviz的配置文件,也可以直接复制到我们的robot_test_ws/src/turtlebot3_sim_test/rviz目录下来使用
    在这里插入图片描述
    再来修改下launch文件,将启动rviz的代码修改为下面的代码,修改完之后,再次启动launch文件即可自动加载配置信息

    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find turtlebot3_sim_test)/rviz/model.rviz" />
    

    在Gazebo中显示机器人模型

    注意:在执行后面的操作之前先来修改下package.xml文件,否则会出现:waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting... Error Code 12 Msg: Unable to find uri[model://turtlebot3_house]错误

    在package.xml文件中添加下面这行代码,添加的原因:打开turtlebot3_house.world文件后可以看到,其中加载仿真环境配置文件的地址默认为gazebo下的地址(/usr/share/gazebo-11/models),而并非我们项目中存放仿真环境配置文件的models目录,所以会找不到文件,报上面的错误。另外一种解决办法是,将turtlebot3_sim_test包中models下的turtlebot3_house文件夹复制到/usr/share/gazebo-11/models下

    <gazebo_ros gazebo_model_path="${prefix}/models"/>
    

    在这里插入图片描述

    下面在turtlebot3_sim_test包中添加turtlebot3_sim_gazebo.launch文件来在gazebo中显示机器人模型

    <launch>
      <arg name="model" default="waffle_pi"/>
      <arg name="x_pos" default="-2.0"/>
      <arg name="y_pos" default="-0.5"/>
      <arg name="z_pos" default="0.0"/>
    
      <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="world_name" value="$(find turtlebot3_sim_test)/worlds/turtlebot3_house.world"/>
        <arg name="paused" value="false"/>
        <arg name="use_sim_time" value="true"/>
        <arg name="gui" value="true"/>
        <arg name="headless" value="false"/>
        <arg name="debug" value="false"/>
      </include>
    
      <param name="robot_description" command="$(find xacro)/xacro $(find turtlebot3_sim_test)/urdf/turtlebot3_$(arg model).urdf.xacro" />
    
      <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />
    </launch>
    

    启动launch文件

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch

    这里使用的gazebo仿真文件为turtlebot3_house.world,在第一次加载时非常慢,需要几分钟的时间,此时并不是gazebo软件卡死了,后面再加载时就可以秒开了,打开后如下图所示,这里模拟的是室内环境,其中有门、桌子等仿真物
    在这里插入图片描述


    在Gazebo中控制机器人模型运动

    在这里插入图片描述
    使用roslaunch命令启动turtlebot3_sim_gazebo.launch文件之后,使用rostopic list命令来看下当前发布的话题,可以看到有一个/cmd_vel的话题,这个话题已经比较熟悉了,之前再小乌龟的示例中用到过
    在这里插入图片描述
    再来使用rostopic info /cmd_vel命令来看下话题的详细信息,可以看到gazebo订阅了这个话题,下面我们在这个话题上发布速度指令即可操作机器人模型运动
    在这里插入图片描述

    使用键盘进行控制

    这里使用ROS提供的通用键盘控制包来操作机器人模型,如果之前没有下载的话使用下面的命令先下载安装

    $ sudo apt-get install ros-noetic-teleop-twist-keyboard

    参考:http://wiki.ros.org/teleop_twist_keyboard

    安装完成后,使用下面的命令启动键盘控制节点,然后按照按键说明就可以控制机器人模型运动了,这个节点会在/cmd_vel话题上发布速度指令

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch
    $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

    还可以通过修改配置参数来调整运动速度或停止方式,详细内容参考:https://github.com/ros-teleop/teleop_twist_keyboard

    使用手柄进行控制

    这里通过简单的修改《ROS之手柄控制》中手柄控制小乌龟运动的示例代码,来实现手柄控制机器人模型在gazebo中运动

    这里手柄控制机器人模型运动和之前手柄控制小乌龟运动只有一个简单的区别,这里发布的话题名称为/cmd_vel,小乌龟示例中发布的话题为/turtle1/cmd_vel,把小乌龟示例中发布的话题名称改为/cmd_vel,其它代码无需修改,再来分别启动下turtlebot3_sim_gazebo.launch文件和teleop_turtle.launch文件即可使用手柄控制机器人模型运动了
    在这里插入图片描述

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch
    $ roslaunch teleop teleop_turtle.launch


    使用Rviz+Gazebo进行仿真

    Rviz和Gazebo的区别

    Rviz是ROS的三维可视化工具,它的主要目的是以三维方式显示ROS消息,可以将数据进行可视化表达。例如,可以无需编程就能表达激光测距仪(LRF)传感器中的传感器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据(PCD,Point Cloud Data),从相机获取的图像值等。

    Gazebo是一个仿真系统,可以模拟真实的物理环境,快速测试机器人设计、执行回归测试以及训练AI系统等相关算法的可用性。Gazebo提供了在复杂的室内和室外环境中,准确地模拟多个数量机器人的功能。Gazebo支持 ODE、Bullet、Simbody等强大的物理引擎,具备高质量的图形以及便捷的图形编程界面。

    总结来说,Rviz主要用来显示数据,Gazebo用来仿真,使用实际机器人的话,Gazebo就可以不使用了,但还是需要Rviz来进行调试。

    查看里程计、雷达、摄像头信息

    先启动下gazebo仿真环境

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch

    接着启动下rviz

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_rviz.launch

    rviz启动后,依次加入RobotModel(机器人模型)、Odometry(里程计)、LaserScan(激光雷达)、Image(摄像头),并选择对应的话题,可以通过更改子选项来调整显示效果,这里Odometry中的Covariance选项不要勾选,否则画面会很模糊
    在这里插入图片描述
    再来运行下键盘控制节点,此时,使用键盘控制机器人模型运动即可看到里程计、雷达、摄像头数据的变化

    $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py _key_timeout:=0.2

    在这里插入图片描述

    在Rviz+Gazebo中控制机器人模型运动

    依次启动gazebo和rviz,再来启动上面记录的键盘或手柄节点即可操作机器人模型在gazebo和rviz环境下的运动
    在这里插入图片描述
    再来进一步分析下,gazebo和rviz下的运动是不同的,单独启动rviz然后运行键盘控制节点,是无法控制机器人模型运动的。gazebo仿真环境下,机器人有驱动器,其依赖/cmd_vel上的速度信息。rviz环境下,机器人运动实际上是坐标变换,依赖的是/joint_states。单独启动gazebo和rviz来看下两者发布的话题
    在这里插入图片描述
    再来看下计算图,会更清晰,单独启动gazebo
    在这里插入图片描述
    单独启动rviz
    在这里插入图片描述
    rviz中机器人模型的运动依赖turtlebot3_sim_rviz.launch文件中的一行代码,robot_state_publisher节点将机器人的状态发布到tf2

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    

    参考:http://wiki.ros.org/robot_state_publisherhttp://wiki.ros.org/joint_state_publisher?distro=noetic

    分别启动gazebo和rviz
    在这里插入图片描述
    ☝ ★★★ — 返回 《ROS机器人开发笔记汇总》总目录 — ★★★ ☝

    展开全文
  • turtlebot3_obstacle_detection_laserscan

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,918
精华内容 2,367
关键字:

turtlebot3