本文档由北京小芽科技翻译,原文来自于ROBOTIS官方技术文档。
家庭服务挑战赛场和对象
bad asset path...
7.10.1 入门指南
注意。在PC中安装家庭服务挑战包之前,请务必完成以下说明。
先决条件
它是使用家庭服务挑战包进行移动复制的基本模式。
提供的源代码,家庭服务挑战包,是基于TurtleBot3 Waffle Pi制作的。
OpenMANIPULATOR-X是一个官方机器人平台,可以在家庭服务挑战赛中与Turtlebot3一起使用移动复制功能。
它与Turtlebot3上的单板计算机(SBC)进行通信。
笔记本电脑、台式机或其他带有 ROS 1 的设备。
远程 PC 设置
[远程PC] 安装 Home Service Challenge 软件包.
[远程PC] 在远程电脑上安装额外的依赖包
[远程PC] 在RViz上用OpenMANIPULATOR加载TurtleBot3 Waffle(或Waffle Pi)。
注意: 在执行命令前,指定${TB3_MODEL}
:waffle
,waffle_pi
。按照Export TURTLEBOT3_MODEL指令设置永久导出设置。
Rviz 界面
[远程PC] 为了远程使用你的电脑,你需要制作SSH密钥。创建一个脚本文件来生成SSH密钥。
[远程PC] 复制并粘贴以下内容到脚本中,并保存。
[远程PC] 使文件可执行。
[远程PC]用TurtleBot3的IP地址执行该文件。确保远程电脑和TurtleBot3连接在**同一WiFi下。
检查~/.ssh/known_hosts
文件是否成功生成了SSH。
SBC 设置
[Turtlebot3 SBC] 使用机器标签,创建位于/home/pi的env.bash文件。
[Turtlebot3 SBC] 复制并粘贴以下内容到脚本中,并保存。
使文件可执行。
OpenCR 设置
Hardware 设置
7.10.2 Camera 标定
校准相机以减少或尽量减少失真。按照相机校准过程一步步进行。
Camera 设置
[远程PC] 使用以下命令来远程运行摄像机。请确保输入TurtleBot3和远程PC连接在一起的IP地址。
请确保远程电脑和TurtleBot3连接在同一个IP下。
[远程PC] 执行rqt_image_view。
在复选框上选择**/raspicam_node/image/compressed(或/raspicam_node/image/**)主题。
[远程计算机] 执行rqt_reconfigure。
点击raspicam_node,并修改参数值以看到摄像机的清晰图像。
打开位于turtlebot3_home_service_challenge_tools/config/camera_calibration的camera.yaml**文件。
将修改后的值写入文件。
摄像头内参标定
在A4大小的纸上打印一个棋盘。该棋盘用于本征相机校准。
格子板
[远程PC] 使用以下命令来远程运行摄像机。使用该命令时,请务必包括IP地址。
注意。请确保远程电脑和TurtleBot3连接在同一IP下。
[远程PC] 运行相机内参校准
注意。正方形的大小可能因打印纸的尺寸A3、A4或其他而不同。在这种情况下,**根据打印纸的方形尺寸,调整给定命令中-square选项的值(0.024)。
使用格子板来校准相机,并点击CALIBRATE。
注意。将棋盘向左、右、上、下和各种角度移动和倾斜,以获得X
、Y
、Size
和Skew
校准数据。当数据被充分计算后,X
,Y
,Size
和Skew
将有一个绿色条。
点击Commit,将本征校准数据保存到默认文件夹(~/.ros/camera_info)。
打开位于**~/.ros/camera_info**的camerav2_1280x720.yaml
文件,从Turtlebot SBC
中查看保存的数据,其形式如下面的脚本。
7.10.3 SLAM
SLAM是指同步定位和绘图。利用这一功能,TurtleBot3可以绘制地图。更多相关信息,见SLAM
[远程PC] 使用以下命令来远程运行摄像机。使用该命令时,请务必包括IP地址。
注意。请确保远程电脑和TurtleBot3连接在同一IP下。
[远程 PC] 运行 slam 节点。
[远程PC] 运行键盘远程操作节点。
节点运行后,以下控制器将显示在终端窗口。
用键盘控制器更新一个地图。
[远程PC]在地图完全更新后保存。
7.10.4 任务
[远程PC] 运行演示包。在使用该命令时,请确保包括IP地址。这个软件包包含各种功能。带机器标签的远程调出,Moveit,导航,相机感应。
注意。请确保远程电脑和TurtleBot3连接在同一IP下。
[远程PC] 运行用于执行家庭服务挑战赛任务的经理包。
指令
**[远程PC]**在家庭服务挑战期间使用以下命令。
Ready:TurtleBot3将准备开始一项任务。
Start:TurtleBot3将开始一个任务。
Stop : TurtleBot3将停止运行一个任务。
Restart:TurtleBot3将按给定的方案重新启动任务。
注意。当使用这个命令时,请确保包括一个scenario.yaml
文件中的senario名称。关于情景的详细信息,请参见本节下面的配置描述。
操作测试
**[远程PC]**发布以下主题,以测试一个导航或操作功能。
Navigation 导航
Manipulation 机械手操作
配置
**[远程PC]**根据给定环境修改配置文件中的数据。
scenario.yaml
:该文件包含一个场景的数据。
文件路径 : /turtlebot3_home_service_challenge_manager/script/scenario.yaml
脚本
room.yaml
:该文件包含家庭服务挑战赛的场馆数据。
文件路径 : /turtlebot3_home_service_challenge_manager/config/room.yaml
脚本
config.yaml
:这个配置文件包含经理包的数据。
文件路径。**/turtlebot3_home_service_challenge_manager/config/config.yaml**
关于家庭服务任务的细节
家庭服务挑战赛的目标是按照给定的规则将四个不同的物体从客厅移动到一个特定的地方,并返回到起点。
使用演示包,《Home Service Challenge》中移动物体的过程如下:
- 在客厅里导航到一个目标。
找到一个目标,并使用导航包到达该目标。
- 接近目标。
为了精确地接近目标,TurtleBot3的轮子是通过计算AR标记的目标位置直接控制的。(使用的主题:/tb3_hsc/cmd_vel
)。为了产生可靠的性能,闭环和控制系统可用于指定次数。
- 用OpenMANIPULATOR-X的夹持器挑选目标。
使用moveit软件包(关节空间控制、任务空间控制和抓手控制)挑选目标对象。
MoveIt 流程图
使用MoveIt 软件包抓取物体
离开到下一个房间放置物体(使用的主题:/tb3_hsc/cmd_vel
)。
- 当从目标处往回走时,车轮直接由经理程序使用
/tb3_hsc/cmd_vel
主题控制。
导航到将放置物体的地方。
- 寻找下一个目标,并使用导航包到达它。
接近目标。
使用抓手放置物体。
使用导航包返回到起始点。
7.10.5 模拟仿真
在Gazebo做TurtleBot3 使用 OpenMANIPULATOR-X 抓取物体。
[远程 PC] 运行 Gazebo.
[远程 PC] 在 Gazebo 中运行一个仿真样例。
[远程 PC] 运行家庭服务管理器
使用家庭服务挑战命令,见命令