SLAM实现模块及功能

Posted Arrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SLAM实现模块及功能相关的知识,希望对你有一定的参考价值。

SLAM实现模块及功能

1. 简介

  • SLAM主要有5大模块组成
    • 数据预处理
    • 前端里程计
    • 后端图优化
    • 闭环检测
    • 显示模块

2. 数据预处理

2.1 功能

  • 接收各传感器信息
  • 传感器数据时间同步
  • 点云运动畸变补偿
  • 传感器信息统一坐标系

2.2 输入

  • GNSS组合导航位置、姿态、角速度、线速度等
  • 雷达点云信息
  • 雷达和IMU相对坐标系

2.3 输出

  • GNSS组合导航位置、姿态
  • 畸变补偿后的点云

3. 前端里程计

3.1 功能

  • 根据点云计算位姿并发送

3.2 输入

  • 雷达点云

3.3 输出

  • 里程计累计位姿

4. 后端图优化

4.1 功能

  • 从里程计位姿中提取关键帧
  • 根据关键帧位姿、GNSS组合导航约束和闭环检测约束来优化位姿
  • 后端通过图优化实现消除累计误差的功能

4.2 输入

  • 前端里程计位姿
  • GNSS组合导航位姿
  • 闭环检测相对位姿

4.3 输出

  • 优化后的位姿

4.4 方法

  • 目前有三个流行的库:g2o、gtsam、ceres

5. 闭环检测

5.1 功能

  • 根据位姿搜索附近历史帧
  • 如果有则做匹配
  • 如果匹配结果符合要求则建立约束,并发送

5.2 输入

  • 关键帧对应的GNSS组合导航位姿(因为用开环位姿检测不够准确,尤其大场景)

5.3 输出

  • 闭环位姿约束

6. 显示模块

6.1 功能

  • 根据优化后的位姿生成点云地图
  • 显示点云地图和当前帧点云

6.2 输入

  • 优化后的历史帧位姿
  • 当前帧点云
  • 当前帧位姿

6.3 输出

  • 按优化后的位姿投影之后的当前帧点云
  • 按优化后的位姿投影之后的当前帧位姿
  • 局部小地图点云
  • 全局大地图点云

7 传感器特性

  • 融合原则:通过融合消除误差的过程,就是为该误差寻找差异性信息的过程 (互补性)
  • IMU: 具有随时间的累积性,但不跳变 (累积性)
  • GNSS:具有跳变性,受遮挡或干扰时无信号 (位姿跳变)
  • 轮速计:无时间累积性,但会打滑
  • 点云地图:位姿跳变、且在空旷地区无有效数据
  • 激光里程计:具有随距离的累计性(累积性)

参考:从零开始做自动驾驶定位

以上是关于SLAM实现模块及功能的主要内容,如果未能解决你的问题,请参考以下文章

SLAM-2D激光畸变矫正

激光slam课程学习笔记--第5课:传感器数据处理II:激光雷达运动畸变去除

激光slam课程学习笔记--第5课:传感器数据处理II:激光雷达运动畸变去除

视觉slam闭环检测之-DBoW2 -视觉词袋构建

VINS简介与代码结构

ORB-SLAM优化