Skip to content

[Bug?] raw service definition is stored in mcap schema instead of actual message definition for service introspection topics #2365

@arneboe

Description

@arneboe

I am trying to see service introspection event topics in Lichtblick.
Lichtblick parses the message definition that is stored in mcap schema and currently fails to parse
the definition of service introspection topics.

For service introspection event topics, the mcap schema seems to contain the raw service definition instead
of the definition that describes the actual message.
E.g. for the add_two_ints service the text that is put into the mcap schema is:

================================================================================
SRV: rosbag2_test_msgdefs/srv/AddTwoInts
int64 a
int64 b
---
int64 sum

The actual message that is on the topic looks like this:

 ServiceEventInfo info;
AddTwoInts_Request[] request
AddTwoInts_Response[] response

Based on this, I would expect the string in the mcap schema to look like this:

service_msgs/msg/ServiceEventInfo info
rosbag2_test_msgdefs/srv/AddTwoInts_Request[<=1] request
rosbag2_test_msgdefs/srv/AddTwoInts_Response[<=1] response
 
================================================================================
MSG: service_msgs/msg/ServiceEventInfo
uint8 REQUEST_SENT=0
uint8 REQUEST_RECEIVED=1
uint8 RESPONSE_SENT=2
uint8 RESPONSE_RECEIVED=3
uint8 event_type
builtin_interfaces/Time stamp
char[16] client_gid
int64 sequence_number
 
================================================================================
MSG: builtin_interfaces/Time
int32 sec
uint32 nanosec
 
================================================================================
MSG: rosbag2_test_msgdefs/srv/AddTwoInts_Request
int64 a
int64 b
 
================================================================================
MSG: rosbag2_test_msgdefs/srv/AddTwoInts_Response
int64 sum

But instead it just contains the service definition.
This makes parsing in any external tool prone to errors because I have to make assumptions about the message structure based on the topic name alone.

Is this a bug or is this by design?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions