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