A Python framework for building UMAA-compliant unmanned maritime systems on RTI Connext DDS.
Full documentation — walkthroughs, guides, and API reference.
If you don't have an RTI Connext license, request a free evaluation at https://www.rti.com/free-trial — RTI will auto-respond to your email with a license file. Then point Connext to it:
export RTI_LICENSE_FILE=/path/to/rti_license.datcd python/
pip install -e .Requires Python ≥ 3.8.
Verified compatibility: Connext 7.3.0 and 7.7.0 have passed the full Python test suite in the repository Docker environments. See the Docker validation guide for image definitions and the complete test matrix.
cd examples/autopilot/
./start_autopilot.shInspect the repository participant QoS profile:
python tools/inspect_qos.pyThe discovery-only USV reference components create their declared UMAA DDS endpoints without publishing data or processing commands:
PYTHONPATH=. python -m examples.reference_components.run_component weatherSee reference_components/README.md for the available component names.
import asyncio
from rtiumaapy import DDSContext, set_timestamp
from rtiumaapy.services.so import HealthReportProvider
from rtiumaapy.datamodel.HealthReportType import (
UMAA_SO_HealthReport_HealthReportType as HealthReportType,
)
async def main():
ctx = DDSContext(domain_id=0) # 1. Create a DDS context
provider = HealthReportProvider(ctx) # 2. Create a pre-wired provider
sample = HealthReportType(source=ctx.source_id) # 3. Build a sample
set_timestamp(sample) # 4. Stamp it
provider.write(sample) # 5. Publish
await ctx.run_until_shutdown()
asyncio.run(main())For questions or issues, email services_community@rti.com.
Thanks to Devon at Penn State ARL for
early UMAA RTI Python explorations that helped inform this project.
The JHU APL and Penn State ARL C++ implementations
from the UMAA SDK
were used as reference throughout development.
See LICENSE for details.