Feature Request
Please expose DDS network configuration in Rewire, particularly:
- DDS/RTPS port base, currently typically
7400.
- Static discovery peers, including explicit
IP:port endpoints.
- Network interface selection.
- Ability to disable multicast and use unicast discovery.
This would allow Rewire to connect directly to ROS 2 deployments with non-default DDS networking.
Use Case
I'm using Rewire 0.11.0 to visualize topics from an embedded device running ROS 2 with CycloneDDS.
The device intentionally uses DDS base port 7600
Multicast discovery is disabled.
On my workstation, the following CycloneDDS configuration successfully discovers the device's topics through ros2 topic list:
<CycloneDDS xmlns="https://cdds.io/config">
<Domain id="any">
<General>
<Interfaces>
<NetworkInterface name="eth0" />
</Interfaces>
<AllowMulticast>false</AllowMulticast>
</General>
<Discovery>
<ParticipantIndex>auto</ParticipantIndex>
<MaxAutoParticipantIndex>50</MaxAutoParticipantIndex>
<Peers>
<Peer Address="192.X.X.X" />
</Peers>
<Ports>
<Base>7600</Base>
</Ports>
</Discovery>
</Domain>
</CycloneDDS>
Interface name is illustrative.
However, Rewire does not discover these topics when launched from the same terminal with the correct CYCLONEDDS_URI exported.
Rewire's logs identify its DDS backend as Iris/RustDDS, so I understand that CycloneDDS-specific environment variables do not necessarily apply. I could not find equivalent peer or port-base settings in rewire record --help or rewire config generate.
Proposed Configuration
An implementation-independent DDS configuration section could expose these settings without requiring support for CycloneDDS XML:
{
transport: "dds",
domain_id: 0,
dds: {
port_base: 7600,
interfaces: ["eth0"],
multicast: false,
peers: ["192.168.41.1"],
},
}
This is a suggested schema, not existing syntax. Explicit peer ports such as "192.168.41.1:7610" would also be useful.
Ideally, the configuration would apply consistently to record, doctor, and mappings generate. doctor could report the effective DDS domain, interfaces, discovery ports, and peers to simplify troubleshooting.
Expected Behavior
Rewire discovers and subscribes to topics on a custom-port, unicast-only DDS network without requiring changes to the embedded device or an additional bridge.
Alternatives Considered
- Changing the device to the default DDS port base: internal constraints
- Changing
ROS_DOMAIN_ID: changes the logical domain and is not equivalent to configuring a port base.
- Adding a local bridge: potentially workable, but adds processes, configuration, and another compatibility layer.
If this configuration is already supported through Iris/RustDDS, documenting how to pass it through Rewire would also address the request.
Thank you very much for taking this request into account and please keep me updated about the feasibility of this (I can totally understand if it's not worth developing)
Feature Request
Please expose DDS network configuration in Rewire, particularly:
7400.IP:portendpoints.This would allow Rewire to connect directly to ROS 2 deployments with non-default DDS networking.
Use Case
I'm using Rewire 0.11.0 to visualize topics from an embedded device running ROS 2 with CycloneDDS.
The device intentionally uses DDS base port
7600Multicast discovery is disabled.
On my workstation, the following CycloneDDS configuration successfully discovers the device's topics through
ros2 topic list:Interface name is illustrative.
However, Rewire does not discover these topics when launched from the same terminal with the correct
CYCLONEDDS_URIexported.Rewire's logs identify its DDS backend as Iris/RustDDS, so I understand that CycloneDDS-specific environment variables do not necessarily apply. I could not find equivalent peer or port-base settings in
rewire record --helporrewire config generate.Proposed Configuration
An implementation-independent DDS configuration section could expose these settings without requiring support for CycloneDDS XML:
This is a suggested schema, not existing syntax. Explicit peer ports such as
"192.168.41.1:7610"would also be useful.Ideally, the configuration would apply consistently to
record,doctor, andmappings generate.doctorcould report the effective DDS domain, interfaces, discovery ports, and peers to simplify troubleshooting.Expected Behavior
Rewire discovers and subscribes to topics on a custom-port, unicast-only DDS network without requiring changes to the embedded device or an additional bridge.
Alternatives Considered
ROS_DOMAIN_ID: changes the logical domain and is not equivalent to configuring a port base.If this configuration is already supported through Iris/RustDDS, documenting how to pass it through Rewire would also address the request.
Thank you very much for taking this request into account and please keep me updated about the feasibility of this (I can totally understand if it's not worth developing)