Skip to content

nanoplan is a header-only C++11 library for search-based robot planning.

License

Notifications You must be signed in to change notification settings

jsford/nanoplan

Repository files navigation

nanoplan is a header-only C++11 library for search-based robot planning. The primary design goals are correctness, ease-of-use, and efficiency (in that order). nanoplan currently supports Dijkstra, A*, Lifelong Planning A*, and (Coming Soon!) D* Lite.

Demo

The demo included with nanoplan generates a 2d maze and searches for a path from the top-left to the bottom-right. New obstacles appear with each iteration. Depending on the search algorithm you select, replanning is much more efficient than planning from scratch.

Installation

git clone github.com/jsford/nanoplan/
cd nanoplan
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
sudo make install

Usage

CMake find_package

Use CMake and find_package to consume an installed version of nanoplan.

project("nanoplan-example")

find_package(nanoplan CONFIG REQUIRED)

add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} nanoplan::nanoplan)

CMake add_subdirectory

Alternatively, you can use add_subdirectory to include nanoplan in your project without installing it to the system.

project("nanoplan-example")

add_subdirectory(nanoplan)

add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} nanoplan::nanoplan)

Header-only

You can always grab the entire include/nanoplan/ directory and drop it into your project.

Acknowledgements

Thank you to Carnegie Mellon's Search Based Planning Lab and Professor Maxim Likhachev for inventing and publishing many of the algorithms implemented in nanoplan.

The nanoplan logo is based on "Robot thinker", original art licensed from studiostoks.

About

nanoplan is a header-only C++11 library for search-based robot planning.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published