KavrakiLab/vamp
SIMD-Accelerated Sampling-based Motion Planning
해결하는 문제
VAMP(Vector-Accelerated Motion Planning)는 로봇 공학에서 샘플링 기반 모션 플래닝의 계산 병목 현상을 해결합니다. 구체적으로, 복잡한 환경에서 로봇 팔의 유효한 경로를 찾는 과정을 일반적으로 느리게 만드는 충돌 검사와 순운동학(FK)의 높은 비용을 대상으로 합니다.
작동 방식
VAMP는 CPU SIMD(Single Instruction, Multiple Data) 명령을 활용하여 플래닝 파이프라인에서 가장 비용이 많이 드는 부분을 병렬화하고 가속화합니다. Collision-Affording Point Tree(CAPT)라는 특수 공간 데이터 구조를 사용하여 포인트 클라우드에 대한 매우 빠른 충돌 검사를 가능하게 하며, 쿼리 시간은 10나노초 미만입니다. 이 시스템은 x86(AVX2) 및 ARM(NEON)을 포함한 다양한 아키텍처에서 하드웨어 가속되도록 설계되었으며, 브라우저 기반 실행을 위해 WebAssembly로 컴파일할 수도 있습니다.
대상 사용자
실시간 또는 준실시간 모션 플래닝이 필요한 로봇 연구자와 엔지니어(Franka Emika Panda, UR5, Fetch, Baxter와 같은 로봇 팔용) 및 고밀도 포인트 클라우드 환경 표현을 다루는 사람들을 위해 설계되었습니다.
주요 특징
- 극한의 속도: 단일 소비자 CPU 코어에서 Panda 로봇에 대한 MotionBenchMaker 문제를 중앙값 35마이크로초로 해결합니다.
- 하드웨어 최적화: x86 AVX2 및 ARM NEON 명령을 기본 지원합니다.
- 다중 플래너: RRT-Connect, PRM, FCIT* 및 AORRTC 구현을 포함합니다.
- 효율적인 포인트 클라우드 처리: CAPT를 사용하여 수천 개의 포인트에 대한 초고속 충돌 쿼리를 수행합니다.
- 크로스 플랫폼: C++, Python 및 WebAssembly(WASM) 대상을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트