MIT Cheetah Learning (一):State Estimate

文章目录

  • MIT Cheetah Learning (一):State Estimate
      • Summary
      • 先验知识
        • A.Extended Kalman Filter
        • B.四元数、旋转矩阵、李群李代数等
      • Part 1——Sensor Device and Measurement Models
        • A. Encoders
        • B. IMU
      • Part 2——State Estimate
        • A.Filter State Definition
        • B.Prediction Model(IMU)
        • C.Measurement Model(Encoders)
        • D.Extended Kalman Filter
      • Part 3——Observability Analysis
        • A.Nonlinear Model
        • B.Extended Kalman Filter
      • Part 4——Conclusion
        • A.实验结论
        • B.后续

MIT Cheetah Learning (一):State Estimate

MIT Cheetah 3中融合了许多论文中的算法和技术。
论文链接:MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot
MIT Cheetah Learning系列将解析Cheetah的算法部分,尝试将其中每一个模块解释清楚。

Cheetah 3 中的State Estimate是参考2013年ETH的论文——
“State Estimation for Legged Robots - Consistent Fusion of Leg Kinematics and IMU”
论文链接:State Estimation for Legged Robots - Consistent Fusion of Leg Kinematics and IMU

因此,只需搞明白ETH的论文即可。
下面将具体介绍论文是如何用IMU与编码器实现State Estimate

Summary

以Extended Kalman Filter(EKF)算法为核心,仅使用IMU与电机的编码器,可以准确估计除了yaw和absolute position以外的机器人状态(yaw和absolute position在短距离运动中误差也仅在10%),包括roll、pitch、velocity。
在任意步态、任意地形下,都可以实现对机器人的状态估计。前提是机器人至少有一条腿与地面接触,并且假设机器人与地面接触时,仅会发生非常小的的滑动。

先验知识

A.Extended Kalman Filter

Definition:
θ k \theta_k θk为真实值, θ k ′ \theta'_k θk为模型预测值, ⟨ θ k ⟩ \langle \theta_k \rangle θk为估计值(系统输出), z k z_k zk为系统观测值, s k s_k sk为状态转移噪声,服从高斯分布, v k v_k vk为观测噪声,也服从高斯分布

EKF的状态转移方程和观测方程如下:
{ θ k = f ( θ k − 1 ) + s k ( 1 ) z k = h ( θ k ) + v k ( 2 ) \left\{ \begin{array}{ll} \theta_k = f(\theta_{k-1})+s_k & (1)\\ z_k = h(\theta_{k}) + v_k & (2) \end{array}\right. {θk=f(θk1)+skzk=h(θk)+vk(1)(2)
对(1)(2)式进行泰勒展开(雅克比矩阵性质: f ( x ) = f ( x 0 ) + J ⋅ ( x − x 0 ) f(x) = f(x_0)+J \cdot(x-x_0) f(x)=f(x0)+J(xx0)),得到
{ θ k = f ( θ k − 1 ) + s k = f ( ⟨ θ k − 1 ⟩ ) + F k − 1 ( θ k − 1 − ⟨ θ k − 1 ⟩ ) + s k ( 3 ) z k = h ( θ k ) + v k = h ( θ k ′ ) + H ( θ − θ k ′ ) + v k ( 4 ) \left\{ \begin{array}{ll} \theta_k = f(\theta_{k-1})+s_k = f(\langle \theta_{k-1} \rangle)+F_{k-1}(\theta_{k-1}-\langle \theta_{k-1} \rangle)+s_k & (3)\\ z_k = h(\theta_{k}) + v_k = h(\theta'_k) + H(\theta-\theta'_k) +v_k& (4) \end{array}\right. {θk=f(θk1)+sk=f(θk1)+Fk1(θk1θk1)+skzk=h(θk)+vk=h(θk)+H(θθk)+vk(3)(4)
引入反馈
⟨ θ k ⟩ = θ k ′ + K k ( z k − h ( θ k ′ ) ) \langle \theta_{k} \rangle = \theta'_k+K_k(z_k-h(\theta'_k)) θk=θk+Kk(zkh(θk))
由以上式子可以得到EKF的Predict和Update部分
Predict:
{ θ k ′ = f ( ⟨ θ k − 1 ⟩ ) Σ k ′ = F k − 1 Σ k − 1 ′ F k − 1 T + Q \left\{ \begin{array}{ll} \theta'_k = f(\langle \theta_{k-1} \rangle)\\ \Sigma'_k = F_{k-1} \Sigma'_{k-1} F_{k-1}^T + Q \end{array}\right. {θk=f(θk1)Σk=Fk1Σk1Fk1T+Q
Update:
{ S k = ( H k Σ k ′ H k T + R ) − 1 K k = Σ k ′ H k T S k ⟨ θ k ⟩ = θ k ′ + K k ( z k − h ( θ k ′ ) ) Σ k = ( I − K k H k ) Σ k ′ \left\{ \begin{array}{ll} S_k = (H_{k} \Sigma'_{k} H_{k}^T+R)^{-1}\\ K_k = \Sigma'_k H^T_{k} S_k \\ \langle \theta_{k} \rangle = \theta'_k+K_k(z_k-h(\theta'_k)) \\ \Sigma_k = (I-K_k H_k)\Sigma'_k \end{array}\right. Sk=(HkΣkHkT+R)1Kk=ΣkHkTSkθk=θk+Kk(zkh(θk))Σk=(IKkHk)Σk

其中,雅克比矩阵 F k = ∂ f ∂ θ ∣ ⟨ θ k − 1 ⟩ F_k = \frac{\partial f}{\partial \theta}|_{\langle \theta_{k-1} \rangle} Fk=θfθk1

雅克比矩阵 H k = ∂ h ∂ θ ∣ θ k ′ H_k = \frac{\partial h}{\partial \theta}|_{\theta'_k} Hk=θhθk

协方差矩阵 Σ k = ⟨ ( θ k − ⟨ θ k ⟩ ) ( θ k − ⟨ θ k ⟩ ) T ⟩ \Sigma_k = \langle (\theta_k-\langle \theta_k \rangle)(\theta_k-\langle \theta_k \rangle)^T \rangle Σk=(θkθk)(θkθk)T,表示估计值与真实值之间的误差

协方差矩阵 Σ k ′ = ⟨ ( θ k − θ k ′ ) ( θ k − θ k ′ ) T ⟩ \Sigma'_k = \langle (\theta_k-\theta'_k) (\theta_k-\theta'_k)^T \rangle Σk=(θkθk)(θkθk)T,表示预测值与真实值之间的误差

状态转移噪声协方差矩阵 Q = ⟨ s k s k T ⟩ Q = \langle s_k s_k^T\rangle Q=skskT

观测噪声协方差矩阵 R = ⟨ v k v k T ⟩ R = \langle v_k v_k^T\rangle R=vkvkT

K k K_k Kk为卡尔曼增益

具体推导可参考扩展卡尔曼滤波

B.四元数、旋转矩阵、李群李代数等

参考书籍:《视觉SLAM十四讲(第二版)》—— 高翔著

以下定义会在后续会使用到:

  • ( ⋅ ) × (\cdot)^{\times} ()×表示将向量转化成反对称矩阵
  • Ω ( ⋅ ) \Omega(\cdot) Ω()将任意的角速度转化为4 × 4 {\times}4 ×4矩阵,表示相应的四元速率
    Ω : ω ↦ Ω ( ω ) = [ 0 ω z − ω y ω x − ω z 0 ω x ω y ω y − ω x 0 ω z − ω x − ω y − ω z 0 ] \Omega : \omega \mapsto \Omega(\omega) = \begin{bmatrix} 0 & \omega_z & -\omega_y & \omega_x\\ -\omega_z & 0 & \omega_x & \omega_y \\ \omega_y & -\omega_x & 0 & \omega_z \\ -\omega_x & -\omega_y & -\omega_z & 0 \end{bmatrix} Ω:ωΩ(ω)=0ωzωyωxωz0ωxωyωyωx0ωzωxωyωz0
  • ζ ( ⋅ ) \zeta(\cdot) ζ() 将旋转向量的误差转化为四元数误差
    ζ : v ↦ ζ ( v ) = [ s i n ( 1 2 ∣ ∣ v ∣ ∣ ) v ∣ ∣ v ∣ ∣ c o s ( 1 2 ∣ ∣ v ∣ ∣ ) ] \zeta : v \mapsto \zeta(v) = \begin{bmatrix} sin(\frac{1}{2}||v||)\frac{v}{||v||} \\ cos(\frac{1}{2}||v||) \end{bmatrix} ζ:vζ(v)=[sin(21v)vvcos(21v)]

Part 1——Sensor Device and Measurement Models

A. Encoders

增量式编码器提供了所有电机的转动真实角度 α \alpha α,该反馈信息受到 n α n_{\alpha} nα高斯噪声的影响
α ~ = α + n α \tilde{\alpha} = \alpha + n_{\alpha} α~=α+nα
因此由正运动学可知所有足端在 B o d y F r a m e Body Frame BodyFrame( B B B)下的坐标 s i s_i si
s i = l k i n i ( α ) + n s , i s_i = lkin_i(\alpha) + n_{s,i} si=lkini(α)+ns,i
l k i n i ( ⋅ ) lkin_i(\cdot) lkini()表示腿部正运动学模型, n s , i n_{s, i} ns,i表示离散高斯噪声(校准误差与运动学模型误差)
定义—— R α R_{\alpha} Rα n α n_{\alpha} nα的协方差矩阵, R s R_s Rs n i , s n_{i,s} ni,s的协方差矩阵

B. IMU

由Part 1中IMU模型可知

加速度计得到在 B B B下的加速度 f f f,陀螺仪得到在 B B B下的角速度 ω \omega ω

旋转矩阵 C C C表示从世界坐标系 I I I到机器人坐标系 B B B变换

a a a表示 I I I下的加速度

因此可得
f = C ( a − g ) f = C(a-g) f=C(ag) f ~ = f + b f + w f \tilde{f} = f+b_f+w_f f~=f+bf+wf b ˙ f = ω b f \dot b_f = \omega_{bf} b˙f=ωbf ω ~ = ω + b ω + w ω \tilde{\omega} = \omega+b_{\omega}+w_{\omega} ω~=ω+bω+wω b ˙ ω = ω b ω \dot b_{\omega} = \omega_{b\omega} b˙ω=ωbω
其中 f ~ , ω ~ \tilde{f},\tilde{\omega} f~,ω~是受高斯噪声项 ω f , w ω \omega_{f},w_{\omega} ωf,wω和偏置项 b f , b ω b_f,b_{\omega} bf,bω影响得到的测量值,且偏置项的导数可以由高斯噪声 ω b f , ω b ω \omega_{bf},\omega_{b\omega} ωbf,ωbω表示

定义以上四个高斯噪声的协方差矩阵为 Q f , Q b f , Q ω , Q b ω Q_f, Q_{bf},Q_{\omega},Q_{b\omega} Qf,Qbf,Qω,Qbω

Part 2——State Estimate

A.Filter State Definition

Definition:
r r r为在世界坐标系 I I I下,机器人身体中心的位置

v v v为机器人在世界坐标系 I I I下的速度

q q q为世界坐标系 I I I到机器人坐标系 B B B的旋转四元数

p 1 , p 2 , . . . , p N p_1, p_2, ..., p_N p1,p2,...,pN为机器人足端在世界坐标系 I I I下的位置

b f , b ω b_f, b_{\omega} bf,bω为在机器人坐标系 B B B下,IMU的偏置项(可由旋转矩阵转化到世界坐标系 I I I下)

因此我们定义
x : = ( r , v , q , p 1 , . . . , p N , b f , b ω ) x:= (r, v, q, p_1, ..., p_N, b_f, b_{\omega}) x:=(r,v,q,p1,...,pN,bf,bω) P : = c o v ( Δ x ) P:= cov(\Delta x) P:=cov(Δx) Δ x : = ( Δ r , Δ v , Δ q , Δ p 1 , . . . , Δ p N , Δ b f , Δ b ω ) \Delta x := (\Delta r, \Delta v, \Delta q, \Delta p_1, ..., \Delta p_N, \Delta b_f, \Delta b_{\omega}) Δx:=(Δr,Δv,Δq,Δp1,...,ΔpN,Δbf,Δbω)

B.Prediction Model(IMU)

由Part 1中IMU模型可知
r ˙ = v v ˙ = a = C T ( f ~ − b f − ω f ) + g q ˙ = 1 2 Ω ( ω ) q = 1 2 Ω ( ω ~ − b ω − ω ω ) q p i ˙ = C T ω p , i , ∀ i ∈ 1 , . . . , N b f ˙ = ω b f b ω ˙ = ω b ω \begin{aligned} &\dot{r} = v \\ & \dot{v}=a=C^T(\tilde{f}-b_f-\omega_f)+g \\ &\dot{q} = \frac{1}{2}\Omega(\omega) q = \frac{1}{2}\Omega(\tilde{\omega}-b_{\omega}-\omega_{\omega})q \\ & \dot{p_i} = C^T\omega_{p,i},\forall i \in {1, ..., N} \\ & \dot{b_f} = \omega_{bf} \\ & \dot{b_\omega} = \omega_{b\omega} \end{aligned} r˙=vv˙=a=CT(f~bfωf)+gq˙=21Ω(ω)q=21Ω(ω~bωωω)qpi˙=CTωp,i,i1,...,Nbf˙=ωbfbω˙=ωbω
白噪声 ω p , i \omega_{p,i} ωp,i表示足端与地面接触可能产生的微小滑动

Q p , i Q_{p,i} Qp,i ω p , i \omega_{p,i} ωp,i的协方差矩阵,定义如下:
Q p , i : = [ ω p , i , x 0 0 0 ω p , i , y 0 0 0 ω p , i , z ] Q_{p,i} : = \begin{bmatrix} \omega_{p,i,x} & 0 & 0 \\ 0 & \omega_{p,i,y} & 0 \\ 0 & 0 & \omega_{p,i,z} \end{bmatrix} Qp,i:=ωp,i,x000ωp,i,y000ωp,i,z

C.Measurement Model(Encoders)

由Part 1中Encoders模型可知
s i ~ : = l k i n i ( α ~ ) ≈ l k i n i ( α ) + J l k i n , i n α ≈ s i − n s , i + J l k i n , i n α ⏟ n i \tilde{s_i}:=lkin_i(\tilde{\alpha}) \\ \approx lkin_i(\alpha)+J_{lkin,i}n_{\alpha} \\ \approx s_i \underbrace{- n_{s,i}+J_{lkin,i}n_{\alpha}}_{n_{i}} si~:=lkini(α~)lkini(α)+Jlkin,inαsini ns,i+Jlkin,inα
其中,雅克比矩阵 J l k i n , i : = ∂ l k i n i ( α ) ∂ α i J_{lkin,i}:=\frac{\partial lkin_i(\alpha)}{\partial \alpha_i} Jlkin,i:=αilkini(α)
n i n_{i} ni可视为经过线性离散化的噪声,包含编码器噪声和正运动学计算噪声,即观测误差
R i R_i Ri是每一条腿的观测误差协方差矩阵,同时由Part 1.A可知
R i = R s + J l k i n , i R α J l k i n , i T R_i = R_s+J_{lkin,i}R_{\alpha}J_{lkin,i}^T Ri=Rs+Jlkin,iRαJlkin,iT

由定义可知, s i ~ \tilde{s_i} si~可以表示 s i ~ = C ( p i − r ) + n i \tilde{s_i} = C(p_i-r)+n_i si~=C(pir)+ni,即足端坐标与机器人中心坐标(世界坐标系 I I I)的差值乘上旋转矩阵

D.Extended Kalman Filter

将编码器视为观测值, Δ x \Delta x Δx视为真实值,即可建立EKF状态转移方程与观测方程,如下
{ Δ x k = f ( Δ x k − 1 ) + q k s k = h ( Δ x k ) + v k \left\{ \begin{array}{ll} \Delta x_k = f(\Delta x_{k-1})+q_k \\ s_k = h(\Delta x_{k}) + v_k \end{array}\right. {Δxk=f(Δxk1)+qksk=h(Δxk)+vk
Predict:
经过模型线性化处理之后(参考文章Computing integrals involving the matrix exponential),得到关于 Δ x \Delta x Δx的协方差矩阵 F k F_k Fk,以及离散过程噪声的协方差矩阵 Q k Q_k Qk Q k Q_k Qk包含了 Q f , Q b f , Q ω , Q b ω Q_f, Q_{bf},Q_{\omega},Q_{b\omega} Qf,Qbf,Qω,Qbω
两个协方差矩阵 F k , Q k F_k,Q_k Fk,Qk的具体表达式在论文中由展示,在这里便不展示了(会涉及反对称阵,四元数,e指数,罗德里格斯公式等)
因此可以得到
{ Δ ′ x = f ( ⟨ Δ x k − 1 ⟩ ) P k + 1 − = F k P k + F k T + Q k \left\{ \begin{array}{ll} \Delta' x = f(\langle \Delta x_{k-1} \rangle)\\ P^-_{k+1} = F_k P^+_k F_k^T + Q_k \end{array}\right. {Δx=f(Δxk1)Pk+1=FkPk+FkT+Qk

Update:
引入 y k y_k yk,定义如下:
y k : = ( ( s ~ 1 , k − C ^ k − ( p ^ 1 , k − − r ^ k − )                    ⋮ ( s ~ N , k − C ^ k − ( p ^ N , k − − r ^ k − ) ) y_k : = \left(\begin{array}{l} (\tilde{s}_{1,k}-\hat{C}^-_k(\hat{p}^-_{1,k}-\hat{r}^-_k) \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ (\tilde{s}_{N,k}-\hat{C}^-_k(\hat{p}^-_{N,k}-\hat{r}^-_k) \end{array} \right) yk:=(s~1,kC^k(p^1,kr^k)                  (s~N,kC^k(p^N,kr^k)
关于式子 s ~ i , k − C ^ k − ( p ^ i , k − − r ^ k − ) \tilde{s}_{i,k}-\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k) s~i,kC^k(p^i,kr^k),使用泰勒展开,忽略所有的高阶项,得到
s ~ i , k − C ^ k − ( p ^ i , k − − r ^ k − ) ≈ − C ^ k − Δ r k − + C ^ k − Δ p i , k − + ( C ^ k − ( p ^ i , k − − r ^ k − ) ) × Δ ϕ k − \tilde{s}_{i,k}-\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k) \approx -\hat{C}^-_k \Delta r^-_k+\hat{C}^-_k \Delta p^-_{i,k}+(\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k))^{\times}\Delta \phi^-_k s~i,kC^k(p^i,kr^k)C^kΔrk+C^kΔpi,k+(C^k(p^i,kr^k))×Δϕk
证明如下:

定义 ∂ g ( x k ) ∂ x k : = s ~ i , k − C ^ k − ( p ^ i , k − − r ^ k − ) \frac{\partial g( x_k)}{\partial x_k} := \tilde{s}_{i,k}-\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k) xkg(xk):=s~i,kC^k(p^i,kr^k)
∵ ∂ g ( x k ) ∂ x k = − C ^ k − Δ r k − + C ^ k − Δ p i , k − + ( C ^ k − ( p ^ i , k − − r ^ k − ) ) × Δ ϕ k − + G ( Δ v k − ) \because \frac{\partial g( x_k)}{\partial x_k} = -\hat{C}^-_k \Delta r^-_k+\hat{C}^-_k \Delta p^-_{i,k}+(\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k))^{\times}\Delta \phi^-_k+G(\Delta v^-_k) xkg(xk)=C^kΔrk+C^kΔpi,k+(C^k(p^i,kr^k))×Δϕk+G(Δvk)
= − C ^ k − Δ r k − + C ^ k − Δ p i , k − + ( C ^ k − ( p ^ i , k − − r ^ k − ) ) × Δ ϕ k − =-\hat{C}^-_k \Delta r^-_k+\hat{C}^-_k \Delta p^-_{i,k}+(\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k))^{\times}\Delta \phi^-_k =C^kΔrk+C^kΔpi,k+(C^k(p^i,kr^k))×Δϕk
G ( Δ v k − ) G(\Delta v^-_k) G(Δvk)可视为 − C ^ k − Δ r k − -\hat{C}^-_k \Delta r^-_k C^kΔrk的高阶项,因此可以忽略
∴ s ~ i , k − C ^ k − ( p ^ i , k − − r ^ k − ) ≈ − C ^ k − Δ r k − + C ^ k − Δ p i , k − + ( C ^ k − ( p ^ i , k − − r ^ k − ) ) × Δ ϕ k − \therefore \tilde{s}_{i,k}-\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k) \approx -\hat{C}^-_k \Delta r^-_k+\hat{C}^-_k \Delta p^-_{i,k}+(\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k))^{\times}\Delta \phi^-_k s~i,kC^k(p^i,kr^k)C^kΔrk+C^kΔpi,k+(C^k(p^i,kr^k))×Δϕk
因此我们可以得到雅克比矩阵 H k = ∂ y k ∂ x k H_k = \frac{\partial y_k}{\partial x_k} Hk=xkyk
H k = [ − C ^ k − 0 ( C ^ k − ( p ^ 1 , k − − r ^ k − ) ) × C ^ k − ⋯ 0 0 0 ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ − C ^ k − 0 ( C ^ k − ( p ^ N , k − − r ^ k − ) ) × C ^ k − ⋯ 0 0 0 ] H_k = \begin{bmatrix} -\hat{C}^-_k & 0 & (\hat{C}^-_k(\hat{p}^-_{1,k}-\hat{r}^-_k))^{\times} & \hat{C}^-_k & \cdots& 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\ -\hat{C}^-_k & 0 & (\hat{C}^-_k(\hat{p}^-_{N,k}-\hat{r}^-_k))^{\times} & \hat{C}^-_k & \cdots& 0 & 0 & 0 \end{bmatrix} Hk=C^kC^k00(C^k(p^1,kr^k))×(C^k(p^N,kr^k))×C^kC^k000000
由Part 2.C可知, R k R_k Rk观测误差的协方差矩阵
R k = [ R 1 , k ⋱ R N , k ] R_k = \begin{bmatrix} R_{1,k} & &\\ & \ddots \\ & & R_{N,k} \end{bmatrix} Rk=R1,kRN,k
因此我们可以得到EFK的Update等式,如下:
{ S k = ( H k P k − H k T + R k ) K k = P k − H k T S k − 1 ⟨ Δ x k ⟩ = K k y k ( ∗ ) P k + = ( I − K k H k ) P k − \left\{ \begin{array}{ll} S_k = (H_{k} P^-_{k} H_{k}^T+R_k)\\ K_k = P^-_{k} H^T_{k} S^{-1}_k \\ \langle \Delta x_k \rangle = K_k y_k & (*)\\ P^+_{k} = (I-K_k H_k)P^-_k \end{array}\right. Sk=(HkPkHkT+Rk)Kk=PkHkTSk1Δxk=KkykPk+=(IKkHk)Pk()
( ∗ ) (*) ()式证明如下:
⟨ Δ x i , k ⟩ = Δ x i , k ′ + K k ( s ~ i , k − C ^ k − ( p ^ i , k − − r ^ k − ) ) \langle \Delta x_{i,k} \rangle = \Delta x'_{i,k}+K_k(\tilde{s}_{i,k}-\hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k)) Δxi,k=Δxi,k+Kk(s~i,kC^k(p^i,kr^k))
由于 Δ x i , k ′ \Delta x'_{i,k} Δxi,k C ^ k − ( p ^ i , k − − r ^ k − ) \hat{C}^-_k(\hat{p}^-_{i,k}-\hat{r}^-_k) C^k(p^i,kr^k)式等价的
∴ ⟨ Δ x i , k ⟩ = K k y k \therefore \langle \Delta x_{i,k} \rangle = K_k y_k Δxi,k=Kkyk

Part 3——Observability Analysis

A.Nonlinear Model

参考文章Nonlinear controllability and observability

该部分从数学的角度证明了对于该机器人系统来说,有以下几个结论:

  • absolute position和yaw是无法被观测的,但是其他的所有状态都可以被准确估计。
  • 对于任意的非线性地形,只要有至少三条腿与地面接触,就可以准确估计机器人状态。
  • 当机器人与地面没有任何接触时,状态无法估计,收敛效果极差

具体证明过程可参考论文本身,数学部分较为复杂,便不一一阐述

B.Extended Kalman Filter

参考文章Analysis and improvement of the consistency of extended Kalman filter based SLAM

参考文章A counter example to the theory of simultaneous localization and map building

该部分从数学的角度证明了对于该机器人系统的EKF模型来说,有以下结论:

  • 对于无法观测的非线性子空间系统,将其线性离散化之后,依然是无法观测的

Part 4——Conclusion

A.实验结论

  • 对于任意地形和任意步态来说,absolute position和yaw是无法观测的,但是在移动短距离的实验中,误差还是能够控制在10%左右,并非无法衡量。
  • roll、pitch和velocity可以准确观测,可以很好的作为机器人的反馈信息。

(这个实验结果太牛了,必须附上)
MIT Cheetah Learning (一):State Estimate_第1张图片
MIT Cheetah Learning (一):State Estimate_第2张图片

MIT Cheetah Learning (一):State Estimate_第3张图片

B.后续

对于Part 3的证明,还有一些问题没有搞清楚,特别是非线性机器人模型的可观测性这个部分。

后面在搭建好四足机器人平台之后,尝试复现State Estimate。

你可能感兴趣的:(论文学习,MIT,Cheetah学习,算法)