轻识Logo
目录

    【02】百度Apollo技术框架介绍

    上一节我们初步介绍了什么是无人驾驶,无人驾驶由哪些模块组成,今天我们就以百度Apollo为例,讲讲无人驾驶的技术架构。

    1.Apollo架构

    先来看一张百度Apollo技术框架图:

    可以看到该架构分为四层,其中除了Cloud Service Platform部分是运行在云端的,其他的都是车端的系统。 

    Open Software Platform 自动驾驶系统最为重要的软件层。这一层包含了最底层的RTOS(Real Time Operation System)和第二层的运行软件所需的框架环境(Runtime Framework),再到更上层的各个子模块(地图引擎、定位、感知、规划、控制、端到端、人机界面)。

    Reference Hardware Platform 自动驾驶系统所依赖的硬件层。这里包含了控制器、GPS/IMU、HMI Device(其实就是显示器)、LiDAR、Camera、Radar、和Black Box等。

    Drive-by-wire Vehicle是线控的底层,不开放这个接口,就无法控制汽车。

    下面我就对这几部分进行阐述。

    2. 参考硬件平台和车辆平台

    我们想开发一辆无人车,我们首先需要一款可通过电子控制的车辆,这种类型的车辆具有特殊的名称,叫做线控驾驶车辆。在线控车中有一个非常重要的模块,它就是CAN总线,也就是控制器区域网络,它是车辆内部通信的网络。CAN和计算机是通过CAN卡进行连接的,计算机通过CAN线发送加速、制动和转向信号。除了线控车辆之外,我们还需要各种各样的传感器来作为无人车的一部分,我们来简单看一下:

    全球定位系统(GPS):通过绕地卫星确定定位惯性测量装置(IMU):通过速度、加速度、和其他一些因素判断车辆的运动和位置。激光雷达(LiDar):由一组脉冲激光器组成,雷达可以360度扫描车辆周围,根据激光反射形成一系列的点云。摄像头(Camera):通过捕获图像数据,再利用计算机视觉来进行提取信息,以此来了解自车周围的环境。摄像头可以感知颜色,这可以很好的检测车道线、红绿灯等一些信息。毫米波雷达(Radar):Radar也用于检测障碍物,Radar分辨率低,难以分辨出检测到了哪种障碍物,但是其经济实惠、适用于各种天气和照明条件 等优势也让它能在无人驾驶中发挥很大的作用。

    下图我们来展示在一辆线控汽车上安装的主要硬件:

    3.开源软件架构

    开源软件架构分为三层,分别为

    3.1 RTOS:

    RTOS(实时操作系统):可确保在给定的时间内完成特定的任务。我们看下图这个例子:

    传感器检测到自车前方的移动障碍物时,短时间内基于RTOS的软件模块,需要分析出障碍物是行人、车辆或其他的什么,预测该障碍物未来的运动方向和速度,以此确定自车是减速还是停止,然后,车辆需要按照上述决策执行对应的操作,在该过程中,实效性是系统稳定性和驾驶安全性的基础。 Appllo RTOS 是 Ubuntu Linux操作系统与Apollo内核相互结合的成果。

    什么是Ubuntu,这里对Ubuntu进行一定的解释。 Ubuntu是一个以桌面应用为主的Linux操作系统,它是业内顶级Linux发行版之一,也是最流行的操作系统,原始的Ubuntu系统其实并不是实时操作系统,百度通过加入Apollo设计的内核,使其成为RTOS。

    3.2 运行框架:

    运行框架是Apollo的操作系统,它是在ROS的基础上进行二次开发的版本。那什么是ROS呢,我们就来了解一下。

    ROS(Robot Operating System)是机器人操作系统,它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。

    ROS在机器人行业有着悠久的历史,目前有三四千个基础库支持应用程序的快速开发,ROS根据功能将自治系统划分为多个模块,每个模块负责接收、处理和发布自己的消息,由于这些模块相互独立,只能通过运行时框架进行通信,因此调整任何单一模块都会很容易。这个其实很像微服务的概念,通过高内聚,低耦合的方式实现各个模块的稳定性。

    为了使ROS能更好的和无人驾驶相结合,百度Apollo团队改进了共享内存的功能和性能、去中心化和数据兼容性。

        3.2.1 共享内存

    共享内存降低了需要访问不同模块时的数据复制需求,对于一对多的传输方案,共享内存支持“一次写入 多次读取”的模式,例如我们只收到了一帧的点云,这些点云可以同时运行障碍物检测、定位和GUI工具,而需要点云数据的模块自行读取即可。这一点也非常像MQTT这种发布-订阅模式的协议,一方在一个主题内发送消息,需要该消息的角色订阅该主题即可。

    这样做的最大好处就是可以更加高效的进行数据传输,增加了通信的速度。

        3.2.2 去中心化

    去中心化解决了单点故障的问题。我们先来看看现成的ROS是怎么样的。现成的ROS是由许多的节点组成的,每个节点都有对应的功能,例如一个节点可以负责收集摄像头的图像、另一个节点可能负责路径规划,而第三个节点可以负责将控制命令发送到CAN总线上等。但是存在一个问题,上述的节点在ROS中,都需要由单个ROS主节点来控制,问题显而易见,如果这个主节点挂了,那么和他相关的所有节点都无法工作了。

    为了避免这种问题,Apollo将所有的节点放在一个公共域中,域中每一个节点都有关于这个域中其他节点的信息,如下图所示:

    通过这种去中心化的方案,公共域取代了原来的ROS主节点,因此就消除了单点故障的风险。

        3.2.3 数据兼容

    对于无人驾驶来说,由于项目本身的规模很大,数据兼容性至关重要,不同的ROS节点通过名为ROS消息的接口语言相互通信,ROS消息需要使用通用接口语言,使每个节点都可以解读来自其他节点的消息数据,如果消息文件的格式发生了变化,与节点期望的格式稍有不同,则会通信失败,这就导致了严重的兼容性问题。我们举个例子,比如我们对一个接口进行升级升级,结果数据不通会导致系统奔溃,对此解决方法是我们通过一次又一次的数据转换来拼凑出合适的数据,并且还需要考虑之前所记录的测试数据需要适应新的消息格式,这种做法的弊端显而易见,这一定不是最优解。

    Apollo使用一种名为protobuf的接口语言来替代了原生ROS消息,Protobuf是一种结构化数据序列化方法,这对于开发用于通过电线彼此通信或用于存储数据的程序非常有用,它可以将新的字段添加到消息格式中而不会破坏向后兼容性,新的二进制文件可以在解析过程中接受旧的消息格式,这样说有些难以理解,我们来举个例子,比如我们约定好去上班签到需要提供姓名、时间,后来公司给每个人分配了工号,你每次签到都会报一次工号,对于签到这个行为而言并不会因为你多报了工号而导致无法完成签到,因为你虽然多报了工号,但是之前约定的姓名和时间依然是存在的,所以可以签到成功。

    3.3 软件模块

    软件平台具有各种模块,这些模块包括MAP引擎、定位、感知、规划、控制、端到端驾驶以及人机接口,每个模块都有自己的算法库,且模块之间的关系非常复杂,这些模块我们后续会在单独的章节进行描述。

    4.云服务平台

    Apollo云服务平台提供了高精度地图(HD Map)、仿真平台(Simulation)、数据平台(Data Platform)、Security(安全)、OTA(空中软件升级)及DuerOS(智能语音系统)等能力。可以看出,Apollo的云服务不仅提供了存储的功能,更重要的是它提供了很多有助于我们快速搭建无人驾驶系统的工具。我们这里重点介绍一些仿真和数据平台。

    4.1 仿真环境

    仿真环境平台是Apollo开放软件平台提供的非常重要的工具,该平台可以允许每个开发者出于自身的需求,来构建仿真环境。除此之外,该平台还有大量的驾驶数据,开发人员可以检验和验证无人驾驶软件系统。仿真环境可以使Apollo车辆不仅可以查看环境,还可以了解道路情况和场景。仿真环境平台支持开发者配置不同的驾驶场景,比如障碍物、路线和交通灯状态。执行模式为开发者提供了一个在多场景中运转的完整设置,在执行模式中,开发者可以在Apollo环境中上传和验证模块,当前的自动评分系统,从几个指标对场景进行评估,其中包括碰撞检测、交通灯识别、速度限制、障碍物检测和路线逻辑,最后,三维可视化可以去描述实时路况,在显示无人驾驶车状态的同时,使模块输出可视化。

    4.2 数据平台

    我们知道数据对于无人车而言是非常重要的,Apollo的数据平台提供了非常丰富的数据。仿真场景的数据有两个不同的来源,分别是记录场景和虚拟场景:

    记录场景:我们可以使用记录的场景数据来重放我们在实际道路测试中已经观察到的传感器的数据。虚拟场景:我们可以借助虚拟场景,使用虚拟编辑器创建新的驾驶场景,这有助于快速检验与验证算法。

    除此之外,为了训练像深度学习网络那样的机器学习模型,Apollo 数据平台还提供了带标签的注释数据,例如下图所示的交通灯数据、带边界框的障碍物数据以及语义分割数据。



    通过本节的学习,大家一定已经初步建立起了对百度Apollo的架构的认知,当然了,其实这也几乎代表了无人驾驶这个行业的架构,在接下来的章节中我们会对这些架构中提到的模块进行深度的讲解。


    浏览 105
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    百度饮品
    地址新疆维吾尔自治区/喀什地区/喀什市/西域大道塔县办事处旁人均暂无菜系面包甜点电话暂无营业时间休息中10:00营业
    百度饮品
    0
    百度饮品
    地址新疆维吾尔自治区/喀什地区/莎车县/艾斯提皮尔路王后大饭店北侧100米路东人均暂无菜系面包甜点电话暂无营业时间暂无
    百度饮品
    0
    百度饮品
    地址新疆维吾尔自治区/和田地区/和田市/新疆建设路121号临街3号门面人均暂无菜系面包甜点电话暂无营业时间暂无
    百度饮品
    0
    百度麻辣烫过桥米线
    本店特色美食。香汁玉米粉,香辣牛筋面,酸辣粉
    百度麻辣烫过桥米线
    0
    正宗沙县小吃(百度网吧店)
    地址江西省/抚州市/南城县/建昌镇登高中路王府街南1栋20号人均暂无菜系快餐简餐电话暂无营业时间暂无
    正宗沙县小吃(百度网吧店)
    0
    百度饮品(咖啡、茶饮)
    本店特色美食。双ྂ皮ྂ奶ྂ
    百度饮品(咖啡、茶饮)
    0
    微软大模型Phi3安装和介绍,普通电脑不联网也能提问!
    你好,我是郭震1 前沿 最近,微软发布Phi-3模型,最小尺寸的phi-3-mini(3.8B参数量)在更大、更干净的数据集(包含3.3T个tokens)上进行训练,在各大公开的学术基准和内部测试中,实现了与Mixtral 8x7B和GPT-3.5等大尺寸模型的性能。模型小,phi-3-mini的尺
    Python与算法社区
    0
    百度地图“校园开发者计划”来啦!
    ✨近日,百度地图面向全国高校在校学生启动了“校园开发者计划”😎🤝此计划致力于为同学们搭建创新实践的舞台推动位置服务技术在校园的应用与发展😃🌟百度地图开放平台拥有丰富的地图数据和强大的 API、SDK 接入能力可以支持 Web、Android、iOS 等多种开发环境👏始终为开发者提
    泰伯网
    0
    百度饮品
    本店特色美食。巧克力圣代,芒果圣代,红豆奶昔,草莓圣代,奶茶三兄弟,巧克力奶昔,奥利奥奶昔,相思玫瑰,太妃奥利奥圣代,抹茶圣代,草莓奶昔,芒果奶昔
    百度饮品
    0
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报

    代做工资流水公司宁德背调工资流水样本肇庆代办转账银行流水福州公司流水价格温州打转账流水东莞流水公司赣州对公账户流水代办青岛流水单多少钱深圳薪资流水单开具三亚办工资流水app截图无锡制作银行流水PS南通购房银行流水图片唐山代办工资流水单湛江代做签证工资流水廊坊打离职证明石家庄做签证银行流水济宁薪资银行流水代办兰州打印企业贷流水漳州代开银行流水单黄冈打印个人银行流水蚌埠打日常消费流水石家庄消费贷流水代做嘉兴在职证明代做太原背调工资流水打印宜春工资流水多少钱开封代办工资银行流水衡阳工资证明代办南昌代做对公银行流水广州对公银行流水多少钱郑州查询签证流水开封查转账流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

    代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化