本文档由北京小芽科技翻译,原文来自于ROBOTIS官方技术文档。
警告。在执行本例之前,请确保运行Bringup指令,在桌子上测试机器人时要小心,因为机器人可能会掉下来。
注意。
Ubuntu 16.04
和ROS Kinetic Kame
上测试。电子手册中的内容可能会在没有事先通知的情况下进行更新。因此,一些视频可能与电子手册中的内容有所不同。
10.1 使用交互式移动标记
TurtleBot3可以通过RViz上的[Interactive Markers](http://wiki.ros.org/interactive_markers)进行移动。你可以使用交互式标记将TurtleBot3移动到旋转或线性。
**[远程PC]**打开一个新的终端,启动远程文件。
TIP。在执行这个命令之前,你必须指定TurtleBot3的模型名称。${TB3_MODEL}
是你在burger
、waffle
、waffle_pi
中使用的模型名称。如果你想永久设置导出设置,请参考[Export TURTLEBOT3_MODEL](https://emanual.robotis.com/docs/en/platform/turtlebot3/export_turtlebot3_model)页面。
**[远程PC]**启动交互式标记文件。
**[远程PC]**用RViz对模型进行三维可视化。
10.2 障碍物检测
TurtleBot3可以通过LDS数据进行移动或停止。当TurtleBot3移动时,当它检测到前方有障碍物时就会停止。
**[远程PC]**启动障碍物文件。
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 文件。
10.5 循迹运动
TurtleBot3可以通过自定义路线移动。有三种路线(矩形、三角形和圆形)。这个例子使用行动主题。动作客户端将巡逻数据(模式、面积、计数)翻译给动作服务器。然后行动服务器将cmd_vel
翻译给TurtleBot3。请参考上面的教程视频了解更详细的用法。
**[远程PC]**启动循迹服务器文件。
**[远程电脑]**启动循迹客户端文件。
10.6 TurtleBot 跟随例程
为了尝试下面的例子,你必须安装turtlebot3_applications和turtlebot3_applications_msgs软件包。
**[远程PC]**进入catkin workspace
目录(/home/(user_name)/catkin_ws/src),克隆turtlebot3_applications和turtlebot3_applications_msgs仓库。然后运行catkin_make
来构建新的软件包。
[远程PC] 安装
scikit-learn
、NumPy
和ScyPy
软件包。[远程PC] 安装完成后,在远程电脑上运行roscore。
[TurtleBot] 运行Bringup软件包。
[远程PC] 为TurtleBot3 Burger设置环境变量,并启动turtlebot3_follow_filter。
**[远程PC]**启动
turtlebot3_follower
。
10.7 TurtleBot全景图演示
注意:
turtlebot3_panorama “演示使用 “pano_ros “来拍摄快照,并将它们拼接起来以创建全景图像。
全景演示需要安装raspicam_node
包。安装这个包的说明可以在Gihub链接找到。
Panorama演示需要安装OpenCV和cvbridge软件包。安装OpenCV的说明可以在OpenCV教程链接
[TurtleBot] 启动turtlebot3_rpicamera
文件
[远程 PC] 运行panorama
。
[远程 PC] 要启动全景图演示,请输入以下命令:
可以发送给rosservice以获得全景图像的参数有。
拍摄照片的模式。
0 : 快照和旋转(即旋转,停止,快照,旋转,停止,快照,…)。
1 : 连续(即在拍摄快照的同时不断旋转)
2 : 停止拍照并创建全景图像 -全景图像的总角度,度数 -在快照和旋转模式下创建全景图像时的角度间隔(度数),否则时间间隔(秒) -旋转速度(弧度/秒)
[远程 PC] 要查看结果图像,请输入以下命令。
10.8 自动泊车
注意:
turtlebot3_automatic_parking “演示使用的是360激光距离传感器LDS-01和一个反光带。LaserScan主题有来自LDS的强度和距离数据。TurtleBot3使用这个来定位反光带。
turtlebot3_automatic_parking
演示需要NumPy
包。
[远程PC]用以下命令安装NumPy
包。如果你已经安装了numpy,你可以跳过以下命令。
[远程PC] 运行roscore.
[TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。
[远程PC] 如果你使用TurtleBot3 Burger,请按以下命令设置TurtleBot3的型号。
注意: 在执行命令前指定${TB3_MODEL}:
burger’, waffle',
waffle_pi`。按照Export TURTLEBOT3_MODEL指令设置永久导出设置。
[远程PC] 运行 RViz。
[远程PC] 启动自动停车文件。
- 你可以在RViz中选择LaserScan话题。
/scan
/scan_spot
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 “包。
[远程 PC] 运行 roscore.
[TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。
[TurtleBot] 启动树莓派相机节点。
[远程PC]树莓派软件包将发布压缩类型的图像,以便快速通信。然而,在 image_proc
节点的图像整顿中需要的是原始类型的图像。因此,压缩后的图像应该被转换为原始图像。
[远程PC] 然后,应进行图像矫正。
[远程PC]现在应该开始AR标记检测。在运行相关的启动文件之前,应该导出本示例代码将使用的模型。运行启动文件后,RViz将在预设的环境下自动运行。
TurtleBot3 Automatic Parking Vision
10.10 加载多个TurtleBot3s
raspicam_node
包。安装这个包的说明可以在Gihub链接找到。[TurtleBot] 启动turtlebot3_rpicamera
文件
[远程 PC] 运行panorama
。
[远程 PC] 要启动全景图演示,请输入以下命令:
可以发送给rosservice以获得全景图像的参数有。
拍摄照片的模式。
0 : 快照和旋转(即旋转,停止,快照,旋转,停止,快照,…)。
[远程 PC] 要查看结果图像,请输入以下命令。
turtlebot3_automatic_parking
演示需要NumPy
包。[远程PC]用以下命令安装
NumPy
包。如果你已经安装了numpy,你可以跳过以下命令。[远程PC] 运行roscore.
[TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。
[远程PC] 如果你使用TurtleBot3 Burger,请按以下命令设置TurtleBot3的型号。
注意: 在执行命令前指定
${TB3_MODEL}:
burger’,waffle',
waffle_pi`。按照Export TURTLEBOT3_MODEL指令设置永久导出设置。[远程PC] 运行 RViz。
[远程PC] 启动自动停车文件。
- 你可以在RViz中选择LaserScan话题。
/scan
/scan_spot
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 “包。
[远程 PC] 运行 roscore.
[TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。
[TurtleBot] 启动树莓派相机节点。
[远程PC]树莓派软件包将发布压缩类型的图像,以便快速通信。然而,在 image_proc
节点的图像整顿中需要的是原始类型的图像。因此,压缩后的图像应该被转换为原始图像。
[远程PC] 然后,应进行图像矫正。
[远程PC]现在应该开始AR标记检测。在运行相关的启动文件之前,应该导出本示例代码将使用的模型。运行启动文件后,RViz将在预设的环境下自动运行。
TurtleBot3 Automatic Parking Vision
10.10 加载多个TurtleBot3s
[远程 PC] 运行 roscore.
[TurtleBot] 调出基本软件包,以启动TurtleBot3应用程序。
[TurtleBot] 启动树莓派相机节点。
[远程PC]树莓派软件包将发布压缩类型的图像,以便快速通信。然而,在 image_proc
节点的图像整顿中需要的是原始类型的图像。因此,压缩后的图像应该被转换为原始图像。
[远程PC] 然后,应进行图像矫正。
[远程PC]现在应该开始AR标记检测。在运行相关的启动文件之前,应该导出本示例代码将使用的模型。运行启动文件后,RViz将在预设的环境下自动运行。
TurtleBot3 Automatic Parking Vision
注意:此应用程序必须设置固件版本1.2.1
或更高。
[远程 PC] 运行 roscore.
用不同的命名空间调出多个Turtlebot3。我们建议命名空间包括常见的词语,如
tb3_0
,tb3_1
或my_robot_0
,my_robot_1
。**[TurtleBot(tb3_0)]**调出基本包,
ROS NAMESPACE
为节点,multi_robot_name
为tf前缀,set_lidar_frame_id
为激光雷达框架id。这些参数必须是相同的。**[TurtleBot(tb3_1)]**调出基本包,
ROS NAMESPACE
为节点,multi_robot_name
为tf前缀,set_lidar_frame_id
为激光雷达框架id。这些参数必须是相同的,但不同的其他机器人。然后你启动的终端
tb3_0
将代表以下信息。你可以看到TF信息的前缀是tb3_0
。[远程PC]以相同的命名空间启动机器人状态发布器。
[TurtleBot(tb3_0)]
[TurtleBot(tb3_1)]
在启动另一个应用程序之前,检查主题和TF树以打开rqt。
为了使用这种设置,每个Turtlebot3使用SLAM制作地图,这些地图由multi_map_merge软件包同步合并。你可以访问Virtual SLAM by Multiple TurtleBot3s部分来获得更多的信息。