《 无人驾驶原理与实践》
无人驾驶原理与实践
申泽邦 雍宾宾 周庆国 李良 李冠憬 编著
Praise本书赞誉
近两年来,自动驾驶技术随着人工智能和汽车行业的飞速发展,逐渐成为业界焦点。自动驾驶技术是传统汽车产业与人工智能、物联网技术、高性能计算芯片等新兴科技深度融合的产物,其本质是汽车产业的升级。本书从自动驾驶的基本原理入手,到技术工程实践,深入浅出地阐述了自动驾驶系统级的核心技术要点,是学习、掌握自动驾驶技术不可多得的一本好书,推荐阅读。
小鹏汽车,自动驾驶部门副总监肖志光
无人驾驶汽车是当下最热门的科技话题之一,热到似乎明年、下个月、明天我们就可以开上无人驾驶汽车,似乎我们许多人还没来得及成为一个司机,许多老司机就要被机器人抢走了工作。而事实上,又有多少人真正了解无人驾驶技术,了解它的分级、技术实现路径、技术成熟时间点。本书是一本非常好的技术入门读物,对于所有想了解自动驾驶技术,未来想从事自动驾驶相关工作的人来说,这都是一份很好的学习资料。
小鹏汽车,产品部副总裁纪宇
本书理论和实践相结合,涵盖了无人/自动驾驶常用的内容与方向,丰富、翔实、分析透彻,可读性极强,是国内非常难得的一本中文无人驾驶系统性学习资料。
小鹏汽车,AI首席科学家郭彦东
本书是自动驾驶专家的力作,强力推荐。
景驰科技,CEO韩旭
无人驾驶作为改变人类出行方式的科技,逐渐成为新的风口。本书涵盖了无人驾驶技术的主要技术领域,并按照难易程度重新排序,由易到难循序渐进,很适合对自动驾驶技术感兴趣的读者阅读。
景驰科技,运营总监陈云峰
无人驾驶无疑会是人类生活方式的重大变革,想要一窥行业究竟,不妨跟本书作者一起以通俗易懂的方式探索无人驾驶技术的当下与未来。
Kneron Inc,CEO刘峻诚
With the development of sensor and AI technologies, autonomous driving is becoming a reality Through integration and cooperation with the Internet of Things, autonomous vehicle will profoundly change our society in the near future This book systematically introduces the key technologies of L4 autonomous driving Focusing on both algorithm principles and practical applications, this book is a good choice for readers to quickly enter into this industry
Autoware,Tier IV, Inc,President & CEO武田一哉
50多年前的Apollo登月计划,人类踏出了探索未知月球的第一步。在未知前,人们无所畏惧,勇于探索,就如同今日在自动驾驶领域里,越来越多的科学家、工程师在探索着如何将人工智能、大数据、高性能计算芯片等先进技术,与传统的汽车行业进行深度融合,在进一步提升驾驶安全的前提下,解放人类的双手,让人类可以在运筹帷幄的同时仰望星空。本书作者在自动驾驶领域从事前瞻性的研究工作,不断累积、消化和整理经验与知识,并且出繁入简、深入浅出地将研究成果分享给各位有志于在自动驾驶领域不断探索的伙伴。自动驾驶技术依然挑战重重,但是未来却一片光明,与大家共勉,推荐阅读。
百度美国研究院,Apollo平台资深架构师缪景皓
本书深入浅出地介绍了整个无人驾驶软件系统的基本原理和关键算法,并且带有大量实战用例,是无人驾驶的入门首选。
IEEE Fellow,圣塔克拉拉大学教授林楠
这是我看过最系统、最全面,同时兼具实践案例的无人驾驶技术入门好书,强烈推荐给每位有志于投身无人驾驶产业的工程师。
Pix Moving无人驾驶,CEO喻川
无人驾驶是当前汽车工业的重要发展方向,而当前无人驾驶技术的入门门槛颇高,本书大大降低了读者开展无人驾驶研究和学习的成本,是一本“接地气”的无人驾驶技术书。
国家千人计划专家,神目科技,董事长刘靖峰
Foreword序
近年来,随着人工智能技术(尤其是深度神经网络)的发展,无人驾驶系统中的感知和综合决策等问题正在逐步得到解决。神经网络算法能够识别出物体的属性,并且能够在综合感知信息和定位结果之后做出类似于人类驾驶员的合理决策,这表明无人驾驶正在向我们走来。虽然通用人工智能仍然“遥远”,但可以预言,无人驾驶汽车将在不久的将来得到普及,而基于无人驾驶技术的世界也给了我们无限的想象空间。
我国无人驾驶汽车的研究起步较晚,关键理论研究薄弱,特别是相关专业人才比较欠缺。要加快国内无人驾驶的发展,就必须重视无人驾驶相关专业人才的培养。目前,国内无人驾驶相关的教程和书籍也比较欠缺,为了给广大初学者提供一本高质量的无人驾驶主题书籍,本书主要作者与国内一线无人驾驶科研团队负责人、一线新能源汽车厂商无人驾驶技术专家合作,共同编写了这本无人驾驶技术教材。本书有以下特点:
1)自成体系。本书的内容覆盖无人驾驶技术中的感知、规划和控制三大模块,对无人驾驶的整个技术栈进行了全面深入的介绍。
2)内容充实。本书既包括相关原理的讲解,又包括相应的实践代码。
3)适应面广。本书适用于希望进入无人驾驶汽车行业的技术人员和高校学生,既可作为入门书籍,也可作为无人驾驶应用研究的工具书籍。
本书的主要作者来自兰州大学未来计算研究院,所在团队的主要研究方向为深度学习、计算机视觉和自动驾驶技术。特别是团队成员申泽邦于2018年5月参加“快·开”全球无人驾驶挑战赛,获得全尺寸组第一名的成绩。该团队于2017年正式开始研究无人驾驶,是甘肃省第一个无人驾驶科研机构和创业团队,致力于推动西北地区无人驾驶学科和产业的发展。该团队在不到两年的时间完成了“从0到1”的突破,目前已经发展为以激光雷达、摄像头等多传感器融合和感知算法为特长,具备园区内L4级别无人驾驶系统研发能力的研究团队。同时国内一线无人驾驶科研团队负责人、一线新能源汽车厂商无人驾驶技术专家也为本书提供了相关的内容和技术支持,使得本书具有非常完善的知识结构。
潘毅
美国佐治亚州立大学计算机系校董教授,系主任
前言Preface
随着近年来机器学习和强化学习理论的发展,众多研究领域和产业掀起了一场人工智能变革。其中,无人驾驶技术深受深度学习和计算机视觉发展的影响,其理论已经日趋成熟,正在向产业化落地迈进。
无人驾驶已经不再遥远。2017年4月,工业和信息化部、国家发展和改革委员会、科技部在印发的《汽车产业中长期发展规划》中提出:到2020年,汽车DA(驾驶辅助)、PA(部分自动驾驶)、CA(有条件自动驾驶)系统新车装配率超过50%,网联式驾驶辅助系统装配率达到10%,满足智慧交通城市建设需求。到2025年,汽车DA、PA、CA新车装配率达到80%,其中PA、CA级新车装配率达到25%,高度和完全自动驾驶汽车开始进入市场。
依托长期以来的技术积累和近期人工智能领域的突破,加之日趋成熟的政策,无人驾驶正在向人们走来。各大互联网公司和汽车巨头大量投入资源发展无人驾驶技术的事实表明,无人驾驶已经逐步成为信息产业和汽车行业的大势所趋。
与当前国内无人驾驶领域快速增长形成鲜明对比的是国内相关专业人才的欠缺,无人驾驶领域的顶尖人才仍然集中于欧洲、美国、日本等发达国家和地区。早在十几年前,美国国防部就举办了DARPA Grand Challenge无人驾驶挑战赛,当今全球最顶尖的无人驾驶团队和技术领袖多数是在该赛事中成名的。该比赛也催生了大量无人驾驶关键算法、无人驾驶系统设计理念等,可谓是现代无人驾驶的重要里程碑。相比之下,我国全自动无人驾驶汽车的研究起步晚,关键理论薄弱,专业人才欠缺。因此,要保持国内无人驾驶发展的后劲,就必须重视无人驾驶相关专业人才的培养。
本书即在此大背景下产生。无人驾驶是一个综合了多个学科的应用领域,这些学科包括机器人学、自动化控制、机器学习、机器视觉、移动通信、智能交通、车辆工程等。也正是由于无人驾驶的综合性,目前国内系统介绍无人驾驶的技术书籍相当匮乏。市面上现有的无人驾驶技术中文书籍多为科普类,读者很难通过其真正完成无人驾驶相关技术的理论入门和实战训练。本书旨在通过相对完整的无人驾驶理论介绍和简单易上手的实例帮助读者实现技术入门,让读者对无人驾驶软件系统的整个技术栈有一定的了解。
本书作者包括国内一线无人驾驶科研团队负责人、一线新能源汽车厂商无人驾驶技术专家,他们对整个无人驾驶技术栈有着全面深入的研究,同时拥有丰富的工业应用实践经验。通过本书,读者将系统学习并实战无人驾驶软件系统的感知、规划和控制基础算法,掌握ROS编程,学习并实践多传感器融合方法,学习机器学习、深度学习和强化学习等人工智能方法在无人驾驶中的应用,还将初步了解更接近工业应用的复杂方法。
考虑到工业界多使用Python进行算法原型设计,使用C++进行产品实现,故本书的实践部分采用Python和C++两种编程语言。在阅读本书前,读者应当具备基础的Python或C++编程能力,并且掌握基本的线性代数和概率论等数学知识。
本书适用于希望进入无人驾驶汽车行业的技术人员和高校学生,可作为技术入门书籍,亦可作为无人驾驶应用研究的工具书籍。本书提供了ROS编程、点云匹配定位、基于卡尔曼滤波和扩展卡尔曼滤波的传感器融合、机器学习图像识别、深度学习目标检测、优化轨迹的动作规划算法、纯追踪算法等大量编程实例,方便读者实践。配套源代码可从华章官网下载。
本书从开始编写到出版历时近一年,在此感谢兰州大学未来计算研究院无人驾驶团队的王金强、肖子超、孙宇等人对内容的贡献,同时感谢黄航、漆昱涛等人对内容的审阅。限于作者的学识,加之编写经验不足,本书难免有疏漏之处,肯请各位同行和读者批评指正。
申泽邦周庆国
2018年9月
目录Contents
前言
教学建议
第1章初识无人驾驶系统
11什么是无人驾驶
111无人驾驶的分级标准
112无人驾驶到底有多难
12为什么需要无人驾驶
121提高道路交通安全
122缓解城市交通拥堵
123提升出行效率
124降低驾驶者的门槛
13无人驾驶系统的基本框架
131环境感知
132定位
133任务规划
134行为规划
135动作规划
136控制系统
137小结
14开发环境配置
141简单环境安装
142ROS安装
143OpenCV安装
15本章参考文献
第2章ROS入门
21ROS简介
211ROS是什么
212ROS的历史
213ROS的特性
22ROS的核心概念
23catkin创建系统
24ROS中的项目组织结构
25基于Husky模拟器的实践
26ROS的基本编程
261ROS C++编程
262编写简单的发布和订阅程序
263ROS中的参数服务
264基于Husky机器人的小案例
27ROS Service
28ROS Action
29ROS中的常用工具
291Rviz
292rqt
293TF坐标转换系统
294URDF和SDF
210本章参考文献
第3章无人驾驶系统的定位方法
31实现定位的原理
32迭代最近点算法
33正态分布变换
331NDT算法介绍
332NDT算法的基本步骤
333NDT算法的优点
334NDT算法实例
34基于GPS+惯性组合导航的定位系统
341定位原理
342不同传感器的定位融合实现
35基于SLAM的定位系统
351SLAM定位原理
352SLAM应用
36本章参考文献
第4章状态估计和传感器融合
41卡尔曼滤波和状态估计
411背景知识
412卡尔曼滤波
413卡尔曼滤波在无人驾驶汽车感知模块中的应用
42高级运动模型和扩展卡尔曼滤波
421应用于车辆追踪的高级运动模型
422扩展卡尔曼滤波
43无损卡尔曼滤波
431运动模型
432非线性过程模型和测量模型
433无损变换
434预测
435测量更新
436小结
44本章参考文献
第5章机器学习和神经网络基础
51机器学习基本概念
52监督学习
521经验风险最小化
522模型、过拟合和欠拟合
523“一定的算法”——梯度下降算法
524小结
53神经网络基础
531神经网络基本结构
532无限容量——拟合任意函数
533前向传播
534随机梯度下降
54使用Keras实现神经网络
541数据准备
542三层网络的小变动——深度前馈神经网络
543小结
55本章参考文献
第6章深度学习和无人驾驶视觉感知
61深度前馈神经网络——为什么要深
611大数据下的模型训练效率
612表示学习
62应用于深度神经网络的正则化技术
621数据集增强
622提前终止
623参数范数惩罚
624Dropout技术
63实战——交通标志识别
631BelgiumTS 数据集
632数据预处理
633使用Keras构造并训练深度前馈网络
64卷积神经网络入门
641什么是卷积以及卷积的动机
642稀疏交互
643参数共享
644等变表示
645卷积神经网络
646卷积的一些细节
65基于YOLO的车辆检测
651预训练分类网络
652训练检测网络
653YOLO的损失函数
654测试
655基于YOLO的车辆和行人检测
66本章参考文献
第7章迁移学习和端到端无人驾驶
71迁移学习
72端到端无人驾驶
73端到端无人驾驶模拟
731模拟器的选择
732数据采集和处理
733深度神经网络模型构建
74本章小结
75本章参考文献
第8章无人驾驶规划入门
81无人车路径规划和A*算法
811有向图
812广度优先搜索算法
813涉及的数据结构
814如何生成路线
815有方向地进行搜索(启发式)
816Dijkstra算法
817A*算法
82分层有限状态机和无人车行为规划
821无人车决策规划系统设计准则
822有限状态机
823分层有限状态机
824状态机在行为规划中的使用
83基于自由边界三次样条插值的无人车路径生成
831三次样条插值
832三次样条插值算法
833使用Python实现三次样条插值进行路径生成
84基于Frenet优化轨迹的无人车动作规划方法
841为什么使用Frenet坐标系
842Jerk最小化和5次轨迹多项式求解
843碰撞避免
844基于Frenet优化轨迹的无人车动作规划实例
85本章参考文献
第9章车辆模型和高级控制
91运动学自行车模型和动力学自行车模型
911自行车模型
912运动学自行车模型
913动力学自行车模型
92无人车控制入门
921为什么需要控制理论
922PID控制
93基于运动学模型的模型预测控制
931将PID控制应用于转向控制存在的问题
932预测模型
933在线滚动优化
934反馈校正
94轨迹追踪
95本章参考文献
第10章深度强化学习及其在自动驾驶中的应用
101强化学习概述
102强化学习原理及过程
1021马尔可夫决策过程
1022强化学习的目标及智能体的要素
1023值函数
103近似价值函数
104深度Q值网络算法
1041Q_Learning算法
1042DQN算法
105策略梯度
106深度确定性策略梯度及TORCS游戏的控制
1061TORCS游戏简介
1062TORCS游戏环境安装
1063深度确定性策略梯度算法
107本章小结
108本章参考文献
- 点赞
- 收藏
- 关注作者
评论(0)