任务动机:使用Cartographer在人群密集的环境中建立相对干净的地图。
任务描述:在使用Cartographer建图时,存在环境中行人较多,或者建图时机器人周围人员一直跟随,导致最终建图后地图上存在许多行人噪点,本文主要从点云原始数据过滤解决这一问题。
1. Cartographer原有的功能过滤行人
Cartographer在构建submap以及整体map时,实质是对栅格地图概率的更新,每一个node在栅格概率上的累加,可以去除建图时一般移动物体所产生的噪点。例如建图时,前面走过几个行人,甚至车辆,只要不是长时间停留在雷达探测范围内,栅格地图的概率会及时更新,最终生成的地图不会带有行人和车辆。但是实际建图中经常会出现多人跟在机器人周围建图或恰巧机器人旋转时周围人为移动,旋转时node快速生成,导致该部分submap中存在行人噪点,如果后期不重复走这条路径,最终生成的map会存在相关噪点,影响地图美观,以及路径规划是被视为障碍物。
2. obstacle_detector论文介绍
如果从数据源上就能把行人等噪点滤除,加上上述的概率更新的作用,那么就可以建立一个相对干净的地图,这里推荐使用obstacle_detector,源码网址为https://github.com/tysik/obstacle_detector,顾名思义,其功能为障碍物检测,具体细节可以看相关论文和源码,这里只做简单介绍。
论文中分为五大部分引言 、障碍物提取、障碍物跟踪、实验结果和结论。引言部分介绍了当前通过点云对障碍物的检测的几种方法,其中包括:通过几何特征检测障碍物稀疏的点云(铁丝网、树叶)、密集的点云(墙壁、树干)、凸面点云(家具、汽车)、凹面点云(洞、笼子)等;通过颜色反射或者不透明度检测障碍物,不透明的(木头、岩石)、反光的(镜子、抛光金属)、透明的(各种玻璃);通过物质不同性质区分的障碍物,材料(实心箱子、织物窗帘等)、虚拟(编程限制、机械限制等);通过不同时间的变化检测障碍物,静止(沙发、树)、可移动(椅子、垃圾桶)、移动的(行人、机器人)。
论文中第二章介绍了不考虑运动状态下障碍物检测方法,
1. 通过特定的距离阈值判断方法将点云分类为不同的组合(博文中的图均引用原论文)