Fix XR teleop: body-frame IK control for mobile chassis
Switch arm IK from world-frame to body-frame control so that pushing the XR controller forward always moves the arm in the robot's forward direction, regardless of chassis rotation. Key changes: - dual_arm_agent: convert EEF observations to body frame before passing to XR controller; send body-frame IK targets directly (removed convert_action_world_to_root) - xr_controller: XR deltas treated as body-frame deltas (no yaw rotation needed — VR view tracks robot heading naturally) - streaming: add debug frame save for stereo alignment diagnostics - mindrobot_2i_cfg: IdealPDActuator for trunk, disabled gravity - Author headers updated to Yutang Li, SIAT Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -43,7 +43,7 @@ parser.add_argument("--drive_turn", type=float, default=1.5)
|
||||
parser.add_argument("--stream-to", type=str, default=None, dest="stream_to")
|
||||
parser.add_argument("--stream-port", type=int, default=12345, dest="stream_port")
|
||||
parser.add_argument("--stream-bitrate", type=int, default=20_000_000, dest="stream_bitrate")
|
||||
parser.add_argument("--debug-viewports", action="store_true", dest="debug_viewports", default=False)
|
||||
parser.add_argument("--debug-viewports", action="store_true", dest="debug_viewports", default=True)
|
||||
|
||||
AppLauncher.add_app_launcher_args(parser)
|
||||
args_cli = parser.parse_args()
|
||||
@@ -95,7 +95,7 @@ def main() -> None:
|
||||
drive_speed=args.drive_speed, drive_turn=args.drive_turn,
|
||||
stream_to=args.stream_to, stream_port=args.stream_port,
|
||||
stream_bitrate=args.stream_bitrate,
|
||||
debug_viewports=args.debug_viewports,
|
||||
debug_viewports=args.debug_viewports or bool(args.stream_to),
|
||||
)
|
||||
elif is_dual_arm:
|
||||
print(f"[INFO] DualArmXrAgent (20D) | pos_sens={pos_sens} rot_sens={rot_sens}")
|
||||
|
||||
Reference in New Issue
Block a user