ROS2:自动驾驶汽车的合适的框架(DDS)

ROS2,基于DDS通信框架,扩展了ROS到商业应用,尤其适合自动驾驶。Apex.OS,作为认证的ROS2安全分支,利用DDS提供可靠、安全的API。性能测试表明,QoS调整、传输机制选择和DDS实现优化对性能至关重要。通过无偏且可重复的性能测试,证明了ROS2在自动驾驶汽车生产中的优越性能。
摘要由CSDN通过智能技术生成

ROS2:自动驾驶汽车的合适的框架

关键字:数据分发服务 DDS
在这里插入图片描述

在Apex.AI,我们开发了用于自动驾驶的经过认证软件。带有DDS的ROS 2是Apex.OS®的核心组成。 Apex.OS是经过认证的ROS2安全分支。 Apex.OS将底层硬件、中间件、内核、接口和驱动程序的复杂性抽象为易于使用、健壮、可靠、安全、可靠的API。

ROS 2基于数据分发服务™(DDS™)通信框架,将机器人操作系统(ROS)扩展到商业应用中。 它是一个由多个组件组成的异构且复杂的系统。 ROS 2的性能在很大程度上取决于多个系统结构层:硬件、操作系统内核和调度程序、DDS以及应用程序。 由于ROS 2使用DDS进行通信,因此ROS 2组件可以与原生DDS组件自由混用,从而提供了丰富的功能和性能。

我阅读了一些ROS 2性能报告,但这些报告并不完整;有些是错误的。由于我们处于使用ROS 2进行自动驾驶汽车开发的早期阶段,因此需要一致、系统、公正的流程来评估该技术,就像此前评估PascalVOC和Kitti技术一样。

在Apex.AI上,我们一直在基于Apex.AI上建立的框架进行ROS 2的无偏(unbiased)且可再现(reproducible)的性能测试。 这项工作现在记录在我们的新白皮书《 ROS 2中的性能测试》中。

白皮书重点介绍如何测量和维护系统中软件组件的非功能性性能,例如感知软件的通信延迟、内存消耗、CPU使用率等。 根据我们的经验,我们发现许多开发人员已经监控了他们系统的功能性能,因此我们专注于测试系统组件。

我们从与性能测试相关的术语入手,强调那些会严重影响ROS 2性能的参数。 接下来,我们介绍标准化的实验设置,并讨论端到端性能测试系统的工作实现,该系统将保证标准化,无偏且可重复的评估。

我们的一些发现包括:

  • 将服务质量(QoS)调整到特定的工作负载和环境对于获得最佳性能至关重要。 通常,配置为使用BEST_EFFORT可靠性时,DDS具有最低的延迟和最高的吞吐量。 使用RELIABLE QoS设置时,重要的是要确保资源限制(resource limits)足够支持预期的发布速率。 当由于订阅者用尽资源限制(resource limits)而丢弃已发布的消息时,发布者必须重新传输它们,从而导致更高的延迟。
  • 考虑传输机制。 在Apex.AI,DDS使用三种类型的传输:进程内传输、共享内存传输和UDP传输,DDS通过零拷贝(zero-copy)和平面数据优化(flat data optimizations)提高了性能,分别减少了复制和序列化消息的开销。
  • 尽管DDS中的发现匹配(Discovery)使用多播,但应用数据可以通过UDP单播或多播发送。 默认情况下,DDS使用单播,它更简单并且与网络交换机和其他网络基础架构进行更有效的交互。 在将较大的消息发布给多个订阅者可以使用多播传输。
  • 性能调优。在使用不同的参数运行测试后,我们找到了提高性能的方法。 例如,使用ROS 2 PollingSubscription插件(使用了rclcpp wait-set)时,CPU占用率较高且延迟较高。 rclcpp waitset_wait包装了下层的rcl wait-set实现,这非常耗时。在将实现切换为直接使用DDS wait-set之后,可以减少延迟。
  • 最后,我们想分享DDS层的重要性。在测试开源DDS实现时,我们在Renesas R-Car H3上遇到了锁定问题,这些类型的问题很难重现。性能测试工具通过连续集成(CI)多次运行了性能测试,从而使检测故障更加容易。我们得以系统地应用修复程序,并最终找到了Apex.AI内部记录的解决方案。

总而言之,我们的研究和测试证明ROS 2在自动驾驶汽车生产中表现出卓越的性能。 我邀请您根据我们在Apex.AI建立的框架,回顾我们针对ROS 2进行无偏且可重复的性能测试的方法。 该软件已在GitLab中发布:https://gitlab.com/ApexAI/performance_test/


译文连载

RTPS规范-译文连载:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001
DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001

相关链接

DDS科普:一文读懂DDS(数据分发服务)
DDS定义:什么是DDS?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值