针对杂乱环境下抓取物体的机器人学习
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者:脱贫钉子户
https://zhuanlan.zhihu.com/p/98990794
本文仅做学术分享,如有侵权,请联系删除。
摘要
由于障碍物阻碍了可能的抓握,因此在混乱的环境中进行机器人抓取通常是不可行的。然后,需要进行诸如移动或推动对象之类的预抓取操作。本文提出了一种算法,该算法除了可以抓取之外还可以学习以某种方式移动对象,从而增加它们的抓取概率。我们研究的主要贡献有三点:1.我们提出一种算法,用于学习诸如夹紧或移动之类的操纵基元的最佳姿态;2.我们学习不可理解的动作,这些动作明显增加了把握的可能性;3.我们将实际解决方案应用于垃圾箱拣选的工业任务,从而能够完全清空垃圾箱。本文的机器人通过自监督学习了25000次抓取和2500次移动,机器人最终实现了每小时抓取 次物体,同时我们将算法部署到了一些机器人从未见过的物体上,验证其泛化性能。
主要贡献
1.提出了一种基于视觉的姿态学习方法,用于学习机器人抓取时的最佳姿态;
2.通过抓取成功概率最大化来学习机器人的抓取策略;
3.将推动和抓取结合,在统一的回报函数框架下进行学习,从而获得更为有效的推动数据;
4.构建了一个真实的机器人系统,通过训练完成了垃圾分类任务。
算法流程
操作对象空间姿态学习
给定深度图s作为状态量,动作空间为 ,其中
是坐标,
表示绕
轴的旋转角度,
表示定义的运动原语策略,在本文中一共定义了5种运动原语。为了得到俯瞰的视图,因此将绕
轴的旋转都设置为0,深度信息可以直接从深度图获取,因此就得到了六个自由度的姿态信息。给定
就可以获取个深度图的一个滑窗,通过一个全卷积神经网络,输出当前应该采取的运动原语策略
,整个网络结构如下图:
这里将一个动作的选择可以看作是两个复合函数的组合 其中
表示对状态和动作的值函数估计,
表示选择函数。
动作值函数的估计:这里在训练阶段输出的最后一层输出的是 大小的特征图,但是在推理过程中输出的是
大小的特征图。绕
轴旋转的角度
一共有20个值,因此在推理阶段,机器人对每一种运动原语策略需要计算32000个回报值。策略选择:在强化学习中通常都是使用贪心策略作为动作选择,在本文中通过均匀的返回最大值中的一个随机动作,从而避免动作选择的失败。最终算法输出的六个姿态分别是
,再结合运动基元索引估计回报
。
动作空间探索
探索策略的设计是机器人抓取快速有效数据学习的关键,本文将介绍一些用于物体操纵的高级策略。在没有先验信息的情况下,系统通过在动作空间内连续且均匀地随机采样来探索环境。由于我们采取的是离线策略算法,我们能够将 -贪心算法与以下高级策略相结合:
1.最大化self-information: 其中
表示概率密度函数,对于机器人操作而言,获得最终的绝对奖励同通常而言都是非常稀疏的,因此通常会选择
的动作,但是我们发现如果使用
会使得探索更为广泛;
2.最小化不确定度:在RL中,通常将 添加到动作-值函数本身(用于训练),从而推导出了通用的上置信界(UCB)算法。我们使用蒙特卡洛方法进行方差采样来估计神经网络的贝叶斯不确定性;
3.最小化结果的不确定性:对于二元回报函数 的情况,将其替换为
,在缺乏信息或者随机物理条件的情况下,系统无法可靠地预测这些动作的结果,可以使用这类替换。
抓取学习
本文的主要贡献是使一项技能(推动)明确依赖于另一项(抓取),这样,可以绕过了与时间有关的MDP中稀疏奖励的问题。首先,将运动原语策略 的集合定义为从三个不同的抓取动作。机器人的轨迹由抓握姿势
及其平行于抓爪的接近向量给出;如果机器人检测到与其内部力传感器的碰撞,则机器人会缩回几毫米并合上夹具。然后,将物体提起,机器人将移动到收纳箱上方的随机姿势。使用抓爪的力反馈来测量抓握成功,定义了回报函数如下:
对于二元回报函数,其抓取的动作-值函数 表示抓取成功的概率
推动学习
通过使转移的奖励函数明确依赖于抓握成功概率,使得我们将推动和抓握两个动作结合起来,更准确地说,系统预测不同的运动原语策略对最大抓取概率的影响。回报函数表示了推动动作执行前后的状态变化,从而导致了最大抓取概率的变化,因此训练网络的回报函数可以写作:
与抓取的回报函数不一样,推动的回报函数需要进行归一化,使其成为一个连续量,它的估计是一个回归任务,训练的时候优化目标是实际回报与预期回报之差。与推动动作原语一样,本文也对推动动作定义了两个不同的运动原语策略。
由于数据生成是深度RL的限制因素,因此,训练过程最好采取自监督方式,尽可能减少人为干预。为了保证连续训练,系统首先估算总体最大抓取概率 ,如果
,系统应该采取可以增加最大抓取概率的动作指导
,再然后,系统尝试减少最大抓取概率,直到
,如此循环往复。训练从垃圾箱中的单个对象开始,随着时间的推移又添加了一个对象。
学习与推理结合
对于垃圾箱拣选任务,抓取和推动需要组合成一个控制器,除了推理本身,组合学习还需要保证训练和应用阶段的数据分布相匹配。整个任务的流程图:
首先,估计抓取的最大概率,如果概率低于阈值,则进一步估计推动的回报,如果回报大于阈值,就采用推动动作,否则为空箱;当概率大于阈值时,就采用抓取策略。
实验结果
实验平台采用的是Franka Panda机器人,双目相机采用的是Ensenso N10,采用的是英特尔的i7-8700K处理器和两张GTX1070Ti显卡。在单个GPU上网络推断时间大约需要10ms,计算包括图像捕捉在内的整个动作不到100ms。项目的完整地址:https://github.com/pantor/learning-shifting-for-grasping
表1 每小时拣货量(PPH),掌握率以及在不同箱式拣选方案中每抓取一次需要的推动次数。在实验中,机器人从m个物体中抓取了n个物体,没有替换,随机的抓取成功率为3%。
图1 定性地显示了该系统学会了将对象移开或移离垃圾箱边缘以提高抓取概率的可视化。
图2评估了不同的抓取阈值,对于抓取率和每个小时抓取数目的影响。
图3 真实的抓取物体
表2 不同物体的抓取结果