-
Notifications
You must be signed in to change notification settings - Fork 23
Add VDA 5050 message definitions and ros2_medkit Service Interface plugin #330
Copy link
Copy link
Open
Description
Summary
Add VDA 5050 v2.0.0 message definitions as a ROS 2 msgs package and a SOVD Service Interface gateway plugin that exposes medkit entity/fault data via ROS 2 services.
Motivation
VDA 5050 is the industry standard for fleet management of mobile robots. No complete, vendor-neutral VDA 5050 message definitions exist for ROS 2 Jazzy. Adding these to ros2_medkit:
- Positions ros2_medkit as authority on VDA 5050 + ROS 2
- Enables connecting VDA 5050 agents to bridge fleet management (VDA 5050/MQTT) with deep diagnostics (SOVD/medkit)
- The SOVD Service Interface plugin is reusable by any ROS 2 consumer (BT.CPP, PlotJuggler, RTMaps) - not VDA 5050-specific
Scope
New package: ros2_medkit_vda5050_msgs
- 44 ROS 2 message definitions covering all VDA 5050 v2.0.0 types
- 6 top-level messages (Order, State, InstantActions, Connection, Visualization, Factsheet)
- 38 sub-messages (Node, Edge, Action, ActionState, BatteryState, SafetyState, AgvPosition, etc.)
- Generated from official VDA 5050 JSON schemas (MIT, github.com/VDA5050/VDA5050)
New services in ros2_medkit_msgs
ListEntities.srv- query entity tree via ROS 2 servicesGetEntityData.srv- retrieve entity dataGetCapabilities.srv- query SOVD capabilitiesEntityInfo.msg- entity descriptor for service responses- Reuses existing
ListFaultsForEntity.srvfor fault queries
New plugin: ros2_medkit_sovd_service_interface
- Gateway plugin (GatewayPlugin + dlopen, PLUGIN_API_VERSION = 4)
- Creates 4 ROS 2 service servers exposing medkit data
- Uses PluginContext API (get_entity_snapshot, list_entity_faults, get_type_capabilities)
- 10 unit tests with FakePluginContext
Architecture
Fleet Manager (MQTT) <-> VDA 5050 Agent (out of scope)
|
ROS 2 services
|
SOVD Service Interface Plugin (this PR)
|
medkit gateway
References
- VDA 5050 spec: https://github.com/VDA5050/VDA5050
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels