Dear Ioan (and moveit users),Are there any good examples or documentation on how to set specific parameters to be something other than the default in ompl_planning.yaml?I'm interested in changing some of the parameters on the default planners (the step size and goal criteria on an RRT planner, for instance) and also adding a new planner with non default parameters (PRM with a new connection strategy).Any pointers? Is this even possible?Thanks,-Matt-
Okay, I think I see what you mean.I have moveit and ompl just as binaries from apt-get because I did the default install. I guess that means I should remove those two packages and check them out directly in order to modify the source in the way you recommend.If I want to make my own RRT with different settings, I should just create a new RRT class, inheriting from the existing class and then use set methods to configure it how I want? Once I've got that "new planner" I can add it to the list of planners in planning_context_manager.cpp and then put its name in my yaml file?
With PRM, I notice that there is already a PRMstar.h in ompl but not in the context manager. If I modify the planning_context_manger.cpp, would that make it available for use?
Okay, I think I see what you mean.
I have moveit and ompl just as binaries from apt-get because I did the default install. I guess that means I should remove those two packages and check them out directly in order to modify the source in the way you recommend.If I want to make my own RRT with different settings, I should just create a new RRT class, inheriting from the existing class and then use set methods to configure it how I want? Once I've got that "new planner" I can add it to the list of planners in planning_context_manager.cpp and then put its name in my yaml file?Yes, but parameters that are already defined, like the range or goal bias for RRT -- exposed as a GenericParam in OMPL -- can be configured already in ompl_planning.yaml, so there is no need to define a new planner that is really the same planner but configured differently.
The new class would be needed when you want to change the behaviour of the algorithm, like what you described for PRM.With PRM, I notice that there is already a PRMstar.h in ompl but not in the context manager. If I modify the planning_context_manger.cpp, would that make it available for use?
Yes, that is correct.
Okay, I think I see what you mean.
I have moveit and ompl just as binaries from apt-get because I did the default install. I guess that means I should remove those two packages and check them out directly in order to modify the source in the way you recommend.If I want to make my own RRT with different settings, I should just create a new RRT class, inheriting from the existing class and then use set methods to configure it how I want? Once I've got that "new planner" I can add it to the list of planners in planning_context_manager.cpp and then put its name in my yaml file?Yes, but parameters that are already defined, like the range or goal bias for RRT -- exposed as a GenericParam in OMPL -- can be configured already in ompl_planning.yaml, so there is no need to define a new planner that is really the same planner but configured differently.
Does that mean that things set as GenericParam in OMPL can be set via a YAML file in MoveIt? I took a look at the OMPL source and didn't actually find any GenericParams called out explicitly. Looking at RRT specifically, I did see that there is a declareParam for "range" and "goalBias". Can I add a "range" and "goalBias" param to ompl_planning.yaml?
The new class would be needed when you want to change the behaviour of the algorithm, like what you described for PRM.With PRM, I notice that there is already a PRMstar.h in ompl but not in the context manager. If I modify the planning_context_manger.cpp, would that make it available for use?
Yes, that is correct.
Great. I'd like to try this out, but...Is there an easy way to point my checked-out-source version of MoveIt to my locally installed version of OMPL? Sorry if this is a basic question, but the ROS build system is a bit baffling to me. Following the instructions here: http://moveit.ros.org/wiki/Installation didn't help much because the rosdep step for installing the moveit source pulled in the binary version of OMPL.
Easy... this is a bit tough :)The new class would be needed when you want to change the behaviour of the algorithm, like what you described for PRM.With PRM, I notice that there is already a PRMstar.h in ompl but not in the context manager. If I modify the planning_context_manger.cpp, would that make it available for use?
Yes, that is correct.
Great. I'd like to try this out, but...Is there an easy way to point my checked-out-source version of MoveIt to my locally installed version of OMPL? Sorry if this is a basic question, but the ROS build system is a bit baffling to me. Following the instructions here: http://moveit.ros.org/wiki/Installation didn't help much because the rosdep step for installing the moveit source pulled in the binary version of OMPL.Try this:From the ompl repo, copy doc/dox/FindOMPL.cmake to moveit_planners/ompl/Then in the command line, before calling catkin_make again on moveit, do this:export OMPL_LIB_PATH=/path/to/your/compiled/ompl/lib/folderexport OMPL_INCLUDE_PATH=/path/to/your/ompl/src/folder
catkin_makeIoan