NVIDIA SOMA Retargeter Pipeline Analysis: Scaling, Inverse Kinematics, and Post-Processing Corrections for Specific Configuration Issues
John Malaska, Senior Product Manager at NVIDIA, details the three-stage pipeline of SOMA Retargeter v0.2—scaling, inverse kinematics solving, and post-processing correction—using a one-handed wave example from the Booster T1 to illustrate how reference pose alignment alters robot motion semantics, and introduces configuration methods for the IK weight optimizer and foot-plant correction.
Humanoid robot researchers face a problem that seems simple but is actually tricky: human demonstrations capture the coordination and rhythm of natural movement, but robots cannot directly copy the same joint motions because their limb proportions, joint structures, and ranges of motion differ. John Malaska, Senior Product Manager at NVIDIA, provides a detailed explanation in a technical blog post about the adaptation pipeline of the open-source tool SOMA Retargeter, describing which stages make up the pipeline, what conflicts each stage addresses, and how configuration options affect the final output.
The pipeline consists of three stages. The first stage is scaling: mapping motion targets on the human skeleton proportionally to the size of the target robot. The second stage is inverse kinematics (IK) solving: using the Newton physics engine, built on NVIDIA Warp, to find a set of joint angles for each frame that allows the robot to get as close as possible to the scaled target positions. The third stage is post-processing correction, most typically foot-plant correction—detecting contact intervals and adjusting foot trajectories to eliminate sliding artifacts. These three stages address problems at different levels: scaling resolves size differences, inverse kinematics resolves joint reachability constraints, and post-processing correction resolves contact consistency.
Malaska uses a source action of a one-handed wave to illustrate the role of reference pose alignment: if the Booster T1's reference pose is not aligned with the SOMA human reference, the robot will extend both arms outward; after alignment, one hand waves beside its head while the other arm rests naturally at its side. The input motion and IK parameters are identical; the only variable is the alignment of the reference pose. This example isolates the effect of the pose-mapping variable, demonstrating that while scaling solves size differences, incorrect pose mapping causes the robot to perform semantically incorrect actions.