自动驾驶科普:一辆无人车到底是怎样工作的?

简介:
本文来自AI新媒体量子位(QbitAI)

你可能对“自动驾驶”一词并不陌生了,但是否知道无人车是怎样在没有司机的情况下到达目的地的?

今天,Udacity的员工David Silver在外媒Medium上发文,科普了Udacity自动驾驶技术中的四个子系统。这份介绍轻快简明,条理清晰,是篇不错的自动驾驶入门读物。量子位编译整理,与大家分享。

在我工作的Udacity有一辆无人车,我们叫她Carla。

整体来说,Carla上主要有四个子系统,分别为传感(Sensor)系统,感知(Perception)系统,决策(Planning)系统和控制(Control)系统。接下来我将为大家一一讲解Udacity的无人车是如何通过这些技术工作的。

 每个系统中都包含很多小环节

传感(Sennor)

Carla的传感器系统中含有从环境中收集数据的物理硬件。

例如,Carla挡风玻璃的顶部安装了一些相机,用户能根据需要调整相机的数量。通常情况下,1到3个相机会排成一排。

 挡风玻璃上的相机

Calar自带一个嵌入至保险杠的前置雷达,此外,车顶上还安装了一个360度激光雷达,是收集环境数据的主力。

 激光雷达传感器(左)和采集到的点云数据(右)

有时Carla也会用到其他传感器,比如GPS、IMU和超声波雷达等。从这些传感器中收集到的数据汇将交由感知器处理。

感知(Perception)

Carla的感知子系统负责将原始的传感器数据转换成有意义的环境信息。根据功能不同,我们可将感知系统的组件分为两个区块:检测模块与定位模块,两者各司其职。

检测模块需要从传感器的环境信息中检测车辆外部的物体,包括信号灯的检测与分类、物体检测与追踪和自由空间探测。

 车辆、行人、信号灯、指示牌……不同类别的物体被不同颜色的检测框圈起

定位模块告诉我们车辆的具体位置,这是一项听起来容易但做起来难的事。Carla自带的全球定位系统(GPS)帮助准确定位,但GPS的精度只能精确到1至2米,对无人车来说,这种精度远远达不到上路的要求。一辆自认为在车道中心行驶的车,如果加上这一两米的误差,可能会撞到行人或路崖。

所以,仅用GPS定位还不够。Carla结合了高精地图、激光雷达传感器和复杂的数学算法,将误差缩减到10厘米内。激光雷达先扫描外部环境,将看到的与高精地图做对比,最后找到精确的定位。

 Carla将自己定位在一张高精地图上

之后,感知系统将其结果输出至决策系统上。

决策(Planning)

Carla的决策系统简明易懂,决策装置构建了一系列路径点,Carla只需沿路追寻这些点即可。值得注意的是,每个路径点都有指定位置,并且与目标速度相关联。当Carla经过路径点时,将与位置与速度相匹配。

同时,决策系统还负责根据感知器提供的数据预测其他车辆的运动轨迹,不断重新规划调整路径点的位置。

举个例子,如果决策系统预测Carla前面的车辆会减速,则决策系统会让Carla也走得慢点。之后,决策系统会根据轨迹生成组件创建新的减速路径点。

对策系统对信号灯和交通标志等信息的处理也是用这种方法计算的。

一旦决策系统已经生成了新路径点路径,那这些路径会被传送至最后一个子系统,即控制系统。

控制(Control)

控制系统通过加速或刹车的方式驱动车辆行进,并且掌握第一手的车辆运行数据。这其中有些纯电子数据,有些则是物理数据。例如,当你坐在Carla里时,你会发现它自身也带方向盘。

控制系统将路径点作为输入信息,在决策系统的帮助下控制车辆速度。之后,控制系统将路径点和速度等信息传递给控制器。为了实现预定轨迹,控制器需要规划方向盘、加速、刹车等部件的动作。

控制系统可用很多算法将路径点映射成方向盘和油门的相关指令,这些不同的算法被称为控制器。Carla用的是简单的比例-积分-微分控制器(PID控制器),当然还有其他复杂的控制器可供选择。

总结

我们将上面的四个系统的功能总结一下,可以梳理出Udacity自动驾驶汽车的工作流程。

首先,传感系统从Carla的相机、雷达和激光雷达中收集环境数据交于感知系统,感知系统利用这些数据在环境中检测物体并定位。之后,决策系统利用环境数据创建Carla的行进轨道。控制器通过方向盘、油门和刹车等保证车辆在预定轨道上行驶。

Carla进行了很多测试,她已经可以从山景城跑到旧金山了。Udacity的学生也可以在课程结束时把设计的代码加载到Carla上,看看在测试轨道上的驾驶情况如何。

我们为Carla自豪。

本文作者:安妮
原文发布时间:2017-09-07 
相关文章
|
Linux Perl
Linux技巧|Awk 比较运算符
在 Awk 中,使用比较运算符(如 >, <, ==, != 等)可方便地过滤文本和字符串。本文通过示例展示了如何处理食品购物清单,标记数量小于或等于 20 的商品。 Awk 语法 `expression { actions; }` 用于根据条件执行操作,如在满足条件的行末尾添加特殊标记。例如,`$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; }` 会在数量小于或等于 20 的行后添加 "TRUE"。继续探索 Awk 的比较运算符以进行更复杂的文本处理。
|
运维 大数据 数据建模
连载7:阿里巴巴大数据实践:OneData模型实施介绍
如何从具体的需求或项目转换为可实施的解决方案,如何进行需求分析、架构设计、详细模型设计等,则是模型实施过程中讨论的内容。
6510 1
连载7:阿里巴巴大数据实践:OneData模型实施介绍
|
存储 NoSQL 数据处理
高效数据处理与后端优化:现代技术实践与挑战
在当今数字化快速发展的环境下,高效的数据处理成为了后端开发的核心挑战之一。本文探讨了现代后端技术中的数据处理方法与优化策略,深入分析了面临的挑战及其解决方案,旨在为开发者提供实用的指导与技术思路。【7月更文挑战第4天】
173 1
|
9月前
|
存储 人工智能 编译器
【AI系统】算子手工优化
本文深入探讨了手写算子调度的关键因素及高性能算子库的介绍,通过计算分析指标和 RoofLine 模型评估计算与访存瓶颈,提出了循环、指令、存储三大优化策略,并介绍了 TVM 和 Triton 两种 DSL 开发算子的方法及其在实际应用中的表现。
431 2
【AI系统】算子手工优化
|
数据可视化 关系型数据库 数据库
告别破解版烦恼!Navicat Premium Lite免费版它来了
作为一名后端开发者,在开发过程中使用可视化工具查看数据库中的数据是我们的基本操作。Navicat作为一款广受欢迎的数据库连接工具,深受我们喜爱和挑战。我们喜爱它强大的功能和直观的操作习惯,但又对它的收费模式感到不满。个人使用可以通过破解解决,然而在公司环境下,由于侵权问题,我们通常被禁止使用,这令我们感到很不便。然而,最近Navicat推出了一款免费的产品——Navicat Premium Lite。
2485 1
告别破解版烦恼!Navicat Premium Lite免费版它来了
|
机器学习/深度学习 人工智能 算法
AI与创造力的碰撞:探索机器学习在艺术创作中的角色
【8月更文挑战第9天】当科技遇见艺术,会擦出怎样的火花?本文将带您一探究竟,深入了解人工智能尤其是机器学习如何在现代和当代艺术创作中扮演着日益重要的角色。我们将通过具体实例探讨AI如何助力艺术家突破创意限制,以及这一技术趋势对艺术领域未来的可能影响。
|
机器学习/深度学习 人工智能 PyTorch
PyTorch快速入门与深度学习模型训练
这篇文章是PyTorch的入门指南,介绍了PyTorch作为深度学习框架的基本概念和使用方法。内容包括PyTorch的背景、基础操作如张量创建、运算、自动微分,以及如何构建和训练简单的全连接神经网络模型进行MNIST手写数字识别。通过这篇文章,读者可以快速了解如何在PyTorch中搭建和训练深度学习模型。
661 4
Windbg双击调试(真机WIN10+虚拟机WIN10)
Windbg双击调试(真机WIN10+虚拟机WIN10)
329 0
|
存储 安全 Java
基于springboot的新闻资讯系统的设计与实现
基于springboot的新闻资讯系统的设计与实现
|
机器学习/深度学习 搜索推荐 数据挖掘
多模态融合的难点
【2月更文挑战第17天】多模态融合的难点
576 1
多模态融合的难点