Skip to content

Add VDA 5050 message definitions and ros2_medkit Service Interface plugin #330

@mfaferek93

Description

@mfaferek93

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:

  1. Positions ros2_medkit as authority on VDA 5050 + ROS 2
  2. Enables connecting VDA 5050 agents to bridge fleet management (VDA 5050/MQTT) with deep diagnostics (SOVD/medkit)
  3. 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 services
  • GetEntityData.srv - retrieve entity data
  • GetCapabilities.srv - query SOVD capabilities
  • EntityInfo.msg - entity descriptor for service responses
  • Reuses existing ListFaultsForEntity.srv for 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

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