欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位

程序员文章站 2022-03-04 18:41:04
...

多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位

eg:因为个人水平有限,这次作业全靠DK大哥的指导,方法不唯一

目的:调用 GNSS的位姿,实现初始化

调整前,默认初始gps位姿为 0 , 0 ,0:

每次播放bag时,就会出现 经纬坐标和地图不匹配的问题,进而导致定位不准确的原因出现

void GNSSData::InitOriginPosition() {
    geo_converter.Reset(longitude,latitude,altitude);
    origin_longitude = longitude;
    origin_latitude = latitude;
    origin_altitude = altitude;
    origin_position_inited = true;
}

通过下图,可以明显看出,定位不准确
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位

多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位

调整后,gps 起始位姿为 48.9825452359, 8.39036610005,116.382141113:

步骤

先播放一段bag,通过 topic echo 出bag 第一帧点云的 gnss 经纬度坐标,进而知道 在这个数据集下起始建图点的经纬度坐标。
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位
将上述得到的经纬度坐标,进行赋值,并重新进行mapping, 使用新的地图,进行 matching定位

void GNSSData::InitOriginPosition() {
    geo_converter.Reset(48.9825452359, 8.39036610005,116.382141113);
    origin_position_inited = true;
}

多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位
多传感器融合定位(4-点云地图构建及基于地图定位)4-通过GNSS 实现地图定位