Fast DDS Integration in Project Iris
**Fast DDS** (Fast Data Distribution Service) is the communication backbone of Project Iris. DDS is the industry-standard publish/subscribe middleware that ROS 2 relies on for data exchange, and eProsima’s Fast DDS is the default DDS vendor in ROS 2:contentReference[oaicite:9]{index=9}. By building directly on Fast DDS, Project Iris achieves native ROS 2 compatibility and outstanding performance.
Fast DDS is known for its low latency and high throughput. In fact, it has been benchmarked as the fastest open-source DDS implementation, outperforming even Eclipse Cyclone DDS in both throughput and latency:contentReference[oaicite:10]{index=10}. This means Project Iris can handle high-frequency sensor data and control messages with minimal delay, a critical factor for real-time robotics simulation.
Why Fast DDS over other approaches?
- **Direct ROS 2 Compatibility:** Using Fast DDS means Project Iris speaks the same "language" as ROS 2 out-of-the-box. There’s no translation layer or separate bridge process – Unreal Engine clients become DDS participants on the ROS 2 network. This contrasts with older solutions like *ROSIntegration* (which used a ROS1 rosbridge server for communication:contentReference[oaicite:11]{index=11}) and thereby required translating messages to JSON over WebSockets, adding latency and complexity.
- **Performance and Efficiency:** Fast DDS’s optimized C++ implementation and features like zero-copy transport give it an edge for real-time simulation data:contentReference[oaicite:12]{index=12}. Project Iris avoids unnecessary serialization overhead; for example, large image or point cloud messages can be transmitted efficiently without the significant slowdowns seen in rosbridge-based pipelines (which often struggle with high-bandwidth data).
- **Minimal Dependencies:** Because Project Iris integrates at the DDS layer, you don’t need a full ROS 2 installation to use it:contentReference[oaicite:13]{index=13}. Alternative plugins like *rclUE* embed the ROS 2 client libraries inside Unreal:contentReference[oaicite:14]{index=14}, which can increase complexity and package size. In contrast, Project Iris includes just the DDS middleware and generated message code it needs – keeping the plugin lightweight and deployment simple.
- **Quality of Service Control:** Leveraging DDS means we expose ROS 2’s rich QoS settings to Unreal developers. You can configure reliability (reliable vs. best-effort), durability, message history depth, and more to suit your simulation’s needs:contentReference[oaicite:15]{index=15}. This level of control isn't available in simplistic socket-based bridges. With Fast DDS, Project Iris can ensure, for instance, that critical control commands are delivered reliably, or that high-bandwidth topics like video can be sent best-effort to maximize frame rate.
- **Future-proof and Extensible:** Fast DDS is maintained as part of the ROS 2 ecosystem, benefiting from continuous improvements and full ROS 2 compatibility. By using DDS, Project Iris naturally stays compatible with new ROS 2 distributions (which continue using DDS) and can interoperate with other DDS-based tools and frameworks. The architecture is also extensible – if needed, support for other DDS vendors or transports could be added without changing the user-facing API, thanks to the abstraction DDS provides.
Real-World Performance
In internal tests and community benchmarks, Fast DDS consistently demonstrates low latencies (on the order of milliseconds or less for typical message sizes) and the ability to push large volumes of data. For example, eProsima showed that enabling zero-copy delivery can yield an order-of-magnitude higher throughput for large data samples:contentReference[oaicite:16]{index=16}. While exact performance will depend on your network and hardware, Project Iris’s use of Fast DDS means you’re building on a proven high-performance foundation rather than an ad-hoc bridging solution.