当前位置:   article > 正文

汽车软件通信中间件iceoryx和它的零拷贝技术

iceoryx

1. iceOryx 是什么?

在这里插入图片描述
这是一头漂亮的"冰羚",它是一种用于汽车软件中的 ICP 通信中间件,由 Eclipse 基金会发布和维护。

通信中间件在汽车软件开发中占据越来越重要的地位,这是因为自动驾驶的发展带动了系统内部不同进程、线程之间巨量的数据交换,目前这样的通信量能达到 GB/s 以上,如何高效实现通信要求是每一个自动驾驶开发团队需要认真考虑的事情。

iceoryx 运用“零拷贝”技术实现进程间通信,具有快速、灵活和可靠的发布/订阅架构。

2. iceoryx 的特性

快速 灵活 可靠
真正的零拷贝技术,基于共享内存实现 多操作系统支持 根据汽车软件需求而设计
消息通信时延<1us 服务发现支持 基于静态内存和无锁算法的实现
数据通信效率达到 1GB/s 易于集成,能集成到ROS2、AP Autosar 等框架 大量的C++库(STL 安全实现)

综上所述,iceoryx 就是非常适合汽车软件开发的开源通信中间件,速度快易于集成。

所以,需要知名的软件中间件也已经可以集成 iceoryx 了。

  • Eclipse Cyclone DDS,
  • eCAL 来自 Continental,
  • RTA-VRTE 来自 ETAS
  • Apex.OS 来自 Apex.AI.

3. iceoryx 基础概念

iceoryx 的核心概念不多,只要掌握 RouDi、Runtime、Publisher、Subscriber、Topic 这些概念就可以进行基本通信功能的开发了。

3.1 RouDi

iceoryx 的守护进程,不同的应用需要与它进行连接才能正常通信。
重要提示:运行iceoryx程序前,一定要先启动守护进程 iox-roudi

# 在终端启动守护进程
iox-roudi
  • 1
  • 2
3.2 Runtime

每个需要在 iceoryx 框架下运行的应用,都需要初始化它的 runtime。

constexpr char APP_NAME[] = "frank909";
    iox::runtime::PoshRuntime::initRuntime(APP_NAME);
  • 1
  • 2
3.3 Publisher

数据发送器,需要绑定 topic 使用。

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/705872
    推荐阅读
    相关标签
      

    闽ICP备14008679号