KavrakiLab/vamp
SIMD-Accelerated Sampling-based Motion Planning
What it solves
VAMP (Vector-Accelerated Motion Planning) addresses the computational bottleneck of sampling-based motion planning in robotics. Specifically, it targets the high cost of collision checking and forward kinematics (FK), which typically slow down the process of finding a valid path for a robot arm in a complex environment.
How it works
VAMP leverages CPU SIMD (Single Instruction, Multiple Data) instructions to parallelize and accelerate the most expensive parts of the planning pipeline. It uses a specialized spatial data structure called the Collision-Affording Point Tree (CAPT) to enable extremely fast collision checking against pointclouds, achieving query times under 10 nanoseconds. The system is designed to be hardware-accelerated across different architectures, including x86 (AVX2) and ARM (NEON), and can even be compiled to WebAssembly for browser-based execution.
Who it’s for
It is designed for robotics researchers and engineers who need real-time or near-real-time motion planning for robotic arms (such as the Franka Emika Panda, UR5, Fetch, and Baxter) and those working with high-density pointcloud environment representations.
Highlights
- Extreme Speed: Solves MotionBenchMaker problems for the Panda robot in a median of 35 microseconds on a single consumer CPU core.
- Hardware Optimized: Native support for x86 AVX2 and ARM NEON instructions.
- Multiple Planners: Includes implementations of RRT-Connect, PRM, FCIT*, and AORRTC.
- Efficient Pointcloud Handling: Uses CAPTs for ultra-fast collision queries against thousands of points.
- Cross-Platform: Supports C++, Python, and WebAssembly (WASM) targets.
Related
- Project
- Project
- Project
- Project
- Project