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