论文标题:
Lifelike Agility and Play in Quadrupedal Robots using Reinforcement Learning and Generative Pre-trained Models
Lei Han, Qingxu Zhu, Jiapeng Sheng, et al.
腾讯RoboticsX实验室的新研究,它通过将前沿的预训练AI模型和强化学习技术应用到机器人控制领域,让机器狗MAX的灵活性和自主决策能力得到大幅提升。通过引入预训练模型和强化学习技术,机器狗可以分阶段进行学习,并有效的将不同阶段的技能、知识积累并存储下来,让机器狗在解决 新的复杂任务时,不必重新学习,而是可以复用已经学会的姿态、环境感知、策略规划多个层面的知识,进行「举一反三」,灵活应对复杂环境。
©️【深蓝AI】编译
动物在应对环境时能够展现出迅速而敏捷的动作和精确的反应,理解和模仿动物行为能够帮助人们进行机器人设计和控制。足式机器人作为一种常见的仿生机器人,几十年来一直是机器人研究的一个 重要领域。
通常,当前更多将学习的方法应用于足式机器人控制。基于学习的方法是完全自动化的,控制器可以从机器人传感器读数到电机控制信号以端到端的方式进行优化。例如,基于仿真的深度强化学习(RL)已被应用于学习在各种地形上行走的腿部运动。这些方法通常采用深度强化学习算法 在仿真中训练运动任务,然后将训练好的控制器应用于现实中的足式机器人。此外也有研究致力于缩小仿真与现实环境之间的差距。现在一些研究利用模仿学习框架跟踪从现实动物收集的运动数据,然后将训练好的控制器应用于真实的足式机器人,结果表明使用模仿学习,训练的控制器能够驱动足式机器人表现出类似于动物的运动,以实现行走和奔跑等一般运动技能。
本文作者从这些研究得到启发。例如,在角色动画中使用隐变量模型将运动数据压缩成可重用的先验。这些方法假设从运动数据中学习的潜在嵌入具有连续的高斯空间,然后导航该空间以实现用户指定的任务。以及其他研究一种将知识先验引入强化学习问题的观点,并选择 性地推广学习行为的某些方面。还有一些研究工作,采用分层架构,能够通过逐层叠加多级技能来解决下游任务。最后,由于大型深度生成模型在理解图像和语言方面有不错的效果,作者尝试将生成式预训练模型融入机器人控制中。
●分层动作学习框架:提出了一种分层动作学习框架,用于四足机器人,该框架能够有效地学习和生成类似动物的生动动作和策略性行为。
●生成式预训练模型应用在机器人控制中:第一次将基于生成式预训练模型的方法应用于四足机器人的动作控制,通过向量量化的原始动作控制器(VQ-PMC),有效地从动物运动数据中提取并生成控制信号。
●环境适应性和策略性的结合:在环境层次,研究方法能够适应多种复杂环境,如梯子、狭窄通道、栏杆和方块,并在策略层次上通过多智能体游戏学习高级策略性动作。
●简化奖励函数设计:在强化学习中采用简化的奖励函数设计,减少了对复杂奖励工程的依赖,这有助于简化训练过程并提高学习效率。
▲ 图1|论文方法框架概览©️【深蓝AI】编译
本文方法框架概述如图1所示,该方法由三个阶段的强化学习组成,每个学习阶段的完整端到端控制器分别称为原始运动控制器(PMC)、环境-原始运动控制器(EPMC)和策略-环境-原始运动控制器(SEPMC),并且每个阶段侧重于在不同的任务和感知层面上提取知识。具体来说,第一阶段通过使用离散潜在嵌入模仿动物运动,训练基元层次PMC网络;然后冻结训练好的PMC网络用于训练多个环境层网络(如:平坦地形上行走、爬行以及跨越障碍物、块和楼梯),这些环境层网络采用附加的外部感知和关于方向和速度的指令,以输出潜在嵌入来驱动原始层网络。这些环境层网络随后通过多专家蒸馏压缩成一个统一的环境层网络。在最后阶段,重用预训练的PMC网络和EPMC网络,训练一个完整的SEPMC,以解决设计的多智能体追逐标签游戏。SEPMC网络采用附加的任务特定信息,以输出关于方向和速度的指令给环境层网络。所有阶段训练在PyBullet仿真中使用强化学习进行,并利用分布式多智能体强化学习架构TLeague下的PPO算法。
■ 3.1 Primitive-Level Training
◆ Motion Data Acquisition and Retargeting:
运动数据是通过动作捕捉系统收集的。具体来说,利用经良好训练的拉布拉多犬在指导下执行各种指令,捕捉其各种步态(如:walking,running,jumping and sitting)和腿部轨迹的运动序列,重复多次以确保数据的多样性。另外,还捕捉记录按照不同运动轨迹形式(如:straight,square and circle)的运动数据。最后,作者又收集了涉及楼梯的运动数据并在仿真环境构建一组大小完全相同的模拟楼梯,以精确匹配真实世界运动收集中的楼梯。由于动物的形态与机器人的形态不同,这里使用逆向运动学技术将动物的原始运动重新定位到四足机器人上。
◆ Problem Setup:
强化学习解决的是一个在线决策问题,其中系统的动态由马尔可夫决策过程(MDP)描述。在时间步
,代理根据状态
执行动作
,然后从环境中获得奖励
和下一个状态
。设为状态转移概率。强化学习的目标是学习一个策略
,以最大化轨迹上的期望累积奖励
:
br />
span data-formula="\tau" style="font-size: 15px;letter-spacing: 0em;text-indent: 0em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-align: justify;cursor: pointer;">
span data-formula="p(s_0)" style="font-size: 15px;letter-spacing: 0em;text-indent: 0em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-align: justify;cursor: pointer;">
span data-formula="\gamma \in [0, 1]" style="font-size: 15px;letter-spacing: 0em;text-indent: 0em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-align: justify;cursor: pointer;">
/embed>
← 左右滑动查看完整公 式→
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
◆ Vector Quantized Primitive Motor Controller:
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
/g>
g>
/g>
g data-mml-node="msup">
/g>
g data-mml-node="mo" transform="translate(987.7, 0)">
/g>
g data-mml-node="msub" transform="translate(1376.7, 0)">
/g>
g data-mml-node="mo" transform="translate(2211, 0)">
/g>
g data-mml-node="msubsup" transform="translate(2489, 0)">
/g>
g data-mml-node="mo" transform="translate(3363.6, 0)">
/g>
g data-mml-node="msubsup" transform="translate(3808.3, 0)">
/g>
g data-mml-node="mo" transform="translate(4648.6, 0)">
/g>
g data-mml-node="msubsup">
/g>
g data-mml-node="msubsup">
/g>
g data-mml-node="mi">
/g>
g data-mml-node="mi" transform="translate(529, 0)">
/g>
path data-c="6F" d="M201 -11Q126 -11 80 38T34 156Q34 221 64 279T146 380Q222 441 301 441Q333 441 341 440Q354 437 367 433T402 417T438 387T464 338T476 268Q476 161 390 75T201 -11ZM121 120Q121 70 147 48T206 26Q250 26 289 58T351 142Q360 163 374 216T388 308Q388 352 370 375Q346 405 306 405Q243 405 195 347Q158 303 140 230T121 120Z">
/path>
path data-c="2208" d="M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z">
/path>
path data-c="4F" d="M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z">
/path>
其中,
是一个加权函数,
是当前训练代理战胜对手
的概率,
是一个超参数。
■ 3.4 Transferring to Reality
为了更好进行在现实环境的能力迁移,作者通过随机化地形摩擦力、执行器扭矩限制,并定期在机器人的租部施加随机力量的扰动。此外,在障碍物周围还加入随机半径的充气圆柱体,以覆盖障碍物的边缘。其他方面,为了获取MAX机器人在现实世界实验中的外部感知信息和位置信息,通过采用动作捕捉系统,并为机器人创建了离线地形图。
实验将训练好的控制器部署在MAX机器人上,训练任务包括了imitation,traversing,distillation and self-play(for the chase tag game)任务。
▲ 图2 | PMC评估结果©️【深蓝AI】编译
■ 4.1 Primitive Behaviors
本部分对PMC生成的原始行为的性能进行了评估。PMC训练被构建为一个强化学习问题,使用基于策略梯度的强化学习算法(如PPO)来训练PMC。
图2_A显示了MAX机器人在真实世界中模仿动物数据集中几个不同运动片段时的几张快照。通过这些图像和视频可以观察到MAX展示了类动物运动的行为,并且PMC能够在不同地形中表现出足够的鲁棒性。
图2_B展示了仿真中模仿学习任务的训练曲线。标准化奖励指的是在[0,1]的标准化范围内,跟踪动物数据集中所有运动片段的平均奖励。从图中观察到,与其他基线相比,VQ-PMC获得了最佳的跟踪奖励。带有调度退火的β-VAE达到了相当的奖励,但由于手动设计的退火过程,其训练不稳定。使用恒定β的β-VAE方法未能成功跟踪这些运动片段。
图2_C展示了在仿真中收敛PMC生成轨迹的散点图。从图中可以观察到,不同的运动类型可以通过学习到的表示来理解,这些表示在低维空间中一般能够区分不同的运动。结果表明,深度生成模型的表现能力能够成功融入运动控制策略中。
图2_D总结了在仿真中所生成行为的步态分析结果。从图中可以看到,VQ-PMC能够准确再现动物运动数据中的运动,VQ-PMC的小提琴图形状与数据的形状比带有退火调度的β-VAE要匹配得更好。其余三组必须同时遵循随机命令并保持动物自然性,因此运动的自然性有所下降。然而,基于VQ的EPMC与基于β-VAE的EPMC相比,仍显示出与运动数据更接近的匹配,并且通过施加额外的对抗模仿奖励可以提高EPMC的自然性。
最后,图2E报告了在现实中通过零样本方式应用训练好的VQ-PMC时的仿真与现实之间的性能差距。正如预期的那样,考虑到仿真和现实之间存在动态差距,直接将训练好的控制器应用于真实机器人时,奖励会下降。
■ 4.2 Traversing Complex Obstacles
本节实验评估了EPMC控制器在解决各种穿越任务(例如:分别跨越了楼梯、跨杆、障碍物和块)中的表现。图3A-D展示了这些场景在真实环境中的情况。
▲ 图3 | PMC评估结果©️【深蓝AI】编译
图3_E上面的图表显示了在现实世界实验中,对不同高度和指令速度下,每个子任务10次重复的平均成功率,底部的图表则显示了这些子任务的平均输出扭矩。结果表明,训练好的控制器在各种设置下都保持了高成功率,输出扭矩即使在执行这些灵活行为时也分布在相对较小的绝对值范围内。在仿真中,成功率始终完美(100%),因为奖励和收敛条件保证了这一点。
图3_F比较了在平坦地形上根据指令训练环境级别网络时重用各种预训练网络的学习曲线。正如图中显示,相较于其他基线方法,VQ-PMC训练的原始层级网络显著加速了EPMC控制器的训练。
此外,在消融研究,本文方法与基线方法进行比较,该基线方法与该方法共享相同的神经网络架构,但其随机初始化且未重用预训练的原始级别网络。这些比较在四个穿越任务中的训练曲线如图3G所示。从图中可以看到,重用预训练的原始运动先验显著促进了EPMC控制器的训练,而从头开始训练则速度较慢,甚至无法解决任务,这考虑到了任务的难度和其中使用的稀疏奖励。
■ 4.3 Chase Tag Game
本小节评估了SEPMC在解决复杂下游任务中的能力。作者通过一个类似于人类儿童游戏“世界追逐大赛”(World Chase Tag)的多智能体追逐游戏,其中两个MAX机器人相互对抗。游戏场地设置了梯子和栏杆等障碍物,增加了游戏的复杂性。
▲ 图4 | 追逐游戏的过程快照©️【深蓝AI】编译
如图4(A-D)图展示了两个机器人相互对抗追逐的过程。
在图4_E中,展示了在现实世界游戏的一个完整回合的分析,其中曲线显示了两个MAX机器人的执行器扭矩、角速度、线速度和根高度。总体而言,两个MAX机器人的扭矩在整个游戏中都落在合理的范围内。
本研究提出了一种新的四足机器人动作通用学习框架,以便在不同的感知和任务层面上重用预训练知识。在原始动作层次(PMC)借助深度生成VQ-VAE模型,以学习离散的潜在表示,生成控制信号以促使机器人行为与真实动物相似。EPMC环境层次结合基础层次的知识,通过强化学习适应不同的环境和障碍物,如梯子、狭窄通道、栏杆和方块;SEPMC策略层次则专注于解决更复杂的多智能体追逐游戏,通过重用前两层次的知识,通过自我对抗和多智能体强化学习,训练出具有策略性的动作。最后成功地将所有这些训练好的控制器应用于MAX机器人,动物级策略和动作在现实任务中得以体现。
为了进一步展示该框架的普遍性和可扩展性,作者还展示了用机载传感器替代运动捕捉系统的便利性。通过借助一个额外的学生-教师蒸馏过程,以原先训练的环境层网络被视为教师,并以机载相机的深度图像作为输入的学生环境层网络,此外还有本体感知和导航指令。然后执行一个监督学习/蒸馏过程,以根据教师环境层网络的输出(即潜在代码)来训练学生环境层网络,作为标签。实验结果证明了MAX机器人同样具备逼真的敏捷性。
最后,作者也提出了未来的研究方向之一是用数据驱动的方法,以更成本更低的数据收集方式获取运动数据。例如,从在线视频资源中提取必要的运动信息,类似的工作已经在仿真中展示了人形机器人的不错成果。有望将此类技术转移到真实机器人控制中去。
-end-
随着机器人产品的落地,众多机器人公司对Motion planning方向人才需求巨大,同时越来越多的国内院校开设机器人专业,深蓝学院联合浙大高飞教授开设
《移动 机器人运动规划》
相关课程,旨在帮助各位快速入门
运动规划研究领域
。
史上最快,仅需10ms的动态点云剔除方法
2024-08-14
APIGen: 一场函数调用AI的革命,如何用6000万数据点打造超越GPT-4的LLM
2024-08-13
到此这篇预训练和自训练(预训练技术)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明 :
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jszy-zmms/27445.html