RobotFlow Task Zoo

本文主要收集主流实验中的manipulation task,并在最后试图让这些task从概念层面总结一下(某种意义上也是meta learning),由此分析出当前task定义的范围和下一步可能的发展。

主要参考的文章有meta-world, RLBench, surreal

各任务具体的任务描述见文末。

首先,我们先把各benchmark里的task统一地总结起来。

关于各primitive

primitive分两种,接触型primitve和运动型primitve。这里假定完成接触型primitive后手指和物体在一定程度上可以认为是相对静止的。

  • grasp:接触型,单指“夹”这个动作,grasp有三个参数,一个是approach pose,一个是物体上的抓点,一个是施加的力。仿真问题一般不考虑力,但为了描述完整还是放这儿。决定这三个参数的叫grasp planner。
  • push:接触型,有三个参数,一个是approach pose,一个是push type(有用指侧推,有用指尖推,也有两指并拢推),一个是力。决定这三个参数的叫push planner。
  • move:运动型,是指手臂上的运动,无论是带物体还是不带物体。move的轨迹主要来自plan,约束是planner综合当前的可运动空间(避障)和物体的knowledge,以及对task的理解(物体和物体之间的关系对task的作用)考虑的,随着任务越多需要考虑的越复杂,不过这个是planner的问题,对于move来说它只用接受关于trajectory的指令。
    • reach是所有任务第一步都要做的,所以在动作序列里,除了只做reach操作以外的,都去掉了reach
    • 常见的特殊move轨迹有:
      • rotate
      • slide
      • hit
      • pour
  • insert:运动型,这个动作包含peg in hole和hole out peg。理论上如果一切都很准,那么直接move就完事了,但之所以把insert拧出来,是因为解决距离洞口的误差是这个primitive的精髓所在,有点后处理的意思。

单纯任务

动作序列 任务名称 考虑物-物/环境关系
move reach; reach with wall
grasp -> move turn on faucet; turn off faucet; turn dial; pull handle;turn on faucet; turn off faucet; turn dial; pull handle;get coffee; pull handle side; basketball; pull with stick; disassemble nut; hammer; slide plate side; retrieve plate side; pull mug; unplug peg; close window; open window; open door; open drawer;beat the buzz; change clock;hockey; open fridge;open microwave; open oven;open wine bottle; pick and lift;pick up cup; play jenga;pour from cup to cup; scoop with spatula;straghten rope; sweep to dustpan;take umbrella out of umbrella stand; take usb out of computer;turn oven on; turn tap; unplug charger;water plants; wipe desk
grasp -> move -> release stack; unstack; place onto shelf;pick & place; open box; close box; pick bin; get ice from fridge; meat off grill; meat on grill;move hanger; phone on base;place hanger on rack; put books on bookshelf;put bottle in fridge; put groceries in cupboard;put item in drawer; put knife on chopping board;put money in safe; put plate in colored dish rack;put rubbish in bin; put umbrella in umbrella stand; remove cups; setup checkers;set the table; stack cups; stack wine; take frame off hanger;take lid off saucepan; take item out of drawer;take money out safe; take off weighing scales;take plate off colored dish rack; take toilet roll off stand; weighing scales
grasp -> move -> insert insert peg side; hang frame on hanger;hannoi square; insert usb in computer;place cups; place shape in shape sorter;plug charger in power supply; put knife in knife block;put toilet roll on stand;
push -> move sweep; push; push back; press handle side; press handle; press button top; press button; lock door; unlock door; press switch
push -> move push with stick; sweep into hole; push mug; slide plate; soccer; retrieve plate; close drawer; close door; close/open box2;close fridge; close/open grill;close laptop lid; close microwave; lamp off; lamp on;toilet seat down; toilet seat up

复合任务

任务名称 组合
press button wall reach with wall + press botton
press button top w/ wall reach with wall + press botton top
push with wall push + reach with wall
pick & place w/ wall pick & place + reach with wall
block pyramid stack * N
change channel pick & place + press botton
TV off pick & place + press botton
TV on pick & place + press botton
close door2 close door + press handle side
close jar pick & place + change clock
empty container pick & place * N
empty dishwasher open door + press handle + push back + pick & place
hit ball with queue pull handle + reach
light bulb in pick & place + change clock
light buib out change clock + pick & place
open door2 press handle + open door
open jar change clock + pick & place
open window2 change clock + push
put shoes in box open box2 + pick & place
put tray in oven open oven + pick & place
screw nail insert peg side + change clock
slide cabinet open and place cups open window + pick & place
solve puzzle pick & place * N
take cup out from cabinet open window + pick & place
take shoes out of box open box2 + pick & place
take tray out of oven open oven + pick & place

双手任务

任务名称 左手 右手
bimanual lifting lift lift
bimanual peg-in-hole insert peg side grasp

简评当前设计的benchmark task

如上所述,我把目前的152种benchmark task根据primitive的序列分成6大类,涉及到的primitive只有4种。我们可以从中得到几点启示:

  1. 基于两爪的gripper能涉及到的primitive就这么些了,如果要想扩展primitive,只能往dexterous hand/manipulation演进。把一些更复杂的primitive囊括进来。如果不走dexterous hand的路线,那primitive就结束了。
    • primitive中,move非常特殊,因为它根据运动的pattern也能总结出一些特化的pattern,从而在使用中也可以认为是primitive
  2. 在primitive有限的情况下任务的复杂性源于物体的形状多样性,材质的多样性,plan的复杂性
    • data-driven的方法是希望用数据来爆掉这些个复杂性,学出common structure
    • 如果我们不走这条路(因为做不过别人),那么就还是要往物体的建模,知识,plan上面去靠。
  3. 具体的说,现在的benchmark
    • 重复性设计较多,有一些task名字不一样,但任务空间相似(当然,这个从服务meta-learning的角度不算坏事)
    • 受限于仿真环境中,对物体,对contact动力学的建模精度,task的复杂程度比较受限。任务的复杂性体现在,物体数量,物体position等。
    • 双手task关注较少
    • 关于叠衣服这种柔性物体为对象的task一般都是单独作为topic讨论的。

我们的task zoo

TODO

Task list详细清单

单手任务1-50来自meta-world,51-150来自RLBench,双手任务来自surreal。前50和后100个中有部分任务是重合的。

根据后100个任务的定义,我推理出一个task定义的方式,就是大规模让人记录自己一天的生活,然后从中总结出理想中可以被机器人代替的,再看哪些容易被仿真,过滤掉一部分。流水账式日记是一个路子。

单手:

  1. turn on faucet
  • 任务描述:打开水龙头(旋转式)
  • 期望动作:
    • 夹住faucet,完成faucet的旋转:grasp -> move(Constraint$_{traj}$)
    • 从faucet的一侧,推的过程中完成旋转: push -> move(Constraint$_{traj}$)
  1. sweep:物体在桌面上,沿着桌面推动
  2. stack:把一个物体(小块)叠放到另一个小块上
  3. unstack:从一个物体上,把目标物体移动到目标位置
  4. turn off faucet:关上水龙头(旋转式)
  • 期望动作:
    • 反方向转回来
  1. push back:把一个物体往回推到指定位置
  2. pull lever:推杆,把杆拉起
  • 期望动作:从演示gif里看不出来这个task在干什么(也可以看出仿真有多不准了)
  1. turn dial:旋钮
  • 期望动作:夹住旋钮,旋转
  1. push with stick:通过推棍子,把物体间接地推到指定位置
  2. get coffee:把咖啡机下的杯子拿起来
  3. pull handle side:夹住handle,拉
  4. basketball:夹起一个小球,放入篮筐里(不是投球)
  5. pull with stick:通过拉棍子,把物体间接地拉到指定位置
  6. sweep into hole:sweep但物体要进洞,洞口会遇到insert类似的问题
  7. disassemble nut:把一个套圈从被套物边取出来。(解套)
  8. place onto shelf:把物体拿起,放架子上
  9. push mug:把杯子推到咖啡机下面(能接水的位置)
  10. press handle side:从handle的一侧,往下按
  11. hammer:抓起锤子锤钉子
    • 仿真里的设定是钉子一推就进去
  12. slide plate:从盘子一侧,推进目标区域
  13. slide plate side:夹着盘子两侧,推进目标区域
  14. press button wall:绕过墙,按墙后面的按钮
  15. press handle:从handle得一侧,往下按。这个动作和press handle side的区别是,side这个是两爪并拢,这个是单指下按。
  16. pull handle:把handle拉起来
  17. soccer:把一个球推进目标区域
  18. retrieve plate side:用两边夹的方式,把盘子从放盘区域取出来
  19. retrieve plate:用按着拉的方式,把盘子从放盘区域拉出来
  20. close drawer:通过handle把抽屉推进去
  21. press button top:从上往下按按钮
  22. reach:爪子没有东西,移动到指定位置
  23. press button top w/ wall:绕过墙,从上往下按按钮
  24. reach with wall:绕过墙到达指定位置
  25. insert peg side:用两端夹住棒子,插入洞中
  26. push:夹住推
  27. push with wall:夹住,绕墙推
  28. pick & place w/ wall:抓起物体,过墙,放下
  29. press button:向前推button,和前面向下推button有区别
  30. pick & place:抓起物体,到指定位置放下
  31. pull mug:把杯子从咖啡机下面拉出来
  32. unplug peg:把peg从孔位抽出
  33. close window:window上有handle,本质上还是抓着handle移动
  34. open window:window上有handle,本质上还是抓着handle移动
  35. open door:handle是hinge的,抓住拉开门
  36. close door:抓住门把手推
  37. open drawer:抓住handle,拉开抽屉
  38. open box:盒子的盖子上有一个handle,提起来就可打开盒子
  39. close box:把盖子放上box
  40. lock door:按一下门栓
  41. unlock door:把门栓抬起来
  42. pick bin:从一个bin里抓起物体,放到另一个bin里
  43. beat the buzz:一个带电的架子,举着一个带handle的环,从架子的一头到另一头,环不能碰到架子,否则就buzz
  44. block pyramid:stack的进阶版,涉及多个物体,叠多层
  45. change channel:把遥控器抓起来,调整到合适的方向(对准电视机),放下,按下换台按钮
  46. change clock:拧机械钟背后的发条
  47. close box2:这是一个掀盖的盒子,所以关上盒子就是把盖子翻转
  48. close door2:这个门是旋把式的门,抓起门把,关上
  49. close drawer,同28
  50. close fridge:推冰箱门,直到关上
  51. close grill:把烤箱盖子关上,动作上和55一样
  52. close jar:把盖子从旁边抓起来,放到jar上,旋转拧上
  53. close laptop lid:合上笔记本电脑的盖子
  54. close microwave:关上微波炉的门
  55. empty container:挨个把container/bin中的物体抓出来
  56. empty dishwasher:把洗碗机的门拉开,按倒合适的位置,把放碗碟的架子拉出来,把碗碟夹走
  57. get ice from fridge:把准备装冰的杯子放到冰箱门上的对应位置(可能这个冰箱能放冰?)
  58. hang frame on hanger:把相框挂在墙上的支出来的棍子/钉子上
  59. hannoi square:方形的套,套进柱子里
  60. hit ball with queue:用球杆打球,打进指定区域(台球)
  61. hockey:用hockey球杆把球推进指定区域
  62. insert usb in computer:抓起usb,插入台式机箱
  63. lamp off:按按钮
  64. lamp on:按按钮
  65. light bulb in:拿起灯泡,插入合适的位置,旋转
  66. light buib out:卸灯泡,73的反过程
  67. meat off grill:从烤肉架上把肉取出来,放旁边盘子里
  68. meat on grill:把肉放到烤架上
  69. move hanger:把挂着的衣架,从一个地方,移到另一个地方挂着
  70. open box2:55的反动作,把盖子掀开
  71. open door2:56的反动作,先按一下,再拉开门
  72. open drawer:同45
  73. open fridge:58的反动作
  74. open grill:59的反动作
  75. open jar:60的反动作
  76. open microwave:62的反动作
  77. open oven:抓住oven门上的handle,拉下来
  78. open window2:window上有个旋把,转一下推开
  79. open wine bottle:开瓶盖(讲道理这是一个双手任务,不过这里假设瓶身已经固定了)
  80. phone on base:座机,把电话放回座机上。
  81. pick and lift:抓起来,向上,不放
  82. pick up cup:把杯子抓起来,方向朝上
  83. place cups:茶杯放到茶杯架上,杯口倒挂
  84. place hanger on rack:把衣架挂到晾衣竿上
  85. place shape in shape sorter:有很多小形状,有一个板子,板子上是对应形状的凹槽。需要形状匹配的peg in hole
  86. play jenga:从一堆木块中抽出一个,木块堆不倒
  87. plug charger in power supply:把插头插入插座
  88. pour from cup to cup:从一个杯中把东西倒入另一个杯中
  89. press switch:开关时拨动式开关,往一侧拨是开
  90. push button:同29
  91. push buttons:29重复多次,按很多按钮
  92. put books on bookshelf:把几本书放进书架
  93. put bottle in fridge:把瓶子放进冰箱
  94. put groceries in cupboard:把物体放进橱柜
  95. put item in drawer:把东西放进抽屉
  96. put knife in knife block:把刀插进刀架
  97. put knife on chopping board:把刀放到菜板
  98. put money in safe:把钱放进保险柜
  99. put plate in colored dish rack:把盘子插入盘子架
  100. put rubbish in bin:扔垃圾
  101. put shoes in box:把鞋盒子打开,把鞋装进去。盒子还是掀盖式的
  102. put toilet roll on stand:把卫生纸卷插入卫生纸架
  103. put tray in oven:打开烤箱,把盘子放进去
  104. put umbrella in umbrella stand:把雨伞插入雨伞架
  105. reach and drag:夹住,拖
  106. reach target:同30
  107. remove cups:91的反操作
  108. scoop with spatula:铲起目标物
  109. screw nail:拿起螺丝刀拧螺丝
  110. set the table:摆盘,布置好刀叉盘
  111. setup checkers:摆棋盘,类似中国象棋初始位
  112. slide block to target:同2
  113. slide cabinet open:同42
  114. slide cabinet open and place cups:把储藏箱滑动打开,把杯子放箱子里
  115. solve puzzle:拼图
  116. stack blocks:同3
  117. stack cups:杯子套杯子
  118. stack wine:把红酒放到红酒架上
  119. straghten rope:把绳子弄直
  120. sweep to dustpan:把垃圾扫入畚箕
  121. take cup out from cabinet:拉开储藏室,取出杯子
  122. take frame off hanger:66的反动作
  123. take item out of drawer:103的反动作
  124. take lid off saucepan:揭开锅盖
  125. take money out safe:106的反动作
  126. take off weighing scales:从称上把东西拿走
  127. take plate off colored dish rack:107的反动作
  128. take shoes out of box:109的反动作
  129. take toilet roll off stand:110的反动作
  130. take tray out of oven:111的反动作
  131. take umbrella out of umbrella stand:112的反动作
  132. take usb out of computer:70的反动作
  133. toilet seat down:把马桶盖翻下来
  134. toilet seat up:141的反动作
  135. turn oven on:旋钮
  136. turn tap:旋钮式水龙头,旁边有阀门的,和1中的旋转式水龙头不一样
  137. tv off:遥控器关机
  138. tv on:遥控器开机
  139. unplug charger:95的反动作
  140. water plants:给盆栽浇水
  141. weighing scales:把物体放到称上去
  142. wipe desk:拿海绵/刷子擦桌子上不干净的地方

双手

  1. bimanual lifting:双手抬
  2. bimanual peg-in-hole:一手拿棒,一手拿带孔的板,在运动中插入孔中。