• Eclipse iceoryx™ - 真正的零拷贝进程间通信


    1 序言

            通过一个快速的背景教程,介绍项目范围和安装所需的所有内容以及第一个运行示例。

            首先:什么是冰羚?

            iceoryx是一个用于各种操作系统的进程间通信(IPC)中间件(目前我们支持Linux、macOS、QNX、FreeBSD和Windows 10)。它起源于汽车行业,在汽车行业,当涉及到驾驶员辅助或自动驾驶系统时,必须在不同的进程之间传输大量数据。然而,高效的通信机制也可以应用于更广泛的用例,例如在机器人或游戏开发领域。

            iceoryx使用一种真正的零拷贝共享内存方法,允许在没有单个拷贝的情况下将数据从发布者传输到订阅者。这确保了数据传输具有恒定的延迟constant latency,而不管有效负载的大小。有关更多信息,请查看1000字的iceoryx简介。

            中间件是一个混乱的术语,可能是全部,也可能什么都没有。为了更好地了解这对iceoryx意味着什么,请看看我们的目标和非目标

            将非类型化的C++和C API想象成一个“管道”(“管道”在Git中定义,意思是低级)。我们自己并不使用“管道”API,而是使用类型化的C++API。通常的使用情况是,iceoryx作为高性能IPC传输层集成在一个更大的框架中,并具有额外的API层。这种“美瓷”API的一个例子是ROS 2。

            您可以在上找到完整的API文档🌐 https://iceoryx.io.

    2 支持的平台

            自定义iceoryx平台文章中描述了对新平台的修改或添加。

    Operating System

    操作系统

    Compiler

    编译器

    supports access rights for shared memory

    支持共享内存的访问权限

    command line parsing

    命令行解析

    Linux

    gcc/clang

    yes

    yes

    QNX

    gcc

    yes

    yes

    MacOS

    clang

    no, not planned for implementation

    yes

    Windows 10

    msvc

    no, not planned for implementation

    will be implemented

    FreeBSD (Unix)

    clang

    no, not planned for implementation

    yes

            一般来说,unix平台应该使用iceoryx,但我们只在CI上测试FreeBSD。

    3 Eclipse iceoryx在哪里使用?

    Framework

    Description

    ROS 2

    Eclipse iceoryx can be used inside the Robot Operating System with rmw_iceoryx

    Eclipse eCAL

    Open-source framework from Continental AG supporting pub/sub and various message protocols

    RTA-VRTE

    AUTOSAR Adaptive Platform software framework for vehicle computer from ETAS GmbH

    Cyclone DDS

    Performant and robust open-source DDS implementation maintained by ZettaScale Technology

    Apex.Ida from Apex.AI

    Safe and certified middleware for autonomous mobility systems from Apex.AI

    AVIN AGNOSAR Adaptive Platform

    AUTOSAR Adaptive Platform Product from AVIN Systems

    4 编译和安装

            您可以在此处找到构建和安装指南。

    5 例子

            在你构建了所有必要的东西之后,你可以继续使用这些例子

    6 在Docker环境中构建和运行

            如果你想避免在主机上安装任何东西,但你已经安装了Docker,那么可以使用它来构建和运行iceoryx应用程序。

            有关如何做到这一点的信息,请参阅专用的README.md

    7 质量水平和平台

            质量级别为5到1+,其中1+是最高级别。

            请参阅质量声明,了解根据ROS 2指南的质量措施的详细信息。

    CMake project/target

    Current Level

    Target Level QNX

    Target Level 
    Linux, Windows, macOS

    iceoryx_hoofs

    2

    1+

    1

    iceoryx_posh

    2

    1+, 2

    1

    iceoryx_dust

    2

    2

    2

    iceoryx_binding_c

    2

    2

    2

    iceoryx_examples

    5

    4

    4

    iceoryx_introspection

    5

    4

    4

    iceoryx_meta

    5

    5

    5

    7 计划中的功能

            了解PLANNED_features.md中即将推出的功能和项目范围。

    8 iceoryx实现的绑定和创新

    Name

    Description

    Technologies

    iceoryx-rs

    Rust binding for iceoryx

    Rust

    iceoryx-automotive-soa

    Binding for automotive frameworks like AUTOSAR Adaptive ara::com

    C++

    iceoryx-gateway-dds

    Gateway for Cyclone DDS

    DDS

    iceray

    An iceoryx introspection client written in Rust

    Rust

    Larry.Robotics

    An iceoryx demonstrator for tinker, thinker and toddler

    Demonstrator

  • 相关阅读:
    虹科示波器 | 汽车免拆检修 | 2010款江铃陆风X8车发动机怠速抖动、加速无力
    自增自减运算符i++与++i的区别
    排序算法-----快速排序(递归)
    AI网关结合智慧路灯杆可以开发什么应用
    软件杯 深度学习 opencv python 实现中国交通标志识别_1
    SpringCloud之RocketMQ3
    单片机操作系统,按键与FIFO
    JavaWeb、JDBC
    ADworld reverse wp easyre-153
    安卓毕业设计选题基于Uniapp实现的Android的餐饮管理系统实现的App
  • 原文地址:https://blog.csdn.net/pony12/article/details/133650416