Enhance orientation control for RM75 arms in XR teleoperation

This commit is contained in:
2026-06-09 14:50:04 +08:00
parent 7f8ebefadc
commit 07517e0c49
13 changed files with 606 additions and 97 deletions

View File

@ -15,7 +15,7 @@ PICO/XR UDP JSON
-> /xr_rm/<arm_name>/current_pose、raw_target_pose、target_pose、cmd_vel、target_clamped
```
核心控制方式是相对位姿透传遥操作:`grip=true` 的第一帧锁定手柄起点和机器人 TCP 起点,之后用手柄位移增量生成目标 TCP并通过 `rm_movep_canfd` 下发位姿目标;`grip=false``pose_valid=false`、UDP 超时、异常或节点退出必须停止。
核心控制方式是相对位姿透传遥操作:`grip=true` 的第一帧锁定手柄起点和机器人 TCP 起点,之后用手柄相对位移和相对旋转生成目标 TCP并通过 `rm_movep_canfd` 下发位姿目标;`grip=false``pose_valid=false`、UDP 超时、异常或节点退出必须停止。
## 固定工作流
@ -97,7 +97,7 @@ ros2 run xr_rm_input sample_udp_sender --hand both --host 127.0.0.1 --port 15000
--pattern axis_sweep --seconds 60 --both-mode staggered
```
当前 `sample_udp_sender` 默认用 `axis_sweep` 扫轴轨迹;`--both-mode staggered` 会先左后右,适合双臂方向检查。
当前 `sample_udp_sender` 默认用 `axis_sweep` 扫轴轨迹;`--both-mode staggered` 会先左后右,适合双臂方向检查。需要检查姿态链路时可额外加 `--rotation-pattern rpy_steps`
常用话题:
@ -180,8 +180,8 @@ git diff --check
## 包职责
- `xr_rm_interfaces`:定义 `XrController`
- `xr_rm_input`:接收 UDP controller JSON发布左右手柄话题`pose_valid=false` 会强制 `grip=false`;提供 `sample_udp_sender` 扫轴/正弦调试数据。
- `xr_rm_teleop`:把手柄相对位移映射成 RM75 笛卡尔位姿透传目标。
- `xr_rm_input`:接收 UDP controller JSON发布左右手柄话题`pose_valid=false` 会强制 `grip=false`;提供 `sample_udp_sender` 扫轴/正弦和姿态调试数据。
- `xr_rm_teleop`:把手柄相对位移和相对旋转映射成 RM75 笛卡尔位姿透传目标。
- `xr_rm_bringup`:维护 launch、YAML、现场 UI 和运行入口。
- `unity/XR_RM_PICO_UDP_Sender`PICO 4 Ultra UDP Sender Unity 工程,发送 `seq``source_time``pose_valid``pose_source`、tracking/controller status 等诊断字段。