ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

could ompl deal with mobile manipulation?

asked 2012-11-11 15:09:11 -0600

updated 2014-01-28 17:14:13 -0600

ngrennan gravatar image

dear all, i've finished the object manipulation with the amazing stack arm_navigation. that is, now my robot can grasp objects from a table while the robot base is fixed. however, due to the limited workspace of the arm, the robot can only grasp objects within a small region. it cannot even cover the whole table. so i'm wondering that, if we can plan a location for the robot base while do the arm motion planning? for example, the robot goes to the other side of the table to grasp objects there? according to my understanding about RRT, this is merely an addition of 3 degrees in the searching space, that is, the x,y, and rotation of the base. can we do this with the current planning_description_configuration_wizard? or does anybody have any hit for this task?

thanks in advance.

EDIT: dear pirate, although you've pointed a direction for me, i'm still confused about the details. do you mean that i need to modify the file MyRobot_planning_description.yaml generated by the wizard? if so, how should i modify? in the beginning of MyRobot_planning_description.yaml, it is:

  - name: world_joint
    type: Fixed
    parent_frame_id: base_link
    child_frame_id: base_link
  - name: left_arm
    base_link: base_link
    tip_link: left_link7

as you said, i need to add a P-R-P or P-P-R joint, where should i add this information?

besides, since i'm planning for the arm manipulation in the joint space instead of the task space, i need to first convert the goal pose to the joint space with IK. that means i must first determine the robot base's position, and then do the arm planning. in this way the whole planning is acturally split into two parts: first the planning for the base in SE(3), then the planning for the arm in the configuration space. however, i hope that the planner can treat the whole planning as one part.

don't know if i've put myself clearly :-( but i would really appreciate it if you could provide more details about your realization.

thanks again.

edit retag flag offensive close merge delete


Looks like an intern implemented a similar planner (new Darrt planner):

bit-pirate gravatar image bit-pirate  ( 2013-03-21 13:44:07 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2012-11-11 17:40:22 -0600

bit-pirate gravatar image

updated 2012-12-07 13:55:36 -0600

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).

edit flag offensive delete link more


thanks so much for your quick and helpful answer. i will give that a try. thank god, my base is a holonomic one. i'm also looking forward to the release of moveit!

yangyangcv gravatar image yangyangcv  ( 2012-11-11 18:05:42 -0600 )edit

dear pirate, i've edited my original post. could you kindly read it and give some hints for my new questions? thanks so much.

yangyangcv gravatar image yangyangcv  ( 2012-12-04 12:31:24 -0600 )edit

Done. Hope this helps.

bit-pirate gravatar image bit-pirate  ( 2012-12-07 13:56:04 -0600 )edit

thanks. seems things work fine for my 10 DOF robot(3DOF base+7DOF arm). the only problem is about trajectory filter. when i try to filter the trajectory produced by ompl, the process trajectory_filter_server dies with exit code -6. have you encountered this problem?

yangyangcv gravatar image yangyangcv  ( 2012-12-10 14:56:51 -0600 )edit

I remember an issue like this (haven't been using this set-up for a while). What happened to me from time to time, is that move_arm was crashing, because the filter couldn't process the trajectory. Seems like a bug in move arm, since it shouldn't crash just because the service call wasn't successful

bit-pirate gravatar image bit-pirate  ( 2013-01-13 13:45:48 -0600 )edit

I think it should just aboard the current request and then let you call the filter again or try a different trajectory.

bit-pirate gravatar image bit-pirate  ( 2013-01-13 13:49:25 -0600 )edit

The move_arm issue @bit-pirate mentions is ticketed as #5215. Issue contains patch with fix, if you're interested.

Adolfo Rodriguez T gravatar image Adolfo Rodriguez T  ( 2013-01-13 20:20:26 -0600 )edit

Sweet! Thanks! :-)

bit-pirate gravatar image bit-pirate  ( 2013-01-13 21:42:08 -0600 )edit

answered 2012-11-28 02:58:48 -0600

Sanxano gravatar image


I'm trying make a planning scenary with some attached objects on the table, and try to collect all of them and push into a "trash".

I'm some confused about attached and non attached objects and how integrated it in the scenary. In adition, when I attach a object to the pr2 hand, I don't know how change the scenary for a new request ompl plan.

Could you help me, with some notions or a "template scheme"


edit flag offensive delete link more



sorry, i've not used the attached object function. besides, you could ask a new question and see if there is anybody could help you.

yangyangcv gravatar image yangyangcv  ( 2012-12-02 11:35:09 -0600 )edit

Sanxano, please don't ask new questions in answers, which do not help to solve the original question. Just create a new question yourself. Thanks.

bit-pirate gravatar image bit-pirate  ( 2012-12-07 13:58:43 -0600 )edit

Question Tools

1 follower


Asked: 2012-11-11 15:09:11 -0600

Seen: 766 times

Last updated: Dec 07 '12