openarm_test/src/openarm_joint_recorder
2026-03-23 14:46:40 +08:00
..
launch 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
openarm_joint_recorder 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
resource 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
package.xml 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
README.md 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
setup.cfg 增加机械臂动作录制 2026-03-23 14:46:40 +08:00
setup.py 增加机械臂动作录制 2026-03-23 14:46:40 +08:00

openarm_joint_recorder

用于录制关节位置轨迹并按记录时间回放。

功能

  • 订阅控制器状态话题JointTrajectoryControllerState并录制每个采样点的时间与位置
  • 通过 ROS2 service 启停录制与回放
  • 轨迹保存到 YAML 文件,支持加载后回放

参数

  • input_topic:录制输入话题,默认 /left_joint_trajectory_controller/controller_state
  • output_topic:回放输出话题,默认 /left_joint_trajectory_controller/joint_trajectory
  • play_speed:回放速度倍率,默认 1.0
  • loop_playback:是否循环回放,默认 false
  • storage_path:保存/加载文件路径,默认 /tmp/openarm_joint_trajectory.yaml

启动

ros2 launch openarm_joint_recorder joint_trajectory_recorder.launch.py

服务接口

  • ~/set_recording (std_srvs/srv/SetBool): true 开始录制,false 停止录制
  • ~/play (std_srvs/srv/Trigger): 开始回放
  • ~/stop_playback (std_srvs/srv/Trigger): 停止回放
  • ~/save (std_srvs/srv/Trigger): 保存轨迹到 storage_path
  • ~/load (std_srvs/srv/Trigger): 从 storage_path 加载轨迹
  • ~/clear (std_srvs/srv/Trigger): 清空内存轨迹

示例命令

# 开始录制
ros2 service call /joint_trajectory_recorder/set_recording std_srvs/srv/SetBool "{data: true}"

# 停止录制
ros2 service call /joint_trajectory_recorder/set_recording std_srvs/srv/SetBool "{data: false}"

# 保存
ros2 service call /joint_trajectory_recorder/save std_srvs/srv/Trigger "{}"

# 回放
ros2 service call /joint_trajectory_recorder/play std_srvs/srv/Trigger "{}"