本文仅供学习使用
本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)
提供,感谢他们为本文英文版翻译所做的贡献(但有些部分阅读起来仍有困难),若有改进之处欢迎共同讨论!
平面跳跃机器人Ch02
- 问题引入:想象一个小球(具有弹性)自由落地,能量与状态会发生什么样的变化?
球在重力加速度的作用下掉落,直到与地面的弹性碰撞将其方向反转,使球向上运动,再次受到重力的作用而加速。在碰撞过程中,球首先变形以吸收动能,然后在恢复原始形状时返回动能。交换损耗了一部分能量。总体弹跳会在弹球腾空阶段和弹性碰撞之间交替,直到球的能量完全消散为止。 - 若小球具有一定的初速度水平抛出,能量与状态的变化会与问题1有什么不同?
若地面无摩擦:小球在竖直方向的投影运动与问题1一致,而水平方向会保持一个恒定的速度(初速度)前进,而由于竖直方向由于碰撞会使得高度方向的位移最终为0,而水平方向没有受到外力作用,因此会一直保持匀速匀速前行,即最终能量为小球的初始动能,而势能在碰撞过程中损耗掉;
若地面存在摩擦,则水平方向上同样受到力(摩擦力)的作用,每一次与地面接触时,都会有一部分的动能转换成小球的转动,而转动的小球在与地面接触时,由于弹性与摩擦的作用减小转动的能量;若小球放置的位置足够高,而初始速度又足够小,每次碰撞的转动损耗又足够大——不难想象出其在某个时间上与问题1一致;而若小球放置的位置较低,而初始速度又比较大,则最终将变成在地面上的滚动状态,直至停止——可以想想高尔夫球打如果岭,或者足球的长传。 - 如何让上述的两个小球可以一直运动呢?
弹性存储和能量回收对于袋鼠跳跃的效率特别重要,比弹跳效率更重要的是弹跳可以使运动周期的控制变得简单。跳行运动可以依靠被动弹跳振荡来生成详细的运动模式,而控制系统则可以激发振荡并调节其振幅。运动系统除了像球一样弹跳外,还像倒立摆一样倾倒。倒立摆有一个在支点上旋转的质量。当质量直接位于支撑点上方时,没有倾覆力矩,因此系统处于平衡状态。但是,质量在支撑点正上方的任何小位移都会产生倾覆力矩,从而使立摆进一步远离平衡状态。而平衡点可能并不稳定。控制系统可以通过响应倾覆运动来回移动支撑点来为倒立摆提供平衡。实际上,平衡的倒立摆始终处于倾覆状态,但是控制系统通过确保一个方向上的每个倾覆运动都被另一方向上的相等且相反的倾覆运动所平衡,从而使其完全不倾覆。
有多种因素使足式机器人系统的调节过程变得复杂。例如,腿在身体上工作时通常会改变长度(此处可以理解为质心与支撑点的距离),因此质量与支撑点之间的距离会发生变化。而且,腿的末端通常由足部结构支撑(通常会很大),这会导致倾斜期间瞬时支撑点发生移动。而且一个运行的系统只有在腾空中腿部卸载时才能移动轴心点。——将控制任务分解为三个独立的部分,分别控制跳跃,前进和姿态。这种由三部分组成的控制系统允许单腿机器人跳到适当的位置,以所需的速度运行,从一个地方移动到另一个地方,在受到机械干扰时保持其平衡,并越过小障碍物。
1. 平面跳跃单腿机器人的结构
平面单腿跳跃机器人由机体与腿部机构组成:机体为阀、电子设备和传感器,并具有加重梁以增加惯性矩;腿部是一个相对于身体转动的气缸,一端带有软垫脚,由压缩空气驱动,四个开关电磁阀控制进/出支腿气缸的气流。他们可以将空气滞留在腿部气缸中,使其起到弹簧的作用。一对气动执行元件在腿部和身体之间施加扭矩。这些执行器由比例压力控制伺服阀提供动力。安装在机器上的传感器可测量腿的长度,髋关节的角度,脚与地面之间的接触以及腿部气压缸中的压力。
系链机构(tether mechanism)
仅以三个自由度约束机器运动;它可以前后移动、上下移动,也可以绕俯仰轴旋转。系链防止机器人横向平移,侧倾旋转和偏航旋转。机器会在以系链轴为中心的大球体表面上移动。
没理解
在较早的实验中,该机器受到空气轴承的约束,使其漂浮在倾斜的工作台上,从而使其运动真正成为平面运动
随着腿的长度变化,钢索也使脚与球形枢轴的距离几乎保持恒定,从而最大限度地减少径向摩擦
- 身体和腿部通过形成髋关节的铰链连接。比例气压控制阀驱动一对气缸,该气缸在髋关节上施加扭矩。电位计测量身体和腿部之间的角度,髋关节角度γ。控制计算机通过简单的线性伺服来控制髋关节角度:
τ = − k p ( γ − γ d ) − k v ( γ ˙ ) \tau =-{{k}_{p}}(\gamma -{{\gamma }_{d}})-{{k}_{v}}(\dot{\gamma }) τ=−kp(γ−γd)−kv(γ˙)
其中:
τ \tau τ:在髋关节产生的驱动扭矩
γ \gamma γ:髋关节角度
γ d {{\gamma }_{d}} γd:所需的髋关节角度
k p {{k}_{p}} kp、 k v {{k}_{v}} kv:是位置和速度反馈增益。参考值为: { k p = 47 N ⋅ m / r a d k v = 1.26 N ⋅ m ⋅ s / r a d \left\{ \begin{matrix} {{k}_{p}}=47N\cdot m/rad \\ {{k}_{v}}=1.26N\cdot m\cdot s/rad \\ \end{matrix} \right. {kp=47N⋅m/radkv=1.26N⋅m⋅s/rad
1.1 单腿结构
腿部由一个双作用气缸组成,航空电线,滑轮和电位计组成的 Rube Goldberg装置提供了腿长r,从臀部(hip 前文也称髋关节)到脚的距离的测量
(没理解Rube Goldberg装置)。
阀门通过限流孔将腿部气缸的每个腔室连接到大气压,或者将其连接到90 psi的调节气源。传感器监控两个腔室中的气压。将压缩空气输送到气缸顶腔,推动活塞和连杆总成向下运动,为弹跳提供垂直推力。在两个电磁阀均关闭的情况下,通过将空气储存在腿部气缸的上腔中来使腿部具有弹性。可以通过以下方式调节腔室内的气压:将其充入高于所需值的压力,然后通过节流孔将空气排出,直到达到所需压力,然后关闭排气阀。电磁阀在大约10毫秒内运行,从而将压力调节到大约1 psi。当腿在负载时变短,滞留的空气会压缩,就像1/r弹簧一样。弹簧的有效刚度由腔室内的静压力决定。压力传感器(未显示)测量两个腔室中的气压。
1.2 机器的操作
参数 | 公制单位 |
---|---|
总高 | 0.69m |
总宽 | 0.97m |
髋关节高度 | 0.5m |
总质量 | 8.6kg |
无弹簧腿质量 | 0.45kg |
身体质量/无弹簧腿质量 | 18:1 |
身体惯性矩 | 0.52kg·m² |
腿部惯性矩 | 0.037kg·m² |
身体惯性矩/腿部惯性矩 | 14:1 |
腿部轴向运动 | |
行程 | 0.25m |
静态力 | 360N@620kPa |
腿部摆动运动 | |
摆动角度 | ±0.33rad |
静转矩 | 37N·m@620kPa |
每当脚撞击地面和每一次脚离开地面时, m l m l + m \frac{{{m}_{l}}}{{{m}_{l}}+m} ml+mml的跳跃能量就会丢失。假定脚与地面之间的碰撞以及活塞与腿部液压缸的碰撞是塑性的,恢复系数为零。
- 在此跳跃周期中,为了方便研究,定义四个名词以命名跳行循环的四个时刻:
离地(Lift-off)
:脚失去与地面的接触的那一刻。
最高点(Top)
:身体处于最高高度和从上到下垂直运动的腾空时刻。
触地(Touchdown)
:足端接触地面的那一刻。
最低点(Bottom)
:姿态时身体处于最低高度且垂直速度从下到上变化的时刻。
2. 运动控制分解三部曲
本文研究的平面单腿机器人控制系统将跳跃、前进速度和身体姿态作为三个独立的控制问题。控制的第一部分通过调整腿部推力,激励跳行运动并调整振幅
。控制的第二部分在站立姿态时,通过将腿前伸到某一特定位置以提供加速度,稳定前行速度
。控制的第三部分通过对髋关节(hip)的伺服控制,使身体在站立时保持直立状态
。控制系统的这三个部分的控制工作由一个有限状态机(Finite state machine)
进行控制。这样,单腿的运动控制就变成了一个弱耦合(a weak coupling)
问题。
2.1 跳行高度的控制
为了使足式机器人系统能够运作并向前移动,每条腿必须花一些时间来支撑身体的重量,同时也要花一些时间来卸载,让脚自由活动。在所有足式机器人系统的腿部都可以观察到加载阶段和卸载阶段之间的交替。对于单腿机器人,加载阶段是弹性碰撞,而卸载阶段是弹性腾空,就像前面提到的弹跳球一样。整个跳行动作主要是一种被动的振荡,运动参数取决于腿的弹性、身体的质量以及重力。
控制系统依靠这种被动的机械振动来确定基本跳行运动的形式,而在每次跳跃过程中传递到身体的腿部推力则确定振幅。理论上,控制系统可以通过比较达到理想跳跃高度所需的能量与实际能量,从而计算出推力的大小,用腿的推力弥补差额。这样的计算可以考虑身体的动能,腿弹簧的弹性势能以及预期的能量损失。
跳行机器人的控制系统在每个姿态阶段都提供一个固定的推力。这会导致弹跳运动在一个跳跃高度处达到平衡,在该跳跃高度,推力注入的能量等于摩擦和加速无弹簧腿质量损失的能量。由于这些机械损耗是随跳跃高度单调变化的,因此对于每个固定推力值都存在唯一的平衡跳跃高度,并且更大的推力会导致更大的高度。——但很难得到两者之间的关系
2.2 状态机对跳行循环的跟踪
跳行运动的一个重要功能是提供一个与控制同步的有规律的活动周期,使控制同步——当腿部长度的导数从负变为正
r
˙
>
0
\dot{r}>0
r˙>0时,状态机从收缩(COMPRESSION)
切换到伸展(THRUST)
。采取的动作是开始伸腿并控制身体姿势。
曲线离地后的轻微凹陷是由于腿被加速到身体速度时身体突然减速造成的。当腿部离地后,系统受重力,轨迹为抛物线;腿部触地后,是弹簧-质量系统,相位曲线近似简谐(harmonic)
运动。由于腿部弹簧不是线性的-它具有1/r特性(使其成为硬弹簧)-与谐波特性略有偏差。
2.3 前行速度控制
机器人足端在腾空结束后触地的位置直接影响了后续站立状态下的加速度。就像倒立摆底端相对于质心的位置决定了倾覆力矩(tipping moments)
一样。此外,身体的前行速度、垂直速度和腿部轴向力也会影响加速度。
由于腿与身体相连,所以控制系统可以在腾空过程中或者着陆时,随时确定脚部与身体的相对位置。一旦足端到位并开始站立过程,控制系统就不再采取进一步的行动——由身体、腿和地面组成的机械系统动力学决定接下来的运动。在很多情况下,净前行加速度( net forward acceleration)
,也就是触地时与离地时的速度之差
Δ
x
˙
=
x
˙
t
0
−
x
˙
t
d
\Delta \dot{x}={{{\dot{x}}}_{t0}}-{{{\dot{x}}}_{td}}
Δx˙=x˙t0−x˙td是一个关于足端触地时前伸位置的线性函数。净前行加速度是一个单一的数字,它是关于整个站立阶段的加速度之和。单位为m/s/hop。而在腾空阶段,前行加速度近似为0,因此通过站立阶段的加速度就可以控制速度了。
中心列中的事件发生时,将进入左侧中显示的阶段,右侧显示了要执行的控制操作:
阶段 | 触发事件 | 动作 |
---|---|---|
1. 加载 | 足端触地 | 停止排出腿部的气压、零髋关节扭矩 |
2. 收缩 | 腿部缩短 | 腿部上腔室密封、用髋关节调整身体姿态 |
3. 伸展 | 腿部变长 | 腿部增加压力、用髋关节调整身体姿态 |
4. 卸载 | 腿部接近最大长度 | 停止伸展、零髋关节扭矩 |
5. 腾空 | 足端没有接触地面 | 将腿部气压排放至低压将足端调整至适当的位置以便于着陆 |
对每一个前行速度,都存在一个特定的足端位置,使得净前行加速度为0,我们称之为中性点(neutral point)
,用
x
f
0
{{x}_{f0}}
xf0表示。
身体的前行位置,身体的角度和腿的角度具有奇对称性,x(t)=-x(-t),∅(t)=-∅(-t),θ(t)=-θ(-t),而身体的垂直位置和腿的长度具有均匀的对称性,则z(t)=z(-t),r(t)=r(-t)。定义时间和位置,使站立阶段中间位置t=0且x(0)=0。重心在站立过程中画过的点轨迹称为CG轨迹(CG-print)
。它由图底部的水平线表示。
当下一次落地状态时系统重心通过的轨迹,称之为CG轨迹(CG-print),它类似于足迹。
2.3.1 对称性与不对称性
-
当足端落在中性点上时,身体的质心会以对称运动的形式越过中心点,对称运动由时间的奇偶函数描述。
当系统对称移动时,质心在中性点前的时间与中性点后部的时间相同,因此,在下半个站立期间发生的向前倾斜会精确地补偿在上半个站立期间发生的向后倾斜。腿部轴向力的水平分量也得到了平衡,因为在脚位于质心下方的同时,腿部受到了最大程度的压缩——对于对称的身体运动,倾覆力矩和水平地面力是站立期间时间的奇函数。奇数函数在对称极限上积分为零,净加速度为零。
-
脚从中性点移开会导致身体轨迹不再对称
身体轨迹根据脚位移的符号和大小而倾斜。倾斜的轨迹具有不为零的身体净前行加速度,因此前行速度发生变化。通过将脚放在中性点的前面,控制系统会产生向后的净加速度,从而使机器人减速。通过将脚放在中性点后面,可以产生向前的净加速度,从而使机器人加速。
可以理解为在水平方向上,摩擦力做功发生变化:
对称时,摩擦力为奇函数——功为零,净前行加速度为零;
不对称时,若落地点靠前——前行摩擦力力做功距离变短,后行摩擦力做功距离变长——净前行加速度为负——减速;
若落地点靠后——前行摩擦力力做功距离变长,后行摩擦力做功距离变短——净前行加速度为正——加速;
2.3.2 一种关于足部位置的算法
为了准确控制前行速度,控制系统需要根据机器人的当前状态以及期望的行为计算出足端前伸到的位置(以决定落足点)。
- 方法一:
求解系统的动力学方程,得到系统状态变量关于时间的函数。根据这些解可以反推出足部位置与期望行为的函数关系。控制系统可以将系统的当前状态和期望状态插入这种封闭解(closed-form solutions)
中,以计算所需的前行足端放置位置。——难以求解,足部前伸位置关于净前行加速度的封闭形式解析解就是未知的。 - 方法二:
对足够巨大数量的情况进行数值拟合,将结果制成表格,得到近似解。 - 方法三:
使用一种封闭形式的近似解
在实际操作时,为了估计所需前伸位置,需考虑两个因素:使用测量的前行速度(measured foward speed)
来估计中性点的位置;使用前行速度的误差(error in forward speed)
来计算所需的落足点与中性点的位置偏差(当实际前行速度与期望前行速度不一致时,需要调整落足点的为了来获得加\减速)。中性点和位置偏差相结合以决定控制系统如何落脚。
- CG轨迹的长度约为前行速度与落地状态持续时间的乘积, x ˙ T s \dot{x}{{T}_{s}} x˙Ts,将足端放到CG轨迹的中心,控制系统在腾空阶段伸展腿,足端就可以在髋关节前面这么多距离:
x f 0 = x ˙ T s 2 {{x}_{f0}}=\frac{\dot{x}{{T}_{s}}}{2} xf0=2x˙Ts
其中:
x f 0 {{x}_{f0}} xf0:足端相对于质心的前向位移
x ˙ {\dot{x}} x˙:前行速度
T s {{T}_{s}} Ts:站立阶段的持续时间
控制系统使用前一个姿态阶段的持续时间作为下一个姿态阶段的预期持续时间。当身体在以 x ˙ {\dot{x}} x˙速度继续向前移动,并且腿的压缩具有偶对称性时,上式将足端置于中性点以提供无加速移动。
- 需要加速以稳定前进速度以防止错误和外部干扰,并使其从一种前进速度变化为另一种前进速度。为了特意使机器人加速,控制系统将足端从中性点移开。控制系统使用前进速度误差的线性函数来求得足端的位移:
x f Δ = k x ˙ ( x ˙ − x ˙ d ) {{x}_{f\Delta }}={{k}_{{\dot{x}}}}(\dot{x}-{{{\dot{x}}}_{d}}) xfΔ=kx˙(x˙−x˙d)
其中:
x f Δ {{x}_{f\Delta }} xfΔ:足端相对于中性点的位移
x ˙ d {{{\dot{x}}}_{d}} x˙d:期望的前进速度
k x ˙ {{k}_{{\dot{x}}}} kx˙:反馈增益
得出用于落脚的算法:
x
f
=
x
˙
T
s
2
+
k
x
˙
(
x
˙
−
x
˙
d
)
{{x}_{f}}=\frac{\dot{x}{{T}_{s}}}{2}+{{k}_{{\dot{x}}}}(\dot{x}-{{{\dot{x}}}_{d}})
xf=2x˙Ts+kx˙(x˙−x˙d)
一旦控制系统计算出
x
f
{{x}_{f}}
xf,就可以使用运动学来计算出所需的髋关节角度:
γ
d
=
ϕ
−
arcsin
(
x
˙
T
s
2
r
+
k
x
˙
(
x
˙
−
x
˙
d
)
r
)
{{\gamma }_{d}}=\phi -\arcsin (\frac{\dot{x}{{T}_{s}}}{2r}+\frac{{{k}_{{\dot{x}}}}(\dot{x}-{{{\dot{x}}}_{d}})}{r})
γd=ϕ−arcsin(2rx˙Ts+rkx˙(x˙−x˙d)),其中
γ
\gamma
γ是腿部与身体之间的角度
当在原地跳动、加速奔跑、以恒定速度奔跑以及减速至停止时,这种用于落脚的算法控制着前行速度和加速度。选择脚的位置来控制加速度的过程是用于平衡的主要机制。采取预防措施以确保在站立期间使用髋关节扭矩纠正身体位置时,有足够的法向力使得脚保持在适当的位置。将加载(LOADING)
和卸载(UNLOADING)
这两个阶段添加到状态机同步控制系统的跳行运动。
2.4 控制身体姿态
在腾空阶段角动量是守恒的,所以站立阶段提供了改变整个系统角动量的唯一机会。站立时脚与地面之间的摩擦使其可以将扭矩施加到身体上,而不会引起腿部较大的加速度。这些扭矩用于将身体伺服到所需姿势。控制系统通过线性伺服公式来实现:
τ = − k p ( ϕ − ϕ d ) − k v ( ϕ ˙ ) \tau =-{{k}_{p}}(\phi -{{\phi }_{d}})-{{k}_{v}}(\dot{\phi }) τ=−kp(ϕ−ϕd)−kv(ϕ˙)
其中:
τ \tau τ:髋关节扭矩
ϕ \phi ϕ:身体的俯仰角
k p {{k}_{p}} kp、 k v {{k}_{v}} kv:位置和速度反馈增益。参考值为 { k p = 153 N ⋅ m / r a d k v = 14 N ⋅ m ⋅ s / r a d \left\{ \begin{matrix} {{k}_{p}}=153N\cdot m/rad \\ {{k}_{v}}=14N\cdot m\cdot s/rad \\ \end{matrix} \right. {kp=153N⋅m/radkv=14N⋅m⋅s/rad
摩擦力可以防止脚在地面上打滑。当腿触地后开始负载时以及在离地前快要卸载时,这些阶段会防止身体姿态收到那些操作的影响,如同模糊阶段(twilight states)
,因为它们表明机器人既未处于完全站立状态,也未处于完全腾空状态。
另一个模糊阶段,ESCAPE
(未显示),在离地后直到脚达到足够的高度来通过地面之前,腿都无法向前移动。腿部的过早运动会踢到地面。
2.5 总结
- 通过在每个支撑阶段向身体传递推力来调节跳跃运动。
- 选择脚的位置来操纵前进速度,该位置将在下一站立阶段提供所需的净前向加速度。
- 在站立时摩擦力将脚固定在适当的位置,使身体保持直立姿势。
3. 跳行实验
3.1 速率控制
- 足部位移和净前行加速度之间的关系取决于前行速度。
- 跳跃高度和步幅频率也受奔跑速度的影响。实际上,直接相关因素不是奔跑速度,而是着地时腿的角度。越快的奔跑会导致腿越偏离垂直方向,因此跳得越低。这些较低的跳跃具有更短的腾空时间,并导致更快的步伐。
3.2 位置控制
将位置误差转换为所需的前行速度,位置控制器:
x
˙
d
=
min
{
k
(
x
−
x
d
)
,
x
˙
max
}
{{{\dot{x}}}_{d}}=\min \{k(x-{{x}_{d}}),{{{\dot{x}}}_{\max }}\}
x˙d=min{k(x−xd),x˙max},其中:
x
d
{{x}_{d}}
xd是目标位置,而
x
˙
max
{{{\dot{x}}}_{\max }}
x˙max限制了机器人远离目标时的最大移动速度。
控制系统可以承受大多数的干扰力主要是水平的。引起身体大转动的干扰通常会导致机器倾翻。
3.3 跳跃
机器人以中等的前行速度接近一个小障碍物。在障碍物前的一步,启动了预先计划的后续事件,该后续事件由状态机同步到垂直跳跃。该事件开始于下一个初始站立阶段:
- 推力延时作用,因此腿部在身体负载下比正常情况下更短。这样做是为了准备最大高度的一跳。一旦推力开始作用,它将一直持续到腿完全伸展为止。
- 一旦腾空,腿会收缩,摆动会延迟;两者都为脚提供了额外的间隙。
- 在跳跃的顶点,腿摆动到正确的着陆角度。摆腿的时间比平常少,但是由于转动惯量减小,越短的腿的运动速度越快。
- 腿伸长以准备落地。
- 落地后,将重新建立标准跳频序列。
在跳跃过程中,控制系统使用标准的前行速度和身体姿势算法。
3.4 改进和局限性
目的是集中于问题的塑造,并建立一个总体框架,在该框架内可以运行具有明确目标的算法。有了一个框架和一个运行正常的系统,细化和优化各个部分细节的任务应该很简单。
-
应该有可能减少这些身体振动的不对称性,消除着陆时的大误差,并在总体上减少控制身体姿态的伺服系统所需要的工作量。这可以通过设计控制系统以使身体与腿反向旋转时前后摆动来实现。这个想法是控制身体和腿部的平均方向,而不是控制身体姿势本身。该行为将描述为: { J ϕ + J l θ = 0 J ϕ ˙ + J l θ ˙ = 0 \left\{ \begin{matrix} J\phi +{{J}_{l}}\theta =0 \\ J\dot{\phi }+{{J}_{l}}\dot{\theta }=0 \\ \end{matrix} \right. {Jϕ+Jlθ=0Jϕ˙+Jlθ˙=0,其中: J J J与 J l {{J}_{l}} Jl是机架和腿部机构绕髋关节的惯性矩
-
前行速度控制所使用的近似值(用于估计CG轨迹的长度并产生加速度)有些粗糙。CG轨迹估计值对于刚性的腿和低速向前奔跑很适用,因为两者都始终使腿几乎保持垂直,但是当腿的角度有较大变化时,估计值精度会降低。在后一种情况下,轴向腿力首先会在姿态的第一部分使身体减速,然后使其加速,从而导致平均前行速度小于腾空阶段的速度,并且CG轨迹比预期的短。其结果是,随着前行速度的增加和腿的刚度的减小,奔跑速度的稳态误差也随之增加。
-
对地速度匹配(ground speed matching)
:当高速行驶时,脚不仅应在触地过程中保持静止,而且应在接触之前相对于臀部(hip 前文也称髋关节)向后加速,直到其在空中不动为止。这使脚的向后速度与触地之前地面的向后速度相匹配。离地时,脚应继续向后移动,直到完全卸载。 -
在几何形状方面上需要将脚放在立足点上,折叠腿与伸缩腿都具有相似的功能。伸缩腿和折叠腿都可以设计成向身体和地面传递相等的力。当考虑腿部运动本身的动力学时,会出现差异。对于考虑的运动,这些细节并不是太重要。但是,当开始优化腿部动作时,这些细节将很重要。
腿的动作就像一个可自由摆动的复合摆。在为特定的足式机器人系统建模这种细节级别时,并且在考虑性能和效率时,伸缩腿将不会起作用。但是,可伸缩的腿在足式运动中占据了重要的一大部分,同时又避免了一些复杂性——它们更易于建模和制作。 -
控制系统的每个部分的动作都好像仅影响应该控制的一个变量,并且相互作用表现为干扰。这种独立性导致了一种特别简单的控制设计,当机器在适当的位置跳跃、从一个点转换到另一个点、加速以改变运行速度和跳跃时,这种控制设计是有效的。
-
控制系统在触地时将脚定位在质心上。如果前进速度在某一步中有误,则直到下一步将脚再次落到地面上之前,无法采取任何措施对其进行校正——步成为控制的基本单位。
-
使用单腿机构的重点是在分析动态腿运动的主动平衡的一般问题,在某种程度上,它可以推广到多腿系统。可以直接将跳跃机器人一条腿和袋鼠两条腿的运动进行比较。主要区别在于袋鼠使用尾巴来帮助补偿腿部的大幅度摆动,因此身体在每一跳上都不需要做出剧烈的摆动。袋鼠的控制系统可能仍然像以前一样调节跳跃高度,身体姿势和速度。
4. 总结
- 对该机器进行的研究主要有三点:平衡的重要性,腿的弹性要求以及腿部协调的难度。
- 控制三部曲:
- 通过在每个跳跃周期中传递固定的腿部推力来控制跳跃高度。
跳行(Hopping)
控制:在站立姿态阶段给予一定时间的推力.在腾空阶段将气压降到一定值.- 当机器在每一步接近地面时,通过将脚放在髋关节前方指定距离来调节前进速度。
前行速度(Forward Speed)
控制:选择落足位置—— x f = x ˙ T s 2 + k x ˙ ( x ˙ − x ˙ d ) {{x}_{f}}=\frac{\dot{x}{{T}_{s}}}{2}+{{k}_{{\dot{x}}}}(\dot{x}-{{{\dot{x}}}_{d}}) xf=2x˙Ts+kx˙(x˙−x˙d);臀部转角 —— γ d = ϕ − arcsin ( x ˙ T s 2 r + k x ˙ ( x ˙ − x ˙ d ) r ) {{\gamma }_{d}}=\phi -\arcsin (\frac{\dot{x}{{T}_{s}}}{2r}+\frac{{{k}_{{\dot{x}}}}(\dot{x}-{{{\dot{x}}}_{d}})}{r}) γd=ϕ−arcsin(2rx˙Ts+rkx˙(x˙−x˙d));伺服驱动臀部转角—— τ = − k p ( γ − γ d ) − k v ( γ ˙ ) \tau =-{{k}_{p}}(\gamma -{{\gamma }_{d}})-{{k}_{v}}(\dot{\gamma }) τ=−kp(γ−γd)−kv(γ˙)- 在站立时通过对臀部的伺服来校正身体的姿势。状态机提供了将控制动作与正在进行的跳跃行为同步的方法。
身体姿态(Body Attitude)
控制: τ = − k p ( ϕ − ϕ d ) − k v ( ϕ ˙ ) \tau =-{{k}_{p}}(\phi -{{\phi }_{d}})-{{k}_{v}}(\dot{\phi }) τ=−kp(ϕ−ϕd)−kv(ϕ˙)
- 保持一致的跳跃高度,在几个跳跃周期内发生变化达到平衡。机器可以以高达1.2 m/s的速度运行,速度调整约为±0.25 m/s,并且可以随处移动。跳跃控制的改变使机器人可以越过小障碍物。