시리즈 요약: 사족 보행을 위한 볼록 MPC
제어 문제
사족 로봇은 불확실한 지형에서 속도 명령을 실행하면서 안정성을 유지해야 합니다. 중심 문제는 지면 접지가 이산 이벤트입니다 — 발이 켜지고 꺼집니다 — 전통적 역운동학이 처리할 수 없는 비선형 모드 스위칭을 만듭니다.
MPC 솔루션
우리는 모든 결정을 지면 반력 주위에 중앙화하는 유한-수평선 최적 제어 문제를 공식화합니다:
주어진 값: 현재 몸 상태 (위치, 방향, 속도) 및 속도 명령
최적화: 400ms 수평선 (16 × 25ms 스텝)에 걸쳐 모든 4개 발의 힘
최소화: 상태 추종 오류 + 힘 노력
제약:
- 단일 강체 동역학 (1–2부):
- 발의 마찰 원뿔: (3부)
- 고정-타이밍 보행 일정: 유상 중 (4부)
핵심 혁신
1. 단일 강체 모델 (1–2부)
- 사족을 13-상태 시스템으로 단순화 (위치, 방향, 속도)
- 다리 동역학이 빠르다고 가정 → 힘이 몸으로 즉시 전파
- 전형적 트로트 속도에 유효 (|v| 1 m/s 미만)
- 제어 복잡성을 다중체에서 단일체로 감소
2. 선형화와 이산화 (2부)
- 참조 궤적 주위에서 비선형 동역학 선형화
- 40 Hz (25ms 간격)에서 영순서 유지로 이산화
- 볼록 최적화 가능 (선형 제약 + 이차 비용)
- 트로트에서 선형화 오류 10% 미만
3. 응축된 QP (3부)
- 상태 변수 제거 → 192개 힘 변수만
- 행렬 , 는 암묵적으로 완전한 동역학 인코딩
- qpOASES (웜-스타트)를 통해 5ms 이내에 풀이
- 볼록 문제는 전역 최적값을 보장
4. 고정-타이밍 보행 (4부)
- 대각 트로트: 전좌측/후우측을 전우측/후좌측과 교대
- 접지 일정을 미리 예측 → 볼록 힘 제약
- 발 센서 필요 없음; 작은 타이밍 오류에 견고
- 트레이드오프: 거친 지형에 보행 적응 불가
5. 두 단계 제어 (4부)
- 상위 단계 (MPC, 40 Hz): 균형을 위한 지면 반력 계획
- 하위 단계 (PD, 1 kHz): 독립적으로 유상 다리 궤적 추종
- 깔끔한 분리: MPC는 "어떤 힘?" + "언제?" → 유상 제어는 "발이 어디로 가야?"
성능
추종 정확도 (60초 실행):
- 선속도: 명령의 ±5%
- 요우 회전율: 20+ 미터 보행 상 ±10°
- 측면 드리프트: 이동 거리당 1mm 미만
- 몸 높이: 참조 ± 3 cm
제어 타이밍:
- MPC 풀이: 2–4 ms
- 총 주기: ~5–7 ms (25ms 예산)
- 40 Hz 계획 속도에서 여유: ~8 ms
구현:
- ANYmal C (28 kg 사족, 12 DOF)에서 테스트
- MIT Cheetah 3 및 다른 사족에서도 같은 코드 실행
- WebAssembly로 브라우저 시각화 컴파일
이 접근 방식이 작동하는 이유
- 문제 중심화: 조인트 각도가 아닌 힘을 직접 최적화 (물리학과 정렬)
- 볼록 공식화: 마찰 원뿔은 볼록 → 국소 최솟값 없음, 수렴 보장
- 실시간 실현: 192-변수 QP가 웜-스타트로 5ms에 풀이
- 모듈식: 단일체 모델을 로봇 변종 전체에서 재사용 가능
- 견고성: 고정 보행이 발 접지 센서 의존성 제거
제약사항 및 확장
현재 단순화:
- 단일 강체 (다리 관성 무시)
- 접지 감지 없음 (고정 타이밍이 지형과 불일치 가능)
- 비례 비용만 (작은 정상 상태 오류)
- 적분 작용 또는 장애 거절 없음
- 평탄 또는 약간 경사진 지형을 가정
가능한 확장:
- 적응 보행 전환 (경계, 속도, 갤럽)
- 지형 적응을 위한 기계 학습
- 발 센서와의 접지 상태 추정
- 전신 제어 (팔 + 다리)
- 학습된 동역학 모델 또는 비용 함수
구현 강조
코드 구조:
- ConvexMPC/ — 시뮬레이터-독립 컨트롤러 (Eigen + qpOASES)
- simulation/ — MuJoCo 통합 + 헤드리스 CLI
- wasm/ — 브라우저용 Emscripten 바인딩
- web/ — React + Three.js 상호작용 뷰어
배포 옵션:
- 네이티브: 테스트를 위한 100배 실시간 시뮬레이션
- WebAssembly: 상호작용 브라우저 데모
- 하드웨어: 실시간 가능 (결정적, 예측 가능)
권장 읽기 순서
- 1부 — 물리학 기초: 왜 단일 강체, 접지 제약
- 2부 — 선형화된 동역학: 왜 우리는 볼록 QP를 풀 수 있는가
- 3부 — QP 문제: 비용, 제약, 응축 트릭
- 4부 — 보행과 유상: 모든 것이 시간에 어떻게 맞춰지는가
- 5부 — 구현: 솔버 트릭, 튜닝, 실시간 성능
- 이 요약 — 큰 그림: MPC를 사용하는 이유와 이 접근법의 장단점
소스 및 참조
저장소: github.com/CMaybe/Convex-MPC
핵심 논문:
J. Di Carlo, P. M. Wensing, B. Katz, G. Bledt, and S. Kim, "Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control," 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 7440-7447. doi: 10.1109/IROS.2018.8594448
의존성:
- Eigen 3.4+ (선형 대수)
- qpOASES (이차 계획)
- MuJoCo 3.1+ (물리 시뮬레이션)
- Emscripten (WebAssembly 컴파일)
이 시리즈는 현대 최적 제어 — 특히 볼록 모델 예측 제어 — 가 복잡한 발이 있는 로봇을 위해 실시간 증명-가능-안정 보행을 어떻게 가능하게 하는지 보여줍니다. 이 접근법은 모델 정교함을 계산 효율과 견고성으로 거래하며, 상용 하드웨어에서 40 Hz의 동적 보행을 가능하게 합니다.