USTM (UMAA System Test Monitor) is an automated tool that monitors DDS messages to aid in compliance checking to the UMAA standard. The UMAA SDK demonstrates USTM compliance feedback via a localhost web GUI, but USTM is also capable of producing JUnit XML outputs as part of a CI/CD pipeline.
Note: Passing USTM alone does not indicate full UMAA compliance.
For SDK v1.0.0, USTM supports the following verification for all UMAA v6.0 services:
- Topic name validation
- Type name validation
- Strict type matching
- Range-boundary validation for all UMAA types with range boundaries defined
- Ability to set custom range-boundary values for stricter testing
- UMAA command state-transition flow control
- Support for LargeList and LargeSet validation
- Component-level grouping / validation of services
docker load -i my-image.tarTo run only the USTM images, comment out the other services in the
docker-compose.yml and bring up the remaining stack:
docker compose upIn qos/umaa_qos_lib.xml, uncomment the USTM topic-filter lines:
<datawriter_qos topic_filter="*" base_name="USTMQoS" />
<datareader_qos topic_filter="*" base_name="USTMQoS" />Then restart the autopilot (or your component).
Edit config/ustm/usersystemconfiguration.yaml in the SDK archive to match
your component's source GUID and domain ID. The autopilot start script
(start_autopilot.sh) uses the GUID 5f0294efd54642e1a3fe666ace569336 and
domain 0 by default — ensure these values match the USTM configuration.
Start the autopilot to exercise topic name, type name, and report publishing validation:
./python/examples/autopilot/start_autopilot.shTo also validate command state-transition flow control, run the GlobalVector consumer in a separate terminal while the autopilot is running:
./python/examples/globalvector_consumer/start_globalvector_consumer.sh -vThe consumer sends a command and drives the full UMAA command lifecycle (ack → status → execution-status → terminal), which USTM monitors for flow-control compliance.
Currently the RTI UMAA Python SDK passes USTM validation for:
- Topic name — all topics match the UMAA naming convention
- Type name — all types match the UMAA type naming convention
- Range-boundary validation — field values conform to UMAA-defined ranges
- Command flow control — GlobalVector command lifecycle transitions are correct
Open the USTM web interface at http://localhost:81/ and confirm
that your component's topics and data appear in the dashboard.