Only released in EOL distros:  

pr2_object_manipulation: active_realtime_segmentation | fast_plane_detection | manipulation_worlds | object_recognition_gui | object_segmentation_gui | pick_and_place_demo_app | pr2_create_object_model | pr2_grasp_adjust | pr2_gripper_grasp_controller | pr2_gripper_grasp_planner_cluster | pr2_gripper_reactive_approach | pr2_gripper_sensor_action | pr2_gripper_sensor_controller | pr2_gripper_sensor_msgs | pr2_handy_tools | pr2_interactive_gripper_pose_action | pr2_interactive_manipulation | pr2_interactive_object_detection | pr2_manipulation_controllers | pr2_marker_control | pr2_navigation_controllers | pr2_object_manipulation_launch | pr2_object_manipulation_msgs | pr2_pick_and_place_demos | pr2_tabletop_manipulation_launch | pr2_wrappers | rgbd_assembler | robot_self_filter_color | segmented_clutter_grasp_planner | simple_Jtranspose_controller | tabletop_collision_map_processing | tabletop_object_detector | tabletop_vfh_cluster_detector | vfh_recognition | vfh_recognizer_db | vfh_recognizer_fs

Package Summary

Plans grasps for unknown objects using the PR2 gripper. Uses only a (segmented) point cloud of the target object, often originating from a single view or scan.

pr2_object_manipulation: active_realtime_segmentation | fast_plane_detection | manipulation_worlds | object_recognition_gui | object_segmentation_gui | pick_and_place_demo_app | pr2_create_object_model | pr2_grasp_adjust | pr2_gripper_grasp_controller | pr2_gripper_grasp_planner_cluster | pr2_gripper_reactive_approach | pr2_gripper_sensor_action | pr2_gripper_sensor_controller | pr2_gripper_sensor_msgs | pr2_handy_tools | pr2_interactive_gripper_pose_action | pr2_interactive_manipulation | pr2_interactive_object_detection | pr2_manipulation_controllers | pr2_marker_control | pr2_navigation_controllers | pr2_object_manipulation_launch | pr2_object_manipulation_msgs | pr2_pick_and_place_demos | pr2_pick_and_place_tutorial | pr2_tabletop_manipulation_launch | pr2_wrappers | rgbd_assembler | robot_self_filter_color | segmented_clutter_grasp_planner | tabletop_collision_map_processing | tabletop_object_detector | tf_throttle

Package Summary

Plans grasps for unknown objects using the PR2 gripper. Uses only a (segmented) point cloud of the target object, often originating from a single view or scan.

Overview

The point cluster grasp planner plans grasps on a segmented point cloud (typically from the narrow stereo or Kinect) by finding the point cloud's principal axes and searching for grasps along those axes from the top and side (NOT grasps of the bounding box used for visualization--grasps of the underlying points along the axes of the displayed box). It also finds overhead grasps of high points with the gripper oriented toward the center, which is useful for objects such as bowls. Details on this module can be found in the following paper: '''Contact-Reactive Grasping of Objects with Partial Shape Information'''.

The planner can be used for other types of robot hands as well, if a box-model is created for the hand in a fixed, pre-grasp pose (both collision boxes and object-should-be-in-here boxes). See the config directory for models of the 3-fingered Schunk hand and the RobotIQ hand.

Launch the grasp planning server (offers both service and action for grasp planning, and a separate service for changing various params) with scripts/point_cluster_grasp_planner_server.py and look in the package pr2_pick_and_place_demos, test/test_pr2_gripper_grasp_planner_cluster.py for an example of how to run the grasp planner with the results from the tabletop object detector. Email hsiao at willowgarage.com if you have questions.

ROS API

API Stability

  • ROS API is UNREVIEWED and UNSTABLE

Services Offered

/plan_point_cluster_grasp (object_manipulation_msgs/GraspPlanning)

  • This service takes in grasp planning requests (with the object specified as an object_manipulation_msgs/GraspableObject, which in this case should contain a point cloud) and returns a list of planned grasps.

ROS Parameters

There are lots of params besides this one. They're all described in point_cluster_grasp_planner.py. min_good_grasp_points (int, default: 15)

  • The number of points in the cloud that should be in the gripper model's inside-the-gripper-space-box for the grasp to be considered viable (should change depending on the density of the input cloud)

ROS Topics

(In Fuerte and beyond, enable this marker for debugging by setting self.draw_gripper to be 1 in point_cluster_grasp_planner.py. The planner is much much faster if it doesn't have to draw the grasps.) point_cluster_grasp_planner_markers (visualization_msgs/Marker)

  • Shows the boxy gripper model (used for evaluating collisions with the object and whether there are points within the grasp) at each potential grasp pose as it's being checked.

Wiki: pr2_gripper_grasp_planner_cluster (last edited 2012-12-08 01:01:11 by KaijenHsiao)