Motion Primitive
- 다른 이름: movement primitive, motor primitive, action primitive, skill primitive
- 카테고리: Planning & manipulation › Motion planning
- 태그: motion-planning, manipulation, skills, learning-from-demonstration, task-planning
파라미터화된 기술(자세로 이동, 그리퍼 열기)이나 짧은 궤적 구간 같은 로봇 동작의 재사용 가능한 구성 요소로, 계획기와 정책이 이를 결합해 더 긴 행동을 만든다.
정의
모션 프리미티브(motion primitives)는 로봇 행동을 연결할 수 있는 재사용 가능한 단위로 나눈다. 모든 동작을 관절 명령 수준에서 계획하거나 학습하는 대신, 시스템은 목표 자세, 그리퍼 폭, 미는 방향 같은 몇 개의 파라미터로 프리미티브를 호출하고, 프리미티브가 세부 동작을 만들어 낸다. 이 용어는 서로 관련된 여러 아이디어를 포괄하는데, 이들은 프리미티브를 어떻게 표현하는지, 그리고 무엇이 프리미티브 사이에서 선택하는지에서 다르다.
매니퓰레이션과 작업 계획에서 프리미티브는 파라미터화된 기술이다. 자세로 이동, 파지, 배치, 밀기, 따르기, 그리퍼 열기 또는 닫기 같은 것이다. 작업 계획기, 행동 트리 또는 언어 모델이 순서를 고르고 파라미터를 채운다. 최근의 여러 시스템은 언어 모델이 이런 함수를 호출하는 짧은 프로그램을 작성하게 한다. 모션 계획에서 프리미티브는 차량의 동역학을 준수하는 짧은 사전 계산된 궤적 구간이며, 격자 계획기(lattice planner)는 이를 상태의 규칙적인 격자 위에서 이어 붙여 자동차, 이동 로봇, 드론을 위한 실행 가능한 경로를 탐색한다. 시연으로부터의 학습에서 운동 프리미티브는 예제로부터 학습되어 적응할 수 있는 궤적 모델이다. Ijspeert, Nakanishi, Schaal이 개발한 동적 운동 프리미티브(dynamic movement primitives, DMPs)는 시연을 학습된 강제 항을 가진 안정한 동역학계로 인코딩하여 시작과 목표가 바뀔 수 있게 하고, 확률적 운동 프리미티브(probabilistic movement primitives, ProMPs)는 궤적에 대한 분포를 표현한다.
핵심적인 트레이드오프는 구조와 표현 범위 사이에 있다. 고정된 라이브러리는 행동을 예측 가능하고, 시험 가능하며, 계획하기 빠르게 만든다. 계획기가 소수의 이산적 선택과 그 파라미터만 탐색하기 때문이다. 동시에 로봇을 라이브러리가 표현할 수 있는 것으로 제한한다. 접촉이 많거나, 반응적이거나, 긴밀하게 협조된 동작에는 피드백이 내장된 프리미티브나 학습된 정책이 필요할 수 있다. 따라서 프리미티브의 세분도를 정하는 것은 그 자체로 하나의 설계 결정이다.
중요한 이유
모션 프리미티브는 계획기와 언어 모델에 시험된 소수의 행동 집합을 주어 장기 작업을 다룰 수 있게 만든다. 상위 수준 결정과 하위 수준 제어를 분리하므로 각 계층을 독립적으로 개발하고 검증할 수 있다.
주요 응용
- 작업 계획기나 언어 모델이 구동하는 매니퓰레이션
- 차량과 드론을 위한 격자 기반 모션 계획
- 동적 운동 프리미티브를 이용한 시연으로부터의 학습
- 재사용 가능한 기술을 호출하는 행동 트리
- 장기적인 수납, 포장, 조립
실제 사례
선반 수납 시스템을 만드는 팀은 밀기, 쓸기, 삽입, 파지 후 배치 같은 프리미티브 라이브러리를 정의한다. 각 프리미티브는 접촉점, 방향, 거리 같은 파라미터를 가진 짧은 제어기로 구현되며, 실행 전에 검사하는 전제 조건과 힘 또는 위치에 대한 종료 조건을 가진다. 학습된 모델이 파라미터화된 각 프리미티브 아래에서 물체가 어떻게 움직이는지 예측하고, 계획기가 순서와 파라미터를 탐색하며, 로봇은 첫 단계를 실행한 뒤 다시 계획한다. 드론에서는 같은 아이디어가 종단 속도에 걸쳐 샘플링되고 매 계획 주기마다 장애물 지도와 대조해 검사되는 짧은 다항식 궤적 라이브러리로 나타난다.
흔한 오해
- 모션 프리미티브는 항상 고정된 하드코딩 궤적이다 — 많은 프리미티브가 파라미터화되어 있거나 피드백을 포함하며, DMP는 실행 시간에 새 목표에 적응한다
- 프리미티브를 쓰면 학습을 포기하는 것이다 — 프리미티브는 흔히 시연으로부터 학습되며, 학습된 모델이 프리미티브를 선택하고 파라미터화하는 데 쓰인다
- 라이브러리가 충분히 크면 어떤 작업이든 풀 수 있다 — 연속적이고 반응적인 접촉이 필요한 작업은 이산적 프리미티브가 표현하는 범위를 벗어날 수 있으며, 라이브러리 자체도 설계하고 유지 관리해야 한다
알아야 할 사람
- 기술 라이브러리를 구축하는 매니퓰레이션 엔지니어
- 격자 계획기로 작업하는 모션 계획 엔지니어
- 시연으로부터의 학습을 연구하는 로봇 학습 연구자
- 언어 모델이나 작업 계획기를 로봇에 연결하는 개발자
관련 기술
- 동적 운동 프리미티브(Dynamic Movement Primitives, DMP)
- 확률적 운동 프리미티브(Probabilistic Movement Primitives, ProMP)
- 상태 격자 계획기(State Lattice Planner)
- 행동 트리(Behavior Trees)
- 작업 및 모션 계획(Task and Motion Planning)
- 기술 라이브러리(Skill Libraries)
관련 용어
- Motion Planning
- Trajectory Planning
- Task and Motion Planning
- Task Planning
- Imitation Learning
- Behavior Tree
관련 프로젝트
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
- BehaviorTree.CPP: C++ behavior tree library for robot task planning, powering Nav2 and ROS 2 systems
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design