PR2 Getting Started

From Healthcare Robotics Wiki
Revision as of 16:42, 30 August 2012 by Haidai (Talk | contribs) (Starting the Robot)

Jump to: navigation, search


Below is a list of topics/skills that you should be familiar with or have when working on with the PR2, ROS, and HRL in general:

  • Basic command line manipulation skills (ls, mv, cp, ssh, find, grep, etc)
  • Ubuntu/Linux package management
  • Basic networking
  • Subversion
  • Python
  • Linux build tools (CMake, Make, gcc)
  • 3D rigid body transformations
  • Linear algebra

Getting Started

  1. Install Ubuntu (for details go to Installing Ubuntu)
  2. Check out GT's code
    • Option 1 (recommended): Run the HRL lab install (more details). To get an HRL svn account email Charlie.
    • Option 2: Check out gt-ros-pkg following Google's instructions. To obtain commit privileges email hai (haidai at gmail).
  3. Install current version (Fuerte) of ROS (details)
  4. Network setup:
    • For laptops connecting to gtpr2LAN, insert "export ROS_IP=10.68.0.SOMETHING" into your .bashrc where SOMETHING is the number of your choice in the 255 block, then register your laptop's MAC address with the robot router on so that it gets a static internal IP on connect.
      1. The other option is to insert into your .bashrc: export ROS_IP=`ifconfig $1 | grep "inet addr" | gawk -F: '{print $2}' | gawk '{print $1}' | grep "68"`
    • For HSI computers, make sure that you can ping,, and
  5. Setup chrony (important for using tf):
    • Place this file File:Chrony.doc (rename to .conf) into /etc/chrony replacing the existing chrony.conf.
    • Restart chrony with "/etc/init.d/chrony restart"
    • Check your synchronization by executing "chronyc", then entering "sources" at the chrony prompt.
  6. Verify your installation by typing "rostopic list" at the command line. This will return a long list of topics published by the robot.
  7. Sign up to Willow's ros-users and pr2-users list (link). Forward your Google account to Hai Nguyen (or your advisor) so that you can be added to the gt-pr2 Google groups list.

Starting the Robot

  1. There are two PR2s at Georgia Tech, these instructions are for GATSBII. If you are in HRL, use instead.
  2. On your local machine, start the Dashboard. But first, set your environment variables to communicate with the master:
    1. export ROS_MASTER_URI=
      1. To make the above change permanent, edit ~/.bashrc
      2. Somewhere AFTER the line that reads: "source /opt/ros/fuerte/", add "export ROS_MASTER_URI=". Then source your .bashrc.
    2. Then run the dashboard: rosrun pr2_dashboard pr2_dashboard
    3. You should see the Dashboard pop up with red, yellow, and green buttons. If the buttons are gray, ask for help.
  3. SSH into pr2c1 ( on the internal network, and just pr2c1 in HSI)
  4. Launch basic PR2 ROS nodes. There seem to be three ways of starting up the robot. They are listed below. The first is probably what you will do most commonly,the second does exactly the same thing as the first and the third is for if you want to mess with low level controllers and need to start with local environment variables instead of root. Including a '-e' option with 'sudo robot start' will accomplish the same thing. This is included to reduce confusion from the tutorials:
    1. sudo robot start ('sudo robot stop' stops the robot)
      • This is the preferred method. To use your declared environmental variables (used when you need to make the pr2_controller_manager aware of custom controllers) add "-e".
    2. roslaunch /etc/ros/fuerte/robot.launch
    3. roslaunch pr2_bringup pr2.launch
      • This does not bring up the other launch scripts and parameters in robot.launch (webui.launch, robot.xml, and pr2_analyzers.yaml)


  1. ROS - All tutorials on this page except for the C++ stuff.
  2. PR2 - The tutorials on this page exist as both videos and slides, we recommend going through the slides while watching the videos.
    1. Sessions you can save for later (in order of decreasing importance): Navigation, Processing camera data, Processing laser and point cloud data, PR2 Calibration, Simulation, and PR2 Administrative Tasks.