VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam
VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
  1. Home
  2. Blog
  3. Unitree G1 whole-body with cuRobo: floating base, tool frames, and retargeting
humanoidcurobounitree-g1whole-bodyretargetingtutorial

Unitree G1 whole-body with cuRobo: floating base, tool frames, and retargeting

A deployment-oriented guide to Unitree G1 whole-body workflows with cuRobo extra_links, tool frames, MotionRetargeter, IK/MPC, and BVH/SOMA data.

Nguyen Anh TuanJune 16, 20263 min readUpdated: Jun 19, 2026
Unitree G1 whole-body with cuRobo: floating base, tool frames, and retargeting

What whole-body means in cuRobo

For Unitree G1, whole-body is not just planning both arms. The cuRobo documentation uses a G1 29-DOF humanoid retargeting example: add a floating base with extra_links, define many tool_frames such as pelvis, torso, shoulder, elbow, wrist, hip, knee, and ankle, then solve a sequence of pose targets through MotionRetargeter. The result contains 35 DOFs: 6 virtual base joints and 29 body joints.

1. Floating base with extra_links

A humanoid pelvis must move freely. cuRobo can inject six virtual joints between base_link and pelvis without editing the URDF:

extra_links:
  base_link_x:
    parent_link_name: base_link
    child_link_name: null
    joint_name: base_j_x
    joint_type: X_PRISM
  base_link_ztheta:
    parent_link_name: base_link_ytheta
    child_link_name: pelvis
    joint_name: base_link_ztheta
    joint_type: Z_ROT

Important: the virtual base is an optimization variable for retargeting or offline planning. It does not mean you directly send a 6-DOF base command to motors.

2. Build the G1 config

The documentation shows:

python -m curobo.examples.getting_started.build_robot_model \
  --urdf curobo/content/assets/robot/g1/g1_29dof_rev_1_0.urdf \
  --asset-path curobo/content/assets/robot/g1 \
  --tool-frames \
    pelvis torso_link \
    left_shoulder_roll_link left_elbow_link left_wrist_yaw_link \
    right_shoulder_roll_link right_elbow_link right_wrist_yaw_link \
    left_hip_roll_link left_knee_link left_ankle_roll_link \
    right_hip_roll_link right_knee_link right_ankle_roll_link \
  --output curobo/content/configs/robot/unitree_g1_29dof_retarget.yml \
  --visualize

A pre-built config is included, but for deployment you should rebuild it against the exact URDF, meshes, and end-effectors you use.

3. Three fidelity levels

Level Mode Use when
1 IK without self-collision Fast mapping debug
2 IK with self-collision Default physically plausible motion
3 MPC Smooth acceleration and jerk matter

MPC is slower, so on Jetson use it only when the planner rate and horizon fit your runtime budget. For offline BVH-to-CSV retargeting, a workstation may be the better machine.

4. Tool frame weighting

Not every link should carry equal weight:

  • pelvis/feet: high position weight for posture and balance proxy;
  • wrists: high position and orientation weight for manipulation;
  • shoulders: lower weight because elbow and wrist already constrain the arm;
  • torso: useful to avoid excessive twisting.

Bad weights make the robot chase human motion that does not match G1 proportions.

5. Streaming versus offline

solve_sequence fits offline workflows: BVH, dataset generation, and motion preview. solve_frame fits online teleoperation, but only with warm start and strict velocity limits. Do not stream whole-body targets directly to hardware without a stabilizing controller underneath.

Conclusion

cuRobo makes practical G1 whole-body retargeting possible, especially when converting human motion into self-collision-aware joint trajectories. The whole-body output still needs to pass through a balance-capable controller. The final guide gathers deployment checks, current issues, and production rollout steps.

NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Khám phá VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions

Related Posts

NEWTutorial
Unitree G1 arm-only với cuRobo: điều khiển tay mà không phá balance
curobounitree-g1humanoid
humanoid

Unitree G1 arm-only với cuRobo: điều khiển tay mà không phá balance

Cách dùng cuRobo cho Unitree G1 ở chế độ arm-only: lock chân/waist, joint map, tool frame cổ tay, self-collision và giới hạn gửi command.

6/13/20263 min read
NT
Tutorial
unifolm-vla + Unitree G1 (Bài 5): deploy inference server, SSH tunnel, và locomotion song song
humanoidvladeployPart 5
humanoid

unifolm-vla + Unitree G1 (Bài 5): deploy inference server, SSH tunnel, và locomotion song song

Bài cuối series: khởi động FastAPI inference server, kết nối G1 qua SSH tunnel, gửi action commands, chạy arm VLA và locomotion đồng thời — kèm safety checklist và debug guide cho các lỗi thường gặp trên phần cứng thật.

6/7/20269 min read
NT
Tutorial
unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật
humanoidvlawhole-bodyPart 1
humanoid

unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật

Tổng quan kiến trúc 3 repo — unifolm-vla (VLA), xr_teleoperate (thu thập dữ liệu), unitree_rl_gym (locomotion) — và cách chúng kết nối thành pipeline whole-body control cho Unitree G1 trên phần cứng thật.

5/31/20267 min read
NT
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam