• 03软件(softwares)
  • ROBOTIS相关软件
  • DYNAMIXEL-Protocol-1
  • DYNAMIXEL-Protocol-2
  • Dynamixel-wizard2
  • Robotis-Manipulator库
  • 04单片机欧宝体育娱乐app官
  • 02-OpenRB-150欧宝体育娱乐app官
  • OpenCM9.04欧宝体育娱乐app官
  • 01_OpenCM9-04欧宝体育娱乐app官介绍
  • 02_OpenCM9-04硬件介绍
  • 03_OpenCM9-04供电方式
  • 04-OpenCM9-04软件安装
  • 05-如何安装windows驱动
  • 06-OpenCM9-04的Recovery模式
  • 05资料下载
  • ROBOTIS产品相关下载
  • ROBOTIS产品相关软件
  • ROBOTIS相关产品图纸下载
  • 07-TurtleBot3-ROS机器人
  • 01-概览
  • 01-1-TurtleBot3概述
  • 01-2-TurtleBot3纪事
  • 02-产品特征
  • 03-快速入门
  • 03-1-PC设置
  • 03-2-SBC设置
  • 03-3-OpenCR设置
  • 03-4-硬件装配
  • 03-5-启动
  • 03-6-基本操作
  • 04-SLAM
  • 05-Navigation导航
  • 06-Simulation模拟仿真
  • 06-1-Gazebo仿真
  • 06-2-SLAM仿真
  • 06-3-Navigation仿真
  • 06-4-Fake节点仿真
  • 06-5-独立运行Gazebo仿真
  • 07-机械手
  • 07-1-TurtleBot3机械手基本操作
  • 07-2-TurtleBot3家庭服务挑战
  • 08-自动驾驶
  • 08-1-自动驾驶基本操作
  • 08-2-TurtleBot3自动驾驶挑战赛2019
  • 09-机器学习
  • 10-Examples范例
  • 11-其他拓展样例
  • 12-其他学习资料
  • 13-更多相关资源
  • 14-FAQ常见问题
  • 10-Examples范例

    小芽科技 2022-07-26 12:04:58
    Categories: Tags:

    本文档由北京小芽科技翻译,原文来自于ROBOTIS官方技术文档

  • 警告。在执行本例之前,请确保运行Bringup指令,在桌子上测试机器人时要小心,因为机器人可能会掉下来。

    注意

  • 本指令在Ubuntu 16.04ROS Kinetic Kame上测试。
  • 这个指令应该是在远程PC上运行的。请在您的**远程电脑上遵循该指令。
  • 电子手册中的内容可能会在没有事先通知的情况下进行更新。因此,一些视频可能与电子手册中的内容有所不同。

    10.1 使用交互式移动标记

    TurtleBot3可以通过RViz上的[Interactive Markers](http://wiki.ros.org/interactive_markers)进行移动。你可以使用交互式标记将TurtleBot3移动到旋转或线性。

    **[远程PC]**打开一个新的终端,启动远程文件。

    TIP。在执行这个命令之前,你必须指定TurtleBot3的模型名称。${TB3_MODEL}是你在burgerwafflewaffle_pi中使用的模型名称。如果你想永久设置导出设置,请参考[Export TURTLEBOT3_MODEL](https://emanual.robotis.com/docs/en/platform/turtlebot3/export_turtlebot3_model)页面。

    1
    2
    $ export TURTLEBOT3_MODEL=${TB3_MODEL}
    $ roslaunch turtlebot3_bringup turtlebot3_remote.launch

    **[远程PC]**启动交互式标记文件。

    1
    $ roslaunch turtlebot3_example interactive_markers.launch

    **[远程PC]**用RViz对模型进行三维可视化。

    1
    $ rosrun rviz rviz -d `rospack find turtlebot3_example`/rviz/turtlebot3_interactive.rviz

    10.2 障碍物检测

    TurtleBot3可以通过LDS数据进行移动或停止。当TurtleBot3移动时,当它检测到前方有障碍物时就会停止。

    **[远程PC]**启动障碍物文件。

    1
    $ roslaunch turtlebot3_example turtlebot3_obstacle.launch

    10.3 位置控制

    注意。此功能适用于冲刺。

    10.4 点操作

    TurtleBot3可以通过2D点(x,y)z-angular移动。例如,如果你插入(0.5,0.3,60),TurtleBot3会移动到点(x = 0.5m,y = 0.3m),然后旋转60度。

    **[远程PC]**启动 pointop 文件。

    1
    $ roslaunch turtlebot3_example turtlebot3_pointop_key.launch

    10.5 循迹运动

    TurtleBot3可以通过自定义路线移动。有三种路线(矩形、三角形和圆形)。这个例子使用行动主题。动作客户端将巡逻数据(模式、面积、计数)翻译给动作服务器。然后行动服务器将cmd_vel翻译给TurtleBot3。请参考上面的教程视频了解更详细的用法。

    **[远程PC]**启动循迹服务器文件。

    1
    $ rosrun turtlebot3_example turtlebot3_server

    **[远程电脑]**启动循迹客户端文件。

    1
    $ roslaunch turtlebot3_example turtlebot3_client.launch

    10.6 TurtleBot 跟随例程

    为了尝试下面的例子,你必须安装turtlebot3_applicationsturtlebot3_applications_msgs软件包。

    **[远程PC]**进入catkin workspace目录(/home/(user_name)/catkin_ws/src),克隆turtlebot3_applications和turtlebot3_applications_msgs仓库。然后运行catkin_make来构建新的软件包。

    1
    2
    3
    4
    5
    6
    $ sudo apt-get install ros-kinetic-ar-track-alvar
    $ sudo apt-get install ros-kinetic-ar-track-alvar-msgs
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/ROBOTIS-GIT/turtlebot3_applications.git
    $ git clone https://github.com/ROBOTIS-GIT/turtlebot3_applications_msgs.git
    $ cd ~/catkin_ws && catkin_make
  • 注意
  • 跟随者演示仅使用360激光距离传感器LDS-01实现。根据以前对人和障碍物位置样本的拟合,使用分类算法来采取行动。它在50厘米范围和140度范围内跟随机器人前面的人。
  • 在有障碍物的地方运行跟随者演示可能效果不好。因此,建议在一个没有障碍物的开放区域运行该演示。
    1. [远程PC] 安装scikit-learnNumPyScyPy软件包。

      1
      2
      3
      $ sudo apt-get install python-pip
      $ sudo pip install -U scikit-learn numpy scipy
      $ sudo pip install --upgrade pip
    2. [远程PC] 安装完成后,在远程电脑上运行roscore。

      1
      $ roscore
    3. [TurtleBot] 运行Bringup软件包。

      1
      $ roslaunch turtlebot3_bringup turtlebot3_robot.launch
    4. [远程PC] 为TurtleBot3 Burger设置环境变量,并启动turtlebot3_follow_filter。

      1
      2
      $ export TURTLEBOT3_MODEL=burger
      $ roslaunch turtlebot3_follow_filter turtlebot3_follow_filter.launch
    5. **[远程PC]**启动turtlebot3_follower

    1
    $ roslaunch turtlebot3_follower turtlebot3_follower.launch

    10.7 TurtleBot全景图演示

  • 注意:
  • turtlebot3_panorama “演示使用 “pano_ros “来拍摄快照,并将它们拼接起来以创建全景图像。
  • 全景演示需要安装raspicam_node包。安装这个包的说明可以在Gihub链接找到。
  • Panorama演示需要安装OpenCV和cvbridge软件包。安装OpenCV的说明可以在OpenCV教程链接
    1. [TurtleBot] 启动turtlebot3_rpicamera文件

      1
      $ roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
    2. [远程 PC] 运行panorama

      1
      $ roslaunch turtlebot3_panorama panorama.launch
    3. [远程 PC] 要启动全景图演示,请输入以下命令:

      1
      $ rosservice call turtlebot3_panorama/take_pano 0 360.0 30.0 0.3
    4. 可以发送给rosservice以获得全景图像的参数有。

    5. 拍摄照片的模式。

    6. 0 : 快照和旋转(即旋转,停止,快照,旋转,停止,快照,…)。

  • 1 : 连续(即在拍摄快照的同时不断旋转)
  • 2 : 停止拍照并创建全景图像 -全景图像的总角度,度数 -在快照和旋转模式下创建全景图像时的角度间隔(度数),否则时间间隔(秒) -旋转速度(弧度/秒)
    1. [远程 PC] 要查看结果图像,请输入以下命令。

      1
      $ rqt_image_view image:=/turtlebot3_panorama/panorama

      img

    10.8 自动泊车

  • 注意
  • turtlebot3_automatic_parking “演示使用的是360激光距离传感器LDS-01和一个反光带。LaserScan主题有来自LDS的强度和距离数据。TurtleBot3使用这个来定位反光带。
  • turtlebot3_automatic_parking演示需要NumPy包。
    1. [远程PC]用以下命令安装NumPy包。如果你已经安装了numpy,你可以跳过以下命令。

      1
      2
      3
      $ sudo apt-get install python-pip
      $ sudo pip install -U numpy
      $ sudo pip install --upgrade pip
    2. [远程PC] 运行roscore.

      1
      $ roscore
    3. [TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。

      1
      $ roslaunch turtlebot3_bringup turtlebot3_robot.launch
    4. [远程PC] 如果你使用TurtleBot3 Burger,请按以下命令设置TurtleBot3的型号。

      1
      {% dplayer "url=TurtleBot3_51_Machine_Learning_tutorial_3.mp4"%}

      注意: 在执行命令前指定${TB3_MODEL}:burger’, waffle', waffle_pi`。按照Export TURTLEBOT3_MODEL指令设置永久导出设置。

    5. [远程PC] 运行 RViz。

      1
      2
      $ roslaunch turtlebot3_bringup turtlebot3_remote.launch
      $ rosrun rviz rviz -d `rospack find turtlebot3_automatic_parking`/rviz/turtlebot3_automatic_parking.rviz
    6. [远程PC] 启动自动停车文件。

      1
      $ roslaunch turtlebot3_automatic_parking turtlebot3_automatic_parking.launch
    7. 你可以在RViz中选择LaserScan话题。
    8. /scan
    9. img

    10. /scan_spot
    11. img

    10.9 视觉自动泊车

  • 注意
  • turtlebot3_automatic_parking_vision “使用树莓派的摄像头,因此本演示使用的机器人是TurtleBot3 Waffle Pi的默认平台。由于它是在墙上找到AR标记的,所以应该准备好打印的AR标记。整个过程使用从摄像头得到的图像,所以如果这个过程做得不好,请配置参数,如亮度、对比度等。
  • turtlebot3_automatic_parking_vision “使用基于 “image_proc “节点的矫正图像。为了获得矫正图像,机器人应该获得树莓派相机的光学校准数据。(每个下载的turtlebot3软件包都已经有raspberry pi相机v2默认的相机校准数据)。
  • turtlebot3_automatic_parking_vision “包需要 “ar_track_alvar “包。
    1. [远程 PC] 运行 roscore.

      1
      $ roscore
    2. [TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。

      1
      $ roslaunch turtlebot3_bringup turtlebot3_robot.launch
    3. [TurtleBot] 启动树莓派相机节点。

      1
      $ roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
    4. [远程PC]树莓派软件包将发布压缩类型的图像,以便快速通信。然而,在 image_proc 节点的图像整顿中需要的是原始类型的图像。因此,压缩后的图像应该被转换为原始图像。

      1
      $ rosrun image_transport republish compressed in:=raspicam_node/image raw out:=raspicam_node/image
    5. [远程PC] 然后,应进行图像矫正。

      1
      $ ROS_NAMESPACE=raspicam_node rosrun image_proc image_proc image_raw:=image _approximate_s=true _queue_size:=20
    6. [远程PC]现在应该开始AR标记检测。在运行相关的启动文件之前,应该导出本示例代码将使用的模型。运行启动文件后,RViz将在预设的环境下自动运行。

      1
      2
      $ export TURTLEBOT3_MODEL=waffle_pi
      $ roslaunch turtlebot3_automatic_parking_vision turtlebot3_automatic_parking_vision.launch

      TurtleBot3 Automatic Parking Vision

    10.10 加载多个TurtleBot3s

    注意:此应用程序必须设置固件版本1.2.1或更高。

    1. [远程 PC] 运行 roscore.

      1
      $ roscore
    2. 用不同的命名空间调出多个Turtlebot3。我们建议命名空间包括常见的词语,如tb3_0tb3_1my_robot_0my_robot_1

    3. **[TurtleBot(tb3_0)]**调出基本包,ROS NAMESPACE为节点,multi_robot_name为tf前缀,set_lidar_frame_id为激光雷达框架id。这些参数必须是相同的。

      1
      $ ROS_NAMESPACE=tb3_0 roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="tb3_0" set_lidar_frame_id:="tb3_0/base_scan"
    4. **[TurtleBot(tb3_1)]**调出基本包,ROS NAMESPACE为节点,multi_robot_name为tf前缀,set_lidar_frame_id为激光雷达框架id。这些参数必须是相同的,但不同的其他机器人。

      1
      $ ROS_NAMESPACE=tb3_1 roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="tb3_1" set_lidar_frame_id:="tb3_1/base_scan"
    5. 然后你启动的终端tb3_0将代表以下信息。你可以看到TF信息的前缀是tb3_0

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      SUMMARY
      ========

      PARAMETERS
      * /rosdistro: kinetic
      * /rosversion: 1.12.13
      * /tb3_0/turtlebot3_core/baud: 115200
      * /tb3_0/turtlebot3_core/port: /dev/ttyACM0
      * /tb3_0/turtlebot3_core/tf_prefix: tb3_0
      * /tb3_0/turtlebot3_lds/frame_id: tb3_0/base_scan
      * /tb3_0/turtlebot3_lds/port: /dev/ttyUSB0

      NODES
      /tb3_0/
      turtlebot3_core (rosserial_python/serial_node.py)
      turtlebot3_diagnostics (turtlebot3_bringup/turtlebot3_diagnostics)
      turtlebot3_lds (hls_lfcd_lds_driver/hlds_laser_publisher)

      ROS_MASTER_URI=http://192.168.1.2:11311

      process[tb3_0/turtlebot3_core-1]: started with pid [1903]
      process[tb3_0/turtlebot3_lds-2]: started with pid [1904]
      process[tb3_0/turtlebot3_diagnostics-3]: started with pid [1905]
      [INFO] [1531356275.722408]: ROS Serial Python Node
      [INFO] [1531356275.796070]: Connecting to /dev/ttyACM0 at 115200 baud
      [INFO] [1531356278.300310]: Note: publish buffer size is 1024 bytes
      [INFO] [1531356278.303516]: Setup publisher on sensor_state [turtlebot3_msgs/SensorState]
      [INFO] [1531356278.323360]: Setup publisher on version_info [turtlebot3_msgs/VersionInfo]
      [INFO] [1531356278.392212]: Setup publisher on imu [sensor_msgs/Imu]
      [INFO] [1531356278.414980]: Setup publisher on cmd_vel_rc100 [geometry_msgs/Twist]
      [INFO] [1531356278.449703]: Setup publisher on odom [nav_msgs/Odometry]
      [INFO] [1531356278.466352]: Setup publisher on joint_states [sensor_msgs/JointState]
      [INFO] [1531356278.485605]: Setup publisher on battery_state [sensor_msgs/BatteryState]
      [INFO] [1531356278.500973]: Setup publisher on magnetic_field [sensor_msgs/MagneticField]
      [INFO] [1531356280.545840]: Setup publisher on /tf [tf/tfMessage]
      [INFO] [1531356280.582609]: Note: subscribe buffer size is 1024 bytes
      [INFO] [1531356280.584645]: Setup subscriber on cmd_vel [geometry_msgs/Twist]
      [INFO] [1531356280.620330]: Setup subscriber on sound [turtlebot3_msgs/Sound]
      [INFO] [1531356280.649508]: Setup subscriber on motor_power [std_msgs/Bool]
      [INFO] [1531356280.688276]: Setup subscriber on reset [std_msgs/Empty]
      [INFO] [1531356282.022709]: Setup TF on Odometry [tb3_0/odom]
      [INFO] [1531356282.026863]: Setup TF on IMU [tb3_0/imu_link]
      [INFO] [1531356282.030138]: Setup TF on MagneticField [tb3_0/mag_link]
      [INFO] [1531356282.033628]: Setup TF on JointState [tb3_0/base_link]
      [INFO] [1531356282.041117]: --------------------------
      [INFO] [1531356282.044421]: Connected to OpenCR board!
      [INFO] [1531356282.047700]: This core(v1.2.1) is compatible with TB3 Burger
      [INFO] [1531356282.051355]: --------------------------
      [INFO] [1531356282.054785]: Start Calibration of Gyro
      [INFO] [1531356284.585490]: Calibration End
    6. [远程PC]以相同的命名空间启动机器人状态发布器。

    7. [TurtleBot(tb3_0)]

      1
      $ ROS_NAMESPACE=tb3_0 roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=tb3_0
    8. [TurtleBot(tb3_1)]

      1
      $ ROS_NAMESPACE=tb3_1 roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=tb3_1
    9. 在启动另一个应用程序之前,检查主题和TF树以打开rqt。

      1
      $ rqt

      img

    为了使用这种设置,每个Turtlebot3使用SLAM制作地图,这些地图由multi_map_merge软件包同步合并。你可以访问Virtual SLAM by Multiple TurtleBot3s部分来获得更多的信息。

    11-其他拓展样例
    09-机器学习