Ask Your Question

Witalij Siebert's profile - activity

2016-10-26 02:22:19 -0500 received badge  Good Question (source)
2013-07-24 03:03:10 -0500 received badge  Supporter (source)
2012-08-15 14:32:04 -0500 received badge  Notable Question (source)
2012-08-15 14:32:04 -0500 received badge  Famous Question (source)
2012-05-30 09:31:30 -0500 received badge  Popular Question (source)
2011-08-09 01:37:07 -0500 received badge  Nice Question (source)
2011-06-29 21:23:06 -0500 commented question Planning an arm-motion using ompl_planning and trajectory_filter
Hello, Sachin. I'm using ROS diamondback.
2011-06-16 00:07:05 -0500 received badge  Student (source)
2011-06-15 23:49:47 -0500 received badge  Editor (source)
2011-06-15 23:46:21 -0500 asked a question Planning an arm-motion using ompl_planning and trajectory_filter

Dear community,

I am working on the cob3 robot arm using motion-planning from the cob_arm_navigation stack.

It is modified successfully so far to use it on the real robot arm. To detect collision objects the arm uses a TOF camera publishing point clouds.

After self filtering the point cloud with the robot model the arm is able to detect obstacles and avoid collisions.

But there are sometimes problems with the trajectory_filter if i want to move the arm from one collision-free position to another with an obstacle in between using OMPL planner.

In a few cases it is possible for the arm to find a path and move it collision-free.
But mostly the OMPL planner finds a solution and the trajectory_filter declare the trajectory invalid (later on some example output).
Then the OMPL planner starts over to look for an other simple solution and so on until there is maybe a valid trajectory that the arm will move, if not there is an output with the Warning Planner trajectory collides and the planning ends.

Thats the output to screen if there is a problem with the trajectory_filter:


( INFO) : Motion planning succeeded
( INFO) : Done planning. Transitioning to control
( INFO) : Got trajectory with 108 points
( INFO) : Trajectory filter took 4.006965 seconds
( INFO) : Collision between body in namespace points and link arm_5_link
(ERROR) : Trajectory invalid
( WARN) : Filtered trajectory collides
(ERROR) : Move arm will abort this goal. Will replan
( INFO) : Displaying move arm joint goal.
( INFO) : Constraint violated:: Joint name:arm_1_joint, value: 3.004306, Constraint: 0.210000, tolerance_above: 0.400000, tolerance_below: 0.400000
( WARN) : State violates goal constraints.

After several outputs like that it is possible that there is a valid trajectory and the arm moves collision-free to its goal. That looks like this:


( INFO): Motion planning succeeded
( INFO): Done planning. Transitioning to control
( INFO): Got trajectory with 29 points
( INFO): Trajectory filter took 4.005894 seconds
( INFO): Trajectory validity check was successful
( INFO): Sending trajectory with 28 points and timestamp: 1308219869.357828
( INFO): Joint: 0 name: arm_1_joint
( INFO): Joint: 1 name: arm_2_joint
( INFO): Joint: 2 name: arm_3_joint
( INFO): Joint: 3 name: arm_4_joint
( INFO): Joint: 4 name: arm_5_joint
( INFO): Joint: 5 name: arm_6_joint
( INFO): Joint: 6 name: arm_7_joint
( INFO): Reached goal

But the OMPL planner is always successful.

My Configs:

  • OMPL Planner: SBLkConfig1
  • Filters:

    service_type: FilterJointTrajectoryWithConstraints
    filter_chain:

    • name: unnormalize_trajectory
      type: UnNormalizeFilterJointTrajectoryWithConstraints
    • name: cubic_spline_short_cutter_smoother
      type: CubicSplineShortCutterFilterJointTrajectoryWithConstraints
      params: {discretization: 0.01}

Questions:

  • What can be the problem that the ompl planner find a solution and the trajectory_filter declares it to invalid?

  • Is it possible to change some parameters of the trajectory_filter or other config files that will help to find valid trajectories more often?

  • Is there a list of parameters the trajecotry_filter is using?

If you have some question or the problem is not described well enough let me know.
I'd be pleased to hear some answers, if someone have a possible solution or just a suggestion.

Regards Witalij