30 秒看懂
Russ Tedrake 是 MIT 教授,也是丰田研究院(Toyota Research Institute,TRI)的机器人研究副总裁。他认为最美的机器人运动,来自一台完全没有电机的机器。对话从被动动力学行走器和欠驱动(underactuated)控制讲起,一路谈到 Atlas 从一辆小型 Polaris 里爬出来、Drake 的接触仿真,以及为什么一张四条腿的桌子会成为一个悖论。无论是设计机器人,还是赤脚跑 12 英里到校园,他的思路都是同一个:先找出世界已经替你做了什么,再只补上物理不会自己提供的那部分能量和思考。
- 1Tedrake 见过的最美的机器人,没有电机、没有电池,也没有控制器:Steve Collins 和 Andy Ruina 做的那台靠重力驱动的三维行走器,沿着斜坡慢慢走下去。
- 2面对复杂系统,先问哪些动力学可以交给物理,再决定控制必须在哪里花力气,而不是抵消掉世界、强加更简单的方程。
- 3若想尝试赤脚跑,就把距离缩到过去的一成左右。最容易受伤的,正是原本就跑得又远又快的人。
- 4动用学习之前,先问这个问题到底该不该用学习。矩阵求逆交给线性代数;神经网络留给那些还没有成熟解析解的部分。
- 5每多一种接触构型,就是一个不同的动力学系统。一一列举是死路:人形机器人不会走遍自己所有的状态,试图穷举的规划器也一样。
- 6Tedrake 把 12 英里的通勤排进日程,当作思考时间,而不是挤出来的时间。你应该是比出发时感觉更好地结束这段路程。
按章节阅读完整文稿
最美的机器人运动,根本没有电机
Lex Fridman 开场就问 Russ Tedrake,他在动物或机器人身上见过的最美的运动是什么。Tedrake 是 MIT 的机器人学家,也是丰田研究院机器人研究副总裁,他没有举 Atlas 或本田的 Asimo,而是举了被动动力学行走器(passive dynamic walkers),尤其是 Steve Collins 和 Andy Ruina 在康奈尔大学做出的三维机器。把它放在一个小斜坡上,推一把,唯一的动力来源就是重力。没有控制器,没有电池。大约在 2001 年前后,它看起来比他们见过的任何一台有动力的机器人都更自然,也更像人。
最简单的模型是一个没有轮缘的自行车轮:只剩轮毂和辐条。推它一把,它照样能顺着坡往下滚。每根辐条撞击地面时都会损失一点能量,每向前迈一步又补回一点。这两者可以相互平衡,形成稳定的周期性步态:太慢就加速,太快就减速。去掉多余的辐条,在中间加一个铰链,就成了指南针式双足步行器(compass-gait biped)。Ted McGeer 最早做了这个练习,Collins 和 Ruina 又给它加上了膝盖、手臂和躯干。手臂会摆动。被推一下之后,它的动作看起来就像在公园里散步。
造它的过程,介于艺术与科学之间。这套系统谈不上精确建模,也谈不上精确控制:膝盖上的吸盘得在恰好的时刻吸附,又在恰好的时刻松开,这种分寸只能靠人手一点点调出来。当时,本田的 Asimo 是世界上最好的步行机器人,工程上堪称奇迹,但它走路时膝盖依然是弯的,像是踩在烧红的炭上。Tedrake 认为 Asimo 有点被冤枉,Atlas 走路时膝盖同样是弯的。这些机器的毛病在于能耗太高。要驾驭这种复杂性,常见办法是让电机去抵消重力,抹掉世界本身的动力学,再换上更简单、便于分析的动力学。
被动行走器证明,人们其实不必那样做:让物理完成大部分工作,需要的地方再补上一点能量。Tedrake 的这句话几乎可以当作控制领域的口号:与其替换掉世界施加给我们的力,不如“让世界推着我们走,我们顺着流走”。当时的人都认为,最终的答案仍然离不开控制。关键在于,他们做控制的方式,未必是应该的方式。
一条死鱼逆流而上,撕开了控制与力学之间的界线
在动物这边,Tedrake 最喜欢的例子来自 George Lauder 在哈佛和 MIT 做的水槽实验。彩虹鳟鱼在产卵季逆流而上时,常常待在石头后面,看起来像在偷懒,也可能是一种省力的办法。研究者在水槽里放一根圆柱体,制造出卡门涡街(Kármán vortex street),然后从上方观察一条活鱼。离开石头时,这条鱼有一种固定的步态,就像人走路一样,一眼就能认出来。到了石头后面,步态就变了:它的身体与涡流发生共振,在一个个涡旋之间“冲浪”。
活鱼的实验,仍然没有把大脑排除在外。决定性的实验,也是 Tedrake 最喜欢的实验之一,用的是一条死鱼,用嘴拴在石头上,以免它被冲进格栅。按理说,它应该在尾流里随波翻滚。可它却开始逆流游动:没有大脑,没有电机,也没有控制。身体的力学结构与涡街发生了共振。他提到,效率并不是自然界唯一的目标:动物首先要避免被吃掉,然后在其他条件相同的情况下,才会节省能量。动物还能在特殊情况下调整身体的力学特性,把效率找回来。
他不愿意在控制和力学之间划出一道明显的界线。电机断电的机器人,依然有被动动力学,重力照样起作用。弹簧和阻尼器属于力学,肌肉和肌腱本身就是弹簧和阻尼器。真正主动做功的,是那些把能量输入系统的部分;控制器的职责,只是给电机发指令。两者的区别在于,你选择了发指令,还是让电机保持关闭。身体往往低估了力学的作用。二十出头时,Tedrake 失掉了一根手指,具体说是第五掌骨这块骨头,而开罐子、撞到东西时都要用到它。第四掌骨从未习惯承受这种接触,起初疼得厉害。两三年后,骨头自己重新塑形,几何形状也变了。适应不只发生在大脑里。
关于行走和饮食的进化论证,大多站不住脚
Fridman 提到一种流行的说法:人类用两条腿走路,是为了把食物带回去分享。Tedrake 读过不少关于行走和人体进化的书,但对这类说法保持警惕。进化论证很容易写得站不住脚,其中大多数大概也确实如此。真正决定早期人类群体能否存活的,往往是冰期到来时谁恰好站在合适的位置,或者谁找到的食物在冰川到来后仍然能吃。丰年时谁吃得好,影响并不大。上百万个变量同时在起作用,而这些故事里的信息却很单薄。
Tedrake 同意,历史常常取决于一些事后看来才有意义、当时却显得毫无道理的小事。比如有人睡错了人,被石头砸中脑袋,然后部落之间就打了起来。饮食上的说法也应该用同样的眼光去看。当时包括 Fridman 在内的一群人,用进化论证明人只该吃肉。Tedrake 的母亲认为这样非常不健康。他吃什么,是因为吃了感觉好。Nassim Taleb 关于随机性的著作,以及《黑天鹅》,都提出了一个观点:起决定作用的,很可能是少数几个随机事件。
他花了好几年研究双足行走,因为这件事很难,也因为它以他认为重要的方式挑战着控制理论。他不会因此劝你去开一家双足机器人公司。最有说服力的实际理由是:世界是为人的身体而建的,所以人形机器人是在当今世界里工作的一个不错选择,包括一些其他外形的机器人很难应付的自然场所。他猜测,长远来看,我们会为机器人重新设计环境,到那时这个理由就站不住了。
赤脚跑 12 英里,反馈立竿见影;通勤也是思考的时间
Tedrake 仍然赤脚跑步,他的妻子对此颇有微词。他并不是先当跑者,后来才改信赤脚。他参加了动态行走会议(Dynamic Walking Conference),那里生物力学研究者和步行机器人研究者坐在同一个会场,他听了很多关于赤脚力学的报告,之后才读《天生就会跑》。他是先掌握了理论,再开始练长距离的,因此不必去改掉穿鞋时养成的步态。他不会四处劝人,有些人穿鞋跑得很漂亮。对他来说,这是一场长线的游戏。你可以穿鞋跑 10 英里,途中感觉还好,晚上却发现膝盖疼。赤脚跑时,落地一重就会立刻感到疼,人会调整步态,而且常常是下意识的。赤脚跑了很多英里之后再穿回鞋子,步态会变得更糟。
他的目标是老了还能跑,而不是赢比赛,所以短期的小伤换来长期能用的膝盖,在他看来很划算。Fridman 走的是另一条路:他读了那本书,意识到自己步幅太大、脚跟重重砸地,于是花了很长时间,跟着每分钟约 180 拍的歌曲练小步幅。赤脚是更彻底的办法,只调整步频,也能解决不少问题。Tedrake 给初学者的建议只有一个词:慢。最容易受伤的,是那些本来就跑得很好的人:脱了鞋,还想按原来的距离和速度去跑。他算是运气好,刚开始根本跑不远。他随身带着水袜或跑步凉鞋,路况太糟的时候就穿上。脚上的肌肉和感受器,和手一样多,我们却把它塞进一双硬邦邦的鞋子里。赤脚带来的是更多的本体感觉(proprioception)。划伤一周就能好,膝盖废了却会让人再也跑不了。脚底也会变得结实,现在他几乎什么路面都能跑。他向别人推荐 Barefoot Ken Bob 的书,说那是他见过的描述得最好的一本。
他住在离 MIT 大约 12 英里的地方,把通勤玩出了花样:跑步去、骑车回,或者反过来,还试过轮滑,最近则是划船走查尔斯河,那是绕了很远的路。有人问他,花这么多时间在路上,怎么说得过去。对他来说,通勤正是他思考的时候。他上午工作,之后需要坐车去开会前让想法沉淀一下,晚上则靠坐车回家,把一天的事情放下。他跑得并不快,最快的几次,是赶去托儿所的时候,因为托儿所按分钟收费。他把一天安排在通勤的节奏里,很少觉得两者有冲突,因为那段思考时间让工作做得更好。David Goggins 那种主动追求苦难的路线,是他想要的反面:应该是跑完比出发时感觉更好。疫情让他失去了通勤,他就很开心地和妻子、孩子在城里散步。关键在于,离开键盘足够长的时间,让东西慢慢凝练成型。
机器人学里最美的想法,仍是清晰的思考
被问到这个领域里最美的想法,Tedrake 没有举出某个算法。他有幸常与一些真正出色的控制理论学者共事,这些人能把纠缠不清的难题讲得明明白白,对他影响深远。录制前几周,他花了一整天参加一场 Zoom 机器人会议,点子很多;之后又和一位很喜欢的理论学者开了一次很晚的会。两人从抽象的“如果……会怎样”出发,一路推到极其精确的结论,而结论所针对的系统,复杂程度离他真正挂心的那些也没简单到哪里去。人们往往低估了这类思考的力量。
深度学习很了不起,Tedrake 自己也大量使用,它已经改变了世界。但它也让事情很容易就能跑起来,人们因此不必那么批判地去思考。作为教育者,他要做的是让学生仍然尝到更严谨的那条路的味道。你完全可以训练一个网络去做矩阵求逆,但你不该这么做。严谨的思考,就是清楚工具的适用范围和局限。去上一门分析课,逼自己即便面对有理数也要仔细推敲,这种训练可以迁移到别的地方。把一个系统简化成“玩具”模型,这本身并不是毛病。如果牛顿和伽利略手上有深度学习,做完实验后交给世界的是一个神经网络,Tedrake 认为我们不会像今天这样走得这么远。对现象给出最简单的解释,本身就有价值。即使神经网络能拟合出类似薛定谔方程的东西,他还是希望再出一个牛顿,因为更难的任务仍然需要更简单的模型。
简单不等于低维。经典的模型降阶(model reduction),是在误差可以接受的前提下,寻找最小的状态维数;但 Tedrake 认为,状态维数并不是衡量复杂度的正确指标。他最关心的例子,是机器人手抓取物体。方程之所以看起来极其复杂,关键在于接触不断地开启和关闭,手在空中自由运动倒在其次。手在空中时,用高维但简单的描述就足够了。可一旦为手上的每一个多边形、物体上的每一个多边形,以及它们接触与否的每一种组合,都分别写一套动力学,组合数就会爆炸。他希望能有一种更接近直觉物理的概括方式,并且对机器学习能帮我们找到它持乐观态度。
DARPA 机器人挑战赛本是一次学术假期,却教会他测试
DARPA 机器人挑战赛(DRC)紧跟在自动驾驶的 Grand Challenge 和 Urban Challenge 之后。提出这个构想的,是当时在 DARPA 任职的 Gill Pratt。他的出发点是福岛核事故:如果当时已经有机器人能派进去,事故或许能被控制住;事后也有很多次,人们希望能派机器进去。波士顿动力负责提供 Atlas,一台 400 磅的人形机器人。硬件团队自带机器人;软件团队则要先赢得虚拟机器人挑战赛(Virtual Robotics Challenge),才有资格使用 Atlas。Tedrake 当时并没有完全想清楚自己报名参加的是什么。比赛任务混合了崎岖地形、阀门、电钻,还有在墙上打孔。比赛本可以偏重行走,也可以偏重感知和规划;最后,复杂地形上的移动占了很大的比重。自主性始终是核心论点:网络降级时,只能传过去几个比特的信息,机器人就必须能接收“去那边,做这件事”这样的指令,然后自己决定每一步怎么走。
他刚拿到终身教职,手里有一个大多数人拿来休息的学术假。他把假期的后半段用来推进团队喜欢的算法,也用来做真正的软件工程。团队几乎住在实验室里。有一段很累的记忆:Atlas 挂在吊带上软绵绵地垂着,人在地上铺煤渣砖,好让机器人能迈几步。虚拟赛本身就很戏剧化。Gazebo 跑在云端。组织方要求物理仿真实时运行,因为有人在环中操作,而直到比赛前几天,仿真器还没有完全达到这一点。这对 Tedrake 反而是好事:他的控制器是一个规模很大的优化问题,同样只能跑到约 0.7 倍实时速度。结果比赛前三天,一封邮件来了:好消息,仿真器现在是 1.0 倍速了。
如果二次规划(quadratic program)解不出来,机器人就会摔倒,感知再好也救不了它。那天晚上,他找到还在实验室的 Frank Pimenta,两人一起写了一个新的求解器。他们没有去缩小问题的规模,做法是热启动(warm start):控制频率很高,上一步的解和下一步的解很接近。外面包了一层又薄又快的程序,先检查附近的解能否让机器人保持稳定,只有不行时,才退回到完整的商用求解器。这个回退分支没法真正测试,因为一旦回退,就意味着机器人真的会摔倒。他们就是在这样的悬崖边上完成了比赛。后来,在实体比赛前几天,机器人以一种从未出现过的方式摔倒了。他们几乎一直有一台机器在跑,时间还是不够。最终夺冠的队伍有两台机器人,工程水平一流,测试节奏也是其他队伍比不上的。
对 Tedrake 来说,测试现在的范围,从单个函数的单元测试,一直到整个软件栈的集成测试。人形机器人的系统级规格很难写。在真实机器人上,同一个实验无法重复做两次。你只能希望日志里记下了故障,但大概率永远无法精确复现。工作上信奉的是蒙特卡洛(Monte Carlo):尽可能多地跑试验,让环境偏向你担心的那些情况,并接受这本质上是一种有些随机的搜索。真正会伤到你的故障,往往过于细微,很难再放回仿真里。
DRC 最难的任务,是让 400 磅的机器人从小车里出来
并非每一次摔倒都是软件的问题。有一次,Atlas 坐在门边等绿灯,一直等到电池耗尽,然后向后翻倒了。在 Tedrake 看来,最难的任务是从 Polaris 里出来。开车相对容易。组织方给了他们一台 400 磅的人形机器人,还有一辆机器人根本塞不进去的小车。脚伸不到转向柱下面,于是机器人横跨在车的中间,一只脚在副驾,一只脚在驾驶位,用左手转向。然后还要停车,并且要在没有车门、空间狭窄的车厢里,从下蹲的姿势站起来。Fridman 说,看过那些视频之后,上下车这件事,尤其是受伤的时候,在他眼里再也不一样了。这确实是一个真正的控制难题。
他们执行的流程,很接近 NASA 的发射前检查清单。比赛第一天,要先关掉控制左脚的控制器(它负责踩油门),然后打开平衡控制器。第一天大家都很紧张,有人漏掉了这一步。机器人当时处在一个很别扭的姿势,正想把一条长腿从车侧挪出去,驾驶控制器却命令左脚动了一下。在开阔地面上,他们拍过用 10 英尺长的杆子去捅 Atlas、看它恢复平衡的视频。但在车里,没有地方可以迈步,所以次级平衡机制也就用不上了。脚撞到座椅,或许还能挽救。真正致命的是晃动:尾骨原本离座椅只有一点点距离,结果撞了上去,另一只脚也随之离地。计划里没有任何一条,写的是屁股坐在座椅上、双脚悬空时该怎么办。
偏离剧本之后,连状态估计(state estimation)也失灵了。它是把传感器数据融合起来、判断机器人自身状态的系统,它不认识这个姿势,所以给出的预测全都是错的。Atlas 剧烈晃动,脸朝下摔进了终点区域。严格来说,他们拿到了“离开车辆”这一项的分数。全场哄笑。Atlas 能不能学会应对那种姿势?这仍然是个大挑战。波士顿动力和世界上其他做腿式机器人的团队,擅长的大多是脚与地面接触的情况,而且通常是点足,脚底只是几个点。肘部撞到墙上,就是另一回事了。成熟的控制系统会设置层层保护,防止控制器做出蠢事。但人类会利用计划之外的接触:被人推了一把,伸手扶一下,就制造出一个全新的接触点。四足机器人会用脚这样做,而在其他地方,这个领域大多害怕接触。规划领域里还有一整个分支叫无碰撞运动规划,里面有许多复杂的算法,目的就是让机器人永远不碰到世界。问题在于,接触仍然是一个很难的控制与感知问题。
摔跤是接触的艺术;带枪的 Spot,很大程度上只是我们讲给自己听的故事
Fridman 摔过跤,也练柔术,他问机器人什么时候能在比赛里赢过人类。Tedrake 承认这事很难:对手本身就是一个博弈意义上的双向动态系统。若撇开对手,只看接触上的推理,倒有理由乐观,但眼下对此的理解仍相当有限。他最近越来越多地把精力放在操作(manipulation)上,那里的接触更丰富。深度学习策略在接触中能有不错的表现,也有模型可以预测物体会怎样运动,但要依据这些模型迅速做决策,至今仍无解。人类恐怕也不是在临场求解最优的接触序列:先慢慢学会基本功,再一点点打磨。要在实时运行中,为人形机器人模型做最优序列规划,这个问题或许永远得不到解决。
Fridman 着迷的,是熟练之后的那种松弛感:几乎不费力地把很大的重量甩出去,其中很多是身体在学习。Tedrake 听到的则是层级和组合,而目前的系统对此捕捉得并不好。底层是反射,顶层是规划一次度假,中间有某种神奇的东西。Josh Tenenbaum 常玩的一个游戏能说明这一点:桌上堆着杂物,挑出三样,比如手机、鞋子和纸巾盒,先用右手拿起第一样,再用左手拿起第二样,然后把这两样当作工具,去夹起第三样。Tedrake 自己也从来没有用鞋子和矿泉水瓶去夹过手机。第一次做会很慢,但大多数时候,你还是能想出办法。令人佩服的,是这种灵活性:在熟悉的领域调用练熟的控制器,需要规划的时候再调用模型。熟练也会细化内部模型:你会发现自己原本并不知道有这些肌肉和平衡能力。
RoboCup 有一个 2050 年的目标:机器人足球队击败人类世界冠军。Fridman 问,这件事和机器人 UFC 冠军,哪个会先实现。Tedrake 说,哪种技术更难并不是关键问题,真正重要的是谁先把组织建立起来。RoboCup 已经积累了几十年的社群,机器人也越来越多是人形的。如果想要机器人格斗,现在就该开始。另外,如果机器人真的按照成文规则踢足球,它们的踢法会和人完全不同,会钻规则的空子,会利用执行器和快速反馈。DRC 已经说明,要写出一套没人能钻空子的规则有多难。格斗本身就有些特殊:Atlas 踢你一下小腿,比赛就结束了。
Fridman 提到《黑镜》(Black Mirror)里那集带枪的机器狗。Tedrake 没看过那一集,但他知道它是什么时候播出的。某个普通的周一,他给 MIT 的教授们放了一段波士顿动力 Spot 的早期视频,只见恐惧的神色在整个房间里蔓延。这类视频他已经放过好几年了。那一集改变了人们看这些视频的方式。他不是心理学家,但机器人研究者确实有责任去思考机器人对社会的影响。他以前开玩笑说,跑五分钟,机器人的电池就没电了;现在不行了,电池能撑一个多小时。恐惧在一定程度上是文化造成的:他同龄的美国人看着《终结者》长大,日本孩子看的是《铁臂阿童木》。对于那些把 Spot 上街巡逻看作反乌托邦的人,他不会一口否定;未来本来就充满不确定性。但从技术上说,我们还没到那一步,软件和无人机如今已经能造成破坏。他是个技术乐观主义者:我们会继续创造,会搞砸一些事情,也会靠新的发明走出来。恐惧的一部分来自拟人化,人们把机器并不具备的自我意识赋予了它。关于存在性风险,他更认同 Rodney Brooks 的说法:不会是机器人对人类,因为我们会变成机器人化的人,比如手机、助听器、心脏起搏器、假肢,以及最终的各种接口。所以,智能手机才是我们已经需要担心的那个机器人。信息误导、注意力被操控、人们在网上如何对待彼此,这些问题都是人的问题。
洗碗机不是机器人,四条腿的桌子也没有唯一解
什么是机器人?通行的定义是计算能力加上做机械功的能力,大体上接近。机器人学还有一个魔咒:某样东西一旦真正好用,人们就不再叫它机器人。家里的洗碗机是一套精巧的机构,里面的芯片也在做复杂的事,可没人会把它当成机器人。这个领域总要去解决下一个难题,很少有机会庆祝。工厂里的机械臂相当成功,但人们一想到机器人,它们未必第一个浮现。他半开玩笑地说:机器人,就是经常出故障的自动化。不同机器人的控制需求差别很大:放在台面上、从不触碰人的机器,一辆车,一架无人机,一台步行器,一只手。他真正热衷的,是与世界的动态交互。接触,正是把这类问题同经典控制的辉煌战绩区分开来的东西。拿战斗机这类本身不稳定的飞行器来说,还有电网、航天器着陆,它们大体上都是连续变化的。副翼的一个小指令只带来小幅的航迹变化,于是可以线性化,再动用线性代数。
建立接触和断开接触,都是不连续的过程。接触发生的先后次序与方式,会以复杂的方式改变结果。仿真器通常把物体当作刚体,这就会导出悖论。一张三条腿的凳子,每条腿只在一个点上着地,受力和力矩平衡之后,三个支撑力是唯一确定的。一张四条腿的桌子,如果四条腿加工得一样高、静止地放在地上,情况就变了:守恒定律允许多种支撑力组合。这本来还不算大问题,直到库仑摩擦(Coulomb friction)登场:最大静摩擦力与法向力成正比。如果不知道四条腿各自承受的法向力,推这张桌子时,就无从判断它会朝哪边滑,左边、右边,还是直着走。软接触在数值计算上有时反而更难处理,所以很多引擎仍保持刚性,或者把两种方法混用。这也是操作任务的控制器至今达不到战斗机那种水准的原因:接触发生的那一刻,方程无法告诉你接下来会发生什么。
标准的应对办法是微分包含(differential inclusion):这是一种集合值的方程,意思是在这种构型、受这些力的情况下,可能出现的是一组结果。不光滑的变化发生在接触建立或断开的时候,也发生在静摩擦转为滑动、速度突然跳变的时候。鲁棒控制(robust control)是教科书上的标准答案:设计一个控制器,不论世界朝哪个方向“想让”桌子移动,它都能完成任务,但控制系统要为此背上更重的负担。更糟的是组合爆炸。每一种接触模式,无论是粘着还是滑动,也无论身体哪些部位在接触,都是一个不同的系统。Tedrake 说,他没有时间枚举人形机器人的全部接触构型,人类也从来没把自己的所有构型都走过一遍。以一只平放的脚为例,脚跟和脚尖就有四种模式;再加上凸起的脚底,以及左右脚趾先后触地的时间差,情况还会更细。如果要把灵巧的手碰到矿泉水瓶的每一种先后顺序都列出来,那就完了。走路之所以还能靠这套办法撑住,是因为脚只和地面的几个点打交道;灵巧的手没有这份福气。
有人认为,机器人学的瓶颈在于接触仿真不够准。Tedrake 认为这种说法只对了一部分,而且原因也没说对。控制方程我们已经掌握,连它的小毛病也清楚;原则上,仿真应该能做得很准。难点在于,写出真正好用的仿真器,需要一支专业工程团队长期投入,这跟一个活跃的开源社区并不是一回事。Drake 正是为此而生。他不太愿意只称它为仿真器,因为它由三部分组成。第一部分是优化层,用 C++ 和 Python 包装商用求解器,能处理线性规划(LP)、二次规划(QP)、二阶锥规划(SOCP)和混合整数规划,负责把问题整理好,交给合适的求解器。第二部分是系统建模语言,类似 LabVIEW 或 Simulink,用模块图搭建复杂系统;它比 ROS 更明确地要求声明状态和参数,因此能在同一进程中运行,支持控制设计,也能回放。第三部分是物理引擎,包括多体动力学和渲染,测试套件细致到近乎偏执,连翻滚的卫星、旋转的陀螺都要测;与此同时,团队也在研究如何更好地仿真接触。ROS 让拼接零件很容易,但像土豆先生(Mr. Potato Head)那样随意拼凑的软件栈,很难想得清楚。对每个部件多提一些要求,才能验证整体,也才能针对整体去学习。
装洗碗机考的是验证,不是抓取
丰田研究院在 Drake 上投入了不少资金。Michael Sherman 带领一支动力学团队,另有一支操作团队,用装洗碗机来研究一些很难的边角情况。Tedrake 说,如果他们只关心从水槽里拿出一个盘子,完全可以不做仿真,直接写一个控制器就收工。他们真正想要的,是通往产品的路径:能处理任何一只盘子,适应任何人的厨房,并且有足够的把握部署上线。深度学习感知、复杂动力学、控制器和规划器,都在这个闭环里。问题在于,如何让这些复杂性经受住工程纪律和验证的检验。DRC 让他明白,最后那道缝隙不能扔过墙去,留给别人加固。这可能会改变系统的编写方式。如果机器人在测试中打碎了一只盘子,你怎么把它记录下来?真实实验无法原样重来。你是把这次一次性的事件搬回仿真里,修改控制器,确保它不再发生;还是把它加进一个分布里,相信平均情况能覆盖它?
找出边角情况的办法,还有很大的改进空间。主动实验设计在控制理论里已经研究了四十年,如今有人把它叫作好奇心,也就是探索与利用之间的取舍。老一些的说法更具体:先刻画系统中的不确定性,再设计一个能提供最多信息的实验,也就是最能让你摸清某个参数的那条轨迹。把这套思路推广到深度网络加规划器的系统上,很难。他们做过证伪(falsification)和稀有事件仿真:只要仿真器可信,就在里面反复施压,把时间花在控制器表现欠佳的地方。设想一下,你总是只在新德里市中心测试一辆车。团队内部开玩笑,把它叫作“黑天鹅生成器”:要的不只是稀有事件,而是影响巨大的稀有事件。人类也不太擅长追问“最坏会是什么情况”,不过地球上有几十亿人,大家都在写博客,记录自己干过的蠢事。丰田研究院押注的车队学习(fleet learning)是:一台人形机器人没有时间走遍自己的全部状态,但一群相似的机器也许做得到,而且它们的计算方式本就该与我们不同。Fridman 注意到,人们喜欢看一个系统不断进步:特斯拉车主能容忍一个还很笨、却在学习的辅助驾驶。盘子摔了也不会死人,这也是家用机器人比汽车更能容忍试错的原因。
家里的 Roomba 已经四处跑动,Alexa 和 Google Home 已经待在厨房台面上,能做实际事情的机械臂,只是时间问题。丰田的切入点是“原地养老”(aging in place):帮助老人留在自己家里,保持活跃与社交,提升生活质量。这未必是最赚钱的第一个市场,也很微妙,但它可能是无论如何都得解决的问题。年纪大的人往往不熟悉新技术,这一点让 Tedrake 觉得很有意思:机器在摸索人类,人类也要摸索这种新事物。Fridman 的父母对机器人几乎是一张白纸,他们没看过《黑镜》,于是会问:它能帮我做什么?无人机已从学术界走进产业,自动驾驶正处在同一股浪潮里;操作类机器人会先在物流领域落地,家庭场景紧随其后。他认为这一切会迅速爆发。
欠驱动是世界交给我们的常态;整只手包住鸡蛋,比两根手指更安全
Tedrake 不喜欢那种害怕全身接触的机器人。仔细看它们真正接触世界的地方,几乎都是软的:指尖有软垫,脚底有橡胶;可再往上看,整条手臂是纯铝的。这样一来,用一条几乎刚性的手臂去碰桌子,刚体接触那一堆麻烦又回来了。柔软会改变力学。点接触变成带有扭转摩擦的面接触,载荷也能分散开。用两个点夹住鸡蛋,要有足够的力才能托住它,而这样的力很可能压裂蛋壳;如果整只手包住鸡蛋,载荷就会分散到整个蛋壳上。柔软并不会让计算问题变得更糟。数学在很长时间里都偏向刚体。软接触更平滑:小动作不会引发不连续的灾难,东西也不容易飞出去。柔软的硬件同样需要传感器。丰田研究院的一个团队,把摄像头放在软手的皮肤后面,获得了丰富的触觉数据。这在操作中很重要:你费力地做好头戴式视觉,认出物体,伸手去抓,可就在关键时刻,手挡住了所有摄像头。没有触觉,最关键的时候你就是瞎的。
他在 MIT 开的研究生课叫欠驱动机器人(Underactuated Robotics),讲义和视频都已放到网上。第一讲基本就是在解释课程名字。全驱动(fully actuated)指执行器的数量与自由度相同,只要拿掉一个电机,系统就成了欠驱动。有位朋友开玩笑问:如果经费更充足,你会去做全驱动机器人吗?他说不会,世界交给我们的本来就是欠驱动的机器。他自己也是一台欠驱动的机器人:有些部位的肌肉比关节还多,可他仍然无法直接操控自己质心的位置。起跳时,没有任何电机把这个质量与地面连在一起。被动行走器是把电机全部拿走的极端情形。所有行走机器人都处在中间地带:有些关节在推拉那些没有执行器的自由度。即便双脚都着地,除非装有吸盘,否则你无法让质心向下的加速度超过重力加速度。迈出一步,就进入了更微妙的领域,动态机器人必须接受这一点。即便手臂是全驱动的,操作仍是欠驱动的,因为杯子上没有执行器。扣衬衫扣子时,衬衫的自由度足以让控制理论学者头皮发麻。正是这些问题让他兴奋,因为它们打破了他思考多年的一些基础。目前已经见效的技术路线,是把决策写成优化问题,通常是数值最优控制,同时让物理承担更多的工作。
感知也属于这个闭环。DRC 时他们有一套复杂的系统;另外,在与 Sertac Karaman 合作的一个项目里,固定翼飞行器要高速穿越森林,激光雷达太重,就改用了摄像头。深度学习改变了感知能做的事情。最直接的用法,是让网络看摄像头画面、输出物体的位姿,这往往是个错误的目标设定。系扣子的第一步,难道要估计整件衬衫的完整状态,包括背后的每一道褶皱吗?有些状态维度对任务很重要,很多维度既观测不到,也无关紧要。这就重新打开了状态表示的问题。实验室里,他们切的是胡萝卜,不切洋葱,因为洋葱味道大,在相机里也很难拍。移动一个刚体的时候,你需要的是它的位姿。切一刀下去,就变成了一百块碎片。控制器需要知道每一块的位姿和形状吗?大概不需要,而且继续切,只会增加碎片。拉格朗日状态是存在的,但与任务相关的状态,是一种潜在状态(latent state),一种压缩过的表示:不一定是低维的,但更容易让人或控制器处理。如果洋葱碎片之间的接触力学出现组合爆炸,机器人就只能坐在那里想,直到汤都凉了。
Fridman 认为,人可以只靠语言就爱上一个机器人;他的父亲则坚持,触觉和嗅觉不可或缺。Tedrake 先从实际出发:如果一台机器要在需要帮助的人身边做真正的体力活,它就必须不再害怕接触。他喜欢《超能陆战队》(Big Hero 6)里的大白(Baymax),丰田研究院也有人在尝试做类似的东西。家里的泰迪熊会被人教,终结者则会被评判。MIT 的视觉科学家 Ted Adelson 原以为,孩子会把他带向视觉研究的更深处。真正让他震惊的是触觉:他女儿什么都舔,什么都往嘴里放,于是他决定必须研究触觉感知。被动地观看,和做实验,是两回事。看 YouTube 视频和一个能施力的机器人,是两类不同的问题。Tedrake 不是人机交互研究者,但他相信人的元素有价值,比如 Baxter 那双装在工业机械臂上的眼睛。他和 Atlas 之间也有一段感情。决赛时,他们给它做了一场“心脏手术”:比赛前一小时,它的一个核心部件烧熔了,机器人吊在那里,内脏都露了出来。一百年后回头看,那些都会像是早期的、可笑却又重要的日子。
把少数几样东西读透,想得比互联网奖励的更深
Tedrake 小时候读书不多,现在读得很多,也很猛。他推荐Yuval Noah Harari 的《人类简史》和《未来简史》,说它们能打开思路。Nassim Taleb 的《黑天鹅》他也提到了,不过对作者本人有些保留。一个可能让人意外的推荐,是 Mortimer Adler 的《如何阅读一本书》。很多人讨厌这本书,他却很喜欢,因为他读它的时候,正被大量低质量的信息淹没。arXiv 每天都会涌出大量只经过轻度审阅的论文,其中真正值得你花全部时间去读的很少。一旦找到那一篇,就要钻进去,在上面做批注,留一本被翻烂的纸本。苏格拉底和柏拉图说,文字永远无法承载对话之美。阿德勒的回应是,一本真正好的书,就是你与作者之间跨越时空的一场对话。Tedrake 觉得这很浪漫。阿西莫夫(Isaac Asimov)以科幻小说闻名,职业生涯里也花了大量时间写非虚构作品,被称为“伟大的解释者”。在 MIT 教书改变了 Tedrake 的思考方式。对讲课和现场提问的畏惧,逼着他的想法必须非常扎实。线上教学是一种新的媒介:他可以把三维内容直接推到浏览器里,而你的手边还开着搜索引擎。机器人学或许能从中受益。Fridman 补充说,把一小时讲座里五到十分钟的废话剪掉,讲座可能会因此变得很出彩。
给二十岁年轻人的建议是:这是个有意思的时代,不少迹象都指向赢家通吃。真正能脱颖而出的,是那些能把问题想深的人。会在网上熟练查资料的人已经很多。真正的引领者,要比这更有批判性,而这种能力更难学。一条路是数学和工程:尽早开始学数学,把东西拆开再装回去。前路很长,你永远不可能什么都懂。坚持下去,享受过程,停下来想想事情为什么会这样运转。世界上的内容多到让人容易迷失自我。Fridman 最喜欢的书是《动物农场》,对他这个在苏联出生的人来说,这部讲猪的寓言承载着一个国家的历史。Tedrake 也有一些反复翻阅的技术书和算法论文,但他承认这个习惯正在丢失:arXiv、博客、GitHub,新东西一个接一个刷过去,人就失去了真正吃透一个想法的能力。
他在密歇根大学学的是计算机工程,很喜欢编程。到了 MIT,他跟计算神经科学家 Sebastian Seung 做研究,这里对数学和批判性思维的要求更高。有一天,他从导师办公室借来一本书,走到查尔斯河边坐下,心里想:我这是被狠狠修理了一顿。做这行的人,都会有这样一天。他从没想过放弃,拼命干活,也乐在其中。几乎每天,身边都有人给他看些他不懂的东西;只要把那一块弄明白,拼图的另一部分就会咬合上。愿意弄清自己能做什么、不能做什么,同时热爱学习剩下的那些,这才是最好的部分。整场对话反复回到同一个论断:重力行走器、涡流中的死鱼、被整只手包住的鸡蛋,都在提醒我们,不要急着用控制去覆盖世界,先看看世界已经提供了什么。赤脚跑 12 英里也是同一个道理:只要不堵住反馈的通道,身体就会给你反馈。
同频道的其他文章
3:36:56EN → 简体中文
5:15:51EN → 简体中文
3:12:58EN → 简体中文
3:46:18EN → 简体中文
3:51:47EN → 简体中文
2:53:42EN → 简体中文