• 说明:本文章用于记录四足相关论文的公式理解,由于本人能力有限,公式的理解来自对论文内容的研读,网上的相关文章以及个人猜测的结合,不准确之处欢迎各位批评指正,本文也会不断更新。欢迎与我联系:2250017028@qq.com

《MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot》

1.支撑腿控制器

(1)基于集中质量模型(lumped model)的平衡控制器(Balance Controller)

i.将机器人看作单刚体模型的机器人运动方程:
[ I 3 … I 3 [ p 1 p c ] × … [ p 4 p c ] × ] ⏟ A F = [ m ( p ¨ c + g ) I G ω b ˙ ] ⏟ b \underbrace{\begin{bmatrix} I_3 &\dots & I_3 \\ [p_1 p_c]\times &\dots &[p_4 p_c]\times \end{bmatrix}}_{A} F=\underbrace{\begin{bmatrix} m(\ddot{p}_c+g )\\ I_G\dot{\omega _b} \end{bmatrix}}_b A [I3​[p1​pc​]×​……​I3​[p4​pc​]×​]​​F=b [m(p¨​c​+g)IG​ωb​˙​​]​​

使用了基本的牛顿运动定律

  • 合力 = ma
  • 合力矩 = 惯量*角加速度

ii.使用PD控制律计算质心加速度和角加速度
[ p ¨ c , d ω ˙ b , d ] = [ K p , p ( p c , d − p c ) + K d , p ( p ˙ c , d − p ˙ c ) K p , ω log ⁡ ( R d R T ) + K d , ω ( ω b , d − ω ) ] \left[\begin{array}{c} \ddot{\boldsymbol{p}}_{c, d} \\ \dot{\boldsymbol{\omega}}_{b, d} \end{array}\right]=\left[\begin{array}{c} \boldsymbol{K}_{p, p}\left(\boldsymbol{p}_{c, d}-\boldsymbol{p}_{c}\right)+\boldsymbol{K}_{d, p}\left(\dot{\boldsymbol{p}}_{c, d}-\dot{\boldsymbol{p}}_{c}\right) \\ \boldsymbol{K}_{p, \omega} \log \left(\boldsymbol{R}_{d} \boldsymbol{R}^{T}\right)+\boldsymbol{K}_{d, \omega}\left(\boldsymbol{\omega}_{b, d}-\boldsymbol{\omega}\right) \end{array}\right] [p¨​c,d​ω˙b,d​​]=[Kp,p​(pc,d​−pc​)+Kd,p​(p˙​c,d​−p˙​c​)Kp,ω​log(Rd​RT)+Kd,ω​(ωb,d​−ω)​]
目标:得到最优的控制力F,使质心趋于理想的质心动力学状态
b d = [ m ( p ¨ c , d + g ) I G ω ˙ b , d ] \boldsymbol{b_d} = \begin{bmatrix} m(\ddot{\boldsymbol{p}}_{c,d}+\boldsymbol{g})\\ \boldsymbol{I_G}\dot{\boldsymbol{\omega}}_{b,d} \end{bmatrix} bd​=[m(p¨​c,d​+g)IG​ω˙b,d​​]
由于机器人运动方程为线性的,可以将该优化问题转为QP问题
F ∗ = min ⁡ F ∈ R 12 ( A F − b d ) T S ( A F − b d ) + α ∣ ∣ F ∣ ∣ 2 + β ∣ ∣ F − F p r e v ∣ ∣ 2 s . t . C F ≤ d \boldsymbol{F^*}=\min_{F\in R^{12}} \quad (AF-b_d)^TS(AF-b_d)+\alpha ||F||^2+\beta || F-F_{prev}||^2\\ s.t. \quad CF\le d F∗=F∈R12min​(AF−bd​)TS(AF−bd​)+α∣∣F∣∣2+β∣∣F−Fprev​∣∣2s.t.CF≤d
意义:

  • ( A F − b d ) T S ( A F − b d ) (AF-b_d)^TS(AF-b_d) (AF−bd​)TS(AF−bd​) ----使质心状态符合期望,S矩阵表示控制中旋转和位移的优先级。
  • ∣ ∣ F ∣ ∣ 2 ||F||^2 ∣∣F∣∣2 ----作用力最小化
  • ∣ ∣ F − F p r e v ∣ ∣ 2 ||F-F_{prev}||^2 ∣∣F−Fprev​∣∣2 ---- F p r e v F_{prev} Fprev​表示迭代中上一次的作用力,目标是限制住两次迭代的解的差值。
  • α , β > 0 \alpha,\beta>0 α,β>0 ----规定了解的标准化,以及对解进行了一定的过滤作用。
  • C F ≤ d CF\le d CF≤d ----具体内容未知,目的是为了保证解在可行域内。

(2)MPC控制器(Model Predictive Control)

J = ∑ i = 0 k ( x i − x i r e f ) T Q i ( x i − x i r e f ) + u i T R i u i J=\sum_{i=0}^{k}(x_i-x_i^{ref})^TQ_i(x_i-x_i^{ref})+u_i^TR_iu_i J=i=0∑k​(xi​−xiref​)TQi​(xi​−xiref​)+uiT​Ri​ui​
目标:不断更新 u i u_i ui​输入到控制系统,使上述代价函数最小化。

  • 更新频率f:论文中给的是优化解以30Hz的频率输入到控制器
  • 求解过程:论文指出,需要将MPC问题转化为QP问题进行求解。
    MPC控制器的具体内容可以参考我的学习笔记:MPC学习笔记

2. 摆动腿控制器

(1)落足点计算

p s t e p , i = p h , i + T c ϕ 2 p ˙ c , d ⏟ R a i b e r t H e u r i s t i c + z 0 ∣ ∣ g ∣ ∣ ( p ˙ c − p ˙ c , d ) ⏟ C a p t u r e P o i n t p_{step,i}=p_{h,i}+\underbrace{\frac{T_{c_\phi}}{2}{\dot{p}}_{c,d}}_{Raibert \ Heuristic}+\underbrace{\sqrt{\frac{z_0}{||g||}}({\dot{p}}_c-{\dot{p}}_{c,d})}_{Capture \ Point} pstep,i​=ph,i​+Raibert Heuristic 2Tcϕ​​​p˙​c,d​​​+Capture Point ∣∣g∣∣z0​​ ​(p˙​c​−p˙​c,d​)​​
T c ϕ 2 p ˙ c , d \frac{T_{c_\phi}}{2}{\dot{p}}_{c,d} 2Tcϕ​​​p˙​c,d​ ----根据《Legged robots that balance》中的描述,足端按照该公式确定的落足点,会使运动为对称运动,加速度为0

z 0 ∣ ∣ g ∣ ∣ ( p ˙ c − p ˙ c , d ) \sqrt{\frac{z_0}{||g||}}({\dot{p}}_c-{\dot{p}}_{c,d}) ∣∣g∣∣z0​​ ​(p˙​c​−p˙​c,d​) ----根据《Capture point: A step toward humanoid push recovery》中的描述,目标就是让落脚点趋近capture point,在该点腿部会获得平衡。

T c φ T_{c_\varphi} Tcφ​​ ----理想状态下的stance态持续时间
z 0 z_0 z0​ ----目标位置点的高度
p h , i p_{h,i} ph,i​----腿i对应髋关节电机hip的位置

(2)摆动轨迹计算–PD控制器+前馈控制

i.前馈力矩的计算
τ f f , i = J i ⊤ Λ i ( B a i , ref  − J ˙ i q ˙ i ) + C i q ˙ i + G i \tau_{\mathrm{ff}, i}=\boldsymbol{J}_{i}^{\top} \boldsymbol{\Lambda}_{i}\left({ }^{\mathfrak{B}} \boldsymbol{a}_{i, \text { ref }}-\dot{\boldsymbol{J}}_{i} \dot{\boldsymbol{q}}_{i}\right)+\boldsymbol{C}_{i} \dot{\boldsymbol{q}}_{i}+\boldsymbol{G}_{i} τff,i​=Ji⊤​Λi​(Bai, ref ​−J˙i​q˙​i​)+Ci​q˙​i​+Gi​
J i J_i Ji​ ----足部的雅可比矩阵
Λ i \Lambda _i Λi​ ----操作空间的惯性矩阵
B a i , r e f ^\mathfrak{B}a_{i,ref} Bai,ref​ ----参考加速度
q i q_i qi​ ----关节结构的向量
C i C_i Ci​ ----科里奥利矩阵
G i G_i Gi​ -----重力矩

ii.轨迹跟随控制器
τ i = J i ⊤ [ K p ( B p i , ref  − B p i ) + K d ( B v i , r e f − B v i ) ] + τ f f , i \boldsymbol{\tau}_{i}=\boldsymbol{J}_{i}^{\top}\left[\boldsymbol{K}_{p}\left({ }^{\mathfrak{B}} \boldsymbol{p}_{i, \text { ref }}-{ }^{\mathfrak{B}} \boldsymbol{p}_{i}\right)+\boldsymbol{K}_{d}\left({ }^{\mathfrak{B}} \boldsymbol{v}_{i, \mathrm{ref}}-{^\mathfrak{B}} \boldsymbol{v}_{i}\right)\right]+\boldsymbol{\tau}_{\mathrm{ff}, i} τi​=Ji⊤​[Kp​(Bpi, ref ​−Bpi​)+Kd​(Bvi,ref​−Bvi​)]+τff,i​

  • 控制频率f:4.5kHz

为了使PD控制器保持稳定,需要对增益 K p K_{p} Kp​作如下处理
K p , j = ω d e s 2 Λ j j ( q ) K_{p,j}=\omega_{des}^2\Lambda_{jj}(q) Kp,j​=ωdes2​Λjj​(q)

  • K p , j K_{p,j} Kp,j​ ---- K p K_p Kp​中的第j个对角项。
  • ω d e s \omega_{des} ωdes​ ----目标自然频率
  • Λ j j \Lambda_{jj} Λjj​ ----第j个对角项在操作空间的惯性矩阵

3.虚拟预测支持多边形(Virtual Predictive Support Polygon)

i. 计算每条腿权重因子

(1)虚拟支持多边形:提供各种步态下的质心位置点
(2)定义每条腿对预测多边形的贡献度(分相位进行):指出哪条腿该抬起或触地,以及状态切换的时间
K c ϕ = 1 2 [ erf ⁡ ( ϕ σ c 0 2 ) + erf ⁡ ( 1 − ϕ σ c 1 2 ) ] K c ˉ ϕ = 1 2 [ 2 + erf ⁡ ( − ϕ σ c ˉ 0 2 ) + erf ⁡ ( ϕ − 1 σ c ˉ 1 2 ) ] Φ = s ϕ K c ϕ + s ˉ ϕ K c ˉ ϕ \begin{array}{r} K_{c_{\phi}}=\frac{1}{2}\left[\operatorname{erf}\left(\frac{\phi}{\sigma_{c_{0}} \sqrt{2}}\right)+\operatorname{erf}\left(\frac{1-\phi}{\sigma_{c_{1}} \sqrt{2}}\right)\right] \\\\ K_{\bar{c}_{\phi}}=\frac{1}{2}\left[2+\operatorname{erf}\left(\frac{-\phi}{\sigma_{\bar{c}_{0}} \sqrt{2}}\right)+\operatorname{erf}\left(\frac{\phi-1}{\sigma_{\bar{c}_{1}} \sqrt{2}}\right)\right] \\\\ \Phi=s_{\phi} K_{c_{\phi}}+\bar{s}_{\phi} K_{\bar{c}_{\phi}} \end{array} Kcϕ​​=21​[erf(σc0​​2 ​ϕ​)+erf(σc1​​2 ​1−ϕ​)]Kcˉϕ​​=21​[2+erf(σcˉ0​​2 ​−ϕ​)+erf(σcˉ1​​2 ​ϕ−1​)]Φ=sϕ​Kcϕ​​+sˉϕ​Kcˉϕ​​​
e r f ( x ) erf(x) erf(x) ---- 高斯误差函数
K c ϕ , K c ˉ ϕ K_{c_{\phi}},K_{\bar{c}_{\phi}} Kcϕ​​,Kcˉϕ​​ ----支撑相和摆动相的权重因子
Φ \Phi Φ ----该腿总的权重因子
含义:支撑态下,某腿离中心越近,越可作为支撑点,摆动态下,某腿离中心越近,越不可用于平衡

ii.计算每条腿的虚拟点

[ ξ i − ξ i + ] = [ p i p i − p i p i + ] [ Φ i 1 − Φ i ] \left[\begin{array}{c} \boldsymbol{\xi}_{i}^{-} \\ \boldsymbol{\xi}_{i}^{+} \end{array}\right]=\left[\begin{array}{ll} \boldsymbol{p}_{i} & \boldsymbol{p}_{i^{-}} \\ \boldsymbol{p}_{i} & \boldsymbol{p}_{i^{+}} \end{array}\right]\left[\begin{array}{c} \Phi_{i} \\ 1-\Phi_{i} \end{array}\right] [ξi−​ξi+​​]=[pi​pi​​pi−​pi+​​][Φi​1−Φi​​]

  • 上标为正表示逆时针,上标为负表示顺时针

iii.计算每条腿的预测多边形顶点

ξ i = Φ i p i + Φ i ξ i − + Φ i + ξ i + Φ i + Φ i − + Φ i + \boldsymbol{\xi}_{i}=\frac{\Phi_{i} \boldsymbol{p}_{i}+\Phi_{i} \boldsymbol{\xi}_{i}^{-}+\Phi_{i+} \boldsymbol{\xi}_{i}^{+}}{\Phi_{i}+\Phi_{i^{-}}+\Phi_{i^{+}}} ξi​=Φi​+Φi−​+Φi+​Φi​pi​+Φi​ξi−​+Φi+​ξi+​​

iv.计算期望质心位置

p ^ C o M , d = 1 N ∑ i = 1 N ξ i \hat{\boldsymbol{p}}_{C o M, d}=\frac{1}{N} \sum_{i=1}^{N} \boldsymbol{\xi}_{i} p^​CoM,d​=N1​i=1∑N​ξi​

4.倾斜地形下的姿态调整

含义:表示一个平面,即四足机器人当前位于的平面
z ( x , y ) = a 0 + a 1 x + a 2 y z(x, y)=a_{0}+a_{1} x+a_{2} y z(x,y)=a0​+a1​x+a2​y
含义:根据当前机器人的状态去得到一个平面,即a={ a 0 , a 1 , a 2 a_0,a_1,a_2 a0​,a1​,a2​}
a = ( W T W ) † W T p z W = [ 1 p x p y ] 4 × 3 \begin{aligned} \boldsymbol{a} &=\left(\boldsymbol{W}^{T} \boldsymbol{W}\right)^{\dagger} \boldsymbol{W}^{T} \boldsymbol{p}^{z} \\ \boldsymbol{W} &=\left[\begin{array}{lll} \mathbf{1} & \boldsymbol{p}^{x} & \boldsymbol{p}^{y} \end{array}\right]_{4 \times 3} \end{aligned} aW​=(WTW)†WTpz=[1​px​py​]4×3​​

  • p x , p y , p z \boldsymbol{p^x},\boldsymbol{p^y},\boldsymbol{p^z} px,py,pz ----包括了机器人每条腿的状态,比如 p x = ( p 1 x , p 2 x , p 3 x , p 4 x ) \boldsymbol{p^x} = (p_1^x,p_2^x,p_3^x,p_4^x) px=(p1x​,p2x​,p3x​,p4x​)

5.状态估计

使用的是卡尔曼滤波拓展卡尔曼滤波,这里不作赘述。


《Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control》

1.混合控制器

目标:将位置控制拆分成两个简单的控制器来进行控制

(1)MPC控制器

m p ¨ = ∑ i = 1 n c f i − c g , d d t ( I ω ) = ∑ i = 1 n c r i × f i \begin{array}{l} m \ddot{\mathbf{p}}=\sum_{i=1}^{n_{c}} \mathbf{f}_{i}-\mathbf{c}_{g}, \\\\ \frac{d}{d t}(\boldsymbol{I} \boldsymbol{\omega})=\sum_{i=1}^{n_{c}} \mathbf{r}_{i} \times \mathbf{f}_{i} \end{array} mp¨​=∑i=1nc​​fi​−cg​,dtd​(Iω)=∑i=1nc​​ri​×fi​​

  • 与上面平衡控制器类似,对象都是集中质量模型,不过这里是用MPC来寻找优化的控制力。

(2)WBIC控制器(Whole-Body Impulse Control)

A ( q ¨ f q ¨ j ) + b + g = ( 0 6 τ ) + J c ⊤ f r \boldsymbol{A}\left(\begin{array}{c} \ddot{\mathbf{q}}_{f} \\ \ddot{\mathbf{q}}_{j} \end{array}\right)+\mathbf{b}+\mathbf{g}=\left(\begin{array}{c} \mathbf{0}_{6} \\ \boldsymbol{\tau} \end{array}\right)+\boldsymbol{J}_{c}^{\top} \mathbf{f}_{r} A(q¨​f​q¨​j​​)+b+g=(06​τ​)+Jc⊤​fr​
A A A ----质量(惯性)矩阵
b b b ----科里奥利力
g g g ----重力
τ \tau τ ----关节扭矩
f r f_r fr​ ----增广的作用力
J c J_c Jc​ ----触地点的雅可比矩阵

迭代公式的理解

参考手推WBC公式

持续更新…

四足控制中的公式理解相关推荐

  1. 距离保护整定计算中分支系数公式理解

    在一般的距离保护II段和III段的整定计算中,分支系数的计算是必须要的,本文选自电力系统继电保护(第二版)(张保会老师主编)P94-P97页的例题,分析其中分支系数的计算公式. 我们在前面的章节中知道 ...

  2. 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!

    四足机器人|机器狗|仿生机器人|多足机器人|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!QQ:1096474659 基于CPG的四 ...

  3. 四足动物模型控制中的模型自适应神经网络

    四足动物模型控制中的模型自适应神经网络 (Mode-Adaptive Neural Networks for Quadruped Motion Control) 四足动物模型拥有不同的步态,比如行走, ...

  4. MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制

    在"MIT四足机器人Cheetah 3控制方案理解笔记(1)"中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器.此外, ...

  5. MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器

    之前一段时间在阅读MIT四足机器人Cheetah 3以及Mini Cheetah控制方案的相关论文,在此处做一些笔记.Cheetah 3与Mini Cheetah的控制方案大同小异,此处先以Cheet ...

  6. 【转载】MIT四足机器人Cheetah 3控制方案笔记

    转载:知乎 Wenboxing https://zhuanlan.zhihu.com/p/190028074 这里写自定义目录标题 MIT四足机器人Cheetah 3控制方案理解笔记(1)--摆动腿控 ...

  7. 【机器人学、机器人控视觉与控制】四足机器人MATLAB仿真

    文章目录 [机器人学.机器人控视觉与控制]四足机器人MATLAB仿真 1 创建一条机器人腿 2 单腿运动 3 四腿运动 [机器人学.机器人控视觉与控制]四足机器人MATLAB仿真 我们的目标是创建一个 ...

  8. 动作捕捉技术在四足仿生机器人研究中的应用

    轮式/履带式移动机器人可以胜任很多场景的探索.运输的任务,但是随着应用空间的拓展,需要机器人在山地.峭壁.丛林.雪地等崎岖复杂的地形的任务也逐渐增多,轮式/履带式机器人难以在这类地形中移动.自然界中动 ...

  9. 【灯哥开源四足机器人】推荐一个开源四足机器狗项目,8自有度,两个舵机控制一个腿,apache开源协议的,已经迭代了好多个版本了,设计的非常好。有官方淘宝店,没有3D打印机的可以购买散装零件自己组装

    目录 前言 1,关于[灯哥开源四足机器人] 2,使用py-apple 3,总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/detail ...

最新文章

  1. android蓝牙4.0(BLE)开发之ibeacon初步
  2. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客
  3. 现代操作系统: 第四章 文件系统
  4. Bzoj3998 弦论
  5. HTML MarkDown编辑器实现
  6. 广谱感应水处理器与缠绕式电子水处理器的区别
  7. 【FPGA】DS18B20数字温度传感器实验
  8. 共享单车涉足区块链前景待考
  9. 中关村GHOSTXPSP3纯净装机自选CD版V2010.02(FAT32/NTFS) 首款整合“极光”漏洞补丁
  10. os.listdir('.')
  11. 【windows11 技巧】win11如何关闭你要以何方式打开此文件
  12. win10重置进度条不动了_win10重置卡在100%不动没反应怎么办
  13. android 9.0 Settings系统默认字体大小的修改
  14. CenterOS下安装docker
  15. 数据结构笔记(王道考研) 第一章:绪论
  16. 来自520的福利----视频直播平台性能测试
  17. 二叉查找树(5) - 判断一棵二叉树是否为BST
  18. 二叉树的层次遍历(图解、思想、与实现)
  19. I2S音频总线学习(一)数字音频技术
  20. 实例讲解电源高频变压器的设计方法

热门文章

  1. vue前端移动项目调用微信扫一扫的实现
  2. 最好、最坏、平均、均摊时间复杂度分析
  3. 测试相关--一些常见的测试思想
  4. Unity 文本颜色描边性能优化方案
  5. 漫谈程序员(二十)炉石传说罕见数据库事故!丢失30%数据,疑似误操作?
  6. 一星级挑战:09 打渔还是晒网
  7. 逻辑思维/(美)理查德·尼斯贝特——拥有智慧思考的工具
  8. 启动mysql数据库是红色_Mysql无法启动
  9. 无人机视频影像几何校正
  10. 海之城科技公司-考试题