自动驾驶系列(一) - 自动驾驶系统涉及哪些技术_自动驾驶系统涉及到的技术-程序员宅基地

技术标签: 自动驾驶  

  • 个人主页: 同学来啦
  • 版权: 本文由【同学来啦】原创、在CSDN首发、需要转载请联系博主
  • 如果文章对你有帮助,欢迎关注、点赞、收藏和订阅专栏哦


自动驾驶作为一个庞杂的系统工程,其所涉及的技术点比较多,本文主要从硬件和软件两方面简要谈谈自动驾驶汽车所涉及的相关技术,希望能够对您有所帮助。

一、硬件部分

对于自动驾驶汽车而言,如果没有硬件而单独谈自动驾驶,那是毫无意义的。下图我们将用一张图来表示自动驾驶研究所需要的各种硬件。
在这里插入图片描述

对于图中传感器的含义如下:

  • 77GHz radar:77GHz毫米波雷达传感器
  • Multi-layer laser scanner:多层激光扫描仪
  • Brake actuator:制动执行器
  • APS signal:自动驾驶系统(Auto Pilot System)信号
  • Gear shift actuator:换档执行器
  • DMI:插电式混合动力汽车的系统
  • 2D laser scanner:二维激光扫描仪
  • IMU:惯性测量单元
  • Vehicle controller:汽车控制器
  • INS solution:惯性导航系统解决方案
  • GPS antenna:GPS天线
  • Velodyne:Velodyne三维激光雷达
  • Camera:相机
  • Steering actuator:转向执行器

其实,上述图中传感器并不一定会同时出现在一辆车上。对于某种传感器存在与否,视该车辆需要何种任务而定。如果只需要完成高速公路的自动驾驶,类似特斯拉的AutoPilot功能,那根本不需要使用到激光传感器;如果你需要完成城区路段的自动驾驶,没有激光传感器,仅靠视觉是很困难的。

1、汽车

既然要做自动驾驶,汽车当然是必不可少的东西。能不选纯汽油车就别选。其原因主要有两个方面:
1)整个自动驾驶系统所消耗的电量巨大,混动和纯电动在这方面具有明显优势;
2)发动机的底层控制算法相比于电机复杂太多,与其花大量时间在标定和调试底层上,不如直接选用电动车研究更高层的算法。
在这里插入图片描述

2、控制器

在前期算法预研阶段,推荐使用工控机(Industrial PC,IPC)作为最直接的控制器解决方案。因为工控机相比于嵌入式设备更稳定、可靠,社区支持及配套的软件也更丰富。
百度开源的Apollo推荐了一款包含GPU的工控机,型号为 Nuvo-5095GC,如下图。在这里插入图片描述
当算法研究得较为成熟时,就可以将嵌入式系统作为控制器,比如Audi和TTTech共同研发的zFAS,目前已经应用在最新款Audi A8上量产车上了。
在这里插入图片描述

3、CAN卡

工控机与汽车底盘的交互必须通过专门的语言——CAN。从底盘获取当前车速及方向盘转角等信息,需要解析底盘发到CAN总线上的数据;工控机通过传感器的信息计算得到方向盘转角以及期望车速后,也要通过 CAN卡 将消息转码成底盘可以识别的信号,底盘进而做出响应。CAN卡可以直接安装在工控机中,然后通过外部接口与CAN总线相连。
在这里插入图片描述

4、GPS+IMU

对于人类开车,从A点到B点,需要知道A点到B点的地图,以及自己当前所处的位置,这样才能知道行驶到下一个路口是右转还是直行。
无人驾驶系统也一样,依靠GPS+IMU就能提供经纬度、航向、横滚角速度、角加速度等丰富信息,这些信息有助于自动驾驶汽车的定位和决策控制。
在这里插入图片描述

5、感知传感器

感知传感器包括视觉传感器、激光传感器、雷达传感器等类型。
1)视觉传感器:即摄像头,摄像头分为单目视觉和双目(立体)视觉两类。比较知名的视觉传感器提供商有以色列的Mobileye,加拿大的PointGrey,德国的Pike等。
2)激光传感器:分为单线和多线。每多一线,成本相应上涨,当然检测效果也相对更为出色。比较知名的激光传感器提供商有美国的Velodyne和Quanergy,德国的Ibeo等。国内有速腾聚创和禾赛科技。
3)雷达传感器:雷达传感器已经在汽车上得到了广泛使用,应该是车厂Tier1的强项。知名的供应商当然是博世、德尔福、电装等。

二、软件部分

智能驾驶汽车是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体。

自动驾驶的关键技术依次可以分为环境感知,行为决策,路径规划和运动控制四大部分,如下图所示。
在这里插入图片描述

1、环境感知

自动驾驶的第一步就是环境信息和车内信息的采集与处理,是智能车辆自主行驶的基础和前提。获取周围的环境信息。这方面涉及到道路边界检测、车辆检测、行人检测等技术,即上面各位所说的传感器技术,所用到的传感器一般都会有激光测距仪、视频摄像头、车载雷达、速度和加速度传感器……这部分也是一台智能车辆最烧钱的部分,现在国内各大高校里动辄上百万甚至几百万的试验车,都是基于普通的轿车开发的,车子本身并不十分贵。
但是感知技术并不是说我有钱加装个上百万的雷达,搞几个高清摄像头就可以的,由于各个传感器在设计的时候有各自的局限性,单个传感器满足不了各种工况下的精确感知,想要车辆在各种环境下平稳运行,就需要运用到多传感器融合技术,该技术也是环境感知这一大类技术的关键技术所在,目前国内这方面和国外的主要差距也集中在多传感器融合方面。

2、行为决策

在辅助驾驶或者自动驾驶技术中,完成了感知部分,接下来需要做的是,依据上一步感知系统获取的信息来进行决策判断,确定适当工作模型,制定相应控制策略。这部分的功能类似于给车辆下达相应的任务。例如在车道保持、车道偏离预警、车距保持,障碍物警告等系统中,需要预测本车与其他车辆、车道、行人等在未来一段时间内的状态,先进的决策理论包括模糊推理、强化学习、神经网络和贝叶斯网络技术等。

3、路径规划

智能车辆有了行驶任务,智能车辆的路径规划就是在进行环境信息感知并确定车辆在环境中位置的基础上,按照一定的搜索算法,找出一条可通行的路径,进而实现智能车辆的自主导航。
路径规划的方法根据智能车辆工作环境信息的完整程度,可分为两大类:
1)基于完整环境信息的全局路径规划方法
例如,从上海到北京有很多条路,规划处一条作为行驶路线即为全局规划。如栅格法、可视图法、拓扑法、自由空间法、神经网络法等静态路径规划算法。
2)基于传感器实时获取环境信息的局部路径规划方法
例如,在全局规划好的上海到北京的那条路线上会有其他车辆或者障碍物,想要避过这些障碍物或者车辆,需要转向调整车道,这就是局部路径规划。局部路径规划的方法包括:人工势场法、矢量域直方图法、虚拟力场法、遗传算法等动态路径规划算法等。

4、运动控制

在完成行驶路径规划之后,接下来就需要控制车辆沿着期望的轨迹行驶,即为运动控制部分需要完成的内容。

运动控制包括横向控制(即转向控制)和纵向控制(即速度控制),现在研究比较多的是横向控制,所运用的方法主要包括滑膜控制、模糊控制、神经网络控制、最优控制、自适应控制和纯跟踪控制等。

通俗地讲,横向控制为给定一个速度,通过控制转向达到车辆沿着预定轨迹行驶的目的;而纵向控制目的是为了满足车辆行驶过程中的速度要求,有时候还需要配合横向控制达到满足车辆在轨迹跟踪的同时,还需要满足安全性、稳定性和舒适性的目的。因为车辆是一个特别复杂的系统,横向、纵向和垂向都有耦合关系的存在,因此就需要对智能车辆进行横、纵向,甚至横、纵、垂向的协同控制。由于其耦合关系的复杂性,所以说智能车辆运动控制的协同控制技术,也是该部分的技术难点。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhouqiping/article/details/124333932

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签