“
运动控制技术的进步使得足式机器人的运动能力更强,而近来轨迹优化作为主流学术研究方向,能够为足式机器人运动控制的发展提供可能的指引。本期技术干货,我们邀请到了小米工程师徐喆,向我们介绍足式机器人运动控制的发展方向——轨迹优化。
”
一、前言
足式机器人的运动控制技术在近几十年取得了巨大的发展,80年代Marc Raibert提出的经典三分控制方法,实现了高动态的运动,也为后来Boston Dynamics的发展奠定了基础;90年代本田机器人研究院利用零力矩点控制(ZMP)实现了全尺寸仿人机器人Asimo的行走、奔跑和舞蹈,也代表了当时足式机器人的最高成就;新世纪以来,随着无框力矩电机的技术革命、计算机算力的持续增强和工业总线技术的发展,复杂的运动控制技术如全身运动控制(WBC)、模型预测控制(MPC)在足式机器人上应用成为了主流,足式机器人也如雨后春笋一样迎来了蓬勃的发展,像Boston Dynamics的Atlas、Spot机器人,MIT大学的Cheetah系列机器人、瑞士ETH大学的ANYmal系列机器人开始进入大家的视野。
虽然运动控制算法的发展给足式机器人带来更强的运动能力,但是与足式生物相比,机器人的运动能力仍然显得不足,那么未来足式机器人运动控制的发展方向会是什么呢?这篇文章会跟大家分享一个可能的方向——轨迹优化。
二、轨迹优化
>>>>1.什么是轨迹优化
轨迹优化指的是在满足某些约束的情况下,通过最小化代价函数,来设计一条轨迹的过程 [1]。用数学可以表示为如下形式,其中min中的部分就是代价函数,subject to中的内容就是约束,求解这个问题之后,就可以得到状态x和控制输入u随时间变化的轨迹。
轨迹优化的算法已经有将近100年的历史,但是由于其庞大的计算量,在计算机技术面世之后轨迹优化才被应用到实际中。最早使用轨迹优化的是航天航空和军事领域,例如SpaceX计算回收火箭下落的轨迹,就是一个典型的轨迹优化问题。如视频所示,火箭的初始状态是平行于地面的,轨迹优化需要解决的问题就是找到一条轨迹,让火箭竖直落在标靶附近。在这个例子中,需要满足的约束包括火箭的动力学模型、火箭的推力和加速度限制等;代价函数用来描述火箭落地的位置与指定位置的距离,一般用二次型来表示。最后,利用求解器解算这个问题后,我们就可以得到视频中橙色的火箭运动轨迹,以及对应的每一个时刻的推力大小和方向。
视频来源:https://www.youtube.com/watch?v=6qj3EfRTtkE
另外,将车停入车位,也是一个典型的轨迹优化的例子。侧方停车,倒车入库都是驾照的考试内容,人是通过经验总结和经验积累学会这一技能的。对于计算机而言,想要计算得到这个轨迹,就需要利用轨迹优化算法。在这个例子中,车辆需要满足最大转弯半径、最大速度、车轮不压线等约束。与火箭降落相同,代价函数用来描述车最后的位置尽量在车位内,这样,我们就可以得到停车所需要的轨迹了。
视频来源:https://www.youtube.com/watch?v=zJsilnVN_nY
>>>>2.轨迹优化问题的求解
轨迹优化问题的求解是一个相对复杂的数学问题,主要包括3大类,分别是打靶法(shooting),配点法(collocation)和微分动态规划法(Differential dynamic programming),这些分类在不同的书籍或者课程中的命名并不完全一样,但是表达的思想基本相同。
轨迹优化问题需要利用计算机求解,但是在计算机的离散世界中是不存在轨迹这个概念的,同时计算机也无法处理连续时间系统。所以就需要将系统的动力学变为离散的形式,并将轨迹优化问题翻译为有限参数的优化问题。
打靶法和配点法都是应用这一思路去转化轨迹优化问题。对于打靶法来说,它的逻辑是将轨迹离散为有限的节点,每个点上的状态x和输入u需要满足离散后的动力学,这样就可以得到有限的优化变量。例如停车问题,我们可以将轨迹按时间离散,从而将优化变量表示为每个离散时间点上车的状态量(包括车辆的位置和角度)和车辆的控制量(包括转向速度前进速度),这样轨迹优化就被转化为离散的参数优化问题,进而可以让计算机求解 [1][2][3][4]。
配点法在离散轨迹后,则是将轨迹用多项式来表示,通过优化多项式参数来找到最优的轨迹。配点法通常得到的解精度较低,但是面度复杂的约束更加鲁棒 [1][3][4]。
微分动态规划则与其他两种方法不同,它并不将轨迹优化问题翻译为有限参数优化问题,而是将离散后的系统在初始化的轨迹周围线性化,通过动力学和初始化的控制率计算系统未来状态,一直迭代到终止时刻,这样就得到了一条新的轨迹。之后,再根据最优条件更新初始状态和控制率,重复上述的过程。最后,经过多次迭代,算法就会逐渐收敛得到最优的轨迹 [1][5]。
三、轨迹优化在足式机器人上的应用
>>>>1.如何将轨迹优化应用在足式机器人上
从上文介绍的轨迹优化的基础知识可以知道,构建一个轨迹优化问题最重要的两点就是约束和代价函数的定义。对于问题的求解,由于需要比较强的数学和代码能力,这篇文章就不做过多的讨论了,如果有兴趣,可以参考MIT Russ Tedrake教授的公开课 [6]或者Matthew Kelly教授的公开视频 [7]。
约束
在机器人应用中,最重要的约束就是动力学约束,它负责描述机器人本身的物理特性。何为动力学呢?对于一个质点而言,F=ma就是其动力学,它表示想要产生期望的运动a,就需要在质点上施加对应的力F。在空间中F和a都是3维的向量,而且x,y,z方向的F和a都是线性关系,这在数学上就非常容易求解。
但是当讨论单个刚体动力学的时候,由于增加了转动,单刚体模型的自由度就变为了6维。不仅维度增加,考虑到力的作用点可能在刚体的任何位置,刚体的动力学方程就包括了叉乘运算;而且由于刚体相对于世界坐标系可以转动,坐标系变化矩阵中就会出现sin和cos等非线性项,这样的非线性系统就不能用线性系统的知识来求解了,求解的过程也会更加复杂,计算量也更大。
如果进一步将机器人所有刚体都考虑在内,那对于一个标准的12自由度四足机器人来说,系统的状态就达到了18维(躯干6维+关节12维),动力学方程也变得非常复杂,
其中 和是18*18维度的矩阵,代表惯性矩阵; 是维度为18的向量,代表非线性部分,包括重力和科里奥利力等; 是18*3维度的雅克比矩阵; 是维度为3的足底力向量,i=1……4表示腿的编号;τ 是12维度的向量,代表关节力矩。可以看到,在考虑了所有刚体后,系统的动力学就更加复杂了,维度和非线性程度都大大增加,这也是机器人轨迹优化问题难以求解的原因之一。
其他的约束还包括足底力约束,关节位置、速度力矩约束等等,如果运动中需要避障,也可以将障碍的位置加入约束。总之,约束用来描述系统一定不能违反的条件,可以是先天物理限制,也可以是人为增加的限制。不过在加入约束时需要注意,如果有相互矛盾的约束存在,就会造成轨迹优化问题无解。
代价函数
代价函数用于描述希望系统尽量到达的状态,比如希望躯干T 时刻在x方向上到达点 ,那利用二次型表达式就可以将代价函数表示为 ,这样代价函数的最小值在物理上就表示躯干在T 时刻距离 尽量近。
上述只描述了x方向,如果要把代价函数扩展到躯干的所有维度,就需要用向量的二次型表达式来描述。用向量 表示T 时刻躯干的期望状态,代价函数就可以表示为其中Q是一个半正定矩阵,用来表示各个维度的权重。Q非对角线上的元素一般为零,表示各个维度的期望没有耦合,对角线上元素的大小就表示对应状态的权重,更关心哪个维度就将哪个维度的权重加大。
利用上述的形式,可以将所有期望的状态都用向量的二次型形式来表达,形成代价函数,就可以求得满足约束条件下的最优轨迹了。
>>>>2.轨迹优化在足式机器人上的应用实例
对于足式机器人,在普通地面上行走的时候,可以根据简化模型或者工程经验规划躯干的轨迹。但是用户希望机器人除了能在普通路面运动外,还具有通过复杂环境的功能。如ETH的ANYmal视频中所示,通过复杂的地形时,机器人需要考虑环境信息,规划的落脚点要避开平面的边缘,还需要不断根据地形计算躯干的运动轨迹。应对这种需求,就需要考虑到地形约束和机器人各种约束,设计一个代价函数来保证机器人尽量跟随遥控器指令,从而利用轨迹优化计算出机器人最优的躯干轨迹。
视频来源:https://www.youtube.com/watch?v=v6MhPl2ICsc
在Spot机器人开门时,机器人不仅要考虑地面信息,还需要考虑环境信息,包括识别门和门把手的位置。与机械臂不同,四足机器人在开门的过程中,需要同时移动机身和机械臂的所有关节,也就是一边移动一边开门。针对这个场景建立轨迹优化问题,约束就包括末端沿着门的扇形轨迹移动,门与机器人不能产生碰撞,机器人对门的作用力不能过大等等,代价函数表示为机器人手臂末端和躯干都运动到期望的位置,最后通过求解这个问题,就可以得到机器人最优运动轨迹,以及夹爪与门相对作用力的轨迹等。
视频来源:https://www.youtube.com/watch?v=fUyU3lKzoio
Boston Dynamics的Atlas机器人可以代表当下足式机器人的最高水平,无论从运动能力还是感知能力都是当之无愧的世界第一。这个视频是Atlas最新的跑酷视频,机器人通过自身的相机和雷达实时感受环境信息,并结合指令规划自身的运动轨迹,从而完成复杂的跑酷运动。但是Boston Dynamics对于自身的技术没有做出详细的说明,我们只能从Atlas首席工程师Scott Kuindersma的公开演讲中得到一些启发。
视频来源:https://www.youtube.com/watch?v=tF4DML7FIWk
在Atlas的运动中,黑白色的是机器人当前的状态,红色的表示优化得到的机器人落地时的状态,蓝色的虚线是优化的轨迹,紫色和绿色的箭头表示优化得到的足底力,图中高低的台阶是机器人看到的环境信息。从Scott的演讲中我们可以知道,机器人不断根据当前的自身状态和环境信息,优化飞行中的轨迹和落地时的状态,以及落地后足底力的轨迹。从约束和代价函数角度来说,Atlas跑酷与ANYmal走复杂路面的问题构建基本相同,但是在快速运动中,会遇到更多的问题,包括高速的环境感知,高效的轨迹优化求解,以及在高动态的动作中精确控制所有关节等等。能够解决这些问题的能力,正是Boston Dynamics公司在腿足机器人领域深耕细作近40年技术积累的体现,也是中国机器人公司在软件、硬件以及算法上所应该追赶的方向。
图片来源:https://www.youtube.com/watch?v=EGABAx52GKI&t
四、结语
轨迹优化是现在学术的主流研究方向,在近3年的ICRA、IROS等机器人顶级会议上有多篇论文的发表,包括ETH、MIT等知名院校也在从事相关的研究。当然,轨迹优化并不是唯一的方向,例如深度学习、强化学习等方向也获得了学术界的广泛关注,很多优秀的工作也得到了行业的认可。运动控制技术的百花齐放,也一定会推动足式机器人在运动能力上的提升。伴随着足式机器人技术的进步,以及产业链的成熟和发展,相信足式机器人产业也将迎来蓬勃的发展,给人类的生产和生活带来更多便捷。
参考文献
[1] https://en.wikipedia.org/wiki/Trajectory_optimization
[2] John T. Betts "Practical Methods for Optimal Control and Estimation Using Nonlinear Programming" SIAM Advances in Design and Control, 2010.
[3] Survey of Numerical Methods for Trajectory Optimization; John T. Betts Journal of Guidance, Control, and Dynamics 1998; 0731-5090 vol.21 no.2 (193-207)
[4] Anil V. Rao "A survey of numerical methods for optimal control" Advances in Astronautical Sciences, 2009.
[5] David H. Jacobson, David Q. Mayne. "Differential Dynamic Programming" Elsevier, 1970.
[6] http://underactuated.mit.edu/trajopt.html
[7] http://www.matthewpeterkelly.com/tutorials/trajectoryOptimization/文章来源:https://www.toymoban.com/news/detail-421472.html
文章来源地址https://www.toymoban.com/news/detail-421472.html
到了这里,关于干货 | 足式机器人运动控制发展方向——轨迹优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!