激光slam入门知识总结

说明

学习知乎上任乾写的从零开始做激光slam系列,在这里总结一下收获

一. 开篇

  1. 作者给出了本系列的简单介绍,包括用的传感器,平台,写作思路等等。

二. 数据集

  1. 作者使用了KITTI数据集,在下载的过程中发现,直接翻墙从国外网站下载速度非常快。
  2. 主要是利用激光雷达数据和RTK数据做融合。
    RTK,GNSS,IMU等定位方式的精度要详细了解一下
  3. 将数据集转换成ROSBAG,然后利用rviz就能进行原始数据效果查看了。

三. 软件框架

  1. 将订阅和发布写成分开的类,同时,再按照传感器数据类型进行进一步分类
  2. 功能流程:
    (1) 接收数据放到队列中
    (2) 选出时间基本一致的数据组
    (3) 发布数据

四. 前端里程计初试

  1. 功能流程:
    (1)接收数据放到队列里
    (2)选出时间基本一致的数据
    (3)点云预处理
    清洗NAN数据
    点云稀疏化
    (4)第一帧单独处理,直接更新局部和全局地图
    (5)利用ndt匹配点云,获得单步的运动变换关系
    (6)当运动距离达到一定程度,就更新局部地图和全局地图

  2. 局部和全局地图更新流程:
    “地图”:是一个一个的点云数据帧序列
    地图:是一个大的点云数据帧,包含了20个小关键帧帧的点
    (1)更新局部地图关键帧队列,保证只有20个
    (2)把所有的点加到一个地图点云帧里
    (3)更新ndt的目标点云
    (4)更新全局地图关键帧队列,每100个关键帧,进行一次全局地图点云帧更新

五. 前端里程计代码优化

  1. 这里功能流程基本没有什么变化
  2. 除了将订阅和发布分开,不同类型的数据分开之外,也将处理方法单独列出了一些类和函数,运用了继承的方式,便于以后扩展
  3. 地图关键帧存储在了硬盘上,可以节约内存空间

六. 传感器时间同步

  1. 时间同步处理包含两个方面:
    (1)各个传感器用的时间源是一致的,kitti数据集已经处理好
    (2)通过插值的方式获得同一个时刻的数据值,这里主要是与雷达数据对齐

  2. 功能流程
    (1)接收数据放到队列里
    a. 索引:找到和激光雷达数据时间戳对齐的前后两针imu或gnss数据
    b. 插值:线性插值获得和激光雷达数据时间一致的imu/gnss数据
    c. 注意:这里处理完后deque里实际上只有一个数据!!,这里是不是损失了一些可积分位置信息
    (2)选出时间基本一致的数据
    (3)点云预处理
    a. 清洗NAN数据
    b. 点云稀疏化
    (4)第一帧单独处理,直接更新局部和全局地图
    (5)利用ndt匹配点云,获得单步的运动变换关系
    (6)当运动距离达到一定程度,就更新局部地图和全局地图

  3. 这里车辆航向角四元数插值用的是线性插值,不是球面插值

七. 里程计精度评价

  1. 只要把数据存储下来,然后调用evo命令就能对结果进行评价,有两种评价
    (1)每100米误差
    (2)累计误差

八. 点云畸变补偿

  1. 功能流程,只变化了标黄部分
    (1)接收数据放到队列里
    a. 索引:找到和激光雷达数据时间戳对齐的前后两针imu或gnss数据
    b. 插值:线性插值获得和激光雷达数据时间一致的imu/gnss数据
    c. 注意:这里处理完后deque里实际上只有一个数据!!
    (2)选出时间基本一致的数据
    (3)点云预处理
    a. 利用车辆运动信息,消除点云运动畸变,
    a. 清洗NAN数据
    b. 点云稀疏化
    (4)第一帧单独处理,直接更新局部和全局地图
    (5)利用ndt匹配点云,获得单步的运动变换关系
    (6)当运动距离达到一定程度,就更新局部地图和全局地图

  2. 这里有很多坐标系变换,速度变换的东西,可以仔细整理一下

九. 建图系统结构优化

  1. 由于模块比较多,作者重新梳理了结构:
    目前有:数据预处理,里程计,后端优化,闭环检测,显示五大模块
  2. 在之前的基础上,增加了不同的功能节点,将五大功能模块划分清楚,变成了不同的rosnode。
  3. 每一个node都有一个flow,在flow中调用核心的一些算法

十.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值