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

moveit - nearest reachable pose for arm gripper

asked 2013-08-29 01:17:31 -0600

vonovak gravatar image

updated 2014-01-28 17:17:46 -0600

ngrennan gravatar image

Hi, I am working with a robotic arm and I have the following question (I am completely new to moveit): I can give the gripper a Pose to go to but the problem is that the arm may not be able to get into the pose, even though it is in its range of motion. Is there some automatic way of finding the nearest pose that the arm can get into?

Thanks a lot

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-08-29 18:49:43 -0600

Depending on your application, you might be able to try something like the carrot_planner.

As far as I know, this doesn't exist in MoveIt, but it shouldn't be too hard to implement something manually. Not as an official MoveIt planner, but as a wrapper around calls to the existing MoveIt plan() interface. This is a pretty naive approach, but may satisfy some simple just-out-of-reach cases.

edit flag offensive delete link more

answered 2013-08-29 10:24:16 -0600

isucan gravatar image


This is a bit of a tough one :) Technically, the functionality you need is there, and can be exposed, but it is tricky. The issue is that when planning with OMPL, the assumption is that a specification of a goal (conjunction of constraints) can be sampled -- i.e., there is a procedure that generates states that satisfy the goal constraints. If a state that is also valid satisfies the goal constraints, then a potential goal is found. This nicely maps to the notion of a GoalSampleableRegion in OMPL ( With this notion, it is possible to use bi-directional search planners, which are often more efficient.

What you would need to do to obtain the behaviour you want, is use single-tree planners from OMPL (e.g., EST, RRT) that allow forward search when only a distance to goal is available (the GoalRegion class in OMPL). So you would have to either extend the ompl_interface package to allow such things, or bypass it and call planners such as ones mentioned here to get to your pose. The planner will fail, since there is no solution, but will report an approximate solution to the state that was closest to the goal (whatever was found given the time spent). I think extending ompl_interface would be best here.

An alternative implementation would be to use the genetic algorithms in OMPL to find a valid state that is closest to the pose you would like. And valid here could simply mean kinematically feasible. Once a state is obtained using this search, the regular ompl_interface can be used to plan a motion. This would probably be simpler to implement.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2013-08-29 01:17:31 -0600

Seen: 638 times

Last updated: Aug 29 '13