Complementarity Constraint
- 다른 이름: complementarity condition, contact complementarity
- 카테고리: Planning & manipulation › Trajectory optimisation
- 태그: contact, trajectory-optimization, nonlinear-programming, physics-simulation, legged-robots
곱이 0인 한 쌍의 비음수 조건으로, 많아야 한 양만 양수일 수 있다. 간격이 0일 때에만 힘이 존재하는 접촉을 모델링하는 데 쓰인다.
정의
상보성 제약(complementarity constraint)은 둘 다 음이 아니어야 하고 곱이 0이어야 하는 두 양을 묶는 제약으로, 0 ≤ a ⊥ b ≥ 0으로 쓴다. 어떤 해에서든 둘 중 적어도 하나는 0이며, 어느 한쪽은 다른 쪽이 0에 머무는 동안에만 양수가 될 수 있다. 이 구조는 시스템이 명시적인 전환 변수 없이 두 영역 사이를 전환할 때마다 나타나며, 선형 상보성 문제(linear complementarity problem, LCP)와 상보성 제약을 가진 수리 계획 문제의 기초다.
강체 접촉은 로봇공학의 표준적인 예다. 발이나 손가락과 표면 사이의 거리 φ(q)는 음이 아니어야 하고, 표면은 밀기만 할 수 있으므로 법선 접촉력 λ도 음이 아니어야 하며, 힘은 거리가 0일 때에만 0이 아닐 수 있다. 즉 0 ≤ φ(q) ⊥ λ ≥ 0이다. 쿨롱 마찰은 미끄럼 속도를 마찰력이 마찰 원뿔의 경계에 있는지 여부와 연결하는 추가 상보성 조건으로 쓸 수 있다. 1990년대에 개발된 시간 스테핑 강체 시뮬레이터는 Stewart와 Trinkle의 방식, Anitescu와 Potra의 방식을 포함해 매 스텝마다 LCP나 관련 상보성 문제를 풀어 접촉 충격량을 구한다. 궤적 최적화에서는 Posa, Cantu, Tedrake(2014)가 이 제약을 직접 전사 문제에 바로 추가하여, 접촉 순서를 미리 지정하지 않아도 최적화기가 언제 어디서 접촉이 생기고 끊어지는지를 고르게 했다.
이 접근법은 혼합 정수 정식화가 접촉의 켜짐과 꺼짐에 쓸 정수 변수를 피하지만, 나름의 어려움이 따른다. 상보성 제약은 비볼록이며, 표준 비선형 계획 솔버가 의존하는 제약 자격 조건을 위반하므로 솔버가 멈추거나 느리게 수렴할 수 있다. 흔한 해결책은 곱 조건을 φλ ≤ ε로 완화하고 일련의 풀이에 걸쳐 ε를 줄여 가는 것, 곱을 페널티로 비용에 옮기는 것, 또는 상보성 문제용으로 설계된 솔버를 쓰는 것이다. 좋은 초기 추정이 매우 중요하며, 그래서 접촉 암시적 최적화기는 흔히 더 단순한 해로부터 웜 스타트한다.
중요한 이유
접촉은 다리형 이동과 조작을 규정하는 특징이며, 상보성 제약은 강체 접촉을 방정식으로 쓰는 표준적이고 정확한 방법이다. 이를 통해 시뮬레이터는 접촉력을 일관되게 계산하고 최적화기는 접촉 타이밍을 스스로 찾아내므로, 엔지니어가 걸음새나 접촉 순서를 미리 정해 둘 필요가 없다.
주요 응용
- 다리형 로봇과 조작을 위한 접촉 암시적 궤적 최적화
- 접촉과 마찰이 있는 시간 스테핑 강체 시뮬레이션
- 착지, 점프, 충격 계획
- 관절 한계나 케이블 같은 단방향 제약의 모델링
- 접촉의 미분 가능 물리 정식화
실제 사례
한 엔지니어가 높은 곳에서 떨어뜨린 사족 로봇의 착지를 계획한다. 궤적 최적화는 몇 밀리초마다 노트 점을 두는 직접 전사를 사용하며, 각 발과 노트마다 지면 위 발의 높이와 수직 지면 반력을 변수로 추가하고 높이 ≥ 0, 힘 ≥ 0, 높이 × 힘 ≤ ε 조건을 건다. 첫 번째 풀이는 느슨한 ε와 단순한 낙하 운동에서 얻은 초기 추정을 쓰고, 이후의 각 풀이는 ε를 조이며 이전 해로부터 웜 스타트한다. 최종 계획은 어느 발이 먼저 닿고 힘이 어떻게 증가하는지를 보여 주며, 엔지니어는 남은 상보성 위반이 충분히 작아서 계획이 떨어진 거리에서 작용하는 힘에 의존하지 않는지 확인한다.
흔한 오해
- 상보성 제약은 접촉 계획을 볼록하게 만든다 — 정수 변수는 없애 주지만 비볼록이며 표준 솔버로는 수치적으로 어렵다
- 완화된 곱이 작은 해는 물리적으로 정확하다 — φλ ≤ ε이면 최적화기가 작은 거리에서 작은 힘을 악용할 수 있으므로, ε와 남은 위반량을 확인해야 한다
- 모든 물리 엔진은 접촉을 상보성 문제로 푼다 — 많은 엔진이 엄격한 상보성 대신 페널티 또는 컴플라이언트 접촉 모델이나 볼록 완화를 쓴다
알아야 할 사람
- 궤적 최적화 및 다리형 이동 엔지니어
- 물리 시뮬레이션 개발자
- 접촉을 거치는 계획을 하는 조작 연구자
- 로봇공학의 수치 최적화 실무자
관련 기술
- 선형 상보성 문제(Linear Complementarity Problem, LCP)
- MPCC(Mathematical Program with Complementarity Constraints)
- IPOPT
- Drake
- PATH 솔버
관련 용어
- Contact mode
- Mixed-Integer Programming
- Direct Collocation
- Penalty-Based Contact Model
- Coulomb Friction
- Warm Start
관련 프로젝트
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- ProtoMotions: NVIDIA framework for training simulated digital humans and humanoid robots on GPUs
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PHC: Physics-based perpetual humanoid controller with fail-state recovery for real-time avatars
- SOFA Framework: Real-time physics simulation framework for medical simulation and soft tissue modeling
- Extreme Parkour with Legged Robots: RL system for legged robot parkour trained in under 20 hours