Releases: ihmcrobotics/ihmc-ros2-library
1.1.3 Release Notes
1.1.2 Release Notes
Changes
Adds missing directory (common_interfaces) in ros2-common-interfaces artifact
1.1.1 Release Notes
1.1.0
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
1.0.0 Release Notes
Project rename
This project has been renamed from ihmc-java-ros2-communication
to ihmc-ros2-library
The subproject ihmc-ros2-library
has been renamed to ros2-library
to avoid conflict with the parent
Merger with ihmc-pub-sub-group
This project has been merged with ihmc-pub-sub-group. Commit history has been preserved from both projects.
0.24.4 Release Notes
- Upgrade to ihmc-pub-sub 0.20.0*
*The ihmc-pub-sub upgrade updates the Fast-DDS library to version v2.14.3
. There were API changes, please see the linked release if you use ihmc-pub-sub API directly.
0.24.3 Release Notes
- Upgrade to ihmc-pub-sub 0.19.2
- Switch XML libraries (#17)
0.24.0 Release Notes
- ROS 2 common interfaces (default message types and Euclid type support) are now included with the library artifact. This is done so publishers and subscribers for the DDS common types including Euclid types can be created without external code/tricks.
- ROS2Publisher and QueuedROS2Publisher now have improved error output and exception handling
- Empty classes RealtimeROS2Publisher and RealtimeROS2Subscription have been removed. They weren't actually providing realtime functionality.
- ROS2Callback is now deprecated. You should use ROS2NodeInterface#createSubscription2 instead.
- APIs have been filled in to include ROS2Topic
- Creating nodes, publishers, and subscribers no longer throws IOException. This wasn't useful and just made the library frustrating to use.
- Quality of service (QoS) is now a setting of ROS2Topic. Each topic should define it's own QoS.
- RELIABLE is now an explicitly named ROS2QoSProfile option.
- DEFAULT quality of service (QoS) is now BEST_EFFORT instead of RELIABLE to help alleviate comms issues. This is only used if the topic does not specify the QoS to use. The default QoS can be set with the ROS_DEFAULT_QOS environment variable.
- The DEFAULT_NAMESPACE is now accessible via the public field in ROS2NodeBasics.
0.17.0 Release Notes
Uses IHMC Pub Sub 0.14.0 w/ Fast-RTPS 1.9.4
0.14.2 Release Notes
Features
- Add
Ros2PublisherBasics