ROS2 serialization ConnextStaticSerializedData
Environment:
- ROS2 Dashing Patch 2
- Windows 10
- messages based on msg files (no idl yet, since I can't seem that to get that operational)
- RTI Connext DDS 5.3.1
Reproduction:
- Create a custom message type and a Publisher & Subscriber for it.
- Start your nodes
Expected behavior:
- They communicate - ok they do.
- Their type is observable through RTI's Admin Console
Observed behavior:
- The topic's type is not observable through RTI's Admin Console. Instead, Admin Console reports the type as "ConnextStaticSerializedData".
- Consequentially, the Admin Console shows shows only partial matches (conflicting data type).
- Even loading data types from XML (supported by RTI Admin Console) is not accepted (could be my mistake).
Question(s):
- Does this mean that ROS2 is using non-standard serialisation? Looking at the code it seems that serialisation happens independently in the ROS2 RMW layer and is then submitted as a serialized packet to a topic typed by ConnextStaticSerializedData, whatever the original type. This happens for custom types, but e.g. not for the rq/…/list_parametersRequest and other built-in types.
- Any way to avoid this behavior? It is quite annoying from an interoperability point of view (Admin console, but also other non ROS2 DDS-based applications).
- Does the behavior change when I would use IDL instead of msg files? I didn't find a way to get that working although it should work on Dashing.
Thanks, Johan