[Documentation] [TitleIndex] [WordIndex

PR2 Hardware Modifications and Add-ons

The PR2 has been designed for expansion by users, with additional mounting points for hardware, and connectors for data and power.

Below are modifications and add-ons submitted by PR2 users both within and outside of Willow Garage. Feel free to provide a link to your own hardware repository or web page, and further describe those you see here.

Willow Garage does not endorse any particular hardware modification, and reminds users that modifications are performed at their own risk. We highly encourage following the PR2 Modularity Specification.


The Kinect sensor suite has proven to be a very popular add-on to the PR2.

Kinect 2

This guide is for Indigo distributions only.
With the new Kinect for Xbox One (or Kinect 2), some modifications must be made to integrate it within the PR2.

Calibration of Kinect 2

Please read the Github page at https://github.com/code-iai/iai_kinect2 for calibration information.

Hardware installation

Installation guide

Software configuration

Software is available at http://www.clearpathrobotics.com/pr2-packages/ubuntu.
It can be added to your sources list under /etc/apt/sources.list.d/

deb http://www.clearpathrobotics.com/pr2-packages/ubuntu trusty main pr2 basestation

NUC set-up

sudo apt-get remove pr2-kinect2

sudo apt-get install pr2-kinect2-packages

c1 set-up

sudo apt-get install pr2-nuc-ssh

sudo apt-get install ros-indigo-pr2-description

sudo apt-get install ros-indigo-pr2-bringup

export KINECT2=true
robot update_model -d <DISTRO>


SSH into c1 then run the following commands:

source ~/catkin_ws/devel/setup.bash
export KINECT2=true
roslaunch /etc/ros/indigo/robot.launch c2:=false

On your own computer, run the following commands:

export ROS_MASTER_URI=http://c1:11311
export ROS_IP=<YOUR IP>

If the above doesn't work, check if your /etc/hosts file includes c1.
If a warning pops up while running rviz about missing meshes, ensure that you have the latest version of pr2_description on your own computer.

Once in rviz, change the fixed frame setting from the default map to kinect2_rgb_optical_frame or kinect2_link. Then, add one of the topics published by kinect2_bridge (/kinect2/hd/image_color is recommended). You should see a window pop up in the bottom left corner of rviz showing the Kinect 2's camera feed.
rviz Showing Kinect2 Image

Known Issues

If images cannot be viewed over rviz and everything else has been set up correctly, there may be a time synchronization issue. Install chrony on the NUC and add the following to the /etc/chrony/chrony.conf file:

server c1 offline minpoll 8

Then run:

/etc/init.d/chrony stop
ntpdate c1
/etc/init.d/chrony start

Although chrony will run automatically in the background, you may have to manually sync it once in a while to keep the time updated.

Make sure that the KINECT2 environment variable is set.

export KINECT2=true # if new Kinect is being used
export KINECT=true # if the original Kinect is being used (make sure to set KINECT2 to false)
export KINECT=false # if no Kinect is being used

If roslaunch gives an error upon launching saying that pr2-head is not in the known_hosts file, run the following command on c1:

ssh-keyscan -t rsa pr2-head

Copy the output and paste it to the bottom of the ~/.ssh/known_hosts file and try launching again.

Sternum-Mounted Kinect

Bosch has mounted a second Kinect sensor between the arms of the PR2.

Kinect mounted between arms of PR2. Close up of Kinect mounted between arms of PR2.

RGB image from Kinect mounted between arms of PR2. Depth image from Kinect mounted between arms of PR2.

Inter-arm Kinect mounting bracket. (in PDF Inter-arm Kinect mounting bracket.)

Isometric view of mounting bracket.

DXF of mounting bracket

Gripper Stereo

Adam Leeper of Stanford University added a stereo camera to a gripper to make it grasp more reliably.

ATI Mini40 Force-Torque Sensor

Note: A newer version of this sensor, the ATI Mini45, is available as an option from WG. Cable-routing is integrated in that version. Find more information for using it http://wiki.ros.org/ethercat_hardware/Tutorials/UsingForceTorqueSensorWithWG035

Willow Garage earlier produced a prototype for installing an ATI Mini40 force/torque sensor at the wrist. Download this tarball for all of the relevant CAD documents.

ATI Mini40 mounted between the forearm and gripper NetFT box connected to shoulder NetFT box connected to shoulder Closeup of NetFT wiring

Currently, the sensor cable is routed externally between the wrist and NetFT box mounted on the shoulder, although there are plans for routing the cable into the gripper to a custom PCB and through the slip ring to avoid wrapping up the cable. However, while the ATI Mini40 is very similar in O.D. to the gripper/forearm interface, the I.D. is too small to allow the JST connector to pass from the forearm to the gripper. As a result, anytime the sensor needs to be replaced, the connector would have to be removed and reconnected, resulting in a potential point of failure. We are investigating alternate sensors with larger I.D.s.

To use the sensor with ROS, see the netft stack.

Microphones (ears) for the PR2 head

alt text

The PR2 robot head makes a nice place for mounting microphones to do audio detection and speech detection with the robot. At UPenn we have tested the performance of a variety of microphones, and found a nice mid-range price/high-range performance USB microphone, and designed a convenient mount for it on the PR2 head. The microphone used is a MXL AC-404 produced by Marshall Electronics. We recommend the AC-404 as a good starter microphone, since it has a nice crisp response for almost 180 degrees in front of the mic.

We have designed a mount than can easily be bolted onto the bolt-pattern of the PR2 head, and which holds the microphone securely with a loose press-fit. Attached below is an STL file for 3D printing (dimensions are in millimeters). Alternative formats can be made available upon request.

alt text

You will need a total of four M6 screws per mount to attach it to the head. In addition to the press-fit, we use velcro on the underside of the microphone and mount to ensure a solid grip and allow for easy removal. Below are some photos to aid in your assembly.

alt text alt text alt text alt text

To reliably access the microphones you should copy this .asoundrc file to each users home directory. This will setup an alsa pcm object called "left_ear". You can try testing it by running:

arecord -f dat -d 10 -D  plug:left_ear  test.wav

You might have to use alsamixer to turn up the microphone recording volume and the PR2 speaker playback volume.

2021-01-02 12:27