Our take
- Activity
- 47
- Community
- 53
- Issues
- 21
- Pull requests
- 47
+7 stars in the last 10 days
Overview
VAMP is a C++ library for sampling-based robot motion planning. It applies CPU SIMD vector instructions to accelerate forward kinematics and collision checking, helping planners search robot configuration spaces with lower computational overhead.
It is aimed at robotics researchers and developers who need fast planning for supported robot models or want to build on its planning and collision-checking components. The project includes Python bindings as well as C++ and WebAssembly build paths.
Key Features
- SIMD implementations for x86 AVX2 and ARM NEON, with a WebAssembly build using 128-bit SIMD.
- RRT-Connect, PRM, FCIT*, and AORRTC planners, including support for planning to multiple goals.
- Collision checking for supported robot models against primitive obstacles and pointclouds using CAPTs.
- Robot forward kinematics and collision validation, with models for the Panda, UR5, Fetch, and Baxter, among others.
- Python bindings and a C++ library interface.
- Path simplification routines including shortcutting, B-spline smoothing, and randomized perturbation.
- Tools for custom robot support, based on generated collision-checking code and spherical robot geometry.
Use Cases
- Robotics researchers benchmarking sampling-based planners on robot motion-planning problems.
- Developers building planning pipelines for supported robot models who need fast collision checking and forward kinematics.
- Teams planning around pointcloud obstacles and seeking the included CAPT data structure for collision queries.
- Researchers comparing RRT-Connect, PRM, and asymptotically optimal planning approaches in a shared library.
Getting Started
Install the Python package from PyPI:
pip install vamp-planner
For system requirements, C++ builds, examples, and custom robot setup, see the README.
Considerations
- Performance depends on compatible SIMD support and build settings. The README lists x86 AVX2 and ARM NEON support, and defaults to building for the machine's native architecture.
- Source builds require CMake 3.16 or later, a supported C++ compiler, Python development headers for bindings, and Eigen 3.4 or later.
- The bundled robot models are a finite set. Adding a custom robot requires generated code and a spherical approximation of its collision geometry, which may need tuning.
- The README describes mesh collision checking as available, while its environment-representation overview emphasizes primitive models and pointclouds. Check the current API and examples for the specific collision geometry you need.
- The project is research-oriented and implements algorithms described in academic papers. Assess planner behavior and suitability for your own application before relying on it in production.
Found this useful?
Share it with someone who would like vamp.