Tutorials:VisibilityGrasping
From OpenRAVE
by Rosen Diankov
Contents |
Running the Example
python:
openrave.py --example visibilityplanning
program options/description:
openrave.py --example visibilityplanning --help
Note: The python example shows how to effectively use environment clones to keep the environment used for planning separate from the real environment updated with sensor data.
octave/matlab: (first start openrave)
cd `openrave-config --octave-dir`/examples/visibilitygrasping octave --eval runsimdemo
Description
This example shows a vision-centric manipulation framework for that can be used to perform more reliable reach-and-grasp tasks. The biggest problem with a lot of autonomous manipulation frameworks is that they perform the full grasp planning step as soon as the object is detected into view by a camera. Due to uncertainty in sensors and perception algorithms, usually the object error is huge when a camera is viewing it from far away. This is why OpenRAVE provides a module to plan with cameras attached to the gripper that implements the following paper:
- Rosen Diankov, Takeo Kanade, James Kuffner. Integrating Grasp Planning and Visual Feedback for Reliable Manipulation, IEEE-RAS Intl. Conf. on Humanoid Robots, December 2009.
By combining grasp planning and visual feedback algorithms, and constantly considering sensor visibility, the framework can recover from sensor calibration errors and unexpected changes in the environment. The planning phase generates a plan to move the robot manipulator as close as safely possible to the target object such that the target is easily detectable by the on-board sensors. The execution phase is responsible for continuously choosing and validating a grasp for the target while updating the environment with more accurate information. It is vital to perform the grasp selection for the target during visual-feedback execution because more precise information about the target’s location and its surroundings is available. Here is a small chart outlining the differences between the common manipulation frameworks:
First Stage: Sampling Camera Locations
Handling Occlusions
Occlusions are handled by shooting rays from the camera and computing where they hit. If any ray hits another object, the target is occluded.
Object Visibility Extents
The places where a camera could be in order for object detection to work are recorded.
- a) - gather data
- b) - create a probability distribution
- c) - resample
Adding Robot Kinematics
The final sampling algorithm:
The final planner just involves an RRT that uses this goal sampler:
Visual Feedback
One of the features of this algorithm is that grasp planning is done inside the visual feedback phase:

