分享好友 最新动态首页 最新动态分类 切换频道
【自动驾驶】12.百度Apollo对ROS的优化【详细干货】
2024-12-26 14:30

转载自 “Apollo智能驾驶” 公众号 和搜狐网 “百度开发者中心” : 原文链接


7月22日百度自动驾驶事业部资深架构师、数据平台专家杨凡,百度自动驾驶资深架构师何玮,百度智能驾驶事业部资深架构师郁浩三名讲师在中关村创业大街车库咖啡,向参加沙龙的三百多名开发者们深度解析了Apollo平台与智能驾驶方案。

上期内容中,百度自动驾驶事业部资深架构师杨凡为我们详细讲解了Apollo1.0开放内容及Apollo2.0展望,点此回顾,本期我们继续曝光干货,由百度自动驾驶资深架构师何玮跟我们分享

何玮讲师:《Apollo代码开放框架—ROS 探索与实践》

何玮,百度自动驾驶资深架构师,专注于百度自动驾驶车载计算框架相关工作。

以下是主题演讲内容

一、 自动驾驶对ROS框架的三点需求

自动驾驶系统非常复杂,包含感知、障碍物检测、决策、车辆控制等模块,把这么多功能各异的模块集成在一起,组成一个完整的系统并完成自动驾驶的任务,这是一个非常大挑战。

1、高效的开发支持,快速的算法迭代要求ROS框架要能提供良好的开发模式,算法工程师更多聚焦在算法本身的开发和功能验证上。通过一个框架统一完成诸如配置管理、环境配置、整体运行以及调试等功能,快速构建系统原型,验证算法和功能。

2、模块灵活配置,感知、定位、决策模块,本身功能相对独立,通过接口定义数据。工程师在整体开发中希望各个模块独立开发、调试,应用时能通过框架快速集合成完整的系统并运行。

3、丰富的调试工具,自动驾驶系统涉及大量图像、点云处理算法,对于各种可视化工具有非常高需求,障碍物检测是否精准, 规划路径是否合理、定位是否正确,这些环节在调试过程中都需要可视化工具的支持。

二、 为什么选用ROS框架

1、行业认可,ROS框架很早就被机器人行业所使用,目前有3000多个基础库,能够支持应用的快速开发。

2、消息机制,ROS在开发过程中,基于功能把整个自动驾驶系统分成多个模块,每个模块负责自己消息的接收、处理、发布。当模块需要联调时,通过框架可以把各个模块快速的集成到一起。

3、使用广泛,ROS是学术界使用最广泛的框架,对于验证最新的算法非常便利。

正是基于以上特性,在Apollo1.0版本中选择ROS作为开发和集成的框架。

三、Apollo中ROS的改进

为适应ROS在自动驾驶汽车上的应用,做了相应改进。

1、通信性能优化

|问题:自动驾驶大量使用传感器引发很大的传输带宽需求

自动驾驶系统为了能够感知复杂的道路情况,需要多种传感器协同工作才能覆盖不同的场景、不同路况需求。多传感器共同使用会对车载系统造成很大压力。

|解决优化:共享内存能减少传输中的数据拷贝,显著提升传输效率

|问题:单路传感器消息有多个消费者时负载成倍增长

|解决优化:共享内存可以有效满足一对多的传输场景

共享内存本身的特性能够支持一次写入、多次读取功能。对于一对多传输场景,不同的使用者就可以同时读取,实现一次写入,多次读取的功能,成倍提升传输效率。

|通信性能优化效果

A、一对一传输过程中,共享内存吞吐量达到socket两倍,一对多传输过程中,共享内存传输对带宽的优势进一步扩大。

B、共享内存传输延迟比Shared节省一半,对强实时性系统的自动驾驶汽车帮助很大。

C、共享内存CPU资源占用要比socket减少很多,一定程度上提升计算算法和能力。

2、去中心化的网络拓扑

|ROS特点:ROS以Master为中心构建hybridp2p拓扑网络

ROS是以Master为中心构建Hybrid p2p拓扑网络,带来了比较强的容错性,当某个算法出现异常导致崩溃的时候,不会引起整个的异常,为局部异常处理提供便利。

|问题:Master作为拓扑网络的中心,一旦异常将影响整个网络

整个系统非常依赖Master这个单点,一旦Master异常,所有节点都不能发现其他节点,这样整个系统就不能正常工作。

|解决优化:使用RTPS服务发现协议实现完全的P2P网络拓扑

在ROS中添加基于RTPS服务协议功能,网络构建不会以Master作为中心,而是通过域概念作为划分,所有节点加入域中,会通过RTPS协议相互广播通知其他节点,然后节点间会建立点对点连接,来发布订阅消息,以替代Master作为中央信息交换的功能。

|使用RTPS服务发现过程

A. Sub节点启动,通过组播向网络注册

B、通过节点发现,两两建立unicast

C、向新加入的节点发送历史拓扑消息

D、收发双发建立连接,开始通信

3、数据兼容性扩展

|Message是ROS中描述软件组件接口的语言

Message是ROS中描述接口的一种语言,当两个节点之间需要建立连接的时候,通常需要满足两个条件。一是接收和发送的Topic属于同一个话题,二是两个模块定义的模式要完全一致。

|ROS使用msg描述文件定义模块间的消息接口

ROS怎么定义message?ROS使用msg文件对数据接口进行抽象化的描述,并可以生成不同语言的接口实现,以满足不同语言的通信交流需求。

|问题:接口升级后,不同版本的模块难以兼容

兼容性的问题,当项目规模比较小时,影响不大;但是对于无人自动驾驶比较庞大的项目时,影响就很大。当某一个模块接口升级了,需要把所有相关模块升级到最新版本之后,才能在一起进行基础功能的连调。同时对于线下仿真调试的时候,有时需要把某一个模块回到历史版本验证或定位某一个问题,这时候若接口之间出现升级,就会出现不兼容问题,导致系统运行障碍。

|问题:接口升级后,历史数据也面临无法使用的问题

接口兼容性问题会对历史数据使用造成更大影响,自动驾驶汽车系统中历史数据是非常宝贵和重要资源,对于这种问题有一些解决方式,一是通过离线数据批量转换和在线方式,二是转换成新数据。

|解决优化:protobuf能够很好支持向后兼容

使用protobuf来替代ROSmessage,最大好处是可以完全覆盖message中本身包含的类型,有利于把既有的ROSmessage迁移到protobuf格式下。此外protobuf有非常好的版本兼容性。

|解决优化:protobuf消息格式与ROS深度集成

在Apollo ROS中,做了一整套对protobuf的支持, 在工程中可以不需要做protobuf和ROS message的转换,直接publish protobuf格式的消息,调试工具也能够非常正确的解析出来正确的protobuf消息。这样既能够很好解决兼容性问题,也不会产生额外的学习成本和使用成本。

四、Apollo框架使用

|如何获取Apollo

|Apollo代码怎么用

|进入HMI页面Apollo

HMI界面可以自动映射到主机的系统中,在启动系统中只需打开浏览器,就能看到整个HMI截面,Apollo的HMI界面可直接看到。

|Dreamview实时显示

把Dreamview打开,出现工程师看的最多的界面,界面会显示主车路径、刹车油门状态、方向盘状态等信息。

|回放数据重现场景

离线使用时,回到HMI界面,看到车沿着既定的路面运行及规划轨迹,右上角刹车油门和车的速度,以及方向盘的控制转角。至此Apollo离线demo就可以跑起来。

|如何改造自动驾驶系统

quickstart文件中有中英文各种文档。如果想对Apollo做定制化修改,可增加全新的驱动,或者调试参数,howto这里有一系列教程,告诉大家如何改造自己的自动驾驶系统。

最新文章
chatgpt如何重新登录
对于chatgpt这一产品,重新登录的操作可以考虑以下几个方面:1. 提供明显的“退出”或“注销”按钮,在用户点击后清空用户的登录状态,避免出现记住登录状态等情况。2. 在用户主动或非自愿退出登录后,进入登录页面,要求用户输入已注册的
3D5月偶数斜连走势图近100期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
AdamWR优化器与余弦学习率调度器使用指南
具有单周期学习率时间表的AdamW的Tensorflow 2.3实现基于S.Gugger和J.Howard在这里的帖子::用法optimiser = OneCycleAdamW(learning_rate: float, weight_decay: float, cycle_length: int) 学习率:在周期峰值时使用的最大学习率。 学习
FPGA 与处理器:了解差异
FPGA 与处理器:FPGA(现场可编程门阵列)与处理器是现代电子产品中最常用的两种计算设备。虽然这两种设备都能够执行复杂的计算,但它们在架构和功能方面存在显着差异。在本文中,我们将探讨 FPGA 和处理器之间的差异,并检查每种设备的优
2025-2031年全球及中国智能投研行业深度调研及投资前景预测报告
智能投研是一种利用人工智能(AI)和机器学习技术来辅助和增强投资研究和决策过程的方法。它结合了数据分析、算法模型和大数据处理,旨在提供更精准、全面和即时的投资信息,帮助投资者做出更明智的投资决策。智能投研的主要特点和功能包括
2024年平板CPU性能排行榜天梯图:选购指南与性能解析
在2024年,平板电脑市场竞争激烈,各大厂商纷纷推出了搭载最新CPU的产品。对于科技爱好者和电脑手机小白用户来说,选择一款性能优越的平板电脑至关重要。本文将通过《2024年平板CPU性能排行榜天梯图:选购指南与性能解析》,为大家详细解析
5G手机哪一款性能最好?
  为了让大家能够了解5G手机哪一款性能最好,我们IT百科会在安兔兔公布上个月手机跑分数据后第一时间更新手机跑分天梯榜。下面是2020年3月份最新的4G和5G手机性能表现数据。5G手机哪一款性能最好(3月份)  2020年2月份,5G手机安兔兔
78w78成品站源用户评价:揭示78w78成品站源的独特魅力与实用体验!
78w78成品站源用户评价:揭示78w78成品站源的独特魅力与实用体验!随着互联网技术的不断发展,成品网站源成为了很多企业和个人在网站搭建时的首选。其中,78w78成品站源凭借其丰富的功能和易用性,赢得了大量用户的青睐。以下从多个方面深
2025泰国亚博会:聚焦亚太数字经济与跨境生态合作
亚博会2025泰国亚太数字经济跨境生态博览会 Asia DigiCommerce Services Xpo办公/印刷/广告/品牌国际展会文化/教育/金融/贸易举办时间:2025年6月11-13日举办展馆:泰国曼谷·诗丽吉王后国家会议中心展览规模:10000+平方米所属行业:跨境
相关文章
推荐文章
发表评论
0评