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 with optional Python and MATLAB toolboxes. GPMP2 was started at the Georgia Tech Robot Learning Lab, see THANKS for contributors.
- CMake >= 3.0 (Ubuntu:
sudo apt-get install cmake
), compilation configuration tool. - Boost >= 1.65 (Ubuntu:
sudo apt-get install libboost-all-dev
), portable C++ source libraries. - GTSAM, a C++ library that implements smoothing and mapping (SAM) framework in robotics and vision. Here we use the factor graph implementations and inference/optimization tools provided by GTSAM.
- Python 3.6+ needed if installing python toolbox.
- Matlab 2019b+ for the Matlab toolbox.
-
Install GTSAM.
git clone https://github.com/borglab/gtsam.git cd gtsam mkdir build && cd build cmake -DGTSAM_ALLOW_DEPRECATED_SINCE_V42:=OFF .. # disable deprecated functionality for compatibility make -j4 check # optional, run unit tests sudo make install
-
Setup paths.
echo 'export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/share:${LD_LIBRARY_PATH}' >> ~/.bashrc source ~/.bashrc
-
Install gpmp2.
git clone https://github.com/borglab/gpmp2.git cd gpmp2 && mkdir build && cd build cmake .. make -j4 check # optional, run unit tests sudo make install
-
[Optional] Setup virtual environment.
conda create -n gpmp2 pip python=3.6 conda activate gpmp2 pip install cython numpy scipy matplotlib
-
Install the
gtwrap
project.If you compile and install GTSAM with the python wrapper enabled, you will automatically have
gtwrap
and you can continue to the next step. Else, please clone and install the gtwrap project.git clone git@github.com:borglab/wrap.git mkdir build && cd build cmake .. && make install
-
Install
gpmp2
.git clone https://github.com/borglab/gpmp2.git cd gpmp2 && mkdir build && cd build cmake -DGPMP2_BUILD_PYTHON_TOOLBOX:=ON .. make -j8 # build make python-install # install the python package
At this point, you should be able to start a Python interpreter and load gpmp2
via import gpmp2
.
We clone, build and install gpmp2
as usual, making sure to set the GPMP2_BUILD_MATLAB_TOOLBOX
cmake flag.
git clone https://github.com/borglab/gpmp2.git
cd gpmp2 && mkdir build && cd build
cmake -DGPMP2_BUILD_MATLAB_TOOLBOX:=ON ..
make -j8 # build
sudo make install
Start matlab and load the toolboxes be entering the following commands window:
addpath('/usr/local/gtsam_toolbox')
addpath('/usr/local/gpmp2_toolbox')
You should now be able to run any of the scripts in the matlab/gpmp2_examples
directory.
If you use GPMP2 in an academic context, please cite following publications:
@inproceedings{Mukadam-IJRR-18,
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}
}
@inproceedings{Dong-RSS-16,
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}
}
@inproceedings{dong2018sparse,
title={Sparse {G}aussian Processes on Matrix {L}ie Groups: A Unified Framework for Optimizing Continuous-Time Trajectories},
author={Dong, Jing and Mukadam, Mustafa and Boots, Byron and Dellaert, Frank},
booktitle={2018 IEEE International Conference on Robotics and Automation (ICRA)},
pages={6497--6504},
year={2018},
organization={IEEE}
}
GPMP2 is released under the BSD license, reproduced in LICENSE.