内容简介
本书深入浅出地讲解了面向封闭、低速场景的自动驾驶主流关键技术,主要包括无人驾驶系统架构、ROS中间件的原理、刚体运动的三维表示、定位与建图、环境感知、路线搜索、运动规划和底盘控制,在介绍数学概念和算法原理时还提供了直观的交互式程序。
本书适合对无人驾驶或移动机器人感兴趣的师生阅读,也可以供从事该领域研究工作的技术人员参考。
目录
第1章 无人驾驶技术概述 001
1.1 无人驾驶行业发展现状 002
1.2 无人驾驶车辆的组成 003
1.3 无人驾驶技术开发对从业者专业技能的要求 005
第2章 无人驾驶软件平台 007
2.1 软件平台架构 008
2.2 程序开发 009
2.2.1 shell 命令 009
2.2.2 性能调试工具 013
2.3 ROS 系统简介 015
2.3.1 节点的诞生 016
2.3.2 节点间的通信 018
2.3.3 序列化 024
2.3.4 ROS 中的时间 026
2.3.5 ROS 常用工具 028
第3章 三维空间中运动的表示 031
3.1 概述 032
3.2 旋转矩阵 033
3.3 欧拉角 040
3.4 四元数 045
3.4.1 四元数的定义 045
3.4.2 四元数的运算 046
3.4.3 四元数与旋转 050
3.4.4 四元数的插值 053
3.5 李群与旋转 058
3.5.1 什么是李群 058
3.5.2 三维旋转群 064
3.5.3 李群基本运算 075
3.6 车辆运动表示 087
第4章 定位技术 089
4.1 概述 090
4.2 GNSS 定位 092
4.2.1 GNSS 常用坐标系 092
4.2.2 RTK 技术 094
4.3 激光定位 094
4.3.1 激光雷达原理 094
4.3.2 LOAM 系列 095
4.3.3 特征点提取 095
4.3.4 特征点匹配 098
4.3.5 环境建图 103
4.4 多传感器融合 105
4.4.1 概率论基础 106
4.4.2 Kalman 滤波原理 110
第5章 环境感知技术 118
5.1 感知系统概述 119
5.1.1 感知系统的功能 119
5.1.2 传统感知技术 120
5.1.3 基于深度学习的感知技术 123
5.2 视觉检测技术 134
5.2.1 Yolo 设计思想 134
5.2.2 Yolo 网络结构 136
5.2.3 损失函数 138
5.2.4 训练技巧 139
5.2.5 Yolo 的扩展 140
5.3 激光点云检测技术 141
5.3.1 点云数据的特点 141
5.3.2 PointPillars 设计思想 142
5.3.3 PointPillars 网络结构 142
5.4 通用障碍物检测技术 146
5.4.1 占用栅格的基本概念 146
5.4.2 Transformer 主干网络 148
5.4.3 占用栅格网络的结构 149
第6章 路线搜索技术 153
6.1 功能概述 154
6.2 路线搜索算法 154
6.2.1 图搜索问题 154
6.2.2 从边松弛到A??算法 155
6.3 路线搜索的具体实现 167
6.3.1 高精地图 167
6.3.2 消息格式 169
6.3.3 整体架构 171
6.3.4 基本概念 173
6.3.5 黑名单路段 174
6.3.6 A??搜索算法 176
6.3.7 后处理 180
第7章 规划决策技术 185
7.1 规划决策系统概述 186
7.2 车道行车规划 186
7.2.1 Frenet 坐标系 186
7.2.2 参考线平滑 187
7.2.3 横向规划 195
7.2.4 纵向规划 201
7.2.5 仿真结果 205
7.3 开放场地规划 206
7.3.1 混合A??算法 206
7.3.2 Dubins 曲线与Reeds-Shepp 曲线 209
7.3.3 速度规划 217
7.3.4 曲线平滑 226
7.3.5 仿真结果 234
第8章 运动控制技术 238
8.1 控制理论 239
8.1.1 车辆运动学模型 239
8.1.2 可控性分析 241
8.1.3 小时间可控性 244
8.2 控制方法 247
8.2.1 纯跟踪方法 247
8.2.2 模型预测控制 248
8.3 仿真试验 250
8.3.1 纯跟踪控制仿真 251
8.3.2 模型预测控制仿真 254
附录一 随书代码使用方法 256
附录二 无人驾驶领域常用术语 258
参考文献 262
前言/序言
曾经,无人驾驶是只有在科幻作品里才会出现的未来技术,人们通过对话就能指挥车辆到达想去的地方。今天,我们能看到越来越多的私家车开始具备某些自动驾驶的功能。尽管现在的自动驾驶还存在诸多的问题,但是其作为一项能改善驾驶安全性和体验的技术,必将是未来的发展趋势。虽然实现全场景下的无人驾驶还需要克服许多困难,但是在限定场景下,无人驾驶已经具备落地的条件。
无人驾驶是一个新兴的行业和技术领域,吸引了市场的关注,也汇集了具有不同学科背景的人才。在各领域人才配合协作下,车辆像是有了眼睛和大脑,能够自主决策并完成任务。但是,即便有多年工作经验的人,对于相关领域的基本概念和原理可能也是一知半解。研究定位的人员可能对车辆自己停到车位中的原理非常好奇,负责轨迹规划的人员对于车辆能够读懂红绿灯上的倒计时或者发现半掩的行人特别吃惊。他们虽然实现了共同的目标,但是彼此之间却了解很少。这些看似实现不同功能的模块,可能在底层使用了相同的数学原理。例如,李代数不仅在车辆运动的描述中发挥了重要作用,而且在车辆可控性分析中也必不可少。规划使用的路径平滑算法本质是一个优化问题,而建图中数据匹配同样是一个优化问题。不仅如此,训练感知模型和基于模型的预测控制同样归结为一个优化问题。了解这些事实,有助于我们从更高的视角去看待问题,从而提出更通用、完善的解决方法。
无人驾驶是一个融合众多学科前沿技术的交叉领域,并且处在快速发展的过程中。了解无人驾驶中使用的技术及其原理并不容易。一种方法是阅读经典论文。但是这些论文大多不够系统,而且对读者的理论水平和专业背景有很高的要求。笔者从事移动机器人和无人驾驶技术研发多年,深感掌握技术原理之难,编写本书的目的是从底层原理和常识出发,详细介绍无人驾驶中使用的相关概念和算法。例如,为了让读者理解李代数这个抽象的概念,笔者给出了三种物理解释。本书在介绍算法原理时给出了大量的插图和交互式程序,能够让枯燥的数学公式和原理变得生动形象、直观易懂。
鉴于笔者水平有限,难以深入每个技术分支。如果有理解不到位和表述不足之处,敬请广大读者批评指正。
著者