moveit / moveit2

:robot: MoveIt for ROS 2
https://moveit.ai/
BSD 3-Clause "New" or "Revised" License
982 stars 491 forks source link

GSOC 2024: Moveit Drake integration experiment #2848

Open kamiradi opened 1 month ago

kamiradi commented 1 month ago

Hi,

This issue lists and tracks the moveit-drake experimental integration project. I propose the following ideas,

Since this is an experimental project, I am open to other ideas that could serve as a benchmark for motion planning in moveit using drake.

rhaschke commented 1 month ago

To apply Drake's motion planning framework, the first step will be to translate MoveIt's PlanningScene to Drake's representation. Do you already have a roadmap for this?

kamiradi commented 3 weeks ago

Thanks for your interest @rhaschke,

Indeed, this is the crux of the experimentation as you have rightly foreseen. Currently, I am focussing on transcribing a simple motion planning problem from Moveit to Drake and reporting the result. While Moveit's representation of the robot employs the RobotModel class, Drake uses the MultibodyPlant. Similarly, Moveit's PlanningScene finds its ideological analogue in Drake's SceneGraph representation. Either way, there is the additional transcription of utilising the SceneGraph to infer constraints for the Trajectory Optimization instance. I plan to build V1 of this integration with the following steps

  1. Create mirrored objects of RobotModel and PlanningScene by instantiating a MultibodyPlant and SceneGraph class within the Moveit plugin.
  2. Utilise the drake classes to setup and solve the optimization problem.
  3. Report the result using Moveit's DisplayTrajectory.

I am open to ideas you may have otherwise that makes setting up the optimization problem easier, and if I am missing something obvious.

Looking forward to the discussion.