원문 캡처 · github.com
원문 캡처 · github.com

Rust 라이브러리 batchplan은 여러 로봇 장면의 역기구학과 충돌 없는 경로, 시간 제약을 반영한 궤적을 한 번에 계획한다. 로봇 동작을 LeRobot 학습 데이터로 내보낼 수도 있지만, 버전은 0.2이며 GPU에서 작은 묶음을 처리할 때는 CPU가 더 빠를 수 있다.

batchplan은 URDF·MJCF·OpenUSD 형식의 로봇과 상자·구·원기둥 같은 장애물을 지원한다. 깊이 이미지나 포인트 클라우드로부터 거리 그리드를 만들어 주변을 계획에 반영할 수도 있다. CPU에서 동작하며, wgpu가 지원하는 GPU에서는 역기구학과 궤적 최적화도 실행한다. CUDA, ROCm, ROS는 필수 요소가 아니다.

제작자가 공개한 벤치마크에서는 MotionBenchMaker와 MπNets의 Panda 문제 2,600개를 비교해 문제당 0.17ms, 초당 19,902개를 기록했다. 이 결과는 Apple M4 Pro CPU 한 코어에서 측정한 값이다. 비교 대상과 조건에 따라 결과가 달라지며, 제작자는 실제 Panda 메시에서 경로가 충돌을 피한 비율도 함께 공개했다. 자세한 설정과 재현 방법은 벤치마크 문서를 참고할 수 있다.

GPU 호출에는 약 10ms가 걸려 수백 개보다 작은 묶음에서는 CPU가 더 빠를 수 있다. 계획 단계에서는 로봇을 구로 나타내며, 완성된 경로를 메시와 대조하는 기능은 CPU 필터로 제공된다. 궤적은 정지 상태로 끝나고, 저크 제한을 지키지만 저크 자체를 최소화하지는 않는다. 또한 batchplan은 0.2 버전으로 인터페이스가 바뀔 수 있다.

설치는 Cargo 의존성에 다음 항목을 추가한다. gpu 기능은 기본 활성화되어 있고, LeRobot 내보내기는 lerobot 기능을 별도로 켜야 한다. OpenUSD 지원에는 Rust 1.96 이상이 필요하며, 그 밖에는 안정판 Rust 1.90 이상에서 빌드된다.

toml
[dependencies]
batchplan = "0.2"

LeRobot v3.0 데이터셋이나 NumPy 배열로 내보낼 수 있어, 로봇 동작 계획과 학습 데이터 생성 작업에 활용할 수 있다. 자세한 기능과 예제는 batchplan 저장소와 학습 데이터 문서에서 확인할 수 있다.