在视频中 我们讨论了硬件和车辆的计算 硬件配置 在本视频中我们将了解驾驶车辆 一幅图像的软件 该架构将使用硬件组件提供的信息 使我们能够实现的目标 让我们详细分析软件栈的模块 这将允许我们再次仔细讨论每一段通过 查看它们接收的输入 需要进行的计算以及提供的输出 我们将讨论以下五个软件模块:

  • 环境景观
  • 运动规划
  • 车辆控制
  • 最后是系统监控

自己软件栈的概述不会提供实现细节 但它应该让您充分了解需要的所有软件组件 在制作自动驾驶汽车功能上 整个系列课程也是围绕这个结构组织的 所以我们将不定期回顾这个框架 另外请注意 这不是司机中使用的软件架构 个别必要功能的良好表示 对于完整的感觉 让我们来看看高级软件操作系统 自动驾驶汽车软件栈的

正如在前面的视频中所讨论的 汽车使用各种传感器观察周围的环境 传感器测量结果被传递到感知模块中 了解汽车周围的环境 环境可能有两个关键功能 在空间上识别车当前识别的位置

第二个分类和 定位驾驶任务环境的重要元素 这些元素的例子包括 其他汽车自行车行人道路 道路标志和道路标志 以及任何直接影响驾驶行为的物体 环境地图模块创建一组地图其定位 汽车周围环境中的物体用于特殊用途 目的包括从避免到运动追踪和运动计划

第三个模块称为运动规划 运动规划模块决定采取什么行动 以及在何处驾驶的所有动作 所有信息由可见模块和 绘图模块提供的 运动规划模块的主要输出是安全高效和高效 舒适规划路径 使交通工具其目标移动 然后规划路径由

第四模块即执行控制器 控制智慧得到路径并确定最佳方向 油门位置制动踏板位置 和档位设置以合理地遵循规划路径

第五个也是最后一个模块是系统监控 系统监控器监控软件的所有部分 以及硬件输出 以确保所有系统都能按预期工作 系统监控还负责 向安全驾驶驾驶系统中发现的任何问题 现在我们已经对主要模块的功能有了一个大概的了解 让我们仔细看看每个模块

首先让我们从环境开始 过路栈有两个重要部分 即在空间中自我定位以及分类 和定位环境的重要元素 模块接收多个信息流 如当前GPS位置 IMU单元单元和兔子测距 然后模块定位将它们组合起来 输出准确的车辆位置 为了获得更高的精度 一些定位模块还包含LIDAR和相机的数据 这个定位问题将进行更详细的讨论 在本专业下的后续课程

状态估计 通过分类和定位的问题 在环境元素中可以分为两个部分: 第一部分检测环境的动态对象 第二部分 检测环境中的对象 动态对象检测模块使用一组输入 以及激光雷达点云来创建场景中 动态对象周围的 3D 特效框 3D 候选对实体编码类 以及直接的确切位置方向和大小

浏览检测到跟踪模块随时间跟踪动态对象 追踪器可以提供动态的当前位置 还提供其通过环境的路径的历史 路径的历史记录与路线图一起使用 预测所有动态物体的未来路径 这通常由预测模块处理 预测模块组合所有关于动态物体和的信息 当前位置的能否预测所有动态现场的路径 当下对象检测模块还依赖于相机 输入和激光雷达数据的组合来 识别场景中的重要珠宝 这些重要数据包括车辆的当前身份 以及如信号和交通信号灯等重要的位置

环境可能问题将集中在课程三 在本专业的视觉上可以看到的 现在我们已经更好地了解了可能栈的工作原理 让我们继续讨论环境模块 环境地图创建了不同的表示类型 在现代车周围当前环境下 我们简要讨论了三种类型的地图
占地地图 定位图以及细节道路图 占地地图是所有对象的地图 在车辆周围环境中 激光雷达主要用于构建占地范围图 首先将一系列过滤器渗入LIDAR数据

以应用可以用于 占地格栅 例如,移除掉可以移动 的表面点和动态对象点 土地栅格图将环境表示为单个小区划分 个别单元被占用的相关联 这使我们可以处理测量数据中的合法性 并随时间改进地图 由LIDAR构建的定位图或相机数据 由模块定位使用估计状态 在驾驶中将传感器数据与 应该进行比较 汽车相对于定位图的运动

然后接受运动与其他身体 感受式传感器的信息组合 以准确地定位车辆 细节道路图提供了路段的地图其显示 驾驶汽车当前的驾驶环境 该地图捕捉信号和信号标志可以用于 运动规划中 该地图是传统结合了采集记录的数据和 从当前动态环境的输入信息 由 寻找栈收集到的 环境绘图和可见模块 以显着提高这两个模块的性能 例如,可以提供类似的环境信息 可以用于更新细节道路图细节道路图也能用于 给预测模块创建精确的动态动态预测

接下来我们将仔细研究环境地图和 可能的输出如何结合并且 通过运动模块创建环境路径 普遍汽车的运动规划是具有意义的任务 在单一的集成过程中解决问题 相反,大多数汽车都使用范围 将问题具体如下图 在最高级别任务规划部分处理计划 并在驾驶任务的整个范围内定义任务 从当前位置通过道路网络到达目的地 为了找到完整的线路

任务计划部分确定最佳 路线序列用于连接起点和之间 然后将其运送到下一层 行为规划部分是这下一级 解决短期规划问题 行为规划部分负责制定安全行为行动 和动作去执行在任务路径行进过程中 行为规划部分决策的一个例子是车辆是否 应该合并到一个客户中 接近她的行为预测下 除了决策的操作之外 行为规划部分还提供了 集体捆绑来执行每一个动作 例如在切换之前保持在当前通道中的时间

最后一小块规划部分执行即时或反应规划 并重定义要驾驶的特定道路和速度曲线 局部规划部分必须是平稳安全和有效地在考虑 环境和机动所施加的所有当前限制中 为创建这样的规划区规划部分 结合所有如行为规划部分占地信息图 车辆操作限制 以及环境中其他动态物体的信息 小块规划器的输出是一条规划的规划其在 未来的小段整个组合的生命轨迹和速度分布

该专业的第四个课程专门用于运动规划 接下来让我们看看典型的
车辆控制器如何采用给定的路线并 将其转换为特定的驱动命令以供车辆应用 游戏的控制器将控制问题分为纵向和控制 横向控制 横向控制器输出转角 节目同步控制调节 油门齿轮和驻车系统达到准确速度 两个控制器当前并没有 追踪局部规划的表现 调节当前驱动命令爱最小化前进

我们将在本课程的深入研究动物控制 让我们再仔细看看系统监控模块及其功能 系统监控模块是包含监控各个方面的 在过车内的并 在发生意外给定适当的警告 有两个部分 硬件管理程序和软件管理程序 硬件监控器持续监控所有硬件组件 以检查是否存在任何故障如传感器损坏测量丢失或 信息质量下降 邮件监控器的另一个职责是连续 分析任何与硬件输出不能够匹配 编程车范围内的输出 例如一个摄像头传感器被纸袋挡住 下雪时对激光雷达点云数据破坏 软件监控器负责验证软件栈 以确保所有元素正常运行 正确的频率并提供完整的输出 软件监控器还负责 分析所有模块的输出之间的不完整

在本视频中 我们研究了基本软件框架对于一个典型的 感觉软件系统 我们研究了五个主要模块的 职责 包括可能出现的环境景观 运动规划车辆控制最后是系统监控器

在下一个视频中我们将详细介绍环境绘图 我们将查看整个软件架构中使用的三个地图 占地栅格图本地图以及细节道路图 我们下一个视频再见

第 3 课补充阅读:软件架构

补充阅读:软件架构

  1. 从Team VictorTango-DARPA 城市挑战技术论文中 了解有关 AV 软件架构的更多信息。DARPA Urban Challenge Technical Paper‡ : Sydney-Berkeley Driving Team
  2. A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles 和翻译 城市道路自动驾驶车辆运动规划和控制技术综述
  3. 翻译: 自动驾驶汽车运动规划回顾
  4. Autonomous Driving in Urban Environments: Boss and the Urban Challenge

参考

https://www.coursera.org/learn/intro-self-driving-cars/lecture/RQCqM/lesson-3-software-architecture

自动驾驶 2-3 软件架构 Software Architecture相关推荐

  1. 「冰羚」— 撑起自动驾驶未来的“中间件”

    link link 每当谈到自动驾驶的软件开发,人们首先想到的,是深不可测的人工智能算法,是各种感知融合,是各类路径规划...但是,就算是再智能再高深的算法,如果没有底层操作系统的支持,一切都将是纸上 ...

  2. Coursera自动驾驶课程第3讲:Self-Driving Hardware and Software Architectures

    在上一讲<Coursera自动驾驶课程第2讲:The Requirements for Autonomy>中我们了解到了如何划分自动驾驶汽车等级.以及自动驾驶三大模块:感知.决策和执行. ...

  3. 自动驾驶技术综述1:自动驾驶算法软件架构介绍

    前言: 自动驾驶技术是一个庞大的工程体系,软件架构.功能算法.控制规划.感知识别.建图定位.电气架构.车载控制器.验证体系等等,有太多的角度可以去切入.对于自动驾驶功能与算法开发,自动驾驶功能的分级是 ...

  4. 软件架构(software architecture)

    软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计.软件架构是一个系统的草图.软件架构描述的对象是直接构成系统的抽象组件.各个组件之间的连 ...

  5. 如何成为一名合格的自动驾驶工程师

    今天跟大家分享一篇来自 Felix Friedmann 的技术博客,Felix 目前在奥迪的全资自动驾驶公司 AID感知组从事软件开发工作.我自己在锡根读完书找自动驾驶软件开发岗位工作的时候偶然读到了 ...

  6. 从哲学源头思考自动驾驶网络架构设计

    摘要:本篇从哲学的角度阐述自动驾驶网络架构设计的方法. 自动驾驶网络关键在架构创新,创新不是漫无边际,毫无逻辑和实现可能性的瞎想,没有约束和方法论的瞎想是民科干的事情.我们要通过坚实的架构设计方法,铺 ...

  7. 闲话自动驾驶的工程化落地

    以下文章来源于计算机视觉深度学习和自动驾驶 ,作者黄浴 大家有一种认知,觉得自动驾驶进入了"下半场".类似demo或者POC的早期工作已经不是人们关心的,这里所谓"上半场 ...

  8. 转载:自动驾驶之软件定义汽车

    写文章 自动驾驶之软件定义汽车 慕容衣 ​ 金融从业者 ​ 关注他 1 人 赞同了该文章 软件定义汽车时代下,智能汽车软件架构逐步向 SOA 迈进,软件成为智能汽车差异化的核心 汽车智能化的大趋势下, ...

  9. Aurora自动驾驶安全案例框架

    / 导读 / 自动驾驶公司Aurora于2021年8月推出了有史以来第一个适用于自动驾驶卡车和乘用车的安全案例框架(Safety Case Framework)初始版本,解决了自动驾驶卡车和乘用车的安 ...

  10. ICRA 2021自动驾驶相关论文汇总 | 科研党看过来,全文干货

    本文来源:知乎作者:wanghy,编辑:智车科技 / 导读 / ICRA(International Conference on Robotics and Automation)是IEEE机器人与自动 ...

最新文章

  1. php中location.reload,js刷新页面location.reload()用法详解
  2. PAT甲级1042 Shuffling Machine:[C++题解]模拟、哈希表、洗牌机
  3. POJ 2352 Stars (线段树)
  4. chromebook刷机_如何将网站添加到您的Chromebook架子上
  5. php书签源码,OneNav简约PHP导航书签源码
  6. 漫画:下辈子你还当程序员么?
  7. MFC开发-MFC Edit Control 捕捉回车用法
  8. 敏捷开发绩效管理之二:用中医理论管理团队及其绩效(绩效考核,团队管理,自组织团队)...
  9. Java使用IntelliJ IDEA创建控制台程序并通过JDBC连接到数据库
  10. js距离米转换为千米_泰禾中央广场+恒大未来城双盘大兴,8.4米层高“空中别墅”来袭...
  11. Access2016学习2
  12. unity 序列帧动画 UGUI GPU版
  13. 给华南x99打鸡血BIOS教程
  14. 【洛谷 P3809】 【后缀数组】【模板】后缀排序
  15. Merkle Tree、Merkle Proof、SPV安全性分析、Bloom过滤器
  16. 义嘉泰带你了解环境光和接近传感器
  17. 淘宝开放平台技术历程----学习转载
  18. python clicknium 库自动化千牛桌面端
  19. GVM升级后启动异常处理
  20. eNSP基础命令_01

热门文章

  1. idea报错:不支持发行版本5的错误,快速解决方案
  2. 心仪数据拨号服务器无响应,宽带拨号服务器未响应
  3. postgresql立式版本下载_Apache ShardingSphere 4.1.1版本正式发布
  4. vue 获取安卓原生方法_H5-vue与原生Android、ios交互获取相册图片
  5. 【转】在唯一密钥属性“value”设置为“***”时,无法添加类型为“add”的重复集合项解决方法
  6. Asp.Net客户端触发服务器端事件及_dopostback
  7. inline-block从入门到精通
  8. Vue教程20:Vuex入门
  9. 基于共享内存和多重哈希实现分布式缓存系统
  10. ol3 Demo1 ----加载geoserver发布的地图数据