eProsima / Integration-Service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using differents XML profiles for differents Systems

marcus89 opened this issue · comments

Dear All,

I am currently trying to use Integration Service as a ROS2 Domain router.
Using the provided examples (Yaml files), all work well. I am able to forward topics from ROS2 Domain 1 to ROS Domain 2.

Now, I want to use different XML profile files to configure each Systems (ROS2 Domain1 and ROS2 Domain2).
Basically, when I want to use a XML profile file for a single ROS2 node, I use the environment variable "FASTRTPS_DEFAULT_PROFILES_FILE" to set the right profile to use.

When using Integration Service, it is not possible to define an XML profile file using FASTRTPS_DEFAULT_PROFILES_FILE, for each ROS2 Systems. This is only available for FastDDS System.
The purpose of this setup is to change the DDS discovery, the DDS Participant ID and others parameters in section.

The following is an example of my XML profile file I want to use for one ROS2 Systems :

        <participantID>2</participantID>
        <builtin>
            <metatrafficMulticastLocatorList>
                <!-- LOCATOR_LIST -->
                <locator>
                    <udpv4>
                        <address>239.255.0.1</address>
                        <port>30001</port>
                    </udpv4>
                </locator>
            </metatrafficMulticastLocatorList>

            <metatrafficUnicastLocatorList>
                <!-- LOCATOR_LIST -->
                <locator>
                    <udpv4>
                        <address>192.168.1.10</address>
                        <port>30012</port>
                    </udpv4>
                </locator>
            </metatrafficUnicastLocatorList>
        </builtin>

        <defaultUnicastLocatorList>
            <!-- LOCATOR_LIST -->
            <locator>
                <udpv4>
                    <address>192.168.1.10</address>
                    <port>30010</port>
                </udpv4>
            </locator>
        </defaultUnicastLocatorList>

        <defaultMulticastLocatorList>
            <!-- LOCATOR_LIST -->
            <locator>
                <udpv4>
                    <address>239.255.0.1</address>
                    <port>30001</port>
                </udpv4>
            </locator>
        </defaultMulticastLocatorList>
    </rtps>
</participant>

In my understanding, when using ROS2, rmw_fastrtps_cpp is responsible for loading and applying DDS configuration provided by FASTRTPS_DEFAULT_PROFILES_FILE. But rmw_fastrtps_cpp is definitely not used by Integration Service. Am I right about this?

Is there a way to configure each Systems based on different XML profiles file?

Thank you for your answer.

Best Regards,
Marius

I am afraid that requires modifying the YAML configuration file systems definition in order to either accept an XML config file or accept directly a QoS specification.
We note down this as a desired feature but right now is not on our scope.