【自动驾驶】控制算法(一)绪论与前期准备

写在前面:

🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落 。📝
个人主页清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏 ,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货 ,还有思维的火花

📚 系列专栏:【运动控制】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~

文章目录


引言

各位小伙伴们大家好,本篇博客开一个新的系列,自动驾驶控制算法 。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。

自动驾驶是比较新、也比较火的技术,这个系列介绍自动驾驶关于控制方面的算法。


一、谨慎、批判、怀疑的态度

在开启这一系列的介绍之前,要先提醒大家一句:请以审慎批判和怀疑的眼光审视目前市面上所有关于自动驾驶技术方面的书籍、教程、文献以及论文。其原因在于,新兴技术往往伴随着模糊性和争议性。自动驾驶技术,作为一项相对较新的领域,自然也不例外。

自动驾驶技术的创新速度之快,使得它不同于那些已经发展了几百年甚至几千年的学科,如数学和物理。后者的发展已经相当成熟,相关的教科书通常不会存在模糊性或争议,也不会有明显的错误。

然而,自动驾驶技术则不同,由于其新颖性,目前学术界和工业界都尚未形成一个成熟的、总结性的文献或著作。虽然网络上充斥着大量介绍自动驾驶技术的文章,市面上也有许多相关书籍销售,但不可避免的是,这些资料普遍存在错误,即便是出自知名人士或机构之手的论文和文章也不例外。

无论是斯坦福、麻省理工的学者,还是参与 863 计划的科学家,他们所出版的书籍和论文中也存在诸多错误。

因此,我们在对待这些资料时应持批判性思维,取其精华,去其糟粕,切不可盲目迷信权威。这也适用于本博客所写的教程,大家在学习时也应保持谨慎、批判和怀疑的态度。


二、常用工具

下面介绍一下学习自动驾驶的常用工具,不限于控制算法,如果想做其他的关于自动驾驶的研究,这些工具也是必不可少的,最有力的工具就是谷歌和GitHub。

1、Google

有人可能会问,就用百度搜索行不行?

百度的话主要是搜不到GitHub,所以建议大家不要用百度了,直接用 Google浏览器 就行

2、Github

GitHub 上面有很多自动驾驶相关的文献以及相关代码,而且 GitHub 上有很多做自动驾驶的技术牛人,跟他们学习对自己的提高非常快。


三、软件组合

1、Matlab + Carsim

软件需要 Matlab,最好是 Matlab R2020a + Carsim 2019.1,主要是这两个软件。

Casim 是车辆动力学仿真软件,对 Matlab的版本有要求,如果用其他版本的Matlab可能不兼容,所以推荐版本是 Matlab R2020a + Carsim 2019.1 的组合。

这两个软件是用来做自动驾驶仿真的 ,Matlab 主要用来写控制算法的程序,然后把程序送到 Carsim 仿真。

2、Linux + ROS

如果学得更深入一点,就涉及到 ROS 和 Linux 。


四、书籍推荐

主要推荐两本书。

1、《无人驾驶车辆模型预测控制》龚建伟

第一本是《无人驾驶车辆模型预测控制》,由北京理工大学的龚建伟教授团队编写,这本书在车辆动力学建模方面的内容较为全面,读者在阅读时应持有批判和怀疑的态度,客观审视,理性分析。

2、《车辆动力学及控制》拉杰什·拉贾马尼 (Rajesh Rajamani)

第二本是《车辆动力学及控制》,这是原版《Vehicle Dynamics and Control》的中译本。百度 Apollo 的算法就是基于此书中的原理,可见其内容具有很强的实用性和参考价值。


五、自动驾驶技术路线

下面探讨自动驾驶技术,该技术大致可以分为四个部分:
感知 决策 规划 控制

虽然控制理论在严格意义上来说也具有一定的难度,但相对来说,控制领域更为成熟。通常涉及的控制方法有三种:

  • 比例-积分-微分控制器(Proportional-Integral-Derivative Controller, PID)
  • 线性二次调节器(Linear Quadratic Regulator, LQR)
  • 模型预测控制(Model Predictive Control, MPC)

控制理论相对较为成熟。控制的难点并不在于理论本身,而在于有时候理论计算可能非常精确,但实际操作中却可能出现与理论不符的情况。

控制技术的路线相对来说已经较为明确,方法有限,因此相对来说控制技术更容易学习。


六、感知技术的各研究方向

感知技术的每个研究方向都有其各自的优点和缺点:

1、基于视觉的感知

基于视觉的感知方法,即利用摄像头进行环境感知。

在这一领域,特斯拉的方案尤为著名,特斯拉采用的是纯视觉感知方案。然而,这种方案的局限性在于,在夜间或浓雾等能见度较低的环境条件下,其感知性能会显著下降。

2、基于激光雷达的感知

采用基于激光雷达技术的方案,即使用激光雷达进行环境感知。

大多数创业公司基本上采用的是激光融合技术。缺点就是激光雷达的成本较高。不过,最近激光雷达在成本方面取得了一些突破,未来激光雷达的成本有望降低。个人认为激光雷达技术具有很好的发展前景。

3、多传感器融合感知

a)视觉与其他传感器的融合

主流方案的是视觉融合其他传感器 ,但不是视觉和激光雷达的融合,因为激光雷达太贵了,而是比如毫米波雷达超声波雷达之间的融合,主要因为便宜。

b)加入高精地图的融合

高精地图是一个未来的发展方向,但是现在还进展还比较缓慢,主要是因为高精地图的绘制费时费力,而且可能属涉及国家安全,并不是所有企业和个人都有资格测绘高精地图。

因此,感知模块的技术路线目前尚未明确,各种方法均在探索之中,包括基于视觉的、基于激光的,以及多传感器融合的方法都有研究者在研发。目前来看,这一模块相对而言不够成熟,并且是自动驾驶技术中较难的部分。


七、自动驾驶中的芯片难题

1、芯片计算速度

自动驾驶技术的一个难点在于芯片的计算速度。由于自动驾驶系统需要进行大量计算,其所需的芯片性能大致相当于台式机级别,这一点看似容易实现,因为高性能的台式机芯片,如英特尔和AMD生产的芯片早已普及。但实际上这一要求在自动驾驶领域的应用并非简单事。

2、芯片发热问题

车载芯片的工作环境极其恶劣,远比台式机的环境要严苛得多。

我们在电脑上使用的CPU,需要额外安装风冷或水冷系统来控制其功耗,防止因过热而降频。而在车辆中,芯片的工作环境更为恶劣。

在家中使用电脑时,温度通常只是室温,最多达到30至40度,而车辆中的芯片却要面对更高的温度问题。如果是燃油车,发动机燃烧时产生的温度极高,可达几百度。即便是电动车,电机和电池在运行时也会产生大量热量,温度同样很高。

3、芯片可靠性要求

此外,车辆在行驶过程中还会遭受震动和冲击 ,这些都可能影响芯片的可靠性。芯片的计算速度慢并不是最严重的问题,最怕的是芯片损坏。在完全自动驾驶的车辆中,一旦芯片损坏,可能会导致灾难性的后果。电脑CPU损坏顶多导致黑屏,但车辆芯片的损坏则可能危及人身安全。

因此,车载芯片对在恶劣环境下的稳定性和抗冲击能力有更高的要求。它们需要在高温环境下稳定工作,同时能够承受突如其来的猛烈冲击,且不能出现故障。这样的技术难度是相当大的。

不过,这些内容与本博客的教程无关,只是顺便提及,我们的教程主要还是讲解控制方面的内容。


八、总结

本篇博客不讲具体的控制算法,只是告诉大家要用哪些工具、软件、书籍,要把这些东西准备好。

1、跨学科挑战与心理准备

在一般的课程中,通常会有一些入门的门槛,也就是说,需要学习过某些特定的课程之后,才能够完全理解这门课程。但在此处不明确指出具体的学习门槛,原因在于涉及的学科范围过于广泛。基本没有任何一门专业能够全面覆盖所有这些学科。因此,无论读者来自哪个学校、哪个专业,后面讲述的内容中必然包含一些不属于所学学科的知识点。因此,需要做好相应的心理准备。这门课程的难度恰恰在于其跨学科的广泛性,涉及的学科领域实在太多了。

2、对待新技术的态度

最后,赠予大家一句忠告:不要盲目崇拜所谓的专家或权威,也不要对书籍和学术论文过于迷信。面对新技术的任何技术性资料,我们都应保持审慎的态度。在学习过程中,不可避免地会遇到一些超出自己舒适区的跨学科知识。尽管博主会尽力将这些内容讲解得简洁明了,但对于某些人来说,可能仍然会有一定的畏惧感。所以有几点比较重要:

  • 第一就是要自信,其实没什么难的。
  • 第二就是要勇敢,勇于探索,这才是最重要的。

特别是在学习新技术时,往往缺乏现成的资料可供查阅,也没有现成的技术博客可供参考,所有的知识和技能都是通过自己一点一滴的努力逐渐积累起来的 。当真正掌握了这些知识,成功攻克了难关之后,会意识到这一切并没有想象中那么困难。任何学科知识,一旦被写入书籍,就意味着它已经被人类掌握。尤其是像控制学这样较为成熟的学科,其实并无可惧之处,尽管它涉及多个学科领域,但仍然不必感到害怕,要对自己充满信心。

从下一篇博客开始正式讲解无人驾驶的控制算法!欢迎关注!


参考资料

【基础】自动驾驶控制算法第一讲 绪论与前期准备


后记:

🌟 感谢您耐心阅读这篇关于 自动驾驶控制算法 | 绪论与前期准备 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客 ,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人 的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

相关推荐
轮到我狗叫了22 分钟前
栈的应用,力扣394.字符串解码力扣946.验证栈序列力扣429.N叉树的层序遍历力扣103.二叉树的锯齿形层序遍历
java·算法·leetcode
pursuit_csdn23 分钟前
力扣 238. 除自身以外数组的乘积
数据结构·算法·leetcode
Wacanda1 小时前
【日志】盛趣面试
笔记
skaiuijing2 小时前
Sparrow系列拓展篇:消息队列和互斥锁等IPC机制的设计
c语言·开发语言·算法·操作系统·arm
Simulink_3 小时前
ROS学习笔记15——Xacro
linux·笔记·学习·机器人·ros
C++忠实粉丝3 小时前
计算机网络socket编程(5)_TCP网络编程实现echo_server
网络·c++·网络协议·tcp/ip·计算机网络·算法
kim56594 小时前
excel版数独游戏(已完成)
算法·游戏·excel·数独
cv君4 小时前
【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦
算法
Ocean☾5 小时前
C语言-详细讲解-P1217 [USACO1.5] 回文质数 Prime Palindromes
c语言·数据结构·算法
沐泽Mu5 小时前
嵌入式学习-C嘎嘎-Day08
开发语言·c++·算法