第六篇:行走控制
1. 引言
腿式机器人在复杂地形中行走的能力使其成为探索、救援和军事等领域的重要研究对象。在本篇博文中,我们将探讨腿式机器人行走周期、行走运动公式、零力矩点(ZMP)和模型预测控制(MPC)等相关理论与实践方法。
2. 行走周期
腿式机器人的行走周期可以分为支撑相和摆动相两个主要阶段。在支撑相中,机器人的一只或多只脚与地面接触,支撑整个身体的重量。在摆动相中,抬起的脚移动到下一个支撑点。
-
支撑相:支撑相的主要任务是保持平衡和支持身体重量。该阶段要求机器人能稳定地控制重心,使得零力矩点(ZMP)始终保持在支撑多边形内。
-
摆动相:摆动相的主要任务是将抬起的脚移动到下一个预定的支撑点。这个过程需要考虑行走速度、步幅和避障等因素。
3. 行走运动公式
行走运动可以通过线性倒立摆模型(LIPM)来描述。LIPM 是一个简化模型,它假设机器人身体的质量集中在一个质心上,质心通过一个不可伸缩的杆连接到地面。
x ¨ = g z x x ( t ) = x ( 0 ) cosh ( t T c ) + T c x ˙ ( 0 ) sinh ( t T c ) x ˙ ( t ) = x ( 0 ) T c sinh ( t T c ) + x ˙ ( 0 ) cosh ( t T c ) T c = z g ω c = g z Pendulum Natural Frequency f c = 1 π g z \begin{array}{l} \ddot{\boldsymbol{x}}=\frac{g}{z} \boldsymbol{x} \\ \boldsymbol{x}(t)=\boldsymbol{x}(0) \cosh \left(\frac{t}{T_{c}}\right)+T_{c} \dot{\boldsymbol{x}}(0) \sinh \left(\frac{t}{T_{c}}\right) \\ \dot{\boldsymbol{x}}(t)=\frac{\boldsymbol{x}(0)}{T_{c}} \sinh \left(\frac{t}{T_{c}}\right)+\dot{\boldsymbol{x}}(0) \cosh \left(\frac{t}{T_{c}}\right) \\ T_{c}=\sqrt{\frac{z}{g}} \quad \omega_{c}=\sqrt{\frac{g}{z}} \quad \text { Pendulum Natural Frequency } \\ f_{c}=\frac{1}{\pi} \sqrt{\frac{g}{z}} \end{array} x¨=zgxx(t)=x(0)cosh(Tct)+Tcx˙(0)sinh(Tct)x˙(t)=Tcx(0)sinh(Tct)+x˙(0)cosh(Tct)Tc=gzωc=zg Pendulum Natural Frequency fc=π1zg
在这些公式中:
- x \boldsymbol{x} x 表示质心的位置;
- x ¨ \ddot{\boldsymbol{x}} x¨ 表示质心的加速度;
- g g g 表示重力加速度;
- z z z 表示质心的高度;
- T c T_{c} Tc 表示临界阻尼时间常数;
- ω c \omega_{c} ωc 表示振子的临界角频率;
- f c f_{c} fc 表示振子的临界频率。
这些公式用于描述振子在重力和阻尼作用下的运动轨迹和速度变化。
4. LIPM 行走运动
在LIPM模型中,质心的位置和速度可以通过以下公式计算:
x 1 = x 0 + T c x ˙ 0 2 e Δ t T c + x 0 − T c x ˙ 0 2 e − Δ t T c x ˙ 1 = x 0 + T c x ˙ 0 2 T c e Δ t T c − x 0 − T c x ˙ 0 2 T c e − Δ t T c \begin{array}{l} \boldsymbol{x}_1 = \frac{\boldsymbol{x}_0 + T_{c} \dot{\boldsymbol{x}}_0}{2} e^{\frac{\Delta t}{T_{c}}} + \frac{\boldsymbol{x}_0 - T_{c} \dot{\boldsymbol{x}}_0}{2} e^{-\frac{\Delta t}{T_{c}}} \\ \dot{\boldsymbol{x}}_1 = \frac{\boldsymbol{x}_0 + T_{c} \dot{\boldsymbol{x}}_0}{2 T_{c}} e^{\frac{\Delta t}{T_{c}}} - \frac{\boldsymbol{x}_0 - T_{c} \dot{\boldsymbol{x}}_0}{2 T_{c}} e^{-\frac{\Delta t}{T_{c}}} \end{array} x1=2x0+Tcx˙0eTcΔt+2x0−Tcx˙0e−TcΔtx˙1=2Tcx0+Tcx˙0eTcΔt−2Tcx0−Tcx˙0e−TcΔt
这些公式可以用于预测质心在时间间隔 Δ t \Delta t Δt 内的位置和速度变化。
5. 基于ZMP的行走运动
零力矩点(ZMP)是保持机器人稳定的重要参数。ZMP 是地面反作用力矩为零的点。在行走过程中,控制ZMP 使其保持在支撑多边形内,可以确保机器人的平衡。
p x = − τ y − f x d f z p y = τ x − f y d f z p = [ p x p y 0 ] \begin{aligned} \boldsymbol{p}_{x} & =\frac{-\boldsymbol{\tau}_{y}-\boldsymbol{f}_{x} d}{\boldsymbol{f}_{z}} \\ \boldsymbol{p}_{y} & =\frac{\boldsymbol{\tau}_{x}-\boldsymbol{f}_{y} d}{\boldsymbol{f}_{z}} \\ \boldsymbol{p} & =\left[\begin{array}{c} \boldsymbol{p}_{x} \\ \boldsymbol{p}_{y} \\ 0 \end{array}\right] \end{aligned} pxpyp=fz−τy−fxd=fzτx−fyd= pxpy0
通过测量踝关节的力矩和力,可以计算出ZMP 的位置。这些公式用于评估脚底位置和平衡状态。
6. 基于模型预测控制的行走
模型预测控制(MPC)是一种基于优化的控制方法,通过预测未来的系统行为来生成控制输入。
u k = − K x k + [ f 1 , f 2 , ⋯ f N ] [ p k + 1 r e f ⋮ p k + N r e f ] K = ( R + b T P b ) − 1 b T P A f i = ( R + b T P b ) − 1 b T ( A − b K ) T ∗ ( i − 1 ) c T Q P = A T P A + c T Q c − A T P b ( R + b T P b ) − 1 b T P A \begin{aligned} u_{k} & =-\boldsymbol{K} x_{k}+\left[f_{1}, f_{2}, \cdots f_{N}\right]\left[\begin{array}{c} p_{k+1}^{r e f} \\ \vdots \\ p_{k+N}^{r e f} \end{array}\right] \\ \boldsymbol{K} & =\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{A} \\ f_{i} & =\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T}(\boldsymbol{A}-\boldsymbol{b} \boldsymbol{K})^{T *(i-1)} \boldsymbol{c}^{T} Q \\ \boldsymbol{P} & =\boldsymbol{A}^{T} \boldsymbol{P} \boldsymbol{A}+\boldsymbol{c}^{T} Q \boldsymbol{c}-\boldsymbol{A}^{T} \boldsymbol{P} \boldsymbol{b}\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{A} \end{aligned} ukKfiP=−Kxk+[f1,f2,⋯fN] pk+1ref⋮pk+Nref =(R+bTPb)−1bTPA=(R+bTPb)−1bT(A−bK)T∗(i−1)cTQ=ATPA+cTQc−ATPb(R+bTPb)−1bTPA
这些公式用于计算控制器的控制输入 u k u_{k} uk,使得系统在最小化性能指标的同时实现对参考输出的跟踪和控制要求的满足。
7. 基于DCM的行走
捕获点(Capture Point, CP)和发散运动分量(Divergent Component of Motion, DCM)是行走模式生成中的关键概念。捕获点是机器人可以迈步到达以实现停止的位置。
ξ = x + x ˙ ω ξ ˙ = x ˙ + x ¨ ω ξ ˙ = ω ( ξ − p ) x ˙ = − ω ( x − ξ ) \begin{aligned} \boldsymbol{\xi} & = \boldsymbol{x} + \frac{\dot{\boldsymbol{x}}}{\omega} \\ \dot{\boldsymbol{\xi}} & = \dot{\boldsymbol{x}} + \frac{\ddot{\boldsymbol{x}}}{\omega} \\ \dot{\boldsymbol{\xi}} & = \omega(\boldsymbol{\xi} - \mathbf{p}) \\ \dot{\boldsymbol{x}} & = -\omega(\boldsymbol{x} - \boldsymbol{\xi}) \end{aligned} ξξ˙ξ˙x˙=x+ωx˙=x˙+ωx¨=ω(ξ−p)=−ω(x−ξ)
这些公式描述了捕获点和DCM的关系,通过控制捕获点可以实现稳定的行走模式。
8. 脚步运动
脚步运动规划是行走控制的重要组成部分。一个完整的脚步运动规划包括摆动相的抬脚、摆动和落脚。在摆动相中,需要精确控制脚的轨迹和速度,以确保机器人能够在不同地形上稳定行走。
脚步轨迹规划
脚步轨迹通常通过预先定义的路径来实现,可以使用多项式插值、样条曲线或贝塞尔曲线等方法来生成平滑的脚步轨迹。
摆动相控制
在摆动相中,需要控制脚的速度和加速度,以确保脚步的平滑过渡和准确落脚。可以使用模型预测控制(MPC)或基于逆运动学的方法来实现这一目标。
支撑相控制
在支撑相中,主要任务是保持平衡和支撑身体重量。通过控制零力矩点(ZMP)的位置,使其始终保持在支撑多边形内,可以确保机器人的平衡。