前言 自动驾驶是汽车技术发展的必然趋势。近年来,自动驾驶技术有了长足进步,高校的重点研究以及产业界的大力投入,促进了技术的革新与应用。从学术界的角度看,自动驾驶技术成为研究热点之一,由于自动驾驶技术的知识交叉性特点,其包含的学术领域也获得了巨大的关注:更多的研究集中在人工智能、自动驾驶、高精地图及智能导航、SLAM等研究领域,并且成果丰硕。最新的研究成果不断应用于自动驾驶汽车,形成科研成果与落地应用的良性循环。从产业界的角度看,针对自动驾驶汽车投入的不断加大,自动驾驶技术的应用刺激了新的产业链形成:自动驾驶汽车支撑了包括汽车芯片、传感器、车载计算单元、智能控制器、动力电池等整套产业链,自动驾驶技术的产品落地,刺激产业链中每一环节的发展。因此,除讲授理论知识外,通过实践训练让读者掌握自动驾驶关键开发技术,提升开发能力,更能适应自动驾驶技术的发展趋势和要求。 本书与配套的理论教材对应,基于自动驾驶小车平台与计算机仿真平台,针对自动驾驶开发过程中的各理论知识设计了对应的实验。 实验1为实验平台与基础环境建立。首先介绍小车实验平台架构、组成与拆装方法,车载软件、上位机软件系统与操作流程,后续实验中涉及的工具链以及Cyber RT框架等内容; 然后按自动驾驶小车硬件的拆解与安装、小车车载系统操作与软件调试两个步骤进行实验。 实验2为车联网。首先介绍以太网通信实现代码与相关库基础、车联网通信设备硬件及软件接口等前导知识; 然后进行小车通信基础与分布式云任务适配、车载系统硬件操作及通信接口配置两部分实验。 实验3为高精地图和车辆定位。在介绍常用地图软件及操作方法、卫星定位、UWB定位等前导知识的基础上,进行基于高精地图的室外定位、基于UWB的室内定位两部分实验; 在实现具体功能实验的同时,加深对基础理论知识的理解。 实验4为视觉目标感知: 传统CV方法。首先讲授摄像头传感器、OpenCV、视频数据格式、图像色彩模式、透视变换、灰度图处理、边缘提取及图像掩码、滑动窗口提取车道线等前导知识; 然后开展俯视图透视变换、图像坐标系到车身坐标系转换、实车图像标定、车道线提取四部分实验。 实验5为视觉目标感知: 深度学习方法。首先介绍AI Studio项目平台、英伟达Jetson Nano计算平台、Jupyter Notebook编写工具、Logistic 回归模型、YOLOv3图像识别模型等前导知识; 然后开展Logistic回归模型图像识别、识别交通标示牌两部分实验。 实验6为激光雷达点云处理。在引入激光雷达的安装与使用、ApolloScape自动驾驶数据集、PCL、点云聚类算法等前导知识后,按点云数据可视化、点云数据地面分割、点云数据目标聚类三个步骤进行实验,使读者具备点云数据的基本处理能力。 实验7为决策规划技术。首先介绍基于CARLA的仿真场景、A*全局规划算法、DWA局部规划算法等前导知识; 然后分别基于自动驾驶小车实验平台和PythonCARLA仿真平台,进行分解式决策规划和集中式决策规划的实验。 实验8为车辆纵横向控制。在介绍小车纵横向控制平台、CarSim动力学仿真软件等前导知识的基础上,分别进行小车纵横向控制、CarSim软件仿真、CarSimSimulink联合仿真三部分实验; 基于常用的PID算法及模型预测控制实现车辆的纵横向控制。 实验9为自动驾驶功能集成与整车测试。首先梳理总结之前做过的实验,并通过系统集成进行功能整合,完成具备完善自动驾驶功能的小车; 在有针对性地改进规划与控制算法后,结合自动驾驶汽车测试的相关理论知识对自动驾驶小车进行测试。 实验1、实验9为黄晋(包括高博麟老师等)老师团队编写,实验2为许庆老师团队编写,实验3~实验6为杨殿阁老师团队(包括江昆、杨蒙蒙、于伟光老师等)编写,实验7为李升波老师团队编写,实验8为王红老师团队编写。 本书通过与理论教材相对应的实验设计,在自动驾驶小车的实验平台上尽可能复现了面向自动驾驶汽车的实际开发过程,让读者掌握自动驾驶关键开发技术,提升实际开发能力,更适应未来技术的发展趋势和要求。 编著者 2022年2月