说机器人研究了几十年没多大进展?一位机器人从业者看不下去了……
为什么有些双足机器人能像人一样直立行走,还不容易倒?
你有没有想过这么一个问题:那些能直立行走的机器人是怎么保持行走平衡的?
编者按:此前,深圳湾(微信公众号 ID:shenzhenware)报道过能直立行走的拟人步态机器人 DURUS ,至于类似的行走机器人,当然还有大家熟悉的波士顿动力 Altas。要让机器人实现直立行走,不仅要有底层可靠的硬件基础,还要有上层成熟的软件技术,而机器人行走所涉及的平衡算法是其中重要的一部分。本文主要介绍双足平衡的主流算法——基于 ZMP 的动态步行,本文作者系一名机器人专业在读研究生——龚睿。
双足机器人涉及的平衡算法比较多,例如「增量式模糊控制 PD 控制算法」,「机器学习算法」等,本文主要侧重于介绍一种应用于复杂地形(带有倾斜角度的或表面不均匀的落脚面)的平衡算法。
双足机器人的平衡控制都经历过哪些阶段?
在最开始,双足机器人使用的平衡控制策略是「静态步行」(static walking)。这种策略的特点是:机器人步行的过程中,重心(COG,Center of Gravity)的投影始终位于多边形支撑区域(support region)内,这种控制策略的好处在于:机器人可以在行走动作中停止而不摔倒,但代价是行动速度非常迟缓(每一步需要花费10 秒甚至更长,因为需要保持重心的投影始终位于支撑区域,否则将不稳定)。
· 图 1:静态步行
因为静态步行和人类的期望相差甚远,于是人类开发出来了另一种步行平衡策略——「动态步行」(dynamic walking)。在动态步行中,机器人的行动速度被提升至了每步不超过 1 秒。但其弊端也是显而易见的,机器人难以在运动的状态下立即停顿(惯性的作用),从而使得机器人在状态转换的过程中变得不稳定。
为了解决惯性带来的影响,零力矩点(ZMP,zero moment point)被引入到了这一控制策略中。在单脚支撑相中,ZMP=COG。其好处在于,当 ZMP 严格的存在于机器人的支撑区域中,机器人则绝对不会摔倒。
· 图 2:引入了 ZMP 的动态步行
双足平衡的主流——基于 ZMP 的动态步行
现在双足平衡的主流是用基于 ZMP 的动态步行。从上述的基本内容来看,双足机器人的一条腿就可以抽象成控制系统中最基本的「倒立摆」模型。
· 图 3:倒立摆模型
可以推导出机器人的一条腿的正向 ZMP 动力学公式为:
· 图 4:正向 ZMP 动力学公式,其中:Xzmp 代表正向 ZMP,Xmc 代表质量中心的前进位移,l 是倒立摆的长度,g 是重力加速度。
由于复杂地形的双足平衡无法由单一的控制器实现,所以多个控制器的切换策略被用于解决平衡问题。在这一个策略中,机器人的行走被设定为一个周期(cycle)每一个周期被分成了不同的行走阶段(stage),如下图所示:
· 图 5:双足机器人的行走周期和行走阶段
图中的 1 - 4 阶段是一个周期。而在第 2 和第 4 阶段可以发现,在这两个阶段中,机器人的 SSP 与 DSP 发生了「共存」,即同时存在状态。
在一般的双足平衡的算法中包含了三种控制策略:
A.实时平衡控制策略(real-time balance control strategy)
B.步行模式控制策略(walking pattern control strategy)
C.行动预测控制策略(predicted motion control strategy)
基于不同策略的不同目的,每一种控制策略都包含了多种在线控制器(online controller),下面将分述每一种策略的任务及使用的控制器:
A.实时平衡控制策略
控制器 1:阻尼控制器(Damping controller)。
目的:在 SSP 模式下,消除机器人上半身的振动。作用阶段:1、3 全阶段;2、4 中的 SSP 阶段。
控制器 2:ZMP 补偿器(ZMP compensator)。
目的:保持机器人骨盆关节(如图6所示)在动态运动中水平方向的平衡。作用阶段:1、3全阶段;2、4 中的 SSP 阶段。
· 图 6:机器人的骨盆(pelvis)关节示意图
控制器 3 :软着陆控制器(Soft landing controllers)。
目的:吸收机器人脚着陆时的撞击,调节机器人脚与着陆区的接触面。作用阶段:2、4 中的 DSP 阶段。
B.步行模式控制策略
控制器 1:骨盆摇摆振幅控制器(Pelvis swing amplitude controller )。
目的:补偿机器人骨盆关节侧部摇摆振幅。作用阶段:2、4 中的 DSP 阶段。
控制器 2:躯干俯仰角/侧倾角控制器(Torso pitch/roll controller ) 。
目的:补偿骨盆关节的中心位置相对于躯干的俯仰角/侧倾角摇摆。作用阶段:2、4 中的 DSP 阶段。
C.行动预测控制策略
控制器 1:过倾斜控制器(Tilt over controller )
目的:补偿机器人踝关节轨迹,以避免机器人在压延方向上的过倾斜。作用阶段:1、3 全阶段。
控制器 2:着陆位姿控制器(Landing position controller ) 。
目的:避免机器人脚着陆时造成的不稳定。作用阶段:2、4全阶段。
然而,一般的双足平衡算法无法解决地形不均匀或地形倾斜的问题,因此,在地形不均匀或地形倾斜这种复杂环境中,一些新的控制需要被引入:
A1.直立姿态控制器(Upright Pose Controller )
这种控制器可以使机器人在倾斜地形中始终保持直立姿势,从而保持整个机体的平衡。对于双足机器人而言,倾斜地形的「全局倾斜角」的测量就显得尤为重要。一般采用的测量方法是在机器人的躯体内部安装一个 2 轴的加速度计,再加上一个低通滤波器就可以构成一个倾斜计。
对于机器人的俯仰姿态控制,在规定的踝关节轨迹上,直立姿态控制器附加了含有俯仰误差的 PI 控制器:
直立姿态控制器则可由下列等式实现:
图 7 更加直观的反映出了使用控制器之前与之后的俯仰控制平衡性差异:
图 8 显示了使用控制器之前与之后的侧倾控制平衡性差异:
后记
以上介绍的是一种应用于复杂地形平衡控制算法,另外也有一些没有利用 ZMP 传感器进行平衡控制的机器人,比如,德国航空航天局下属的机器人学和机电学研究所(Institute of Robotics and Mechatronics)在 2011 年发布的一款名为「DLR」的机器人,与一般基于 ZMP 的双足机器人不同,DLR 依赖于力矩调节控制算法,这种算法可以计算上述平衡策略中所需的力和力矩,从而抵消外界扰动。
· 图 9:DLR
相信很多人对美国波士顿动力的网红机器人——Altas 的控制算法感兴趣,但鉴于 Altas 的应用涉及到军工行业,波士顿动力所公开的资料也非常少,我们也无从得知。
本文系技术分析类文章,欢迎有技术背景的读者点评和参与讨论,也欢迎非技术背景的读者围观评论和点赞。
责任编辑:林亿