M2Diffuser
M2Diffuser is a diffusion-based, scene-conditioned generative model that directly generates coordinated and efficient whole-body motion trajectories for mobile manipulation based on robot-centric 3D scans.
- Website, code: https://m2diffuser.github.io/, https://github.com/m2diffuser/M2Diffuser/tree/main
- Model learns from trajectory-level distributions from mobile manipulation trajectories from an expert planner
- Optimization module can flexibly accommodate physical constraints and task objectives by modeling them as cost & energy functions during inference
I read NeuralMP right before reading M2Diffuser (this paper), so I'll start by drawing connections between these two setups before diving into the details of the M2Diffuser paper.
NeuralMP vs. M2Diffuser
M2Diffuser and NeuralMP approach the same approximate problem of training a neural network to imitate a slow expert planner - except M2Diffuser looks at whole-body mobile manipulation (base + arm), while NeuralMP looks at a fixed-base manipulator.
| Feature | NeuralMP | M2Diffuser |
|---|---|---|
| Problem scope | Fixed-base manipulator (7 DoF) | Whole-body mobile manipulation (base + arm) |
| Architecture | LSTM sequence model + GMM | Scene-conditioned diffusion model |
| Expert data | AIT* (sampling-based) | VKC (optimization-based) |
| Optimization (prevent collisions, ...) | Post-generation Monte Carlo sorting | In-process gradient guidance during denoising |
| Task target | Explicit target joint config |
GMMs vs. diffusion
- NeuralMP formulates motion planning as a sequential prediction problem
- it rolls out an LSTM step-by-step, predicting the params of a GMM to capture the multi-modal nature of the paths
- π β NeuralMP() outputs β β NeuralMP() outputs β ... β , and the full trajectory is
- M2Diffuser treats the entire trajectory as a single high-dim. image of data
- it learns the trajectory-level distribution using a diffusion model β instead of predicting the next step , it starts with a trajectory of pure Gaussian noise () and iteratively denoises it over steps into a smooth, coordinated trajectory
- π M2Diffuser's base network does not take (an explicit goal pose) as an input - it takes the target objective as a separate energy gradient
- Initialize: Start with a full trajectory of pure Gaussian noise across the entire horizon :
- The denoising loop: For every diffusion step, the network evaluates the entire noisy trajectory and the point cloud (), predicting the noise to subtract, while the energy functions physically push the trajectory toward the goal and away from obstacles:
- Predict noise:
- Calculate base mean:
- Calculate guidance: Compute the gradient of the task objective () and physical collisions () wrt. the trajectory -
- Guided sample: Shift the trajectory using that gradient to get the cleaner path for the next step:
- Anchor the start: Force the first frame of the trajectory to be the current robot state: .
- ^ After iterations of that loop, the noise resolves completely -