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

简介:
本文来自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 
相关文章
|
网络安全 开发工具
SSH断开连接时长控制ServerAliveInterval
SSH断开连接时长控制ServerAliveInterval
1071 0
|
移动开发 缓存 前端开发
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
6873 0
推荐一大波让你直呼哇塞的Canvas库【值得收藏】
Threejs实现模拟河流,水面水流,水管水流,海面
Threejs实现模拟河流,水面水流,水管水流,海面
4617 0
Threejs实现模拟河流,水面水流,水管水流,海面
|
存储 域名解析 负载均衡
负载均衡是什么,负载均衡有什么作用
负载均衡是什么,负载均衡有什么作用
EMQ
|
缓存 数据可视化 物联网
在 Windows 上搭建 MQTT 消息服务器
本文将以NanoMQ为例,演示如何通过安装包和源代码编译两种安装方式,在Windows系统中快速搭建一个可以支持多协议连接的物联网MQTT消息服务器。
EMQ
1309 0
|
7月前
|
人工智能 弹性计算 安全
OpenClaw怎么部署?要不要钱?一文解答!
OpenClaw是能让AI“动手”干活的智能体,能整理文件、收发邮件等。很多人关心其部署和费用问题。部署方面,支持云端和本地两种方式,云端门槛低、稳定,阿里云提供一键部署方案;本地部署则数据隐私性高,但电脑关机服务中断且对配置有要求。费用上,软件本身免费开源,运行成本主要在大模型调用,涉及大量Token消耗,建议设置支出限制或选低成本模型,云服务器需付租金,本地部署则承担电费等。部署时还需注意API Key泄露、公网暴露、权限过大等风险。
5323 16
|
10月前
|
资源调度 监控 数据可视化
2025年高并发系统卡顿排查:全链路压测平台对比与瓶颈定位
文章聚焦2025年高并发系统卡顿排查,介绍全链路压测是定位性能瓶颈主流手段。对比SaaS化、私有化部署及开源工具集成这三类主流全链路压测平台,从压测能力、可视化分析、接入成本等维度阐述各自优劣,还给出不同场景下的方案选择建议,助力企业解决高并发系统卡顿问题。
|
6月前
|
安全 IDE Shell
【全网最详细】Python3.10下载安装使用保姆级教程(看不懂打我)
Python 3.10(2021年10月发布)是已结束支持的旧LTS版本,以稳定性著称。核心新特性为结构模式匹配,显著提升数据处理能力;同时优化错误提示、类型注解等。适合维护老项目或对稳定性要求高的生产环境。
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
5732 1
ROS2教程02 ROS2的安装、配置和测试