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

多传感器融合定位(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 实现地图定位_第1张图片

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

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

步骤

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

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


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

你可能感兴趣的:(多传感器融合定位学习)