两个机器人可以说分别代表了现代电机控制和液压控制人形机器人的巅峰,这也是他们最大的区别所在。对于人形机器人,我们主要可以将其分为机械结构(structure),感知(perception),控制(control)三大板块来讨论。
机械结构上:
Asimo的主要执行机构都是通过电机和精密的减速器构成,每一个关节的速度,扭矩都是通过电机控制器直接发号指令。概括地说,Asimo从小到一节手指上的三个串联关节,到大到胯部膝盖脚踝,都是电机控制器+电机+减速器,配合角度/电流检测/扭力传感器做反馈;
而Atlas从最开始的设计就一直贯彻Marc Raibert的“液压完爆其他一切”的理念,几乎每一个版本都是全部基于液压的。(其中有个例外,参加DRC决赛的时候貌似Atlas2的手腕关节的两个自由度是电机控制,应该是液压关节在那么小的空间内比较难做到360的旋转的精准控制)其驱动器的主要组成是主液压泵+液压管路+各种微型液压伺服阀+带有位置/压力等各种反馈的异型油缸。(光是听听就感觉复杂到爆,事实也是如此,在DRC场地上Atlas各种漏油,调试团队自备散沙5kg)
简单比较下电机和液压的优缺点:
相对液压系统,电机非常好控制。电机在机器人行业极受推崇的原因之一就是它的控制方式,给电机驱动器供上电,插好电机和电机背后的编码器,上位机一输信号一个最简单的电机系统就可以工作了,而且读取位置信号和电流之类的工作有很多电机控制器都是自带的(如果你愿意花钱的话)先不说眼花缭乱的电机控制器,就是电机本身也有大批的成品方案可以采购,Maxon的电机几乎成了机器人学界的标配,HUBO全身的电机也大多是200w的maxon电机配合谐波减速器制作而成,可以说相当模块化。好处也是显而易见:容易维修!容易取材!步态算法工程师可以真正的钻研算法而不用太纠结机器人本身的实现,因为电机的behavior相比其他执行器实在是太predictable了;这也是为什么Schaft,Hubo还有除了Atlas的所有其他DRC参赛队员都是在用电机———光是平衡本身就如此艰难了,何必要在执行机构上给自己找不愉快呢。。。
液压恰恰相反,及时想要使用最简单的液压执行器,也需要构建一整套液压系统:油箱,增压泵,溢流阀,分压阀,以及各种伺服液压阀,金属液压管路,还有最重要的油缸。光有这些还不够,前面说了这一坨才是“执行”,甚至没有反馈!想要位置,扭力的数据,需要自己配合光栅尺,线性磁编码,压力传感器改装/设计/生产各种非标液压缸。如果想要某个电机的扭力,电机控制板直接读电流换算下就是!那液压缸呢?只能发挥机械工程师的极限看看怎么样在有限的空间稳定的塞下这些传感器了。。。BD在Atlas上下的功夫很大一部分体现在此,而且全身各个地方的扭力需求,留给执行器的空间皆不相同,也就是说BD的工程师们需要花很多精力optimize,重新设计各个位置上的液压执行机构。想想做一个这样的执行器需要花多少功夫。。。然后Atlas全身上下用了二十八个,除了少量对称关节,几乎每一个制动器都有其独特的形态,结构和反馈方式。。。。。。。(28自由度的数据基于Atlas2,Atlas3才公布,期待IEEE spectrum的更多爆料)
而基于电机的HUBO全身的很多关节上从电机到谐波减速器都是重复利用的,其膝盖上的轮子和膝盖本身的电机以及减速器几乎都是同一个型号;DRC参赛队Thor更是把电机系统的模块化发展到了顶峰,整个机器人几乎就用了三种电机(Dynamixel Pro的摆线齿方案),由此可见液压相比电机真是不知道复杂到哪里去了。
这时候有人要问出这个非常有逻辑的问题了:”那么既然液压执行器这么麻烦,为什么要特地的用它呢?直接用电机做有什么不妥吗?“
是的用电机确实有很多问题。
最大的问题在于其能量输出密度太低。同样的空间内,用液压元件所做的功是电机的数倍甚至数十倍,简单的说液压执行器更有劲。而电机,想要保持娇小体型的前提下,要不然牺牲响应速度加扭力,要不然牺牲扭力加响应速度,要不然里外里就得用更大号的电机。类似的问题还有,电机的供能来自电池,而人形机器人能背的电池重量是有限的。而液压机器人的能量输出来源于柴油机,烧油的,自然是力大无穷还持久。虽然Atlas也需要电池,不过电池主要用在供电处理器,开关液压阀门这种小任务上,所以液压在持久力上远胜于电机。
(评论中讨论到了电机和液压响应速度的问题,我修正下之前的文中的错误:)
执行器件在一个机器人系统中算是最底层了。一个完整的控制链里,需要先由各种传感器收集环境信息,由独立的计算单元处理完这些信息返回给上层控制器,然后机器人的最上层控制器做决策发布详细的控制方案,最后发送给执行器。在整个链条中每个单元的频率是递减的,类似处理雷达,摄像头信息的处理器的主频非常高,而中央控制器可以稍低,底层的执行机构所需的频率就更低了。
从响应速度这个角度上说:够用就行。电机的调制带宽确实宽,能上到很高的频率,跟液压的响应速度不在一个量级上。然而在真实机器人控制上,只要液压阀的响应速度能够超过一个机器人自我平衡的最低限度的频率,它作为执行器就是可用的。可以说液压方案做的trade off是,通过摒弃一些同等级电机过剩的响应速度来获得更大的扭力输出。BD在这个方面就做的很成功。
还有一些其他方面。再拿HUBO举个例子,直流电机+谐波减速器做direct drive的方案有一个巨大的问题就是它的non-backdrivability(无法可逆推性),由于它对高扭力的需求,其高减速比导致在输出端你是推不动电机的,也就是说,机器人在很多状态下都可以被考虑成一个刚体。由此引发的一个问题就是shock absorption。人在向前跌倒的时候会下意识的用手去缓冲一下,然后我们柔软的躯体可以保证我们的安全,相反如果你有意识的将手臂绷紧,再向前摔倒,你会感觉到震动从地面一路传到你的躯体,让你全身疼很久,甚至发生骨折(不要尝试。。我举个栗子而已大家理解下就行了)机器人也一样,如果机器人倒下的速度和冲击力远远大于其关节能承受的程度,整个机器人会受到内伤,齿轮会折损,关节,机身结构件会变形。而液压系统内可以相对简单的通过增加储能器来充当damper,吸收冲击,让机器人坏的慢一点(笑
当然电机控制里本身也有很多方法能让电机输出变得带有弹性,阻抗控制(适用于直驱和小减速比的执行器),串联弹性单元(Serial Elastic Actuator,Baxter,Sawyer还有欧洲派系比较常见)都是解决方法,涉及到了整个电机结构的推导重建,而且在引入柔性的前提下会tradeoff一部分刚性,在人形机器人的设计中难点在于平衡取舍,所以论机械上实现要比液压复杂不少。
然而,Marc Raibert带领他的团队把这块硬骨头啃下来了。他在各处演讲的时候多次提到“液压是一种被严重低估的机器执行器”“电机进化了这么多轮我们的液压系统还是10年前的模样”。在他展示过自己的手稿中有这样一个极其精妙设计:将液压管路做进机器人的四肢机构件内部,这样就不会有那么多液压软管金属管暴露在外面。是不是有点类似人类的骨骼和血管?
相信在BD之后的数年,各个研究院也会投入更多的研发精力在液压机器人执行系统的研究上(IIT首当其冲),Marc Raibert在各种意义上都是机器人历史上的一个Visionary,他foresee了液压执行器的潜力,并且带着自己的机器人团队一步一步的将其实现出来了!!多么酷多么有情怀的团队!!虽然整个BD team都是十分牛逼的机器人工程师,我个人最钦佩BD里的机械工程师。做着最复杂精妙的机电设计,他们向世界上展示出了当代最顶尖的机械工程师应有的姿态!!
当然从感知,和更为重要的步态部分两台机器人都有明显的不同和各自的优劣,其重点尤其集中在如何保持以及如何dynamically adjust 机器人的 manipulator来完成一些动态任务。例如拿箱子这个看似简单的动作,涉及到了无数的机器人躯体质心变换,机械臂输出扭矩的动态调整,和跑在这一切之下的坚如磐石的双腿。
本人才疏学浅,今天简单谈谈Structure,到此为止。剩下的两个部分留给潜伏在知乎的大批MIT,WPI,CMU,GaTech,东大,ETH,IIT(此处指意大利的IIT)各大顶尖机器人研究所的博士博士后们,看paper看累了的时候欢迎大家来补充!
写的急,有些阐述不准确的地方,以及不排除自身理解偏差导致的表述偏差,欢迎各位指出文中的错误并附上细节(太长也可以私信),以帮助此文更加完善!