AutelicaLearnRetargeting to a G1

Retargeting human motion to a Unitree G1: what breaks and how to check it.

Most of our robot’s falls came from the retarget, not the capture. These are the failures and the checks.

By AutelicaUpdated 3 min read

The short answer

Retargeting with whole-body inverse kinematics fails in predictable ways: a jump at the first frames, joints no camera observes drifting, a foot-orientation target that lifts the feet, arm configurations that flip at shoulder gimbal lock, and soles that float or slide during contact. Each can be caught with a cheap check before training: joint velocity at start-up, contact height and sliding of planted feet, bone-direction error instead of joint-angle error, and how far any correction moved the pelvis. Our own retargeter is contact-aware and runs these checks on every clip.

01The pipeline

Captured 3D joints are retargeted to the G1’s 29 joints by whole-body inverse kinematics with our own contact handling, then a tracking policy is trained in physics and evaluated over 60 runs with randomised disturbances.

021. Start-up transient

The solver starts from the robot’s default pose and needs a few frames to reach the person’s pose, which shows up as a 3–5× joint-velocity spike in the first frames. Every fall of one three-camera policy happened in the first 0.36 s. Once the retargeter removed the transient, trimming the first 0.4 s was unnecessary.

032. Joints nothing observes

With body keypoints only, wrist rotation is whatever the solver drifts to: on one clip two captures of the same motion differed by 42° at a wrist, which was half the reported joint error. Set unobserved joints to a neutral pose for every source alike, or capture hands.

043. Foot targets that lift the feet

A flat-foot target pointing each foot along the pelvis heading looked sensible and broke a range-of-motion clip completely: the person’s feet pointed away from the pelvis, the target lifted both robot feet 20–44 cm, and the policy fell in all 59 runs. Without the target the same capture completed 58 of 59.

054. Equivalent arm configurations

With an arm raised sideways the shoulder is near gimbal lock, and two solves can land on configurations about 180° apart in joint space with the hand in the same place. Joint-angle error then reports 28° for a correct motion. Score shape with bone-direction error between body segments, which ignores how the IK represented it.

065. Floating and sliding feet

IK matches joint positions, not contact, so planted soles float up to 12 cm or dip below the floor. Contact-preserving retargeting such as OTRetarget (arXiv 2609.36602) addresses this. We built our own contact-aware step. Its first version planted every foot and quietly moved the pelvis 8–35 cm on average to do it, which made the robot track worse; we had only measured the feet. The current version keeps the body’s path intact: planted soles sit within 0.2–2.2 cm of the floor and tracking improved by 0.4–1.5 cm on four of four test clips (one seed).

07Checks to run before training

  • Joint velocity over the first second.
  • Sole height and sliding while the person’s foot is planted; maximum penetration.
  • How far any correction moved the pelvis.
  • Bone-direction error against the source, alongside joint-angle error.

Questions

What tool retargets human motion to a Unitree G1?

Whole-body IK tools such as GMR are a common starting point; contact-preserving methods such as OTRetarget add ground and object contact.

Why does my humanoid fall at the start of a clip?

Often a retargeting start-up transient: the solver needs a few frames to reach the first pose. Check joint velocity over the first second of every retargeted clip.

How should retargeted motion be scored?

Use bone-direction error between body segments as well as joint angles, because equivalent IK solutions can differ by large joint angles with the same body pose.