M2Diffuser

Jun 29, 20263 min

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.

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.

FeatureNeuralMPM2Diffuser
Problem scopeFixed-base manipulator (7 DoF)Whole-body mobile manipulation (base + arm)
ArchitectureLSTM sequence model + GMMScene-conditioned diffusion model
Expert dataAIT* (sampling-based)VKC (optimization-based)
Optimization (prevent collisions, ...)Post-generation Monte Carlo sortingIn-process gradient guidance during denoising
Task targetExplicit target joint config gg

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
    • πŸ”‘ q0q_0 β†’ NeuralMP(q0,PCD,gq_0, PCD, g) outputs Ξ”q0\Delta q_0 β†’ q1=q0+Ξ”q0q_1 = q_0 + \Delta q_0 β†’ NeuralMP(q1,PCDq_1, PCD) outputs Ξ”q1\Delta q_1 β†’ ... β†’ qTq_T, and the full trajectory is ⟨q0,q1,…,qT⟩\langle q_0, q_1, \ldots, q_T \rangle
  • 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 Ξ”qt\Delta q_t, it starts with a trajectory of pure Gaussian noise (Ο„T\tau_T) and iteratively denoises it over TT steps into a smooth, coordinated trajectory
    • πŸ”‘ M2Diffuser's base network does not take gg (an explicit goal pose) as an input - it takes the target objective as a separate energy gradient βˆ‡e(Ο„)\nabla e (\tau)
      1. Initialize: Start with a full trajectory of pure Gaussian noise across the entire horizon HH: Ο„T=⟨N(0,I)0,N(0,I)1,…,N(0,I)H⟩\tau_T = \langle \mathcal{N}(0, I)_0, \mathcal{N}(0, I)_1, \ldots, \mathcal{N}(0, I)_H\rangle
      2. The denoising loop: For every diffusion step, the network evaluates the entire noisy trajectory and the point cloud (PCDPCD), predicting the noise to subtract, while the energy functions physically push the trajectory toward the goal and away from obstacles:
        1. Predict noise: Ο΅=M2Diffuser(Ο„t,PCD,t)\epsilon = \text{M2Diffuser}(\tau_t, PCD, t)
        2. Calculate base mean: ΞΌt=RemoveNoise(Ο„t,Ο΅)\mu_t = \text{RemoveNoise}(\tau_t, \epsilon)
        3. Calculate guidance: Compute the gradient of the task objective (ee) and physical collisions (cc) wrt. the trajectory - gguid=βˆ‡Ο„(βˆ’egrasp(Ο„)βˆ’Ξ»β‹…ccollision(Ο„)g_\text{guid} = \nabla_\tau (-e_\text{grasp}(\tau) - \lambda \cdot c_\text{collision}(\tau)
        4. Guided sample: Shift the trajectory using that gradient to get the cleaner path for the next step: Ο„tβˆ’1∼N(ΞΌt+Ξ£tgguide,Ξ£t)\tau_{t-1} \sim \mathcal{N}(\mu_t + \Sigma_t g_\text{guide}, \Sigma_t)
        5. Anchor the start: Force the first frame of the trajectory to be the current robot state: Ο„tβˆ’1[0]=q0\tau_{t-1} [0] = q_0.
      3. ^ After TT iterations of that loop, the noise resolves completely - Ο„0=⟨q0,q1,…,qH⟩\tau_0 = \langle q_0, q_1, \ldots, q_H \rangle

Optimization philosophy: sorting vs. gradient guidance

Target conditioning: explicit joints vs. energy functions

Footnotes

Q: If standard L2L_2 (MSE) loss fails on multi-modal data by averaging everything to the center, and diffusion models use MSE to train, why don't diffusion models fail?