상태 표현
MPC 상태는 13차원입니다:
x=[Θ,p,ω,p˙]∈R13
분해하면:
- Θ=[θz,θy,θx] — ZYX 오일러 각 (몸 방향)
- p=[px,py,pz] — 무게중심 위치 (월드 프레임)
- ω=[ωx,ωy,ωz] — 각속도 (몸 프레임)
- p˙=[p˙x,p˙y,p˙z] — 선속도 (월드 프레임)
연속 시간 상태-공간 형식
강체 방정식을 비선형 동역학 시스템으로 작성:
x˙=f(x,u)
제어 입력은 지면 반력의 벡터:
u=[f1,f2,f3,f4]⊤∈R12
연속 동역학:
Θ˙=T(Θ)ω
p˙=v
v˙=g+m1∑i=14fi
ω˙=I−1(∑i=14(ri−p)×fi−ω×Iω)
여기서 T(Θ)는 방향 기구학 행렬입니다.
평형점 근처에서의 선형화
MPC의 경우 참조 궤적 근처에서 선형화합니다. 호버링 평형점(속도 제로, 수평 방향) 근처:
xk+1=Axk+Buk+c
야코비안:
A=∂x∂fref,B=∂u∂fref
핵심 통찰:
- A는 방향 기구학, 중력 결합, 자이로스코픽 항을 포함
- B는 각 접지 힘이 몸 가속도와 회전에 영향을 미치는 방식 인코딩
- 선형화는 작은 편차(트로트 속도)에 유효하고, 고속 플립에는 유효하지 않음
이산화: 영순서 유지
MPC는 40 Hz(25ms 타임스텝)에서 실행됩니다. 각 간격 동안 힘이 일정하다고 가정:
xk+1=∫tktk+1f(x(t),uk)dt
선형 시스템의 경우:
xk+1=(I+AΔt+2(AΔt)2+…)xk+(BΔt+AB2(Δt)2+…)uk+c
행렬 지수 형식:
Φ(Δt)=eAΔt,Γ(Δt)=∫0ΔteAτdτB
결과:
xk+1=Φxk+Γuk+cΔt
발 기구학과 야코비안
발은 몸 프레임의 위치에 있습니다 (로봇 기하학에서):
ri,body=[xi,yi,zi]⊤
월드프레임 위치:
ri(Θ,p)=p+R(Θ)ri,body
여기서 R(Θ)는 오일러 각에서의 회전 행렬입니다.
몸 운동을 발 운동으로 맵핑하는 야코비안:
Ji=[∂Θ∂riI3]
필요한 이유:
- 유상 다리 궤적 추종을 위한 발 속도 계산
- 접지 힘을 몸 토크로 맵핑 (전치를 통해)
- 기구학 제약 구현
왜 선형화하고 이산화하는가?
- 볼록성: 선형 동역학 + 이차 비용 = 볼록 QP
- 안정성: 선형 모델이 있는 유한-수평선 MPC는 온화한 조건에서 증명된 안정성
- 계산 속도: 선형 제약이 있는 응축된 QP는 5ms 이내에 풀이
- 유효 범위: 트로트(±0.5 m/s, ±5° 피치)에서 선형화 오류는 10% 미만
선형화 없으면 비선형 최적화 필요 (훨씬 느리고 수렴 보장 없음).
다음: 3부는 각 타임스텝에서 풀이되는 QP로 이 상태-공간 모델을 변환합니다.