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

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

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

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

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

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

文章目录

  • 引言
  • 一、谨慎、批判、怀疑的态度
  • 二、常用工具
    • 1、Google
    • 2、Github
  • 三、软件组合
    • 1、Matlab + Carsim
    • 2、Linux + ROS
  • 四、书籍推荐
    • 1、《无人驾驶车辆模型预测控制》龚建伟
    • 2、《车辆动力学及控制》拉杰什·拉贾马尼 (Rajesh Rajamani)
  • 五、自动驾驶技术路线
  • 六、感知技术的各研究方向
    • 1、基于视觉的感知
    • 2、基于激光雷达的感知
    • 3、多传感器融合感知
      • a)视觉与其他传感器的融合
      • b)加入高精地图的融合
  • 七、自动驾驶中的芯片难题
    • 1、芯片计算速度
    • 2、芯片发热问题
    • 3、芯片可靠性要求
  • 八、总结
    • 1、跨学科挑战与心理准备
    • 2、对待新技术的态度
  • 参考资料


引言

  各位小伙伴们大家好,本篇博客开一个新的系列,自动驾驶控制算法。内容整理自 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、对待新技术的态度

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

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

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

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


参考资料

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


后记:

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/403324.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROW_NUMBER(), RANK(), DENSE_RANK() SQL排序函数图文详解

ROW_NUMBER(), RANK(), DENSE_RANK() ROW_NUMBER(): 为结果集中的每一行分配唯一的连续编号。即使有重复的值,ROW_NUMBER() 也会为它们分配不同的序号。 SELECT column_name, ROW_NUMBER() OVER (ORDER BY column_name) AS row_num FROM table_name;2. RANK(): 对结…

2-68 基于matlab的小波分解子模式和盒维数的车型识别程序

基于matlab的小波分解子模式和盒维数的车型识别程序,可以选择不同车型,包括小车、中车、大车。GUI可视化界面操作,已包括多种图片。程序已调通,可直接运行。 2-68 小波分解子模式和盒维数 - 小红书 (xiaohongshu.com)

RabbitMQ实现多线程处理接收消息

前言:在使用RabbitListener注解来指定消费方法的时候,默认情况是单线程去监听队列,但是这个如果在高并发的场景中会出现很多个任务,但是每次只消费一个消息,就会很缓慢。单线程处理消息容易引起消息处理缓慢&#xff0…

深度学习(YOLO、DETR) 十折交叉验证

二:交叉验证 在 K 折验证之前最常用的验证方法就是交叉验证,即把数据划分为训练集、验证集和测试集。一般的划分比例为 7:1:2。但如何合理的抽取样本就成为了使用交叉验证的难点,不同的抽取方法会导致截然不同的训练性…

c语言学习,malloc()函数分析

1:malloc() 函数说明: 申请配置size大小内存空间 2:函数原型: void *malloc(size_t size) 3:函数参数: 参数size,为申请内存大小 4:返回值: 配置成功则返回指针&#…

Nginx实验

编译安装 Nginx 准备rhel9环境 下载安装包nginx-1.24.0(xftp)/复制下载链接 (nginx.org——>download) 解压 [rootnginx nginx-1.24.0]# tar zxf nginx-1.24.0.tar.gz [rootnginx nginx-1.24.0]#tar zxf nginx-1.24.0.tar.…

[掘金社区]自动签到脚本

直接上脚本 脚本临时写的,今天是运行的第一天,虽然报错编码,但是签到、抽奖都成功了。 下面是修改了之后的版本。 # -*- coding: utf-8 -*- import requests import logginglogging.basicConfig(levellogging.INFO)def check_sign_in_status(base_url,h…

Clobbering DOM attributes to bypass HTML filters

目录 寻找注入点 代码分析 payload构造 注入结果 寻找注入点 DOM破坏肯定是出现在js文件中,我们首先来看源码 /resources/labheader/js/labHeader.js这个源码没什么问题我们重点关注在下面两个源码上 /resources/js/loadCommentsWithHtmlJanitor.js这个源码中重…

STM32cubeMX配置Systick的bug

STM32cubeMX版本:6.11.0 现象 STM32cubeMX配置Systick的时钟,不管选择不分频 还是8分频。 生成的代码都是一样的,代码都是不分频。 即不管选择不分频还是8分频,Systick都是使用的系统时钟 函数调用 HAL_Init() → HAL_Init…

HarmonyOS开发案例:列表场景实例-TaskPool

介绍 本实例通过列表场景实例讲解,介绍在TaskPool线程中操作关系型数据库的方法,涵盖单条插入、批量插入、删除和查询操作。 效果图预览 使用说明 进入页面有insert(单条数据插入)、batch insert(批量数据插入)、query(查询操作)三个按钮,…

【安卓】播放多媒体文件

文章目录 播放音频播放视频 播放音频 在Android中播放音频文件一般是使用MediaPlayer类实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使播放音乐的工作变得十分简单。 MediaPlayer类中常用的控制方法。 常用方法名描述setDataSource()设…

使用html+css+js实现完整的登录注册页面

在这篇博客中,我们将讨论如何使用简单的 HTML 和 CSS 构建一个登录与注册页面。这个页面包含两个主要部分:登录界面和注册界面。我们还会展示如何通过 JavaScript 切换这两个部分的显示状态。 页面结构 我们将创建一个页面,其中包含两个主要…

CSS3-新特性

1.新增选择器 1.属性选择器 2.结构伪类选择器 3.伪元素选择器(重点) 4.CSS3 盒子模型 2.CSS3滤镜filter 3.CSS3 calc 函数 4.CSS3 过渡(重点)

95后医疗行业女性转型记:如何成功踏入人工智能项目管理领域

分享目录 一、自我介绍,给大家分享一下拿到offer的心情吧 二、在整个求职转型陪跑营里,你收获最大的三个点是什么? 三、求职转行过程中,你遇到了哪些困难?七芊老师和强哥是怎么帮助你的?你是怎么走过来的…

seata的使用(SpringBoot项目整合seata)

文章目录 1、解压 seata-server-1.7.1.zip2、启动 双击 seata-server.bat3、启动 seata 控制台用户界面4、所有分布式事务相关数据库要有undo-log5、项目引入seata依赖6、项目添加seata配置7、代码实现: 1、解压 seata-server-1.7.1.zip 2、启动 双击 seata-server.…

Polars简明基础教程十二:可视化(二)

设置绘图后端 我们可以使用 hv.extension 更改绘图后端。但是,我们不在此处运行此单元格,因为它会导致下面的 Matplotlib/Seaborn 图表无法渲染。 注释: hvPlot 利用 HoloViews 库来构建图表,并且可以使用多个后端进行渲染&…

微信小程序骨架屏

骨架屏是常用的一种优化方案,针对于页面还未加载完时给用户的一种反馈方式。如果自己要写骨架屏有点复杂因为页面的元素过多且不稳定,这边直接使用微信开发工具生成骨架屏。也不只有微信开发工具有像常用的抖音开发工具,字节开发工具都有对应…

使用MicroApp重构旧项目

前言 随着技术的飞速发展,我们公司内部一个基于“上古神器” jQuery PHP 构建的十年历史老项目已显力不从心,技术非常老旧且维护成本高昂,其实已经无数次想要重构,但是苦于历史遗留原因以及业务的稳定性而一直难以下手&#xff0…

Tomcat的核心文件讲解

参考视频&#xff1a;对应视频 server.xml中的以下部分可修改&#xff1a; 1.connector标签里的port可以修改。--修改端口号 Tomcat默认端口号&#xff1a;8080 <Connector connectionTimeout"20000" maxParameterCount"1000"port"8080" prot…

调研-音视频

音视频 基础概念主要内容音频基础概念音频量化过程音频压缩技术视频基础概念视频bug视频编码H264视频像素格式YUVRGB参考文献基础概念 ● 实时音视频应用环节 ○ 采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。 主要内容 音频 基础概念 三要素:音调(音频)、…