通过一个快速的背景教程,介绍项目范围和安装所需的所有内容以及第一个运行示例。
首先:什么是冰羚?
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.
自定义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。
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 |
您可以在此处找到构建和安装指南。
在你构建了所有必要的东西之后,你可以继续使用这些例子。
如果你想避免在主机上安装任何东西,但你已经安装了Docker,那么可以使用它来构建和运行iceoryx应用程序。
有关如何做到这一点的信息,请参阅专用的README.md。
质量级别为5到1+,其中1+是最高级别。
请参阅质量声明,了解根据ROS 2指南的质量措施的详细信息。
CMake project/target |
Current Level |
Target Level QNX |
Target Level |
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中即将推出的功能和项目范围。
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 |