nasa/ogma

Generator of runtime monitors for flight and robotics applications.

解决的问题

Ogma 是一款旨在将安全的运行时监视器集成到大型软件系统中的工具,专门针对航天器和机器人技术等高可靠性环境。它实现了胶水代码生成的自动化,将高级运行时验证框架(特别是 Copilot)连接到消息总线和软件总线等真实世界的数据源。

工作原理

Ogma 通过扩展 Copilot 框架来生成硬实时 C99 代码。它通过生成必要的应用程序封装器和消息处理器,充当监控规范与目标平台之间的桥梁。它支持多种目标环境:

  • NASA Core Flight System (cFS): 生成订阅软件总线、处理传入消息并在违反属性时触发故障处理程序的应用程序。
  • Robot Operating System (ROS): 生成订阅 ROS 主题以获取数据并报告违规行为的监控应用程序。
  • F' (F Prime): 生成运行时监控组件。
  • 图示输入: 可以直接从 DOT/Graphviz 或 Mermaid 等格式的图表中生成监视器。

适用对象

适用于从事安全关键型嵌入式系统、机器人技术和航空航天软件工作的软件工程师和系统工程师,他们需要确保其系统在运行时表现正确。

亮点

  • 多平台支持: 为 NASA cFS、ROS 和 F Prime 提供原生生成。
  • 自动化胶水代码: 处理创建消息处理器和 C 结构体接口的繁琐过程。
  • 可定制模板: 允许用户提供自己的模板来定制生成的应用程序结构。
  • 外部转换: 支持通过外部命令或 LLM 转换属性(但用户负责验证输出)。
  • 专注于实时性: 生成适用于硬实时约束的 C99 代码。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch