Carnegie Mellon University Personal Robotics Lab


Many open source software packages have been developed at the Personal Robotics Lab in support of our research. This page describes our core packages, and also includes documentation on how to setup a development environment to use them.

Software List

Most of our public software is hosted on GitHub.

  • Core Packages
    • pr_ordata - OpenRAVE data used by the Personal Robotics Lab at CMU.
    • PrPy - Python utilities used by the Personal Robotics Laboratory.
  • OpenRAVE Planners
    • CoMPS - Constrained Manipulation Planning Suite by Dmitry Berenson (Fork)
    • LEMUR - Lazily Evaluated Marginal Utility Roadmaps
    • or_ompl - OpenRAVE bindings for OMPL motion planning algorithms.
    • or_cdchomp - OpenRAVE plugin that implements the CHOMP trajectory optimizer.
    • or_sbpl - OpenRAVE plugin to explose SBPL for base planning
    • or_trajopt - OpenRAVE plugin to expose TrajOpt code as an OpenRAVE planner
  • OpenRAVE Plugins / Utilities
    • benchmarks - Benchmarks to measure OpenRAVE's performance.
    • offscreen_render - A utility for rendering OpenRAVE kinbodies offscreen to get properties like depth, occlusion, color, etc.
    • openrave_catkin - Utilities for building OpenRAVE plugins in a Catkin workspace.
    • or_circularblender - An OpenRAVE plugin for circular trajectory blending
    • or_fcl - OpenRAVE bindings for the Flexible Collision Checking Library (FCL).
    • or_octomap - or_octomap is a collision checker and sensor system plugin for OpenRAVE, intended to allow OpenRAVE meshes to be collision checked against octrees.
    • or_owd_controller - OpenRAVE plugins for communicating with OpenWAM Driver (OWD).
    • or_parabolicsmoother - An OpenRAVE Plugin for Parabolic Smoothing
    • or_rviz - OpenRAVE viewer plugin that publishes the environment to RViz as InteractiveMarkers.
    • or_urdf - OpenRAVE plugin for loading URDF and SRDF files.
  • Perception
    • k2_client - ROS node for a Kinect 2 via a TCP server.
    • k2_server - Server application for Kinect for Windows v2
    • moped - Fast pose estimation and object recognition system from a single image, in C++. Original code from Alvaro Collet, magically optimized and speeded up by Manuel Martinez, and extended to RGBD by David Fouhey.
    • OpenChisel - An open-source version of the Chisel chunked TSDF library.
  • HERB-Specific Packages
  • Controllers
    • owd - OpenWAM ROS driver for controlling the Barrett WAM and BarrettHand.


  • CMU-PRL Dataset for Tabletop Object Recognition and Pose Estimation

    This dataset consists of high-definition RGB-D images for testing vision algorithms for manipulation. The entire 16 GB tarball is available here. There is data for 5 objects - Fuze Bottle, Hi-C Lemonade, Pop Tarts, Pop Cereal and Rice Pilaf. For each object, there are sets of images for varying environmental conditions - normal lighting, dim lighting, clutter with normal lighting and clutter with dim lighting. Each unit set for a particular condition in turn has images corresponding to 3 ranges of distance from the camera - near, medium and far. The raw data includes RGB images, aligned depth images, and intermediate data for unaligned depth images and mapping masks. We have also provided accurate ground truth pose estimates for validation, and detailed meshes for each object. Example code for accessing the dataset is available in a repository on the lab's Github.

Ubuntu Packages

We host a Debian Apt package repository for the LTS versions of Ubuntu (currently Trusty Tahr). To add this repository to your system, run the following commands.

$ sudo sh -c 'echo "deb trusty main" > /etc/apt/sources.list.d/personalrobotics.list'
$ curl | sudo apt-key add -
$ sudo apt-get update