系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理
前言
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!
本文先对**足式机器人平衡算法“Legged Robots that Balance”**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章
提示:以下是本篇文章正文内容
一、运动学、动力学、能量转换的重要性
狗的运动控制不能仅仅考虑运动学,也要考虑动力学的限制,因为狗是有质量和惯性的,动力学在足式机器人主动平衡控制方面起到重要作用。静平衡四足机器人一般会保持身体重心在支撑域,同时尽量减少倾倒和水平加速度。在这种约束条件下,可以推导出腿和身体的运动轨迹;其次还要考虑能量转换的过程(重力势能->动能->弹性势能、机械能、电能)
. .
二、静平衡状态系统(静步态)与主动平衡系统(动步态)的区别
主动平衡系统重心不一定一直支撑域内,但是随着时间推移也能保持平衡,主动平衡系统可以容忍偏离静态平衡,这让腿支撑身体的方式更加灵活,从而提高机动性【防盗标记–盒子君hzj】 . .
三、二维平面机器人控制
二维平面机器人控制被分解为三个部分:跳跃运动、前进运动和身体姿态
将奔跑分解为上下弹跳运动、前进速度和身体姿势的控制是一个重要的简化。将控制划分为这三个部分,使奔跑控制变得更容易理解,并组合成一个相当简单的控制系统【防盗标记–盒子君hzj】
1.跳跃运动(支撑相,能量守恒)
跳跃运动是由身体质量(重力)、腿的弹性摩擦和惯性(IMU加速度)联合控制的振荡。在支撑过程中,身体在有弹性的腿上弹跳,在飞行过程中,系统沿抛物线飞行。在每个支撑期间,控制系统通过腿提供垂直推力来维持振荡并调节其振幅。每一跳所损耗的一些能量被前一跳的腿部弹簧所补充。跳跃要考虑高度和频率,通过调整腿部推力,激励跳行运动并调整振幅 .
2.机器人的前进速度和加速度(飞行相,轨迹跟踪)
这是通过在飞行相移动腿到一个合适的落脚点来实现的。为了计算出合适的落脚点,控制系统考虑了实际的前进速度、期望速度和腿系统动力学,并构建了一个简单的模型。一个运行的系统只有在腾空阶段腿部卸载时才能移动枢轴点。通过将腿前伸到某一特定位置以提供加速度,稳定前行速度【防盗标记–盒子君hzj】,对每一个前行速度,都存在一个特定的足端位置,使得净前行加速度为0,我们称之为中性点(neutral point),用 表示。对原地跳跃,中性点就在身体的正下方;而对于前行跳行,中性点在前行方向上。前行越快,中性点离身体越远 .
3.姿态控制
用于稳定机身的俯仰角,使机身保持直立。前提是脚和地面之间有较大的摩擦力。通过对髋关节(hip)的伺服控制,使身体在站立时保持直立状态 .【防盗标记–盒子君hzj】 …
四、三维平面机器人控制
有使用价值的机器,必须能够在三维空间中运行,三个维度空间中进行,使得运动具有六个自由度。注意:二维到三维的控制量(加速度、力、位置)不能简单的叠加,而是一个矢量和,要考虑方向。腿的位置和产生的加速度分别由水平面内的向量所给定,所以三维的要用矩阵表示并用矩阵运算,三维的矩阵我们还是能想象进行推算的 . .
五、支撑相的具体分析
为了使足式机器人系统能够运作并向前移动,【防盗标记–盒子君hzj】每条腿必须花一些时间来支撑身体的重量,同时也要花一些时间来卸载,让脚自由活动。在所有足式机器人系统的腿部都可以观察到加载阶段和卸载阶段之间的交替。对于单腿机器人,加载阶段是弹性碰撞,而卸载阶段是弹性腾空,理论上,
在弹性腾空阶段(支撑相上升阶段)
控制系统可以通过比较达到理想跳跃高度所需的能量与实际能量,从而计算出推力的大小,用腿的推力弥补差额。这样的计算可以考虑身体的动能,腿弹簧的弹性势能以及预期的能量损失,推力和跳跃高度之间的关系并不简单(可以继续优化)。下一次触地时的速度矢量与本次的速度矢量、姿态阶段的净加速度共同决定 .
在弹性碰撞阶段(支撑相下降阶段)
因为在腾空阶段角动量是守恒的,所以站立阶段提供了改变整个系统角动量的唯一机会。这些扭矩用于将身体伺服到所需姿势。控制系统通过线性伺服公式来实现【防盗标记–盒子君hzj】(用IMU和采集躯干的俯仰角及角速度融合逆运动学解算的俯仰角及角速度): 其中, 是髋关节扭矩, 是身体的俯仰角, 是位置和速度反馈增益。 .
六、飞行相的具体分析(落足点规划+逆运动学+虚拟腿力分配)
为了准确控制前行速度,控制系统需要根据机器人当前状态以及期望动作计算出足端前伸的位置(以决定落足点)
1、落足点规划方法
(1)求解系统的动力学方程
得到系统状态变量关于时间的函数。根据这些解可以反推出足端位置与期望动作的函数关系。控制系统可以将系统的当前状态和期望状态插入这种封闭解(closed-form solutions)中,以计算所需的前行足端放置位置。然而,机械系统微分方程解析解的求解是十分困难的,很多时候甚至并不存在。足部前伸位置关于净前行加速度的封闭形式的解析解就是未知的。 .
(2)查表法
对足够巨大数量的情况进行数值拟合,将结果制成表格,得到近似解。 .
(3)近似估计法【用的就是这种方法】
3、使用一种较为粗糙的方法估计足端前伸位置的近似值,为了估计所需的前伸位置,我们考虑了两个因素:使用测量到的前行速度(measured foward speed)来估算中性点位置;【防盗标记–盒子君hzj】使用前行速度的误差来计算所需落足点与中性点的位置偏差(当实际前行速度与期望前行速度不一致时,需要调整落足点来获得加\减速)。控制系统结合中性点和位置偏差来决定如何落脚。为了计算中性点的位置,控制系统会估算出下一次落地时系统重心通过的轨迹,称之为CG轨迹(CG-print),【防盗标记–盒子君hzj】CG轨迹的中点就是中性点。CG轨迹的长度约为前行速度与落地状态持续时间的乘积,,将足端放到CG轨迹的中心得到中性点位置表达式(根据位移可以优化):
中性点位置表达式 . .
2、估计机体的前进速度
. .
七、估计机体在世界绝对坐标系的位置(定位的范畴)
第一种方法:是对运动学估计出来的前向速度作积分。 第二种方法:是对IMU估计出来的前向速度作积分。 第三种方法:是对运动学和IMU融合后估计出来的前向速度作积分。【防盗标记–盒子君hzj】 第四种方法:是对运动学估计出来的前向位置作叠加 第五种方法:结合激光雷达 第六种方法:结合GPS和定位模块
. .
八、有限状态机FSM(步态调度器,相位控制器)
控制系统的这三个部分的控制工作由一个有限状态机(Finite state machine)进行控制。这样,单腿的运动控制就变成了一个弱耦合问题。 状态机跟踪跳行运动以同步控制系统的三个部分。传感器信息触发运动阶段之间的转换,每个阶段指定控制系统应执行的操作
九、虚拟力生成
(3)设计步态时还要保证两个物理腿同时触地和离地,这样才能产生相匹配的足力并进一步在在物理腿中进行分配。为了保证两个腿同步触地,提前落地的腿需等待后者触地才能进行相位的切换。【防盗标记–盒子君hzj】目的是完成对虚拟力输出的分配求解。虚拟腿力分配即仅考虑静力学下的力平衡问题,当机身负载不均匀时为保证姿态稳定,基于力和力臂关系可知离质心更近的腿需要产生更多的力 对Trot步态来说虚拟腿构建于两支撑腿连线中点,对Pace步态虚拟腿构建在两侧腿的中间,Bound步态在前后量侧腿的中间。在Bound步态虚拟腿无法在质心处提供支撑,足端很可能由于机械尺寸约束无法靠近质心,因此可能无法简单地将Bound归入Trot和Pace统一的控制框架中,其对俯仰轴的控制是一个十分重要的研究内容。
十、虚拟力分配
(1)方法一是使用静力学平衡分析和扭矩公式 (2)方法二是使用雅可比矩阵求偏导 (3)解耦分配但输入单输出 (4)模型预测控制求解姿态平衡的反作用力
十一、多腿简化为单腿控制(步态控制)
(5)假设一个控制器同时协调共享支撑的支腿,使它们的作用效果像一个单独的等效支腿,称之为虚拟支腿。进一步,假设一次有多个支腿提供支撑,但所有支腿都被协调起来充当虚拟支腿。【防盗标记–盒子君hzj】这样就可以将多足步态映射到两足机器人单足步态中。例如,小跑四足机器人映射成一个以单脚步态运行的虚拟两足机器人。单腿模型忽略了多足机器人存在的末端物理干涉问题,同时也为我们揭示了机器人实现动态稳定控制和跳跃的本质,即机器人的主动动态平衡控制
十二、机器人运动的对称性
为了以恒定的前进速度跑,或者要多足协同,在一个跨步中前进加速度必须积分为零。为了满足这一要求,可以使加速度(力控)满足奇函数性质,对于奇函数,在对称的区间上积分为0。这种对称性被用来控制之前规划的四台机器人的前进速度。这是在每一步为脚选择一个合适的落脚点实现的。
当足端落在中性点上时,身体的质心会以对称运动的形式越过中心点,对称运动由时间的偶数和奇数函数描述,体现在位置、速度、加速度上。,也体现在在竖直高度和虚拟腿长上,还体现在时间周期上【防盗标记–盒子君hzj】
当系统对称移动时,质心在中性点前的时间与中性点后部的时间相同,因此,在下半个站立期间发生的向前倾斜会精确地补偿在上半个站立期间发生的向后倾斜。【防盗标记–盒子君hzj】腿部轴向力的水平分量也得到了平衡站立期间腿部轴向力是时间的偶函数,注意水平方向各个量是奇函数是在静加速度为0的时候,就是每次都能踏在中性点上,实际肯定不会的,脚从中性点移开会导致身体轨迹不再对称 恰巧的是,加速度与中性点位移之间的函数关系几乎是线性的
简单说来就是奇偶性关系(这个有助于轨迹曲线规划的参考)
(对称规划方面,规划标准)
(对称驱动方面,输出标准)
对称结构力学姿态(IMU,优化标准) 上式中,x , z和是身体的向前位置、垂直位置和俯仰角度,和r是腿的角度和长度,均在矢状面内测量。为了简单起见,t和x的定义是,在站姿阶段的中途t=0,x(0)=0。是施加在髋关节上的扭矩,是沿腿部轴线施加的力。 这些对称方程表明,向前的身体位置、身体俯仰角和腿部角度是整个站立阶段的时间的奇数函数, 【防盗标记–盒子君hzj】在整个跨步中是时间的奇数函数积分为零
对于对称运动,垂直位置和速度也在稳态下进行。身体的高度是站姿时时间的偶数函数,飞行时作用在机体上的力矩为零,而在姿态时作用在机体上的力矩为奇数函数
对称性也有助于我们描述和理解动物的行为。我们可以根据对称性进行轨迹规划,提供了控制一大类成功运动的规则,并提出了各种各样的实验建议。为奇数对称性和为偶数对称性,控制系统可以产生稳态运动。 对称性只提供了成功移动的充分条件,而不是必要条件
十三、机器人的非对称性步态
产生不对称步态的原因: 1、不对称的一个原因是腿不是完美的。用于激发对称运动和稳态行为之间关系的参数不适用于存在摩擦的情况。 2、导致不对称运动的另一个能量损失是由于腿部的质量。每当一只脚撞击或离开地面,系统就会损失部分动能。为了保持稳定的运动,控制系统必须在每个周期补充能量以补偿这些损失。【防盗标记–盒子君hzj】 3、不对称行为的另一个原因是机械系统中的不对称。大多数动物的身体一端有大而重的头,而另一端没有大而重的尾巴来平衡 4、外部荷载,如风阻产生的荷载,或拉杆荷载,也需要身体和腿部运动中的不对称分量
当然,我们不应该期望看到对称运动时,【防盗标记–盒子君hzj】控制系统故意倾斜的运动,以改变运行速度。在这种情况下,运动的不对称性提供了加速身体的力量。
运动对称性不必局限于一步。虽然我们关注的是逐步应用的对称性,但当两个步骤产生互补加速度时,对称性同样适用,对称性分布在多个支撑间隔上,(全局来看)假设单个支撑周期偏离对称,但两个连续支撑周期以互补的方式各自偏离对称。如果全局分析的话,我们更偏重于偏离对称的程度会不会超出稳定性的限制,一旦超出了稳定性的限制,将是一个正反馈的过程,无法逆转,【防盗标记–盒子君hzj】机器人必然摔倒。在每一步中,因为脚多多少少离开了中点,身体的轨迹是不对称的,系统会加速。然而,如果下一步的脚部位置得到了补偿,那么连续几步的身体运动就会以相等和相反的加速度保持平衡。
对称性假设每个身体变量、每个腿部变量和每个执行器变量都具有偶数或奇数对称性。它们相互作用的最终结果是限制作用在整个步幅上的力,从而保持身体的前进速度、仰角和俯仰角。【防盗标记–盒子君hzj】
另一种说法是,身体必须对称运动,而腿允许不对称运动的。
十四、SLIP模型的大概过程
实际上弹簧质量快模型就是倒立摆模型+竖直弹跳模型的耦合。奔跑时,身体会沿轨迹下落,直到脚落在地面上。然后,腿部发生弹性变形,吸收身体的动能,不久后它们又将能量返回,为下一步提供动力。尽管球的被动弹跳模型最终会停下来,但足式机器人系统可以通过维持腿部执行器不停地摆动补充失去的能量,运动系统除了像球一样弹跳(飞行相研究)外,还像倒立摆一样倾斜(支撑相研究)。【防盗标记–盒子君hzj】同一时刻仅有一条腿进行支撑而另一条腿处于腾空状态并向落足点跨越,通过在奔跑中让支撑/摆动两个相位周期交替最终实现了动态稳定,支撑相使用弹簧力输出控制机身高度和跨关节扭矩输出控制俯仰角度,腾空相采用跨关节输出控制落足位置进而调节机器人运动速度,当上述两个过程以步态周期连续交替时就能实现对机体高度、速度和姿态角的连续控制,即动态平衡。【防盗标记–盒子君hzj】
十五、倒立摆模型
(9)倒立摆有一个在随着支撑点改变的质心。当质心直接位于支撑点上方时,没有倾覆力矩,因此系统处于平衡状态。但是,质心在支撑点正上方的任何小位移都会产生倾覆力矩,【防盗标记–盒子君hzj】从而使倒立摆进一步远离平衡状态。平衡点不稳定。控制系统可以通过响应倾覆运动趋势来回移动支撑点来为倒立摆提供平衡。实际上,平衡的倒立摆始终处于倾斜状态,但是控制系统通过确保一个方向上的每个倾覆运动都被另一方向上的相等且相反的倾覆运动所平衡,从而使其不完全倾覆。
其他难点
(1)步态越快,频率越高,周期越小,电机响应速度就要越快,电机输出的力矩和精度越高,同时计算机性能也要越好,调试整定到的参数也要越好。对于算法,硬件,机械,电机都是一个挑战【防盗标记–盒子君hzj】
(2)有了一个框架和一个运行正常的系统,细化和优化各个部分细节的任务是改框架的方向
(3)解算的时候一条腿三个电机串联会相互影响,不利于解算,有两种解决办法 1、三个关节同时解算,但是在解算过程中,添加必要的约束,进行优化(搞MPC算法) 2、每个关节单独解算,完成各自的任务,如做下面的关节主要负责支撑相姿态平衡、中间的关节负责飞行相轨迹跟踪、最上面的关节负责支撑相侧向力干扰,或者权重固定分配(仅有下面两个关节是耦合的)
(4)关节解耦问题:三个关节力矩的合力要模拟虚拟弹簧压缩的力,通过雅可比矩阵的方法,并添加约束开始优化腿部动作时,这些细节将很重要
(5)对模型进行解耦后:发现力学是可以独立的,运动学可是可以独立的,并且可以用控制系统将它们分开——控制系统的每个部分的动作都好像仅影响一个变量,【防盗标记–盒子君hzj】并且相互作用表现为干扰(解耦后能化成但输入单输出模型,大大降低了系统的维度)
(6)对于机器人优化的问题,不要一下子着眼于整体优化,【防盗标记–盒子君hzj】最好是先解耦,分解为各个子问题,在对子问题进行优化(用控制的方法或者强化学习的方法),这样针对性更强,优化效果更改好,得到的数据越多,使用局部优化!!!和概率模型
(7)IMU陀螺仪测量机体在空间中的roll,pithch和yaw三个方向角,及其速度加速度
(8)深度学习:预测机体运动行为的轨迹可以使用运动方程的列表解。一个表可以通过向前、垂直和所需的速度来索引,它将提供必要的腿部触地角度。根据表格的大小,【防盗标记–盒子君hzj】这种方法可以提供任何所需的精度,这个表格的内容可以通过深度学习的方法进行求解(输入的是期望和现在的姿态,输出的是表格里面的值,类似于目标检测,输入额是图像,输出的是判断的结果,当然对应关系是先要确定下来的。落足点点可以预测,反正输入输出类的关系只要能建立映射关系的都能进行预测,价值函数的映射关系要基于动力学模型和运动学模型,【防盗标记–盒子君hzj】弊端是训练的时候很花时间,但是运行起来非常快,能够进行一定程度的学习和自适应,深度学习,估计,信息融合概率模型,MPC都是预测的一种方法),使用精心组织的表格数据的控制算法可为复杂的动态系统提供良好的控制。深度学习就是在表格法的基础上发展而来的
(9)在平地上落脚点估计是可行的,但是在复杂环境中落脚点多数会踏空,怎么解决?使用深度摄像头数据结合运动学和动力学估计,同时满足动力学和运动学的前提下,选择一个最优的落脚点(延伸试错的方法一旦有错误就不可能逆转的,动物70%的信息都来自于视觉,结合视觉做估计是具有预判性的)
(10)位置估计是狗的质心位置,我们要设定狗的可达范围,【防盗标记–盒子君hzj】在狗的可达范围内运用摄像头
(11)多关注现有动物的运动分析,能量学、生物学、运动学、动力学、电机学、控制学、传感器学、计算机学、认知学(深度学习)等等的学科交叉。以自然界为追求的模板,生物学既能帮我们证明什么是可能实现的,还能为我们提供高级运动的相关数据。这些研究能解决以下两个问题:【防盗标记–盒子君hzj】制造运动能力更优秀的足式运动体,以及理解足式动物的运动性能,能启发我们,什么行为是可能存在的。不幸的是,生物系统是非常复杂的,它有非常多的变量,精准的测量也很困难,实验人员能做的准备也很有限。或许,要关注一个问题的信息水平,本身就是困难的。
总结
这本书内容很多,这里我仅仅把一些核心的思想简单提炼出来,记录一下,以后可以快速回顾
本书的目的是:探究复杂动态动力学问题的简单控制方法,避免了对复杂地形的处理
参考资料
书籍 《Legged Robots that Balance》
|