一、激光雷达简介

通过持续不断的发射激光束,激光束遇到障碍物会产生反射,部分反射会被激光雷达(Lidar)传感器再次接收到,通过测量激光束发送和返回传感器的耗时(Round Trip Time)可以获得周围物体距离激光雷达的距离。除了距离(Distance)之外,激光雷达(Lidar)还返回反射值强度(Intensity),不同的障碍物材质反射的激光束的强度(Intensity)不同。

激光雷达的测量模型为距离-方位角-俯仰角模型(Range-Azimuth-Elevation, RAE)。

P是激光雷达的观测点,r是P点距离激光雷达(Lidar)传感器的距离,它通过激光脉冲传播的时间乘以光速除以2获得。

α \alpha α是方位角(Azimuth), ϵ \epsilon ϵ是俯仰角(Elevation), α \alpha α和 ϵ \epsilon ϵ是激光束的发射角度。

点P在激光雷达坐标系 F s F_s Fs​下的坐标为 ( x , y , z ) (x,y,z) (x,y,z),其坐标值与测量值之间的关系为:
[ x y z ] = [ r ⋅ cos ⁡ ( α ) cos ⁡ ( ϵ ) r ⋅ sin ⁡ ( α ) cos ⁡ ( ϵ ) r ⋅ sin ⁡ ( ϵ ) ] \begin{bmatrix} x \\ y \\ z \\ \end{bmatrix} = \begin{bmatrix} r \cdot \cos(\alpha) \cos(\epsilon) \\ r \cdot \sin(\alpha) \cos(\epsilon) \\ r \cdot \sin(\epsilon) \end{bmatrix} ⎣⎡​xyz​⎦⎤​=⎣⎡​r⋅cos(α)cos(ϵ)r⋅sin(α)cos(ϵ)r⋅sin(ϵ)​⎦⎤​

[ r α ϵ ] = [ x 2 + y 2 + z 2 tan ⁡ − 1 ( y x ) sin ⁡ − 1 ( z x 2 + y 2 + z 2 ) ] \begin{bmatrix} r \\ \alpha \\ \epsilon \\ \end{bmatrix} = \begin{bmatrix} \sqrt{x^2 + y^2 + z^2} \\ \tan^{-1}(\frac{y}{x}) \\ \sin^{-1}(\frac{z}{\sqrt{x^2 + y^2 + z^2}}) \end{bmatrix} ⎣⎡​rαϵ​⎦⎤​=⎣⎢⎡​x2+y2+z2 ​tan−1(xy​)sin−1(x2+y2+z2 ​z​)​⎦⎥⎤​

简化到二维平面,即当P在xy平面时, z = 0 , ϵ = 0 z = 0,\epsilon = 0 z=0,ϵ=0,此时RAE模型可以简化为距离-方位角模型
[ r α ] = [ x 2 + y 2 tan ⁡ − 1 ( y x ) ] \begin{bmatrix} r \\ \alpha \\ \end{bmatrix} = \begin{bmatrix} \sqrt{x^2 + y^2} \\ \tan^{-1}(\frac{y}{x}) \end{bmatrix} [rα​]=[x2+y2 ​tan−1(xy​)​]
误差来源

  • 激光雷达发送和接收激光束的精确耗时误差。受限于激光雷达配备的计时设备的精度,耗时统计存在精度上限。
  • 激光雷达激光束的朝向误差。受限于激光雷达朝向测量设备的测量精度,朝向测量存在精度上限。
  • 目标材质的反射值特性。比如全黑的材料吸收了光的大部分能量,使得反射量极低;或者像镜子一样的材料会将大部分光反射到其它地方,从而使得激光雷达无法测量到这些物体的位置。
  • 运动畸变。由于激光雷达在跟随自动驾驶车辆前进的同时,对周围环境进行扫描建模,也就是说车辆相对于周围的环境是运动的,导致对环境测量的实际位置与真实位置存在偏差。

二、数据解析

大部分算法按照Velodyne的数据协议进行开发,因此以此为标准进行解析。

其他雷达(速腾,镭神)其相关格式和精确时间的计算存在一定差别,但基本框架一致。

雷达采用UDP协议传输数据,激光雷达每一帧的数据包含76个UDP数据包,每一帧发送数据为 76 ∗ ( 12 ∗ 16 ∗ 2 ) = 29184 76*(12*16*2)=29184 76∗(12∗16∗2)=29184,按10hz16线雷达(水平分辨率为0.2度)单回波模式计算,一帧需要数据为 10 ∗ 16 ∗ 1800 = 28800 10*16*1800=28800 10∗16∗1800=28800。

每个UDP数据包长度固定为1248(有效数据为1206)字节,UDP数据包的组成为:

  • 数据包标识:42字节
  • 数据包:12组数据包(Data Block)
  • 时间戳:4字节
  • 雷达型号参数:2字节

数据包组成为:

  • Flag(开始标识):0xFFEE
  • Azimuth(当前旋转角度):2字节
  • 距离和强度信息:2字节距离值+1字节强度值,总共2*16(channel 0-15)组,旋转角度指前16组数据的角度,后16组数据对应的旋转角度通过前后两次旋转角度计算平均值获得

单回波模式

单回波模式时,一次单点激光发射测量一次回波数据,每个数据块包含了2组按照打包顺序(不同雷达不一样)测量的16个通道点云数据,每个数据块只返回一个方位角。

双回波模式

当使用双回波模式时,一次单点激光发射测量两次回波数据。数据包包含6个奇偶数据块对(类似0,1;2,3),每2个数据块包含2组按照打包顺序测量的16个通道两次回波值。

Block(0,1)数据块为第一个2组16个点云数据的两次回波数据,奇数块为一次回波数据,偶数块为二次回波数据,每个奇偶数据块对只返回一个方位角。

精确时间计算

16线激光发光一次的时间为 2.304 μ s ∗ 16 2.304\mu s * 16 2.304μs∗16,然后需要 18.432 μ s 18.432 \mu s 18.432μs时间充电,因此一个发射周期(Sequence)时间为 2.304 ∗ 16 + 18.432 = 55.296 μ s 2.304 * 16 + 18.432 = 55.296 \mu s 2.304∗16+18.432=55.296μs。

在计算精确时间时,先获取当前帧的时间,然后加上时间偏置:

E x a c t P o i n t T i m e = T i m e s t a m p + T i m e O f f s e t ExactPointTime = Timestamp + TimeOffset ExactPointTime=Timestamp+TimeOffset

时间通过点的位置计算获得,其中DataPointIndex为channel位置,并不是和垂直角度对应:

T i m e O f f s e t = ( 55.296 μ s ∗ S e q u e n c e I n d e x ) + ( 2.304 μ s ∗ D a t a P o i n t I n d e x ) TimeOffset = (55.296 \mu s * SequenceIndex) +(2.304 \mu s * DataPointIndex) TimeOffset=(55.296μs∗SequenceIndex)+(2.304μs∗DataPointIndex)

参考

自动驾驶硬件系统(十二)-激光雷达(Lidar)测量模型

激光雷达运动畸变去除

Windows下VLP16激光雷达数据解析

【激光雷达】velodyne VLP-16线激光雷达驱动程序、相位锁、时钟同步测试总结

移动机器人传感器——激光雷达相关推荐

  1. 移动机器人传感器---IMU

    文章目录 1. IMU概念 2. IMU模块概述 2.1 MEMS传感器 2.2 三轴陀螺仪 3. IMU输出数据在移动机器人算法中的应用 1. IMU概念 惯性测量模块(IMU,Inertial M ...

  2. 万字长文文带你了解自动驾驶重要传感器——激光雷达

    本篇是本人基本汇集全网信息,按照自己逻辑顺序写的.算是自动驾驶激光雷达基础,文中有错还请指出. 如果此篇帮助到你,点个赞再走吧 激光雷达背景 1.1. 概念与特点 激光雷达是利用激光作为信号波的一种探 ...

  3. 移动机器人传感器外参标定综述

    文章目录 1lidar camera alignment 1.1target_based methods 1.2targetless_based methods 1.2.1 3D-3D alignme ...

  4. ros移动机器人,激光雷达里程计rf2o_laser_odometry的使用与分析

    目录 1.问题分析 2.激光雷达里程计 2.1 代码下载 2.2 使用方法 (1) ERRO:"base_link" passed to lookupTransform argum ...

  5. 移动机器人传感器——IMU

    IMU(Inertial Measurement Unit)惯性测量单元:加速度计,陀螺仪构成,输出加速度和角速度,并可以解算出姿态,结合加速度和角速度计可以获得较为准确的Roll和Pitch(旋转轴 ...

  6. 移动机器人传感器——GNSS

    一.GNSS定位 卫星导航系统由空间段.地面段和用户段三部分组成,可在全球范围内全天候.全天时为各类用户提供高精度.高可靠定位.导航.授时服务,并且具备短报文通信能力,已经初步具备区域导航.定位和授时 ...

  7. 自动驾驶汽车中的激光雷达和摄像头传感器融合

    传感器融合是自动驾驶汽车的关键技术之一.这是自动驾驶汽车工程师都必须具备的技能.原因很简单:视觉传感器无处不在,无时无刻不在使用. 自动驾驶汽车通过4个关键技术工作:感知.定位.规划和控制. 传感器融 ...

  8. 【移动机器人导航架构】navigation(mose_base)

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.move_base介绍 二.move_base图例及工作流程介绍 ...

  9. 移动机器人设计与实践-基础概念汇总

    如下全文在关键词提示词等脚本交互下,由文图版本生成式人工智能在1分钟内创作完成. AI自动生成文章评分已经远超大部分博文评分值. 人类社会经历过农业时代(最强代表汉唐)-工业时代(最强代表日不落帝国) ...

最新文章

  1. 操作系统知识点:全面
  2. 2018 焦作站亚洲区域赛校内选拔赛题解
  3. android——获取ImageView上面显示的图片bitmap对象
  4. 优化浏览器默认scroll样式小技巧
  5. php将变量转成字符串类型
  6. 我不是bug神(JVM问题排查)
  7. MongoDB自定义函数部分 定义及引用
  8. php获取当前文件夹下所有图片大小,PHP获取文件夹大小函数用法实例
  9. 数据分析软件界面设计
  10. js java 代码格式化_网页上的Javascript编辑器和代码格式化
  11. 没听过33大原则,赶紧偷偷学习一下:JS开发者不得不知的33大原则!
  12. 国标:计算机软件文档编制规范
  13. Linux 非源码安装 xrdp
  14. 如何设计出骚气的秒杀系统?
  15. 模式识别与机器学习(PATTERNnbsp;RECO…
  16. win10磁贴中的图标变成白色的解决方法
  17. 3 JWT 和 JWS
  18. mysql怎么优化like_MySQL 的 like %关键字怎么优化
  19. 一文带你快速入门【哈希表】
  20. 前端|css制作信封之路

热门文章

  1. 前端面试题 | HTML5新特性有哪些?CSS3新特性有哪些?
  2. 软件 | Markdown更改图片默认大小
  3. 微信小程序身份证号码/手机号隐藏中间几位
  4. 计算机系统除了windows,盘点除了Windows和Ubuntu外,更值得你安装的电脑系统!
  5. 如何在 Mac 上的照片中创建幻灯片
  6. 深入理解Linux进程间通信(IPC)-- 信号signal
  7. 用python3.5写的搜狗壁纸爬虫
  8. 三 iOS之 CALayer的隐式动画
  9. 抽奖的计算方式php,php如何实现计算抽奖概率的算法实例分享
  10. 10种常见的软件架构模式-快速记忆