Lift:抓起方块
环境名:Lift,单臂 Panda。
要做的事:桌上放着一个小方块,位置每次随机。把它抓起来即可。
成功条件:方块中心高于桌面 4 厘米。
代码:https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/environments/manipulation/lift.py
Can:把易拉罐放进指定格子
环境名:PickPlaceCan,单臂。
要做的事:左边料箱里有一个易拉罐。把它拿起来,放进右边目标箱里属于「罐子」的那一格。
成功条件:罐子在正确的格子里,并且夹爪已经离开罐子约 4 厘米以上。离开的判断就是代码里的 r_reach < 0.6。所以一直捏着罐子不算成功,必须松手。
代码:https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/environments/manipulation/pick_place.py
Square:把方形螺母套到方柱上
环境名:NutAssemblySquare,单臂。
要做的事:桌上有一个带把手的方形螺母。抓住把手,对准方形立柱,把螺母套下去。这个任务要求位置和朝向都对准,属于精细插装。
成功条件:螺母套在方柱上,并且夹爪已经松开离开。离开的判断和 Can 一样,也是 r_reach < 0.6。
代码:https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/environments/manipulation/nut_assembly.py
Transport:双臂协作搬运
环境名:TwoArmTransport,两台 Panda 面对面,运行时用 --robots Panda Panda。
要做的事:
- 一只臂打开起始箱的盖子,取出里面的锤子(payload)。
- 另一只臂把目标箱里的红色方块(trash)扔进垃圾箱。
- 两臂之间交接锤子,最后放进目标箱。
成功条件:锤子在目标箱里,同时红块在垃圾箱里。
代码:https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/environments/manipulation/two_arm_transport.py
Tool Hang:组装支架并挂工具
环境名:ToolHang,单臂。
要做的事:
- 拿起 L 形挂钩架,把它竖着插进底座的孔里,组成一个支架。
- 拿起一个带孔的工具(形状像扳手),把孔套到挂钩的横杆上挂住,然后松手。
成功条件:这是五个任务里最严格的。两部分都要成立:
_check_frame_assembled():底座立柱与竖直方向夹角小于 10°,挂钩架底端离底座不超过 5 厘米,而且挂钩架夹在底座的几面墙之间。
_check_tool_on_frame():机器人没有碰到工具(工具自己挂着),工具孔和挂钩横杆有接触,孔中心离横杆轴线足够近,孔确实穿过了横杆,并且插入深度在横杆长度的 5% 到 100% 之间。
代码:https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/environments/manipulation/tool_hang.py