nasa/ogma
Generator of runtime monitors for flight and robotics applications.
What it solves
Ogma is a tool designed to integrate safe runtime monitors into larger software systems, specifically for high-reliability environments like spacecraft and robotics. It automates the glue code generation needed to connect high-level runtime verification frameworks (specifically Copilot) to real-world data sources like message buses and software buses.
How it works
Ogma extends the Copilot framework to generate hard real-time C99 code. It acts as a bridge between the monitoring specifications and the target platform by generating the necessary application wrappers and message handlers. It supports several target environments:
- NASA Core Flight System (cFS): Generates applications that subscribe to the software bus, process incoming messages, and trigger fault handlers when properties are violated.
- Robot Operating System (ROS): Generates monitoring applications that subscribe to ROS topics to obtain data and report violations.
- F' (F Prime): Generates runtime monitoring components.
- Diagrammatic Input: Can generate monitors directly from diagrams in formats like DOT/Graphviz or Mermaid.
Who it’s for
It is intended for software engineers and systems engineers working on safety-critical embedded systems, robotics, and aerospace software who need to ensure their systems behave correctly at runtime.
Highlights
- Multi-platform support: Native generation for NASA cFS, ROS, and F Prime.
- Automated Glue Code: Handles the tedious process of creating message handlers and C struct interfaces.
- Customizable Templates: Allows users to provide their own templates to customize the generated application structure.
- External Translation: Supports translating properties via external commands or LLMs (though the user is responsible for verifying the output).
- Real-time focus: Produces C99 code suitable for hard real-time constraints.
Related
- Project
- Project
- Project
- Project
- Dispatch