SLAM建图之占用栅格建图算法

1. 什么是占据栅格地图构建算法?

占据栅格地图(Occupancy Grid Map)的概念。我们将地图栅格化,对于每一个栅格的状态要么占用,要么空闲,要么未知(即初始化状态)。

image-20230131110847152

img

img

img

img

2. 举个例子验证占据栅格地图构建算法

首先,我们假设 looccu = 0.9,lofree = -0.7。那么,显而易见,一个栅格状态的数值越大,就越表示该栅格为占据状态,相反数值越小,就表示该栅格为空闲状态。

img

上图是用两次激光扫描数据更新地图的过程。在结果中,颜色越深越表示栅格是空闲的,颜色越浅越表示是占据的。这里要区分常用的激光SLAM算法中的地图,只是表述方式的不同,没有对错之分。

3. 如何通过激光雷达数据构建栅格地图?

3.1 算法核心依据

整篇文章得出的一个结论就是下图所示,这里假设lofree和looccu为确定的数值,一般情况下一正一负。

image-20230131112730179

然后,我们通过激光雷达数据栅格进行判断,如果判定栅格是空闲,就执行上面公式;如果判定栅格是占据,就执行下面的公式。在经过许多帧激光雷达数据的洗礼之后,每一个栅格都存储了一个值,此时我们可以自己设定阈值与该值比较,来做栅格最终状态的判定。

3.2、算法输入数据

激光雷达数据包(每个扫描点包含角度(逆时针为正方向)和距离,每帧激光数据包含若干扫描点,激光雷达数据包包含若干帧激光雷达数据)。

机器人位姿数据包(每一个位姿包含世界坐标系下的机器人位置和航向角,初始航向角与世界坐标系X轴正方向重合,逆时针为正方向)。

地图参数(需要构建地图的高度和宽度,构建地图的起始点,lofree和looccu的设定值,地图的分辨率)。

假设激光雷达坐标系和机器人坐标系重合.

image-20230131112917515

image-20230131112937854

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lk
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信