(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-03
(54)【発明の名称】アセット群のための作業のプランニング
(51)【国際特許分類】
G08G 5/00 20060101AFI20241126BHJP
G06Q 50/40 20240101ALI20241126BHJP
B64U 20/80 20230101ALI20241126BHJP
F41H 11/02 20060101ALN20241126BHJP
B64U 101/17 20230101ALN20241126BHJP
B64U 101/16 20230101ALN20241126BHJP
【FI】
G08G5/00 A
G06Q50/40
B64U20/80
F41H11/02
B64U101:17
B64U101:16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024516741
(86)(22)【出願日】2022-08-31
(85)【翻訳文提出日】2024-05-07
(86)【国際出願番号】 US2022042155
(87)【国際公開番号】W WO2023043617
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520441626
【氏名又は名称】アンドゥリル・インダストリーズ・インコーポレーテッド
【氏名又は名称原語表記】ANDURIL INDUSTRIES INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】ヴェンカテシュ・アベイ
(72)【発明者】
【氏名】シンフ・ブライアン・ダブリュ.
(72)【発明者】
【氏名】トチップ・エルストン
(72)【発明者】
【氏名】ニューマン・ジャレッド
(72)【発明者】
【氏名】ベネット・ショシュア・ジョン
(72)【発明者】
【氏名】レディー・ニキル
(72)【発明者】
【氏名】エリー・サミュエル・アール.
【テーマコード(参考)】
5H181
5L050
【Fターム(参考)】
5H181AA26
5H181BB04
5H181CC04
5H181FF04
5H181FF13
5H181FF33
5H181LL09
5L050CC42
(57)【要約】
【解決手段】作業を計画するためのシステムは、通信インターフェースと、1または複数のプロセッサとを備える。1または複数のプロセッサはドローンがアセット群の一部であることの示唆を受信し、アセット群は1または複数のタスクの1または複数の要素を実行する任務を負い、アセット群は複数のドローンを含み、1または複数の要素に関する情報を通信し、1)1または複数の要素に関する情報は少なくとも1つの他のドローンに通信され、2)1または複数の要素に関する情報はアセット群の1または複数のセンサによって取得された情報に少なくとも部分的に基づき、3)1または複数の要素に関する情報は1または複数のタスクを実行するための計画を決定することに関連して用いられ、1または複数のタスクを実行するための計画に関する情報を通信し、1または複数のタスクを実行するための計画に関する情報は少なくとも1つの他のドローンに通信されるよう構成されている。
【選択図】
図7A
【特許請求の範囲】
【請求項1】
ドローンであって、
通信インターフェースと、
前記通信インターフェースに接続されている1または複数のプロセッサと、
を備え、
前記1または複数のプロセッサは、
前記通信インターフェースを介して、前記ドローンがアセット群の一部であることの示唆を受信し、前記アセット群は、1または複数のタスクの1または複数の要素を実行する任務を負い、前記アセット群は、複数のドローンを含み、
前記通信インターフェースを介して、前記1または複数の要素に関する情報を通信し、
前記1または複数の要素に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信され、
前記1または複数の要素に関する前記情報は、前記アセット群の1または複数のセンサによって取得された情報に少なくとも部分的に基づき、
前記1または複数の要素に関する前記情報は、前記1または複数のタスクを実行するための計画を決定することに関連して用いられ、
前記通信インターフェースを介して、前記1または複数のタスクを実行するための前記計画に関する情報を通信し、前記1または複数のタスクを実行するための前記計画に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信される、よう構成されている、ドローン。
【請求項2】
請求項1に記載のドローンであって、
前記ドローンは、前記アセット群の少なくとも一部の中のリーダードローンであり、
前記1または複数のプロセッサは、さらに、作業制御システムから、前記アセット群によって実行される前記1または複数の要素に関する情報を受信するよう構成されている、ドローン。
【請求項3】
請求項1に記載のドローンであって、前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、
前記アセット群の中の少なくとも1つの他のアセットから、前記1または複数のタスクを実行するための前記計画に関する前記情報を受信することを備える、ドローン。
【請求項4】
請求項1に記載のドローンであって、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、
前記アセット群の中の少なくとも1つの他のアセットから、前記1または複数のタスクを実行するための前記計画に関する前記情報を受信することを備え、
前記1または複数のタスクを実行するための前記計画に関する前記情報は、前記1または複数の要素の内の少なくとも1つの要素の完了状態を含む、ドローン。
【請求項5】
請求項1に記載のドローンであって、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、
前記アセット群の中の少なくとも1つの他のアセットから、前記1または複数のタスクを実行するための前記計画に関する前記情報を受信することを備え、
前記1または複数のタスクを実行するための前記計画に関する前記情報は、前記1または複数の要素の内の少なくとも1つの要素の結果を含み、前記結果は、前記少なくとも1つの他のアセットの1または複数のセンサによって取得されたセンサ情報に少なくとも部分的に基づく、ドローン。
【請求項6】
請求項1に記載のドローンであって、前記1または複数の要素に関する前記情報を通信することは、
前記1または複数の要素の少なくとも一部を実行するための命令を、前記アセット群の中の1または複数の他のアセットへ通信することを備える、ドローン。
【請求項7】
請求項1に記載のドローンであって、前記1または複数の要素に関する前記情報は、前記1または複数のタスクの内の少なくとも1つのタスクの実行に関する1または複数の制約パラメータを含む、ドローン。
【請求項8】
請求項1に記載のドローンであって、前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定するよう構成され、
前記ドローンは、前記計画の少なくとも一部を前記複数のドローンの内の少なくとも1つの他のドローンへ通信する、ドローン。
【請求項9】
請求項1に記載のドローンであって、
前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定するよう構成され、
前記ドローンは、前記計画の少なくとも一部を前記複数のドローンの内の少なくとも1つの他のドローンへ通信し、
前記計画は、前記1または複数のプロセッサによって実行されるプランニングサービスを実行することに少なくとも部分的に基づいて決定される、ドローン。
【請求項10】
請求項1に記載のドローンであって、
前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定するよう構成されており、
前記計画を決定することは、
前記複数のドローンの中の一群のドローンについて、前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の対応する部分を決定することを含み、
前記ドローンは、前記計画の少なくとも前記部分を前記一群のドローンの中の前記対応するドローンへ通信する、ドローン。
【請求項11】
請求項1に記載のドローンであって、
前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定し、
前記計画を決定することは、前記複数のドローンの中の一群のドローンについて、前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の対応する部分を決定することを備え、
前記一群のドローンから、前記一群のドローンによってそれぞれサポートされている機能を示す機能情報を受信するよう構成されており、
前記ドローンは、前記計画の少なくとも前記部分を前記一群のドローンの中の前記対応するドローンへ通信し、
前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の前記対応する部分は、前記一群のドローンによってそれぞれサポートされている前記機能を示す前記機能情報に少なくとも部分的に基づいて決定される、システム。
【請求項12】
請求項1に記載のドローンであって、
前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定するよう構成されており、
前記計画を決定することは、
前記複数のドローンの中の一群のドローンから、前記一群のドローンによってそれぞれサポートされている機能を示す機能情報を受信し、
作業制御システムから、前記アセット群によって実行される前記1または複数のタスクの示唆を受信し、
前記ドローン上で実行するプランニングサービスによって、前記1または複数のタスクを、前記アセット群の少なくとも一部によって実行される前記1または複数の要素に分解し、
前記1または複数の要素を前記アセット群の1または複数のアセットに割り当て、
前記1または複数の要素を実行するための前記計画を決定し、
前記一群のドローンについて、前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の対応する部分を決定することを備え、
前記ドローンは、前記計画の少なくとも前記部分を前記一群のドローンの中の前記対応するドローンへ通信し、
前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の前記対応する部分は、前記一群のドローンによってそれぞれサポートされている前記機能を示す前記機能情報に少なくとも部分的に基づいて決定され、
前記1または複数の要素に関する前記情報を通信することは、前記1または複数の要素が割り当てられた前記1または複数のアセットへ、前記1または複数の要素を実行するための前記計画の少なくとも一部を送信することを含む、ドローン。
【請求項13】
請求項1に記載のドローンであって、
前記1または複数のプロセッサは、さらに、
前記複数のドローンの少なくとも一部が前記1または複数のタスクの少なくとも一部を実行するための前記計画を決定し、
前記計画を決定することは、
前記複数のドローンの中の一群のドローンから、前記一群のドローンによってそれぞれサポートされている機能を示す機能情報を受信し、
作業制御システムから、前記アセット群によって実行される前記1または複数のタスクの示唆を受信し、
前記ドローン上で実行するプランニングサービスによって、前記1または複数のタスクを、前記アセット群の少なくとも一部によって実行される前記1または複数の要素に分解し、
前記1または複数の要素を前記アセット群の1または複数のアセットに割り当て、
前記1または複数の要素を実行するための前記計画を決定し、
前記一群のドローンについて、前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の対応する部分を決定することを備え、
前記1または複数の要素に関する前記情報が、前記1または複数の要素が割り当てられている前記1または複数のアセットへ通信される方法を決定するよう構成されており、
前記ドローンは、前記計画の少なくとも前記部分を前記一群のドローンの中の前記対応するドローンへ通信し、
前記一群のドローンの中の前記ドローンの各々によって実行される前記計画の前記対応する部分は、前記一群のドローンによってそれぞれサポートされている前記機能を示す前記機能情報に少なくとも部分的に基づいて決定され、
前記1または複数の要素に関する前記情報を通信することは、前記1または複数の要素が割り当てられた前記1または複数のアセットへ、前記1または複数の要素を実行するための前記計画の少なくとも一部を送信することを含み、
前記1または複数の要素に関する前記情報が通信される前記方法は、前記ドローンまたは前記アセット群内の少なくとも1つのアセットのネットワーク制約に少なくとも部分的に基づいて決定される、ドローン。
【請求項14】
請求項1に記載のドローンであって、
前記1または複数のタスクを実行するための前記計画に関する計画情報を通信することは、前記少なくとも1つの他のドローンからフィードバック情報を受信することを備え、
前記フィードバック情報は、前記少なくとも1つの他のドローンの状態、前記少なくとも1つの他のドローンの機能の状態、前記1または複数のタスクの実行の状態、前記1または複数のタスクの実行に関する結果、の内の1または複数に関する状態情報を含み、
前記1または複数のプロセッサは、さらに、前記フィードバック情報に少なくとも部分的に基づいて、前記計画を更新するよう構成されている、ドローン。
【請求項15】
請求項1に記載のドローンであって、
前記1または複数のタスクを実行するための前記計画に関する計画情報を通信することは、前記少なくとも1つの他のドローンからフィードバック情報を受信することを備え、
前記フィードバック情報は、前記少なくとも1つの他のドローンの状態、前記少なくとも1つの他のドローンの機能の状態、前記1または複数のタスクの実行の状態、前記1または複数のタスクの実行に関する結果、の内の1または複数に関する状態情報を含み、
前記1または複数のプロセッサは、さらに、
前記フィードバック情報に少なくとも部分的に基づいて、前記計画を更新し、
前記計画を更新したことに応じて、更新された計画に関する情報を前記少なくとも1つの他のドローンへ送信するよう構成されている、ドローン。
【請求項16】
請求項15に記載のドローンであって、
前記1または複数のタスクを実行するための前記計画に関する計画情報を通信することは、前記少なくとも1つの他のドローンからフィードバック情報を受信することを備え、
前記フィードバック情報は、前記少なくとも1つの他のドローンの状態、前記少なくとも1つの他のドローンの機能の状態、前記1または複数のタスクの実行の状態、前記1または複数のタスクの実行に関する結果、の内の1または複数に関する状態情報を含み、
前記1または複数のプロセッサは、さらに、
前記フィードバック情報に少なくとも部分的に基づいて、前記計画を更新し、
前記計画を更新したことに応じて、更新された計画に関する情報を前記少なくとも1つの他のドローンへ送信するよう構成されており、
前記更新された情報は、前記アセット群の中の複数の他のアセットによって前記ドローンへ送信されたフィードバック情報に少なくとも部分的に基づいている、ドローン。
【請求項17】
請求項1に記載のドローンであって、
前記ドローンは、前記アセット群の少なくとも一部のリーダードローンであり、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、
前記ドローンによって、前記1または複数のタスクの前記実行の状態に関するフィードバック情報を送信することを備え、
前記フィードバック情報は、作業制御システムへ送信される、ドローン。
【請求項18】
請求項1に記載のドローンであって、
前記ドローンは、前記複数のドローンの中から選択されたリーダードローンに追従し、
前記1または複数の要素に関する前記情報を通信することは、前記ドローンの1または複数のセンサによって取得された情報を前記リーダードローンへ送信することを備える、ドローン。
【請求項19】
請求項1に記載のドローンであって、
前記ドローンは、前記複数のドローンの中から選択されたリーダードローンに追従し、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、前記リーダードローンから、前記計画の少なくとも一部を実行するための命令を受信することを備える、ドローン。
【請求項20】
請求項1に記載のドローンであって、
前記ドローンは、前記複数のドローンの中から選択されたリーダードローンに追従し、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、前記リーダードローンから、前記計画の少なくとも一部を実行するための命令を受信することを備え、
前記計画の少なくとも一部を実行するための前記命令は、前記1または複数のタスクの内の少なくとも1つのタスクの実行に関する1または複数の制約パラメータに関連して、前記ドローンへ提供される、ドローン。
【請求項21】
請求項1に記載のドローンであって、
前記ドローンは、前記複数のドローンの中から選択されたリーダードローンに追従し、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、前記リーダードローンから、前記計画の少なくとも一部を実行するための命令を受信することを備え、
前記1または複数の要素に関する前記情報を通信することは、前記ドローンの機能に関する機能情報を前記リーダードローンへ送信することを備える、ドローン。
【請求項22】
請求項21に記載のドローンであって、
前記ドローンは、前記複数のドローンの中から選択されたリーダードローンに追従し、
前記1または複数のタスクを実行するための前記計画に関する前記情報を通信することは、前記リーダードローンから、前記計画の少なくとも一部を実行するための命令を受信することを備え、
前記1または複数の要素に関する前記情報を通信することは、前記ドローンの機能に関する機能情報を前記リーダードローンへ送信することを備え、
前記ドローンの前記機能に関する前記機能情報は、前記ドローンの機能の更新された状態を含む、ドローン。
【請求項23】
ドローンによって計画を実施するための方法であって、
通信インターフェースを介して、前記ドローンがアセット群の一部であることの示唆を受信し、前記アセット群は、1または複数のタスクの1または複数の要素を実行する任務を負い、前記アセット群は、複数のドローンを含み、
前記通信インターフェースを介して、前記1または複数の要素に関する情報を通信し、
前記1または複数の要素に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信され、
前記1または複数の要素に関する前記情報は、前記アセット群の1または複数のセンサによって取得された情報に少なくとも部分的に基づき、
前記1または複数の要素に関する前記情報は、前記1または複数のタスクを実行するための計画を決定することに関連して用いられ、
前記通信インターフェースを介して、前記1または複数のタスクを実行するための前記計画に関する情報を通信することを備え、前記1または複数のタスクを実行するための前記計画に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信される、方法。
【請求項24】
ドローンによって計画を実施するためのコンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な媒体内に具現化され、
通信インターフェースを介して、前記ドローンがアセット群の一部であることの示唆を受信するためのコンピュータ命令と、前記アセット群は、1または複数のタスクの1または複数の要素を実行する任務を負い、前記アセット群は、複数のドローンを含み、
前記通信インターフェースを介して、前記1または複数の要素に関する情報を通信するためのコンピュータ命令と、
前記1または複数の要素に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信され、
前記1または複数の要素に関する前記情報は、前記アセット群の1または複数のセンサによって取得された情報に少なくとも部分的に基づき、
前記1または複数の要素に関する前記情報は、前記1または複数のタスクを実行するための計画を決定することに関連して用いられ、
前記通信インターフェースを介して、前記1または複数のタスクを実行するための前記計画に関する情報を通信するためのコンピュータ命令と、を備え、前記1または複数のタスクを実行するための前記計画に関する前記情報は、前記アセット群の中の少なくとも1つの他のドローンに通信される、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
従来の無人航空機(UAV)またはドローンは、多くのタスクを実行するのに有用である。かかるドローンは、監視、商業荷物または兵器の搬送、遠くまたは人の近寄れない地域のマッピング、ならびに/もしくは、その他の任務を実行しうる。有用ではあるが、かかるドローンは、多くの欠点を抱えている。例えば、ドローンは、典型的には、遠隔で操縦され、信頼性に欠ける場合があり、望んだよりも遅い場合があり、限られたレンジを有する場合があり、および/または、性能に悪影響を与えるその他の問題を有する場合がある。さらに、1または複数のドローンを含む複数のアセットの協調は、複雑であり、一般に、制御センターのユーザが作業の実行に関連してアセットを制御して協調させることを必要とする。
【図面の簡単な説明】
【0002】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0003】
【
図1】本願の様々な実施形態に従って、作業を実行するためのシステムを示す図。
【0004】
【
図2】本願の様々な実施形態に従って、作業を構成または制御するためのデバイスを示すブロック図。
【0005】
【
図3】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのデバイスを示すブロック図。
【0006】
【
図4A】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0007】
【
図4B】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0008】
【
図4C】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0009】
【
図5A】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0010】
【
図5B】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0011】
【
図5C】本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図。
【0012】
【
図6】本願の様々な実施形態に従って、作業を構成し、監視し、および/または、制御するためのユーザインターフェースを示す図。
【0013】
【
図7A】本願の様々な実施形態に従って、作業を構成するための方法を示す図。
【0014】
【
図7B】本願の様々な実施形態に従って、作業を構成するための方法を示す図。
【0015】
【
図8A】本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図。
【0016】
【
図8B】本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図。
【0017】
【
図8C】本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図。
【0018】
【
図9A】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0019】
【
図9B】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0020】
【
図9C】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0021】
【
図9D】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0022】
【
図9E】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0023】
【
図10A】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0024】
【
図10B】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0025】
【
図11】本願の様々な実施形態に従って、作業を構成するための方法を示す図。
【0026】
【
図12A】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0027】
【
図12B】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0028】
【
図12C】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0029】
【
図13】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0030】
【
図14】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0031】
【
図15】本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図。
【0032】
【
図16A】本願の様々な実施形態に従って、離散的表現を示す図。
【0033】
【
図16B】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0034】
【
図16C】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0035】
【
図17A】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0036】
【
図17B】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0037】
【
図17C】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0038】
【
図17D】本願の様々な実施形態に従って、地理的位置の離散的表現を示す図。
【0039】
【
図18】本願の様々な実施形態に従って、1または複数のタスクを実行するための計画を決定する方法を示す図。
【0040】
【
図19A】本願の様々な実施形態に従って、飛行計画を決定する方法を示す図。
【0041】
【
図19B】本願の様々な実施形態に従って、飛行計画を決定する方法を示す図。
【発明を実施するための形態】
【0042】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されているメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書で用いられているように、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するよう構成されている1または複数のデバイス、回路、および/または、処理コアを指す。
【0043】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0044】
様々な実施形態に従って、アセットをグループ化するためのシステムが開示されている。システムは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)通信インターフェースを介して、アセット群によって実行される1または複数のタスクに関連付けられているデータを受信し、アセット群は、複数のドローンを含み、ドローンは、少なくとも半自律型であり、(ii)複数のアセットの中から、1または複数のタスクを実行するためのアセット群を決定し、(iii)通信インターフェースを介して、アセット群の中の少なくとも1つのドローンへ命令を通信し、命令は、1または複数のタスクが少なくとも1つのドローンによって少なくとも部分的に完了されることを指示する、よう構成されてよい。1または複数のタスクを実行するためのアセット群を決定することは、1または複数のタスクの1または複数の特徴に関連付けられている1または複数の機能を決定し、(i)1または複数のタスクの1または複数の特徴に関連付けられている1または複数の機能と、(ii)複数のドローンにそれぞれ関連付けられている1または複数のドローン機能とに少なくとも部分的に基づいて、複数のドローンを決定することを含んでよい。
【0045】
様々な実施形態に従って、ドローンが開示されている。ドローンは、半自律型ドローンであってよい。ドローンは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)通信インターフェースを介して、ドローンがアセット群の一部であることの示唆を受信し、アセット群は、1または複数のタスクの1または複数の要素を実行する任務を負い、アセット群は、複数のドローンを含み、(ii)通信インターフェースを介して、1または複数の要素に関する情報を通信し、(iii)通信インターフェースを介して、1または複数のタスクを実行するための計画に関する情報を通信し、1または複数のタスクを実行するための計画に関する情報は、アセット群の中の少なくとも1つの他のドローンに通信される、よう構成されてよい。1または複数の要素に関する情報は、アセット群の中の少なくとも1つの他のドローンに通信されてよい。1または複数の要素に関する情報は、アセット群の1または複数のセンサによって取得された情報に少なくとも部分的に基づいていてよい。1または複数の要素に関する情報は、1または複数のタスクを実行するための計画を決定することに関連して用いられてよい。
【0046】
様々な実施形態に従って、ドローンが開示されている。ドローンは、半自律型ドローンであってよい。ドローンは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)通信インターフェースを介して、ドローンがアセット群の一部であることの示唆を受信し、アセット群は、1または複数のタスクの1または複数の要素を実行する任務を負い、アセット群は、複数のドローンを含み、(ii)アセット群の中の少なくとも1つのドローンが故障を経験したと判定し、(iii)少なくとも1つのドローンが故障を経験したとの判定に応じて、1または複数のタスクを実行するために、計画を更新された計画に更新し、(iv)通信インターフェースを介して、更新された計画に関する情報を通信し、更新された計画に関する情報は、アセット群の中の少なくとも1つの残りのドローンに通信される、よう構成されてよい。1または複数のプロセッサは、さらに、通信インターフェースを介して、更新された計画の少なくとも1つの要素の実行中に取得された情報を通信するよう構成され、更新された計画に関する情報は、1セットのドローンの少なくとも1つの残りのアセットと通信される。
【0047】
様々な実施形態に従って、アセットを動的にグループ化するためのシステムが開示されている。システムは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)アセット群によって実行される1または複数のタスクに関連付けられているデータを取得し、アセット群は、複数のドローンを含み、複数のドローンは、少なくとも半自律型であり、(ii)1または複数のタスクに関連付けられているデータに少なくとも部分的に基づいて、アセット群を修正することを決定し、(iii)通信インターフェースを介して、アセット群の中の少なくとも1つのドローンへの命令を通信し、命令は、アセット群への修正を指示する、よう構成されてよい。1または複数のタスクに関連付けられているデータに少なくとも部分的に基づいて、アセット群を修正することを決定することは、1または複数の残りのタスクに関連付けられている1または複数の機能を決定し、(i)1または複数の残りのタスクに関連付けられている1または複数の機能と、(ii)セット内のアセットにそれぞれ関連付けられている1または複数のドローン機能とに少なくとも部分的に基づいて、アセット群への修正を決定することを含んでよい。
【0048】
様々な実施形態に従って、システムが開示されている。システムは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)第1ユーザインターフェースを表示させ、第1ユーザインターフェースは、実行される1または複数のタスクの特徴に関連付けられている1または複数の選択可能な要素を含み、(ii)第1ユーザインターフェースを介して、実行される1または複数のタスクの特徴に関する1または複数のユーザ選択を受信し、(iii)第1インターフェースに入力された1または複数のユーザ選択を受信したことに応じて、第2ユーザインターフェースを表示させ、(iv)第2ユーザインターフェースを介して、作業を実行するために配備される1または複数のアセットの一群に関する1または複数のユーザ選択を受信し、(v)実行される作業を決定し、作業は、(a)実行される1または複数のタスクの特徴に関する1または複数のユーザ選択と、(b)作業を実行するために配備される1または複数のアセットの一群に関する1または複数のユーザ選択とに少なくとも部分的に基づいて決定され、(vi)通信インターフェースを介して、作業に関する情報を通信する、よう構成されてよい。第2ユーザインターフェースは、ユーザインターフェースに入力された1または複数のユーザ選択の内の少なくとも1つに少なくとも部分的に基づいて構成されてよい。第2ユーザインターフェースは、作業を実行する1または複数のアセットの一群に関連付けられている1または複数の選択可能な要素を備えてよく、ここで、1または複数のアセットの一群は、1または複数のドローンを含み、1または複数のドローンは、半自律型である。作業に関する情報は、アセット群の中の少なくとも1つのドローンへ通信される。作業に関する情報は、作業の少なくとも一部を実行するために、アセット群を配備させる。
【0049】
様々な実施形態に従って、システムが開示されている。システムは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)アセット群によって実行される1または複数のタスクに関連付けられている情報を取得し、(ii)地理的エリアの離散的表現を決定し、離散的表現は、地理的エリア内の体積に各々対応する複数の離散的要素を含み、(iii)1または複数のパラメータが地理的エリアに関係するとの判定に少なくとも部分的に基づいて、複数の離散的要素の少なくともサブセットを備えた地理的エリアに関する1または複数のパラメータで注釈付き表現を作成するために、離散的表現に注釈を付け、(iv)1または複数のタスクを実行するための計画を決定し、計画は、注釈付き表現に少なくとも部分的に基づき、(v)計画に少なくとも部分的に基づいて1または複数のタスクを実行させる、よう構成されてよい。アセット群は、複数のドローンを含んでよく、複数のドローンは、少なくとも半自律型である。1または複数のタスクに関連付けられているデータは、アセット群の中の少なくとも1つのアセットが1または複数のタスクを実行する地理的領域に関する1または複数のパラメータを備えてよい。
【0050】
様々な実施形態に従って、システムが開示されている。システムは、通信インターフェースと、通信インターフェースに接続されている1または複数のプロセッサと、を備えてよい。1または複数のプロセッサは、(i)アセット群によって実行される1または複数のタスクに関連付けられているデータを取得し、(ii)地理的エリアの離散的表現を決定し、ここで、離散的表現は、地理的エリア内の体積に各々対応する複数の離散的要素を含み、(iii)注釈付き表現を作成するために、1または複数の他のドローンの飛行計画で離散的表現に注釈を付け、(iv)複数のドローンの少なくとも1つのドローンの第1飛行計画を決定し、ここで、第1飛行計画は、注釈付き表現に少なくとも部分的に基づいて決定され、(v)第1飛行計画に関する情報をアセット群の中の少なくとも1つの他のアセットへ通信する、よう構成されてよい。アセット群は、複数のドローンを含み、複数のドローンは、少なくとも半自律型であってよい。1または複数のタスクに関連付けられているデータは、1または複数の他のドローンの飛行計画を含んでよい。
【0051】
様々な実施形態によると、システムは、ドローン群を用いて作業を実行するための高レベル命令を受信する。高レベル命令は、作業の高レベル記述または定義を含んでよい。高レベル命令を受信したことに応じて、システムは、ドローン群を用いた作業の実行に関連して、1または複数の低レベル命令を決定してよい。例えば、リーダードローンなどの半自律型ドローンが、高レベル命令をドローン群のための1または複数のタスクに分解してよく、半自律型ドローンは、1または複数のタスク(もしくは、1または複数のタスクまたはタスクの要素を完了させるための計画)をドローン群の中の1または複数のドローン(例えば、フォロワードローン)へ通信してよい。いくつかの実施形態において、ユーザまたは制御システムが、作業の高レベル定義を提供し、1または複数の半自律型ドローンが、作業に関連付けられているタスクまたはタスクの要素を自律的に決定する。次いで、(例えば、1または複数の半自律型ドローンを含む)ドローン群が、作業に関連付けられているタスクまたはタスクの要素を実行する。
【0052】
本明細書で用いられているように、「半自律型ドローン」とは、人的介入なしに、タスクまたは作業を実行するための高レベル命令に基づいて、タスクまたは作業の少なくとも一部を実行するための計画を決定し、ドローンおよび/または計画の状況に関するフィードバック情報を取得し、フィードバック情報に対応するために新たな計画を更新または決定するドローンを意味する。更新された計画または新たな計画は、高レベル命令または作業と整合した方法でドローンを制御するための命令を提供しうる。高レベル命令は、ユーザインターフェースによって、または、ネットワーク接続を介してサーバによって、ドローンへ提供されてよい。高レベル命令を受信したことに応じて、ドローンは、タスクまたは作業の一部を実行するための計画を決定して、計画を実施し、もしくは、タスクまたは作業の一部を提供してドローンへフィードバックを提供するよう別のアセットに命令する。「半自律型ドローン」という用語は、本明細書では「ドローン」と交換可能に用いられてよい。例えば、「ポリゴンをスキャンし、移動するターゲットを追跡する」タスクは、1または複数のドローンがポリゴンを効果的にスキャンする方法について計画を練ることを含みうるが、スキャンパターンの途中で、新たなターゲットが現れる場合があり、半自律型ドローンは、再計画して、新たなターゲットの追跡を開始する。
【0053】
高レベル命令は、作業のタイプの示唆、作業が実行される位置、作業のターゲット、作業が実行される時刻、などの内の1または複数を含んでよい。低レベル命令は、作業に関するより具体的な情報または定義を提供しうる。いくつかの実施形態において、低レベル命令は、作業内のタスクを実行する具体的なアセット、タスクが実行される方法(例えば、速度、高度、センサのタイプ、など)を示しうる。低レベル命令は、さらに、作業が実行されるエリア内の環境情報または状況情報に基づいて決定されてよい。高レベル命令の一例は、具体的な日付に特定の道を監視する作業を実行するための命令でありうる。対照的に、対応する低レベル命令は、特定のアセットが情報をキャプチャする道沿いの特定の位置(または位置の範囲)を示すアセット群の中のアセットへの命令を含みうる。リーダードローンは、低レベル命令を実行する特定のフォロワードローンを決定してよい。低レベル命令は、キャプチャされる情報のタイプ、アセットが移動する速度、アセットが移動するまたは監視を行う高度を示しうる。別の例として、高レベル命令は、「いくつかの良好な見晴らしのよいポイントからこのターゲットを観察すること」を含んでよく、対応する低レベル命令は、「ドローン1をターゲットから100メートル離れた状態で30度の方位に飛行させ、ドローン2を150メートル離れた状態で180度の方位に飛行させること」であってよい。
【0054】
本明細書で用いられているように、「アセット」は、サーバから情報を(例えば、直接的にまたは別のアセットを介して)受信し、そして、情報を取得するセンサを利用し、収集した情報をリーダードローン/アセットまたはサーバへ通信し、ペイロードを搬送するなどして、タスクまたはタスクの要素を実行するための計画を実施しうるデバイス、端末、ビークル、および/または、システムに対応しうる。アセットの例は、限定なく、ドローン、人工衛星、通信タワー、観察ステーション、自律型または半自律型ビークルなどのビークル(例えば、飛行機、ボート、車、トラック、ヘリコプター、など)、ドローン(例えば、大型ドローン、小型ドローン、など)、ジェット機、小型自律センサ(例えば、センサ、「ダスト」センサ、など)を含む。アセットは、関連付けられている識別子と、定義された特徴、機能、特性などのセット(本明細書では、集合的に「機能」とも呼ばれる)を有する。定義された機能のセットは、アセットが実行しうる機能のセットを示してよい。例えば、機能のセットは、アセットに備えられまたは他の方法でアセットへ動作可能に接続されている周辺機器のセット(カメラ、センサ、ペイロード、ペイロード配備メカニズム、予め組み込まれたソフトウェア、など)を示してよい。別の例として、定義された機能のセットは、アセットがタレット(例えば、他の機能が取り付けられる多軸ポインティングメカニズム(例えば、監視カメラのパンチルトユニット))を備えるか否かを示してもよい。別の例として、定義された機能のセットは、伝送の無効化/有効化など、アセットが他の通信ソースからのデータを送受信できるか否かを示してもよい。
【0055】
本明細書で用いられているように、「計画情報」は、タスク、要素、および/または、作業を実行するための計画に関する情報に対応しうる。一例として、計画情報は、tsk、要素、および/または、作業のためのパラメータを含んでよい。一例として、計画情報は、アセットを動作させるための命令を含んでよい。
【0056】
本明細書で用いられているように、「機能情報」は、アセット(ドローンなど)の機能に関する情報に対応しうる。一例として、機能情報は、ドローンの機能および/または機能のセットの示唆を含んでよい。
【0057】
本明細書で用いられているように、「センサ情報」は、センサ(アセットのセンサなど)によって取得された情報に対応しうる。センサ情報は、生センサ入力を所定のフォーマットに変換するなどのために、アセットまたはデバイスによってローカルに処理されてよい。
【0058】
本明細書で用いられているように、「状態情報」は、アセット(例えば、ドローン)などのデバイスの状況または状態に関する情報に対応しうる。一例として、状態情報は、ドローンの特定の機能または機能のセットの状態を示す情報を含んでよい。一例として、状態情報は、1または複数のタスクの状態(例えば、アセットがタスクを完了した程度)を示す情報を含んでよい。一例として、状態情報は、タスク、要素、および/または、作業の実行の結果情報を含んでよい。
【0059】
様々な実施形態が、半自律型ドローンなどのアセット群によって実行される作業を構成するためのシステムを含む。システムは、1または複数のサーバ、クライアント端末、ならびに/もしくは、一群の1または複数のアセットを含んでよい。サーバ、クライアント端末、ならびに、一群の1または複数のアセットは、1または複数のアセットを通して通信してよい。クライアント端末は、作業を構成(例えば、定義)できるユーザインターフェースを提供してよく、アセット群が、作業の少なくとも一部を実行するために配備されてよく、作業の実行の状態に関するフィードバックが提供される。作業を構成することに関連して、作業の少なくとも一部を実行するアセット群が決定されてよい。作業の一部は、リーダードローンなどの半自律型アセットによって決定されてよい。例えば、リーダードローンは、作業(例えば、作業を実行するための高レベル命令)を解析し、作業の少なくとも一部にそれぞれ対応する1または複数のタスクを決定してよい。例えば、第1タスクが、作業の第1部分に対応し、第2タスクが、作業の第2部分に対応しうる。アセット群は、作業の少なくとも一部を実行するための計画を少なくとも半自律的に決定し、計画を実施してよい。
【0060】
いくつかの実施形態において、サーバは、作業に関連付けられている1または複数のタスクを実行するアセット群を決定してよい。アセット群は、1または複数のタスクの1または複数の特徴に関連付けられている1または複数の機能に少なくとも部分的に基づいて決定されてよい。例えば、1または複数のタスクの1または複数の特徴に関連付けられている1または複数の機能は、実行される機能に対応しうる(例えば、監視タスクの場合、機能は、ビデオキャプチャ、画像キャプチャなどに対応してよく、ドローン搬送の場合、機能は、航続距離、ペイロードを運ぶメカニズム、ペイロードの重量制限などに対応してよい)。1または複数のタスクを実行するアセット群は、複数のドローンにそれぞれ関連付けられている1または複数のドローン機能に少なくとも部分的に基づいて決定されてよい。例えば、作業の構成を決定したことに応じて、サーバは、作業に対応する1または複数のタスクを決定し、(例えば、機能に対するタスクのマッピングなどに少なくとも部分的に基づいて)タスクに関連付けられている機能を決定してよい。サーバは、(例えば、機能に対するアセットのマッピングに少なくとも部分的に基づいて)タスクに関連付けられている機能と一致する1または複数のアセットを決定し、そして、1または複数のタスクを実行するアセット群を決定し、もしくは、1または複数のタスクを実行する所定のアセット群にアセットを追加することを決定してよい。作業を実行するアセット群を配備したこと、または、アセット群を決定したことに応じて、アセット群の中の少なくとも1つのアセット(例えば、リーダードローン)が、作業に関する情報(例えば、1または複数のタスクに関連付けられている1または複数の特徴または識別子、1または複数のタスクを実行するアセット群の示唆、など)を提供してよい。いくつかの実施形態において、アセット群の複数のアセット、または、アセット群内の各アセットは、特定のアセットが1または複数のタスクを実行することに関連して用いられることを示す指示を提供される。アセット群は、1または複数のアセットの利用可能性に少なくとも一部は基づいて決定されてよい。例えば、アセットの所有権(例えば、リース契約)が、1または複数のタスクを実行するアセット群にアセットを含めるか否かを決定することに関連して用いられてよい。
【0061】
様々な実施形態が、作業の少なくとも一部(例えば、1または複数のタスク)を実行するアセット群のグループ化を含む。アセット群は、1または複数の半自律型ドローンを含んでよい。(例えば、サーバで)作業が構成されたことに応じて、作業(または、その一部(タスクなど))の高レベル命令が、アセット群の中の少なくとも1つのドローンに提供される。高レベル命令は、作業またはタスクの1または複数の特徴(例えば、実行されるタスク、タスクが実行される位置、タスクが実行される時間、アセット群が動作を許可されている領域、など)など、作業またはタスクの高レベル定義を含んでよい。作業に関する情報(例えば、ドローンがアセット群に含まれる旨の示唆)を受信したことに応じて、半自律型ドローンが、アセット群によって実行される1または複数のタスクの1または複数の要素もしくは1または複数のタスクを決定してよい。半自律型ドローンは、アセット群内の複数のドローンの中のリーダードローンであってよい。いくつかの実施形態において、リーダードローンは、アセット群の中の少なくとも1つのドローンが1または複数のタスクの少なくとも1つの要素を実行するための計画を決定してよい。例えば、リーダードローンは、アセット群に割り当てられた1または複数のタスクを実行するための計画を決定するプランニングサービスを(例えば、ドローン上のプロセッサによってローカルに)実行してよい。1または複数のタスクを実行するための計画を決定することは、(i)実行される機能、(ii)タスクが実行される環境、(iii)実行されるタスクに関連付けられている機能、(iv)アセット群の中の少なくとも1つのドローンの機能、などの内の1または複数に少なくとも部分的に基づいてよい。計画は、アセット群内の1または複数のアセットによって提供されたフィードバック情報(例えば、アセット故障の示唆、環境の変化、ターゲットの位置、など)に基づいて更新されてよい。
【0062】
様々な実施形態によると、アセット群内のアセットは、互いに通信してよい。例えば、アセット群内のリーダードローンは、タスクの少なくとも1つの要素に関する情報(アセットがタスクの要素を実行しまたはタスクを実行するための計画など)を提供してよい。別の例として、アセット群の中の別のドローンまたはアセット群の中の別のアセットが、計画の実施の状態、アセットの状況(例えば、アセットの環境(天候など)など)、などに関する情報をリーダードローンへ送信してよい。いくつかの実施形態において、1または複数のアセット(例えば、ドローン)が、リーダードローンと、フォロワードローンまたはアセット群内のその他のアセットとの間で通信される情報を聞いてよい。例えば、休眠リーダーが、リーダードローンが故障したとの判定に応じて、または、休眠ドローンがアセット群のパーティションのリーダーになるとの決定に応じて、リーダーの責任/役割を比較的シームレスに引き継ぐことを可能にするために、アセット群の間で通信された情報を取得してよい。リーダードローンは、作業の実行を管理/調整するサーバなどの制御センターとも通信してよい。例えば、リーダードローンは、作業に関するフィードバック情報(例えば、1または複数のタスクが完了したか否かの示唆のように作業のリアルタイムの状態、など)を提供してよい。別の例として、リーダードローンは、追加アセットの要求、もしくは、アセットの一部が1または複数のタスクの対応する要素を完了し、アセットの一部に関連付けられている機能が1または複数のタスクを実行するためにもはや必要とされない場合などに、アセット群の一部が作業から解放されるとの示唆、を送信してよい。
【0063】
様々な実施形態によると、アセット群は、アセット群内の1または複数のアセットの故障に半自律的に反応しうる。例えば、アセット群が作業または作業に関連付けられている1または複数のタスクを実行する旨の示唆を制御センター(例えば、サーバ)が提供したことに応じて、アセット群は、それらに関連付けられている作業またはタスクの実行に関連して実施される計画を決定するために、作業またはタスクを分解してよい。計画の実施中、アセットが、電力喪失、アセット群(リーダードローン)との通信ロス、クラッシュ、または、サードパーティとの相互作用などによって、故障しうる。アセット群の中のアセットの故障に応じて、アセット群内の残りのアセットは、人的介入なしに、自身に関連付けられている作業またはタスクの実行を継続しうる。残りのアセットは、アセットが故障したと判定し、例えば、故障したアセットに割り当てられた要素または機能を再割り当てするために、作業またはタスクを実行するための計画を更新してよい。リーダードローンが故障したとの判定に応じて、アセット群の中の別のドローンが、アセット群の残りのアセットの間でリーダードローンの役割に昇格されてよい。リーダードローンに昇格されるドローンは、所定のランキング/優先度などに少なくとも部分的に基づいていてよい。いくつかの実施例において、休眠リーダーが、現在のリーダードローンの故障に応じて、リーダードローンの役割に昇格される。休眠リーダーは、所定のランキング/優先度などに示されているように、(例えば、リーダードローンに次ぐ)アセット群の中の最高ランキング/優先度のドローンに対応しうる。休眠リーダーは、リアルタイムで、または、所定の間隔(例えば、必要に応じて、休眠リーダーがリーダードローンの役割をシームレスに引き受けうることを保証するために、短い間隔)で、リーダードローンと同期してよい。
【0064】
様々な実施形態において、作業(もしくは、作業に関連付けられている1または複数のタスク)を実行するために決定されたアセット群は、作業の実行中に更新されてよい。いくつかの実施例において、アセット群は、まだ実行されていないタスクまたはタスクの要素の特徴または機能、ならびに/もしくは、アセット群の中のアセットの特徴または機能、に基づいて更新されてよい。例えば、アセット群の中のアセットが、実行されるべき残りのタスクの機能/特徴を有していない場合、そのアセットは解放されてよい。別の例として、実行される残りのタスクの機能/特徴に一致する機能/特徴を有するアセットがアセット群にない、または、アセット群内のかかるアセットの数が不十分である場合、アセット群は、実行される残りのタスクの機能/特徴に一致する機能/特徴を備えた1または複数のアセットを含むように更新されてよい。アセット群への更新は、作業を管理または調整する制御センター(例えば、サーバ)によって決定されてよく、アセット群への更新は、アセット群の中の少なくともリーダードローンへ通信されてよい。
【0065】
様々な実施形態によると、1または複数のユーザインターフェースが、作業の構成、作業の状態の通信(例えば、リアルタイム更新)、および/または、(例えば、ユーザ入力などに基づいた)作業の更新、の内の1または複数に関連して提供されてよい。作業を定義するための従来のシステムにおいて、ユーザは、高度な特異性で、作業のパラメータ、用いられる特定のアセット、および、実施される計画を入力する。対照的に、様々な実施形態が、ユーザに作業の構成を行わせる様々なユーザインターフェースの条件付き表示を含み、作業の高レベル計画または定義が、少なくともリーダードローンに提供され、アセット群(例えば、リーダードローン)は、作業の高レベル計画または定義から分解されたタスクまたはタスクの要素を実行するための計画を決定する。このように、様々な実施形態が、作業の1または複数の特徴または要件を入力するためのユーザインターフェースウィザードを提供する。サーバは、クライアント端末に、ユーザへユーザインターフェースを表示させてよい。端末は、第1ユーザインターフェースを表示させられてよく、第1ユーザインターフェースは、実行される1または複数のタスクの特徴に関連付けられている1または複数の選択可能要素を備え、ユーザインターフェースへの入力に応じて、端末は、作業を実行するアセット群に関連付けられている第2インターフェースを表示させられてよい。第2ユーザインターフェースは、第1ユーザインターフェースへの入力に基づいて構成されてよい。第2ユーザインターフェースへの入力に応じて、作業が決定されてよい。サーバは、以前のユーザインターフェースへのユーザ入力に少なくとも部分的に基づいて、端末にユーザインターフェースを順次構成および提供させてよく、一連のユーザインターフェースは、実行される作業を集合的に決定するために用いられてよい。作業が決定され、アセット群が作業を実行するよう命令された後、サーバは、端末に、作業の現在の状態(例えば、リアルタイムフィード、または、作業の様々な部分へのリアルタイム更新)などを含むユーザインターフェースを提供させてよい。いくつかの実施形態において、ユーザは、作業を一時停止し、作業を更新し(例えば、アセット群の中のアセット数の増加などによって作業の迅速な完了を要求し、さらなる射撃能力を要求し、地理的エリアをより迅速に網羅することを要求する、など)、作業をキャンセルするなどに関連して、作業の実行中に1または複数の入力をユーザインターフェースに入力してよい。
【0066】
いくつかの実施形態において、システムは、地理的位置の離散的表現を決定する。地理的位置は、作業が実行される位置、または、作業のタスク(またはタスクの要素)が実行される位置に対応しうる。地理的位置の離散的表現は、地理的位置における体積に各々対応する複数の離散的要素を含んでよい。システムは、作業に関連付けられているパラメータ(例えば、タスクまたはタスクの要素に関連付けられているパラメータ)を決定および/または通信し、タスクを実行するための計画を決定し、作業(例えば、1または複数のタスクのセットなど)を実行するために決定されたアセット群のアセット(ドローンなど)の飛行経路(例えば、軌道)を決定することに関連して、地理的位置の離散的表現を用いてよい。様々な実施形態によると、アセット群の中の複数のアセットが、離散的表現を決定するよう構成される。例えば、プランニングサービスを実行するアセットが、作業に対応する位置もしくはアセットに割り当てられた(例えば、配分された)タスクまたは要素の位置の離散的表現を決定するよう構成されてよい。一例として、離散的表現は、1または複数のタスクを実行するアセット群の中のアセットでローカルに決定される。いくつかの実施形態において、複数のアセットが、1または複数のタスクに関して通信された情報に少なくとも部分的に基づいて、位置の離散的表現の独自のそれぞれのバージョンを決定する。一例として、リーダードローンおよび/またはフォロワードローンは、(i)サーバ(関連作業の構成に関連付けられているサーバなど)から受信された1または複数のタスクに関連付けられている1または複数のパラメータまたは特徴など、1または複数のタスクに関する情報(例えば、1または複数のタスクについてのキープイン/キープアウトの定義、ターゲットの位置、最大高度、など)、(ii)マップ情報(例えば、地理情報)のためのサービス、気象情報のためのサービス、地理的位置にありまたはそれに近接した別のアセットまたはセンサ(例えば、カメラ、人工衛星、など)によって取得された情報のためのサービスなどのサードパーティサービスからの地理的位置に関する情報、ならびに、(iii)作業に割り当てられたアセット群内の別のアセットからの地理的位置もしくは1または複数のタスクに関する情報(例えば、1または複数のタスクの実行の状態、通信見通し線に関連付けられている情報、アセットの飛行計画、特定の位置/体積/エリアが占有されている旨の示唆、など)、の内の1または複数に少なくとも部分的に基づいて、地理的位置の離散的表現(例えば、離散的表現のローカルなバージョン)をそれぞれ決定する。
【0067】
様々な実施形態によると、地理的位置の離散的表現を決定することは、地理的位置の3-D表現を決定する(例えば、作成、生成、データ投入、などする)ことを含み、3-D表現は、ボクセルにそれぞれ対応する複数の離散的要素を含む。いくつかの実施形態において、地理的位置の3-D表現は、地球の曲率に少なくとも部分的に基づいて実世界の表現から複数の離散的要素へ地理的位置を変換することに少なくとも部分的に基づいて決定されてよく、3-D表現のグリッド内の下方向は、重力の方向に対応する。3-D表現の寸法は、z軸における離散的要素の数と比較して、実質的に大きい数の離散的要素(例えば、ボックス)をx軸およびy軸に含むよう構成されてよい。z軸は、重力に平行な軸であってよい。一例として、アセットがz方向において3-D表現を下方へ移動する場合、アセットは、地面に向かって下方に移動し、逆に、アセットがz方向において3-D表現を上方へ移動する場合、アセットは、空に向かって移動する。z軸における離散的表現の長さまたは寸法は、作業の構成に関連して設定された最大高度の構成に少なくとも部分的に基づいて構成されてよい。例えば、システムは、作業に関連付けられている(または、作業の様々なタイプに関連付けられている)デフォルトの最大高度を有してよい。別の例として、ユーザが、作業の構成中に最大高度を入力してもよい。
【0068】
様々な実施形態によると、システム(例えば、サーバ、リーダードローン、フォロワードローン、など)は、1または複数のタスクに関連付けられている地理的位置のモデルを生成する。地理的位置のモデルを生成することは、地理的位置の離散的表現を決定し、注釈付き表現を作成するために離散的表現に注釈を付けることを含んでよい。例えば、注釈付き表現は、地理的位置のモデルに対応しうる。いくつかの実施形態において、システムは、1または複数のタスクならびに/もしくは地理的位置に関する受信済みの情報に少なくとも部分的に基づいて、注釈付き表現を更新する。例えば、システムは、1または複数のタスクならびに/もしくは地理的位置に関する更新済みまたは新しい情報が受信された時などに、定期的に注釈付き表現を繰り返し更新してよい。注釈付き表現は、1または複数のタスクが完了するまで(例えば、作業の完了、中止、一時停止などの決定まで)更新されてよい。いくつかの実施形態において、地理的位置の離散的表現に注釈を付けることは、メタデータを離散的表現の1または複数の離散的要素とそれぞれ関連づけることを含む。メタデータは、1または複数のタスク、地理的位置、などに関連付けられている値または示唆を含んでよい。
【0069】
作業を管理、調整、および/または、実行するための様々な実施形態が、アセットの動的グループ化および/または作業に関連付けられているタスク/要素を実行するための計画の動的更新を可能にすることによって、作業を実行するよう割り当てられたリソース(例えば、アセット)の利用に関する効率を高め、作業の実行の耐障害性を改善する。様々な実施形態が、作業を定義し、作業を実行するためのアセットをマッチングし、作業が実行される方法を決定する際の効率および効果を高める。関連技術の方法では、人間のオペレータが、作業の実行に利用するアセットを選択し、(例えば、サーバで実行する)集中型サービスが、より詳細に作業を定義する。集中型サービスは、作業を実行するために、詳細な作業計画を提供する。様々な実施形態が、所望の作業の高レベル記述の提供をユーザに直感的に行わせるよう構成されたユーザインターフェースのシステムを含む。様々な実施形態が、作業を実行するアセット群をグループ化するための効率的な方法を提供する。アセットのグループ化は、所有権の利用可能性の自動的なネゴシエーション、ならびに、作業に関連付けられている機能およびアセットの作業に少なくとも部分的に基づいてよい。アセットのグループ化は、より効率的であり、より良好な組織化されたタスク実行を提供する。関連技術では、作業を定義するためのシステムは、一般に、作業の実行に用いるアセットを人間のオペレータが選択することを必要とし、人間のオペレータによる選択に利用可能なアセット群は、所有権の利用可能性が容易に認識可能ではないため、さらに制限されうる。いくつかの実施形態において、作業を実行するためのシステムは、より耐障害性である。例えば、1または複数のタスクを決定することに関連して、ならびに、アセット群の中の1または複数のアセット(例えば、フォロワードローン)によるタスクの実行を調整/管理するために、リーダードローン(例えば、半自律型ドローン)を利用することは、作業に関連付けられているタスクまたはタスクの要素を実行するための計画を動的に更新するより効率的な方法を提供する。別の例として、作業を実行するためのアセットの動的グループ化は、タスクの残りのセットを実行するのにもはや必要とされない機能を有するアセットが、アセット群から解放される(そして、別の作業への再割り当てに利用可能にされる)ので、より効率的である。また、アセットの動的グループ化は、アセットの故障または作業の状況の変化に応じて、追加のアセットがアセット群に割り当てられうるので、より耐障害性である。(例えば、リーダードローンによる)作業の実行の動的管理/調整は、アセットの機能の変化および/または作業の状況(環境など)の変化などに応じて、タスクがアセット群の中の他のアセットに迅速に再割り当てされることを可能にする。
【0070】
図1は、本願の様々な実施形態に従って、作業を実行するためのシステムを示す図である。
図1に示す例において、システム100は、サーバ105と、1または複数のアセット120、125、および、130と、を含んでよい。システム100は、さらに、ネットワーク110、ネットワーク115、および/または、クライアント端末135を含んでよい。サーバ105、ならびに、アセット120、125、および/、130は、1または複数のネットワーク(例えば、ネットワーク110、ネットワーク115、および/または、任意のその他の適切なネットワーク)(有線ネットワークおよび/または無線ネットワーク(セルラーネットワーク、無線ローカルエリアネットワーク(WLAN0)など)を含んでよい)を介するなどして、互いに通信してよい。様々な実施例によると、サーバ105は、単一のサーバまたは複数のサーバに対応してよい。同様に、システム100は、様々な他のアセットを含んでもよい。
【0071】
いくつかの実施形態において、サーバ105は、作業を実行するアセット群を決定するなど、作業を構成してよい。アセット群は、1または複数のアセット120、125、および/または、130を含んでよい。サーバ105は、アセットが作業を実行する旨の示唆、および/または、アセット群の示唆(例えば、アセットの識別子のリストなど、アセット群内のアセットのリスト)を、アセット群の中の少なくとも1つのアセットへ通信してよい。いくつかの実施形態において、アセットが作業を実行する旨の示唆は、実行される高レベルのタスク(例えば、エリアまたはターゲットの監視、ペイロードの搬送、など)などの作業の高レベル定義または記述を含んでよい。アセット群の中の少なくとも1つのアセット(例えば、リーダードローン)が、作業の高レベル定義または記述を分解し、アセット群の内の少なくとも一部が作業を実行/完了するための計画を自律的に決定してよい。作業の高レベル定義または記述は、さらに、位置、アセットが入らない/活動しない制限区域の示唆、アセットが活動するエリア/区域の示唆など、作業のいくつかのパラメータを含んでよい。作業の高レベル定義または記述を受信した後、少なくとも1つのアセット(例えば、リーダーアセット)が、アセット群の内の少なくとも一部が作業を実行/完了するための計画を自動的に決定してよく、少なくとも1つのアセットは、アセット群に計画を実行させ、作業に関する情報(例えば、作業の現在の状態など)をネットワーク110および/またはネットワーク115を介してサーバ105へ通信してよい。例えば、リーダードローンは、作業の高レベル定義または記述を分解し、作業に対応する1または複数のタスクのための計画を決定してよい。いくつかの実施形態において、1または複数のタスクに関連付けられている地理的位置の離散的表現が生成される。一例として、地理的位置の離散的表現は、地理的位置ならびに/もしくは1または複数のタスクに関する情報に少なくとも部分的に基づいて生成される。情報は、サーバ105および/またはアセット群の中の別のアセット(例えば、フォロワーアセット、リーダードローン、など)から受信される。いくつかの実施形態において、1または複数のタスクのための計画は、離散的表現に少なくとも部分的に基づいて決定される。例えば、離散的表現は、注釈付き表現を作成するために注釈を付される。一例として、離散的表現に注釈を付けることは、メタデータを設定すること、もしくは、離散的表現の1または複数の離散的要素とメタデータを関連付けること、を含む。いくつかの実施形態において、アセット群の中のアセット(例えば、アセット120、アセット125、および/または、アセット130)、ならびに/もしくは、サーバ105は、(例えば、アセットの軌道または飛行経路を決定するために、など)、離散的要素に関連付けられたメタデータに含まれる情報を用いるなど、注釈付き表現を用いて、計画を決定する。1または複数のタスクのための計画を決定したことに応じて、リーダードローンは、アセット群の中の別のアセット(例えば、フォロワーアセット)へ少なくとも1つのタスクのための計画を送信してよい。少なくとも1つのタスクのための計画を受信したことに応じて、フォロワーアセットは、計画を実行してよく、少なくとも1つのタスクを実行するために、局所的に実行される任意のさらなる命令を自律的に決定してよい。作業を実行するアセット群は、(例えば、特定の機能を有するアセットの故障により、新しいアセットに置き換える場合に)アセットを追加するため、(例えば、特定の機能を必要とする任意のタスクについて、アセットがその機能を提供するためにアセット群に含められ、そのタスクが完了した場合に)アセットを取り除くため、などの目的で、(例えば、作業の実行中)動的に更新されてよい。
【0072】
様々な実施形態において、サーバ105は、ネットワーク(ネットワーク115など)を介してクライアント端末135と通信する。サーバ105は、作業を構成し、作業の状態を表示し、および/または、作業を更新する(例えば、作業を一時停止し、取り消し、または、修正する)ことに関連して、1または複数のユーザインターフェースを、クライアント端末135に表示させてよい。クライアント端末135は、様々なユーザインターフェースへの1または複数のユーザ入力を受信し、1または複数のユーザ入力の示唆をサーバ105へ通信してよい。サーバ105は、ユーザが作業の特徴を定義または入力するウィザードを作成するために、様々なユーザインターフェースを構成することなどに関連して、1または複数のユーザ入力を用いて、クライアント端末135に表示される様々なユーザインターフェースを決定してよい。作業の実行中、サーバ105は、ユーザ入力を用いて、作業の状態またはパラメータを変更してよく、かかる変更に応じて、サーバ105は、(例えば、リーダードローンに変更を実施させるために)変更を少なくともリーダーアセット/ドローンへ通信してよい。例えば、作業の状態またはパラメータを変更したことに応じて、サーバ105は、作業の高レベル定義または記述を更新してよく、サーバ105は、対応する高レベル命令または更新を、作業を実行するアセット群の中のリーダードローンへ提供する。いくつかの実施形態において、サーバ105は、アセット群から(リーダードローンなどから)作業に関する情報(例えば、フィードバック情報)を受信する。作業に関する情報は、作業の状態、作業のリアルタイム画像または動画、などを示しうる。作業に関する情報を受信したことに応じて、サーバ105は、状態更新、リアルタイム作業状態を、クライアント端末135へ提供してよい。いくつかの実施形態において、サーバ105は、作業を更新するための1または複数の推奨または選択肢を決定し、クライアント端末135に表示されたユーザインターフェースを介して推奨または選択肢の内の少なくとも1つをユーザへ提供してよい。一例として、1または複数の推奨または選択肢は、作業の実行の速度を上げるためにアセット群に割り当てられるアセットの数を増やす選択肢の示唆を含んでよい(例えば、特定の数のアセットを追加することが、計算された推定時間だけ完了までの時間を短縮しうることを示しうる)。
【0073】
図2は、本願の様々な実施形態に従って、作業を構成または制御するためのデバイスを示すブロック図である。
図2に示す例において、デバイス200は、通信インターフェース202ならびに/もしくは1または複数のプロセッサ205を備えてよい。デバイス200は、
図1のサーバ105、
図4A~
図4Cの制御センター460、および/または、
図5A~
図5Cの制御センターに対応しうる。デバイス200は、
図7Aの処理700、
図7Bの処理720、
図10Aの処理1000、および/または、
図10Bの処理1020、
図11の処理1100を実行してよい。様々な実施形態によると、1または複数のプロセッサ205は、通信モジュール210、アセット所有権モジュール220、アセットに対する機能のマッピング230、作業定義モジュール240、グループ化モジュール250、事前計画モジュール260、フィードバック情報モジュール270、および、ユーザインターフェースモジュール280、の内の1または複数を備え、または、実行してよい。
【0074】
デバイス200は、作業の1または複数の特徴など、作業を決定すること、作業を実行するアセット群を決定すること、ならびに、作業の示唆(例えば、作業の高レベル記述)をアセット群の中の1または複数のアセット(例えば、リーダードローン)へ通信することに関連して、1または複数のモジュールを実装してよい。作業の実行中、デバイス200は、作業の現在の状態に関する情報を受信するため、または、作業への変更の指示を送信するために、少なくともリーダードローンと情報を通信すること、ならびに/もしくは、作業の状態に関する更新情報を提供するため、または、作業への変更を受信するために、クライアント端末と情報を通信することに関連して、1または複数のモジュールを実装してよい。
【0075】
デバイス200は、通信モジュール210を用いて、アセット群、クライアント端末、別のサーバまたは端末、などと通信してよい。例えば、通信モジュールは、通信される通信インターフェース202へ提供してよい。別の例として、通信インターフェース202は、デバイス200によって受信された情報を通信モジュール210へ提供してよい。
【0076】
様々な実施形態によると、作業を実行するアセット群の決定は、アセット群の中の1または複数のアセットの所有権に少なくとも部分的に基づく。デバイス200は、デバイス200が所有権を有するアセット(例えば、デバイス200の属する組織がアセットを所有または管理している)、または、デバイス200がアセットの少なくとも一時的な所有権を取得しうるアセット、のみをアセット群に含めるよう決定してよい。アセットの所有権は、特定の機能(例えば、タスク、タスクの要素、など)を実行するためにアセットへ命令を提供するなど、アセットを制御する能力を含んでよい。一例として、アセットの所有権は、所有者がアセットを制御する能力を有するリース契約を含んでよい。リース契約は、固定/所定の期間であってよく、または、特定の作業の完了に関連付けられてもよい。いくつかの実施形態において、(例えば、アセット群を決定するための所有権のネゴシエーションに関連する)所有権の移転は、所有権の永久的な移転であり、もしくは、そうでなければ、不明確な期間中であり、もしくは、デバイス200またはその組織がアセットの所有権を手放すまでである。いくつかの実施例において、アセット群は、リーダードローンに、アセット群の中の他のアセット(例えば、フォロワードローン)の所有期間よりも長い所有期間(例えば、リースの長さ、永久的な所有)を持たせるよう構成されている。いくつかの実施例において、(例えば、作業が実行されるエリアの地形などに基づいて)フォロワードローンが作業の実行中に通信を失いうる可能性が比較的高い作業であると判定された場合、デバイス200は、フォロワードローンに、より長い所有期間を持たせるようにアセット群を構成してよい。より長い所有期間は、フォロワードローンがリーダードローンおよび/またはデバイス200などと通信していない期間にわたって、フォロワードローンの所有権が存続することを保証しうる。いくつかの実施形態において、アセットの所有権は、所有権を有する現在のエンティティに不具合が生じた場合に、アセットの所有権が移転されるフェイルオーバーエンティティを含む。アセットの所有権に関する情報は、(i)アセットにローカルに、(ii)複数の組織にわたってサービスを提供する1または複数のサーバによってホストされたサービスなど、集中型の所有権サービス、(iii)デバイス200、ならびに、(iv)アセットの所有者、の内の1または複数に格納されてよい。アセットの所有権に関する情報は、現在の所有者の示唆、現在の所有権の長さの示唆、別の組織が所有権を取得する能力の示唆など所有権移転の利用可能性(例えば、所有権を移転する現在の所有者の意欲)、現在のフェイルオーバー所有者、所有権の移転を交渉するための手順の示唆、などの内の1または複数を含みうる。いくつかの実施形態において、アセットの所有権は、所有権を要求する(例えば、適切な許可を有する)デバイスまたは組織が所有権の要求時などにアセットの所有権を自動的に引き継ぎうる自動引き継ぎ所有権を含んでよい。
【0077】
いくつかの実施形態において、デバイス200は、特定のアセットの所有権を決定することに関連して、および/または、アセットの所有権の取得を交渉するために、アセット所有権モジュール220を利用してよい。アセット所有権モジュール220は、アセットの所有権に関する情報を取得してよく、デバイス200は、アセット群を決定することに関連して、かかる情報を用いてよい。例えば、デバイス200は、アセットの所有権に関する情報を用いて、特定のアセットが、作業を実行するためにアセット群への配分/割り当てに利用可能であるか否かを判定してよい。アセット所有権モジュール220は、作業に関連付けられている利用に向けてアセットの所有権の移転をエンティティと交渉してよい。例えば、アセット所有権モジュール220は、所定の期間のリースを要求してよい。所定の期間は、作業の予測される長さ、アセットが特定のタスクまたはタスクの要素を実行するために必要であると予測される時間の長さ(例えば、アセットの機能が作業の実行に必要とされる期間)、などであってよい。アセット所有権モジュール220は、所有権に関する情報を特定のアセットに要求してよく、または、特定のアセットが、かかるアセットの所有権に関する情報を通知してもよい。いくつかの実施形態において、デバイス200は、作業を実行することに関連して用いられるアセット群の決定に応じて、アセットの所有権を取得するために要求/命令を送信してよい。例えば、デバイス200は、アセットがアセット群に含まれることを示す命令示唆など、アセット群の示唆をアセットに提供することに関連して(例えば、その一部として、または、それにと共に、など)、アセットの所有権を取得するための要求を送信してよい。さらなる例として、デバイス200は、アセット群の示唆をリーダーに提供することに関連して、1または複数のアセットの所有権を取得するための要求を送信してよく、リーダーは、その後、(例えば、作業の中の少なくとも1つのタスクを実行するために)1または複数のアセットの適用可能な所有権を取得することに関連して、アセット群の中の1または複数のアセットと通信できる。
【0078】
様々な実施形態によると、作業を実行することに関連して用いられるアセット群は、アセット群に含まれる対応するアセットの機能に少なくとも部分的に基づいて、決定および/または更新される。作業を構成することに関連して、デバイス200は、作業を実行することに関連付けられている機能のセット(例えば、作業の実行に含まれる様々な機能を実行するために必要な機能)を決定してよい。デバイス200は、アセット群を決定することに関連して、作業を実行することに関連付けられている機能のセットを用いてよい。例えば、デバイス200は、作業を実行することに関連付けられている機能のセットに一致する機能を有するアセットの上位集合の中のアセットをマッチングしてよい。デバイス200は、作業を実行することに関連付けられている機能のセットの中の少なくとも1つの機能に一致する機能を有するアセットの上位集合を決定することに関連して、アセット(またはアセットの識別子)に対する機能のマッピングをクエリしてよい。作業の機能が利用可能なアセットの上位集合の中に一致するアセット(例えば、対応する機能を備えたアセット)を有していないとの判定に応じて、デバイス200は、2以上のアセットを用いて機能を集合的に達成できるか、または、作業を再構成するか、を決定してよい。例えば、デバイス200は、作業の機能が一致するアセットを有していない旨の示唆をクライアント端末/ユーザへ提供し、ならびに/もしくは、(例えば、さらなるユーザ入力に基づいて)作業を再構成するか、または、作業を取り消すか、を示す指示をユーザにプロンプトしてよい。
【0079】
いくつかの実施形態において、デバイス200は、アセットの機能を決定することに関連して、アセットに対する機能のマッピング230を用いてよい。アセットに対する機能のマッピング230は、かかる機能のマッピングをローカルに格納してよく、または、マッピングを格納しているリモートサービスと通信してもよい。アセットに対する機能のマッピング230は、かかるアセットについて機能をルックアップするために、アセットの特定の識別子でマッピングにクエリしてよい。同様に、アセットに対する機能のマッピング230は、かかる機能を有するアセットをルックアップするために、特定の機能のマッピングにクエリしてよい。いくつかの実施例において、作業の1または複数のパラメータを受信したことに応じて、デバイス200は、作業に関連付けられている1または複数の機能を決定し、アセットに対する機能のマッピング230を用いて、一致する機能を有するアセットを決定してよい。例えば、デバイス200は、アセット群が、作業を実行することに関連付けられている機能と一致する機能を集合的に有するとの判定に少なくとも部分的に基づいて、作業を実行するアセット群を決定してよい。デバイス200は、アセット群の中の少なくとも1つのアセットが、作業を実行することに関連付けられている機能と一致する少なくとも1つの機能を有するように、アセット群を決定してよい。アセットに対する機能のマッピング230は、デバイス200にローカルに格納されてよく、または、機能の特定のマッピングを取得するためのモジュールが、アセットに対する機能のマッピング230を提供するリモートサービスにクエリするために用いられてもよい。アセットに対する機能のマッピングは、アセットの機能が変化したとの判定に応じて、更新されてよい。例えば、アセットは、新しい機能、(例えば、周辺機器の故障を検出したことに応じた)機能の喪失、および/または、機能への更新を通知してよい。いくつかの実施例において、デバイス200は、アセットに対する機能のマッピングを更新してよい。いくつかの実施例において、リモートサービス(例えば、サーバによってホストされたサービス)が、特定のアセットにマッピングされた機能を更新し、デバイス200は、アセットに対する機能のマッピングへの更新を定期的に同期させてよく、または、デバイス200は、必要に応じて、アセットに対する機能のマッピングにクエリしてよい。
【0080】
いくつかの実施形態において、アセットは、その機能の示唆を格納する。例えば、アセットは、機能の定義をローカルに格納することができ、アセットは、機能を提供したモジュール(例えば、センサ、カメラ、または、追加されたジンバル、などの周辺機器)の故障、新しいモジュールの追加(例えば、新しい周辺機器の追加、アセットにロードされた新しいソフトウェア、既存のソフトウェアへの更新、など)などに応じて、アセットの現在の機能に基づいて、機能の定義を更新してよい。機能の定義は、アセットの機能のリスト、または、所定のフォーマット/プロトコルに従った機能の示唆、であってよい。いくつかの実施例において、アセットは、1または複数のネットワークにわたって機能の定義を送信することによって、または、計画/作業の実行中にリーダードローンへ、などの方法で、その機能を通知してよく、もしくは、アセットは、サーバ(例えば、作業を構成するサーバ)、集中型の機能サーバ、リーダードローン、などからのクエリに応じて、その機能の示唆を提供してもよい。いくつかの実施例において、デバイス200(例えば、アセットに対する機能のマッピング230)、または、アセットに対する機能のマッピングを管理するリモートサービスは、1または複数のアセットの現在の機能に関する更新のために1または複数のアセットにピングを送ってよく、もしくは、そうでなければ、アセットの健全性の更新のためにピングを提供してよく、アセットに対する機能の対応するマッピングは、(例えば、1または複数のアセットについての機能の現在のセット、および/または、機能の状態を反映するように)更新されてよい。
【0081】
様々な実施形態によると、デバイス200は、1または複数のアセットによって実行される1または複数の作業を定義してよい。例えば、作業の定義は、作業に関連付けられている1または複数の目的を設定すること、作業が実行される位置を設定すること、作業のターゲットを設定すること、作業の実行に関する1または複数の制限(例えば、ターゲットと交戦するための戦闘のルール、制限または許可された空域、など)を設定すること、作業の日付を設定すること、などの内の少なくとも1つを含んでよい。1または複数の作業は、ユーザインターフェースモジュール280によって提供されたユーザインターフェースへ入力されたユーザ選択など、1または複数のユーザ入力に少なくとも部分的に基づいて定義されてよい。いくつかの実施形態において、デバイス200は、作業定義モジュール240を用いて、1または複数の作業を定義する。例えば、作業定義モジュール240は、通信モジュール210および/またはユーザインターフェースモジュール280からユーザ入力へのユーザによる1または複数のユーザ入力を受信してよく、作業定義モジュール240は、作業を定義することに関連して、作業に関連付けられている1または複数の特徴/パラメータを決定してよい。作業の定義の一例は、2021年1月1日から2021年1月3日まで、ロサンゼルスにおいて特定のターゲット(例えば、人物XYZ、トラックABC、など)を発見または追跡するための作業を含んでよく、アセットは、ロサンゼルスから100マイル離れることなく、もしくは、永久禁止区域または空港から2マイル以内には侵入しない。いくつかの実施形態において、作業に関連付けられている1または複数のユーザ入力は、作業の実行に関連して用いられる1または複数のタイプのアセットの示唆を含んでよい。引き続き先述の例において、作業の定義は、さらに、作業がドローンおよび/または固定翼機を用いて実行される旨の指示を含んでよい。
【0082】
いくつかの実施形態において、作業は、1または複数の関連付けられている機能または特徴のセットに分解されてよい。例えば、作業(例えば、作業定義モジュールを用いて定義された作業)の定義が解析されてよく、作業に関連付けられている1または複数の機能が、解析に基づいて決定されてよい。作業に関連付けられている1または複数の機能のセットは、機能に対する作業パラメータのマッピングにクエリすることに少なくとも部分的に基づいて決定されてよい。作業に関連付けられているパラメータは、作業の定義に基づいて決定されてよい。作業パラメータの例は、タイプ作業(例えば、道路網のスキャン、発見、確定、追跡、ロイター飛行、経路に沿ったスキャン、など)、作業分類(例えば、攻撃、防御、監視、など)、位置、タスクが実行される際に辿る経路(例えば、追跡/スキャンのための経路)、アセットのタイプ(例えば、ドローン、固定翼、ヘリコプター、ボート、など)、ターゲット(例えば、個人、飛行機、陸上車、未知のタイプのターゲット、など)、作業を実行する範囲、作業の位置、作業の実行のためのルールセット、実行できること/できないこと(例えば、許可された行動)の示唆、作業中の残存可能性(例えば、どれだけの可能性でアセットが打ち落とされ、または、別の方法で終了させられるか)、通信要件(例えば、アセットが通信サイレントモードに従事し、または、リンクを失いうる時の示唆、利用される通信のタイプの示唆、もしくは、作業中の通信に関するその他のパラメータまたは制約、など)、ターゲットの挙動(例えば、ターゲットが静止しているか、道路を移動しているかなど、ターゲットの動きの予測の示唆、動きのパターン、など)、潜在的な脅威(例えば、SAM(地対空ミサイルランチャー)などドローンを破壊または無効化できるサイトの位置、RF妨害サイト、など)、可能性の低いターゲットゾーン(例えば、ユーザによって指定された任意の関心ターゲットを含むと予測されていないエリアなど)、アセットが移動する最大高度(例えば、海抜)、キープインエリア(例えば、アセットがとどまるエリア)、キープアウトエリア(例えば、アセットが侵入を防止/禁止されるエリア)、などを含む。いくつかの実施例において、作業定義モジュール240が、作業に関連付けられている1または複数の機能を決定する。他の実施例において、グループ化モジュール250が、作業に関連付けられている1または複数の機能を決定する。
【0083】
様々な実施形態によると、デバイス200は、作業を実行するアセット群(例えば、アセットのチーム)を決定する。デバイス200は、作業が定義されたことに応じて(例えば、1または複数のユーザ入力に基づいて)、自動的に作業を実行するアセット群を決定してよい。アセット群は、(i)作業パラメータ、(ii)作業に関連付けられている1または複数の機能、(iii)1または複数のアセットの機能、ならびに、(iv)1または複数のアセットの所有権、の内の1または複数に少なくとも部分的に基づいて、決定されてよい。様々な他の要因/変数が、作業を実行するアセット群を決定することに関連して用いられてもよい。いくつかの実施形態において、デバイス200は、アセットおよび/または作業に関連付けられている1または複数の要因/変数に少なくとも部分的に基づいたベストフィットに基づいて、アセット群を決定する。例えば、デバイス200は、コスト関数を用いて、アセット群を決定してよい。例えば、コスト関数は、アセット群を決定する際に用いられる様々な要因のための重み付けを含んでよい。デバイス200は、アセット群の中のアセットの組み合わせについてのコスト関数によって決定された全体のコスト値の最小化に基づいて、アセット群を決定してよい。いくつかの実施例において、アセット群は、コスト関数を用いた対応する総コスト値がコスト値の閾値未満になるように、決定されてよい。コスト値の閾値は、作業の定義などに関連して、(例えば、管理者、ユーザ、などによって)構成可能であってよい。いくつかの実施例において、コスト値の閾値は、アセットのすべての可能なセットに関する所定のパーセンタイルに対応するよう(例えば、作業を実行するアセット群が、アセットのすべての可能なセットの上位10パーセントに入るように、または、その他の構成可能なパーセンタイルになるように)決定される。アセットを道路割り当てに対してペアリングすることを含む文脈でのコスト関数の一例は、a)道路からの距離、b)ターゲットが道路上に存在する確率、の重み付けを含みうる。上述のコスト関数を用いると、道路から離れているアセットが存在する場合、それらのアセットは、コスト関数の距離成分がそれらのアセットを望ましいアセットから除外するので、選択されない。同様に、可能性の低い道路が存在する場合、可能性の低い道路は、将来にスキャンされ、より高い優先度の道路が優先する。
【0084】
いくつかの実施形態において、アセット群を決定することは、アセット群に含めるアセットの数を決定することを含んでよい。アセット群に含めるアセットの数は、作業(例えば、作業に関連付けられている機能)およびアセットの機能に少なくとも部分的に基づいて決定されてよい。例えば、アセットの数を決定することは、アセットのグルーピングのコスト値、および/または、作業に関連付けられている機能に関するアセットのグルーピングによって提供された機能のセット、に基づいてよい。後でさらに論じるように、アセット群に含められるアセットの数は、アセット群の中のアセットの間の1または複数の機能に関してアセット群に冗長性を含める決定、および/または、冗長性がアセット群の中のアセットの間に含められる程度、に少なくとも部分的に基づいてよい。
【0085】
デバイス200は、グループ化モジュール250を用いて、アセット群を決定してよい。グループ化モジュール250は、作業の定義に少なくとも部分的に基づいて、アセット群を決定してよい。例えば、アセット群は、作業に関連付けられている1または複数の機能のセット、ならびに/もしくは、1または複数の作業パラメータ、に少なくとも部分的に基づいて決定されてよい。グループ化モジュール250は、作業に関連付けられている1または複数の機能のセットと一致する機能を有する1または複数のアセット群を決定してよい。一例として、グループ化モジュール250は、作業に関連付けられている1または複数の機能のセットの中の各機能について、アセット群が、一致する機能を備えた少なくとも1つのアセットを含むように、アセット群を決定してよい。
【0086】
いくつかの実施形態において、デバイス200は、作業を実行するアセット群を決定することに関連して、作業の事前計画を決定する。デバイス200は、事前計画モジュール260を用いて、作業の事前計画を決定してよい。作業のための事前計画は、作業の実行中に何がなされるのかを確認するための作業の高レベル記述または分解(例えば、実行される1セットのタスクまたはタスクの要素への分解)であってよい。作業の実行中に用いられるアセット群を決定することに関連する事前計画の生成は、グループ化モジュール250が、作業に関連付けられている機能(例えば、作業の実行に必要な様々な機能)ならびに/もしくは作業(例えば、作業時に実行される1セットのタスクまたはタスクの要素)の実行に必要または望まれるアセットの特性または特徴、を評価することを可能にする。いくつかの実施形態において、作業の事前計画を決定したことに応じて、デバイス200は、作業の機能または要件に一致する1または複数の機能を有するアセットを決定する。
【0087】
デバイス200は、作業に関連付けられている1または複数の機能の内の少なくとも1つについて、アセット群に冗長性を含めることを決定してよい。例えば、デバイス200は、グループ化モジュール250を用いて、(例えば、作業のタイプ/作業分類/位置が、可能性の閾値を超えまたは他の形で故障のリスク上昇に関連付けられているアセット故障の対応する可能性に関連している場合に)作業のタイプ、作業分類、作業の位置、などに少なくとも部分的に基づいて、アセット群に冗長性を含めることを決定してよい。作業が攻撃作戦である場合、または、敵対的な環境下にある場合、アセットが故障する可能性が高まりうる。デバイス200がアセット群に組み込む冗長性の程度は、アセットが故障する可能性の程度に基づいてよい。例えば、複数の閾値が定義されてよく、各閾値は、対応するアセット故障の可能性を含み、複数の閾値は、アセット群に組み込まれる冗長性の程度を決定することに関連して用いられてよい(例えば、冗長性の程度は、アセット故障の可能性に対応する特定の閾値にマッピングされてよく、マッピングは、アセット群に適用される冗長性の程度を決定するためにクエリされてよい)。冗長性の程度は、特定の機能(アセット故障リスク上昇にマッピングされた機能、または、アセット故障のリスク上昇を有すると特定されたアセットの機能、など)を各々有するアセット群に含められるアセットの数を示しうる。
【0088】
デバイス200は、作業を実行することに関連して用いられるアセット群を決定したことに応じて、アセット群の示唆を通信してよい。例えば、グループ化モジュール250がアセット群を決定したことに応じて、デバイス200は、通信モジュール210を用いて、アセット群の示唆を通信する。いくつかの実施形態において、デバイス200は、アセット群の中の少なくともリーダー(例えば、リーダードローン)へ送信する。リーダードローンは、次に、他のアセットがアセット群の中にある旨の示唆をアセット群の中のその他のアセットへ提供してよい。例えば、リーダードローンは、作業のためのアセットのチーム(例えば、アセット群)に含まれていることを各アセットに通知してよい。別の例として、リーダードローンは、各メンバが、例えば、作業を実行するためのチーム内のアセット群全体を知るように、アセットの中のアセットの示唆をアセット群の中の各アセットへ提供する。リーダードローンへ、もしくは、アセット群の中の1または複数のその他のアセットへ提供される示唆は、作業の実行に関連付けられているタスクまたは計画と共に、または、別個に通信されてよい。
【0089】
様々な実施形態によると、作業を実行するための事前計画は、リモートサービスを介して決定され、その後、アセット群(少なくともリーダードローンなど)へ提供されてよい。事前計画を決定するためのリモートサービスは、事前計画モジュール260を用いて、もしくは、事前計画モジュール260またはデバイス200が通信できる1または複数のサードパーティ事前計画モジュールを介してなど、デバイス200によって実行されてよい。例えば、事前計画モジュール260は、1または複数のサードパーティ事前計画モジュールが作業に関連付けられている事前計画を提供する際にデバイス200とインターフェースを取るためのアプリケーションプログラミングインターフェース(API)を備えてよい。事前計画モジュール260および/またはサードパーティ事前計画モジュールは、作業の定義および/または作業に関連付けられている1または複数のパラメータを取得してよい。いくつかの実施形態において、作業のための事前計画を決定することは、事前計画を決定し、事前計画に関する情報をユーザインターフェースモジュール280などを介してユーザへ提供し(例えば、事前計画をクライアント端末に表示させ)、事前計画に関するフィードバック情報(例えば、事前計画または関連作業のパラメータに関する1または複数の入力)を受信し、フィードバック情報に基づいて事前計画を更新することを繰り返す処理である。更新された事前計画は、その後、ユーザへ提供されてよく、事前計画に関するフィードバック情報するが、さらなる改良のために受信されてよい。事前計画の提供およびフィードバック情報の受信は、例えば、作業が開始される指示をユーザが提供するまで、繰り返し実行されてよい。一例として、デバイス200は、アセット群が経路に沿ってターゲットを追跡し、またはそうでなければ、特定の経路に沿って移動することを示す事前計画を決定してよく、デバイス200は、経路をクライアント端末でユーザへ表示させてよい。ユーザは、アセット群の経路を修正する1または複数の入力を提供してよく、デバイス200は、それに従って事前計画を更新してよい。別の例として、デバイス200は、いくつかの領域をスキャンする時にアセットが飛行する方法を示す事前計画を決定してよい。例えば、芝生サービスを実行または解析する際、オリジナルのポリゴン形状が、あまり最適なスキャンにつながらない場合に、ポリゴン上の往復の芝刈りパターン、および、潜在的に、その領域をスキャンする際の飛行方法を見ることが作業にとって有用でありうる。例えば、ユーザが垂直に芝刈りを実行したが、芝刈りをスキャン/解析するために長い水平ポリゴンを構築した場合、オリジナルの長い水平ポリゴンに従ってスキャンを実行すると、アセットの大幅なオーバーシュートおよび往復につながりうるので、ユーザまたはドローンは、この場合に水平スキャンパターンに適応する可能性がある。
【0090】
いくつかの実施形態において、デバイス200は、アセット群が作業を実行する際に従う事前計画を送信し、リーダーアセットは、事前計画に基づいて、アセット群が作業を実行する計画を決定してよい。一例として、デバイスは、作業を実行するアセット群が計画の枠組みに従うことを保証するために、作業が定義された場合に事前計画を決定および送信してよい。事前計画は、アセット群またはその一部によって達成されることの高レベル定義または記述であってよく、リーダードローンは、アセット群が作業(またはそのタスク)を実行する方法をさらに指定するより低レベルの計画を決定してよい。リーダードローンは、次に、作業を実行するための計画をアセット群の中の別のアセット(例えば、フォロワードローン)へ提供してよく、別のアセットは、次に、リーダードローンによって提供された計画を実行するためのさらに具体的な計画を決定してよい。一例として、監視作業の文脈で、デバイス200(例えば、サーバ)は、アセット群が特定の位置についての監視情報を取得するために移動する経路または境界線を示す事前計画を決定してよく、デバイス200は、アセット群の中のリーダーアセット(例えば、リーダードローン)へ事前計画を提供してよい。事前計画を受信したことに応じて、第1アセットは、事前計画内の境界線または経路をより小さいセグメントに分解し、かかるセグメントを様々なフォロワーアセット(例えば、フォロワードローン)に割り当て、それに対応してフォロワーアセットに割り当てられたセグメントへセグメントに関する監視情報を捕捉するために移動する命令を、様々なフォロワーアセットへ提供してよい。引き続きこの例において、様々なフォロワーアセットは、特定のセグメントに関する監視情報を捕捉する命令を受信してよく、様々なフォロワーアセットは、セグメントへ移動して監視情報を捕捉する具体的な方法を決定してよい(例えば、フォロワードローンは、ルートに沿った障害物(樹木など)を避けるようにルートを計画してよい)。
【0091】
様々な実施形態によると、デバイス200は、作業の定義、作業のための事前計画、ならびに/もしくは、作業実行の状態または結果、に関するフィードバック情報を取得してよい。デバイス200は、フィードバック情報モジュール270を用いて、通信モジュール210などを介して、フィードバック情報を取得してよい。いくつかの実施形態において、フィードバック情報モジュール270は、作業を定義することに関する情報(クライアント端末に表示されたユーザインターフェースへ入力された作業の1または複数の特徴またはパラメータなど)を取得してよい。作業の定義に関する情報を受信したことに応じて、フィードバック情報モジュール270は、かかる情報を作業定義モジュール240などへ提供してよい。いくつかの実施形態において、フィードバック情報モジュール270は、クライアント端末によって提供されたユーザインターフェースへの入力などを介して、作業のための事前計画に関する情報(例えば、事前計画を変更または更新するための入力)を取得してよい。事前計画に関する情報を受信したことに応じて、フィードバック情報モジュール270は、事前計画に関する情報を事前計画モジュール260へ提供してよく、事前計画モジュール260は、次に、かかる情報に基づいて事前計画を更新してよい。いくつかの実施形態において、フィードバック情報モジュール270は、作業実行の状態または結果に関する情報を取得してよい。例えば、フィードバック情報モジュール270は、作業の実行中に、アセット群(例えば、リーダードローン)からリアルタイムな作業情報(例えば、アセット故障の示唆、ライブビデオフィード、など)を受信してよい。フィードバック情報モジュール270は、作業の状態の表示に関連して、リアルタイムな作業情報をユーザインターフェースモジュール280へ提供してよい。別の例として、フィードバック情報モジュール270は、作業が完了したとの示唆を受信してよい。作業が完了したとの示唆を受信したことに応じて、フィードバック情報モジュール270は、(i)作業が完了したとの示唆を提供するためにアセット所有権モジュール220へ、(ii)アセット群の中の1または複数のアセットの所有権を放棄または所有権を返還するためにアセット所有権モジュール220へ、など、1または複数のモジュールへ示唆または対応する命令を提供してよい。
【0092】
様々な実施形態によると、デバイス200は、1または複数のユーザインターフェースを1または複数のクライアント端末に表示させてよい。ユーザインターフェースは、作業を構成または定義し、事前計画を提供および更新し、ならびに/もしくは、作業の状態を提供することに関連して表示されてよい。デバイス200は、ユーザインターフェースモジュール280を用いて、クライアント端末に表示されるユーザインターフェースを構成してよい。ユーザインターフェースモジュール280は、1または複数のテンプレートに少なくとも部分的に基づいて、ユーザインターフェースを構成してよい。さらに、ユーザインターフェースモジュール280は、複数のユーザインターフェースへの1または複数の入力に基づいて作業を構成する目的で、複数のユーザインターフェースを生成してユーザに提供するためのウィザードまたはワークフローを提供してよい。いくつかの実施形態において、作業を構成する際の或るユーザインターフェースへのユーザ入力は、作業の構成に用いられる次のユーザインターフェースを生成することに関連して用いられる。このように、ユーザインターフェースモジュール280は、作業構成処理を通してユーザを導くために、1または複数のユーザインターフェース(またはユーザインターフェースのページ)をクライアント端末へ提供してよい。対照的に、作業は、現在、すべての作業の特徴またはパラメータが単一のページへ入力されることを必要とする単一の複合インターフェース内で定義される。以前のユーザインターフェースへのユーザ入力を介して論理的に接続されている複数のユーザインターフェースの利用は、作業の構成を単純化することにより、人間のオペレータのスキルレベルを低下させ、エラーまたは不正確な入力がなされるリスクを低減する。
【0093】
図3は、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのデバイスを示すブロック図である。
図3に示す例において、デバイス300は、通信インターフェース302ならびに/もしくは1または複数のプロセッサ304を備えてよい。デバイス300は、
図1のアセット120、アセット125、および/または、アセット130、
図4A~
図4Cのアセット405、アセット410、アセット420、アセット430、アセット440(例えば、人工衛星)、および/または、アセット450(例えば、タワー)、ならびに/もしくは、
図5A~
図5Cのアセット505、アセット510、アセッ515、アセット520、アセット525、アセット530、アセット535、アセット540(例えば、人工衛星)、および/または、アセット545(例えば、タワー)、に対応しうる。デバイス200は、
図8Aの処理800、
図8Bの処理830、
図8C処理830、
図9Aの処理900、
図9Bの処理930、
図9Cの処理950、
図9Cの処理951-2、
図9Dの処理950、
図10Aの処理1000、
図10Bの処理1020、
図12Aの処理1200、
図12Bの処理1215、
図12Cの処理1215、
図13の処理1300、
図14の処理1400、
図15の処理1500、
図18の処理1800、
図19Aの処理1900、および/または、
図19Bの処理1940、を実行してよい。
【0094】
様々な実施形態によると、1または複数のプロセッサ305は、通信モジュール310、プランナサービスモジュール320、アセットに対する機能のマッピング330、動的グループ化モジュール340、所有権モジュール350、分割モジュール350、フィードバック情報モジュール370、および、アセット故障モジュール380、内の1または複数を備え、または、実行してよい。デバイス300は、アセット群が作業のタスク(またはタスクの要素)を実行するのための計画を決定し、アセット群を動的に変更し、アセット群の中の1または複数の他のアセットと通信し、アセット群の中の別のアセットから受信された情報などに基づいて、タスクを実行するための計画を更新し、作業を実行するために割り当てられたアセット群の中の1または複数の他のアセットと通信することなど、作業を実施することに関連付けられている1または複数のモジュールを実装してよい。
【0095】
様々な実施形態によると、デバイス300は、半自律型ドローンに対応する。デバイス300は、作業(もしくは、タスクまたはその要素)を実行するための高レベル計画または命令を受信してよく、デバイス300は、作業(もしくは、タスクまたはその要素)を実行する方法を自律的に決定してよい。いくつかの実施形態において、デバイス300は、作業を実行するために割り当てられたアセット群の中のリーダードローンに対応する。いくつかの実施形態において、デバイス300は、作業を実行するために割り当てられたアセット群の中のフォロワードローンに対応する。デバイス300は、デバイスがリーダードローンであるかフォロワードローンであるかに関わらず、同じセットのモジュールを備えてよい。例えば、リーダードローンの故障の場合、または、アセット群が作業(または作業のタスク)の異なる側面を提供するように分割され、複数のパーティションが、パーティションのためのリーダードローンを含む場合に、冗長性を提供するなどのために、アセット群の中の複数のアセットが、リーダードローンと同じモジュールを備えてよい。別の例として、アセット群は、リーダードローンが故障した場合の冗長性を提供するために、リーダードローンと同期しまたはリーダードローンをバックアップする休眠リーダードローンを含んでもよい。いくつかの実施例において、特定のタイプのアセットが、リーダードローンと同じセットのモジュールまたはリーダー機能を備え、その他のタイプのアセットが、モジュールまたはリーダー機能の一部を備える。例えば、アセット群内の半自律型ドローンは、リーダードローンと同じセットのモジュールまたは機能を備え、アセット群の中の自律型のタワー、センサ、または、人工衛星は、異なるセットのアセットを有してよく、アセット群のリーダーになるのに十分な機能を備えなくてよい。
【0096】
デバイス300は、通信モジュール310を用いて、アセット群、別のサーバまたは端末(例えば、
図1のシステム100のサーバ105)などと通信してよい。例えば、通信モジュール310は、通信される通信インターフェース302へ提供してよい。別の例として、通信インターフェース302は、デバイス300によって受信された情報を通信モジュール310へ提供してよい。通信インターフェース302から情報を受信したことに応じて、通信モジュール310は、かかる情報を対応するモジュールへ提供してよい。例えば、デバイス300が作業を実行するとの示唆を受信した場合に、通信モジュール310は、かかる示唆をプランナサービスモジュール320へ提供してよい。別の例として、作業の実行中に1または複数のフォロワードローンからフィードバック情報を受信した場合に、通信モジュール310は、フィードバック情報をフィードバック情報モジュール370および/またはプランナサービスモジュール320などへ提供してよい。
【0097】
様々な実施形態によると、作業、タスク、または、要素が実行される方法のプランニングは、システム内の様々なエンティティを通してなされる。作業を構成するサーバは、作業パラメータを決定して、かかるパラメータをリーダードローンへ提供し、および/または、アセット群が作業を実行するための高レベル事前計画を決定して、かかる事前計画をリーダードローンへ提供してよい。次に、リーダードローンは、サーバから受信された作業のためのパラメータまたは事前計画よりも低レベルの計画を決定してよい。リーダードローンによって決定された計画は、作業を実行することに関連してサーバから受信された情報のいくつかのギャップを自律的に埋めてよい。リーダードローンは、タスクまたはタスクの要素を実行するための計画を1または複数のフォロワードローンへ提供してよい。リーダードローンから計画を受信したことに応じて、1または複数のフォロワードローンは、リーダーから受信された計画におけるギャップを自律的に埋めるなど、計画を実行するための方法をそれぞれ決定してよい。先述の枠組みは、システム(
図1のシステム100など)が、階層的なプランニングをサポートするモジュラーシステムであることを可能にし、リーダードローンおよび/またはフォロワードローンによるかかる対応するプランニングは自律的でありうる。いくつかの実施形態において、アセット群内のアセットは、それぞれサポートするプランニングまたはタスクのレベルを通知してよい。リーダードローンは、フォロワーアセットによってサポートされるプランニングまたはタスクのレベルに基づいて、アセット群内のアセットに対応する計画を決定してよい。例えば、よりロバストなプランニングサービスを備えたフォロワードローンは、初歩的なプランニングサービスを備えた(またはプランニングサービスを全く備えない)アセットほど詳細な計画を必要としない場合がある。いくつかの実施形態において、リーダードローンは、アセットに対するプランニング機能またはタスク機能のマッピングを格納しており、フォロワーアセットのためのそれぞれの計画を決定することに関連して、かかるマッピングを用いてよい。様々な実施形態によると、少なくとも1つのフォロワードローンは、リーダードローンよって実行されるプランニングサービスと同じまたは実質的に同じロバストなプランニングサービスを実行する機能を有する。
【0098】
様々な実施形態によると、デバイス300がアセット群に含まれるとの示唆を(例えば、サーバ(作業制御サービスを提供するサーバなど)から)受信したことに応じて、デバイス300は、作業に関連付けられている1または複数のタスクを実行するための計画を自律的に決定(例えば、生成)し、デバイス300は計画の少なくとも一部を、1または複数の他のアセットへ通信する。デバイス300は、作業に関連付けられている1または複数のタスクを実行するためのアセット群の中のリーダーアセット(例えば、リーダードローン)であってよい。デバイス300は、アセット群が実行する作業に関する情報を受信してよい。作業に関する情報は、作業の高レベル定義または記述を含んでよい。一例として、作業の高レベル定義または記述は、実行される高レベルのタスク(例えば、エリアまたはターゲットの監視、ペイロードの搬送、など)を含んでよい。作業の高レベル定義または記述に含まれる情報の例は、(i)アセット群の示唆、(i)位置、アセットが入らない/活動しない制限区域の示唆、アセットが活動するエリア/区域の示唆など、作業のいくつかのパラメータ、(iii)作業に関連付けられている機能、および/または、(iv)作業(またはそのタスク)を実行するための事前計画、の内の1または複数を含む。いくつかの実施例において、作業に関する情報は、アセット群の中のリーダーアセット(もしくは、リーダーアセットおよび休眠リーダー)のみに通信される。作業に関する情報を受信したことに応じて、リーダーアセットは、アセット群内のその他のアセットへ(例えば、フォロワーアセットへ)アセット群の示唆を通信してよい。
【0099】
いくつかの実施形態において、作業に関する情報は、アセット群のリーダーアセット(例えば、リーダーアセット)のみに送信される。作業に関する情報は、アセット群の休眠リーダー(例えば、本明細書では、第2リーダーとも呼ばれうる)にも送信されてよく、休眠リーダーは、作業情報(例えば、現在の作業状態、様々なタスクの実行のための計画、など)を同期させるリーダーアセットのバックアップであってよい。このように、休眠リーダーは、リーダーアセットにおいて格納/管理されている作業情報の完全なバックアップを有してよい。いくつかの実施形態において、休眠リーダーは、アセット群内の複数のアセット間でのネゴシエーション(例えば、アセット群の中の半自律型ドローン間でのネゴシエーション)に基づいて選択される。アセットは、アセットが備える1または複数の機能の決定、および/または、所有権の利用可能性(例えば、リースまたは所有権が作業の期間中に利用可能である)、に少なくとも部分的に基づいて、作業のための休眠リーダーとして選択されてよい。例えば、アセットは、休眠リーダーが1または複数の所定の機能(例えば、プランニングサービスモジュール)などを有するとの判定に少なくとも部分的に基づいて、休眠リーダーとして選択されてよい。別の例として、アセットは、アセットがリーダーアセットの機能のセットと一致する特定の機能のセットを有する(例えば、休眠リーダーが、リーダーアセットの機能すべてを有する、休眠リーダーが、リーダーアセットのプランニングまたは作業管理機能を有する、など)との判定に少なくとも部分的に基づいて、休眠リーダーとして選択されてもよい。別の例として、アセットは、アセットがアセット群の中のその他のアセットの中で休眠リーダーとしてベストフィットであるとの判定に少なくとも部分的に基づいて、休眠リーダーとして選択されてもよい。
【0100】
いくつかの実施形態において、アセット群の中の複数のアセット(例えば、アセットの各々、アセット群の中のドローンの各々、など)が、アセット群の示唆を受信してよい。アセット群の示唆は、アセット群の中のアセットを識別する情報を含んでよい。示唆は、さらに、アセット群の中のアセットの様々な機能の示唆を含んでよい。いくつかの実施例において、アセット群の中の各アセット(例えば、作業を実行するチームの各メンバ)は、アセット群内のすべての他のアセットの知識を有してよい。フォロワーアセットは、アセット群のためのリーダーアセットからアセット群の示唆を受信し、または、フォロワーアセットは、サーバ(例えば、作業制御サービスを提供するサーバ)からアセット群の示唆を受信してもよい。アセットの所定のリーダーランキング、アセット群の少なくとも一部の間でのネゴシエーション、などに基づいて、1つのアセットが、アセット群のためのリーダーアセット(例えば、リーダードローン)として決定されてよい。いくつかの実施例において、所定のリーダーランキングは、作業の構成中などに、ユーザによって入力される。他の実施例において、リーダーランキングは、アセット群の少なくとも一部などによって、ネゴシエートされる(または、所定のリーダーランキングが更新される)。
【0101】
様々な実施形態によると、作業に関する情報の受信を受信したことに応じて、リーダーアセット(例えば、リーダードローン)は、作業に関連付けられているタスク(または作業のタスクの要素)を実行するための計画を自律的に決定する。リーダーアセットは、タスクまたはタスクの要素を実行するための計画の少なくとも一部を少なくとも1つのフォロワーアセット(タスクまたはタスクの要素を実行するよう決定されたフォロワーアセットなど)へ通信してよい。リーダーアセットは、タスクごと、要素ごと、または、フォロワーアセットごと(例えば、フォロワードローンごと)に、タスクまたはタスクの要素を実行するための計画を決定してよい。いくつかの実施形態において、リーダーアセットは、フォロワードローンが、対応するタスクまたはタスクの要素を実行することに関連して利用するフォロワードローンのための個別の計画を決定する。リーダーアセットは、アセット群の中の各フォロワードローン、現在割り当てられているタスクまたはタスクの要素を有する各フォロワードローン、などに対して個別化された計画を決定してよい。
【0102】
いくつかの実施形態において、デバイス300は、タスクまたはタスクの要素を実行するための計画を決定することに関連して、プランナサービスモジュール320を用いる。デバイス300がリーダードローンである場合、プランナサービスモジュール320は、アセット群が作業(例えば、作業に関連付けられている1または複数のタスクまたはタスクの要素)を実行するための計画を決定してよい。例えば、プランナサービスモジュール320は、1または複数のフォロワードローンが、タスクまたはタスクの要素を実行することに関連して実施する計画を決定してよい。計画は、作業の1または複数のパラメータと、アセット群とに基づいて決定されてよい。いくつかの実施形態において、計画は、対応するタスクまたはタスクの要素に関連付けられている機能と、フォロワードローンの機能とに少なくとも部分的に基づいて決定されてよい。例えば、プランナサービスは、対応するタスクまたはタスクの要素に関連付けられている機能と一致する機能を有する1または複数のフォロワードローンを決定し、タスクまたは要素の少なくとも一部を実行するよう割り当てられるかかるフォロワードローンの少なくとも1つを決定してよい。いくつかの実施形態において、デバイス300によって決定される計画は、(例えば、作業を実行する命令と共に)サーバから受信された事前計画(もしあれば)よりも低レベルの計画である。例えば、デバイス300は、対応する事前計画において提供されるよりも具体的なタスクまたは要素の実施を決定してよい。一例として、道路検索(例えば、特定のセットの道路を検索するための作業)文脈において、高レベル作業は、或るセットの道路と、1セットの優先ターゲット位置(或る時点にターゲットが位置すると考えられていた場所)とを含むポリゴンを検索してよい。リーダードローンは、ポリゴンに含まれる道路のセットを評価し、道路にわたって優先ターゲットの確率を拡散し、次いで、(例えば、それらの道路の検索を実行するために)アセット(例えば、フォロワードローン)を最も優先度が高く最も近い道路に割り当ててよい。フォロワードローンに提供される低レベル計画は、フォロワードローンがスキャンする際に沿う道路と、これらの道路をスキャンする順序とを含む。
【0103】
いくつかの実施形態において、デバイス300は、受信された計画を実行するための方法を決定することに関連して、プランナサービスモジュール320を用いる。デバイス300がフォロワードローンである場合、タスクまたはタスクの要素を実行するための計画を受信したことに応じて、デバイス300は、プランナサービスモジュール320を用いて、計画の実施を計画してよい。例えば、プランナサービスモジュール320は、リーダードローンから受信された計画を実施するために、さらにいっそう低レベルの計画を決定してよい。プランナサービスモジュール320は、割り当てられたタスクまたはタスクの要素を実行するようデバイス300を制御するための特定の方法を決定してよい。一例として、デバイス300が、定義されたエリアの監視を実行するための計画を受信した場合、デバイス300は、エリアに関する情報(様々な障害物または物体の位置など)を取得し、障害物または物体を避けつつエリア内でデバイス300を移動させるための経路を決定してよい。別の例として、リーダードローンから受信された計画が、デバイス300が移動する際に沿う定義された経路を含む場合でも、デバイス300は、計画の実施中に衝突回避を実行するために、エリアの動的監視を実行してよい。いくつかの実施形態において、フォロワードローンは、フォロワードローンによって取られる異なるステップを効果的に識別するリーダードローンからの詳細な計画を受信する。フォロワードローンは、アセット故障を防止するため、または、計画を実施するためのコース上にフォロワードローンを維持するために、計画の動的監視または更新を行いつつ、リーダードローンによって定義されたステップを実施してよい。
【0104】
様々な実施形態によると、デバイス300は、作業に関連しもしくはアセット群の少なくとも1つのアセットが1または複数のタスクを実行する地理的位置の離散的表現を決定することに関連して、プランナサービスモジュール320を用いる。一例として、離散的表現は、地理的位置における体積に各々対応する複数の離散的要素を含む。別の例として、プランナサービスモジュール320は、デバイス300のための計画もしくは1または複数のタスクを実行するアセット群の中のアセットのための計画を決定することに関連して、離散的表現を決定する。
【0105】
いくつかの実施形態において、離散的表現が、(例えば、地理的位置の離散的表現を決定したことに応じて)決定された後、デバイス300は、プランナサービスモジュール320を用いて、注釈付き表現を作成するなどのために、離散的表現に注釈を付ける。一例として、プランナサービスモジュール320は、1または複数のタスクならびに/もしくは地理的位置に関する受信済みの情報に少なくとも部分的に基づいて、離散的表現に注釈を付ける。プランナサービスモジュール320は、1または複数のタスクならびに/もしくは地理的位置に関する現在の情報に少なくとも部分的に基づいて、離散的表現に注釈を付ける。現在の情報は、注釈付き表現が作成された時点の、デバイス300が格納している情報またはデバイス300がアクセスできる情報に対応する。いくつかの実施形態において、システムは、1または複数のタスクならびに/もしくは地理的位置に関する受信済みの情報に少なくとも部分的に基づいて、注釈付き表現を更新する。例えば、システムは、1または複数のタスクならびに/もしくは地理的位置に関する更新済みまたは新しい情報が受信された時などに、定期的に注釈付き表現を繰り返し更新してよい。注釈付き表現は、1または複数のタスクが完了するまで(例えば、作業の完了、中止、一時停止などの決定まで)更新されてよい。いくつかの実施形態において、地理的位置の離散的表現に注釈を付けることは、メタデータを離散的表現の1または複数の離散的要素とそれぞれ関連づけることを含む。メタデータは、1または複数のタスク、地理的位置、などに関連付けられている値または示唆を含んでよい。
【0106】
離散的表現に注釈を付ける一例は、キープインエリア(例えば、デバイス300またはアセット群の中のアセットが留められるエリア)またはキープアウトエリア(例えば、デバイス300またはアセット群の中のアセットが排除され/侵入を防止されるエリア)を設定するために、複数の離散的要素の少なくとも一部に関連付けられているメタデータを設定することを含む。例えば、離散的要素の一部の中の各離散的要素は、キープインインジケータおよび/またはキープアウトインジケータに対応するメタデータフィールドを有する。一例として、キープインエリアおよび/またはキープアウトエリアは、作業の構成に関連して構成される(例えば、ユーザが、キープインエリアおよび/またはキープアウトエリアを入力し、特定の所定のキープインエリアおよびキープアウトエリアが、飛行制限空域などに基づいて設定され、サードパーティサービスが、キープインエリアおよび/またはキープアウトエリアを設定する入力を提供する、など)。
【0107】
離散的表現に注釈を付ける別の例は、作業の1または複数のターゲットの位置を設定するために、複数の離散的要素の少なくとも一部に関連付けられているメタデータを設定することを含む。特定のターゲットの監視を実行するための作業の場合、作業の構成は、ターゲットの現在位置(予測された位置、最新の既知の位置、など)を取得することを含む。一例として、ユーザが、作業を構成することに関連して、特定のターゲットの現在位置を設定する。プランナサービスモジュール320は、特定のターゲットの現在位置に対応する特定の離散的要素を決定し、ターゲットが離散的要素に/その中に位置することを示すために特定の離散的要素に関連付けられているメタデータフィールドを設定する。別の例として、特定のターゲット(建物または道路など)の監視を実行するための作業の場合、プランナサービスモジュール320は、特定のターゲット(建物または道路など)に対応する(または含む)離散的要素を決定し、特定のターゲットが離散的要素に含まれることを示すために離散的要素に対応するメタデータフィールドを設定する。
【0108】
離散的表現に注釈を付ける別の例は、アセットの間、アセットとリーダードローンとの間、リーダードローンと地上制御ステーションとの間、などの通信見通し線を定義するために、複数の離散的要素の少なくとも一部に関連付けられているメタデータを設定することを含む。一例として、通信見通し線を定義するためにメタデータを設定することは、アセットが特定の離散的要素に対応する地理的位置に位置する場合に通信見通し線が取得可能であるか否かを特定の離散的要素について示すことを含む。
【0109】
離散的表現に注釈を付ける別の例は、離散的要素が占有されているか占有されていないかを示すために、複数の離散的要素の少なくとも一部に関連付けられているメタデータを設定することを含む。一例として、離散的要素は、アセット(例えば、アセット群のアセット、アセット群の中にない別の味方のアセット、など)が離散的要素に含まれている場合に、占有されていると見なされる。別の例として、離散的要素は、別のアセットまたは物体(建物、樹木、山など)との衝突のリスク(例えば、閾値リスクを超える衝突のリスク)なくアセットを維持するには離散的要素内の空間が不十分であるなどの理由で、アセットが離散的要素へ移動できない場合、占有されていると見なされる。いくつかの実施形態において、プランナサービスモジュール320は、飛行計画を登録または格納することに関連して、離散的要素が占有されているか占有されていないかを示すために、離散的要素に関連付けられているメタデータを設定する。例えば、デバイス300は、アセット群の中のアセットのための飛行計画を決定し、または、アセット群の中のアセットから飛行計画に関する情報を受信し、プランナサービスモジュール320は、飛行計画の影響を受ける離散的要素(例えば、飛行計画と交わる離散的要素のセット)を決定し、かかる離散的要素が占有されていることを示すためにかかる離散的要素のためのメタデータを設定する。飛行計画に対応する離散的要素を占有されているとして設定することは、飛行計画と交わる別の飛行計画が作成または登録されないことを保証しうる。例えば、注釈付き表現またはモデル(または注釈付き表現が作成されうる元の情報)が発行される先のデバイス300および/またはその他のアセットは、新しい飛行計画を決定することに関連して注釈付き表現を利用し、注釈付き表現は、(例えば、少なくとも飛行計画に対応する予測期間中に)既存の飛行計画のために占有されているものとして設定された離散的要素を含む。いくつかの実施形態において、プランナサービスモジュール320は、さらに、飛行計画に対応する離散的要素のセットに隣接する隣接離散的要素の閾値数を設定する。隣接離散的要素は、既存の飛行計画および任意の後に作成される飛行計画などの間にさらなる空間距離を提供するためのバッファとして機能しうる。隣接離散的要素の閾値は、構成可能であってよい。一例として、飛行計画に対応する任意の特定の離散的要素に対して、プランナサービスモジュール320は、特定の離散的要素のすべての方向におけるN個の離散的要素を占有として設定する(ここで、Nは正の整数)。
【0110】
いくつかの実施形態において、デバイス300は、プランナサービスモジュール320を用いて、1または複数のタスクならびに/もしくは地理的位置に関する受信済みの情報に少なくとも部分的に基づいて、注釈付き表現を更新する。例えば、プランナサービスモジュール320は、1または複数のタスクならびに/もしくは地理的位置に関する更新済みまたは新しい情報が受信された後などに、例えば定期的に(例えば、デフォルトの間隔、構成可能な間隔、などで)、注釈付き表現を繰り返し更新する。一例として、プランナサービスモジュール320は、1または複数のタスクが完了するまで(例えば、作業の完了、中止、一時停止などの決定まで)、注釈付き表現を更新する。いくつかの実施形態において、地理的位置の離散的表現に注釈を付けることは、メタデータを離散的表現の1または複数の離散的要素とそれぞれ関連づけることを含む。メタデータは、1または複数のタスク、地理的位置、などに関連付けられている値または示唆を含んでよい。注釈付き表現の反復的または連続的な更新は、地理的位置または作業のモデルを改良する。例えば、特定の位置に配備されたアセット(例えば、フォロワードローン)などを介して、さらなる情報が地理的位置に関して取得されるので、モデルに含まれる或る量またはタイプの情報の解像度が改善される。
【0111】
様々な実施形態によると、プランナサービスモジュール320は、1または複数のタスクを実行するための計画を決定することに関連して、注釈付き表現を用いる。例えば、プランナサービスモジュール320は、アセット群の中の1または複数のアセットの目的地を決定し、1または複数のアセットのための経路を決定し、特定のアセットによって実行される要素を決定する、などのために、離散的表現における離散的要素に関連付けられているメタデータを利用する。いくつかの実施形態において、地理的位置/作業のモデルの解像度は、フィードバック情報(例えば、タスクまたはタスクの要素に関する更新済み情報、もしくは、アセットの地理的位置の一部に関する情報)をアセット(フォロワードローンなど)からの受信することなどによって改善する。地理的位置/作業のモデルの解像度が改善すると、1または複数のタスクを実行するための計画は更新(例えば、改良)される。
【0112】
様々な実施形態によると、デバイス300は、作業のタスクまたは要素の割り当てることに関連して、ならびに/もしくは、特定のフォロワーアセットがタスクまたは要素を実行するための計画を決定するために、アセットに対する機能のマッピングを用いる。デバイス300がリーダードローンである場合、デバイス300は、アセットに対する機能のマッピング330をデバイス300にローカルに格納し、タスクまたは要素を割り当てるため、もしくは、計画を決定するために、アセットに対する機能のマッピングにクエリしてよい。(例えば、作業を実行するための命令を受信したことに応じた)作業の開始時に、リーダードローンは、アセット群内の様々なアセットについての現在の機能のセットを受信できる。例えば、リーダードローンは、アセット群に、現在の機能をリーダードローンへ提供させることができる(例えば、対応する機能をリーダードローンに登録するようにフォロワードローンへ要求を送信できる)。別の例として、リーダードローンは、アセット群内の様々なアセットの機能のセットをサーバから受信してよい。リーダードローンは、作業の実行中にアセットに対する機能のマッピング330を更新してよい。例えば、リーダードローンは、それぞれのフォロワードローンのその時点の機能のセットについての更新情報を提供するよう、フォロワードローンにピング/要求してよく、リーダードローンは、それに従ってマッピングを更新してよい。別の例として、リーダードローンは、作業の実行(例えば、フォロワードローンによる計画の実施)中にフォロワードローンによってリーダードローンへ通信されたフィードバック情報に基づいて、特定のフォロワードローンの機能への更新を決定してよい。デバイス300は、フォロワードローンからの特定のセンサまたはカメラが適切に機能しておらずまたは故障したことを、フィードバック情報から決定しうる(例えば、フィードバック情報が、かかるセンサ/カメラの正常動作に関連付けられている明瞭な信号を持たない場合がある)。
【0113】
様々な実施形態によると、デバイス300は、計画の実施に関連してアセットに対する機能のマッピングを利用し、および/または、アセットの機能の現在の状態を維持するためにマッピングを利用してよい。デバイス300がフォロワードローンである場合、デバイス300は、フォロワードローンの機能の現在のセット、または、フォロワードローンに関連付けられている機能のセットの中の様々な機能の状態(例えば、特定の機能が、完全に動作可能、部分的に動作可能、または、正常動作不可能などであることの示唆)を、対応するリーダードローンへ提供してよい。デバイス300は、かかる情報を、所定の間隔で、リーダードローンからの要求に応じて、または、計画の実施中にリーダードローンへ通信されるフィードバック情報と共に、リーダードローンへ提供してよい。
【0114】
様々な実施形態によると、作業を実行するために割り当てられたアセット群は、作業の実行中に動的に更新されてよい。例えば、アセット群内のアセットは、(i)アセット群の中のアセットを別の作業へ再割り当てするユーザ要求、(ii)アセット群内のアセットの所有権の喪失、(iii)アセット群内のアセットの所有権の喪失(例えば、作業を完了するために必要な機能が作業の実行中に失われた場合、かかる機能を備えた新しい/追加のアセットが、アセット群に割り当てられてよい)、(iv)作業が完了されると予測される速度を変更するユーザ入力(例えば、さらなるアセットが完了を早めるために追加され、または、ユーザが完了を遅くすると決定した場合にアセット群からアセットが除去される)、(v)複数の作業の実行に関連付けられているコスト関数により、複数の作業のより最適な完了が、追加のアセットの利用またはアセット群からのアセットの再割り当てを含むことが示される、(vi)アセット群の中のアセットが故障したとの判定、(vii)作業内で定義された条件が満たされたこと(例えば、監視作業下において、条件は、別のまたは異なるアセットが迎撃するよう割り当てられているターゲットの検出を含みうる、など)、に応じて修正/更新されてよい。アセット群は、様々なその他の状況に応じて動的に更新されてよい。アセット群は、サーバ、リーダードローン、または、それら両方によって、動的に更新されてよい。
【0115】
いくつかの実施形態において、動的グループ化モジュール340は、アセット群を動的に更新することに関連して用いられてよい。デバイス300は、動的グループ化モジュール340を用いて、別のアセットがアセット群に追加されるか否か、および/または、アセットがアセット群から解除されるか否かを決定してよい。動的グループ化モジュール340がアセット群を更新すると決定したことに応じて、動的グループ化モジュールは、かかる示唆を、様々なその他のモジュールへ(例えば、更新されたアセット群を用いたタスクまたは要素の実施に向けて新しい計画を更新または作成するためにプランナサービスモジュール320へ、もしくは、更新されたアセット群に対して機能のマッピングを更新するためにアセットに対する機能のマッピング330へ、もしくは、サーバに更新を通知するためまたはかかる更新をサーバへ要求するために通信モジュール310へ、もしくは、アセット群へ追加またはアセット群から解除されるアセットの所有権を要求/更新するために所有権モジュール350へ)提供してよい。
【0116】
様々な実施形態によると、リーダードローンは、アセット群内のアセットの所有権を管理してよい。リーダードローンが、作業を実行するアセット群の中にあるとの示唆を受信したことに応じて、リーダードローンは、アセット群内のアセットに対応する所有の許可および/または所有権の状態(例えば、該当する場合、作業が実行されている組織への対応するアセットの所有権の移転)を取得してよい。所有権の移転は、(i)特定のタスクまたは要素の実行の間など、作業の一部、(ii)作業の持続期間、(iii)無期限(例えば、譲受した組織が所有権を手放すまでの所有権の永続的な移転)、の間のアセットの所有権の移転に対応しうる。所有の許可は、(例えば、要求時に譲受側の組織/リーダードローンへ所有権が移転されることを許可する)自動的な引き継ぎ、アセット引き継ぎの承認/拒否のネゴシエーション(例えば、譲渡側の組織に生じるニーズを保留する間の条件付き移転、所有権が移転される規定の期間/リース期間、所有権が移転される規定のタスク/要素、など)を含みうる。所有権の状態は、アセットがリーダードローン(またはリーダードローンが作業を実行している組織)への移転に利用可能であるか、アセットが移転に利用不可能であるか、アセットが移転されうるまたは移転されえない一連の条件、を示しうる。いくつかの実施形態において、リーダードローンは、所有権サービス(例えば、様々な組織がアセットを登録/所有権を移転できるサードパーティサービスまたは集中型サービス)へのクエリ、作業を管理するサーバ(例えば、作業を構成したサーバ)にローカルまたはリモートで格納された所有権に対するアセットのマッピングへのクエリ、ならびに/もしくは、アセット群内の様々なアセットへのクエリ(例えば、各アセットは、それに対応する所有の許可および/または所有権の状態ならびに/もしくはリーダードローンが所有権移転を要求できるプロトコルを格納しうる)、に基づいて所有の許可および/または所有権の状態を取得してよい。リーダードローンは、所有権モジュール350を用いて、アセット群内のアセットの所有権を管理/更新し、ならびに/もしくは、アセット群への/からのアセットの移転をネゴシエートまたは要求してよい。例えば、アセットがアセット群に追加される旨もしくはアセット内のアセットの所有権が要求されておりまたは更新される旨の示唆に応じて、所有権モジュール350は、アセットの所有権の移転について要求/アレンジを行うよう求められうる。
【0117】
作業を実行する途中で、リーダードローンは、作業(または作業のタスク/要素)が、アセット群の1または複数の部分によってより効果的または効率的に実行されうると判定する場合があり、リーダードローンは、アセット群を分割してもよい。リーダードローンは、アセット群を分割する方法を決定してよい。例えば、様々なパーティションが、アセット群内のアセットの様々なパーティションおよび/または機能によって実行されるタスク/要素の機能に基づいて決定されてよい。いくつかの実施形態において、パーティションには、対応するリーダーアセットが割り当てられる。例えば、各パーティションは、対応するリーダードローンを有する。したがって、フォロワードローンが、特定のパーティションのリーダードローンの立場に昇格されてよい。アセット群のリーダードローンは、主リーダーであってよく、様々なパーティションリーダーが、フィードバック情報(パーティションの割り当てられたタスク/要素の状態など)を報告してよい。主リーダーは、次に、パーティションリーダーおよび/または主リーダーに直接報告を行う任意のアセット(例えば、主リーダーと同じパーティション内のアセット)から受信されたフィードバック情報を集計して、フィードバック情報をサーバに提供し、および/または、パーティションに割り当てられたタスクまたは要素への修正などパーティションリーダーへの命令を提供してよい。アセット群を分割したことに応じて、主リーダーは、主リーダーがパーティションに割り当てたタスクまたは要素を実行する命令をパーティション(例えば、パーティションリーダー)へ提供してよい。パーティションがタスクまたは要素を実行する示唆を受信したことに応じて、パーティションリーダーは、対応する分割アセット群のための計画を決定してよい。一例として、パーティションリーダーは、役割が(例えば、分割の前の)アセット群に対する主リーダーによって果たされるものと同様になるように、パーティションに対する役割を果たしてよい。同様に、パーティションは、(i)パーティションリーダーから計画を受信し、(ii)パーティションリーダーから受信された計画を実施し、および/または、(iii)フィードバック情報をパーティションリーダーへ通信する1または複数のフォロワーアセットを有してよい。様々な実施形態によると、パーティションがパーティションに割り当てられたタスク/要素を完了したとの判定に応じて、分割されたアセットは、(i)アセット群に(例えば、主リーダーに対応するパーティションと)再統合され、(ii)他のパーティションに割り当てられたタスク/要素の完了をアシストするために、かかる他のパーティションに再割り当てされ、または、(iii)アセット群から解放(例えば、別のリーダーまたは組織のための他の作業を実行するために解放)されてよい。いくつかの実施形態において、パーティションが作成された場合、パーティションが動作する一連の制約が決定されてよい。主リーダードローンは、対応するパーティションリーダーへ一連の制約を提供してよい。
【0118】
様々な実施形態によると、デバイス300は、アセット群を分割するか否かと、アセット群が分割される方法とを決定することに関連して、分割モジュール360を用いる。分割モジュール360は、様々なパーティションに含められるアセットを決定してよい。パーティションがパーティションに割り当てられたタスク/要素を完了させたとの判定に応じて、パーティション内のアセットが、別のパーティションに割り当てられ、または、アセット群に再統合される場合に、分割モジュール360は、かかるアセットが含められるパーティションを決定してよい。いくつかの実施形態において、パーティションは、パーティションに割り当てられたタスク/作業の完了後、別のタスク/作業を実行するために再配備される(例えば、主リーダー、または、主リーダー上のプランナサービスモジュールが、別のタスク/作業を割り当てるよう決定する)。
【0119】
デバイス300は、作業の実行に関するフィードバック情報を送信/受信してよい。デバイス300がリーダードローンである場合、デバイス300は、フォロワードローンのセンサ/カメラによって取得された情報、フォロワードローンに割り当てられたタスク/要素の状態、フォロワードローンに割り当てられたタスク/要素の状態、ドローンの状態、ドローンの機能の状態または機能への更新など、フィードバック情報を1または複数のフォロワードローンから受信してよい。追加的または代替的に、デバイス300は、サーバ(作業を管理している(または作業を構成した)サーバなど)へフィードバック情報を送信してよい。例えば、リーダードローンは、作業の状態、アセット群の中の1または複数のセンサによって取得された情報のライブフィード、作業に関する将来命令の要求などを送信してよい。デバイス300がフォロワードローンである場合、デバイス300は、フォロワードローンのセンサ/カメラによって取得された情報、フォロワードローンに割り当てられたタスク/要素の状態、ドローンの状態、ドローンの機能の状態または機能への更新など、フィードバック情報をリーダードローンへ送信してよい。デバイス300は、フィードバック情報モジュール370を用いて、フィードバック情報を通信してよい。フィードバック情報モジュール370は、フィードバック情報を受信し、フィードバック情報に含まれる様々な情報を決定し、対応するモジュールへその情報を転送してよい。一例として、フォロワーデバイス上のセンサが故障したとの示唆をフィードバック情報が含む場合、フィードバック情報モジュール370は、かかる情報がアセットの機能に関することを決定し、アセット群の中のアセットに対する機能のマッピングが更新されるようにアセットに対する機能のマッピング330へかかる情報を提供してよい。別の例として、フォロワードローンが、センサ情報(例えば、画像、ライブフィード、気候条件、など)をリーダードローンへ通信した場合、フィードバック情報モジュール370は、フィードバック情報の中のかかるセンサ情報を決定し、リーダードローンが、作業の状態を決定しおよび/またはフォロワードローン(またはその他のフォロワードローン)のための計画を更新するか否かを決定することに関連してかかる情報を利用できるように、かかる情報をプランナサービスモジュールへ提供してよい。
【0120】
様々な実施形態によると、アセットのチームは、作業が構成された時刻から作業が完了する時刻までなど、作業の実行を通して動的に管理される。アセットは、作業の実行中に作業を実行するために割り当てられたアセット群へ追加/アセット群から除外されてよい。アセットを追加/除外する決定は、サーバで実行されてよい。いくつかの例において、アセットの追加/除外の決定は、アセット群のリーダードローンによって実行されてもよい。チームの動的管理は、アセット群の中の変化、作業の実行中に発生する予期せぬまたは条件付きのイベント、もしくは、作業の構成における変更(作業に対するユーザ主導型の変更など)に合わせて適応しうる拡張可能な枠組みを提供する。アセット群の中の変化の例は、アセット故障、アセットの機能の故障/喪失、アセット群の分割(例えば、アセット群が、複数のパーティションによって要求される特定の機能を1つしか持たないことにより、アセットに特定の機能を追加する要求が生じうる)を含みうる。作業の実行中に発生する予期せぬまたは条件付きのイベントの例は、エリアの監視中に現れる新たなターゲット、特定の機能を必要としまたはかかる機能が効果を高めうる気象または環境の変化(例えば、激しい風、雨などの異常気象に耐えるためのより大きいドローン)、夜間まで長引くことによってナイトビジョン機能を有する高価を高める作業、などを含みうる。作業の構成の変更の例は、作業をより早く完了させるユーザ要求(例えば、アセット群による実行のスピードアップ)、別の作業を優先させるユーザ要求またはその他の決定、作業を一時停止するユーザ要求、などを含みうる。いくつかの実施形態において、新たなアセットがアセット群へ追加されると決定したことに応じて、サーバは、新たなアセットがアセット群に含まれた旨の示唆をリーダーへ送信する。次に、リーダードローンは、それに対応して、作業を実行するための計画を決定し、および/または、新たなアセットの所有権を管理(例えば、新たなアセットの適切な所有権を取得)してよい。いくつかの実施形態において、フォロワードローンがアセット群から除外されたことに応じて、フォロワードローンがもはやアセット群の一部ではないことを示す指示がフォロワードローンへ送信される。サーバおよび/またはリーダードローンが、かかる指示をフォロワードローンへ送信してよい。
【0121】
様々な実施形態によると、フォロワードローンが作業の実行中に故障したとの判定に応じて、リーダードローンは、作業を実行するための計画を更新してよい。例えば、リーダードローンは、故障したフォロワードローンに割り当てられたタスク/要素の状態を決定し、タスク/要素の残りの部分(またはタスク/要素全体)をアセット群の中の別のアセットに再割り当てしてよい。リーダードローンは、フォロワードローンの故障に応じて、アセット群の機能を更新してよく、リーダードローンは、計画の要素を他のフォロワードローンへ再割り当て/再配分するために、更新された機能を利用してよい。いくつかの実施形態において、フォロワードローンが故障したとの判定に応じて、リーダードローンは、さらなるアセットをアセット群に追加し、または、さらなるアセットを追加する要求を(例えば、サーバへ)送信してよい。例えば、リーダードローンは、故障したフォロワードローンの1または複数の機能を識別し、それらの機能(またはアセット群に冗長性がなくまたは冗長性が不十分である機能)を補おうとしてよい。リーダードローンは、リーダードローンが所定の期間内におよび/または推定時刻までに(例えば、推定時刻は、フォロワードローンが或る期間にわたって通信していないと予測される場合など、フォロワードローンに現在割り当てられている計画に基づいてよい)、フォロワードローンからフィードバック情報を受信しなかったとの判定に応じて、フォロワードローンが故障したと判定してよい。いくつかの実施例において、リーダードローンが所定の期間内にまたは推定時刻までにフォロワードローンからフィードバック情報を受信しなかった場合、リーダードローンは、フォロワードローンの健全性状態のためのピングをフォロワードローンへ送信してよく、フォロワードローンが(例えば、閾値期間内に)ピングへの応答をできなかったことに応じて、リーダードローンは、フォロワードローンが故障したと判定する。いくつかの実施例において、サーバは、少なくとも、所定の期間内におよび/または推定時刻までにサーバがフォロワーから情報もピングも全く受信しなかったとの判定に応じて、フォロワードローンが故障したと判定してよく、サーバは、フォロワードローンが故障したことをリーダードローンへ通知してよい。
【0122】
様々な実施形態によると、リーダードローンが作業の実行中に故障したとの判定に応じて、アセット群内の残りのアセットが、リーダーの立場に昇格され、かかるアセットは、作業の実行のための新たなリーダードローンになる。リーダードローンは、リーダードローンが故障しもしくはアセットの一部または全部との通信を失っている場合に、故障したと判定されてよい。アセット群の中の残りのアセットは、アセット群の中で新たなリーダーを決定するためにネゴシエートしてよい。新たなリーダーを決定するためのネゴシエーションは、アセット群の中のアセットのリーダーランキング(またはアセットの優先順位リスト)に少なくとも部分的に基づいてよい。リーダーランキングは、作業の構成中に決定されてアセット群の中のすべてのアセットへ提供された所定のランキング、または、最初のリーダーアセット以外の少なくとも1つのアセットへ提供された所定のランキングであってよく、残りのアセットの中で最もランキングの高いアセットが、新たなリーダードローンに昇格される。いくつかの実施例において、残りのアセットは、アセットの新たなリーダーランキングについてネゴシエートし、残りのアセットの中で最もランキングの高いアセットが、新たなリーダードローンに昇格される。いくつかの実施形態において、休眠ドローンがアセット群に含まれる(休眠ドローンが残りのアセットの中になる)場合、休眠リーダーが、自動的に新しいリーダードローンに昇格される。
【0123】
様々な実施形態によると、パーティションが、ネットワークまたは通信の不具合に基づいて形成されてよい。例えば、アセットの一部がリーダードローンとの通信を失った場合に、アセットの一部は、リーダードローンが故障したと(個別にまたは集合的に)判定してよい。リーダードローンが故障したとの判定に応じて、アセットの一部は、アセットのグループ(例えば、パーティション)を形成してよく、アセットの一部は、パーティションリーダーについてネゴシエートしてよい。パーティションリーダーが決定された場合、パーティションリーダーは、パーティションが作業(または、アセットの一部に割り当てられた集合的なタスク/要素)の実行を継続するための計画を決定してよい。パーティションリーダーは、サーバおよび/または同じ作業に関連付けられている別のパーティションとの通信を確立しようとしてよい。サーバとの通信を確立したことに応じて、パーティションリーダーは、作業(または、パーティションによって実行される作業の一部)の実行に関するフィードバック情報を提供してよい。別のパーティションのパーティションリーダーとの通信を確立したことに応じて、パーティションリーダーは、2つのパーティションのグループ化を要求し、または、別の方法で試みてよく、もしくは、パーティションリーダーは、作業に関するフィードバック情報を他のパーティションリーダーへ提供してよい。いくつかの実施形態において、異なるパーティションリーダーは、異なるパーティションが作業の異なる部分を実行するように、作業に関連付けられているタスク/要素の分担をネゴシエートしてよい。パーティションは、パーティションが動作する際の所定のまたはネゴシエートされた制約を有してよい。制約の例は、地理的制約、時間制限、特定の行動についての制限(例えば、ターゲットへの関与に対する制限)、などを含む。
【0124】
いくつかの実施形態において、パーティションリーダーが故障した場合、パーティション内の残りのアセットは、アセットのパーティションまたはグループ(例えば、所定のリーダーランキングにおいて最も高いランキングのリーダーに対応するリーダードローンを有するパーティション)にフェイルオーバーする。パーティション内の残りのアセットは、新たなパーティションリーダーを決定できない場合に応じて、所定のアセットのパーティションまたはグループにフェイルオーバーしてよい。
【0125】
様々な実施形態によると、各作業は、新たなリーダーを決定できない場合に、アセット群内のアセットによって実施されるデフォルト計画を有する。例えば、デフォルト計画は、(例えば、所定の期間内に)新たなリーダーが決定されることができないまたは決定されないとの判定に応じて、各アセットがそれぞれのホームに戻る計画であってよい。
【0126】
デバイス300は、アセットが故障したと判定することに関連して、そして、アセットが故障したと判定された場合に実施すべきフェイルオーバープロトコルを決定するために、アセット故障モジュール380を用いてよい。例えば、故障したアセットがリーダードローンであった場合、アセット故障モジュール380は、新たなリーダードローンを決定するために、残りのアセットとネゴシエートすることを決定してよい。別の例として、故障したアセットがフォロワードローンであった場合、アセット故障モジュール380は、故障したフォロワードローンに割り当てられた計画の一部を残りのアセットの間に再割り当てすることを決定してよい。
【0127】
様々な実施形態によると、タスクまたは要素を実行するための計画を決定することに加えて、リーダードローンは、計画をフォロワードローンへ通信するための方法を決定する。リーダードローンは、リーダードローンとフォロワードローンとの間の通信リンク、通信リンクの質、などに基づいて、計画を通信する方法を決定してよい。いくつかの実施形態において、リーダードローンは、将来の時点(例えば、タスク/要素の実行における特定の時点)のリーダードローンとフォロワードローンとの間の通信の推定品質に基づいて、計画を通信する方法を決定してよい。例えば、リーダードローンは、タスクを実行することに関連してフォロワードローンが山の向こうに移動すること、フォロワードローンがリーダードローンとの通信を失いうること、または、通信リンクが比較的低品質のサービスを有する可能性があることを判定しうる。かかる判定に応じて、リーダードローンは、フォロワードローンがタスク/作業を実行するための計画のより広い範囲を提供してよい。別の例として、現在の通信リンクが比較的弱い(例えば、低速/低帯域幅である)とリーダードローンが判定した場合、かかる判定に応じて、リーダードローンは、作業のための計画の比較的小さい部分のみをフォロワードローンへ送信し、通信リンクが良好になるまたは良好になると予測される将来の時点に計画のより大きい部分を送信すると決定してよい。様々な実施形態によると、リーダードローンは、ネットワーク状態および/またはネットワーク制約に基づいて、計画が分割されてフォロワードローンへ通信される際の粒度を決定してよい。かかる決定に用いられるネットワーク状態および/またはネットワーク制約は、現在の状態/制約、もしくは、特定の将来の時点に予測される状態/制約であってよい。ネットワーク制約の例は、ネットワークトポロジ(例えば、リーダードローンまたはフォロワードローンによってネットワークにアクセス可能な地域)、通信帯域幅、リンク品質などの内の1または複数に関する1または複数の値であってよい。計画が分割され/フォロワードローンへ通信される粒度、および/または、計画がフォロワードローンへ通信される方法の決定は、リーダードローンによって実行されるプランニング処理の一部であってよい。例えば、リーダードローンは、複数の段階で作業を計画し、現在の計画の部分または作業の複数段階での計画の一部を順次送信してよい。同様に、いくつかの実施形態において、作業を管理/構成するサーバは、ネットワーク状態および/またはネットワークの制約、および/または、リーダードローンのプランニングサービス機能に少なくとも部分的に基づいて、作業に関する情報(例えば、作業パラメータ)がリーダードローンへ通信される方法/程度を決定してよい。
【0128】
図4Aは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図4Aに示す例において、システム400は、一群のアセット(例えば、アセット405、410、420、430、440、および/または、450)と、制御センター460(作業制御サービスを提供するサーバなど)と、を含んでよい。システム400は、
図1のシステム100によって実装されてよい。制御センター460は、
図2のデバイス200によって実装されてよい。アセット群の中の1または複数のアセットは、
図3のデバイス300によって実装されてよい。例えば、アセット405、アセット410、アセット420、および/または、アセット430は、
図3のデバイス300によって実装されてよい。いくつかの実施形態において、アセット405、アセット410、アセット420、および/または、アセット430は、半自律型ドローンである。アセット440は、制御センター460および/または別のアセット(アセット405など)と通信する人工衛星であってよい。アセット450は、タワー(半自律型タワーなど)であってよい。アセット450は、制御センター460および/または別のアセット(アセット405など)と通信してよい。
【0129】
図4Aに示す例において、アセット群は、作業を実行するよう命令されてよい。例えば、作業は、車両470の追跡、および/または、道路の監視(ならびに、特定の車両または道路に沿って移動する任意の車両の追跡)であってよい。制御センター460は、作業を構成し、一群のアセット(アセット405など)へ作業パラメータを提供してよい。アセット405は、リーダーアセットであるよう決定されてよく、その他のアセット(例えば、アセット410、アセット420、および/または、アセット430)は、フォロワーアセットであるよう決定されてよい。リーダーアセットが、作業パラメータおよび事前計画(もしあれば)を制御センター460から受信したことに応じて、リーダーアセットは、別のフォロワーアセットが作業のタスクまたは要素を実行するためお計画を決定してよい。引き続き上記の例において、リーダーアセットは、フォロワーアセット2(アセット410)が車両470を追跡するための計画、フォロワーアセット4(アセット430)が道路の第1部分の監視を実行するための計画、および、フォロワーアセット3(アセット420)が道路の第2部分の監視を実行するための計画を決定してよい。フォロワーアセットのための計画を決定したことに応じて、リーダーアセットは、それに対応してそれぞれのフォロワーアセットへ計画を送信してよい。フォロワーアセットは、リーダードローンから計画を受信したことに応じて計画を実施してよく、フォロワーアセットは、リーダードローンによって提供された計画における任意のギャップを埋めてよい。リーダーアセットは、アセット440(例えば、人工衛星)が道路の監視と、道路に沿って走る車両の追跡補助とを提供することを決定する。リーダーアセットは、アセット450が1または複数のセンサを用いてエリア/環境に関する情報をキャプチャするための計画を決定してよい。キャプチャされた情報は、フィードバック情報としてリーダーアセットに提供されてよく、その情報は、アセット群の中の様々なアセットのための計画を更新するためにリーダーアセットによって利用されてよい。
【0130】
図4Bは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図4Bに示すシステム400の例において、リーダーアセット(アセット405)は、故障したと判定される。リーダーアセットが故障したとの判定に応じて、アセット群の新たなリーダーの決定が、残りのアセットの間でなされる。例えば、アセット410、アセット420、および、アセット430が、新たなリーダーアセットをネゴシエートしてよい。
【0131】
様々な実施形態によると、新たなリーダーアセットを決定することは、リーダーランキングに基づいて新たなリーダーアセットを決定することを含む。例えば、リーダーランキング480が、残りのアセットの内の1または複数によって取得されてよい。いくつかの実施例において、各アセットは、所定のリーダーランキングを格納している。いくつかの実施例において、フォロワーアセットは、残りのアセットのそれぞれの機能などに基づいてリーダーのランキングをネゴシエートすることによって、リーダーランキングを取得する。
図4Bに示す例において、リーダーランキング480は、作業の構成と同時に制御センター460によって構成されるなど、予め規定される。リーダーランキング480のアセット1は最高のランキングのアセットであり、アセット4は次に高いランキングのアセットである。アセット1が故障したと判定されているので、アセット4は、残りのアセットの中の最高ランキングのアセットであると判定される。したがって、アセット4は、アセット群のための次のリーダーアセットになるよう決定される。いくつかの実施形態において、アセット4が新たなリーダーアセットとして決定されたことに応じて、アセット4は、作業の状態を判定し、作業の少なくとも残り部分の実行のための計画を決定する。アセット4は、フォロワーアセットが割り当てられた対応する計画を残りのフォロワーアセットへ送信してよい。
【0132】
図4Cは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図4Cに示すシステム400の例において、リーダーアセット(アセット420)は、故障したと判定される。リーダーアセットが故障したと判定したことに応じて、リーダーアセットは、作業の状態を判定し、および/または、残りのアセット(例えば、アセット410およびアセット430)のための更新版の計画を決定してよい。様々な実施形態によると、フォロワーアセットが故障したと判定したことに応じて、リーダーアセットは、残りのアセットの間で、故障したフォロワーアセットに割り当てられたタスク/要素(または残りのタスク/要素)を再割り当てしてよい。リーダーアセットは、タスク/要素の決定済みの再割り当てに少なくとも部分的に基づいて、残りのアセットのための計画を更新してよい。いくつかの実施形態において、リーダードローンおよび/またはアセット450は、1または複数のアセットをアセット群に追加することを決定してよい(例えば、アセット430の故障によって失われた機能を補うため、作業の実行を促進するため、など)。例えば、追加アセットのリスト490が決定されてよい。リーダードローンおよび/またはアセット450(例えば、コンピュータシステムを備えたタワー)は、追加アセットのリスト490内の追加アセットの内の1または複数を追加することなどによって、アセット群を動的に更新してよい。いくつかの実施形態において、追加アセットのリスト490は、追加アセットのリスト490上のアセットが、完了されるべき残りのタスクの機能と一致する少なくとも1つの機能を有するように、対応するアセットの機能に少なくとも部分的に基づいて決定されてよい。いくつかの実施形態において、追加アセットのリスト490は、追加アセットのリスト上のアセットの所有権の利用可能性に少なくとも部分的に基づいて決定されてよい(例えば、アセットは、作業のために現在利用可能であり、もしくは、アセットの所有権を引き継ぎまたはリース契約を結ぶ要求を送信した後に作業の実行に再割り当てされてよい)。
【0133】
いくつかの実施形態において、制御センター(例えば、
図4A、
図4B、または、
図4Cの制御センター460)は、半自律型ドローンを含むシステムを制御する複数の制御センターの1つである。様々な実施形態において、制御センターは、地上制御センター、空中制御センター、水上制御センター、または、任意のその他の適切な制御センターを含む。様々な実施形態において、単一の制御センターが制御を行い、各制御センターがシステムアセットの一部を制御し、制御を行う制御制御センターが制御の変更時に協調的に引き継がれるように複数の制御センターの間で交代され、または、制御センターへの任意のその他の適切な制御の割り当てがなされる。
【0134】
図5Aは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図5Aに示す例において、システム500は、一群のアセット(例えば、アセット505、510、515、520、525、530、535、540、および/または、545)と、制御センター550(作業制御サービスを提供するサーバなど)と、を含んでよい。システム500は、
図1のシステム100によって実装されてよい。制御センター550は、
図2のデバイス200によって実装されてよい。アセット群の中の1または複数のアセットは、
図3のデバイス300によって実装されてよい。例えば、アセット505、アセット510、アセット515、アセット520、アセット525、アセット530、および/または、アセット535は、
図3のデバイス300によって実装されてよい。いくつかの実施形態において、アセット505、アセット510、アセット515、アセット520、アセット525、アセット530、および/または、アセット535は、半自律型ドローンである。アセット540は、制御センター550および/または別のアセット(アセット505など)と通信する人工衛星であってよい。アセット545は、タワー(半自律型タワーなど)であってよい。アセット545は、制御センター550および/または別のアセット(アセット505など)と通信してよい。
【0135】
図5Aに示す例において、アセット群は、作業を実行するよう命令されてよい。例えば、作業は、車両555の追跡、および/または、道路の監視(ならびに、特定の車両または道路に沿って移動する任意の車両の追跡)であってよい。制御センター550は、作業を構成し、一群のアセット(アセット505など)へ作業パラメータを提供してよい。アセット505は、リーダーアセットであるよう決定されてよく、その他のアセット(例えば、アセット505、アセット510、アセット515、アセット520、アセット525、アセット530、および/または、アセット535)は、フォロワーアセットであるよう決定されてよい。リーダーアセットが、作業パラメータおよび事前計画(もしあれば)を制御センター550から受信したことに応じて、リーダーアセットは、別のフォロワーアセットが作業のタスクまたは要素を実行するためお計画を決定してよい。引き続き上記の例において、リーダーアセットは、フォロワーアセット525が車両555を追跡するための計画、フォロワーアセット510が道路の第1部分の監視を実行するための計画、および、フォロワーアセット515が道路の第2部分の監視を実行するための計画を決定してよい。フォロワーアセットのための計画を決定したことに応じて、リーダーアセットは、それに対応してそれぞれのフォロワーアセットへ計画を送信してよい。フォロワーアセットは、リーダードローンから計画を受信したことに応じて計画を実施してよく、フォロワーアセットは、リーダードローンによって提供された計画における任意のギャップを埋めてよい。リーダーアセットは、アセット540(例えば、人工衛星)が道路の監視と、道路に沿って走る車両の追跡補助とを提供することを決定する。リーダーアセットは、アセット545が1または複数のセンサを用いてエリア/環境に関する情報をキャプチャするための計画を決定してよい。キャプチャされた情報は、フィードバック情報としてリーダーアセットに提供されてよく、その情報は、アセット群の中の様々なアセットのための計画を更新するためにリーダーアセットによって利用されてよい。
【0136】
図5Bは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図5Bに示すシステム500の例において、さらなる車両560が、アセット群による監視対象となっている道路に現れて移動している。アセット群の中の1または複数のアセットが、車両560の画像をキャプチャしてよい。例えば、人工衛星は、道路を移動する車両560を識別してよい。別の例として、アセット510、アセット520、および/または、アセット515は、リーダーアセット(アセット505)へフィードバック情報を提供してよく、リーダーアセットは、車両560が作業パラメータによって設定された地理的エリア内にあり、および/または、道路を移動している車両を追跡する条件を満たしていることを判定するために、フィードバック情報を処理してよい。
【0137】
車両560を検出したことに応じて、リーダーアセットは、アセット群を分割することを決定してよい。例えば、リーダーアセットは、アセット群が2つのパーティションに分割された場合に、(例えば、車両555および車両560の追跡を含む)作業が、より効果的に実行される可能性が高いと判断しうる。アセット群を分割すると決定したことに応じて、リーダーアセットは、フォロワーアセットが属するパーティションの示唆をフォロワーアセットへ提供するなどのために、アセット群の中の対応するフォロワーアセットに指示してよい。アセット505、510、515、520、55、530、および、535は、2つのパーティション(第1パーティション570および第2パーティション580)に分割されてよい。いくつかの実施形態において、リーダーアセットは第1パーティション570内にあるので、リーダーアセットは、第1パーティション570のパーティションリーダーとして決定される。いくつかの実施形態において、第2パーティション580は、アセット群の中の元々フォロワーアセットであったアセットを含むので、第2パーティション580内のアセットの少なくとも1つが、第2パーティション580のパーティションリーダーに昇格される。第2パーティション580内のアセットは、第2パーティション580のリーダーシップを決定するためにネゴシエートしてよい。例えば、パーティションリーダーは、作業の構成と同時に決定されたリーダーシップランキングなど所定のリーダーシップランキングで決定されてよい。パーティションリーダーは、第2パーティション580内のアセットの中で、リーダーシップランキング上で最高の対応するランキングを有するアセットに決定されてよい。図の例では、アセット525が、パーティションリーダーに昇格されてよい。
【0138】
図の例において、車両560を追跡するタスクは、第1パーティションに割り当てられてよく、車両555を追跡するタスクは、第2パーティション580に割り当てられてよく、道路の監視を提供するタスクは、アセット540に割り当てられてよく、環境を監視するタスクは、アセット545(例えば、タワー)に提供されてよい。いくつかの実施形態において、第1パーティション570内のリーダーアセットは、アセット510、アセット515、および、アセット520が、車両560を追跡するタスクの対応する要素を実行するためのそれぞれの計画を決定してよい。対応する要素を実行するための計画を受信したことに応じて、アセット510、アセット515、および、アセット520は、計画を実施し、計画における任意のギャップを埋めてよい(例えば、丘陵、または樹木を避けるなど衝突回避を提供し、飛行の高度を決定し、画像をキャプチャする時を決定する、など)。アセット510、アセット515、および、アセット520は、フィードバック情報をリーダーアセットへ提供してよく、フィードバック情報は、車両560を追跡するタスクの要素の実行の状態、ならびに/もしくは、1または複数のセンサによってキャプチャされた情報(例えば、ライブビデオフィード、ナンバープレートの画像などの画像、など)に関係する。リーダーアセットは、車両560に関する情報など、フィードバック情報を制御センター550へ提供してよい。
【0139】
いくつかの実施形態において、第2パーティション580内のパーティションリーダーは、アセット530およびアセット535が、車両555を追跡するタスクの対応する要素を実行するためのそれぞれの計画を決定してよい。対応する要素を実行するための計画を受信したことに応じて、アセット530およびアセット535は、計画を実施し、計画における任意のギャップを埋めてよい(例えば、丘陵、または樹木を避けるなど衝突回避を提供し、飛行の高度を決定し、画像をキャプチャする時を決定する、など)。アセット530およびアセット535は、フィードバック情報をパーティションリーダーへ提供してよく、フィードバック情報は、車両555を追跡するタスクの要素の実行の状態、ならびに/もしくは、1または複数のセンサによってキャプチャされた情報(例えば、ライブビデオフィード、ナンバープレートの画像などの画像、など)に関係する。いくつかの実施形態において、パーティションリーダーは、フィードバック情報をリーダーアセット(アセット505)へ提供してよく、リーダーアセットは、次に、フィードバック情報(または、第1パーティション570からのフィードバック情報と共に集計または処理/解析されたかかるフィードバック情報を含む情報)を提供してよい。リーダーアセットは、次に、車両560に関する情報など、フィードバック情報を制御センター550へ提供してよい。いくつかの実施形態において、パーティションリーダーは、制御センター560へ直接的にフィードバック情報を提供してもよい(例えば、かかる情報をリーダーアセットへ提供することなしに制御センターへ情報を提供してもよい)。
【0140】
図5Cは、本願の様々な実施形態に従って、作業の少なくとも一部を実行するためのシステムを示す図である。
図5Cに示す例において、リーダーアセットは、フィードバック情報(アセット510、アセット515、および/または、アセット520からのフィードバック情報など)に少なくとも部分的に基づいて、車両555の追跡がもはや実行されないと判定しうる。いくつかの実施形態において、リーダーアセットは、車両555の状態が、監視対象の道路を移動する車両の追跡のための作業パラメータをもはや満たさないと決定しうる。例えば、フィードバック情報に基づいて、リーダーアセットは、作業パラメータおよび/または制約に少なくとも部分的に基づいて、車両555が監視または追跡対象の地理的エリアを出た(もはやエリア内に存在しない)と判定しうる。別の例として、リーダーアセットは、作業パラメータに従った制限エリアであるエリアに車両555が入ったこと、および、アセット群がかかるエリアに入らないことを決定してよい。
【0141】
いくつかの実施形態において、システム500は、アセット群にアセットを動的に追加することを決定してよい。例えば、リーダーアセットおよび/または制御センター550は、アセット585および/またはアセット590をアセット群に追加することを決定してよい。(例えば、制御センター550によって動作可能に提供されたユーザインターフェースへのユーザ入力などに基づいて)地理的エリア/道路のより良好な網羅が道路の監視に望ましいとの判定に応じて、アセットがアセット群に追加されてよい。アセット585および/またはアセット590をアセット群に追加するとの決定に応じて、リーダーアセットは、アセットに対する機能のマッピングを更新し、作業を実行するための計画を更新してよい。リーダーアセットは、アセット585の機能などに少なくとも部分的に基づいて、アセット585がタスクを実行するための計画を決定してよい。
【0142】
いくつかの実施形態において、制御センター(例えば、
図5A、
図5B、または、
図5Cの制御センター550)は、半自律型ドローンを含むシステムを制御する複数の制御センターの1つである。様々な実施形態において、制御センターは、地上制御センター、空中制御センター、水上制御センター、または、任意のその他の適切な制御センターを含む。様々な実施形態において、単一の制御センターが制御を行い、各制御センターがシステムアセットの一部を制御し、制御を行う制御制御センターが制御の変更時に協調的に引き継がれるように複数の制御センターの間で交代され、または、制御センターへの任意のその他の適切な制御の割り当てがなされる。
【0143】
図6は、本願の様々な実施形態に従って、作業を構成し、監視し、および/または、制御するためのユーザインターフェースを示す図である。
【0144】
様々な実施形態によると、サーバは、作業を構成することに関連して、1または複数のユーザインターフェースを構成してよい。例えば、サーバは、構成処理で作業を効果的かつ直感的に定義させるウィザードを作成するために、1セットのユーザインターフェースを生成および構成してよい。様々な実施形態において、ユーザインターフェースは、先行するユーザインターフェース(例えば、直前のユーザインターフェース)へのユーザ入力に基づいて構成される。
【0145】
図6に示すように、1セットのユーザインターフェース610、630、および、650のセットが、ユーザに作業のためのパラメータを系統的に定義させるために、ユーザに対して表示されてよい。
【0146】
インターフェース610において、ユーザインターフェースは、ユーザが、(i)作業の名称および説明を入力し、(ii)作業のタイプ(例えば、道路網のスキャン、経路に沿ったスキャン、ロイター飛行および追跡、ターゲットの発見、確定、ならびに、追跡)を選択し、(iii)作業の対象となるターゲット(例えば、監視または追跡のターゲット)のタイプを選択するための要素を備える。インターフェース610への入力に応じて、ユーザインターフェース630が構成されてよい。
【0147】
ユーザインターフェース630において、ユーザインターフェースは、ユーザが、アセットのタイプ、および/または、アセットが移動する方法(例えば、飛行、地上、海上)に関連付けられているパラメータを選択するための選択可能要素を備える。ユーザインターフェース630上の様々な選択可能要素は、インターフェース610への入力に応じて決定されてよい。
【0148】
ユーザインターフェース650において、ユーザインターフェースは、ユーザが、作業に関連付けられている1または複数のパラメータを選択するための選択可能要素を備える。例えば、ユーザは、作業が実行される地形または境界を定義してよい。別の例として、ユーザは、作業を実行しているアセットが侵入できない制限エリア、などを定義してよい。別の例として、ユーザは、作業が実行される日付および時刻、もしくは、作業が制限される日付または時刻を定義してよい。ユーザインターフェース650は、サーバに作業を生成させるための選択可能要素を備えてよい。例えば、サーバは、ユーザ定義された作業構成/定義に基づいて、作業を生成してよい。
【0149】
作業を生成したことに応じて、サーバは、ライブ作業スクリーンに関するユーザインターフェースを表示させてよい。ライブ作業スクリーンは、ユーザが、作業をアクティブ化、作業を非アクティブ化、または、作業を放棄することを選択するための選択可能要素を備えてよい。いくつかの実施形態において、ライブ作業スクリーンは、作業の実行の状態に関する現在状態情報を含む。例えば、ライブ作業スクリーンは、作業の完了した割合を示してよい。別の例として、ライブ作業スクリーンは、アセット群の中の少なくとも1つのアセットによってキャプチャされたビデオのライブストリームを含んでよい。いくつかの実施形態において、ライブ作業スクリーンは、ユーザが作業を修正するためにユーザインターフェース(またはユーザインターフェースのウィザード)を呼び出すことができる選択可能要素を備えてよい。例えば、ユーザは、サーバに、1または複数のアセットをアセット群に追加させてよい。別の例として、ユーザインターフェースは、ユーザが、修正案に従って作業を修正すると選択することを可能にするオプション(例えば、可能な修正などのサーバ生成されたオプション)を表示してよい。サーバは、特定のアセットの追加、特定の機能を備えたアセットの追加、もしくは、1または複数のアセットの追加による作業への改善をユーザインターフェースに表示させてよい。ユーザは、サーバによって提示された修正案に従って作業を修正する選択を入力してよい。いくつかの実施例において、サーバは、アセットがアセット群に追加された場合またはアセットがアセット群から除外された場合に、アセット群を用いて作業を実行することに関連付けられているコスト、および/または、コストの差、または、コストへの影響を、ユーザインターフェースに表示させてよい。
【0150】
図7Aは、本願の様々な実施形態に従って、作業を構成するための方法を示す図である。いくつかの実施形態において、
図7Aの処理700は、
図1のシステム100のサーバ105および/または
図2のデバイス200によって実行される。
【0151】
工程710で、実行される1または複数のタスクに関連付けられているデータが受信される。いくつかの実施形態において、サーバは、作業を構成することに関連して、1または複数のタスクに関連付けられているデータを受信する。1または複数のタスクに関連付けられているデータは、クライアント端末に提示されたユーザインターフェースに提供されたユーザインターフェースへの1または複数のユーザ入力に少なくとも部分的に基づいて受信されてよい。様々な実施形態によると、1または複数のタスクに関連付けられているデータは、1または複数の作業パラメータおよび/または作業制約を含む。実行される1または複数のタスクは、実行される作業に対応しうる。
【0152】
工程720で、アセット群が決定される。いくつかの実施形態において、サーバは、1または複数のタスク、もしくは、1または複数のタスクを含む作業、を集合的に実行するために、アセット群を決定する。アセット群は、1または複数のタスク/作業に関連付けられている1または複数の機能、ならびに/もしくは、アセットの機能に基づいて決定されてよい。例えば、サーバは、1または複数のタスク/作業に関連付けられている機能と一致する機能を有するアセット群を決定してよい。
【0153】
様々な実施形態によると、アセット群は、アセットの利用可能性および/またはアセットの所有権(または所有権の移転の利用可能性)に少なくとも部分的に基づいて決定されてよい。例えば、サーバは、アセットの上位集合(例えば、複数の組織にわたるすべてのアセット群)を決定し、アセットが利用可能であるか否かの示唆および/または作業の実行に用いるための所有権の移転への利用可能性の示唆を、アセットまたはサードパーティサービスにクエリしてよい。サードパーティサービスは、複数の組織にわたるアセットの所有権、および/または、ネゴシエートされた条件(例えば、固定期間リース、特定のタスクのためのリース、特定の作業のためのリース、永続的な移転、など)に従った所有権の移転またはライセンスを管理する所有権サービスであってよい。
【0154】
アセット群が1または複数のタスク(または対応する作業)を実行すると決定されたことに応じて、処理700は、命令がアセット群の中の少なくとも1つのドローンへ通信される工程730に進む。いくつかの実施形態において、サーバは、アセット群の中でリーダードローンを決定し、サーバは、リーダードローンへ命令を通信する。命令は、リーダードローンがアセット群の中にある旨の示唆を含んでよく、または、その示唆に関連して通信されてもよい。いくつかの実施形態において、リーダードローンへ通信された命令は、作業パラメータを含む。命令は、サーバまたはその他のサービスが作業の高レベル事前計画を生成した場合、事前計画も含んでよい。
【0155】
少なくとも1つのドローンへ命令を通信したことに応じて、処理700は、処理が完了したか否かに関して判定がなされる工程740に進む。一例として、処理は、ユーザ入力(作業をキャンセルまたは一時停止する入力など)に少なくとも部分的に基づいて、完了と判定されてよい。別の例として、処理は、ユーザが作業の実行の開始を選択したことに応じて、完了と判定されてよい。処理が完了したと見なされた場合、処理700は終了する。そうでなければ、処理700は、1または複数のタスクに関連付けられているさらなるデータが受信される工程710に戻る。いくつかの実施形態において、処理700は、作業をさらに改良/構成するためのユーザ入力に応じて、工程740で未完了と見なされてよい。一例として、作業を開始する前に、ユーザは、作業を編集する要求をユーザインターフェースに入力してよい。別の例として、アセット群による作業の実施中に、ユーザは、作業の完了を加速させるためにアセット群にアセットを動的に追加し、別の作業に対する作業の再優先順位付けに基づいてアセットを排除するなど、作業を修正する選択を入力してよい。
【0156】
アセット群が工程720で決定されない場合、処理700は、工程740に進んでよい。利用可能なアセットがない、1または複数のタスクまたは作業の機能に一致するアセットの所有権が利用可能ではない、作業の機能に集合的に一致する機能のアセット群が見つからない、などの場合には、アセット群が決定されえない。工程740で、アセット群が決定されえないことを示すプロンプトがユーザに提供されて、作業の構成を修正するようユーザに要求し、または、ユーザが作業のキャンセルを要求するか否かを要求してよい。
【0157】
図7Bは、本願の様々な実施形態に従って、作業を構成するための方法を示す図である。いくつかの実施形態において、
図7Bの処理720は、
図1のシステム100のサーバ105および/または
図2のデバイス200によって実行される。
図7Bの処理720は、
図7Aの工程720に対応しうる。
【0158】
工程721で、1または複数のタスクの1または複数の特徴が取得される。いくつかの実施形態において、サーバは、作業の定義(例えば、作業パラメータ)に基づいて、1または複数の特徴を取得してよい。
【0159】
工程722で、アセットの1または複数の機能が取得される。いくつかの実施形態において、サーバは、アセットに対する機能のマッピングに基づいて、アセットの1または複数の機能を取得してよい。アセットの機能のマッピングは、アセットの機能(またはそれらの現在の機能)の示唆についてアセットにクエリすることに基づいて、アセットがそれらの機能を登録/通知することに基づいて、などによって決定されてよい。
【0160】
工程723で、任意のアセットがタスクの特徴に一致するか否かに関して判定がなされる。いくつかの実施形態において、サーバは、タスクの特徴に対応する1または複数の機能を決定し、タスクの特徴に対応する機能に一致する機能を有するアセットを決定する。アセットまたはアセット群がタスクの特徴に一致する機能を備えると判定したことに応じて、処理720は、工程727に進んでよい。
【0161】
工程724で、アセット群が決定される。いくつかの実施形態において、サーバは、1または複数のタスクの特徴に一致する機能を有するアセットの中からアセット群を決定する。サーバは、アセットの利用可能性、アセットの所有権、アセットの所有権の移転の利用可能性、アセット群が機能に関して冗長性を有するとの判定、などに基づいて、アセット群に含められるアセットを選択してよい。いくつかの実施形態において、サーバは、アセット群に含めるためのアセットを選択することに関連して、コスト関数を用いる。例えば、サーバは、コスト関数を用いて、アセット群のコストを最適化し、または、閾値コスト値より低いコストを有するアセット群を選択してよい。
【0162】
アセット群の決定に応じて、処理720は、アセット群の決定が完了したか否かに関する判定がなされる工程725に進む。例えば、サーバは、アセット群を確認するようユーザにプロンプトしてもよいし、ユーザが1または複数のタスクもしくはタスクの1または複数の機能を改良/修正することを選択できる選択可能要素を提供してもよい。アセット群の決定が完了していないと判定したことに応じて、処理720は、工程721に戻る。そうでなければ、処理720は、工程726に進む。工程723で、タスクの特徴に一致するアセットが発見されなかった場合(または、タスクの各特性について、対応する機能を有するアセットが発見されなかった場合)、処理720は、工程725へ進んでよい。
【0163】
工程726で、アセット群の示唆、および/または、アセット群が可能である(例えば、アセット群が作業を実行することに関連してグループ化されてよい)旨の示唆が提供される。
【0164】
図8Aは、本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図である。いくつかの実施形態において、
図8Aの処理800は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理800は、半自律型ドローンによって実行される。
【0165】
いくつかの実施形態において、処理800は、作業を実行するためにアセット群の中のリーダードローンによって実行される。いくつかの実施形態において、処理800は、作業を実行するためにアセット群の中のフォロワードローンによって実行される。
【0166】
工程810で、ドローンがタスクの要素を実行するアセット群の一部であるとの示唆が受信される。ドローンは、ドローンが作業を構成することに関連付けられているアセット群の一部であることの示唆を受信してよい。
【0167】
様々な実施形態によると、処理800がリーダードローンによって実行される場合、リーダードローンは、タスクの要素が実行される作業に関連付けられている作業パラメータなどと共に、ドローンがアセット群の一部であることの示唆をサーバ(例えば、作業を構成するサーバ)から受信してよい。
【0168】
様々な実施形態によると、処理800がフォロワードローンによって実行される場合、フォロワードローンは、ドローンがアセット群の一部であることの示唆をリーダードローンから受信してよい。
【0169】
工程820で、1または複数のタスクの1または複数の要素に関する情報が通信される。1または複数の要素に関する情報は、要素のパラメータおよび/または要素を実行するための制約を含んでよい。
【0170】
様々な実施形態によると、処理800がリーダードローンによって実行される場合、リーダードローンは、1または複数の要素を実行するための計画を通信してよい。リーダードローンは、1または複数の要素を実行するための計画を、1または複数の要素を実行するために割り当てられた1または複数のフォロワードローンへ通信してよい。
【0171】
様々な実施形態によると、処理800がフォロワードローンによって実行される場合、フォロワードローンは、1または複数の要素を実行するための計画を受信してよい。フォロワードローンは、リーダードローンから計画を受信してよい。計画は、フォロワードローンの機能、要素に関連付けられている機能、フォロワードローンの状況(例えば、利用可能性、位置、など)などに基づいて、決定されてよい。
【0172】
工程840で、処理800が完了したか否かについての判定がなされる。処理800が完了したとの判定に応じて、処理800は終了する。処理800が完了していないとの判定に応じて、処理800は、工程810に戻ってよい。様々な実施形態によると、処理800は、1または複数の要素が完了したこと、もしくは、作業が完了したことの判定に応じて、完了したと判定される。処理800は、作業が一時停止またはキャンセル/中止された場合にも、完了したと判定されてよい。
【0173】
図8Bは、本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図である。いくつかの実施形態において、
図8Bの処理830は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理830は、半自律型ドローンによって実行される。
図8Bの処理830は、
図8Aの処理800の工程830に対応しうる。
図8Bの処理830は、作業を実行するよう割り当てられたアセット群におけるフォロワードローンによって実行されてよい。
【0174】
工程831で、ドローンの1または複数のセンサからのデータが受信される。いくつかの実施形態において、計画(リーダードローンによって提供された計画など)の実施中に、フォロワードローンが、要素/作業に関する情報を取得する。例えば、フォロワードローンは、画像、ライブストリームビデオ、気象情報などの情報をキャプチャしてよい。
【0175】
工程832で、データが計画に関連しているか否かについての判定がなされる。いくつかの実施形態において、ドローン上のセンサからデータを受信したことに応じて、ドローンは、かかるデータが、実施される計画に関連しているか否かを判定する。一例として、ターゲットを追跡する計画の場合、センサから受信されたデータは、画像を含みうる。ドローンは、画像が、ドローンの追跡するターゲットを含むか否かを判定してよい。例えば、ドローンは、画像解析を実行し、ターゲットが画像内にあること(または、画像がターゲットを含む可能性が所定の閾値を超えていること)などを決定しうる。
【0176】
データが計画に関連していると判定したことに応じて、処理830は、計画に関する情報がリーダードローンへ送信される工程833に進んでよい。いくつかの実施形態において、フォロワードローンは、キャプチャされた情報が計画に関連付けられている(例えば、要素/作業の状態を示す、計画のターゲット/対象を含む、計画が実施される地理的エリアに関する情報を含む、など)と判定しうる。
【0177】
計画に関する情報をリーダードローンへ送信したことに応じて、処理830は、処理830が完了したか否かについての判定がなされる工程834に進む。いくつかの実施形態において、処理830は、作業が完了、中止、および/または、一時停止されたとの判定に応じて、完了と判定される。処理830が完了したとの判定に応じて、処理830は終了する。処理830が完了していないとの判定に応じて、処理830は、ドローンが、そのセンサによってキャプチャされるデータ/情報を監視し、関連付けられている情報をリーダードローンへ繰り返し送信し続ける工程831に戻ってよい。一例として、処理830は、タスクが完了していないとの判定に応じて、完了していないと判定される(例えば、ドローンが道路をスキャンするタスクを課せられ、ドローンが道路における一連の急カーブを維持できず、道路の一部のスキャンをミスした場合、タスクは完了していないと見なされ、ドローンは引き返し、道路のミスした部分を再スキャンしてよい)。
【0178】
データが計画に関連していないと工程832で判定された場合、処理830は工程834に進み、工程834が上述のように実行される。
【0179】
図8Cは、本明細書の様々な実施形態に従って、作業の少なくとも1つのタスクを実行するための方法を示す図である。いくつかの実施形態において、
図8Cの処理830は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理830は、半自律型ドローンによって実行される。
図8Cの処理830は、
図8Aの処理800の工程830に対応しうる。
図8Cの処理830は、作業を実行するよう割り当てられたアセット群におけるリーダードローンによって実行されてよい。
【0180】
工程835で、フィードバック情報が1または複数のフォロワードローンから受信され、もしくは、制御情報が受信される。様々な実施形態によると、リーダードローンは、作業に関連付けられているタスクまたはタスクの要素に関する計画の実行と同時に、フォロワードローンからフィードバック情報を受信する。
【0181】
フィードバック情報は、現在の位置、ライブビデオストリーム、作業の現在の状態など、現在/同時期の情報を含んでよい(例えば、監視作業の場合、状態は、作業の定義された区域内にターゲットが存在しないことでありうる)。
【0182】
制御情報は、サーバからリーダードローンへ提供される情報を含んでよい。例えば、制御情報は、作業が更新されたことの示唆、作業パラメータ、作業制約、アセット群を修正するための指示/命令、などを含みうる。
【0183】
工程836で、計画を更新するか否かについての決定がなされる。様々な実施形態によると、リーダードローンは、フィードバック情報または制御情報に基づいて計画を自律的に更新するか否かを決定する。例えば、フィードバック情報が作業の要素またはタスクの完了を示している場合、リーダードローンは、フォロワードローンが新たなタスク/要素を実行するように、対応するフォロワードローンのための計画を更新してよい。別の例として、定義された区域内での監視の場合、ターゲットが定義された区域内にあることをフィードバック情報が示しているとの判定に応じて、リーダードローンは、ターゲットに関する具体的詳細を取得する目的でターゲットへさらに近づくために計画を更新すると決定してよく、または、リーダードローンは、ターゲットを追跡する追跡タスクに切り替えるようフォロワードローンに命令するために計画を更新すると決定してもよい)。
【0184】
計画が更新されるとの工程836での決定に応じて、処理830は、更新された計画が1または複数のフォロワードローンへ送信される工程837に進んでよく、そして、処理830は工程838に進む。逆に、計画が更新されないとの工程836での決定に応じて、処理830は工程838に進む。
【0185】
工程838で、処理830が完了したか否かについての判定がなされる。いくつかの実施形態において、処理830は、作業が完了、中止、および/または、一時停止されたとの判定に応じて、完了と判定される。処理830が完了したとの判定に応じて、処理830は終了する。処理830が完了していないとの判定に応じて、処理830は、ドローンが作業に関するフィードバック情報または制御情報のために監視を続ける工程835に戻ってよい。
【0186】
図9Aは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図9Aの処理900は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理800は、半自律型ドローンによって実行される。
【0187】
工程910で、ドローンがタスクの要素を実行するアセット群の一部であるとの示唆が受信される。ドローンは、ドローンが作業を構成することに関連付けられているアセット群の一部であることの示唆を受信してよい。
【0188】
様々な実施形態によると、処理900がリーダードローンによって実行される場合、リーダードローンは、タスクの要素が実行される作業に関連付けられている作業パラメータなどと共に、ドローンがアセット群の一部であることの示唆をサーバ(例えば、作業を構成するサーバ)から受信してよい。
【0189】
様々な実施形態によると、処理900がフォロワードローンによって実行される場合、フォロワードローンは、ドローンがアセット群の一部であることの示唆をリーダードローンから受信してよい。
【0190】
工程920で、計画が実施される。いくつかの実施形態において、ドローンは、作業を実行することに関連付けられている計画を取得し、計画を実施する。
【0191】
様々な実施形態によると、処理900がリーダードローンによって実行される場合、リーダードローンは、サーバ(作業を構成したサーバなど)から制御情報を受信してよい。制御情報は、作業パラメータ、作業を実行するための制約、事前計画、それらの任意の組み合わせ、などを含みうる。リーダードローンは、作業のための高レベルの情報に基づいて、作業の実行のための計画を決定してよい。例えば、リーダードローンは、1または複数のフォロワードローンが作業のタスクまたはタスクの要素を実行するための計画を決定し、タスク/要素を実行するための計画を実施するようフォロワードローンに命令してよい。
【0192】
様々な実施形態によると、処理900がフォロワードローンによって実行される場合、フォロワードローンは、タスク/要素を実行するための計画を実施してよい。フォロワードローンは、リーダードローンから計画を受信してよい。いくつかの実施形態において、フォロワードローンは、リーダードローンから受信した計画におけるギャップを埋めるために、計画を更新してよい。例えば、フォロワードローンは、リーダードローンから受信した計画よりも細かい粒度を有するように計画を修正する。
【0193】
工程930で、アセットが故障したか否かについての判定がなされる。様々な実施形態によると、アセットが故障したか否かの判定は、アセットがドローンと最後に通信して以来の時間、または、アセットの健全性状態のためのピングへの応答がないこと、に基づいてよい。アセットが故障したと判定したことに応じて、処理900は、工程940に進む。
【0194】
工程940で、計画が更新される。様々な実施形態によると、計画は、アセットが故障したとの判定を考慮して更新される。
【0195】
様々な実施形態によると、処理900がリーダードローンによって実行される場合、リーダードローンは、故障したと判定されたアセットに割り当てられたタスク/要素の状態など、作業の状態を判定してよい。リーダードローンは、タスク/要素の状態に基づいて、任意の残りの割り当て(例えば、アセットに割り当てられたタスク/要素の未完了の部分)を、作業を実行するよう割り当てられたアセット群における1または複数の残りのアセットに再割り当てするために、計画を更新してよい。
【0196】
様々な実施形態によると、処理900がフォロワードローンによって実行される場合、フォロワードローンは、リーダードローンが故障したとの判定に応じて、計画を更新してよい。リーダードローンが故障したと判定したことに応じて、フォロワードローンは、アセット群における1または複数の他の残りのアセット共に、新たなリーダーを決定するためにネゴシエートしてよい。リーダードローンが新たなリーダードローンに昇格されたことに応じて、新たなリーダードローンは、新たなリーダードローンとしての立場に基づいて、計画を更新してよい。例えば、新たなリーダードローンは、残りのアセットのための1または複数の計画を決定してよい。新たなリーダードローンは、残りのアセットのそれぞれの機能と、作業の実行において完了されていないタスク/要素に関連付けられている機能または特徴とに基づいて、計画を決定してよい。
【0197】
工程950で、更新された計画に関する情報が通信される。いくつかの実施形態において、更新された計画は、残りのアセットへ通信される。
【0198】
工程960で、情報が、更新された計画の実施中に通信される。
【0199】
様々な実施形態によると、処理900がリーダードローンによって実行される場合、リーダードローンは、フォロワードローン/アセットまたはサーバから情報を受信してよい。一例として、リーダードローンは、サーバ(作業を構成したサーバなど)から制御情報を受信してよい。制御情報は、更新された作業パラメータ、作業を実行するための制約、事前計画、それらの任意の組み合わせ、などを含みうる。別の例として、リーダードローンは、更新された計画の実施中にフォロワードローンによって取得されたフィードバック情報など、作業に関するフィードバック情報をフォロワードローンから受信してよい。
【0200】
様々な実施形態によると、処理900がフォロワードローンによって実行される場合、フォロワードローンは、リーダードローンへフィードバック情報を送信する。
【0201】
工程970で、処理900が完了したか否かについての判定がなされる。処理900が完了したとの判定に応じて、処理900は終了する。処理900が完了していないとの判定に応じて、処理90は、工程920に戻ってよい。様々な実施形態によると、処理900は、1または複数の要素が完了したこと、もしくは、作業が完了したことの判定に応じて、完了したと判定される。処理900は、作業が一時停止またはキャンセル/中止された場合にも、完了したと判定されてよい。処理900は、アセットの故障が起きていないとの工程930での判定に応じて、工程970に進んでよい。
【0202】
図9Bは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図9Aの処理930は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図9Bの処理930は、
図9Aの処理900の工程930に対応しうる。
【0203】
工程931で、フィードバック情報が1または複数のフォロワードローンから受信され、もしくは、制御情報が受信される。いくつかの実施形態において、リーダードローンは、フォロワードローンがタスク/作業を実行するための計画を実施するのと同時に、フォロワードローンからのフィードバック情報を受信してよい。いくつかの実施形態において、リーダードローンは、サーバから制御情報(例えば、更新された制御情報)を受信してよい。例えば、制御情報は、作業が更新されたことの示唆、作業パラメータ、作業制約、アセット群を修正するための指示/命令、などを含みうる。
【0204】
工程932で、アセット群の中のアセットからのフィードバックが受信されたか否かについての判定がなされる。いくつかの実施形態において、リーダードローンは、アセット群の中の各アセットに関して、
図9Bの処理930を実行する。例えば、リーダードローンは、フィードバック情報が特定のフォロワードローンから受信されたか否かを判定してよい。いくつかの実施形態において、フィードバック情報が特定のアセットから受信されたか否かの判定は、特定のアセットがフィードバック情報を最後に通信した時以来経過した時間に基づいてよい。いくつかの実施形態において、フィードバック情報が所定の閾値時間内に特定のアセットから受信されたか否かの判定。いくつかの実施形態において、フィードバック情報が所定の時刻(推定時刻(例えば、推定時刻は、アセットによって実施されている計画、アセットの位置、アセットとの通信リンク、などに少なくとも部分的に基づいて決定されてよい)など)までに特定のアセットから受信されたか否かの判定。
【0205】
フィードバック情報がアセット群の中のアセットから受信されたとの工程932での判定に応じて、処理930は、工程936に進む。工程936で、処理930が完了したか否かについての判定がなされる。処理930が完了したとの判定に応じて、処理930は、工程937に進む。処理930が完了していないとの判定に応じて、処理930は、工程931に戻ってよい。様々な実施形態によると、処理930は、1または複数の要素が完了したこと、もしくは、作業が完了したことの判定に応じて、完了したと判定される。処理930は、作業が一時停止またはキャンセル/中止された場合にも、完了したと判定されてよい。工程937で、アセットが故障したか否かの示唆が提供される。いくつかの実施形態において、アセットが故障したか否かを判定するモジュールが、アセットが故障したか否かの示唆を、リーダードローンのプランニングサービス(例えば、作業に関連付けられている1または複数のタスクを実行するための計画を決定/更新するサービス)へ提供する。
【0206】
フィードバック情報がアセット群の中のアセットから受信されていないとの工程932での判定に応じて、処理930は、工程933に進む。工程933で、ピングがアセットに送信される。リーダードローンは、アセットの健全性チェックとしてピングを送信してよい。
【0207】
工程934で、応答がアセットから受信されたか否かについての判定がなされる。いくつかの実施形態において、リーダードローンは、アセットが閾値期間内にピングに応答したか否かの判定に基づいて、応答が受信されたか否かを判定する。(ピングへの)応答がアセットから受信されたとの判定に応じて、処理930は、工程936に進む。逆に、(ピングへの)応答がアセットから受信されていないとの判定に応じて、処理930は、アセットが故障したと判定される工程935に進む。次いで、処理930は、工程936に進む。
【0208】
図9Cは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図9Cの処理950は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図9Cの処理950は、
図9Aの工程950に対応しうる。いくつかの実施形態において、処理950は、半自律型のリーダードローンによって実行される。
【0209】
工程951-1で、計画の実施に関するフィードバック情報が受信される。様々な実施形態によると、リーダードローンは、作業に関連付けられているタスクまたはタスクの要素に関する計画の実行と同時に、フォロワードローンからフィードバック情報を受信する。フィードバック情報は、現在の位置、ライブビデオストリーム、作業の現在の状態など、現在/同時期の情報を含んでよい(例えば、監視作業の場合、状態は、作業の定義された区域内にターゲットが存在しないことでありうる)。
【0210】
工程951-2で、計画が更新されるか否かについての決定がなされる。いくつかの実施形態において、リーダードローンは、フィードバック情報に少なくとも部分的に基づいて、計画(例えば、特定のフォロワードローンのための計画または複数のフォロワードローンのための計画)を更新するか否かを決定する。
【0211】
計画が更新されないとの決定に応じて、処理950は、処理950が完了したか否かについての判定がなされる工程951-7に進む。処理950が完了したとの判定に応じて、処理950は終了する。処理950が完了していないとの判定に応じて、処理950は、工程951-1に戻ってよい。様々な実施形態によると、処理950は、1または複数の要素が完了したこと、もしくは、作業が完了したことの判定に応じて、完了したと判定される。処理950は、作業が一時停止またはキャンセル/中止された場合にも、完了したと判定されてよい。
【0212】
計画が更新されるとの決定に応じて、処理950は、計画の更新が可能であるか否かについての判定がなされる工程951-3に進む。いくつかの実施形態において、リーダードローンは、作業のパラメータ、作業の状態、アセット群の中の1または複数のアセットの機能、などに基づいて、計画の更新が可能であるか否かを判定する。例えば、作業が更新されると決定され、もしくは、作業を実行するのに必要な機能が変更または新たに決定された場合、リーダープローンは、アセット群が必要な機能を有するアセットを含むか否かを判定してよい。
【0213】
計画の更新が可能ではないとの工程951-3での判定に応じて、処理950は、計画の更新が可能ではないとの示唆の工程951-5に進む。いくつかの実施形態において、リーダードローンは、計画が更新されえない旨のプロンプトを、ユーザインターフェースでユーザへ、または、(クライアント端末でプロンプトをもたらしうる)サーバへ、提供してよい。プロンプトは、ユーザが、作業のキャンセル、作業の修正、などを行うことを可能にする要素を備えてよい。次いで、処理950は、工程951-7に進む。
【0214】
計画の更新が可能であるとの工程951-3での判定に応じて、処理950は、計画が更新される工程951-4に進む。いくつかの実施形態において、リーダー端末は、それに対応して(例えば、フィードバック情報に少なくとも部分的に基づいて)計画を更新する。計画は、フォロワードローンの機能に少なくとも部分的に基づいて更新されてよい。
【0215】
工程951-6で、更新された計画が、フォロワードローンへ送信される。次いで、処理950は、工程951-7に進んでよい。
【0216】
図9Dは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図9Dの処理951-2は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図9Dの処理951-2は、
図9Cの工程951-2に対応しうる。いくつかの実施形態において、処理951-2は、半自律型のリーダードローンによって実行される。
【0217】
工程951-Aで、アセットの故障が発生したか否かについての判定がなされる。様々な実施形態によると、アセットが故障したか否かの判定は、アセットがドローンと最後に通信して以来の時間、または、アセットの健全性状態のためのピングへの応答がないこと、に基づいてよい。
【0218】
アセットを判定したことに応じて、処理951-2は、アセットの故障が作業の実行に影響するか否かについての判定がなされる工程951-Bに進む。リーダードローンは、故障したアセットが、作業に影響した任意の未処理のタスクまたは要素を有したか否かを判定してよい。
【0219】
アセットの故障が作業の実行に影響しないとの判定に応じて、処理951-2は、計画を更新しないとの決定がなされる工程951-Gに進んでよい。次いで、処理951-2は、処理951-2が完了したか否かについての判定がなされる工程951-Hに進んでよい。処理951-2が完了したとの判定に応じて、処理951-2は終了する。処理951-2が完了していないとの判定に応じて、処理951-2は、工程951-Aに戻ってよい。様々な実施形態によると、処理951-2は、1または複数の要素が完了したこと、もしくは、作業が完了したことの判定に応じて、完了したと判定される。処理951-2は、作業が一時停止またはキャンセル/中止された場合にも、完了したと判定されてよい。
【0220】
アセットの故障が作業の実行に影響しないとの判定に応じて、処理951-2は、計画を更新するとの決定がなされる工程951-Cに進んでよい。次いで、処理951-2は、処理951-2が完了したか否かについての判定がなされる工程951-Hに進んでよい。処理951-2が完了したとの判定に応じて、処理951-2は終了する。
【0221】
アセットが故障していないとの判定に応じて、処理951-2は、工程951-Dに進む。工程951-Dで、計画が失敗したか否かについての判定がなされる。いくつかの実施形態において、リーダードローンは、アセットが故障したか否かの判定に基づいて、計画が失敗したか否かを判定してよい。例えば、計画が、対応する機能(例えば、必要な機能)を有していた場合、および、アセット群が少なくとも1つの他のアセットに冗長性を備えていなかった機能を故障したアセットが有していた(そして、新しいアセット/機能を取得できないと判定された)場合、リーダードローンは、計画が失敗したと判定してよい。
【0222】
計画が失敗したと判定したことに応じて、処理951-2は、作業が中止(または一時停止)されるか否かについての判定がなされる工程951-Eに進む。リーダードローンは、計画が作業の必要な構成要素である(作業によって必要とされるタスク/要素を含む)との判定に応じて、作業を中止することを決定してよい。リーダードローンは、作業が、対応する機能(例えば、必要な機能)を有し、アセット群が少なくとも1つの他のアセットに冗長性を備えていない機能を故障したアセットが有していた(そして、新しいアセット/機能を取得できないと判定れた)ことに少なくとも部分的に基づいて、作業を中止することを決定してよい。
【0223】
作業を中止すると工程951-Eで決定したことに応じて、処理951-2は、工程951-Hに進む。
【0224】
計画の失敗が発生しなかったとの工程951-Dでの判定、または、作業が中止されないとの工程951-Eでの決定に応じて、処理951-2は、計画が更新されると決定される工程951-Fに進む。
【0225】
図9Eは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図9Eの処理950は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図9Eの処理950は、
図9Aの工程950に対応しうる。いくつかの実施形態において、処理950は、半自律型のフォロワードローンによって実行される。
【0226】
工程952-1で、ドローンの1または複数のセンサからのデータが受信される。いくつかの実施形態において、計画(リーダードローンによって提供された計画など)の実施中に、フォロワードローンが、要素/作業に関する情報を取得する。例えば、フォロワードローンは、画像、ライブストリームビデオ、気象情報などの情報をキャプチャしてよい。
【0227】
工程952-3で、データが計画に関連しているか否かについての判定がなされる。いくつかの実施形態において、ドローン上のセンサからデータを受信したことに応じて、ドローンは、かかるデータが、実施される計画に関連しているか否かを判定する。一例として、ターゲットを追跡する計画の場合、センサから受信されたデータは、画像を含みうる。ドローンは、画像が、ドローンの追跡するターゲットを含むか否かを判定してよい。例えば、ドローンは、画像解析を実行し、ターゲットが画像内にあること(または、画像がターゲットを含む可能性が所定の閾値を超えていること)などを決定しうる。
【0228】
データが計画に関連していると判定したことに応じて、処理950は、計画に関する情報がリーダードローンへ送信される工程952.5に進んでよい。いくつかの実施形態において、フォロワードローンは、キャプチャされた情報が計画に関連付けられている(例えば、要素/作業の状態を示す、計画のターゲット/対象を含む、計画が実施される地理的エリアに関する情報を含む、など)と判定しうる。
【0229】
計画に関する情報をリーダードローンへ送信したことに応じて、処理950は、処理950が完了したか否かについての判定がなされる工程952-7に進む。いくつかの実施形態において、処理950は、作業が完了、中止、および/または、一時停止されたとの判定に応じて、完了と判定される。処理950が完了したとの判定に応じて、処理950は終了する。処理950が完了していないとの判定に応じて、処理950は、ドローンが、そのセンサによってキャプチャされるデータ/情報を監視し、関連付けられている情報をリーダードローンへ繰り返し送信し続ける工程952-1に戻ってよい。
【0230】
データが計画に関連していないと工程952-3で判定された場合、処理950は工程952-1に進み、工程952-1が上述のように実行される。
【0231】
図10Aは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図10Aの処理1000は、
図1のシステム100のサーバ105、アセット120、アセット125、および/または、アセット130、
図2のデバイス200、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理1000は、半自律型ドローン、または、作業を管理するサーバによって実行される。
【0232】
工程1010で、アセット群によって実行されている1または複数のタスクに関連付けられているデータが取得される。様々な実施形態によると、1または複数のタスクに関連付けられているデータは、作業の構成/定義への更新に関する情報、もしくは、タスクまたはタスクの要素の実行中に取得され通信されるフィードバック情報を含みうる。作業の構成/定義への更新は、(例えば、作業の完了を加速させるため、少なくとも1つのその他の作業などに対して、作業の優先度を変更するため、などの目的で)作業を修正するためのユーザ要求に対応する1または複数のユーザ入力に少なくとも部分的に基づいてよい。フィードバック情報は、1または複数の他のタスクをトリガする条件が満たされたことなど、作業の状況の変化を含みうる。具体例として、定義された地理的区域における監視作業の文脈において、作業は、ターゲット物体/車両が地理的区域内で検出された場合に追跡タスクをトリガするよう定義されてよい。したがって、1または複数のフォロワードローンによる監視タスク中に、ターゲットが地理的区域内で見つけられると、フォロワードローンは、リーダードローンにフィードバック情報を提供して、その目撃を示唆してよい。別の具体例として、フィードバック情報は、フォロワードローンが故障または破壊されたとの示唆を含みうる。フォロワードローンの故障または破壊は、アセット群の機能、または、アセット群の機能の冗長性を低下させうる。
【0233】
様々な実施形態によると、処理1000がリーダードローンによって実行される場合、リーダードローンは、制御情報などを介してサーバから、もしくは、フォロワードローンが作業の実行(例えば、1または複数のタスクの実行)に関連付けられている計画を実施するのと同時に送信されたフィードバック情報などを介して1または複数のフォロワードローンから、1または複数のタスクに関連付けられているデータを受信してよい。
【0234】
様々な実施形態によると、処理1000がサーバによって実行される場合、サーバは、ユーザインターフェースへのユーザ入力などを介して、サーバから1または複数のタスクに関連付けられているデータを受信してよい。ユーザは、作業を修正させまたは作業のパラメータを修正させうる命令または要求をユーザインターフェースに入力してよい。
【0235】
工程1020で、アセット群が修正されるか否かについての決定がなされる。様々な実施形態によると、アセット群を修正するか否かの決定は、アセット群によって実行されている1または複数のタスクに関連付けられているデータ(例えば、作業の現在の状態または特徴に関する作業データ)に少なくとも部分的に基づいてよい。アセット群を修正するか否かの決定は、1または複数のアセットをアセット群に追加する決定を含んでよい。同様に、アセット群を修正するか否かの決定は、1または複数のアセットをアセット群から除外する決定を含んでよい。例えば、デバイスは、データに少なくとも部分的に基づいて、新たなタスクが実行されることを決定してよい。別の例として、新たなタスクは、現在のアセット群が対応する機能を備えたアセットを含んでいない機能を含み、または、必要としうる。別の例として、デバイスは、アセットの故障によってアセット群が機能または機能における冗長性を失ったと判定しうる。機能における冗長性は、その機能を必要とする複数のタスクが、その機能を有する複数のアセットによって(例えば、並行して)実行されることを可能にしうる。機能の冗長性の喪失は、並行して実行されうるタスクの数を減らし、もしくは、リーダードローンがアセット群にわたってタスクを割り当てまたは計画を決定しうる柔軟性を低減しうる。
【0236】
様々な実施形態によると、アセット群を修正する決定は、アセット群に機能を追加する決定、および/または、アセット群の機能が現在の作業にもはや必要とされない(または必要されないと予測される)との判定、に基づいてよい。アセット群は、1または複数のアセットを追加、もしくは、1または複数のアセットを除外、もしくは、1または複数のアセットの追加と1または複数のアセットの除外との両方、を行うために修正されるよう決定されてよい。いくつかの実施形態において、アセット群を修正するか否かの決定は、作業または作業の残りを実行するためにアセット群を用いることに関連付けられているコスト(例えば、所定のコスト関数によって決定されたコスト)に基づいてよい。作業の実行中にアセット群を修正するか否かを決定することは、例えば、適切な機能がアセット群に割り当てられることを保証しうる動的なリソース管理を可能にする。さらに、動的なリソース管理は、作業を実行することに関連付けられているコストの最適化または改善を可能にしうる。
【0237】
工程1020でのアセット群を修正するとの決定に応じて、処理1000は、アセット群の修正を示す指示が通信される工程1030に進む。指示は、影響を受けるアセット(例えば、グループに追加されるアセットまたはグループから除外されるアセット)、および/または、対応するアセット群のリーダーアセットに提供されてよい。
【0238】
様々な実施形態によると、処理1000がリーダードローンによって実行される場合、リーダードローンは、修正によって影響を受けるアセットへ、ならびに/もしくは、サーバ(作業を管理または構成するサーバなど)へ、アセット群を修正する指示を送信してよい。いくつかの実施形態において、リーダードローンは、複数の組織にわたってアセットの所有権を管理する所有権サービスへ、修正の指示または示唆を送信してよい。例えば、指示は、修正によって影響を受けるアセットの所有権のネゴシエーションに関連して、所有権サービスへ送信されてよい。
【0239】
様々な実施形態によると、処理1000がサーバによって実行される場合、サーバは、リーダードローンへ、および/または、修正によって影響を受けるアセットへ、アセット群を修正する指示を通信する。また、サーバは、クライアント端末上のユーザインターフェースを介してユーザへ示唆を提供してよく、ここで、示唆は、アセット群が修正されることをユーザに通知する。
【0240】
アセット群の修正を示す指示を通信したことに応じて、処理1000は、処理1000が完了したか否かについての判定がなされる工程1040に進む。いくつかの実施形態において、処理1000は、作業が完了、中止、および/または、一時停止されたとの判定に応じて、完了と判定される。処理1000が完了したとの判定に応じて、処理1000は終了する。処理1000が完了していないとの判定に応じて、処理1000は、ドローンが、そのセンサによってキャプチャされるデータ/情報を監視し、関連付けられている情報をリーダードローンへ繰り返し送信し続ける工程1010に戻ってよい。さらに、アセット群が修正されないとの工程1020での決定に応じて、処理1000は、工程1040に進んでよい。
【0241】
図10Bは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図10Bの処理1020は、
図1のシステム100のサーバ105、アセット120、アセット125、および/または、アセット130、
図2のデバイス200、ならびに/もしくは、
図3のデバイス300によって実行される。
図10Bの処理1020は、
図10Aの工程1020に対応しうる。
【0242】
工程1021で、1または複数の残りのタスクの1または複数の特徴が取得される。いくつかの実施形態において、デバイス(例えば、サーバ、または、リーダードローンなどのドローン)は、作業のための残りのタスクを決定し、残りのタスクに関連付けられている1または複数の特徴を決定してよい。残りのタスクに関連付けられている1または複数の特徴は、特徴に対するタスクのマッピングに基づいて決定されてよい。例えば、デバイスは、残りのタスクを用いて、特徴に対するタスクのマッピングへクエリしてよい。
【0243】
工程1022で、アセットの1または複数の機能が取得される。いくつかの実施形態において、デバイスは、アセットに対する機能のマッピングに基づいて、アセットの1または複数の機能を取得してよい。アセットの機能のマッピングは、アセットの機能(またはそれらの現在の機能)の示唆についてアセットにクエリすることに基づいて、アセットがそれらの機能を登録/通知することに基づいて、などによって決定されてよい。
【0244】
工程1023で、任意のアセットが残りのタスクの特徴に一致するか否かに関して判定がなされる。いくつかの実施形態において、サーバは、タスクの特徴に対応する1または複数の機能を決定し、タスクの特徴に対応する機能に一致する機能を有するアセットを決定する。アセットまたはアセット群が残りのタスクの特徴に一致する機能を備えると判定したことに応じて、処理1020は、工程1024に進んでよい。
【0245】
工程1024で、アセット群への修正が決定される。いくつかの実施形態において、デバイスは、1または複数の残りのタスクの特徴に一致する機能を有するアセットの中からアセット群を決定する。いくつかの実施形態において、デバイスは、アセット群内のアセットが、1または複数の残りのタスクの特徴と一致しない機能のセットを有すること(例えば、除外されるアセットの機能と、残りのタスクの特徴/機能との間に重複がないこと)に基づいて、アセット群への修正を決定する。デバイスは、アセットの利用可能性、アセットの所有権、アセットの所有権の移転の利用可能性、アセット群が機能に関して冗長性を有するとの判定、などに基づいて、アセット群に追加されるアセットを選択してよい。いくつかの実施形態において、デバイスは、アセット群に含めるアセットまたはアセット群から除外するアセットを選択することに関連して、コスト関数を用いる。例えば、サーバは、コスト関数を用いて、アセット群のコストを最適化し、または、閾値コスト値より低いコストを有するアセット群を選択してよい。
【0246】
アセット群の決定に応じて、処理1020は、アセット群の決定が完了したか否かに関する判定がなされる工程1025に進む。例えば、デバイスは、アセット群を確認するようユーザにプロンプトしてもよいし、ユーザが1または複数のタスクもしくはタスクの1または複数の機能を改良/修正することを選択できる選択可能要素を提供してもよい。アセット群の決定が完了していないと判定したことに応じて、処理1020は、工程1021に戻る。そうでなければ、処理1020は、工程1026に進む。工程1023で、残りのタスクの特徴に一致するアセットが発見されなかった場合(または、タスクの各特性について、対応する機能を有するアセットが発見されなかった場合)、処理1020は、工程1025へ進んでよい。工程1026で、アセット群を修正するか否かの示唆が提供される。いくつかの実施形態において、アセットを修正するか否かの示唆は、リーダードローン上で実行するプランニングサービスへ提供される。いくつかの実施形態において、アセットを修正するか否かの示唆は、サーバなどにある制御サービスへ提供される。
【0247】
図11は、本願の様々な実施形態に従って、作業を構成するための方法を示す図である。いくつかの実施形態において、
図10Aの処理1000は、
図1のシステム100のサーバ105、アセット120、アセット125、および/または、アセット130、ならびに/もしくは、デバイス200または
図2によって実行される。様々な実施形態によると、処理1100は、サーバ(作業を構成および/または管理するサーバなど)によって実行される。処理1000は、クライアント端末と共にサーバによって実行されてよい。
【0248】
工程1105で、第1ユーザインターフェースが表示される。いくつかの実施形態において、サーバは、クライアント端末に第1ユーザインターフェースを表示させる。第1ユーザインターフェースは、作業に関連付けられている1または複数の特徴またはパラメータがユーザによって入力される際に用いられるインターフェースに対応しうる。例えば、第1ユーザインターフェースは、作業を定義することに関連して用いられてよい。ユーザは、ユーザインターフェース上に提供された1または複数の選択可能要素を介して1または複数の特徴またはパラメータを入力してよい。
【0249】
工程1110で、実行されるタスクの特徴に関するユーザ選択が受信される。ユーザ選択は、クライアント端末へなされてよく、クライアント端末は、1または複数のネットワークを介してユーザ選択をサーバへ通信してよい。
【0250】
工程1115で、別のユーザインターフェースのための構成が、ユーザ選択に少なくとも部分的に基づいて決定される。いくつかの実施形態において、サーバは、ユーザ選択に対してマッピングされている(例えば、タスクの特徴に対してマッピングされている)1または複数の特徴、パラメータ、または、制約を決定する。例えば、第1ユーザインターフェースへのユーザ選択が、作業のタイプ(監視など)の選択である場合、サーバは、時刻、日付、地理的位置、ターゲットのタイプ(例えば、移動しているターゲット、静止しているターゲット、など)など、監視の状況の定義を含むように、別のユーザインターフェースを決定してよい。別の例として、例えば、第1ユーザインターフェースへのユーザ選択が、作業のタイプおよび/または作業の状況(監視など)の選択である場合、サーバは、作業を実行することに関連して用いられるアセットに関する1または複数の特徴の定義を含むように、別のユーザインターフェースを決定してよい。
【0251】
工程1120で、別のユーザインターフェースが表示される。いくつかの実施形態において、別のインターフェースの構成を決定したことに応じて、サーバは、クライアント端末に別のユーザインターフェースを表示させる。
【0252】
工程1125で、作業を実行するために配備されるアセット群に関するユーザ選択が受信される。ユーザ選択は、作業を実行するために配備される特定のアセットまたはアセットのタイプの選択であってよい。いくつかの実施形態において、作業を実行するために配備されるアセット群に関するユーザ選択は、配備するアセット群またはアセットのタイプをサーバが決定する際に用いられる作業の1または複数のパラメータに対するユーザ選択を含む。ユーザ選択は、クライアント端末へなされてよく、クライアント端末は、1または複数のネットワークを介してユーザ選択をサーバへ通信してよい。
【0253】
工程1130で、作業を構成するための別のユーザインターフェースを提供するか否かの決定がなされる。別のユーザインターフェースを提供するか否かの決定は、第1ユーザインターフェースおよび上記の別のユーザインターフェースにおいて取得された作業および/またはアセット群のパラメータに少なくとも部分的に基づいてよい。いくつかの実施形態において、別のユーザインターフェースを提供するか否かの決定は、作業のキャンセル、または、作業の開始などのためのユーザ入力に基づく。例えば、サーバは、作業の定義のギャップを埋めて、対応するアセット群を配備してよい。一例として、サーバは、(i)同様の/過去の作業の情報などの履歴情報、(ii)作業のユーザ定義パラメータに関連付けられているベストフィット、(iii)コスト関数を用いて決定された作業実行のコスト、の内の1または複数に少なくとも部分的に基づいて、作業の任意の残りのパラメータを決定してよい。
【0254】
別のユーザインターフェースが作業を構成するために提供されると決定したことに応じて、処理1100は、別のインターフェースを表示させる工程1135に進む。別のインターフェースは、実行されるタスクの特徴に関するユーザ選択および/または配備されるアセット群に関するユーザ選択に少なくとも部分的に基づいて構成されてよい。
【0255】
工程1140で、別のユーザインターフェースへのユーザ選択が受信される。ユーザ選択は、作業の定義または構成に関するさらなる入力であってよい。ユーザ選択は、クライアント端末へなされてよく、クライアント端末は、1または複数のネットワークを介してユーザ選択をサーバへ通信してよい。次いで、処理1100は、工程1160に進んでよい。
【0256】
工程1160で、作業の構成の決定が完了したか否かについての判定がなされる。例えば、デバイスは、アセット群を確認し、作業の構成を確認するようユーザにプロンプトしてもよいし、ユーザが1または複数のタスクもしくはタスクの1または複数の機能を改良/修正することを選択できる選択可能要素を提供してもよい。作業の構成が完了していないと判定したことに応じて、処理1100は、処理が、以前のユーザインターフェースへのユーザ入力、もしくは、1または複数の以前のユーザインターフェースへのユーザ入力に基づいて、ユーザインターフェースを繰り返し構成する工程1130に戻る。そうでなければ、処理1100は終了する。
【0257】
作業を構成することに関連付けられているユーザインターフェースを提供されないとの工程1130での決定に応じて、処理1100は、実行される作業が、ユーザ選択に少なくとも部分的に基づいて決定(定義)される工程1145に進んでよい。履歴情報(例えば、同様の作業に対する情報)、作業を実行するコストなど、他の変数が、作業を決定することに関連して用いられてよい(例えば、作業は、コストを最小化し、または、作業を実行するコストを規定された閾値コスト未満に削減するように定義されてよい)。
【0258】
工程1150で、作業に関する情報が通信される。いくつかの実施形態において、サーバは、1または複数のアセットに作業の示唆を通信する。例えば、サーバは、作業を実行するよう決定されたアセット群のリーダードローンへ作業の示唆を通信してよい。作業の示唆は、リーダードローンまたは作業を実行するアセット群のための指示であってよい。いくつかの実施形態において、作業の示唆は、作業のパラメータ、作業の制約、アセット群の示唆、などの内の1または複数を含んでよい。
【0259】
工程1155で、作業の実施のためのユーザインターフェースが表示される。いくつかの実施形態において、サーバは、作業の実施を表示するためのユーザインターフェースをクライアント端末に表示させる。作業の実施のためのユーザインターフェースは、ライブビデオストリーム、完了した作業のタスクの示唆、まだ実行されていない作業のタスク、現在実行されているタスクの示唆など、作業の現在の状態に関する情報を提供してよい。いくつかの実施形態において、作業の実施のためのユーザインターフェースは、アセット群に関する情報を含む。例えば、ユーザは、アセットの状態(例えば、オフライン、故障、オンライン、正常動作、部分的に正常な動作、など)、アセットまたはアセット群の機能のリスト、アセットまたはアセット群の機能の現在のセットなど、アセット群に関するより粒度の細かい情報を見るために、ドリルダウンするよう選択してよい。いくつかの実施形態において、作業の実施のためのユーザインターフェースは、ユーザがユーザ入力を入力できる1または複数の選択可能要素を備える。ユーザ入力の例は、作業の一時停止、作業のキャンセル、作業の修正(例えば、作業のパラメータの修正)、アセット群の修正、などを含みうる。
【0260】
様々な実施形態によると、サーバは、ユーザインターフェースのセットを構成および提供し、ユーザインターフェースの少なくとも一部は、別のユーザインターフェースにおけるユーザ入力に少なくとも部分的に基づいて、論理的に接続される。例えば、ユーザインターフェースのセットは、構成されている作業に関する情報を入力するようユーザにプロンプトするために、構成されてユーザへ提供されてよい。ユーザによって入力される情報は、作業のパラメータまたは特徴、作業のタイプ、利用されるアセットのタイプ、などを含みうる。いくつかの実施形態において、作業を構成するために用いられるユーザインターフェースのセットにおけるユーザインターフェースは、ユーザインターフェースのセットにおける直前のユーザインターフェースへの1または複数のユーザ入力に少なくとも部分的に基づく。
【0261】
図12Aは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図12Aの処理1200は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理1000は、半自律型ドローンによって実行される。
【0262】
工程1205で、作業に関する情報が受信される。いくつかの実施形態において、アセット(例えば、リーダードローン)が、サーバ(作業を構成するサーバなど)から作業に関する情報を取得する。作業に関する情報は、作業を実行するアセット群の示唆、ならびに/もしくは、作業に関連付けられている1または複数のパラメータまたは制約を含みうる。いくつかの実施形態において、作業に関する情報は、事前計画を含んでよく、事前計画は、リーダードローンが作業を実施するための高レベル計画であってよい。高レベル計画は、リーダードローンによって決定される計画よりも、実行されるタスクおよび/またはタスクが実行される方法のより粒度の粗いまたはより具体的ではない定義を有しうる。
【0263】
工程1210で、アセットは、作業に関する情報に少なくとも部分的に基づいて、リーダードローンとして動作することを決定する。
【0264】
工程1215で、リーダードローンは、作業を実行するために少なくとも1つのタスクを完了させる計画を決定する。いくつかの実施形態において、リーダードローンは、作業の1または複数のタスクと、1または複数のタスクを実行するための計画とを決定する。一例として、リーダードローンは、作業をより小さい構成タスクに分解してよく、リーダードローンは、タスクを実行するための計画を決定してよい。
【0265】
工程1220で、リーダードローンは、計画の少なくとも一部を実行するための少なくとも1つのアセットを決定する。例えば、リーダードローンは、作業を実行するアセット群内のアセットに計画またはタスクを割り当ててよい。
【0266】
工程1225で、リーダードローンは、計画の少なくとも一部を少なくとも1つのアセットへ通信する。例えば、リーダードローンは、計画および/またはタスクに割り当てられたアセットへ計画の少なくとも一部を通信してよい。
【0267】
工程1230で、リーダードローンは、計画の一部を別のアセットへ通信するか否かを決定する。アセット群へ計画の別の部分を決定したことに応じて、処理1200は、計画またはタスクの一部にそれぞれが割り当てられた異なるアセットへ計画の一部を繰り返し送信する工程1225に進んでよい。リーダードローンは、計画の一部が別のアセットへ通信されないことをリーダードローンが工程1230で決定するまで、異なるアセットへ計画の一部を繰り返し送信してよい。
【0268】
工程1235で、リーダードローンは、別のタスクのための計画を決定するか否か、および、計画をアセットなどへ送信するか否かを決定する。リーダードローンが別のタスクのための計画を決定して送信すると決定したことに応じて、処理1200は、将来の計画が決定されまたはアセットへ送信される必要がないとリーダードローンが判定するまで、リーダードローンがタスクのための計画を繰り返し決定し、計画の少なくとも一部を1または複数のアセットへ送信する工程1215に進む。別のタスクのための計画が決定および送信される必要がないと工程1235で判定したことに応じて、処理1200は、工程1240に進む。
【0269】
工程1240で、リーダードローンは、計画の少なくとも一部の実施中に情報を取得する。いくつかの実施形態において、リーダードローンは、対応する計画の実施中に1または複数のフォロワードローンからフィードバック情報を受信する。また、リーダードローンは、作業に関する制御情報をサーバから受信してよい。例えば、制御情報は、作業のパラメータへの修正、アセット群への修正、などに関連しうる。
【0270】
工程1245で、リーダードローンは、作業の状態に関する情報を送信する。いくつかの実施形態において、リーダードローンは、作業の状態についての更新情報をサーバへ提供してよい。例えば、1または複数のフォロワードローンからフィードバック情報を受信したことに応じて、リーダードローンは、様々なフォロワードローンからフィードバックを集計し、および/または、作業の状態を決定してよい。リーダードローンは、作業の状態、ならびに/もしくは、アセット群における1または複数のドローンによって取得された情報(例えば、ライブストリームビデオ、画像、現在位置、対応する計画の実施の現在の状態、など)を、サーバへ送信してよい。いくつかの実施形態において、リーダードローンは、作業の状態に関する情報を1または複数のフォロワードローンへ送信してよい。例えば、リーダードローンは、作業の状態または計画についての更新情報を提供してよい。
【0271】
工程1250で、リーダードローンは、作業が完了したか否かを判定する。リーダードローンは、作業に関連付けられているタスクすべてがアセット群によって完了されたと判定したことに応じて、作業が完了したと判定してよい。また、リーダードローンは、作業がキャンセルまたは一時停止された旨の通知をサーバから受信したことに応じて、作業が完了したと判定してよい。一例として、作業は、ユーザインターフェースへのユーザ入力に応じて、キャンセルまたは一時停止されうる。
【0272】
作業が完了していないとの工程1250での判定に応じて、処理1200は、リーダードローンが計画を更新するか否かを決定する工程1260に進んでよい。例えば、リーダードローンは、フォロワードローンから受信したフィードバック情報および/またはサーバから受信した制御情報などに基づいて、計画を更新することを決定してよい。別の例として、リーダードローンは、作業の状況の変化(例えば、ターゲットの検出、ペイロードの搬送の状態、環境要因の変化、など)に基づいて、計画を更新することを決定してよい。計画が更新されると決定したことに応じて、処理1200は、工程1215に進んでよい。計画が更新されないと決定したことに応じて、処理1200は、工程1240に進んでよい。
【0273】
作業が完了したとの工程1250での判定に応じて、処理1200は、状態がサーバおよび/または制御端末(例えば、クライアント端末)へ提供される工程1255に進んでよい。
【0274】
図12Bは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図12Bの処理1215は、
図1のシステム100のサーバ105、アセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図12Bの処理1215は、
図12Aの工程1215に対応しうる。
【0275】
工程1215aで、リーダードローンは、作業に関する情報を取得する。工程1215bで、リーダードローンは、計画が実施される位置を決定する。工程1215cで、リーダードローンは、フォロワードローンがその位置で実行するタスクまたは要素を決定する。工程1215dで、リーダードローンは、その位置の環境に関する1または複数の特徴を決定する。工程1215eで、リーダードローンは、少なくとも1つのタスクが実行されるエリアのモデルを決定する。様々な実施形態によると、モデルは、アセット群が動作する環境のモデルを含みうる。例えば、モデルは、アセット群が動作しているまたは作業を実行する世界の2Dまたは3Dモデルであってよい。工程1215fで、計画の少なくとも一部が、モデルに少なくとも部分的に基づいて決定される。
【0276】
様々な実施形態によると、リーダードローンに実装されているプランナサービスが、計画を繰り返し改良してよい。例えば、リーダードローンが、さらなる情報(例えば、アセットが動作している状況など、作業に関するより具体的/詳細な情報)を受信すると、リーダードローンは、作業のモデルと、現在のモデルに基づいてタスクを実行するための対応する計画とを更新してよい。一例として、作業の実行の初期に、リーダードローンは、アセット群が動作しているエリアのトポグラフィの簡単な理解を有しうる。時間および作業が進むにつれて、アセット群は、一群のアセット上の様々なセンサまたはカメラを用いて情報を監視およびキャプチャすることができ、情報は、フィードバック情報としてリーダードローンへ返されてよい。
【0277】
図12Cは、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図12Cの処理1215は、
図1のシステム100のサーバ105、アセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。
図12Bの処理1215は、
図12Aの工程1215に対応しうる。
【0278】
工程1215gで、リーダードローンは、タスクに関する高レベルの所定の計画(例えば、事前計画)を取得する。例えば、リーダードローンは、サーバから事前計画を受信してよい。工程1215hで、リーダードローンは、計画の少なくとも一部の実施に関して1または複数のアセットから受信された情報を取得する。一例として、リーダードローンは、対応する計画の実施中にフォロワードローンが取得するフィードバック情報を受信してよい。工程1215iで、リーダードローンは、アセットによって実行されるタスクの少なくとも1つの要素を決定する。リーダードローンは、タスクを構成要素に分解し、要素を実行するために必要な機能(例えば、要素にマッピングされている機能)を決定してよい。リーダードローンは、要素を実行するために必要な機能に一致する機能を備えたアセットを決定してよく、そのアセットに要素を割り当ててよい。工程1215jで、リーダードローンは、タスクの少なくともその要素の実施に関するモデルを決定する。いくつかの実施形態において、リーダードローンは、アセットが要素を実行する環境のモデルを決定する。一例として、要素が道路を走る車を追跡することである場合、リーダードローンは、道路、エリアのトポロジ、エリア内の建物の相対的位置、エリア内の樹木およびその他の物体の相対位置、ならびに、エリア内の車の位置を含む環境のモデルを生成してよい。工程1215kで、リーダードローンは、タスクに関するより低レベルの計画を決定する。より低レベルの計画は、サーバから受信された事前計画よりも詳細または細かい粒度を含みうる。例えば、タスクの事前計画は、車が所定のエリア内で追跡されることを示してよく、より低レベルの計画は、(i)所定のエリア内の道路を走る時に車を追跡する、(ii)追跡されている車両から所定の距離だけ離れる、(iii)車の画像をキャプチャする、(iv)特定の期間に車の追跡の状態についての更新情報を送信する、(v)車が或る位置で停止した場合に警告を送信し、停止の示唆およびタイムスタンプを提供するなど、計画を実施するための要素を含んでよい。
【0279】
図13は、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図13の処理1300は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理1000は、半自律型ドローンによって実行される。処理1300は、リーダードローンによって実行されてよい。
【0280】
工程1305で、ドローンは、実行されるより高レベルのタスクまたは作業に関する情報を取得する。工程1310で、ドローンは、タスクまたは作業の少なくとも一部が実行される環境に関する情報を取得してよい。工程1315で、ドローンは、タスクの少なくとも一部を実行するアセット群を決定する。工程1320で、タスクの一部を実行するアセット群(例えば、アセットのグループまたはチーム)を分割するか否かを決定する。
【0281】
アセット群が分割されないことを工程1320でドローンが決定したことに応じて、処理1300は、工程1325に進んでよい。工程1325で、ドローンは、タスクの少なくとも一部を実施するようアセット群に命令を送信する。工程1330で、ドローンは、フィードバック情報を受信する。例えば、リーダードローンは、1または複数のフォロワードローンからフィードバック情報を受信してよい。工程1335で、リーダードローンは、計画を更新するか否かを決定する。例えば、リーダードローンは、フィードバック情報に少なくとも部分的に基づいて、計画を更新するか否かを決定してよい。
【0282】
計画を更新すると決定したことに応じて、処理1300は、計画が更新される工程1340に進む。計画の更新は、フォロワードローンが動作している環境のモデルの更新し、タスクまたはタスクの要素を実行する能力がモデルの更新または作業の状況の変化に基づいて変化したか否かを判定することを含んでよい。工程1345で、リーダードローンは、更新された計画を送信する。一例として、リーダードローンは、更新された計画を、以前のバージョンの計画(または計画に対応するタスク)に割り当てられたフォロワードローンへ送信してよい。別の例として、計画の更新が、新しい、別の、または、さらなるアセットをタスクに割り当てることを含む場合、リーダードローンは、更新された計画をかかるアセットへ送信してよい。その後、処理1300は、工程1330に戻る。
【0283】
計画が更新されないとの工程1335での決定に応じて、処理1300は、作業が完了したか否かをリーダードローンが判定する工程1350に進んでよい。作業が完了しないとの判定に応じて、処理1300は、工程1305に戻ってよく、処理1300は、再び繰り返されてよい。作業が完了したとの判定に応じて、処理1300は終了してよい。
【0284】
タスクの一部を実行するアセット群を分割するとの工程1320での決定に応じて、処理1300は、パーティションのリーダー(例えば、パーティションリーダー)が決定される工程1335に進んでよい。工程1360で、リーダードローンは、タスクの対応する部分を実行するようパーティションリーダーへ命令を送信してよい。その後、処理1300は、工程1330に進んでよい。パーティションリーダーが、タスクの対応する部分を実行する命令を受信したことに応じて、パーティションリーダーは、パーティションに関するリーダードローンとして処理1300を実行してよい。
【0285】
図14は、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図14の処理1400は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理1000は、半自律型ドローンによって実行される。
【0286】
工程1405で、ドローンが、作業に関する情報を受信する。いくつかの実施形態において、ドローンは、作業の一部(例えば、タスクまたはタスクの要素)を実行するための計画を受信する。ドローンは、作業を実行するよう割り当てられたアセット群の一部を含むパーティションとして作業の一部を実行する命令を受信してよい。様々な実施形態によると、作業に関する情報は、ドローンがパーティションのパーティションリーダーに割り当てられる示唆を含む。
【0287】
工程1410で、ドローンは、情報に少なくとも部分的に基づいて、パーティションのリーダードローン(例えば、パーティションリーダー)として動作することを決定する。
【0288】
工程1415で、パーティションリーダーは、作業の少なくとも1つのタスクを完了するための計画を決定する。いくつかの実施形態において、パーティションリーダーは、パーティションに割り当てられた1または複数のタスクを完了するための1または複数の計画を決定する。パーティションリーダーは、作業(またはパーティションに割り当てられたタスク)のパラメータおよび/または制約、少なくとも1つのタスクに関連付けられている機能または特徴、パーティション内の1または複数のアセットの機能、などの内の1または複数に少なくとも部分的に基づいて、計画を決定してよい。様々な実施形態によると、パーティションリーダーは、作業を実行するよう割り当てられたアセット群のリーダードローンによって実装されるプランナサービスと同様または同じプランニングサービスを実装する。
【0289】
工程1420で、パーティションリーダーは、計画の少なくとも一部の通信先として少なくとも1つのアセットを決定する。いくつかの実施形態において、パーティションリーダーは、計画の少なくとも一部をパーティション内のアセットへ割り当てる。パーティションリーダーは、計画の少なくとも一部の割り当て先としてパーティション内のアセットを決定してよい。例えば、アセットは、アセットの機能、ならびに/もしくは、計画の少なくとも一部に対応するタスクまたは要素に関連付けられている機能に基づいて、決定されてよい。
【0290】
工程1425で、パーティションリーダーは、計画の少なくとも一部を少なくとも1つのアセットへ通信する。いくつかの実施形態において、計画の一部の割り当て先としてパーティション内のアセットを決定したことに応じて、パーティションリーダーは、計画の一部を少なくとも1つのアセットへ送信する。
【0291】
工程1430で、パーティションリーダーは、計画の一部をパーティション内の別のアセットへ通信するか否かを決定する。計画の別の部分が計画の一部を割り当てられると決定したことに応じて、処理1400は、工程1420に進み、パーティションリーダーは、パーティションリーダーが計画の一部を別のアセットへ通信しないことを決定するまで、工程1420、1425、および、1430を繰り返し実行する。
【0292】
工程1435で、パーティションリーダーは、別のタスクのための計画を決定するか否か、および、計画をアセットなどへ送信するか否かを決定する。パーティションリーダーが別のタスクのための計画を決定して送信すると決定したことに応じて、処理1400は、将来の計画が決定されまたはアセットへ送信される必要がないとパーティションリーダーが判定するまで、リーダードローンがタスクのための計画を繰り返し決定し、計画の少なくとも一部を1または複数のアセットへ送信する工程1415に進む。別のタスクのための計画が決定および送信される必要がないと工程1435で判定したことに応じて、処理1400は、工程1440に進む。
【0293】
工程1440で、パーティションリーダーは、計画の少なくとも一部の実施中に情報を取得する。いくつかの実施形態において、パーティションリーダーは、対応する計画の実施中に(パーティション内の)1または複数のフォロワードローンからフィードバック情報を受信する。また、パーティションリーダーは、作業に関する制御情報をサーバ(または作業に割り当てられたアセット群のリーダー)から受信してよい。例えば、制御情報は、作業のパラメータへの修正、アセット群への修正、などに関連しうる。
【0294】
工程1445で、パーティションリーダーは、作業の状態に関する情報を送信する。いくつかの実施形態において、パーティションリーダーは、作業の状態についての更新情報をサーバへ提供してよい。例えば、1または複数のフォロワードローンからフィードバック情報を受信したことに応じて、パーティションリーダーは、様々なフォロワードローンからフィードバックを集計し、および/または、作業の状態を決定してよい。パーティションリーダーは、作業(またはそのタスク)の状態、ならびに/もしくは、アセット群における1または複数のドローンによって取得された情報(例えば、ライブストリームビデオ、画像、現在位置、対応する計画の実施の現在の状態、など)を、サーバへ送信してよい。いくつかの実施形態において、パーティションリーダーは、作業の状態に関する情報を1または複数のフォロワードローンへ送信してよい。例えば、リーダードローンは、作業の状態または計画についての更新情報を提供してよい。いくつかの実施形態において、パーティションリーダーは、作業の状態に関する情報をリーダードローン(例えば、作業を実行するよう最初に割り当てられたアセット群のリーダー)へ提供し、リーダードローンは、次に、作業の状態に関する情報をサーバへ提供する。
【0295】
工程1450で、パーティションリーダーは、パーティションに対応する作業の一部が完了したか否かを判定する。リーダードローンは、作業の一部に関連付けられているタスクすべてがアセット群によって完了されたと判定したことに応じて、作業の一部が完了したと判定してよい。また、パーティションリーダーは、作業がキャンセルまたは一時停止された旨の通知をサーバ(またはリーダードローン)から受信したことに応じて、作業の一部が完了したと判定してよい。一例として、作業は、ユーザインターフェースへのユーザ入力に応じて、キャンセルまたは一時停止されうる。
【0296】
作業が完了していないとの工程1450での判定に応じて、処理1440は、リーダードローンが計画を更新するか否かを決定する工程1460に進んでよい。例えば、パーティションリーダーは、フォロワードローンから受信したフィードバック情報および/またはサーバから受信した制御情報などに基づいて、計画を更新することを決定してよい。別の例として、パーティションリーダーは、作業の状況の変化(例えば、ターゲットの検出、ペイロードの搬送の状態、環境要因の変化、など)に基づいて、計画を更新することを決定してよい。計画が更新されると決定したことに応じて、処理1400は、工程1415に進んでよい。計画が更新されないと決定したことに応じて、処理1400は、工程1240に進んでよい。
【0297】
作業が完了したとの工程1450での判定に応じて、処理1400は、状態がサーバおよび/または制御端末(例えば、クライアント端末)へ提供される工程1455に進んでよい。
【0298】
図15は、本願の様々な実施形態に従って、作業に関連付けられている計画を実施するための方法を示す図である。いくつかの実施形態において、
図15の処理1500は、
図1のシステム100のアセット120、アセット125、および/または、アセット130、ならびに/もしくは、
図3のデバイス300によって実行される。様々な実施形態によると、処理1000は、半自律型ドローンによって実行される。
【0299】
工程1505で、ドローンが、作業に関する情報を受信する。いくつかの実施形態において、ドローンは、作業(例えば、タスクまたはタスクの要素)を実行するための計画を受信する。いくつかの実施形態において、ドローンは、アセット群のリーダードローンから作業に関する情報を受信する。作業に関する情報は、作業を実行するアセット群の示唆を含んでよい。作業に関する情報は、所定のリーダーランキングを含んでよい。
【0300】
工程1510で、ドローンは、作業に関する情報に少なくとも部分的に基づいて、休眠リーダードローンとして動作することを決定する。ドローンは、所定のリーダーランキングに基づいて、休眠リーダーとして動作することを決定してよい。例えば、休眠リーダーは、(例えば、アクティブなアセットの中で)二番目に高いランキングを有するドローンであってよい。いくつかの実施形態において、作業に関する情報は、ドローンが休眠リーダーとして機能するための命令である。
【0301】
工程1515で、休眠リーダードローンは、少なくとも1つのアセットと計画の少なくとも一部を通信する。いくつかの実施形態において、休眠リーダードローンは、計画に関する情報をリーダードローンから受信する。休眠リーダードローンは、リーダードローンによって格納されている作業に関する情報と同期を取ってよい。例えば、休眠リーダーは、リーダードローンのシャドウコピーに対応するものを有してよい。
【0302】
工程1520で、休眠リーダードローンは、計画の対応する部分を実施する。いくつかの実施形態において、休眠リーダードローンは、作業の実行に関連して、1または複数のタスクまたは要素を実行する。いくつかの実施例において、休眠リーダードローンは、計画を決定も実施もしない。例えば、休眠リーダードローンは、リーダードローンのバックアップとして機能してよい。
【0303】
工程1525で、休眠リーダードローンは、計画の少なくとも一部の実施中に情報を取得する。いくつかの実施形態において、計画の少なくとも一部の実施中に取得される情報は、フォロワードローンによって提供されたフィードバック情報、リーダードローンによって提供された同期情報、および/または、休眠リーダードローンの1またはセンサによって取得された情報を含む。リーダードローンへフィードバック情報を送信することに加えて、フォロワードローンは、休眠リーダードローンへフィードバック情報を送信してよい。
【0304】
工程1530で、休眠リーダードローンは、リーダーとして動作するか否かを決定する。いくつかの実施形態において、休眠リーダードローンは、リーダードローンが故障したとの判定に応じて、リーダーとして動作することを決定する。一例として、リーダードローンは、所定の閾値期間などにわたって、休眠リーダードローンまたはアセット群との通信を失っていた場合に、故障したと見なされうる。別の例として、リーダードローンは、リーダードローンがアセット群との通信リンクを有し、通信リンクが所定のサービス品質閾値を下回る場合に、故障したと見なされうる。リーダードローンが、所定の閾値期間にわたって休眠リーダードローンまたはアセット群と通信できなかった場合、休眠ドローンまたはフォロワードローンは、リーダードローンの健全性チェックのためにピングを送信してよい。リーダードローンが、設定された期間内に健全性チェックに応答できなかった場合、リーダードローンは、故障したと見なされうる。
【0305】
休眠リーダードローンがリーダーとして動作しないことを決定したことに応じて、処理1500は、作業の状態に関する情報がリーダードローンへ送信される工程1535に進む。
【0306】
工程1540で、休眠リーダードローンは、作業が完了した旨の示唆が受信されたか否かを判定する。作業が完了した旨の示唆と判定したことに応じて、処理1500は終了する。逆に、作業が完了した旨の示唆が受信されていないと判定したことに応じて、処理1500は、更新された計画が受信されたか否かを休眠リーダードローンが判定する工程1545に進む。更新された計画が受信されたと判定したことに応じて、処理1500は、工程1520に進む。逆に、更新された計画が受信されていないと判定したことに応じて、処理1500は、工程1525に進む。
【0307】
工程1530で、休眠リーダードローンがリーダーとして動作すると決定した場合、処理1500は、休眠リーダードローンがリーダーとして作業に関する情報をロードする工程1550に進む。いくつかの実施形態において、休眠リーダードローンは、作業に関するリーダー情報の同期済みコピーをロードする。例えば、休眠リーダードローンは、リーダードローンでローカルコピーからバックアップされた作業に関する情報のバックアップコピーをロードしてよい。
【0308】
工程1555で、リーダードローン(例えば、以前の休眠リーダードローン)は、タスクの少なくとも一部を完了させるための計画を決定する。
【0309】
工程1560で、リーダードローンは、計画の少なくとも一部で完了させるアセットを決定する。
【0310】
工程1565で、リーダードローンは、計画の少なくとも一部をアセットへ通信する。
【0311】
工程1570で、リーダードローンは、計画の一部を別のアセットへ通信するか否かを決定する。計画の一部が別のアセットへ通信されると決定したことに応じて、処理1500は、工程1560に戻る。逆に、計画の一部が別のアセットへ通信されないと決定したことに応じて、処理1500は、(例えば、計画が決定されて割り当てられる)別のタスクが存在するか否かを工程1575でリーダードローンが判定する工程1570に進む。別のタスクが存在すると工程1575で判定したことに応じて、処理1500は、工程1555に戻る。別のタスクが存在しないと工程1575で判定したことに応じて、処理1500は、リーダードローンが計画の少なくとも一部の実施中に情報を取得する工程1580に進む。例えば、リーダードローンは、フォロワードローンからフィードバック情報を受信してよい。
【0312】
工程1585で、リーダードローンは、作業の状態に関する情報を送信する。リーダードローンは、作業の状態に関する情報をサーバ(例えば、制御センター)および/またはクライアント端末へ送信してよい。リーダードローンは、作業の状態に関する情報を1または複数のフォロワードローンへ送信してもよい。
【0313】
工程1590で、リーダードローンは、作業が完了したか否かを判定する。作業が完了したと工程1590で判定したことに応じて、処理1500は終了する。逆に、作業が完了していないとの工程1590での判定に応じて、処理1500は、リーダードローンが計画を更新するか否かを決定する工程1595に進む。一例として、作業は、タスクが完了していないとの判定に応じて、完了していないと判定される(例えば、ドローンが道路をスキャンするタスクを課せられ、ドローンが道路における一連の急カーブを維持できず、道路の一部のスキャンをミスした場合、タスクは完了していないと見なされ、ドローンは引き返し、道路のミスした部分を再スキャンしてよい)。計画を更新するとの工程1595での決定に応じて、処理1500は、工程1555に進む。逆に、計画が更新されないとの決定に応じて、処理1500は、工程1580に進む。
【0314】
図16Aは、本願の様々な実施形態に従って、離散的表現を示す図である。
図16Aに示す例において、離散的表現1600は、ボクセルに対応する複数の離散的要素を含む。離散的表現1600は、
図1のシステム100、
図3のデバイス300、などによって実施されてよい。
【0315】
本明細書に用いられているように、「ボクセル」という用語は、三次元空間における規則的なグリッド上の値に対応する。例えば、ボクセルは、離散的表現の離散的要素に対応する。
【0316】
様々な実施形態によると、3-D表現内の各離散的要素(例えば、セル)は、地理的位置の異なる部分に対応する。例えば、地理的位置の部分は、離散的表現1600を決定することに関連して、3-D表現内の対応する離散的要素にマッピングされる。
図16Aに示すように、離散的表現1600の3-Dの次元は、x軸、y軸、および、z軸に対応する。z軸は、重力に平行な方向に対応する。一例として、z軸に提供される離散的要素の数は、作業の構成に関連付けられている最大高度または海抜(例えば、作業の構成中にユーザによって入力されたパラメータ、作業を実行するために選択されたアセット群の中のアセットの最大高度能力、デフォルトの最大高度または海抜、など)に少なくとも部分的に基づいて決定される。
【0317】
図16Aに示すように、情報のセット1610が、それぞれ、離散的表現1600の1セットの離散的要素にマッピングまたは関連付けられている。いくつかの実施形態において、離散的表現1600内の各離散的要素は、それにマッピングされた情報を有する。例えば、離散的要素は、それにマッピングされた異なるタイプの情報にそれぞれ対応する1または複数のメタデータフィールドを有する。離散的要素にマッピングまたは関連付けられる情報のタイプの例は、離散的要素がキープインエリアとして識別される位置に対応するか否かの示唆、離散的要素がキープアウトエリアとして識別される位置に対応するか否かの示唆、離散的要素が占有されているか否かの示唆、離散的要素が利用可能でありまたは占有されていないか否かの示唆、離散的要素内のアセットが(例えば、リーダードローン、タワー、または、地上ステーションなどの現在の位置に対して)クリアな見通し線を有するか否かの示唆、ターゲットが離散的要素に含まれるか否かの示唆、離散的要素に含まれるターゲットの識別子、離散的要素が悪天候を有しまたは経験しているか否かの示唆、もしくは、気象のタイプ(例えば、晴天、雨天、風、温度、風向きおよび風速、など)、を含む。
【0318】
一般に、地形の離散化は、距離が増し、地球の曲率が顕著になりまたは計算にとって重要になるにつれて、破綻する。例えば、3-D表現内の各離散的要素が同じサイズの体積に対応する場合、地球の曲率は、3-D表現の底面を特定の交点で地球に接する平面に対応させ、3-D表現がさらにx方向またはy方向に伸びるにつれて、3-D表現は、地球表面からますます逸脱することになる。いくつかの実施形態において、離散的表現1600は、地球の曲率に少なくとも部分的に基づいて生成される。例えば、システムは、z軸が重力の方向(または離散的要素に対応する位置で地球表面に垂直である方向)に対応するように実空間を3-D表現に変換する方法で、離散的表現1600を生成する時に地球の曲率を考慮に入れる。別の例として、3-D表現がx方向またはy方向の原点からどれだけ横移動されているかに関わらず、z軸は、重力の方向に対応する。
【0319】
様々な実施形態によると、離散的表現は、1または複数のタスクをモデリングすることに関連して用いられる。例えば、システムは、離散的表現および関連情報(例えば、地理的位置ならびに/もしくは1または複数のタスクに関する情報のフィールドを含むメタデータ)を参照(例えば、検索)する。一例として、システムは、第1点に対応する第1離散的要素を決定し、第2点に対応する第2離散的要素を決定し、そして、第1離散的要素および第2離散的要素を接続して、アセットが通ることのできる連続的な(例えば、隣接する)離散的要素のセット(例えば、離散的要素は占有されていない、など)によって、第1点から第2点までの経路を決定する。連続的な(例えば、隣接する)離散的要素のセットのセットを決定するために、システムは、1セットの連続的なアセットを発見/決定するために離散的表現にわたって検索する。いくつかの実施形態において、占有されていないことが示されている離散的要素は、計画(例えば、飛行経路)を決定することに関連して検索可能であり、占有されていることが示されている離散的要素は、検索可能ではない。一例として、計画は、離散的表現の1または複数の離散的要素の占有に基づいて決定される。
【0320】
作業(例えば、1または複数のアセットの一群が実行する1または複数のタスク)は、一般に、少なくともx方向およびy方向の距離にわたって伸びる。したがって、作業(例えば、1または複数のアセットの一群が実行する1または複数のタスク)に対応する地理的位置のモデルは、大きい離散的表現および対応する多数の離散的要素を含む。様々な実施形態によると、計画(例えば、フォロワードローンを方向付けるための計画、アセットの飛行経路、など)を決定することに関連して離散的表現1600の迅速な処理を支援するために、システムは、離散的要素がz方向に伸びる程度を制限する離散的表現を作成する。例えば、高度/海抜は通常、構成された作業(例えば、ユーザ入力、アセット機能、および/または、デフォルト設定)に従って制限されるので、離散的表現1600は、処理されるセルの数を制限するために、同様に制限されうる。いくつかの実施形態において、離散的表現1600は、400×400×100のグリッドセグメントを備える。一例として、離散的表現1600は、x方向に沿った次元に400の離散的要素、y方向に沿った次元に400の離散的要素、おそび、z方向に沿った次元に100の離散的要素を備える。様々なその他の寸法の離散的表現1600が実装されてもよい。例えば、離散的表現1600内の(例えば、すべての次元または単一の次元における)離散的要素の数は、ユーザ入力などに従って構成可能である。
【0321】
いくつかの実施形態において、1または複数のタスクのための計画を決定することに関連付けられている地理的位置/環境のモデリングは、作業もしくは1または複数のタスクに対応する地理的位置(例えば、ユーザによって定義された地理的位置)のサイズに関わらず、1または複数の方向における同じ数の離散的要素など、同じ寸法を有する地理的位置環境の離散的表現を用いる。したがって、地理的位置が大きくなるほど、離散的表現の粒度は粗くなる。逆に、地理的位置が小さくなるほど、離散的表現の粒度は細かくなる。モデリング(例えば、離散的表現)の解像度は、モデル化される地理的位置が小さいほど増大する。したがって、いくつかの実施形態において、リーダードローンが作業のタスク/要素の特定の一部を割りあて、フォロワードローンがタスク/要素の一部を実行するよう配備されると、フォロワードローンは、フォロワードローンに割りあてられたタスク/要素の特定の一部に対応する地理的位置のモデルを生成する。一例として、フォロワードローンに割りあてられたタスク/要素の特定の一部に対する地理的位置のモデル(例えば、フォロワードローンによって生成された離散的表現などの離散的表現1600)は、作業(例えば、リーダードローンがフォロワードローンを管理および指示して実行する1または複数のタスクの上位集合)に対する地理的位置のモデルよりも高い解像度を有する。
【0322】
図16Bは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。
図16Bに示す例において、離散的表現1650は、地理情報で埋められている。例えば、離散的表現1650は、樹木、道路、車、丘陵、および、地上制御ステーション1620の表現を含む。同様に、離散的表現1650は、複数の離散的要素の少なくとも一部を備えた地理的位置に関する1または複数のパラメータで注釈付けられる。例えば、情報のセット1610は、1セットの情報フィールドを含み、情報のセット1610は、地理的位置に関する情報で埋められ、離散的表現1650にマッピングされる。一例として、
図16Bに示すように、情報のセット1610は、(i)1または複数の離散的要素がキープインエリアに対応するか否かを示す情報、(ii)1または複数の離散的要素が占有されているか占有されていないかを示す情報、(iii)1または複数の離散的要素がクリアな見通し線(例えば、クリアな通信/ラジオ線)に対応するか否かを示す情報、(iv)1または複数の離散的要素がターゲットを含むか否かを示す情報、(v)1または複数の離散的要素が悪天候にさらされているか否かを示す情報、などを含む。
【0323】
図16Cは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。図に示すように、一群のドローン(例えば、D1 1630およびD2 1640、など)が、離散的表現1675に対応する地理的位置に配備されている。一例として、作業は、例えば離散的要素(x=2,y=4,z=0)にあるターゲットを追跡/監視することを含む。様々な実施形態によると、リーダードローンD1 1630は、ターゲット1670を追跡/監視するための計画をフォロワードローンD2 1640へ提供する。一例として、リーダードローンD1 1630は、飛行計画1680をフォロワードローンD2 1640へ提供する。別の例として、リーダードローンD2 1630は、フォロワードローンD2 1640が、ターゲット1670を追跡/監視するタスクを実行する示唆を提供し、フォロワードローンD2 1640は、フォロワードローンD2 1640がターゲットへの見通しを有する位置に移動するための飛行計画1680を決定する。
【0324】
図16Cに示す例において、ターゲット1670は、地上制御ステーション1620またはリーダードローンD1 1630の視線の中にない。例えば、丘陵/山が、地上制御ステーション1620とターゲット1670との間に位置している。いくつかの実施形態において、ターゲット1670を監視するタスクを実行するために、フォロワードローンD2 1640は、ターゲット1670への見通しを有する位置に移動するよう配備される。システムは、フォロワードローンD2 1640が移動する際の飛行計画1680を決定する。
図16Cに示すように、飛行計画1680は、樹木を越え丘陵を迂回するようにフォロワードローンD2 1640を方向付けるよう構成されている。いくつかの実施形態において、経路に沿ってドローンを移動させることに関連付けられているコスト関数により、丘陵を越えて飛行するのに十分な高度までドローンを垂直移動させると、ドローンがx方向および/またはy方向に横移動して丘陵を迂回するよりもコストが掛かることが示される。一例として、x方向および/またはy方向の移動は、z方向の移動(例えば、高度を上げる)よりもドローンにとって効率的である。したがって、x方向および/またはy方向に移動する或る程度距離の長い飛行計画の方が、z方向に或る程度の距離の移動を必要とする短い距離の飛行計画よりも効率的である(例えば、コストが安い)。
【0325】
図17Aは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。
図17Aに示す例において、離散的表現1700は、ボクセルに対応する複数の離散的要素を含む。離散的表現1700は、
図1のシステム100、
図3のデバイス300、などによって実施されてよい。
【0326】
様々な実施形態によると、システムは、作業の寿命(例えば、作業が一時停止、完了、または、終了されるまでの時間など)の間に離散的表現1700を繰り返し更新する。一例として、離散的表現1700は、作業の開始時に生成される。作業が地上制御ステーション1710などで開始される場合、地理的位置ならびに/もしくは作業に関連付けられている1または複数のタスクに関する情報が、離散的表現1700および関連付けられている情報のセット1705(例えば、離散的表現1700の1または複数の離散的要素に関連付けられているメタデータ)に追加される。いくつかの実施形態において、離散的表現1700は、情報のセット1705で注釈付けられる。
【0327】
様々な実施形態によると、情報のセット1705に含まれる情報は、サーバまたはローカルサービス(例えば、マップまたは地理サービス、様々な配備アセット群を管理するサービス)、ならびに/もしくは、サードパーティサービス(例えば、気象サービス、マップサービス、など)に事前に格納されている作業の構成(例えば、定義)の1または複数を介して取得される。
【0328】
図17Aに示す例のように、離散的表現1700の一部のみが、対応する情報で埋められる。例えば、地上制御ステーション1710から見える1715の部分のみが提供される。丘陵1720は、丘陵1720の反対側の地物/情報離散的要素への視界を遮る。
【0329】
図17Bは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。
図17Bに示す例において、リーダードローンD1 1730およびフォロワードローンD2 1735が配備されている。例えば、リーダードローンD1 1730およびフォロワードローンD2 1735は、作業もしくは作業に関連付けられている1または複数のタスクの開始に関連して配備されている。いくつかの実施形態において、リーダードローンD1 1730は、1720の反対側のエリアを観察/監視するために(例えば、ターゲットを識別するなどのために)位置1745へ移動するよう、フォロワードローンD2 1740に命令する。フォロワードローンD2 1735のための飛行計画1740が決定され、フォロワードローンD2 1735は、飛行計画1740の経路に沿って(例えば、(x=0,y=0,z=3)へ)移動する。いくつかの実施形態において、フォロワードローンD2 1735が飛行計画1740の経路に沿って移動したことに応じて(または、その間に)、離散的表現1725に関連付けられている情報のセット1705が更新される。例えば、フォロワードローンD2 1735は、1または複数のタスクならびに/もしくは地理的位置に関するフィードバック情報を(例えば、リーダードローンD1 1730へ)通信する。
図17Bに示すように、離散的表現1725は、道路1715に関するさらなる情報を含むように更新される。さらに、情報のセット1705は、(x=0,y=0,z=3)に位置する離散的要素に関連付けられている情報を含むように更新される。いくつかの実施形態において、注釈付き表現が、フォロワードローンD2 1735およびリーダードローンD1 1730の各々でローカルに更新される。
【0330】
図17Cは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。
図17Cに示すように、フォロワードローンD2 1735が(x=0,y=2,z=3)に位置する離散的位置へ移動すると、離散的表現1750および/または情報のセット1705が更新される(例えば、注釈付き表現が更新される)。例えば、フォロワードローンD2 1735が(x=0,y=2,z=3)へ移動すると、フォロワードローンD2は、より多くの道路1715および樹木1755への見通しを有するようになる。フォロワードローンD2 1735は、フォロワードローンD2 1735でローカルに注釈付き表現を更新し、ならびに/もしくは、リーダードローンD1 1730へフィードバック情報を通信して、リーダードローンD1 1730が、それに対応して、ローカルに格納された離散的表現1750および/または情報のセット1705(例えば、リーダードローンD1 1730に格納された注釈付き表現)を更新する。
【0331】
図17Dは、本願の様々な実施形態に従って、地理的位置の離散的表現を示す図である。
図17Dに示すように、フォロワードローンD2 1735が(x=0,y=3,z=4)に位置する離散的位置へ移動すると、離散的表現1775および/または情報のセット1705が更新される(例えば、注釈付き表現が更新される)。例えば、フォロワードローンD2 1735が(x=0,y=3,z=4)へ移動すると、フォロワードローンD2は、より多くの道路1715への見通しを有するようになり、フォロワードローンD2 1735は、道路1715を移動するターゲット1780を識別する。フォロワードローンD2 1735は、フォロワードローンD2 1735でローカルに注釈付き表現を更新し、ならびに/もしくは、リーダードローンD1 1730へフィードバック情報を通信して、リーダードローンD1 1730が、それに対応して、ローカルに格納された離散的表現1775および/または情報のセット1705(例えば、リーダードローンD1 1730に格納された注釈付き表現)を更新する。一例として、離散的表現1775に注釈付けする情報のセット1705は、(x=2,y=5,z=0)に位置する離散的要素がターゲット(例えば、ターゲット1780)を含むことを識別するエントリを含む。
【0332】
図18は、本願の様々な実施形態に従って、1または複数のタスクを実行するための計画を決定する方法を示す図である。様々な実施形態によると、処理1800は、
図1のシステム100および/または
図300のデバイス300によって少なくとも部分的に実行される。実施形態において、処理1800は、計画を決定または更新することに関連して実行される。処理1800は、作業の実行中に実行されてよい。処理1800は、1または複数のタスクを実行するよう割りあてられたアセット群のリーダードローンおよび/またはフォロワードローンによって実行される。
【0333】
工程1810で、1または複数のタスクに関連付けられているデータが取得される。様々な実施形態によると、1または複数のタスクに関連付けられているデータの取得は、
図7Aの処理700の工程710、
図8Cの処理835の工程835、
図9Bの処理930の工程931、
図9Aの処理900の工程950、
図9Eの処理950の工程952-1、
図10Aの処理1000の工程1010、
図10Bの処理1020の工程1021、
図12Bの処理1215の工程1215a、
図13の処理1300の工程1305および/または工程1310、
図14の処理1400の工程1405および/または工程1440、ならびに/もしくは、
図15の処理1500の工程1505および/または工程1525、の内の1または複数を含む。
【0334】
いくつかの実施形態において、1または複数のタスクに関連付けられているデータは、作業もしくは1または複数のタスクが実行される地理的位置、ならびに/もしくは、作業に関連付けられている1または複数の1または複数の特徴またはパラメータに関連付けられている。一例として、1または複数のタスクに関連付けられているデータは、(例えば、ユーザ入力などに基づいた)作業の構成などと共に、サーバ(例えば、作業制御サービスを提供するサーバ)から受信される。別の例として、1または複数のタスクに関連付けられているデータは、作業を実行するアセット群の中の別のアセットから受信される。リーダードローンの場合、リーダードローンは、1または複数のタスクの実行の状態への更新に関するフィードバック情報など、1または複数のタスクに関連付けられているデータを、フォロワードローンから受信する。フォロワードローンの場合、フォロワードローンは、1または複数のタスクに関連付けられているデータを、アセット群内のリーダードローンおよび/または別のアセットから受信する。別の例として、1または複数のタスクに関連付けられているデータは、作業に関するサービス/情報(気象サービスなど)、地理的位置に配備された他のアセットに関する情報、マッピングまたは地理サービス、などを提供するサーバのようなサードパーティサービスから受信される。
【0335】
工程1820で、地理的位置の離散的表現が決定される。様々な実施形態によると、離散的表現は、
図16Aの離散的表現1600および/または
図17Aの離散的表現1700に対応する。離散的表現は、1または複数のタスクに関連付けられているデータの少なくとも一部に少なくとも部分的に基づいて生成される。いくつかの実施形態において、離散的表現を決定することは、地理的位置の実世界表現を所定の数/寸法の離散的要素に変換することを含む。例えば、特定の離散的要素によって表現される空間の体積または量は、離散的表現が生成される地理的位置のサイズに少なくとも部分的に基づく。
【0336】
工程1830で、離散的表現に注釈付けされる。いくつかの実施形態において、離散的表現は、地理的位置に関する1または複数のパラメータならびに/もしくは1または複数のタスクに関する情報に少なくとも部分的に基づいて(例えば、それらを含むように)注釈付けされる。一例として、離散的表現は、1または複数のパラメータが地理的位置に関係するとの判定に応じて、注釈付けされる。いくつかの実施形態において、離散的表現に注釈付けすることは、離散的表現内の離散的要素の少なくとも一部に関する情報を設定/追加すること(例えば、
図16Aの情報のセット1610および/または
図17Aの情報のセット1705を設定することなど)を含む。
【0337】
様々な実施形態によると、離散的表現は、注釈付き表現(例えば、地理的位置の注釈付き表現)を作成することに関連して注釈付けされる。一例として、離散的表現に注釈を付けることは、メタデータを設定し、もしくは、離散的表現の1または複数の離散的要素とメタデータを関連付ける。
【0338】
工程1840で、1または複数のタスクを実行するための計画が決定される。様々な実施形態によると、1または複数のタスクを実行するための計画は、注釈付き表現に少なくとも部分的に基づいて決定される。計画の決定は、実行される1または複数のタスク(例えば、1または複数のタスクに関連付けられている1または複数の特徴)ならびに地理的位置に関連付けられている1または複数のパラメータに基づく。一例として、地理的位置に関連付けられている1または複数のパラメータは、注釈付き表現に含まれる。
【0339】
工程1850で、計画に関する情報が通信される。いくつかの実施形態において、計画に関する情報は、アセット群の中の別のアセットへ送信される。一例として、リーダードローンの場合、リーダードローンは、地上制御ステーションならびに/もしくは1または複数のフォロワードローンへ計画に関する情報を送信し、リーダードローンは、地上制御ステーションならびに/もしくは1または複数のフォロワードローンからフィードバック情報などの情報を受信する。別の例として、フォロワードローンの場合、フォロワードローンは、リーダードローンならびに/もしくは1または複数のタスクを実行するアセット群の中の1または複数の他のアセットへ計画に関する情報を送信し、フォロワードローンは、リーダードローンならびに/もしくはアセット群の中の1または複数の他のアセットから更新情報を受信する。
【0340】
工程1860で、更新された情報が受信されたか否かについての判定がなされる。様々な実施形態によると、ドローンは、アセット群の中の別のアセットから、または、サーバから、更新された情報を受信してよい。
【0341】
いくつかの実施形態において、更新された情報は、作業もしくは1または複数のタスクが実行される地理的位置、ならびに/もしくは、作業もしくはタスクの内の1または複数のタスクに関連付けられている1または複数の1または複数の特徴またはパラメータに関連付けられている。一例として、1または複数のタスクに関連付けられている更新済みの情報は、(例えば、ユーザ入力などに基づいた)作業への変更などと共に、サーバ(例えば、作業制御サービスを提供するサーバ)から受信される。別の例として、1または複数のタスクに関連付けられているデータは、作業を実行するアセット群の中の別のアセットから受信される。リーダードローンの場合、リーダードローンは、1または複数のタスクの実行の状態への更新に関するフィードバック情報、もしくは、フォロワードローンのセンサまたはカメラによって検出された地理的位置の一部の情報など、更新された情報をフォロワードローンから受信する。フォロワードローンの場合、フォロワードローンは、1または複数のタスクに関連付けられているデータを、アセット群内のリーダードローンおよび/または別のアセットから受信する。別の例として、1または複数のタスクに関連付けられているデータは、作業に関するサービス/情報(気象サービスなど)、地理的位置に配備された他のアセットに関する情報、マッピングまたは地理サービス、別のアセットの飛行計画、などを提供するサーバのようなサードパーティサービスから受信される。
【0342】
更新された情報が受信されたと工程1860で判定したことに応じて、処理1800は、工程1830に戻る。いくつかの実施形態において、注釈付き表現は、更新された情報が受信されたと判定したことに応じて、更新された情報で繰り返し更新される。
【0343】
更新された情報が受信されていないと工程1860で判定したことに応じて、処理1800は、処理が完了したか否かについての判定がなされる工程1870に進む。一例として、処理1800は、ユーザ入力(作業をキャンセルまたは一時停止する入力など)に少なくとも部分的に基づいて、完了と判定されてよい。別の例として、処理は、ユーザが作業の終了を選択したことに応じて、完了と判定されてよい。別の例として、処理は、作業の完了(例えば、作業に関連付けられている1または複数のタスクの完了)に応じて、完了と判定されてよい。処理が完了したと見なされた場合、処理1800は終了する。そうでなければ、処理1800は、処理が、更新された情報について調査/監視を行う工程1860に戻る。
【0344】
図19Aは、本願の様々な実施形態に従って、飛行計画を決定する方法を示す図である。様々な実施形態によると、処理1900は、
図1のシステム100および/または
図300のデバイス300によって少なくとも部分的に実行される。実施形態において、処理1900は、計画(飛行計画など)を決定または更新することに関連して実行される。処理1900は、作業の実行中に実行されてよい。処理1900は、1または複数のタスクを実行するよう割りあてられたアセット群のリーダードローンおよび/またはフォロワードローンによって実行される。
【0345】
工程1910で、1または複数のタスクに関連付けられているデータが取得される。様々な実施形態によると、1または複数のタスクに関連付けられているデータの取得は、
図7Aの処理700の工程710、
図8Cの処理835の工程835、
図9Bの処理930の工程931、
図9Aの処理900の工程950、
図9Eの処理950の工程952-1、
図10Aの処理1000の工程1010、
図10Bの処理1020の工程1021、
図12Bの処理1215の工程1215a、
図13の処理1300の工程1305および/または工程1310、
図14の処理1400の工程1405および/または工程1440、ならびに/もしくは、
図15の処理1500の工程1505および/または工程1525、の内の1または複数を含む。1または複数のタスクと共にデータを取得する工程は、
図18の処理1800の工程1810と同様でありうる。
【0346】
工程1920で、地理的位置の離散的表現が決定される。様々な実施形態によると、離散的表現は、
図16Aの離散的表現1600および/または
図17Aの離散的表現1700に対応する。いくつかの実施形態において、離散的表現は、
図18の処理1800の工程1820と同様の方法で決定される。
【0347】
工程1930で、離散的表現に注釈付けされる。いくつかの実施形態において、離散的表現は、地理的位置に関する1または複数のパラメータならびに/もしくは1または複数のタスクに関する情報に少なくとも部分的に基づいて(例えば、それらを含むように)注釈付けされる。一例として、離散的表現は、1または複数のパラメータが地理的位置に関係するとの判定に応じて、注釈付けされる。いくつかの実施形態において、離散的表現に注釈付けすることは、離散的表現内の離散的要素の少なくとも一部に関する情報を設定/追加すること(例えば、
図16Aの情報のセット1610および/または
図17Aの情報のセット1705を設定することなど)を含む。いくつかの実施形態において、離散的表現は、
図18の処理1800の工程1830と同様の方法で注釈付けされる。
【0348】
様々な実施形態によると、離散的表現に注釈付けする工程は、アセット群の中の別のアセットに関連付けられている1または複数の飛行計画を登録することを含む。例えば、アセット群の中のドローンから飛行計画を受信したことに応じて、離散的表現は、飛行計画が交差/占有する離散表現の離散的要素と飛行計画を関連付けるように注釈付けされる。別の例として、離散的表現は、離散的表現の影響を受ける離散的要素(例えば、飛行計画が交差/占有する離散的要素)を設定することで、かかる離散的要素が、少なくとも飛行計画に関連付けられている期間にわたって、または、飛行計画に関連付けられているドローンが特定の離散的要素を通過した時間まで、占有されていた旨の示唆を設定するように注釈付けされる。飛行計画の影響を受ける離散的要素のセットは、対応するドローンが飛行計画を実施すると、(例えば、ドローンが通った離散的要素を非占有に設定するため、および、別のアセットによる利用のために離散的要素を解放するため、などの目的で)更新される。
【0349】
工程1940で、ドローンのための飛行計画が決定される。様々な実施形態によると、飛行計画は、離散的表現(例えば、注釈付き表現)の注釈に少なくとも部分的に基づいて決定される。いくつかの実施形態において、ドローンは、地理的位置ならびに/もしくは1または複数のタスクに関連付けられているパラメータに基づいて、飛行計画を決定する。例えば、ドローンは、現在位置(例えば、現在位置に対応する離散的要素)、目的地位置(例えば、目的地位置に対応する離散的要素)、ならびに、1または複数のタスクに関連付けられているパラメータ(例えば、ドローンに割りあてられたタスクのタイプ)に基づいて、飛行計画を決定する。別の例として、飛行計画は、離散的表現内の1セットの離散的要素(例えば、現在位置と目的地位置との間の離散的要素、現在位置および目的地位置をつなぐ飛行計画に沿った一連の離散的要素、など)の1または複数のパラメータにさらに基づく。
【0350】
いくつかの実施形態において、リーダードローンは、アセット群の中の異なるフォロワードローンのための各計画など、複数の飛行計画を決定する。リーダードローンは、(例えば、アセット群の中での衝突回避を保証するために)互いに回避するための複数の飛行計画などを計画する。
【0351】
工程1950で、飛行計画に関連付けられている情報が通信される。様々な実施形態によると、飛行計画を決定したことに応じて、飛行計画は、アセット群の中の1または他のアセットへ通信される。一例として、飛行計画は、(例えば、飛行計画もしくは1または複数のタスクに関する情報のための情報フィード/チャネル上で)アセット群の中の他のアセットへ発行される。飛行計画に関連付けられている情報は、他のアセットが、かかる情報をローカルに格納し、ならびに/もしくは、飛行計画が対応する離散的要素に影響を与えると予測される時間中、または、次の通信がドローンの飛行状態についての更新情報を示し、飛行計画の以前の部分に対応する離散的要素のクリアリングを提供するまで、飛行計画に対応する離散的要素が占有されていることを示すように、地理的位置のそれぞれの注釈付き表現を更新することを可能にするために、アセット群の中の他のアセット(例えば、フォロワードローンが情報を通信する場合のリーダードローン、フォロワードローン、など)へ通信される。
【0352】
工程1960で、更新された情報が受信されたか否かについての判定がなされる。様々な実施形態によると、ドローンは、アセット群の中の別のアセットから、または、サーバから、更新された情報を受信してよい。
【0353】
いくつかの実施形態において、更新された情報は、作業もしくは1または複数のタスクが実行される地理的位置、ならびに/もしくは、作業もしくはタスクの内の1または複数のタスクに関連付けられている1または複数の1または複数の特徴またはパラメータに関連付けられている。一例として、1または複数のタスクに関連付けられている更新済みの情報は、(例えば、ユーザ入力などに基づいた)作業への変更などと共に、サーバ(例えば、作業制御サービスを提供するサーバ)から受信される。別の例として、1または複数のタスクに関連付けられているデータは、作業を実行するアセット群の中の別のアセットから受信される。リーダードローンの場合、リーダードローンは、1または複数のタスクの実行の状態への更新に関するフィードバック情報、もしくは、フォロワードローンのセンサまたはカメラによって検出された地理的位置の一部の情報など、更新された情報をフォロワードローンから受信する。フォロワードローンの場合、フォロワードローンは、1または複数のタスクに関連付けられているデータを、アセット群内のリーダードローンおよび/または別のアセットから受信する。別の例として、1または複数のタスクに関連付けられているデータは、作業に関するサービス/情報(気象サービスなど)、地理的位置に配備された他のアセットに関する情報、マッピングまたは地理サービス、別のアセットの飛行計画、などを提供するサーバのようなサードパーティサービスから受信される。
【0354】
更新された情報が受信されたと工程1960で判定したことに応じて、処理1900は、工程1930に戻る。いくつかの実施形態において、注釈付き表現は、更新された情報が受信されたと判定したことに応じて、更新された情報で繰り返し更新される。注釈付き表現が繰り返し更新されたことに応じて、飛行計画は、繰り返し決定/更新される(例えば、飛行計画を同じに維持するか否か、または、飛行計画を更新するか否か、などの決定がなされる)。
【0355】
更新された情報が受信されていないと工程1960で判定したことに応じて、処理1900は、処理が完了したか否かについての判定がなされる工程1970に進む。一例として、処理1900は、ユーザ入力(作業をキャンセルまたは一時停止する入力など)に少なくとも部分的に基づいて、完了と判定されてよい。別の例として、処理は、ユーザが作業の終了を選択したことに応じて、完了と判定されてよい。別の例として、処理は、作業の完了(例えば、作業に関連付けられている1または複数のタスクの完了)に応じて、完了と判定されてよい。処理が完了したと見なされた場合、処理1900は終了する。そうでなければ、処理1900は、処理が、更新された情報について調査/監視を行う工程1960に戻る。
【0356】
図19Bは、本願の様々な実施形態に従って、飛行計画を決定する方法を示す図である。様々な実施形態によると、
図19Bの処理1940は、
図19Aの処理1900の工程1940に関連して実行される。様々な実施形態によると、処理1940は、
図1のシステム100および/または
図300のデバイス300によって少なくとも部分的に実行される。実施形態において、処理1940は、計画(飛行計画など)を決定または更新することに関連して実行される。処理1940は、作業の実行中に実行されてよい。処理1940は、1または複数のタスクを実行するよう割りあてられたアセット群のリーダードローンおよび/またはフォロワードローンによって実行される。
【0357】
工程1941で、現在位置が決定される。いくつかの実施形態において、現在位置は、飛行計画が決定されるアセットに関連付けられている。現在位置は、アセットが位置する離散的表現の離散的要素を示す。いくつかの実施形態において、アセットのGPS位置が決定され、GPS位置に対応する離散的要素が決定される。一例として、現在位置は、アセットから受信されたフィードバック情報に少なくとも部分的に基づいて決定される。別の例として、アセットの現在位置は、地理的位置のローカルに格納された注釈付き表現に少なくとも部分的に基づいて決定される。例えば、注釈付き表現は、アセットが位置することをメタデータが示す離散的要素についてクエリされる。
【0358】
工程1942で、ターゲット位置(または目的地位置)が決定される。ターゲット位置は、アセットが移動する離散的表現の離散的要素を示す。ターゲット位置は、アイテムに関連付けられている計画またはタスクに少なくとも部分的に基づいて決定される。一例として、フォロワードローンのためのタスクが道路または建物の監視を実行することであると、リーダードローンが決定した場合、ターゲット位置は、道路または建物に対応する位置に決定される。別の例として、フォロワードローンのためのタスクがターゲットの迎撃またはターゲットの監視であると、リーダードローンが決定した場合、ターゲット位置は、ターゲットの位置に少なくとも部分的に基づいて決定される。例えば、ターゲットの位置は、迎撃/監視されるターゲットを含む離散的要素について注釈付き表現にクエリすることによって決定される。
【0359】
工程1943で、現在位置からターゲット位置までの連続的または隣接する離散的要素のセットが決定される。連続的または隣接する離散的要素のセットは、注釈付き表現に少なくとも部分的に基づいて決定される。例えば、連続的または隣接する離散的要素のセットは、アセットが現在位置からターゲット位置へ移動できる経路に対応する。いくつかの実施形態において、連続的または隣接する離散的要素のセットは、占有されていると示されていないまたは占有されていないと示されている離散的要素のみを含む。
【0360】
工程1944で、工程1943において決定された連続的な離散的要素のセットについて、コスト関数の値が決定される。いくつかの実施形態において、連続的な離散的要素のセットに対応する飛行計画によって現在位置からターゲット位置までアセットを移動させることに関連付けられているコストが決定される。様々な実施形態によると、コスト関数は、1または複数の変数を含む。いくつかの実施形態において、1または複数の変数の各々は、対応する重み付け(例えば、0から1の間、など)を有する。コスト関数内の変数は、現在位置からターゲット位置までアセットを移動させる努力の量、損失のリスク、飛行経路を移動する時間、などに関係しうる。コスト関数の例は、(i)飛行計画の長さ、(ii)飛行計画が垂直上昇(例えば、より高い高度へのアセットの移動)を含む程度、(iii)リーダードローンまたは他のアセットまたは制御ステーションとの通信見通し線(例えば、ラジオ見通し線)を維持する飛行計画の程度、(iv)悪天候を含む飛行計画の程度、(v)アセットを損失のリスク(例えば、損失の閾値可能性を超える損失のリスク)にさらす飛行計画の程度、(vi)連続的な離散的要素のセットの飛行経路に沿って現在位置からターゲット位置へアセットが移動するのに必要な時間、などを含む。様々なその他の変数が、コスト関数に関連して実装されてもよい。
【0361】
工程1945で、連続的な離散的要素の別のセットを決定するか否かについての決定がなされる。
【0362】
いくつかの実施形態において、システムは、連続的な離散的要素がコスト閾値(例えば、所定の閾値、構成可能な閾値、など)を満たすまで、連続的な離散的要素のセットを繰り返し決定する。例えば、システムは、コスト閾値未満のコストを有する飛行計画が決定された場合に、処理1940が工程1946へ進み、そうでなければ、連続的な離散的要素のさらなるセットが決定されるように、飛行計画を決定するために、「十分に良い」決定方法を利用しうる。
【0363】
いくつかの実施形態において、システムは、連続的な離散的要素の選択セットが飛行計画に対応するものとして選択される元となる連続的な離散的要素のセットの所定の数を決定する。一例として、決定される連続的な離散的要素のセットの所定の数は、ユーザまたは管理者などによって構成可能である。
【0364】
いくつかの実施形態において、システムは、所定の期間にわたって連続的な離散的要素のセットを決定する。例えば、システムは、特定の時間を連続的な離散的要素のセットの決定に割り当ててよく、システムは、かかる所定の期間が経過するまで連続的な離散的要素のセットを決定してよい。
【0365】
連続的な離散的要素の別のセットが決定されるとの工程1945での決定に応じて、処理1940は、工程1943に戻る。逆に、連続的な要素の別のセットが決定されないとの工程1945での決定に応じて、処理1940は、工程1946に進む。
【0366】
工程1946で、連続的な離散的要素のセットが選択される。様々な実施形態によると、連続的な離散的要素のセットは、処理1940の工程1943~1945を繰り返し実行することに基づいて決定されたセットなどのセット(例えば、複数のセット)の中から選択される。いくつかの実施形態において、連続的な離散的要素のセットは、特定のアセット(例えは、現在位置、ターゲット位置、および、飛行計画に対応する連続的な離散的要素の選択されたセット)のための飛行計画に対応する連続的な離散的要素のセットとして選択される。
【0367】
様々な実施形態によると、連続的な離散的要素の選択されたセットは、連続的な離散的要素の選択されたセットに対して決定されたコスト関数の値に少なくとも部分的に基づいて選択される。例えば、システムは、コスト関数に少なくとも部分的に基づいて、(例えば、処理1940の工程1943~1945を繰り返し実行することに基づいて決定された)連続的な離散的要素のセットの中から、連続的な離散的要素の最適なセットを決定する。例えば、システムは、最低コストを有する連続的な離散的要素のセットを選択する。別の例として、システムは、複数のアセットがそれぞれの現在位置からそれぞれのターゲット位置へ移動することに関連付けられている最適集計コストに基づいて、複数のアセットのための複数の飛行計画を選択する。
【0368】
工程1947で、飛行計画に関する情報が提供される。例えば、飛行計画に関する情報は、連続的な離散的要素の選択されたセットを含む。
【0369】
処理が完了したか否かについての判定がなされる工程1948で。一例として、処理1940は、ユーザ入力(作業をキャンセルまたは一時停止する入力など)に少なくとも部分的に基づいて、完了と判定されてよい。別の例として、処理は、ユーザが作業の終了を選択したことに応じて、完了と判定されてよい。別の例として、処理は、決定されるべきさらなる飛行計画(例えば、作業の完了に関連付けられている1または複数のタスク)がないとの判定に応じて、完了と判定されてよい。処理が完了したと見なされた場合、処理1940は終了する。そうでなければ、処理1900は、工程1941~1947を繰り返し実行することによって別の飛行計画が決定される工程1941に戻る。
【0370】
本明細書に記載されている実施形態の様々な例は、フローチャートに関連して記載されている。それらの例は、特定の順序で実行される特定の工程を含みうるが、様々な実施形態に従って、様々な工程が様々な順序で実行されてよい。いくつかの実施形態において、いくつかの工程が、組み合わせられ、または、本明細書で論じた例から除外されてもよい。
【0371】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
【国際調査報告】