里程计面临的挑战:

  1. 6 DOF,精确,无偏的里程计信息
  2. 实时高速,硬件结构小巧
  3. 对抖动等鲁棒
  4. 对传感器限制(高速公路等重复度高的场景精确度低)鲁棒

Point-to-point ICP

步骤:

  1. 扫描两个相关点的集合
  2. 做最近匹配
  3. 使用牛顿法或者LM迭代优化

缺陷:精度高度依赖于初始化情况

图中的错误匹配没有办法remove,于是有人提出了Point-to-plane ICP

Point-to-plane ICP

  1. 扫描两个相关点的集合
  2. 做最近匹配
  3. 计算集合中的点的法向量
  4. 使用牛顿法或者LM迭代优化

法向量求解:


加入了方向和法向量之间的夹角,可以remove图中兔子耳朵部分的错误匹配
缺陷:图中类似于兔子嘴巴部分的错误匹配依然无法被remove
于是有人提出了Plane-to-plane ICP

Plane-to-plane ICP

  1. 扫描两个相关点的集合
  2. 做最近匹配
  3. 计算集合中的点的法向量
  4. 计算另一个集合中的点的法向量和二者的方向向量
  5. 使用牛顿法或者LM迭代优化

设红色点云:B,蓝色点云:M


服从高斯分布

比较:

Point-to-point ICP:快,但是不鲁棒
Point-to-plane ICP:速度、鲁棒性中等
Plane-to-plane ICP:最慢,精度最高

激光里程计 LiDAR Odometry

setting:里程计信息+地图信息
假设:运动过程相对匀速,抖动不明显

改进:

激光扫描可以很容易的获得点的曲率(利用当前点和周围点近似估计)

X:集合中的点,N:激光的线数,n:第n根线
将点分成两类点:平面的点(surf points)、角上的点(Corner points)

计算距离:
Corner points:

蓝色点:上一时刻的线扫
黄色点:本时刻的线扫

点到点的计算:


surf points:

点到面的计算:

激光的插值:

目的:提高激光的精度(激光在tk时刻发射,等收集到一定数据之后再将数据打包回传,但此时已经是tk+1时刻,传感器已经运动了一段距离,但传感器依旧以tk时刻作为参照,要通过差值提高精度)

因此已知tk时刻的位置信息和tk+1时刻的位置信息,中间时刻的位置信息由以下插值函数计算:

求解旋转平移矩阵
上一时刻点: X(k-1,i)
此时刻点: X(k,i)
旋转矩阵:R(k,i) ,平移矩阵:τ(k,i)
得到:X(k,i) = R(k,i) × X(k-1,i) + τ(k,i)

距离:
F(Tk(t)) = d
求解旋转平移矩阵Tk(t)

平移:τ:x,y,z
旋转矩阵表达方式:Rodrigues‘ Formula(易求导)

当前位置:q,旋转轴:w
角速度:
叉乘运算,求角速度,利用反对称矩阵将叉乘计算转换为点乘计算

整理得:

旋转一定角度:

定理1:


假设:

可得:

exp(wt)可以转换为:

化成此形式最大的优点就是求导简易:


优化方法:


假定r是向量矩阵,形式:

雅可比矩阵:

一阶导数、二阶导数,求导

梯度下降法:

缺点:
梯度下降法在陡峭的部分下降快,但在平缓的部分十分慢

牛顿法:
改进梯度下降法(依赖于一阶导),更依赖于二阶导

优点:速度快
缺点:对初值的要求高,初值选的好,会非常快,初值选的不好,效果很一般

于是有人提出了LM算法

LM:
梯度下降法和牛顿法的融合,不仅考虑了二阶导,还考虑了一阶导


缺点:系数只能手动调整,不能动态调整

改进:

优点:
在平滑的区域,H矩阵发挥作用较大,趋向于使用牛顿法
在陡峭的区域,即远端处,起更大作用的是系数,趋向于使用梯度下降法

激光里程计步骤:

  1. 激光扫描计算曲率
  2. 通过插值的方法优化每个点的信息
  3. 分别计算surf点和corner点的距离关系
  4. LM优化(在实际工程中,更倾向于使用高斯牛顿优化)

Local Mapping

  1. local map被储存到kd-tree中(可快速查找)
  2. 后面的点被丢弃(为了保证效率,kd-tree不能过大)
  3. 此时提取特征点是之前的十倍,精度更高

已达到目标:6-DOF,精度高,低漂移,实时,速度快
但是对抖动剧烈的情况不鲁棒
改进:

Visual LiDAR Odometry

以激光得到的深度信息补充视觉里程计中的深度信息

Visual Odometry:

将Xk改为:

得到:

若是有深度信息的特征点(恰巧这个点的位置也有激光扫过得到的深度信息)
构建约束:


没有深度信息构建约束:

残差约束:

若有深度信息特征点n个,没有深度信息特征点m个,则约束2n+m+1(残差约束)

视觉雷达里程计步骤:

  1. feature tracking
  2. 获取depth信息
  3. 利用2n+m+1个约束构建loss function
  4. 激光里程计

已达到目标:6-DOF,精度高,低漂移,实时,速度快,克服aggressive motion(剧烈抖动)
但是对传感器的limitation不鲁棒
改进:

Sensor Fusion


顺序问题很重要

基于图优化:

重点是各传感器数据之间的关系,构建各个节点的场景约束

只能在小场景中使用

改进:

Hierarchical

粗糙到精确:IMU估计->visual估计(以IMU估计为前端)->激光

每一个模块都基于前一个模块


IMU:

w(t)是角速度,bw(t)贝叶斯偏置,nw(t)噪声
加速度a(t),-Rw(t)g必须要减去,否则机器人的抖动影响过大,比如无人机的高空飞行


当视觉里程计失效的时候,直接跨过,用IMU来补足激光需要的信息()夜晚
当激光里程计失效的时候,直接跨过,用视觉来输出(狭长的隧道,结构相似)

已达到目标:6-DOF,精度高,低漂移,实时,速度快,克服aggressive motion(剧烈抖动) ,对传感器的limitation鲁棒

SLAM 激光里程计相关推荐

  1. 激光SLAM源码解析S-LOAM(二)激光里程计的计算

    10Hz激光雷达点云帧,相临帧的时间间隔是0.1秒.在这0.1秒内激光雷达的位姿变化(平移和旋转)可由这两帧点云的配准计算出来. 以某一时刻为起点,累计帧间位姿变换,得到各帧时刻激光雷达相对起点的位姿 ...

  2. 面向自动驾驶车辆的高效激光里程计(ICRA2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡泡机器人 来源丨泡泡机器人SLAM Efficient LiDAR Odometry for ...

  3. 自动驾驶场景下的高效激光里程计

    标题:Efficient LiDAR Odometry for Autonomous Driving 作者:Xin Zheng, Jianke Zhu, Senior Member, IEEE Zhe ...

  4. 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I

    专栏文章: 深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客 github保存了相关代码和学习笔记: Shenlan-Course-Multi-Sensor-Fusio ...

  5. lego-loam代码分析(3)-激光里程计

    lego-loam代码分析(3)-激光里程计 匹配初始化 TransformToStart TransformToEnd 两次LM匹配 平面匹配 匹配点查找 目标点到匹配平面的距离 LM求解 角点匹配 ...

  6. 多传感器融合定位四-3D激光里程计其四:点云线面特征提取

    多传感器融合定位四-3D激光里程计其四:点云线面特征提取 1. 点云线面特征提取 1.1 按线数分割 1.2 计算曲率(重要!) 1.3 按曲率大小筛选特征点 2. 基于线面特征的位姿变化 2.1 帧 ...

  7. 基于rf2o_laser_odometry纯激光里程计的gmapping建图

    ROS环境:ubuntu16.04 & ROS kinetic 激光雷达:EAI-X4 or RPlidar-A1 激光里程计:rf2o_laser_odometry 建图:gmapping ...

  8. RIKIBOT-FX4纯激光里程计的建图导航

    目录 简介 环境准备 纯激光里程计构建地图 纯激光里程计导航 关键参数配置 交流方式 简介 在大多数学习ROS人的理解中,常用的gmapping建图.导航一般都需要依赖电机的里程计,特别是导航时一定需 ...

  9. 多传感器融合定位三-3D激光里程计其三:点云畸变补偿

    多传感器融合定位三-3D激光里程计其三:点云畸变补偿 1. 产生原因 2. 补偿方法 Reference: 深蓝学院-多传感器融合 多传感器融合定位理论基础 文章跳转: 多传感器融合定位一-3D激光里 ...

最新文章

  1. 在C#中应用哈希表(Hashtable)
  2. ASP.NET页面之间传递值的几种方式
  3. 的table数据重复添加_Mysql的奇技淫巧 - 避免重复插入数据
  4. high speed train is awesome
  5. oracle安装显示注册表,windows下oracle 11g r2 安装过程与卸载详细图解
  6. 14款国内外主流三维GIS软件,总有一款中意你
  7. 2019新零售商家和企业,如何构建私域流量的思维和方法分享[附案例]
  8. 读写卡测试程序VFP源代码
  9. 阿铭Linux_网站维护学习笔记20190306
  10. 预约移民后服务器不显示,玩家预约凌烟阁服务器瞬间成功,这算不算被几率
  11. win10开机密码怎么取消
  12. 转:『代码』JS封装 Ajax级联下拉列表
  13. 批量PDF文件合并用什么软件?这两个宝藏软件赶快收藏起来
  14. Elasticsearch概念
  15. 真人女神换脸二次元女神
  16. L2-013 红色警报 (25 分)
  17. Qt 画图工具擦除操作,恢复透明色
  18. 开源中国源码学习(一)——简介
  19. 杰理AP之PO声处理【篇】
  20. 通达信指标加密保护方法

热门文章

  1. 一文读懂Back Pressure
  2. 总结 : 2019CCPC女生专场
  3. 不懂人情世故就是垃圾
  4. StarRocks 简介
  5. 国内先进混沌工程平台发布在即,同创永益携手「DaoCloud 道客」助力企业数字化转型
  6. c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始
  7. Java中求素数的两种方法
  8. 2022最新任务悬赏抢单系统源码/UI非常新颖
  9. 【Codecs系列】视频编码中常用熵编码介绍
  10. 327页16万字市智慧人社项目建设方案(word可编辑)