【读书笔记】Legged Robots That Balance (3)

第四章:双足和四足奔跑(Biped and Quadruped Running)

  • 笔记应配合原书《Legged Robots That Balance》一同阅读(尤其是图表)

  • 正文为原文内容概括

  • 括号()内为我的注释

前面两章描述的机器是用来研究单腿跑步的控制。只有一条腿的机器让我们能够专注于跑步时的主动平衡和共振弹跳问题,同时避免了协调多条腿之间的互动问题。没有对单腿的步态进行研究,是因为单腿机器只有跳这一种不太。我们现在可以用单腿跑步的研究结果来理解多腿跑步吗?

本章使用的方法是将两足动物和四足动物运行系统的行为分解为我们所理解的单足系统的组成部分。我们认为,两足动物跑步和单腿跑步具有相同的基本特征,而四足动物的某些步态也与两足动物相似。

第一步是证明一个有两条腿的系统可以像只有一条腿一样运行。当跑步步态只用一条腿的支撑、同时另一条腿高举和远离,这样的等效就是成立的。这样的腿就像加特林机枪的枪管,一次只能发射一颗子弹。人类就是这样跑的。这种运行模式的控制算法可以像单脚控制系统一样。

第二步考虑了成对使用双腿的四足步态:快步、步伐和跳跃。如果控制系统能让成双成对的两条腿像一条腿一样工作,那么四足动物就能像两足动物一样被控制。一旦这样做,加特林方法和单腿控制算法可以再次使用。其结果是,在最初用于控制单腿跳跃的算法的基础上,建立了一个用四条腿跑步的控制系统。并通过控制平面空间运动的两足机器人和在三维空间运动的四足机器人,在实验层面验证了该方法的可行性。

单足步态

为了便于讨论,让我们假设前几章描述的三部分控制系统对于控制具有弹性腿、身体和适当的执行器和传感器集合的机器是有效的。不难想象一个控制系统使用这三种相同的控制算法来控制人类两足动物的运行。

尽管在细节上有很多不同,两条腿跑步和单腿跑步非常相似(本页p84的脚注中详细地描述了二者有什么细节上的不同)。在这两种情况下,一次只有一条腿提供支撑,一次只有一只脚在支撑过程中被摩擦力固定住,在战斗中只有一条腿恢复到向前的位置。我们发明了一种跑步步法,叫做“单足步法”(one-foot gaits)在严格的交替。这就是早前提到的加特林步态。成年人很多时候都时候都采用这种单足步态奔跑,就像我们的单腿机器人一样。

对此,我们可以用单足的控制算法来控制双足,只要采取一种序列机制,将三部分控制策略在恰当的时刻发送给两条腿即可。

平面双足机器人奔跑实验

两位科学家以及使用这种方法控制了平面双足机器人奔跑实验,见图4.1和4.2。腿部采用了长行程液压缸,见图4.4。

控制腿部运动的序列机制由一个10状态的状态机实现,见图4.5。每个状态都设定了触发所需的传感条件。实验结果见图4.3。

除了单足步态以外,双足机器人还可以采用双足齐跳以及跑跳切换等奔跑方式。

四足机器人的单足步态?

(本节作者讨论了四足机器人采用单足步态的可行性,结果为四足机器人不适合采取单足步态。原因大致为四足机器人很难保证其四足的支撑平衡点能够与重心重合,以及四足的复杂运动会产生相互干扰。因此,四足机器人更多时候使腿部成对运动,以减小这种运动耦合造成的困难。)

虚拟腿(Virtual Legs)

假设两条腿协调工作,就像一条等价的腿。一个四足步态中成对使用的四条腿可以看作是等效的两足。四足的步态可以用这种方式理解为小跑(trot)、步行(pace)和跳跃(bound)。在每一个步态中,腿都是成对运动的。每一对都一致地击打地面,一致地离开地面。当一对腿提供支撑时,另一对腿向前摆动,为下一步做准备。对角腿在小跑中形成对,侧腿在步伐中形成对,前腿和后腿在跳跃中形成对。

一个重要的背景来自萨瑟兰的工作,他入了虚拟腿的概念。即将让两条或两条以上的实体腿(physical legs)视作一条等效的虚拟腿,如图4.7所示。实体腿和虚拟腿对身体施加的力矩和力矩是相等的,所以在这两种情况下,身体的行为是相同的。虚拟腿的概念允许萨瑟兰用更简单的语言来表达和分析一台有六条腿的机器的复杂行为。

虚拟腿的概念将成对使用腿的四足动物的跑步步态任务分成两个更简单的任务:其中一项任务是成对控制机器人的实体腿,这样它们所组成的虚拟腿就可以按照所需的方式工作。协调实体腿以产生所需虚拟行为的一组操作是:

  • 定位(Positioning)。选择物理脚的位置,以将虚拟脚放置在所需的位置
  • 同步(Synchronization)。确保两条腿同时撞击与离开地面
  • 出力均衡(Force Eqqualization)。确保每一对腿相对于地面的轴向力相等

为了实现这些操作,控制系统必须协调实体腿的底层行为。

第二个任务是提供指定所需行为或虚拟系统的运动算法。因为小跑、步速和步幅减少到虚拟的两足动物的单脚步态(virtual biped one-foot gaits),如图4.8所示,所以应用上一节的结果。三部分控制算法可用于指定每个虚拟腿的行为。用于两足动物的相同排序机制(图4.5和表4.1)也可以用于四足动物,但是现在它指定的是虚拟腿而不是实体腿。

力平衡虚拟腿是萨瑟兰更为普遍的概念的一个特例。当控制系统平衡腿向地面传递的轴向力时,它会将有效的支撑点移动到双脚之间。这种选择使得结果的行为易于分析,并且与我们已经研究过的单腿系统类似。实现不平衡轴向力的虚拟腿是可能的,相应地会有更复杂的行为。定义一般虚腿的方程见附录4A。这里我们只考虑力平衡型虚拟腿。

实体腿和虚拟腿之间的关系允许控制系统将虚拟腿的期望行为转换为每个实体腿的控制信号。例如,如果物理臀部在前后方向上的距离为 2 d 2d 2d,那么控制系统可以将所需的虚拟脚位置设为 d d d,并在此基础上加上 d d d找到前腿位置,减去 d d d找到后退位置。类似的程序应用到同侧步态。

在上一节中描述的单脚跑步步态对于四足动物来说是很难使用的,因为在避免腿部碰撞的同时,很难在足够靠近重心的地方找到四个臀部部来正确定位双脚。然而,当成对的腿一起运动时,有效的支撑点是靠近质心的位置,即使身体的腿离身体的中心有相当大的距离,虚拟腿提供的有效支撑点仍然位于连接两个实体足的线段的中点。在小跑中应用的是对角线步态,其每一对足的连线重点基本上就是身体的中心,近似看作质心。对步行态亦然。

总而言之,虚拟腿的概念将使四足动物奔跑的任务分成两个更简单的任务。其中一项任务是将两条物理腿的行为结合起来,使它们的结合行为符合预期,等效为虚拟腿的行为。第二个任务是为虚拟两足动物的单足步态提供控制算法。这种方法适用于三种四足步态、快步、步伐、也许还有跳跃。

利用虚拟腿进行四足小跑实验

为了探索单腿系统的算法,使其可以扩展到四条腿的系统,我们构建了一个四足机器人(Raibert, Chepponis, and Brown 1985)。图4.9描述了这台机器,图4.10显示了它以小跑的步态运行的照片。我们按照前两部分讨论的思路为这些实验设计了控制系统。控制系统使用单腿算法为每个虚拟腿指定所需的行为,它用一个状态机对虚拟腿进行排序,并协调物理腿对的行为,使其表现得像虚拟腿。

单腿算法

为了控制前行速度,在每次飞跃阶段(flight phase)控制系统利用如下公式4.1确定虚拟腿相对于质心的位置:

x f , d = x ˙ T s 2 + k x ˙ ( x ˙ − x ˙ d ) \mathbf{x}_{f, d}=\frac{\dot{\mathbf{x}} T_{s}}{2}+\mathbf{k}_{\dot{\mathbf{x}}}\left(\dot{\mathbf{x}}-\dot{\mathbf{x}}_{d}\right) xf,d=2x˙Ts+kx˙(x˙x˙d)

为了控制俯仰(pitch)和横滚(roll)角,控制系统利用如下线性伺服来控制虚拟臀部的转矩:

τ x = − k p , x ( ϕ P − ϕ P , d ) − k v , x ( ϕ ˙ P ) τ y = − k p , y ( ϕ R − ϕ R , d ) − k v , y ( ϕ ˙ R ) \begin{aligned} \tau_{x} &=-k_{p, x}\left(\phi_{P}-\phi_{P, d}\right)-k_{v, x}\left(\dot{\phi}_{P}\right) \\ \tau_{y} &=-k_{p, y}\left(\phi_{R}-\phi_{R, d}\right)-k_{v, y}\left(\dot{\phi}_{R}\right) \end{aligned} τxτy=kp,x(ϕPϕP,d)kv,x(ϕ˙P)=kp,y(ϕRϕR,d)kv,y(ϕ˙R)

为了控制跳跃运动,控制系统在每个周期中会数次调整液压系统的长度。如图4.4所示,实体腿的长度是液压系统的长度(hydraulic length,即液压系统活塞杆的伸出长度) w l w_l wl与空气弹簧长度 r s r_s rs之和。而虚拟腿的液压系统长度是其依赖的两个实体腿的均值。当虚拟腿处于恢复阶段时(腾空后的压力释放阶段),期望的液压系统长度被缩短 ( w ℓ , d = L 1 ) \left(w_{\ell, d}=L_{1}\right) (w,d=L1)以保证足部不接触地面。当虚拟腿准备接触地面或正在加载过程中时,期望的液压系统长度为中间值 ( w ℓ , d = L 2 ) \left(w_{\ell, d}=L_{2}\right) (w,d=L2)。在站立姿态的第二阶段中,当腿部正在给身体施加推力时,期望的液压长度也在增加 ( w ℓ , d = L 3 ) \left(w_{\ell, d}=L_{3}\right) (w,d=L3)。操纵员在控制柜中定义好 L 1 &lt; L 2 &lt; L 3 L_1&lt;L_2&lt;L_3 L1<L2<L3

实现虚拟腿

由前文的几何结构分析,虚拟腿构成的中心点近似等于机器人的质心,因此由虚拟腿相对于质心的期望位置可以确定出实体腿相对于它们臀部的期望位置,公式4.4,4.5如下:

x h , i , d = x h , j , d = x f , d y h , i , d = y h , j , d = y f , d \begin{aligned} x_{h, i, d} &amp;=x_{h, j, d}=x_{f, d} \\ y_{h, i, d} &amp;=y_{h, j, d}=y_{f, d} \end{aligned} xh,i,dyh,i,d=xh,j,d=xf,d=yh,j,d=yf,d

一旦知道以上期望位移,就可根据结构的运动学关系得到执行器应当执行的动作长度。这一运动学转换关系在附录4B中进行推导,其中考虑了俯仰、横滚姿态以及腿长等参数。

为了使得构成虚拟腿的两条腿能够同步,需要在空中对两腿进行调整,使得两脚的高度相同(平均值为 L 2 L_2 L2)。在这一过程中,需要用到俯仰、横滚角的测量值以及运动学计算。

上述同步方法在平整地面上时有效的,但对于崎岖地面往往会失败。在崎岖地面上的一种可行的方法是:利用公式4.6伺服控制腿部与地面接触的轴向力。当一条腿先接触地面以后,这条腿回缩而另一条腿伸出。当两条腿都接触地面以后,站立姿态阶段才会开始。显然,这种控制方法很依赖执行器的快速响应特性。

w ℓ , i , d = w ℓ , i + r s , i − r s , j 2 w_{\ell, i, d}=w_{\ell, i}+\frac{r_{s, i}-r_{s, j}}{2} w,i,d=w,i+2rs,irs,j

一旦期望的执行器长度确定了,线性伺服的输出信号就可以通过公式4.7确定:

f i = − k p ( w i − w i , d ) − k v ( w ˙ i ) f_{i}=-k_{p}\left(w_{i}-w_{i, d}\right)-k_{v}\left(\dot{w}_{i}\right) fi=kp(wiwi,d)kv(w˙i)

实验数据图像在图4.11和图4.12中展示,效果不是太好。

关于四足实验的讨论

本章节我们只考虑力平衡虚拟腿。力平衡虚拟腿的优点是能够保持有效的支撑点,即虚拟足,能位于实体支撑点连线的中点。这使得定位支撑点的任务与单腿系统定位脚的任务类似。这种相似性使我们能够将单腿系统的经验应用到四足的控制问题上。在这一过程中,我们为了保证机构的简单性而放弃了一部分自由度的控制功能。最后的实验效果不太理想。(这里有大段讨论,不详细翻译)

总结

  • 运动控制算法最初是为单腿使用开发的,现在扩展到多腿使用

  • 有一类步态叫单足步态,每次只有一只脚接触地面,每个站立阶段由一个腾空阶段分开。原则上,三部分控制算法可以用来控制各种执行单脚步态的系统,与腿的数量无关

  • 腿单足步态的控制系统需要一些机制来控制腿的使用,并且它们必须能够缩短空闲(腾空状态的)腿以使它们不碍事

  • 以平面两足动物为实验对象,验证了利用三部分控制分解产生多足单足步态的可行性

  • 协调行动的一对腿的行为可以用等效的虚拟腿来表示(Sutherland 1983)。虚拟腿将几种四足动物的跑步步态——小跑、步行和跳跃——映射到虚拟两足动物的单足步态

  • 四足机器人的控制系统采用单腿算法、有限状态机和虚拟腿使机器以小跑的方式运行。步行和跳跃应该可以用类似的方法来实现

  • 四足动物控制的虚拟腿方法抛弃了四条腿所能提供的被动稳定性,取而代之的是主动稳定性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值