系列文章目录
这一篇主要讲怎么通过PCA建立栅格可通行栅格,这部分其实有非常多的方法,这也只是当时前期使用的一个简单demo
前言
提示:这里可以添加本文要记录的大概内容:
对于做工程来说,一般地面分割使用PCA,生长算法以及RANSAC拟合平面较多,但是ransac的波动较为敏感,生长算法运行时间以及效果难以稳定,最开始就使用PCA进行测试
提示:以下是本篇文章正文内容,下面案例可供参考
一、栅格地图
nav_msgs/OccupancyGrid消息类型来表示栅格地图,地图里面的每个栅格存储一个值,用来表示该区域是被占用、自由还是未知,从而为下游的导航任务提供依据。常用值包括一般来说:
0:自由空间
100:障碍物
-1:未知
这就涉及到主要:
传感器数据采集:获取环境信息以及小车位置。
数据处理:对栅格内的可通行概率进行处理。
地图更新:根据新的数据更新地图。
二、RTK定位
1.更新位置
因为我们使用的utm坐标是一种网格状的坐标信息,并且是全球的,可以忽略整数部分,仅计算小数部分的变化,作为局部地图的中心位置移动信息。同时,为了更好地观察,将点也一并进行移动,即补偿x,y坐标的移动。
代码如下(示例):
float x_div = -(float)(std::floor(utm_loc.x()) - std::floor(pre_utm_loc.x()));
float y_div = -(float)(std::floor(utm_loc.y()) - std::floor(pre_utm_loc.y()));
float z_div = -(float)(std::floor(utm_loc.z()) - std::floor(pre_utm_loc.z()));
PointType * pt;
#