无人驾驶实战-第一课(自动驾驶概述)

在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。
—————————————————————————————————————————
无人驾驶汽车的定义:
无人驾驶汽车是可载人的移动智能机器人,通过丰富感知系统和智能的行为系统实现高效率高可靠性的驾驶能力。
无人驾驶与自动驾驶的关系:
无人驾驶:完全不依赖于人的行为
自动驾驶:某些情况下可以加入人的参与和监督 
无人驾驶是自动驾驶的一个真子集。
未来出行的三大趋势:共享、新能源与自动驾驶。
无人驾驶的发展历程
探索阶段(2004年以前) 
1921年, 第一辆无人驾驶(实为遥控)汽车在美国诞生 
1956年,通用汽车第一辆具备了自动导航系统的汽车,采用车路协同设备实现无人驾驶(预埋的线缆与车端的接收器进行电子通讯)
FireBird II
1921年, 第一辆无人驾驶(实为遥控)汽车在美国诞生
1956年,通用汽车第一辆具备了自动导航系统的汽车,采用车路协同设备实现无人驾驶(预埋的线缆与车端的接收器进行电子通讯) 
1960年,斯坦福大学研究出第一个全自主轮式机器人Shakey,具备完整感知、规划和控制能力,也是后来机无人车的基础
Shakey
1990年,CMU的导航实验室 NavLab也是著名的无人驾驶发源地之一。
1995年,完成了从匹兹堡到圣地亚哥的 “ No Hands ” 跨越美国之旅  
1995年,戴姆勒奔驰发布了尤里卡·普罗米修斯计划,联合研发无人驾驶技术,这是第一个大范围联合开发的自动驾驶项目,整个欧洲大学研究院都有参与
NavLab 5
S500
发展阶段(2004 – 2016年)
2004年,美国DARPA( 美国国防高级研究计划局 ) 无人车挑战赛:要求无人车成功穿过240公里的沙漠道路 
2005年,斯坦福大学的Stanley成功夺冠,该团队由Sebastian Thrun带领。这次比赛中,大量车使用了激光雷达、高精度的地理信息系统和惯性导航系统 
2007年,这次DARPA城市挑战赛 (Urban Challenge),这次由Chris Urmson带队的CMU成功夺冠。 这三次挑战赛中,真正引领了无人车的发展,各大公司都是从这些比赛中逐渐发展起来的,比如Mobileye,Velodyne,Google X
Stanley
2010年,Google X实验室做了他们第一辆无人车丰田Pirus,通过顶上的64线雷达,建立高分辨率的三维环境模型(SLAM) 
2014年,Google无人车Firefly诞生,取消了方向盘,仅用手柄进行调试和接管
Google Pirus
Firefly
2011年,中国国防科技大学自动化系完成了自研的红旗 HQ3 无人驾驶汽车, 也拿到了当年“智能车未来挑战”大赛的冠军 
2015年, 百度自动驾驶部门正式成立, 与宝马合作的无人车进行了北京开放道路的试验
百度-宝马无人车
成熟阶段(2016以后)
AlphaGo的原因,投资界对AI开始疯狂追捧,对无人车更是热情高涨。同时,无人驾驶也真正进入中国大众视野 
2016年,Tesla自动驾驶因为一起致死的交通事故,与Mobileye分道扬镳,开始了自动驾驶高速投入 
2016年,Waymo正式从Google拆分出去,开始了独立运营 
2017年更是百花齐放,创业公司层出不穷 
2017年百度Apollo项目正式开源 
2018年,Waymo无人车对外商业运营
Pacifica
2019年,预计有更多的公司开始对外商业运营
2019年,物流运输、园区接驳等细分场景也将真正开始落地应用 车厂对未来大规模普及无人驾驶的时间预估,最晚也不超过2040年
我们这一代的生活中,无人驾驶技术的普及将成为极大概率的事件
自动驾驶的等级划分:
L2级及以下需要驾驶员对事故负责,L3及以上由车企负责。

L2级别的代表是特斯拉
Tesla: L2 高级辅助驾驶
  •  驾驶员需要对安全负责 
  •  启动条件要求不高(速度和车道线) 
  •  早期采用Mobileye提供感知技术 
  •  无法解决复杂路口问题 
  •  主动变道需要人提供变道指示
L3的代表为奥迪A8
  • L3 自动驾驶自动驾驶期间,车辆负全部责任 
  • 自动驾驶能力进入条件苛刻(多车道线、60km/h以下、天气良好) 
  • 目前智能性最好的量产车 
  • 暂时没有主动变道能力 
  • 遇到紧急情况或者不符合条件的情况需要通知驾驶员接管,有10s时间
各级别车企的名单
L4级别的概念车
Waymo: 
  • L4 全自动驾驶 
  • 曾有一段时间取消了安全员 
  • 商业运营阶段 
  • 世界最领先的自动驾驶能力 
  • 成本昂贵
Nuro:
  • 特殊场景下的Level 4能力 
  • 物流配送车 
  • 成本要求不能太高 
  • 可以不用考虑乘坐体感 
  • 相关物流公司都有布局,比如:京东、美团、阿里菜鸟等等
L4级别自动驾驶的实现思路 
  • 实现思路:V2X:Vehicle to Everything(车路协同): V2V(车辆), V2I(公共设施), V2P(行人) 
  • 边缘计算:RSU(路侧单元)、OBU(车载单元) 
  • 5G通信能力:LTE-V协议,专门针对车间通讯的协议,可兼容4G-5G 
  • 路侧智能:强大的感知能力(百度ACE计划)
  • 主车智能:近些年深度学习填补上了最后一块软件难题 
  • 感知能力:高度复杂冗余的传感器 
  • 决策能力:大数据下的智能决策 
  • 高精地图:丰富的地图信息数据     
  • 定位:精准的位置获取能力 通过学习人类开车的方式,来构建整个主车智能系统
权责问题也是一个重要的问题
RSS模型(Responsibility-Sensitive Safety)责任敏感安全模型 
为自动驾驶汽车与人类的责任概念提供具体可衡量的参数,并通过对所有记录在案的交通事故所涉及的行为和环境进行分析统计,为自动驾驶汽车界定了一个可计量的“安全状态”
“软件能够做出最安全决策”
L4自动驾驶的系统架构
涉及的范围很广。
涉及到的传感器
感知系统传感器:
摄像头:广泛用于物体识别和物体追踪场景,比如车道线检测、交通灯识别等,一般无人车都安装环视多枚摄像头
激光雷达:用于障碍物位置识别、绘制地图、辅助定位等,其准确率非常高,很多方案中将激光雷达作为主传感器使用 
毫米波雷达:阴雨天、雾霾天能够辅助感知获取物体的位置和速度,观测距离远但误检较多 
超声波:近处高敏感度传感器,常用于作为安全冗余设备检测车辆的碰撞安全问题
定位系统传感器:
IMU:实时测量自身的姿态,200Hz或更高。包含了三个单轴的加速度计和三个单轴的陀螺仪,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号
GNSS:也是大家常听到的GPS,无人车一般使用RTK(载波相位差分技术)技术来进行定位,频率相对较低,10Hz左右
车载计算单元(IPC):
车载计算单元(IPC)高效连接计算单元内部各计算设备,连接外部传感器的信息输入和存储 
冗余设计,以防止单点故障 
需要考虑整体的车规、电磁干扰和振动方面的设计以及 ISO-26262 标准的要求 
ISO-26262: 一个硬件达到了ASIL D级别的要求,那么它的故障率是10FIT,即10亿个小时里面出一次故障, 汽车行业在安全方面可以做到的极限(迭代速度慢)
自动驾驶线控系统:汽车的控制是由一些简单命令完成的,而不是由物理操作完成的。
这一部分相当于人的手和脚 传统汽车的这些控制由液压系统和真空助力泵协助完成,自动驾驶汽车的线控需要用电控化的零部件来完成,如电子液压制动系统 林肯MKZ拥有完善的电气化设备和接口
自动驾驶软件功能:
感知系统,定位能力, 决策规划, 实时控制
操作系统 OS
RTOS:实时操作系统 
QNX:类Unix系统,具有强实时性,符合车规级的实时操作系统 
RT Linux:Linux内核补丁,通过软实时进行监控,目前从2.x版本到4.x版本均有RT补丁 
Framework: 
ROS(机器人操作系统):B->M 
YARP、Microsoft Robotics、MOOS、Cybertron
ROS是集中式的,Master挂了整个系统无法工作。Cybertron是百度开发的分布式系统, 稳定一些
高精地图 HD Map(High Dimensional)
  • 不同于导航地图,最大的特点就是高维度和高精度 
  • 道路网的精确三维表征,如交叉路口布局和路标位置 
  • 地图语义信息,如道路的速度限制、 左转车道开始的位置 、
  • 导航地图只能达到米级精度,高精地图需要能够达到厘米级的精度 
  • 高精地图坐标系: WGS84、墨卡托坐标系
高精地图的好处:
  • 高精地图提供其它Level 4模块的数据支持提供了很多准确的静态物体的信息 
  • 定位可以用于计算相对位置 
  • 帮助传感器缩小检测范围,缩小感兴趣区域ROI 
  • 计算道路导航信息 
  • 帮助车辆识别车道的确切中心线
定位 Localization
无人车最重要的一步就是知道自己在哪 
INS: Inertial Navigation System 惯性导航系统 IMU 获取自身状态(加速度和角速度)
后通过状态矩阵递推下一时刻位置, 但是如果没有校正信息的话,这种状态递推会随着时间不断累计误差,导致最终位置发散
RTK:载波相位差分系统GNSS(GPS) 
RTK多加了是一个静止基站,它同样也收到定位卫星的信号。无人车与RTK相隔不太远的情况下,对二者之间的干扰信号用差分抹平 
RTK通过较低的更新频率提供相对准确的位置信息,INS则以较高的频率提供准确性较差的姿态信息。通过使用Kalman Filter整合两类数据获取其各自优势,合并提供出高准确性的实时信息
几何定位: 激光雷达 摄像头 高精地图 
利用激光雷达或者图像信息,可以通过物体匹配来对汽车进行定位。将检测的数据与预先存在的高精地图之间匹配,通过这种比较可获知汽车在高精度地图上的全球位置和行驶方向 
感知 Perception四大基础任务
各传感器之间各有特点
一般需要传感器融合,又分为前融合与后融合。前融合是原始数据融合,后融合是检测结果的融合。
预测Prediction
要求实时性 和 准确性
基于状态进行预测:Kalman Filter和Particle Filter 
基于车道序列进行预测:通过机器学习模型化简为分类问题 
行人预测:无人车需要非常重视安全问题,其中人的安全最为重要,而行人的意图变化却是最难预测的,也是约束最少的
决策规划 Planning
包含导航线路规划 和 精细轨迹表述 
  • 数学问题转换:将物理世界的地图转化为数学上的图表达 
  • 最优路径搜索:由于其他软件模块已经将不确定性进行了最大程度的消除,而最终决策规划模块又是对稳定性要求极高的模块,因此可以通过数学上的最优路径求解出确定解,遍历最优解是非常耗时的。 
  • 需要考虑车辆的体感和安全性
控制 Control
输入信息:目标轨迹、车辆状态;
输出:方向盘、油门 实现对无人车的控制,我们需要知道踩刹车和减速的关系、踩油门和加速的关系等,当无人车拿到一些控制学参数后,通过电脑对无人车的控制 
控制是对整个驾驶最后的保障,因此需要在任何情况下对准确性、稳定性和时效性要求都非常高,需要通过对车辆模型精细化描述进行严格的数学表达 
传统的控制算法PID可以满足车辆控制要求,但是考虑到体感和一些极限情况,控制算法优化也是目前无人车的一个持续探讨的问题,如LQR、MPC等
总结:
无人驾驶的四大问题。

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

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

相关文章

ES-5-进阶

单机 & 集群 单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器 性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中 配置服务器集群时,集…

【Linux】网络基础

🍎作者:阿润菜菜 📖专栏:Linux系统网络编程 文章目录 一、协议初识和网络协议分层(TCP/IP四层模型)认识协议TCP/IP五层(或四层)模型 二、认识MAC地址和IP地址认识MAC地址认识IP地址认…

AI绘画| 迪士尼风格|可爱头像【附Midjourney提示词】

Midjourney案例分享 图片预览 迪士尼风格|可爱头像 高清原图及关键词Prompt已经放在文末网盘,需要的自取 在数字艺术的新时代,人工智能绘画已经迅速崭露头角。作为最先进的技术之一,AI绘画结合了艺术和科学,开启了一…

GitHub上怎么寻找项目?

前言 下面由我精心整理的关于github项目资源搜索的一些方法,这些方法可以帮助你更快更精确的搜寻到你需要的符合你要求的项目。 写文章不易,如果这一篇问文章对你有帮助,求点赞求收藏~ 好,下面我们直接进入正题——> 首先我…

【无网络】win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退

win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退 法1 重新配置网络法2 更新驱动法3 修改注册表编辑器法4 重装系统 自从昨晚点了更新与重启后,今天电脑就再也不听话了,变着花样地连不上网。 检查路由器&#xf…

初识C++:类与对象

前言(类的引入) C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如: 之前在C语言中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方…

Android Unit Test

一、测试基础知识 1.1 测试级别 测试金字塔(如图 2 所示)说明了应用应如何包含三类测试(即小型、中型和大型测试): 小型测试是指单元测试,用于验证应用的行为,一次验证一个类。 中型测试是指…

PROFINET转TCP/IP网关profinet网线接头接法

大家好,今天要和大家分享一款自主研发的通讯网关,捷米JM-PN-TCPIP。这款网关可是集多种功能于一身,PROFINET从站功能,让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗?一起来看看吧&…

微信小程序使用 canvas 2d 实现签字板组件

本文是在微信小程序中使用 canvas 2d 来实现签字板功能&#xff1b; 效果图&#xff1a; 代码&#xff1a; 1、wxml <view><canvas id"canvas"type"2d"bindtouchstart"start"bindtouchmove"move"bindtouchend"end&qu…

Linux 终端生成二维码

1、安装qrencode [rootnode1 script]# yum -y install qrencode2、输出正常的 [rootnode1 aihuidi]# echo https://blog.csdn.net/weixin_43822878?t1|qrencode -o - -t utf83、输出彩色的 [rootnode1 aihuidi]# qrencode -t utf8 -s 1 https://blog.csdn.net/weixin_4382…

Unity 性能优化五:渲染模块压力

CPU压力 Batching 在GPU渲染前&#xff0c;CPU会把数据按batch发送给GPU&#xff0c;每发送一次&#xff0c;都是一个drawcall&#xff0c;GPU在渲染每个batch的时候&#xff0c;会切换渲染状态&#xff0c;这里的渲染状态指的是&#xff1a;影响对象在屏幕上的外观的渲染属性…

股票量价关系分析

量增价平 量增价平是指成交量增加&#xff0c;股价保持相对平稳的量价关系模型&#xff0c;量的增加可以是资金大量流入引起&#xff0c;也可以是资金大量流出引起&#xff0c;因此这种关系模型需要根据股价所处的位置来具体分析。1、股价处于低位 当股价处于低位&#xff0c;此…

【Linux】用户相关内容

如果命令ll 出现以上信息&#xff0c;UID为具体的数字&#xff0c;代表之前UID为502的用户被删除了。 更改目录或文件所属用户和所属组 在Linux中&#xff0c;创建一个文件时&#xff0c;该文件的拥有者都是创建该文件的用户。 更改所属用户 chown 用户名 文件名/目录名 更…

机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归)

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归)&#xff0c;这几天引爆网络的科技大新闻就是韩国科研团队宣称发现了室温超导材料-LK-99&#xff0c;这种材料…

无涯教程-Lua - Iterators(迭代器)

迭代器是一种构造&#xff0c;使您可以遍历所谓的集合或集合的元素。在Lua中&#xff0c;这些集合通常引用表&#xff0c;这些表用于创建各种数据结构(如数组)。 通用迭代器 通用的 for 迭代器提供集合中每个元素的键值对。下面给出一个简单的示例。 array{"Lua",…

思科单臂路由、lacp链路聚合、NAT实验

实验拓扑图&#xff1a; 实验目的&#xff1a; 如图所示配置相应IP地址和VLAN&#xff0c;并通过在AR1上配置单臂路由&#xff0c;实现VLAN10和VLAN20的主机能够在VLAN间通信&#xff1b;在SW1和SW2的三条链路实施链路聚合&#xff0c;使用静态LACP模式&#xff0c;使一条链…

2023年第四届“华数杯”数学建模思路 - 案例:FPTree-频繁模式树算法

## 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#xff0c;他与Apriori算法一样也是用来挖掘频繁项集的&#xff0c…

小程序学习(四):WXML模板语法

WXML模板语法-数据绑定 1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据 2.动态绑定属性 WXML模板语法-事件绑定 3.什么是事件 4.小程序中常用的事件 5.事件对象的属性列表 6.target和currentTarget的区别 7.bindtap的语法格式 8.在事件处理函数中为data中的数据…

【NLP概念源和流】 06-编码器-解码器模型(6/20 部分)

一、说明 在机器翻译等任务中,我们必须从一系列输入词映射到一系列输出词。读者必须注意,这与“序列标记”不同,在“序列标记”中,该任务是将序列中的每个单词映射到预定义的类,如词性或命名实体任务。 作者生成 在上面的

IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)

1.守护进程&#xff08;幽灵进程&#xff09; #include<stdio.h> #include<head.h> int main(int argc, const char *argv[]) {pid_t cpid fork();if(0cpid){ //创建新的会话pid_t sidsetsid();printf("sid%d\n",sid);//修改运行目录为不可卸载的文件…