Apollo进阶课程 ② | 开源模块讲解(上)

目录

1)无人驾驶车介绍

2)高精地图

3)定位

4)感知

5)轨迹规划

6)控制

7)云端


原文链接:Apollo进阶课程 ② | 开源模块讲解(上)

Apollo自动驾驶进阶课程是由百度Apollo联合北京大学共同开设的课程,邀请百度Apollo开放平台研发团队的中美专家联合讲授。

上一期,我们为大家推送了课程第①讲——《自动驾驶行业概述》。本周,阿波君根据Apollo产品负责人David.Zhou所讲授的第二课《Apollo开源模块讲解(上)》进行了要点整理,方便更多未到现场/没有时间观看视频的老铁们阅读。

话不多说,欢迎各位开发者一起进入进阶课程第二期。


1)无人驾驶车介绍

无人驾驶对安全精度和各种复杂技术的集成程度要求非常高,因此到目前为止,在民用领域里,无人驾驶车辆的技术难度之高是数一数二的。

做一辆无人驾驶车肯定要比做一个手机APP要复杂很多倍。无人驾驶车到底包括哪些核心技术呢,接下来我将为大家一一讲解。

备受大家热捧的无人驾驶车并不是一辆普通的车,因为无人驾驶的车一定要是线控车。所谓线控(by-wire),就是说这个车是能被电脑控制的。车的方向盘和轮子之间是有电机连接的,方向盘传动到电机上,然后电机去控制车轮,这样的话电脑就可以通过控制电机的方式来控制这个车轮。

为了保证无人驾驶车的安全性,当它在路上行驶的时候,必须做到它跟云端是有连接的。无人驾驶车并不需要时时跟云端汇报接下来会如何处理,而是要告诉云端它的位置以及行驶规划。


2)高精地图

对于无人驾驶来说,在马路上行驶一定要有高精地图,这里所说的高精地图跟我们平时开车用的导航地图有什么不同呢?

所谓的导航地图就是我们平时使用的百度地图、谷歌地图等,在导航地图上,它会告诉你怎么从A点到B点,然后有几条路,预计需要用多长时间等信息。

而高精地图相对于导航地图来说,最大的特点就是高精度,它是需要做到车道线级别的。也就是说,高精地图不光要知道你在哪条路上,还需要知道你在这个路的哪条车道线上,因为只有这样才能准确地告诉无人驾驶车应该在哪个车道行驶,接下来应该怎么拐。

高精地图对于无人车来说,具有非同寻常的价值。

第一,高精地图能够给无人车很多预判的空间当无人车通过高精地图知道前方的路况和交通标识信息后,能够提前做行驶规划,保证了行车的平稳性和经济性。

第二,高精地图能够帮助无人车减少计算量当无人车需要通过路口时,它需要提前感知前方信号灯的状态,这时高精地图就可以帮助它定位到信号灯所在的特定区域,从而有效降低了全范围扫描识别的计算量。

除此以外,高精地图将道路及周围的所有静态障碍物进行收集,减少无人车对静态障碍物的算法处理


3)定位

无人车有了高精地图之后,还需要知道它在地图的什么位置,这里就需要使用定位技术。说到定位,很多人可能最先想到GPS。那么GPS定位的原理是什么呢?其实GPS定位原理实际上就是一个相对定位

每个卫星会不停地发电磁波,当收到电磁波信号之后,根据收到信号的时间与光速算出和卫星之间的距离。有了与四个卫星的距离之后,就可以解一个方程算出所在位置。但由于电离层、反射作用等因素的干扰,GPS定位是有误差的,它的精度只能达到米级对于无人车来说,米级的定位精度是不安全的,为了解决无人车定位问题,还需要其他技术。

GPS定位还有一个问题,它是跳动的GPS定位是每时每刻根据当前的时间去算的,容易出现计算结果不准的情况。为了抹平GPS的跳变,需要用到IMU(惯性导航),一般来说GPS和IMU是一块用的,GPS不停的去给IMU一个方向去校准,然后IMU再给GPS一个方向。

除此之外,无人车在接收不到GPS信号的情况下,需要用到另一个技术——几何定位

几何定位的原理和GPS原理差不多,就是在道路上选几个feature,根据这些feature计算无人车所在的位置。几何定位的精度很高,可以精确地算出无人车所在的位置。所以,目前比较流行的定位技术就是GPS、IMU和几何定位等一系列技术的融合。

为了提高GPS的定位精度,大家又在GPS的基础上发明了RTK技术。手机GPS定位中,手机就是一个移动站,它会经常变动位置。这里所说的RTK,是一个静止站,它同样也收到卫星的信号。无人车与RTK相隔不太远的情况下,对二者之间的干扰信号用差分抹平,就可以认为无人车和RTK收到的信号是一样的。

RTK的应用能让GPS的定位精度达到10厘米,但是RTK技术的应用有个限制,它要求基站与车的距离要在16公里以内。


4)感知

我们人类天生具备感知外界的能力,是因为我们具备各种“传感器”。

无人车想在道路上安全行驶,也必须具备属于它自己的各类传感器去感知外界环境。目前,无人车主要的传感器有摄像头(Camera)、雷达(Radar)和激光雷达(Lidar)。

对于无人车来说,观察信号灯以及一些交通标识都需要对颜色识别

摄像头恰能解决这个问题,它的主要优点是能够辨别颜色,但是它没有对距离的判断的能力因此,实现无人车对外界的感知还需要其他传感器的配合。

雷达是无人车比较重要的传感器之一,它是利用电磁波探测目标的电子设备。

雷达发射电磁波对目标进行照射并接收其回波,由此获得目标至电磁波发射点的距离、距离变化率(径向速度)、方位、高度等信息雷达的应用场景是全天候的,由于电磁波可以饶过一些东西,所以它的准确性并不太高。

雷达还有一个特点,它对于速度判断非常准,而对于静态物体的误报比较多。

激光雷达是目前无人车发展的一个比较核心的技术,它是以发射激光束探测目标的位置、速度等特征量的雷达系统。

激光雷达工作原理是向目标发射探测信号,然后将接收到的从目标反射回来的信号与发射信号进行比较,作适当处理后,就可获得目标的有关信息。

激光雷达的最大优点就是对距离的判断非常精准,但它也有个很大的缺点,就是对环境的要求非常高,比如在雾霾天气里激光雷达的精准度就会降低很多。

激光雷达是一个非常新的技术,在发展无人车之前,它并没有大规模的商业应用场景,因此它的价格非常昂贵。虽然目前激光雷达价格很贵,但它的种类还是挺多的。

大家可能见过无人车上有个不停旋转的Lidar,这种是机械雷达。由于它需要不停旋转,它本身也又大又重,机械损耗较大,容易出现问题。基于机械雷达,大家又发明了一些新的激光雷达,比如MEMS lidar、flash lidar等。

无人车收到各种传感器获取的信息之后,还需要做传感器融合。所谓传感器融合,就是要把每个传感器看到的东西全部都叠加在一起。当所有传感器看到的信息综合在一起,无人车才能够更加全面具体地感知外界环境。


5)轨迹规划

当车辆在路上行驶时,通过传感器获取了周围的信息,接下来就需要知道如何反应。

对于周围的车辆或其他障碍物,无人车是需要避让还是需要停下来,或者需要超越等等,这些都属于约束条件。无人车需要在所有的约束条件中,规划出一条可以走的路线。

无人车的轨迹规划:

一是要满足所有的约束条件。

二是要保证车辆运动的平滑。所谓平滑,是要保证车子的速度不能跳变。

在此基础上,车子的加速度也需要是平滑的。

最终目的是,在人类可感知的范围,车子行驶是顺畅的,没有不平滑不顺的情况。


6)控制

前面我们已经提到,无人车是线控车,而不是一个仅有齿轮组成的集合体。

实现对无人车的控制,我们需要知道踩刹车和减速的关系、踩油门和加速的关系等,当无人车拿到一些控制学参数后,就可以实现电脑对无人车的控制。


7)云端

想要保证无人车是非常安全的,我们必须做到让每一辆无人车成为“有经验的司机”。所谓有经验,就是见过很多路况并且知道如何处理这些路况。

百度在云端后台有个巨大的仿真空间,每一辆无人车可以将自己遇到的复杂路况上传到云端,因此网上就有了一个非常大的数据库。

当无人驾驶的算法有更新时,就可以在云端的仿真场景中跑一下,检验是否能够应对云端的这些路况。这个步骤,就是为了确保每个无人车都称得上是“有经验的司机”。

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

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

相关文章

由浅到深理解ROS(9)- 几个基本概念的理解 坐标系 包

1.坐标系 最常用的就是map,odom,base_link,base_laser坐标系,这也是开始接触gmapping的一些坐标系。 map:地图坐标系,顾名思义,一般设该坐标系为固定坐标系(fixed frame)&#xff…

【POJ - 1698】Alice's Chance(网络流最大流,建图)

题干: Alice, a charming girl, have been dreaming of being a movie star for long. Her chances will come now, for several filmmaking companies invite her to play the chief role in their new films. Unfortunately, all these companies will start mak…

由浅到深理解ROS URDF教程

创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件,不用担心维度等的问题。创建一个my_robot.urdf文件,内容如…

wireshark基本使用及介绍

Wireshark使用 注:本文中使用的wireshark是3.2.2版本 捕获过滤器表达式 下面是常用的捕获过滤器,wireshark中:捕获->捕获过滤器 除此外,还可以指明传输方向,如:src(源方向), …

1.2)深度学习笔记------神经网络的编程基础

目录 1)Binary Classification 2)Logistic Regression 3)Logistic Regression Cost Function 4)Gradient Descent 5)Logistic Regression Gradient Descent(重点) 6)Gradient …

IP、TCP、UDP、HTTP头部信息

IP头部信息 ip报文段格式 版本: 占4位,表明IP协议实现的版本号,当前一般为IPv4,即0100。报头长度 : 占4位,因为头部长度不固定(Option可选部分不固定),所以需要标识…

ROS技术点滴 —— MoveIt!中的运动学插件

MoveIt!是ROS中一个重要的集成化开发平台,由一系列移动操作的功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持众多机器人硬件平台。 MoveIt!中的众多功能都使用插件…

1)机器学习基石笔记Lecture1:The Learning Problem

网上关于机器学习的课程有很多,其中最著名的是吴恩达老师的课程,最近又发现了NTU林轩田老师的《机器学习基石》课程,这门课也很好。课程总共分为4部分,总共分为16节课,今天来记录第一节课。 When Can Machines Learn?…

Apollo进阶课程 ③ | 开源模块讲解(中)

目录 1)ISO-26262概述 2)ISO-26262认证流程 3)ISO-26262优点与缺陷 原文链接:Apollo进阶课程 ③ | 开源模块讲解(中) Apollo自动驾驶进阶课程是由百度Apollo联合北京大学共同开设的课程,邀请…

【CodeForces - 1047C】Enlarge GCD(数学,枚举,预处理打表,思维)

题干: F先生有n个正整数,a1,a2,...,an 他认为这些整数的最大公约数太小了,所以他想通过删除一些整数来扩大它 您的任务是计算需要删除的最小整数数,以便剩余整数的最大公约数大于所有整数的公约数. Input 3 1 2 4…

TS解析文档

TS格式解析 简介: ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts的包是一个一个188字节的包组成,这188字节里面由一个0x47开头的包作为同步。 也就是说,如果你找到了0x47,如果与它相…

2)机器学习基石笔记Lecture2:Learning to Answer Yes/No

目录 0.上节回顾 1. Perceptron Hypothesis Set 2. Perceptron Learning Algorithm(PLA)(重点) 3. Guarantee of PLA(难点) 4. Non-Separable Data 0.上节回顾 第一节课主要讲述了机器学习的定义及机器学习的过程&#xff0…

Google Colab——谷歌免费GPU使用教程

Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究。这款工具现在可以免费使用。Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用!GPU型号是Tesla K80!你可以在上面轻松地跑例如&am…

pyecharts简单使用

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。可以生成很多效果很棒的图表。 pycharts文档 |分割| echarts官网 本文主要介绍pycharts的简单使用 安装 # 安装 1.0.x 以上版本 (需要python3.6及以上) $ …

Ubuntu16.4(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境安装

1. 下载压缩包 文件分享 2. 新建目录并解压 3. 配置环境变量 sudo gedit /etc/bash.bashrc 添加路径并更新路径:(PATH$PATH之间无空格) PATH$PATH://linaro-arm/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/binexport P…

Apollo进阶课程 ④ | 开源模块讲解(下)

目录 1)Apollo平台技术框架 2)Apollo版本迭代 原文链接:​Apollo进阶课程 ④ | 开源模块讲解(下) 上周,阿波君与大家讨论了自动驾驶的核心问题——安全性。本期,我们将为大家具体介绍百度Apo…

SM4 简介

SM4 我国国家密码管理局在20012年公布了无线局域网产品使用的SM4密码算法——商用密码算法。它是分组算法当中的一种,算法特点是设计简沽,结构有特点,安全高效。数据分组长度为128比特,密钥长度为128 比特。加密算法与密钥扩展算法…

九大内置对象

指在JSP的<%%> 和<% %>中可以直接使用的对象&#xff1a;没有特别说明可以开关的默认是开启的 一servlet理论上可以处理多种形式的请求响应形式http只是其中之一所以HttpServletRequest HttpServletResponse分别是ServletRequest和ServletResponse的之类 二 Http…

3)机器学习基石笔记 Lecture3:Types of Learning

目录 1&#xff09;Learning with Different Output Space Y 2&#xff09;Learning with Different Data Label 3&#xff09;Learning with Different Protocol 4&#xff09;Learning with Different Input Space X 在上一节课中&#xff0c;我们学到了第一个机器学习…

【BZOJ - 3436】小K的农场(差分约束)

题干&#xff1a; 背景 小K是个特么喜欢玩MC的孩纸。。。 描述 小K在MC里面建立很多很多的农场&#xff0c;总共n个&#xff0c;以至于他自己都忘记了每个农场中种植作物的具体数量了&#xff0c;他只记得 一些含糊的信息&#xff08;共m个&#xff09;&#xff0c;以下列…