본문으로 건너뛰기

시리즈 요약: 사족 보행을 위한 볼록 MPC

제어 문제

사족 로봇은 불확실한 지형에서 속도 명령을 실행하면서 안정성을 유지해야 합니다. 중심 문제는 지면 접지가 이산 이벤트입니다 — 발이 켜지고 꺼집니다 — 전통적 역운동학이 처리할 수 없는 비선형 모드 스위칭을 만듭니다.

MPC 솔루션

우리는 모든 결정을 지면 반력 주위에 중앙화하는 유한-수평선 최적 제어 문제를 공식화합니다:

주어진 값: 현재 몸 상태 x0\mathbf{x}_0 (위치, 방향, 속도) 및 속도 명령 p˙cmd\dot{\mathbf{p}}^{\text{cmd}}

최적화: 400ms 수평선 (16 × 25ms 스텝)에 걸쳐 모든 4개 발의 힘 {fi,k}\{\mathbf{f}_{i,k}\}

최소화: 상태 추종 오류 + 힘 노력 J=k=015(xkxkrefQ2+ukR2)J = \sum_{k=0}^{15} \left( \|\mathbf{x}_k - \mathbf{x}^{\text{ref}}_k\|_Q^2 + \|\mathbf{u}_k\|_R^2 \right)

제약:

  • 단일 강체 동역학 (1–2부): xk+1=Φxk+Γuk+c\mathbf{x}_{k+1} = \Phi \mathbf{x}_k + \Gamma \mathbf{u}_k + \mathbf{c}
  • 발의 마찰 원뿔: fi,xyμfi,z\|\mathbf{f}_{i,xy}\| \leq \mu f_{i,z} (3부)
  • 고정-타이밍 보행 일정: 유상 중 fi,k=0\mathbf{f}_{i,k} = 0 (4부)

핵심 혁신

1. 단일 강체 모델 (1–2부)

  • 사족을 13-상태 시스템으로 단순화 (위치, 방향, 속도)
  • 다리 동역학이 빠르다고 가정 → 힘이 몸으로 즉시 전파
  • 전형적 트로트 속도에 유효 (|v| 1 m/s 미만)
  • 제어 복잡성을 다중체에서 단일체로 감소

2. 선형화와 이산화 (2부)

  • 참조 궤적 주위에서 비선형 동역학 선형화
  • 40 Hz (25ms 간격)에서 영순서 유지로 이산화
  • 볼록 최적화 가능 (선형 제약 + 이차 비용)
  • 트로트에서 선형화 오류 10% 미만

3. 응축된 QP (3부)

  • 상태 변수 제거 → 192개 힘 변수만
  • 행렬 HH, cc는 암묵적으로 완전한 동역학 인코딩
  • 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로 브라우저 시각화 컴파일

이 접근 방식이 작동하는 이유

  1. 문제 중심화: 조인트 각도가 아닌 힘을 직접 최적화 (물리학과 정렬)
  2. 볼록 공식화: 마찰 원뿔은 볼록 → 국소 최솟값 없음, 수렴 보장
  3. 실시간 실현: 192-변수 QP가 웜-스타트로 5ms에 풀이
  4. 모듈식: 단일체 모델을 로봇 변종 전체에서 재사용 가능
  5. 견고성: 고정 보행이 발 접지 센서 의존성 제거

제약사항 및 확장

현재 단순화:

  • 단일 강체 (다리 관성 무시)
  • 접지 감지 없음 (고정 타이밍이 지형과 불일치 가능)
  • 비례 비용만 (작은 정상 상태 오류)
  • 적분 작용 또는 장애 거절 없음
  • 평탄 또는 약간 경사진 지형을 가정

가능한 확장:

  • 적응 보행 전환 (경계, 속도, 갤럽)
  • 지형 적응을 위한 기계 학습
  • 발 센서와의 접지 상태 추정
  • 전신 제어 (팔 + 다리)
  • 학습된 동역학 모델 또는 비용 함수

구현 강조

코드 구조:

  • ConvexMPC/ — 시뮬레이터-독립 컨트롤러 (Eigen + qpOASES)
  • simulation/ — MuJoCo 통합 + 헤드리스 CLI
  • wasm/ — 브라우저용 Emscripten 바인딩
  • web/ — React + Three.js 상호작용 뷰어

배포 옵션:

  • 네이티브: 테스트를 위한 100배 실시간 시뮬레이션
  • WebAssembly: 상호작용 브라우저 데모
  • 하드웨어: 실시간 가능 (결정적, 예측 가능)

권장 읽기 순서

  1. 1부 — 물리학 기초: 왜 단일 강체, 접지 제약
  2. 2부 — 선형화된 동역학: 왜 우리는 볼록 QP를 풀 수 있는가
  3. 3부 — QP 문제: 비용, 제약, 응축 트릭
  4. 4부 — 보행과 유상: 모든 것이 시간에 어떻게 맞춰지는가
  5. 5부 — 구현: 솔버 트릭, 튜닝, 실시간 성능
  6. 이 요약 — 큰 그림: 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의 동적 보행을 가능하게 합니다.