Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5345495B2 - 無人航空機用のモジュール式ソフトウェア・アーキテクチャ - Google Patents
[go: Go Back, main page]

JP5345495B2 - 無人航空機用のモジュール式ソフトウェア・アーキテクチャ - Google Patents

無人航空機用のモジュール式ソフトウェア・アーキテクチャ Download PDF

Info

Publication number
JP5345495B2
JP5345495B2 JP2009233253A JP2009233253A JP5345495B2 JP 5345495 B2 JP5345495 B2 JP 5345495B2 JP 2009233253 A JP2009233253 A JP 2009233253A JP 2009233253 A JP2009233253 A JP 2009233253A JP 5345495 B2 JP5345495 B2 JP 5345495B2
Authority
JP
Japan
Prior art keywords
segment
devices
segments
software
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009233253A
Other languages
English (en)
Other versions
JP2010160786A (ja
JP2010160786A5 (ja
Inventor
ジュリー・クリステンソン
リンダ・ワトソン
ジェフリー・マクナマラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2010160786A publication Critical patent/JP2010160786A/ja
Publication of JP2010160786A5 publication Critical patent/JP2010160786A5/ja
Application granted granted Critical
Publication of JP5345495B2 publication Critical patent/JP5345495B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)
  • Stored Programmes (AREA)
  • Navigation (AREA)

Description

本発明は、ソフトウェア・アーキテクチャの分野に関する。より詳細には、本発明は、無人航空機(UAV)などのような、複数の定義域や機能を含むシステムに適用することができる層及びセグメントにより編成されたモジュール式ソフトウェア・アーキテクチャに関する。
(政府ライセンス権)本発明は、米陸軍により与えられた契約第W56HZV−05−C−0724号の下での米国政府支援を受けながら行われたものである。米国政府は、本発明における特定の権利を有することがある。
UAVなどのような操縦士のいない飛行機が、軍事、警察、救助、科学、及び商業の分野で使用される。UAVの1つの定義は、制御され、持続力があり、動力が供給される飛行が可能な無人デバイスである。従って、UAVの設計には、様々なサイズ、機能、及び重量の飛行機が含まれる。典型的なUAVは、推進デバイス、例えばエンジンと、ナビゲーション・システムと、1以上のペイロード・センサと、場合によっては、貨物とで構成される。センサは、UAVが上空を飛行する地域に関する情報、例えば、救助用途での行方不明の徒歩旅行者に関するビデオ情報、科学やセキュリティ用途での環境状況に関するレーザ及び/又は生物学的センサからの情報、或いは軍事用途での戦場状況に関するビデオ、レーザ、生物学的センサ、及び他のセンサの組み合わせからの情報を、地上監視者に提供することができる。貨物は、UAVの任務に応じて、軍用品、食料品、医薬品、及び/又は他の物品であり得る。技術が進歩するにつれて、UAVの設計は、新規の及び/又は改良されたセンサ、ナビゲーション・システム、推進デバイスなどを統合するように変化する。
UAVは無人であるので、UAVに搭載された1以上のプロセッサ上で実行されるコンピュータ・ソフトウェアがUAVの一部又は全てを制御する。コンピュータ・ソフトウェアは、場合によっては地上監視者に補助されて、UAVにより行われる様々な機能を制御することができる。
本発明の第1の実施形態は、セグメント化され階層化されたシステム(セグメント化及び階層化システム)を制御するためのソフトウェアを開発する方法を提供する。セグメント化及び階層化システムは複数のデバイスを含む。セグメント化及び階層化システムの1以上のセグメントのそれぞれに関して、統合された機能(統合機能)が決定される。各セグメントは、1以上の層に配置された1以上のソフトウェア・エンティティを含む。各セグメントに関して、複数のデバイスのうちの1以上のものがセグメントに関連付けられ、セグメントのソフトウェア・エンティティの1以上のものが、関連付けられた1以上のデバイスのそれぞれに関連付けられる。1以上のセグメントのうちの各セグメントに関して、セグメント・インテグレータが決定される。1以上の実施規則が、ソフトウェアに関して決定される。1以上のセグメントのそれぞれの統合機能と、1以上の実施規則とに基づいて、セグメント化及び階層化システムを制御するためのソフトウェアが開発される。セグメント化及び階層化システムは計算デバイスを含み、ソフトウェアは、その計算デバイス上で実行可能である。
本発明の第2の実施形態は航空機を提供する。航空機は、制御盤と、エンジン制御ユニット(ECU)と、1以上の飛行制御デバイスと、1以上のナビゲーション・デバイスと、1以上の通信デバイスと、プロセッサと、データ記憶装置と、ソフトウェアとを含む。1以上の通信デバイスは、1以上の無線機及び/又は1以上のデータ・リンクを含む。ソフトウェアが、データ記憶装置に記憶され、プロセッサにより実行可能である。ソフトウェアは1以上のセグメントを含む。1以上のセグメントは、制御盤とインターフェースするように構成された電気セグメントと、ECUとインターフェースするように構成された推進セグメントと、1以上の飛行制御デバイスとインターフェースするように構成された飛行管理セグメントと、1以上のナビゲーション・センサとインターフェースするように構成されたナビゲーション・セグメントと、1以上の通信デバイスとインターフェースするように構成されたデータ・リンク・セグメントとを含む。
図面を参照しながら実施形態の様々な例が本明細書で説明されるが、図面中、同じ参照番号は同じエンティティを表す。
図1は、本発明の実施形態による例示的なUAVを示す。 図2は、本発明の実施形態による、セグメント化及び階層化システムを制御するための例示的なソフトウェア・アーキテクチャを示す。 図3は、本発明の実施形態による例示的な計算デバイスのブロック図である。 図4は、本発明の実施形態による、セグメント化及び階層化システムを制御するためのソフトウェアを開発するための例示的な方法を示す流れ図である。
本発明は、UAVや他の航空機などの、階層化され、セグメント化されたシステムを制御するためのソフトウェアを開発するための方法を含む。ソフトウェア開発を調整するために、セグメント化及び階層化アーキテクチャ(セグメント化され階層化されたアーキテクチャ)が提供される。セグメント化及び階層化アーキテクチャは、複数のセグメントと、複数の層との両方を備える。セグメントは、各セグメントが1以上の関連するデバイスとインターフェースするように、及び/又は1以上の関連のデバイスを制御するように、編成される。例えば、推進セグメントは、1以上のエンジン制御ユニット(ECU)、制動(ブレーキング)ユニット、及び/又は燃料コントローラを制御するために使用されることがあり、電気セグメントは、電気デバイス、例えば制御盤、電力制御スイッチ、電源モニタ、及び/又はライトとインターフェースするために使用されることがあり、ナビゲーション・セグメントは、ナビゲーション及び定位センサ(位置センサ)とインターフェースするために使用されることがある。
セグメント化及び階層化アーキテクチャは、「ソフトウェア・エンティティ」間の疎結合を推進する優れた設計のソフトウェア用のフレームワークを提供する。例示的なソフトウェア・エンティティは、ソフトウェア・オブジェクト、モジュール、関数、サブルーチン、コード、コンピュータ・データ、データ・オブジェクト、データベース、及び/又はデータ構造である。同様に、多くの他のソフトウェア・エンティティも想定可能である。
層は、階層をサポートし、階層において、ソフトウェア・エンティティは、そのエンティティの役割に基づいて或る層に配置され得る。セグメント化及び階層化アーキテクチャの層は、一般に全てのセグメントに共通の関数を備える。例えば、エグゼクティブ層は、セグメントに関する操作を実行する1以上のタスクをスケジュールすることができ、コントローラ層は、セグメント間、そして場合によっては層間の活動を調整することができ、ユーティリティ層は、全てのセグメントにより使用される関数を提供することができる。セグメント化及び階層化アーキテクチャは、様々な層及び/又はセグメントのオブジェクト間の対話を規定するための規則を指定することができる。
特に、セグメント化及び階層化アーキテクチャは、幾つかの関係付けられた及び進化するプロジェクト間の連続性及びベストプラクティス(最適の実践)を維持するのに適している。例えば、4つのプロジェクト間で共通のセグメント化及び階層化アーキテクチャが使用され、各プロジェクトが、前のプロジェクト(1または複数)から進化すると仮定する。共通のセグメント化及び階層化アーキテクチャで具現化される最初のプロジェクトから学んだレッスン(学習結果)は、次いで、後の3つのプロジェクトで自動的に適用される。なぜなら、それらは共通のセグメント化及び階層化アーキテクチャを使用するからである。
例示的なソフトウェア・アーキテクチャがUAV用に提供される。UAVソフトウェア・アーキテクチャは、推進セグメントと、電気セグメントと、UAVの飛行を制御するための飛行管理セグメントと、ナビゲーション・セグメントと、通信用のデータ・リンク・セグメントと、ペイロード・セグメントとを含む。UAVソフトウェア・アーキテクチャの層は、エグゼクティブ層と、ビークル・コントローラ層と、セグメントに特有の層と、セグメント・ユーティリティ層と、共通サービス層と、従来はオペレーティング・システムにより提供される機能を提供するボード・サポート・パッケージ/オペレーティング・システム層と、コンピュータ・ハードウェアを制御するため/コンピュータ・ハードウェアと対話するためのコンピューティング・プラットフォーム層とを含む。UAVソフトウェア・アーキテクチャは、他のセグメント化及び階層化システム、例えば、限定しない例として、有人航空機や、陸上、海上、若しくは空中で動作する他の軍用及び商用のビークルや、工場設備などにも同様に容易に適用可能である。
UAVソフトウェア・アーキテクチャのものと同一の階層化構造を用いる追加のセグメント又は層を容易に追加することができる。例えば、ユーザ・インターフェース・セグメントと、それに対応するユーザ・インターフェース層とを追加することができる。ユーザ・インターフェースは、ユーザ入力デバイス(例えば、操舵デバイス)及び/又はユーザ出力デバイス(例えば、ヘッドアップ・ディスプレイ、統合データ・ページ、及び/又は他のユーザ・ディスプレイ)を制御するセグメントを含むことができる。対応する層を(場合によっては、以下で図2を参照して後述されるビークル・コントローラ層の上に、又はビークル・コントローラ層の一部の代わりとして)追加することができ、必要に応じて、他のセグメントに対するユーザ・インターフェース・アクセス及び制御を可能にして、セグメント機能に対する操作者制御を提供する。追加のセグメント・オプションは、生命維持セグメントを含むことができ、これは、セグメント化及び階層化システムの操作者を守るために、気流及び温度制御デバイスなどのデバイス及びセンサを提供して制御する。別の例示的なセグメントは、有人飛行機や自動車などのユニット用の状況認識セグメントであり得、状況情報、例えば1以上のデジタル地図、該ユニット及び/又は他のユニットの現在位置情報、ユニット・タイプ(例えば、戦闘機、UAV、トラック、自動車)、サイズ(1又は複数)、及び/又はユニット・ステータス情報(例えば、味方、不明、及び/又は敵)を表示する。更に、ユニットの環境に関する情報、例えば温度、湿度、放射線レベル、生物学的センサ情報などを表示する環境セグメントが想定可能である。同様に、多くの他のセグメント及び層が想定可能である。
ソフトウェア・アーキテクチャは、セグメント化及び階層化システムを作成する開発機構(1以上)において広く普及しているので、セグメント化及び階層化システム用のコードを書くソフトウェア開発者は、開発グループでの共通言語としてアーキテクチャの用語を用いることにより、より効果的に意思疎通をはかることができる。共通言語の使用は、(a)ソフトウェア開発努力に関する包括的な構造を提供することにより、且つ(b)ソフトウェア開発者、経営者、顧客、及び第三の供給業者を含めての(これらに限定されない)ソフトウェア開発努力における利害関係者にセグメント化及び階層化システムを説明するために広く使用可能なリソースを提供することにより、各人の有効性を高める。ソフトウェア・アーキテクチャをセグメントに分割することにより、ソフトウェア開発者は各セグメントに個々に取り組むことができる。更に、共通言語の使用は、訓練活動の補助にもなる。
ソフトウェア・アーキテクチャが、一般的なよく知られているインターフェースを提供するので、新規の又は異なるプロジェクトでソフトウェア・エンティティ・コントローラを適合させるため、更にはセグメント及び層を再使用するために必要とされるソフトウェア開発努力の量が減少する。再使用されるソフトウェアは、開発時間及び共通言語を使用する開発者間での意思疎通時間をあまり必要としないので、ソフトウェアを再使用して効率的に意思疎通できることは開発時間を短縮する。再使用されるソフトウェアはデバッグ済みであるので、セグメント化及び階層化システムでのバグの数、従って、全体的なデバッグ努力が減り、同時に、システム全体の信頼性及び品質を高める。更に、「プラグ・アンド・プレイ」ソフトウェア・エンティティを、ソフトウェア・アーキテクチャにより定義されるインターフェースに準拠するように設計し、次いで、開発をほとんど又は全くせずに、やはりソフトウェア・アーキテクチャにより定義されるインターフェースに準拠する他のセグメント化及び階層化システムに対して使用することができる。ソフトウェア・アーキテクチャでのセグメント及び層の使用は、技術、任務、及び/又は市場が変わるときにデバイスを変更、追加、及び/又は除去することの影響を最小限にし、また、セグメント化及び階層化システムのフレームワークで定義された個々のセグメント及び/又は層に対してソフトウェア開発者が容易に取り組むことができるようにすることにより、開発時間を短縮する。従って、ソフトウェア・アーキテクチャの使用は、セグメント化及び階層化システム、並びに品質全体に関する理解及び意思疎通を高め、システム開発の時間及び費用を削減し、再使用されるソフトウェアを、同一のソフトウェア・アーキテクチャの一部又は全てを共有する新たなプロジェクトに適合させる努力を促進することができる。
例示的なUAV
図面を見ると、図1は、本発明の実施形態による例示的なUAV100を示す。図1は、電気システム110と、推進ユニット120、122及び124と、飛行管理システム130と、ナビゲーション・システム140と、アンテナ152を有するデータ・リンク・システム150と、ペイロード・センサ162及び164と、本体170と、着陸装置172とを有するUAV100を示す。
電気システム110は、UAV100全体にわたる電気の流れを提供して監視するための様々なデバイス及び機器、例えば、ワイヤ、ケーブル、スイッチ、ライト、電気デバイス(例えば、コンデンサ、インダクタ、ダイオード、トランジスタなど)、発光ダイオード(LED)、電力デバイス(例えば、発電器及び/又は電池)、電気センサ、ヒューズ、及び/又は回路遮断器を含むことができるが、これらに限定されるものではない。また、電気システム110は、電気システム110を監視して制御するための制御盤を含むこともできる。電気システム110は、他の電動デバイス、例えば、衝突防止ライト及び電池充電/監視回路を含むことができるが、これらに限定されるものではない。
推進ユニット120、122及び124は、UAV100を動かすために動力を提供することができる。推進ユニットは、1以上のエンジン、ファン、ポンプ、ロータ、ベルト、及び/又はプロペラを含むことができる。1以上のエンジン制御ユニット(ECU)が、推進ユニット120、122及び124を制御することができる。例えば、ECUは、空気センサや燃料センサなどの様々なエンジン・センサから受信されるデータに基づいて、エンジンでの燃料流を制御することができる。推進ユニット120、122及び124は、1以上の燃料タンク、燃料タンク(1以上)から推進ユニット120、122及び124へ燃料を供給するための1以上の燃料ポンプ、及び/又は1以上の燃料コントローラを有することができる。また、推進ユニット120、122及び124は、燃料タンク(1以上)を監視するための1以上の燃料レベル・センサを含むこともできる。
飛行管理システム130は、有人飛行機で操縦士により提供される制御と同様の、UAV100に関する飛行計画、飛行誘導、及び飛行制御の機能を提供することができる。飛行管理システム130は、UAV100の様々な飛行制御面を操作する飛行制御アルゴリズム及び/又はサーボ(電気機械デバイス)を含むことができる。例えば、1以上のサーボが、UAV100の方向舵又は補助翼(1以上)を制御することができる。飛行管理システムは、代わりに又は加えて、スロットル制御機構を含むことができる。
ナビゲーション・システム140は、近くの飛行機に関するデータを含めたナビゲーション・データをUAV100に提供することができる。ナビゲーション・システム140は、UAV100に関する定位デバイス、例えば、磁力計、ジャイロスコープ、レーザ、全地球測位システム(GPS)受信機、高度計、慣性航法装置、対地接近センサ、及び他のナビゲーション・コンポーネントを含むことができるが、これらに限定されるものではない。定位デバイスは、UAV100に対する環境に関する追加のデータを提供するために、圧力センサ、温度計、及び/又は他の環境センサなどのような追加のセンサを含むことができる。
データ・リンク・システム150は、UAV100と他のデバイスとの間での通信を可能にすることができる。例えば、データ・リンク・システム150は、UAV100と同時に使用されている他のUAVとの通信を可能にすることができる。同様に、データ・リンク・システム150は、1以上の地上制御デバイスとの通信を可能にすることもある。データ・リンク・システム150は、通信のために1以上の無線通信デバイス、例えばアンテナ152を使用することができる。図1に示されない代替形態では、データ・リンク・システム150は、1以上の有線通信デバイス、例えばイーサネット(登録商標)・ケーブル、ポート、及び/又はカードを、おそらくはUAV100が地上に係留されているときに、使用することができる。データ・リンク・システム150は、1以上の取外し可能及び/又はダウンロード可能な記憶デバイス(又はそのためのポート)を含むことができる。取外し可能及び/又はダウンロード可能な記憶デバイスは、データ、例えば、遠隔測定及びセンサ・データ(例えば、ビデオ・データ、オーディオ・データ、画像、及び/又はセンサ読み取りでの収集データ)を記憶することができるが、これらに限定されるものではない。
UAV100は、ペイロード・センサ162及び164を含むペイロードを装備することができる。ペイロード・センサ162及び164は、ビデオ・センサ、例えばカメラ、レーザ・デシグネータ(laser designator)、化学センサ、生物学的センサ、煙検出器、放射線検出器、電磁波検出器、及び他のペイロード・センサを含むことができる。UAV100は、任務毎にペイロード・センサ162及び164を変更することができるように構成されることもできる。
構造の支持及び他の理由のために、UAV100は、本体170と、着陸装置172とを有することができる。図1に示される本体170及び/又は着陸装置172の形状は単なる例にすぎず、変えることができる。例えば、本体170は、従来の有人飛行機の本体で見られるものなどのような空気力学的形状を有することができる。着陸装置172は、制御機構、例えば着陸装置172を本体170内に引き込むことができるようにする制御機構などを、有するもの又は有さないものとすることができる。
例示的なソフトウェア・アーキテクチャ
図2は、本発明の実施形態による、UAV100などのようなセグメント化及び階層化システムを制御するための例示的なソフトウェア・アーキテクチャ200を示す。図2は、幾つかの層を含むソフトウェア・アーキテクチャ200を示し、これはエグゼクティブ層210と、ビークル・コントローラ層220と、統合層282と、物理デバイス層284と、セグメント・ユーティリティ層288と、共通サービス層290と、ボード・サポート・パッケージ/オペレーティング・システム層292と、コンピューティング・プラットフォーム層294とを含む。また、図2は、同様に幾つかのセグメントに分割されたソフトウェア・アーキテクチャを示し、これは電気セグメント230と、推進セグメント240と、飛行管理セグメント250と、ナビゲーション・セグメント260と、データ・リンク・セグメント270と、ペイロード・セグメント280とを含む。
図2は、点線を使用してセグメント間の境界を示す。幾つかの層は、セグメント間で共通であり得る。これらの層は、セグメントに特有ではなく、全てのセグメントにより共有される機能、及び/又は1以上のセグメントにわたる機能の統合を必要とする機能を含むことができる。図2は、共通層を、セグメント境界により交差されない層として示し、それらは、例えば、図2の上側のエグゼクティブ層210及びビークル・コントローラ層220、図2の下側の共通サービス層290、ボード・サポート・パッケージ/オペレーティング・システム層292、及びコンピューティング・プラットフォーム層294である。幾つかの層は、セグメント特有であり、また、セグメント間で共通でなくてもよい。図2は、セグメント特有の層を、セグメント境界により交差される層として示し、それらは、例えば、統合層282、抽象デバイス層284、物理デバイス層286、及びセグメント・ユーティリティ層288である。図2に示されるように、層は、下から上へと抽象レベルが高まっていく。
エグゼクティブ層210は、セグメント化及び階層化システムでのソフトウェアの実行をスケジュールすることができる。エグゼクティブ層210は、セグメント化及び階層化システムをパワーアップする(オンにする)際に、パワーアップ動作、例えばプロセッサの初期設定及びパワーアップ組込み試験(PBIT)の実施がなされることを保証することができる。パワーアップ操作が完了すると、エグゼクティブ層210は、次いで、システム内の「レート制御」を保証することができる。セグメント・インテグレータなどのようなタスクのレート制御は、単位時間当たりの「実行サイクル」の数又はタスクが実行される回数を示し、従ってヘルツ(Hz)単位で指定される。例えば、タスクが20Hzのレート制御を有する場合、エグゼクティブ層210は、タスクが毎秒20回実行されることを保証する。同じレート制御が、実行サイクル間の最大時間量に関して指定されることもある。タスクを毎秒20回実行するという同じ例では、レート制御は、実行サイクル間の最大時間量に関して指定されるので、50ミリ秒となる。
ビークル・コントローラ層220は、セグメント化及び階層化システムのセグメント間でのタスクの実行を調整することができる。例えば、ビークル・コントローラ層220は、おそらくはデータ・リンク・セグメント270から受信される外部コマンドが、セグメント化及び階層化システムの様々なセグメントへディスパッチされる(送られる)ことを保証することができる。外部コマンドがディスパッチされると、次いで、各セグメントは、外部コマンドを行うためにセグメントにより必要とされるタスク(1以上)を実施する。タスク(1以上)が実施された後(又は、セグメントが、タスク(1以上)を実施することができないと決定した後)、セグメントは、結果(1以上)をビークル・コントローラ層220へ報告する。次いで、ビークル・コントローラ層220は、場合によってはデータ・リンク・セグメント270を使用して、外部コマンドに対する応答を送信する。
ビークル・コントローラ層220は、セグメント化及び階層化システムの状態及び/又はモードを維持することができる。特に、ビークル・コントローラ層は、システムの状態を判定するために、組込み試験(BIT、built-in test)の実行を調整することができる。BITは、定期的に(例えば、1時間に1回)、又は要求に応じて、又はリソース制限(例えば、使用可能なメモリ又はプロセッサ・アイドル時間)に基づいて実行することができる。状態は、セグメント化及び階層化システムの「健康状態」と呼ばれることもある。セグメント化及び階層化システムのモードは、セグメント化及び階層化システムにより実施されている又は実施される動作、例えば「UAVの着陸」、「入力待ち」、「左へ旋回」などを示す。同様に、多くの他の状態及び/又はモードを想定可能である。
統合層282は、統合オブジェクトを含むことができる。図2に示されるように、統合層282は、セグメント・インテグレータ及び機能インテグレータなどのような統合オブジェクトを含むことができる。各セグメントがセグメント・インテグレータを有する。例えば、ナビゲーション・セグメント・インテグレータは、セグメント化及び階層化システム用のナビゲーション・デバイス(1以上)からのデータから導出される完全なナビゲーション・ソリューションを提供することができる。
セグメント・インテグレータは、場合によってはセグメント・バジェット内でスレッド又はオブジェクトの実行をスケジュールすることにより、セグメント内の活動を調整することができる。セグメントに関するセグメント・バジェットは、エグゼクティブ層210により、セグメントに関するレート制御の一部として提供されることができ、例えば、セグメントを表す20Hzタスクは、実行時間10ミリ秒というセグメント・バジェットを有することができる。セグメント・インテグレータは、複数のレートで実行しなければならない機能、従って、複数のタスクにより実行されることがある機能を、含むことができる。セグメント・バジェットは、加えて又は代わりに、他のリソース、例えば、メモリ、セマフォ、イベント、及び/又はハンドル、デバイス・アクセス(例えば、センサ、モニタ、制御回路、入力デバイス、及び/又は出力デバイスへのアクセス)を含むことができる。
所与のセグメントに関するセグメント・インテグレータは、そのセグメント内の制御、そのセグメントのステータス、及び/又はその所与のセグメントに関しての外部データへのアクセスを提供することができる。従って、セグメント・インテグレータは、セグメント・インテグレータにおいてシステム依存型の要求を集中すること、並びに所与のセグメントによりサポートされるデータ及びサービスに対するインターフェースを提供することを可能にする。好ましくは、データ・インターフェースは、セグメント化及び階層化システムの全てのセグメントに共通のレートセーフ・データ受渡し機構である。即ち、データ・インターフェースは、セグメント間でデータを渡し、エグゼクティブ層210により強制されるレート制御に適合する。レートセーフ・データ受渡し機構は、複数のレートでアクセスされるデータを保護する。例えば、より低いレートのタスクが、読み取りのために保護データDへのアクセスを必要とし、より高いレートのタスクが、書込みのためにDにアクセスすると仮定する。レートセーフ・データ受渡し機構を使用すると、より高いレートのタスクによりDが変更される前に、より低いレートのタスクがDを安全且つ迅速に読み取ることができるようにされる。また、機能インテグレータも、レートセーフ・データ受渡し機構を使用することができることに留意されたい。
セグメント・インテグレータは、場合によってはデータ・ハイディング(data hiding、データを隠す)技法を使用して、セグメント化及び階層化システムの残りの部分により所与のセグメントのソフトウェア・エンティティへの許可されたアクセス・インターフェース(authorized-access interface、許可アクセス・インターフェース)を生成及び施行することができる。所与のセグメントに関するセグメント・インテグレータは、好ましくは、所与のセグメント内の他のソフトウェア・エンティティへの完全なアクセスを有するセグメント化及び階層化システム内の唯一のソフトウェア・エンティティである。所与のセグメントへの唯一のアクセスが許可アクセス・インターフェースを介すものであることを保証することにより、所与のセグメントに対するインプリメンテーションの変更は、その変更されたインプリメンテーションが、許可アクセス・インターフェースに適合する限り、分離される。更に、所与のセグメントへの許可アクセス・インターフェースの発行が、セグメントの第三者によるインプリメンテーションを可能にする。
所与のセグメントのセグメント・インテグレータは、所与のセグメントに関する試験情報、並びに所与のセグメントのセンサ(1以上)及び他のデバイスに関する健康状態及び試験情報を、収集および維持することができる。試験情報は、所与のセグメントのセンサ(1以上)に関するBITのスケジュール、記録、及び結果、並びに所与のセグメント及び/又は所与のセグメントのセンサ(1以上)及び他のデバイスの性能を検証するために書かれた任意の診断又は他の試験のスケジュール、記録、及び結果を含むことができる。セグメント・インテグレータは、試験情報を解析して、センサの健康状態を判定することができる。例えば、セグメント・インテグレータは、センサに対して行われた最新のBITにセンサが不合格であった場合に、センサの健康状態が「不健康」であると判定は、センサに対して行われた最新のBITにセンサが合格した場合に、センサの健康状態が「健康」であると判定することができる。
セグメント・インテグレータは、所与のセグメントのセンサと他のデバイスとの間の通信を可能にすることができる。例えば、所与のセグメントが、カメラと、画像データ内の特定の特徴を決定する特徴解析デバイスとを有する場合、セグメント・インテグレータは、カメラからの画像データが解析用の特徴解析デバイスへ伝送される通信を可能にする。通信がセグメント・インテグレータを通過することを保証することにより、デバイス(1以上)を制御する及び/又はデバイス(1以上)とインターフェースするソフトウェアは、通信サポートを含む必要ないので、ソフトウェアを書くのが簡単になり、また、全ての通信がセグメント・インテグレータを介して共通のインターフェースを使用するので、エラーが起こりにくくなる。
所与のセグメントに関する機能インテグレータは、所与のセグメント内の「統合機能」又は導出された機能を提供することができる。従って、機能インテグレータは、機能インテグレータでセグメント間及び/又はセグメント内でのデータ・フローを調整することにより、統合機能を提供することができる。例えば、データ・リンク統合機能は、セグメント化及び階層化システムの外部のデバイスへ通信するために、幾つかの他のセグメントからデータを受信することができる。別の例として、飛行管理統合機能は、他のセグメント(1以上)からの所要のナビゲーション及び環境の情報を調整して、システムに関する飛行ガイダンス、飛行制御、及び飛行計画の機能を提供することができる。
各セグメントは、デバイス層を有することができる。図2に示されるように、デバイス層は、抽象デバイス層284と、物理デバイス層286とに分けられる。所与のセグメントの抽象デバイス層284は、所与のセグメントの1以上のデバイスへのソフトウェア・エンティティのためのインターフェースを提供する。抽象デバイス層は、「抽象」デバイスを形成するために、幾つかの物理デバイスの出力を組み合わせるオブジェクトを含むことができる。従って、抽象デバイスは、使用可能な物理デバイスにより提供されない、導出された機能を提供することができる。例えば、気圧高度計は、物理的な圧力センサ及び物理的な温度センサからのデータ出力を組み合わせて圧力高度値を計算する抽象デバイスであり得る。
同様に、燃料コントローラ抽象デバイスは、燃料の量の値を提供するためのオペレーション(演算)を提供することができる。燃料の量は、燃料燃焼率や燃料レベル・センサを使用して計算することができる。燃料コントローラ抽象デバイスは、エンジンへの燃料流量を制御する役割を担うことができる。
抽象デバイス層284のオブジェクトは、所与のセグメントの物理デバイス層286及びセグメント・ユーティリティ層286の内のソフトウェア・エンティティに、又は図2の抽象デバイス層284よりも下に示される層からのソフトウェア・エンティティ、即ち、セグメント・ユーティリティ層288と、共通サービス層290と、ボード・サポート・パッケージ/オペレーティング・システム層292と、コンピューティング・プラットフォーム層294との内部のソフトウェア・エンティティにのみ、アクセスできることがある。
物理デバイス層286は、所与のセグメントの物理デバイス毎のオブジェクト(又は他のソフトウェア・エンティティ)のグループとしてインプリメントされ得る。例えば、図2は、制御盤を有する電気セグメント230を物理デバイスとして示す。同様に、推進セグメント240の物理デバイスとして、ECU、燃料ポンプ、及び燃料タンクがあり、他のセグメント250、260、270及び280に関しても同様である。無線機(即ち、範囲、又は特定の周波数に対する同調の改善のために交換する)、カメラ、ナビゲーション・センサ、及び/又は他の物理デバイスなどのような、物理デバイス層の物理デバイスは、特定の目的のために又は技術改良のために、交換を容易にするように設計され得る。
物理デバイス層286の各物理デバイスは、それ自体の健康情報を保持し、要求に応じてその健康情報を提供することができ、それは、任意の適用可能なBIT及び/又は他の試験の実行、進捗の追跡、及び/又は試験結果の提供を行うことを含む。抽象デバイス層284と同様に、物理デバイス層286のソフトウェア・エンティティは、所与のセグメントのセグメント・ユーティリティ層288のソフトウェア・エンティティに、及び図2に示される物理デバイス層286よりも下の層のソフトウェア・エンティティ、即ち、共通サービス層290と、ボード・サポート・パッケージ/オペレーティング・システム層292と、コンピューティング・プラットフォーム層294とのソフトウェア・エンティティにのみ、アクセスすべきである。
セグメント・ユーティリティ層288は、所与のセグメントに関するセグメント特有ユーティリティを含むことができる。例えば、データ・リンク・セグメント270は、メッセージをフォーマット、圧縮、及び/又は解凍するためのユーティリティを含むことができる。別の例として、各セグメントは、セグメント特有ユーティリティとして特有のデータ変換機能を含むことができる。例えば、緯度経度座標と内部地図座標との間の変換が、ナビゲーション・セグメント260のセグメント・ユーティリティ層288に備えられ得る。
共通サービス層290は、セグメントにわたって共有されるセグメント独立ユーティリティを含むことができる。例示的なセグメント独立ユーティリティは、距離、角度、速度、及び加速度に関する単位変換である。他のセグメント独立ユーティリティには、データ構造機能(例えば、リンクされたリスト、永続的なメモリ、バッファ、キュー、ツリーなど)と、入力/出力機能とが含まれる。セグメント化及び階層化システム内の全てのオブジェクトは、共通サービス層290のセグメント独立ユーティリティを使用することを求められ得る。セグメント化及び階層化システム内部の全てのオブジェクトがセグメント独立ユーティリティを使用する場合、セグメント独立ユーティリティは、システム全体にわたる共通の挙動を保証する標準となり、また、セグメント独立ユーティリティの機能に関するエラー源(従って、必要とされるデバッグの量)を減少させる。
セグメント化及び階層化システムは、プラットフォーム・サービス層を有することができる。図2は、ボード・サポート・パッケージ/オペレーティング・システム層292とコンピューティング・プラットフォーム層294とを含むプラットフォーム・サービス層を示す。ボード・サポート・パッケージ/オペレーティング・システム層292は、ボード・サポート・パッケージにより提供されるユーティリティ、又は所与の回路板及びその回路板と所与のオペレーティング・システムとの対話をサポートするために使用される低レベル・ユーティリティを含む。オペレーティング・システムは、セグメント化及び階層化システム全体にわたって共通のプロセス、スレッド、及びリソースを管理、スケジュール、及び調整するためのユーティリティを提供することができる。ボード・サポート・パッケージは、特定のハードウェア・プラットフォームに対してオペレーティング・システムを適合させることができ、従って、メモリ範囲、入力/出力アクセス・ポイント(メモリ・アドレス及び/又は割り込みベクトル)、読み出し専用メモリ(ROM)画像、初期化及び/又はブート・パラメータ、デバイス・ドライバ、及び/又はバス情報に関しての、ソフトウェア及び/又はデータを提供することができる。従って、オペレーティング・システム・ユーティリティは、ボード・サポート・パッケージの一部又は全てを含むことができる。オペレーティング・システムは、データ構造(例えばメッセージ・キュー)、及び/又はソフトウェアの重要な領域及び/又は重要なデータを保護するために使用されることがあるロック/ロック解除機構(例えば、セマフォやブロッキング・メッセージ)などのサービスを提供することができる。
コンピューティング・プラットフォーム層294は、ユニバーサル・シリアル・バス(USB)、小型計算機システム・インターフェース(SCSI)、Fire−Wire(IEEE1394規格)RS−232、モデム、及び/又はイーサネット(登録商標)・デバイスなどのようなデバイスをサポートする有線通信デバイス・ドライバを含むことができる。コンピューティング・プラットフォーム層294は、Bluetooth(商標)、ZigBee(IEEE802.15.4規格)、無線ワイド・エリア・ネットワーク(WWAN)、Wi−Fi(IEEE802.11規格)、及び/又はWi−MAX(IEEE802.16規格)デバイスなどのようなデバイスをサポートする無線通信デバイス・ドライバを含むことができる。
実施規則は、ソフトウェア・アーキテクチャ200内のソフトウェア・エンティティ間の対話に関するガイドライン及び/又は規則を指定することができる。以下の表1は、図2のソフトウェア・アーキテクチャに関する例示的な実施規則を示す。
表1: 例示的な実施規則
1. 図2に示される、より高位の層のソフトウェア・エンティティは、より低位の層からのソフトウェア・エンティティを含むことができるが、その逆は成り立たない。
2. エグゼクティブ層210及びビークル・コントローラ層220のソフトウェア・エンティティは、ソフトウェア・アーキテクチャ200の全てのセグメントにわたって、より低位の層のソフトウェア・エンティティとインターフェースすることができる。しかし、データ及びサービスは、可能であればいつでも、セグメント・インテグレータを介してセグメントから得られるべきである。
3. エグゼクティブ層210及びビークル・コントローラ層220は、物理デバイス層286の物理デバイス又は抽象デバイス層の抽象デバイスへ直接にアクセスすべきではない。
4. 統合層282のセグメント・インテグレータ及び機能インテグレータは、共通のレートセーフ保護データ受渡し機構を介してデータを共有すべきである。
5. セグメントのデバイス層のソフトウェア・エンティティは、互いに又は別のセグメントのデバイスと、直接にインターフェースすべきでない。
6. 物理又は抽象デバイス「Device1」が、同じセグメント「Segment1」内の別の物理又は抽象デバイス「Device2」からの情報を必要とする場合、「Device2」からの情報は、「Segment1」の機能インテグレータ又はセグメント・インテグレータを介して提供されるべきである。「Segment1」の抽象デバイスは、同じセグメント「Segment1」の1以上の物理デバイスからのデータにアクセスすることができる。
7. セグメント「Segment1」のデバイス「Device1」が、異なるセグメント「Segment2」内の別のデバイス「Device2」からの情報を必要とする場合、「Device2」からの情報は、インテグレータ層282を介して得なければならない。特に、「Segment1」のセグメント・インテグレータは、「Device2」からの所要の情報を得るために「Segment2」のセグメント・インテグレータとインターフェースしなければならない。
同様に、ソフトウェア・アーキテクチャ200を用いてソフトウェア・エンティティ間の対話を規定するための多くの他の実施規則が想定可能である。
例示的な計算デバイス
図3は、本発明の実施形態による例示的な計算デバイス300のブロック図であり、処理ユニット310と、データ記憶装置320と、ユーザ・インターフェース330と、ネットワーク通信インターフェース340と、センサ・インターフェース350とを備える。計算デバイス300は、デスクトップ・コンピュータ、ラップトップ又はノートブック・コンピュータ、個人用携帯情報端末(PDA)、モバイル電話、埋め込みプロセッサ、コンピュータ基板(例えば、マザーボード)とすることができ、また、図4に関して以下に詳細に説明される本明細書で説明される方法400の少なくとも一部を実現する、及び/又は本明細書で説明される任意の又は全てのソフトウェア・アーキテクチャを実現する機械言語命令を実行することができる処理ユニットを装備された任意の同様のデバイスとすることができる。
処理ユニット310は、1以上の中央処理装置、コンピュータ・プロセッサ、モバイル・プロセッサ、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コンピュータ・チップ、及び現在知られている又は今後開発される同様の処理ユニットを含むことができ、機械言語命を実行しデータを処理することができる。
データ記憶装置320は、1以上の記憶デバイスを備えることができる。データ記憶装置320は、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、取外し可能なディスクドライブ・メモリ、ハードディスク・メモリ、磁気テープ・メモリ、フラッシュ・メモリ、及び現在知られているか今後開発される同様の記憶デバイスを含むことができる。データ記憶装置320は、少なくとも、機械言語命令322とデータ構造324とを含むのに十分な記憶容量を備える。
データ記憶装置320に含まれる機械言語命令322とデータ構造324とは、それぞれ、処理ユニット310により実行可能な命令と、必要とされる任意の記憶領域とを含み、それらは、ソフトウェア・エンティティ、1以上のセグメント、及び/又は1以上のソフトウェア・アーキテクチャの層を含む1以上のソフトウェア・アーキテクチャに関して説明された、本明細書で説明される機能の幾つか又は全てを実施するのに必要とされ、且つ/又は方法400で説明されるプロシージャの幾つか又は全てを実施するのに必要とされるものである。
ユーザ・インターフェース330は、入力ユニット332及び/又は出力ユニット334を備えることができる。入力ユニット332は、計算デバイス300のユーザからユーザ入力を受信することができる。入力ユニット332は、計算デバイス300のユーザからユーザ入力を受信することができる、操舵デバイス、キーボード、キーパッド、タッチ・スクリーン、コンピュータ・マウス、トラック・ボール、ジョイスティック、及び/又は現在知られている又は今後開発される他の同様のデバイスを備えることができる。
出力ユニット334は、計算デバイス300のユーザへ出力を提供することができる。出力ユニット334は、計算デバイス300のユーザにグラフィック、テキスト、及び/又は数の情報を表示することができる、可視出力(1以上)を発生するための可視出力デバイスを備えることができ、例えば、1以上の陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プリンタ、ライト、及び/又は現在知られている又は今後開発される他の同様のデバイスを備えることができる。代替物として又は追加物として、出力ユニット334は、計算デバイス300のユーザへ音声及び/又は可聴情報を送ることができる、可聴出力(1以上)を発生するための1以上の可聴出力デバイスを備えることができ、例えば、スピーカ、スピーカ・ジャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホン、及び/又は現在知られている又は今後開発される他の同様のデバイスを備えることができる。
ネットワーク通信インターフェース340は、有線通信インターフェース及び/又は無線通信インターフェースを介してデータを送信及び受信するように構成される。データは、デジタル及び/又はアナログの技法を使用して送信及び受信され、テキスト、グラフィック、ビデオ、オーディオ、バイナリのデータ、及び/又は他のタイプのデータを含むことができる。有線通信インターフェースは、存在する場合には、データ・ネットワーク、例えば、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、例えばインターネットなどのような1以上の公衆データ・ネットワーク、1以上のプライベート・データ・ネットワーク、或いはそのようなネットワークの任意の組み合わせへの、ワイヤ、ケーブル、光ファイバ・リンク、又は同様の物理的接続、例えば、USB、SCSI、Fire−Wire、及び/又はRS−232による接続などを備えることができる。無線通信インターフェースは、存在する場合には、データ・ネットワーク、例えば、WWAN、無線LAN、1以上の公衆データ・ネットワーク(例えば、インターネット)、1以上のプライベート・データ・ネットワーク、或いは公衆及びプライベートのデータ・ネットワークの任意の組み合わせへの、エア・インターフェース、例えば、Bluetooth(登録商標)、ZigBee、無線WAN(WWAN)、Wi−Fi、及び/又はWiMAXインターフェースなどを用いることができる。幾つかの実施形態では、ネットワーク通信インターフェース340は、複数の通信周波数にわたってデータを送信及び/又は受信するように構成され、また、複数の通信周波数から通信周波数を選択して用いることができる。無線通信インターフェースは、加えて又は代わりに、アンテナを介してのデータ・リンクを通じて通信を受信するためのハードウェア及び/又はソフトウェアを含むことができる。
センサ・インターフェース350は、1以上のセンサとの通信を可能にすることができ、センサが計算デバイス300へセンサ・データを提供できるようにし、且つ/又はセンサ・メンテナンスを可能にするコマンド(例えば、セットアップ・コマンド、コンフィギュレーション・パラメータ設定など)を受信できるようにする。センサ・インターフェース350は、有線センサ・インターフェース及び/又は無線センサ・インターフェースを含むことができる。1以上のセンサの例は、図2に示されて図2と関連して上述された物理デバイスを含むが、それらに限定されるものではない。有線センサ・インターフェース及び無線センサ・インターフェースは、それぞれ、ネットワーク通信インターフェース340の有線通信インターフェース及びネットワーク通信インターフェース340の無線通信インターフェースに関して上述した技術を用いることができる。
ソフトウェア開発のための例示的な方法
図4は、本発明の実施形態による、セグメント化及び階層化システムを制御するためのソフトウェアを開発するための例示的な方法400を示す流れ図である。方法400は、セグメント化及び階層化システムが進化するとき、技術が変化するとき、及び/又はセグメント化及び階層化システムが様々な用途に対して再コンフィギュレーションされるときに、ソフトウェアの進化を可能にするように設計されたフレームワークを提供する。
この流れ図での及び本明細書で提示される他の流れ図での各ブロックは、プロセス中の特定の論理関数又はステップを実施するための1以上の実行可能な命令を含むソフトウェア・エンティティ、モジュール、セグメント、層、関数、又はコンピュータ・プログラム・コードの一部を表し得る。代替の実装形態は例示的な実施形態の範囲内に含まれ、説明される実施形態の技術を適切に理解する当業者には理解されるように、機能は、関連する機能に応じて、実質的に同時や逆順をも含めての、図示される又は論じられる順序とは異なる順序で実行されることがあることを、理解すべきである。
方法400は、ブロック410で始まる。ブロック410で、セグメント化及び階層化システムの複数のセグメントそれぞれに関して機能が決定される。各セグメントは、複数のソフトウェア・エンティティ、例えば、コンピュータ・ソフトウェア・オブジェクト、モジュール、関数、サブルーチン、データ・オブジェクト、データ構造、及び/又は他のソフトウェア構造を含むことができるが、それらり限られるものではない。セグメント化及び階層化システムの各セグメントのソフトウェア・エンティティを含めての、セグメント化及び階層化システムのソフトウェア・エンティティは、データ記憶装置320などのコンピュータ・メモリに記憶され、処理ユニット310などの処理装置により実行可能な1以上の機械言語命令、及び/又は1以上のデータ構造を含むことができる。ソフトウェア・エンティティは、コンピュータ可読媒体、例えば、1以上の磁気ディスク(例えば、ハード・ドライブ)、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、コンパクト・ディスク(1以上)(CD)、フラッシュ・メモリ、磁気テープ、及び/又はソフトウェア・エンティティを記憶するのに適した任意の他のコンピュータ可読媒体に記憶され得る。
また、セグメントは、ソフトウェア・アーキテクチャ内で機能的な役割を担うことができ、例えば、電気デバイス(例えば、制御盤)の制御及び/又は電気デバイスとのインターフェースを行う電気セグメント、推進デバイス(例えば、燃料コントローラ)の制御す及び/又は推進デバイスとのインターフェースを行う推進セグメント、ビークル(セグメント化及び階層化システムとして機能するビークル)の飛行を制御するための飛行計画、飛行ガイダンス、及び/又は飛行制御の機能を提供する飛行管理セグメント、ナビゲーション・デバイス(例えば、磁力計)の制御及び/又はナビゲーション・デバイスとのインターフェースを行うことによりナビゲーション・データを提供するナビゲーション・セグメント、無線機を介してセグメント化及び階層化システムとの通信を提供するデータ・リンク・セグメント、及びペイロード・セグメントなどがある。同様に、多くの他の機能的な役割、従って、セグメントを、想定可能である。
セグメント化及び階層化システムに関するソフトウェア・アーキテクチャは、層に分割され得る。例示的な層は、エグゼクティブ層、ビークル・コントローラ層、デバイス層、セグメント・ユーティリティ層、共通サービス層、及びプラットフォーム・サービス層である。幾つかの層はサブ層に分割されることがあり、例えば、デバイス層は抽象サービス層と物理サービス層とに分割される。特に、ソフトウェア・アーキテクチャのセグメントは、幾つか又は全ての層を含むことができる。
組み合わされて、ソフトウェア・アーキテクチャは、該セグメント以外の複数のセグメント及び/又は層の機能を用いる機能を提供することができる。例示的な機能は、発射前機能、メンテナンス機能、通信機能、発射機能、飛行機能、及び着陸操作機能である。同様に、多くの他の機能も想定可能である。
ブロック420で、0又は1以上のデバイスがセグメントと関連付けられ、複数のソフトウェア・エンティティのうちの1以上のソフトウェア・エンティティが、関連付けられた上記の0又は1以上のデバイスに割り当てられ得る。1以上のソフトウェア・エンティティが1以上のデバイスに割り当てられると、ソフトウェア・エンティティは、デバイスとのインターフェース及び/又はデバイスの制御を行うことができる。デバイスは、物理デバイス及び/又は抽象デバイスである。例えば、セグメントの抽象デバイス層及び/又は物理デバイス層内のソフトウェア・エンティティ(例えば、オブジェクト)は、制御盤、ECU、飛行制御デバイス、ナビゲーション・センサ/デバイス、無線機、データ・リンク、及び/又はペイロード・センサなどのデバイスとのインターフェース及び/又はそれらのデバイスの制御を行うことができるが、これらに限定されるものではない。例示的なペイロード・センサは、カメラ、レーザ、化学センサ、生物学的センサ、及び放射線検出器である。同様に、ペイロード・センサを含めた多くのデバイスを想定可能である。セグメント化及び階層化システムがペイロードを装備される場合、ペイロードは、ペイロード・センサと共に又はその代わりに、実世界の物体、例えば、貨物及び/又は軍用品を含むこともあることに留意されたい。
ブロック430で、セグメント・インテグレータ(1以上)及び任意の可能な機能インテグレータ(1以上)が、複数のセグメントのうちの各セグメントに関して決定される。所与のセグメントに関するセグメント・インテグレータは、そのセグメント内の制御、そのセグメントのステータスを提供し、且つ/又はその所与のセグメントのために外部データへのアクセスを提供することができる。セグメント・インテグレータは、おそらくはデータ・ハイディング技法を使用して、所与のセグメントのソフトウェア・エンティティへの許可アクセス・インターフェースを生成及び適用することができる。所与のセグメントに関するセグメント・インテグレータは、所与のセグメント、並びに所与のセグメントに関連付けられるセンサ及び/又は他のデバイスに関する試験及び/又は健康情報を収集して維持することができる。セグメント・インテグレータは、所与のセグメントのセンサ及び/又は他のデバイスの間の通信を可能にすることができる。機能インテグレータは、機能インテグレータを用いてセグメント間及び/又はセグメント内部でのデータ・フローを調整することにより、所与のセグメントに対して統合された機能を提供することができる。
ブロック440で、1以上のセグメント・ユーティリティが各セグメントに関して識別される。例示的なユーティリティは、データ変換ユーティリティ、数学、演算、及び/又は統計ユーティリティ、デバイス・ハンドリング・ユーティリティ、セグメント特有タイミング・ユーティリティ、及び/又はセグメント内リソース割当てユーティリティ(例えば、ローカル・メモリ割当てユーティリティ)を含む。同様に、多くの他のユーティリティを想定可能である。
ブロック450で、1以上の実施規則が複数のセグメントに関して決定される。実施規則は、ソフトウェア・アーキテクチャ内のソフトウェア・エンティティ間の対話に関するガイドライン及び/又は規則を指定することができる。例えば、上の表1の実施規則を参照されたい。
ブロック460で、セグメント化及び階層化システムを制御するためのソフトウェアが開発される。ソフトウェアは、複数のセグメントの各セグメントに関する機能、セグメント・インテグレータ、及び任意の機能インテグレータと、1以上の実施規則とに基づく。セグメント化及び階層化システムは計算デバイスを含み、ソフトウェアは計算デバイス上で実行可能である。ソフトウェアは、自動的に発生されるもの及び/又はソフトウェア開発者により書かれるものである。例えば、米国マサチューセッツ州ネイティックのThe MathWorks,Inc.(登録商標)のSimulink(登録商標)ソフトウェア・パッケージなどのようなソフトウェア生成ツールは、飛行管理に関する1以上のソフトウェア・エンティティを生成することができる。
ブロック460を完了した後、方法400は終了することができる。
結論
本発明の例示的な実施形態を説明した。しかし、特許請求の範囲により定義される本発明の真の範囲及び精神から逸脱することなく、説明された実施形態に変形及び変更が施されることがあることを当業者は理解されよう。しかし、本明細書で詳細に説明された上記及び他の構成は、例示の目的でのみ提供されるものであり、本発明は、以下の特許請求の範囲の範囲及び精神に入る全ての変更及び改良を包含することを理解すべきである。従って、当業者は、説明したものの代わりに、他の構成及び他の要素(例えば、機械、インターフェース、関数、順序、及び関数のグループなど)を使用することもでき、幾つかの要素がまとめて省かれることもあることを、理解されたい。
更に、本明細書で説明された要素の多くは、ディスクリート(個別)又は分散したコンポーネントとして、又は他のコンポーネントと関連して、任意の適切な組み合わせ及び位置で、及びハードウェア、ファームウェア、及び/又はソフトウェアの任意の適切な組み合わせとして実装され得る機能エンティティである。

Claims (2)

  1. 複数のデバイスを備え、セグメント化され階層化されたシステムであって、航空機を含むものであり、更に、
    計算デバイスと、
    前記セグメント化され階層化されたシステムを制御するために前記計算デバイスで実行可能な命令を記憶するデータ記憶装置と、
    複数のセグメントであって、それぞれのセグメントが、1以上の層に配された複数のソフトウェア・エンティティを備えるものであり、それぞれのセグメントが、前記複数のデバイスのうちの1以上のデバイスと関連するものであり、前記セグメントに対する前記複数のソフトウェア・エンティティのうちの1以上のソフトウェア・エンティティが、関連する前記1以上のデバイスのそれぞれのデバイスに割り当てられるものである、複数のセグメントと、
    前記複数のセグメントのそれぞれのセグメントに対するセグメント・インテグレータであって、前記複数のセグメントにおける前記セグメントの前記複数のソフトウェア・エンティティの間での対話が、1以上の実施規則により制御されるものであり、前記1以上の実施規則における第1実施規則が第1の対話の規則を規定するものであり、該第1の対話の規則は、前記複数のセグメントにおける第1セグメントと関連する前記1以上のデバイスのうちの第1デバイスが、前記複数のセグメントにおける前記第1セグメントと関連する前記1以上のデバイスのそれぞれのデバイスへ、前記複数のセグメントにおける前記第1セグメントに対するセグメント・インテグレータを用いて情報を提供することを、要求するものである、セグメント・インテグレータと、
    を備え、
    前記複数のデバイスは、
    制御盤と、
    エンジン制御ユニット(ECU)と、
    1以上の飛行制御デバイスと、
    1以上のナビゲーション・デバイスと、
    1以上の通信デバイスであって、1以上の無線機、または1以上のデータ・リンク、または1以上の無線機と1以上のデータ・リンクとの組み合わせを含む1以上の通信デバイスと、
    プロセッサと、
    を備え、
    前記複数のセグメントは、
    制御盤とインターフェースするように構成された電気セグメントと、
    エンジン制御ユニットとインターフェースするように構成された推進セグメントと、
    1以上の飛行制御デバイスとインターフェースするように構成された飛行管理セグメントと、
    1以上のナビゲーション・デバイスとインターフェースするように構成されたナビゲーション・セグメントと、
    1以上の通信デバイスとインターフェースするように構成されたデータ・リンク・セグメントと
    備える、
    セグメント化され階層化されたシステム。
  2. 複数のデバイスを備え、セグメント化され階層化されたシステムであって、無人航空機(UAV)を含むものであり、更に、
    計算デバイスと、
    前記セグメント化され階層化されたシステムを制御するために前記計算デバイスで実行可能な命令を記憶するデータ記憶装置と、
    複数のセグメントであって、それぞれのセグメントが、1以上の層に配された複数のソフトウェア・エンティティを備えるものであり、それぞれのセグメントが、前記複数のデバイスのうちの1以上のデバイスと関連するものであり、前記セグメントに対する前記複数のソフトウェア・エンティティのうちの1以上のソフトウェア・エンティティが、関連する前記1以上のデバイスのそれぞれのデバイスに割り当てられるものである、複数のセグメントと、
    前記複数のセグメントのそれぞれのセグメントに対するセグメント・インテグレータであって、前記複数のセグメントにおける前記セグメントの前記複数のソフトウェア・エンティティの間での対話が、1以上の実施規則により制御されるものであり、前記1以上の実施規則における第1実施規則が第1の対話の規則を規定するものであり、該第1の対話の規則は、前記複数のセグメントにおける第1セグメントと関連する前記1以上のデバイスのうちの第1デバイスが、前記複数のセグメントにおける第2セグメントと関連する前記1以上のデバイスのうちの第2デバイスへ、前記第1セグメントに対する第1セグメント・インテグレータと前記第2セグメントに対する第2セグメント・インテグレータとを介して情報を提供することを、要求するものである、セグメント・インテグレータと、
    を備えるセグメント化され階層化されたシステム。
JP2009233253A 2008-12-09 2009-10-07 無人航空機用のモジュール式ソフトウェア・アーキテクチャ Expired - Fee Related JP5345495B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/331,274 2008-12-09
US12/331,274 US8260479B2 (en) 2008-12-09 2008-12-09 Modular software architecture for an unmanned aerial vehicle

Publications (3)

Publication Number Publication Date
JP2010160786A JP2010160786A (ja) 2010-07-22
JP2010160786A5 JP2010160786A5 (ja) 2012-08-02
JP5345495B2 true JP5345495B2 (ja) 2013-11-20

Family

ID=41203811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009233253A Expired - Fee Related JP5345495B2 (ja) 2008-12-09 2009-10-07 無人航空機用のモジュール式ソフトウェア・アーキテクチャ

Country Status (3)

Country Link
US (1) US8260479B2 (ja)
EP (1) EP2196902A1 (ja)
JP (1) JP5345495B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9981740B2 (en) * 2010-08-06 2018-05-29 Northrup Grumman Systems Corporation Layered architecture for customer payload systems
TW201235263A (en) * 2011-02-24 2012-09-01 Hon Hai Prec Ind Co Ltd Control device and method for adjusting control command using the control device
CA2845094A1 (en) 2011-08-16 2013-04-18 Unmanned Innovation Inc. Modular flight management system incorporating an autopilot
US9378055B1 (en) 2012-08-22 2016-06-28 Societal Innovations Ipco Limited Configurable platform architecture and method for use thereof
US9014874B2 (en) * 2013-01-29 2015-04-21 Foster-Miller, Inc. Tactical robot controller
WO2015175440A1 (en) 2014-05-12 2015-11-19 Unmanned Innovation, Inc. Unmanned aerial vehicle authorization and geofence envelope determination
US9310221B1 (en) 2014-05-12 2016-04-12 Unmanned Innovation, Inc. Distributed unmanned aerial vehicle architecture
EP3146428A1 (en) 2014-05-21 2017-03-29 Societal Innovations Ipco Limited System and method for fully configurable real time processing
US10154095B2 (en) 2014-05-21 2018-12-11 N.Io Innovation, Llc System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance
US9891893B2 (en) 2014-05-21 2018-02-13 N.Io Innovation, Llc System and method for a development environment for building services for a platform instance
US9694909B2 (en) 2014-07-17 2017-07-04 Aai Corporation Modular mounting structure with embedded electrical bus
US9754496B2 (en) 2014-09-30 2017-09-05 Elwha Llc System and method for management of airspace for unmanned aircraft
US10108536B2 (en) 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US20160307447A1 (en) 2015-02-13 2016-10-20 Unmanned Innovation, Inc. Unmanned aerial vehicle remote flight planning system
US10073707B2 (en) 2015-03-23 2018-09-11 n.io Innovations, LLC System and method for configuring a platform instance at runtime
US9940222B2 (en) 2015-11-20 2018-04-10 General Electric Company System and method for safety-critical software automated requirements-based test case generation
WO2017147731A1 (en) * 2016-02-29 2017-09-08 SZ DJI Technology Co., Ltd. Uav hardware architecture
US9658619B1 (en) * 2016-03-31 2017-05-23 Unmanned Innovation, Inc. Unmanned aerial vehicle modular command priority determination and filtering system
CN105867230B (zh) * 2016-04-15 2019-03-29 中广华芯科技有限公司 一种低空高速通信调度系统平台
CN107529632A (zh) * 2017-08-15 2018-01-02 江苏穿越金点信息科技股份有限公司 无人机信息采集传输控制系统
WO2019055025A1 (en) 2017-09-15 2019-03-21 Sanyal Amit K INTEGRATED GUIDE AND FEEDBACK CONTROL FOR AUTONOMOUS VEHICLE
US11429101B2 (en) * 2018-04-19 2022-08-30 Aurora Flight Sciences Corporation Adaptive autonomy system architecture
US10564940B2 (en) 2018-05-03 2020-02-18 International Business Machines Corporation Systems and methods for programming drones
US11440675B2 (en) * 2018-05-21 2022-09-13 Gulfstream Aerospace Corporation Aircraft flight guidance panels with a display disposed between two input portions
CN108873935A (zh) * 2018-07-06 2018-11-23 山东农业大学 物流配送无人机降落的控制方法、装置、设备及存储介质
US11881116B2 (en) 2019-10-31 2024-01-23 Aurora Flight Sciences Corporation Aerial vehicle navigation system
KR102259855B1 (ko) * 2019-11-04 2021-06-01 충북대학교 산학협력단 자율 드론 비행 안전성 검사를 위한 위협 분석 기법 및 시스템
KR102751511B1 (ko) * 2020-02-25 2025-01-09 한국전자기술연구원 무인이동체의 임무수행을 지원하기 위한 임무 소프트웨어 프레임워크 구조
CN112529522B (zh) * 2020-12-04 2023-05-26 中国航空工业集团公司成都飞机设计研究所 一种综合机电管理软件架构系统
US12030671B2 (en) 2022-10-15 2024-07-09 Beta Air, Llc System and method for effector reboot on an electric aircraft during flight
CN119538700B (zh) * 2024-09-27 2025-09-23 北京航空航天大学 一种基于生物群智学习的无人机集群数字孪生系统及方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6056237A (en) 1997-06-25 2000-05-02 Woodland; Richard L. K. Sonotube compatible unmanned aerial vehicle and system
US6317659B1 (en) 1999-12-09 2001-11-13 Honeywell International Inc. Layered subsystem architecture for a flight management system
US6811113B1 (en) 2000-03-10 2004-11-02 Sky Calypso, Inc. Internet linked environmental data collection system and method
US7516191B2 (en) * 2001-03-26 2009-04-07 Salesforce.Com, Inc. System and method for invocation of services
US6868314B1 (en) * 2001-06-27 2005-03-15 Bentley D. Frink Unmanned aerial vehicle apparatus, system and method for retrieving data
US7075290B2 (en) * 2001-07-27 2006-07-11 Delphi Technologies, Inc. Tachometer apparatus and method for motor velocity measurement
US6918244B2 (en) * 2001-08-17 2005-07-19 John Eugene Dickau Vertical takeoff and landing aircraft propulsion systems
US6721646B2 (en) 2001-09-27 2004-04-13 Ernest A. Carroll Unmanned aircraft with automatic fuel-to-air mixture adjustment
US6665594B1 (en) 2001-12-13 2003-12-16 The United States Of America As Represented By The Secretary Of The Navy Plug and play modular mission payloads
US7747311B2 (en) * 2002-03-06 2010-06-29 Mako Surgical Corp. System and method for interactive haptic positioning of a medical device
US20040030450A1 (en) 2002-04-22 2004-02-12 Neal Solomon System, methods and apparatus for implementing mobile robotic communication interface
US6923404B1 (en) 2003-01-10 2005-08-02 Zona Technology, Inc. Apparatus and methods for variable sweep body conformal wing with application to projectiles, missiles, and unmanned air vehicles
US7143974B2 (en) 2003-04-01 2006-12-05 The Insitu Group, Inc. Methods and apparatuses for launching airborne devices along flexible elongated members
TWI515770B (zh) * 2003-06-19 2016-01-01 尼康股份有限公司 An exposure apparatus, an exposure method, and an element manufacturing method
US7270296B2 (en) 2004-01-12 2007-09-18 Locust Usa Inc. Small-size high-speed transmission system for use in microturbine-powered aircraft
US7826457B2 (en) * 2004-05-11 2010-11-02 Broadcom Corp. Method and system for handling out-of-order segments in a wireless system via direct data placement
US7237750B2 (en) 2004-10-29 2007-07-03 L3 Communications Autonomous, back-packable computer-controlled breakaway unmanned aerial vehicle (UAV)
WO2006073750A2 (en) 2004-12-17 2006-07-13 James Alman Stowable design for unmanned aerial vehicle
US7228232B2 (en) 2005-01-24 2007-06-05 International Business Machines Corporation Navigating a UAV with obstacle avoidance algorithms
US20060249622A1 (en) 2005-05-04 2006-11-09 Lockheed Martin Corporation Autonomous Environmental Control System and Method For Post-Capture and Pre-Launch Management of an Unmanned Air Vehicle
US7410125B2 (en) 2005-05-05 2008-08-12 Lockheed Martin Corporation Robotically assisted launch/capture platform for an unmanned air vehicle
US7542828B2 (en) 2005-07-01 2009-06-02 Lockheed Martin Corporation Unmanned air vehicle, integrated weapon platform, avionics system and control method
JP4892933B2 (ja) * 2005-11-07 2012-03-07 トヨタ自動車株式会社 車両用マルチメディア装置
JP2007253792A (ja) * 2006-03-23 2007-10-04 Denso Corp 車両用電子制御装置のソフトウェアシステムおよびその設計方法
US20070244608A1 (en) 2006-04-13 2007-10-18 Honeywell International Inc. Ground control station for UAV
US7778744B2 (en) 2006-04-20 2010-08-17 Honeywell International Inc. Avionics framework
WO2008085536A2 (en) 2006-05-23 2008-07-17 Avid, Llc Dual-use modular propulsion surveillance vehicle with detachable unmanned airborne vehicles
JP4837594B2 (ja) * 2007-02-16 2011-12-14 三菱電機株式会社 車載マルチメディア装置

Also Published As

Publication number Publication date
JP2010160786A (ja) 2010-07-22
US20100145556A1 (en) 2010-06-10
US8260479B2 (en) 2012-09-04
EP2196902A1 (en) 2010-06-16

Similar Documents

Publication Publication Date Title
JP5345495B2 (ja) 無人航空機用のモジュール式ソフトウェア・アーキテクチャ
JP6786667B2 (ja) 飛行経路に沿った地形の表示
Perez et al. A ground control station for a multi-UAV surveillance system: design and validation in field experiments
TWI358376B (en) Programmable cockpit upgrade system
US9340283B1 (en) Distributed unmanned aerial vehicle architecture
US20090319096A1 (en) Control and monitor heterogeneous autonomous transport devices
Safi et al. Augmented reality uses and applications in aerospace and aviation
US9529357B1 (en) Method and apparatus for operator supervision and direction of highly autonomous vehicles
US12534227B2 (en) Space traffic management system, space traffic management device, collision avoidance assist business device, SSA business device, mega-constellation business device, and space traffic management method
Walker et al. Immersive interaction interface (I3): a virtual reality swarm control interface
Taha et al. Development of an onboard system for flight data collection of a small-scale UAV helicopter
Tanzi et al. Towards a new architecture for autonomous data collection
Johnson et al. UAV flight test programs at Georgia Tech
US20060149432A1 (en) Flight Management Architecture and Design Methodology
Marconato et al. LARISSA: Layered architecture model for interconnection of systems in UAS
Khamvilai et al. Avionics of aerial robots
AbdElHamid et al. A novel software simulator model based on active hybrid architecture
Szafrański et al. Managing system architecture for multi-rotor autonomous flying platform-practical aspects
Kim et al. HELISCOPE project: research goal and survey on related technologies
Lara Design of an embedded system architecture for a safety-critical system
EP4361570B1 (en) Systems and methods for providing mode awareness of a hud display configuration
US20250231772A1 (en) Product development system, simulations, emulations, and methods for rapid test and deployment for remotely controlled machines
Cho Development of ROS-based Flight and Mission State Communication Node for X-Plane 11-based Flight Simulation Environment
Khamvilai Optimization-based design of fault-tolerant avionics
Coppinger Mission Autonomous

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130814

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees