omiretarget-kinematic-rl-eval
OmniRetarget: Interaction-Preserving Data Generation for Humanoid Whole-Body Loco-Manipulation and Scene Interaction — Lujie Yang et al. (2025) (arXiv:2509.26633, 2025)
What this evaluates
Evaluates the kinematic feasibility and physical constraint satisfaction of retargeted humanoid motions, as well as the downstream reinforcement learning policy success rates for loco-manipulation and terrain interaction tasks.
Datasets
- OMOMO — total ?; splits: test (-1)
- In-house MoCap — total ?; splits: test (-1)
- LAFAN1 — total ?; splits: test (-1)
Metrics
Penetration Duration (normalized)— range: [0, 1]- Ratio of time where the robot intersects with objects or terrain to the total trajectory length.
Penetration Max Depth (cm)— range: other- Maximum intersection depth between the robot and objects/terrain during the trajectory.
Foot Skating Duration (normalized)— range: [0, 1]- Ratio of time where the stance foot slides to the total desired foot sticking length.
Foot Skating Max Velocity (cm/s)— range: other- Maximum sliding velocity of the stance foot during contact phases.
Contact Preservation Duration (normalized)— range: [0, 1]- Ratio of time where contact is maintained (hand-object or foot/heel-terrain) to the desired contact length.
Downstream RL Policy Success Rate (%)(primary) — range: percent- Percentage of episodes that meet the training termination criteria in simulation.
Input / output format
Input: Retargeted 3D motion trajectories (keyframes/poses) for a Unitree G1 humanoid, evaluated against reference human MoCap data and scene/object/terrain geometry.
Output: Quantitative scores for penetration duration, penetration max depth, foot skating duration, foot skating max velocity, contact preservation duration, and downstream RL policy success rate.
Scoring recipe
def compute_metrics(traj, scene_geom, contact_phases):
# Penetration
pen_dur = sum(1 for t in traj if intersects(traj[t], scene_geom)) / len(traj)
pen_max = max(depth(traj[t], scene_geom) for t in traj if intersects(traj[t], scene_geom))
# Foot Skating
skate_dur = sum(1 for t in stance_foot if sliding_vel(traj[t]) > 0) / total_stance_time
skate_max = max(sliding_vel(traj[t]) for t in stance_foot)
# Contact Preservation
cont_dur = sum(1 for t in contact_phases if is_contact_maintained(traj[t])) / len(contact_phases)
# RL Success
rl_success = count(successful_episodes) / total_episodes
return pen_dur, pen_max, skate_dur, skate_max, cont_dur, rl_success
Common pitfalls
- GMR's high contact preservation score is misleading because scaling human hand keypoints to robot size often drives hands inside objects, causing substantial penetration.
- VideoMimic's soft collision cost conflicts with keypoint matching, degrading interaction preservation despite comparable terrain results.
- RL success rate is highly sensitive to kinematic artifacts; baselines with penetration/skating fail to train policies effectively without extensive reward engineering.
Evidence (verbatim from paper)
We evaluate the kinematic quality of retargeted motions on a Unitree G1 with three criteria: 1. Penetration: Measured by the time duration (normalized by the trajectory length) and maximum depth of intersections between the robot, objects, and terrain. 2. Foot Skating: Quantified by the time duration (normalized by the total desired foot sticking length) and maximum skating velocity of a stance foot. 3. Contact Preservation: Quantified by the time duration (normalized by the desired contact length).
Citation
@misc{yang2025omiretarget,
title={OmniRetarget: Interaction-Preserving Data Generation for Humanoid Whole-Body Loco-Manipulation and Scene Interaction},
author={Lujie Yang et al. (2025)},
year={2025},
note={arXiv:2509.26633}
}
- arXiv: 2509.26633