실용적 구현 및 튜닝
솔버 실시간 제약
MPC는 40 Hz에서 25ms 데드라인으로 실행됩니다. QP 풀이는 상태 추정과 로깅을 위한 여유를 남기기 위해 5ms 이내에 완료되어야 합니다.
문제 크기
타임스텝과 단계당 12개 힘 변수:
- 결정 변수:
- 동등 제약 (동역학):
- 부등 제약 (마찰 + 범위):
이는 중간 크기 QP입니다: 192개 변수, ~300개 제약. 현대 솔버가 쉽게 처리합니다.
웜 스타팅
QP 솔버 (qpOASES)는 이전 솔루션으로 초기화됩니다:
문제가 천천히 변하기 때문에 (로봇 동역학이 프레임마다 변하지 않음), 이전 솔루션이 좋은 초기화입니다. 전형적 수렴: 1–3 반복 대 10–20 콜드-스타트.
수치 스케일링
QP 솔버는 나쁜 조건화에 민감합니다. 정규화:
- 힘: 로봇 질량 및 중력에 상대적으로 로 스케일
- 위치: 전형적 CoM 변위 정규화 (몇 센티미터)
- 속도: 작동 범위로 스케일 ( m/s)
이는 헤시안 조건수를 관리 가능하게 유지합니다 (), 수치 오류를 피합니다.
설계 선택과 트레이드오프
왜 단일 강체?
- 효율성: 로 스케일 대 다중체에서 (여기서 = 조인트 수)
- 유효성: 트로트 속도에서 다리 질량 효과는 본 질량의
- 견고성: 명시적 다리 모델링 없음은 컨트롤러가 로봇 변종 전반에서 작동함을 의미
왜 영순서 유지 이산화?
- 단순성: 각 25ms 간격에 걸친 일정 힘
- 현실: 실제 컨트롤러는 업데이트 간 일정 토크를 출력합니다
- 충분성: 40 Hz 재계획은 대부분의 장애를 포착합니다
왜 고정-타이밍 보행?
- 볼록성: 미리 정해진 접지 일정은 볼록 QP를 가능하게 합니다
- 견고성: 발 센서에 의존하지 않음; 최악 경우는 일시적
- 트레이드오프: 거친 지형이나 장애물에 보행을 적응할 수 없음
왜 비례 MPC 비용 (적분 없음)?
- 단순성: 비례 항으로 상태 증강 회피
- 속도: QP 문제 크기 감소
- 트레이드오프: 작은 정상 상태 오프셋 (~3 cm 몸 높이, ~3° 피치)
튜닝 파라미터
실행 중 조정 가능한 파라미터:
| 파라미터 | 효과 | 범위 |
|---|---|---|
| 속도 명령 | ±1.2, ±0.6, ±1.0 m/s, rad/s | |
| 몸 높이 목표 | CoM 참조 높이 | ±10 cm |
| 가중치 | 상태 추종 공격성 | 0–1000 (스케일) |
| 가중치 | 힘 부드러움 강조 | 0–1000 (스케일) |
| (마찰) | 쿨롱 계수 | 0.3–1.5 (콘크리트 위 고무 ~0.7) |
성능 프로파일링
전형적 타이밍 분석 (하나의 25ms 제어 주기):
| 작업 | 지속 시간 |
|---|---|
| 센서로부터 상태 추출 | 0.5 ms |
| MPC 행렬 어셈블리 | 1.5 ms |
| QP 풀이 (웜-스타트) | 2–4 ms |
| 유상 다리 제어 | 0.5 ms |
| 야코비안 + 토크 맵핑 | 0.5 ms |
| 총 제어 | ~5–7 ms |
| 물리학 시뮬레이션 (1 kHz, 25 스텝) | ~12 ms |
| 총 계산 | ~17 ms |
| 40 Hz에서의 여유 | ~8 ms |
배포 고려사항
네이티브 시뮬레이션
- 시뮬레이터: MuJoCo (물리학, 충돌 감지, 렌더링 선택사항)
- 런타임: 실제 세계 초당 ~100배
- 적합: 개발, 검증, CI/CD 테스트
WebAssembly (브라우저)
- 모듈 크기: ~3–5 MB (gzipped)
- 풀이 시간: ~10–15 ms/스텝 (네이티브 대비 오버헤드: ~10%)
- 적합: 상호작용 시각화, 파라미터 실험
실제 하드웨어
- 필요: 실시간 OS, 상태 추정기 (IMU + 기구학)
- 야코비안 토크 맵핑을 모터 명령으로
- 전형적 주기 시간: 40–200 Hz @ 1–5 ms
알려진 제약사항
- 고정 보행: 경사로 > ~20° 또는 희박한 발판에 적응할 수 없음
- 착지 과도현상: 발이 지면에 닿을 때 간단한 힘 스파이크 (컴플라이언스 모델 없음)
- 정상 상태 오프셋: 몸 높이 참조 위 약 3 cm, 속도 시 약 3° 피치
- 가정: 단일 강체, 조인트 백래시 없음, 즉각적 힘 전달
이들은 원본 2018 IROS 논문에 따른 의도적 단순화입니다. 더 고급 변종이 존재하지만 단순성과 실시간 보장을 희생합니다.
다음: 요약은 완전한 제어 루프를 함께 넣습니다.