This repository stores some scripts for running and introspecting the PR2 Interactive Manipulation pipeline. This pipeline is semi-abandonware. It only runs in ros-groovy, and does not integrate properly with Gazebo anymore.
See the TODOS section for a description of problems.
To start the pipeline, run the pr2_im_launch.sh script. When the rviz interface comes up, you will not be able to see the corresponding point cloud, however, it is still possible to run the pipeline.- Right click the PR2 head and enable the "look at" control
- Bring the head down to look at the area around the hands
- Switch the interactive_manipulation display in the lower right hand corner to the detection/perception plane.
- Press the segment button.
- Wait for the green clusters to appear
- Right click the cluster on the table and select "pick up with left hand"
To make sure everything dies after running the script, run the kill_running.sh script.
To start the pipeline, run the pr2_im_nav.sh script.- Tuck the PR2 arms by right clicking them, then clicking on tuck arms.
- Bring up the navigation capability by right clicking on the base of the robot.
- Click on clear cost map. Redo this until the yellow cost markers on the floor of the rviz simulation are don't appear in the shadow of the arms or right in front of the robot.
- Bring up the navigation capability again.
- Click Navigate to
- Move the cursor over the base of the robot until the + shaped cursor appears.
- Drag the cloned robot to some other position.
- Right click on the cloned robot and click "Accept Goal"
The script should automatically tuck the robot's arms, then navigate to the small room near the robot. It should wait until the final result is received before exiting.
The "Kinect" plugin expects a 16 bit or floating point depth image. The Gazebo kinect plugin generates an 8 bit depth image. To fix this, either a custom PR2 description package will be needed, or a conversion node that just reencodes the image. Most of the worlds in the gazebo_worlds package of ros-groovy are obsolete. They need to be replaced. The old Willow Garage world file doesn't work - The one based on extruding the map file may also not work in this version of Gazebo. The world file used here is collada based, and seems to be much slower than the other world file. Some parts of the pipeline are fairly easy to automate - Any interaction mediated through clicking on an interactive manipulation marker in RVIZ can be recorded and played back. However, the signal to segment the scene generates a service call which cannot be recorded, so a separate script will need to be written.