波士顿动力在ICRA24上发布了一项很有意思的工作,先看一下它的视频吧,VLFM:零样本语义导航|2024 ICRA【波士顿动力AI研究所】_哔哩哔哩_bilibili,机器人很快找到了目标物。
导航有两种一种是纯粹的导航,我有地图,我知道我当前的位置,我知道了目标位置,采用最优路径的方法(比如dijstra)到达目的地,我采用手机地图导航就是这种方法。
另外一种方法是我没有地图,比如飞机坠机后我去找黑匣子。飞机在野外坠机,我们只知道坠机位置,坠机点附近没有地图,我们也不知道黑匣子的具体位置。这种方法需要遍历坠机点局部的每个位置,让人去干这个活有个术语叫“拉网式排查”;如果让机器人去干这个活,就是指的是exploration based slam。机器人要探索每个位置一遍定位一遍建图一遍规划,发现目标物只是exploration based slam 的结束的条件。
但现实中有更常见的场景,比如你去了一个陌生的apartment,有朋友让你帮他找一条毛巾,你无法直接看到毛巾,但你知道卫生间里有毛巾的可能性更大。你朋友坐累了,想让你帮他找个枕头垫垫,你在客厅环顾四周没有直接看到枕头,但你看到了卧室的门,你会知道卧室里面有毛巾的可能性更大。也即,人类在陌生环境中导航时会用到已有的经验知识。这样做有个好处,我们已有的知识能帮我们快速发现物体,节省逐位置搜索的时间。那如何让机器人也具有像人一样也有这样的能力哪?这篇文章就是干这件事的。 比如下面的图,语义参与后,导航的路径明显缩短了。 论文中的Fig1(上传老失败)
那它是如何做到的呢,看摘要里的话
We introduce a zero-shot navigation approach, Vision-Language Frontier Maps (VLFM), which is inspired by human reasoning and designed to navigate towards unseen semantic objects in novel environments. 我们介绍了zero-shot导航方法,这种方法受人类启发实现陌生环境中不可见语义物体的导航。
VLFM builds occupancy maps from depth observations to identify frontiers, and leverages RGB observations and a pre-trained vision-language model to generate a language-grounded value map. VLFM用depth图像建立占据地图,去识别frontiers,用RGB图像和预训练的vlm模型生成language-grounded value 地图。
VLFM then uses this map to identify the most promising frontier to explore for finding an instance of a given target object category. VLFM用value地图为frontier排序,确定机器人下一步要遍历的地图。
下面看论文框图: 对比这论文中的图2(上传图片识别不知道咋回事)
如果没有找到target,程序循环往复做的事情就是 semantic forntier exploration。结合这张图和它发布的视频,我解释一下semantic frontier exploration的过程,首先机器人旋转一周,使用depth图像建立了平面的地图,也识别了哪些区域是边界障碍,哪些区域是介于看到和看不到的区域,也就是需要跑过去进一步探索的区域,作者在这些区域采样了一些待遍历的点,论文中称之为frontier,可能会有很多frontier,那我们下一步要先去哪个哥frontier呀?这就用到了视觉语言模型,作者从导航目标物的语言中抽取特征,从图像中也抽取特征,算二者之间的相关性,然后先遍历相关性高的frontier。从当前位置到下个frontier采用pointNav导航的技术。发现目标物后也采用pointNav导航的技术。
论文的总体思路是这样,有很多细节,比如如何从depth转换到地图,如何识别出障碍边界和frontier,如何对valuemap更新,发现目标物后机器人应该停在哪里等等,这里不一一介绍了。
以上是我个人见解,如有不正确的地方,欢迎大家来指正。