首页 > 汽车技术 > 正文

ROS 2:自动驾驶系统开发框架

2020-04-03 19:56:33·  来源:嘉木科技  
 
关于Apex.AI:是一家提供自动驾驶底层系统的公司Apex.AI成立于2017年,总部位于加利福尼亚帕洛阿尔托,创始人为Jan Becker和Dejan Pangercic,他们曾是为博世公
关于Apex.AI:是一家提供自动驾驶底层系统的公司

Apex.AI成立于2017年,总部位于加利福尼亚帕洛阿尔托,创始人为Jan Becker和Dejan Pangercic,他们曾是为博世公司工作过多年。

公司首席执行官Jan Becker从事自动驾驶汽车软件已超过20年,早在大学生时期便开发了早期的自动驾驶系统,曾担任博世创业公司Deepfield Robotics的首席技术官。而另一位创始人Dejan Pangercic曾是ROS系统(Robot Operating System,简称ROS,自动操作系统)的早期贡献者之一,从事软件框架工作已超过10年,目前担任该公司的首席技术官。

正文

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

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

我已经阅读了一些ROS 2的性能报告,但这些报告并不完整,有些甚至是错误的。由于我们处于使用ROS 2进行自动驾驶汽车开发的早期阶段,因此需要对该技术进行一致、系统和公正的评估,采用与PascalVOC和Kitti相似的方式。

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

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

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

我们的一些发现包括:

将服务质量(QoS)调整到特定的工作负载和环境对于获得最佳性能至关重要。通常,配置为使用BEST_EFFORT可靠性时,DDS具有最低的延迟和最高的吞吐量。使用RELIABLE QoS设置时,重要的是要确保资源限制足够大以支持预期的发布速率。当由于订阅者用尽资源限制而丢弃已发布的消息时,发布者必须重新传输它们,从而导致更高的延迟。

考虑运输机制。在Apex.AI,我们使用RTI Connext DDS Micro,它使用三种类型的传输:Intra-process通信、共享内存和基于UDP。RTI Connext DDS Micro通过Zero-copy和Flat Data提高了性能,分别减少了复制和序列化消息的开销。
尽管DDS使用多播作为发现机制,但是可以通过UDP传输机制使用单播或多播发送应用程序数据。默认情况下,RTI Connext DDS Micro使用单播,它更简单并且与网络交换机和其他网络基础结构进行更有效的交互。在将较大的消息发布给许多订户的某些应用程序中,使用多播传输可能是有益的。

性能调优——使用不同的参数运行测试后,我们找到了提高性能的方法。例如,使用ROS 2 PollingSubscription插件(使用rclcpp等待集)时,CPU利用率较高且延迟较高。rclcpp waitset_wait包装了下面的rcl等待集实现,这非常慢。在将实现切换为直接使用Connext DDS等待集之后,我们发现在减少延迟方面可以提高性能。

最后,我们想分享DDS层的重要性。在测试开源DDS时,我们在瑞萨R-Car H3上遇到了锁定问题,而这类问题很难重现。性能测试工具通过连续集成(CI)多次运行了性能测试,从而使检测故障更加容易。我们能够系统地应用修复程序,并最终找到了Apex.AI内部记录的解决方案。

综上所述,我们的研究和测试证明ROS 2在自动驾驶汽车生产中表现出卓越的性能。我邀请您根据我们在Apex.AI建立的框架,回顾我们针对ROS 2进行无偏且可重复的性能测试的方法。

关于作者

Dejan Pangercic是Apex.AI的首席技术官和联合创始人。在创建Apex.AI之前,他是法拉第未来(Faraday Future)的感知和框架负责人以及Deepfield Robotics的CTO。

Dejan还曾在Palo Alto的Bosch研究和技术中心担任高级研究工程师,并在慕尼黑工业大学担任研究助理。他是该领域或机器人技术和机器人感知领域的几篇论文和出版物的作者,并且是现场机器人技术领域的两项专利申请的作者。他还是点云库(PCL)的贡献者,也是ROS的早期开发者之一。Dejan是ROS 2技术指导委员会的成员。他组织了各种研讨会,并经常主持重要会议。Dejan拥有博士学位。在德国不来梅大学获得计算机科学博士学位,在斯洛文尼亚卢布尔雅那的卢布尔雅那大学获得电气工程硕士学位和学士学位。 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25