Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Yes and no.

As far as I can tell, your understanding of the RRT planner is correct. You can add 3 DOF for the base in your URDF, e.g. prismatic/prismatic/rotational or rotational/prismatic/rotational, modify the arm_navigation config files (output of the wizard) and let the OMPL planner of your choice do its work.

Actually, I did that and the result looks really fancy. :-) However, depending on your type of mobile base, the output plan may conflict with the constraints of your base. More specific, in my example I have a differential-drive base. The plan I get from the planner does not respect the "non-holonomic/rolling without slipping/don't move orthogonal to the current direction" constraint. The planner doesn't care about the transition from one point to the next. It only makes sure, each point its checking fulfils the constraints (e.g. joint limits, collisions).

In case you have a holonomic base, e.g. omni-wheels, powered casters, mercantum wheels, you might be able to do something useful with the output of the planner.

I think, MoveIt will be able to do you what you like to do. So, you could lean back and wait for the guys to do once again an awesome job, as they did with arm_navigation. :-)

click to hide/show revision 2
adds more information

Yes and no.

As far as I can tell, your understanding of the RRT planner is correct. You can add 3 DOF for the base in your URDF, e.g. prismatic/prismatic/rotational or rotational/prismatic/rotational, modify the arm_navigation config files (output of the wizard) and let the OMPL planner of your choice do its work.

Actually, I did that and the result looks really fancy. :-) However, depending on your type of mobile base, the output plan may conflict with the constraints of your base. More specific, in my example I have a differential-drive base. The plan I get from the planner does not respect the "non-holonomic/rolling without slipping/don't move orthogonal to the current direction" constraint. The planner doesn't care about the transition from one point to the next. It only makes sure, each point its checking fulfils the constraints (e.g. joint limits, collisions).

In case you have a holonomic base, e.g. omni-wheels, powered casters, mercantum wheels, you might be able to do something useful with the output of the planner.

I think, MoveIt will be able to do you what you like to do. So, you could lean back and wait for the guys to do once again an awesome job, as they did with arm_navigation. :-)

/edit to answer your edit:

First, I modified my robot description (URDF) and added three fake joints (R-P-R) between a new "manip_start" frame/link and my robot's base_footprint link. Afterwards I built my custom arm_navigation from scratch using the arm_navigation_wizard. The only difference this time was, that I set the "manip_start" link as my new root (tip link stays the same). In this way the new fake joints get pulled in. Let me know how that goes.

In my case, I made it work for 8 DOF (3 in the arm, 2 in the torso, 3 in the fake base).