Ask Your Question

Planning with OMPL using a subset of joints

asked 2011-03-05 11:17:55 -0500

Advait Jain gravatar image

I would like to be able to treat the PR2 as a planar three link manipulator and test out some built in planners (openrave or OMPL).

Is there a way to restrict openrave and/or OMPL to use only the shoulder pan, elbow flex, and wrist flex joint of the PR2?

edit retag flag offensive close merge delete

5 Answers

Sort by ยป oldest newest most voted

answered 2011-03-05 13:42:11 -0500

Sachin Chitta gravatar image


ompl_ros_interface is setup to plan for a group of joints - you can setup a group to consist of just those three joints. When you make a planning request, you do have to make sure you specify where the other joints of the robot should be - they will stay fixed at those positions for planning.

Let me know if you run into problems.

edit flag offensive delete link more

answered 2011-03-07 16:55:46 -0500

Sachin Chitta gravatar image

updated 2011-03-07 17:02:38 -0500

Here's a bunch of diff's against cturtle that I used to get your use case working in simulation:

(1) Change the configuration and planning specification to add new group: diff for stack pr2_arm_navigation

(2) Change the controller to work only on those three joints (in simulation): diff for package pr2_controller_configuration_gazebo

(3) Change the controller to work only on those three joints (on the robot): diff for stack pr2_robot

I did not test on the robot though.

edit flag offensive delete link more


Thanks for sending this Sachin. I will give it a shot and let you know what happens on the robot.
Advait Jain gravatar imageAdvait Jain ( 2011-03-10 11:51:26 -0500 )edit
Hi Sachin, on the PR2, your solution resulted in the remaining joints getting disabled which did not work for me. I modified move_arm_simple_client.cpp to plan for three joints but publish a JointTrajectoryGoal with 7 joints. If anyone is interested then I can post my changes. Otherwise, it looks like this functionality is a lot easier to get in Diamonback.
Advait Jain gravatar imageAdvait Jain ( 2011-03-10 15:50:14 -0500 )edit

answered 2011-03-07 12:04:32 -0500

Advait Jain gravatar image

Thanks Sachin, changing ompl_planning_configs.yaml helped.

I now get some new errors. I am using the SimpleActionClient to call the motion planner and execute the trajectory. It looks like the motion planning succeeded but something else failed.

[ INFO] [1299548741.952947568, 108.201000000]: Received request for planning

[ INFO] [1299548741.953422419, 108.201000000]: Selected motion planner: 'kinematic::LBKPIECE[LBKPIECEkConfig2r]', with priority 11

[ INFO] [1299548741.953639205, 108.201000000]: ompl planning for group right_arm_planar

[ERROR] [1299548741.957239764, 108.201000000]: Joint 'r_shoulder_lift_joint' is not part of group 'right_arm_planar'

[ERROR] [1299548741.957334176, 108.201000000]: Joint 'r_upper_arm_roll_joint' is not part of group 'right_arm_planar'

[ERROR] [1299548741.957376039, 108.201000000]: Joint 'r_forearm_roll_joint' is not part of group 'right_arm_planar'

[ERROR] [1299548741.957415029, 108.201000000]: Joint 'r_wrist_roll_joint' is not part of group 'right_arm_planar'

Info: LBKPIECE1: Starting with 2 states

Info: LBKPIECE1: Created 42 (22 start + 20 goal) states in 34 cells (18 start + 16 goal)

[ INFO] [1299548742.101694222, 108.235000000]: Motion planning succeeded

[ WARN] [1299548742.109843014, 108.237000000]: State violates goal constraints.

[ERROR] [1299548742.110338786, 108.238000000]: Returned path from planner does not go all the way to goal

Is ompl_ros_interface something that works with diamondback?

edit flag offensive delete link more


When you send commands to the new planner, the motion plan request should only contain a goal for the group. Any other joint positions you want to put in should be in the "start_state" field of the motion plan request. So, your goal should not contain any joint positions for joints not in the group.
Sachin Chitta gravatar imageSachin Chitta ( 2011-03-07 15:02:05 -0500 )edit

answered 2011-03-07 10:26:41 -0500

Advait Jain gravatar image

updated 2011-03-07 10:28:13 -0500

Hi Sachin,

I added a new planning group called right_arm_planar to pr2_arm_navigation_config/config/planning_groups.yaml

If I submit a planning request with the group_name set to right_arm_planar, I get the following error:

[ERROR] [1299542819.552032802, 79.936000000]: Cannot plan for 'right_arm_planar'. Model does not exist

Is there some other config file where I need to define a Model?

edit flag offensive delete link more


You also have to add things in this file: pr2_arm_navigation_planning/config/ompl_planning_configs.yaml There's two things you need to add there - add the group name to the group list and also create a planning config for the group at the bottom (just copy one of the existing ones). Sorry, this gets easier in unstable.
Sachin Chitta gravatar imageSachin Chitta ( 2011-03-07 10:43:35 -0500 )edit

answered 2011-03-06 07:51:49 -0500

Advait Jain gravatar image

Hi Sachin,

I am currently running cturtle and am getting some compiler errors when I try to make ompl_ros_interface. Is there any hope of getting ompl_ros_interface to work with cturtle debians?

Could you point me to the files in this package that create a planner with a joint group and make a planning request?


edit flag offensive delete link more


Sorry, Advait. Its a new version that works only against unstable now. You should still be able to do it in cturtle though. The file to modify is here: pr2_arm_navigation_config/config/planning_groups.yaml. You will need to add a new planning group there with the set of joints you need to plan for.
Sachin Chitta gravatar imageSachin Chitta ( 2011-03-06 16:55:33 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2011-03-05 11:17:55 -0500

Seen: 300 times

Last updated: Mar 07 '11