Frontier Radar | DiPLO: a kinematic reference props up the diffusion planner in pretraining, self-distillation removes it, then diffusion RL aligns the planner with a frozen tracker

DiPLO pretrains a diffusion planner on IK references, drops them via SD:DPO, tunes via DA:PPO; authors report 45.4%→98.8% sim success, 15/15 G1 runs.

Three-layer diagram, from top to bottom: the first layer is the diffusion planner running in a GPU process, generating 64-frame motion chunks at up to about 12.5 Hz; the second is the tracking policy running on the CPU through ONNX, outputting residual joint positions at 50 Hz; the third is the PD controller, tracking joint targets at 200 Hz.
DiPLO’s three layers in the Unitree G1 deployment: the planner generates chunks of whole-body and object motion, the tracker executes them and outputs residuals added to the reference, and the PD controller tracks the joint targets. Drawn from Sections III-A and V-I of arXiv 2610.24847 (author-reported); the rates and chunk length are the deployment settings stated in the paper, and 12.5 Hz is the maximum rate including communication latency and diffusion sampling. The top-to-bottom order follows the paper’s high-level to low-level description; size and colour indicate no quantity or importance.

Humanoid loco-manipulation has to coordinate walking, balance and interaction with an object at the same time: demonstrations are scarce, and reinforcement learning from scratch is hard. In the preprint DiPLO (arXiv 2610.24847, 2026-10-17), authors from the Technical University of Munich (TUM), McGill University and INRIA split the job in two: a diffusion motion planner generates the motion of the robot’s whole body and of the object, and a separate whole-body tracking policy trained with reinforcement learning executes it. The most instructive part of the paper is the training order. During pretraining the planner relies on a kinematic reference retargeted from human motion; post-training first removes that reference by self-distillation (SD:DPO), then uses diffusion reinforcement learning (DA:PPO) to adapt the planner to the frozen tracker. The authors report that task success on a simulated pick-carry-place task rises from 45.4% to 98.8%, and that all 15 executions on a real Unitree G1 succeeded without any real-world fine-tuning. All numbers below are author-reported [R]; this site has not reproduced them.

Division of labour: the planner generates whole-body and object motion, the tracker executes it

The planner is a conditional diffusion model with a Diffusion Transformer (DiT) as its denoiser. Its inputs are the history of robot and object states and the goal object pose (expressed relative to the object’s current pose); an optional input is a kinematic reference obtained by IK retargeting. Its output is an n-frame chunk of robot–object motion. Each frame’s state contains the planar root displacement, heading change, root height, root orientation, 29 joint positions, and the object’s position and orientation; rotations are encoded in the continuous 6D representation, giving 48 features per frame. Euclidean features use variance-preserving (VP) diffusion with a cosine noise schedule and v-prediction; root and object orientations are diffused separately on SO(3).

The tracker is a generalist tracking policy trained with PPO in mjlab to follow dynamically feasible reference motions. It runs at 50 Hz, reads the planned motion at offsets of 1, 2, 4 and 8 frames into the future, and outputs a residual that is added to the reference joint positions to form the PD controller’s joint targets. Execution is closed-loop: the tracker executes only the first m ≤ n frames of a chunk, and the planner then replans from the measured state. The paper stresses that replanning therefore accounts for the motion actually executed, including tracking errors.

In the real-robot deployment, the three rates are explicitly stated for one and the same system. The planner runs as a separate process on the GPU and uses 10 denoising steps to produce a 64-frame chunk, which corresponds to 1.28 s; including communication latency and diffusion sampling, it runs at up to about 12.5 Hz. The tracker runs on the CPU through ONNX Runtime at 50 Hz and keeps executing the current chunk until a new one arrives; a PD controller tracks the joint targets at 200 Hz. At 12.5 Hz, a new chunk arrives at most about every 80 ms, or every 4 tracker control steps (this site’s arithmetic); the text read does not give m for the real robot. Physical AI Lab 0.3: See, Think, Act stresses that rates from different datasets, models and interfaces cannot be combined into the specification of one robot; DiPLO’s three rates, by contrast, come from a single deployment description and can be read side by side as layers.

Pretraining: 29 demonstrations, dynamically feasible augmentation, and why the reference condition matters

The starting point is 29 retargeted robot–object motions from an existing dataset (OmniRetarget), 2.7 minutes in total. Kinematic retargeting does not guarantee that the robot’s dynamics and contact constraints hold, so the authors refine each reference into a dynamically feasible motion with the sampling-based trajectory optimization (SBTO) from DynaRetarget: perturbing the initial conditions and varying the optimization seeds yields several feasible variants of each demonstration. They then mirror the motions across the sagittal plane and use the box’s quarter-turn rotational symmetries to augment further. Every training sample pairs a kinematic reference with a feasible target motion. During pretraining, the reference is replaced with a null token in 50% of samples, so that the same network learns to denoise under both forms of conditioning.

The effect of augmentation is shown in the paper’s Table I (closed-loop survival of the pretrained models): 90.0% with the original motions only, 90.7% with symmetry, 92.3% with SBTO variants, and 96.5% with both. With both augmentations, DA:PPO post-training lifts survival to 100.0% and task success to 96.4%; the model without augmentation reaches only 93.3% and 72.3% after post-training. The same table also has the tracker execute the references themselves: tracking the IK-retargeted motion gives 93.5% survival and 53.0% success, and tracking the SBTO solution gives 100.0% and 61.6%. Both task success rates (53.0% and 61.6%) are below the post-trained planner’s 96.4%.

The role of the reference condition is examined in Section V-B. The authors pretrain one model for each of seven task priors. Conditioning on the full IK-retargeted robot and object motion works best; using human and object poses from the OMOMO dataset directly, without retargeting, lowers survival by roughly 9%; keeping end-effector and object references only every 5 frames shows no significant drop compared with dense references; keeping only the object motion lowers survival to about 70%; and with no prior at all, to about 45%. The authors conclude that, in this limited-data regime, pretraining needs strong task priors. This corresponds to the “a human hand is not a robot hand” problem in Physical AI Lab 1.5: Where Does Data Come From?: DiPLO translates human motion into robot data in two steps, kinematic retargeting followed by optimization for dynamic feasibility.

Two post-training steps: SD:DPO removes the reference, DA:PPO aligns with the frozen tracker

Simply removing the reference makes the pretrained model clearly worse. The authors’ explanation is that planning and tracking errors lead the system into states poorly covered by the training data, where the data give no guidance on how to continue the motion. SD:DPO (Self-Distillation Diffusion Policy Optimization) works as follows:

  • The student receives only the state history, the goal and the null token; the teacher additionally receives the kinematic reference. Both are initialized from the pretrained planner.
  • At each planning step, the student and the teacher each generate a chunk; one of the two is chosen with probability 1/2, and the frozen tracker executes its first m frames in simulation. Whichever proposal was executed, the student’s proposal, its starting context and the corresponding reference are stored in a buffer; failed rollouts terminate and reset, and previously collected proposals remain, including those associated with failure.
  • For training, a stored proposal is drawn and noised to a uniformly sampled diffusion level; the teacher and the student receive the same noisy motion, diffusion level and context, and only the teacher also sees the reference. The loss is the mean squared error between their Euclidean and rotational denoising predictions; gradients pass only through the student, and the teacher’s predictions serve as fixed targets.
  • This loss is trained together with the original data-based pretraining loss and an anchor loss, which keeps the student’s reference-conditioned predictions close to a frozen pretrained copy. The teacher is updated as an exponential moving average of the student’s weights.

This step requires no reward. The authors say it draws on SDPO from language models, in which the same model, conditioned on extra information, serves as its own teacher.

The second step, DA:PPO, treats every denoising step as a decision (a Diffusion-Augmented MDP): the environment reward obtained by executing the first m frames is credited only to the final denoising step, and the Bellman recursion then propagates it to each denoising decision that produced the chunk. A maximum-entropy regularizer, computed from the ratio of reverse to forward transition densities with a temperature setting its strength, keeps the generated plans diverse. The tracker stays frozen during fine-tuning, and the planner receives only the state history and the goal. The paper notes that DPPO explores by truncating the denoising process, which can produce jittery motion, exactly what humanoid control needs to avoid.

The paper’s Table V separates the effect of the two steps (pick-place task):

PlannerSurvival (%)Task success (%)
No-prior, pretrained46.932.2
No-prior, pretrained + DA:PPO74.167.0
Self-teacher (pretrained, with reference)96.551.9
Student (pretrained, reference nulled)57.745.4
Student + DA:PPO92.192.1
Student + SD:DPO100.055.1
Student + SD:DPO + DA:PPO99.598.8

The abstract’s “about 99% vs 45%” compares the last row with the student whose reference is nulled; the reference-conditioned self-teacher reaches 51.9% success. The table shows (this site’s reading) that SD:DPO alone mainly raises survival (57.7% → 100.0%), while success moves only from 45.4% to 55.1%; DA:PPO alone already reaches 92.1%; with both steps, success is about 6.7 percentage points higher still, and survival is also higher. A model pretrained without the reference reaches only 67.0% even after DA:PPO, which the authors cite as evidence for the importance of reference conditioning during pretraining. The kicking and pushing/pulling tasks each have their own separately pretrained planner: for kicking, the student’s success goes from 1.2% to 31.9% with SD:DPO and to 68.1% with DA:PPO (self-teacher 34.4%); for pushing/pulling, from 12.8% to 21.7% and then 52.7% (self-teacher 23.3%). These two tasks have no “Student + DA:PPO” row, so SD:DPO’s contribution cannot be isolated there.

How the metrics are defined: survival is the share of rollouts in which the robot neither falls nor drops the object; task success is the share of surviving rollouts whose final object pose lies within 15 cm and 30° of the goal. Simulation results are means ± standard error over distinct reference motions, with each motion rolled out 100 times.

Other ablations: SO(3) diffusion, motion-level vs action-level, rewards, and tuning the planner vs the tracker

  • SO(3) diffusion: changing only how rotational features are diffused, diffusion on SO(3) gives 96.5% survival, 51.9% success and a 14.0° object-orientation error; treating the 6D coordinates as Euclidean gives 85.9%, 46.4% and 19.6°.
  • Motion-level vs action-level diffusion: all three methods receive the same task information (states, goal object pose, IK-retargeted motion). DiPLO’s state diffusion with a tracker reaches 96.5% / 51.9%; action diffusion built after PDP reaches 87.5% / 45.3%; state–action diffusion built after BeyondMimic and steered at inference reaches 58.2% / 8.2%. Both baselines are trained by behaviour cloning on rollouts of the pretrained tracker over the augmented data, and replan at every 50 Hz step, executing only the first action. The authors argue that generative learning amounts to forward-KL fitting, and under imperfect approximation a model may put probability in the regions between action modes; at the action level, such samples become joint commands directly and may disrupt balance or contact. Physical AI Lab 1.6: Imitation Learning covered the same kind of problem with a left and a right detour being averaged into a collision; DiPLO’s approach is to have the diffusion model generate motion and let a tracker that learned to correct errors through RL in simulation execute it.
  • Rewards: with r_kin, which rewards staying close to the dense IK-retargeted motion, DA:PPO reaches 96.4% success and an MPKPE of 4.3 cm; with r_goal, which rewards approaching the goal plus a survival bonus, it reaches 92.9% and 8.0 cm. r_kin can be computed only where a retargeted demonstration exists; r_goal does not need one. Physical AI Lab 1.7: Reinforcement Learning covered how the way a reward is written decides what a policy learns; here both rewards improve survival and success, and r_goal needs no demonstration but gives slightly lower success and larger tracking errors.
  • Maximum entropy: a DPPO-style update without temperature reaches 99.1% / 94.0%, DA:PPO 100.0% / 96.4%, with lower tracking errors as well. The authors removed the original DPPO’s injection of extra diffusion noise because it led to unstable, untrackable behaviour; they attribute DA:PPO’s advantage to the maximum-entropy objective and cite prior work stating that the DPPO-style objective suffers severe mode collapse.
  • Tuning the planner or the tracker: keeping the planner pretrained and fine-tuning only the tracker with PPO for 1000 iterations gives 87.9% success (89.3% with a goal term); keeping the tracker pretrained and fine-tuning the planner with DA:PPO gives 96.5%. Table I states 500 iterations with 2048 parallel environments for planner fine-tuning; the text read gives no compute comparison between the two kinds of fine-tuning.

Generalization and the real robot: an 88% goal grid and 15 executions

Without the reference, the planner can accept goal poses that are not in the dataset. The authors place goals on a polar grid around the robot’s starting point at distances from 0.5 to 5 m, with four orientations (0°, 90°, 180°, 270°) at each position; the farthest demonstrated goal is at 1.9 m. Each goal pose is rolled out 100 times, with the object’s initial pose randomized by up to 5 cm and 12°. On this grid, the student after SD:DPO and DA:PPO reaches about 100% survival and 88% task success. These are simulation results.

The real-robot experiments run pick-carry-place on a 29-DoF Unitree G1. Joint encoders and the onboard IMU provide proprioceptive states, and an external motion-capture system tracks the robot base and the object. Results from the paper’s Table VII:

ExperimentSuccessMPKPE (cm)Final object position error (cm)Final object orientation error (°)
Same goal, repeated 10 times10/106.5 ± 0.71.8 ± 0.83.4 ± 1.1
5 distinct goals, once each5/56.8 ± 1.15.7 ± 5.012.8 ± 12.5

The errors are means ± sample standard deviation across executions. Three things to keep in mind: there are 15 executions in total; the text read does not state whether the real-robot success criterion follows the 15 cm and 30° used in simulation; and while the abstract says the real robot used the DA:PPO planner–tracker, Section V-I does not state whether this planner went through SD:DPO or still receives the kinematic reference, nor whether the 5 distinct goals lie outside the demonstrated range. The questions about counts, conditions and failure types in Physical AI Lab 1.8: Evaluation apply equally to these 10/10 and 5/5 results.

This site’s earlier Frontier Radar | HWAM dealt with a related problem: a humanoid’s reference action is not the motion it actually performs, and HWAM has the policy generate the reference action together with the post-execution body state. DiPLO takes a different route: it freezes the tracker, replans from the measured state and fine-tunes the planner on execution returns. The two papers use different tasks and evaluations, so their numbers cannot be compared directly.

Limitations

  • This is an arXiv preprint; all numbers are author-reported [R], and this site has not reproduced them. The text read does not mention a release of code or model weights.
  • All quantitative ablations were carried out in simulation. On the real robot, only one task, pick-carry-place, was tested, in 15 executions in total, relying on external motion capture; the authors list onboard perception as future work. Neither the simulation results nor these real-robot executions are a hardware safety validation.
  • The pick-carry-place data consist of only 29 demonstrations, and the symmetry augmentation uses the box’s rotational symmetries; the kicking and pushing/pulling tasks each have a separately pretrained planner. The authors list a single model covering several skills, and more diverse objects and environments, as future work.
  • “45% → 99%” compares the pretrained student with its reference nulled against the fully post-trained student, and task success is counted only over surviving rollouts. Both qualifications should accompany any citation of the figure.
  • The action-level baselines were built by the authors after PDP and BeyondMimic; they are not results released by those works. Table VI gives 1000 PPO iterations for tracker fine-tuning; the text read does not state the iteration count or compute for the Table VI planner fine-tuning, so the two arms cannot be compared on budget.
  • This article is based on the paper’s HTML text up to the start of the references; the appendix details on rewards, hyperparameters and network architecture were not read.

Links