当前位置: 首页 > 科技观察

“中国达芬奇”机器人火了!除了缝葡萄皮,还有这些脑洞大开的操作

时间:2023-03-15 18:18:48 科技观察

制作可以缝葡萄的机械臂?近日,知名“硬核”up主智慧君展示了一款他从零开始设计的小型高精度六轴机械臂Dummy。视频一出,他就冲到了B站排行榜前十,打开弹幕,满屏都是感叹号。在“瑟瑟发抖”的弹幕中,“救=知道怎么做”、“他在教我们”、“听不懂,但很震惊”,有网友表示,“希望我们能尽快吧。”中国版“达芬奇”机器人。不仅仅是华为,各大科技公司都在致力于机器人的技术研究。就在不久前举行的IROS2021智能机器人与系统国际会议上,我们看到了很多熟悉的身影,包括许多堪比穿针引线的灵活操作技术。而这其中,有一个名字你一定想不到!没有手臂的机器人?服务机器人虽然遍地开花,但大多只能问一句“你好,我怎么能帮你”,然后回答“暂时不支持这个功能”,送外卖也得有人追,为什么这些机器人这么难用?嗯。。。一个机械臂,可以可能首先需要灵活抓取,先放个彩蛋抓取是机械臂的基本功,要顺利完成抓取任务,需要克服三个关卡:抓取物体时定位准确、抓取姿势正确re,以及物体之间的遮挡可能造成的障碍。碰撞是需要先见之明的,通过这三道关卡后,机器人才算是进门了。这篇由字节跳动人工智能实验室与中科院自动化研究所联合发表于IROS2021的论文提出了一种机器人抓取操作的新方法。https://arxiv.org/pdf/2108.02425.pdf通过结合3D物体分割、碰撞预测和物体位姿估计,作者让机器人准确估计物体级、无碰撞的六自由度抓取在杂乱的场景中摆姿势,并达到SOTA。具有联合实例分割和碰撞检测的机器人抓取位姿估计示意图首先,PointNet++作为编码器从点云中捕获3D特征信息,其次是三个并行解码器:实例分割解码器、六自由度抓取位姿解码器和碰撞检测解码器。这三个解码器分支分别输出逐点实例分割、抓取配置和碰撞预测。在推理阶段,将作用于同一实例且不发生碰撞的抓取姿态归为一组,通过姿态非极大值抑制算法融合形成最终的抓取姿态。结合实例分割和碰撞检测的机器人抓取姿态估计算法框图实例分割分支要想抓取一个物体,首先要能够看清楚,然后才能准确抓取。实例分割分支采用逐点实例语义分割模块来区分多个对象。具体来说,属于同一实例的点应该具有相似的特征,而不同实例的特征应该不同。在训练过程中,每个点的语义和实例标签是已知的,使用二元交叉熵计算该分支输出的语义损失,可以对背景和前景进行分类。实例损失通过判别损失函数计算:方差损失可以使属于同一实例的点尽可能靠近实例中心点,距离损失是增加不同实例中心之间的距离,并且正则化损失将所有实例约束到原点。,以保持激活有界。实例分割的判别损失函数图整体实例分割的总损失是语义损失和实例损失的总和。这样,实例分割分支可以为算法学习实例级抓取提供实例信息,让模型自主完成抓取,你可以指定抓取目标,听从你的命令,抓到哪里。六自由度抓取姿态估计分支六自由度抓取姿态估计分支得到实例的点云后,会为点云中的每个点生成SE(3)抓取配置参数,SE(3)抓取配置g由抓取中心点gt、旋转矩阵gR、抓取宽度gw、抓取深度gd和抓取质量评价分数gs组成,每个点只对应一个抓取的最优组合配置参数。训练时将场景点云中可抓取点的预测视为二分类任务,使用交叉熵损失函数监督排除不可抓取点,只保留可抓取点。每个可抓取点的损失包括旋转损失、抓取深度损失和监督训练的抓取质量得分损失。然而,直接从非线性和不连续的旋转表示(例如四元数或旋转矩阵)中学习6DOF抓取姿势是非常困难的。为了解决这个问题,gR使用两个正交的单位向量将传统的旋转矩阵分解为夹持器接近物体的方向和夹持器闭合的方向。为了优化,旋转损失分为三个部分:偏移损失、余弦损失和关联损失,分别用于约束位置、角度预测和正交性。握把宽度损失和握把质量得分损失通过均方误差(MSE)损失进行了优化。六自由度抓取姿态估计分支不需要事先假设物体的几何信息,可以直接从3D点云的特征中预测抓取姿态,并做了更精细的设计损失函数,适用于复杂场景中的各种形状。任何大小大小的物体都可以“从袋子里拿出东西”。碰撞检测分支虽然前两个分支可以实现实例级六自由度抓取姿势预测,但仍然需要一个碰撞检测分支来推断每次抓取的潜在碰撞,以确保生成的抓取姿势在场景中有效。可执行。碰撞检测分支采用可学习的碰撞检测网络直接从生成的抓握姿势预测可能发生的碰撞。在训练过程中,将没有碰撞和碰撞视为二分类问题并进行采样。真实的碰撞结果标签是由现有的碰撞检测算法根据六自由度抓取姿态估计分支的抓取配置生成的。使用二元交叉熵损失监督的碰撞损失函数。并行碰撞检测分支使得该方法的六自由度抓取姿态估计分支不依赖碰撞检测作为后处理模块过滤无效抓取姿态,大大减少“思考”延迟,抓取动作机械臂的外形像两个字,丝滑!在公共数据集Graspnet-1Billion上的小测试中,不小心拍了一张SOTA:GraspNet-1Billion数据集的实验结果不过瘾,使用KinovaJaco2机器人和商用RGB-D相机Realsense实战演练,然后拿SOTA来说,相比之前表现最好的GraspNet,成功率和完成率都有了很大的提升:真实机器人平台的实验结果是先学习和掌握的,要想跟老师学,还得自己练习放手。合理的抓取和释放可以完成更复杂的任务,比如自主组装、搭建等任务。IROS2021中还包括了一篇由字节跳动和清华大学共同撰写的论文,该论文允许机器人在没有人类制图的情况下设计和建造结构。以往,机器人在拼砌、排列、堆砌积木时,必须先告诉它任务的最终目标状态,相当于按“画”来搭建,没有“画”,它就做不到。去做吧。https://arxiv.org/pdf/2108.02439.pdf搭一座桥,有什么难的?如果不依赖人类设计的蓝图,机器人要面对的是任意宽阔的悬崖和一堆乱放的积木。你想建一座什么样的桥?为你自己想想。你用了多少块?越少越好。桥不会塌吧?那谁知道呢。这比给定精确目标状态的标准组装任务要困难得多,因为机器人不仅要考虑积木的操作顺序,还要找出物理稳定的桥梁结构。计划的搜索空间之大,让人头皮发麻。工程师们脑洞大开,提出了一个双层框架来解决桥梁的设计和施工任务。从概念上讲,它类似于任务和运动规划(TAMP):机器人首先学习一次高级蓝图策略。再次生成汇编指令以将构建块移动到所需位置,并实施低级操作策略以执行高级指令。这里的创新之处在于,高级蓝图策略是一种物理感知的方式,利用深度强化学习在神奇改造的物理模拟器中学习神经蓝图策略。高阶蓝图策略高阶蓝图策略是需要学习的,就是按顺序生成取放指令,用最少的积木搭建一座连接两个悬崖的平桥而不倒塌。每次,智能体都可以观察当前场景,然后指示拿一块积木来搭建一座桥。让物理引擎飞一会儿,agent可以接收到环境的反馈(桥断了与否),继续观察连续的场景,给出下一步的指令。嗯?这不就是传说中的马尔可夫决策过程(MDP)问题吗?毫无疑问,你又学到了。用元组{S,A,Γ,R,T}定义这个问题,其中S代表状态空间,A代表动作空间,Γ是转移函数,R代表奖励函数,T是a的地平线圆形的。状态空间编码了所有N个积木和2个悬崖的状态:,是由3D位置、欧拉角、笛卡尔速度、角速度、指示对象是否为积木的1D对象类型指示符和1D时间组成的向量。动作空间更简单,只生成取放指令,将积木放置在横跨两个悬崖中间的yz二维平面上,编码1D目标物体识别,1D目标y位置,1D目标z位置与周围x轴的一维旋转角度。传递函数的构造很复杂,想不出来,怎么办?还记得我刚才说的那个物理模拟器吗?模拟器在接受蓝图策略的指令后,直接将选中的积木转移到指令位置,继续进行物理模拟,直到环境达到稳定状态,然后将结果状态返回给蓝图代理。因此,即使不依赖符号规则或任何已知的动力学模型,智能体仍然可以在很长一段时间内了解指令的物理结果,并学会寻求物理上稳定的解决方案。没有明教,却有暗示。只能说是“精彩”!奖励函数是“施工奖励”、“畅通奖励”和“节材奖励”的组合。说白了就是用料少,桥面一定要平,不能倒。为了解决上述马尔可夫决策过程问题,工程师们再次祭出三把“武器”:Transformer、阶段性策略梯度算法(PhasicPolicyGradient,PPG)和自适应课程学习。具体来说,在提取积木和悬崖的特征时,基于Transformer的特征提取器融合了对象的归纳偏差和相互关系,将它们传递给策略网络和价值网络,并使用PPG算法对策略进行有效训练。说到阶段性策略梯度算法(PhasicPolicyGradient,PPG),它不同于近端策略优化算法(ProximalPolicyOptimization,PPO)。在训练过程中,它会周期性地提取价值信息到策略中,以便更好地表示学习,相当于用一个模仿学习目标来稳定策略网络的训练。PPG有两种架构变体,双重和共享。在共享架构中,策略和价值网络共享同一个特征提取器,其次是策略头和价值头。根据大量实践,发现Shared性能更好。无论算法有多强,从一开始就设计一座长桥太难了。自适应课程学习提供了逐步升级和打怪的方式,并根据代理的训练进度调整山谷宽度。随着机器人跨越狭窄山谷的成功率逐渐提高,模拟器会逐渐提高远处悬崖出现的概率。一旦低级运动有了执行策略的命令,执行起来就不难了。在训练生成组装指令的蓝图策略后,低级运动执行策略可以按照这些指令将构建块操纵到目标状态。另一方面,蓝图策略在训练期间学习物理定律,因此它可以为低级控制器生成物理上可行的指令。因此,low-levelstrategy每次只需要完成一个简单的pick-and-place任务,可以用经典的运动规划算法解决:通过生成block的质心来抓取pose,使用bidirectionalRRT算法规划一条无碰撞路径。正是因为在这种方法中,指令生成和运动执行是完全解耦的,学习到的蓝图策略可以以零样本的方式直接应用于任何真实的机器人平台。在真实机器人实验模拟器中学习到的蓝图策略+现成的运动规划方法在真实机器人系统上表现如何?现实世界中桥梁设计和施工的结果在三种情况下进行了测试,其中悬崖之间的距离分别设置为10厘米、22厘米和32厘米。机器人可以成功地按照学习到的蓝图策略给出的指令,使用不同数量的积木以不同的方式搭建桥梁。“老司机”领着门进去,和一个学会抓放的“机器人”练习,机器人终于进了老师的门。向老师学习艺术不是一项简单的技能。胳膊摆弄两下,显然是不够的。任务复杂,“大脑”转不过来。这个看起来很简单,跟着“师傅”的操作,模仿几下就可以了。可机器人见状,只能说:“模仿难,上天难。”例如,挂衣架这样的操作,机器人需要完成4个子任务,每个子任务相互依赖:接近衣架,抓住衣架,将衣架移到挂杆上,将衣架挂好在杆子上,领门进去。就个人实践而言,机器人需要能够理解整个任务过程需要分阶段,还需要“意识到”如果一个阶段不是完成,则无法进入下一阶段。任务拆解后,各个子任务的复杂度也被简化,新的更复杂的任务需求也可以通过现有子任务的重组来实现。长序列操作任务目前主流的方法是使用层次模仿学习(HIL),包括行为克隆(BC)和逆强化学习(IRL)。然而不幸的是,当专家的例子有限时,BC很容易出现累积错误。IRL在模仿过程中引入强化学习和环境探索,通过对环境的不断试错探索,最终获得对环境变化不敏感的行为策略。虽然IRL可以避免此类错误,但考虑到高层和低层策略的时间耦合问题,在期权模型上实现起来并不容易。不过,问题不大。字节跳动在ICML2021收录的论文中提出了一种新的分层IRL框架“Option-GAIL”。简单来说,Option-GAIL可以通过分析和利用专家给出的行为教学信息,学习其背后的行为逻辑,从而使机器人在类似环境和任务中能够完全再现与专家一致的行为结果。https://arxiv.org/pdf/2106.05530.pdf方法实现了基于对抗生成模仿学习(GAIL)的Option-GAIL算法。其行为的整体相似性通过对抗生成网络进行近似,使用选项模型代替MDP进行分类层建模。论文采用一步选择模型,即每一步都必须决定下一步应该做什么子任务,然后根据当前子任务和观察到的状态决定采取什么行动。蓝色箭头是决策过程,红色箭头是决策,黑色箭头是环境的状态转换。现在我们有了一个可以将长期任务表达为多个子任务并分阶段执行的选项模型,下一步就是解决如何训练这个A模型,使得学习到的策略复制演示数据。虽然它与GAIL解决的占用测量匹配问题非常相似,但在演示数据中并未观察到模型中的额外选项。因此,论文提出了类EM算法来训练Option-GAIL的参数,实现端到端的训练。E(Expectation)步骤使用维特比算法来推断专家数据的选项。M(Maximization)步骤通过最小-最大博弈交替优化内、外算子,从而在给定专家选项时得到最优策略。实验结果我们的算法在常用的机器人运动和操作环境中进行了测试。测试任务包括:控制单足和双足机器人的运动。机器人需要在踩踏、弹跳等不同行为模式之间切换才能平稳行走;控制蚂蚁机器人在到达终点前推开迷宫中的障碍物;控制机械臂关闭微波炉门,机械臂要靠近微波炉,抓住门把手,最后绕门轴旋转关闭。为了验证Option-GAIL中引入的层级结构以及与演示数据外环境的交互是否能够帮助agent更好地学习长期任务,选择了以下四种基线方法与Option-GAIL进行对比:BC(pureactionClone):只对demo数据做监督学习,不与环境交互,不具有任何层级结构信息;GAIL:与demo数据之外的环境进行交互,但不使用长周期任务的结构信息;H-BC(hierarchicalactioncloning):对层次结构进行建模,但不与环境本身交互;GAIL-HRL:在占用度量匹配过程中不考虑option。结果表明,Option-GAIL比非分层方法收敛更快,不与环境交互的纯模仿学习算法的最终性能更接近于演示数据。测试环境和各种算法的性能曲线还不如,一起来捣鼓一下机器人吧!当然,除了让机器人学会掌握操作,字节跳动还研发了2D/3D环境语义感知、人机交互等一系列技术。还开源了SOLO等系列机器人感知模型和代码,在GitHub上颇受欢迎。受欢迎的。但从技术研究到产业化还有很长的路要走,需要长期的投入和探索。希望各大厂商继续努力,让机器人早日真正走进我们的生活。