{"id":27996528,"url":"https://github.com/borglab/gpmp2","last_synced_at":"2025-09-16T04:28:50.730Z","repository":{"id":55429716,"uuid":"508423325","full_name":"borglab/gpmp2","owner":"borglab","description":"Gaussian Process Motion Planner 2","archived":false,"fork":false,"pushed_at":"2023-05-24T14:59:56.000Z","size":844,"stargazers_count":49,"open_issues_count":8,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-24T19:46:16.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/borglab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-28T19:06:44.000Z","updated_at":"2025-05-27T10:23:23.000Z","dependencies_parsed_at":"2025-05-08T21:55:56.549Z","dependency_job_id":null,"html_url":"https://github.com/borglab/gpmp2","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/borglab/gpmp2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgpmp2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgpmp2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgpmp2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgpmp2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borglab","download_url":"https://codeload.github.com/borglab/gpmp2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgpmp2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275362788,"owners_count":25451323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-16T02:00:10.229Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-08T21:45:20.710Z","updated_at":"2025-09-16T04:28:50.689Z","avatar_url":"https://github.com/borglab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GPMP2\n\nThis 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](http://www.cc.gatech.edu/~bboots3/files/GPMP2.pdf) (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](THANKS.md) for contributors.\n\n\n## Prerequisites\n\n- CMake \u003e= 3.0 (Ubuntu: `sudo apt-get install cmake`), compilation configuration tool.\n- [Boost](http://www.boost.org/) \u003e= 1.65 (Ubuntu: `sudo apt-get install libboost-all-dev`), portable C++ source libraries.\n- [GTSAM](https://github.com/borglab/gtsam/tree/develop), 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.\n- [Python 3.6+](https://www.python.org/) needed if installing python toolbox.\n- Matlab 2019b+ for the Matlab toolbox.\n\n## Installation (C++ only)\n\n- Install GTSAM.\n  ```bash\n  git clone https://github.com/borglab/gtsam.git\n  cd gtsam\n  mkdir build \u0026\u0026 cd build\n  cmake -DGTSAM_ALLOW_DEPRECATED_SINCE_V42:=OFF .. # disable deprecated functionality for compatibility\n  make -j4 check # optional, run unit tests  \n  sudo make install\n  ```\n\n- Setup paths.\n  ```bash\n  echo 'export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}' \u003e\u003e ~/.bashrc\n  echo 'export LD_LIBRARY_PATH=/usr/local/share:${LD_LIBRARY_PATH}' \u003e\u003e ~/.bashrc\n  source ~/.bashrc\n  ```\n\n- Install gpmp2.\n  ```bash\n  git clone https://github.com/borglab/gpmp2.git\n  cd gpmp2 \u0026\u0026 mkdir build \u0026\u0026 cd build\n  cmake ..\n  make -j4 check  # optional, run unit tests\n  sudo make install\n  ```\n\n## Python Package Installation\n\n- [Optional] Setup virtual environment.\n  ```bash\n  conda create -n gpmp2 pip python=3.6\n  conda activate gpmp2\n  pip install cython numpy scipy matplotlib\n  ```\n\n- Install the `gtwrap` project.\n  \n  If you compile and install GTSAM with the python wrapper enabled, you will automatically have `gtwrap` and you can continue to the next step.\n  Else, please clone and install the [gtwrap project](https://github.com/borglab/wrap).\n\n  ```sh\n  git clone git@github.com:borglab/wrap.git\n  mkdir build \u0026\u0026 cd build\n  cmake .. \u0026\u0026 make install\n  ```\n\n- Install `gpmp2`.\n  ```bash\n  git clone https://github.com/borglab/gpmp2.git\n  cd gpmp2 \u0026\u0026 mkdir build \u0026\u0026 cd build\n  cmake -DGPMP2_BUILD_PYTHON_TOOLBOX:=ON ..\n  make -j8 # build\n  make python-install # install the python package\n  ```\n\nAt this point, you should be able to start a Python interpreter and load `gpmp2` via `import gpmp2`.\n\n## Matlab Toolbox Installation\n\nWe clone, build and install `gpmp2` as usual, making sure to set the `GPMP2_BUILD_MATLAB_TOOLBOX` cmake flag.\n\n  ```bash\n  git clone https://github.com/borglab/gpmp2.git\n  cd gpmp2 \u0026\u0026 mkdir build \u0026\u0026 cd build\n  cmake -DGPMP2_BUILD_MATLAB_TOOLBOX:=ON ..\n  make -j8 # build\n  sudo make install\n  ```\n\nStart matlab and load the toolboxes be entering the following commands window:\n```\naddpath('/usr/local/gtsam_toolbox')\naddpath('/usr/local/gpmp2_toolbox')\n```\nYou should now be able to run any of the scripts in the `matlab/gpmp2_examples` directory.\n\n## Citing\n\nIf you use GPMP2 in an academic context, please cite following publications:\n\n```\n@inproceedings{Mukadam-IJRR-18,\n  Author = {Mustafa Mukadam and Jing Dong and Xinyan Yan and Frank Dellaert and Byron Boots},\n  Title = {Continuous-time {G}aussian Process Motion Planning via Probabilistic Inference},\n  journal = {The International Journal of Robotics Research (IJRR)},\n  volume = {37},\n  number = {11},\n  pages = {1319--1340},\n  year = {2018}\n}\n\n@inproceedings{Dong-RSS-16,\n  Author = {Jing Dong and Mustafa Mukadam and Frank Dellaert and Byron Boots},\n  Title = {Motion Planning as Probabilistic Inference using {G}aussian Processes and Factor Graphs},\n  booktitle = {Proceedings of Robotics: Science and Systems (RSS)},\n  year = {2016}\n}\n\n@inproceedings{dong2018sparse,\n  title={Sparse {G}aussian Processes on Matrix {L}ie Groups: A Unified Framework for Optimizing Continuous-Time Trajectories},\n  author={Dong, Jing and Mukadam, Mustafa and Boots, Byron and Dellaert, Frank},\n  booktitle={2018 IEEE International Conference on Robotics and Automation (ICRA)},\n  pages={6497--6504},\n  year={2018},\n  organization={IEEE}\n}\n```\n\n\n## License\n\nGPMP2 is released under the BSD license, reproduced in [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborglab%2Fgpmp2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborglab%2Fgpmp2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborglab%2Fgpmp2/lists"}