Size: 4430
Comment:
|
Size: 4463
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
Extremely reliable object manipulation is critical for advanced personal robotics applications. Before this system, an object was picked up using a grasp provided by either the [[household_objects_database|database-backed grasp planner]], or the [[pr2_gripper_grasp_planner_cluster|point cluster grasp planner]]. The choice of which planner to use usually depended on the results of the [[tabletop_object_detector|tabletop object detector]], which would attempt to detect known models sitting on a table in front of the robot. If the detector found a model which matched a given point cluster, it would return information about the matched model; if not, it would just return the point cluster. Based on these results, the appropriate grasp planner was called and grasps were tested for reachability until a suitable one was found. | Extremely reliable object manipulation is critical for advanced personal robotics applications. Before this system, an robot using the grasping pipeline picked up an object using a grasp provided by either the [[household_objects_database|database-backed grasp planner]], or the [[pr2_gripper_grasp_planner_cluster|point cluster grasp planner]]. The choice of which planner to use usually depended on the results of the [[tabletop_object_detector|tabletop object detector]], which would attempt to detect known models sitting on a table in front of the robot. If the detector found a model which matched a given point cluster, it would return information about the matched model; if not, it would just return the point cluster. Based on these results, the appropriate grasp planner was called and grasps were tested for reachability until a suitable one was found. |
Only released in EOL distros:
Package Summary
Takes potentially found models and clusters in a scene, and plans grasps which are robust to positioning and model uncertainty.
- Author: Peter Brook
- License: BSD
- Repository: wg-ros-pkg
- Source: svn https://code.ros.org/svn/wg-ros-pkg/stacks/object_manipulation/tags/object_manipulation-0.4.4
Package Summary
Takes potentially found models and clusters in a scene, and plans grasps which are robust to positioning and model uncertainty.
- Author: Peter Brook
- License: BSD
- Source: svn https://code.ros.org/svn/wg-ros-pkg/stacks/object_manipulation/branches/0.5-branch
Package Summary
Takes potentially found models and clusters in a scene, and plans grasps which are robust to positioning and model uncertainty.
- Author: Peter Brook
- License: BSD
- Source: svn https://code.ros.org/svn/wg-ros-pkg/stacks/object_manipulation/branches/0.6-branch
Package Summary
Takes potentially found models and clusters in a scene, and plans grasps which are robust to positioning and model uncertainty.
- Author: Peter Brook
- License: BSD
- Source: svn https://code.ros.org/svn/wg-ros-pkg/stacks/object_manipulation/trunk
Contents
Motivation
Extremely reliable object manipulation is critical for advanced personal robotics applications. Before this system, an robot using the grasping pipeline picked up an object using a grasp provided by either the database-backed grasp planner, or the point cluster grasp planner. The choice of which planner to use usually depended on the results of the tabletop object detector, which would attempt to detect known models sitting on a table in front of the robot. If the detector found a model which matched a given point cluster, it would return information about the matched model; if not, it would just return the point cluster. Based on these results, the appropriate grasp planner was called and grasps were tested for reachability until a suitable one was found.
Although this worked reliably in many cases, it was highly dependent on the performance of the object detector. If the detector decided that the point cluster matched a given model, then in the eyes of the rest of the system, that was the correct model. This incorrect certainty was the cause of many of the grasping failures, and also looked embarrassing ("the robot thinks it's a tennis ball can" was often used as an explanation for failure when the detection system saw a particular wine glass).
Overview
Instead of assuming absolute certainty regarding detected models, this planner probabilistically combines multiple potentially correct models, estimating the probability of successful execution of grasps on whatever the underlying object actually is, based on the different proposed representations for an object.
The following images illustrate how the planner works.
Setup
The real object is placed on a table and a point cloud is recorded.
Segmentation
The table is segmented out, and the salient point cluster is detected for further analysis. Objects are fit to the point cluster, and the top objects are returned (by default, n=5).
Representations
For each matched object, the grasps computed for that object are retrieved from the database (effectively the same as the database-backed grasp planner). The following image sets show example retrieved grasps from the first object (an incorrect object) and the third object (the true object).
The first object is incorrectly detected as a tennis ball can.
The third object is the true object.
Additionally, the point cluster itself is treated as a valid representation of the object (indicating that the object is not in the database), and the point cluster grasp planner is called to retrieve a list of grasps.
Output
Given the above representations for the objects and associated probabilities for each representation, the planner sorts the list of all the grasps from all representations by the estimated probability of success of each grasp. The probability of success is estimated by computing the probability of success on each object representation, and weighting that by the probability of that representation being the most accurate representation in the list of available representations. The resulting grasps for the example representations are shown below.