GPD:
Guided Polynomial Diffusion for Motion Planning

1Robotic Research Center IIIT Hyderabad, 2Carnegie Mellon University, 3TCS Reserach  4University of Tartu

* denotes equal contribution

† denotes equal contribution

Under Review at ICRA, 2025

Please contact the authors for pre-beta version of the code

Abstract

Diffusion-based motion planners are becoming popular due to their well-established performance improvements, stemming from sample diversity and the ease of incorporating new constraints directly during inference. However, a primary limitation of the diffusion process is the requirement for a substantial number of denoising steps, especially when the denoising process is coupled with gradient-based guidance. In this paper, we introduce, for the first time, diffusion in the parametric space of trajectories, where the parameters are represented as Bernstein coefficients. We show that this representation greatly improves the effectiveness of the costfunction guidance and the inference speed. We also introduce a novel stitching algorithm that leverages the diversity in diffusion-generated trajectories to produce collision-free trajectories with just a single cost function-guided model. We demonstrate that our approaches outperform current SOTA diffusion-based motion planners for manipulators and provide an ablation study on key components.

Guided Polynomial Diffusion


*A short video supplementary of GPD.

What's in GPD?

Trajectory Representation: We represent trajectories using Bernstein polynomials, enabling smooth trajectories throughout the planning process.

Diffusion Over Coefficients: Instead of performing diffusion directly on the state space, we diffuse over the polynomial coefficients. This ensures smooth trajectories without the need for explicit smoothness costs. Gradients are more effective, as changes at each waypoint impact the entire trajectory, allowing better adherence to constraints while maintaining smoothness.

Leveraging Diversity with Stitching: We introduce an inference-time algorithm, where, we leverage the diversity in the generated trajectories by stitching the current trajectory to the nearest collision-free trajectory using a local planner when a new collision is detected. This enhances success rates and enables high-speed performance with a single cost function guiding the process.

Performance Gains in GPD

Smaller Model, Shorter Time per Denoising Step

  • The size of the model and the time to denoise depend on how effectively the diffusion model points to the target data distribution and how the cost function gradients guide the process.

Better Gradients, Fewer Number of Denoising Steps
  • In traditional state-space diffusion models, gradients can disturb trajectory structure. In contrast, our approach with Bernstein polynomials ensures gradients preserve smoothness while being collision-free, resulting in more efficient gradient steps.
  • This reduces the need for a large number of gradient-based diffusion steps, significantly improving speed.

Visualizing the Difference in Gradient Update Rule

  • In the state space, gradients disrupt the structure, requiring more steps to correct the trajectory.
  • In the Bernstein coefficient space, gradients act like pulling a string, preserving the smoothness of the trajectory.

Visualizing Stitching

Reactive Experiments

  • Static Scene Manipulator Collision Avoidance: We demonstrate our framework’s success rate against current SOTA methods on challenging static-scene collision-avoidance benchmarks
  • Dynamic Scene Manipulator Collision Avoidance: We demonstrate speed improvements in high-speed dynamic manipulator tasks.
  • Autonomous Driving: GPD in both real-world autonomous driving scenarios and simulations.


BibTeX


@misc{srikanth2024GPD,
      title={GPD: Guided Polynomial Diffusion for Motion Planning}, 
      author={Ajit Srikanth and Parth Mahanjan and Kallol Saha and Vishal Mandadi and Pranjal Paul and Pawan Wadhwani and Brojeshwar Bhowmick and Arun Singh and Madhava Krishna},
      year={2024},
      archivePrefix={arXiv},
      primaryClass={cs.RO}
}