Arm-only trên humanoid khác robot arm cố định thế nào?
Với robot arm bolted vào bàn, base cố định. Với Unitree G1, base là cơ thể đang phải giữ thăng bằng. Nếu planner tay tạo target làm center of mass lệch mạnh, low-level locomotion controller có thể phải bù quá giới hạn. Vì vậy arm-only không có nghĩa là bỏ qua whole body; nó nghĩa là chân/waist do controller khác giữ, còn cuRobo chỉ tạo target tay trong vùng an toàn.
1. Chọn joint subset
Tách ba nhóm:
locked_joints:
- left_hip_pitch_joint
- left_knee_joint
- right_hip_pitch_joint
- right_knee_joint
- waist_yaw_joint
planned_joints:
- left_shoulder_pitch_joint
- left_shoulder_roll_joint
- left_shoulder_yaw_joint
- left_elbow_joint
- left_wrist_roll_joint
- left_wrist_pitch_joint
- left_wrist_yaw_joint
Giữ locked_joints ở posture hiện tại hoặc nominal posture. Issue mở #668 đang đề xuất per-call lock_joints override cho shared multi-arm MotionPlanner; điều này liên quan trực tiếp tới G1 vì bạn có thể muốn lock chân/waist khác nhau theo task. Khi chưa có feature đó, tạo planner config rõ ràng cho từng mode thay vì mutate shared planner.
2. Tool frame cho cổ tay
G1 arm task thường cần target tại wrist hoặc palm, không phải elbow. Kiểm tra frame:
left_wrist_yaw_linkcho wrist orientation;- palm/gripper custom frame nếu có end-effector gắn thêm;
- offset từ wrist tới TCP phải là fixed transform versioned.
3. Vùng thao tác an toàn
Định nghĩa workspace nhỏ trước:
| Vùng | Khuyến nghị |
|---|---|
| trước ngực | an toàn để test |
| ngang vai | cần giới hạn roll/yaw |
| quá xa trước người | dễ kéo COM |
| sau lưng | cấm trong arm-only |
Không cho planner tạo pose làm tay vươn quá xa nếu locomotion controller không được thông báo.
4. Command gate
Trước khi gửi target:
if max_abs_delta(q_target - q_current) > delta_limit:
reject("joint jump")
if estimated_hand_distance_from_torso > reach_limit:
reject("reach limit")
if base_state.pitch_abs > pitch_limit:
reject("base unstable")
Arm-only bridge phải subscribe base IMU/state. Nếu robot đang nghiêng hoặc chân đang bước, giảm tốc hoặc từ chối target tay.
5. Test sequence
- Replay trong simulator với chân locked.
- Hardware gravity compensation, không cầm vật.
- Move wrist trong box nhỏ 20 cm.
- Thêm self-collision check với torso.
- Thử cầm vật nhẹ, giới hạn tốc độ thấp.
Kết luận
cuRobo rất hữu ích cho G1 arm-only, nhưng phải coi balance controller là một ràng buộc ngoài planner. Đừng gửi trajectory tay lớn khi base không ổn định. Bài tiếp theo sẽ mở rộng sang whole-body retargeting với floating base và multi-tool-frame IK/MPC.

