激光雷达入门

2023-05-16

转载自:https://zhuanlan.zhihu.com/p/33792450

前言

 

上一次的分享里,我介绍了一个重要的感知传感器——摄像机。摄像机作为视觉传感器,能为无人车提供丰富的感知信息。但是由于本身感知原理的缺陷,导致摄像机的测距并不是那么准确。

 

工程师们为了解决测距的问题,引入了激光传感器。这就是我们常在Level 3级别以上的无人车上看到的设备。比如通用用于研究Level 4级别自动驾驶技术的Bolts,就在车顶上顶了好多激光雷达。

图片出处:http://www.igao7.com/news/201801/KCdcdMqsSQPxaxNF.html?from=114


正文

 

激光雷达的原理

 

如下图所示,激光雷达的发射器发射出一束激光,激光光束遇到物体后,经过漫反射,返回至激光接收器,雷达模块根据发送和接收信号的时间间隔乘以光速,再除以2,即可计算出发射器与物体的距离。

图片出处:http://slideplayer.com/slide/7103535/

 

激光雷达的分类

 

激光雷达根据安装位置的不同,分类两大类。一类安装在无人车的四周,另一类安装在无人车的车顶。

 

安装在无人车四周的激光雷达,其激光线束一般小于8,常见的有单线激光雷达和四线激光雷达。

 

安装在无人车车顶的激光雷达,其激光线束一般不小于16,常见的有16/32/64线激光雷达。

 

单线激光雷达

图片出处:http://robotsforroboticists.com/sick-lms511-lidar-review/

单线激光雷达是目前成本最低的激光雷达。成本低,意味着量产的可能性大。

 

前两天朋友圈刷屏的“北京首个自动驾驶测试场启用”新闻中出现的福田自动驾驶汽车就使用了4个单线激光雷达,分别布置于无人车的前后左右,用于车身周围障碍物的检测,如下图。

 

单线激光雷达的原理可以通过下图理解。

图片出处:http://www.mdpi.com/1424-8220/16/6/933/htm

单束激光发射器在激光雷达内部进行匀速的旋转,每旋转一个小角度即发射一次激光,轮巡一定的角度后,就生成了一帧完整的数据。因此,单线激光雷达的数据可以看做是同一高度的一排点阵。

 

单线激光雷达的数据缺少一个维度,只能描述线状信息,无法描述面。如上图,可以知道激光雷达的面前有一块纸板,并且知道这块纸板相对激光雷达的距离,但是这块纸板的高度信息无从得知。

 

四线激光雷达

如上图所示,四线激光雷达基本都像这样。

 

全新的奥迪A8为了实现Level 3级别的自动驾驶,也在汽车的进气格栅下布置的四线激光雷达ScaLa。

有了之前单线激光雷达的原理介绍,四线激光雷达的工作原理就很容易理解了。

 

如下图所示,不同的颜色代表不同的激光发射器。

图片出处:https://www.youtube.com/watch?v=lj5B2g4MyMM

 

四线激光雷达将四个激光发射器进行轮询,一个轮询周期后,得到一帧的激光点云数据。四条点云数据可以组成面状信息,这样就能够获取障碍物的高度信息。

 

根据单帧的点云坐标可得到障碍物的距离信息。

 

根据多帧的点云的坐标,对距离信息做微分处理,可得到障碍物的速度信息。

 

实际应用时,在购买激光雷达的产品后,其供应商也会提供配套的软件开发套件(SDK,Software Development Kit),这些软件开发套件能很方便地让使用者得到精准的点云数据,而且为了方便自动驾驶的开发,甚至会直接输出已经处理好的障碍物结果。

 

如下图绿的的矩形框即为障碍物相对于自车的位置,矩形框的前端有个小三角,表示障碍物的运动方向。

 

16/32/64线激光雷达

图片出处:http://velodynelidar.com/news.php

16/32/64线的激光雷达的感知范围为360°,为了最大化地发挥他们的优势,常被安装在无人车的顶部。

 

三款激光雷达的技术参数和成本如下图。(更多Velodyne激光雷达的技术资料/使用手册等,可在公众微信号 自动驾驶干货铺 里回复 Velodyne 获取)

图片出处:http://auto.qq.com/a/20170609/058173.htm

 

360°的激光数据可视化后,就是大家经常在各种宣传图上看到的效果,如下图。

图中的每一个圆圈都是一个激光束产生的数据,激光雷达的线束越多,对物体的检测效果越好。比如64线的激光雷达产生的数据,将会更容易检测到路边的马路牙子。

 

16/32/64线的激光雷达只能提供原始的点云信号,没有对应的SDK直接输出障碍物结果。因此各大自动驾驶公司都在点云数据基础上,自行研究算法完成无人车的感知工作。

 

激光雷达的数据

 

激光雷达的点云数据结构比较简单。以N线激光雷达为例来讲解点云的数据结构。

 

在实际的无人驾驶系统中,每一帧的数据都会有时间戳,根据时间戳进行后续和时间有关的计算(如距离信息的微分等)。因此N线激光雷达的点云数据结构如下图。

每一线点云的数据结构又是由点云的数量和每一个点云的数据结构组成。由于激光雷达的数据采集频率和单线的点云数量都是可以设置的,因此1线点云数据中需要包含点云数量这个信息。

最底层的是单个点云的数据结构。点的表达既可以使用theta/r的极坐标表示,也可以使用x/y/z的3维坐标表示。

 

每个点云除了坐标外,还有一个很重要的元素,那就是激光的反射强度。激光在不同材料上的反射强度是不一样的。以3维坐标的表示方法为例,单个点云的数据结构如下图。X/Y/Z方向的偏移量是以激光雷达的安装位置作为原点。

 

激光雷达能做什么?

 

激光雷达点云数据的一般处理方式是:数据预处理(坐标转换,去噪声等),聚类(根据点云距离或反射强度),提取聚类后的特征,根据特征进行分类等后处理工作。

 

以百度Apollo 2.0目前已开放的功能为例,看看激光雷达能完成哪些工作。

 

障碍物检测与分割

图片出处:http://data.apollo.auto/?locale=zh-cn&lang=en

利用高精度地图限定感兴趣区域(ROI,Region of Interest)后,基于全卷积深度神经网络学习点云特征并预测障碍物的相关属性,得到前景障碍物检测与分割。

 

可通行空间检测

利用高精度地图限定ROI后,可以对ROI内部(比如可行驶道路和交叉口)的点云的高度及连续性信息进行判断点云处是否可通行。

 

高精度电子地图制图与定位

利用多线激光雷达的点云信息与地图采集车载组合惯导的信息,进行高精地图制作。自动驾驶汽车利用激光点云信息与高精度地图匹配,以此实现高精度定位。

 

障碍物轨迹预测

根据激光雷达的感知数据与障碍物所在车道的拓扑关系(道路连接关系)进行障碍物的轨迹预测,以此作为无人车规划(避障、换道、超车等)的判断依据。


小结

 

当前人工智能的算法还不够成熟,纯视觉传感器的无人驾驶方案在安全性上还存在较多问题,因此现阶段的无人车的开发还离不开激光雷达。强如Google,目前不也还没开发出脱离激光雷达的自动驾驶方案么。

 

不过成本是激光雷达普及所遇到的最大问题。毕竟一款比车还贵的传感器是车企无法接受的。激光雷达的降本路任重道远啊。

 

好了\(^o^)/~,这篇分享基本上让大家了解了无人车所使用到的激光感知技术。

 

如果您觉得有收获,希望您能给文章点个赞,如果能加个关注就更好啦~

 

感谢(・ω・)ノ!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

激光雷达入门 的相关文章

随机推荐

  • OpenCV—PnP单目测距

    OpenCV PnP单目测距 使用单目相机结合OpenCV的pnp解算实现单目测距 xff08 需要知道物体的长宽 xff09 开始用的opencv 自带的标定api 标定相机 xff0c 但是标定结果和matlab的结果有出入 xff0c
  • 【具体实现过程】百度地图POI区域的边界经纬度坐标数据采集

    最近有个项目需要拿到百度地图中XXX市中所有学校的边界坐标 经过一下午的努力 xff0c 终于成功拿到了坐标 xff0c 对坐标数据还原和验证 特此记录一下具体实现过程和爬取思路 前言 xff1a 什么是POI xff1f Point of
  • Gazebo仿真平台模型搭建与修改

    ROS进阶教程 xff08 一 xff09 Gazebo仿真平台模型搭建与修改 文件讲解Models 文件World文件Launch文件 模型编辑可视化操作配置文件编辑 仿真操作流程完成model建模world文件和launch文件修改 其
  • XShell过期需要采购解决办法

    有天Xshell更新完再打开 xff0c 提示我去采购 xff0c 当然采购得花钱 xff0c 所以下面方法是解决这一问题 1 跳到官网 https www netsarang com download free license html
  • 【SMT32CubeMx安装详解】

    SMT32CubeMx安装详解 文章目录 SMT32CubeMx安装详解 前言一 准备工作二 CubeMax安装三 工程参数配置总结 前言 记录CubeMax软件安装和相关工程配置的简单操作 一 准备工作 在我们进行软件安装之前首先将我们需
  • AirSim无人机仿真平台(windows)

    1 环境 xff1a UE4 26 43 AirSim 43 VS2019 2 安装步骤 xff1a 1 xff09 先下载Epic Games安装启动器 xff0c 然后再安装UE4 26 xff1b 2 xff09 安装VS2019社区
  • ubuntu18在docker下运行kalibr

    一些命令 docker images sudo docker run it kalibr latest sudo docker run it v local path docker path respository bin bash sud
  • 机器人避障规划算法之VFH系列算法研究现状

    机器人路径规划算法可以分为全局路径规划与局部路径规划 xff0c 全局规划算法一般需要地图信息作为先验知识 xff0c 而局部规划算法利用传感器探测环境信息避开障碍物 常用的全局算法算法有可视图法 xff0c 栅格地图法 xff0c 智能算
  • Windows配置ArUco

    windows10 vs2019 opencv3 4 6 注意 xff0c 一定要选择与opencv版本一样的opencv contrib 进行编译 xff0c 否则将会出现错误 xff0c 有很多的工程不能编译通过 xff0c 不能产生相
  • ArUco估计位姿原理

    ArUco使用 PnP OpenCV aruco 校准相机 Camera Calibration Demo 使用opencv的aruco库进行位姿估计 include lt opencv2 core core hpp gt include
  • 传递函数极点与微分方程的解

    如何解微分方程 setting y 61 e rx xff0c 点睛之笔
  • MPC控制

    基于状态空间模型的控制 模型预测控制 xff08 MPC xff09 简介 对基于状态空间模型的控制理解得很到位 在这里我重点讲解一下状态空间 模型 那么什么是状态 xff1f 输出是不是也是状态的一种 xff1f 对的 xff0c 输出也
  • @卡尔曼滤波理解

    Kalman Filter For Dummies 翻译 如何用卡尔曼滤波算法求解电池SOC xff08 基础篇 xff09 转载留存 卡尔曼滤波算法详细推导 这一篇对预备知识的介绍还是很好的 xff0c 过程与原理讲解也很到位 xff0c
  • 全景避障、VIO

    VINS Mono代码分析与总结 完整版 单目与IMU的融合可以有效解决单目尺度不可观测的问题 鱼眼摄像头SLAM xff1a PAN SLAM 全景相机SLAM 原论文 xff1a Panoramic SLAM from a multip
  • CAN总线-ACK应答机制分析

    1 xff1a 应答场定义 应答场长度为 2 个位 xff0c 包含应答间隙 xff08 ACK SLOT xff09 和应答界定符 xff08 ACK DELIMITER xff09 在应答场里 xff0c 发送站发送两个 隐性 位 当接
  • 树莓派4b 引脚图

    树莓派 4B 详细资料
  • 控制~线性系统~的能控性和能观性

    现控笔记 xff08 四 xff09 xff1a 能控性和能观性 能控性 xff1a 是控制作用u t 支配系统的状态向量x t 的能力 xff1b 回答u t 能否使x t 作任意转移的问题 能观性 xff1a 是系统的输出y t 反映系
  • 创建功能包

    创建功能包 xff1a catkin create pkg 在Amos WS src路径下 xff0c 打开控制台输入catkin create pkg my package std msgs rospy roscpp 创建一个名为my p
  • SLAM算法

    一 概述 Simultaneous Localization and Mapping SLAM 原本是Robotics领域用来做机器人定位的 xff0c 最早的SLAM算法其实是没有用视觉camera的 xff08 Robotics领域一般
  • 激光雷达入门

    转载自 xff1a https zhuanlan zhihu com p 33792450 前言 上一次的分享里 xff0c 我介绍了一个重要的感知传感器 摄像机 摄像机作为视觉传感器 xff0c 能为无人车提供丰富的感知信息 但是由于本身