上周Google Atlas的视频放出来后,很多人除了用逆天这个词来形容Atlas之后就没法表示自己的惊叹了:这个怪物可以在山林雪地里健步如飞、这个怪物跌倒了可以自己爬起来、这个怪物用的液压驱动好贵吧、这个怪物怎么推它可以不倒的、这个怪物去年6月份还不是这个样子的……
不论这个怪物在你眼里多么牛掰,内行人一句“Atlas最牛逼的地方据在于它的动态控制和自平衡能力”就让你不得不关注这个所谓的动态控制和自平衡能力,因为它才是Atlas稳如泰山般步履的来源。
对此,声东击西的波士顿动力创始人兼主席马克·雷波特(Marc Raibert) 把这个进步主要归功于:“工程团队做了大量工作,让Atlas变得更轻更紧凑。我们使用3D打印制作机器人的腿部,这样制动器和液压管可以嵌入腿部结构里面,而不是作为独立单元放在外面。此外,我们还开发了定制版的伺服器,比之前使用的版本更小更轻。”
但是,对液压驱动背后的关键算法却一直讳莫如深,搜遍各种资料后,马克·雷波特只告诉我们一句意味深长的话,“这得感谢负责控制的团队,他们开发了新的算法,同时使用了改进后的机器人强度重量比,其他的性能也有进步。”至于具体算法是怎么样,IEEE的报道中也没能透露更多细节,但是,从小学开始就擅长解题、擅长破解的天朝人民开始蠢蠢欲动了。
视频晒出不久后,知乎和朋友圈里就开始各种炸锅的讨论,但一直没人一针见血说清楚它的算法是个咋回事,各种问A答B的长篇大论让我们以为这个问题又即将成为又一个机器圈‘未解之谜’时,我们看到有人在机器人相关的群里转老王的挖坑Atlas。
被Atlas刷了屏,忍不住挖了一下。走的好的原因:(1)通俗易懂常识般的控制思想;(2)简单明了高中生可懂的数学模型和控制算法;(3)高超的制造水平和孜孜不倦的调呀调。
控制思想来自于jerry pratt,pratt来自ihmc,ihmc的全名是人与机器认知研究所,请记住这个全名吧。控制思想最早见于2006年的论文,链接为 http://www.cs.cmu.edu/~cga/legs/Pratt_Goswami_Humanoids2006.pdf, 比较容易读懂的是2015年公开的专利http://www.freepatentsonline.com/8942848.html。这个控制思想的简要总结就是:踉跄。什么意思呢?就是在行走中遇到干扰要摔倒时,要踉跄起来,不要再保持优雅的姿势。
踉跄?如何踉跄?人在踉跄时是不会思考这个问题的,但pratt思考了,那就是走两步,没病走两步,不要走一步,不要一步到位,因为欲静风不止,要逐步把外部动量消耗了,再站稳脚根。
这个道理很简单呀,这个为什么没人想到呢?天知道,在大概70年代左右提出zmp这个笼罩了双足机器人无数年的南斯拉夫人某某某在2000年左右写了一篇文章,文章中他说:净顾着打仗了,好久没灌水了,真没想到zmp还在活跃着,我都有点不好意思了,当然,你们更应该不好意思,呵呵。在双足机器人领域,把一个机器人做出来就已经很不容易了,像样的机器人只集中少数人手中,so,so,没有机器人的混论坛用数学灌水,有机器人的混娱乐圈用姿色弄姿,so,so......
再说数学模型,pratt的观点是:我很笨,我建不出复杂的模型,我就用个一阶线性倒立摆吧,不过,应该加个转动惯量,因为人在踉跄时,用到了这个转动惯量保持平衡,于是在倒立摆的头上加了个飞轮,ok,模型出来了,ok,用高中物理一推导,就搞定了。
好机器人是制造出来的,没有声音再好的戏也出不来,只有造出稳定的机器人来,好思想才能与现实中碰出火花。技术状态不稳定的机器人能碰倒但绝没火花,就像善变的女人,只有下一件衣服才是最好的那件,这还调个毛呀。Atlas显然是一个站起来的野兽,需要估,需要调。夜以继日,孜孜不倦,just like me。
第一个挖坑文出现后,雷锋网联系到了这位老王,并将链接里的论文扫描了不下10遍,发现老王上面所说的踉跄算法主要是Atlas运动时候适用的模型,等这个突然静止或者抱箱子这种半静止状态下,这个倒立摆模型怎么有效的?
老王表示只是谈谈自己的理解(不一定正确):
倒立摆是解决动态平衡的模型,静止状态下用ZMP就ok, 让重心落在支撑区域。包括让一个毫无生命体征的机器人站起来的原理,也可以用ZMP,只要让ZMP点(不行走时就是重心)落在支撑区域。
(按你的挖坑逻辑,如果国内也有完美的液压驱动,也投入这个精力和财力,我们也能做出那样的机器人来吗?)
老王表示,是的!原理不难,难在工程化。
老王的挖坑出来没多久,雷锋网收到一个北航博士朋友转来的浙大熊蓉老师团队的挖坑,某种程度上对老王的挖坑路线做了更深入的剖析。
转发 浙大熊蓉老师的评价,供各位参考:
浙大熊老师团队的看法:昨天新Atlas视频出来之后被刷屏了一天,不论是专业人士还是看热闹的都出来冒泡,生怕跟风太晚。新Atlas确实在展示性上有了很大的提高,其展示的平衡能力确实达到了前所 未有的高度,但是一些专业人士表现出来的对BD一边倒的仰慕,以及对自身研究的悲观态度让我觉得整个人都不好了。直至看到王博士在微信上分析了Atlas可以行走好的原因,让 我觉得作为一个学术人也应该对新Atlas发表一点看法,在此也向王博士表示敬意!
新Atlas高稳定行走有几方面的特点:
1、从硬件上来说,新Atlas有几方面的变化,首先Atals的个子变小了,这是出于轻量化考虑,因为老版本的Atals通过外部电源供电,因此身高体重限制没有那么大,而新Atlas采 用电液驱动(也即EHA),并自身携带电池供电,尽管在噪声明显降下来了,但是负载能力也有所下降,因此需要更轻的机器人以及短腿不仅可以提高续航能力,关键是增加或保证 了腿部的动态响应,这个是延续了BigDog系列到Spot机器人的思路。
在这点上估计人家的关节加速度性能比起我们的就要高了一个数量级,这个很致命,没有了这条,一切算法都 是浮云啊浮云;其次新Atlas的腿部改用了类似HRP-2的悬臂结构,这种结构尽管有很多设计难点,但是同样具有仿生效果,人体的髋关节就是这样结构,它带来的优势是扩大机器 人摆腿范围,尤其是侧摆摆腿的范围变得更大,这个很重要,机器人前后方向的平衡好控制,而侧向相对更不稳定,扩大这个范围使得机器人的两腿可以交叉重叠行走,对于提升 平衡能力很关键,而且这种结构使得腿部的自由度由原来的6个变成了5个(髋偏转省掉了),通过腰部运动规划就可以弥补了,这个很高明。总得来说,新Atlas的硬件实力确实很强,比拼机器人最后比拼还是基础研究和基础工业,这个实在无力吐槽。
2、从控制算法来说,BD采用的方法主要是两种,牵引控制和落脚地(捕获点+捕获域),这次展示的两个主要亮点是雪地的行走平衡和仓库内的抗外部冲击平衡。从视频中可以看到 ,在雪地崎岖路面行走时,机器人是脚跟先着地的,而在仓库平地行走时脚板是完全平着着地的,这是两种不同的模式,为什么?
先来看仓库中的平地抗扰动,大家一看觉得这牛逼 得不要不要的,其实实现前后方向抗扰动压根儿就不是事儿!这里用到的算法就是落脚点选择的问题,而倒地爬起的动作似乎我们小仿人N年前就做到了,各种RoboCup仿人机器人 也都是可以完成的基本动作。再来看雪地平衡的问题,在雪地行走时,机器人是脚跟着地的,可以很明显地看到,这是有目的的,BD很聪明,因为通过脚跟着地可以把整个足部看 成一个点着,脚板的作用是用于顺应地形,然后其才是支撑,这种算法跟四足机器人中通过点式足部着地是不是很相似呢,那么这个算法是不是很难的,我想大家心中应该有数了 ,BD很聪明,这个方法确实也很实用。而这些算法Jerry Pratt都在论文中有提到过,比如“Capturability-based analysis and control of legged locomotion(part1&part2)” 。
2013年,我在实验室内部就提出过一个假设,如果机器人的平衡问题解决了,那么行走问题就相当于一个从平衡到不平衡,再从不平衡到平衡的一个循环,针对这个问题,我们也开展了相关的工作,这些都是为稳定行走做准备的:“Standing Balance Control for Position Control-Based Humanoid Robot(2013)”,“Compliance Control for Standing Maintenance of Humanoid Robots under Unknown External Disturbances(2014)”,“Push Recovery for Humanoid Robots with Passive Damped Ankles(2015)”,无奈实验室机器人不具备抗扰动跨步的能力,但是也开展了理论研究,我们的有博士论文对此有系统性阐述“欠驱动双足机器人冬天步行规划与抗扰动控制(2015)”,在受扰动时走一步不行,就走两步,两步不行就走N步;以及最近面向崎岖路面的论文“Walking Algorithm of Humanoid Robot on Uneven Terrain with Terrain Estimation(2016)”。如王博士所言,BD的算法不一定超级牛逼,但是简单明了,甚至是通熟易懂,没有大家想象的甩你几百条街那么夸张。
3、最后是调试调试再调试,经验总结都是从调试中摸索出来的,天下没有理想的机器人,只有调试出来的机器人,好的机器人是要不断改进不断制造出来的。 最后想说一句,尽管差距是存在的,但也无需悲观。
事后,雷锋网试图联系浙大的熊蓉老师进行进一步了解,不知何种原因,熊老师那边表示暂时不接受采访,对此,北理工智能机器人研究所的孔祥战博士看过这个评价后,表示熊老师说的相对客观。
哈工大深研院机电工程与自动化学院教授朱晓蕊看过之后则表示,熊老师是做这个细分方向研究的,所讲的总体值得信任。
在上周融智特种机器人联盟和RT创投咖啡举办的机器人大讲堂活动上,北航机器人研究所所长兼Ninebot博导王田苗在现场表示
过去 150公斤,现在只有 80 公斤,它在灵活度上是靠什么能够站起来,往前走,它很少发表论文,很少有专利,很多企业家和学者进行猜想。有的学者说它用了很多的理论,又有的企业家说其实很简单,就是多传感器高速的控制来调整它。另外有人看见它在雪地里走,发现它在雪地里走头不动,说人在雪地里走不可能不动,所以有人质疑你放的录像背后可能是有人遥控的。又有人说机器拿盒子,它是识别 LOGO,还是识别箱子,性质是不一样的。我们知道识别 LOGO 是比较容易的,颜色,包括图案,一旦识别箱子它是形状,有不同的角度,要分析箱子多重。又有人对它的骨骼做了研究,得出结论是它必须采用液压,我们称为数字液压。但是 CEO 创始人告诉我们他说他采用的是 3D 打印,意思就是说在液压外面他运用了一些硅胶材料把它直接打印在上面,而形成了一种能够支撑又能够防碰的机构。当然这都是由于它的出现人们对它的一种猜想。
不管怎么样说,我们认为它对机器人躯干和动力学建模的控制还是形成了 里程碑 的意义。有一个词叫做极致稳定、走向实用,其实这是记者的希望,现实很远很远。如果大家有幸打开它看的时候,首先第一件事情噪声还是很大的,要是在现实中应用怎么可能。如果大家再仔细看看它的成本,不亚于小汽车。如果大家再看看,它真的能够非结构化吗?可能也不见得。它为了那段录像可能会准备很长时间,而现实走在家庭里,走在社会里可能还有很多工作。我的意思是说作为新型的走向实用的仿人还有一段时间需要努力奋斗,当然我们还知 道有仿人、仿声、软体机器人。
王田苗指出Atlas的里程碑意义,但与此同时,他也指出这个机器人在现实中的应用还很遥远。对此,北理工的孔祥战博士表示,在大型仿人机器人的技术研究上,国内哈工大、北理工、浙大以及国防科大在这方面都有了比较好的积累,对于老王和熊蓉博士两位专业级人士对Atlas异口同声的不崇拜态度,和其它一些专业人士和大多数读者表现出来的一边倒态度,孔祥战博士是这样理解的:
不了解这个行业的人,都觉得这个机器人会对中美两国仿人机器人的差距构成很大威胁,在我们眼里这玩意要上战场至少10年20年,在我们眼里,人类更应该担心AI层面的。
听到上述人士对Atlas的各种见解,雷锋网打开了pratt 2006年的那篇最早的论文(http://www.cs.cmu.edu/~cga/legs/Pratt_Goswami_Humanoids2006.pdf)。
文章在开篇说明中就介绍到: This paper seeks to……——如何学会使用Capture Points(捕获点)这个概念,并在进一步的释义中提到,Capture Points是机器人为了 保持平衡的前可以落脚的点,而Capture Region式机器人所有可以落脚的点的集合。这个跟浙大熊蓉老师讲的“牵引控制和落脚地(捕获点+捕获域)”不谋而合。
论文里反复提到了线性倒立摆模型(Linear Inverted Pendulum Model)这个阐述解决capturability核心问题的数学模型;
也明确指出人类行走时会通过前倾或者摆动手臂的方式来利用角动量(=转动惯量*角速度 )( make use of angular momentum to maintain balance)来保持平衡,当这个模型是静止状态的时候,还没有角速度,我们只需把转动惯量考量进来,跟老王挖坑最后一段里说的转动惯量是同一个东西。
只是雷锋网疑惑的是,这个倒立摆模型一直讨论的问题是机器人在动态行走中如何保持平衡,那突然静止或者抱箱子这种半静止状态下,这个倒立摆模型怎么有效的?因为国内没有实际做这个Atlas机器人,没有实际经验来回答这个只需have a try或者用在米国用排除法就难简单解决的问题!
所以就有了老王上面的那段ZPM和capturability兼具的猜测。又或者说,熊老师在提到机器人的平衡问题时,只说“我们开展了相关工作,都是为稳定行走做准备的”,而没有一个肯定的结论,也跟我们差了一个实践过程脱不了干系。
花了这么多脑细胞研究,最后 我们想 对Atlas这次需要在意的地方和不需要那么在意的地方做一个梳理,让大家对Atlas有个更客观的认识。
不需要那么在意的地方
1. 追箱子。不管Atlas是用二维码定向定位的方式,还是视觉跟踪的方式,你想想现在自动驾驶牛逼的跟车功能,怎么说这都不是焦点。
2. 人否人工干预太多。Atlas的视频刚出来的时候,有人质疑Atlas在户外雷达没转是不是有人拿着遥控在干预;有人质疑它完成的搬盒子动作看起来是自动的,但它将盒子放置到货架上时屏幕后方到底发生了什么?当然这些质疑都是完全有必要的,但把重心放在这些琐碎问题上有点本末倒置的倾向。
需要在意的地方
1. 液压驱动。Atlas之所以这么牛逼,是基于液压这个高负载驱动,在不漏油、工艺精致、不担心成本的基础之上再开发算法的,在知乎工程师任赜宇表示光漏油一项就让他们头痛不已的现状下,承认它牛掰并没有什么可耻。
2. 倒地爬起不一定简单。虽然RoboCup比赛里声名斐然的Nao机器人可以轻松爬起来,但一个小仿人机器人,一个是大仿人机器人,按小仿人机器人和大仿人机器人保持平衡的难度系数推断,它们两者爬起来的难度也不是一个量级的。另外,去年6月份DARPA挑战赛现场的时候,Atlas摔倒后是爬不起的,如果爬起来很简单,Atlas也没必要把这个很简单的功能当法宝这次才展现出来。
3. 控制算法。因为波士顿方面没公布,我们目前并不确定,它是ZMP和capturability结合,还是基于capturability算法又做了什么简化改良,总之按视频里Atlas的表现,这套算法相当的牛。 特别是jerry pratt在2012年又放出了captureability论文的 part 2 , 有志之士可以看完这篇论文后再来发表你们的新意见~
4. 整合能力。无论如何,雷锋网坚持认为,Atlas在视频中表现出的抗外部冲击、倒地爬起、雪地健步如飞、搬箱子这些动作按现有技术,一一分解看起来难度不是那么大,但你若能用同一个机器人,消耗全部的这些分解动作,这背后强大的整合能力,也就是两位专业人士强调的调阿调,这种枯燥而琐碎的付出,或许才是Atlas真正一炮而红的法宝。
最后,雷锋网要告诉大家的是,这篇6000多字的文章仅仅是这个 开放式 探讨话题的开始,我们欢迎更多对对Atlas控制算法和牛逼细节有看法的人士加入这个探讨,也包容错误的可能性,因为我们要靠近一个真相——让Atlas不再神秘!