ODE Policy: Robot Learning via Action Dynamics, Not Actions
Organizations: MARS Lab, Nanyang Technological University
Abstract
Most robot policies, whether trained by imitation learning (IL) or reinforcement learning (RL), map observations to action values at discrete control steps and leave the continuity of physical motion to be learned implicitly. We propose ODE policy, which learns the dynamics of the action rather than the action itself. A neural ordinary differential equation (ODE) learns the vector field of the action by matching the integrated actions to the targets over short action chunks in IL and single control steps in RL. A lightweight diversity head captures multi-modal behavior by randomizing the direction of the field. At deployment, each action is integrated from the previous one, so the executed trajectory is continuous by construction. We evaluate it as a visuomotor policy, as the action head of vision-language-action (VLA) and world action models (WAMs), and as the actor of model-based RL against 14 baselines on unimanual, bimanual, dexterous, locomotion, and loco-manipulation tasks. In IL, against flow matching, it reaches 5.9 the success, 5.4 the generalization, and 3.9 the mode balance after one epoch, and generates actions 10.8 faster. It mostly moves more smoothly than human demonstrations. On 14 real-world tasks across single-arm, dual-arm, dexterous, and humanoid robots, it achieves the highest success rate. In RL, it further speeds up SuperMimic for humanoid motion tracking and smooths its actions. Efficient in learning, data, parameters, and execution, ODE policy offers a promising path to scaling robot learning.
Figures & tables
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Method | Micro call | Micro encoder | Micro head | Call | Action | SR | Params |
|---|---|---|---|---|---|---|---|
| ODE-MLP (ours) | 8.82 | 1.22 | 7.6 | 9.69 | 1.25 | 96.7 | 35.6 |
| FM-DiT | 42.1 | 1.28 | 40.8 | 41.3 | 5.31 | 93.3 | 35.1 |
| FM-UNet | 58.8 | 1.22 | 57.5 | 60.1 | 7.7 | 86.7 | 36.0 |
| A2A-DiT | 3.68 | 1.24 | 2.44 | 4.79 | 0.617 | 96.7 | 35.1 |
| DDPM-DiT | 235 | 1.24 | 233 | 237 | 30.5 | 90.0 | 34.7 |
| DDPM-UNet | 335 | 1.25 | 333 | 341 | 43.5 | 93.3 | 36.0 |
| Method | Spatial | Object | Goal | Long | LIBERO | LIBERO-plus |
|---|---|---|---|---|---|---|
| ODE (ours) | 96.0 | 100.0 | 96.0 | 92.0 | 96.0 | 71.5 |
| FM | 90.0 | 91.0 | 90.0 | 81.0 | 88.0 | 69.2 |
| FM-R | 83.0 | 89.0 | 71.0 | 59.0 | 75.5 | 52.6 |
| Setting | FM (original) | A2A | ODE (ours) |
|---|---|---|---|
| Action generation | 10 flow matching steps | 1 flow step from past actions | 1 condition read and 12 Euler steps |
| Predicted / executed actions per chunk | 16 / 12 | 16 / 12 | 12 / 12 |
| Action space | controller command | controller command | desired action, converted to the controller command |
| Proprioception | condition token | condition token | input of the vector field |
| Gripper | part of the action flow | part of the action flow | separate head |
| Trainable parameters | 4517.6M | 4517.6M | 4518.2M |
| Shared set (2008) | ODE (ours), full set (10030) | |||||||
|---|---|---|---|---|---|---|---|---|
| Perturbation | FM | A2A | ODE (ours) | Spatial | Object | Goal | Long | All |
| Camera | 78.7 29.5 | 82.9 24.6 | 91.1 15.2 | 92.6 9.5 | 99.2 1.0 | 92.2 12.2 | 75.7 21.2 | 89.7 15.2 |
| Robot initial pose | 52.5 26.7 | 61.6 24.6 | 71.7 22.8 | 77.1 11.8 | 63.3 11.4 | 67.0 17.0 | 68.7 13.3 | 68.8 14.2 |
| Language | 89.2 17.0 | 92.1 14.8 | 92.1 14.2 | 96.7 9.8 | 93.8 11.1 | 89.0 10.6 | 88.8 21.1 | 92.0 13.6 |
| Light | 97.4 5.9 | 95.6 16.2 | 98.7 3.7 | 99.7 0.9 | 100.0 0.0 | 94.6 9.5 | 96.4 4.4 | 97.7 5.2 |
| Background | 88.5 16.6 | 95.1 12.7 | 93.8 16.5 | 95.3 15.6 | 96.8 4.9 | 94.0 12.6 | 91.7 11.0 | 94.3 11.4 |
| Demonstrations | ODE policy (ours) | FM-DiT | DDIM-UNet | |
|---|---|---|---|---|
| Time per chunk (ms) | – | 10.2 | 35.0 | 51.8 |
| 95th percentile and maximum time (ms) | – | 12.1 and 65.8 | 36.6 and 49.5 | 53.6 and 65.2 |
| Acceleration at chunk boundaries (rad/s 2 ) | 1.04 | |||
| Acceleration inside chunks (rad/s 2 ) | 1.09 | |||
| Boundary to inside ratio | 0.96 | 0.86 | 2.03 | 2.97 |
| Arm jerk (rad/s 3 ) | 10.3 |
| Demonstrations | ODE policy (ours) | FM-DiT | |
|---|---|---|---|
| Time per chunk (ms) | – | 10.3 | 36.3 |
| 95th percentile and maximum time (ms) | – | 12.7 and 30.5 | 42.6 and 89.4 |
| Acceleration at chunk boundaries (rad/s 2 ) | 1.57 | ||
| Acceleration inside chunks (rad/s 2 ) | 1.27 | ||
| Boundary to inside ratio | 1.24 | 1.45 | 2.17 |
| Arm jerk (rad/s 3 ) | 12.8 |
| Method | Vector field | Ep. 1 | Ep. 10 | Ep. 100 | it/s | ms/chunk |
|---|---|---|---|---|---|---|
| ODE-MLP (ours) | FiLM-MLP | 79.2 | 93.9 | 93.8 | 17.1 | 11.0 |
| ODE-DiT (ours) | AdaLN Transformer | 77.2 | 89.6 | 91.2 | 3.5 | 51.9 |
| FM-DiT | – | 13.5 | 80.1 | 85.4 | 31.6 | 61.4 |
| A2A-DiT | – | 42.2 | 86.9 | 85.6 | 23.3 | 5.8 |
| Inference | Epoch 1 | Epoch 5 | Epoch 10 | Epoch 20 |
|---|---|---|---|---|
| No offset | 85.3 1.9 (98/81/91/72) | 95.0 1.0 (99/97/96/87) | 92.8 1.0 (99/94/93/85) | 93.1 1.2 (99/97/93/84) |
| Component mean (ours) | 79.8 1.6 (98/78/83/60) | 94.8 0.4 (100/97/96/87) | 94.3 1.3 (99/98/95/86) | 94.2 1.0 (99/95/95/87) |
| Full sampling | 52.1 0.1 (79/50/52/28) | 90.8 0.0 (96/94/90/82) | 93.7 1.1 (98/93/96/87) | 94.8 0.4 (99/99/94/87) |
| Method | Ep. | SR | In-chunk | Cross-chunk | Jerk | Steps | ms/action | ms/call |
|---|---|---|---|---|---|---|---|---|
| ODE-MLP (ours) | 20 | 92.9 0.5 | 0.0051 | 0.0059 | 2.1 | 71 | 0.079 | 0.55 |
| 50 | 93.8 0.3 | 0.0053 | 0.0054 | 2.3 | 70 | 0.072 | 0.56 | |
| 100 | 93.8 1.3 | 0.0054 | 0.0053 | 2.3 | 72 | 0.069 | 0.47 | |
| ODE-DiT (ours) | 20 | 89.4 | 0.005 | 0.0057 | 2.1 | 73 | 0.23 | 1.3 |
| 50 | 90.8 | 0.0052 | 0.0059 | 2.3 | 73 | 0.26 | 1.5 | |
| 100 | 91.2 | 0.0053 | 0.0057 | 2.3 | 69 | 0.19 | 0.92 |
Robot Policy Learning
Robot policy learning develops controllers that map sensory observations, task goals, and interaction history to actions for embodied robots.
See all 383 papers