Direct Collocation
- 다른 이름: collocation, direct transcription
- 카테고리: Planning & manipulation › Trajectory optimisation
- 태그: trajectory-optimization, optimal-control, nonlinear-programming, motion-planning, dynamics
샘플링된 시각의 상태와 제어를 변수로 다루고, 동역학을 이웃한 샘플 사이의 제약으로 부과하는 궤적 최적화 방법.
정의
직접 콜로케이션(direct collocation)은 최적 제어 문제, 즉 시스템을 시작에서 목표까지 최소 비용으로 움직이는 시간에 따른 제어 입력을 찾는 문제를, 표준 솔버가 다룰 수 있는 유한한 비선형 계획 문제로 바꾸는 방법이다. 궤적을 여러 시점으로 자르는데, 이를 매듭점(knot points)이라 한다. 모든 매듭점에서의 상태와 제어 입력이 모두 결정 변수가 되고, 시스템의 동역학은 결함 제약(defect constraints)이라 불리는 등식 제약으로 부과되는데, 이 제약은 이웃한 상태들이 사다리꼴 규칙이나 Hermite–Simpson 규칙 같은 적분 규칙과 일관되도록 요구한다. 의사 스펙트럴 방법(pseudospectral methods)은 궤적 전체에 걸쳐 고차 다항식을 쓰는 관련 계열이다.
이는 제어만 결정 변수이고 상태는 동역학을 앞으로 시뮬레이션해 얻는 슈팅(shooting) 방법과 다르다. 콜로케이션은 더 크지만 매우 희소한 문제를 만들며, IPOPT나 SNOPT 같은 희소 비선형 계획 솔버로 푼다. 장점은 관절 범위, 장애물 여유 거리, 접촉 조건 같은 상태에 대한 제한을 직접 부과하기 쉽다는 것, 솔버가 장애물을 관통하는 직선처럼 물리적으로 일관되지 않은 추정에서 시작할 수 있다는 것, 그리고 긴 호라이즌과 불안정한 시스템에서 단일 슈팅보다 더 잘 동작하는 경향이 있다는 것이다.
이 구조의 결과로, 중간 반복값은 동역학을 따를 필요가 없다. 솔버는 초기에 결함 제약을 자유롭게 위반하고 수렴 시에만 이를 만족시킨다. 동역학이나 충돌 제약을 페널티 항으로 옮기는 정식화는 이를 명시적으로 만들어, 페널티가 해를 다시 밀어내기 전에 해가 실행 불가능한 영역을 통과하게 한다. 이 아이디어는 로봇 학습에도 차용되었는데, 예를 들어 시뮬레이션된 로봇이 처음에는 페널티를 받으며 장애물을 통과하게 하고 나중에 엄격한 충돌을 강제한다. 대부분의 궤적 최적화와 마찬가지로 직접 콜로케이션은 국소 최적해를 찾으므로, 결과는 초기 추정에 달려 있다.
중요한 이유
직접 콜로케이션은 다리 로봇, 드론, 로봇 암을 위한 궤적 최적화의 주력 방법 중 하나인데, 제약을 잘 다루고 대략적인 추정에서 쉽게 시작하기 때문이다. 이를 이해하면 로봇 학습의 유용한 설계 아이디어, 즉 먼저 물리를 완화하고 점진적으로 강제한다는 아이디어도 설명된다.
주요 응용
- 다리 로봇의 점프, 뒤집기, 보행을 위한 궤적 최적화
- 시간 최적 및 에너지 최적 로봇 암 및 드론 궤적
- 이동 로봇을 위한 탐색 및 커버리지 궤적 계획
- 학습된 정책과 추종 제어기를 위한 참조 동작 생성
- 우주선 및 항공기 궤적 설계
실제 사례
Drake나 CasADi에서 다리 로봇의 점프를 계획하는 엔지니어는, 예를 들어 점프 구간에 걸쳐 고정된 수의 매듭점을 두고 각 매듭점이 로봇의 상태와 관절 토크를 담도록 문제를 설정한다. 결함 제약은 로봇의 동역학을 통해 연속된 매듭점을 묶고, 추가 제약은 토크를 모터 한계 안에 두고 지지 단계 동안 발을 지면에 붙여 두며, 비용은 노력과 최종 오차에 페널티를 준다. 시작 자세와 착지 자세 사이의 단순한 보간으로 초기화하는데, 이는 동역학을 위반하며, IPOPT가 일관된 궤적을 찾게 한다. 솔버가 실패하면 매듭점을 추가하거나, 변수를 스케일하거나, 초기 추정을 개선한다. 그렇게 얻은 궤적은 피드백 제어기가 추종하거나 학습된 정책의 참조로 사용된다.
흔한 오해
- 솔버의 모든 반복값은 물리적으로 유효한 궤적이다 — 동역학은 수렴 시에만 만족되며, 중간 해는 이를 위반할 수 있다
- 직접 콜로케이션은 전역적으로 최선의 궤적을 찾는다 — 비볼록 문제를 국소적으로 풀므로, 서로 다른 초기 추정은 서로 다른 답을 줄 수 있다
- 콜로케이션과 슈팅은 서로 다른 문제를 푼다 — 둘은 같은 최적 제어 문제의 두 가지 전사(transcription)이며, 수치적 거동이 다를 뿐이다
알아야 할 사람
- 궤적 최적화 및 모션 계획 엔지니어
- 다리 로봇 및 드론 제어 개발자
- 최적화된 참조 동작을 사용하는 로봇 학습 연구자
- 최적 제어를 공부하는 로보틱스 학생
관련 기술
- Drake
- CasADi
- IPOPT
- SNOPT
- 다중 슈팅(Multiple Shooting)
- 의사 스펙트럴 방법(Pseudospectral Methods)
관련 용어
- Trajectory Planning
- Model Predictive Control
- Differential Flatness
- Motion Planning
- Curriculum Learning
- Ergodic Coverage
관련 프로젝트
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
- Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines