- 近年来,视觉、自然语言、机器人领域的技术不断发展,机器人可以考语言query识别物体,通过导航模块高效地控制机器人移动,最后通过抓取算法抓取各种不同的物体,尽管离通用的应用还很遥远,但机器人始终都会依赖识别。导航、抓取的算法模型;
- 本问题提出了一个基于开放知识的机器人框架,命名为OK-robot;通过结合视觉-语言模型(VLMs),实现物体检测,导航基元,抓取基元;
- 该机器人框架在真实家庭场景中可以实现58.5% 的抓取-放下任务成功率;Open Vocabulary Mobile Manipulation (OVMM) 的性能达到SOTA,是之前模型性能的1.8倍;在清洁任务中,成功率提升至82%;然而,从OK-Robot中获得的最重要的见解是,当像VLMs这样的开放知识系统与机器人模块相结合时,细微细节的关键作用
- 代码可得:https://ok-robot.github.io
1. INTRODUCTION
当前机器人任务泛化能力很差,系统很脆弱
large vision models
- Detecting twenty-thousand ¨ classes using image-level supervision. In European Conference on Computer Vision, pages 350–368. Springer, 2022.
- Simple open-vocabulary object detection with vision transformers. In European Conference on Computer Vision, pages 728–755. Springer, 2022
- Learning transferable visual models from natural language supervision. In International Conference on Machine Learning (ICML), volume 139, pages 8748–8763, 2021.
- Ok-vqa: A visual question answering benchmark requiring external knowledge. In Proceedings of the IEEE/cvf conference on computer vision and pattern recognition, pages 3195–3204, 2019.
NeurIPS 2023 challenge for open-vocabulary mobile manipulation (OVMM)成功率值达到33%;
任务要求:在未见过的环境中抓取物体,并放置在指定的地方;
Uniteam: Open vocabulary mobile manipulation challenge. arXiv preprint arXiv:2312.08611, 2023.
机器人在公开的数据集上完成训练,然后放置在一个家庭环境中,使用iPhone扫描环境,然后根据语言提示完成抓取-移动-放置;在未见过的环境中,新部署的机器人可实现平均58.5% 的任务成功率;
清洁任务中,随着query质量的提升并排除对抗性物体(太大、太半透明、太滑的物体),成功率达到了82.4%
Pre-trained VLMs are highly effective for openvocabulary navigation
- 当前最好的 open-vocabulary visionlanguage models:
- CLIP: Learning transferable visual models from natural language supervision. In International Conference on Machine Learning (ICML), volume 139, pages 8748–8763, 2021.
- OWL-ViT: Simple open-vocabulary object detection with vision transformers. In European Conference on Computer Vision, pages 728–755. Springer, 2022.
Pre-trained grasping models can be directly applied to mobile manipulation
- These robot models do not require any additional training or fine-tuning
How components are combined is crucial
- 使用不需要训练的简单的状态机即可实现不同模块预训练模型的结合;
- 使用启发式方法抵消机器人的物理限制可以在现实世界中获得更高的成功率;
Several challenges still remain
- 考虑到在任意家庭环境中实施zero-shot learning的巨大挑战,OK-Robot在先前工作的基础上进行改进。通过分析故障模式,我们发现可以在VLMs、机器人模型和机器人形态学方面进行重大改进,这将直接提高open-knowledge操纵agent的性能
2. TECHNICAL COMPONENTS AND METHOD
通过query求解问题,例如“Pick up A (from B) and drop it on/in C”
Hello Robot接下来会有三个子系统来处理任务
- 开放词汇表对象导航模块
- 开放词汇表RGB-D抓取模块
- 启发式放下模块
A. Open-home, open-vocabulary object navigation
- 第一个模块是开放家庭环境中的开放词汇表目标导航模块;用于家庭环境建图,然后根据自然语言query导航到感兴趣物体附近;
Scanning the home
CLIP-Fields:使用iPhone以video的形式预扫描一遍房间;
- Clip-fields: Weakly supervised semantic fields for robotic memory. arXiv preprint arXiv:2210.05663, 2022.
一个房间扫描不到1min,非常快,使用手动扫描的方式,因为简单方便,一些自动扫描的方式过于复杂或者缓慢,因此没有使用;
为了确保语义记忆包含感兴趣的物体以及可导航表面和全部的障碍物,记录必须捕捉环境中物体和容器旁边的地板表面。
Detecting objects
- 对于收集的每一帧数据,都运行一个开放词汇表目标检测器;使用OWL-ViT作为检测模型,获取每一帧每个物体的bounding
box;
- Simple open-vocabulary object detection with vision transformers. In European Conference on Computer Vision, pages 728–755. Springer, 2022.
- 然后使用Segment
anything模型,实现分割,由于需要输入查询query,使用了 Scannet200 labels
中的标签,以覆盖绝大多数的常见物品;
- Segment anything. In ICCV, pages 4015–4026, October 2023.
- Language-grounded indoor 3d semantic segmentation in the wild, 2022.
Object-centric semantic memory
使用了一个以物体为中心的记忆模型,类似于CLIP-Fields和OVMM,本文将其称为 VoxelMap
- Clip-fields: Weakly supervised semantic fields for robotic memory. arXiv preprint arXiv:2210.05663, 2022
- Homerobot: Open-vocabulary mobile manipulation. arXiv preprint arXiv:2306.11565, 2023.
将物体的mask反向映射到真实世界坐标系中,使用了相机收集的深度图像和姿态,利用CLIP模型,点云中每个点都有一个相关的语义向量
然后,将点云体素化到5厘米的分辨率,并为每个体素(voxel)计算属于该体素的片段嵌入的检测器置信度加权平均值。
请注意,以这种方式创建的表示在第一次扫描后保持静态,并且在机器人操作期间无法进行调整
Querying the memory module
Our semantic object memory gives us a static world representation represented as possibly non-empty voxels in the world, and a semantic CLIP vector associated with each voxel
Given a language query, we convert it to a semantic vector using the CLIP language encoder. Then, we find the top voxel where the dot product between the encoded vector and the voxel’s semantic representation is maximized
Since each voxel is associated with a real location in the home, this lets us find the location where a queried object is most likely to be found,如下图所示
为了实现把A放在B上边,从点云中选择A的概率最大的top-10个点,和B的概率最大的top-50个点(When necessary, we implement “A on B” as “A near B”. We do so by selecting top-10 points for query A and top-50 points for query B.)
然后计算10×50个欧氏距离,选择距离最短的A上的点
注意,导航阶段仅仅导航到目标位置附近即可,不涉及操作过程
两个优势:
- map 的分辨率可以比之前的工作中的更低;
- 以在建立地图后处理物体位置的微小移动;
Navigating to objects in the real world
获得一个物体在三维世界的坐标后就使用导航算法规划路径
与之前的导航算法不同的是,我们需要目标所在位置在机械臂长度之内,通过平衡以下几个目标函数实现该效果:
- 机器人需要离目标足够近,方便后续的操作任务;
- 机器人需要一个无障碍无得小空间来移动末端的夹子;
- 机器人需要在操作过程中避免碰撞,因此需要在操作过程中保持和所有物品的距离;
公式化三个评价函数:
根据之前的RGBD图像,建立10cm×10cm的2D障碍物网格,再使用A*算法规划路径;
预设地面到天花板的高度,靠近地面和天花板的体素认为是不可探索的;同时设置每个不可探索的点走位20cm也是不可导航的区域
损失被定义为启发式损失,使机器人原理所有的障碍物; 在实验中,用上述损失的 A* 轨迹和理想的 Voronoi 轨迹结果类似;
B. Open-vocabulary grasping in the real world
使用预训练的抓取模型来生成抓取位姿
Grasp perception:
- 反向映射深度图像到点云
- 使用AnyGrasp抓取模型,生成多个无碰撞的抓取位姿,即抓取的长宽高和抓取评分;然后使用语言query来过滤不合适的位姿
- Anygrasp: Robust and efficient grasp perception in spatial and temporal domains. IEEE Transactions on Robotics, 2023.
Filtering grasps using language queries:
- 使用 LangSam
模型对生成的grasps位姿进行过滤;该模型可以给被选择的物体打上mask;然后映射抓取点到图像上,找到落在物体mask范围上的抓取姿态;
- Lang segment anything. https://github. com/luca-medeiros/lang-segment-anything, 2023.
- 使用启发式的方法进一步选择抓取姿态:假设抓取评分为
,抓取法线和地板法线之间的夹角为 ,启发式的最终评分为 - 之所以这样设置是因为本文倾向水平的抓取,这样健壮性更强;
- 使用 LangSam
模型对生成的grasps位姿进行过滤;该模型可以给被选择的物体打上mask;然后映射抓取点到图像上,找到落在物体mask范围上的抓取姿态;
Grasp execution
定义好了只有的抓取位姿后,使用简单的预抓取方法抓取选定的物体;
抓取的轨迹如下:
是物体上的抓取点, 是模型给出的抓取向量 我们的方法从预抓取位置以逐渐变小的运动接近物体。当我们接近物体时,移动得更慢是很重要的,因为否则机器人会打翻轻的物体。一旦我们到达预测的抓取点,我们就会以闭环的方式关闭抓取器,以确保我们可以牢牢抓住物体而不会压碎它
在抓住物体后,我们抬起机器人手臂,将其完全收回,并旋转手腕以将物体收拢在身体上。这种行为保持了机器人的足迹,同时确保机器人牢牢抓住物体,并且在导航到放置位置时不会掉落
C. Dropping heuristic
- 放置物品的方法和步骤A中表述的方法类似
- 用LangSam算法分割机器人头部相机采集的点云
- 对齐分割的点云的X轴,Y轴和左右对齐,Z轴和地面法线对齐
- 以机器人坐标为 (0,0) 点,地面z=0;对于分割的点云,考虑每个点的x和y坐标,找到每个轴方向的中点,
- 找到放开的高度,使用
判定分割的点云 - 最后移动机械臂到放开位置的点云上,打开夹子放下物品,使用一个小的buffer(0.2)避免过高释放导致碰撞放置平面
- 有时候在比较杂乱的表面上放置会失败
D. Deployment in homes
- 在全新的家庭环境中,只用花几分钟扫描房间,然后在5分钟之内用VoxelMap 完成处理;
- 在消融实验中,需要50分钟训练必要的隐式语义场/SDF模型(如CLIP_Fields或USA-net);一旦完成,机器人就可以马上部署在家并开始操作
State machine model
- 用户指定了要拿去的物品和位置之后,不同算法模块会自动切换运行,需要使用一个状态机来进行调度,实现从导航到对象、抓取、导航到目标为止、在目标为止放下对象;
Protocol for home experiments
创建VoxelMap
随机在每个场景中选择10-20个适合夹子夹取的物品,这些物品都是在场景中发现的,而不是事先选择好的
我们为每个选择的对象提出一个语言查询,使用GPT-4V为每个选择的对象提出一个语言查询,以保持查询的一致性和不受实验者偏见的影响
然后,我们查询我们的导航模块以过滤掉所有导航失败;即我们的语义记忆模块无法找到其位置的对象
我们在剩余的对象上顺序执行挑选和丢弃操作,在两次尝试之间不进行重置
3. EXPERIMENTS
4. LIMITATIONS, OPEN PROBLEMS AND REQUEST FOR RESEARCH
A. Live semantic memory and obstacle maps
- 所有语义记忆模块和障碍物地图都是静态的,没有实施更新;
- 然而,家是一个动态的环境,每天都有许多小变化。未来的研究可以建立动态语义记忆和障碍地图,这将释放这种取放方法在新的开箱即用家庭中持续应用的潜力
B. Grasp plans instead of proposals
- 目前,抓取模块提出的通用抓取方法没有考虑机器人的身体和动力学。
- 给定抓取姿态,开环抓取轨迹通常会与环境障碍物发生碰撞,这可以通过使用模块生成抓取计划而不是仅抓取姿态来改善。
C. Improving interactivity between robot and user
- 我们的方法失败的主要原因之一是在导航中语义查询不明确,并且没有从语义存储器中检索到预期的对象。在这种模棱两可的情况下,与用户的互动将有助于消除查询的歧义,并帮助机器人更经常地成功。
D. Detecting and recovering from failure
- 目前,我们观察到模块之间的乘法误差累积:如果我们的任何独立组件失败,整个过程就会失败。因此,即使我们的每个模块都以80%或更高的成功率独立执行,我们的最终成功率仍可能低于60%。然而,通过更好的错误检测和重试算法,我们可以从更多的单阶段错误中恢复,并同样提高我们的整体成功率
E. Robustifying robot hardware
- 通过强大的硬件,此类方法可能会大大增强容量。这种坚固的硬件可能使我们能够到达高处和低处,并拾起更重的物体。最后,改进的机器人里程计将使我们能够进行比今天更精细的抓取
总结
感觉是一个各类算法的大整合最后实现了一些比较开放的任务;算法本身依赖的还是感知和语言模型,规划和抓取国策都设计得比较粗糙,而且每个环节出错的概率都挺高,整个demo很脆弱。长路漫漫啊