Developer Guide

Installation & Setup

Getting started with Project Iris is straightforward. You can install the plugin from the Unreal Marketplace (search "Project Iris") or via our GitHub releases. After installation, enable the **ProjectIris** plugin in your Unreal Engine project settings and restart the editor. The plugin does not require a separate ROS 2 installation – all necessary communication libraries (Fast DDS and message definitions) are bundled:contentReference[oaicite:25]{index=25}. (On Windows, ensure Visual C++ redistributables are installed if deploying, as the DDS library may depend on them. On Linux, the plugin ships with precompiled libraries for easy setup.)

By default, Project Iris will use ROS 2’s default domain (ID 0). If you need to change the DDS domain to match your ROS 2 network (for example, if isolating multiple simulations), you can do so in the Project Settings under **Project Iris → Networking**. Similarly, you can specify if the plugin should use a ROS 2 Discovery Server or other advanced DDS options if your deployment requires it (see advanced documentation).

Quick Start Example

Let’s walk through a simple use-case: **Streaming a Camera to ROS 2**.

  1. In Unreal Editor, select the Camera actor in your scene (or add a new Camera).
  2. In the **Details** panel, click **Add Component** and choose IrisPublisher (from the Project Iris category).
  3. With the IrisPublisher component selected, find its settings:
    • Set **Message Type** to sensor_msgs/Image (this tells IrisCore what type of ROS 2 message to use for the camera feed).
    • Set **Topic Name** to something like /camera_front/image_raw – this is the ROS 2 topic name that will be used.
    • Optionally adjust the **Publish Rate** (for example, 30 Hz for a reasonable frame rate).
    • Ensure **QoS** is set as desired (e.g., reliability = Best Effort for images by default, which is typical).
  4. Press Play. Now, on the ROS 2 side (on any machine reachable on the network, or the same machine), you can run:
    $ ros2 topic list
    You should see /camera_front/image_raw in the list. ROS 2 nodes can subscribe to this topic (e.g., ros2 topic echo /camera_front/image_raw or view it in RViz) and receive the images from Unreal in real time.

That’s it – you have a live Unreal Engine camera publishing to ROS 2! The process for other sensors or data (Lidar scans, IMUs, etc.) is similar: attach an Iris publisher component, select the appropriate message type (e.g., sensor_msgs/LaserScan, sensor_msgs/Imu) and configure the topic name. For controlling Unreal from ROS 2, you would use IrisSubscriber components in a similar fashion to receive data.

Key Components & API

Project Iris provides both Blueprint and C++ APIs. Here’s a brief overview of the primary components and classes:

The C++ API mirrors these capabilities. For instance, you can include the Project Iris headers and use classes like UIrisPublisherComponent in C++ to create a publisher programmatically, or call functions to send messages. Consult the full API reference for details on each class and method.

Further Documentation & Support

For more detailed documentation, please refer to our **Project Iris Documentation Portal** (link) which includes a full user manual, troubleshooting guide, and API reference. There you’ll find information on advanced configuration, using Discovery Servers, performance tuning tips (like adjusting thread priorities or buffer sizes), and more.

If you encounter any issues or have questions, check out the **Community & Support** channels. We have an active Discord community and GitHub discussions where you can ask questions, report bugs, or share your use cases. Links to these can be found on our Contact page. We’re committed to making Project Iris useful for the community – contributions and feedback are welcome!

Note:

Project Iris currently targets ROS 2 Humble (and should work with Iron and later, as ROS 2 is backward-compatible at the DDS level):contentReference[oaicite:28]{index=28}. Ensure that your ROS 2 nodes are using a DDS implementation compatible with Fast DDS (which is the default for ROS 2) for best results. Mixed environments (different ROS 2 versions or different DDS vendors) are supported in principle via DDS, but sticking to the same ROS 2 distribution and Fast DDS is recommended for smooth operation.

Windows and Linux are fully supported for development. (As of the current release, MacOS support is experimental.) Notably, unlike some alternatives, Project Iris does work on Windows out-of-the-box – this was a priority in our development, as we know many Unreal users develop on Windows (in contrast, the rclUE project had limited Windows support):contentReference[oaicite:29]{index=29}.