moveit / moveit2

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

Have MoveIt Setup Assistant generate ompl_planning.yaml file #2256

Open reidchristopher opened 1 year ago

reidchristopher commented 1 year ago

Is your feature request related to a problem? Please describe. The ROS 1 iteration of MoveIt Setup Assistant generated an ompl_planning.yaml file, while the current ROS 2 version does not. This ompl_planning.yaml is still used for configuration in the current state of MoveIt, so producing this file would make the setup assistant that much more user friendly.

Describe the solution you'd like It would be great for the setup assistant to auto-generate some default version of ompl_planning.yaml. Essentially combining the defaults in moveit_config_utils and adding on the small amount of necessary information (listing all of the available configs for each planning group, projection_evaluator, default_planner_config, etc). Most of the pieces are already in place, it's just putting it together in a way that isn't broken.

Describe alternatives you've considered You can load the defaults with MoveItConfigBuilder and then modify the configuration, but this already assumes more knowledge of the expected format, and is just unnecessary extra work on the user's part. You can also copy from the default files in moveit_config_utils, but that again is a clunky way of solving the issue.

Additional context Would also make the "Group Default Planner" button do something when defining planning groups, since I'm pretty sure that doesn't do anything at the moment. :eyes:

sjahr commented 1 year ago

@reidchristopher Sounds like a good idea to add this :+1: Would you have time to work on this? I can assist you with reviews and answering questions

obensustam2 commented 1 year ago

@reidchristopher It is a very good idea šŸ‘šŸ¼

I tried to implement ompl_planning.yaml from different robots to my moveit package. However, it didn't work and I don't know which part I should configure. If I would have one default file, I could compare and find the solution faster.

I will check moveit_config_utils now. Thanks

reidchristopher commented 1 year ago

@sjahr I believe I could work on this, though I definitely need help understanding the structure of things.

What key files/classes would be I be editing? Is there an example flow of things being set/files being generated?

sjahr commented 1 year ago

@reidchristopher Sorry for the delay. You could start by understanding how the kinematics.yaml file is generated by the setup assistant. The challenging part with the OMPL config is that you need to create the configs per group. If you look at the ompl.yaml file it has three sections:

Furthermore, you need to make sure that this section is part of the launch files you'd like to generate. Essentially, if you pass ompl as an argument for the planning_pipelines parameter, the ConfigBuilder will look in the config package for a file called ompl_planning.yaml and load the parameters in that file in the ompl namespace.

So in order to get this working you need to:

github-actions[bot] commented 1 year ago

This issue is being labeled as stale because it has been open 45 days with no activity. It will be automatically closed after another 45 days without follow-ups.