IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セーフ エーアイ,インコーポレイテッドの特許一覧

<>
  • 特表-自律マシンを使用したタスクの実行 図1
  • 特表-自律マシンを使用したタスクの実行 図2
  • 特表-自律マシンを使用したタスクの実行 図3
  • 特表-自律マシンを使用したタスクの実行 図4
  • 特表-自律マシンを使用したタスクの実行 図5
  • 特表-自律マシンを使用したタスクの実行 図6
  • 特表-自律マシンを使用したタスクの実行 図7
  • 特表-自律マシンを使用したタスクの実行 図8
  • 特表-自律マシンを使用したタスクの実行 図9
  • 特表-自律マシンを使用したタスクの実行 図10
  • 特表-自律マシンを使用したタスクの実行 図11
  • 特表-自律マシンを使用したタスクの実行 図12
  • 特表-自律マシンを使用したタスクの実行 図13
  • 特表-自律マシンを使用したタスクの実行 図14
  • 特表-自律マシンを使用したタスクの実行 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-24
(54)【発明の名称】自律マシンを使用したタスクの実行
(51)【国際特許分類】
   G08G 1/00 20060101AFI20220117BHJP
   G08G 1/09 20060101ALI20220117BHJP
   G06Q 10/08 20120101ALI20220117BHJP
   G16Y 10/40 20200101ALI20220117BHJP
   G16Y 40/30 20200101ALI20220117BHJP
【FI】
G08G1/00 D
G08G1/00 X
G08G1/09 F
G06Q10/08 300
G16Y10/40
G16Y40/30
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021525073
(86)(22)【出願日】2019-11-08
(85)【翻訳文提出日】2021-07-05
(86)【国際出願番号】 US2019060507
(87)【国際公開番号】W WO2020097486
(87)【国際公開日】2020-05-14
(31)【優先権主張番号】62/757,316
(32)【優先日】2018-11-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.JAVASCRIPT
(71)【出願人】
【識別番号】521195032
【氏名又は名称】セーフ エーアイ,インコーポレイテッド
(74)【代理人】
【識別番号】100137969
【弁理士】
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【弁理士】
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【弁理士】
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】ハルダー,ビブハラジット
(72)【発明者】
【氏名】マジュムダール,スディプタ
【テーマコード(参考)】
5H181
5L049
【Fターム(参考)】
5H181AA05
5H181AA06
5H181AA07
5H181AA15
5H181AA25
5H181AA26
5H181AA27
5H181BB04
5H181BB05
5H181BB13
5H181BB17
5H181BB20
5H181CC03
5H181CC04
5H181CC12
5H181CC14
5H181FF04
5H181FF10
5H181FF13
5H181FF22
5H181FF32
5H181MA42
5H181MC03
5L049AA16
5L049CC51
(57)【要約】
本開示は、一般に、自律マシン(AM)に関し、より詳細には、AMを使用して様々なタスクをインテリジェントに計画、管理、及び、実行するための技術に関する。AMを含み得る現場でリソースのセットを管理するための制御システム(フリート管理システム又はFMSと称される)が開示される。FMSは、AMによってタスクが自律的に実行されるように現場でAMを制御して管理するように構成される。AMは、タスクの実行中にFMSと常時通信する必要なく、タスクを完了するために現場に位置される他のAMと直接に通信してもよい。FMSは、様々な最適化技術を使用して、現場でタスクを実行するためのリソース(例えば、AM)を割り当てるように構成される。リソース割り当ては、タスクが適時に実行されるようにしつつ、利用可能なAMの使用を最大化するように実行される。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1の自動マシン(AM)により、自律マシン(AM)のセットによって実行されるべきタスクに関する情報を受信するステップであって、前記情報が、現場に位置される複数の自動マシン(AM)を管理するように構成されるフリート管理システム(FMS)から受信され、前記複数のAMが前記AMのセットを含む、ステップと、
前記第1のAMにより、前記タスクに関して前記第1のAMによって実行されるべきサブタスクを決定するステップと、
前記第1のAMにより、前記サブタスクを自律的に実行するステップであって、前記実行するステップが、前記FMSを伴うことなく前記第1のAMによって前記AMのセット内の第2のAMと通信するステップを含む、ステップと、
を含む方法。
【請求項2】
前記第1のAMにより、前記サブタスクに対応する前記第1のAMにより実行されるべき単位タスクのセットを特定するステップであって、前記単位タスクのセットが、前記第1のAMによって実行されるときに前記第1のAMに前記AMのセット内の他のAMと通信させる第1の単位タスクを含む、ステップを更に含み、
前記実行するステップは、前記第1のAMにより、前記サブタスクに対応する前記単位タスクのセットを実行するステップを含む、請求項1に記載の方法。
【請求項3】
前記単位タスクのセットを実行するステップは、
前記第1のAMにより、前記単位タスクのセットを実行するためのシーケンスを特定するステップと、前記第1のAMにより、前記シーケンスにしたがって前記単位タスクのセットを実行するステップとを含む、請求項2に記載の方法。
【請求項4】
前記単位タスクのセットを実行するステップは、
前記第1のAMに前記FMSに依存しない前記第2のAMと通信させる前記第1の単位タスクを実行するステップを含む、請求項2に記載の方法。
【請求項5】
前記第1のAMにより、前記単位タスクのセットを実行するステップは、前記第1のAMにより、前記第1のAMによって実行される前記単位タスクのセットに対する更新を前記AMのセット内の他のAMに通信するステップを更に含む、請求項2に記載の方法。
【請求項6】
前記第1のAMがマスターAMとして特定され、前記方法は、
前記第1のAMにより、前記FMSから、前記タスクを実行するための前記AMのセットを特定する情報を受信するステップと、
前記第1のAMにより、前記タスクに関する前記情報を前記AMのセット内の他のAMに通信するステップと、
を更に含む、請求項1に記載の方法。
【請求項7】
前記第1のAMにより、前記AMのセット内の第2のAMから、前記タスクに対応する前記第2のAMによって実行されるサブタスクの状態を示す情報を受信するステップと、
前記第1のAMにより、前記FMSへ、前記第2のAMから前記第1のAMによって受信される前記情報を通信するステップと、
を更に含む請求項6に記載の方法。
【請求項8】
前記第1のAMは、実行されるべき前記タスクに関する前記情報と、前記現場で第1の位置に位置されるときに前記タスクを実行するための前記AMのセットを特定する情報とを受信し、前記第1のAMは、前記第1の位置にあるときに、前記FMSから通信を受信することができ、
前記第1のAMにより、前記タスクに関する前記情報を前記AMのセット内の他のAMに通信するステップは、
前記第1のAMが、前記第1の位置から前記現場の第2の位置に自律的に移動し、前記第1のAMが、前記第2の位置にあるときに、前記AMのセット内の前記他のAMと通信できること、および
前記第1のAMにより、前記第2の位置から前記AMのセット内の前記他のAMに前記タスクに関する前記情報を通信すること、
を含む請求項6に記載の方法。
【請求項9】
前記第1のAMが自律車両であり、および
前記第1のAMが、前記第1の位置から前記第2の位置に自律的に移動することは、前記第1のAMによって前記第1の位置から前記第2の位置への経路を自律的にナビゲートすることを含む、請求項8に記載の方法。
【請求項10】
複数の自動マシン(AM)を管理するように構成される制御システムにより、前記複数のAMによって実行されるべき1つ以上のタスクのセットを決定するステップと、
前記制御システムにより、前記1つ以上のタスクのセットを実行するために割り当てられるべき1つ以上のAMのセットを前記複数のAMから特定するステップと、
前記制御システムにより、前記1つ以上のタスクのセットを実行するために前記1つ以上のAMのセットに前記タスクのセットに関連する情報を通信するステップと、
を含む方法。
【請求項11】
前記制御システムにより、前記1つ以上のタスクのセット内の各タスクの完了の予想時間を決定するステップと、
前記制御システムにより、前記1つ以上のタスクのセットを実行するためのある期間にわたる前記AMのセット内の各AMの利用可能性を決定するステップと、
を含み、
前記1つ以上のタスクのセットを実行するために割り当てられるべき前記1つ以上のAMのセットを特定する前記ステップは、前記1つ以上のタスクのセット内の各タスクに関して決定された完了の前記予想時間と前記AMのセット内の各AMの前記利用可能性とに基づいて、前記1つ以上のAMのセットを特定するステップを含む、請求項10に記載の方法。
【請求項12】
前記1つ以上のタスクのセットを実行するために割り当てられるべき前記1つ以上のAMのセットを特定する前記ステップは、
前記制御システムにより、最適化技術を使用して、前記1つ以上のタスクのセットを実行するための前記AMのセットの特定の割り当てを決定するステップであって、前記タスクのセット内の第1のタスクに関して、前記特定の割り当てが、前記第1のタスクを実行するためのAMの第1のサブセットを前記1つ以上のAMのセットから特定する、ステップを含む、請求項11に記載の方法。
【請求項13】
前記1つ以上のタスクのセットを実行するために割り当てられるべき前記1つ以上のAMのセットを特定する前記ステップは、
前記制御システムにより、前記1つ以上のタスクのセットを実行するための前記AMのセットの特定の割り当てを決定するステップを含み、前記AMのセットの特定の割り当てを決定する前記ステップは、
前記制御システムにより、前記タスクのセット内の各タスクを実行するために割り当てられるべきトリップ回数を決定するステップと、
前記制御システムにより、1つのタスクに関して前記トリップ回数を実行するのに要する総時間数と前記1つ以上のタスクのセットに関してトリップのセットを実行するのに要する総時間数とに比例して前記タスクのセットを実行するために前記AMのセットを分配するステップと、
を含む、請求項11に記載の方法。
【請求項14】
前記タスクのセット内の各タスクを実行するために割り当てられるべき前記トリップ回数は、前記タスクのセットを実行するために前記AMのセット内のAMが要する総時間量を決定することに基づいて更に決定される、請求項13に記載の方法。
【請求項15】
実行されるべきタスクのセットを示す情報を記憶するメモリと、
処理を実行するように構成される1つ以上のプロセッサであって、前記処理が、
第1の自動マシン(AM)により、自律マシン(AM)のセットによって実行されるべきタスクに関する情報を受信するステップであって、前記情報が、現場に位置される複数の自動マシン(AM)を管理するように構成されるフリート管理システム(FMS)から受信され、前記複数のAMが前記AMのセットを含む、ステップと、
前記第1のAMにより、前記タスクに関して前記第1のAMによって実行されるべきサブタスクを決定するステップと、
前記第1のAMにより、前記サブタスクを自律的に実行するステップであって、実行する前記ステップが、前記FMSを伴うことなく前記第1のAMによって前記AMのセット内の第2のAMと通信するステップを含む、ステップと、
を含む、1つ以上のプロセッサと、
を備えるシステム。
【請求項16】
前記処理は、
前記第1のAMにより、前記サブタスクに対応する前記第1のAMにより実行されるべき単位タスクのセットを特定するステップであって、前記単位タスクのセットが、前記第1のAMによって実行されるときに前記第1のAMに前記AMのセット内の他のAMと通信させる第1の単位タスクを含む、ステップを更に含み、
実行する前記ステップは、前記第1のAMにより、前記サブタスクに対応する前記単位タスクのセットを実行するステップを含む、
請求項15に記載のシステム。
【請求項17】
前記単位タスクのセットを実行するための前記処理は、
前記第1のAMにより、前記単位タスクのセットを実行するためのシーケンスを特定するステップと、前記第1のAMにより、前記シーケンスにしたがって前記単位タスクのセットを実行するステップとを含む、
請求項16に記載のシステム。
【請求項18】
前記単位タスクのセットを実行するための前記処理は、
前記第1のAMにより、前記第1のAMによって実行される前記単位タスクのセットに対する更新を前記AMのセット内の他のAMに通信するステップを更に含む、
請求項17に記載のシステム。
【請求項19】
前記第1のAMがマスターAMとして特定され、前記処理は、
前記第1のAMにより、前記FMSから、前記タスクを実行するための前記AMのセットを特定する情報を受信するステップと、
前記第1のAMにより、前記AMのセット内の他のAMに前記タスクに関する前記情報を通信するステップと、
を更に含む、請求項17に記載のシステム。
【請求項20】
前記第1のAMにより、前記AMのセット内の第2のAMから、前記タスクに対応する前記第2のAMによって実行されるサブタスクの状態を示す情報を受信するステップと、
前記第1のAMにより、前記FMSへ、前記第2のAMから前記第1のAMによって受信される情報を通信するステップと、
を更に含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]この出願は、「フリート管理及び調整のための方法及びシステム」と題する2018年11月8日に出願された米国仮出願第62/757,316号の利益及び優先権を主張する。米国仮出願第62/757,316号の内容は、あらゆる目的のためにその全体が参照により本願に組み入れられる。
【0002】
[0002]本開示は、一般に、自律マシンに関し、より詳細には、自律マシンを使用して様々なタスクを知的に計画、管理、及び、実行するための技術に関する。
【背景技術】
【0003】
[0003]自律マシンの使用の増加は、従来のタスクが実行される方法を変化させている。結果として、自律マシンは、様々な分野で益々使用されている。例えば、工業作業現場、採掘現場、建設現場、商業現場、製造現場などの様々な作業現場においては、自律トラック、ブルドーザ、ローダ、掘削機などの形態を成す益々多くの数の自律マシンが使用されている。例えば、鉱山現場では、採掘現場に位置される自律マシンによって実行されるタスクが、自律掘削機を使用して材料を掘削すること、自律ローダ又はブルドーザ(ドーザ)を使用して材料を自律トラックに積み込むこと、自律トラックを使用して材料又は物体を現場内のある場所から他の場所に輸送することなどを伴う場合がある。従来のマシンとは異なり、タスクを実行するための自律マシンの使用は、特に鉱山などの現場において、現場全体にわたる不均一なネットワーク接続が重大な問題を引き起こし得る全く新しい一連の問題を生じさせてきた。タスクを実行するためのマシンの自律的性質は、タスクがどのように割り当てられて制御されるか、及び、タスクが自律マシンのセット(又はフリート)によってどのように実行されるかにおいて、個別に又は協働して固有の問題も提示する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[0004]本開示は、一般に、自律マシンに関し、より詳細には、自律マシンを使用して様々なタスクを知的に計画、管理、及び、実行するための技術に関する。本明細書中では、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、又は、命令を記憶する持続性コンピュータ可読記憶媒体などを含む様々な実施形態について説明する。
【課題を解決するための手段】
【0005】
[0005]特定の実施形態では、現場でリソースのセットを管理するための制御システム(フリート管理システム又はFMSとも称される)が開示される。FMSは、1つ以上の自律マシン(AM)を含み得るリソースのセットによって実行されるタスクのセットを管理、追跡、及び、調整するための能力を含む。FMSは、AMによってタスクが自律的に実行されるように現場でAMを制御して管理するように構成される。場合によっては、特定のタスクは、単一のAMによって自律的に実行されてもよい。他の場合において、特定のタスクは、協働して又は協調して動作する複数のAMによって実行されてもよい。AMは、タスクを完了するために、タスクの実行中にFMSと常時通信する必要なく、現場に位置される他のAMと直接に通信してもよい。
【0006】
[0006]特定の実施形態において、コンピュータシステムは、第1のAMにより、自律マシン(AM)のセットによって実行されるべきタスクに関する情報を受信することを伴う方法を実行するように構成される。情報は、AMのセットを管理するように構成されるFMSから受信される。方法は、第1のAMによって、タスクに関して第1のAMにより実行されるべきサブタスクを決定するステップを伴う。方法は、第1のAMによって、FMSを伴うことなくAMのセット内の第2のAMと第1のAMにより通信することによってサブタスクを自律的に実行するステップを更に伴う。
【0007】
[0007]特定の例において、方法は、第1のAMによって、サブタスクに対応する第1のAMによって実行されるべき単位タスクのセットを特定するステップを伴う。単位タスクのセットは、第1のAMによって実行されるときに第1のAMにAMのセット内の他のAMと通信させる第1の単位タスクを含む。特定の例において、第1のAMは、サブタスクに対応する単位タスクのセットを実行する。単位タスクのセットを実行するステップは、第1のAMにより、単位タスクのセットを実行するためのシーケンスを特定するステップと、第1のAMにより、シーケンスにしたがって単位タスクのセットを実行するステップとを含む。単位タスクのセットを実行するステップは、第1のAMに、FMSとは無関係に第2のAMと通信させることを更に含む。特定の例において、単位タスクのセットを実行するステップは、第1のAMによって実行される単位タスクのセットに対する更新を、第1のAMによってAMのセット内の他のAMに通信するステップを含む。
【0008】
[0008]特定の例において、方法は、第1のAMをマスターAMとして特定するステップを伴う。方法は、第1のAMにより、FMSから、タスクを実行するためのAMのセットを特定する情報を受信するステップと、第1のAMにより、AMのセット内の他のAMにタスクに関する情報を通信するステップとを更に伴う。特定の実施形態において、方法は、第1のAMにより、AMのセット内の第2のAMから、タスクに対応する第2のAMによって実行されるサブタスクの状態を示す情報を受信するステップと、第1のAMにより、FMSへ、第2のAMから第1のAMによって受信される情報を通信するステップとを伴う。
【0009】
[0009]特定の例において、第1のAMは、実行されるべきタスクに関する情報と、現場で第1の位置に位置されるときにタスクを実行するためのAMのセットを特定する情報とを受信し、第1のAMは、第1の位置にあるときに、FMSから通信を受信することができる。第1のAMは、タスクに関する情報をAMのセット内の他のAMに通信する。第1のAMは、現場で第1の位置から第2の位置へ自律的に移動する。特定の例において、第1のAMは、第2の位置にあるときに、AMのセット内の他のAMと通信することができ、また、第1のAMは、タスクに関する情報を第2の位置からAMのセット内の他のAMに通信する。特定の例では、第1のAMが自律車両であり、また、第1のAMは、第1の位置から第2の位置への経路を自律的にナビゲートすることによって、第1の位置から第2の位置に自律的に移動する。
【0010】
[0010]特定の実施形態では、制御システムが開示される。制御システムは、複数の自動マシン(AM)を管理するように構成される。制御システムは、AMのセットによって実行されるべき1つ以上のタスクのセットと、1つ以上のタスクのセットを実行するために割り当てられるべきAMのセットとを決定する。制御システムは、タスクのセットに関連する情報を、1つ以上のタスクのセットを実行するための1つ以上のAMのセットに通信する。
【0011】
[0011]特定の例において、制御システムは、1つ以上のタスクのセット内の各タスクに関する完了の予想時間を決定するとともに、1つ以上のタスクのセットを実行するためにある期間にわたってAMのセット内の各AMの利用可能性を決定する方法を実行するように構成される。特定の例において、1つ以上のタスクのセットを実行するために割り当てられるべき1つ以上のAMのセットを特定するステップは、1つ以上のタスクのセット内の各タスクに関して決定される完了の予想時間とAMのセット内の各AMの利用可能性とに基づいて1つ以上のAMのセットを特定するステップを含む。
【0012】
[0012]特定の例において、方法は、最適化技術を使用して、1つ以上のタスクのセットを実行するためのAMのセットの特定の割り当てを決定することを伴う。1つの例では、タスクのセット内の第1のタスクに関して、特定の割り当ては、第1のタスクを実行するためのAMの第1のサブセットを1つ以上のAMのセットから特定する。1つの例において、1つ以上のタスクのセットを実行するために割り当てられるべき1つ以上のAMのセットを特定するステップは、制御システムにより、1つ以上のタスクのセットを実行するためのAMのセットの特定の割り当てを決定することを含む。これは、制御システムにより、タスクのセット内の各タスクを実行するために割り当てられるトリップの数を決定すること、及び、制御システムにより、タスクに関してトリップ回数を実行するのに要する総時間数と1つ以上のタスクのセットに関してトリップのセットを実行するのに要する総時間数とに比例してタスクのセットを実行するためにAMのセットを分配することを含む。タスクのセット内の各タスクを実行するために割り当てられるべきトリップの数は、タスクのセットを実行するためにAMのセット内のAMが要する総時間量を決定することに基づいて更に決定される。
【0013】
[0013]以上は、他の特徴及び実施形態と共に、以下の明細書、特許請求の範囲、及び、添付の図面を参照するとより明らかになる。
【0014】
[0014]本開示は、同様の部分が同様の数字により参照される場合がある添付図面と関連して解釈される以下の説明を参照することによって最も良く理解され得る。
【図面の簡単な説明】
【0015】
図1】特定の実施形態に係る現場でリソースのセットを管理するための制御システム(フリート管理システム又はFMSと称される)を含む環境100の一例を示す。
図2】特定の実施形態に係る、FMS及びFMSによって管理される自律マシン(AM)の簡略ブロック図である。
図3】特定の実施形態に係る、FMSによって実行される方法を示すフローチャートである。
図4】特定の実施形態に係る、タスクを行なうためにAMによって実行される方法を示すフローチャートである。
図5】幾つかの実施形態に係る、FMSから受信されるコマンドに基づくAMのセットによる単一のタスクの実行の典型的な例図である。
図6】特定の実施形態に係る、FMSから受信される情報を1つ以上のスレーブAMに通信するために「マスターAM」によって実行される方法を示すフローチャートである。
図7】幾つかの実施形態に係る、マスタースレーブモードにおけるタスクの実行の典型的な例図である。
図8】特定の実施形態に係る、リソース(例えば、AM)の最適な割り当てのためにFMSによって実行される方法又は動作を示すフローチャート800である。
図9】特定の実施形態に係る、現場内で材料の移動を伴うタスクのセットを実行するのに最適なAMのセットの割り当てのためにFMSによって実行される方法を示すフローチャートである。
図10】特定の実施形態に係る、タスクのセットの一例、及び、タスクのセットを実行するのに最適なAM(すなわち、トラック)のセットの割り当ての決定を示す。
図11】特定の実施形態に係る、現場で実行されるべきタスクをシミュレートするためにFMSによって実行される方法又は動作を示すフローチャートである。
図12】幾つかの実施形態に係る、タスク実行中のタスクのセットの予想完了時間と実際の完了時間との間の偏差を処理するためにFMSによって実行される方法又は動作を示すフローチャートである。
図13】特定の実施形態に係る、コントローラシステム(本明細書中では自律車両管理システム(AVMS)と称される)を組み込むAVの簡略ブロック図である。
図14】特定の実施形態に係る自律車両管理システムのサブシステムを示す簡略ブロック図である。
図15】特定の実施形態に係る、AMのシステム及びサブシステムのうちの1つ以上を実装するために使用され得る典型的なコンピュータシステムの簡略ブロック図を示す。
【発明を実施するための形態】
【0016】
[0030]以下、当業者が本開示を実施できるようにするべく例示的な例として与えられる図面を参照して、本開示の典型的な例及び実施形態について詳細に説明する。特に、以下の図及び例は、本開示の範囲を単一の実施形態に限定しようとするものではなく、記載された又は図示された要素の一部又は全部との交換又は組み合わせによって他の実施形態が想定し得る。便宜上、同じ又は同様の部分を指すために図面全体を通して同じ参照番号が使用される。以下の説明では、説明の目的のために、特定の本発明の実施形態の完全な理解を与えるべく特定の詳細が記載される。しかしながら、これらの特定の詳細を伴うことなく様々な実施形態が実施されてもよいことは明らかである。図及び説明は、限定を意図するものではない。「典型的」という用語は、本明細書中では、「例、事例、又は、例示としての役割を果たす」を意味するために使用される。本明細書中で「典型的」として説明される任意の実施形態又は形態は、必ずしも他の実施形態又は形態よりも好ましい又は有利であると解釈されるべきではない。これらの実施の特定の要素が既知の構成要素を使用して部分的に又は完全に実施され得る場合には、本開示の理解に必要なそのような既知の構成要素のそれらの部分のみが説明され、そのような既知の構成要素の他の部分の詳細な説明は、本開示を不明瞭にしないように省略される。
【0017】
[0031]本開示は、一般に、自律マシンに関し、より詳細には、自律マシンを使用して様々なタスクを知的に計画、管理、及び、実行するための技術に関する。本明細書中では、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、又は、命令を記憶する持続性コンピュータ可読記憶媒体などを含む様々な実施形態について説明する。特定の実施形態では、現場で自律マシン(AM)を含むリソースのセットを管理するための制御システム(フリート管理システム又はFMSとも称される)が開示される。制御システム又はFMSは、1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラムのみを使用して、ハードウェアを使用して、又は、それらの組み合わせを使用して実装されてもよい。
【0018】
[0032]FMSは、1つ以上の自律マシンを含み得るリソースのセットによって実行されるタスクのセットを管理、追跡、及び、調整するための能力を含む。特定の実施形態において、FMSは、タスクがAMによって自律的に実行されるように現場でAMを制御して管理するように構成される。場合によっては、特定のタスクは、単一のAMによって自律的に実行されてもよい。他の場合において、特定のタスクは、協働して又は協調して動作する複数のAMによって実行されてもよい。AMは、タスクを完了するために、タスクの実行中にFMSと常時通信する必要なく、現場に位置される他のAMと直接に通信してもよい。したがって、常にFMSに対する直接的な接続性を有さない又はFMSに対する断続的な接続性を有し得る現場内の特定のAMは、タスクのその一部分を、他のAM、例えばそのタスクの他の部分を実行している又は実行するように構成される他のAMと通信することによって依然として完了することができる。FMSと通信する必要なくタスクを自律的に実行できる能力をAMに与えることにより、特定のAMがFMSと通信できない(例えば、通信範囲外にある)ときに又はAM自体が一時的に利用できなくなる(例えば機器の不具合に起因する)ときであってもタスクの実行が停止されない。したがって、FMSとの接続性の欠如に起因するタスクの実行における遅延又は中断が回避される。
【0019】
[0033]特定の実施形態において、FMSは、実行されるべき1つ以上のタスクを決定し、タスクを実行するためのリソース(例えば、AM)を割り当てるべく計画を実行し、タスクをAMに通信し、実行されているタスクの状態に関する状態通信をAMから受信し、一般に、タスクが適時の態様で実行されるようにするべく構成される。特定の実施形態において、FMSは、AMの故障、AMがタスクを完了するのに予想よりもはるかに長い時間を要する、予期しない作業現場条件など、予期しない事象又は出来事が発生する際に、対応して是正措置をとるようにも構成される。
【0020】
[0034]図1は、特定の実施形態に係る現場104でリソースのセットを管理するための制御システム102(フリート管理システム102又はFMS102と称される)を含む環境100の一例を示す。FMS102は、リソース106のセットによって実行されるタスクのセットを管理、追跡、及び、調整するための能力を含み、リソース106のセットは、1つ以上の自律マシン106A-106Nを含んでもよい。現場104は、採掘現場、工業現場、建設現場、製造現場などの様々なタイプのものであってもよい。FMS102が管理するように構成されるタスクは、現場に固有のものであってもよい。例えば、採掘現場の場合、タスクは、ある場所で採掘又は掘削すること、材料(例えば、岩石、石炭)の山を作ること、材料を輸送車両(例えば、トラック)に積み込むこと、材料を現場内のある場所から他の場所に輸送することなどを含んでもよい。図1に示される実施形態では、これらのタスクのうちの1つ以上がFMS102の管理下で1つ以上の自律マシンを使用して実行される。
【0021】
[0035]本明細書中で使用される「自律マシン」(すなわちAM)という用語は、1つ以上のタスク又はサブタスク又は動作を自律的に実行することができるとともに人間のユーザ又は手動の入力が実質的にないマシンを指す。AM106は、採掘又は掘削、積み込み、持ち上げ、ある場所から他の場所への輸送などの特定のタスク又はサブタスクを自律的に実行するように特化されてもよい。例えば、AMは、自律的に採掘タスク又は掘削タスクを実行できる自律掘削機であってもよい。他の例として、AMは、積み込みタスク又はサブタスクを自律的に実行できる自律ローダ(例えば、ブルドーザ又はドーザ)であってもよい。AMの他の例は、制限なく、圧縮機、掘削機、拡張機、測量機器などを含む。AM106は、1つ以上の自律車両(AV)を含んでもよく、この場合、AVは、その環境を自律的に感知して、自律的に且つ任意の人間のユーザ又は手動の入力が実質的になく出発地から目的地まで経路に沿ってナビゲート又は走行できる。自動車技術者協会(SAE)によれば、運転自動化レベルは、SAEレベル0(瞬間的な自動支援のみで、常に手動で監視する必要がある)からSAEレベル5(全ての条件下で完全に自律的)まで変化する。自動車両との関連において、AVは、この用語が本明細書中で使用される場合、SAEレベル4以上の任意の車両である。車両という用語の使用及び車両に関する説明は、限定又は制限しようとするものではない。本明細書中に記載される教示内容は、陸上で動作する車両(例えば、オートバイ、自動車、トラック、バス)、水上で動作する車両(例えば、船舶、ボート)、鉄道で動作する車両(例えば、電車、路面電車)、航空機、宇宙船などを含む、任意のタイプの車両と共に使用されて該車両に適用され得る。自律車両の例としては、制限なく、ワゴン車、自転車、自動車両(例えば、オートバイ、自動車、トラック、バス)、鉄道車両(例えば、電車、路面電車)、船(例えば、船舶、ボート)、航空機、宇宙船、及び/又は、重機車両(例えば、ダンプトラック、トラクタ、ブルドーザ、掘削機、フォークリフトなど)が挙げられる。1つ以上のAMによって自律的に実行されてもよい他の動作の例としては、制限なく、かき集めて放出する動作、材料又は物体を移動させること(例えば、土又は砂をある領域から他の領域へ移動させること)、材料を持ち上げること、走行、回転、土を広げること、掘削、ある地点から他の地点へ材料又は物体を輸送することなどが挙げられる。AMは、製造、鉱業、建設、医療用途、包装、組み立て、測量、マッピング技術物流などの様々な産業で使用されてもよい。
【0022】
[0036]FMS102は、AM106によってタスクが自律的に実行されるように現場104でAM106を制御及び管理するように構成される。場合によっては、特定のタスクは、単一のAMによって自律的に実行されてもよい。他の場合において、特定のタスクは、協働して又は協調して動作する複数のAMによって実行されてもよい。特定の実施形態において、FMS102は、実行されるべき1つ以上のタスクを決定し、タスクを実行するためのリソース106(例えば、AM)を割り当てるべく計画を実行し(詳細は後述する)、タスクをAMに通信し、実行されているタスクの状態に関する状態通信をAMから受信し、一般に、タスクが適時の態様で実行されるようにするべく構成される。特定の実施形態において、FMS102は、AMの故障、AMがタスクを完了するのに予想よりもはるかに長い時間を要する、予期しない作業現場条件など、予期しない事象又は出来事が発生する際に、対応して是正措置をとるようにも構成される。
【0023】
[0037]その動作の一部として、FMS102は、実行されるべきタスクに関する情報をAMに通信するように構成される。AMは、実行されているタスクに関する状態情報を元のFMS102に通信するように構成される。FMS102とAM106との間の通信は、1つ以上の通信ネットワークによって可能にされてもよく、また、Wi-Fi、衛星通信などの様々な通信プロトコルを利用してもよい。従来、コントローラシステムは集中型であり、したがって、コントローラシステムは、全ての通信を行なわなければならない集中型通信ハブとして作用する。例えば、非自律車のフリートを管理するための1つの用途などの従来の集中型コントローラは、全ての通信が集中型コントローラと個々の車との間でポイントツーポイントであることを必要とした。したがって、集中型コントローラが各車と継続的に通信できるとともに、各車が集中型コントローラと通信できるという期待があった。しかしながら、採掘現場などの現場では、そのような接続性が、保証され得ず、不可能な場合が多い。例えば、場合によっては、FMS102とAMとの間の接続性は、AMがFMS102の特定の距離(通信距離)内にあるときにだけ生じ得る。しかしながら、AMがタスクを実行しているとき、AMは、この通信距離を超える現場104内の場所にいる場合がある。他の例として、タスクを実行している間、AMは、AMが通信距離内にある場合でも、FMS102とAMとの間の通信が不可能な位置(例えば、地下)にいる場合がある。更なる他の例として、現場104の通信インフラは、FMS102と1つ以上のAMとの間の断続的な通信接続性のみを可能にする場合がある。
【0024】
[0038]特定の実施形態において、AM106によって実行されるべきタスクは、FMS102とAM106との間に接続性がない場合又は少なくとも継続的な接続性がない場合であっても完了まで実行される。これは、AM間通信、すなわち、FMS102にかかわらない2つ以上のAM間の通信を可能にすることによってできるようになる。例えば、特定のタスクの実行中、特定のタスクを実行する特定のAMとFMS102との間に接続性がない場合であっても、特定のAMは、特定のタスクを実行させるために互いに通信することができる。
【0025】
[0039]AM106は、様々な異なる技術及びプロトコルを使用して互いに通信することができる。AM間通信のために使用され得る通信プロトコル及び技術の例としては、V2I(車両対インフラ;Vehicle-to-Infrastructure)、V2V(車両対車両;Vehicle-to-vehicle)、V2P(車両対歩行者;Vehicle-to-Pedestrian)、V2D(車両対装置;Vehicle-to-device)、V2G(車両対グリッド;Vehicle-to-grid)などが挙げられるが、これらに限定されない。
【0026】
[0040]FMS102は、AM106が自律的にタスクを達成及び実行できるようにするための能力を与える。AMは、タスクを完了するために、タスクの実行中にFMS102と常時通信する必要なく、現場に位置される他のAMと直接に通信してもよい。したがって、常にFMS102に対する直接的な接続性を有さない又はFMS102に対する断続的な接続性を有し得る作業現場104内の特定のAM(例えば106A)は、タスクのその一部分を、他のAM、例えばそのタスクの他の部分を実行している又は実行するように構成される他のAMと通信することによって依然として完了することができる。FMS102と通信する必要なくタスクを自律的に実行できる能力をAMに与えることにより、特定のAMがFMS102と通信できない(例えば、通信範囲外にある)ときに又はAM自体が一時的に利用できなくなる(例えば機器の不具合に起因する)ときであってもタスクの実行が停止されない。したがって、FMS102との接続性の欠如に起因するタスクの実行における遅延又は中断が回避される。
【0027】
[0041]幾つかの実施形態では、FMS102自体が現場104に位置されてもよい。幾つかの他の実施形態では、FMS102が現場104から遠く離れて位置されてもよい。図1に示されて本明細書中で説明される例において、FMS102は、単一の現場104に関するリソースを管理するように示される。しかしながら、これは限定しようとするものではない。別の実施形態において、FMS102は、複数の異なる現場で、複数のAMを含むリソースを管理してもよい。
【0028】
[0042]図2は、特定の実施形態に係る、FMS102及びFMS102によって管理される自律マシン(AM)218の簡略ブロック図を示す。FMS102及びAM218は、1つ以上の通信チャネルを介して互いに通信可能に結合される複数のシステム及びサブシステムを備えてもよい。図2に示される実施形態は、単なる例であり、特許請求の範囲に記載される実施形態の範囲を過度に限定しようとするものではない。当業者は、多くの想定し得る変形、代替物、及び、改変を認識できる。例えば、幾つかの実施において、FMS102及びAM218は、図2に示されるものよりも多い又は少ないサブシステム又は構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、或いは、サブシステムの異なる形態又は配置を有してもよい。
【0029】
[0043]図2に示される実施形態において、FMS102は、ユーザインタフェースサブシステム(UI)202、タスク特定サブシステム204、リソース割り当てサブシステム206、タスクシミュレーションサブシステム208、及び、通信サブシステム210を含む。サブシステムは、ソフトウェアのみ、ハードウェアのみ、又は、それらの組み合わせを使用して実装されてもよい。ソフトウェアは、持続性コンピュータ可読媒体(例えば、メモリデバイス)に記憶されてもよく、その機能を果たすために1つ以上のプロセッサによって(例えば、コンピュータシステムによって)実行されてもよい。
【0030】
[0044]特定の実施形態において、タスク特定サブシステム204は、1つ以上のAM106を使用して現場104で実行されるべきタスクのセットを特定するように構成される。特定の事例において、FMS102のユーザ又はオペレータは、UI202を介して実行されるべきタスクを特定する情報をFMS102に与えてもよい。この情報は、タスク特定サブシステム204によって受信されて処理されてもよい。幾つかの他の事例において、タスク特定サブシステム204は、FMS102にアクセス可能なデータ記憶サブシステム212に記憶されたタスク情報214に基づいて実行されるべきタスクのセットを決定することができる。タスク特定サブシステム204は、実行されるべきタスクを特定することができるとともに、各タスクが実行されるようになっている時間枠も特定することができる。
【0031】
[0045]リソース割り当てサブシステム206は、タスク特定サブシステム204によって特定されるタスクのセットを実行するために割り当てられるべきリソースのセットを決定するように構成される。特定の実施形態において、リソース割り当てサブシステム206は、タスクを実行するために現場で利用可能なリソース(例えば、AM)を特定するリソース情報216にアクセスすることができる。例えば、リソース情報216は、鉱山現場104で利用可能な4台の掘削機、4台のドーザ、5台のトラックがあることを示してもよい。それぞれのリソースごとに、リソースが利用可能である時間枠を特定する情報も与えられてもよい。例えば、リソース情報216は、5台のトラックのうち、最初の2時間の動作中に4台のトラックのみが利用可能であり、5台のトラック全てが次の2時間の動作中に利用可能であることを示してもよい。それぞれのリソースごとに、リソース情報216は、リソースのモデル、トラックの自律能力を含むリソースの能力など、リソースに関する情報を与えてもよい。例えば、それぞれの利用可能なトラックごとに、トラックのモデル、トラックの輸送能力(例えば、トン単位の運搬能力)、トラックの最大速度及び平均速度、トラックが経路に沿って自律ナビゲーション及び走行を実行できる能力などに関する情報が与えられてもよい。リソース割り当てサブシステム206は、この情報を全て使用して、タスクを実行するために使用されるべきリソースを割り当てることができる。リソース割り当てサブシステム206がタスクを実行するために使用されるべきリソースを特定した後、タスクを特定する情報及びリソース割り当て情報が、リソース割り当てサブシステム206によって、タスクを実行するために割り当てられたリソース又はAMに通信される。タスク及びリソース情報は、通信サブシステム210を使用してFMS102からAMに通信されてもよい。
【0032】
[0046]特定の実施形態において、FMS102は、タスクのセットを実行するためにAMのセットに命令(コマンド)を送信するように構成される。通信サブシステム210は、有線又は無線リンクを介してFMS102とAMのセットとの間の通信を容易にするように構成され得る。様々な通信モードが使用されてもよい。特定の事例では、通信のために「通常」モードが与えられて選択されてもよい。この通常モードでは、タスクに関する情報が、タスクを実行するために選択された各AMにFMS102から通信される。特定の他の事例では、通信のために「マスター-スレーブ」モードが与えられて選択されてもよい。このマスター-スレーブモードでは、タスクに関する情報がFMS102からマスターAMに通信され、その後、マスターAMは、タスクを実行することに関与する1つ以上のスレーブAMに情報を通信する。幾つかの事例では、マスターAM自体がタスク又はタスクの一部を実行してもよい。他の事例において、マスターAMは、1つ以上のスレーブAMに情報を通信することにのみ関与してもよく、それ自体タスクの実行に関与しなくてもよい。
【0033】
[0047]FMS102からAMに(通常モード又はマスター-スレーブモードのいずれかで)通信される情報は、実行されるべき単一のタスク及びタスクを実行するために使用されるべき1つ以上のリソースを特定してもよく、或いは、複数のタスクを特定するとともに、それぞれのタスクごとに、タスクを実行するために使用されるべき1つ以上のリソースを特定してもよい。
【0034】
[0048]特定の実施形態では、FMS102がタスクシミュレーションサブシステム208を含んでもよい。FMS102は、このサブシステムを使用して、実行されるべきタスクをシミュレートして、タスクに関する完了の予想時間を決定してもよい。タスクを実行するためのリソースの最適な組み合わせを決定するために、利用可能なリソースの様々な組み合わせを含む様々な利用可能なリソースを使用するタスクの実行がシミュレートされてもよい。タスクが複数のサブタスクを含む場合、タスクシミュレーションサブシステム208は、各サブタスクに関する及びタスク全体に関する完了の予想時間を決定するためにこれらのサブタスクをシミュレートしてもよい。FMS102は、この情報を使用して、タスク(及び/又はそのサブタスク)が予期される態様で実行されているかどうか或いは問題(例えば、タスク又はサブタスクが予期される時間枠内で完了されないことによって潜在的に示唆される問題)があるかどうかを決定してもよい。
【0035】
[0049]タスクシミュレーションサブシステム208は、タスクのセットの実行をシミュレートするために様々なシミュレーションツール及び技術(例えば、モンテカルロシミュレーション)を使用してもよい。特定の実施形態において、タスクシミュレーションサブシステム208は、タスクのセットの実行をシミュレートするためにタスクのセットの過去の実行に関連する履歴データを利用してもよい。履歴データは、FMS102のタスク-リソースデータ記憶サブシステム212内にリソース情報216の一部として記憶されてもよい。履歴データは、例えば、リソース(すなわち、AM)に関連するサービス履歴データ、マシン/車両故障履歴、タスクを実行するのに要する時間、落石などのタスクの実行中の予期しない事象の過去の発生、現場浸水などを含んでもよい。
【0036】
[0050]図2は、AM218の一例も示す。図2に示される例において、AM218は、自律マシンシステム(AMS)226、通信サブシステム222、センサ224、車両システム225、システムメモリサブシステム227、及び、記憶サブシステム228を含む。AM218のシステム及びサブシステムは、ソフトウェアのみ、ハードウェアのみ、又は、それらの組み合わせを使用して実装されてもよい。ソフトウェアは、持続性コンピュータ可読媒体(例えば、メモリデバイス)に記憶されてもよく、その機能を果たすために1つ以上のプロセッサによって(例えば、コンピュータシステムによって)実行されてもよい。図2に示される実施形態では、全てのシステム及びサブシステムがAM218内又はAM218上にあるものとして示される。しかしながら、これは限定しようとするものではない。別の実施形態では、サブシステムの幾つか(例えば、センサ224のうちの幾つかのセンサ)がAM218から遠隔的に位置されてもよい。
【0037】
[0051]通信サブシステム222は、有線又は無線リンクを介したFMS102とAM218との間の通信を容易にする。通信サブシステム222は、AM218とFMS102との間の通信及びAM218と他の1つ以上のAMとの間の通信も可能にする。様々な異なる通信技術及びプロトコルが通信のために使用されてもよい。例えば、AM218とFMS102との間の通信は、Wi-Fi、衛星通信などの様々な通信プロトコルを使用して促進されてもよい。例えば、AM218と他のAMとの間の通信は、V2I(車両対インフラ;Vehicle-to-Infrastructure)、V2V(車両対車両;Vehicle-to-Vehicle)、V2P(車両対歩行者;Vehicle-to-Pedestrian)、V2D(車両対装置;Vehicle-to-device)、V2G(車両対グリッド;Vehicle-to-grid)などを使用して促進されてもよい。
【0038】
[0052]特定の実施形態では、他のサブシステムに加えて、AMS226(AMコントローラシステムとも称される)が、タスク実行サブシステム220及びセンサインタフェースサブシステム221を備える。タスク実行サブシステム220は、実行されるべきタスクに関する情報をFMS102から又はマスターAMから受信するように構成されるとともに、AM218がタスクを自律的に達成して実行できるようにする。実行されるべきタスクに応じて、タスク実行サブシステム220は、タスクに関連するAM218によって実行されるべきサブタスクのセットを決定するように構成される。その後、タスク実行サブシステム220は、これらのサブタスクがAM218によって自律的に実行されるようにしてもよい。特定の実施形態では、サブタスクに関して1つ以上の単位タスクのセットが決定されてもよい。その後、タスク実行サブシステム220は、AM218によって、タスク又はサブタスク又は単位タスクの実行中にAM218がFMS102と通信することを必要とせずに、タスク、サブタスク、又は、単位タスクが自律的に実行されるようにしてもよい。タスク実行サブシステム220によって実行される動作に関する詳細は、図4に示されるフローチャート及び添付の説明に関して更に詳細に以下に説明される。
【0039】
[0053]特定の実施形態において、センサインタフェースサブシステム221は、センサ224とAMS226との間の通信を可能にするインタフェースを与える。センサインタフェースサブシステム221は、センサ224からセンサデータを受信して、そのデータをAMS226を含むAM218の1つ以上のサブシステムに与えてもよい。センサインタフェースサブシステム221は、センサ224から受信されるセンサデータを処理するように構成され、この場合、センサデータは、AM218の状態(例えば、経路上の位置)及びAMの環境の状態(例えば、AMの環境内の物体の状態及び位置であり、物体は他のAM、人、障害物、溝又は穴などとなり得る)を表わしてもよい。センサインタフェースサブシステム221は、受信されたセンサデータを、それが更なる解析のためにタスク実行サブシステム220に供給される前に前処理してもよい。AMS226は、この情報を使用して、単位タスクのセットを自律的に実行する及び/又はAMの1つ以上の自律機能又は動作を制御することができる。
【0040】
[0054]センサインタフェースサブシステム221は、有線又は無線リンクを介してセンサ224及び車両システム225に結合される。AMS226とセンサ224との間及びAMS226と車両システム225との間の通信を容易にするために、1つ以上の異なる通信プロトコルが使用されてもよい。例えば、AMS226は、AMの推進、制動、操向、又は、ナビゲーション、及び、補助挙動(例えば、ライトをオンにする)機能などのAMの動きの様々な態様をプログラム的に且つ自律的に制御するために車両システム225に命令/コマンドを発行してもよい。
【0041】
[0055]車両システム225は、AM218によって自律的に実行される機能を含むその意図される機能をAM218が果たすことができるようにする様々な電子-機械システム、構成要素、リンク機構などを含む。例えば、AM218が自律車両である場合、車両システム225は、自律車両が特定の経路又はコースに沿って自律的に走行又はナビゲートできるようにする車両のシステムを含んでもよい。車両システム225は、例えば、自律マシンを駆動するためのステアリングシステム、スロットルシステム、ブレーキシステム、推進システムなど、電気システム、補助システム(例えば、自律車両120の運転者又は搭乗者に情報を出力するためのシステム)などを含むことができる。AM218が車両である実施形態では、車両システム225を使用してAM218の経路及び速度を設定することができる。AMが特殊な動作を実行するように構成される(例えば、掘削作業を自律的に実行するように構成される掘削機、積み込み作業を自律的に実行するように構成されるドーザ、第1の位置から第2の位置に材料を自律的に輸送するように構成されるトラックなど)実施形態では、車両システム225が、そのような動作を実行できるようにするAMのシステムを含んでもよい。
【0042】
[0056]センサ224は、AM218に関する及びAMの環境に関する情報を捕捉するように構成された1つ以上のセンサを含む。センサ224のうちの1つ以上は、AM218上又はAM218中に位置されてもよく(「車載センサ」)、或いはAM218から離れて位置されてもよい(「リモートセンサ」)。センサ224は、AM218に関する環境情報を取得できる。センサ224によって捕捉されるセンサデータは、有線又は無線リンク及びプロトコルを使用してAM 218の1つ以上の他のサブシステム又はシステムに通信されてもよい。センサ224としては、LIDAR(Light Detection and Ranging)センサ、レーダ、カメラ(異なる感知能力を有する異なる種類のカメラが使用されてもよい)、グローバル・ポジショニング・システム(GPS)及び慣性計測ユニット(IMU)センサ、車両対全て(V2X)センサ、音声センサなどを挙げることができるが、これらに限定されない。センサ224は、AM218の環境情報を取得(例えば、感知、捕捉)して、検出又は捕捉されたセンサデータを処理のためにAMS 226に通信することができる。他のセンサとしては、近接センサ、SONARセンサ、及び、他のセンサを挙げることができる。
【0043】
[0057]レーダセンサ(すなわち、長距離レーダ、短距離レーダ、撮像レーダなど)の例は、AM218の環境内の物体を検出して検出された物体の速度を決定するために使用されるセンサを含んでもよい。LIDARセンサの例は、パルスレーザ光の形態を成す光を使用することによって標的までの距離を測定する測量技術を使用するセンサを含む。これは、パルスレーザ光で測定される標的を照射するとともに反射されたパルスをセンサを使用して測定することによって行なわれる。V2Xセンサの例は、V2X通信技術を使用して交通システムの可動部分と通信するセンサを含む。例えば、AM218は、自律車両の周囲又は近くの他のエンティティに車両から情報を渡す及び/又は受信するためにV2Xセンサを使用してもよい。V2X通信センサ/システムは、V2I(車両対インフラ;Vehicle-to-Infrastructure)、V2V(車両対車両;Vehicle-to-Vehicle)、V2P(車両対歩行者;Vehicle-to-Pedestrian)、V2D(車両対装置;Vehicle-to-device)、V2G(車両対グリッド;Vehicle-to-grid)などの他のより具体的なタイプの通信インフラを組み込んでもよい。IMU(慣性計測ユニット)センサは、加速度計、ジャイロスコープ、磁力計などの組み合わせを使用して、身体の特定の力、角速度、及び、場合によっては身体を取り囲む磁場を測定及び報告する電子デバイスであってもよい。GPSセンサは、地理的位置及び時間情報を決定するために宇宙ベースの衛星ナビゲーションシステムを使用する。
【0044】
[0058]図3は、特定の実施形態に係る、FMSによって実行される方法を示すフローチャート300を示す。図3に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図3に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図3は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。特定の実施形態において、例えば図3に示される実施形態において、図3に示される処理は、図2に示されるFMS102のタスク特定サブシステム204及びリソース割り当てサブシステム206によって実行されてもよい。
【0045】
[0059]ブロック302において、FMS102は、実行されるべき1つ以上のタスクのセットを決定する。特定の例において、タスク特定サブシステム204は、FMS102のユーザ(例えば、オペレータ)によってから受信される入力に基づいて実行されるべきタスクのセットを決定する。例えば、ユーザは、FMS102のユーザインタフェース(UI)202を利用して、FMSによって実行されるべきタスクのセットを定めてもよい。他の例において、FMS102は、タスク-リソースデータ記憶サブシステム212に記憶されたタスク情報214を利用して、実行されるべきタスクのセットを決定してもよい。タスク情報214は、例えば、かき集めて放出する動作、材料又は物体を移動させること(例えば、土又は砂をある領域から他の領域へ移動させること)、材料を持ち上げること、走行、回転、土を広げること、掘削、ある地点から他の地点へ材料又は物体を輸送することなど、現場に位置されるリソースによって実行されるタスクのタイプに関する情報を含んでもよい。タスク情報214は、特定の期間内に実行されるべきタスクのセットを特定してもよい。実行されるべきそれぞれのタスクごとに、タスク情報214は、タスクを完了するための時間を特定する情報、タスクを実行するのに要する総時間、タスクを実行するのに必要なトリップの総数に関する情報などを含んでもよい。
【0046】
[0060]ブロック304では、302において特定されたタスクのセットを実行するためにリソースのセット(例えば、AM)が特定される。304におけるリソース割り当て処理は、図2に示されるリソース割り当てサブシステム206によって実行されてもよい。特定の実施形態において、304において実行されるリソース割り当ては、以下の情報の断片に基づいてもよい。
(a)実行されるべきタスクの詳細に関する情報を表わすタスクのパラメータを特定するタスク情報214。例えば、タスクがポイントAからポイントBへの材料の輸送を伴う場合、タスク関連情報は、輸送されるべき材料の量/サイズ、材料の性質(例えば、それが砂、木材、石炭などであるかどうか)、及び、ポイントAとポイントBとの間の距離を特定してもよい。タスクが完了されるべき期間を特定する情報も、提供されてもよい。特定の事例では、タスクに関する開始時間及び終了時間が提供されてもよい。
(b)タスクが実行されるべき現場に関する情報を特定する現場情報215。例えば、この情報は、現場の詳細なマップ、現場内の様々な位置の座標、様々な位置の標高、位置間の距離などの情報を含んでもよい。
(b)タスクを実行するためのリソースの可用性及び利用可能なリソースの能力を特定する情報--この情報は、リソース情報216の一部として記憶されてもよい。リソース情報216は、AMの製造元/モデル、自律能力を含むAMの能力などに関する情報を含んでもよい。AMの能力に関する情報は、AMの積載能力、AMの速度能力又は制限(例えば、AMが2つの位置間で行なうことができるトリップの数)、AMの積み込み及び/又は放出時間などに関する情報を含んでもよい。リソース情報216は、異なる期間中にタスクのセットを実行するためのリソースの利用可能性に関する情報を含んでもよい。304におけるリソース割り当ての一部として実行される処理に関する更なる詳細は、以下で説明される。
【0047】
[0061]302で特定されたタスクのセットを実行するために使用されるべき1つ以上のリソース(例えば、AM)が304において特定された後、ブロック306において、タスクのセット及びタスクのセットを実行するために割り当てられるリソースに関連する情報がFMSからAMに通信される。特定の実施形態では、タスクのセット及びタスクのセットを実行するために割り当てられるリソースのセットを特定するコマンドがFMSからAMに送信される。
【0048】
[0062]306では、様々な通信モードを使用してAMに情報を通信してもよい。特定の事例では、通信のために「通常」モードが与えられて選択されてもよい。この通常モードでは、302で特定されたそれぞれのタスクごとに、304においてタスク及びそのタスクに関して割り当てられたリソースに関する情報が、そのタスクを実行するために304において選択された各AMにFMS102から通信される。特定の他の事例では、通信のために「マスター-スレーブ」モードが与えられて選択されてもよい。このマスター-スレーブモードでは、302において特定されたタスクに関して、タスクに関する情報がFMS102から「マスター」AMに通信され、また、マスターAMは、その後、タスクを実行するために304において選択された1つ以上のスレーブAMに情報を通信する。また、マスターAMが304において特定されてもよい。幾つかの事例では、マスターAM自体がタスク又はタスクの一部を実行してもよい。他の事例において、マスターAMは、1つ以上のスレーブAMに情報を通信することにのみ関与してもよく、それ自体タスクの実行に関与しなくてもよい。
【0049】
[0063]FMS102からAMに(通常モード又はマスター-スレーブモードのいずれかで)通信される情報は、実行されるべき単一のタスク及びタスクを実行するために使用されるべき1つ以上のリソースを特定してもよく、或いは、複数のタスクを特定するとともに、それぞれのタスクごとに、タスクを実行するために使用されるべき1つ以上のリソースを特定してもよい。
【0050】
[0064]図4は、特定の実施形態に係る、タスクを実行するためにAMによって実行される方法を示すフローチャート400を示す。図4に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図4に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図4は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。図4に示される実施形態などの特定の実施形態において、図4に示される処理は、AM218内のタスク実行サブシステム220によって実行されてもよい。
【0051】
[0065]ブロック402において、AMは、実行されるべきタスクを特定する情報を受信する。402で受信された情報が実行されるべき複数のタスクを特定する場合には、402で受信される情報が、情報を受信するAMが選択された1つ以上のタスクを特定してもよい。例えば、AMは、タスクを実行するためにFMS102から要求又はコマンドを受信してもよい。前述したように、タスクの例としては、制限なく、作業現場で行なわれるかき集めて放出する動作、作業現場内の場所間で材料又は物体を移動させること(例えば、土又は砂をある領域から他の領域へ移動させること)、材料を持ち上げること、走行、回転、土を広げること、掘削、作業現場内のある地点から他の地点へ材料又は物体を輸送することなどを挙げることができる。
【0052】
[0066]簡単にするために、402において受信される情報がAMによって実行されるべき特定のタスクに関するものであると仮定する。ブロック404では、実行されるべきタスクに基づいて、受信AMが、タスクに関してAMにより実行されるべき1つ以上のサブタスクのセットを決定する。特定の事例において、実行されるべきタスクは、それぞれが受信AMによって実行されるようになっているサブタスクのセットに対応してもよい。そのようなシナリオでは、受信AMが実行されるべきサブタスクを特定する。
【0053】
[0067]特定の他の事例では、実行されるべきタスクがサブタスクのセットに対応してもよく、この場合、サブタスクのサブセットのみが特定の受信AMによって実行されるようになっており、また、少なくとも1つのサブタスクが異なるAMによって実行されるようになっている。例えば、タスクは、現場内の場所Aで掘削し、その後、現場内の場所Aから他の場所Bへ材料を移動することを伴ってもよい。このタスクは、以下の3つの別個のサブタスク、すなわち、(1)掘削機によって実行されるべき場所Aでの自律的な掘削、(2)ドーザを使用して場所Aで掘削された材料をトラックに自律的に積み込むこと、及び、(3)トラックを使用して場所Aから場所Bに材料を自律的に輸送することを伴ってもよい。このタスクのために、通常モードでは、掘削機、ドーザ、及び、トラックのそれぞれが402においてタスクコマンドを受信してもよい。その後、404において、掘削機は、それがサブタスク#1(掘削)を実行しなければならないことを決定し、ドーザは、それがサブタスク#2(積み込み)を実行しなければならないことを決定し、トラックは、サブタスク#3(輸送)を実行しなければならないことを決定する。
【0054】
[0068]特定の例において、AMに関してサブタスクを特定するための処理は、AMのタスク実行サブシステム220によって実行されてもよい。特定の実施形態において、タスク実行サブシステム220は、実行されるべきタスクをその対応するサブタスクにマッピングするとともに特定の受信AMによって実行されるべきサブタスク(例えば、上記の例の場合、どのサブタスクが掘削機、ドーザ、及び、トラックによって実行されるようになっているか)を特定する記憶サブシステム228内のタスク-サブタスクマッピングテーブル230に記憶される情報を利用してもよい。
【0055】
[0069]特定の実施形態では、AMによって実行されるべきサブタスクのセットを特定する際、405において、実行されるべきサブタスクに対応するソフトウェアライブラリが、実行のためにAMによってAMのシステムメモリ(例えば、RAM)にロードされる。特定の実施において、タスク実行サブシステム220は、データ記憶サブシステム228に記憶される1つ以上のサブタスクライブラリ232からサブタスクを実施するための特定のライブラリにアクセスするとともに、サブタスクの実行のために、タスクに関連するサブタスクを実施することに特有のサブタスクライブラリ(例えば、232A、232B....232N)をメモリサブシステム227(これは、例えば、システムメモリを含んでもよい)にロードする。その後、これらのロードされたライブラリは、サブタスクを実行するためにAMの1つ以上のプロセッサによって実行される。
【0056】
[0070]特定の実施形態において、AMにより実行されるべき各サブタスクは、単位タスクのシーケンスに更に分割される。特定の実施形態において、サブタスクに関してシステムメモリ227にロードされたソフトウェアライブラリは、サブタスクに関する単位タスクのシーケンスを実施する。ブロック406において、AMは、そのサブタスクに対応する単位タスクのシーケンスを実行してステップスルーすることによって各サブタスクを実行し、この場合、単位タスクの実行は、単位タスクを実行するAMと少なくとも1つの他のAMとの間の通信を伴う。特定の実施形態において、単位タスクのセットを実行することは、単位タスクのセットに対応して実行されるべき動作の定められた順序を特定し、定められた順序にしたがって単位タスクを実行することを伴ってもよい。特定の例において、AMによって実行される単位タスクのうちの1つ以上は、他のAMとの通信を伴ってもよい。
【0057】
[0071]406の一部として、AMは、必要に応じて、AMによって実行される単位タスクのシーケンスに僅かな更新を行なうことができる。例えば、これらの変更は、単位タスクの実行中に遭遇する問題などの出来事に対応するために行なわれてもよい。例えば、AMが単位タスクの実行中に障害物又は妨害物に遭遇すると、AMは、単位タスク及びサブタスクを完了する時間をより長い時間にリセットしてもよく、或いは、サブタスクを完了するために単位ステップのシーケンスを再ルーティング又は更新することができる。また、AMは、第2のAMと通信して、第2のAMに動的変更を知らせることもできる。幾つかの事例において、第2のAMは、第1のAMから受信される動的変更情報に応じてその単位タスクのその実行を更新又は変更してもよい。動的変更に関する情報は、AMによってFMSに通信されてもよい。それに応じて、FMSは、タスクの完了の全体の時間の変更、タスクのためのリソースの割り当ての変更などの修正措置をとってもよい。
【0058】
[0072]タスク、サブタスク、及び、単位タスクを実行するためにAMによって実行される動作に関する更なる詳細は、図5に示される典型的なタスクの実行に関して説明される。図5に示す例において、FMS102は、材料を現場内の定められた供給源位置(A)から定められた目的地位置(B)へ移動するために、実行されるべきタスク502、すなわち、「材料をAからBに移動する」を決定する。FMS102は、タスクを実行するためのAM 504,506,508のセットを特定するとともに、タスクを実行するためのコマンドを特定されたAMのそれぞれに送信する。FMSからコマンドを受信する際、AM 504,506,508のそれぞれは、実行されるべきタスクに関連するそれらのそれぞれのサブタスクを特定して、それらのサブタスクを実行する。
【0059】
[0073]例えば、ローダ/掘削機504は、場所Aで材料を自律的に掘削することを伴う実行されるべき「掘削サブタスク」510を特定してもよく、ドーザ506は、場所Aで掘削された材料をトラックに積み込むための「積み込みサブタスク」を特定してもよく、及び、トラック508は、場所Aから場所Bに材料を運搬/輸送するための「運搬サブタスク」を特定してもよい。特定の例において、AMによるサブタスクの実行は、サブタスクの実行に関連する1つ以上の単位タスクのセットの実行を伴ってもよい。(1)掘削機によって実行されるべき場所Aでの自律掘削、(2)ドーザを使用して場所Aで掘削された材料をトラックに自律的に積み込むこと、及び、(3)トラックを使用して場所Aから場所Bに材料を自律的に輸送することの3つのサブタスクを伴う上記の例において、
(a)掘削機によって自律的に実行される単位タスクのシーケンスは、掘削機が掘削し終えたときに掘削サブタスクが完了して材料がいつでもドーザによって積み込まれ得る状態にあることをドーザに対して掘削機に通信させる単位タスクを含んでもよく、
(b)ドーザによって自律的に実行される単位タスクのシーケンスは、(1)掘削機がそのサブタスクを終了してドーザがそのサブタスクをいつでも開始できる状態にあることを示す情報を受信したことを ドーザによって掘削機に受信して承認すること、(2)トラックと通信してトラックを場所Aに到着させること、(3)トラックと通信してトラックがいつでも積み込める状態となる時期を決定すること、(4)トラックと通信してドーザが積み込みサブスタックを完了したことを示すことを伴ってもよく、
(c)トラックによって自立的に実行される単位タスクのシーケンスは、(1)場所Aにおいていつでもトラックに積み込める状態にあるというドーザの通信を受信して応答すること、(2)トラックがいつでも積み込める状態にある時期を示すための通信をドーザに送信すること、(3)トラックが現時点で輸送サブスタックをいつでも実行できる状態にあるように積み込みサブスタックの完了時にドーザから通信を受信することを伴ってもよい。
【0060】
[0074]したがって、単位タスクは、条件チェック(特定の単位タスクが実行される前後の両方でチェックされるべき条件を含む)、AM間の状態情報の通信などを含んでもよい。これらの通信は、FMSを関与させることなく達成される。これにより、単位タスク、サブタスク、及び、タスク全体を、FMSと通信する必要なく、協働的又は協調的にAMによって実行できる。特定の事例において、AMにより実行される単位タスクは、FMSとの通信も含むことができる。AMがFMSとの接続性を有する場合、AMは、単位タスクごとにFMSと通信してもよい。しかしながら、単位タスクが実行されるようになっているときにAMがFMSに対する接続性を有さない状況では、AMがこの特定の単位タスクをスキップして次の単位タスクに対処してもよい。このように、FMSとの通信の欠如は、AMによって実行される単位タスク及びサブタスクの完了、及び、一般にはタスクの実行を妨げない。
【0061】
[0075]特定の例において、各単位タスクは、1つ以上のデフォルト動作のセットと関連付けられてもよい。これらの1つ以上のデフォルト動作は、AMが単位タスクを実行している間にエラーに遭遇するときにAMによって実行されてもよい。単位タスクを実行している間にAMが遭遇するエラーの例として、例えば、単位タスクの実行中に発生する場合がある車両の誤動作、道路阻絶、FMSに対する断続的なネットワーク接続などの予期しない事象を挙げることができる。特定の例において、AMによって実行されるデフォルト動作としては、その実行中に遭遇したエラーの情報に関する状態更新をFMS102に送信すること、エラーをエラーログに記録すること、マスター-スレーブモードの場合にマスターAMに通知することなどを挙げることができる。
【0062】
[0076]前述したように、特定の事例では、AMと通信するために「マスター-スレーブ」モードがFMSによって利用されてもよい。このマスター-スレーブモードでは、FMS102がタスクに関する情報を「マスター」AMに通信し、その後、マスターAMは、タスクを実行するために情報を1つ以上のスレーブAMに通信する。幾つかの事例では、マスターAM自体がタスク又はタスクの一部(例えば、サブタスク)を実行してもよい。他の事例において、マスターAMは、FMSから受信される情報を1つ以上のスレーブAMに通信又は中継することのみに関与してもよく、また、それ自体がタスク又はタスクの一部(例えば、サブタスク)の実行に関与しなくてもよい。
【0063】
[0077]図6は、特定の実施形態に係る、FMSから受信される情報を1つ以上のスレーブAMに通信するために「マスターAM」によって実行される動作を示すフローチャート600である。図6に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図6に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図6は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。図6に示される実施形態などの特定の実施形態において、図6に示される処理は、図2に示されるタスク実行サブシステム220によって実行されてもよい。
【0064】
[0078]ブロック602において、マスターAMは、実行されるべきタスク(又はタスクのセット)を特定する情報をFMS102から受信する。特定の例では、実行されるべきタスクを特定する際、FMS102は、タスクを実行するための1つ以上のAMを特定し、その後、特定されたAMのうちの1つをマスターAMとして選択してもよい。幾つかの他の事例において、1つ以上の特定のAMは、マスターAMとして事前設定されてもよく、また、FMS102は、これらのマスターAMのうちの1つを選択してもよい。1つ以上のマスターAMを特定する情報は、リソース情報216に含まれてもよく、FMSにアクセス可能であってもよい。例えば、AMは、その特定の能力に起因してマスターとしてタグ付けされてもよい。特定の他の例において、FMSは、現場内のその特定の位置に起因してAMをマスターAMであると特定してもよい。例えば、マスターAMは、現場内の他の特定されたAM及びFMS102の近く(すなわち、通信範囲内)に位置されてもよい。
【0065】
[0079]ブロック604において、マスターAMは、タスクを実行するようになっている1つ以上のスレーブAMを特定する。特定の例において、FMS102は、タスクを実行するために必要なスレーブAMを特定する情報をマスターAMに与えてもよく、その情報は、602においてマスターAMによって受信されてもよい。他の例では、マスターAM自体がタスクを実行するためのスレーブAMを特定してもよい。特定の実施形態において、マスターAMは、タスクに含まれるサブタスクを特定し、サブタスクのうちの1つ以上を実行するためのスレーブAMを特定してもよい。
【0066】
[0080]ブロック606において、マスターAMは、602においてFMSから受信されたタスク情報を、604において特定された1つ以上のスレーブAMのそれぞれに通信する。幾つかの事例では、マスターAM自体がタスク又はタスクの一部(例えば、タスクの特定のサブタスク)を実行してもよい。他の事例において、マスターAMは、FMSから受信される情報を1つ以上のスレーブAMに通信することのみに関与してもよく、それ自体がタスクの実行に関与しなくてもよい。
【0067】
[0081]ブロック608において、タスクは、タスクを実行するように構成されるAMによって実行される。タスクを実行するAMは、604において特定されたスレーブAMを含み、タスクの一部(例えば、サブタスク)を実行するようにマスターAMも特定される状況ではマスターAMも含む。特定の実施形態において、AMは、図4に示される404,405,406に対応する処理にしたがってタスクを実行してもよい。
【0068】
[0082]図7は、幾つかの実施形態に係る、マスタースレーブモードにおけるタスクの実行の典型的な例図である。図示の例において、FMS102は、材料を現場(例えば、鉱山現場)の定められた供給源位置「A」から現場内の定められた目的地位置「B」へ移動させるために、実行されるべきタスク702、すなわち、「材料をAからBへ移動させる」を決定する。この例において、FMS102は、タスクを実行するためにAM704,706,708のセットを特定し、AM704を「マスターAM」であると更に特定する。幾つかの事例では、AM704がマスターAMとして設定されてもよく、したがって、AM704がFMS102によってマスターAMとして特定される。幾つかの他の事例において、FMS102は、AM704をFMS102に対するその位置に起因してマスターAMとして選択してもよい。例えば、マスターAM704は、それがFMS102の通信範囲内にあるように位置されてもよい(スレーブAM706,708がこの通信範囲外にあってもよい)。更に他の事例において、AM704は、実行されるべき特定のタスク702に関してマスターAMとして事前設定されてもよい。
【0069】
[0083]その後、FMS102は、タスク702を実行するためにマスターAM704にコマンドを通信又は送信する。幾つかの事例において、マスターAM704は、それが実行されるべきタスクに関する情報をFMS102から受信する際に現場内の第1の場所に位置されてもよく、その後、その場所をスレーブAM706,708の通信範囲内にある現場内の新たな場所に変更し、その後、FMS102から受信される情報をスレーブAMに通信しなければならない場合がある。これは全て、マスターAM704によって自律的に行なわれる。FMS102からマスターAM704に通信される情報は、タスクを実行するためのスレーブAM706,708も特定する。タスクに関連する他の情報(例えば、タスクの完了の予想時間)がFMS102からマスターAM704に通信されてもよい。マスターAM704は、FMS102から情報(例えば、タスクを実行するためのコマンド)を受信し、その情報又はその一部をスレーブAM706,708に通信する。
【0070】
[0084]前述したように、幾つかの事例では、マスターAM自体が、1つ以上のサブタスクなど、実行されるべきタスクの一部を実行してもよい。他の事例において、マスターAMは、FMS102から受信される情報を1つ以上のスレーブAMに通信又は中継することのみに関与してもよく、それ自体がタスクの実際の実行に関与しなくてもよい。図7に示される例の目的のために、マスターAM704もタスク702の一部を実行すると仮定する。タスクに関する情報を受信するAMのそれぞれは、特定のAMが実行するようになっているタスクに関連付けられる1つ以上のサブタスクを決定するように構成される。特定の実施形態において、これは、図4のブロック404に示されて前述した処理によって行なわれる。図7に示されるように、マスターAM704は、それがサブタスク710を実行するようになっていると決定し、サブタスク710を実行する。サブタスクを実行する一環として、マスターAM710は、サブタスクに関連する1つ以上のライブラリをロードしてもよく、また、ライブラリの実行は、マスターAM710にサブタスクを実行させる。サブタスク710を実行する一環として、マスターAM704は、サブタスク710に対応する1つ以上の単位タスク716のシーケンスを実行することができる。同様に、スレーブAM706は、それがサブタスク712を実行するようになっていると決定する。スレーブAM706は、サブタスク712に関連する1つ以上のライブラリをロードしてもよく、また、ライブラリの実行は、スレーブAM706にサブタスク712を実行させる。サブタスク712を実行する一環として、スレーブAM706は、サブタスク712に対応する1つ以上の単位タスク718のシーケンスを実行してもよい。スレーブAM708は、それがサブタスク714を実行するようになっていると決定し、サブタスク714に関連する1つ以上のライブラリをロードする。ライブラリの実行により、スレーブAM708がサブタスク714を実行する。サブタスク714を実行する一環として、スレーブAM708は、サブタスク714に対応する1つ以上の単位タスク720のシーケンスを実行してもよい。
【0071】
[0085]特定の例において、サブタスク710,712,714の実行は、タスク702を実行しているAM704,706,708のうちの2つ以上の間の通信を伴ってもよい。例えば、AM(例えば、AM704、AM706、又は、AM708)によって実行される単位タスクは、タスクを実行する他のAMとの通信を伴ってもよい。例えば、通信は、AM間の条件チェック、状態情報の交換などに関連付けられてもよい。これらのAM間通信は、FMS102を伴わず、したがって、FMS102がAM704,706又は708の通信範囲内にない場合でも、AMによって実行され得る。これらのAM間通信は、AMによって自律的に実行される。このように、タスク、サブタスク、及び、単位タスクは、FMS102と通信する必要なく、AM704,706,708によって実行され得る。
【0072】
[0086]特定のシナリオにおいて、AM704,706,708によって実行される単位タスクのうちの1つ以上は、FMS102との通信、例えば、サブタスクに関する状態更新をFMS102に送信することを伴ってもよい。単位タスクがFMS102と通信するAMを伴うとともにFMSが通信範囲外である状況では、AMが他の単位タスクを続行してもよい。FMSへの通信は、AMがFMS102に接続されるときに常に実行されてもよい。このようにして、タスクは、FMS102とAM704,706,708との間の通信接続性の欠如に起因して停止されず又は遅延されず又は悪影響を受けない。
【0073】
[0087]特定の実施形態において、マスターAM704は、スレーブAM706,708とFMS102との間の通信仲介役としての機能を果たす。例えば、データ又はメッセージがスレーブAMからFMSに通信されなければならない場合、スレーブAMは、最初に特定のデータ又はメッセージをマスターAMに最初に通信してもよく、その後、マスターAMは、特定のデータ又はメッセージをFMS102に通信してもよい。例えば、マスターAM704は、それがスレーブAM706,708との通信範囲内にあるがFMS102との通信範囲内にはなく、スレーブAM706,708もFMS102との通信範囲外にある第1の場所にあってもよい。この第1の場所において、スレーブAM706,708は、FMS102向けのデータ又はメッセージをマスターAM704に通信してもよい。その後、マスターAM704は、その場所を、それがFMSと通信できる第2の場所に自律的に変更してもよい。その後、マスターAM704は、この第2の場所にあるときに、スレーブAM706,708から受信されるデータ/メッセージをFMS102に通信してもよい。特定の実施形態において、マスターAM704は、スレーブAMから受信されるデータ又はメッセージを照合し、その後、照合されたデータ/メッセージをFMS102に通信してもよい。これは、マスターAMがFMS102に対する通信接続性を得ることができるがスレーブAMがFMSに接続されない(例えば、スレーブAMがFMSからの通信範囲外にある)状況で有用である。FMS102によるマスターAM704の特定は、AM706,708がFMS102との通信範囲外にある現場の一部に位置される場合であっても、タスクの完了を確保するべく他のAM706,708がマスターAM704と及び互いに直接に通信できるようにする。
【0074】
[0088]例えば、マスターAM704は、スレーブAM706,708から状態更新メッセージを受信するように構成されてもよい。状態更新メッセージは、所定の時間間隔で(例えば1時間ごとに)例えばサブタスクの特定の割合の完了時又はサブタスク全体の完了時などの可変の時間間隔でマスターAM704によって受信されてもよい。特定の例において、状態更新情報は、スレーブAMが遭遇する予期しない事象、それらのそれぞれのサブタスクの実行、及び、車両故障、道路阻絶、ネットワーク接続性問題、ルート変更などの単位タスクに関する情報を示してもよい。
【0075】
[0089]マスター-スレーブ動作モードは、AMによるタスクの完了に関して幾つかの利点を与える。FMSは、その後にスレーブAMと通信できるマスターAMと通信するだけで済む。マスターAMは、スレーブAMがFMSと通信できない場合であってもFMSとスレーブAMとの間の通信を容易にする。更に、AM間通信と相俟って、タスクを実行するAMがFMSと通信できない場合であってもタスクを複数のAMによって自律的に実行することができる。特定の実施形態において、AMは、タスクを完了するために自律的態様で互いに協働する又は協調する。各AMは、AMがタスクに関して実行するようになっている1つ以上のサブタスクを自律的に決定することができる。各サブタスクは、AMによって自律的に実行される単位タスクのシーケンスに変換し得る。単位タスクのうちの1つ以上は、タスクの実行に関与する1つ以上の他のAMとの通信を含むことができる。したがって、タスクは、FMSと通信する必要なく或いはタスクを実行するAMのうちの1つ以上とFMSとの間に通信接続性がない場合であっても、AMによって自律的に完了され得る。
【0076】
[0090]図4図7に関連して記載される例は、AMのセットによる単一のタスクの実行について説明する。しかしながら、特定の状況において、FMS102は、AMのセットによって、並行して又は重複して又は順次に、実行されるべき複数のタスクを特定してもよい。現場で利用可能なリソース(例えば、AM)のセットを用いて現場で複数のタスクが実行されるようになっている場合、様々なタスクに関して知的にリソースを割り当てるタスクが重要になる。リソース割り当て処理は、以下のような様々な要因によって影響を受ける場合があるが、これらに限らない。
-実行されているタスクの性質。例えば、掘削、運搬など。
タスクに関するサブタスク間の依存関係或いは更にはタスク間の依存関係を含む、実行されるべきそれぞれのタスクに関するサブタスク及び単位タスクの性質。
実行されるべきそれぞれのタスクに関する完了の予想時間。
リソース又はAMの能力の違い。例えば、自律トラックの様々な運搬能力、トラックの速度、ローダの積み込み時間など。
-タスクが実行されるようになっている現場上の場所の属性。例えば、その場所における道路の勾配又は傾斜、その場所における障害物の存在、その場所でどのAMを使用できるかに影響を与え得る場所の大きさなど。
-異なる期間にわたるリソースの異なる可用性。例えば、動作の最初の1時間中に4台のトラックのみが利用可能であり、動作の次の1時間中に5台のトラックが利用可能になるなど。
-タスクが実行されているときに起こり得る予期しない出来事。例えば、タスクを実行するAMの故障、タスク又は関連するサブタスクを完了するAMにおいて遅延を引き起こす出来事。
【0077】
[0091]特定の実施形態において、FMS102は、特定されたタスクを実行するために利用可能なリソース(例えば、利用可能なAM)をどのように割り当てるべきかを決定するための処理を実行するように構成される。目標は、タスクが予想通りに及び予想される又は所定の時間枠内で完了されるように利用可能なリソースを最適に割り当てることである。また、FMS102は、各タスク、及び、タスクに対応する各サブタスクに関する完了の予想時間を決定するように構成される。FMS102は、タスク及びサブタスクの状態をチェックして、予期しない及び/又は計画されていない事象(例えば、タスク又はサブタスク又は単位タスクが予想完了時間と比較して完了するのにはるかに長い時間を要する、AMの故障又は機械的不具合など)に応じて是正措置(例えば、利用可能なAMの再割り当て)を講じるように構成される。特定の実施形態において、リソース割り当て関連処理は、FMS102のリソース割り当てサブシステム206によって実行される。
【0078】
[0092]図8は、特定の実施形態に係る、リソース(例えば、AM)の最適な割り当てのためにFMSによって実行される方法又は動作を示すフローチャート800である。図8に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図8に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図8は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。図8に示される実施形態などの特定の実施形態において、図8に示される処理は、図2に示されるFMS102のリソース割り当てサブシステム206によって実行されてもよい。
【0079】
[0093]802では、現場で実行されるべきタスクのセットがFMS102によって決定される。特定の例において、タスクのセットは、FMS102によって管理されるAMのセット(例えば、106A-106N)によって並列に、重複して、又は、順次実行されるべき複数のタスクを表わしてもよい。例えば、タスクのセットは、現場104内の様々な供給源位置から現場104内の様々な目的地位置への材料の移動を含んでもよい。
【0080】
[0094]804において、FMS102は、802において特定された各タスクの完了の予想時間を決定してもよい。特定の例において、FMS102のリソース割り当てサブシステム206は、タスク-リソースデータ記憶システム212に記憶されたタスク情報214から各タスクの完了の予想時間に関する情報を取得してもよい。
【0081】
[0095]806において、FMSは、タスクを実行するために現場で利用可能なリソース(例えば、AM)を決定するとともに、それぞれのリソースごとに、ある期間(「シフト」と称される)にわたるリソースの利用可能性を決定する。806の処理の一環として、FMS102はシフトを最初に決定する。シフトは、1日又は24時間の期間、12時間の期間、8時間の期間、4時間の期間などであってもよい。幾つかの事例において、シフトは、実行されるべきタスクに関して803で決定された完了時間の中から最も長い予想完了時間に対応してもよい。
【0082】
[0096]特定の実施形態では、806の処理の一環として、シフトは、より少ない期間(本明細書中ではサブ期間と称される)に更に細分されてもよい。次に、806の処理の一環として、FMS102は、シフトにわたる及びそれぞれのサブ期間ごとのリソースの利用可能性を決定する。特定の例において、FMS102は、タスク-リソースデータ記憶システム212に記憶されたリソース情報216から、様々な期間中のリソースの利用可能性に関する情報を取得してもよい。
【0083】
[0097]ブロック808では、802,804,806において実行された処理に基づき、FMS102は、802において特定されたタスクのセットを実行するための利用可能なリソースの最適な割り当てを決定する。808において最適な割り当てを決定するために様々な異なるプログラミング技術が使用されてもよい。一実施形態では、リアルタイム動的プログラミングベースの最適化方法などの1つ以上の最適化技術が、最適な割り当てを決定するために使用される。そのような最適化技術の例は、線形及び非線形プログラミング技術を含む。特定の実施形態では、グラフ理論に基づく技術を使用して、作業現場からのそのようなリソースの近接度に基づいてタスクに関するリソースの実際のディスパッチを決定してもよい。808における割り当ては、タスクが実行されるようになっている現場のリアルタイムの状態、リソースのリアルタイムの利用可能性、実行されているタスクの性質(例えば、移動した距離)、利用可能なリソースの能力などのリアルタイム情報に基づいてリアルタイムで行なわれる。本明細書中に記載されるリソースは、完全自律、半自律、又は、手動を含む、トラック、ローダ、掘削機、地球ムーバなどの全てのマシンを含むことができる。図9は、現場内での材料の移動を伴うタスクのセットを実行するためにリソース(例えば、トラック)の最適な割り当てをどのように決定できるかの一例を記載することによってブロック808で実行される動作の更なる詳細を表わす。
【0084】
[0098]810において、それぞれのサブ期間ごとの完了されるべきタスクとそのタスクを実行するために割り当てられたリソースとに関する情報が、FMS102からリソース(例えば、AM)に通信される。これは、通常モード、マスター-スレーブモード、又は、他のモードを使用して前述したように行なわれてもよい。
【0085】
[0099]812において、FMS102は、リソースによって実行されているタスクの状態を監視する。例えば、リソースは、図3及び図4に示される処理を使用して、タスク、対応するサブタスク、及び、対応する単位タスクを実行してもよい。これは、タスクを実行するリソースの状態を監視すること、タスク又はサブタスク或いは単位タスクを実行するのに要する実際の時間を監視してそれらの時間を予想完了時間と比較すること、任意の計画されていない又は予期されない出来事(例えば、AMの障害、AMがそのタスクを実行するのを妨げる障害物、又は、タスクの実行に遅延を引き起こす障害物など)を監視することを含んでもよい。特定の状態により、FMS102は、808に戻って、812において監視される現在の状態情報に基づいて特定のリソースの再割り当てを実行してもよい。
【0086】
[0100]特定の実施形態において、FMS102により実行される動作808は、現場内で材料の移動を伴うタスクのセットを実行するために利用可能なAMのセット(例えば、トラック)の最適な割り当ての決定を伴ってもよい。図9は、特定の実施形態に係る、現場内で材料の移動を伴うタスクのセットを実行するのに最適なAMのセットの割り当てのためにFMSによって実行される方法を示すフローチャート900である。図9に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図9に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図9は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。
【0087】
[0101]図9に示される実施形態などの特定の実施形態において、図9に示される処理は、図2に示されるFMS102のリソース割り当てサブシステム206によって実行されてもよい。特定の例において、図9に示される処理の様々なステップは、特定の実施形態に係る、タスクのセットの一例とタスクのセットを実行するためのAMのセット(すなわち、トラック)の最適な割り当ての決定とを示す図10に関連して更に説明される。
【0088】
[0102]ブロック902において、FMSは、現場で実行されるべきタスクのセットを決定する。例えば、FMSは、(図8に記載された)ブロック802内に示される処理を使用して、実行されるべきタスクのセットを決定してもよい。図10に示される例は、同時に開始されてFMS102によって管理されるAMのセット(すなわち、トラック)によって実行又は達成されるべき3つのタスクT1 1002、T2 1004、T3 1006を示す。タスクT1、T2、T3は、現場104内の様々な供給源位置から現場104内の様々な目的地位置への材料の移動を伴う。例えば、タスクT1は、現場内の供給源Aから目的地Xへの第1の量の材料(例えば、12個の材料片(それぞれ6つの材料の2つのスタック))の移動を伴う。タスクT2は、現場内の供給源Bから第2の目的地Yへの第2の量の材料(例えば、18個の材料片)の移動を伴い、また、タスクT3は、現場内の供給源Cから目的地Zへの第3の量の材料(12個の材料片)の移動を伴う。
【0089】
[0103]ブロック904において、FMS102は、902において特定された各タスクの完了の予想時間を決定する。特定の例では、前述したように、FMS102のリソース割り当てサブシステム206は、タスク-リソースデータ記憶システム212に記憶されたタスク情報214から各タスクの完了の予想時間に関する情報を取得してもよい。図10に示される例を参照すると、タスクT1の完了の予想時間は2時間であり、タスクT2の完了の予想時間は4時間であり、タスクT3の完了の予想時間は3時間である。
【0090】
[0104]906において、FMSは、タスクを実行するために現場で利用可能なリソース(例えば、AM)を決定するとともに、それぞれのリソースごとに、ある期間(「シフト」と称される)にわたるリソースの利用可能性を決定する。例えば、FMSは、ブロック806(図8に記載される)内に示される処理を使用して、タスクを実行するために現場で利用可能なリソースとある期間にわたるリソースの利用可能性とを決定してもよい。例えば、図10に示される例に関し、シフトが4時間(タスクT2を完了するための時間)となるように決定されてもよい。これは、その時間がタスクT1、T2、T3の中から最も長い完了時間だからである。シフトは、3つのサブ期間、すなわち、2時間の第1のサブ期間、1時間の第2のサブ期間、及び、1時間の第3のサブ期間に更に分割される。シフトをサブ期間に分割することにより、より細かいサブ期間レベルでリソースの割り当てを実行することができる。図10における例から分かるように、サブ期間は異なる時間長となり得る。
【0091】
[0105]次に、906の処理の一環として、FMS102は、シフトにわたる及びそれぞれのサブ期間ごとのリソースの利用可能性を決定する。図10に示される例において、FMS102は、シフトにわたって(すなわち、4時間シフトにわたって)タスクを実行するために合計5つのリソース(5つのトラック)が利用可能であると決定する。FMS102は、第1のサブ期間(すなわち、最初の2時間)中に5台のトラックのうちの4台が利用可能であり、第2のサブ期間(例えば、次の1時間)中及び第3のサブ期間中(例えば、シフトの4番目の時間中)に5台のトラック全てが利用可能であると更に決定する。特定の例において、FMS102は、タスク-リソースデータ記憶システム212に記憶されたリソース情報216から、様々な期間中のリソースの利用可能性に関する情報を取得してもよい。
【0092】
[0106]ブロック908では、902,904,906で実行された処理に基づいて、FMS102は、902で特定されたタスクのセットを実行するために利用可能なAMの最適な割り当てを決定する。特定の実施形態において、908で実行される処理は、ブロック910において、各サブ期間中に各タスクを実行するために行なわれるべきトリップの最適な数を決定すること、及び、ブロック912において、各期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに要するリソース時間の総数及び各期間中に全てのタスクにわたって全てのトリップを実行するのに要するリソース時間の総数に比例して各期間中に利用可能なリソースを分配することを伴う。
【0093】
[0107]特定の実施形態では、ブロック910の一環として、FMS102は、以下の情報に基づいて各サブ期間中に各タスクを実行するために利用可能なリソースのセットによって行なわれるべきトリップの最適な数を決定するように構成される。
(1)各サブ期間中に利用可能な総リソース時間。図10に示される例を続けると、合計5つのリソース(自律トラック)のうちの4つが第1のサブ期間(例えば、最初の2時間)中に利用可能であるとFMSが決定すれば、そのサブ期間中に利用可能な総利用可能リソース時間は、8(4×2)リソース時間であると決定される。
(2)タスクの完了の予想時間。この情報は、タスク-リソースデータ記憶サブシステム212に記憶されたタスク情報214に基づいて決定されてもよい。図10に示される例の場合、タスクT1の完了の予想時間は2時間であり、タスクT2の完了の予想時間は4時間であり、タスクT3の完了の予想時間は3時間である。
(3)各タスクによって輸送される材料の総量。図10に示される例では、タスクT1が12個の材料片を供給源位置Aから目的地位置Xへ輸送しなければならず、タスクT2が18個の材料片を供給源位置Bと目的地位置Yとの間で輸送しなければならず、及び、タスクT3が12個の材料片を供給源位置Cから目的地位置Zへ輸送しなければならない。
(4)トリップを完了するためにAM(すなわち、トラック)が要する時間量。図10に示される例において、トラックがトリップを完了するのに要する時間は15分であると仮定される。
(5)各トラックが各トリップで輸送できる材料の量。図10に示される例の場合、各トラックが輸送できる材料の量は、トリップごとに1つの材料片であると仮定される。
【0094】
[0108]上記のパラメータに基づいて、FMS102は、第1のサブ期間TP1 1008中にタスクT1、T2、T3のそれぞれを実行するために利用可能なリソースのセット(すなわち、4台のトラック)によって行なわれるべきトリップの最適な数を決定する。トリップの最適な数の決定は、サブ期間中の利用可能な総リソース時間とサブ期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに必要なリソース時間の総数との間の差を最小限に抑えようとする最適化関数として定式化されてもよい。
【0095】
[0109]1つの実施において、最適な解決策は、一組の制約を条件としてサブ期間中に利用可能な総リソース時間とサブ期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに要するリソース時間の総数との間の差(すなわち、目的関数)を最小化しようとする。1つの例において、最適化問題は、以下の式(1)に示されるように定式化されてもよく、この場合、式(1)における様々な成分がテーブルAにおいて特定されて記載される。
【表1】
テーブルA
【0096】
[0110]特定の実施形態では、サブ期間中にタスクのセットを実行するのに最適なトリップ数の計算が以下のテーブルBに示される。
【表2】
テーブルB
【0097】
[0111]一例において、最適化関数は、以下の式(1)に示されるように表わされてもよい。
式(1):Σl(Time-T×l番目の時間窓(時間))を最小にするために整数X ijlを求め、これは、全てのタスクのために必要なリソース時間と利用可能なリソース時間との間の差の2乗である。二乗関数は、優れた数学的特性のために使用される。
以下を条件とする
1.Σijl=Lij;全ての時間窓にわたって合計する:トリップの総数が必要なトリップ数と一致する
2.全てのlに関して、Time<=時間窓(時間)×T:目標時間を超えない総所要時間
3.全てのi、j、lに関して、Xijl/l番目の時間窓(時間)<=MTS:総トリップは供給源でサービス能力を超えない
4.全てのi、j、lに関して、Xijl/l番目の時間窓(時間)<=MTD::総トリップは目的地でサービス能力を超えない
【0098】
[0112]例えば、図10に示される例示的な例に関し、目的関数(すなわち、サブ期間中の利用可能な総リソース時間と、サブ期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに必要なリソース時間の総数との間の差)を最小化しようとする最適な解決策は、以下のように決定され得る。図10に示される例示を使用すると、4台のトラックが協働して最初の2時間(すなわち、第1のサブ期間)にタスクT1、T2、T3によって合計32個の材料片を輸送する必要があることが分かる。タスクT1の完了の予想時間は2時間であり、タスクは供給源Aから目的地Xへの12個の材料の移動を伴い、各トラックがトリップを完了するのに要する時間は15分であるため、FMS102によって決定される1つの実現可能な最適な解決策は、タスクT1が第1のサブ期間TP1中に2時間のその予想時間内にその実行を完了することができるように、合計12回トリップをタスクT1に割り当てることである。したがって、合計12回のトリップは、第1のサブ期間中にタスクT1を実行するために3トラック時間の利用をもたらす。その後、実現可能な解決策は、第1のサブ期間中に利用可能な5トラック時間の残量に関して残りのタスクT2,T3に割り当てられるべきトリップの数を決定してもよい。例えば、タスクT2は4時間で実行される必要があり、合計18個の材料片を輸送する必要があるため、1つの実現可能な解決策は、T2が第1のサブ期間(すなわち、2時間)に材料の量の少なくとも半分(9個の材料片)を輸送する必要があるため、9回のトリップをT2に割り当てることであってもよい。同様に、タスクT3は3時間で実行される必要があり、合計12個の材料片を輸送する必要があるため、1つの実行可能な解決策は、T3が第1のサブ期間(すなわち、2時間)に少なくとも1.5倍の量の材料(8個の材料片)を輸送する必要があるため、T3に8回のトリップを割り当てることであってもよい。
【0099】
[0113]その後、FMS102は、上記の式(1)に記載された一組の制約を条件として目的関数(すなわち、サブ期間中に利用可能な総リソース時間と、サブ期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに必要なリソース時間の総数との間の差)を最小化する最適な解決策を決定しようと試みる。
【0100】
[0114]特定の実施形態では、912の一環として、FMS102は、各サブ期間中にそれぞれのタスクごとに最適な数のトリップを実行するのに要するリソース時間の総数及び各サブ期間中に全てのタスクにわたって全てのトリップを実行するのに要するリソース時間の総数に比例して各期間中に利用可能なリソースを分配する。1つの実施において、各サブ期間中に各タスクを実行するために分配されるべきリソースの数は、以下の式(2)に示されるように計算される。
式(2):
l番目の時間窓におけるi-jタスクに割り当てられたトラックの数
=Tl・[(Id+tp+Dij/SLij+Dij/SULji)*Xijl]*Σi,j[(Id+tp+Dij/SLji)+Dij/SULji)*Xijl
式(2)に示されるように、タスクは、他の全てのタスクと比較して、i-jタスクを行なうのに必要な総リソース時間の割合で割り当てられる。したがって、各期間中の利用可能なリソースは、i-jタスクに関して最適化されたトリップ数を完了するのに必要なリソース時間数(動作時間)と、所定の窓(すなわち、サブ期間)内の全てのタスクにわたる全てのトリップを実行するのに必要なリソース時間の総数(動作時間の合計)に利用可能なトラックの総数を乗じたものとに比例して、分配される。
【0101】
[0115]例えば、図9に示される例に関し、最適な解決策が、タスクT1に関して最適な数のトリップを実行するのに必要な3リソース時間、タスクT2に関して最適な数のトリップを実行するのに必要な2リソース時間、及び、タスクT3に関して最適な数のトリップを実行するのに必要な2リソース時間をもたらす場合。第1のサブ期間中に各タスクT1、T2、T3に関して利用可能なリソースの数の分配は、以下の分配をもたらす。すなわち、図10に示される例示に示されるように、第1のサブ期間TP1において、
T1を実行するために3/7番目のリソース(約2台のトラック)が割り当てられ、
T1を実行するために2/7番目のリソース(約1台のトラック)が割り当てられ、
T3を実行するために2/7番目のリソース(約1台のトラック)が割り当てられる。
【0102】
[0116]特定の実施形態において、FMS102は、所定の期間内の全ての利用可能なリソースが完全に利用されるようにしつつ、全てのタスクがそれらの予想完了時間内に実行されるまで、残りのサブ期間TP2、TP3の間にわたって各タスクを実行して利用可能なリソースを分配するべく行なわれるべき最適なトリップ数を決定するプロセスを繰り返してもよい。図10に示される例において、FMS102は、第2のサブ期間1010中に2台のトラックをタスク2に分配し、2台のトラックをタスク3に分配するとともに、第3のサブ期間1012中に5台のトラックを分配してタスク3の実行を完了させ、全てのタスクT1、T2、T3をそれらの完了予想時間内に確実に完了させる。
【0103】
[0117]914では、完了されるべきタスクと、それぞれのサブ期間ごとにタスクを実行するために割り当てられるリソースとに関する情報が、FMS102からリソース(例えば、AM)に通信される。これは、通常モード、マスター-スレーブモード、又は、他のモードを使用して前述したように行なわれてもよい。
【0104】
[0118]特定の例において、リソース割り当てサブシステム208は、最適なトリップ数の決定(例えば、式1から)及び各サブ期間中の利用可能なリソースの分布の決定(例えば、式2)に基づいて、各期間中に実行される各タスクに関する情報を含む出力を生成してもよい。テーブルCは、異なる期間における様々な供給源位置から異なる目的地位置への材料のセットの移動を伴うタスクのセットに関して出力される情報の典型的な例示である。
【表3】
テーブルC
【0105】
[0119]上記のテーブルの例において、テーブルは、
-第1の列:タスクが実行される様々なサブ期間を示す時間間隔列;
-第2の列:自律車両を使用して材料が拾い上げられて輸送されるようになっている現場内の特定の供給源位置を示す供給源位置列;
-第3の列:拾い上げられた材料が運搬されて落とされるようになっている現場内の特定の目的地位置を示す目的地位置列;
-第4の列:現場内の特定の供給源位置(第2の列で特定される)と目的地位置(第3の列で特定される)との間で移動されるべき材料の量を示す列;
-第5の列:各サブ期間中に各タスクに割り当てられるトラックの台数を示す列;
-第6の列:特定のサブ期間中にタスクを実行の結果として移動される材料の割合を示す列
を含む1つ以上の列に編成される。
【0106】
[0120]例えば、テーブルCにより、6:00-7:00AMの時間間隔にわたり、3つのタスクの部分が実行された(タスク:(1)A-X;(2)B-Y、(3)C-Z)。この最初のサブ期間において、
-2台のトラックが、A-Xタスクに割り当てられ、その結果、移動材料の5%に相当する1,167,005トンの材料が移動された。
-6台のトラックが、B-Yタスクに割り当てられ、その結果、移動材料の11%に相当する2,632,681トンの材料が移動された。
-2台のトラックが、C-Zタスクに割り当てられ、その結果、移動材料の9%に相当する1,524,739トンの材料が移動された。
テーブルCから、タスクの幾つかが、同じタスクに関するサブ期間同士の間で異なるトラック割り当てを伴って複数の時間サブ期間にわたって分散されて実行されたことに留意すべきである。例えば、タスクB-Yは、タスクに6台のトラックが割り当てられて午前6時-7時の間に行なわれ、タスクに5台のトラックが割り当てられて午前7時-11時半の間に行なわれ、及び、タスクに4台のトラックが割り当てられて午前11時半-午後2時の間に行なわれた。タスクH-Wは、6台のトラックがタスクに割り当てられて午前11時半-午後2時のサブ期間でのみ行なわれた。トラックの利用可能性も異なる時間サブ期間で異なっていた。
【0107】
[0121]図示のテーブルCは、単なる一例であり、特許請求の範囲に記載される実施形態の範囲を過度に限定しようとするものではない。当業者は、多くの想定し得る変形、代替物、及び、改変を認識できる。例えば、幾つかの実施において、テーブルは、テーブルCに示されるものよりも多い又は少ない列を使用して実施可能であり、2つ以上の情報の列を組み合わせてもよく、或いは、図に示されるものとは異なる列を有してもよい。
【0108】
[0122]図11は、特定の実施形態に係る、現場で実行されるべきタスクをシミュレートするためにFMSによって実行される方法又は動作を示すフローチャート1100である。図11に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図11に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図11は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。図11に示される実施形態などの特定の実施形態において、図11に示される処理は、図2に示されるFMS102のタスクシミュレーションサブシステム208によって実行されてもよい。
【0109】
[0123]ブロック1102において、タスクシミュレーションサブシステム208は、現場で実行されるタスクのセットに関する情報を取得する。情報は、例えば、現場の詳細マップ、現場内の様々な位置の座標、様々な位置の標高、位置間の距離などの現場に関する情報を含んでもよい。情報は、例えば、リソース(すなわち、AM)に関連するサービス履歴データなどの履歴データ(推測的データ)、AMの能力(例えば、AMの製造業者によって与えられる能力)、マシン/車両故障履歴、タスクを実行するのに要する時間、落石などのタスクの実行中の予期しない事象の過去の発生、現場浸水などを含んでもよい。車両履歴データの例としては、車両サービス履歴、車両故障記録、車両の速度制限、積載能力、速度制限、放出時間、自律/手動などの車両能力を含む車両データを挙げることができる。
【0110】
[0124]ブロック1104において、タスクシミュレーションサブシステム208は、タスクのセットの実行をシミュレートする。特定の実施形態において、タスクシミュレーションサブシステム208は、タスクのセットの実行をシミュレートするために様々なシミュレーションツール及び技術(例えば、モンテカルロシミュレーション)を使用してもよい。ブロック1104で実行される動作の一環として、タスクシミュレーションサブシステム208は、タスクのセット内の各タスクの予想完了時間を決定してもよい。1104においてシミュレーションを実行するために様々なシミュレーションモデル及び技術が使用されてもよい。
【0111】
[0125]ブロック1106において、タスクシミュレーションサブシステム208は、タスクのセット内の各タスクの予想完了時間に関する信頼指標を決定する。特定の例において、信頼指標は、タスクシミュレーションサブシステムによって決定されたタスクの予想完了時間の推定の精度のレベル(0-1の間の値)を示す。例えば、0.9の信頼指標は、タスクの予想完了時間の高い精度を示す。特定の実施形態において、リソース割り当てサブシステム206は、タスクに関連付けられた信頼指標を使用してタスクの実行が予想通りに進行しているかどうかを決定することができるとともに、その予想完了時間と比べてはるかに長い完了時間を要するタスク或いはタスクに関連するサブタスク又は単位タスクに応じて是正措置をとる(例えば、利用可能なAMの再割り当てを実行する)ことができる。
【0112】
[0126]図11に示されて前述した処理はタスクの粒度で実行されるが、処理の教示内容を、サブタスクレベルで或いは更には特定の実施形態では単位タスクレベルで適用することもできる。例えば、サブタスク及び単位タスクに関する予想完了時間を決定するために1つ以上のサブタスク又は単位タスクに関してシミュレーションが実行されてもよい。特定の実施形態では、シミュレーションから単位タスクに関して決定される予想完了時間を使用して、サブタスクに関する予想完了時間を決定してもよい。同様に、タスクに対応するサブタスクに関して決定される予想完了時間を使用して、タスクに関する予想完了時間を決定してもよい。
【0113】
[0127]図12は、幾つかの実施形態に係る、タスク実行中のタスクのセットの予想完了時間と実際の完了時間との間の偏差を処理するためにFMSによって実行される方法又は動作を示すフローチャート1200である。図12に示される処理は、それぞれのシステム、ハードウェア、又は、それらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実施されてもよい。ソフトウェアは、持続性記憶媒体(例えば、メモリデバイス上)に記憶されてもよい。図12に提示されて以下に記載されるプロセスは、例示的かつ非限定的であることを意図している。図12は、特定のシーケンス又は順序で行なわれる様々な処理ステップを示すが、これは限定しようとするものではない。特定の別の実施形態では、ステップが異なる順序で実行されてもよく、特定のステップが省略されてもよく、或いは、幾つかのステップが並行して実行されてもよい。図12に示される実施形態などの特定の実施形態において、図12に示される処理は、タスクが適時に実行されるようにするべく、シミュレートされた状態に対するタスクのセットの実際の状態を追跡するためにFMS102によって実行されてもよい。
【0114】
[0128]ブロック1202において、FMSは、現場でリソースのセットによって実行されているタスクのセット内の各タスクの予想完了時間に関する情報を取得する。例えば、この情報は、図11で説明したようにタスクシミュレーションサブシステム208によってFMSにより取得されてもよい。
【0115】
[0129]ブロック1204において、FMSは、タスクのセットを実行するリソースの現在の状態を監視する。特定の例において、ブロック1204の処理は、タスクを実行するのに要する時間がタスクの予想完了時間を超えたかどうかを決定することを含んでもよい。
【0116】
[0130]タスクを実行するのに要する時間がタスクの予想完了時間を超えた場合、幾つかの例では、ブロック1206において、FMSが、著しい遅延を引き起こすことなくタスクの完了を確保するために、現在のリソース利用可能性に基づいてリソース(AM)の再割り当てを実行する。
【0117】
[0131]図12に示されて前述した処理はタスクの粒度で実行されるが、処理の教示内容を、サブタスクレベルで或いは更には特定の実施形態では単位タスクレベルで適用することもできる。例えば、FMSは、サブタスク又は単位タスクの実行に要する時間を監視して、適切な是正措置をとってもよい。
【0118】
[0132]図13は、特定の実施形態に係る、コントローラシステム(本明細書中では自律車両管理システム(AVMS)1322と称される)を組み込むAV1300の簡略ブロック図である。
【0119】
[0133]自律車両1300は、様々な異なるタイプのものとすることができる。例えば、自律車両1300は、人及び/又は貨物を輸送するために使用され得る自動車又は移動マシンとなり得る。自律車両1300の環境は、明確にするために、他の自律車両を含む他の車両を含むことができるため、自律車両1300をその環境内の他の車両と区別するために、自律車両1300は自車両と呼ばれることもある。
【0120】
[0134]図13に示されるように、自律車両管理システム1322に加えて、自律車両1300は、センサ1310及び車両システム1312を含む或いはこれらに結合されてもよい。自律車両管理システム1322は、有線又は無線リンクを介してセンサ1310及び車両システム1312と通信可能に結合されてもよい。自律車両管理システム1322とセンサ1310との間及び自律車両管理システム1322と車両システム1312との間の通信を容易にするために、1つ以上の異なる通信プロトコルが使用されてもよい。
【0121】
[0135]車両システム1312は、自律車両1300が特定の経路又はコースに沿って走行する又はナビゲートするなどのその意図された機能を果たすことができるようにする様々な電子マシンシステム、構成要素、リンク機構などを含むことができる。車両システム1312は、例えば、自律車両を駆動するための操向システム、スロットルシステム、制動システム、推進システムなど、電気システム、補助システム(例えば、自律車両1300の運転者又は搭乗者に情報を出力するためのシステム)などを含んでもよい。車両システム1312は、自律車両1300の経路及び速度を設定するために使用され得る。
【0122】
[0136]センサ1310は、自律車両1300上又は自律車両1300中に位置されてもよく(「車載センサ」)、或いは更には自律車両1300から遠隔的に位置されてもよい(「リモートセンサ」)。自律車両管理システム1322は、無線通信プロトコルを使用して無線リンクを介してリモートセンサと通信可能に結合されてもよい。センサ1310は、自律車両1300に関する環境情報を取得することができる。その後、このセンサデータを自律車両管理システム1322に供給することができる。センサ1310は、例えば、以下のタイプのセンサ、すなわち、LIDARセンサ、レーダセンサ、超音波センサ、カメラ(異なる感知能力を有する異なる種類のカメラが使用されてもよい)、グローバル・ポジショニング・システム(GPS)及び慣性計測ユニット(IMU)センサ、車両対全て(V2X)センサ、音声センサなどののうちの1つ以上を含むことができ、また、それぞれのタイプのセンサごとに、そのセンサタイプの1つ以上の事例を含むことができる。センサ1310は、自律車両1300に関する環境情報を取得(例えば、感知、捕捉)することができるとともに、処理のために感知又は捕捉されたセンサデータを自律車両管理システム1322に通信することができる。
【0123】
[0137]レーダセンサ(すなわち、長距離レーダ、短距離レーダ、撮像レーダなど)の例は、自律車両1300の環境内の物体を検出して検出された物体の速度を決定するために使用されるセンサを含んでもよい。LIDARセンサの例は、パルスレーザ光の形態を成す光を使用することによって標的までの距離を測定する測量技術を使用するセンサを含む。これは、パルスレーザ光で測定される標的を照射するとともに反射されたパルスをセンサを使用して測定することによって行なわれる。V2Xセンサの例は、V2X通信技術を使用して交通システムの可動部分と通信するセンサを含む。例えば、自律車両1300は、自律車両の周囲又は近くの他のエンティティに車両から情報を渡す及び/又は受信するためにV2Xセンサを使用してもよい。V2X通信センサ/システムは、V2I(車両対インフラ;Vehicle-to-Infrastructure)、V2V(車両対車両;Vehicle-to-Vehicle)、V2P(車両対歩行者;Vehicle-to-Pedestrian)、V2D(車両対装置;Vehicle-to-device)、V2G(車両対グリッド;Vehicle-to-grid)などの他のより具体的なタイプの通信インフラを組み込んでもよい。IMUセンサは、加速度計、ジャイロスコープ、磁力計などの組み合わせを使用して、身体の特定の力、角速度、及び、場合によっては身体を取り囲む磁場を測定及び報告する電子デバイスであってもよい。GPSセンサは、地理的位置及び時間情報を決定するために宇宙ベースの衛星ナビゲーションシステムを使用する。
【0124】
[0138]自律車両管理システム1322(コントローラシステムとも称される)は、自律車両1300の状態及び自律車両の環境の状態を表わすデータを処理するとともに、処理に基づいて、自律車両1300の1つ以上の自律機能又は動作を制御するように構成される。例えば、自律車両管理システム1322は、自律車両1300の推進、制動、操向、又は、ナビゲーション、及び、補助挙動(例えば、ライトをオンにする)機能などの自律車両の動きの様々な態様をプログラム的に且つ自律的に制御するために車両システム1312に命令/コマンドを発行してもよい。自律車両管理システム1322は、自律車両1300が自律的に1つ以上の動作を実行できるようにする制御及び計画アルゴリズムを実施する。
【0125】
[0139]自律車両管理システム1322は、ソフトウェアのみ、ハードウェアのみ、又は、それらの組み合わせを使用して実装されてもよい。ソフトウェアは、持続性コンピュータ可読媒体(例えば、メモリデバイス)に記憶されてもよく、その機能を果たすために1つ以上のプロセッサによって(例えば、コンピュータシステムによって)実行されてもよい。図13に示される実施形態において、自律車両管理システム1322は、自律車両1300内又は自律車両1300上にあるものとして示される。しかしながら、これは限定しようとするものではない。別の実施形態では、自律車両管理システム1322を自律車両1300から遠く離すこともできる。
【0126】
[0140]自律車両管理システム1322は、定期的又はオンデマンドでセンサ1310からセンサデータを受信する。自律車両管理システム1322は、センサ1310から受信されるセンサデータを使用して、自律車両の周囲及び環境を知覚する。自律車両管理システム1322は、センサ1310から受信されるセンサデータを使用して、自律車両の状態並びに自律車両1300を取り囲む空間及び環境の状態に関する情報をカプセル化するデジタルモデルを生成して更新されたままにする。このデジタルモデルは、自律車両1300の現在の状態及びその環境をカプセル化する内部マップと称されてもよい。内部マップは、他の情報と共に、その後、自律車両1300によって実行されるべき動作(例えば、ナビゲーション、制動、加速など)に関する決定を行なうために自律車両管理システム1322によって使用される。自律車両管理システム1322は、車両システム1312のシステムによって実行されるべき動作を引き起こすために車両システム1312に命令又はコマンドを送信してもよい。
【0127】
[0141]図14は、特定の実施形態に係る自律車両管理システムのサブシステムを示す簡略ブロック図である。自律車両管理システム1322は、1つ以上の通信チャネルを介して互いに通信可能に結合される複数のシステム又はサブシステムを備えてもよい。図14に示される実施形態において、サブシステムは、センサインタフェースサブシステム1410、位置特定サブシステム1402、知覚サブシステム1404、計画サブシステム1406、制御サブシステム1408、及び、情報サブシステム1412を含む。
【0128】
[0142]図14に示される自律車両管理システム1322の実施形態は、単なる一例であり、特許請求の範囲に記載される実施形態の範囲を過度に限定しようとするものではない。当業者は、多くの想定し得る変形、代替物、及び、改変を認識できる。例えば、幾つかの実装形態において、自律車両管理システム1322は、図14に示されるものよりも多い又は少ないサブシステム又は構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、或いは、サブシステムの異なる形態又は配置を有してもよい。サブシステムは、ソフトウェアのみ、ハードウェアのみ、又は、それらの組み合わせを使用して実装されてもよい。
【0129】
[0143]センサインタフェースサブシステム1410は、センサ1310(搭載センサ及びリモートセンサを含む)と自律車両管理システム1322との間の通信を可能にするインタフェースを与える。センサインタフェースサブシステム1410は、センサ1310からセンサデータを受信し、そのデータを自律車両管理システム1322の1つ以上の他のサブシステムに与えてもよい。例えば、図14に示されるように、センサデータは、更なる処理のために位置特定サブシステム1402及び知覚サブシステム1404に与えられてもよい。様々なセンサ1310によって収集されるセンサデータは、自律車両管理システム1322が自律車両1300及びその周囲環境のビュー又は画像を構築できるようにする。
【0130】
[0144]特定の実施形態において、自律車両管理システム1322は、自律車両管理システム1322の1つ以上のサブシステムが命令又はコマンドを1つ以上のセンサ1310に送信して1つ以上のセンサの動作を制御できるようにする。例えば、特定のセンサの挙動を変更するために特定のセンサに命令が送信されてもよい。例えば、命令をセンサに送信して、センサによって感知又は収集される情報を変更し及び/又はセンサから自律車両管理システム1322に通信されるセンサデータを変更してもよい。これらの命令を使用して、自律車両管理システム1322は、センサ1310から自律車両管理システム1322に通信されるセンサデータを動的に制御することができる。これに関する更なる詳細は、計画サブシステム1406によって実行される機能との関連で以下に与えられる。
【0131】
[0145]位置特定サブシステム1402は、センサ1310からセンサデータを受信するとともに、センサデータに基づいて、その周囲環境における自律車両1300の位置を特定(車両位置特定)するように構成される。位置特定サブシステム1402は、その環境(例:鉱山)に対する自車両の現在の局所位置情報を与える。自車両1300の位置は、知覚サブシステム1404によって生成される所定のマップに対して決定されてもよい。特定の実施形態において、位置特定サブシステム1402は、自車両の位置情報を自律車両1300の他のシステム又はサブシステムにブロードキャストするように構成される。その後、他のシステム又はサブシステムは、それら自体の処理のために必要に応じて位置情報を使用してもよい。
【0132】
[0146]位置特定サブシステム1402は、内部マップ管理、マップマッチング、ビジュアルオドメトリ、デッドレコニング、位置履歴管理などの様々な機能を実装してもよい。例えば、自律車両1300が都市を走行していると仮定する。位置特定サブシステム1402は、入力として、都市のマップを受信してもよく、マップは、ルートに関する情報(例えば、ルートに沿った通り)を含む。位置特定サブシステム1402は、ルートに沿った自車両の位置を決定してもよい。位置特定サブシステム1402は、それがセンサ及び環境のマップから受信する複数の入力を利用することによって、そうしてもよい。位置特定サブシステム1402は、GPSセンサデータを使用して自車両の全地球測位を決定してもよい。位置特定サブシステム1402は、GPSセンサデータを受信し、それを自律車両管理システム1322の1つ以上の他のサブシステムによって使用可能なより有用な形態に変換してもよい。例えば、情報、位置特定サブシステム1402は、都市マップなどの環境のマップに対して自車両がどこに位置されるかを特定してもよい(マップ管理とも称される)。
【0133】
[0147]また、位置特定サブシステム1402は、マップマッチングを実行するように構成されてもよく、この場合、位置特定サブシステム1402が知覚するものは、それが有する情報と一致される。マップマッチングは、記録された地理座標を現実世界の論理モデル(例えば、地理情報システム(GPS)などを使用する)と照合されてもよい。1つの例において、マップマッチングアルゴリズムは、記録された連続的な位置ポイントを(例えばGPSから)取得して、それらを既存の街路グラフのエッジ(例えば、ネットワークとして)に関連付けることができる。これは、自律車両の走行を表和すソートされたリスト内にあり得る。マップマッチングの一環として、位置特定サブシステム1402は、その環境内で自車両を追跡し、現実世界マップなどのマップに対して位置特定サブシステム1402が見るものに基づいてその位置を推定している。
【0134】
[0148]また、位置特定サブシステム1402は、視覚オドメトリを実行するように構成され、視覚オドメトリは、1つ以上のカメラによって捕捉される画像を解析することなどによって、センサデータに基づいて自車両の向き及び位置を決定することを伴う。
【0135】
[0149]また、位置特定サブシステム1402は、デッドレコニング処理を実行してもよい。デッドレコニングは、既に決定された位置を使用することによって自分の現在位置を計算又は固定するとともに、経過時間及びコースにわたる既知の又は推定された速度に基づいてその位置を前進させるプロセスである。これは、移動した方向及び距離を推定することによって自車両の位置を計算することを伴ってもよい。例えば、自律車両管理システム1322は、車輪速度、操向角、自律車両1300が1秒前にいた場所などの自律車両1300に関する特定の情報を受信して知る。過去の位置情報に基づいて及び速度/操向角などと組み合わせて、位置特定サブシステム1402は、車両の次の位置又は現在の位置を決定することができる。これは、自車両がその経路を移動するときの自車両の位置の局所的な理解をもたらす。経路は、様々な実施形態によれば、道路、高速道路、鉄道システム、滑走路、ボートルート、自転車経路などとなり得る。
【0136】
[0150]また、位置特定サブシステム1402が局所履歴管理追跡を実行してもよく、この場合、自車両の経路に関する履歴情報が解析されて現在の経路と比較される。例えば、自律車両1300が特定の経路を何度も走行する場合、この情報は、位置特定サブシステム1402によって比較及び分析され得る。
【0137】
[0151]また、位置特定サブシステム1402は、合理性チェック、欠陥チェック、センサデータの正規化などを実行するように構成される一貫性モジュールを実装してもよい。例えば、位置特定サブシステム1402は、自車両の位置、場所などに関する情報の異なるソースから情報を受信してもよい。合理性チェックを使用して妥当性チェックを行ない、様々なセンサからの情報が一貫して堅牢であることを確認することができる。これは、誤った結果を減らすのに役立つ。合理性チェックは、センサデータ値及び/又は計算の結果がおそらく真であり得るかどうかを評価するためのテストを含むことができる。センサ1310から受信されるセンサデータを正規化し、その後に、正規化されたセンサデータを位置特定サブシステム1402に供給できる。その後、位置特定サブシステム1402は、正規化されたセンサデータを利用して、自律車両のリアルタイム(例えば、ネットワーキング及び処理の待ち時間などを想定する)の環境の一貫した内部マップを生成及び/又は更新することができる。
【0138】
[0152]知覚サブシステム1404は、定期的又はオンデマンドで、センサ1310からセンサデータを受信するとともに、受信された情報に基づいて一貫した内部マップを構築して維持する。また、知覚サブシステム1404は、他のソースから、例えば位置特定サブシステム1402から入力を受信するとともに、受信された入力を使用して内部マップを構築して維持することもできる。知覚サブシステム1404によって生成される内部マップは、自車両の情報、自車両及びその環境の状態、自車両の環境内の物体に関する情報(例えば、自車両の周囲の動的及び静的な物体に関する情報)を含む全ての情報を包含する。一貫した内部マップは、自律車両の環境内、例えば、自律車両の周囲の感知されたエンティティ/物体の局所的なマップとなり得る。特定の実施形態において、これらの感知されたエンティティ/物体は、三次元(3D)でマッピングされる。特定の実施形態において、知覚サブシステム1404は、位置特定サブシステム1402から位置情報を受信して、その位置情報を内部マップに組み込む。センサがオフラインになる場合でも、内部マップを維持することができる。
【0139】
[0153]合理性チェック及び正規化は、知覚サブシステム1404によって受信されるセンサデータに関して実行されてもよい。これらのチェックは、センサデータ値及び/又は計算の結果がおそらく真であり得るかどうかを評価するためのテストを含むことができる。センサ1310から受信されるセンサデータを正規化し、正規化されたセンサデータを知覚サブシステム1404に供給することもできる。その後、知覚サブシステム1404は、正規化されたセンサデータを利用して、自律車両のリアルタイムの環境の一貫した内部マップを生成及び/又は更新することができる。
【0140】
[0154]知覚サブシステム1404は、人工知能(AI)及びマシン学習ベースの技術を含む、様々な異なるアルゴリズム及び技術を使用してその機能を実行することができる。例えば、知覚サブシステム1404は、畳み込みニューラルネットワーク(CNN)を使用して、センサデータに基づいて物体検出及び物体分類を実行してもよい。訓練段階中、CNNは、車両の環境のサンプル画像及び対応するグラウンドトゥルース分類を含むラベル付き訓練データを使用して訓練されてもよい。標識付きデータは、一般に、1つ以上の標識でタグ付けされたサンプルのグループを含み、この場合、標識は訓練入力サンプルに関する既知の結果(例えば、グラウンドトゥルース分類など)に相当する。標識化を使用して、標識付けされないデータのセットを取得し、その標識付けされないデータの各断片を有益な意味のあるタグで増強することもできる。その後、訓練に基づいて構築されたCNNモデル又は他のAI/マシン学習モデルをリアルタイムで使用して、センサ1310から受信される新たなセンサデータに基づいて自律車両1300の環境内の物体を特定及び分類してもよい。
【0141】
[0155]計画サブシステム1406は、自律車両1300の動作の計画を生成するように構成される。計画は、自律車両1300によって実行されるべき1つ以上の計画された動作又は作業を含んでもよい。例えば、計画は、自律車両1300によって横断されるべき軌道又は経路を特定する情報を含んでもよい。経路は、様々な実施形態によれば、道路、高速道路、鉄道システム、滑走路、ボートルート、自転車経路などとなり得る。例えば、軌道情報は、ポイントAからポイントBへ車両が辿るための軌道をマークするポイントAとポイントBとの間のポイントのリストによって車両がポイントAからポイントBへどのように移動すべきかを示してもよい。他の例として、計画サブシステム1406によって生成される計画は、インジケータ又はライトのオン又はオフ、1つ以上の音(例えば、アラーム)の生成など、自律車両1300のアクセサリに関する計画された動作を含んでもよい。動作の計画が生成された後、計画サブシステム1406は、動作の計画を制御サブシステム1408に通信してもよく、その後、制御サブシステム1408は、動作計画内の計画された動作が自律車両1300によって安全な態様で実行されるようにするべく車両システム1314の1つ以上のシステムを制御してもよい。
【0142】
[0156]知覚サブシステム1404によって生成される内部マップに加えて、計画サブシステム1406は、自律車両1300のための動作計画を生成する際にそれが使用する様々な他の入力も受信してもよい。これらの入力は、制限なく、(a)位置特定サブシステム1402から受信される位置又は位置特定情報、(b)自律車両1300の1つ以上の目標を特定する情報(例えば、右折するための自律車両1300の最終目標を特定する情報が受信されてもよい)を含んでもよい。目標は、自律車両又はマシンのエンドユーザ又はオペレータによって設定されてもよい。自動車の例の場合、ユーザは、自律車両1300の現在位置から特定の最終目的地まで運転するために高いレベルを設定してもよい。自律車両1300は、現在及び最終目的地位置に基づき、GPSルート計画にしたがって現在位置から最終目的地まで自律的に運転することを目的として、GPSルート計画を決定してもよい。一般に、1つ以上の異なる目標が与えられてもよい。目標のカテゴリ(そのうちの幾つかは重複し得る)の例としては、制限なく、自律車両による自律動作の実行に関連する目標(例えば、経路に沿った自立的な運転又はナビゲーション)、車両の操縦に関連する目標、車両の環境における車両と様々な当事者、物体などとの相互作用に関連する目標、車両の一般的な動作に関連する目標などが挙げられる。目標の例:車線変更、ある場所から他の場所への運転、目的地まで可能な限り速く運転すること、方向転換を行なうこと、一連のステップを順番に実行することなど。(c)自律車両1300が取るべき経路又はルートに関する高レベルルート情報。これは、自律車両のエンドユーザ又はオペレータによって直接的又は間接的に提供されてもよい。(d)安全上の考慮事項を特定する情報。これらも、自律車両1300によって提供されるAPIを使用して又は自律車両1300のために構成されるメタデータを介して、エンドユーザ/オペレータなどにより自律車両に提供されてもよい。これらの考慮事項の例としては、制限なく、常に車線内に留まること、常に任意の物体から一定の距離を維持すること、バスは30度を超えて曲がらないことなどが挙げられる。(e)過去に特定の動作がどのように行なわれたかに関する情報。例えば、特定の自律車両の場合、これは、その特定の自律車両が過去にどのように動作を実行したか、異なる自律車両が過去にどのように動作を実行したか、過去に車両を使用してどのように動作が手動で実行されたか(例えば、運転者/操作者が、運転者/操作者の制御下で動作している車両を用いて過去にどのように操作を行ったか)の過去の履歴となり得る。(f)その他の入力。
【0143】
[0157]1つ以上の入力に基づいて、計画サブシステム1406は、自律車両1300の動作の計画を生成する。計画サブシステム1406は、自律車両1300の環境が変化するにつれて、自律車両1300によって実行されるべき目標が変化するにつれて、又は、一般に、計画サブシステム1406への入力のいずれかの変化に応じて、計画を定期的に更新してもよい。
【0144】
[0158]動作の計画を生成及び更新する一環として、計画サブシステム1406は、安全な態様で特定の目標を達成するために、どの動作を計画に含めるかに関する様々な決定を行なう。これらの決定を行なう一環として計画サブシステム1406によって実行される処理は、動作計画、全体計画、経路計画、フェイルセーフ経路、経路履歴追跡などを含んでもよい。
【0145】
[0159]計画サブシステム1406は、自律車両1300によって安全に実行されるべき機能又は動作(例えば、自律運転又はナビゲーション、エリアの掘削)を実行するという目標を達成するために、様々なAIベースのマシン学習アルゴリズムを使用して動作計画を生成及び更新してもよい。例えば、特定の実施形態において、計画サブシステム1406は、動作の計画を生成及び更新するために強化学習(RL)を使用して訓練されたモデルを使用してもよい。自律車両管理システム1322は、RLモデルを使用して、自律車両1300の自律動作を制御するために実行されるべき動作を選択してもよい。RLモデルは、そのカバレッジ及び精度を高めるために定期的に更新されてもよい。強化学習(RL)は、エージェントが累積報酬の概念を最大化するために環境内でどのように行動を起こすべきかに関する、行動心理学によって着想を得たマシン学習の分野である。
【0146】
[0160]特定の実施形態では、動作の計画を生成することに加えて、計画サブシステム1406は、センサ1310の挙動を動的に制御することができる。例えば、計画サブシステム1406は、センサ1310から特定のセンサに命令又はコマンドを送信して、特定のセンサによって捕捉されるセンサデータを動的に制御する及び/又はセンサから知覚サブシステム1404に(又は位置特定サブシステム1402などの自律車両管理システム1322の他のサブシステムに)通信されるセンサデータを制御することができる。知覚サブシステム1404によって構築される内部マップは、センサから受信されるセンサデータを動的に制御することができることによって、センサから知覚サブシステム1404によって受信されるセンサデータに基づくため、内部マップを構築して維持するために知覚サブシステム1404に含まれる及び/又は知覚サブシステム1404によって使用される情報も、計画サブシステム1406によって動的に制御され得る。計画サブシステム1406は、特定の種類の情報を取得するために又は指定された態様で動作するために、例えば、一貫した内部マップを更新するべく更なるセンサデータを提供するために、動的且つオンデマンドでセンサ1310を指示することができる。例えば、計画サブシステム1406は、LIDARシステムによってより詳細に感知及び/又は追跡されるべき特定の物体を含むより狭い範囲に、その感知範囲を360度(360°)の視野から狭めるようにLIDARセンサに命令することができる。このようにして、一貫した内部マップは、計画サブシステム706からのフィードバックに基づいて及び計画サブシステム706の制御下で更新される。
【0147】
[0161]自律車両管理システム1322は、計画サブシステム1406(又は自律車両管理システム1318の他のサブシステム)がそれらの1つ以上のセンサの挙動を制御するために1つ以上のセンサに1つ以上の命令又はコマンドを送信できるようにするインフラを提供する。図14に示される実施形態において、センサインタフェースサブシステム1410は、センサ1310と相互作用するためのインタフェースを与える。(自律車両管理システム1322からセンサ方向への)発信方向において、計画サブシステム1406は、命令又はコマンドをセンサインタフェースサブシステム1410に送信することができる。その後、センサインタフェースサブシステム1410は、受信される命令を意図された目的地センサに通信するように構成される。(センサから自律車両管理システム1318への)着信方向において、センサインタフェースサブシステム1410は、計画サブシステム1406から送信される命令に応じてセンサからセンサデータを受信してもよい。その後、センサインタフェースサブシステム1410は、受信されるセンサデータを計画サブシステム1406(又は命令を発信した自律車両管理システム1322の適切なサブシステム)に通信してもよい。
【0148】
[0162]センサインタフェースサブシステム1410は、1つ以上の異なる通信プロトコルを使用して異なるセンサと通信してもよい。特定の実施形態では、発信方向において、計画サブシステム1406(又は自律車両管理システム1322の任意の他のサブシステム)から受信されて特定のセンサに送信されるべき命令又はコマンドに関して、センサインタフェースサブシステム1410は、その命令を、その特定のセンサによって理解可能であり且つその特定のセンサと通信するのに適したフォーマットに変換し、その後、その特定のセンサに適用可能な特定の通信プロトコルを使用してもよい。
【0149】
[0163]特定の実施形態において、自律車両管理システム1322は、センサ1310及びそれらの能力を特定する情報にアクセスしてもよい。その後、自律車両管理システム1322のサブシステムは、この記憶された情報にアクセスして使用し、センサの可能な能力及び挙動を決定するとともに、その挙動を変更するための命令をそのセンサに送信してもよい。特定の実施形態では、センサと自律車両管理システム1322との間の通信を可能にする前に、センサを自律車両管理システム1322に登録する必要がある。登録プロセスの一環として、登録されているセンサに関して、センサに関連する情報が与えられてもよい。この情報は、センサを特定する情報、センサのセンシング能力及び挙動、センサによって使用可能な通信プロトコル、並びに、センサに関連する他の情報を含んでもよい。その後、自律車両管理システム1322は、この情報を使用してセンサと通信し、センサの挙動を制御してもよい。
【0150】
[0164]前述したように、計画サブシステム1406は、センサの挙動を制御及び変更するための命令をセンサに送信してもよい。センサの挙動の変更は、センサから自律車両管理システム1322に通信されるセンサデータ(例えば、センサから知覚サブシステム1404又は自律車両管理システム1322の他のサブシステムに通信されるセンサデータ)の変更、センサによって収集又は感知されるデータの変更、又は、それらの組み合わせを含むことができる。例えば、センサから自律車両管理システム1322に通信されるセンサデータを変更することは、命令を受信する前にセンサから自律車両管理システム1322に通信されたデータよりも多い又は少ないデータを通信すること、及び/又は、センサから自律車両管理システム1322に通信されるセンサデータのタイプを変更することを含むことができる。幾つかの事例では、センサによって感知又は収集されるデータは同じままであってもよいが、センサから自律車両管理システム1322に通信されるセンサデータは変化してもよい。他の例において、センサによって感知又は収集されるデータ自体は、自律車両管理システム1322から受信される命令に応じて変更されてもよい。また、計画サブシステム1406は、適切な命令をセンサに送信することによってセンサをオン又はオフにすることができてもよい。
【0151】
[0165]例えば、計画サブシステム1406は、知覚サブシステム1404によって生成される現在の内部マップ、位置特定サブシステム1402からの位置情報、及び、自律車両1300が一定時間内に旋回するという目標(例えば、次の5秒間で右折する)を含む入力を受信してもよい。目標を安全に達成するために自律車両1300が取るべき動作の最良のセットは何かを決定する一環として、計画サブシステム706は、自律車両1300の右側の環境を示す特定のセンサデータ(例えば、追加の画像)が必要であると決定してもよい。その後、計画サブシステム1406は、特定のセンサデータ(例えば、自律車両1300の右側の環境の画像)を提供することができる1つ以上のセンサ(例えば、カメラ)を決定してもよい。その後、計画サブシステム1406は、これらの1つ以上のセンサに命令を送信して、それらの挙動を変更させ、1つ以上のセンサが特定のセンサデータを捕捉して自律車両管理システム1322に(例えば、知覚サブシステム1404に)伝達するようにしてもよい。知覚サブシステム1404は、この特定のセンサデータを使用して内部マップを更新してもよい。その後、自律車両1300のための動作の計画に含められるべき適切な動作に関する決定を行なうために更新された内部マップが計画サブシステム1406によって使用されてもよい。自律車両1300によって右折がうまく行なわれた後、計画サブシステム1406は、異なる、場合によっては低減されたレベルのセンサデータの通信に戻るように同じカメラに指示する別の命令を自律車両管理システム1322に送信してもよい。このようにして、内部マップを構築するために使用されるセンサデータを動的に変更することができる。
【0152】
[0166]センサによって自律車両管理システム1322から受信された命令によって引き起こされるセンサの挙動の変化の例としては、制限なく、以下を挙げることができる。
-センサから自律車両管理システム1322に通信されるセンサデータをセンサに低減させる又は遮断させる。これは、例えば、自律車両管理システム1322によって受信される大量のセンサデータを低減するために行なわれてもよい。自律車両1300の目標が右折することであることを示す入力を計画サブシステム1306が受信する、上記と同じ例を使用して、計画サブシステム1406は、自律車両1300の左環境に関して低減されたセンサデータを必要とすると決定してもよい。その後、計画サブシステム1406は、低減されるようになっているセンサデータを通信することに関与する1つ以上のセンサ(例えば、カメラ)を決定してもよい。その後、計画サブシステム1406は、これらの1つ以上のセンサに対し、これらのセンサから自律車両管理システム1322に(例えば、知覚サブシステム1404に)通信されるセンサデータの量が減少されるようにこれらのセンサにそれらの挙動を変更させるための命令を送信してもよい。一例として、計画サブシステム1406から送信される命令は、以下のうちの1つ以上を行なってもよい。
-センサにその視野を変更させる。例えば、カメラ又はLIDARセンサを狭い場所にズームインさせる。
-センサに部分情報のみを送信させる。例えば、センサは、センサによって捕捉された全ての情報よりも少ない情報を送信してもよい。
-センサに、以前よりも又は通常の速度よりも速く又は遅く情報を送信させる。
-センサをオンにする。
-センサが以前とは異なる解像度又は粒度で情報を捕捉する及び/又は自律車両管理システム1318に送信するようにする。
【0153】
[0167]図15は、この開示に記載されたシステム及びサブシステムのうちの1つ以上を実装するために及び/又は本明細書中に記載されたプロセス又は方法のいずれか1つを実行するために使用され得る典型的なコンピュータシステム1500の簡略ブロック図を示す。例えば、前述のシステム及びサブシステム(例えば、FMS102、AMS226、自律車両管理システム1322)がソフトウェアで実装される実施形態では、特定の実施形態において、ソフトウェアは、図15に示されるコンピュータシステム1500又はその変形などのコンピュータシステムによって実行されてもよい。コンピュータシステム1500は、例えば、プロセッサ、メモリ、ストレージ、及びI/Oデバイス(例えば、モニタ、キーボード、ディスクドライブ、インターネット接続など)を含んでもよい。幾つかの事例において、コンピュータシステム1500は、他の構成要素、回路、又は特殊な機能を果たすための他の特殊なハードウェアを含んでもよい。幾つかの動作設定において、コンピュータシステム1500は、それぞれがソフトウェアのみ、ハードウェアのみ、又は、それらの何らかの組み合わせのいずれかでプロセスの幾つかの態様を実行するように構成される、1つ以上のユニットを含むシステムとして構成されてもよい。コンピュータシステム1500は、様々な機能を果たすために更なるシステムを含むように構成され得る。
【0154】
[0168]図15の実施形態に示されるように、コンピュータシステム1500は、1つ以上の処理ユニット1508、メモリのセット(システムメモリ1510、コンピュータ可読媒体1520、及び、ディスク記憶装置1516を含む)、及びI/Oサブシステム1506を含む。これらの構成要素は、コンピュータシステム1500の様々なシステム及びサブシステムが意図したように互いに通信するための機構を提供するバスサブシステムを介して互いに通信可能に結合されてもよい。バスサブシステムは、メモリバス又はメモリコントローラ、周辺バス、様々なバスアーキテクチャのいずれかを使用するローカルバスなどを含む幾つかのタイプのバス構造のいずれかとなり得る。幾つかの実施形態において、構成要素1506、1508、1510は、マザーボード1504上に配置されてもよい。
【0155】
[0169]処理ユニット1508は、1つ以上のプロセッサを含んでもよい。プロセッサは、シングル又はマルチコアプロセッサであってもよい。処理ユニット1508は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用して実装することもできる。プロセッサは、システムメモリ1510、コンピュータ可読記憶媒体1520、又は、ディスク1516などの様々なメモリに記憶された命令(例えば、プログラム、コードなど)を実行するように構成される。プログラム又はプロセスは、順次又は並列に実行されてもよい。特定の実施形態でにおいて、コンピュータシステム1500は、1つ以上の仮想マシンを実行する仮想化コンピュータ環境を提供することができる。そのような実施形態では、1つ以上のプロセッサ又はプロセッサのコアを各仮想マシンに割り当てることができる。幾つかの実施形態において、処理ユニット1508は、グラフィックスプロセッサ(GPU)、デジタル信号プロセッサ(DSP)などの専用コプロセッサを含んでもよい。
【0156】
[0170]メモリのセットは、揮発性及び不揮発性メモリデバイスを含む1つ以上の持続性メモリデバイスを含むことができる。処理ユニット1508の1つ以上のプロセッサによって実行される際に本明細書中に記載の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、メモリのうちの1つ以上に記憶されてもよい。また、フラッシュメモリ1512は、特定の実施形態に含まれてもよい。システムメモリ1510は、プログラム実行中に命令及びデータを記憶するための揮発性メイン・ランダム・アクセス・メモリ(RAM)(例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)など)及び固定命令が記憶される不揮発性読取り専用メモリ(ROM)又はフラッシュメモリを含む多数のメモリを含むことができる。幾つかの実施において、起動中などにコンピュータシステム1500内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)は、一般に、ROMに記憶され得る。RAMは、一般に、処理ユニット1508によって現在動作及び実行されているデータ及び/又はプログラムモジュールを含む。
【0157】
[0171]実行可能コード、プログラム命令、アプリケーション、及びプログラムデータは、システムメモリ1510にロードされ、処理ユニット1508の1つ以上のプロセッサによって実行され得る。また、システムメモリ1510には、1つ以上のオペレーティングシステムがロードされてもよい。オペレーティングシステムの例としては、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、Linux(登録商標)オペレーティングシステムの異なるバージョン、及び/又はiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムが挙げられるが、これらに限定されない。
【0158】
[0172]特定の実施形態において、幾つかの実施形態の機能を提供するために使用されるプログラミングモジュール及び命令、データ構造、並びに他のデータ(集合的に1522)は、コンピュータ可読媒体1520に記憶することができる。コンピュータシステム1500に接続された媒体ドライブ1518は、コンピュータ可読媒体1520から情報を読み取り、及び/又は情報を書き込むために提供されてもよい。コンピュータ可読媒体1520は、磁気ディスクドライブ、CD-ROM、DVD、Blu-Ray(登録商標)ディスク、又は他の光学媒体などの光ディスクドライブ、Zip(登録商標)ドライブ、様々なタイプのメモリカード及びドライブ(例えば、USBフラッシュドライブ、SDカード)、DVDディスク、デジタルビデオテープ、ソリッドステートドライブ(SSD)などの不揮発性メモリを含むことができる。
【0159】
[0173]I/Oサブシステム1506は、コンピュータシステム1500に情報を入力するため、及び/又はコンピュータシステム1500から又はそれを介して情報を出力するためのデバイス及び機構を含むことができる。一般に、入力装置という用語の使用は、コンピュータシステム1500に情報を入力するための全ての可能な種類の装置及び機構を含むことを意図している。入力機構は、例えば、キーボード、マウス又はトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッド又はタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えた音声入力デバイス、マイクロフォン、カメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダなどを含むことができる。一般に、出力装置という用語の使用は、コンピュータシステム1500からユーザ又は他のコンピュータに情報を出力するための全ての可能な種類の装置及び機構を含むことを意図している。そのような出力装置は、オーディオ出力装置、プリンタ、スピーカ、ヘッドホン、音声出力装置などの1つ以上の種類のディスプレイ、表示灯、又は非視覚ディスプレイを含むことができる。また、I/Oサブシステム1506は、ディスプレイ1515などのI/Oサブシステム1506の外部の入力及び/又は出力デバイスへのインタフェースを含むことができる。
【0160】
[0174]コンピュータシステム1500は、コンピュータシステム1500が他のコンピュータシステム及びネットワークと(例えば、データを受信し、データを送信する)通信するためのインタフェースを提供する通信サブシステム1524を含むことができる。通信サブシステム1524は、有線及び/又は無線通信プロトコルの両方をサポートすることができる。例えば、通信サブシステム1524は、コンピュータシステム1500が、リモートセンサ、インターネットなどのネットワークなどと通信可能に結合されることを可能にすることができる。Wi-Fi、Bluetooth(登録商標)(及び/又は短距離でデータを交換するための他の規格は、短波長無線送信を使用するものを含む)、USB、イーサネット、セルラー、超音波ローカルエリア通信プロトコルなどの様々な異なる通信プロトコル及びフォーマットを通信に使用することができる。
【0161】
[0175]コンピュータシステム1500は、モバイルデバイス(例えば、携帯電話、タブレット、PDAなどである。)、パーソナルコンピュータ、ワークステーション、又は任意の他のデータ処理システムを含む、様々なタイプのうちの1つとなり得る。コンピュータ及びネットワークの絶えず変化する性質のために、図15に示すコンピュータシステム1500の説明は、特定の例としてのみ意図されている。図15に示すシステムよりも多い又は少ない構成要素を有する多くの他の構成が可能である。
【0162】
[0176]前述のプロセスの結果に基づく少なくとも幾つかの値は、その後の使用のために保存することができる。更に、コンピュータ可読媒体を使用して、コンピュータによって上述のプロセスのいずれか1つを実行するための1つ以上のコンピュータプログラムを記憶(例えば、有形に具現化する)することができる。コンピュータプログラムは、例えば、汎用プログラミング言語(例えば、Pascal、C、C++、Java、Python)及び/又は何らかの特殊な特定用途向け言語(PHP、JavaScript、XML)で記述することができる。幾つかの実施形態では、例としてJavaScriptが使用されていることに留意されたい。しかしながら、他の実施形態では、別のスクリプト言語及び/又はJavaScriptバリアントも同様に利用することができる。
【0163】
[0177]本開示に記載された特徴、構造、又は特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。本明細書の説明では、様々な実施形態の完全な理解を提供するために、プログラミング、ソフトウェアモジュール、ユーザ選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例など、多数の特定の詳細が提供される。しかしながら、当業者であれば分かるように、特定の詳細のうちの1つ以上を用いずに、又は他の方法、構成要素、材料などを用いて、特徴を実施することができる。他の例では、新規な態様を不明瞭にすることを避けるために、周知の構造、材料、又は動作は詳細に図示又は説明されていない。
【0164】
[0178]本明細書に含まれる概略フローチャート図は、一般に論理フローチャート図として記載されている。したがって、図示された順序及び標識付けされたステップは、提示された方法の一実施形態を示す。機能、論理、又は効果において、図示された方法の1つ以上のステップ又はその一部と同等である他のステップ及び方法が考えられ得る。更に、使用されるフォーマット及び記号は、方法の論理ステップを説明するために提供され、方法の範囲を限定するものではないと理解される。フローチャート図では様々な矢印タイプ及び線タイプを使用することができるが、それらは対応する方法の範囲を限定するものではないと理解される。実際に、幾つかの矢印又は他のコネクタを使用して、方法の論理フローのみを示すことができる。例えば、矢印は、図示された方法の列挙されたステップ間の不特定の期間の待機又は監視期間を示すことができる。更に、特定の方法が行われる順序は、示されている対応するステップの順序に厳密に準拠してもしなくてもよい。
【0165】
[0179]特定の実施形態を説明したが、様々な修正、変更、代替構造、及び均等物が可能である。実施形態は、特定の特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。更に、特定の実施形態が特定の一連のトランザクション及びステップを使用して説明されているが、これは限定することを意図するものではないことが当業者には明らかである。幾つかのフローチャートは、動作をシーケンシャルプロセスとして記載しているが、動作の多くは、並行して又は同時に実行することができる。また、動作の順序を入れ替えてもよい。プロセスは、図に含まれていない追加のステップを有することができる。前述の実施形態の様々な特徴及び態様は、個別に又は一緒に使用することができる。
【0166】
[0180]更に、特定の実施形態は、ハードウェアとソフトウェアとの特定の組み合わせを使用して説明されているが、ハードウェアとソフトウェアとの他の組み合わせも可能であることを認識されたい。特定の実施形態は、ハードウェアのみで、又はソフトウェアのみで、又はそれらの組み合わせを使用して実施することができる。本明細書に記載の様々なプロセスは、任意の組み合わせで同じプロセッサ又は異なるプロセッサ上で実施することができる。
【0167】
[0181]デバイス、システム、構成要素又はモジュールが特定の動作又は機能を実行するように構成されるものとして説明されている場合、そのような構成は、例えば、動作を実行するように電子回路を設計することによって、コンピュータ命令もしくはコードを実行することなどによって動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、又は持続性メモリ媒体に記憶されたコードもしくは命令を実行するようにプログラムされたプロセッサもしくはコア、又はそれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されない様々な技術を使用して通信することができ、プロセスの異なる対は異なる技術を使用することができ、又はプロセスの同じ対は異なる時間に異なる技術を使用することができる。
【0168】
[0182]実施形態の完全な理解を提供するために、本開示において具体的な詳細が与えられる。しかしながら、実施形態は、これらの具体的な詳細なしで実施されてもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、及び技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細なしに示されている。この説明は、例示的な実施形態のみを提供し、他の実施形態の範囲、適用性、又は構成を限定することを意図しない。むしろ、実施形態の前述の説明は、様々な実施形態を実施するための可能な説明を当業者に提供する。要素の機能及び配置には様々な変更を加えることができる。
【0169】
[0183]したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味で見なされるべきである。しかしながら、特許請求の範囲に記載されたより広い精神及び範囲から逸脱することなく、追加、削除、削除、及び他の修正及び変更を行うことができることは明らかである。したがって、特定の実施形態を説明したが、これらは限定することを意図するものではない。様々な修正及び等価物が、以下の特許請求の範囲内にある。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【国際調査報告】