1 简介

Object reorientation 面向的问题是:物体初始化的位姿,无法使机器人立刻抓取并以特定的位姿放置物体。

本文提出基于视觉的操作系统ReorientBot,包含以下步骤:

  1. 视觉场景理解:使用板载RGBD相机进行物体姿态估计(pose estimation)体积重构(volumetric reconstruction)
  2. 可学习的路径点 (waypoint) 选择(waypoint指物体的抓取位姿物体的重定位位姿);
  3. 基于选择的waypoint,使用传统motion planning生成无碰撞的轨迹。

每组waypoints包括start waypoint (grasp/regrasp pose)end waypoint (reorientation/placement pose).

该方法面向模型已知的物体,在仿真和实际场景中,达到93%的成功率。

与启发式方法相比,成功率提高81% (精度差值/baseline精度),运行效率提高22%。

本文方法的主要创新:单步重定位

以前的方法必须假定重定位的位姿是稳定的,使得一些重定位动作实现起来比较困难,如翻转物体(机械手在物体翻转后,会挡在物体下面)。本文方法结合使用稳定重定位姿态不稳定重定位姿态,其中不稳定姿态在被机械手释放后会由于重力最终变成稳定姿态,使机器人每一步重定位都可以实现显著的旋转,实现单步重定位。

机械手类型:真空吸附。

2 方法

给定target object (当前要操作的物体)目标状态,通过视觉场景感知、waypoint 生成和motion planning来将物体放置在目标位置。

2.1 视觉场景理解

对于场景中的target object,使用MoreFusion算法进行2D目标检测和6D姿态估计。

对于场景中的non-target object (target object 之外的所有物体),使用体积重构算法?使用heightmap表示物体上表面的每个点到地面的距离,用来表示non-target object的状态。

算法在已知物体集合上训练。

2.2 motion waypoint 生成

使用随机采样学习的过滤算法来选择waypoint。

2.2.1 Waypoint 采样 for pick-and-reorient

pick-and-reorient任务中,waypoint包括开始的grasp pose,和最后的reorientation pose

采样grasp pose

根据target物体初始位姿,在仿真中搭建物体物体场景,使用虚拟相机获得物体mask深度图,计算物体表面法线,在物体表面提取约30个点和法线,得到抓取位置和四元数。

在物体堆附近的开放、平坦的空间中采样reorientation pose

首先采样XY坐标:将一个0.5m×0.3m0.5m \times 0.3m0.5m×0.3m的矩形空间离散化为10×8=8010 \times 8=8010×8=80个点,在每个XY位置处,构建一个立方体,边长为target物体的最长轴,检测立方体与其他non-target object是否碰撞,过滤距离物体堆太近的位置。

然后计算旋转和Z坐标:在每个无碰撞的XY坐标处,将旋转姿态的三个欧拉角都均分为8份,共83=5128^3=51283=512份。对于每个旋转姿态,计算target物体在Z=0Z=0Z=0时的底部到平面的距离lll,物体的Z坐标设为l+0.02ml+0.02ml+0.02m,使物体位于平面上方。在所有XY处的旋转姿态和Z坐标都是可复用的。

最终得到最大80×512=4096080 \times 512=4096080×512=40960个候选reorientation poses。

采样的reorientation poses中包含不稳定姿态,不稳定姿态在被机械手释放后会由于重力最终变成稳定姿态,使机器人每一步重定位都可以实现显著的旋转,提高运行效率。

2.2.2 reorientation pose 选择

训练一个神经网络模型来预测物体在reorientation pose被机械手放开且物体落下并稳定后,物体可以被grasp pose抓取的概率。

这里的grasp pose和上面采样的grasp pose不是一个,这里的grasp pose是怎么得到的?

使用模型从40960个候选中选取top-1000个得分最高的reorientation pose。

模型输入:object label、initial pose、reorientation pose、物体 grasp pose、物体堆的heightmap,

模型结构:CNN+maxpool+relu处理heightmap,然后与其他四个信息concat,然后经过MLP处理,输出得分。

标签采集:对于一个随机采样的reorientation pose,在仿真中物体在从pose自然下落至稳定位姿,使用motion planning来测试target grasp pose是否是可实现的。这里的grasp pose是怎么得到的?

损失:二值交叉熵

模型如下:

2.2.3 Waypoint 采样 for pick-and-place

pick-and-reorient任务中,waypoint包括开始的grasp pose,和最后的placement pose(提前给定)

grasp pose:与pick-and-reorient任务不同,该任务的grasp pose从物体的final pose下采样。

将仿真物体放置在final pose,在容器的开口方向上生成虚拟相机(柜子的水平方向,盒子的垂直方向),然后采用与pick-and-reorient任务中相同的方式,在物体表面采集30个grasp pose。

placement pose:提前给定。

2.3 运动轨迹生成

由于遍历每一对waypoints来生成轨迹然后判断是否碰撞很耗时,因此引入另一个learned model来预测一对waypoints的有效性,即motion planner 基于这一对waypoints可以找到无碰撞的路径的概率。得分低的waypoints被过滤。

该模型只用于pick-and-reorient任务,不用于pick-to-place任务。因为pick-to-place任务中只有一个placement pose,waypoints对很少;而reorientation pose很多。

模型输入:和上一个模型结构类似,输入grasp pose、reorient pose、initial pose、object label、heightmap。

模型输出:grasp pose 得分、轨迹 得分、reorient 得分、关节空间中的轨迹长度。

其中,grasp pose 得分、轨迹 得分、reorient 得分 分别表示机器人在轨迹的开始、中间、最后状态是不是无碰撞的。

预测这三个变量的原因是,帮助机器人来推理为什么整个轨迹是无效的,或者说start/mid/end中哪个状态是无效的。但是,grasp pose和reorient pose本来不就是无碰撞的吗,这样会不会冗余?

损失:前三个得分采用二值交叉熵,轨迹长度采用L1 loss。

模型如下:

有效waypoints对的选择标准:先选择轨迹 得分top-10的waypoints,然后按照关节空间中的轨迹长度进行排序,长度最短的送入motion planner得到无碰撞轨迹。

3 实验

采用6个物体,尺寸中等偏大,全部来自YCB模型库。

使用OMPL实现的RRT-Connect算法生成轨迹,然后进行碰撞检测。

placement pose由程序随机分配,作为任务目标。

测试了两种不同的真空吸附器(I-shape、L-shape),上述提到的两个模型需要针对每个吸附器分别训练。

对比的启发式方法(baseline):为了使reorientation pose是稳定的,且target grasp point可达,对于80个XY坐标,物体只沿z轴旋转,且target抓取点面向机械臂,如下右图:

结果表示,本文方法比baseline高很多。

详细结果看论文。

问题

1、如何确定物体重定位的位姿?

答:先去除可能碰撞的XY坐标,再均匀采样旋转姿态并计算Z坐标,然后根据学习模型选出 重定位后还可以被抓取的概率高的重定位位姿(reorientation pose)。

2、已知重定位的位姿,如何生成抓取位姿和运动轨迹?

答:先采样生成抓取位姿,然后使用学习模型预测抓取-重定位位姿中间的轨迹无碰撞的抓取-重定位位姿对。使用传统的motion planner生成轨迹。

机器人学习之ReorientBot: Learning Object Reorientation for Specific-Posed Placement(ICRA 2022)相关推荐

  1. 梳理 | 机器人学习(Robot Learning)的发展

    机器人学习这个话题上,在这个领域做出最重要贡献的是加州伯克利大学的Pieter Abbeel和Sergey Levine团队,几乎可以说他们以一个团队之力开拓了机器人学习这个领域. 梳理一下机器人学习 ...

  2. 机器人学习Robot Learning之模仿学习Imitation Learning的发展

    1 前言 在上一篇文章最前沿:机器人学习Robot Learning的发展 - 知乎专栏 中,我们介绍了机器人学习Robot Learning这个方向的发展趋势,并介绍了部分基于DRL的方法,那么在本 ...

  3. 活动报名 | MIT陈涛:如何让机器人学习高频接触的操作技能

    由智源社区举办的「智源LIVE 第20期 |  陈涛:如何让机器人学习高频接触的操作技能--基于视觉的灵巧手操作及四足机器人控制」将于3月24日(周四)20:00-21:00举办,2021年CoRL ...

  4. 视觉导航(一)Learning Object Relation Graph and Tentative Policy for Visual Navigation

    Learning Object Relation Graph and Tentative Policy for Visual Navigation Abstract 视觉导航中最重要的是学习有用的视觉 ...

  5. 学术分享丨机器人学习的思考

    2020-12-01 21:15:31 随着学会的队伍不断发展壮大,分支机构的发展愈发完善,丰富多彩的分支活动与学术分享也频频呈现.今年以来,CAAI认知系统与信息处理专委会积极倡导学会"疫 ...

  6. Science 好文:强化学习之后,机器人学习瓶颈如何突破?

    来源 | AI科技评论 编译 | 陈彩娴 编辑 | 陈大鑫 在过去的十年里,机器学习确实取得了巨大的突破,计算机视觉与语言处理方面也因此出现了许多改变世界的重要应用.但是,这股"春风&quo ...

  7. 零次学习(zero-shot learning)

    零次学习(zero-shot learning)基本概念 假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马:之后,又看到了老虎,告诉他:"看,这种身上有条 ...

  8. 深度学习(Deep Learning)从零基础达到入门级水平

    本文标签:   机器学习 TensorFlow Google机器智能 人工智能 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序 ...

  9. 【论文翻译】小样本学习(Few-Shot Learning)背景和主要方向简介

    [论文翻译]小样本学习(Few-Shot Learning)背景和主要方向简介 本文主要翻译自论文Generalizing from a Few Examples: A Survey on Few-S ...

最新文章

  1. 【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
  2. 201771010137 赵栋 《第十二周学习总结》
  3. leetcode add Two Numbers
  4. JSF请求处理过程(一) FacesServlet初始化
  5. 如何用 javascript 做一个高逼格的进度条
  6. 五句话足以改变人生[转]
  7. SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法(2)
  8. 逆向工程平台 Radare2
  9. 使用QRCode轻松实现二维码扫描下载的功能
  10. 秩和比RSR法算法C语言,秩和比法(用秩和比法计算权重时怎样编秩?)
  11. 最速梯度下降法及matlab实践,最速下降法以及代码实现
  12. 关于matlab的erf与erfc
  13. 多标签学习-多任务学习
  14. thingworx ADO安装
  15. Ubuntu下修改只读文件方法
  16. 计算机网络技术不会拼音,我爸不会拼音,怎样在电脑上学打字阿?
  17. 一键取消所有淘宝垃圾短信
  18. ArcGIS Pro2.7 导入obj模型后贴图丢失问题
  19. 【转】娱乐八卦——关于孙悟空的授业师傅的分析
  20. window下使用qemu加速使用ubuntu最新版

热门文章

  1. onDblClick双击事件
  2. 服务器限制一条连接的消息包单位时间内的发送频率
  3. 医疗行业多层级复杂网络环境下的消息传输(远程会诊)架构与实现
  4. 模拟器调试程序,uni-app和android studio通用
  5. HTML5APP实战(1): 围住神经猫(一)
  6. Android Watchdog 狗子到底做了啥
  7. GPIO驱动分析 GPIO使用方法--S5PC110和S5PC210
  8. Cananl安装和配置
  9. java基于微信小程序的四六级英语学习测试系统 uinapp 计算机毕业设计
  10. react 学习路线_2018 React JS路线图