Eclipse iceoryx 是快速、灵活且可靠的中间件解决方案为汽车、机器人、人工智能等应用提供实时数据传输。
Eclipse 基金会是全球最大的开源基金会之一,近日 Eclipse 基金会在 GitHub 上开源了一个项目 —— Eclipse iceoryx,这是一个进程间通信(IPC,inter-process-communication)的中间件,能够实时传输大量数据。这使它成为了需要以极低延迟交换大量数据的应用的理想选择,如汽车应用、机器人和人工智能等领域。iceoryx 实现了新的响应水平,同时也为特定应用中的其他功能释放了运行时间资源。
Eclipse 基金会执行董事 Mike Milinkovich 表示:"Eclipse iceoryx 是开源软件解决关键行业需求的一个绝佳案例。Eclipse iceoryx 背后的技术起源于汽车领域。一辆传统的非自动驾驶汽车中的软件通常会运行 1 亿行左右的代码,而对于一辆自动驾驶汽车来说,这一代码量迅速扩大到 3-5 亿行。与此同时,车辆还将需要处理高达 10GB/s 的传感器数据,以做出实时的、对安全至关重要的决定。Eclipse iceoryx 提供了一个快速、灵活和更可靠的方式,以在系统之间实时交换如此大量的数据。"
Eclipse iceoryx 具有的特性包含以下几点:
- 真正的零拷贝共享内存通信;
- 信息传输的延迟小于 1 微秒;
- 用于处理 GB/s 的数据传输;
- 支持多种操作系统、通信模式和 API;
- 易于集成到 ROS 2 或 AUTOSAR Adaptive 等框架中;
- 基于静态内存和 lock-free 算法的实现;
- 具有安全 STL 实现的巨大的 C++ 库;
在现代处理器上,无论消息的大小,iceoryx 传输消息的延迟都小于 1 微秒。在这种速度下,Eclipse iceoryx 实现了所谓的真正零拷贝(zero-copy)。这是一种从发布者到订阅者的端到端方法,没有创建一个副本。当机器人和自动驾驶系统每秒必须处理以 GB 为单位的传感器数据时,避免 API 层面的拷贝是至关重要的。
在灵活性方面,Eclipse iceoryx 目前已经支持 Linux、QNX 和 macOS 作为操作系统,以及 C 和 C++ 作为用户 API。针对 Windows 和 Rust 的适配也正在开发中。Eclipse iceoryx 还被用于机器人操作系统(ROS 2)框架中,作为高性能 IPC 传输层构建机器人应用。