WidowX-250s(6DOF)机械臂(Aloha主臂)教程-x.ROS bag录制与播放的应用(ROS2)

概述

假设您希望机械臂执行某些动作来完成特定任务。一种方法是创建一个JointTrajectory ,其中包含特定时间点所需关节位置,然后您可以控制机器人执行这些动作。或者(耗时更少)您可以手动操控机械臂执行特定动作,并将其记录在 ROS bag 文件中。然后,您可以根据需要多次“回放”该 bag 文件,以便稍后在同一机器人上重复这些动作。此“记录/回放”功能由xsarm_puppet_single实现。

结构

如下所示,interbotix_xsarm_puppet包构建于interbotix_xsarm_control包之上。要熟悉该包,请查看其 README 文件。此包特有的节点如下所述。

 xsarm_puppet_single_flowchart1_sml.png

上图展示了“录制/回放”功能的结构。涉及的两个节点是:

ü xsarm_puppet_single - 负责读取手臂当前的关节状态,并将其作为位置命令发布到/<robot_name>/commands/joint_group/<robot_name>/commands/joint_single主题。方便的是,由于手臂被扭断,以便用户可以操纵它,因此关节不会对这些命令做出反应。

ü record - 负责将上面提到的两个主题记录在一个 bag 文件中,以便以后播放

ü play- 负责在手臂处于扭矩开启状态时播放上述 bag 文件;播放延迟 3 ,以便xs_sdk节点有时间加载

用法

要在操纵单个机器人(假设是 WX250s)时记录关节命令,请在终端中输入以下内容:

ros2 launch interbotix_xsarm_puppet xsarm_puppet_single.launch.py robot_model:=wx250s record_or_playback:=record

节点启动完成后,手动操控机械臂和夹持器完成所需的动作。完成后,将机器人返回到初始位置,并按下Ctrl+C键,rosbag 停止录制。默认情况下,bag 文件将保存在bag目录中。要回放动作,请在终端中输入以下命令:

ros2 launch interbotix_xsarm_puppet xsarm_puppet_single.launch.py robot_model:=wx250s record_or_playback:=playback

如果您指定了自定义包文件名,请确保在上述命令中也包含该名称。包文件播放完毕后,您可以导航到包文件所在的目录,然后在终端中输入以下命令来重新启动它:

ros2 bag play </path/to/bag>

机器人现在应该会重复这些动作。完成后,按 Ctrl+C键停止所有节点