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.
-
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 catkin_init_workspace
Before running setup the environment variables
source ~/piper_ws/devel/setup.bash
-
Clone this repository in
~/piper_ws/src
git clone https://github.com/gtrll/piper.git
-
To compile only the
piperbase
library, in the catkin workspace directory docatkin_make
-
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 GPMP2 None -DBUILD_GPMP2_INTERFACE:OPTION=ON
STEAP None -DBUILD_STEAP_INTERFACE:OPTION=ON
ALL All from above -DBUILD_ALL_INTERFACE:OPTION=ON
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:
@article{mukadam2017piper,
title={{PIPER}},
author={Mukadam, Mustafa},
journal={[Online] Available at \url{https://github.com/gtrll/piper}},
year={2017}
}
-
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. -
Q: Node crashes without running anything
A: First verify if the error is related to different versions of Eigen being linked. Run
gdb ~/piper_ws/devel/lib/piper/gpmp2_interface
andr
. If you get the following errorProgram received signal SIGSEGV, Segmentation fault. 0x00007ffff672a2e7 in gtsam::noiseModel::Constrained::Constrained(Eigen::Matrix<double, -1, 1, 0, -1, 1> const& Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) () from /usr/local/lib/libgtsam.so.4
, it means that there are at least two versions of eigen conflicting. Make sure to install GTSAM with system Eigen. Then install GPMP2 and try this again.
PIPER is released under the BSD license. See LICENSE file in this directory.