以下の説明では多様な実施形態が説明される。説明のために、特定の構成及び詳細が、実施形態の完全な理解を提供するために説明されている。しかしながら、本実施形態が特定の詳細なしに実践され得ることも当業者には明らかになる。さらに、周知の特徴は、説明されている実施形態を分かりにくくしないために省略または簡略化されることがある。
本明細書に説明され、提案される技法は一般的にドローンと呼ばれる無人航空機のフリートの間での通信強化を含む。無人航空機の他の役割も本開示の範囲内であるが、無人航空機は、小包の集荷及び/または配達等の多様なサービスを実行するシステムの部分であってよい。実施形態では、無人航空機はフリートの間でメッセージを伝えるために多様な操作を実行し、受信されるメッセージを信頼する(例えば、受信されるメッセージに従って動作する)かどうか判断を下すように構成される。
実施形態では、無人航空機は、無人航空機がそのために活動するサービスプロバイダによって運用される証明機関または該サービスプロバイダによって信頼される別の証明機関等の信頼できるコンピュータシステムのデジタル証明書を用いて構成される。また、無人航空機は、無人航空機が無人航空機の外部ではアクセスできない秘密として維持する公開−秘密暗号鍵対の秘密暗号鍵を用いても構成される。また、無人航空機は、公開暗号鍵を入手して、無人航空機によって生成されるデジタル署名を検証するために使用できる秘密暗号鍵のためのデジタル証明書を用いて構成されてもよい。デジタル証明書は、証明機関のデジタル証明書に対応する秘密暗号鍵を使用し、デジタルで署名されてよく、無人航空機のデジタル署名の真偽の検証を可能にしてよい。また、フリートの他の無人航空機は、係る証明書及び秘密暗号鍵を用いて(各無人航空機が異なる秘密暗号鍵を有してそのように構成された)構成されてもよい。以下により詳細に説明されるように、係る構成は無人航空機が安全なメッシュネットワークを操作できるようにする。
例えば飛行中またはホーム施設で等、動作中、無人航空機はメッセージを受信してよい。メッセージは、係るメッセージを生成するためにコマンド制御サーバを活用してよいコマンド制御サーバから生じてよい、または別の無人航空機から生じてよい。いくつかの実施形態では、メッセージはあるエンティティ(例えば、コマンド制御サーバまたは他の無人航空機)から生じてよいが、別のエンティティ(例えば、メッセージを生じさせなかった無人航空機)から受信されてよい。メッセージは、無人航空機がどのようにして動作するのか、係る判断が新しいタスクを追加するのか、それとも既存のタスクを修正するのかを含むかどうかを判断するために処理できる情報の、無人航空機に対するインジケータとしての機能を果たしてよい。一例に、メッセージは(例えば、指定された場所まで飛行するための、及び指定された場所でアクションを実行するための等)操作を実行するためのコマンドを符号化してよい。いくつかの例では、コマンドは、例えば無人航空機に、無人航空機がどの操作を実行しているのかについての情報(例えば、以下に説明されるデータ構造または操作計画を符号化する他の情報)、ログ、秘密暗号鍵、証明機関デジタル証明書、及び/または他の情報を削除させてよい、無人航空機に記憶された情報を削除することである。係る削除は、記憶場所が無作為なデータまたは無作為ではない(例えば、ゼロ)データで上書きされて、メモリに記憶されている情報の取出しを妨げる安全な削除であってよい。
別の例として、メッセージは現在のタスクまたは未決定タスクのためのルートを変更するためのコマンドを符号化してよい。さらに別の例として、メッセージは、無人航空機が、現在のタスクまたは未決定タスクのルートを変更するのか、それとも(例えば、タスクの目的地に荒れ模様の天気が存在するとき)現在のタスクのアボート等の他の操作を実行するのか、独立した判断を下すために使用できる天候データを符号化してよい。さらに別の例として、メッセージは、無人航空機がハザードを回避するまたは(例えば、ハザードがタスクの目的地の(閾値近接の範囲内)に、もしくはタスクの目的地の(閾値近接の範囲内の)近くにあるため、現在のタスクもしくは未決定タスクをアボートすることができるように切り替える指定場所でのハザードについての情報を符号化してよい。他のメッセージは他の無人航空機の信頼性に関してよい。例えば、メッセージは、別の無人航空機の証明書が取り消され、結果として、他の無人航空機からの少なくともいくつかのメッセージに依存するべきではないかどうかを示してよい。また、他のメッセージは多様な実施形態で使用されてもよい。
多様な実施態様では、無人航空機が別の無人航空機に対してメッセージを送信するためには、無人航空機は(例えばメッセージを生成するまたは別のソースからメッセージを受信することによって)メッセージを入手し、その秘密暗号鍵を使用してメッセージにデジタルで署名し、それによってメッセージのデジタル署名を生成する。無人航空機は次いで他の無人航空機に対して、メッセージ、デジタル署名、及びそのデジタル証明書のコピーを送信して、他の無人航空機がメッセージの真偽を検証し、相応して動作できるようにする。メッセージの真偽を検証するために、メッセージ、デジタル署名、及びデジタル証明書を受信する無人航空機は、無人航空機がデジタル証明書の真偽を検証し、同様にデジタル署名を使用し、メッセージの真偽を検証し、相応して動作するための操作の集合を実行してよい。例の実施形態では、少なくともいくつかのタイプのメッセージの場合、デジタル署名、デジタル証明書、及びメッセージはすべて、無人航空機がメッセージを信頼するための本物として暗号で検証されなければならない。
無人航空機が、無人航空機が受信するメッセージをどのように処理するのかは、多様な実施形態に従って、及び受信される多様なメッセージのタイプに従って変わることがある。例えば、いくつかの実施形態では、無人航空機は、例えば荒れ模様の天気状況、人災(例えば、人が自動推進体を使用し、無人航空機に物理的に危害を加えようとすること)、不良無線通信状態、ある区域の上を飛行することに対する当局により課される制限、及び/または区域の回避を行わせる他の情報等の、特定の場所でのハザードを示すメッセージを受信する。メッセージは、例えば区域を画定する座標の集合、単一座標、及び座標を中心とする円の半径、事前に確定された区域の識別子、または回避する区域を識別するために無人航空機によって使用可能な他の情報を符号化してよい。無人航空機は、受信されたメッセージの真偽の検証が成功すると、別の経路に切り替えて区域を回避するために現在のタスクを修正してよい。また、無人航空機はやはり区域を回避するために未決定タスク(例えば、タスクの待ち行列の中のタスク)を修正できる、または例えば未決定タスクが現在のタスクになるまたは現在のタスクになるところであるとき等、後に処理されるメッセージを保存してよい。未決定タスクのための後の処理は、タスクが後で受信されるあらゆるメッセージまたは以下に説明するような他の処理によって取って代わられるのかどうかを判断することを含んでよい。
いくつかの例では、無人航空機によって受信されたメッセージの処理は、無人航空機に、別の無人航空機からのメッセージが信頼できないことを示してよい。一例に、メッセージは(無人航空機の証明書の指紋であってよい無人航空機のデジタル証明書の識別子の形をとってよい)無人航空機の識別子、及び取消しの対象となる無人航空機のデジタル証明書の取り消しを示す情報を含んでよい。別の例として、メッセージのデジタル署名または証明書のデジタル署名は無効であり、メッセージがそこから受信された無人航空機との問題を示すことがある。
メッセージを受信した結果として無人航空機の信頼できないことを検出した結果として、メッセージを受信した無人航空機は、無人航空機が以前に受信し、記憶したメッセージを処理してよく、(例えば、現在のタスクまたは将来のタスクに関するメッセージに制限することによって)無人航空機の操作に潜在的に影響を及ぼすことがあるメッセージに処理を制限してよい。例えば、以前のメッセージがタスクに対する変更を生じさせた場合、無人航空機は変更をロールバックさせてよい、またはタスクが信頼できない無人航空機のメッセージと無関係となるように、タスクのための情報(例えば、ルート)を再計算してよい。現在のメッセージまたは以前のメッセージが信頼できないと判断される無人航空機からであるときにそのメッセージが信頼されるかどうかは、メッセージのタイプに左右されることがある。例えば、天候データを有するメッセージは(つまり、別の無人航空機からの近傍の区域の天候データと比較して)信頼されてよい、または少なくとも考慮されてよい。一方、有害なアクション及び/または取り返しのつかないアクション(例えば、ペイロードのための意図された目的地ではない場所でペイロードを放出すること)を引き起こすことがあるメッセージは信頼されないことがある。
別の例として、無人航空機はメッセージに対して投票することによってメッセージを処理してよい。例示的な例として、無人航空機は区域の天候データを有するメッセージを受信してよい。無人航空機は、同じ区域(例えば、または該区域のなんらかの閾値近接の中の区域)の天候データを有する場合、無人航空機は(例えば天候データのそれぞれのフィールド値を比較し、各それぞれの値の差異が閾値の範囲内にあるかどうかを判断することによって)受信した天候データを独自の天候でデータと比較し、受信された天候データが独自の天候データに十分に近い場合、受信したメッセージに信任票を追加してよい。天候データを比較するための距離は、ベクトルとして処理される天候データの2つの集合間の最大座標差またはユークリッド距離(例えば、真のユークリッド距離、正規化されたユークリッド距離、または調和的に合計されたユークリッド距離)等の任意の適切な測定基準を使用し、計算されてよい。概して、それによりデータセットが比較されてよい任意の方法、及び信任票をデータに追加するかどうかの判断は本開示の範囲内にあると見なされる。信任票は例えば、無人航空機の秘密暗号鍵を使用し、メッセージまたはメッセージの一部(例えば、メッセージの識別子)にデジタルで署名することによって追加されてよい。他の情報は、票の確実性のゼロと1との間の値等のデジタル署名の代わりにまたはデジタル署名に加えて含まれてよく、いくつかの例では、他の情報はデジタル署名される情報に含まれてよい。
追加のデジタル署名を有するメッセージは、次いで適用可能な天候データを有する場合、票を追加するための類似するプロセスを実行してよい1つまたは複数の他の無人航空機に送信されてよい。いくつかの実施形態では、票は正にすぎない(つまり、無人航空機は、メッセージに対して投票するまたはメッセージに対して投票しないことによってメッセージの受入れに対して影響を与えてよい)。一方、他の実施形態では、票は正または負であることがある。例えば、無人航空機は、独自の天候データの1つまたは複数のフィールド値が受信された天候データのそれぞれのフィールドと異なり、それが受信された天候データの時間閾値の範囲内にあるまたは受信された天候データ(または両方)よりもより最近である場合、負の票を追加してよく、無人航空機は負の票を示す情報を追加し、その情報にデジタルで署名してよい。いくつかの例では、無人航空機がメッセージの正の票を追加しない場合、無人航空機はそのメッセージを再送することを控える。
無人航空機がメッセージを受信するとき、無人航空機がメッセージを処理する方法は、メッセージが無人航空機から無人航空機に渡るにつれ、メッセージが受信する票に依存してよい。例えば、現在のタスクの変更は閾値数の票を必要とすることがある。同様に、票を有するメッセージを受信する無人航空機は、無人航空機が異なる数の票について実行する異なる操作を有することがある。一例に、無人航空機は、十分な票を得ることができるかどうかを判断しようとして(例えば、票を追加することによって)メッセージを確認するまたはそれ以外の場合メッセージを入念に検査する要求をコマンド制御センタまたは別の無人航空機に送信し、閾値信任が得られる場合、無人航空機は1つまたは複数のタスクを変更してよい。
多様な最適化が上記に及び以下により詳細に説明される技法に適用されてよい。例えば、いくつかの実施態様では、無人航空機は、無人航空機が他の関連する情報(例えば、デジタル署名及び証明書または証明書の識別子)とともに受信したメッセージのログを維持する。無人航空機が別の無人航空機と通信する能力を検出するとき、無人航空機はメッセージログまたはメッセージログの部分(例えば、やはりメッセージログと呼ばれるなんらかの指定された時間量の中で受信されるメッセージ)を交換してよい。無人航空機が別の無人航空機からメッセージログを有するメッセージを受信するとき、メッセージログを受信した無人航空機は、上述されたように、メッセージログを独自のメッセージログと結合(例えば、マージ)し、無人航空機がまだ処理していないあらゆるメッセージを処理してよい。例えば、無人航空機は任意の受信したメッセージを使用して、無人航空機が講じたあらゆるアクションをロールバックさせてよい、及び/または無人航空機が受信したメッセージに従って1つまたは複数の未決定タスク及び/またはアクティブタスクを修正してよい。新しいメッセージの処理は、より最近のメッセージがより旧いメッセージの影響を無効にできるように発生順に進んでよい。多くが以下に明白に説明される他の技法も本開示の範囲内にある。
図1は、多様な実施形態を実施できる環境100の例示的な例を示す。環境100では、無人航空機102は別の無人航空機104と通信する。無人航空機102は、例えば無人航空機102が搭載しているセンサの集合を使用し、訂正したデータを通信してよい。別の例として、無人航空機102は1つまたは複数の他の無人航空機からの1つまたは複数のメッセージを有してよく、メッセージの1つまたは複数を他の無人航空機104に中継してよい。
以下により詳細に説明されるように、本開示の多様な実施形態は、例えば図1に示される無人航空機102及び無人航空機104等の無人航空機間の安全な通信に関する。これを行うために、実施形態では、無人航空機102は無人航空機104にメッセージ106を送信する。メッセージは、無人航空機104が処理するように構成される方法で構成された情報の構造化された集合体であってよい。上述されたように、メッセージは、天候データ、コマンド、他の無人航空機についての情報、及び/または概して無人航空機104もしくは図に示されていない1つまたは複数の他の無人航空機の操作に潜在的に適用可能である情報を含んでよい。
多様な実施態様では、無人航空機間のメッセージは、係るメッセージが信頼されるべきかどうかの判断を可能にするために暗号技法を利用し、メッセージに関する無人航空機の操作は、メッセージが信頼されるかどうかに依存してよい。この特定の例では、無人航空機102から無人航空機104へのメッセージ106はメッセージ106のデジタル署名108を提供される。多様な実施形態では、メッセージ106は、秘密暗号鍵が、無人航空機102のハードウェア保護を提供するトラステッドプラットフォームモジュール(TPM)または他の構成要素等のハードウェア構成要素の中で秘密として安全に維持される暗号用具であってもよい、公開−秘密暗号鍵の秘密暗号鍵を使用し、デジタルで署名される。非対称暗号技法が特定の実施形態の説明のために徹頭徹尾説明されているが、本明細書に説明される技法は無人航空機の間で共用される秘密を活用するアルゴリズム等、対称暗号アルゴリズムの使用に適応できることに留意されたい。概して、本開示の技法は、無人航空機に特有であり、無人航空機によって秘密として保持される暗号用具は、暗号用具または(例えば、秘密暗号鍵が暗号用具であるときの公開暗号鍵等の)暗号用具に対応する情報のどちらかにアクセスできる他の無人航空機によって暗号で検証可能なメッセージをレンダリングするために使用される技法に及ぶ。本開示の本実施形態は、メッセージの認証のために使用されているデジタル署名(対称及び非対称の両方)を説明するが、メッセージの真偽を検証するために他の認証情報が使用されてよいことに留意されたい。一例に、秘密認証情報自体が、アイデンティティまたは暗号用具であってよい秘密情報へのアクセスを証明するために使用できる他の情報を証明するために使用されてよい。概して、メッセージは、メッセージの発信者(例えば、無人航空機またはコマンド制御サーバ)、及び/または発信者とは異なる場合、メッセージを提供したエンティティ(例えば、無人航空機がメッセージを発しなかったときにメッセージがそこから受信された無人航空機)に特有である認証情報(例えば、デジタル署名または認証情報へのアクセスの他の証拠)とともに受信されてよい。
図1の示されている実施形態に戻ると、無人航空機102はさらに無人航空機104にデジタル証明書110を送信し、デジタル証明書110は無人航空機104が無人航空機102の中に記憶される秘密暗号鍵に対応する公開暗号鍵を決定し、公開暗号鍵を使用してメッセージ106のデジタル署名108を検証できるようにする。後述されるように、デジタル証明書110は証明機関(つまり、無人航空機104が信頼するように構成されるそれぞれのアイデンティティ(例えば、個々の無人航空機)にデジタル証明書を暗号によって結合することによってデジタル証明書を発行するコンピュータシステム)のデジタル署名を含んでよい。無人航空機104は、デジタル証明書110を発行した証明機関のデジタル証明書を有してよく、それによって無人航空機104が、デジタル証明書110の公開暗号鍵をデジタル署名108を検証するために信頼できると判断できるようにする。
上述されるように、無人航空機104は、無人航空機から受信されるメッセージが信頼できるとして暗号で検証されるかどうかに従って動作するように構成されてよい。したがって、無人航空機104がデジタル署名108の有効性の判断の成功によってメッセージ106を無事に認証するかどうかに応じて、無人航空機104は多様な操作を実行してよい。例えば、無人航空機104は、メッセージ106が本物であり、信頼できると判断した結果として、実行可能な命令の第1の集合に従って動作してよい。無人航空機104がメッセージ106が信頼できないと判断した結果として、無人航空機104は、実行可能な命令の別の集合を実行してよい。以下により詳細に説明されるように、無人航空機104が信頼できるメッセージまたは信頼できないメッセージを処理できる方法は、多様な実施形態に従って、及び本開示の多様な技法が使用されている無人航空機の特定の能力に従って変わってよい。
無人航空機が説明のために徹頭徹尾広範囲に使用されているが、本開示の技法は概して無人機に適用し、無人機は指定された目的地まで(例えば発送後人間の介入なしに)自律して移動できる車両であることに留意されたい。無人機は必ずしも飛行せず、陸上車両(例えば、車、トラック、及び他の自動車)、軌道車両(例えば、電車)、水の作用による車両(例えば、ボート及び潜水艦)、異なるタイプの飛行体(ヘリコプター、飛行機等)、及び/または他のタイプの車両を含むが、これに限定されるものではない。無人機は、いくつかの実施態様では、少なくともなんらかの操作のために及び/または自動システムの無効のために人間のオペレータを有することがあることに留意されたい。例えば、乗用車は、乗客が自動制御を無効にできる場合があっても無人機と見なされてよい。
図2は、無人航空機200及び無人航空機200が本明細書に説明される多様な技術を利用するために活用してよい情報の図を示す。無人航空機は、例えば図1に関連して上述されたように無人航空機であってよい。図に示されるように、無人航空機200は、この例では、無人航空機200が飛行もしくはそれ以外の場合移動できるようにする多様な構成要素、及び/または以下に説明されるように、他の構成要素を含む。実施形態では、図2に示されるように、無人航空機のフリートの各無人航空機200は、以下に説明されるように、無人航空機200の1つまたは複数のプロセッサがアクセスできる少なくとも3つの情報を利用可能にしている(例えば、メモリに記憶される)。この特定の例では、無人航空機200が記憶する項目の1つは無人航空機の秘密暗号鍵202であり、無人航空機の秘密暗号鍵202は公開−秘密暗号鍵対の公開暗号鍵に対応する秘密暗号鍵であってよい。無人航空機の秘密暗号鍵202に対応する公開暗号鍵は、無人航空機デジタル証明書に符号化されてよい、またはそれ以外の場合、無人航空機デジタル証明書204によって指定されてよい。無人航空機証明書は、公開暗号鍵を含むまたはそれ以外の場合指定するデータの構造化された集合体であってよい。いくつかの実施形態では、公開暗号鍵を符号化する他の方法が本開示の範囲内にあると見なされるが、無人航空機のデジタル証明書及び本明細書に説明される他のデジタル証明書はX.509証明書である。
上述されたように、無人航空機秘密暗号鍵202は、メッセージ自体のデジタル署名及び/または他の情報のデジタル署名(例えば、メッセージのハッシュであってよいメッセージの識別子)等、メッセージのためのデジタル署名を生成するために使用できる。概して、メッセージのためのデジタル署名は、メッセージに暗号によって結び付けられるとして暗号によって検証可能である秘密認証情報(例えば、秘密暗号鍵)を使用し、生成される情報である。無人航空機証明書204の公開暗号鍵は、無人航空機の秘密暗号鍵202を使用し、生成されるデジタル署名が有効であるかどうかを検証するために使用できる。しかしながら、多様な状況では、デジタル署名の有効性は無人航空機間で伝えられるデータのセキュリティを保証するには十分ではない。したがって、実施形態では、無人航空機200はさらに、無人航空機デジタル証明書204のデジタル署名を検証するために使用できる公開暗号鍵を有するデジタル証明書である証明機関デジタル証明書206を記憶し、係るデジタル署名は、証明機関によって秘密として保持される秘密暗号鍵を使用し、生成された可能性がある。
無人航空機のフリートの各無人航空機は、異なるそれぞれの秘密暗号鍵、及びそれぞれの秘密暗号鍵を使用し、生成されるデジタル署名を検証するために使用できる対応するデジタル証明書を有してよいことに留意されたい。しかしながら、各無人航空機は、証明機関証明書206の同じコピー、または概してデジタル証明書自体がフリートの無人航空機の中で変わる場合には証明機関証明書206によって符号化される公開暗号鍵のコピーを記憶してよい。さらに、個々の無人航空機は複数の異なる証明機関デジタル証明書を記憶してよく、単一の証明機関デジタル証明書はフリートの無人航空機のすべてのデジタル証明書を検証するには不十分であることがある。このようにして、無人航空機200が別の無人航空機からメッセージを受信するとき、無人航空機はメッセージとともに含まれるデジタル署名の信用性を検証してよい。
多様な実施形態では、メッセージの受信はメッセージのデジタル署名及びメッセージのデジタル署名を検証する上で使用するためのデジタル証明書の受信も含む。したがって、無人航空機200は、受信されたデジタル証明書の中で符号化されたまたはそれ以外の場合受信されたデジタル証明書によって指定される公開鍵である受信されたデジタル証明書を使用して、受信されたデジタル署名を検証できる。無人航空機200は、受信されたデジタル証明書のデジタル署名を検証するために証明機関デジタル証明書206の独自のコピーを使用してよい。受信されたデジタル証明書のデジタル署名とメッセージのデジタル署名の両方とも有効である場合、無人航空機200は信頼できる受信されたメッセージに従って動作してよい。同様に、受信されたデジタル証明書のデジタル署名とメッセージのデジタル署名の一方または両方が無効であると判断される場合、無人航空機200は信頼できないメッセージに従って動作することがある。
図2は特定の実施態様を示すが、他の実施態様は本開示の範囲内にあると見なされることに留意されたい。例えば、いくつかの実施形態では、無人航空機のフリートの各無人航空機はフリートのさまざまな無人航空機に特有のすべてのデジタル証明書のローカルコピーを維持する。デジタルで署名されたメッセージが無人航空機によって受信されるとき、無人航空機は一致するデジタル証明書のルックアップを実行してよく、デジタル署名を検証するためにその一致するデジタル証明書を使用してよい。デジタル証明書のローカルコピーが以前に検証されていた場合、無人航空機は、この代替実施形態では、証明機関証明書を活用することなく、有効なデジタル署名を有するメッセージを信頼してよい。一致するデジタル証明書を選択するために、無人航空機識別子またはデジタル証明書の電子指紋等の識別子がメッセージとともに含まれてよい。他の変形形態も、本開示の範囲内にあると見なされる。
図3は、多様な実施形態を実施できる環境300の例示的な例を示す。この特定の例では、環境300は無人航空機302のフリートを含む。特定の実施形態で活用される特定の無線通信技法に依存してよい範囲内にあるとき、無人航空機302はコマンド制御施設304と通信してよい。
コマンド制御施設304は、無人航空機302と通信するためのコンピュータシステム及び通信装置を備える施設であってよい。コマンド制御施設304の特定の構成は多様な実施形態に従って変わってよい。いくつかの例では、コマンド制御施設は、無人航空機が物理的な商品(またはデジタル商品を記憶する物理的な品目)をその目的地での配達のためにそこから取り出す倉庫の構成要素である。商品は、例えば、オンライン電子マーケットで注文された商品であってよい。無人航空機302は異なる実施形態に従って大幅に変わってよく、電子マーケットで注文される物理的な商品の配達のために使用される無人航空機に制限されないことに留意されたい。例えば、いくつかの例では、無人航空機302は、例えばサンプル、救援物資、または概して多様な理由から無人航空機302を使用し、発送される任意のタイプの物理的な品目等の、特に注文されなかった物理的な商品を配達するために使用される。また、無人航空機は、物理的な品目の配達に加えてまたは物理的な品目の配達の代わりに他のタスクに使用されてもよい。例えば、多くの無人航空機302は、電子写真及び/またはビデオ等の音声データ及び/または視覚データを記録できるカメラを装備する。係る無人航空機は、例えば地形を調査するために、情報を収集するために、ジャーナリスティックな目的のために、脅威を評価するために、及び/またはそれ以外の場合収集するのがより困難であってよい情報をそれ以外の場合収集するために使用されてよい。
実施形態では、コマンド制御施設304は、電子メッセージを生成し、生成された電子メッセージの無人航空機302への、無人航空機が活用するように構成される無線通信プロトコルを使用する送信を生じさせるように構成されたサーバコンピュータシステムであってよいコマンド制御サーバ306を含む。また、コマンド制御サーバ306は無人航空機302から送信される電子メッセージを受信してよく、相応してメッセージを処理してよく、このことは処理のための他のコンピュータシステムへの送信を含むことがある。無人航空機302が、コマンド制御サーバ306からのメッセージが信頼できるかどうか判断を下すことを可能にするために、コマンド制御サーバは、例えばメッセージにデジタル署名し、デジタル署名及びデジタル署名を検証するために使用できるデジタル証明書を有するメッセージを提供することによって、無人航空機によって使用されているとして本明細書で説明される多様な技法を活用してよい。例えば、いくつかのメッセージタイプは、たとえ係るメッセージが1つまたは複数の無人航空機を通して中継されてよいとしても、係るメッセージが処理される(例えば、メッセージの中のコマンドが達成される)前にコマンド制御施設(または例えば特定のサーバ等のコマンド制御施設の特定のエンティティ)からの発信を必要とすることがある。例えば、タスクを追加するコマンドは、いくつかの実施形態では、コマンド制御施設から発し、それによって不正アクセスされた無人航空機及び/または誤動作している無人航空機が無事にいくつかのコマンドを達成させるのを防ぐために必要とされることがある。本明細書に説明される技法は、その特定のメッセージタイプが、実際にコマンド制御施設から発していることを暗号によって検証するために使用できる。
コマンド制御サーバ306は、無人航空機302に、例えば天候データまたは脅威データ(つまり、例えば悪意をもって行動する人等の、報告されている無人航空機302に対する脅威を識別するデータ)、(無人航空機デジタル証明書の取り消しを示す情報等の)個々の無人航空機の信頼性についてのデータ、飛行禁止区域(例えば、当局が少なくとも一時的に飛行を禁止している区域)を識別するデータ、及び/または他の情報等のデータを提供する無人航空機302にタスクを割り当てるメッセージを送信してよい。
図3に示されるように、コマンド制御施設は、多様な実施形態の特定の要件に従って構成されてよい1つまたは複数の他のサーバ308を含んでもよい。例えば、倉庫実施形態では、1つまたは複数の他のサーバ308は、例えば受信された注文に一致させるために倉庫内での品目の場所についての情報を提供することによって倉庫内の品目の管理を容易にするように構成されてよい。例えば、1つまたは複数の他のサーバ308は、例えば電子マーケット等のコマンド制御施設と関連付けられた分散型コンピュータシステムから情報を受信してよく、コマンド制御サーバ306と通信して、無人航空機302を注文の達成に参加させてよい、またはそれ以外の場合無人航空機302のための多様なタスクに参加させてよい。概して、他のサーバ(複数可)は、無人航空機がそのために動作する組織の業務に従って構成されてよい。
図4は、多様な実施形態に従って無人航空機によって使用されてよいデータ構造400の示されている例を示す。この特定の例では、データ構造は、行が待ち行列で使用されてよい表の形式を有する。この例では、データ構造400は、データ構造400を強調する無人航空機のタスクと関連付けられた異なる種類の情報に対応する多様な列を含む。一例に、データ構造400の第1の行はタイムスタンプに対応し、タイムスタンプ列の行のエントリは、行に対応するタスクが無人航空機によって受信されたときまたはタスクが(例えば、コマンド制御サーバによって)生成されたときのタイムスタンプに対応する。
第2の列は、無人航空機に割り当てられたタスクの識別子に使用される。この特定の例では、タスク列のエントリは、この例では配達タスク及び「基地に戻る」タスク(例えば、遠隔場所からコマンド制御施設に移動することを伴うタスク)である2つの異なるタスクの1つに対応する。無人航空機によって実行されるタスクのタイプは多様な実施形態に従って変わり、必ずしも物理的な品目の配達を含まないことに留意されたい。例えば、無人航空機のタスクは、場所に移動し、音声及び/または視覚情報を記録することであってよい。別の例として、無人航空機のタスクは指定された場所に移動し、無人航空機のスピーカシステムを通して音声ファイルを再生することであってよい。また、他のタスクも本開示の範囲内にあると見なされる。操作をタスクにまとめることによってデータ構造400が無人航空機の操作計画を符号化し、操作計画は実施形態では、実行する操作の順序付けられた集合を含むことに留意されたい。この例では、操作計画は、すべての完了されていない(例えば、未決定の及び将来に実行される)タスクを含む(例えば、行ごとに順序付けられる)順序付けされたタスクの集合として符号化される。しかしながら、操作計画はタスク別にまとめられる必要はないが、例えばより粒度の細かいレベルで(例えば、個々の操作によって)またはより粒度が細かくないレベルで(例えば、タスクのグループによって)まとめられてよいことに留意されたい。
図4の例のデータ構造400の第3の列は、無人航空機が割り当てられた結果として受信した可能性がある多様なタスクについてのデータのために使用される。この特定の例では、特定のタスクのデータのタイプはタスクのタイプに従って変わってよい。この例では、配達タスクは、無人航空機が個別に配達してよいいくつかのペイロードの1つを指定する情報を含む。また、データは、無人航空機が目的地までたどる一連の座標(例えば、グローバルポジショニングサービスの座標)を含んでよいルートのためのデータを含んでもよい。ルートは、ルートの座標によってまたは例えば事前に記憶されたルートの識別子によって等、他の方法によって識別されてよい。
また、データ列のデータは、無人航空機がタスクの受入れに関連して信頼したあらゆるメッセージについての情報を含んでもよい。係る信頼の情報は、例えばメッセージがそこから受信された無人航空機の識別子、または受信されたメッセージのタイプ(例えば、メッセージがコマンドを有していたのか、天候データを有していたのか、ハザードデータを有していたのか、別の無人航空機のデジタル証明書の取消しについてのデータを有していたのか、または他のデータ)を含んでよい。また、信頼のデータは、受信されたメッセージのタイムスタンプも含んでよい。タイムスタンプは、例えばいつメッセージが生成されたのかのタイムスタンプであってよい。例えばメッセージ自体、受信されたメッセージのデジタル署名、及び/またはそれと関連付けられた任意のメタデータ等の他の情報も含まれてよい。図4に示されるように、タスクの信頼のデータは、無人航空機によって受信された複数のメッセージのために記憶されてよい。例えば、タスクのルートは、複数の無人航空機からの天候データを受信した結果として計算された可能性がある。ある無人航空機は1つの場所から天候についての情報を提供した可能性がある。一方、別の無人航空機は別の場所の天候についての情報を提供した可能性がある。信頼のデータと含まれる他の情報は、別の無人航空機からのデータがどのようにして使用されたのかを識別する(例えば、データが目的地までのルートを更新するために使用されたことを識別する)データであってよい。概して、タスクのための信頼のデータは、無人航空機が、タスクが、別の無人航空機から受信された情報を使用し決定されたのかどうかを判断できるようにし、いくつかの実施形態では情報を提供した無人航空機を決定できるようにするデータを含む。信頼のデータは、個々の操作等の精度の他のレベルのための、または操作及び/もしくはタスクの個々の構成要素のための情報と関連付けられてよいことに留意されたい。例えば、信頼のデータはルートと関連付けられ、それによってそのルートを活用するタスクと間接的に関連付けられてよい。他の変形形態も本開示の範囲内にある。
最後に、図4に示されるように、データ構造400の第4の列はタスクごとのステータス識別子を含む。この特定の例では、ステータス列の各エントリは3つの可能性、つまり完了、進行中、及び待ち行列の内の1つである。完了ステータス識別子を有するタスクは、無人航空機がすでに実行したタスクであってよい。進行中タスクステータス識別子は、タスクが現在無人航空機によって実行中であることを示してよい。例えば、図3に示されるように、無人航空機は配達を行うためにルート上にあることがある。タスクの待ち行列ステータス識別子は、タスクが、1つまたは複数の他のタスクの完了後に実行されるために記録されていることを示してよい。また、他のデータはデータ構造400に記憶されてもよく、図4に示される特定のタイプの情報は単一の実施形態の例のために提供される。例えば、いくつかの完了されたタスクは可逆であってよく(例えば、配達はペイロードの位置を突き止め、ペイロードの制御を回復することによって逆にされ得る)、タスクが可逆であるかどうかはデータ構造400に含まれてよい。
また、他の変形形態も本開示の範囲内にあると見なされる。例えば、いくつかの実施形態では、データ構造は、完了されたタスクのために行の中に情報を含まないことがある。しかしながら、完了されたタスクに対応する情報の記憶は、例えば実行されたタスクに関する統計的な情報の記録のために等、多様な実施形態で役立ってよい。データ構造400に含まれてよい他の情報はタスクの完了のタイムスタンプ、例えば天候データ等のタスクの実行中にセンサから入手される情報、特定の実施形態に関連性があってよいタスク及び/または他の情報の一部として移動される1つまたは複数の場所の1つまたは複数のデジタル画像を含んでよい。図4の特定の例では、データ構造は待ち行列として使用できる表として構成される。タスクは、タスクが実行される予定である順序に従って上から下に順序付けられる。完了ではないタスクステータスを有する最も高い行は進行中のタスクまたはまだ始められていないタスクに対応してよく、あらゆる以後の行は待ち行列に入れられたタスクに対応してよい。
上述されたように、無人航空機はその動作中の情報の記録のために多様なセンサを活用してよい。係る情報は、操作データと呼ばれてよい。係る操作データの例は、温度データ、風速データ、気圧データ、降水量データ、及び/または天候に関連する他のデータを含んでよいが、これに限定されるものではない天候データを含む。また、グローバルポジショニングシステム(GPS)データも操作データと見なされてよい。他の操作データは、複数のモータのそれぞれのモータ速度等の推進のために使用される無人航空機のシステムについてのデータ、及び/またはピッチ、ロール、及びヨー等の向きデータを含む。また、クロックは、例えばタイムスタンプ等、使用される時間データの形で操作データを提供してよい。
また、操作データは、無人航空機のセンサの集合によって収集されるデータの解析から生じてもよい。例示的な例として、GPSデータ及び高度データと関連するモータ操作についてのデータは、無人航空機が悪意のある人間の妨害を受けたのか、それとも操作上の問題に遭遇したのかを判断するために使用されてよい。例えば、長期のモータ操作、すなわち高度またはGPSの位置の変化なく閾値を超えたモータ操作は、無人航空機が妨害(例えば、飛行を妨げるまたは通信を妨げる何か)にさらされたことを示すことがある。カメラ等のセンサは、顔認証アルゴリズムとともに、人間が存在しているかどうかを判断するために使用されてよく、それによって妨害が人間の妨害であるのか、それとも人間以外の妨害であるのかの判断を可能にする。人間以外の妨害は、例えば無人航空機が飛行するのを妨げる木または他の構造と関わり合っている無人航空機であってよい。また、操作データは、無人航空機の操作を悪意をもって妨害する人間の法鑑定及び/または概してトラブルシューティングを可能にするための環境についての情報等の多様な目的に使用される周囲の環境の音声及び写真及び/またはビデオ等の音声データ及び/または視覚データを含んでもよい。
図5は、実施形態に従って操作データを処理するために使用されてよいプロセス500の例示的な例を示す。プロセス500は、無人航空機の搭載(「オンボード」とも呼ばれる)コンピュータシステムによって実行されてよい。実施形態では、プロセス500は、操作データを入手すること502を含む。上述されたように、操作データは、プロセス500を実行する無人航空機が備える多様なセンサから、及び/またはセンサの集合によって入手されるデータを処理することによって入手されてよい。操作データを入手する502と、プロセス500を実行する無人航空機は操作データを処理してよい504。上述されたように、操作データは、多くの例が本明細書に説明される多様な実施形態に従って多様な方法で処理されてよいが、本開示の実施形態はその中に明白に述べられている実施形態に制限されていない。概して、操作データを処理すること504は、操作を変更するかどうか及び/または操作をどのように変更するのかを判断するために実行可能な命令に従って日付の分析を実行することを含む。いくつかの例では、操作データを処理することは、(例えば、場所及び/または近接して顔を検出する顔認識アルゴリズムに十分な変化のない長期のモータ操作のために、または無人機のハウジングの中への侵入を示すセンサのために)プロセス500を実行する無人航空機が不正にアクセスされたと判断することを含む。係るセキュリティ侵害を検出すると、無人航空機は独自のデジタル証明書を取り消すメッセージを生成し、デジタルで署名し、可能な場合、そのメッセージを1つまたは複数の他の無人航空機及び/またはコマンド制御施設に送信してよい。係る自己取消し(self−revocation)を受信する無人航空機は(取消しにも関わらず)メッセージの真偽を検証し、(例えば、取り消されていないデジタル証明書で検証可能であるためにデジタルで署名されていない少なくともいくつかの将来のメッセージを拒絶し、そのデジタル証明書を自己取消しした(self−revoked)無人航空機からのメッセージに依存して操作計画を修正する等によって)相応して処理してよい。いくつかの例では、自己取消し(つまり、概して自己生成されない取消し)は、(例えば、取り消されたデジタル証明書を使用し検証可能であり、取り消し後に受信された及び/または生成された、無人航空機からのメッセージに依存するそれらのタスクだけを選択することによって)デジタル証明書が取り消された無人航空機からのメッセージに依存するあらゆる未決定タスクを選択的に再処理できるように、実効時間を指定してよい。
多様な実施形態では、操作データは、操作データを収集した無人航空機にとってだけではなく、他の無人航空機にとっても役立つ。一例に、無人航空機によって収集される天候データは、荒れ模様の天気が記録されている場所に移動することが予定される別の無人航空機にとって役立つことがある。別の例として、妨害が人間の妨害であるのか、それともそれ以外であるのかに関わりなく、無人航空機の操作の妨害を検出した無人航空機は、妨害が検出された目的地へまたは目的地の近くに移動することが予定される無人航空機にとって役立つことがある。別の無人航空機によって収集される操作データの使用の他の例は、本開示の範囲内にあると見なされる。
他の無人航空機が操作データを活用できるようにするために、プロセス500は、操作データを符号化するメッセージを生成すること506を含んでよい。メッセージは、メッセージを受信する他の無人航空機による操作データの処理を可能にする方法で構造化されてよい。メッセージを生成する506と、プロセス500を実行する無人航空機はメッセージにデジタルで署名してよい。無人航空機は、例えば無人航空機がアクセス可能な秘密暗号鍵を使用し、暗号デジタル署名アルゴリズムを実行してよい。メッセージにデジタルで署名する508と、無人航空機はメッセージ、デジタル署名、及びメッセージにデジタルで署名するために使用される秘密暗号鍵に対応する公開鍵を符号化するデジタル証明書を送信してよい510。メッセージデジタル署名及びデジタル証明書の組合せは、示されているそれらの項目だけではなく他の情報も含んでよいメッセージパッケージと呼ばれてもよい。また、無人航空機は、いくつかの例では、自身で使用するために、または他の無人航空機が通信範囲内に現れると、他の無人航空機に(以下に説明されるように、個別にまたはログでのどちらかで)提供するために無人航空機が生成した506メッセージを記憶してよいことに留意されたい。
追加操作が、プロセス500及びプロセス500の変形形態を実行しながら、実行されてよいことに留意されたい。例えば、いくつかの実施形態では、プロセス500を実行するための無人航空機の論理は、別の無人航空機にメッセージを送信するかどうかを決定するための論理を含む。一例に、操作データがある場所の天候データを含む場合、無人航空機は、場所からより遠い、場所の指定された半径外にいる、またはそれ以外の場合、天候データをより活用しそうにない別の無人航空機に天候データを送信するかどうかを決定してよい。係る判断を下すために、無人航空機は他の無人航空機から場所情報を受信してよい、及び/または(例えば、無人航空機が、無人航空機が現在遠く離れている場所の天候データを有すると判断することによって)独自のセンサを活用してよい。
また、本明細書に説明されるメッセージのすべての送信と同様に、プロセス500を実行する無人航空機は多様な方法でメッセージパッケージを送信してよいことにも留意されたい。例えば、いくつかの実施形態では、無人航空機は他の無人航空機と(例えば、暗号化された通信チャネルであってよい通信チャネルを確立するために)ハンドシェークプロセスを完了し、チャネルを確立後メッセージを送信する。他の例では、無人航空機はメッセージパッケージを放送し、放送の範囲内にあるあらゆる無人航空機はメッセージパッケージを受信し、処理してよい。いくつかの実施形態では、いくつかのタイプのメッセージが放送され、一方、他のタイプは確立された対ごとの通信チャネルでの通信のために確保される。
上述されたように、本開示の多様な技法は、例えば図5に関連して上述されたプロセス500に従って、他の無人航空機から送信されるメッセージを受信し、処理することを含む。図6は、実施形態に従って受信されたメッセージを処理するためのプロセス600の例示的な例を示す。プロセス600は、以下に説明されるように、無人航空機上の搭載コンピュータシステムによって等、任意の適切なシステムによって実行されてよい。実施形態では、プロセス600は、メッセージ、デジタル署名、及びデジタル証明書を含んでよいメッセージパッケージを受信すること602を含む。メッセージパッケージは、上述されたように、別の無人航空機からまたはコマンド制御施設等のコマンド制御センタから受信されて602よい。メッセージは、メッセージを転送するために使用される無線プロトコルに従って受信されて602よい。
実施形態では、受信された602メッセージを処理するために、プロセス600は、メッセージパッケージのデジタル証明書が信頼できるかどうか判断する604ことを含む。メッセージパッケージのデジタル証明書が信頼できるかどうか判断する604は、上述されたように、証明機関証明書のコピーを評価し、証明機関証明書で符号化された公開暗号鍵を使用して、メッセージパッケージの受信された602デジタル証明書のデジタル署名を検証することを含んでよい。デジタル証明書が信頼できるかどうかを判断することは、例えばデジタルが期限切れである(したがって、信頼できない)かどうか、デジタル証明書がメッセージに偽ってデジタルで署名したアイデンティティに一致するかどうかを判断すること、及び/または他の操作等の追加の操作を含んでもよい。いくつかの実施形態では、デジタル証明書での期日は相対的に短い期日(例えば、1日または1週間有効)を有することに留意されたい。無人航空機がコマンド制御施設に戻るまたはそれ以外の場合コマンド制御施設と通信できるようになるとき、無人航空機は、そのデジタル証明書の期日の指定された閾値の範囲内である場合、コマンド制御サーバ(または証明機関等の他のエンティティ)からデジタル証明書を要求してよい。デジタル証明書を発行できるエンティティは、応答してデジタル証明書を提供し、それによって無人航空機はメッセージにデジタルで署名できる。同様に、無人航空機が(例えば、無人航空機が悪意をもって捕捉されたためにまたはそれ以外の場合戻ることができなかったために)デジタル証明書を更新するために戻らない場合、無人航空機のデジタル証明書は相対的に短い時間量有効となり、それによって万一誰かが秘密暗号鍵へのアクセスを得たとしても無人航空機になりすます絶好のチャンスを制限する。
デジタル証明書が信頼できないと判断される604場合、実施形態では、デジタル署名の正しさは検証可能であっても、デジタル署名の信頼性は検証できないため、プロセス600を実行する無人航空機はメッセージが信頼されるべきかどうかを検証することができない。結果的に、証明書が信頼できないと判断される604場合、プロセス600はメッセージを拒絶する606ことを含んでよい。メッセージは多様な実施形態に従って多様な方法で拒絶されて606よい。例えば、いくつかの実施形態では、プロセス600を実行する無人航空機は受信された602メッセージとは単に関係がない。すなわち、プロセス600を実行する無人航空機の未決定のまたは待ち行列に入れられたあらゆるタスクは影響を受けないままであってよい。メッセージの拒絶606は多様な実施形態ではより複雑であることがある。いくつかの例では、例えばデジタル証明書の無効性等の拒絶されたメッセージの理由の通知は、直接的にまたは1つもしくは複数の他の無人航空機を通じてコマンド制御施設に送信されてよい。
プロセス600を実行する無人航空機が、デジタル証明書は信頼できると判断する604場合、無人航空機はメッセージのデジタル署名が有効であるかどうかを検証してよい。例えば、無人航空機は、公開暗号鍵及びメッセージを使用し、デジタル署名を検証するためにデジタル証明書で符号化されている公開暗号鍵を活用してよい。無人航空機がデジタル署名が有効ではないと判断する608場合、メッセージは上述されたように拒絶され606てよい。
しかしながら、プロセス600を実行する無人航空機が、デジタル署名は有効であると判断する608場合、無人航空機は、メッセージが実行可能であるかどうか判断する610。実施形態では、メッセージが1つまたは複数の完了していないタスク、またはより一般的には待ち行列に入れられているもしくはそれ以外の場合実行される予定である1つもしくは複数の完了していない操作に適用する場合、メッセージは実行可能である。メッセージが現在のタスクに適用可能であるのか、それとも未決定タスクに適用可能であるのかを判断するために規則エンジンが使用されてよい。完了していないタスクに適用可能な例のメッセージは、無人航空機のあらゆる完了していないタスクに示されるあらゆる座標の指定閾値距離の範囲内にある場所について天候データを含むメッセージである。また、より複雑な分析は、例えば無人航空機の経路が無人航空機を、無人航空機に対する潜在的なハザードに対応する天候データまたは他のデータが記録されたある場所の閾値距離の範囲内に入らせるかどうかを判断することによって実行されてよい。実行可能なメッセージのさらに別の例として、1つまたは複数の完了していないタスクは以前に別の無人航空機から受信された情報に依存してよい。メッセージが無人航空機からの情報が信頼できないことを示す場合、メッセージは信頼できない無人航空機からの情報に依存するタスクを再計算する必要性の結果、実行可能であってよい。
実施形態では、プロセス600を実行する無人航空機が、メッセージは実行可能であると判断する610場合、プロセス600はメッセージの処理を開始する612ことを含んでよい。上述され、以下により詳細に説明されるように、メッセージが処理される方法は多様な実施形態に従って変わってよい。プロセス600を実行する無人航空機が、メッセージは実行可能ではないと判断する610場合、またはメッセージの処理の開始時に、プロセス600を実行する無人航空機はメッセージパッケージにデジタルで署名して614、更新済みメッセージパッケージを生成してよい。更新済みメッセージパッケージはメッセージ、新しいデジタル署名、及びプロセス600を実行する無人航空機の証明書を含んでよい。他の実施形態では、受信された602メッセージパッケージは、受信された602メッセージパッケージ、受信された602メッセージパッケージのデジタル署名、及びプロセス600を実行する無人航空機のデジタル証明書を含んでよい、更新済みメッセージパッケージを生成するためにデジタルで署名されるメッセージとして使用される。更新済みメッセージパッケージを生成し、プロセス600を実行する無人航空機は、例えば別の無人航空機にまたはコマンド制御施設に更新済みメッセージパッケージを送信して616よい。
本明細書に説明されるすべてのプロセスと同様に、多数の変形形態は本開示の範囲内にあると見なされる。例えば、図6で、メッセージパッケージを受信した602無人航空機は更新済みメッセージパッケージを生成する。これは、例えば、無人航空機がメッセージを入念に検査したことを示すことがある。ただし、他の実施形態では、無人航空機は更新済みメッセージパッケージを生成するのではなく、単にメッセージパッケージを別の無人航空機及び/またはコマンド制御施設に転送するだけである。本開示の範囲内の変形形態の別の例として、メッセージパッケージまたは更新済みメッセージパッケージの送信616は、メッセージが受信された602無人航空機とは異なる別の無人航空機と通信する能力について監視した後に実行されてよい。
やはり本開示の範囲内になると見なされる他の変形形態は、操作が実行される順序の変動を含む。例えば、図6に示されるように、特定の操作は信頼されているメッセージパッケージのデジタル証明書、有効であるメッセージパッケージのデジタル署名、及び実行可能であるメッセージに依存する。追加の操作は、デジタル署名を信頼するかどうかを判断するために実行されてよい。例えば、メッセージのタイムスタンプは、メッセージが失効しているかどうかを判断するために使用されてよく、(例えば、天候データは限られた時間量、有用であることがあるため)メッセージの失効はメッセージが生成されて以来の閾値時間量の経過によって決定されてよい。さらに、いくつかの実施形態では、メッセージは有効期間値(多くの場合「TTL」と省略される)とともに生成される。有効期間値は、メッセージの満了を示す情報であってよい。有効期間値は、例えば満了が発生する時間を指定してよい。別の例として、有効期間値は、メッセージが生成されたときのタイムスタンプ、及びメッセージが期限切れになる前に経過することがある時間量を指定してよい。さらに別の例として、有効期間値はメッセージがある無人航空機から別の無人航空機に伝わるたびに増分されるカウンタであってよく、有効期間値はメッセージがいつ期限切れになるのかを示すカウンタに対する制限を含む。また、他の情報も有効期間値として使用されてよい。概して、無人航空機がメッセージが失効しているかどうかを判断できる任意の機構は、本開示の範囲内にあると見なされる。
さらに、デジタル署名を信頼するかどうかに関する操作、及び/または(例えば、アクションが実行可能であるかどうかを判断する)他の操作は異なる順序で実行されてよい。例えば、デジタル署名の無効は、証明書が信頼できるかどうかをチェックすることが不必要であることを意味してよい。結果として、デジタル証明書の信頼性の終了及びデジタル署名の有効性の判断は異なる順序及び/または同時に実行されてよい。概して、本明細書に説明される操作は、状況と矛盾しない任意の順序で実行されてよい。例えば、ある操作の結果が別の操作の実行に必要ではないとき、2つの操作は任意の順序でまたは同時に実行されてよい。言い換えると、特定の順序で実行されている特定の操作の例証は必ずしも、本開示の実施形態がその順序に制限されること、及び本開示の範囲が、状況に明白に矛盾しない操作の他の順序に及ぶことを意味しない。
上述されたように、無人航空機のタスクは多様な実施形態に従って他の無人航空機から受信されるメッセージに依存してよい。いくつかの状況では、無人航空機は悪意のある活動または誤動作のどちらかによって不正にアクセスされることがある。図7は相応して、実施形態に従って他の無人航空機からまたは命令する制御施設から受信されるメッセージを処理するための例のプロセス700を示す。プロセス700は、例えば無人航空機の搭載コンピュータシステムによって等、任意の適切なシステムによって実行されてよい。実施形態では、プロセス700は、例えば上述されたメッセージパッケージを受信し、認証する702(例えば、信頼するかどうかを判断する)ことを含む。例えば、メッセージを信頼するかどうか判断することは、デジタル署名が有効であるかどうか、デジタル証明書が信頼できるかどうか、デジタル証明書がそれ以外の場合有効である(例えば、満了していない)かどうかを判断し、メッセージのコンテンツを処理することを含んでよい。また、メッセージのTTL値及び/またはタイムスタンプ等の他の情報が、メッセージが信頼できるかどうかを判断するために使用されてもよい。
メッセージパッケージは、メッセージで識別されてよい無人航空機、またはいくつかの例ではメッセージがそこから受信された702無人航空機と関連付けられてよい。例えば、メッセージパッケージはメッセージ、デジタル署名、及びデジタル証明書を含んでよい。メッセージパッケージを受信する702と、プロセス700は、メッセージが受信された702メッセージと関連付けられた無人航空機(例えば、メッセージで指定された無人航空機)の信頼についてであるかどうかを判断する704ことを含んでよい。例えば、メッセージは無人航空機と関連付けられたデジタル証明書の取消しを示してよい、または無人航空機の識別子を使用し、信頼されない無人航空機を指定してよい。図7は、メッセージの対象である単一の無人航空機で実行されているプロセス700を示すが、メッセージは複数の無人航空機の信頼についてであってよく、プロセス700が相応して適応されてよいことに留意されたい。
実施形態では、プロセス700を実行する無人航空機が、メッセージが無人航空機を信頼することについてであると判断する704場合、プロセス700を実行する無人航空機は、メッセージが受信された702無人航空機に依存して、無人航空機があらゆる完了していないタスク(概して、あらゆる完了していない操作)を有するのかを判断706してよい。しかしながら、プロセス700を実行する無人航空機がメッセージを信頼すると判断する704場合、プロセス700は、上述されたように、メッセージを処理する708ことを含んでよい。例えば、メッセージを処理すること708は、例えば荒れ模様の天気または他のハザードを回避するために1つまたは複数の完了していないタスクを更新することを含んでよい。
偽ってメッセージを生成した無人航空機に依存して、無人航空機があらゆる完了されていないタスクを有するかどうかを判断する706ことは、多様な実施形態に従って多様な方法で実行されてよい。例えば、いくつかの実施形態では、無人航空機は、依存のデータの中に偽ってメッセージを生成した無人航空機の識別子を含むあらゆる完了していないタスクを選択するために、図4に関連して上述されたように、データ構造を活用してよい。概して、プロセス800を実行する無人航空機はメッセージの出所を決定することに使用できる情報を記憶することがあり、あらゆるタスクがメッセージの出所、つまりメッセージがそこから受信された無人航空機に依存したかどうかを判断するために係るデータを使用してよい。
プロセス700を実行する無人航空機が、1つまたは複数の完了していないタスクが、メッセージパッケージがそこから受信された702無人航空機に依存すると判断する706場合、プロセス700は、メッセージパッケージがそこから受信された702無人航空機からのメッセージに依存して完了していないタスクを選択する710ことを含んでよい。実施形態では、完了していないタスクはタスクの待ち行列内の場所に従って選択され、特に完了していないタスクは、メッセージパッケージがそこから受信された無人航空機に依存している待ち行列内で最高の完了していないタスクとして選択される。この例では、待ち行列内で最高であることは、プロセス700を実行する無人航空機による初期の達成に相当する。メッセージパッケージがそこから受信された702無人航空機からのメッセージに依存するタスクの選択は、特定のメッセージを選択するかどうかのより複雑な判断を含むことがあることに留意されたい。例えば、いくつかの実施形態では、メッセージは異なるメッセージタイプに分類される。タスクの選択は特定のタイプ(またはいくつかのタイプの内の1つ)のメッセージに依存するタスクについてだけ発生することがあるが、1つまたは複数の他のタイプに依存するタスクは選択されないことがある。別の例として、以下に説明されるように、無人航空機はメッセージを入念に検査するように構成されてよい。係る実施形態では、タスクの選択はメッセージ(例えば、メッセージを入念に検査した無人航空機の集合が(信頼できる無人航空機となるために定足数規則によって必要とされることがある)信頼できる航空機の定足数を定義する一連の定足数規則を満たすかどうか)を入念に検査した(例えば、確認した)少なくともいくつかの他の無人航空機に基づいて決定されてよい。
メッセージがそこから受信された702無人航空機からのメッセージに依存して完了していないタスクを選択する710と、プロセス700は、タスクが依存していた無人航空機からのメッセージとは無関係であるために、タスクを再処理する712ことを含んでよい。タスクを再処理することは、例えば無人航空機からのメッセージに示される場所の回避とは関係しないように、新しいルートを計算することを含んでよい。例えば、無人航空機は(例えば、GPSセンサのGPSデータから決定される)その現在場所を使用して、ルートが計算された前のルートとは異なることがあるまたは異ならないことがある現在場所から最適のルートを決定してよい。別の例として、無人航空機はタスクの複数のバージョン(概して、例えばバージョン間の違い等、以前のバージョンを決定するために使用できる情報)を記憶してよく、メッセージパッケージがそこから受信された702無人航空機に依存していなかった以前のバージョンにロールバックさせるために記憶されているバージョンを使用してよい。ルートを有するタスクの例では、無人航空機は以前のルートにロールバックしてよく、このことはルートをたどり続けるために現在位置からルート上のある場所へ移動することを含んでよい。
いくつかの例では、例えばメッセージがタスクの以前のバージョンに対する変化を生じさせなかったとき、または別の無人航空機(もしくはいくつかの例では、定足数を形成する無人航空機の集合)からの情報がタスクの再計算を生じさせ、タスクが変更されないとき等、再処理することがタスクに変更を生じさせないことがあることに留意されたい。さらに、タスクを再処理することは、例えばいくつかのタスクを順序付けし直すことを含んでよい、タスクの集合を再処理することを含んでよい。例示的な例として、無人航空機は2つの配達タスクを有してよい。タスクを更新することを決定したときに、無人航空機は、無人航空機の現在場所のため、異なる順序で配達タスクを実行する方がより速いだろうと判断することがある。これを行うために、無人航空機は、(ルートを定義する座標までの距離を計算し、最短距離を選択することによって概算されてよい)無人航空機が複数のタスクのための複数のルートのどのルートに最も近いのかを決定し、対応するタスクを始めてよい。結果として、タスクの開始場所及び終了場所は変更することがあり、他のタスクが再計算されなければならないことがある(例えば、決定された新しいルート)。概して、タスクを再計算するとき、無人航空機はその現在の状態を、タスクを再計算するために使用されるアルゴリズム(例えば、ルート計算アルゴリズム)に対する入力として活用してよい。タスクを再処理する/再計算することはタスクの集合に新しいタスクを追加することを含んでもよい。例えば、タスクの再処理は、ペイロードを配達するタスクをコマンド制御センタに戻るタスクで置換させてよい。別の例として、タスクを再処理することは別のタスクを置換することなくタスクを追加することを含んでよい。例えば、信頼できない無人航空機からの依存されるメッセージが場所についての情報(例えば、天候)を示す場合、情報を検証するタスクが追加されてよく、1つまたは複数のタスクは、その実行が、メッセージのデータが無事に検証されたかどうかに依存するように予定されてよい。
メッセージパッケージがそこから受信された702無人航空機からのメッセージに以前は依存していたタスクを再処理する712または代わりにメッセージパッケージがそこから受信された702無人航空機からのメッセージに以前は依存していたタスクの再処理を開始すると、プロセス700は、メッセージパッケージがそのために受信された702無人航空機からの任意のメッセージに依存する追加の完了していないタスクがあるかどうかを判断することを含んでよい。追加の完了していないタスクがあると判断した714場合、プロセス700は、メッセージパッケージがそこから受信された702無人航空機からのメッセージに依存して別の完了していないタスクを選択し、タスクを再処理する(またはタスクの以前のバージョンにロールバックさせる)ことを含んでよい。メッセージがそこから受信された無人航空機からのメッセージに依存したタスクの係る選択及び再処理は、プロセス700を実行する無人航空機が、メッセージパッケージがそこから受信された702無人航空機からの任意のメッセージに依存する追加の完了していないメッセージがないと判断する714まで続行してよい。
メッセージパッケージがそこから受信された無人航空機からのメッセージに依存する追加の完了していないメッセージがないと判断したとき、プロセス700を実行する無人航空機は、上述されたように、受信された702メッセージパッケージのメッセージを拒絶して716よい。例えば、プロセス700を実行する無人航空機は、信頼できるメッセージパッケージのメッセージに従って受信された702メッセージパッケージのメッセージを処理することを回避してよい。別の例として、プロセス700を実行する無人航空機は、メッセージパッケージがそこから受信された702無人航空機から信頼できないメッセージの通知を含むメッセージを生成してよい。メッセージが拒絶されるとき、またはメッセージが拒絶されないときにも追加の操作が実行されてよい。例えば、コマンド制御施設及び/または別の無人航空機から受信されるメッセージは記録を付けられてよく、それは無人航空機が受信したメッセージのログに追加されてよい。
いくつかの実施形態では、無人航空機が信頼できると判断されるメッセージに遭遇するとき、無人航空機は、他の無人航空機によるメッセージの受入れに影響を与える追加の操作を実行してよい。図8は相応して、別の無人航空機から受信されるメッセージを処理するためのプロセス800の例示的な例を示す。プロセス800は、以下に説明されるように、例えば無人航空機の搭載コンピュータシステムによって等、任意の適切なシステムによって実行されてよい。実施形態では、プロセス800は無人航空機から発するメッセージパッケージを受信する802ことを含む。無人航空機から発するメッセージパッケージは、メッセージを生成した無人航空機とは異なる無人航空機から受信される可能性があることに留意されたい。例えば、プロセス800を実行する無人航空機は、メッセージパッケージを発した別の航空機からのメッセージパッケージを中継する無人航空機からメッセージパッケージを受信して802よい。
メッセージパッケージを受信する802と、プロセス800を実行する無人航空機はメッセージを信頼するかどうかを判断して804よい。メッセージを信頼するかどうかの判断804は、上述されたように、任意の適切な方法で実行されてよい。プロセス800を実行する無人航空機がメッセージを信頼しないと判断する804場合、プロセス800は、上述されたように、メッセージを拒絶する806ことを含んでよい。しかしながら、メッセージを信頼することが判断される804場合、プロセス800は、メッセージパッケージのメッセージがあらゆる完了していないタスクに適用可能であるかどうかを判断する808ことを含んでよい。例えば、発信する無人航空機の識別子は、例えば図4に関連して上述されたデータ構造400のデータ等の任意の信頼のデータが、メッセージパッケージがそこから受信された無人航空機からのメッセージに対する信頼を示すかどうかを判断するために使用されてよい。
802で受信されたメッセージパッケージのメッセージがあらゆる完了していないタスクに適用可能であると判断した808場合、プロセス800は、メッセージが適用するあらゆる完了していないタスクを再計算する(またはあらゆる完了していないタスクの再計算を開始する)ためにメッセージを使用する810ことを含んでよい。タスク(複数可)を再計算するもしくはタスク(複数可)の再計算を開始すると、またはメッセージが適用する完了していないタスクがないと判断する808と、プロセス800は、プロセス800の独自のデータを実行する無人航空機が受信された802メッセージに適用可能であるかどうかを判断する812ことを含んでもよい。一例に、メッセージがある場所の天候データを含む場合、プロセス800を実行する無人航空機は、無人航空機自体が同じ場所のための天候データを収集したのか、それとも天候データが受信された802場所の指定された閾値距離の範囲内の場所のための天候データを収集したのかを判断してよい。場所の気象ではないハザードを示すデータは、同様に適用可能として識別されてよい。さらに別の例として、メッセージが、指定された無人航空機(例えば、プロセス800を実行する無人航空機とは異なり、メッセージパッケージがそこから受信された無人飛行機とは異なる無人飛行機)が(例えば、デジタル証明書が取り消されていなかったため)信頼できないことを示す場合、メッセージパッケージを受信した802無人航空機は、無人航空機が同様に指定された無人航空機が信頼できないことを検出したかどうかを判断してよい。概して、プロセス800を実行する無人航空機は、無人航空機が収集したデータが受信されたメッセージ中のデータと一致しているのか、それとも一致していないのかを判断するためにプログラミング論理を適用する。規則エンジンまたは他の機構(例えば、決定木)は、収集されたデータがメッセージ適用可能であるかどうかを判断するために使用されてよい。
プロセス800を実行する無人航空機が、その独自のデータがメッセージパッケージで受信された802メッセージに適用可能であると判断する812場合、プロセス800は、受信された802メッセージパッケージのメッセージの受入れに影響を与えるために新しいメッセージパッケージを生成する814ことを含んでよい。一例に、署名連鎖はメッセージにデジタル署名を追加するために活用されてよい。さらに別の例として、メッセージの識別子はデジタルで署名されてよい。メッセージの受入れに影響を与えるために新しいメッセージパッケージを生成する814と、無人航空機は別の無人航空機にまたはコマンド制御施設に新しいメッセージパッケージを送信して816よい。しかしながら、無人航空機自体のデータがメッセージに適用可能ではないと判断される812場合、プロセス800は終了してよい818。
いくつかの実施形態では、無人航空機はメッセージの確実性を決定してメッセージを処理する方法を決定するように構成される。例えば、無人航空機がメッセージを受信し、メッセージと一致するデータを有するとき、無人航空機はメッセージを再送信してよい、及び/またはデータの確実性の表示を有する新しいメッセージを送信し、それによって他の無人航空機が少なくとも部分的にその確実性に基づいてメッセージに依存できるようにしてよい。図9は、メッセージを処理するためのプロセス900、及びメッセージが確実性について分析される実施形態の例示的な例を示す。プロセス900は、例えば無人航空機の搭載コンピュータシステムによって等、任意の適切なシステムによって実行されてよい。実施形態では、無人航空機は、メッセージ、デジタル署名、及び別の無人航空機から生じるデジタル証明書を含むメッセージパッケージを受信して902よい。メッセージパッケージを受信する902無人航空機は、上述されたように、メッセージを信頼するかどうかを判断して904よい。例えば、メッセージパッケージを受信する902無人航空機は、証明機関デジタル証明書の独自のコピーを使用し、デジタル証明書の有効性を検証してよく、デジタル署名の有効性を検証してよく、メッセージパッケージで受信されるデジタル証明書とデジタル署名の両方とも有効である場合、メッセージを信頼すると判断して904よい。メッセージがTTLを超えたか、それともそれ以外の場合失効しているかを示す情報等の他の情報が使用されてよい。同様に、メッセージパッケージで受信された902デジタル証明書とデジタル署名の一方または両方とも無効である場合、及び/またはメッセージが失効している場合、メッセージパッケージを受信した902無人航空機はメッセージを信頼しないと判断して904よい。
実施形態では、メッセージパッケージを受信する902無人航空機がメッセージを信頼しないと決定する904とき、無人航空機は、上述されたように、メッセージを拒絶して906よい。しかしながら、メッセージパッケージを受信する902無人航空機がメッセージを信頼すると判断する904場合、プロセス900はメッセージの確実性のレベル、及びこの例では、メッセージの確実性が十分であるのか、それとも不十分であるのかを決定する908ことを含んでよい。プロセス900を実行する無人航空機は、多様な実施形態に従って多様な方法でメッセージの確実性のレベルを決定して908よい。例えば、メッセージの確実性は、メッセージの中に表明された確実性を有する(信頼できることが必要とされることがある)別個の無人航空機からのいくつかのデジタル署名によって決定されてよい。例えば、無人航空機はメッセージを受信するとき、無人航空機は、無人航空機がメッセージ及びメッセージとともに受信されたあらゆるデジタル署名を含む情報にデジタルで署名するデジタル署名連鎖に参加してよく、デジタル署名はメッセージの確実性を表明するために含まれていた。別の例として、無人航空機はメッセージの識別子にデジタルで署名することによってメッセージの確実性を表明してよく、メッセージの確実性レベルを決定する908ことはメッセージの識別子のデジタル署名の数をカウントすることを含んでよい。識別子はメッセージに暗号で結び付けられてよい。例えば、識別子はメッセージのハッシュであってよい、またはメッセージのハッシュに少なくとも部分的に基づいて生成されてよい。係る実施形態では、識別子のメッセージへの結合の暗号検証も実行されてよい。
多様な実施形態では、確実性がデジタル署名を使用し、メッセージでどのようにして表明されるのかに関わりなく、メッセージの確実性を表明するために使用される各デジタル署名はプロセス900を実行する無人航空機によって検証されてよい。いくつかの実施形態では、メッセージ確実性は、メッセージの確実性を表明するいくつかの有効なデジタル署名を閾値に比較することによって決定され、本開示の実施形態は、単一の無人航空機が複数回メッセージの確実性を表明し、それによって例えば無人航空機が複数回メッセージを受信し、検証するとき等、メッセージの確実性を高める実施形態に及ぶが、メッセージの確実性を表明する各デジタル署名は別個の無人航空機からであってよい。メッセージ確実性の十分性は、概してメッセージを入念に検査したことが必要とされる無人航空機の定足数を定義する一連の定足数規則に従って決定されてよい。定足数規則は簡略であってよい(例えば、少なくともN個の無人航空機、N個の正の整数)またはより複雑であって、1つブール演算子(例えば、AND、OR、NOT等)と論理的に接続される複数の個々の規則も含んでよい。例えば、デジタル署名の集合は、第1の世代のN個の無人航空機がメッセージを入念に検査した、または第2の世代のM個の無人航空機がメッセージを入念に検査した場合に定足数規則を満たすために使用されてよい(M及びNは異なる正の整数である)。また、定足数規則の履行は受信された902のメッセージのタイプにも依存してよい。例えば、天候データを有するメッセージは、不可逆な操作(例えば、飛行中にモータを停止する、ペイロードを落下する、または他の操作等)を実行するコマンドを有するメッセージと比較すると、定足数規則のより緩やかな集合を有してよい。また、定足数規則の履行は、メッセージが生成された及び/または最後に入念に検査されて以来経過した時間の量に依存してよく、例えば、時間より長い経過はメッセージの追加の入念な調査を必要とすることがある。他の変形形態も本開示の範囲内にあると見なされる。
メッセージパッケージを受信した902無人航空機がメッセージに十分な確実性があると判断する908場合、プロセス900は、上述されたようにメッセージを処理する910ことを含んでよい。例えば、無人航空機はあらゆる完了していないタスクを変更するかどうかを判断するためにあらゆる完了していないタスクを分析してよく、メッセージによってそのように示される場合、1つまたは複数の新しいタスクを追加してよい、及び/または別の無人航空機またはコマンド制御施設へのメッセージの再送を生じさせる1つまたは複数の操作を実行してよい。プロセス900を実行する無人航空機が、メッセージに不十分な確実性があると判断する908場合、図9の例の実施形態に示されるように、無人航空機はメッセージの入念な検査の確認を得るために1つまたは複数の操作を実行してよい。実施形態では、メッセージに不十分な確実性があると判断した908場合、プロセス900はメッセージの入念な検査の確認の要求を送信する912ことを含んでよい。
メッセージの入念な検査の確認の要求(確認の要求)は、異なる実施形態で異なるエンティティに送信されてよい。いくつかの例では、確認の要求は別の無人航空機に送信される。メッセージならびに例えば関連付けられたデジタル署名及び/または証明書等の関連データを含んでよい、送信された確認の要求を受信する無人航空機は、メッセージを信頼するかどうかに関する判断、及びメッセージに含まれるデータの有効性の判断を下すことによってメッセージを自主的に入念に検査してよい。別の例として、確認の要求はコマンド制御施設に送信されてよい。確認の要求が、例えばメッセージパッケージを受信した902無人航空機がコマンド制御施設の通信範囲内にあるとき等、コマンド/制御施設に直接的に送信されてよい、または確認の要求が、例えばコマンド制御施設の通信範囲内にいる場合にコマンド制御施設に確認の要求を次いで中継するように構成されてよい別の無人航空機に対し、もしくは無人航空機のフリートが最終的に確認の要求をコマンド制御施設に中継し得るようにさらに別の無人航空機に対し確認の要求を送信することによって等、コマンド制御施設に間接的に送信されて912よいことに留意されたい。
コマンド制御施設では、コマンド制御サーバが、例えばメッセージのデータを検証することによって等、メッセージを入念に検査することによって確認の要求を処理してよい。一例に、サーバは、メッセージ中のコマンドが実際にコマンド制御施設から送信されたのかを判断してよく、メッセージを受信した902無人航空機にメッセージの入念な検査の確認を送信してよい。確認の要求と同様に、メッセージ確認の送信は、メッセージパッケージを受信し902、例えば無人航空機が通信範囲内にある場合メッセージの入念な検査の確認を要求した912無人航空機に直接的に(つまり、メッセージ確認がいずれの仲介装置を通過することなく)送信されてよい、または確認は、無人航空機のフリートが最終的にメッセージパッケージを受信した902無人航空機に確認を中継するように、無人航空機のフリートを通して送られてよい。コマンド制御サーバによって生成される確認は、コマンド制御サーバによって生成されたデジタル署名を含んでよく、確認を受信した902無人航空機が、例えば概して無人航空機が、上述されたように、メッセージの信頼を判断するようにどのようにして構成されるのか等、確認を信頼するかどうかを検証できるようにするために、証明機関によってデジタルで署名されるデジタル証明書を含んでよいことに留意されたい。
確認が、メッセージパッケージを受信した902無人航空機に向かう複数の無人航空機を通過する場合、いくつかの実施形態では、確認を中継した中間無人航空機は、確認を信頼するかどうかの独立した判断を下すことによって確認を自主的に入念に調査してよく、例えば確認と関連付けられたデジタル署名またはデジタル証明書が無効である場合等、確認が信頼できないとして検出される場合、無人航空機は確認を再送することを拒絶してよい。
いったん無人航空機がメッセージの入念な検査の確認の要求を送信する912と、メッセージの確認の要求を送信した912無人航空機は確認の受領を監視してよい。図9に示されるように、無人航空機は、914確認が受信されるかどうかを繰り返し判断してよく、受信されない場合、タイムアウトが発生したかどうか(すなわち、時間の閾値量が経過したかどうか)を判断し916、発生していない場合、確認が受信されるのか、及びタイムアウトが発生したかどうかを再び判断して914よい。このプロセスの間に無人航空機が、タイムアウトが発生したと判断する916場合、プロセス900は、上述されたように、メッセージを拒絶する906ことを含んでよい。代替実施形態では、メッセージ及び関連付けられた情報(例えば、メッセージのデジタル署名)はキャッシュに入れられてよく、万一後でメッセージをキャッシュに入れる無人航空機が(例えば、タイムアウト後に受信された要求に対する応答によって、または確認の要求に応答しない別の無人航空機から)メッセージの追加の署名を受信すると、キャッシュに入れられたコピーは、メッセージに十分な確実性があるかどうかを判断するために後に受信された情報と結合できる。
しかしながら、示されている実施形態に戻ると、タイムアウトが発生する前に、無人航空機が、確認が受信されると判断する914場合、無人航空機は、例えば無人航空機が上述されたように、一般的にメッセージを信頼するかどうかを判断してよい方法で等、確認を信頼するかどうか判断して918よい。また、確認(または、概してメッセージ)を信頼するかどうかを判断することは追加の操作を含んでもよい。例えば、デジタル署名連鎖はメッセージの保管のチェーンを確立するために使用されてよい。チェーンの中のあらゆるデジタル署名が検証されていない場合、追加の精査がメッセージに与えられてよく、検証されていないデジタル署名に対応する無人航空機からの票は、メッセージの確実性を決定する際に考慮に入れられないことがある、及び/またはメッセージは信頼できないとして単に拒絶されてよい。概して、一連の規則は、メッセージが受信される途中で取った経路(例えば、無人航空機の順序付けられた集合)に適用されてよく、デジタル署名は経路または経路の一部を検証するために使用されてよく、規則はメッセージが信頼できるかどうかを定義してよい。無人航空機が確認を信頼しないと判断する918場合、プロセス900は、上述されたように、メッセージを拒絶する906ことを含んでよい。多様な図がメッセージの拒絶906につながる複数の経路を示しているが、メッセージが拒絶される方法は、メッセージの拒絶に流れる特定の経路に従って変わることがある。確認を信頼すると決定した918場合、プロセス900は、上述されたように、メッセージを処理する920ことを含んでよい。
本明細書に説明されるすべてのプロセスと同様に、プロセス900の変形形態は本開示の範囲内にあると見なされる。実施形態では、例えば、無人航空機がメッセージを信頼すべきであると無事に検証できない結果として、確認の要求が生成され、送信されてよい。例えば、無人航空機の疑わしいセキュリティ侵害は、無人航空機のデジタル証明書の取り消しを生じさせ、そうでなければデジタル証明書を使用し、無事に検証されただろう検証できないデジタル署名を提供する。例えば、取消しの理由に関わらず、無人航空機は、それでもなお天候及び/または多様な場所での無人航空機に対する潜在的な脅威について正確なデータを収集し、提供してよい。係るメッセージを拒絶する代わりに、無人航空機が無事に検証できないメッセージを受信する無人航空機は、(例えば、通信範囲内である場合)1つまたは複数の他の無人航空機及び/またはコマンド制御サーバに確認の要求を生成し、送信できる。係る実施形態では、(いくつかの実施態様では、及び/またはいくつかのメッセージタイプに対して単一の確認であってよい)定足数規則を満たすのに十分な受信された確認は、それ以外の場合検証できないメッセージで確実性を獲得するために使用されてよい。別の例では、受信された確認を信頼すると判断できないことは、確認を獲得する別の試みにつながり、係る試みは、タイムアウトまたは他の制限(例えば、試みの数)が発生するまで繰り返されることがある。
図10は、本開示の多様な態様を示すダイヤグラム1000を示す。この特定の例では、ダイヤグラム1000は第1の無人航空機1002及び第2の無人航空機1004を示す。上述されたように、無人航空機はその動作中に互いと通信する能力を検出し得る。例えば、タスクを完了するために飛行しているとき、無人航空機は、ビーコンメッセージを送信している無人航空機の識別子として働くビーコンメッセージを送信してよい。閾値よりも大きい信号強度、及び/またはどの情報が送信されたのかを判断する能力とともにビーコンメッセージを受信する無人航空機は、結果としてビーコンメッセージを送信した無人航空機と通信する能力を検出してよい。また、別の無人航空機と通信する能力を検出することは、例えば他の無人航空機の認証及び/または他の無人航空機と通信セッション(例えば、暗号によって保護された通信セッション)を確立するためのハンドシェークプロセスの実行等の他の操作を含んでもよい。言い換えると、別の無人航空機と通信する能力を検出することは、通信する物理的な能力だけではなく、例えば許可されている及び/または認証されている通信等の他の能力を検出することも含んでよい。
多様な実施形態では、図10に示されるように、無人航空機が互いに通信する能力を検出するとき、無人航空機は、それぞれが受信したメッセージのログを交換してよい。例えば、無人航空機の対のそれぞれは他の無人航空機のメッセージログに対する要求を送信してよく、対の無人航空機は相応して応答してよい。いくつかの例では、別の無人航空機へのメッセージログ(また、概してメッセージ)の送信は、例えば他の無人航空機へタイムスタンプまたはノンス(または他のリプレイ回避値)を他の無人航空機に送信し、他の無人航空機からデジタル署名及びデジタル証明書を受信し、タイムスタンプまたはノンスまたは他の値及びデジタル証明書を使用してデジタル署名を確証することによって、他の無人航空機を認証することを条件としてよい。別の例として、2つの無人航空機は、暗号によって保護された通信セッション(例えば、暗号化された通信セッション)を確立するためにハンドシェークプロセスで互いを手動で認証してよく、ハンドシェークプロセスは、両方の無人航空機とも無事に互いに対して認証する限り失敗することがある。
図10に示されるように、第1の無人航空機1002は、無人航空機が他の無人航空機から受信したメッセージのメッセージログ1006を送信してよい。メッセージは、各メッセージ、及びメッセージが受信されたときのタイムスタンプ、少なくとも部分的にメッセージに基づいて生成された任意のデジタル署名、及び/またはメッセージの確実性を示す任意の情報等の関連付けられたデータを含んでよい。第1の無人航空機のメッセージログ1006は、第2の無人航空機1004によって受信されてよい。メッセージログの要求の結果として、または単に無人航空機によって活用されるプロトコルの一部として、第2の無人航空機は独自のメッセージログ1008を第1の無人航空機1002に送信してよい。以下により詳細に説明されるように、別の無人航空機からメッセージログを受信した無人航空機は、あらゆる完了していないタスクを更新するのか、あらゆる追加のタスクを追加するのか、それともメッセージによって示される他の操作を実行するのかを判断するためにメッセージログのメッセージを処理してよい。
図11は、例えば図10と関連して上述された無人航空機の1つ等の無人航空機によって実行される可能性のあるプロセス1100の例示的な例を示す。実施形態では、プロセス1100は別の無人航空機と通信する能力を検出する1102ことを含む。図11は別の無人航空機と通信する能力の検出1102を示すが、プロセス1100は、上述されたように、コマンド制御施設のコマンド制御サーバ、またはコマンド制御施設及び/または1つもしくは複数の無人航空機に及びコマンド制御施設及び/または1つもしくは複数の無人航空機からメッセージを送信する目的に使用される地上波放送局と通信する能力を検出することによって無人航空機のフリートを含む分散システムの他の構成要素との通信の検出に適応されてよいことに留意されたい。
図11に示されるように、別の無人航空機と通信する能力を検出した1102結果として、プロセス1100は、メッセージログを含むメッセージを生成する1104ことを含んでよい。いくつかの実施形態では、指定された時間量の中のメッセージログからのメッセージは、ローカルメッセージログからアクセスされ、メッセージを生成する1104ために使用される。他の実施形態では、完全なメッセージログが、生成される1104メッセージに含まれる。また、追加の処理が、例えば、別の無人航空機と通信する能力を検出した1102結果として、発生することもあり、プロセス1100を実行する無人航空機は他の無人航空機の識別子を入手してよい。不必要な情報の送信を回避するために、他の無人航空機から受信されるメッセージは識別子を使用し、識別されてよく、生成される1104メッセージに含まれるメッセージログに含まれるメッセージの集合から削除されてよい。上述されたように、メッセージログはメッセージ自体、及びメッセージごとに、少なくとも部分的にメッセージに基づいて生成されたあらゆるデジタル署名等のデジタル署名、少なくとも部分的にメッセージ識別子に基づいて生成されたデジタル署名、及び/または各メッセージと関連して記憶されてよい任意の他の情報等の他の関連付けられた情報を含んでよい。
いったんメッセージが生成される1104と、プロセス1100はメッセージパッケージを生成する1106ことを含んでよい。上述されたようにメッセージパッケージを生成する1106ために、プロセス1100を実行する無人航空機は、秘密暗号鍵を使用して生成された1104メッセージにデジタルで署名し、それによってデジタル署名を生じさせてよい。秘密暗号鍵に対応する公開暗号鍵を有する証明書は、メッセージパッケージを生成するために使用される情報に含まれてよい。いったんメッセージパッケージが生成される1106と、プロセス1100はメッセージパッケージを無人航空機に送信する1108ことを含んでよい。本明細書に説明されるすべてのプロセスと同様に、追加の操作はプロセス1100と関連して実行されてよい。例えば、無人航空機間の通信に使用される特定のプロトコルに応じて、ハンドシェークプロセスまたは他のプロセスが実行されてよい。
図12は、図11に関連して上述されたように、受信されるメッセージログを処理するために無人航空機によって実行されてよいプロセス1200の例示的な例を示す。実施形態では、プロセス1200は、無人航空機からメッセージログを有するメッセージパッケージを受信する1202ことを含む。この特定の例では、メッセージパッケージは、メッセージログであるまたはそれ以外の場合メッセージログを含むメッセージを含む。プロセス1200は、上述されたように、メッセージを信頼するかどうかを判断する1204ことを含んでよい。例えば、メッセージパッケージに含まれるデジタル証明書の有効性は、メッセージのデジタル署名及び/または例えばメッセージが失効しているかどうか、すなわち過去の閾値時間量を超えてメッセージが生成されたかどうかを示す情報等、メッセージを信頼するかどうかを判断するために使用される他の情報の有効性とともに検証されてよい。本開示の変形形態は、メッセージが信頼できるかどうかの判断が下されるのではなく、メッセージログの個々のメッセージの信頼性が代わりに使用される変形形態を含むことに留意されたい。メッセージパッケージを受信する1202無人航空機がメッセージを信頼しないと判断する1204場合、プロセス1200はメッセージを拒絶する1206ことを含んでよい。
実施形態では、プロセス1200を実行する無人航空機が受信された1202メッセージを信頼すると判断する1204場合、無人航空機は受信されたメッセージログの独自のローカルメッセージログとの和集合1208を計算してよい。実施形態では、受信されたメッセージログの独自のローカルメッセージログとの和集合は、受信された1202メッセージログとローカルメッセージログの両方に存在する同一のメッセージが一度しか表示されないように計算される。しかしながら、本開示の実施形態は、例えばメッセージログでのメッセージの重複が許されるとき等、より効率的ではない技法に適用する。
受信されたメッセージログの独自のローカルメッセージログとの和集合を計算する1208と、プロセス1200は、計算された和集合を含むためにローカルメッセージログを更新する1210ことを含んでよい。ローカルメッセージログを更新することは、更新された1210メッセージログのどのメッセージが新しいのかのインジケータを、係るインジケータがメッセージログ自体に含まれていようと、またはメッセージログとは別個に含まれていようと記憶することを含んでよい。ローカルメッセージログを更新し1210、プロセス1200は、新しいメッセージが実行可能であるかどうかを判断する1212ことを含んでよい。メッセージが実行可能であるかどうかを判断することは、上述されたように、実行されてよい。実行可能なメッセージがないと判断した1212場合、プロセス1200は、別のメッセージログを有する新しいメッセージが受信されるまで終了してよい1214。
メッセージパッケージを受信した1202無人航空機が、1つまたは複数の実行可能なメッセージがあると判断する1212場合、プロセス1200は、1つまたは複数の実行可能なメッセージが適用可能であるタスクを再計算する1216ことを含んでよい。タスクは、上述されたように再計算されてよい。プロセスは、タスクが再計算された1216とき、または代替実施形態では、例えばタスクの再計算が開始されたとき終了してよい1214。例えば(例えば、上述されたように)メッセージログの個々のメッセージが信頼できるかどうかを判断し、例えば信頼できるメッセージが適用するタスクだけを処理することによって、個々のメッセージが信頼できるかどうかに従ってタスクを再処理する等、追加の操作が実行されてよい。
図13は、本開示の少なくとも1つの実施形態を実践するために使用され得る無人航空機1301の例の搭載コンピュータシステム1300の例示的な簡略化されたブロック図である。多様な実施形態では、コンピュータシステム1300は、本明細書に示され、上述されたシステムのいずれかを実装するために使用されてよい。図13に示されるように、搭載コンピュータシステム1300は、バスサブシステム1304を介していくつかの周辺サブシステムと通信するように構成されてよく、いくつかの周辺サブシステムに動作可能なように結合される1つまたは複数のプロセッサ1302を含んでよい。これらの周辺サブシステムは、メモリサブシステム1308及びデータ記憶システム1310を含む記憶サブシステム1306、推進サブシステム1312、ペイロード管理サブシステム1314、無線通信サブシステム1316、メモリサブシステム1330及び1つまたは複数の暗号プロセッサ1332を含む暗号モジュール1324、ならびにセンサの集合1334を含んでよい。
バスサブシステム1304は、コンピュータシステム1300の多様な構成要素及びサブシステムが意図されたように互いと通信できるようにするための機構を提供してよい。バスサブシステム1304は単一のバスとして概略で示されているが、バスサブシステムの代替実施形態は複数のバスを活用してよい。
無線通信サブシステム1316は、他のコンピュータシステム及びネットワークにインタフェースを提供してよい。無線通信サブシステム1316は、コンピュータシステム1300からデータを受信し、他のシステムにデータを送信するためのインタフェースとしての機能を果たしてよい。例えば、ネットワークインタフェースサブシステム1316は、例えば、天候、ハザード、コマンドを示すメッセージ、及び/または本明細書に説明される他のメッセージ等、メッセージ及び他の関係情報(例えば、デジタル署名)のトランスタスク(transtask)を可能にしてよい。本開示の範囲は任意の適切な規格及び/またはプロトコルを使用する無線通信を含むが、実施形態では、無線通信サブシステム1316は、他の無人航空機の他の無線通信サブシステムと通信するためにロングタームエボリューション(LTE)規格を使用する。いくつかの例では、無線通信サブシステム1316はキャリアセンスマルチプルアクセスウィズコリジョンアボイダンス(CSMA/CA)プロトコルまたは別の適切なプロトコルを使用し、通信する。また、無線通信サブシステム1316は、例えば他の無人航空機に一部のデータを直接的に送信し、セルラーネットワークを通して他のデータを送信することによって、複数のネットワークでのデータの受信及び/またはトランスタスクを容易にしてもよい。
推進サブシステム1312は、無人航空機301を推進し、無人航空機の推進を制御する多様な構成要素を含んでよい。例えば、推進サブシステム1312は、それぞれがプロペラを有する複数のモータ、及び無人航空機の速度、高度、方向、ピッチ、ロール、ヨー、及び無人航空機の飛行力学を制御するために各プロペラの個々の回転速度を制御するモータ用のコントローラを含んでよい。推進サブシステム1312は、無人航空機がこのように装備される場合、他の構成要素(例えば、方向舵、フラップ、及び無人航空機の航空力学に影響を及ぼすことがある他の構成要素)を制御してよい。図13はヘリコプター式の無人航空機を示すが、上述されたような他の無人航空機、及び概して陸上で、海上で、海中で、空気中で、及び/または宇宙で移動するように構成される任意の無人航空機は本開示の範囲内として見なされ、推進のために使用される特定の機構は異なる実施形態に従って変わってよい。
ペイロード管理サブシステム1314は、無人航空機1301のペイロードの管理のために構成されたコンピュータシステム1300の構成要素の集合であってよい。例えば、ペイロード管理サブシステム1314は無人航空機301によって配達されるペイロードを落とすために開閉する貨物室を制御してよい。いくつかの例では、無人航空機は、多くのペイロードの内の1つを選択的に配達するために使用できる複数の貨物室を有する。概して、ペイロード管理サブシステム1314は、無人航空機が無人航空機の制御からペイロードを解放できるようにする1つまたは複数の電気システム及び/または機械システムを制御してよい。また、ペイロード管理サブシステム1314は、ペイロードを回収し、無人航空機の貨物室の中に積載するため、またはそれ以外の場合無人航空機の制御にペイロードを入れるための多様な機構(例えば、フック、磁石、爪等)を含んでもよい。このようにして、ペイロード管理サブシステム1314は、無人航空機のあらゆる貨物室を開閉するために、またはそれ以外の場合1つもしくは複数のペイロードを制御するために使用される1つもしくは複数の機構(例えば、アクチュエータまたはラッチ)のためのコントローラを含んでよい。概して、ペイロード管理サブシステムは、無人航空機301の特定の構成に左右される他の機能を実行してよい。例えば、ペイロード管理サブシステムは(例えば、ケーブルによってペイロードを下げることによって)貨物室を開放することに加えてまたは貨物室を開放する代わりに他の方法でペイロードを配達するように構成されてよい。ペイロード管理サブシステム114は、例えば飛行特性を改善するためにペイロードをシフトする、ペイロードを拾い上げる、及び概して無人航空機が実行するように構成されてよい他の機能を実行する等のより高度な機能を実行してよい。
記憶サブシステム1306は、本開示の少なくとも1つの実施形態の機能性を提供してよい基本的なプログラミング及びデータ構造を記憶するためのコンピュータ可読記憶媒体を提供してよい。1つまたは複数のプロセッサによって実行されるとき、本開示の1つまたは複数の実施形態の機能性を提供し得るアプリケーション(プログラム、コードモジュール(例えば、プログラミングモジュール)、命令)は、記憶サブシステム1306に記憶されてよい。これらのアプリケーションモジュールまたは命令は、1つまたは複数のプロセッサ1302によって実行されてよい。記憶サブシステム1306はさらに、本開示に従って使用されるデータを記憶するためのリポジトリを提供してよい。記憶サブシステム1306は、メモリサブシステム1308、ならびに(例えば、受信されたメッセージ、ログ、及び/または他の情報を記憶するための)データ(例えば、ファイル/ディスク)記憶サブシステム1310を含んでよい。
トラステッドプラットフォームモジュール(TPM)であってよい暗号モジュール1324は、プログラム実行中の命令及びデータの記憶のためのメインランダムアクセスメモリ(RAM)1328、及びエクスポート不可能(つまり、暗号モジュール1324に対する任意の呼出しによってアクセス不可能)となるために搭載コンピュータシステム1300の中に安全に記憶された暗号鍵等の固定された暗号情報が記憶されてよい読出し専用メモリ(ROM)1326を含むメモリサブシステム1330を含む。暗号モジュール1324は、いくつかの実施形態で、参照により本明細書に援用されるTrusted Computing GroupのTPM Main Specificationレベル2、1.2版、改訂116、TPM Main Specificationレベル2、1.2版、改訂103、及び/またはISO/IEC118813に全体的にまたは部分的に準拠して動作する。また、搭載コンピュータシステム1300は、一時的な暗号処理のためにRAM1328及び/またはプロセッサレジストリに暗号鍵を記憶してもよい。メモリに記憶された暗号情報はネットワークインタフェース1316及び/またはユーザーインタフェース入力装置1312の1つもしくは複数を介して入手される暗号情報と組み合わせて使用されてよい。1つまたは複数の暗号プロセッサは、搭載コンピュータシステムで暗号化動作を実行するために使用されてよく、乱数発生器、SHA−2または他のハッシュジェネレータ、及び暗号化−解読−署名エンジンを含んでよい。
また、1つまたは複数の暗号プロセッサは、例えば公開鍵及び/または秘密鍵暗号アルゴリズム等の1つまたは複数の暗号アルゴリズムに従って1つまたは複数の暗号化アルゴリズム/解読アルゴリズムを実行するように構成されてもよい。例えば、説明されるように、多数の変形形態は対称及び/または非対称の暗号プリミティブを活用する。1つまたは複数の暗号プロセッサはさらに、本明細書で説明される難読化アルゴリズム及び難読化解除(de−obfuscation)アルゴリズムを実行するように構成されてよい。難読化アルゴリズム及び難読化解除アルゴリズムは、ブロック暗号、ストリーム暗号、及びデジタル署名スキームを含むデータに対して暗号化動作を実行するための多様なスキームを含んでよい。本明細書に説明される暗号化動作はモジュールで実行しているソフトウェアによって、モジュールの中のハードウェアによって、またはその組合せによって実施されてよい。対称鍵アルゴリズムは、ブロック暗号、ストリーム暗号、及びデジタル署名スキームを含むデータに対して暗号化動作を実行するための多様なスキームを含んでよい。例の対称鍵アルゴリズムは、高度暗号化規格(AES)、データ暗号化規格(DES)、トリプルDES(3DES)、Serpent、Twofish、blowfish、CAST5、RC4、及び国際データ暗号化アルゴリズム(IDEA)を含むが、これに限定されるものではない。また、対称鍵アルゴリズムは一方向性関数の出力を生成するために使用されるものをも含んでよいが、ハッシュベースメッセージ認証コード(HMAC)、概してメッセージ認証コード(MAC)、PBKDF2、及びBcryptを活用するアルゴリズムを含むが、これに限定されるものではない。また、対称鍵アルゴリズムは、データに対して暗号化動作を実行するための多様なスキームも含んでよい。例のアルゴリズムは、ディフィーヘルマン鍵共有プロトコル、デジタル署名標準(DSS)、デジタル署名アルゴリズム、エルガマル暗号、多様な楕円曲線アルゴリズム、パスワードによって認証された鍵一致技法、pallier暗号システム、RSA暗号化アルゴリズム(PKCS#1)、クラマーシャウプ暗号システム、YAK認証鍵一致プロトコル、NTRUEncrypt暗号システム、McEliece暗号システム及び他を活用するアルゴリズムを含むが、これに限定されるものではない。楕円曲線アルゴリズムは楕円曲線ディフィーヘルマン(ECDH)鍵一致方式、楕円曲線統合暗号化スキーム(ECIES)、楕円曲線デジタル署名アルゴリズム(ECDSA)、ECMQV鍵一致スキーム、及びECQV暗黙証明書スキームを含む。他のアルゴリズム及びアルゴリズムの組合せも本開示の範囲内にあると見なされる。
上述されたように、本開示の多様な実施形態では、暗号用具(つまり、暗号鍵等の秘密(複数可))は暗号モジュール1324の中に安全に記憶されている。いくつかの実施形態では、暗号モジュールは、少なくとも部分的にPUFの物理特性に基づく1つまたは複数の秘密を使用するために物理的なハードウェアで実装される関数である物理的複製不可能関数(PUF)として実装される、または物理的複製不可能関数(PUF)を含んでよい。結果として、秘密を入手しようとする任意の試みは、PUFの中への物理的な侵入を必要とすることがあり、物理的な侵入はPUFの物理特性を改変することがあり、それによって秘密を破壊する。使用されてよい例のPUFは、明示的に導入される無作為性、光PUF、コーティングPUF、本質的な無作為性を使用するPUF、遅延PUF、スタティックランダムアクセスメモリ(SRAM)PUF、バタフライPUF、双安定リングPUF、磁気PUF、金属抵抗PUF、及び/または物理特性が秘密として有用なまたは秘密のために情報を符号化する他のデバイスを含むPUFを含む。
図13に示されるように、無人航空機の搭載コンピュータシステム1300は、搭載コンピュータの多様な構成要素によって活用されるデータを収集するセンサ1314の集合を含んでよい。例えば、センサ1314は、飛行及び関係する活動(例えば、離陸及び着陸)のために推進サブシステム1312によって使用される高度計を含んでよい。別の例として、センサ1314は、ピッチ、ロール、及び/またはヨーを制御するために推進サブシステム1312によって使用されるジャイロスコープを含んでよい。加速度計は推進サブシステム1312によってそのアビオニクス論理の一部として使用されてよい。グローバルポジショニングシステム(GPS)センサは、ルートに従って飛行を制御するために推進サブシステム1312によって、及び(例えば、現在場所を入手し、指定された目的地までの最適ルートを計算することによって)ルートの計算のために1つまたは複数のプロセッサ1302によって等、他のサブシステムによっても使用されてよい。コンパスは方向を制御するために推進サブシステム1312によって使用されてよい。(例えば、音響近接検出器を使用する)近接センサの集合は、(例えば、配達中の)障害物の回避及び正確なナビゲーションのために推進サブシステム1312によって使用されてよい。いくつかのセンサは、例えば音声、ビデオ、デジタル画像等の環境データを収集するために使用されてよい。他の環境データは天候に関係してよく、したがってセンサ1314は、風速、気圧、湿度、可視性等の天候データを収集するセンサを含んでよい。示されているセンサは例であり、概して無人航空機で使用される特定のセンサは、無人航空機が実行するタスクに従って変わってよい。
図14は、多様な実施形態に従って態様を実施するための例の環境1400の態様を示す。理解されるように、ウェブベースの環境が説明のために使用されるが、異なる環境は多様な実施形態を実装するために必要に応じて使用されてよい。環境は、適切なネットワーク1404を通じて要求、メッセージ、または情報を送信及び/または受信し、いくつかの実施形態では装置のユーザーに情報を再び伝えるよう作動する任意の適切な装置を含むことがある電子クライアント装置1402を含む。係るクライアント装置の例はパーソナルコンピュータ、携帯電話、携帯メッセージング装置、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋込式コンピュータシステム、電子ブックリーダー等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意の他の係るネットワーク及び/またはその組合せを含む、任意の適切なネットワークを含むことがある。係るシステムのために使用される構成要素は、選択されたネットワーク及び/または環境のタイプに少なくとも部分的に依存することがある。係るネットワークを介して通信するためのプロトコル及び構成要素は周知であり、本明細書では詳細に説明されない。ネットワークを介する通信は有線接続または無線接続及びその組合せによって有効にされることがある。他のネットワークの場合、当業者に明らかになるように、類似した目的に役立つ代替装置が使用できるだろうが、環境が要求を受信し、要求に応えてコンテンツを供給するためにウェブサーバ1406を含むので、この例では、ネットワークはインターネットを含む。
例示的な実施形態は、少なくとも1つのアプリケーションサーバ1408及びデータストア1410を含む。連鎖されてよい、またはそれ以外の場合構成されてよく、適切なデータストアからデータを入手する等のタスクを実行するために作用することがあるいくつかのアプリケーションサーバ、層、または他の要素、プロセス、もしくは構成要素がある場合があることが理解されるべきである。サーバは、本明細書に使用されるように、ハードウェア装置または仮想コンピュータシステム等、多様な方法で実装されてよい。いくつかの状況では、サーバはコンピュータシステムで実行中であるプログラミングモジュールを指してよい。本明細書に使用されるように、特に明記しない限り、または状況から明らかではない限り、用語「データストア」は、データを記憶する、データにアクセスする、及びデータを取り出すことができる任意の装置または装置の組合せを指し、任意の標準的な環境、分散環境、仮想環境、またはクラスタ化された環境で任意の組合せ及び数のデータサーバ、データベース、データ記憶装置、及びデータ記憶媒体を含んでよい。アプリケーションサーバは、クライアント装置のための1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーションのためのデータアクセス及びビジネスロジックの一部またはすべてを処理するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことがある。アプリケーションサーバはデータストアと協調してアクセス制御サービスを提供してよく、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、JavaScript(登録商標)、Cascading Style Sheets(「CSS」)または別の適切なクライアント側の構造化言語の形でウェブサーバによってユーザーに提供されてよい、テキスト、グラフィックス、音声、ビデオ、及び/またはユーザーに提供されるために使用可能な他のコンテンツを含むが、これに限定されるものではないコンテンツを生成できる。クライアント装置に転送されるコンテンツは、聴覚的に、視覚的に、及び/または感触、味覚、及び/または臭覚を含む他の感覚によってユーザーが知覚できる形を含むが、これに限定されるものではない1つまたは複数の形でコンテンツを提供するためにクライアント装置によって処理されてよい。クライアント装置1402とアプリケーションサーバ1408との間でのコンテンツの配信だけではなく、すべての要求及び応答の処理は、PHP:ハイパーテキストプレプロセッサ(「PHP」)、Python、Ruby、Perl、Java(登録商標)、HTML、XML、またはこの例では別の適切なサーバ側の構造化言語を使用し、ウェブサーバによって処理できる。本明細書で説明される構造化されたコードは、本明細書の他の箇所で説明されるように任意の適切な装置またはホストマシン上で実行できるので、ウェブサーバ及びアプリケーションサーバが必要とされず、単に例の構成要素であることが理解されるべきである。さらに、単一の装置によって実行されているとして本明細書に説明される操作は、文脈上明確である場合を除いて、分散システム及び/または仮想システムを形成してよい複数の装置によって集合的に実行されてよい。
データストア1410は、いくつかの別々のデータテーブル、データベース、データ文書、動的データ記憶スキーム、及び/または他のデータ記憶機構、ならびに本開示の特定の態様に関係するデータを記憶するための媒体を含むことがある。例えば、示されているデータストアは、生産側のためのコンテンツを供給するために使用できる生産データ1412及びユーザー情報1416を記憶するための機構を含んでよい。また、データストアは、報告、分析、または他の係る目的のために使用できるログデータ1414を記憶するための機構を含むために示される。必要に応じて上記に示された機構のいずれかに、またはデータストア1410の追加の機構に記憶できる、例えばページ画像情報及びアクセス権情報等の、データストアに記憶される必要がある場合がある多くの他の態様があることが理解されるべきである。データストア1410は、データストアと関連付けられた論理を通して、アプリケーションサーバ1408から命令を受信し、命令に応えてデータを入手、更新、またはそれ以外の場合処理するよう作動する。アプリケーションサーバ1408は、受信された命令に応えて静的、動的、または静的データ及び動的データの組合せを提供してよい。ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及び他の係るアプリケーションで使用されるデータ等の動的データは、本明細書で説明されるようにサーバ側の構造化言語によって生成されてよい、またはアプリケーションサーバ上でもしくはアプリケーションサーバの制御下で動作するコンテンツ管理システム(「CMS」)によって提供されてよい。一例では、ユーザーは、ユーザーによって操作される装置を通じて特定のタイプの項目の検索要求を提出する可能性がある。この場合、データストアはユーザーのアイデンティティを検証するためにユーザー情報にアクセスする可能性があり、そのタイプの項目についての情報を入手するためにカタログ詳細情報にアクセスできる。情報は、次いで例えば、ユーザーがユーザー装置1402上でブラウザを介して見ることができるウェブページ上の結果リストでユーザーに返すことができる。関心のある特定の項目のための情報は、ブラウザの専用のページまたはウィンドウで見ることができる。しかしながら、本開示の実施形態は必ずしもウェブページの文脈に制限されるのではなく、より概して要求が必ずしもコンテンツの要求ではない一般的な処理要求に適用可能であってよいことに留意されたい。
各サーバは、通常、そのサーバの一般的な管理及び操作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行できるようにする命令を記憶するコンピュータ可読記憶媒体(例えば、ハードディスク、ランダムアクセスメモリ、読出し専用メモリ等)を含む。オペレーティングシステムにとって適切な実施態様及びサーバの一般的な機能性は既知である、または市販されており、特に本明細書の開示を鑑みて当業者によって容易に実施される。
環境は、一実施形態では、1つもしくは複数のコンピュータネットワークまたは直接的な接続を使用し、通信リンクを介して相互接続されるいくつかのコンピュータシステム及び構成要素を活用する分散コンピューティング環境及び/または仮想コンピューティング環境である。しかしながら、係るシステムが、図14に示されるよりも少ないまたは多い数の構成要素を有するシステムで等しくうまく機能できるだろうことが当業者によって理解される。したがって、図14のシステム1400の描写は本来は例示的であり、本開示の範囲に対して制限的ではないと解釈されるべきである。
多様な実施形態はさらに、いくつかの場合、任意の数のアプリケーションのいずれかを操作するために使用できる、1つまたは複数のユーザーコンピュータ、コンピューティング装置、または処理装置を含むことがある多種多様の操作環境で実施できる。ユーザー装置またはクライアント装置は、例えばモバイルソフトウェアを実行し、いくつかのネットワーキングプロトコル及びメッセージングプロトコルをサポートできるセルラー装置、無線装置、及び携帯端末だけではなく、標準オペレーティングシステムで実行しているデスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの汎用パーソナルコンピュータのいずれかも含むことがある。また、係るシステムは、例えば開発及びデータベース管理等の目的のためにさまざまな市販されているオペレーティングシステム及び他の既知のアプリケーションのいずれかを実行するいくつかのワークステーションを含むこともある。これらの装置は、例えばダミー端末、シンクライアント、ゲーム機、及びネットワークを介して通信できる他の装置等の他の電子機器を含むこともある。また、これらの装置は、バーチャルマシン、ハイパーバイザ、及びネットワークを介して通信できる他の仮想装置等の仮想装置を含むことがある。
本開示の多様な実施形態は、トランスタスクコントロールプロトコル/インターネットプロトコル(「TCP/IP」)、ユーザーデータグラムプロトコル(「UDP」)、オープンシステムインターコネクション(「OSI」)モデルの多様な層で動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、共通インターネットファイルシステム(「CIFS」)、及びAppleTalk等のさまざまな市販プロトコルのいずれかを使用し、通信をサポートするために当業者によく知られているだろう少なくとも1つのネットワークを活用する。ネットワークは、例えばローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びその組合せであることがある。
ウェブサーバを活用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、共通ゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Java(登録商標)サーバ、Apacheサーバ、ビジネスアプリケーションサーバを含む、さまざまなサーバアプリケーションまたは中間階層アプリケーションのいずれかを実行することがある。また、サーバ(複数可)は、例えばJava(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはRuby、PHP、Perl、Python、もしくはTCL等の任意のスクリプト言語、及びその組合せで作成された1つまたは複数のスクリプトまたはプログラムとして実装されてよい1つまたは複数のウェブアプリケーションを実行することによってユーザー装置からの要求に応えてプログラムまたはスクリプトを実行できてよい。また、サーバ(複数可)は、MySQL、Postgres、SQLite、MongoDB等のオープンソースサーバ、及び構造化されたデータまたは構造化されていないデータを記憶する、取り出す、及びアクセスすることができる任意の他のサーバだけではなく、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販されるデータベースサーバも制限なく含むデータベースサーバを含んでもよい。データベースサーバは、表ベースのサーバ、文書ベースのサーバ、構造化されていないサーバ、リレーショナルサーバ、非リレーショナルサーバ、またはこれらのデータベースサーバ及び/もしくは他のデータベースサーバの組合せを含んでよい。
環境は、上述されたさまざまなデータストア及び他のメモリ及び記憶媒体を含むことがある。これらは、例えばコンピュータの1つまたは複数に局所的な(及び/もしくはコンピュータの1つまたは複数に常駐する)、またはネットワーク全体のコンピュータのいずれかもしくはすべてから遠隔の記憶媒体上等、さまざまな場所に常駐することがある。実施形態の特定の集合では、情報は当業者によく知られているストレージエリアネットワーク(「SAN」)に常駐してよい。同様に、コンピュータ、サーバ、または他のネットワーク装置に起因する機能を実行するために必要なあらゆるファイルは、必要に応じて局所的に及び/または遠隔で記憶されてよい。システムがコンピュータ化された装置を含む場合、それぞれの係る装置は、バスを介して電気的に結合されてよいハードウェア要素を含むことがあり、該要素は例えば少なくとも1つの中央演算処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力装置(例えば、表示装置、プリンタ、またはスピーカ)を含む。また、係るシステムは、例えばリムーバブルメディア装置、メモリカード、フラッシュカード等だけではなく、ディスクドライブ、光学記憶装置、及び例えばランダムアクセスメモリ(「RAM」)または読出し専用メモリ(「ROM」)等のソリッドステート記憶装置等の1つまたは複数の記憶装置を含んでもよい。
また、係る装置は、上述されたように、コンピュータ可読記憶媒体読取装置、通信装置(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信装置等)、及び作業メモリを含むこともある。コンピュータ可読記憶媒体読取装置は、一時的に及び/または恒久的にコンピュータ可読情報を含む、記憶する、送信する、及び取り出すための記憶媒体だけではなく、遠隔記憶装置、ローカル記憶装置、固定記憶装置、及び/またはリムーバブル記憶装置を表す、コンピュータ可読記憶媒体と接続できる、またはコンピュータ可読記憶媒体を受け入れるように構成できる。また、システム及び多様な装置は、通常、オペレーティングシステム及び例えばクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、いくつかのソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つの作業メモリ装置の中に位置する他の要素を含む。代替実施形態は、上述されたものから多数の変形形態を有してよいことが理解されるべきである。例えば、カスタマイズされたハードウェアも使用される可能性がある、及び/または特定の要素がハードウェア、(例えばアプレット等のポータブルソフトウェアを含む)ソフトウェア、または両方で実装される可能性がある。さらに、例えばネットワーク入出力装置等の他のコンピューティングシステムへの接続が利用されることがある。
コードまたはコードの部分を含む記憶媒体及びコンピュータ可読媒体は、例えばRAM、ROM、電気的消去可能ROM(「EEPROM」)、フラッシュメモリ、または他のメモリ技術、コンパクトディスクリードオン理メモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置もしくは所望される情報を記憶するために使用することができ、システム装置によってアクセスできる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報の記憶及び/またはトランスタスクのための任意の方法または技術で実装される揮発性媒体及び不揮発性媒体、リムーバブルメディア及び非リムーバブルメディア等であるが、これに限定されるものではない記憶媒体及び通信媒体を含む、技術で既知であるまたは使用されているあらゆる適切な媒体を含むことがある。本開示及び本明細書に提供される教示に基づいて、当業者は多様な実施形態を実施するための他のやり方及び/または方法を理解する。
本明細書及び図面は、相応して制限的な意味よりむしろ例示的な意味で考えられる。しかしながら、特許請求の範囲に説明される本発明のより幅広い精神及び範囲から逸脱することなく本発明に多様な修正及び変更が加えられ得ることが明らかになる。
開示された本発明の多様な実施形態及び任意選択の特徴は以下に示される。選択された実施形態が示されているが、追加の実施形態及び組合せが本明細書に開示される題材から逸脱することなく請求され得ることが本開示の当業者によって理解されるべきである。さらに、多様な態様は任意選択として説明されることがあるが、係るオプションが単独でまたは可能であれば説明された他のオプションと組み合わせて適用され得ることが当業者によって理解されるべきである。したがって、本開示は本明細書に説明される特徴の考えられるすべての新規の且つ発明に関する並べ替え及び組合せを明示的に意図する。
本明細書に開示される実施形態は、複数の場所の間で無人航空機を推進するように構成された推進サブシステム、メッセージを受信及び送信するように構成されたトランシーバ、及び/または1つもしくは複数のプロセッサと、無人航空機によって完了されるタスクの集合、及び命令を記憶するメモリとを含む搭載コンピュータシステムの1つまたは複数を含む無人航空機を含んでよく、該命令は、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、タスク決定後一度に、トランシーバを介して受信された第1のメッセージに少なくとも部分的に基づいてタスクの集合のためのタスクを決定し、トランシーバを通して受信された第2のメッセージが信頼できることを暗号によって検証する、受信された第2のメッセージの情報に少なくとも部分的に基づいてタスクを再計算する、及び再計算されたタスクを完了するために少なくとも推進サブシステムを制御することの内の1つまたは複数を行わせる。
任意選択で、第2のメッセージは第1のデジタル証明書及びデジタル署名とともにトランシーバを通して受信されてよく、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、第2のメッセージが信頼できることを暗号によって検証させる命令は、受信された第1のデジタル証明書を検証するために搭載コンピュータシステムにローカルに記憶される第2のデジタル証明書を使用させる、及び/または受信されたデジタル署名を検証するために第1のデジタル証明書を使用させるの内の1つまたは複数を行わせてよい。任意選択で、タスクの再計算は、第2のメッセージに指定される場所に対応する区域を回避するためにタスクのルートを再計算することを含んでよい。任意選択で、1つまたは複数のプロセッサによる実行時に搭載コンピュータシステムにタスクを再計算させる命令は、搭載コンピュータシステムに、第2のメッセージの情報がタスクの達成に適用できた結果としてタスクを選択させてよい。
本明細書に開示される実施形態は、(つまり、無人機の搭載コンピュータシステムの制御下の1つまたは複数を含む)コンピュータにより実装された方法を含んでよい、またはそれ以外の場合、無人機によって実行される操作の集合を指定する情報を記憶すること、別の無人機からメッセージ及びメッセージの認証情報を受信することであって、認証情報がメッセージの発信者に特有である、受信すること、認証情報に少なくとも部分的に基づいてメッセージが本物であると判断すること、及び/またはメッセージに少なくとも部分的に基づいて情報を修正することの1つまたは複数を含む。
任意選択で、認証情報は、メッセージのためのデジタル署名及び第1のデジタル証明書を含んでよい。任意選択で、メッセージが本物であると決定することは、第2のデジタル証明書を使用して第1のデジタル証明書を検証すること、及び第1のデジタル証明書を使用してデジタル署名を確証することを含んでよい。任意選択で、情報はタスクの集合をそれぞれ操作の集合の対応する部分集合で指定してよい。任意選択で、方法はさらに、メッセージに少なくとも部分的に基づいてタスクを選択し、タスクを再計算することを含んでよい。任意選択で、情報を修正することは、メッセージの情報に少なくとも部分的に基づいて目的地までのルートを修正することを含んでよい。任意選択で、方法は、他の無人機とは異なる第2の無人機にメッセージを送信することを含んでよい。任意選択で、無人機及び他の無人機は無人航空機であってよい。任意選択で、メッセージは他の無人機とは異なる第2の無人機が信頼できないことを示してよい。任意選択で、情報の少なくとも一部分は第2の無人機から受信されるメッセージの情報に依存してよい。任意選択で、情報を修正することは、第2の無人機からのメッセージで受信される情報とは関係なく情報の部分を再計算することを含んでよい。任意選択で、メッセージは複数のメッセージタイプの内の1つのタイプを含み、情報を修正することはさらに該タイプに少なくとも部分的に基づいてよい。
本明細書に開示される実施形態は、非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体を含んでよく、実行可能な命令は、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、無人機が実行する操作の集合を指定する操作計画を記憶する、メッセージを受信する、別の無人航空機に特有の認証情報を使用して、メッセージが他の無人機から発せられたのかどうかを暗号によって検証する、及び/またはメッセージが他の無人機から発したとして暗号によって検証される場合メッセージの情報に従って操作計画を更新するの内の1つまたは複数を行わせる。
任意選択で、メッセージはデジタル署名及びデジタル証明書とともに受信されてよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージが他の無人機から発したかどうかを暗号によって検証させる命令は、コンピュータシステムに、デジタル証明書を検証する、及び/またはデジタル証明書を使用してデジタル署名を検証するの内の1つまたは複数を行わせてよい。任意選択で、メッセージは他の無人航空機から直接的に受信されてよい。任意選択で、メッセージは記憶された情報を削除するコマンドを含んでよい。任意選択で、コンピュータシステムに、コマンドの結果として操作計画を削除させる命令を含んでよい。任意選択で、命令は、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、他の無人機から第2のメッセージを受信し、第2のメッセージがコマンドを指定する、第2のメッセージがコマンド制御施設コンピュータシステムから発したかどうかを暗号によって検証する、及び/または第2のメッセージがコマンド制御施設コンピュータシステムから発した旨の検証の成功を条件としてコマンドを達成するの内の1つまたは複数を行わせてよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージのデジタル署名を生成する、及び/または受信されたメッセージ及び生成されたデジタル署名を、他の無人機とは異なる第2の無人機に提供するの内の1つまたは複数を行わせてよい命令を含んでよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージを記憶する、他の無人機とは異なる第2の無人機に別のメッセージを送信することを決定する、及び/または他のメッセージを送信することを決定した結果として、記憶されたメッセージとともに他のメッセージを第2の無人機に送信することの内の1つまたは複数を行わせる命令を含んでよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、コンピュータシステムが、メッセージが他の無人機から発したことを暗号によって検証できない場合にメッセージを拒絶させてよい命令を含んでよい。
本明細書に開示される実施形態は、複数の場所の間で無人航空機を推進するように構成された推進サブシステム、メッセージを受信及び送信するように構成されたトランシーバ、ならびに/または搭載コンピュータシステムの1つまたは複数を含む、無人航空機を含んでよい。搭載コンピュータシステムは1つまたは複数のプロセッサと、無人航空機によって実行されるタスクの集合及び命令を記憶するメモリとを含んでよく、該命令は、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、タスク決定後一度にトランシーバを介して受信されたメッセージに少なくとも部分的に基づいてタスクの集合のためのタスクを決定する、メッセージが信頼できないと判断する、信頼できないメッセージとは関係なくタスクを再計算する、及び/または再計算されたタスクを実行するために少なくとも推進サブシステムを制御することの内の1つまたは複数を行わせる。
任意選択で、メッセージは第1のメッセージであってよい、及び/または搭載コンピュータシステムに、1つまたは複数のプロセッサによる実行時に、メッセージが信頼できないと判断させる命令は、搭載コンピュータシステムに、トランシーバを介して受信された第2のメッセージを入手し、受信されたメッセージがデジタル署名及びデジタル証明書を有する、デジタル署名及びデジタル証明書の少なくとも1つに少なくとも部分的に基づいて第2のメッセージの信頼性を検証する、及び/または第2のメッセージの信頼性に少なくとも部分的に基づいて第1のメッセージの信頼性を判断することの内の1つまたは複数を行わせてよい。任意選択で、第2のメッセージは、第1のメッセージを発した無人航空機が信頼できないことを示してよい。任意選択で、第2のメッセージが信頼できると判断した結果として、命令は搭載コンピュータシステムに、第1のメッセージが信頼できないと判断させてよい。任意選択で、タスクの再計算はタスクのルートの再計算を含む。
本明細書に開示される実施形態は、コンピュータにより実装された(つまり、無人機の搭載コンピュータシステムの制御下の)方法を含んでよい、またはそれ以外の場合、無人機が実行するためのタスクの集合を記憶することであって、タスクの集合が別の無人機からの少なくとも1つのメッセージに依存して決定されたタスクの部分集合を含む、記憶すること、少なくとも1つのメッセージが信頼できないと判断すること、少なくとも1つのメッセージが信頼できないと判断した結果として記憶されたタスクの集合を更新すること、及び/または無人機に、更新された記憶されたタスクの集合を実行させることの内の1つまたは複数を含む。
任意選択で、記憶されたタスクの集合を更新することは、少なくとも1つのメッセージとは関係なくタスクの部分集合の少なくとも1つのタスクを再計算することを含んでよい。任意選択で、タスクの部分集合は複数のタスクを含んでよい。任意選択で、方法はさらに、記憶されたタスクの集合を更新することを含んでよく、少なくとも1つのメッセージに依存してタスクの部分集合の少なくとも1つのタスクを残すために実行される。任意選択で、記憶されたタスクの集合を更新することは、記憶されたタスクの集合の少なくとも1つのタスクを取り消すことを含んでよい。任意選択で、方法は、別のメッセージを少なくとも1つの追加の無人機に送信することを含んでよく、他のメッセージは他の無人機が信頼できないことを示す。任意選択で、方法は、秘密として無人機によって維持される暗号鍵を使用し、他のメッセージのデジタル署名を生成することを含んでよい。任意選択で、方法は、他のメッセージを送信することを含んでよく、さらに生成されたデジタル署名を送信することを含む。任意選択で、少なくとも1つのメッセージが信頼できないと判断することは、別のメッセージのデジタル署名を検証することを含んでよい。任意選択で、無人機は無人航空機であってよい。任意選択で、記憶されたタスクの集合を更新することは、記憶されたタスクの集合にタスクを追加することを含んでよい。
本明細書に開示される実施形態は、非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体を含んでよく、実行可能な命令は、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、別の無人機からメッセージを受信する、タスクの集合の更新後一度に受信されたメッセージの情報に少なくとも部分的に基づいて無人機によって実行されるタスクの集合を更新する、受信されたメッセージが信頼できないと判断する、及び/または受信されたメッセージが信頼できないと判断した結果として、タスクの集合を更新することの内の1つまたは複数を行わせる。
任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージが信頼できないと判断した結果としてタスクの集合を更新させる命令は、コンピュータシステムに、タスクの集合の内の少なくとも1つのタスクを以前の状態にロールバックさせてよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージが信頼できないと判断した結果としてタスクの集合を更新させる命令は、コンピュータシステムに、無人機の現在の状態に少なくとも部分的に基づいてタスクの集合の内の少なくとも1つのタスクを再計算させてよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージが信頼できないと判断した結果としてタスクの集合を更新させる命令は、コンピュータシステムに、無人機のデジタル証明書が取り消されることを示す第2のメッセージを受信する、及び/またはデジタル証明書の公開暗号鍵に少なくとも部分的に基づいて、メッセージのデジタル証明書が検証された結果としてメッセージを選択することの内の1つまたは複数を行わせてよい。任意選択で、メッセージは場所についての情報を示してよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムにタスクの集合を更新させる命令は、コンピュータシステムに、場所を回避するためにタスクの集合のルートを修正させてよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージが信頼できないと判断した結果として、他の無人機が信頼できないことを示すメッセージを送信させてよい命令を含む。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、他の無人機からの将来のメッセージを拒絶させてよい命令を含む。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージが信頼できないと判断させる命令は、コンピュータシステムにコマンド制御施設からの第2のメッセージの真偽を暗号によって検証させてよく、第2のメッセージは、他の無人機が信頼できないことを示す。
本明細書に開示される実施形態は、複数の場所の間で無人航空機を推進するように構成された推進サブシステム、メッセージを受信及び送信するように構成されたトランシーバ、ならびに/または搭載コンピュータシステムの1つまたは複数を含む、無人航空機を含んでよい。搭載コンピュータシステムは1つまたは複数のプロセッサと、トランシーバを介して他の無人航空機から受信されたメッセージの第1の集合、無人航空機によって完了されるタスクの集合、及び/または命令を記憶するメモリとを含んでよく、該命令は、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、別の無人航空機と通信する能力を検出する、他の無人航空機にメッセージの第1の集合を提供する、他の無人航空機からメッセージの第2の集合を受信する、受信されたメッセージの第2の集合に少なくとも部分的に基づいて、タスクの集合を更新するかどうかを判断する、及び/またはメッセージの第2の集合に含まれる情報がタスクの集合の1つまたは複数のタスクに適用可能である結果としてタスクの集合を更新することの内の1つまたは複数を実行させる。
任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、タスクの集合を更新するかどうかを判断する前提条件として、メッセージの第2の集合のデジタル署名を検証させてよい命令を含む。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、メッセージの第2の集合をメッセージの第1の集合にマージし、それによってメッセージのマージされた集合を生成する、メッセージの第2の集合をマージした結果をメッセージの第1の集合に記憶する、及びメッセージのマージされた集合を第2の無人航空機に送信することの内の1つまたは複数を行わせてよい命令を含む。任意選択で、タスクの集合の少なくとも1つのタスクの達成は、目的地への移動、及び目的地で操作を実行することを含んでよい。
本明細書に開示される実施形態は、コンピュータにより実装された(つまり、搭載コンピュータシステムの制御下の)無人機を操作する方法を含んでよい、またはそれ以外の場合、実行するためのタスクの集合を記憶すること、別の無人機から複数のメッセージを受信すること、実行するためのタスクの集合からタスクを選択すること、複数のメッセージの少なくとも1つの情報に少なくとも部分的に基づいて選択されたタスクを更新すること、及び/または更新された選択されたタスクを完了することを含む。
任意選択で、方法は第2の複数のメッセージを他の無人機に提供することを含んでよい。任意選択で、方法は、無人機のセンサの集合からのデータに少なくとも部分的に基づいてメッセージを生成することを含んでよい。任意選択で、方法は、生成されたメッセージを複数のメッセージに追加することを含んでよい。任意選択で、方法は、他の無人機に特有の暗号用具を使用し、複数のメッセージの真偽を暗号によって検証することを含んでよい。任意選択で、方法は、無人機とは異なる第2の無人機及び他の無人機に特有の暗号用具を使用し、複数のメッセージの個々のメッセージの真偽を暗号によって検証することを含んでよい。任意選択で、方法は、複数のメッセージを無人機にローカルに記憶された第2の複数のメッセージとマージし、それによってマージされた複数のメッセージを生成することを含んでよい。任意選択で、方法は、マージされた複数のメッセージを、無人機と及び他の無人機とは異なる第2の無人機に送信することを含んでよい。任意選択で、選択されたタスクは、無人機と、及び他の無人機とは異なる第2の無人機から受信されるメッセージに少なくとも部分的に基づいて決定されている。任意選択で、選択されたタスクはタスクを達成するための関連付けられたルートを有してよい、及び/または選択されたタスクを更新することは関連付けられたルートを更新することを含んでよい。
本明細書に開示される実施形態は、非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体を含んでよく、実行可能な命令は、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、トランシーバを介してメッセージの集合を記憶する、トランシーバを使用し、別の無人機と通信する能力を検出する、他の無人機から複数のメッセージを受信することを含む他の無人機とメッセージを交換する、及び/または複数のメッセージの内のメッセージに少なくとも部分的に基づいて無人機の操作計画を修正することの内の1つまたは複数を行わせる。
任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムにメッセージを交換させる命令は、コンピュータシステムに、トランシーバを使用してメッセージの集合を他の無人機に送信させてよい。任意選択で、メッセージの集合の少なくとも1つのメッセージは、無人機と異なり、他の無人機とは異なる第2の無人機から受信された可能性がある。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、操作計画に適用可能である複数のメッセージの少なくとも1つの真偽を暗号によって検証させてよい命令を含む。任意選択で、無人機は無人航空機であってよい。任意選択で、操作計画は無人機によって達成されるタスクの集合を含んでよい。任意選択で、1つまたは複数のプロセッサによる実行時に、無人機に操作計画を修正させる命令は、コンピュータシステムに、タスクの集合の少なくとも1つのタスクを取り消させてよい。任意選択で、複数のメッセージの内のメッセージは、メッセージを生成した無人機に特有の対応するデジタル証明書を有してよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、デジタル証明書を使用してメッセージの真偽を検証させてよい命令を含む。
本明細書に開示される実施形態は、複数の場所の間で無人航空機を推進するように構成された1つまたは複数の推進サブシステム、メッセージを受信及び送信するように構成されたトランシーバ、及び/または搭載コンピュータシステムを含んでよい。搭載コンピュータシステムは、1つまたは複数のプロセッサと、トランシーバを介して他の無人航空機から受信されたメッセージの第1の集合、無人航空機によって完了されるタスクの集合、及び/または命令を記憶するメモリとを含んでよく、該命令は、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、別の無人航空機からトランシーバを介してメッセージ及びメッセージと関連付けられた複数のデジタル署名を受信する、複数のデジタル署名に少なくとも部分的に基づいて、メッセージの確実性レベルを決定する、決定された確実性レベルに少なくとも部分的に基づいてメッセージを受け入れるかどうかを判断する、及び/またはメッセージを受け入れると判断した場合、メッセージに従ってタスクの集合を修正することの内の1つまたは複数を行わせる。
任意選択で、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに確実性レベルを決定させる命令は、搭載コンピュータシステムに、デジタル署名チェーンを形成する複数のデジタル署名の内のいくつかのデジタル署名がメッセージの受入れの最小数を満たすかどうかを判断させてよい。任意選択で、デジタル署名チェーンは、複数のデジタル署名の部分集合の各デジタル署名が、少なくとも1つの他のデジタル署名に基づいて生成される複数のデジタル署名の部分集合を含んでよい。任意選択で、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムにメッセージを受け入れるかどうか判断させる命令は、コンピュータシステムに、メッセージのタイプに少なくとも部分的に基づいて必須確実性レベルを決定させ、決定された確実性レベルが必須確実性レベルを満たすかどうかを判断させてよい。任意選択で、命令はさらに、1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、無人航空機が利用可能なデータに少なくとも部分的に基づいてメッセージを確認するかどうかを判断する、メッセージを確認すると判断した場合に、メッセージのためのデジタル署名を生成する、及び少なくともメッセージ及び生成されたデジタル署名を、他の無人航空機とは異なる第2の無人航空機に送信することの内の1つまたは複数を行わせてよい。
本明細書に開示される実施形態は、コンピュータにより実装された(つまり、コンピュータシステムの制御下の)無人機を操作する方法を含んでよい、またはそれ以外の場合、別の無人機からメッセージ及びメッセージと関連付けられた複数のデジタル署名を受信すること、複数のデジタル署名の少なくとも部分集合に少なくとも部分的に基づいて、定足数の無人航空機がメッセージを入念に検査したと判断すること、及び/または定足数の無人機がメッセージを入念に検査した結果として、メッセージに従って無人機のための操作計画を更新することの1つまたは複数を含む。
任意選択で、方法はメッセージのタイプに少なくとも部分的に基づいて定足数を決定することを含んでよい。任意選択で、操作計画は、メッセージの情報に少なくとも部分的に基づいて、無人機によって実行されるタスクを再計算することを含んでよい。任意選択で、方法は、第2の無人機から第2のメッセージを受信すること、定足数の無人機がまだメッセージを入念に検査していないと判断すること、第2のメッセージを確認するために少なくとも1つの要求を送信すること、要求に対する少なくとも1つの応答を受信すること、受信された少なくとも1つの応答に少なくとも部分的に基づいて、定足数の無人機が第2のメッセージを入念に検査したと判断すること、及び/または第2のメッセージに従って操作計画を更新することの1つまたは複数を含んでよい。任意選択で、方法は、メッセージのためのデジタル署名を生成すること、及び/またはメッセージ、複数のデジタル署名、及び生成されたデジタル署名を、他の無人機とは異なる第2の無人機に送信することの1つまたは複数を含んでよい。任意選択で、方法は、無人機のセンサの集合から収集されたデータに少なくとも部分的に基づいて、メッセージを入念に検査することを決定することを含んでよい、及び/またはデジタル署名を生成することはメッセージを入念に検査することを前記決定することを条件とする。任意選択で、定足数は無人機の最小数であってよい。任意選択で、無人機及び他の無人機は無人航空機であってよい。
本明細書に開示される実施形態は、非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体を含んでよく、実行可能な命令は、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、別の無人機からのメッセージ及びメッセージと関連付けられたデジタル署名の集合を受信する、デジタル署名の集合に少なくとも部分的に基づいて、メッセージを入念に検査した無人機の集合が一連の定足数規則を満たすかどうかを判断する、一連の定足数規則が満たされていないと判断した場合、メッセージの入念な検査に対する少なくとも1つの要求を送信する、及び/または少なくとも1つの要求に対する1つまたは複数の応答に従ってメッセージを処理することの内の1つまたは複数を行わせてよい。
任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムにメッセージを処理させる命令は、コンピュータシステムに、1つまたは複数の応答がメッセージを入念に検査する場合に無人機の操作計画を修正させてよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムにメッセージを処理させる命令は、コンピュータシステムに、少なくとも1つの要求に対する応答がメッセージを入念に検査することができない場合少なくとも一時的に操作計画を未修整のままにさせてよい。任意選択で、命令は、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージの真偽を検証するためにメッセージを生成したとして指定される無人機のデジタル証明書を使用させる命令を含んでよい。任意選択で、コンピュータシステムに少なくとも1つの要求を送信させる命令は、デジタル証明書を使用し、メッセージの真偽を検証できなかった結果として、実行されるように構成されてよい。任意選択で、命令は、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージを入念に検査するかどうかを判断するためにローカルで収集されたデータを使用する、及び/またはメッセージを入念に検査することを決定した場合、メッセージのためのデジタル署名を生成し、メッセージ及びメッセージのためのデジタル署名を、他の無人機とは異なる第2の無人機に送信することの内の1つまたは複数を行わせる命令を含んでよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、メッセージを入念に検査した無人機の集合が一連の定足数規則を満たすかどうかを判断させる命令は、コンピュータシステムに、デジタル署名の集合の少なくとも部分集合のデジタル署名ごとに、デジタル署名に対応するデジタル証明書及びメッセージの識別子を使用させて、基準デジタル署名を生成させてよい、及び/または生成された基準デジタル署名がデジタル署名に一致するかどうかを検証させてよい。任意選択で、1つまたは複数のプロセッサによる実行時に、コンピュータシステムにメッセージを処理させる命令は、コンピュータシステムに、定足数規則が満たされる場合、無人機によって移動されるルートを修正させてよい。任意選択で、命令は、1つまたは複数のプロセッサによる実行時に、コンピュータシステムに、受信されたメッセージのタイプに少なくとも部分的に基づいて一連の定足数規則を選択させてよい。
本開示の実施形態は、以下の条項を考慮して説明できる。
1.無人航空機であって、
複数の場所の間で前記無人航空機を推進させるように構成された推進サブシステムと、
メッセージを受信及び送信するように構成されたトランシーバと、
1つまたは複数のプロセッサと、
前記無人航空機によって完了されるタスクの集合と、
前記1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、
前記トランシーバを介して受信される第1のメッセージに少なくとも部分的に基づいて前記タスクの集合のためのタスクを決定させ、
前記タスク決定後一度に、前記トランシーバを通して受信される第2のメッセージが信頼できることを暗号によって検証させ、
前記受信された第2のメッセージの情報に少なくとも部分的に基づいて前記タスクを再計算させ、
前記再計算されたタスクを完了するために、少なくとも前記推進サブシステムを制御させる
命令と、
を記憶するメモリと、
を含む、前記搭載コンピュータシステムと、
を備える、前記無人飛行機。
2.前記第2のメッセージが第1のデジタル証明書及びデジタル署名とともに前記トランシーバを通して受信され、
前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記第2のメッセージが信頼できることを暗号によって検証させる前記命令が、前記搭載コンピュータシステムに、
前記受信された第1のデジタル証明書を検証するためにローカルに記憶された第2のデジタル証明書を使用させ、
前記受信されたデジタル署名を検証するために前記第1のデジタル証明書を使用させる、
条項1に記載の無人航空機。
3.前記タスクの再計算が、前記第2のメッセージで指定される場所に対応する区域を回避するために前記タスクのためのルートを再計算することを含む、条項1または2に記載の無人航空機。
4.前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに前記タスクを再計算させる前記命令が、前記搭載コンピュータシステムに、前記第2のメッセージの情報が前記タスクの達成に適用可能であった結果として前記タスクを選択させる、条項1〜3のいずれかに記載の無人航空機。
5.コンピュータ実装方法であって、
無人機の搭載コンピュータシステムの制御下で、
前記無人機によって実行される操作の集合を指定する情報を記憶することと、
別の無人機から、メッセージ及び前記メッセージのための認証情報を受信することであって、前記認証情報が前記メッセージの発信者に特有である、受信することと、
前記認証情報に少なくとも部分的に基づいて、前記メッセージが本物であると判断することと、
前記メッセージに少なくとも部分的に基づいて前記情報を修正することと、
を含む、前記コンピュータ実装方法。
6.前記認証情報が前記メッセージのデジタル署名及び第1のデジタル証明書を含み、
前記メッセージが本物であると判断することが、第2のデジタル証明書を使用して前記第1のデジタル証明書を検証すること、及び前記第1のデジタル証明書を使用して前記デジタル署名を確証することを含む、
条項5に記載のコンピュータ実装方法。
7.前記情報がタスクの集合をそれぞれ前記操作の集合の対応する部分集合で指定し、
前記方法がさらに、前記メッセージに少なくとも部分的に基づいてタスクを選択し、前記タスクを再計算することをさらに含む、
条項5または6のいずれかに記載のコンピュータ実装方法。
8.前記情報を修正することが、前記メッセージの情報に少なくとも部分的に基づいて目的地までのルートを修正することを含む、条項5〜7に記載のコンピュータ実装方法。
9.前記メッセージを、前記他の無人機とは異なる第2の無人機に送信することをさらに含む、条項5〜8のいずれかに記載のコンピュータ実装方法。
10.前記無人機及び前記他の無人機が無人航空機である、条項5〜9のいずれかに記載のコンピュータ実装方法。
11.前記メッセージが前記他の無人機とは異なる第2の無人機が信頼できないことを示し、
前記情報の少なくとも一部分が前記第2の無人機から受信されるメッセージの情報に依存し、
前記第2の無人機から前記メッセージで受信される前記情報とは関係なく、前記情報の前記部分を再計算することを含む、
条項5〜10のいずれかに記載のコンピュータ実装方法。
12.前記メッセージが複数のメッセージタイプの内のタイプを有し、
前記情報を修正することが、前記タイプにさらに少なくとも部分的に基づく、
条項5〜11のいずれかに記載のコンピュータ実装方法。
13.非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された前記非一過性のコンピュータ可読記憶媒体であって、該実行可能な命令が、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに少なくとも、
前記無人機が実行する操作の集合を指定する操作計画を記憶させ、
メッセージを受信させ、
別の無人航空機に特有の認証情報を使用して、前記メッセージが前記他の無人機から発せられたのかどうかを暗号によって検証させ、
前記メッセージが、前記他の無人機から発したとして暗号によって検証される場合、前記メッセージの情報に従って前記操作計画を更新させる、
前記非一過性のコンピュータ可読記憶媒体。
14.前記メッセージがデジタル署名及びデジタル証明書とともに受信され、
前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージが前記他の無人機から発したかどうかを暗号によって検証させる前記命令が、前記コンピュータシステムに、
前記デジタル証明書を検証させ、
前記デジタル証明書を使用して前記デジタル署名を検証させる、
条項13に記載の非一過性のコンピュータ可読記憶媒体。
15.前記メッセージが前記他の無人航空機から直接的に受信される、条項13または14に記載の非一過性のコンピュータ可読記憶媒体。
16.前記メッセージが記憶された情報を削除するコマンドを含み、
前記コンピュータシステムに、前記コマンドの結果として前記操作計画を更新させる前記命令が、前記コンピュータシステムに前記操作計画を削除させる命令を含む、
条項13〜15のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
17.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、
前記他の無人機から第2のメッセージを受信させ、前記第2のメッセージがコマンドを指定し、
前記第2のメッセージがコマンド制御施設コンピュータシステムから発したかどうかを暗号によって検証させ、
前記第2のメッセージが前記コマンド制御施設コンピュータシステムから発した旨の検証の成功を条件として前記コマンドを達成させる
命令をさらに備える、条項13〜16のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
18.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、
前記受信されたメッセージのためのデジタル署名を生成させ、
前記受信されたメッセージ及び前記生成されたデジタル署名を、前記他の無人機とは異なる第2の無人機に提供させる、
命令を備える、条項13〜17のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
19.前記メッセージがデジタル署名の取消しを示し、
前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、
前記メッセージを記憶させ、
別のメッセージを、前記他の無人機とは異なる第2の無人機に送信することを決定させ、
前記他のメッセージを送信することを決定した結果として、前記他のメッセージを前記記憶されたメッセージとともに前記第2の無人機に送信させる、
命令をさらに備える、
条項13〜18のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
20.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記コンピュータシステムが、前記メッセージが前記他の無人機から発したことを暗号によって検証できない場合に、前記メッセージを拒絶させる命令を含む、条項13〜19のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
21.無人航空機であって、
複数の場所の間で前記無人航空機を推進させるように構成された推進サブシステムと、
メッセージを受信し、送信するように構成されたトランシーバと、
1つまたは複数のプロセッサと、
前記無人航空機によって実行されるタスクの集合と、
前記1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、
前記トランシーバを介して受信されたメッセージに少なくとも部分的に基づいて前記タスクの集合のためのタスクを決定させ、
前記タスク決定後一度に、前記メッセージが信頼できないと判断させ、
前記信頼できないメッセージとは関係なく前記タスクを再計算させ、
前記再計算されたタスクを実行するために少なくとも前記推進サブシステムを制御させる
命令と、
を記憶するメモリと、
を含む前記搭載コンピュータシステムと、
を備える、無人航空機。
22.前記メッセージが第1のメッセージであり、
前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記メッセージが信頼できないと判断させる前記命令は、前記搭載コンピュータシステムに、
前記トランシーバを介して受信される第2のメッセージを入手させ、前記メッセージがデジタル署名及びデジタル証明書とともに受信され、
前記デジタル署名及び前記デジタル証明書の少なくとも1つに少なくとも部分的に基づいて、前記第2のメッセージの信頼性を検証させ、
前記第2のメッセージの信頼性に少なくとも部分的に基づいて、前記第1のメッセージの信頼性を決定させる、
条項21に記載の無人航空機。
23.前記第2のメッセージが、前記第1のメッセージを生じさせた無人航空機が信頼できないことを示し、
前記命令が前記搭載コンピュータシステムに、前記第2のメッセージが信頼できると判断した結果として、前記第1のメッセージが信頼できないと判断させる、
条項21または22に記載の無人航空機。
24.前記タスクの再計算が前記タスクのルートの再計算を備える、条項21〜23のいずれかに記載の無人航空機。
25.コンピュータ実装方法であって、
無人機の搭載コンピュータシステムの制御下で、
前記無人機が実行するためのタスクの集合を記憶することであって、前記タスクの集合が別の無人機からの少なくとも1つのメッセージに依存して決定されたタスクの部分集合を含む、記憶することと、
前記少なくとも1つのメッセージが信頼できないと判断することと、
前記少なくとも1つのメッセージが信頼できないと判断した結果として、前記記憶されたタスクの集合を更新することと、
前記無人機に前記更新された記憶されたタスクの集合を実行させることと、
を含む、前記コンピュータ実装方法。
26.前記記憶されたタスクの集合を更新することが、前記少なくとも1つのメッセージとは関係なく前記タスクの部分集合の少なくとも1つのタスクを再計算することを含む、条項25に記載のコンピュータ実装方法。
27.前記タスクの部分集合が複数のタスクを備え、
前記記憶されたタスクの集合を更新することが、前記タスクの部分集合の少なくとも1つのタスクを前記少なくとも1つのメッセージに依存させたままにするために実行される、
条項26に記載のコンピュータ実装方法。
28.前記記憶されたタスクの集合を更新することが、前記記憶されたタスクの集合の少なくとも1つのタスクを取り消すことを含む、条項25〜27のいずれかに記載のコンピュータ実装方法。
29.別のメッセージを少なくとも1つの追加の無人機に送信することをさらに含み、前記他のメッセージが前記他の無人機が信頼できないことを示す、条項25〜28のいずれかに記載のコンピュータ実装方法。
30.前記方法がさらに、前記無人機によって秘密として維持される暗号鍵を使用し、前記他のメッセージのデジタル署名を生成することをさらに含み、
前記他のメッセージを送信することがさらに、前記生成されたデジタル署名を送信することを含む、
条項29に記載のコンピュータ実装方法。
31.前記少なくとも1つのメッセージが信頼できないと判断することが、別のメッセージのデジタル署名を検証することを含む、条項25〜30のいずれかに記載のコンピュータ実装方法。
32.前記無人機が無人航空機である、条項25〜31のいずれかに記載のコンピュータ実装方法。
33.前記記憶されたタスクの集合を更新することが、前記記憶されたタスクの集合にタスクを追加することを含む、条項25〜32のいずれかに記載のコンピュータ実装方法。
34.非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体であって、該実行可能な命令が、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに少なくとも、
別の無人機からメッセージを受信させ、
前記受信されたメッセージの情報に少なくとも部分的に基づいて、前記無人機によって実行されるタスクの集合を更新させ、
前記タスクの集合を更新後一度に、前記受信されたメッセージが信頼できないと判断させ、
前記受信されたメッセージが信頼できないと判断した結果として、前記タスクの集合を更新させる、
前記非一過性のコンピュータ可読記憶媒体。
35.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記受信されたメッセージが信頼できないと判断した結果として前記タスクの集合を更新させる前記命令が、前記コンピュータシステムに前記タスクの集合の少なくとも1つのタスクを以前の状態にロールバックさせる、条項34に記載の非一過性のコンピュータ可読記憶媒体。
36.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記受信されたメッセージが信頼できないと判断した結果として前記タスクの集合を更新させる前記命令が、前記コンピュータシステムに、前記無人機の現在の状態に少なくとも部分的に基づいて前記タスクの集合の少なくとも1つのタスクを再計算させる、条項34または35に記載の非一過性のコンピュータ可読記憶媒体。
37.前記1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、前記受信されたメッセージが信頼できないと判断させる前記命令が、前記コンピュータシステムに、
前記無人機のデジタル証明書が取り消されることを示す第2のメッセージを受信させ、
前記メッセージのデジタル署名が前記デジタル証明書の公開暗号鍵に少なくとも部分的に基づいて検証された結果として前記メッセージを選択させる、
条項34〜36のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
38.前記メッセージが場所についての情報を示し、
前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記タスクの集合を更新させる前記命令が、前記コンピュータシステムに、前記場所を回避するために前記タスクの集合の内のタスクのルートを修正させる、
条項34〜37のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
39.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージが信頼できないと判断した結果として、前記他の無人機が信頼できないことを示すメッセージを送信させる命令を含む、条項34〜38のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
40.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記他の無人機からの将来のメッセージを拒絶させる命令を含む、条項34〜39のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
41.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記受信されたメッセージが信頼できないと判断させる前記命令が、前記コンピュータシステムに、コマンド制御施設からの第2のメッセージの真偽を暗号によって検証させ、前記第2のメッセージが前記他の無人機が信頼できないことを示す、条項34〜40のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
42.無人航空機であって、
複数の場所の間で前記無人航空機を推進させるように構成された推進サブシステムと、
メッセージを受信及び送信するように構成されたトランシーバと、
1つまたは複数のプロセッサと、
前記トランシーバを介して他の無人航空機から受信されるメッセージの第1の集合と、
前記無人航空機によって完了されるタスクの集合と、
前記1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、
別の無人航空機と通信する能力を検出させ、
前記メッセージの第1の集合を前記他の無人航空機に提供させ、
前記他の無人航空機からメッセージの第2の集合を受信させ、
前記受信されたメッセージの第2の集合に少なくとも部分的に基づいて、前記タスクの集合を更新するかどうかを判断させ、
前記メッセージの第2の集合に含まれる情報が前記タスクの集合の内の1つまたは複数のタスクに適用可能であった結果として、前記タスクの集合を更新させる
命令と、
を記憶するメモリと、
を含む、前記搭載コンピュータシステムと、
を備える、前記無人飛行機。
43.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記メッセージの第2の集合のデジタル署名を、前記タスクの集合を更新するかどうかを決定する前提条件として検証させる命令を備える、条項42に記載の無人航空機。
44.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、
前記メッセージの第2の集合を前記メッセージの第1の集合にマージさせ、それによってメッセージのマージされた集合を生成し、
前記メッセージの第2の集合を前記メッセージの第1の集合にマージする結果を記憶させ、
前記メッセージのマージされた集合を第2の無人航空機に送信させる
命令を含む、条項42または43に記載の無人航空機。
45.前記タスクの集合の少なくとも1つのタスクの達成が、目的地への移動及び前記目的地で操作を実行することを含む、条項42〜44のいずれかに記載の無人航空機。
46.コンピュータ実装方法であって、
無人機の搭載コンピュータシステムの制御下で、
前記無人機で、実行するためのタスクの集合を記憶することと、
前記無人機で、及び別の無人機から複数のメッセージを受信することと、
実行するための前記タスクの集合からタスクを選択することと、
前記複数のメッセージの少なくとも1つの情報に少なくとも部分的に基づいて前記選択されたタスクを更新することと、
前記更新された選択されたタスクを完了することと、
を含む、前記コンピュータ実装方法。
47.第2の複数のメッセージを前記他の無人機に提供することをさらに含む、条項46に記載のコンピュータ実装方法。
48.前記無人機のセンサの集合からのデータに少なくとも部分的に基づいてメッセージを生成することと、
前記複数のメッセージに前記生成されたメッセージを追加することと、
をさらに含む、条項46または47に記載のコンピュータ実装方法。
49.前記他の無人機に特有な暗号用具を使用し、前記複数のメッセージの真偽を暗号によって検証することをさらに含む、条項46〜48のいずれかに記載のコンピュータ実装方法。
50.前記無人機及び前記他の無人機とは異なる第2の無人機に特有の暗号用具を使用し、前記複数のメッセージの個々のメッセージの真偽を暗号によって検証することをさらに含む、条項46〜49のいずれかに記載のコンピュータ実装方法。
51.前記複数のメッセージを、前記無人機にローカルに記憶される第2の複数のメッセージとマージし、それによってマージされた複数のメッセージを生成することと、
前記マージされた複数のメッセージを、前記無人機とは、及び前記他の無人機とは異なる第2の無人機に送信することと、
をさらに含む、条項46〜50のいずれかに記載のコンピュータ実装方法。
52.前記選択されたタスクが、前記無人機とは、及び前記他の無人機とは異なる第2の無人機から受信されるメッセージに少なくとも部分的に基づいて決定された、条項46〜51のいずれかに記載のコンピュータ実装方法。
53.前記選択されたタスクが前記タスクを達成するための関連付けられたルートを有し、
前記選択されたタスクを更新することが、前記関連付けられたルートを更新することを含む、
条項46〜52のいずれかに記載のコンピュータ実装方法。
54.非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体であって、該実行可能な命令が、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに少なくとも、
トランシーバを通して受信されたメッセージの集合を記憶させ、
前記トランシーバを使用し、別の無人機と通信する能力を検出させ、
前記他の無人機とメッセージを交換させ、前記他の無人機からの複数のメッセージを受信することを含み、
前記複数のメッセージの内のメッセージに少なくとも部分的に基づいて、前記無人機のための操作計画を修正させる、
前記非一過性のコンピュータ可読記憶媒体。
55.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムにメッセージを交換させる前記命令が、前記コンピュータシステムに、前記トランシーバを使用させ、前記メッセージの集合を前記他の無人機に送信させる、条項54に記載の非一過性のコンピュータ可読記憶媒体。
56.前記メッセージの集合の少なくとも1つのメッセージが、前記無人機と異なり、前記他の無人機と異なる第2の無人機から受信された、条項54または55に記載の非一過性のコンピュータ可読記憶媒体。
57.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記操作計画に適用可能である前記複数のメッセージの少なくとも1つの真偽を暗号によって検証させる、条項54〜55のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
58.前記無人機が無人航空機である、条項54〜57のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
59.前記操作計画が、前記無人機によって達成されるタスクの集合を備える、条項54〜58のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
60.前記1つまたは複数のプロセッサによる実行時に、前記無人機に操作計画を修正させる前記命令が、前記コンピュータシステムに、前記タスクの集合の少なくとも1つのタスクを取り消させる、条項59に記載の非一過性のコンピュータ可読記憶媒体。
61.前記複数のメッセージの内のメッセージが、前記メッセージを生成した無人機に特有の対応するデジタル証明書を有し、
前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記デジタル証明書を使用して前記メッセージの真偽を検証させる命令を備える、
条項54〜60のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
62.無人航空機であって、
複数の場所の間で前記無人航空機を推進させるように構成された推進サブシステムと、
メッセージを受信及び送信するように構成されたトランシーバと、
1つまたは複数のプロセッサと、
前記トランシーバを介して他の無人航空機から受信されるメッセージの第1の集合と、
前記無人航空機によって完了されるタスクの集合と、
前記1つまたは複数のプロセッサによる実行時に、搭載コンピュータシステムに、
別の無人航空機から前記トランシーバを介して、メッセージ及び前記メッセージと関連付けられた複数のデジタル署名を受信させ、
前記複数のデジタル署名に少なくとも部分的に基づいて、前記メッセージの確実性レベルを決定させ、
前記決定された確実性レベルに少なくとも部分的に基づいて、前記メッセージを受け入れるかどうかを判断させ、
前記メッセージを受け入れると判断した場合、前記メッセージに従って前記タスクの集合を修正させる
命令と、
を記憶するメモリと、
を含む、前記搭載コンピュータシステムと、
を備える、前記無人飛行機。
63.前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記確実性レベルを判断させる前記命令が、前記搭載コンピュータシステムに、デジタル署名チェーンを形成する前記複数のデジタル署名のデジタル署名の数が前記メッセージの受入れのための最小数を満たすかどうかを判断させ、前記デジタル署名チェーンが前記複数のデジタル署名の部分集合を含み、前記複数のデジタル署名の前記部分集合の各デジタル署名が少なくとも1つの他のデジタル署名に少なくとも部分的に基づいて生成される、条項62に記載の無人航空機。
64.前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、前記メッセージを受け入れるかどうかを判断させる前記命令が、前記コンピュータシステムに、前記メッセージのタイプに少なくとも部分的に基づいて、必須確実性レベルを決定させ、前記決定された確実性レベルが少なくとも前記必須確実性レベルを満たすかどうかを判断させる、条項62または63に記載の無人航空機。
65.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記搭載コンピュータシステムに、
前記無人航空機が利用できるデータに少なくとも部分的に基づいて、前記メッセージを確認するかどうかを判断させ、
前記メッセージを確認することを決定した場合、前記メッセージのためのデジタル署名を生成させ、
少なくとも前記メッセージ及び前記生成されたデジタル署名を、前記他の無人航空機とは異なる第2の無人航空機に送信させる
命令を備える、条項62〜64のいずれかに記載の無人航空機方法。
66.コンピュータ実装方法であって、
無人機のコンピュータシステムの制御下で、
別の無人機から、メッセージ及び前記メッセージと関連付けられた複数のデジタル署名を受信することと、
前記複数のデジタル署名の少なくとも部分集合に少なくとも部分的に基づいて、定足数の無人航空機が前記メッセージを入念に検査したと判断することと、
前記定足数の無人機が前記メッセージを入念に検査した結果として、前記メッセージに従って前記無人機の操作計画を更新することと、
を含む、前記コンピュータ実装方法。
67.前記メッセージのタイプに少なくとも部分的に基づいて、前記定足数を決定することをさらに含む、条項66に記載のコンピュータ実装方法。
68.前記操作計画を更新することが、前記メッセージの情報に少なくとも部分的に基づいて、前記無人機によって実行されるタスクを再計算することを含む、条項66または67に記載のコンピュータ実装方法。
69.第2の無人機から第2のメッセージを受信することと、
前記定足数の無人機がまだ前記メッセージを入念に検査していないと判断することと、
前記第2のメッセージを確認する少なくとも1つの要求を送信することと、
前記要求に対する少なくとも1つの応答を受信することと、
前記受信された少なくとも1つの応答に少なくとも部分的に基づいて、前記定足数の無人機が前記第2のメッセージを入念に検査したと判断することと、
前記第2のメッセージに従って前記操作計画を更新することと、
をさらに含む、条項66〜68のいずれかに記載のコンピュータ実装方法。
70.前記メッセージのためのデジタル署名を生成することと、
前記メッセージ、前記複数のデジタル署名、及び前記生成されたデジタル署名を、前記他の無人機とは異なる第2の無人機に送信することと、
をさらに含む、条項66〜69のいずれかに記載のコンピュータ実装方法。
71.前記方法は、前記無人機のセンサの集合から収集されたデータに少なくとも部分的に基づいて、前記メッセージを入念に検査すると判断することをさらに含み、
前記デジタル署名を生成することが、前記メッセージを入念に検査すると前記判断することを条件とする、
条項66〜70のいずれかに記載のコンピュータ実装方法。
72.前記定足数が無人機の最小数である、条項66〜71のいずれかに記載のコンピュータ実装方法。
73.前記無人機及び前記他の無人機が無人航空機である、条項66から72のいずれかに記載のコンピュータ実装方法。
74.非一過性のコンピュータ可読記憶媒体の上に実行可能な命令が記憶された非一過性のコンピュータ可読記憶媒体であって、該実行可能な命令が、無人機のコンピュータシステムの1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに少なくとも、
別の無人機からのメッセージ、及び前記メッセージと関連付けられたデジタル署名の集合を受信させ、
前記デジタル署名の集合に少なくとも部分的に基づいて、前記メッセージを入念に検査した無人機の集合が一連の定足数規則を満たすかどうかを判断させ、
一連の定足数規則が満たされていないと判断した場合、前記メッセージの入念検査の少なくとも1つの要求を送信させ、
前記少なくとも1つの要求に対する1つまたは複数の回答に従って前記メッセージを処理させる、
前記非一過性のコンピュータ可読記憶媒体。
75.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージを処理させる前記命令が、前記コンピュータシステムに、前記1つまたは複数の応答が前記メッセージを入念に検査する場合、前記無人機の操作計画を修正させる、条項74に記載の非一過性のコンピュータ可読記憶媒体。
76.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージを処理させる前記命令が、前記コンピュータシステムに、前記少なくとも1つの要求に対する応答が前記メッセージを入念に検査できない場合に操作計画を少なくとも一時的に未修正のままとさせる、条項74または75に記載の非一過性コンピュータ可読記憶媒体。
77.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージの真偽を検証するために前記メッセージを生成したとして指定される無人機のデジタル証明書を使用させ、
前記コンピュータシステムに前記少なくとも1つの要求を送信させる前記命令が、前記デジタル証明書を使用し、前記メッセージの真偽を検証できなかった結果として実行されるように構成される、
条項74〜76のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
78.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、
前記メッセージを入念に検査するかどうかを判断するためにローカルに収集されたデータを使用させ、
前記メッセージを入念に検査することと判断した場合、前記メッセージのためのデジタル署名を生成させ、前記メッセージ及び前記メッセージのための前記デジタル署名を、前記他の無人機とは異なる第2の無人機に送信させる
命令を含む、条項74〜77のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
79.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージを入念に検査した無人機の前記集合が前記一連の定足数規則を満たすかどうかを判断させる命令が、前記コンピュータシステムに、前記デジタル署名の集合の少なくとも部分集合のデジタル署名ごとに、
前記メッセージの前記デジタル署名及び前記識別子に対応するデジタル証明書を使用して、基準デジタル署名を生成させ、
前記生成された基準デジタル署名が前記デジタル署名に一致するかどうかを検証させる、
条項74〜78のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
80.前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記メッセージを処理させる前記命令が、前記コンピュータシステムに、前記定足数規則が満たされる場合、前記無人機によって移動されるルートを修正させる、条項74〜79のいずれかに記載の非一過性のコンピュータ可読記憶装置。
81.前記命令がさらに、前記1つまたは複数のプロセッサによる実行時に、前記コンピュータシステムに、前記受信されたメッセージのタイプに少なくとも部分的に基づいて前記一連の定足数規則を選択させる、条項74〜80のいずれかに記載の非一過性のコンピュータ可読記憶媒体。
他の変形形態は本開示の精神の範囲内にある。したがって、開示されている技法は多様な修正及び代替構成の影響を受けやすいが、本開示の特定の示されている実施形態は図面に示され、詳細に上述されている。しかしながら、本発明を開示されている特定の1つまたは複数の形に制限する意図はなく、逆に、意図は添付の特許請求の範囲に定義されるように本発明の精神及び範囲に入るすべての変更形態、代替構造及び同等物をカバーすることであることが理解されるべきである。
(特に以下の特許請求の範囲との関連で)開示される実施形態を説明することとの関連で用語「a」、及び「an」及び「the」及び類似する指示対象を使用することは、本明細書に別段の指示がない限りまたは文脈に明らかに矛盾しない限り、単数と複数の両方をカバーすると解釈されるべきである。用語「comprising(含む)」、「有する(having)」、「including(含む)」及び「containing(含む)」は、特に断りのない限り、開放クレーム(つまり、「含むが、これに限定されるものではない」を意味する)として解釈されるべきである。用語「接続される」は、修飾されず、物理的な接続を指すときは、介在する何かがあるとしても、部分的にまたは全体的に中に含まれる、取り付けられる、または互いに接合されるとして解釈されるべきである。本明細書の値の範囲の列挙は、本明細書に別段の指示がない限り、単に、範囲内に入るそれぞれ別個の値を個別に指す簡単な方法として役立つことが意図されるだけであり、それぞれ別個の値は、あたかも該値が本明細書で個別に列挙されるかのように明細書の中に組み込まれる。用語「集合」(例えば、「品目の集合」または「部分集合」は、特に断りのない限りまたは文脈に明らかに矛盾しない限り、1つまたは複数の要素を含む非空の集合体として解釈されるべきである。さらに、特に断りのない限りまたは文脈に明らかに矛盾しない限り、対応する集合の用語「部分集合」は必ずしも対応する集合の適切な部分集合を示すわけではなく、部分集合及び対応する集合は等しいことがある。
別段の指示がない限りまたは文脈に明らかに矛盾しない限り、例えば形式「A、B、及びCの少なくとも1つ」または「A、B、及びCの少なくとも1つ」の句等の接続言語は、それ以外の場合、一般に、項目、項等がAもしくはBもしくはCのどちらかである、またはA及びB及びCの集合の任意の非空部分集合であってよいことを示すために使用されるとして文脈で解釈される。例えば、3つの要素を有する集合の例示的な例では、接続句「A、B、及びCの少なくとも1つ」並びに「A、B、及びCの少なくとも1つ」は、以下の集合{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のいずれかを指す。したがって、係る接続言語は、特定の実施形態がAの少なくとも1つ、Bの少なくとも1つ、及びCの少なくとも1つがそれぞれ存在することを要求することを暗示すると概して意図されない。
本明細書に説明されるプロセスの操作は、本明細書に別段の指示がない限りまたは文脈に明らかに矛盾しない限り、任意の適切な順序で実行できる。本明細書に説明されるプロセス(またはプロセスの変形形態及び/または組合せ)は、実行可能な命令で構成された1つまたは複数のコンピュータシステムの制御下で実行されてよく、ハードウェアまたはハードウェアの組合せによって、1つまたは複数のプロセッサで集合的に実行するコード(例えば、実行可能な命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装されてよい。コードは、例えば1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形でコンピュータ可読記憶媒体に記憶されてよい。コンピュータ可読記憶媒体は非一過性であってよい。
本明細書に提供されるあらゆる及びすべての例、または例示的な言語(例えば「等の」)の使用は、単に本発明の実施形態をよりうまく明らかにすることを意図しており、別段に請求されない限り、本発明に対して制限を課さない。明細書中の言語は、任意の請求されていない要素を本発明の実施にとって必須として示すとして解釈されるべきではない。
本発明を実施するために本発明者に既知である最良の形態を含む本開示の実施形態が本明細書に説明される。それらの実施形態の変形形態は、上記説明を読むと当業者に明らかになり得る。本発明者は、当該技術の熟練者が係る変形形態を必要に応じて利用することを期待し、本発明者は本開示の実施形態が本明細書に特に説明される以外に実施されることを意図する。したがって、本開示の範囲は、適用法により許可されるように、本明細書に加えられる特許請求の範囲に列挙される主題のすべての変更形態及び同等物を含む。さらに、その考えられるすべての変形形態の上述された要素のいかなる組合せも、本明細書に別段の指示がない限りまたは文脈に明らかに矛盾しない限り本開示の範囲により包含される。
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、あたかもそれぞれの参考文献が個別に且つ明確に参照により援用されるために示され、本明細書にその全体として説明されるかのように同程度まで参考文献により本明細書に援用される。