干货分享盘点无人驾驶岗位必备技术博学谷

2024/9/19 来源:不详

无人驾驶和智能汽车技术深受深度学习和计算机视觉发展的影响,理论日趋成熟,正在向产业化落地迈进。

无人驾驶是公认的未来决定经济的技术,无人驾驶产业,集成几乎所有工业和信息领域中高端技术为一身,链条长,关联度强,就业面广,涉及经济领域多,消费拉动大,是国民经济的重要支柱产业。

在工信部和国家发改委印发的《中国汽车产业中长期发展规划》中提出,到年,汽车的辅助驾驶(DA),部分自动驾驶(PA)和有条件自动驾驶(CA)新车装配率要达到80%,其中PA,CA新车装配率要达到25%以上。

挑战博学谷智能无人车三个月训练

无人驾驶和智能汽车是一个综合了多个学科的应用领域,包含机器人学,自动化控制,机器学习,机器视觉,物联网,智能交通,车辆工程,移动通讯等技术。

为了让大学生提前了解并掌握产业界最常用、最实用的先进技术。教育部每年都举办全国大学生智能汽车竞赛,这是国家级的A类赛事,获奖学员可以直接保送名校研究生,获奖选手在校期间就被很多企业提前预定。大赛的目的是希望通过比赛能更好地培养大学生掌握机械电子、运动控制、传感器应用、机器学习、图像识别、SLAM地图构建、自主导航等人工智能领域先进技术。

挑战博学谷智能无人车三个月训练

但是由于无人车技术的综合性,能综合应用这些技术的教材却非常少。国内大多数关于无人车和无人驾驶的课程均为入门和科普类型,学员很难真正的完成无人驾驶相关技术的理论入门和编码实践训练,把人工智能技术和SLAM技术应用于真实的产业汽车上。无人驾驶的人才非常稀缺,国内无人驾驶工程师平均薪资月薪超过3万元。

本文针对自动驾驶的就业的岗位,讲述如何入门自动驾驶技术,以及自动驾驶技术都有哪些方向,以便于读者在未来做好职业规划。

挑战博学谷智能无人车三个月训练

从上面的无人驾驶汽车的结构图上,一个典型的无人驾驶系统,需要的传感器硬件有双/多目相机,深度相机、激光雷达、毫米波雷达,这些传感器获取到的数据需要交给汽车的决策系统、中央计算处理系统来进行决策。

根据国际汽车工程师协会的标准,汽车驾驶一共分为以下6个等级。

L0就是完全由人类驾驶员开车

L1又称辅助驾驶,汽车加装了ADAS(AdvancedDrivingAssistanceSystem)驾驶辅助系统,提供了车道线偏离预警,前撞预警,盲点检测等功能,汽车提醒人类驾驶员,但不干涉驾驶行为。L2为半自动驾驶,系统具备了定速巡航,车道线保持,紧急刹车的功能,这类汽车可以进行简单的自动控制驾驶。

L3级别是一个飞跃,汽车已经完成了利用传感器感知周围环境的自动驾驶能力,系统已经完全能够识别出直线、弯道、红绿灯、限速路牌,路上行走奔跑的人猫狗等等各种环境。但是在一些特殊的工况下还是需要人类接管。

L4级别的无人驾驶可以在限制的区域或者是特定的环境下,完全自动驾驶,L4的区别是紧急情况下系统可以自行解决,L3的紧急工况还需要人类接管。

L5级别是全自动驾驶,在任意场景,任意环境下都可以实现自动驾驶。L5级别的汽车,已经没有方向盘,没有刹车,没有油门了。

挑战博学谷智能无人车三个月训练

无人驾驶系统的核心框架,主要包含三个方面:感知,规划和控制。

感知是指无人驾驶系统通过传感器从环境中收集信息,换大白话就是,我在哪里,我周围是啥。

规划是指无人驾驶系统为了达到一个目的地要做出决策和计划的过程。大白话就是,givemeaplan。

控制是指根据上面感知和规划的内容,合理的控制油门,方向盘和刹车的过程。大白话就是,告诉我每一步我该怎么做。

挑战博学谷智能无人车三个月训练

要注意的是,上面的三个方面不是割裂开的,是互相影响,实时反馈和变化的。要打造一个无人驾驶的系统,必须对上述的每个环节都非常清楚。

总之自动驾驶是一套非常复杂的系统,不过幸运的是,开源社区已经提供了大多数常见问题的解决方案给我们。大家只需要多加动手,多思考,自己跑通整套的无人驾驶系统也不是特别困难。

那么个人想做无人驾驶开发,需要学习什么样的内容呢?

Linux

汽车的中央处理系统需要一个稳定的计算平台,Linux操作系统是很多顶级汽车制造商首选的汽车开源软件平台。它已经取代无数专有或封闭的操作系统。许多全球领先的汽车制造商将Linux作为操作系统,Linux已经存在了几十年,是非常稳定的高性能计算机操作系统。linux其实不难,linux是个工具,只要你多用,自然就熟悉了。

为了和机器人操作系统ROS兼容建议大家直接安装Ubuntu18.04或者20.04来熟悉linux。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:命令行和shell命令

学习内容:常见linux命令,网络操作,用户和权限操作,系统命令操作

ROS

在无人驾驶中,我们需要综合应用各类算法,包括感知、定位、全局路径规划等算法。同时还要对车辆本身的各种硬件进行交互控制,包括油门、方向盘、摄像头,激光雷达,里程计等。我们需要一个操作系统来管理这么多复杂的工作,无人驾驶汽车就是一个特殊的机器人,ROS(机器人操作系统)可以很好的帮助我们解决这些问题。ROS可以通过点对点的传输形式或是广播的形式来做信号传输。百度的阿波罗无人驾驶系统就是在ROS的基础上进行扩展开发的。

挑战博学谷智能无人车三个月训练

ROS还提供了非常丰富的调试和仿真开发工具。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:ros开发环境,ros架构,topic,service,ros消息机制,日志,params和roslaunch,tf坐标变换和urdf仿真

定位系统

定位是无人驾驶的重要内容,核心就是解决我在哪,我要去哪的问题。

定位目前有两种比较成熟的技术,一种是采用三角定位法,使用GPS或者基站的方式定位,一种是使用slam算法基于视觉或者激光雷达方式的定位。

GPS原理是基于卫星的三角定位,室内环境我们可以用uwb芯片在室内模拟gps的开发。

挑战博学谷智能无人车三个月训练

目前SLAM(SimultaneousLocalizationandMapping,即时定位与地图构建)也是非常常见的定位技术,有激光SLAM和视觉SLAM之分。激光slam使用雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。

挑战博学谷智能无人车三个月训练

眼睛是人类获取外界信息的主要来源,视觉SLAM也具有类似特点,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:梯度下降定位算法,gmapping,orbslam

传感器融合算法

多传感器融合可显著提高系统的冗余度和容错性,从而保证决策的快速性和正确性,是无人驾驶的必然趋势。各种传感器性能各有优劣,在不同的应用场景里都可以发挥独特的优势,仅依靠单一或少数传感器难以完成无人驾驶的使命。

特斯拉为了成本考虑不使用激光雷达进行自动驾驶,所以特斯拉经常跟白色的卡车过不去。

之前就有一次著名的自动驾驶事故,主要原因是特斯拉没有做好传感器融合融合的工作。视觉系统认为这么大一块白色一定是一朵白云,毫米波雷达看到底下有一大块空间,认为可能是一个悬空的交通标识符。

挑战博学谷智能无人车三个月训练

最终两个传感器融合的结果就是可以通过。车辆未识别到横穿马路的一辆白色卡车,直接“尝试”从其下方钻过,导致车主不幸身亡。

现在美国很多有白色卡车的车主,特地贴上一个醒目的标签,让特斯拉别撞自己。

挑战博学谷智能无人车三个月训练

传感器融合算法在定位中也广泛使用,通过IMU和轮速计,得到车辆初始的位置,而GPS则可以不断纠偏,把错误率控制在一定的范围,比如GPS是厘米级的,那么精度就能保证在厘米级别,同时再加上激光雷达和高精地图的匹配,得出一个最终的很精准的位置。

传感器融合主要使用的技术就是概率论和卡尔曼滤波。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:激光雷达驱动,双目相机,概率论,贝叶斯概率,卡尔曼滤波,扩展卡尔曼滤波

车辆模型和控制

要想精准的控制小车,必须要熟悉闭环的控制理论。

通过运动控制,我们可以实现让车开的像老司机一样。

对自动驾驶来说,控制就是指使用方向盘、油门和刹车,将车驾驶到期望的位置。我们开车在十字路口或拐弯时候,可以凭着直觉和经验来决定拐弯的角度大小,加速的时机,以及是否需要刹车等。我们需要将这种直觉教给计算机。

我们经常把控制算法称之为控制器,PID控制器就是最常见、最基础的控制器之一。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:控制论,pid控制器,Twiddle调校最优解

路径规划

规划是自动驾驶系统中重要的一环,它的主要目的是:接收原始/预处理的外界信息,根据无人车行驶的目的地,规划出无人车的运动轨迹。根据对环境信息的掌握程度不同,路径规划可分为全局路径规划和局部路径规划。

大家要掌握A搜索算法等常用路径规划算法。A搜索算法在自动驾驶领域多个层面都有应用,是经典的离散空间路径搜索算法。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:有向图,广度优先搜索算法,路径规划算法,A*算法

传统计算机视觉

机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程语言:Python,c++,opencv

学习内容:图像变换,颜色空间,颜色过滤,二值化,卷积变换,边缘和轮廓提取,模板匹配,背景消除

卷积神经网络

卷积神经网络是一种特殊的神经网络结构,是自动驾驶汽车、人脸识别系统等领域有着广泛的应用,可以完成图像的侦测,识别,分割等功能

识别,侦测:

挑战博学谷智能无人车三个月训练

物体分割:

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程:C/C++,Python,opencv,TensorFlow

学习内容:需要机器学习的基本算法(降维、分类、回归等);需要学习深度学习,深度学习框架;学习计算机视觉和图像处理的常用方法(物体检测、跟踪、分割、分类识别等)。

行为克隆和强化学习

深度学习和强化学习在无人驾驶领域扮演着重要的角色。

深度学习提供了感知能力,但是缺乏一定的决策能力

强化学习提供了决策能力,非常适合做无人车决策规划

挑战博学谷智能无人车三个月训练

开发环境:Linux

编程:C/C++,Python,opencv,TensorFlow

学习内容:行为克隆,复现Nvidia论文

无人驾驶仿真技术

无人驾驶需要使用各种各样的传感器,学习成本较高,为了能低成本的学习无人驾驶技术,我们需要能够自主搭建无人驾驶的仿真环境。仿真环境可以基于合成的数据,对环境、感知及车辆进行模拟,我们可以模拟激光雷达,模拟图像视觉的识别,通过仿真环境开发和验证算法。

挑战博学谷智能无人车三个月训练挑战博学谷智能无人车三个月训练

开发环境:Linux

编程:C/C++,Python,opencv,TensorFlow

学习内容:webots,unity,ros

针对以上课程内容我们邀请一线无人驾驶科研团队负责人,全国智能车竞赛的指导专家,丰富教学经验的资深讲师。共同制作了一套课程,通过本课程,学员可以系统的学习,无人驾驶系统的感知,规划和运动控制算法,掌握ROS机器人操作系统编程,学习并实践多种传感器融合算法,使用机器学习、深度学习和强化学习等方法,把人工智能应用于实际的无人驾驶和竞赛中。

考虑到学习的难度曲线,课程零基础入门,课程采用python去编写上位机和ros进行运动控制,待学员对整体结构有一定的认识,能完整跑通完整slam算法和无人驾驶相关流程后。再去开始学习c++课程,讲解下位机和硬件,芯片控制,驱动开发相关的内容。

转载请注明:
http://www.3g-city.net/gjyzl/7875.html
  • 上一篇文章:

  • 下一篇文章:
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有2014-2024 冀ICP备19027023号-6
    今天是: