“ 经常有朋友问有没有学习仿真的相关书籍推荐,于是搜集和阅读了一些,记录在这里,向大家分享。如果大家有觉得好的书籍,也请留言推荐,不胜感激。”
《无人驾驶原理与实践》:申泽邦等编著. 北京:机械工业出版社,2019.1
本书系统地讲解了无人驾驶软件系统的感知、规划和控制基础算法以及机器学习、深度学习和强化学习等人工智能方法在无人驾驶的应用。
全书共分10章,概述如下:
(1)第1章首先介绍了无人驾驶的分级和好处。然后介绍了无人驾驶系统的基本框架:无人驾驶系统可概述为感知(环境感知和定位)、规划(任务规划、行为决策和动作规划)和控制(路径追踪和轨迹追踪)三个部分。
第2章介绍了自动驾驶实现时经常采用的ROS平台。ROS核心的概念包括节点(node)、话题(topic)、消息(message)、服务(service)和动作(action)等。接着讲解了c++编写订阅节点和发布节点的方法以及一个基于Husky的案例。最后介绍了ROS中Rivz、rqt、tf、URDF/SDF等工具。
(2)接着按照第1章提到的框架讲解各模块的实现方法。
第4章介绍了状态估计和传感器融合相关内容。自动驾驶系统运行过程中需要采用各种传感器采集环境和本车的各种信息,但是由于测量的误差和噪声的存在,又不能完全相信测量值,这时卡尔曼滤波方法可以提供对状态量的最优估计。其主要步骤包括:①根据上一时刻的最优估计值计算本时刻的状态预测值,计算采用过程模型,也就是物理的理论模型;②根据上一时刻的最优估计值的误差计算本时刻预测值的误差;③根据本时刻预测值的误差和测量噪声均值计算卡尔曼增益,卡尔曼增益表示的是对测量值和预测值的重视程度;④根据本时刻的预测值、测量值和卡尔曼增益计算本时刻的最优估计值;⑤根据本时刻预测值的误差和卡尔曼增益计算本时刻的最优估计值的误差。书中还介绍了扩展卡尔曼滤波EKF和无损卡尔曼滤波UKF。
第3章是无人驾驶系统的定位方法。主要介绍了三种:①基于激光雷达点云数据定位,将当前激光雷达扫描出的点云片段和事前采集的全局点云地图镜像匹配,来实现自身的定位,这需要用到迭代最近点算法ICP和正态分布变换NDT;②基于GPS+INS定位,通过全球定位导航系统输出的经纬度和惯导系统输出的加速度信号进行融合实现定位;③基于SLAM定位,包括基于激光雷达点云数据的SLAM和基于视觉摄像头的SLAM。
第5章介绍了机器学习基本概念、监督学习和神经基础;第6章介绍了深度学习网络和卷积神经网络基础知识,并讲解了使用深度前馈网络进行交通标志识别和基于YOLO进行车辆检测的方法。
第8章介绍了无人驾驶规划的相关知识,包括采用A*算法进行路径规划、采用分层有限状态机进行行为规划、基于自由边界三次样条插值进行路径生成和基于Frenet优化轨迹的动作规划方法。
第9章介绍车辆控制相关知识,常用的两种控制方法为PID控制和基于模型的预测控制。控制模块的主要目的是控制车辆的加速、减速和转向等信号,实现轨迹跟踪。
(3)另外,书中介绍了迁移学习、深度强化学习和端到端无人驾驶的相关知识。
第7章介绍迁移学习和端到端无人驾驶。迁移学习是指采用一个现有的深度学习模型,在原始模型的基础上进行微调来适应新的应用场景。端到端无人驾驶,是将传感器采集到的信息输入深度学习模型,直接输出车辆控制参数。深度神经网络先采用模拟器采集数据、训练网络和验证效果。
第10章介绍了强化学习的原理和在无人驾驶中的应用。强化学习不需要带标签的数据和正确的输入/输出对,也没有监督者而是采用交互环境中的反馈信号进行模型的学习。