A review of the new tools available for ROS 2 Foxy and Fast DDS

And more, much more:

Async and Sync publication mode: Depending on the application you could need Sync or Async Publishing. ROS 2 is Asynchronous by default, as it was ROS 1, and this is the behavior expected by most users, but we also support Synchronous. You can choose the behavior by just changing a parameter in an XML file.

DDS-XTypes APIs: This is an advanced feature allowing the user to create its data types at runtime without defining them on an IDL file in advance. You can use this feature for many applications, for example, we use dynamic types in the ROS 2 Integration Service, to create ROS 2 or DDS data types on the fly when routing information between two domains, WAN connections, or integrations with other protocols.

The XTypes can be used in combination with Topic and Data Type Discovery. You can information in our online docs: Discovery-Time Data Typing and Type Lookup Service

Multi-Network interface cards support and white list: Having more than one interface? No problem. Fast DDS uses all available network interfaces by default, except when the user configures a whitelist on the transport.

Persistence: ROS 2 allows you to send the history of published samples to late joining subscribers. By default this history is mantained in the publisher memory, but if you want a level more of persistence, Fast DDS allows you to set-up that history to be saved in persistent storage -a database-, us adding robustness to applications in the case of, for example, unexpected shutdowns. Configuring the persistence service, publishers and subscribers can resume their operation from the state in which they were when the shutdown occurred.

XML Profiles: Every feature can be set up using the Fast DDS XML profiles. No code required. Easy and Fast deployment of your application.

This was just a list in no specific order of things you can already do in Foxy with Fast DDS. We have a really comprehensive online doc, and we are continuously adding interesting use cases and tutorials, to both our docs and ROS 2 documentation.

If you are interested in what is coming next, please refer to this post in which we unveil our plans for Galactic.

1 Like