Press "Enter" to skip to content

ICRA 2022 | 无图纸搭桥进阶

你玩过积木吗?乐高、叠叠乐… 这些游戏看上去简单,实则非常考验我们的手眼协调性、准确性和策略能力。如果让你在 没有图纸 时使用 长短不一 的物料搭建一座完整且稳定的桥,想必也不是一件那幺简单的事,而如今机器人竟然能够独立完成这个艰巨的任务。最近,来自清华大学、字节跳动人工智能实验室、加州大学圣巴巴拉分校 (UCSB) 和上海期智研究院的研究人员使用强化学习开发了一个智能机器人,能够用随机尺寸的物料设计并搭建出积木桥。

 

 

论文地址:

 

https://irisli17.github.io/publication/icra22/pmr.pdf

 

演示视频:

 

https://www.techbeat.net/talk-info?id=647

 

 

一、前言

 

 

图1:随机尺寸积木搭桥任务设定

 

如图所示,桌面上摆放着长度不定的积木,机器人需要利用这些积木搭出一种能把两边河岸(天蓝色)连起来的结构。这个任务主要有三大难点:

 

· 首先,机器人事先并不清楚什幺样的结构才能满足建造要求,而需要自己根据材料和河道的宽度合理地 设计 要用哪些积木,摆到什幺位置。

 

· 其次,积木块的尺寸有长有短,因而它们可能的摆放方式非常多样,而其中符合物理稳定以及连通河岸要求的只占极少数,很难 探索 到。

 

· 最后,我们设定只在机器人成功搭出桥梁的时候给它一分的奖励,在中途不给分,这样可以免去人工设计奖励函数的麻烦,但如此 稀疏的奖励 信号 也给强化学习训练带来了更大的挑战。

 

我们在前一个版本的工作中[2]曾经研究过强化学习进行无图纸搭桥任务,并且提出了 强化学习负责设计,动作规划负责机械臂控制 的层次化框架。但这个版本中考虑的任务比较简单:所有积木的尺寸完全一样,而且还需要手工设计较为复杂的奖励函数来引导强化学习智能体设计出好的建筑结构。

 

而新版本中物体尺寸长短不定,可能的设计总量比起所有物体尺寸相同时大大增加,要在不借助任何中间奖励信号的情况下找到其中符合成功条件的设计就变得尤为困难,仅用标准强化学习来做设计就不足以取得令人满意的表现了。

 

二、从关键状态重新探索

 

我们提出的最重要的改进方法是让强化学习智能体从 关键的中间状态 重新探索。

 

在标准的强化学习过程中,智能体通过在环境中不断试错进行学习。在我们搭桥的场景中就是把所有积木初始在河道之外,然后每一步挑选一块积木,把它摆到一个新位置,如此重复直到用完一轮尝试的最大步数,所有积木都被摆回河道以外。在稀疏奖赏设定下,这样的试错效率很低,因为绝大部分尝试都不能获得有效的奖励信号。而另一方面,虽然水平较低的智能体探索出的轨迹很难达到完全成功状态,但我们发现它还是可以访问到许多有意义的半成品状态的,比如它可以把某根积木竖在凹槽当中,或者搭出一个小的T字形,如果能从这些“半成品”接着探索,它搭出成品的概率就会比从什幺都没有的状态高很多。因此我们就提出应该让智能体充分挖掘这些关键的中间状态,让它从这些半成品重新开始新一轮探索,从而更容易地获得有效学习信号。

 

我们把从自己访问过的关键状态重启的技术叫做 Prioritized Memory Reset (PMR) 。结合了PMR的强化学习流程,如图2所示。其中红色部分表示PMR,余下黑色部分表示正常的强化学习流程。PMR维护了一个回放队列,用来存储在强化学习试错过程中访问过的状态,在新一轮环境交互开始时,允许一定概率地从这个队列中的半成品状态接着搭桥,而不是只允许从零开始搭。PMR需要解决的关键问题是,到底哪些状态才值得作为重新探索的起点呢?

 

 

图2:结合PMR的强化学习框架

 

我们用“ 时间差分误差(temporal difference eror) ”来挑选用来重启的状态,时间差分误差越大的状态优先级越高。即PMR回放队列中每个状态s的优先级定义为 , 表示强化学习训练的估值函数。时间差分误差大的状态或者是出乎意料地发现了更好的状态,或者是不小心毁掉了一个不错的状态(把搭出来的结构碰塌了),从这些状态重启都能有效地促进智能体去挖掘潜力较大的状态,还可以在敏感的状态上增强策略的鲁棒性。

 

我们可视化了强化学习训练到不同迭代次数时PMR选出的重启状态。随着训练的进行,由TD误差挑选出来的重启状态也在不断地演进:第10轮迭代时智能体刚刚学会把积木搬运到河岸附近,到第50轮时它会探索到较短的桥的雏形,到第100轮就会出现更加复杂的包含多个桥墩的半成品。

 

 

图3:训练不同阶段的PMR重启状态

 

三、自监督辅助任务

 

为了进一步提高强化学习采样效率,我们提出了一种自监督的 逆转移关系预测 任务来辅助强化学习智能体的表征学习。给定从环境中采集的转移关系(当前状态 , 动作 , 下一状态 ,我们让希望智能体能从前后两个状态预测出导致这一变化的动作。逆转移关系预测网络和强化学习策略网络共享部分参数,因此可以辅助强化学习的表征学习。注意到该预测任务和环境的奖励信号无关,因此即使在环境完全没有给出有效奖励信号的时候,策略网络也能通过该辅助任务得到训练。

 

四、结合运动规划微调强化

 

学习策略

 

为了快速试错,我们在训练强化学习时先假设物体可以不经机械臂的操作瞬间移动到网络输出的目标位置上,然后返回在重力作用下模拟到的稳定状态用来进行下一步决策。但在实际部署时,强化学习策略输出的每步决策需要通过运动规划算法转化成机械臂的一连串无碰撞动作才能真的移动积木块。我们发现运动规划并不总能完成强化学习输出的任务,比如它无法移动超出机械臂工作范围的物体。

 

为了确保在真实世界的可行性,我们用机械臂的运动规划替代模拟器里的瞬间移动过程,微调了一遍策略网络,一旦运动规划算法找不到机械臂无碰撞的执行轨迹,这一步策略网络的决策就直接被跳过,这样网络就能慢慢给出真实世界中可行的决策了。

 

五、实验结果

 

我们首先来看我们的智能体是否能用随机尺寸的物料完成设计和建造任务。我们提供了7块积木,包括3块长度20cm,2块14cm和2块24cm的积木。我们的智能体在仿真环境和真实xArm 7机械臂上的执行策略如下图所示。它先把20cm的积木按不同间隔竖着摆成桥墩,然后用24cm的长积木把较大的空隙连接上,最后用短积木补齐空缺的桥面。

 

 

 

图4:在仿真环境(上)和真实世界(下)中用7块尺寸不一的积木搭桥

 

我们在7块随机尺寸积木的场景下进行了充分的消融实验来验证提出的方法是否有效。图5中,左图显示我们的方法的成功率随训练步数的变化是红色曲线,而去掉PMR的蓝色曲线和去掉辅助任务的紫色线成功率都明显降低,只用纯强化学习的灰色线更是完全没有取得进展。中间的图展示了PMR中使用不同的标准挑选重启状态的影响,证明使用时间差分误差可以取得更好的效果。右图红色线展示了结合运动规划微调的效果,微调前的模型直接应用到机械臂上只有0.224的成功率,微调以后成功率可以增长到0.718,而一直带着机械臂的运动训练(蓝色)收敛的成功率较低。

 

 

图5: 消融实验

 

六、总结

 

本文开发了一种强化学习方法,可以仅给稀疏奖励的情况下利用长短不一的物体搭建积木桥。主要的技术贡献包括从关键状态重新探索的技术、自监督的表征学习方法以及结合低层运动规划的高层策略微调。这些技术对于类似的其他稀疏奖励学习问题也有应用价值。

 

七、彩蛋

 

我们的方法还可以在同样的任务下给出多种不同的设计。如下图,我们展示了河岸距离69cm,积木块尺寸为14cm, 18cm, 20cm, 20cm, 20cm, 24cm, 24cm时策略网络给出的三种不同的桥梁。

 

 

参考文献

 

[1] Y. Li, T. Kong, L. Li, and Y. Wu, “Learning Design and Construction with Varying-Sized Materials via Prioritized Memory Resets”, ICRA 2022

 

[2] Y. Li, T. Kong, L. Li, Y. Li, and Y. Wu, “Learning to design and construct bridge without blueprint,” IROS 2021

 

作者: liyunfei

 

Illustration  b y Bogdan Magenta from  i cons8

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注