ROS 2 projects communicate over DDS, which attempts to use shared memory when possible for efficiency.
In order for this to occur, containers running DDS must be in the same shared memory and process space. This can be done by setting ipc: host
and pid: host
, or ipc: service:<service name>
and pid: service:<service name>
.
Balena currently supports the ipc
setting but not the pid
setting according to docker-compose.yml fields | balena.
It would be useful to support the pid: service:<service name>
option from the docker compose specification. This would help all robots running ROS 2 on balena.