Any implementation of CBiRRT2 (Constrained Bidirectional RRT) planner for moveit

575 views
Skip to first unread message

Behnam Asadi

unread,
Sep 19, 2013, 11:49:37 AM9/19/13
to moveit...@googlegroups.com
Dear All

Is there any implementation of CBiRRT2  for moveit or any plan for implementing that in future?
if there is not yet, then How can I develop my custom planner (i.e CBiRRT2) for meveit?
any source code that I can have a look?
Thanks and regards.






Ioan Sucan

unread,
Sep 19, 2013, 12:01:01 PM9/19/13
to Behnam Asadi, moveit-users
Hello Behnam,

The list of sampling-based planners available in MoveIt is actually the set of geometric planners from OMPL:
http://ompl.kavrakilab.org/planners.html

That list does not currently include CBiRRT2. Implementing that planner would not be too difficult though. You would need to add the planner to OMPL (see this tutorial http://ompl.kavrakilab.org/newPlanner.html)
and constraint computation bits would probably be passed in as callbacks from MoveIt.

You can also add your own planning plugin, that just does CBiRRT2, bypassing OMPL, but then the planner will not be so simple to implement.

http://moveit.ros.org/wiki/Motion_Planning/Overview

Ioan

Ioan Sucan

unread,
Sep 19, 2013, 12:04:56 PM9/19/13
to Behnam Asadi, moveit-users
Behnam,

I forgot to ask one thing: is there a particular reason you would like to use CBiRRT2? The reason I am asking is that all OMPL planners work with the concept of sampleable goal regions, which in MoveIt are generated based on constraints. This means that TSRs described in the paper you pointed to work already with all the planners in OMPL.

Ioan

Behnam Asadi

unread,
Sep 26, 2013, 8:35:07 AM9/26/13
to moveit...@googlegroups.com, Behnam Asadi

Hi Ioan
Thanks for your reply, regarding what you asked, I have the following problem that need to solve:

Consider the problem of opening a hand-wheel with dual arm, I'm calculating the some points on the hand-wheel (for the right arm from +30 degree to -30 degree and for the left arm from -30 degree to +30 degree)
I have solved this problem by using "computeCartesianPath" in movegroup, but now I need to solve it by using constraints.

I set the start state so the robot eef is on +30 degree and the the goal is on -30 degree so I have to add some path constraint to make the eff to traverse over quarter circle  between +30 to -30.
I have used path_constrains but id doesn't work for me and it really baffled me.
Any help is highly appreciated.  

Leo Keselman

unread,
Oct 17, 2013, 11:29:37 AM10/17/13
to moveit...@googlegroups.com, Behnam Asadi
Ioan,

Could you please flesh out a bit further the steps to adding your own planner? This is what I have done:

1) Download OMPL source
2) Add my planner (in Geometric/RRT for instance)
3) cmake & make install OMPL
4) Add my planner to ompl_planning.yaml

I can see the planner in Rviz(just because I have added it to the yaml) but it does not know where to look for the actual implementation. Is there somewhere else that I need to add it or did I not understand the steps?

Thank you

Ioan Sucan

unread,
Oct 17, 2013, 11:39:55 AM10/17/13
to Leo Keselman, moveit-users, Behnam Asadi
Hello Leo,

What you said sounds good to me. You also need to register the planner with the moveit plugin. If you look at the link below, it should become clear what you need to add:
https://github.com/ros-planning/moveit_planners/blob/hydro-devel/ompl/ompl_interface/src/planning_context_manager.cpp#L143

Ioan

Leo Keselman

unread,
Oct 17, 2013, 1:36:32 PM10/17/13
to moveit...@googlegroups.com, Leo Keselman, Behnam Asadi
Ioan,

I think the problem may be the OMPL package I'm editing. I downloaded the source directly from the OMPL website, added my planner and then installed it. Now I'm thinking the moveit interface doesn't look at that package but another one (ros-hydro-ompl). Do I need to get this package and modify it? If so where is the source? This link looks broken: http://wiki.ros.org/ompl

Thanks!

Leo

Ioan Sucan

unread,
Oct 21, 2013, 11:54:45 AM10/21/13
to Leo Keselman, moveit-users, Behnam Asadi
Leo,

As you may have figured out, the debian package ros-distro-ompl is directly built from the mercurial repo on bitbucket, which is what is officially released (there is an intermediate release repo on github, but the official code is on bitbucket):
http://ompl.kavrakilab.org/core/download.html

You should not need to modify the release package, just point the moveit build system to your OMPL installation using OMPL_PREFIX.
Ioan
Reply all
Reply to author
Forward
0 new messages