本书系统梳理了自动驾驶的核心技术框架,并以开源游戏 SuperTuxKart 为基础开发了一套虚拟环境,让读者可以跟随书中的理论讲解和配套的开源代码,零成本上手实战,在充满趣味性的赛车游戏中快速掌握和深刻理解自动驾驶算法的知识。本书内容包括自动驾驶的定义、技术发展历程以及主流技术架构;基础环境构建,打造端到端自动驾驶大模型;感知、预测、规划、控制等自动驾驶核心算法模块;自动驾驶的安全性、法律法规,对社会、经济、伦理的影响,以及行业展望和就业指南。本书适合车辆工程、自动化、计算机等相关专业的学生,以及工程师和行业研究者阅读。
肖祥全北京大学计算机学士、硕士。自动驾驶领域资深专家,近十年从业经历,是全球领先的开源自动驾驶平台Apollo创始成员及代码贡献榜首。先后就职于Google、百度和小鹏汽车,深耕自动驾驶核心技术。现创立并运营一家机器人初创公司,致力于将先进算法和商业落地结合。
第1章 自动驾驶概述 1
1.1 自动驾驶的定义 2
1.2 自动驾驶技术的发展历程 6
1.3 自动驾驶的应用场景 11
第2章 自动驾驶技术架构 15
2.1 车辆平台 19
2.2 传感器 21
2.3 车载计算机 23
2.4 操作系统和通信中间件 26
2.5 地图和定位 28
2.6 感知 30
2.7 预测 33
2.8 规划 35
2.9 控制 37
2.10 端到端自动驾驶大模型 39
2.11 离线基础设施 41
第3章 我们的“自动驾驶游乐场” 45
3.1 基础环境 48
3.2 通信中间件 53
3.3 传感器 55
3.4 线控 56
3.5 第一个自动驾驶算法 57
第4章 端到端自动驾驶大模型 59
4.1 使用Bazel进行Python项目管理 60
4.2 模型设计 62
4.3 数据收集 65
4.4 模型训练 67
4.5 模型部署 69
4.6 优化迭代 72
4.7 其他改进方向 78
第5章 感知模块详解 81
5.1 模块设计 82
5.2 代码实战 84
5.2.1 使用OpenCV进行BEV透视变换 84
5.2.2 使用OpenCV进行道路检测 92
5.2.3 使用YOLO进行障碍物识别 95
5.2.4 使用YOLO执行图像分割、目标跟踪等处理任务 99
5.2.5 完成感知模块 102
5.3 前沿研究 105
第6章 预测模块详解 109
6.1 模块设计 110
6.2 代码实战 111
6.2.1 路径估计 111
6.2.2 速度估计 113
6.2.3 完成预测模块 115
6.3 前沿研究 116
第7章 规划模块详解 119
7.1 模块设计 120
7.2 代码实战 122
7.2.1 选择路径规划器 122
7.2.2 可行性判定 126
7.2.3 选择最优轨迹 128
7.2.4 完成规划模块 129
7.3 前沿研究 130
第8章 控制模块详解 133
8.1 模块设计 134
8.2 代码实战 135
8.2.1 PID控制器 135
8.2.2 LQR控制器 136
8.2.3 MPC控制器 137
8.2.4 完成控制模块 139
8.3 前沿研究 142
第9章 自动驾驶中的其他问题 145
9.1 单车智能与车联网 146
9.1.1 多车协同(Vehicle to Vehicle,V2V) 146
9.1.2 车云协同(Vehicle to Cloud,V2C) 147
9.1.3 车路协同(Vehicle to Infrastructure,V2I) 148
9.2 安全 148
9.2.1 功能安全 149
9.2.2 网络安全 149
9.2.3 人工智能安全 150
9.3 法律法规 151
9.3.1 立法进展 151
9.3.2 标准化进展 152
9.4 社会与经济 153
9.5 伦理 154
第10章 自动驾驶行业就业指南 155
10.1 自动驾驶技术展望 156
10.2 自动驾驶行业的核心岗位 158
10.2.1 感知算法工程师 158
10.2.2 预测算法工程师 160
10.2.3 规划算法工程师 162
10.2.4 控制算法工程师 163
10.2.5 离线基础设施工程师 165
10.2.6 端到端自动驾驶大模型工程师 167
10.3 写在最后 169