CLEAR
- Role
- Student researcher
- Organization
- RobotiXX Lab, George Mason University
- Timeline
- 2025 – present
CLEAR converts recordings of people ducking, squeezing, and crawling through clutter into motion for a humanoid robot, allowing the robot's body to stay clear of every obstacle along the robot's path.
Problem
A robot copying a person's motion collides with obstacles due to differences between bodies.
Humanoid robots learn many of their skills by imitating recordings of people. A recording cannot be used as is, since the robot possesses different body lengths, limbs, and joints. The first step of the process is to retarget the human motion. Most retargeting tools geometrically transfer motion between bodies without considering the surrounding environment, since many are optimized for open spaces. In a cluttered room, the small differences between the two bodies add up, and a person who ducks cleanly under a beam becomes a robot whose head passes through it. The few tools that do account for obstacles, however, check them one frame at a time, and so they react to an obstacle only once the robot reaches it. A robot trained on either kind of motion learns to collide.
Solution
Solve 80 frames together: retain a set distance between the robot's whole body and every obstacle
CLEAR converts 80 frames of motion at a time and solves at the same time. Because the frames are solved as a group, a beam the robot will reach several frames later influences previous frames, and so the robot can react accordingly. Within each group, every part of the robot's body has to stay at least a set distance from every obstacle; the solver rejects any pose that breaks that distance. Near an obstacle, CLEAR dials down the weight of the cost function that mimics the person. If the person's own body passed through something, the solver stops copying them altogether. Speed also causes a separate problem: a person can move faster than the robot's joints can rotate. Wherever that happens, CLEAR adds interpolated frames to slow down the motion and solves it again. Before any motion is used to train a robot, it is checked against a full model of the robot's body for collisions and for any joint that would need more force than its motor can supply.
| Method | Clean %, higher is better | Median depth cm, lower is better | Worst depth cm, lower is better |
|---|---|---|---|
| GMR | 31 | 6.4 | 21.8 |
| OmniRetarget | 44 | 6.1 | 8.1 |
| CLEAR, one frame at a time | 73 | 10.4 | 20.5 |
| CLEAR | 75 | 4.9 | 8.1 |
Clean is defined as the share of converted motions in which the robot collides with nothing. Depth counts the frames where the robot does hit something, and for said frames, it calculates how far the robot's body passes into the obstacle.
Duck
- Specialist
- 99.7
- Real G1
- 5/5
Step over
- Specialist
- 100.0
- Real G1
- 3/5
Sidewalk
- Specialist
- 100.0
- Real G1
- 5/5
Crawl
- Specialist
- 97.9
- Real G1
- 3/5
Corridor
- Specialist
- 90.05
- Real G1
- –
| Course | CLEAR, success rate in percent | HumanoidPF, success rate in percent | Specialist, success rate in percent | Real G1, successes out of 5 |
|---|---|---|---|---|
| Duck | 84.0 | 99.0 | 99.7 | 5/5 |
| Step over | 92.5 | 100.0 | 100.0 | 3/5 |
| Sidewalk | 97.7 | 49.8 | 100.0 | 5/5 |
| Crawl | 81.0 | 0.0 | 97.9 | 3/5 |
| Corridor | 70.2 | 42.2 | 90.05 | not run |
The CLEAR and HumanoidPF bars each come from a single controller that runs all five courses. Specialist is a separate controller trained on one course only; because it has nothing else to learn, its score is roughly the best the other two could reach. The Real G1 column shows how many of five attempts succeeded when controllers trained on CLEAR's motions ran on a real Unitree G1 humanoid robot. The corridor was never attempted on the real robot.
Highlights
- Built the benchmark that tests CLEAR on 1,185 recordings in the MuJoCo simulator
- Wrote the metrics and the pipeline that score how well each motion converts
- Submitted to ICRA 2027, 3rd author
Stack
- Language
- Python
- Simulation
- MuJoCo
- MuJoCo Warp
- mjlab
- Learning
- PyTorch
- BeyondMimic
- Optimization and kinematics
- SciPy
- IPOPT
- pytorch_kinematics
- mink
- trimesh
- Data and testing
- NumPy
- pandas
- Matplotlib
- imageio
- pytest
- Hardware
- Unitree G1