ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

118、拓扑图与语义地图:层次化环境表示的导航规划

118、拓扑图与语义地图:层次化环境表示的导航规划 118、拓扑图与语义地图:层次化环境表示的导航规划上周在实验室调试一台搭载了RTK-GPS和3D激光雷达的巡检机器人,遇到一个特别典型的场景——园区里有一条长走廊,两侧是玻璃幕墙,激光雷达在玻璃面前基本是瞎子,点云反射回来全是噪声。机器人走到一半,定位漂移了将近一米,导航规划直接给出一条穿墙的路径。当时我盯着RViz里的轨迹,第一反应是骂传感器,但冷静下来想,问题出在环境表示上——我们一直在用栅格地图做全局规划,这种稠密表示在长走廊、玻璃墙、动态行人混杂的环境里,鲁棒性太差了。后来我把导航架构改成了三层:底层用局部代价地图做实时避障,中层用拓扑图做路径决策,顶层用语义地图做任务理解。改完之后,同样的走廊场景,机器人哪怕定位漂了三十厘米,拓扑层依然能给出正确的走廊走向,因为拓扑节点之间的连接关系是离散的,不依赖精确的度量坐标。这篇文章就把这套层次化环境表示的思路拆开讲,重点放在拓扑图和语义地图的构建、融合,以及它们在导航规划里到底怎么用。先聊拓扑图。拓扑图本质上是把连续空间离散成节点和边,节点代表关键位置(比如走廊拐角、门口、电梯口),边代表节点之间的可达关系,边上可以附带距离、通行难度、是否经过门等属性。构建方式有两种主流路线:一种是基于栅格地图的骨架化,先对2D栅格做距离变换,提取中轴,然后在中轴上采样节点,再根据连通性连边;另一种是基于经验轨迹,让机器人先手动走几遍,记录位姿序列,然后用类似分段线性拟合的方法提取拐点作为节点,相邻拐点之间连边。我强烈建议你在项目初期用第二种,因为第一种对栅格地图质量要求太高,玻璃墙、动态障碍物会让中轴提取出来的骨架乱七八糟,你还要花大量时间做剪枝。经验轨迹法虽然需要人工干预,但胜在可控,而且节点天然带有语义含义——比如“
返回列表