[ros-users] unable to get valid path when calling/ompl_planning/plan_kinematic_path

Felix Messmer felix_messmer at web.de
Mon Feb 14 21:19:02 UTC 2011


Thanks Sachin,

I commented that out since I didn't know what value to set here. I guess 
50.0 is a little too pessimistic...;-)
Also, I opened a ticket:
https://code.ros.org/trac/ros-pkg/ticket/4787

Best regards,
Felix




On 2011-02-14 18:20, Sachin Chitta wrote:
 > You have to give it some allowed planning time. Right now, planning time
 > will default to 0 since you have commented this line:
 > //req.motion_plan_request.allowed_planning_time=ros::Duration(50.0);
 >
 > The ros output for this case does need fixing though. Please open a 
ticket
 > against me to that effect.
 >
 > Regards,
 > Sachin
 >
 >
 > On Mon, Feb 14, 2011 at 4:41 AM, Felix Messmer <felix_messmer at web.de> 
wrote:
 >
 > >
 > > Dear community,
 > >
 > > I feel a little desperate since I don't know what I'm doing wrong here:
 > > From within our grasp_planner, I want to call the
 > > "/plan_kinematic_path" service from the ompl package.
 > >
 > > Here is how I set it all up:
 > >
 > >
 > > 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 > > ros::service::waitForService("/ompl_planning/plan_kinematic_path");
 > >
 > > ros::ServiceClient client =
 > >
 > > 
n.serviceClient<motion_planning_msgs::GetMotionPlan>("/ompl_planning/plan_kinematic_path");
 > >
 > > motion_planning_msgs::GetMotionPlan::Request req;
 > > motion_planning_msgs::GetMotionPlan::Response res;
 > >
 > > std::vector<std::string> names(7);
 > > names[0] = "arm_1_joint";
 > > names[1] = "arm_2_joint";
 > > names[2] = "arm_3_joint";
 > > names[3] = "arm_4_joint";
 > > names[4] = "arm_5_joint";
 > > names[5] = "arm_6_joint";
 > > names[6] = "arm_7_joint";
 > >
 > >
 > >
 > > 
req.motion_plan_request.goal_constraints.joint_constraints.resize(names.size());
 > > for (unsigned int i = 0 ; i < names.size(); ++i)
 > > {
 > >
 > > 
req.motion_plan_request.goal_constraints.joint_constraints[i].joint_name
 > > = names[i];
 > >
 > > 
req.motion_plan_request.goal_constraints.joint_constraints[i].position =
 > > 0.0;
 > >
 > >
 > > 
req.motion_plan_request.goal_constraints.joint_constraints[i].tolerance_below
 > > = 0.1;
 > >
 > >
 > > 
req.motion_plan_request.goal_constraints.joint_constraints[i].tolerance_above
 > > = 0.1;
 > > }
 > >
 > > //req.motion_plan_request.planner_id="";
 > > req.motion_plan_request.group_name="arm";
 > > req.motion_plan_request.num_planning_attempts=1;
 > > //req.motion_plan_request.allowed_planning_time=ros::Duration(50.0);
 > >
 > >
 > > 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 > >
 > > I.e. I just want a plan that brings the arm back into its home position
 > > at (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0).
 > >
 > > The output from the planner is the following (with Debub output):
 > >
 > >
 > > 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 > > [ INFO] [1297684313.476421959, 56.604000000]: Received request for 
planning
 > > [ INFO] [1297684313.476537217, 56.604000000]: Selected motion planner:
 > > 'kinematic::LBKPIECE[LBKPIECEkConfig2cob]', with priority 11
 > > [DEBUG] [1297684313.476605128, 56.604000000]: No workspace bounding
 > > volume was set
 > > [ INFO] [1297684313.479051337, 56.604000000]: ompl planning for 
group arm
 > > [DEBUG] [1297684313.479230006, 56.604000000]: Start states before
 > > normalization 0 val 0.537644
 > > [DEBUG] [1297684313.479279888, 56.604000000]: Start states before
 > > normalization 1 val -1.20871
 > > [DEBUG] [1297684313.479314884, 56.604000000]: Start states before
 > > normalization 2 val 0.204787
 > > [DEBUG] [1297684313.479346079, 56.604000000]: Start states before
 > > normalization 3 val 0.943959
 > > [DEBUG] [1297684313.479377832, 56.604000000]: Start states before
 > > normalization 4 val -0.0503284
 > > [DEBUG] [1297684313.479408952, 56.604000000]: Start states before
 > > normalization 5 val 0.00951776
 > > [DEBUG] [1297684313.479439600, 56.604000000]: Start states before
 > > normalization 6 val -0.00680026
 > > [DEBUG] [1297684313.479473040, 56.604000000]: Start states after
 > > normalization 0 val 0.537644
 > > [DEBUG] [1297684313.479504849, 56.604000000]: Start states after
 > > normalization 1 val -1.20871
 > > [DEBUG] [1297684313.479534850, 56.604000000]: Start states after
 > > normalization 2 val 0.204787
 > > [DEBUG] [1297684313.479564637, 56.604000000]: Start states after
 > > normalization 3 val 0.943959
 > > [DEBUG] [1297684313.479594670, 56.604000000]: Start states after
 > > normalization 4 val -0.0503284
 > > [DEBUG] [1297684313.479625155, 56.604000000]: Start states after
 > > normalization 5 val 0.00951776
 > > [DEBUG] [1297684313.479655881, 56.604000000]: Start states after
 > > normalization 6 val -0.00680026
 > > [DEBUG] [1297684313.480120098, 56.604000000]: Kinematic state space
 > > settings:
 > > - dimension = 7
 > > - start states:
 > > 0.537644 -1.20871 0.204787 0.943959 -0.0503284 0.00951776 -0.00680026
 > > Goal state, threshold = 1e-12, memory address = 0x7fb9b40adb00, state =
 > > 0 0 0 0 0 0 0
 > > Joint constraints:
 > > [-0.1, 0.1] [-0.1, 0.1] [-0.1, 0.1] [-0.1, 0.1] [-0.1, 0.1] [-0.1, 0.1]
 > > [-0.1, 0.1]
 > > - bounding box:
 > > [-2.957, 2.957](0.05914) [-2.0843, 2.0843](0.041686) [-2.957,
 > > 2.957](0.05914) [-2.0843, 2.0843](0.041686) [-2.957, 2.957](0.05914)
 > > [-2.0844, 2.0844](0.0416879) [-2.957, 2.957](0.05914)
 > > Path constraints:
 > > 0 kinematic constraints
 > >
 > >
 > > 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 > >
 > >
 > > What irritates me is that "Ompl says ok".......because it's not...=)
 > > Still the solution trajectory is empty and the error_code.val is 0.
 > >
 > >
 > > I can use the "/plan_kinematic_path" service successfully when it is
 > > called from within the move_arm_action!
 > > But since I don't want the robot to move at this point, I just want to
 > > call the planner and execute the trajectory later.
 > > I also checked how the move_arm_action_server sets up the
 > > /plan_kinematic_path request and I couldn't find a difference.
 > >
 > > Is there anything that I missed while setting the request?
 > > How else can I get the solution trajectory to a joint_goal without
 > > executing the movement?
 > >
 > > Thanks for your help!
 > >
 > >
 > >
 > > Best,
 > > Felix
 > >
 > > _______________________________________________
 > > ros-users mailing list
 > > ros-users at code.ros.org
 > > https://code.ros.org/mailman/listinfo/ros-users
 > >
 >
 >
 >
 > --
 > Sachin Chitta
 > Research Scientist
 > Willow Garage
 > _______________________________________________
 > ros-users mailing list
 > ros-users at code.ros.org
 > https://code.ros.org/mailman/listinfo/ros-users
 >



More information about the ros-users mailing list