Probabilistic Inference based Platform for Essential problems in Robotics
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
config initial commit Jun 20, 2017
doc initial commit Jun 20, 2017
launch initial commit Jun 20, 2017
piper fix for binding rvalue references to optional lvalue references Sep 19, 2017
problem initial commit Jun 20, 2017
sdf initial commit Jun 20, 2017
.gitignore initial commit Jun 20, 2017
CHANGELOG initial commit Jun 20, 2017
CMakeLists.txt initial commit Jun 20, 2017
LICENSE initial commit Jun 20, 2017 update readme Apr 13, 2018
package.xml initial commit Jun 20, 2017


PIPER (Probabilistic Inference based Platform for Essential problems in Robotics) is a modular package that provides support for algorithms that use probabilistic inference on factor graphs to solve various robotics problems. Each module can be independently installed and implements an easy ROS interface for that algorithm to run on any simulated or real robots. Currently PIPER supports the following algorithms:

  • GPMP2 - Gaussian Process Motion Planner 2
  • STEAP - Simultaneous Trajectory Estimation and Planning
  • more coming soon ...

PIPER is being developed by Mustafa Mukadam at the Georgia Tech Robot Learning Lab. See documentation for information on usage and development.

Table of Contents


  • Install ROS. We have tested up to ROS Kinetic on Ubuntu 16.04.
  • Install GPMP2 C++ library.

Compilation and Installation

  • Initialize a catkin workspace (if you are using an existing catkin workspace this step is not needed)

    mkdir -p ~/piper_ws/src
    cd ~/piper_ws/src

    Before running setup the environment variables

    source ~/piper_ws/devel/setup.bash
  • Clone this repository in ~/piper_ws/src

    git clone
  • To compile only the piperbase library, in the catkin workspace directory do

  • Otherwise, to install some module, for example, X: first make sure to install dependencies for X, besides the prerequisites for piperbase, then do

    catkin_make -build_flag_X
  • Similarly, to install multiple modules, for example, X and Y: install all their dependencies and then use their appropriate flags together

    catkin_make -build_flag_X -build_flag_Y

    See table below for currently supported modules, their dependencies and build flags

    Module Other Dependencies Build Flag

Questions and Bug reporting

Please use Github issue tracker to report bugs. For other questions please contact Mustafa Mukadam.


If you use PIPER in an academic context, please cite any module/algorithm specific publications you use, and cite the following:

  author={Mukadam, Mustafa},
  journal={[Online] Available at \url{}},


  • Q: Cannot find trajectory_control server error

    A: To be able to run the included examples you need to have an action server set up in your real or simulated robot's API. See trajectory_control_topic in robot config.


PIPER is released under the BSD license. See LICENSE file in this directory.