Robotics & Autonomous Systems
ROS 2, humanoid robots, drones and autonomous vehicle systems.
Chunk-Header
Chunks are the transport capsules in iceoryx. They store data from a publisher as payload and are sent to one or more subscriber. Furthermore, there is some meta information which is stored alongside the payload, e.g. th
Read article →Service Discovery
Service discovery over IPC channel e.g. message queue or UNIX domain socket is not performant since larger data is transferred, which can lead to transmission of several frames. If lots of services are discovered at high
Read article →Logging and error handling
Logging is performed by the Iceoryx internal logger. The logger is used internally to record errors and general system runtime information. It can also be used by the user in application code for the same purpose.
Read article →Listener
The Listener is besides the WaitSet one of the building blocks to realize a push approach to detect and react to certain events. The Listener offers the user the ability to attach objects with a corresponding event and c
Read article →Lock-free Queue
We explain some details of the lock-free queue in order to provide an intuition for the way the lock-free queue works. This could serve as a basis for a formal proof later if desired.
Read article →Relocatable and Relative Pointers
When memory is shared between applications and each application maps the shared memory to a different starting address in its own address space, raw pointers cannot be used anymore. This is due to the fact that a pointer
Read article →Request/Response Communication
Beside the publish-subscribe messaging pattern initially supported by iceoryx, the request-response pattern is also widely used in the field where iceoryx is headed. Since we aim for a good integration with ROS 2, this i
Read article →Goals and non-goals
Andrew, the HAD developer Andrew is a software developer at a startup working on autonomous cars. Currently their project is using ROS, because it's easy to get the car driving. After some months, he's realizing that sen
Read article →Shared memory communication
When a process in a POSIX system starts it is given its own virtual address space.
Read article →FAQ
In this document are tips and hints documented which can help for troubleshooting on RouDi.
Read article →Configuration guide
When building iceoryx_posh, there are several configuration options set by default. These options adjust the limits of Publisher and Subscriber Ports for resource management. These limits are used to create management st
Read article →Installation guide for contributors
While developing on iceoryx, you may want to know if your changes will break existing functionality or if your newly written tests will pass. For that purpose, we generate CMake targets that execute the tests. First, we
Read article →Architecture
This article provides an overview of the Eclipse iceoryx architecture and explains the rationale for it.
Read article →Best practice for testing
This is a guide on how to write tests for iceoryx. It intends to cover the most common cases which will probably apply to 99% of tests. This shall not encourage to be more royalist than the king and common sense shall be
Read article →How optional and error values are returned in iceoryx
Many parts of the iceoryx C++ API follow a functional programming approach and allow the user to specify functions which handle the possible cases, e.g. what should happen when data is received.
Read article →QoS policies
Unlike other middlewares, e.g. DDS used in ROS 2, iceoryx keeps things simple and offers basic Quality of Service (QoS) settings. The QoS settings are called options and can be used to optimize and tailor the communicati
Read article →Installation
All iceoryx libraries are deployed as independent CMake packages. Posh is using functions from hoofs and is depending on it. You are able to build posh and hoofs and integrate them into existing CMake projects.
Read article →Overview
This document covers the core functionality of Eclipse iceoryx and is intended to provide a quick introduction to setting up iceoryx applications.
Read article →What is Eclipse iceoryx?
The technology behind Eclipse iceoryx originated in the automotive domain. With the introduction of video-based driver assistance, the amount of data to be exchanged between different threads of execution increased to GB
Read article →Welcome to iceoryx.io
Eclipse iceoryx™ is an inter-process-communication middleware that enables virtually limitless data transmissions at constant time.
Read article →iceoryx vx.x.x
Refactoring: Silence warnings when building with GCC 13 #2011
Read article →iceoryx v1.0.0
Description: This is the first major release for Eclipse iceoryx. That means it is the first release with long-term support and the adopters of iceoryx can rely on a stable API. The release called Almond allows for true
Read article →iceoryx v.1.0.1
Description: This is the first bugfix release for Eclipse iceoryx 1.0.0. We made minor changes in the documentation and added several patches.
Read article →iceoryx v.1.0.2
Bugfixes: Backporting Bugfixes for GCC 11 #1092
Read article →