前言
党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,这三大战略共同服务于创新型国家的建设。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。
近年来,智能网联汽车行业的商业价值不断提高,智能网联汽车的“智能驾驶”与“智慧座舱”受到了越来越多消费者的关注和欢迎。在这一大背景下,自动驾驶技术不可避免地成为智能网联汽车的核心技术,逐渐成为主机厂与各级经销商希望掌握的核心技术。而作为行业的佼佼者“百度”也开源了Apollo源码,涵盖了自动驾驶的感知、融合、预测、决策、规划与控制的全栈算法,受到了自动驾驶算法行业从业人员的热烈欢迎。然而,Apollo开源代码缺少注释和相关理论知识的讲解,在阅读
和理解时会遇到不少问题。这样的问题,不仅对该领域的算法工程师造成了困惑,同时也使高等
院校的广大师生缺乏教学与学习的目标和方向。
笔者从2013年接触雷达,掌握了雷达信号处理与数据处理领域扎实的基础知识。
随后在2016年开始接触汽车行业的高级辅助驾驶(ADAS),先后在公司担任了总工、技术负责人、研发总监等职务,不仅接触了各类传感器,例如毫米波雷达、激光雷达和摄像头,也对各种传感器的工作原理与开发过程有了深刻的理解和认知,直接在一线带领团队主导了各种ADAS功能的落地,涉及了各种不同的计算平台,积累了丰富的自动驾驶全栈算法的开发与移植经验。与此同时,笔者通过与各大主机厂的接触,对目前行业的痛点与解决方案的可行性与落地的可操作性有了更为深入的理解和判断。
为此,本书的重点主要是讲解Lattice算法的基本流程、基础理论、核心模块(如横纵向轨迹生成与碰撞检测)的翔实分析与相关代码的逐行解析,不仅可以帮助行业的规划算法工程师更好、更深刻地理解Lattice的核心理论与模块实现,也可以为高等院校的广大师生提供不错的教学资源或教材。与此同时,笔者
在本书的撰写过程中,查阅了大量的资料,对Lattice算法的理解与认知也更为深刻,收获良多。
本书主要内容
第1章介绍Lattice算法的背景、基本思想与本书的主要框架。
第2章介绍Frenet坐标系与Cartesian坐标系间的相互转换关系,并对转换过程详尽地进行了推导与证明。
第3章介绍参考线的离散化与计算过程,以及如何根据参考线确定自车当前位置的参考点。
第4章介绍障碍物的描述,以及静态障碍物与动态障碍物ST图的构建方法。
第5章介绍Lattice算法中纵向运动轨迹的生成,根据不同的场景,例如定速巡航场景、有停止点的场景和有障碍物的场景等,
如何
选择4次多项式和5次多项式,构造车辆的纵向运动轨迹生成模型。
第6章介绍Lattice算法中横向运动轨迹的生成,与纵向运动轨迹生成不同的是,本章主要介绍了5次多项式和OSQP两种模型的构建方法。
第7章介绍如何根据不同的场景构建纵向参考速度,并对各条横纵向轨迹进行cost的计算与排序。
第8章介绍横纵向轨迹合成与合成后轨迹点的Frenet坐标向Cartesian坐标的转换,并对各条轨迹进行基于AABB的“粗”式碰撞检测与基于OBB的“细”式碰撞检测。
阅读建议
本书是一本兼顾Lattice算法的理论性与实战性的书籍,既包含Lattice算法中涉及的基础理论知识,又有配套的代码示例与注释,包括详细的理论分析,实操性强。由于Lattice算法理论性和实操性较强,内容较多,所以本书对Lattice算法涉及的基本理论、方法与概念讲解得较为详细,包括公式推导、理论分析及代码示例。每个知识点都配有源码解析,力求精简,在轻松掌握基础知识的同时对代码的实操部分可快速进入实战。
建议读者先根据Apollo 6.0或8.0的官方安装手册,搭建好开发环境。
本书配套资源
素材(源码)等资源: 扫描目录上方的二维码下载。
视频等资源: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的二维码,可以在线学习。
致谢
非常感谢我的母亲及妻女,在我写作的过程中承担了繁重的家务劳动,使我可以全身心地投入写作工作中。
由于时间仓促,书中难免存在不妥之处,敬请读者见谅,并提宝贵意见。
樊胜利
2024年3月
