Skip to content

1.1.0

Compare
Choose a tag to compare
@ds58 ds58 released this 04 Dec 23:03
· 21 commits to develop since this release

1.1.0 Release notes

ROS2NodeBuilder

In previous versions of ihmc-ros2-library, the constructors for ROS2Node and RealtimeROS2Node were confusing, leading to dependent projects creating helper classes to construct these.

The constructors for ROS2Node and RealtimeROS2Node have been made package private. You now create ROS2Node and RealtimeROS2Node with ROS2NodeBuilder:

ROS2Node ros2Node = new ROS2NodeBuilder().build("test_node");
RealtimeROS2Node realtimeROS2Node = new ROS2NodeBuilder().buildRealtime("realtime_test_node");

More complex example:

RealtimeROS2Node node = new ROS2NodeBuilder().domainId(112)
                                     .namespace("/us/ihmc")
                                     .specialTransportMode(SpecialTransportMode.INTRAPROCESS_ONLY)
                                     .buildRealtime("realtime_test_node");

This should simplify creation and remove the need for 3rd party helper classes just to construct a ROS2Node or RealtimeROS2Node.

SpecialTransportMode

SpecialTransportMode is used with ROS2NodeBuilder to define transport implementation of a ROS2Node. It effectively replaces PubSubImplementation.

Modes:

  • SHARED_MEMORY_ONLY
  • UDPV4_LOOPBACK_ADDRESS_ONLY
  • UDPV4_ONLY
  • INTRAPROCESS_ONLY

See the javadoc on SpecialTransportMode for more in-depth description of each of the Modes.

⚠️ Removal of classes

The following classes have been removed and merged with the existing inheritance structure:

  • ROS2NodeBasics (replace with ROS2Node)
  • ROS2NodeInterface (replace with ROS2Node)
  • ROS2PublisherBasics (replace with ROS2Publisher)
  • PubSubImplementation (use the ROS2NodeBuilder to define transport implementation of a ROS2Node)

Fast-DDS upgrade

The version of Fast-DDS ihmc-ros2-library has been upgraded from v2.14.3 to v2.14.4. Full list of changes here.

CI changes

There is now an additional CI job to run JUnit tests on Windows for more platform coverage. macOS CI coming soon.

Full list of changes

  • Upgrade dependencies, ROS2 common interfaces by @ds58 in #22
  • xjc generation changes by @ds58 in #24
  • Fix REPO_ROOT in cppbuild.bash by @ds58 in #25
  • Remove ROS2NodeBasics by @ds58 in #27
  • Remove ROS2NodeInterface by @ds58 in #28
  • Remove ROS2PublisherBasics by @ds58 in #29
  • Transport fixes and cleanup by @ds58 in #30
  • Remove PubSubImplementation by @ds58 in #31
  • Create ROS2NodeBuilder by @ds58 in #32
  • Upgrade ihmc-commons to 0.35.0 and use Throttler in QueuedROS2Publisher by @ds58 in #35
  • Fast-DDS 2.14.4 upgrade by @ds58 in #34
  • Update main README and examples by @ds58 in #36