Gaussian Process Motion Planner 2
Branch: master
Clone or download
Latest commit 0ab6cfe Dec 19, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc update doc for install troubleshooting Aug 18, 2017
gpmp2 isam2 FastVector API fix Nov 17, 2018
matlab set flag joint/vel limit bugfix Dec 19, 2018
.gitignore initial commit Jun 17, 2016
CHANGELOG update doc Jun 16, 2017
CMakeLists.txt update doc Jun 16, 2017 contributing guidelines Jan 16, 2018
LICENSE initial commit Jun 17, 2016 Update Dec 19, 2018
gpmp2.h mobile base matlab wrapper, example, Pose2 dynamics Jan 24, 2018


This library is an implementation of GPMP2 (Gaussian Process Motion Planner 2) algorithm described in Motion Planning as Probabilistic Inference using Gaussian Processes and Factor Graphs (RSS 2016). The core library is developed in C++ language, and an optional Matlab toolbox is provided. Examples are provided in Matlab scripts. A ROS interface is also available within PIPER.

GPMP2 is being developed by Jing Dong and Mustafa Mukadam as part of their work at Georgia Tech Robot Learning Lab.


  • CMake >= 2.6 (Ubuntu: sudo apt-get install cmake), compilation configuration tool.
  • Boost >= 1.50 (Ubuntu: sudo apt-get install libboost-all-dev), portable C++ source libraries.
  • GTSAM >= 4.0 alpha, a C++ library that implement smoothing and mapping (SAM) framework in robotics and vision. Here we use factor graph implementations and inference/optimization tools provided by GTSAM.

Compilation & Installation

In the library folder execute:

$ mkdir build
$ cd build
$ cmake ..
$ make check  # optional, run unit tests
$ make install

Matlab Toolbox

An optional Matlab toolbox is provided to use our library in Matlab. To enable Matlab toolbox during compilation:

$ make install

After you install the Matlab toolbox, don't forget to add /path/install/toolbox to your Matlab path.

Tested Compatibility

The gpmp2 library is designed to be cross-platform. It has been tested on Ubuntu Linux and Windows for now.

  • Ubuntu: GCC 4.8 - 4.9, 5.3 - 5.4
  • Windows: Visual C++ 2015 (Matlab toolbox not tested)
  • Boost: 1.50 - 1.61

Questions & Bug reporting

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


If you use GPMP2 in an academic context, please cite following publications:

  Author = {Mustafa Mukadam and Jing Dong and Xinyan Yan and Frank Dellaert and Byron Boots},
  Title = {Continuous-time {G}aussian Process Motion Planning via Probabilistic Inference},
  journal = {The International Journal of Robotics Research (IJRR)},
  volume = {37},
  number = {11},
  pages = {1319--1340},
  year = {2018}

  Author = {Jing Dong and Mustafa Mukadam and Frank Dellaert and Byron Boots},
  Title = {Motion Planning as Probabilistic Inference using {G}aussian Processes and Factor Graphs},
  booktitle = {Proceedings of Robotics: Science and Systems (RSS)},
  year = {2016}

  author    = {Jing Dong and Byron Boots and Frank Dellaert},
  title     = {Sparse {G}aussian Processes for Continuous-Time Trajectory Estimation on Matrix {L}ie Groups},
  journal   = {Arxiv},
  volume    = {abs/1705.06020},
  year      = {2017},
  url       = {}


GPMP2 is released under the BSD license, reproduced in the file LICENSE in this directory.