###### tags: `humanoid` `robotics` # Capture Point ## Capture Pointの導出 「ヒューマノイドが自身を停止させる為の着地点」として定義された点をCapture Pointと呼ばれ, 重心・ZMPモデル $$ \ddot{x_{\rm G}} = \omega^2({x_{\rm G} - x_{\rm Z}}) \tag{1} $$ から求まる.倒立振子の支持脚(ZMP)が動かない時$x_{\rm Z}(t) = x_{\rm Z}(0) = x_{{\rm Z},0}$の時,(1)式の一般解は $$ x_{\rm G}(t) = A_1 {\rm e}^{-\omega t} + A_2 {\rm e}^{\omega t} + x_{{\rm Z},0} \ (A_1, A_2 = {\rm const}) $$ $x_{\rm G}(0) = x_{{\rm G},0}$,$\dot{x_{\rm G}(0)} = \dot{x_{{\rm G},0}}$の時 $$ x_{\rm G}(t) = \frac{1}{2}(x_{{\rm G},0} - \frac{\dot{x_{{\rm G},0}}}{\omega} -x_{{\rm Z},0}) {\rm e}^{-\omega t} + \frac{1}{2}(x_{{\rm G},0} + \frac{\dot{x_{{\rm G},0}}}{\omega} -x_{{\rm Z},0}) {\rm e}^{\omega t} + x_{{\rm Z},0} \tag{2} $$ 重心位置が無限時間後に支持脚の上($x_{\rm G}(\infty) = x_{{\rm Z},0}$)に停止することを考えると,$\xi = x_{\rm G} + \frac{\dot{x_{\rm G}}}{\omega}$として(2)式は $$ x_{\rm G}(t) = (x_{{\rm G},0} - \frac{1}{2}(\xi_0 + x_{{\rm Z},0})){\rm e}^{-\omega t} + \frac{1}{2}( \xi_0 - x_{{\rm Z},0}) {\rm e}^{\omega t} + x_{{\rm Z},0} \tag{3} $$ 支持脚位置を$x_{{\rm Z},0} = \xi_0$とした時 $$ x_{\rm G}(t) = (x_{{\rm G},0} - \xi_0){\rm e}^{-\omega t} + \xi_0 \tag{4} $$ $t \rightarrow \infty$で $$ x_{\rm G}(\infty) = \xi_0 \tag{5} $$ 重心位置が支持脚$\xi_0(= x_{{\rm Z},0})$の上に来る.以上からCapture Point$\xi$は 重心位置$x_{\rm G}$と重心速度$\dot{x}_{\rm G}$を用いて $$ \xi = x_{\rm G} + \frac{\dot{x_{\rm G}}}{\omega} \tag{6} $$ ここでCapture Pointは重心位置,重心速度に依存し,重心の運動に従い変化することに注意する. ## Capture Pointのダイナミクス 重心・ZMPモデルについて$x_{\rm G}, \dot{x_{\rm G}}$を状態変数に取ったときの状態方程式は $$ \frac{d}{dt} \left[ \begin{array}{cc} x_{\rm G} \\ \dot{x_{\rm G}} \\ \end{array} \right] = \left[ \begin{array}{cc} 0 & 1 \\ \omega^2 & 0 \\ \end{array} \right] \left[ \begin{array}{cc} x_{\rm G} \\ \dot{x_{\rm G}} \\ \end{array} \right] + \left[ \begin{array}{cc} 0 \\ -\omega^2 \\ \end{array} \right] x_{\rm Z} \tag{7} $$ 状態変数として$x_{\rm G}, \xi$を取ったときを考えると $$ \left[ \begin{array}{cc} x_{\rm G} \\ \dot{x_{\rm G}} \\ \end{array} \right] = \left[ \begin{array}{cc} 1 & 0 \\ -\omega & \omega \\ \end{array} \right] \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] = T \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] \\ T = \left[ \begin{array}{cc} 1 & 0 \\ -\omega & \omega \\ \end{array} \right], T^{-1} = \left[ \begin{array}{cc} 1 & 0 \\ 1 & \frac{1}{\omega} \\ \end{array} \right] $$ と変換できるため(7)式は $$ \frac{d}{dt} T \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] = \left[ \begin{array}{cc} 0 & 1 \\ \omega^2 & 0 \\ \end{array} \right] T \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] + \left[ \begin{array}{cc} 0 \\ -\omega^2 \\ \end{array} \right] x_{\rm Z} \\ \frac{d}{dt} \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] = T^{-1} \left[ \begin{array}{cc} 0 & 1 \\ \omega^2 & 0 \\ \end{array} \right] T \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] + T^{-1} \left[ \begin{array}{cc} 0 \\ -\omega^2 \\ \end{array} \right] x_{\rm Z} $$ $$ \frac{d}{dt} \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] = \left[ \begin{array}{cc} -\omega & \omega \\ 0 & \omega \\ \end{array} \right] \left[ \begin{array}{cc} x_{\rm G} \\ \xi \\ \end{array} \right] + \left[ \begin{array}{cc} 0 \\ -\omega \\ \end{array} \right] x_{\rm Z} \tag{8} $$ (8)式の上半分の成分は $$ \dot{x_{\rm G}} = \omega(\xi - x_{\rm G}) \tag{9} $$ 重心がCapture Point$\xi$に向かう安定閉ループであることを示し,重心速度はCapture Pointへ向かう方向を示す.(8)式の下半分の成分は $$ \dot{\xi} = \omega(\xi - x_{\rm Z}) \tag{10} $$ とCapture Pointのダイナミクスを示す.(9)式より重心はCapture Pointを追従するため,Capture Pointを安定化すれば重心も間接的に安定化される.$x_{\rm Z}$の時,(10)の一般解は $$ \xi(t) = B_1 {\rm e}^{\omega t} + x_{\rm Z} \ (B_1 = {\rm const}) $$ $\xi(0) = \xi_0$の時 $$ \xi(t) = (\xi_0 - x_{\rm Z}) {\rm e}^{\omega t} + x_{\rm Z} \tag{11} $$