Fast RTPS becomes Fast DDS in Foxy

With every ROS 2 release, eProsima works continuously on new features, innovative tools and the standard’s APIs to make Fast RTPS, what it is today, the most complete open source DDS middleware for ROS 2.

Especially the release of Foxy gives eProsima a reason to celebrate. We are proud to announce that the Fast RTPS implementation is finally compliant with the OMG DDS 1.4 and RTPS 2.2 standards.

As a symbol for this milestone we change the name of Fast RTPS to Fast DDS 2.0!

eProsima Fast DDS is a high performance publish subscribe framework to share data in distributed systems using a decoupled model based on Publishers, Subscribers and Data Topics.

Fast RTPS implemented already many DDS specifications like DDS Security, DDS-XTypes, RPC over DDS, DDS TCP PSM and Modern C DDS Mapping but some core DDS APIs were not compliant with the standard until now.

Besides the compliance aspect, Fast DDS 2.0 for Foxy also improved the Shared Memory transport and the configuration process of the Discovery Server.

For more information, check out our completely revised documentation for Fast DDS or the release news for Fast DDS 2.0:

Last but not least eProsima also updated Micro XRCE-DDS 1.3, our solution for eXtreme Resource Constrained Environments, such as Microcontrollers, and the base middleware of the micro-ROS project, the ROS 2 extension for Microcontrollers. Within the next few days, we will publish a new release of micro-ROS supporting Foxy.

11 Likes

Just as a note to readers: there are still many places in ROS 2 Foxy (and rolling) where the previous name is being used (e.g. the repository name in the distribution.yaml, the RMW_IMPLEMENTATION env var, the RMW and rosidl repositories, etc.).

2 Likes

Is there a plan to replace those references with the new name?

Great. But I don’t know how to create two nodes(publisher and subscriber) to use shm communication of inter-process, could you give some help?

First, create an XML file with the following content:

<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
    <transport_descriptors>
        <!-- Create a descriptor for the new transport -->
        <transport_descriptor>
            <transport_id>shm_transport</transport_id>
            <type>SHM</type>
        </transport_descriptor>
    </transport_descriptors>

    <participant profile_name="SHMParticipant" is_default_profile="true">
        <rtps>
            <!-- Link the Transport Layer to the Participant -->
            <userTransports>
                <transport_id>shm_transport</transport_id>
            </userTransports>
        </rtps>
    </participant>
</profiles>

Then launch your nodes with environment variable FASTRTPS_DEFAULT_PROFILES_FILE pointing to the full path of that XML file, i.e. FASTRTPS_DEFAULT_PROFILES_FILE=/path/to/config.xml

You can find additional configuration details on the parameters of the shared memory transport in the docs

1 Like