大家好 欢迎来到新一期的 Resport 我是主持人 Jimmy 最近一段时间我对人型机器人的全身运动控制这个话题非常感兴趣继上一期采访了彭学斌教授这一期我们也采访了另外一位在人型机器人运控方向有非常多优秀工作的青年学者李忠宇博士
李忠毅博士将于 2025 年秋季加入香港中文大学机械与自动化系担任助理教授他的研究方向是人形机器人高动态机器人和居身智能目前他的实验室也是在招收 PhD Postdoc 和实习生欢迎感兴趣的同学加入他的实验室
李忠于博士的背景是他在 2025 年春天在 UC Berkeley 获得了博士学位他的导师是 Skosho Skrines 教授他的本科毕业于浙江大学李忠于博士的研究方向是优化控制与强化学习的结合重点关注足视机器人的高性能算法的研究如双足四足人行机器人
李忠毅博士也是最早一批将强化学习引入真实的双足机器人运动控制的研究人员也很早的开始尝试利用俗式机器人完成操作任务多智能体协同任务提出了很多被大量使用的算法框架那么这一期我们将和李忠毅博士来系统的聊一聊他对人型机器人的运控以及在强化学习和传统控制方法在双足机器人的应用上面的一些心得和体会
整个题目围绕就是怎么去搭建机器人的小脑其实这也是相当于人类其实也是小脑也是负责这一块东西的就是 motion control coordinate
就是全身的动作控制和协同然后并且有一定的智能学习能力和一定的自适应能力并且有一定的就是意识下意识的去归避一些障碍物啊有些安全性的这样的一些下意识的行为这其实都是小脑做的事情对也就是说我认为我在过去的这个六年 PhD 的时间你在伯克利啊
让我们大家觉得能把真正能机器机器人小脑真的是能做出来已经差不多这种感觉对那当然还有很多后续的 future work 对但我觉得可能更多的之后可能更多的是未来可能是怎么从小脑再进一步到大脑这样的一个
下一步的跨越就是结合更多的感知更多的环境的信息然后和小脑去配合去做这样的一些换成更加复杂的事情让机器人去做我觉得这是可能我们后续我觉得我们可能更高音性的一个方向在研究人形机器人或者组织机器人对然后所以我主要分为这整个
过去工作其实分为刚刚说的三个关键词,Agility,Intelligence,Safety。然后在具体的解决的问题上,先是做 structured motion intelligence,就是说用机遇模型的方法,就把机械人动力学模型那个,
构造成一个非常有结构化的优化的一个框架里面然后去让他去然后去不管是用在线或者离线的方法然后去跑这样的一个优化算法然后让机器人去执行这样的一个优化出来的结果对然后我们在这条线上我们其实做了其实挺多工作比方说让机器人有一些 Expressive Motion
就是我们其实最早让二组机器人能有这样的一个有表现力动作的当然是用纯优化的方法做的就是说我们去人工去画这样一个就是
轨迹让机器人动作然后通过优化方法然后让它能变成能让机器人能执行出来并且有一套控制器去执行它对这是这一套然后完之后甚至还会有一些通过一些让机器人自己去调整一些控制器参数的方法去进一步优化这样的一个机遇模型的控制器
对然后这个当然这个就会有问题就是大家其实现在可能当时我们做的时候其实没有想要学习当时做我们当时做的时候就发现很多问题因为这个基因模型的方法嘛对吧可能现在可能大家都知道是有什么问题但但
就我们其实总结就是第一个你这个模型是很和机器人本体其实是还是不是很一样的就它是一定有它一定有一个大的一个 gap 我们叫我定义成是 model to real gap 模型和机器人本体的
真实的硬件它是一定有一个非常大的一个误差的那怎么去解决这误差呢第一个就通过提高我的优化球界的频率要不要球界够快我其实很多东西它就可以一些误差就可以自然而然去当做误差直接就这个就消掉了那当然这个东西就很难现在因为你很难用一个很复杂的模型让它在线的去球界很快的速度
对然后第二个方法就是说你要去调层你就是说你要在真机上去调调一些参数不知道的参数放到优化器里面去优化器里的参数那这些参数呢那就是人工去调的就是说去相当于是人自己在以现在眼光来说是人自己在真机上去跑一个强化学习算法对人自己有一定的有一定的奖励函数然后我去调参数然后让系统能让符合我的一些想法
对当然所以东西其实对于整个开发是非常慢的因为你今天调参数可能明天就不能用了因为机子每天都在变它有一些磨损电机有损耗过热一堆问题对这些东西就只适合停留在就是说你往这方向做你是一定能做出非常好的控制器的那个例子就是波顺动力它有非常好的一个 demo 但是呢它 demo 其实是很难去 scale up
这是它的一个问题对然后后来呢我们就就当时正好就觉得能不能用极强化学习方法就完全丢掉模型让机器人自己去学这种各种各样高动态的动作然后学通用的动作比方说走路跑步跳远这些东西对然后当时在当时看来是非常就是一个非常
激进的一个想法因为其实当时大家都不觉得乔杨学能在针灸上能行当然都觉得这个乔杨学只能在仿真理能行比较出名的工作就是彭学斌老师他做的 Deep Mimic 对在一个人身上当然当时我们作为一个做 Robotics 的人其实我们看这个其实非常怀疑他能在针灸上 work 的因为他其实有很多假设就是说我在环境里知道所有的机器人的信息
然后所有东西都是机器人的模型也是非常已知的然后我在一个纺织里训练完之后我就在同样的纺织里去部署这样的一个这样的当时在那个环境那个情景下的一个设置当时觉得这个还是离真机还是很远但是呢我们正好因为都在伯克利然后完之后我们正好就合作起来就是和我们组和 Sargey 组然后还有 Peter 组我们就合作然后正好
我们一起去看怎么能把乔杨学习补负在真迹上然后我们就做了一系列这样的一个工作对然后就主要在 TESTIX 上做当时做的走路 20 年中就其实已经我们文章是阿姨一年放的其实是跟大家当时就是现在看起来最早那一批那个用乔杨学习做运控其实差不多时间做出来对
对包括 ETH 包括 Oregon State 他们都有从此起都有一些文章都非常出级的文章希望寻找在强的大组上但是当时我们文章的一个非常大的突破点在于就是说我们不光说这样的信息可以在争计上能行还是并且它有非常强的补棒性就是它展示了前所未有的补棒性就是说
这特别是对于这种开这种大型的人形二足机器人机器人几乎要倒了但是我其实浮起来之后它其实控制器是没有崩溃而是说直接继续让机器人能继续回到稳定状态其实对于机遇模型的方法而言是很难想象的一个特点因为机遇模型方法一旦
除了这个叫什么来着可控的就是我们所谓的 regional filtration 之后它这个直接就崩掉了系统根本救不回来但是强化学习方法控制器它能在一个非常不稳定状态你只要拉它回来之后它还能回到一个比较回正这个其实当时是比较让大家觉得非常 impressive 的事情然后所以才会有很多人就很多人就会进来然后其实我们这个 FIL 其实几乎经历了一个
从零到很多工作的一个一个阶段就短短这几年这其实还是非常不容易的对然后在这一期这一这一段时间呢我们其实往这方面其实做了很多工作比方说我们一开始做的是 walking 走路嘛后来做了跳远跳跳这种东西 jumping 对当时其实当时就已经很想的已经很很多了就说我怎么用一个控制器就同一个控制器我不光可以历经跳远
它可以跳高跳到桌子上还可以跳远跳到跳到跳到一个一米一米一点四米这样或者是往后跳我跳起来转圈这样当时其实非常的激进说要做这样一个控制器能相当于把整个二组运控的这个通运控控制器的通用性把它
推到一个非常高的一个极限上对然后当然确实当然是这个东西这边我花了很多时间对后来其实效果也挺好的就是当时我们两个控制器实现了 19 个不同的跳跃的例子就是说我们相当于只需要给定一个落点机器人就跳过去对它其实不需要有什么预编程预优化这样的东西这全都是全在仿真运训完之后就能够
不说实际上后来我们再往因为因为为了解决这个问题其实我们其实呃
就做了很多方法工作让让这个能能成第一个就是怎么区分阶段训练第二个是怎么把这个控制器能让他有自适应的一个功能就是我们我们当时发现有这个就是长的呃机器人的这个 io historyinput output history 再补上短 history 这一部分就我们我们文章定义叫 do history approach 是非常非常有必要的就是说让整个机器人让整控制器能直接很快自适应到
机器人本体的动力学参数上当然我们是用这个方法才让机器人能完成这么多跳跃任务的然后再做跑步我们其实不只是说我们做这么多的 demo 其实更相当于说一个方法论就是说强化学习的方法论就是怎么用一个系统性的强化学习方法通过我们这样的一个训练方法和我们的架构可以有各种各样的让能将机器人学出各种各样的动力学习
控制器走路跑步跳跃而且非常稳定所以时间其实不会变因为像我们我走路的话我们
我们有一年半的时间我们其实每一年每个段时间测一下机器人这个控制器的效果一年半的时间其实是非常稳定的你刚才说那个就是一年半的时间去测这个走路的控制器的意思是说就是这个控制器反正讯号就这样然后但是机器人本体它可能这个一年半的过程中随着其他的任务的使用它可能有一些这个变化
但是这个控制器在一年半这里面不管这个机器人的硬件发生什么变化但是他在去跑的时候发现它都是都是好用的对吧对对是的是的这个其实非常重要一个点其实这个其实就是类似于 demo 到其实你真正能真正用这个这个控制器的一个一个大的一个一个点就是说因为机器人就我们一直在说机器人我们有 model to hardware gap
就是说你能拿到机械的模型但是这个很多参数包括你的关节参数关节的摩擦力你的这个就是就是什么你的脚底的这个摩擦力这东西都会变而且会随时间会变特别是你在我们之前跑拿去跑步跑一圈那个机械的鞋底就磨掉了
对就就直接磨损掉了就你要换一个你要换一个换一个阶梯这种然后你跑一圈之后你的关节这些东西其实都会有磨损而且你跳远大大冲击力下去之后对其实机器人是会变就同样的控制器其实如果你不能自适应机器人动力学变化的话这些参数变化的话其实你可能今天给一个非常好的视频那可能过两天他就不行因为他机器人你使用使用之后就磨损就不行
对那我们当时是为了为了证明这个我们我们的控制器是可以自适应的所以我们专门选择这样一个一个人对反正就对对于本体而言就对于一个机器人的控制而言其实我们
相当于有一系列工作先从优化方法做起然后再用强化学习方法用不再用模型方法但是实际上进行自己去学习的方法然后相当于把单个二组的 agility 这一个层面其实推到一个非常高的一个点
但这只是一个 single agent 就一个机器人但我们想你像机器人能走了能跑了那你还要做点事情对吧才有用嘛所以我其实 PHD 时候很早就开始关注怎么让逐势机器人去做一些 manipulation 做些操作的 task 当时那个时候其实是在我们就什么 21 年 22 年
对这个时候还没有人形机器人这么好的这个这么多本体的这个那个情况下其实是没有手的对其实我们在想那在我们在这个没有手的情况下我们怎么能也能让逐势机器人做一些工作做一些操作用所以我们就选了一个非常好的点就是让机器人去用脚去踢东西我们叫 non-prehensive manipulation
就是说我们不再用 in hand 做一些操作我们没有末段执行器当然我们可以接触式的就踢它一下或拉它一下这种其实也能完成很多任务比方说我们开门推门拉门这种关灯关门其实不需要手只需要碰它一下所以我们当时就做了这个方面的动作就是在组织机器上在四组机器上主要在四组机器上
就是说先让机械踢球对精准射射射门就是说把这个球踢到一个 target 上然后就是铺点球就是说球飞过来我今天怎么通过就是各种各样的这个
skill 各种各样的运动控制的步态然后去让那个去把这个球给打掉也可以跳啊他可以 side step 就走一步啊也可以跳起来对也可以做个嗯就是去救球对这样几个东西就是怎么怎么把各种各样的底层控制器结合起来然后去完成一个非常高动态的一个操作的任务对然后再再往后然后完了之后就是说我们怎么边走边去运球然后边去绕过一些东西啊
对吧绕过一些这个坑坑洼洼的东西其实当时核心的一个点就是分层分层其实现在很多对大家都讲分层其实就是分层就是说我底层是一个通用的强化学习空气这样的话我的腿可以跟踪很多末端的轨迹然后基于此我们在上层再去训练一个
专注于任务的规划器只是规划末端执行器的腿的这个轨迹上层的控制器规划器可以有是强而学习的也可以是模仿学习的也是可以直接在仿真理学的也可以在真实世界中从 real world data 去学的也可以把两个东西 mix 起来也先从仿真学再在 real world data 学对我们这些都有一系列这样我们去做的所以这种框架是非常通用对然后我们主要是在四足的这个呃
啊 local manipulation 这个他上做很多对啊我但这个东西你这往然后人行上前其实很
其实你可以理解为对吧这个四足前肢就是人的手后肢就是后板后两肢就是人的腿其实是一个道理单个机器人和物体的交互然后后来我们想到一个 agent 已经做完了做得很好了那我们想怎么去多个 agent 去合作其实我最早做
独式机器人的合作的一个任务就是说我们当时做过先是一个狗去用去导盲第一个机器人导盲权是我们做的机器人和人怎么去协作然后第二个呢是就是三个机器人三个狗三个四足怎么去合作去拉一个重物一个重箱子用绳子去拉
然后同时呢去穿过一个非常那个狭窄的一个这个非常 narrow 的一个场景然后当时这两个呢其实都是用也是用优化方法做的就是中心化的优化方法但是做了很多加速的一些工作对那后来最后最近我们做了一篇文章就是说多个四足机器人用一个
去中心化的控制器每个机器人只是跑自己单独的一个控制器然后去一起协作去拉一个重也是一样的任务去绕开一些障碍物但是这个是去中心化的控制器也就是说我们可以它其实不依赖其他机器人的信息就中心化信息也就是说我们在这个过程中我们可以就是把一个机器人给直接拿走
从四个机器人的一个队伍变成一个三个机器人的队伍在这个任务中间他都能迅速改变他的队形从四个机器人的队形改成三个机器人的队形然后正好地去完成这个任务这当时是用多机器人的多智能体的强化学习方法去做的所以其实怎么去做合作其实也是一个很难的事情因为
对吧其实你一个极限就已经很难控了对吧那你多个极限怎么去合作起来
然后特别是在真实的真机环境真实世界的环境里去做我们刚刚说的所有都是在真实环境里做的对做的实验做了很多大量的实验对这其实很难当然整个 idea 其实就是说我们要我们要利用好就是对特别熟识机器人可能也要利用好这个分层的分层这个思路就是说我有一个底层控制器呢我们上面有一些规划控制器呢这规划你怎么去做那就是就每一个就是每一个方向做的事情
其实最后就是一个安全性就是说你就是我一直觉得这个人型机器人我任何一个机器人他要在或者说我们特别是人型机器人他本身就是给在人类环境里去设计去那个 operate 的时候去设计对
对吧那你这个那你安全性要保证好因为你不然的话你你撞到人那你就这个是很很危险的事情对吧你 LM 你对吧大约模型你你说错话这其实没啥对吧但是如果你机器人做错了事情他可能就倒了可能就砸到旁边的人了就碰到旁边人这是非常不好对所以我们其实有
更多的就是说其实我更多其实关心的是说怎么用控制理论方法去给这样的一个基于学习的
一些控制器策略这些机器人加上一个安全性的保证比如说我控制器再怎么搞我有这个学机器学习方法它很好它的敏捷性非常高高动态可以做非常高能耐的东西但是我不知道它什么时候出问题不知道什么时候不出问题那这个时候可能就需要一些用结合控制理论的方法去说这样一个概率性的问题
你整个的这个 phd 其实是构建这个机器人小脑但是实际上我觉得现在对于大小脑哈就是包括什么中脑啊这个定义其实还是有点模糊就是比如说像这个呃就是你说的这个小脑他有没有一些更明确的一些定义比如说啊包含哪些个能力的啊他会通称为小脑我觉得这个其实挺难界定的对然后
我觉得对那我们只能从人形就足势这几个因为足势其实非常对这个其实可能要更可能可以更明确一点因为足势它第一第一件第一要务是要保持平衡嘛就是说我要站着我要走我要跑我这些动作运动的能力对这一定要有然后一定有了之后我们才能讲导航啊路径规划啊或者说往上做操作啊这个东西
对那这个其实如果以人就是以人这样的一个这个脑子脑袋这个大脑来这个来去做做解释的话其实运动控制平衡全身的协同这个是归到小脑里的对也就是说我们做这些 like locomotion 啊 locomotion control 这些东西当然都是可以归到小脑里
对那基于这虽然说一些还有很多就是其实连生物学家都很难去说我们这个想到底是完成哪一些具体的功能对到底大脑完成哪一个但是这个对这个其实很难说但是比方很多东西你可以放到里面里面去比方说这个你这个比方说你这个自适应就是说你其实会有些自适应的东西
对吧就是你有控制你基于控制你就你还有很多附加的一些问题比方说自适应就比方说你对吧你自己我们这个腿受伤了我自己可以自适应还能走就这种感觉对吧我手插到了一下或者说我手扭到了但是我还能继续的在这个扭到这个手上继续去运动这其实也是小老弟
对然后再往上比方说这个安全性我刚刚也说我们其实人是有一些下意识的问题的就是不是说大脑说我要反应很多我要处理一些信息那完了之后才比方说我碰到了火我就马上收回来这其实不是这其实是你条件反射其实不是你大脑出的当然你可以也可以理解为这是一个比较下层的一个认知的一个
所以这是我为什么我定义说我们我整个工作是想当然了这个比方但当然很多比方说和各个 agent 去合作你说他是不是一个更高层的一个啊东西我觉得肯定是是的对但我觉得这个界定就比较模糊但我觉得比方说那比方说我可以比较给一个非常明明非常明确的一些
一个任务它机器人任务它就是大脑你可以理解它是大脑比方说你通过视觉然后去感知说我要去抓我要是抓可乐还要抓雪碧这肯定这个东西肯定是大脑去做这个决策或者说我要去走到我要走到学校去那我怎么去规划我这路径这个这么长程的任务呢肯定是大脑需要去做一些信息的处理
对这个我觉得可能是这样活界定会稍微好一点对但是这是我自己一个人对个人的一些感觉我觉得我觉得就是可能需要任何对于需要处理特别长程的任务然后并且需要去综合很多各方面的信息各方面模态视觉模态语言模态各种各样模态触觉模态这些模态然后去处理这样的信息我觉得这可能会更多归于大脑了
嗯我觉得可能就是类似的是把人的眼睛闭上能去人做到的这些运动可以归回小脑当然这个眼睛闭上就是比如说有些条件反射呃就是那种可能需要你一两秒钟睁开眼睛去做反应的这些可以归到小脑对吧是对
对你刚才也提到说呃最开始做这个足视机器人的运动控制的时候其实没有强化学习完全是基于模型的这个方法啊嗯那我觉得也是一直到像比如以波士顿动力为例对吧他们可能也就去年前年才放弃这个基于模型的这个控制就是这个这个过程和转化是一个什么样的过程啊或者是说现在是比如说像传统的这个控制啊理论啊
他那么长时间的这个积累在现在就没有用了吗就是或者是说你觉得未来像强化学习和这个传统的控制方法他的一个结合会是什么样子对我首先我觉得这个肯定是
以前这些基于模型方法肯定是有用的肯定很有用的对那首先第一个回答就是波士顿都人他其实没有放弃基于模型的方法他其实一直在做他只是觉得其他们最近的视频是用强而协议做的但这个但强但是能做出已经能做出非常好的效果了那些对所以我觉得这个其实整个
就是 community 就是其实就是整个这个叫什么 like robot 这一这个这个圈子的人就是转这个思想转变可能因人而异就比方说我们组可能就转变非常快因为我们一下就很快就把这些东西放在真机上了其实效果都非常好大家都非常都非常兴奋然后觉得这个是非常 promising 的东西那有些人或者有些就学者可能就还是会非常的 spatical
就是说他可能觉得只是一个可能就就就就随便调餐就行了呀这种或者说失去了一些这个叫什么来的基于模型的一些优雅的东西比方说数学上的一些构造啊求解啊这种优雅的东西他可能会可能会不要不是不是很喜欢但是慢慢的可能觉得强学习他可能在征集效果上可能会确实会好很多那这样的话那可能大家也会慢慢转过来对所以这个其实我觉得转变是啊
整个转变是需要一个过程的一个时间的我其实觉得从 2020 年吧大家最近最当时就最有代表性情文章都是 2020 年 2020 年这个时间段出来的然后到我觉得到 2024 年这段时间大概五年时间我觉得整个整个 community 从指认基于模型基于优化的方法控制方法到大家觉得基于优化方法和强化选择方法都是一个非常好的方法对
对不管是强学还是有化方法都是好方法这样的一个转变我大概用时间到现在可能大家都可能两个都会去都要去都会乐意去学习当然不可否认神经情绪强第一个基于强学它其实对数学要求没有那么高对因为不需要去去管那么多优化的问题对然后求解的问题
然后第二个是有很多就开源的其实不得不承认就是很多开源的工作其实是大大加速这个领域的这个这个进展包括 ETH 包括 NVIDIA 他们做很多开源的东西特别是用 GPU 去加速仿生器然后完了之后去去训这个机那个强化学习的控制器这两点我觉得其实是一个非常大的一个
原因吧就助力吧让这个让更多人去更或者说可能说我一开始我比方说我一个新我一个本科生我可能想做竹试我可能一开始就去做强要学习而不是说一开始就去做 MPC 一种而去优化方法对因为确实基于优化方法它的门槛比较高对然后它到征集上
就是你在仿真里做出来的东西能到真迹上还是有一定距离的但是如果你进行强化学习的话其实很多有很多现在很多教程很多看人员代码看人员的文章其实会指导你一步一步怎么让你这个强化控制器部署到真迹上这样的话其实学习成本会非常低所以可能说更多的年轻人可能会更去做这样的一个新人可能会更去会做强化学习但是我觉得如果以研究方向而言那
强小型会变 eventual 现在可能就变成工程性的问题了它就是一个一个标准的一些一一套思路了那你这样的话其实你往就是对于研究而言可能不是不是一件好事啊我觉得因为对吧你其实还是要有很多我们认为他有很多东西还要解决的对吧比如说他的随时间的稳定性这个其实自适应性这个我觉得是一直是一个问题就强小型是可以今天 policy 不少增加能行
但如果你没办法自适应的话你的控制器其实是很难去自适应一些调整那这第一个第二个其实是叫什么第二个我觉得还是还是一个就是安全性保证对吧因为你控制运用控嘛呃你不能只是说走起来那那我如果就把
我没法控制机器人然后撞到了别人或者什么这其实是个非常大的问题但是基于强化学习的方法因为它控制器是一个神经网络它是个黑盒机器人它本身你可以理解为它也是个黑盒它是个非常复杂的黑盒它两个拌在一起你怎么去给一些安全性保证或者是怎么让它去 avoid 这些障碍物或者会达到我们想做的一些
任务这个其实还是还是很难的也是需要去探索的然后我觉得在这个方向上其实
基于模型的思路或者一些优化方法是非常好的对就是说对这个方法是非常好的一个助力就是我们怎么去结合起来就是说我们其实对我觉得我最最重要的一篇工作就是说我们发现一个机器人被一个强学习的控制器给控制如果他的控制非常好的话他的闭环系统是一个简单的线线性系统
就是说一个而且在一个全域的这个全域的宣言系统对如果那一旦有了这样一个线性系统的话那你其实放到一个基于模型的空间去给一些安全性保证这个其实是是一个非常
比较 practical 比较比较务实的一个思路去解决这个问题当然之后还有很多就基于这个方向可能还有很多问题比方说你你什么系统能能会变成一个先行系统对吧我什么时候才会出现这样一个先行性对或者说我怎么去利用这个先行性这个其实是很多这个之后我觉得研究的一个一个方向我觉得对
刚才也提到这个机器人的自适应就是这个自适应能力其实它是某种程度的这个像现在大家都在说的这个通用控制器的某种程度上的这个通用控制器是吗对我觉得是的就是现在大家都在说通用控制器通用就通用性有很多种第一个就是我一个本体就我一个机器人就一个本体我 Cathy 就是 Cathy 那我比方说我 Cathy 但我这个本体它可能随时间会变化
那我就要自适应这个本体的变化对然后保能能能有一致性的效果对这个是比较重要对这个是第一步了我觉得那你在解决这个第一步技术上比方说我们可能还有那现在大家都要说 cross embodiment 对吧这其实也是个更高级的自适应就是说我不同的机子就
我 Cathy 是一个我比方说宇宙的 G1 是一个这个什么加速进化 booster 它是一个这些不同的人形机器人或主持机器人那我能不能用一个控制器去控它那我控制器也能自适应我这些不同机器人动力学
这是我们现在问的问题就是说能不能对这个我觉得肯定是可以的对就是 scientifically 肯定是可以的只是说你实现前可能会这样但我觉得肯定是可以的对那那那那可以我回答完可以之后那就做我最也是自信的一部分就是我自信各种机器人本体
不同的动力学不同的关节不同的构型不同的这个各种动力学的特征都不一样但我觉得强化学是可以的
但是支持完之后就问题就在于那真的有这么必要吗就是说我一个控制器能控这么多机器人那我是不是需要这样的控制器呢对吧那我的这个开发难度是不是就成指数型上升了那我开发完这样一个非常非常通用的控制器之后那效果是不是有
只关注于一个机器人本体训练出来的效果好我觉得这个倒是我们要考虑的问题因为我们可能都知道强壮学习它可能不太
对
对那就是说那那这样的话那是不是强化学习适合做这样的一个问题对我觉得可能也是一个我觉得可能也是要要想的好一个问题对对所以这块通用控制器它可能是一个
嗯单个机器人对吧他对于单一任务的时候就不管你自己发生什么变化环境发生什么变化你要自行另外一个就是多个机器人对单一任务的时候你这个控制器也要迅到让他啊每一个机器人都可以做到那是不是还有一个就是多个机器人和多个任务的时候然后这个通能控制器就最起码就是一些人具备的一些能力跑跳走对吧转圈等等这些他都可以做到一个自适应所以对
我觉得很有意思我觉得我觉得很有意思而且 idea 里我们大家都想做这样的事情都想说我们把一个就是其实思路跟那个大学模式很像如果把所有的构型所有任务全学那我其实是可以不光是把这些任务全学而是我任务之间的 task a task b 之间他的这个结合啊他这个结合新的一个任务他是能自己能学穿所谓涌现能力吧我觉得对
emergent behavior 对这种我觉得这个是大家都可能都想做的对但是嗯对我觉得我觉得就可能比方说操作比方说这种 imitation 认识方法可能会好一点那像强化学习方法可能我觉得会会难度比较比较高一点他本身他比较不那么适应适用于 multi modality distribution 对嗯 multi model distribution 对你刚才提到强化学习他的泛化性没有那么好这个怎么理解
我就觉得其实很简单的例子吧就是我们做走路做跳远做跳和做跑步它是用不同的空间就是跑步它是一个空间但我跑步可以做不同任务比方说我可以转圈可以跑变速这种东西都可以做但是它不能脱离跑步这样的一个步态
跳远也是跳也是这样 jumping 也是这样 walking 也是这样它是用不同的控制器我们发现这样做其实效果非常好不是说做不出来不是说我一控制器可以就是说可以我们是有控制性能既做走路又做跑步对但我们发现其实效果是非常没有单独去学走路或者跑步单独撑开来学它效果好不在整体上
对这个我觉得这个可能可能我们当时没有想就是往这方向继续去想比方说是不是数据量的问题啊但是想要学习你说数据量其实再往下后续其实也也不是很容易能就是能能能能学出来不是说盲目加速点能学出来对那嗯
比方说更好的构型啊或者是更好的训练方法也许可以也许可以对我们现在看到比方说很多现在最近一些人形的文章他是做一些这个上肢各种各样的动作对吧下肢会有一些走路啊下跑步啊这可以办在一起学是可以的
对但是这个现在已经能做到了对但现在大家都说做一套就是那个 teacher student 先去专门学一个任务任务他 specific policy 然后再去针流到一个空气上对这其实是一个思路
也就是其实他规避了强化学习用一个强化学习控制器学各种各样的动作的一个问题而说我先用强化学习学一个动作然后但是但是我们可以每个动作都有一个强化学习控制器然后最后把它针流到用用那个 imitation learning 方法对吧把它针流到一个一个大破的水上去去自适应对我觉得这个可能是
一个一个一个解决方法像最开始这个强化学习在主视机器人的这个应用啊也提到了这个比如说像彭学斌的这个美美
那嗯就是他这个 sim to real 比如说最开始你们觉得呃这个东西他只能在仿真里面做啊对吧这个效果很好不可能在真机上但是后面发现哎现在尤其现在很多 demo 他其实也都在真机上跑得很好他这个从不可能到可能这个过程发生了什么事情
这个很有意思我觉得两点第一点是用了我觉得是用了 history 用了一个就是历史信息对用了机器人的历史信息就是说有一些东西就是当时 Jason 他那个他做的文章
他是知道机器人所有的本体信息的包括我的位置每一个 link 的位置在哪里都知道每一个机器人关节他的具体信息都知道对这个东西其实在真相是很难拿到但他没有用到历史信息他是用一帧的这样一个信息对但他一帧包含所有的那个仿真器能给他拿的信息都有那在真相上是拿不到的嘛
对吧我们那我们怎么解决呢相当于是我们拿不到的话我们可以用一段一段的机器人历史信息去估计出一些我们拿不到的状态比方说 linear velocity 就是我们
base 基座的线性速度这个在真机上其实是拿不到的其实你需要去以前是要估计出来有一个状态估计器估计出来那我们其实后来我们后来发现 JOM 也用了就是说我们只需要一段的机器人的历史信息就 input output 就是机器人的输入输出的一些信息但是我们寄存一段然后我们就可以去估计出来这个
based 这机座的列星星星那同时啊你其实这个东西其实数学上其实也去可以可以可以得出来就是说我通过这样一段信息我甚至可以去估计出来我每一个关节每一个机械人的一些每个关节的一些状态一些比如说呃 inertia 呀这个选那个罐量啊对吧一些质量其实都能 estimate 出来都能估计出来
对然后这样的话一旦能估计出来你就能去自适应这其实就是对这其实就很简单就是我大概知道这个动力学参数是怎么样的了那我就可以去基于这个调整我的控制器对然后这个是个大的一个思路那怎么去具体怎么去用这一端怎么首先要不要用这段历史信息怎么去用这段历史信息到底多长多比较好怎么去用这段历史信息
然后怎么去学出这样的资金控制器这几个问题就有很多很多不同的文章去讨论不同的方法对然后我们其实有我们我们其实做了很多这个 ablation 就做了很多对比然后比较然后说我们这个方法其实会更好一点当然可能是这可能是因机性或因为我而异了我觉得对
但 anyway 但我觉得这个但我觉得我们这个可能会可能就是我们提创法可能会通用性更高一点但是这些细节问题这第一点第二点我觉得其实硬件的问题我觉得硬件问题就是如果你的硬件其实很差的话
或者说他追那个力矩追的不好的话其实他确实你就算仿就是你用我们刚刚说这么多方法那么多 synthetical 的一些方法他都很难去部署到整体上对那如果只有是一个好比较好的硬件他的他特别是关节他这个执行器他能非常好地去追踪这个这个力矩我们控制出来的力矩这样一个他做非常好做力控在一个非常大的 bandwidth 上去做这个力控
如果能做到这样的话,其实 Centurio 就很好解决。但如果说用一些多机的方案,或者说用一些比较差的一些硬件的方案,那可能这个 Centurio 的 gap 就可能要大一点,那可能就要花更多时间去调,去弥补这个 gap。就是 Centurio 也有 gap,就仿生到整机有 gap。就第一个 gap 是,
模型的问题就是说你这些模型参数是不对的跟证据是不对但你这个可以通过一些方法去比方说你可以随机化这样一个参数当然最重要的问题其实就是你的这个轨迹你的这个叫什么来着你这个关节的力矩的追踪的问题就是说因为在仿真里我每一步给的是力矩对然后我仿真认为我这么多力矩
我在机械上执行这么多力矩然后他再走到下一步他仿佛到下一步去但是真机上你给这么大的力矩那可能他的执行器根本就执行不了这么多力矩那这就会引入更额外的一个 sync 那这个 gap 其实是那这个 gap 其实理论上是可以通过硬件本体去解决的
对所以这个我觉得是两方面就是其实我觉得是一个算法往算法开始做然后其实硬件往上做然后最后 converge 到一点当然就觉得那现在才有比较好的 synthware 的效果
像这个关节它自己的一些这个性能实际上是把这个仿真里面的工作能够迁移到真机上成功的一个很重要的一个点就也提到了像剁机的这个方案因为它可能没有力反馈然后它可能这个包括关节的性能也比较差
就是他会限制这一类的硬件的上限啊但是呢就是我们其实也看到现在有一些开源工作对吧他也是基于这个堕机的方案就是你怎么看这一类的这个基于堕机的开源工作我觉得
我觉得是取舍吧就是说你知道这个机器人你到底要想做什么对比方说如果想做些高动态的想播放东西想做后空翻做这些东西啊跳舞这些高动态的东西啊我觉得那个嗯你有好的执行器非常好执行才能去追你的这个地局是非常好的非常必要的一件事情
对那我听刚你有聊到这个开源的一些那个基于多机方案比方说 Totalabot Stanford 那个那就挺好的我就非常喜欢他们那个小机器人那挺好但他这个他这个的
就是说需求可能就是他解决的一个一些需求可能不是说我们要做些高动态的一些东西了而是说我我只是让时间走起来而已对那我们走起来之后我可以更关注于上层的一些做一些操作的东西他们也有放他有 diffusion policy 去做一些操作的一些东西推一些东西拿来东西这些东西
那都很有意思那就是更偏向于就是说去做一个教育平台那我可以就是说让一些就新手我就不需要搞那么危险的机器人了我们先在一个小机器人上去验证一些算法它能 work 它
它 IL 也能行模仿学习的操作控制器操作的那些算法也能行那这样的话可以快速的去迭代一些第一个去学习这个基本的算法第二个去迭代一些已有算法像我们其实我们自己也有做开源我们叫 Buckley Human Light 那这个的需求其实也不太一样因为我们是用电机方案
但是我们加了一个减速线然后完了之后变成一个整套就是就是可模块化的一个东西然后这样的话它其实动态响应会更好一点然后也能做操作也能做对但这个呢它可能我们更关注的是怎么去模块化设计这样的一个
啊力控的点力控的关节然后用这个力控关节然后就可以做各种各样的机器我最近也是在这个尝试这个让啊学弟附现这个不可以 light 对最开始其实很早看到过那个工作但他的外观很复杂就是很容易劝退然后
后面了解一下发现他是那个关节里面可能就只有电机是外采的其他都是 3D 打印然后觉得虽然复杂但是可能对于了解这个关节本身嗯的运作机理还是有很多帮助的所以现在也决定要去复现这个工作就所以就说回到你们觉得现在关节有什么问题啊 OK 我觉得是非常好问题这其实
是我们最近的一系列工作,Berkeley Humanoid 之前还有 Berkeley Humanoid 我们组另外一个同学自己做,从你做的我们其实觉得 Centurial,Centurial Gap 其实我们以一个做控制的人的眼光来说硬件它是要非常的透明就是我们需要知道它下面发展从我们
拿到力矩命令之后所有东西到最后的电流环到它最后怎么去控制这个电机
我们是需要知道发生什么事情因为我们其实可能对于他怎么去处理这件事不重要但是他的具体性能要求还是非常重要就比方说多大的机器人电机转速他对应的力矩是多高他有没有一个非常好的一个线性区或者说能让我们去用这个他进去大概长什么样子这个可能是我们更关心的问题就是说这个
执行器本身它必须不能是黑盒对于如果要开发非常非常好的一个算非常好的运动算法它不应该是个黑盒而应该是个非常透明的东西但如果比方说我们用一些外采的电机或者说外采的硬件其实都是都会面临的问题就是说我们不知道下面发生什么那之所以语数它能它的那个 G1 它能非常好的这个
Centurio 是因为可能是因为他们的工程师做了很多工作能让他能让这个我我拿到这个东西然后最后执行到拿到这个关节位置然后最后执行到关节上他其实就是这样大概大差不差对这时候呢他可能硬件做的比较好他会这样他就会这样 Centurio 比较好那如果硬件做的比较差的话那就不是这样要不是这样的话那给上面控制工程师去做控制的开发其实是非常痛苦的事情
对所以这个所以我们像我们我们组其实做了很多这个最近有两两个这样的一个就是硬件人形机器人设计的这样一些工作对我觉得其实是因为
觉得要做一些更高动态的这个或者说更高性能的控制器所以我们可能学更更希望说我们所有都能自己知道然后也能对于我们控制器是透明的对所以我们开源也是一个点就是所有东西开源所有都开源的话呢大家其实都知道下面发生什么从你拿到
立举命令的那一刻起从到往下的电电流控电流环控所有都知道发生什么那其实中间说任何的问题你都能自己能解决出来能发展出来这就和这个思路就和呃端到端的这个这个操作的那个 policy 和你分分层策略有什么优缺点一样对吧那你如果分层的话你其实更好那你知道每一环出了什么问题那你可以只要去 debug 对
嗯对就是还有一个问题就是说你刚才提到说这个其实 locomotion 也是可以做分层的就是比如说你底层的他这个运控然后在上层他有一些这个规划对吧就是这个这个分层和我们说的这个操作的分层他其实是有点类似的哈对对我觉得我觉得思路是一样的嗯嗯
那当然也有像操作现在大家就比较喜欢说这个 VLA 端到端嘛就是嗯那像 Local Motion 它也有类似的对吧就是你可能比如说从头到尾训一个嗯一个什么样的技能端到端的这这这这可能有某种重点 VLA 我们最近也有文章去做这个比方说我们最近有个 language to 这个 who body motion control 就是我们做另外一个啊同学做的对那个对杨少对他那个
他做的就是直接语言就一段语言说这个人这个 walk slowly 机器人就往前走慢慢走然后 then walk faster 然后 run 机器人就跑起来了就直接就是这种类似这种端到端对这个也是可以就是类似于就是说你更高的就更高维度的信息就是说你语言信息或者说视觉信息直接映射到你的关节信息上这个也是可以的对吧