(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-05
(54)【発明の名称】タスク階層を使用した重機および車両の自律制御
(51)【国際特許分類】
G05D 1/648 20240101AFI20240529BHJP
B60W 40/00 20060101ALI20240529BHJP
B60W 60/00 20200101ALI20240529BHJP
G05D 1/43 20240101ALI20240529BHJP
E02F 9/20 20060101ALI20240529BHJP
G05D 1/243 20240101ALI20240529BHJP
G05B 17/00 20060101ALI20240529BHJP
【FI】
G05D1/648
B60W40/00
B60W60/00
G05D1/43
E02F9/20 Q
G05D1/243
G05B17/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023563969
(86)(22)【出願日】2022-04-22
(85)【翻訳文提出日】2023-12-18
(86)【国際出願番号】 US2022025976
(87)【国際公開番号】W WO2022226325
(87)【国際公開日】2022-10-27
(32)【優先日】2021-04-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521195032
【氏名又は名称】セーフ エーアイ,インコーポレイテッド
(74)【代理人】
【識別番号】100137969
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】ハルダー,ビブハラジット
【テーマコード(参考)】
2D003
3D241
5H004
5H301
【Fターム(参考)】
2D003AA00
2D003AB01
2D003BA03
2D003DC07
2D003FA02
3D241BA49
3D241CA19
3D241CC01
3D241CC08
3D241CC17
3D241CE01
3D241CE02
3D241CE03
3D241CE04
3D241CE05
3D241DA39
3D241DA52
3D241DB01
3D241DB02
3D241DC41
3D241DC51
5H004GB12
5H004KC28
5H004KD62
5H301AA03
5H301AA10
5H301BB02
5H301CC03
5H301CC06
5H301CC10
5H301GG07
5H301GG08
5H301GG09
5H301GG17
(57)【要約】
本開示は、タスク階層を使用して重機および車両を自律的に制御するための技法に関する。詳細には、本開示の態様は、自律車両によって実施されるべきタスクを取得することと、タスクを実施するために実施されるべきサブタスクを決定することと、作業現場環境における自律車両の動作の表現と作業現場環境の状況コンテキストとを提供するセンサデータを取得することと、センサデータに基づいて、サブタスクのためのタスクコンテキストを決定することと、タスクコンテキストに基づいて、予測モデルのライブラリから予測モデルを識別することと、予測モデルによって、センサデータに基づいて、出力データのセットを推定することと、センサデータおよび出力データのセットから導出された入力データのセットを使用してサブタスクを実施するために、作業現場環境における自律車両の動作を制御することとを対象とする。
【選択図】
図6
【特許請求の範囲】
【請求項1】
コントローラシステムによって、作業現場環境において自律車両によって実施されるべきタスクを取得することと、
前記コントローラシステムによって、前記タスクを実施するために実施されるべき1つまたは複数のサブタスクを、前記タスクおよび前記1つまたは複数のサブタスクの事前マッピングに基づいて決定することと、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の表現と前記作業現場環境の状況コンテキストとを提供するセンサデータの第1のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第1のセットに基づいて、前記1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第1のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第1のタスクコンテキストに基づいて、予測モデルのライブラリから第1の予測モデルを識別することであって、前記第1の予測モデルが、前記第1のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第1の予測モデルによって、センサデータの前記第1のセットに基づいて、出力データの第1のセットを推定することと、
前記コントローラシステムによって、入力データの第1のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第1のセットが、センサデータの前記第1のセットおよび出力データの前記第1のセットから導出される、制御することと
を含む、方法。
【請求項2】
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの前記第1のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの前記ライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの第2のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第2のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの別のライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第2のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1のタスクコンテキストを前記決定することが、
前記作業現場環境における前記自律車両の動作の前記表現と前記作業現場環境の前記状況コンテキストとから、変数の予め規定されたセットを識別することと、
変数の前記予め規定されたセットに基づいて、前記第1のタスクコンテキストを規定することと
を含む、請求項1に記載の方法。
【請求項5】
前記第1の予測モデルを前記識別することが、
変数の前記予め規定されたセットを、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数と比較することと、
前記比較することに基づいて、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される前記訓練データにおける前記特徴または変数との、変数の前記予め規定されたセットの類似性をランク付けすることと、
前記ランク付けすることに基づいて、最も高くランク付けされた予測モデルを選択することであって、前記最も高くランク付けされた予測モデルは前記第1の予測モデルである、選択することと
を含む、請求項4に記載の方法。
【請求項6】
各予測モデルを訓練するために使用される前記訓練データにおける前記特徴または変数が、各予測モデルに関連付けられたメタデータに記憶される、請求項4に記載の方法。
【請求項7】
前記第1の予測モデルが、前記作業現場環境における前記自律車両の前記動作のための独立変数と従属変数との間の関係を規定する1つまたは複数の関数にわたる事後分布を規定するガウス過程を有し、前記第1の予測モデルが、強化学習を使用して前記特徴または変数を有する前記訓練データについて訓練される、請求項1に記載の方法。
【請求項8】
1つまたは複数のデータプロセッサと、
命令を含む非一時的コンピュータ可読記憶媒体と
を備えるシステムであって、前記命令は、前記1つまたは複数のデータプロセッサ上で実行されたとき、前記1つまたは複数のデータプロセッサに、
コントローラシステムによって、作業現場環境において自律車両によって実施されるべきタスクを取得することと、
前記コントローラシステムによって、前記タスクおよび前記1つまたは複数のサブタスクの事前マッピングに基づいて、前記タスクを実施するために実施されるべき1つまたは複数のサブタスクを決定することと、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の表現と前記作業現場環境の状況コンテキストとを提供するセンサデータの第1のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第1のセットに基づいて、前記1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第1のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第1のタスクコンテキストに基づいて、予測モデルのライブラリから第1の予測モデルを識別することであって、前記第1の予測モデルが、前記第1のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第1の予測モデルによって、センサデータの前記第1のセットに基づいて、出力データの第1のセットを推定することと、
前記コントローラシステムによって、入力データの第1のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第1のセットが、センサデータの前記第1のセットおよび出力データの前記第1のセットから導出される、制御することと
を含むアクションを実施させる、システム。
【請求項9】
前記アクションは、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの前記第1のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの前記ライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項8に記載のシステム。
【請求項10】
前記アクションは、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの第2のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第2のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの別のライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第2のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項8に記載のシステム。
【請求項11】
前記第1のタスクコンテキストを前記決定することが、
前記作業現場環境における前記自律車両の動作の前記表現と前記作業現場環境の前記状況コンテキストとから、変数の予め規定されたセットを識別することと、
変数の前記予め規定されたセットに基づいて、前記第1のタスクコンテキストを規定することと
を含む、請求項8に記載のシステム。
【請求項12】
前記第1の予測モデルを前記識別することが、
変数の前記予め規定されたセットを、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数と比較することと、
前記比較することに基づいて、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される前記訓練データにおける前記特徴または変数との、変数の前記予め規定されたセットの類似性をランク付けすることと、
前記ランク付けすることに基づいて、最も高くランク付けされた予測モデルを選択することであって、前記最も高くランク付けされた予測モデルは前記第1の予測モデルである、選択することと
を含む、請求項11に記載のシステム。
【請求項13】
各予測モデルを訓練するために使用される前記訓練データにおける前記特徴または変数が、各予測モデルに関連付けられたメタデータに記憶される、請求項11に記載のシステム。
【請求項14】
前記第1の予測モデルが、前記作業現場環境における前記自律車両の前記動作のための独立変数と従属変数との間の関係を規定する1つまたは複数の関数にわたる事後分布を規定するガウス過程を有し、前記第1の予測モデルが、強化学習を使用して前記特徴または変数を有する前記訓練データについて訓練される、請求項8に記載のシステム。
【請求項15】
命令を含む非一時的機械可読記憶媒体において有形に具現されたコンピュータプログラム製品であって、前記命令は、1つまたは複数のデータプロセッサに、
コントローラシステムによって、作業現場環境において自律車両によって実施されるべきタスクを取得することと、
前記コントローラシステムによって、前記タスクおよび前記1つまたは複数のサブタスクの事前マッピングに基づいて、前記タスクを実施するために実施されるべき1つまたは複数のサブタスクを決定することと、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の表現と前記作業現場環境の状況コンテキストとを提供するセンサデータの第1のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第1のセットに基づいて、前記1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第1のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第1のタスクコンテキストに基づいて、予測モデルのライブラリから第1の予測モデルを識別することであって、前記第1の予測モデルが、前記第1のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第1の予測モデルによって、センサデータの前記第1のセットに基づいて、出力データの第1のセットを推定することと、
前記コントローラシステムによって、入力データの第1のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第1のセットが、センサデータの前記第1のセットおよび出力データの前記第1のセットから導出される、制御することと
を含むアクションを実施させるように構成された、コンピュータプログラム製品。
【請求項16】
前記アクションは、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの前記第1のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第1のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの前記ライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第1のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記アクションは、
前記コントローラシステムによって、前記作業現場環境における前記自律車両の動作の別の表現と前記作業現場環境の前記状況コンテキストとを提供するセンサデータの第2のセットを取得することと、
前記コントローラシステムによって、センサデータの前記第2のセットに基づいて、前記1つまたは複数のサブタスクのうちの第2のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、
前記コントローラシステムによって、前記第2のサブタスクに関連付けられた前記第2のタスクコンテキストに基づいて、予測モデルの別のライブラリから第2の予測モデルを識別することであって、前記第2の予測モデルが、前記第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、
前記第2の予測モデルによって、センサデータの前記第2のセットに基づいて、出力データの第2のセットを推定することと、
前記コントローラシステムによって、入力データの第2のセットを使用して前記第2のサブタスクを実施するために、前記作業現場環境における前記自律車両の1つまたは複数の動作を制御することであって、入力データの前記第2のセットが、センサデータの前記第2のセットおよび出力データの前記第2のセットから導出される、制御することと
をさらに含む、請求項15に記載のコンピュータプログラム製品。
【請求項18】
前記第1のタスクコンテキストを前記決定することが、
前記作業現場環境における前記自律車両の動作の前記表現と前記作業現場環境の前記状況コンテキストとから、変数の予め規定されたセットを識別することと、
変数の前記予め規定されたセットに基づいて、前記第1のタスクコンテキストを規定することと
を含む、請求項15に記載のコンピュータプログラム製品。
【請求項19】
前記第1の予測モデルを前記識別することが、
変数の前記予め規定されたセットを、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数と比較することと、
前記比較することに基づいて、予測モデルの前記ライブラリ内の各予測モデルを訓練するために使用される前記訓練データにおける前記特徴または変数との、変数の前記予め規定されたセットの類似性をランク付けすることと、
前記ランク付けすることに基づいて、最も高くランク付けされた予測モデルを選択することであって、前記最も高くランク付けされた予測モデルは前記第1の予測モデルである、選択することと
を含む、請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記第1の予測モデルが、前記作業現場環境における前記自律車両の前記動作のための独立変数と従属変数との間の関係を規定する1つまたは複数の関数にわたる事後分布を規定するガウス過程を有し、前記第1の予測モデルが、強化学習を使用して前記特徴または変数を有する前記訓練データについて訓練される、請求項15に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]関連出願の相互参照
本出願は、2021年4月22日に出願された米国特許出願第17/237,940号の優先権を主張し、その開示は参照により組み込まれる。
【0002】
[0002]本開示は、一般に、様々なタスクを実施するための重機または車両の自律動作に関し、より詳細には、タスク階層を使用して重機および車両を自律的に制御するための技法に関する。
【背景技術】
【0003】
[0003]自律機械の使用の増加により、従来のタスクが実施される方法が変化している。その結果、様々な分野において自律機械がますます使用されている。例えば、産業の作業現場、採掘現場、建設現場、商業の現場、製造現場など、様々な作業現場において、自律トラック、ブルドーザ、ローダ、掘削機などの形態の、ますます多くの自律機械が使用されている。例えば、採鉱地では、採掘現場に配置された自律機械によって実施されるタスクは、自律掘削機を使用して材料を掘削すること、自律ローダまたはブルドーザを使用して材料を自律トラックに積み込むこと、自律トラックを使用して材料または物体を現場内のある場所から別の場所に輸送することなどを含み得る。従来の機械とは異なり、タスクを実施するための自律機械の使用は、現場にわたる多様なオフロード条件がタスクを実施するための重大な課題をもたらし得る、特に鉱山などの現場において、全く新しい一連の問題を生じている。タスクを実施するための機械の自律的性質はまた、タスクがどのように割り振られ、制御されるかと、タスクが自律機械のセット(またはフリート)によってどのように実施されるかとにおいて、個別にまたは協働してのいずれかで、固有の問題を呈する。
【発明の概要】
【0004】
[0004]本開示は、一般に、様々なタスクを実施するための重機または車両の自律動作に関し、より詳細には、タスク階層を使用して重機および車両を自律的に制御するための技法に関する。方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を記憶する非一時的コンピュータ可読記憶媒体などを含む、様々な本発明の実施形態が、本明細書で説明される。
【課題を解決するための手段】
【0005】
[0005]自律車両、自律機械など、自律システムの制御を改善するインフラストラクチャが提供される。自律動作が安全な方法で実施されるように多様なオフロード条件で車両または機械によって実施される1つまたは複数の自律機能または動作を自動的に制御するように構成された、自律車両管理システム(コントローラシステムとも呼ばれる)が説明される。自律動作またはタスクの例は、限定はしないが、経路に沿った自律運転またはナビゲーション、すくい上げおよびダンプ動作、材料または物体の移動(例えば、ある領域から別の領域への土または砂の移動)、材料のリフト、運搬、ローリング、土を広げる、掘削、ある地点から別の地点への材料または物体の輸送などを含む。
【0006】
[0006]様々な実施形態では、自律車両管理システムは、自律車両に関連付けられた1つまたは複数のセンサからセンサデータを受信するように構成される。このセンサデータに基づいて、自律車両管理システムは、自律車両のための内部マップを生成し、更新された状態を保つように構成され、ここで、内部マップは、自律車両の環境の自律車両の状態を表す情報(例えば、車両の環境において検出された物体)を含む。内部マップに基づいて、および、自律車両によって実施されるべきタスク(例えば、車線変更、左折/右折、掘出しやすくい上げなどの特殊な動作の実施)、安全上の考慮事項など、他の入力に基づいて、自律車両管理システムは、タスクが安全な方法で達成されるように自律車両のためのアクション計画を生成するように構成される。アクション計画は、自律車両が安全な方法でタスクを達成するために、自律車両によって実施されるべき1つまたは複数の計画されたアクションまたはサブタスクのシーケンスを識別し得る。次いで、自律車両管理システムは、アクション計画におけるアクションまたはサブタスクを実施するために、1つまたは複数の車両システム(例えば、制動システム、ステアリングシステム、自律車両を運転するための推進システム、電気システム、補助システム(例えば、自律車両の運転者または同乗者に情報を出力するためのシステム))を制御し得る。
【0007】
[0007]自律車両管理システムは、その処理の一部として様々な人工知能(AI)ベース技法(例えば、怠惰学習、強化学習(RL)技法など)およびモデルを使用し得る。例えば、自律車両管理システムは、ベイズモデルを使用して、すべての可能な関数の中の基礎となる関数の確率分布を推定し、自律車両の1つまたは複数のセンサによってキャプチャされたセンサデータ(例えば、自律車両に搭載されたセンサによってキャプチャされたアクセルおよびブレーキの変位)から出力データ(例えば、線速度および角速度)を予測し得る。別の例として、自律車両管理システムは、AIベース技法を使用して、安定した方法で特定のタスクを達成するために自律車両によって実施されるべきアクション計画に含まれるべきアクションまたはサブタスクのセットを識別し得る。
【0008】
[0008]様々な実施形態では、コントローラシステムによって、作業現場環境において自律車両によって実施されるべきタスクを取得することと、コントローラシステムによって、タスクを実施するために実施されるべき1つまたは複数のサブタスクを、タスクおよび1つまたは複数のサブタスクの事前マッピングに基づいて決定することと、コントローラシステムによって、作業現場環境における自律車両の動作の表現と作業現場環境の状況コンテキストとを提供するセンサデータの第1のセットを取得することと、コントローラシステムによって、センサデータの第1のセットに基づいて、1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第1のタスクコンテキストを決定することと、コントローラシステムによって、第1のサブタスクに関連付けられた第1のタスクコンテキストに基づいて、予測モデルのライブラリから第1の予測モデルを識別することであって、第1の予測モデルが、第1のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、第1の予測モデルによって、センサデータの第1のセットに基づいて、出力データの第1のセットを推定することと、コントローラシステムによって、入力データの第1のセットを使用して第1のサブタスクを実施するために、作業現場環境における自律車両の1つまたは複数の動作を制御することであって、入力データの第1のセットが、センサデータの第1のセットおよび出力データの第1のセットから導出される、制御することとを含む、コンピュータ実装方法が提供される。
【0009】
[0009]いくつかの実施形態では、本方法は、コントローラシステムによって、作業現場環境における自律車両の動作の別の表現と作業現場環境の状況コンテキストとを提供するセンサデータの第2のセットを取得することと、コントローラシステムによって、センサデータの第2のセットに基づいて、1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、コントローラシステムによって、第1のサブタスクに関連付けられた第2のタスクコンテキストに基づいて、予測モデルのライブラリから第2の予測モデルを識別することであって、第2の予測モデルが、第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、第2の予測モデルによって、センサデータの第2のセットに基づいて、出力データの第2のセットを推定することと、コントローラシステムによって、入力データの第2のセットを使用して第1のサブタスクを実施するために、作業現場環境における自律車両の1つまたは複数の動作を制御することであって、入力データの第2のセットが、センサデータの第2のセットおよび出力データの第2のセットから導出される、制御することとをさらに含む。
【0010】
[0010]いくつかの実施形態では、本方法は、コントローラシステムによって、作業現場環境における自律車両の動作の別の表現と作業現場環境の状況コンテキストとを提供するセンサデータの第2のセットを取得することと、コントローラシステムによって、センサデータの第2のセットに基づいて、1つまたは複数のサブタスクのうちの第2のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、コントローラシステムによって、第2のサブタスクに関連付けられた第2のタスクコンテキストに基づいて、予測モデルの別のライブラリから第2の予測モデルを識別することであって、第2の予測モデルが、第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、第2の予測モデルによって、センサデータの第2のセットに基づいて、出力データの第2のセットを推定することと、コントローラシステムによって、入力データの第2のセットを使用して第2のサブタスクを実施するために、作業現場環境における自律車両の1つまたは複数の動作を制御することであって、入力データの第2のセットが、センサデータの第2のセットおよび出力データの第2のセットから導出される、制御することとをさらに含む。
【0011】
[0011]いくつかの実施形態では、第1のタスクコンテキストを決定することは、作業現場環境における自律車両の動作の表現と作業現場環境の状況コンテキストとから、変数の予め規定されたセットを識別することと、変数の予め規定されたセットに基づいて、第1のタスクコンテキストを規定することとを含む。
【0012】
[0012]いくつかの実施形態では、第1の予測モデルを識別することは、変数の予め規定されたセットを、予測モデルのライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数と比較することと、比較することに基づいて、予測モデルのライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数との、変数の予め規定されたセットの類似性をランク付けすることと、ランク付けすることに基づいて、最も高くランク付けされた予測モデルを選択することであって、最も高くランク付けされた予測モデルは第1の予測モデルである、選択することとを含む。
【0013】
[0013]いくつかの実施形態では、各予測モデルを訓練するために使用される訓練データにおける特徴または変数は、各予測モデルに関連付けられたメタデータに記憶される。
【0014】
[0014]いくつかの実施形態では、第1の予測モデルは、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を規定する1つまたは複数の関数にわたる事後分布を規定するガウス過程を有し、第1の予測モデルは、強化学習を使用して特徴または変数を有する訓練データについて訓練される。
【0015】
[0015]いくつかの実施形態では、1つまたは複数のデータプロセッサと、1つまたは複数のデータプロセッサ上で実行されたとき、1つまたは複数のデータプロセッサに、本明細書で開示される1つまたは複数の方法またはプロセスの一部または全部を実施させる命令を含む非一時的コンピュータ可読記憶媒体とを含む、システムが提供される。
【0016】
[0016]いくつかの実施形態では、非一時的機械可読記憶媒体において有形に具現され、1つまたは複数のデータプロセッサに、本明細書で開示される1つまたは複数の方法の一部または全部を実施させるように構成された命令を含む、コンピュータプログラム製品が提供される。
【0017】
[0017]採用された用語および表現は、限定ではなく説明の用語として使用され、そのような用語および表現の使用において、図示および説明される特徴またはその部分の等価物を除外する意図はないが、特許請求される発明の範囲内で様々な修正が可能であることが認識される。したがって、本発明は実施形態および任意の特徴によって具体的に開示されたが、本明細書で開示される概念の修正および変形は当業者によって用いられ得、そのような修正および変形は、添付の特許請求の範囲によって規定されるような本発明の範囲内にあると見なされることを理解されたい。
【0018】
[0018]本開示は、同様の部分が同様の符号によって参照され得る添付の図面とともに取られる以下の説明を参照することによって、最も良く理解され得る。
【図面の簡単な説明】
【0019】
【
図1A】様々な実施形態による、(本明細書では自律車両管理システム(AVMS)と呼ばれる)コントローラシステムを組み込んだ自律車両の高レベル簡略ブロック図である。
【
図1B】様々な実施形態による、主にソフトウェアで実装された例示的な自律車両管理システムを示す図である。
【
図2A】様々な実施形態による、自律車両管理システムのサブシステムを示す簡略ブロック図である。
【
図2B】様々な実施形態による、自律車両管理システムの様々なサブシステムを実装するために使用され得るソフトウェアモジュール(例えば、自律機械の1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令)を示す図である。
【
図3】様々な実施形態による、自律機械のセンサの例示的なセットを示す図である。
【
図4】様々な実施形態による、タスク階層を示す図である。
【
図5】様々な実施形態による、自律車両を制御するための機械学習モデル化システムを示す図である。
【
図6】様々な実施形態による、自律車両を制御するためのアクション計画を生成および実行するためのプロセスを示すフローチャートである。
【
図7】本開示において説明されるシステムおよびサブシステムのうちの1つまたは複数を実装するために、ならびに/あるいは本明細書で説明されるプロセスまたは方法のうちのいずれか1つを実施するために使用され得る例示的なコンピューティングシステムの簡略ブロック図である。
【発明を実施するための形態】
【0020】
[0028]次に、本開示の例示的な例および実施形態が、図面を参照して詳細に説明され、図面は、当業者が本開示を実践することを可能にするように例示的な例として提供される。とりわけ、以下の図面および例は、本開示の範囲を単一の実施形態に限定することを意味するものではなく、説明または図示される要素の一部または全部の交換または組合せによって、他の実施形態が可能である。便宜上、同じまたは同様の部分を指すために、図面全体を通して同じ参照番号が使用される。以下の説明では、説明の目的で、いくつかの本発明の実施形態の完全な理解を提供するために具体的な詳細が記載される。しかしながら、これらの具体的な詳細なしで様々な実施形態が実践され得ることは明らかであろう。図面および説明は、制限を意図するものではない。「例示的」という単語は、本明細書では、「例、事例、または例示としての役割を果たすこと」を意味するために使用される。本明細書で「例示的」として説明される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好適または有利であると解釈されるべきではない。これらの実装形態のいくつかの要素が既知の構成要素を使用して部分的または完全に実装され得る場合、本開示の理解に必要であるそのような既知の構成要素の部分のみが説明され、そのような既知の構成要素の他の部分の詳細な説明は、本開示を不明瞭にしないように省略される。
【0021】
[0029]本開示は、一般に、様々なタスクを実施するための重機または車両の自律動作に関し、より詳細には、タスク階層を使用して重機および車両を自律的に制御するための技法に関する。従来の重機または車両は、様々なジョブまたはタスクを実施するために使用され、各ジョブまたはタスクは、1つまたは複数のサブタスクの実施を必要とする。1つまたは複数のサブタスクは、各ジョブまたはタスクに関連付けられたタスク階層の一部である。例えば、材料の堆積を第1のロケーションから第2のロケーションに移動させるジョブまたはタスクは、第1のロケーションにある材料の堆積に接近することと、材料の堆積の一部を拾い上げることと、材料の堆積のその一部を第2のロケーションに運搬することと、第2のロケーションにおいて材料の堆積のその一部をダンプすることとを含む、サブタスクの階層構造を含み得る。ジョブまたはタスクを実施するためのタスク階層内の各サブタスクは、ジョブまたはタスクを取り巻くコンテキストまたは特性(これは、一般に、所与のジョブまたはタスクにおける環境または状況の変動として知られており、以下では単に「タスクコンテキスト」と呼ばれる)に依存するいくつかの方法で実施され得る。
【0022】
[0030]材料の堆積を移動させるジョブまたはタスクについての上記の例を続けると、大きい領域にわたって軽く広げられた材料を考慮し、ここで、材料は、スキッドステアローダ、掘削機、油圧ショベル、コンパクトトラックローダ、ホイールローダ、バックホウ、ブルドーザ、ローダ、掻き寄せ機など、自律車両によってすくい上げられる必要がある。そのような機器を使用して材料をすくい上げる場合、すくい上げアクションは、より長いすくい上げの動き、より多くのすくい上げ回数を必要とするか、または、より効果的であり得る、直線的なバケット降下の動きおよびそれに続くリフトバケットを必要とし得る。より高い土の堆積を伴う、さらなる事例では、極めて短いすくい上げアクションが、バケットを効率的に充填することができる。しかしながら、より長いすくい上げを行おうとすると、機械は、土の堆積にはまり込む可能性があり、したがって、はまり込みを回避するためにその接近角を修正する必要がある。ジョブまたはタスクを取り巻くタスクコンテキストから導出された任意の数の変数に依存するこのタイプの操縦は、熟練した人間の機械オペレータにとって既知または決定可能であるが、自律車両がエミュレートするには非常に複雑である。さらに、ジョブまたはタスクを取り巻くタスクコンテキストは、動的であり、任意のタスクまたはサブタスクを実施している間に変化し得るため、自律車両は、絶えず変化する状況に対処するためにリアルタイムで学習することが困難である(コンテキストまたは特性の多くの変動は、機械学習アルゴリズムのための訓練データに含まれていないことがある)。
【0023】
[0031]これらの限定および問題を克服するために、各ジョブまたはタスクを単位タスクレベル、例えば、円錐形状である材料の堆積に所与の接近角で接近することに分けるコントローラシステムおよびフレームワークが本明細書で開示され、これは、このタイプの材料の堆積にどのように取り組むかに関する1つの単位タスクであり、異なる形状の堆積、環境の変化、および/または異なる接近角など、このタスクの各変形は、異なる単位タスクである。各単位タスクは、タスク階層を有し、サブタスクのセット、例えば、材料の堆積に接近する、材料の堆積の一部を拾い上げる、材料の堆積の一部を移動させる、および材料の堆積の一部をダンプするなどに、さらに分けることができる。さらに、各サブタスクは、接近角、接近勾配、堆積の形状、環境要因、道路条件など、サブタスクに関連付けられたきめ細かいタスクコンテキストに基づいて、それ自体の可能な変形を有する。タスクおよびサブタスクのためのタスク階層は事前マッピングされ得、所与のタスクを割り当てられた自律車両のコントローラシステムは、所与のタスクを完了するために必要なサブタスクのすべてを事前マッピングすることから決定することができる。実施されるべき各サブタスクについて、コントローラシステムは、センサからの情報(例えば、現場の画像、車両のステアリング角、道路の勾配、天候、現場の名称など)を取得し、各サブタスクに関連付けられた現在のタスクコンテキストを決定する。
【0024】
[0032]コントローラシステムは、各サブタスクに関連付けられた予測モデルのライブラリを識別し、決定された現在のタスクコンテキストに基づいて、識別されたライブラリから1つまたは複数の予測モデルを識別する。したがって、サブタスクおよびタスクコンテキストの各組合せについて、現在のタスクコンテキストを仮定すれば、サブタスクを実施するための最もマッチする(すなわち、タスクコンテキストと一致する特徴または変数に基づいて訓練/学習される)予測モデルがある。例えば、材料の堆積が地面に薄く広げられ、接近角が45°未満である、材料の堆積を拾い上げるための第1の予測モデルがあり得、材料の堆積が円錐形状であり、接近角が45°未満である、材料の堆積を拾い上げるための第2の予測モデルがあり得、材料の堆積が円錐形状であり、接近角が15°よりも大きく、材料の堆積の前方に障害物がある、材料の堆積を拾い上げるための第3の予測モデルがあり得る。コントローラシステムは、1つまたは複数の予測モデルを使用して、サブタスクを完了するように自律車両を制御するために取られるべきアクションを決定する。
【0025】
[0033]このようにして、各タスクおよびサブタスクの複雑さが低減され、各タスクおよびサブタスクを完了するために取られるべきアクションを決定するために各予測モデルが考慮する必要がある変数または特徴の数が限定される。したがって、自律車両を制御し、各タスクまたはサブタスクを実施する際の人間の意思決定をエミュレートすることが、より容易になる。理解されるべきであるように、タスクまたはサブタスクを完了するために、タスク階層およびセンサからの情報を使用して、任意の数の予測モデルが識別され得、予測モデルは、各サブタスク、および最終的に所与のタスクを完了するために、並行して、順番に、または任意の他の決定可能な順序で実装され得る。その上、自律車両がサブタスクのうちの1つを実施している間にタスクコンテキストが変化する場合、コントローラシステムは、センサからの情報(例えば、現場の画像、車両のステアリング角、道路の勾配、天候、現場の名称など)から新しい情報を継続して取得しており、コントローラシステムは、新しい情報に基づいてサブタスクに関連付けられた現在のタスクコンテキストを更新し、更新された現在のタスクコンテキストを仮定すれば、サブタスクを完了するためによりマッチし得る他の予測モデルを識別することができる。
【0026】
[0034]本明細書で使用される「実質的に」、「およそ」、および「約」という用語は、当業者によって理解されるように、大部分が指定されるものであるが、必ずしも完全に指定されるものであるとは限らないものとして規定される(および完全に指定されるものを含む)。任意の開示された実施形態では、「実質的に」、「およそ」、または「約」という用語は、指定されるもの「の[パーセンテージ]内」で置き換えられ得、ここで、パーセンテージは、0.1、1、5、および10パーセントを含む。本明細書で使用される場合、アクションが何か「に基づく」とき、これは、アクションがその何かの少なくとも一部に少なくとも部分的に基づくことを意味する。
【0027】
[0035]
図1Aは、いくつかの実施形態による、(本明細書では自律車両管理システム(AVMS)105と呼ばれる)コントローラシステムを組み込んだ自律車両100の高レベル簡略ブロック図である。本開示の目的で、自律車両100などの自律車両は、自律的に、および実質的に人間ユーザまたは手動入力なしで、1つまたは複数の動作を実施することが可能である車両である。例えば、いくつかの実施形態では、自律動作は、車両100がその環境を自律的に検知し、自律的に、および実質的に人間ユーザまたは手動入力なしで、経路に沿ってナビゲートまたは運転する能力であり得る。他の自律動作の例は、限定はしないが、すくい上げおよびダンプ動作、材料または物体の移動(例えば、ある領域から別の領域への土または砂の移動)、材料のリフト、運搬、ローリング、土を広げること、掘削、ある地点から別の地点への材料または物体の輸送などを含む。
【0028】
[0036]自律車両100は、様々な異なるタイプのものであり得る。例えば、自律車両100は、人および/または貨物を輸送するために使用され得る乗用車または可動機械であり得る。自律車両100は、道路または経路を固めること、ローリング、掘出し、リフトなど、特殊な動作を実施するための特殊な車両であり得る。自律車両100の例は、制限なしに、ワゴン、自転車、自動車(例えば、オートバイ、乗用車、トラック、バス)、レール車両(例えば、電車、路面電車)、船舶(例えば、船、ボート)、航空機、宇宙船、および/または重装備車両(例えば、ダンプトラック、トラクタ、ブルドーザ、掘削機、フォークリフトなど)を含む。自律車両100の環境は、他の自律車両を含む他の車両を含むことができるので、明確さの目的で、自律車両100をその環境における他の車両と区別するために、自律車両100は、自車両と呼ばれることもある。
【0029】
[0037]本開示は、自律車両のコンテキストでいくつかの実施形態を説明する。「車両」という用語の使用および車両に関する説明は、限定または制限を意図するものではない。本明細書で説明される教示は、自動化された方法で、および実質的に人間介入なしで、1つまたは複数のタスクまたは動作を実施するように構成された自律車両および他のタイプの自律機械(例えば、ブルドーザおよびクレーンなどの重機)を含む、任意の自律機器とともに使用され、任意の自律機器に適用され得る。機械は、製造、鉱業、建設、医療用途、包装、組立て、測量、マッピング技術、物流など、様々な産業において使用され得る。
【0030】
[0038]
図1Aに示されているように、自律車両管理システム105に加えて、自律車両100は、センサ110および車両システム115を含むか、またはそれらに結合され得る。自律車両管理システム105は、有線または無線リンクを介してセンサ110および車両システム115と通信可能に結合され得る。自律車両管理システム105とセンサ110との間、および自律車両管理システム105と車両システム115との間の通信を容易にするために、1つまたは複数の異なる通信プロトコルが使用され得る。
【0031】
[0039]車両システム115は、自律車両100が、特定の経路またはコースに沿って走行またはナビゲートすること(例えば、多様なオフロード条件にわたって経路に沿ってナビゲートすること)など、その意図された機能を実施することを可能にする様々な電気機械システム、構成要素、リンク機構などを含むことができる。車両システム115は、例えば、自律車両を運転するためのステアリングシステム、スロットルシステム、制動システム、推進システムなど、電気システム、補助システム(例えば、自律車両100の運転者または同乗者に情報を出力するためのシステム)などを含み得る。車両システム115は、自律車両100の経路および速度を設定するために使用され得る。特殊な動作を実施するように構成された自律車両(例えば、リフトおよびダンプ動作を実施することに特化したダンプトラック、トラクタなど)では、車両システム115はまた、そのような特殊な動作を実施するように構成されたシステムを含み得る。
【0032】
[0040]センサ110は、自律車両100の上または中に位置し得る(「車載センサ」)か、さらには、自律車両100から遠隔に位置し得る(「リモートセンサ」)。自律車両管理システム105は、無線通信プロトコルを使用して無線リンクを介してリモートセンサと通信可能に結合され得る。センサ110は、自律車両100のための環境情報を取得することができる(例えば、車両が動作している間のジョイスティック/アクセルの位置/変位、ステアリング位置/角度、ブレーキの位置/変位、道路仰角、気温、および湿度など、リアルタイムデータをキャプチャするためのセンサ)。次いで、このセンサデータは、自律車両管理システム105に供給され得る。
図3は、限定はしないが、光検出および測距(Light Detection and Ranging:LIDAR)センサ302、レーダ304、カメラ306(異なる検知能力を有する異なる種類のカメラが使用され得る)、全地球測位システム(GPS)および慣性測定ユニット(IMU)センサ308、車両対あらゆるモノ(V2X)センサ310、オーディオセンサ、温度および湿度センサなどを含む、自律車両のセンサ110の例示的なセットを示す。センサ110は、自律車両100のための環境情報を取得(例えば、検知、キャプチャ)し、検知またはキャプチャされたセンサデータを処理のために自律車両管理システム105に通信することができる。他のセンサは、近接センサ、SONARセンサ、および他のセンサを含み得る。
【0033】
[0041]レーダセンサ304(例えば、長距離レーダ、短距離レーダ、撮像レーダなど)の例は、自律車両100の環境における物体を検出し、検出された物体の速度を決定するために使用されるセンサを含み得る。LIDARセンサ302の例は、パルスレーザ光の形態の光を使用することによってターゲットまでの距離を測定する測量技法を使用するセンサを含む。これは、測定されるべきターゲットをパルスレーザ光で照射し、反射されたパルスをセンサを使用して測定することによって行われる。V2Xセンサの例は、交通システムの可動部と通信するためにV2X通信技術を使用するセンサを含む。例えば、自律車両100は、自律車両の周りまたは近くの別のエンティティに車両からの情報を渡し、および/または受信するためにV2Xセンサを使用し得る。V2X通信センサ/システムは、V2I(車両対インフラストラクチャ)、V2V(車両対車両)、V2P(車両対歩行者)、V2D(車両対デバイス)、V2G(車両対グリッド)など、他のより具体的なタイプの通信インフラストラクチャを組み込み得る。IMUセンサは、加速度計、ジャイロスコープ、磁力計などの組合せを使用して、身体の特定の力、角速度、および場合によっては身体の周囲の磁場を測定および報告する電子デバイスであり得る。GPSセンサは、ジオロケーションおよび時間情報を決定するために宇宙ベース衛星ナビゲーションシステムを使用する。
【0034】
[0042]以下で説明されるように、いくつかの実施形態では、経路または道路条件あるいは他の関心物体の三次元(3D)表現を形成するために、異なるタイプのセンサ、または同じタイプのセンサの複数のインスタンスから取得されたデータが組み合わせられるか、または融合され得、その表現から、経路/道路または物体の1つまたは複数の特性または特徴(例えば、傾斜角、経路/道路の材料組成、積雪などの経路/道路条件など)が推定され得る。3D表現を生成するためのデータを取得する目的で、様々なタイプのセンサ組合せが採用され得る。異なるセンサタイプを組み合わせることは、いくつかの利点を有する。例えば、カメラは、経路/道路または物体がその中にある環境の非常に詳細な画像を生成することが可能であるが、LIDARおよびレーダは、より良好な深度知覚を提供する。LIDARは、一般に、静止物体を検出するときにレーダよりも正確であるが、レーダは、移動している物体を検出する際により正確である。
【0035】
[0043](コントローラシステムとも呼ばれる)自律車両管理システム105は、自律車両100の状態と自律車両の環境の状態とを記述するデータを処理し、処理に基づいて、自律車両100の1つまたは複数の自律機能または動作を制御するように構成される。例えば、自律車両管理システム105は、自律車両100の推進、制動、ステアリングまたはナビゲーション、および補助挙動(例えば、ライトをオンにする)機能など、自律車両の動きの様々な態様をプログラム的および自律的に制御するための命令/コマンドを、車両システム115に出し得る。自律車両管理システム105は、自律車両100が1つまたは複数の動作を自律的に実施することを可能にする制御および計画アルゴリズムを実装する。
【0036】
[0044]自律車両管理システム105は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組合せを使用して実装され得る。ソフトウェアは、非一時的コンピュータ可読媒体に(例えば、メモリデバイスに)記憶され得、その機能を実施するために1つまたは複数のプロセッサによって(例えば、コンピュータシステムによって)実行され得る。
図1に示されている実施形態では、自律車両管理システム105は、自律車両100の中または上にあるものとして示されている。ただし、これは、限定を意図するものではない。代替実施形態では、自律車両管理システム105はまた、自律車両100から遠隔にあり得る。
【0037】
[0045]自律車両管理システム105は、周期的にまたはオンデマンドでセンサ110からセンサデータを受信する。自律車両管理システム105は、センサ110から受信されたセンサデータを使用して、自律車両の周囲および環境(例えば、現在のタスクコンテキスト)を知覚する。自律車両管理システム105は、センサ110から受信されたセンサデータを使用して、自律車両の状態、ならびに自律車両100の周囲の空間および環境の状態に関する情報をカプセル化するデジタルモデルを生成し、更新された状態を保つ。このデジタルモデルは、自律車両100の現在の状態と、経路/道路条件を含むその環境とをカプセル化する、内部マップと呼ばれ得る。次いで、内部マップは、他の情報とともに、自律車両100によって実施されるべきアクション(例えば、ナビゲーション、制動、加速、すくい上げ、ダンプなど)に関する決定を行うために、自律車両管理システム105によって使用される。自律車両管理システム105は、車両システム115のシステムによってアクションを実施させるための命令またはコマンドを、車両システム115に送り得る。
【0038】
[0046]上述したように、自律車両管理システム105は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組合せを使用して実装され得る。
図1Bは、いくつかの実施形態による、例示的な自律車両管理システムを示し、ここで、自律車両管理システム105は主にソフトウェアで実装される。自律車両管理システム105は、完全自律車両ソフトウェアスタック120として実装され得る。完全自律車両ソフトウェアスタック120は、車両安全マネージャ125、リモートインターフェースマネージャ130、アプリケーション135、ミドルウェア140、およびオペレーティングシステム145を含むことができる。完全自律車両ソフトウェアスタック120は、上記で説明された様々なシステムおよびサブシステムの機能を実装するために使用され得る。
【0039】
[0047]
図2Aは、いくつかの実施形態による、自律車両管理システム105のサブシステムを示す簡略ブロック図である。自律車両管理システム105は、1つまたは複数の通信チャネルを介して互いに通信可能に結合された複数のシステムまたはサブシステムを備え得る。
図2Aに示されている実施形態では、サブシステムは、センサインターフェースサブシステム205、位置特定サブシステム210、知覚サブシステム215、計画サブシステム220、制御サブシステム225、および情報サブシステム230を含む。
【0040】
[0048]
図2Aに示されている自律車両管理システム105の実施形態は、単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図するものではない。当業者は、多くの可能な変形、代替、および修正を認識するであろう。例えば、いくつかの実装形態では、自律車両管理システム105は、
図2Aに示されているものよりも多いまたは少ないサブシステムまたは構成要素を有し得、2つ以上のサブシステムを組み合わせ得るか、あるいはサブシステムの異なる構成または配置を有し得る。サブシステムは、ソフトウェアのみ、ハードウェアのみ、またはそれらの組合せを使用して実装され得る。
図2Aに示されている実施形態では、自律車両管理システム105およびそのすべてのサブシステムは、自律車両100の中または上にあるものとして示されている。ただし、これは、限定を意図するものではない。代替実施形態では、自律車両管理システム105のすべてのサブシステムまたは自律車両管理システム105のいくつかのサブシステムはまた、自律車両100から遠隔にあり得る。
【0041】
[0049]センサインターフェースサブシステム205は、(車載センサおよびリモートセンサを含む)センサ110と自律車両管理システム105との間の通信を可能にするインターフェースを提供する。センサインターフェースサブシステム205は、センサ110からセンサデータを受信し、そのデータを、自律車両管理システム105の1つまたは複数の他のサブシステムに提供し得る。例えば、
図2Aに示されているように、センサデータは、さらなる処理のために位置特定サブシステム210および知覚サブシステム215に提供され得る。様々なセンサ110によって収集されたセンサデータは、自律車両管理システム105が、自律車両100および経路/道路条件を含むその周囲環境のビューまたはピクチャを構築することを可能にする。
【0042】
[0050]いくつかの実施形態では、自律車両管理システム105は、自律車両管理システム105の1つまたは複数のサブシステムが、1つまたは複数のセンサ110に、1つまたは複数のセンサの動作を制御するための命令またはコマンドを送ることを可能にする。例えば、特定のセンサの挙動を変更するために、命令が特定のセンサに送られ得る。例えば、センサによって検知または収集された情報を変更し、および/またはセンサから自律車両管理システム105に通信されるセンサデータを変更するために、命令がセンサに送られ得る。これらの命令を使用して、自律車両管理システム105は、センサ110から自律車両管理システム105に通信されるセンサデータを動的に制御することができる。これに関するさらなる詳細は、計画サブシステム206によって実施される機能のコンテキストにおいて以下で提供される。
【0043】
[0051]位置特定サブシステム210は、センサ110からセンサデータを受信し、センサデータに基づいて、その周囲環境における自律車両100のロケーションを識別する(車両位置特定)ように構成される。位置特定サブシステム210は、その環境(例:鉱山)に対する自車両の現在のローカル位置情報を提供する。自車両100の位置は、知覚サブシステム215によって生成された予め規定されたマップに関して決定され得る。いくつかの実施形態では、位置特定サブシステム210は、自車両の位置情報を自律車両100の他のシステムまたはサブシステムにブロードキャストするように構成される。次いで、他のシステムまたはサブシステムは、それら自体の処理のために、必要に応じて位置情報を使用し得る。
【0044】
[0052]位置特定サブシステム210は、内部マップ管理、マップマッチング、ビジュアルオドメトリ、デッドレコニング、ロケーション履歴管理など、様々な機能を実装し得る。例えば、自律車両100が鉱山において走っていると仮定する。位置特定サブシステム210は、入力として鉱山のマップを受信し得る。鉱山は、通常、運転可能な様々な地形および運転不可能な領域を含む設定された経路と、鉱山の周りの採掘車両が辿るための設定された道路とを有する。位置特定サブシステム210は、経路に沿った自車両の位置を決定し得る。位置特定サブシステム210は、それがセンサから受信する複数の入力と、経路/道路条件を含む環境のマップとを利用することによって、これを行い得る。位置特定サブシステム210は、GPSセンサデータを使用して自車両の全地球測位を決定し得る。位置特定サブシステム210は、GPSセンサデータを受信し、それを、自律車両管理システム105の1つまたは複数の他のサブシステムによって使用可能であるより有用な形態に変換し得る。例えば、位置特定サブシステム210は、鉱山マップなど、環境のマップに対して自車両がどこに配置されているかを識別し得る(マップ管理とも呼ばれる)。
【0045】
[0053]位置特定サブシステム210はまた、マップマッチングを実施するように構成され得、ここで、位置特定サブシステム210が知覚したものは、位置特定サブシステム210が前に獲得した情報(例えば、グラウンドトゥルース)とマッチングされる。マップマッチングは、(例えば、地理情報システム(GPS)などを使用して)記録された地理的座標を現実世界の論理モデルとマッチングすることができる。一例では、マップマッチングアルゴリズムは、(例えばGPSから)記録された連続ロケーションポイントを取得し、それらを(例えば、ネットワークとして)既存の街路グラフ中のエッジに関係付けることができる。これは、自律車両の走行を表すソートされたリストにあり得る。マップマッチングの一部として、位置特定サブシステム210は、その環境において自車両を追跡し、現実世界マップなどのマップに対して位置特定サブシステム210が見るものに基づいて、その位置を推論している。
【0046】
[0054]位置特定サブシステム210はまた、ビジュアルオドメトリを実施するように構成され、ビジュアルオドメトリは、1つまたは複数のカメラによってキャプチャされた画像を分析することなどによって、センサデータに基づいて自車両の向きおよび位置を決定することを含む。
【0047】
[0055]位置特定サブシステム210はまた、デッドレコニング処理を実施し得る。デッドレコニングは、前に決定された位置、またはフィックスを使用することによってその現在位置を計算し、経過時間およびコースにわたる既知のまたは推定された速度に基づいてその位置を前進させるプロセスである。これは、走行した方向および距離を推定することによって自車両の位置を計算することを含み得る。例えば、自律車両管理システム105は、その車輪速度、ステアリング角、自律車両100が1秒前にいた場所など、自律車両100に関するある情報を受信し、知る。過去の位置情報に基づいて、および速度/ステアリング角などと組み合わせて、位置特定サブシステム210は、車両の次のロケーションまたは現在ロケーションを決定することができる。これは、自車両がその経路上を移動するときの自車両の位置のローカルな理解を提供する。経路は、様々な実施形態による、道路、高速道路、鉄道システム、滑走路、ボートの航路、自転車道などであり得る。
【0048】
[0056]位置特定サブシステム210はまた、ローカル履歴管理追跡を実施し得、ここで、自車両の経路に関する履歴情報が分析され、現在の経路と比較される。例えば、自律車両100が鉱山におけるある経路の周りを何度も走る場合、この情報は、位置特定サブシステム210によって比較および分析され得る。
【0049】
[0057]位置特定サブシステム210はまた、合理性チェック、欠陥チェック、センサデータの正規化などを実施するように構成された一貫性モジュールを実装し得る。例えば、位置特定サブシステム210は、自車両の位置、ロケーションなどに関する情報の異なるソースから情報を受信し得る。合理性チェックは、有効性チェックを行って、様々なセンサからの情報が、一貫しており、ロバストであることを確認するために使用され得る。これは、誤った結果を低減するのを助ける。合理性チェックは、センサデータ値および/または計算の結果が場合によっては真であり得るかどうかを評価するための試験を含むことができる。センサ110から受信されたセンサデータも正規化され得、正規化されたセンサデータは、次いで、位置特定サブシステム210に提供され得る。次いで、位置特定サブシステム210は、正規化されたセンサデータを利用して、自律車両のリアルタイム(例えば、ネットワーキングおよび処理レイテンシなどを仮定する)環境の一貫した内部マップを生成および/または更新することができる。
【0050】
[0058]知覚サブシステム215は、周期的にまたはオンデマンドで、センサ110からセンサデータを受信し、受信された情報に基づいて一貫した内部マップを構築し、維持する。知覚サブシステム215はまた、位置特定サブシステム210からなど、他のソースから入力を受信し、受信された入力を使用して内部マップを構築し、維持し得る。知覚サブシステム215によって生成される内部マップは、自車両の情報、自車両およびその環境の状態、経路または道路条件に関する情報、自車両の環境における物体に関する情報(例えば、自車両の周りの動的および静的物体に関する情報)を含むすべての情報を含む。一貫した内部マップは、自律車両の環境における、例えば、自律車両の周りの検知されたエンティティ/物体の局所マップであり得る。いくつかの実施形態では、これらの検知されたエンティティ/物体は、三次元(3D)においてマッピングされる。いくつかの実施形態では、知覚サブシステム215は、位置特定サブシステム210から位置情報を受信し、位置情報を内部マップに組み込む。内部マップは、センサがオフラインになった場合でも、維持され得る。
【0051】
[0059]合理性チェックおよび正規化は、知覚サブシステム215によって受信されたセンサデータに対して実施され得る。これらのチェックは、センサデータ値および/または計算の結果が場合によっては真であり得るかどうかを評価するための試験を含むことができる。センサ110から受信されたセンサデータも正規化され得、正規化されたセンサデータは、次いで、知覚サブシステム215に提供され得る。知覚サブシステム215は、正規化されたセンサデータを利用して、自律車両のリアルタイム環境の一貫した内部マップを生成および/または更新することができる。
【0052】
[0060]知覚サブシステム215は、人工知能(AI)および機械学習ベース技法を含む、様々な異なるアルゴリズムおよび技法を使用して、その機能を実施し得る。例えば、知覚サブシステム215は、畳み込みニューラルネットワーク(CNN)を使用して、センサデータに基づいて物体検出および物体分類を実施し得る。訓練フェーズの間、CNNは、車両の環境のサンプル画像と、対応するグラウンドトゥルース分類とを含む、ラベル付き訓練データを使用して訓練され得る。ラベル付きデータは、一般に、1つまたは複数のラベルでタグ付けされたサンプルのグループを含み、ここで、ラベルは、訓練入力サンプルについての既知の結果(例えば、グラウンドトゥルース分類など)を表す。ラベリングはまた、ラベルのないデータのセットを取り、そのラベルのないデータの各部分を、有益である有意味なタグで増強するために、使用され得る。次いで、センサ110から受信された新しいセンサデータに基づいて自律車両100の環境における物体を識別および分類するために、訓練に基づいて構築されたCNNモデルまたは他のAI/機械学習モデルが、リアルタイムで使用され得る。
【0053】
[0061]計画サブシステム220は、自律車両100が1つまたは複数の所与のタスクおよびサブタスクを完了するためのアクション計画を生成するように構成される。本明細書で詳細に説明されるように、アクション計画は、1つまたは複数の所与のタスクおよびサブタスクを含むタスク階層に従って生成され得る。計画は、1つまたは複数のサブタスクおよび/またはタスクを完了するために自律車両100によって実施されるべき1つまたは複数の計画されたアクションまたは動作を含み得る。例えば、計画は、自律車両100によって横断されるべき軌道または経路を識別する情報を含み得る。経路は、様々な実施形態による、道路、高速道路、鉄道システム、滑走路、ボートの航路、自転車道などであり得る。例えば、軌道情報は、点Aから点Bまで車両が辿るための軌道をマークする、点Aと点Bとの間の点のリストを用いて、車両が点Aから点Bまでどのように移動するべきであるかを示し得る。別の例として、計画サブシステム220によって生成された計画は、インジケータまたはライトをオンまたはオフにすること、1つまたは複数の音(例えば、アラーム)を生成することなど、自律車両100のアクセサリに関する計画されたアクションを含み得る。自律車両100が、特殊な動作を実施するようにカスタマイズされた特殊な構成要素を有する状況では、計画サブシステム220によって生成された計画は、これらの特殊な構成要素のうちの1つまたは複数によって実施されるべき計画されたアクションをも含み得る。例えば、自律車両が、材料の掘出しおよび移動を実施するためのバケットおよびアームアセンブリを有する掘出しトラックである場合、計画サブシステム220によって生成された計画は、掘出しを実施するためにバケットおよびアームアセンブリによって実施されるべきアクションを含むことができる。例えば、計画は、アームが持ち上げられるべきである角度、および/またはアームに対するバケットの角度を含み得る。アクション計画が生成された後に、計画サブシステム220は、アクション計画を制御サブシステム225に通信し得、制御サブシステム225は、次いで、アクション計画における計画されたアクションを自律車両100によって安全な方法で実施させるように、車両システム115の1つまたは複数のシステムを制御し得る。
【0054】
[0062]知覚サブシステム215によって生成された内部マップに加えて、計画サブシステム220は、自律車両100のためのアクション計画を生成する際に使用する様々な他の入力も受信し得る。これらの入力は、限定はしないが、以下を含み得る。(a)位置特定サブシステム210から受信された位置または位置特定情報。(b)自律車両100の1つまたは複数のタスクを識別する情報(例えば、右折するための自律車両100の最終タスクを識別する情報が受信され得る)。タスクは、自律車両または機械のエンドユーザまたはオペレータによって設定され得る。自動車の例では、ユーザは、自律車両100の現在ロケーションから特定の最終目的地まで運転するために、高レベルを設定し得る。自律車両100は、現在ロケーションおよび最終目的地ロケーションに基づいてGPSルート計画を決定し得、GPSルート計画は、GPSルート計画に従って現在ロケーションから最終目的地まで自律的に運転するためのタスクを伴う。採掘環境の例では、オペレータによって設定される高レベルタスクは、様々な地形上でポイントAから10トンの材料(例えば、砂、石炭など)を移動させ、その材料をポイントBにおいてダンプすることであり得る。一般に、1つまたは複数の異なるタスクが提供され得る。タスクのカテゴリ(そのうちのいくつかは重複し得る)の例は、限定はしないが、自律車両による自律動作の実施に関係するタスク(例えば、経路に沿った自律運転またはナビゲーション、すくい上げおよびダンプ動作、材料または物体の移動、材料のリフト、運搬、ローリング、土を広げること、掘削、ある地点から別の地点への材料または物体の輸送など)、地形または経路条件を考慮した車両の操縦に関係するタスク、車両の環境における様々な当事者、物体などとの車両の相互作用に関係するタスク、車両の一般的な動作に関係するタスクなどを含む。タスクの例:車線変更、あるロケーションから別のロケーションに運転すること、可能な限り速く目的地まで運転すること、方向転換を行うこと、一連のステップを順番に実施することなど。(c)自律車両100によって取られるべき経路またはルートに関する高レベルルート情報。これは、自律車両のエンドユーザまたはオペレータによって直接または間接的に提供され得る。(d)安全上の考慮事項を識別する情報。これらはまた、自律車両100によって提供されるAPIを使用して、または自律車両100のために構成されたメタデータを介して、エンドユーザ/オペレータなどによって自律車両に提供され得る。これらの考慮事項の例は、限定はしないが、車線内に常にとどまること、任意の物体からいつも一定の距離を維持すること、ダンプトラックが30度を超える方向転換を行うべきでないこと、ローダBが15度を超える所定の勾配を登るべきでないことなどを含む。(e)過去に特定の動作がどのように実施されたかに関する情報。例えば、特定の自律車両について、これは、その特定の自律車両が過去にどのように動作を実施したか、異なる自律車両が過去にどのように動作を実施したか、動作が過去に車両を使用してどのように手動で実施されたか(例えば、運転者/オペレータが、運転者/オペレータの制御下で動作している車両を用いて過去にどのように動作を実施したか)の過去の履歴であり得る。例えば、自律車両が過去に経路を走行した、手動トラックがこの経路をどのように走ったか、またはあるタスクをどのように完了したかなど。(f)他の入力。
【0055】
[0063]1つまたは複数の入力に基づいて、計画サブシステム220は、自律車両100のためのアクション計画を生成する。計画サブシステム220は、自律車両100の環境が変化するにつれて(例えば、経路または道路の条件が変化するにつれて)、自律車両100によって実施されるべきタスクが変化するにつれて、または一般に、計画サブシステム220への入力のいずれかの変化に応答して、計画を周期的に更新し得る。
【0056】
[0064]アクション計画の生成および更新の一部として、計画サブシステム220は、特定のタスクまたはサブタスクを安全な方法で達成するために、どのアクションを計画に含めるべきかに関する様々な決定を行う。これらの決定を行うことの一部として計画サブシステム220によって実施される処理は、挙動計画、全体計画、経路計画、フェイルセーフ経路、経路履歴追跡などを含み得る。
【0057】
[0065]計画サブシステム220は、自律車両100によって安全な方法で実施されるべき機能または動作(例えば、自律運転またはナビゲーション、領域の掘出し)を実施するタスクを達成するために、様々なAIベース機械学習アルゴリズムを使用してアクション計画を生成および更新し得る。例えば、いくつかの実施形態では、計画サブシステム220は、アクション計画を生成および更新するために強化学習(RL)を使用して訓練されたモデルを使用し得る。自律車両管理システム105は、RLモデルを使用して、自律車両100の自律動作を制御するために実施されるべきアクションを選択し得る。RLモデルは、そのカバレッジおよび精度を高めるために周期的に更新され得る。強化学習(RL)は、行動心理学に着想を得た機械学習の領域であり、エージェントが累積報酬のある概念を最大化するように環境においてどのようにアクションを取るべきであるかに関係する。
【0058】
[0066]いくつかの実施形態では、アクション計画を生成することに加えて、計画サブシステム220は、センサ110の挙動を動的に制御することが可能である。例えば、計画サブシステム220は、特定のセンサによってキャプチャされるセンサデータを動的に制御し、および/またはセンサから知覚サブシステム215に(または、位置特定サブシステム210など、自律車両管理システム105の他のサブシステムに)通信されるセンサデータを制御するための命令またはコマンドを、センサ110から特定のセンサに送ることができる。知覚サブシステム215によって構築された内部マップは、センサから受信されたセンサデータを動的に制御することが可能であることによって、センサから知覚サブシステム215によって受信されたセンサデータに基づくので、内部マップを構築し、維持するために知覚サブシステム215に含まれ、および/または知覚サブシステム215によって使用される情報も、計画サブシステム220によって動的に制御され得る。計画サブシステム220は、例えば、一貫した内部マップを更新するために追加のセンサデータを提供するために、特定のタイプの情報を取得するかまたは指定されたように挙動するように、動的におよびオンデマンドでセンサ110に指示することができる。例えば、計画サブシステム220は、その検知の範囲を、360度(360°)ビューから、LIDARシステムによってより詳細に検知および/または追跡されるべき特定の物体を含むより狭い範囲に狭めるように、LIDARセンサに命じることができる。このようにして、一貫した内部マップは、計画サブシステム220からのフィードバックに基づいて、および計画サブシステム220の制御下で更新される。
【0059】
[0067]自律車両管理システム105は、計画サブシステム220(または自律車両管理システム105の他のサブシステム)が、1つまたは複数のセンサに、それらの1つまたは複数のセンサの挙動を制御するための1つまたは複数の命令またはコマンドを送ることを可能にするインフラストラクチャを提供する。
図2Aに示されている実施形態では、センサインターフェースサブシステム205は、センサ110と相互作用するためのインターフェースを提供する。(自律車両管理システム105からセンサ方向への)アウトバウンド方向において、計画サブシステム220は、命令またはコマンドをセンサインターフェースサブシステム205に送ることができる。次いで、センサインターフェースサブシステム205は、受信された命令を、意図された宛先センサに通信するように構成される。(センサから自律車両管理システム105への)インバウンド方向において、センサインターフェースサブシステム205は、計画サブシステム220から送られた命令に応答して、センサからセンサデータを受信し得る。次いで、センサインターフェースサブシステム210は、受信されたセンサデータを計画サブシステム220に(または命令を発信した自律車両管理システム105の適切なサブシステムに)通信し得る。
【0060】
[0068]センサインターフェースサブシステム205は、1つまたは複数の異なる通信プロトコルを使用して異なるセンサと通信することが可能であり得る。いくつかの実施形態では、アウトバウンド方向において、計画サブシステム220から(または自律車両管理システム105の任意の他のサブシステムから)受信され、特定のセンサに送られるべき命令またはコマンドについて、センサインターフェースサブシステム205は、その命令を、その特定のセンサによって理解可能であり、その特定のセンサと通信するのに適切であるフォーマットに変換し、次いで、その特定のセンサに適用可能である特定の通信プロトコルを使用し得る。
【0061】
[0069]いくつかの実施形態では、自律車両管理システム105は、センサ110およびそれらの能力を識別する情報へのアクセスを有し得る。次いで、自律車両管理システム105のサブシステムは、この記憶された情報にアクセスし、この情報を使用して、センサの可能な能力および挙動を決定し、その挙動を変更するための命令をそのセンサに送り得る。いくつかの実施形態では、センサと自律車両管理システム105との間の通信が可能にされる前に、センサが自律車両管理システム105に登録されるべきである。登録プロセスの一部として、センサが登録される場合、センサに関係する情報が提供され得る。この情報は、センサを識別する情報、センサの検知能力および挙動、センサによって使用可能な通信プロトコル、ならびにセンサに関係する他の情報を含み得る。次いで、自律車両管理システム105は、この情報を使用して、センサと通信し、センサの挙動を制御し得る。
【0062】
[0070]上述したように、計画サブシステム220は、センサの挙動を制御および変更するための命令をセンサに送り得る。センサの挙動の変更は、センサから自律車両管理システム105に通信されるセンサデータ(例えば、センサから知覚サブシステム215、または自律車両管理システム105の他のサブシステムに通信されるセンサデータ)を変更すること、センサによって収集または検知されたデータを変更すること、あるいはそれらの組合せを含むことができる。例えば、センサから自律車両管理システム105に通信されるセンサデータを変更することは、命令を受信する前にセンサから自律車両管理システム105に通信されたものよりも多いまたは少ないデータを通信すること、および/あるいは、センサから自律車両管理システム105に通信されるセンサデータのタイプを変更することを含むことができる。いくつかの事例では、センサによって検知または収集されたデータは同じままであり得るが、センサから自律車両管理システム105に通信されるセンサデータは変化し得る。他の事例では、センサによって検知または収集されたデータ自体が、自律車両管理システム105から受信された命令に応答して変更され得る。計画サブシステム220はまた、適切な命令をセンサに送ることによって、センサをオンまたはオフにすることが可能であり得る。
【0063】
[0071]例えば、計画サブシステム220は、知覚サブシステム215によって生成された現在の内部マップと、位置特定サブシステム210からの位置情報と、自律車両100が一定の時間内に方向転換する(例えば、次の5秒以内に右折する)べきであるというタスクとを含む、入力を受信し得る。タスクを安全な方法で達成するために自律車両100によって取られるべきアクションの最良のセットが何であるかを決定することの一部として、計画サブシステム220は、自律車両100の右側の経路または道路条件および環境を示す特定のセンサデータ(例えば、追加の画像)をそれが必要とすると決定し得る。次いで、計画サブシステム220は、特定のセンサデータ(例えば、自律車両100の右側の環境の画像)を提供することが可能である1つまたは複数のセンサ(例えば、カメラ)を決定し得る。次いで、計画サブシステム220は、1つまたは複数のセンサが特定のセンサデータをキャプチャし、自律車両管理システム105に(例えば、知覚サブシステム215に)通信するように、1つまたは複数のセンサにそれらの挙動を変更させるための命令を、これらの1つまたは複数のセンサに送り得る。知覚サブシステム215は、この特定のセンサデータを使用して内部マップを更新し得る。次いで、更新された内部マップは、自律車両100のためのアクション計画に含められるべき適切なアクションに関する決定を行うために、計画サブシステム220によって使用され得る。右折が自律車両100によって成功裏に行われた後に、計画サブシステム220は、異なる、場合によっては低減されたレベルのセンサデータを自律車両管理システム105に通信することに戻るように同じカメラに命令する別の命令を送り得る。このようにして、内部マップを構築するために使用されるセンサデータは、動的に変更され得る。
【0064】
[0072]自律車両管理システム105からセンサによって受信された命令によって引き起こされるセンサの挙動の変更の例は、限定はしないが、センサから自律車両管理システム105に通信されるセンサデータをセンサに低減させるか、さらには遮断させることを含み得る。これは、例えば、自律車両管理システム105によって受信される大量のセンサデータを低減するために行われ得る。上記からの同じ例を使用して、自律車両100のタスクが右折することであることを示す入力を計画サブシステム220が受信した場合、計画サブシステム220は、それが自律車両100の左環境に関して低減されたセンサデータを必要とすると決定し得る。次いで、計画サブシステム220は、低減されるべきであるセンサデータを通信することを担当する1つまたは複数のセンサ(例えば、カメラ)を決定し得る。次いで、計画サブシステム220は、これらの1つまたは複数のセンサから自律車両管理システム105に(例えば、知覚サブシステム215に)通信されるセンサデータの量が低減されるように、これらのセンサにそれらの挙動を変更させるための命令を、これらのセンサに送り得る。一例として、計画サブシステム220から送られた命令は、以下のうちの1つまたは複数を行い得る。(i)センサにその視野を変更させる。例えば、カメラまたはLIDARセンサに、狭いロケーションにズームインさせること、(ii)センサに部分的な情報のみを送らせる。例えば、センサは、センサによってキャプチャされたすべての情報よりも少ない情報を送り得、(iii)センサに、以前よりもまたは通常の速度よりも速くまたは遅く情報を送らせ、(iv)センサをオンにし、あるいは(v)センサに、以前とは異なる解像度または粒度で情報をキャプチャさせ、および/または自律車両管理システム105に送らせる。
【0065】
[0073]上述したように、計画サブシステム220は、アクション計画、またはアクション計画を実行するための命令を制御サブシステム225に送り得る。制御サブシステム225は、自律車両100の推進、制動、ステアリングまたはナビゲーション、および補助挙動(例えば、ライトをオンにする)機能など、自律車両の動きの様々な態様をプログラム的および自律的に制御するための命令/コマンドを、車両システム115に出し得る。制御サブシステム225は、自律車両100が、アクション計画において規定された1つまたは複数の動作を自律的に実施することを可能にする制御および計画アルゴリズムを実装する。いくつかの事例では、制御サブシステム225は、様々な作業現場環境における(例えば、多様なオフロード条件における)ナビゲーション、掘出し、および材料搬送などの様々なアクションまたはタスクを改善する(例えば、不安定性を回避する)ために、安定性制御サブシステム235を利用して自律車両100の運動学的および動的挙動を推定する。安定性制御サブシステム235は、予測モデル化を利用して、様々な作業現場環境における自律車両100の運動学的および動的挙動を推定し得る。次いで、自律車両100の推定された運動学的および動的挙動は、作業現場環境における不安定性を回避しながらアクションまたはタスクの計画を完了するために自律車両100をどのように制御(例えば、加速、ステアリング、制動など)すべきかについて、車両システム115に命令するために使用される。
【0066】
[0074]いくつかの事例では、自律車両100は、最初に、作業現場環境に関係するデータをセンサ110から収集するために、所定の時間量(例えば、20~30分)の間、作業現場環境内で、手動でまたは遠隔制御で動作され得る。その後、訓練プロセス(オンラインまたはオフライン)において、収集されたデータ(例えば、作業現場環境内の車両の入力および実際の性能)を使用して1つまたは複数の予測モデルが訓練され、適合され得る。予測モデル訓練および適合が試験および/または検証されると、訓練された予測モデルは、作業現場環境内の完全自律動作における車両制御のためにライブラリ内に展開され得る。訓練された予測モデルは、車両制御のために計画サブシステム220および制御サブシステム225が使用するために、情報サブシステム230内のライブラリに記憶され得る。その後、自律車両100は、完全自律動作のために作業現場環境内に展開され得る。自律動作(例えば、計画サブシステム220からのタスクの完了)中に、訓練された予測モデルは、制御を継続的に改善し、不安定性を回避するために、リアルタイムで継続して更新され得る。
【0067】
[0075]他の事例では、自律車両100は、実際の動作現場(例えば、作業現場環境)と同様の環境に関する収集されたデータに適合される1つまたは複数のベースラインモデルをロードされ得る。ベースラインモデルは、車両制御のために制御サブシステム225が使用するために、情報サブシステム230のライブラリに記憶され得る。最初に、自律車両100は、完全展開の前にベースラインモデルを使用して作業現場環境の安全ゾーンにおいて自律モードで動作される。データは、安全ゾーン動作中にセンサ110によって収集され(例えば、作業現場環境内の車両の入力および実際の性能)、安全ゾーン動作中にリアルタイムでベースラインモデルを更新するために使用される。したがって、次に、ベースラインモデルは、作業現場環境の実際の条件について訓練されるようになる。訓練された予測モデルは、車両制御のために計画サブシステム220および制御サブシステム225が使用するために、更新され、および/または情報サブシステム230のライブラリに記憶され得る。その後、自律車両100は、完全自律動作のために作業現場環境内に展開され得る。自律動作(例えば、計画サブシステム220からのタスクの完了)中に、訓練された予測モデルは、制御を継続的に改善し、不安定性を回避するために、リアルタイムで継続して更新される。
【0068】
[0076]上記からの同じ例を使用して、自律車両100のタスクが右折することであることを示す入力を計画サブシステム220が受信した場合、計画サブシステム220は、車両が動作している間にセンサ110からリアルタイムデータ(例えば、ジョイスティック制御、または、アクセル、ステアリング角、ブレーキなど、他の制御の位置、ならびに、他の状況および環境関係変数)を取得し得、安定性制御サブシステム235は、そのリアルタイムデータを使用して、所与のまたは決定された作業現場環境についての訓練された予測モデルに基づいて所与のまたは決定された作業現場環境における自律車両100の運動学的および動的挙動を推定し得る。計画サブシステム220および制御サブシステム225は、予測モデルと自律車両100の推定された運動学的および動的挙動とを使用して、不安定性(例えば、方向転換で倒れる、またはスリップする)を回避しながら作業現場環境において右折を実行するのに固有の方法で自律車両を動作させるための、車両システム115のためのコマンドまたは命令を生成し得る。理解されるべきであるように、動作されている自律車両のタイプおよび/または作業現場環境に応じて、自律車両100の運動学的および動的挙動を制御および推定するために、異なる訓練された予測モデルが使用され得る。
【0069】
[0077]本明細書で説明される1つまたは複数の実施形態は、プログラマチックモジュール、エンジン、または構成要素を使用して実装され得る。プログラマチックモジュール、エンジン、または構成要素は、プログラム、サブルーチン、プログラムの一部、または1つまたは複数の記載されたタスクもしくは機能を実施することが可能なソフトウェア構成要素もしくはハードウェア構成要素を含むことができる。本明細書で使用されるモジュールまたは構成要素は、他のモジュールまたは構成要素から独立して、ハードウェア構成要素上に存在することができる。代替的に、モジュールまたは構成要素は、他のモジュール、プログラムまたは機械の共有要素またはプロセスであり得る。
図2Bは、いくつかの実施形態による、自律車両管理システム105の様々なサブシステムを実装するために使用され得るモジュール、エンジン、または構成要素(例えば、自律車両100の1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令)を示す。モジュール、エンジン、または構成要素は、非一時的コンピュータ媒体に記憶され得る。必要に応じて、モジュール、エンジン、または構成要素のうちの1つまたは複数は、システムメモリ(例えば、RAM)にロードされ、自律車両100の1つまたは複数のプロセッサによって実行され得る。
図2Bに示されている例では、位置特定サブシステム210、知覚サブシステム215、計画サブシステム220、および制御サブシステム225を実装するためのモジュール、エンジン、または構成要素が示されている。
【0070】
[0078]
図4は、(計画サブシステム220、制御サブシステム225、および
図2Aに関して説明されたように)自律車両を制御するためのアクション計画を生成および実行するために使用され得る例示的なタスク階層400を示す。
図4に示されているように、第1のタスク(例えば、タスク(1)-掘削機を使用して現場アルファにおいて材料の堆積を第1のロケーションから第2のロケーションに移動させる)は、タスク階層における5つのサブタスク(サブタスク(a)、(b)、(c)、(d)、および(e))に分けられ得る。例えば、サブタスク(a)は、第1のロケーションにおいて材料の堆積の一部を拾い上げることであり得る。サブタスク(a)はそれ自体のサブタスクにさらに分けられ得、サブタスク(b)は第1のロケーションにおいて材料の堆積に接近し、サブタスク(c)はバケットを使用して材料の堆積の一部を拾い上げる。サブタスク(d)は、掘削機を第1のロケーションから第2のロケーションに運転することであり得る。サブタスク(e)は、第2のロケーションにおいて材料の堆積の一部をダンプすることであり得る。各サブタスク(b)、(c)、(d)、および(e)は、各サブタスク(a)、(b)、(c)、(d)、および(e)に関連付けられたタスクコンテキストを合わせて考慮する、それに関連付けられた1つまたは複数の変数を有する(例えば、変数(i)、(ii)、および(iii)が、サブタスク(a)および(b)に関連付けられたタスクコンテキストを、合わせて考慮する)。例示的な変数は、接近角、道路の勾配、環境条件、障害物などの現場情報、材料の堆積の形状、材料のタイプなどであり得る。
【0071】
[0079]
図4に示されているように、様々な予測モデル(モデル(A)、(B)、(C)、(D)、(E)、(F)、(G)、(H)、(I))の各ライブラリ(ライブラリ(I)、(II)、(III)、および(IV))は、各サブタスク(b)、(c)、(d)、および(e)に関連付けられる。サブタスクおよびタスクコンテキストの各組合せについて、現在のタスクコンテキストを仮定すれば、サブタスクを実施するための最もマッチする(すなわち、タスクコンテキストと一致する特徴または変数に基づいて訓練/学習される)予測モデルがある。例えば、変数(i)、(ii)、および(iii)が、それぞれ、材料の堆積の形状、接近角、および現場環境条件を対象とすることを考える。モデル(A)は、円錐形の材料の堆積、45°未満の接近角、および乾燥条件と一致する特徴または変数を有する訓練データに基づいて訓練/学習され得、モデル(B)は、円錐形の材料の堆積、15°未満の接近角、および湿潤条件と一致する特徴または変数を有する訓練データに基づいて訓練/学習され得、モデル(C)は、ボックス形の材料の堆積、15°未満の接近角、および乾燥条件と一致する特徴または変数を有する訓練データに基づいて訓練/学習され得る。
【0072】
[0080]タスクおよびサブタスクのためのタスク階層400は、事前マッピング(例えば、ユーザまたは管理者によって作成)される。タスク(1)を割り当てられた自律車両のコントローラシステムは、事前マッピングから、タスク(1)を完了するために必要なサブタスク(a)、(b)、(c)、(d)、および(e)のすべてを決定することができる。その上、コントローラシステムは、事前マッピングおよび決定されたサブタスクから、自律車両を制御するためのアクション計画を作成することができる。アクション計画を作成することは、実施されるべき各サブタスクについて、コントローラシステムは、センサから情報(例えば、現場の画像、車両のステアリング角、道路の勾配、天候、現場の名称など)を取得し、サブタスクに関連付けられた現在のタスクコンテキストを決定する(例えば、サブタスク(b)について、コントローラシステムは、掘削機が湿潤条件で5°の角度において円錐形の材料の堆積に接近していると決定し得る)を含み得る。コントローラシステムは、各サブタスクに関連付けられた予測モデルのライブラリ(例えば、サブタスク(b)のためのライブラリ(I))を識別し、決定された現在のタスクコンテキストに基づいて、識別されたライブラリ(例えば、ライブラリ(I))から1つまたは複数の予測モデル(例えば、モデル(B))を識別する。したがって、サブタスクおよびタスクコンテキストの各組合せについて、現在のタスクコンテキストを仮定すれば、サブタスクを実施するための最もマッチする(すなわち、タスクコンテキストと一致する特徴または変数に基づいて訓練/学習される)予測モデルがある。コントローラシステムは、識別された1つまたは複数の予測モデルを使用して、サブタスク(a)、(b)、(c)、(d)、および(e)の各々ならびに最終的にタスク(1)を達成するためにアクション計画を生成し、更新する。例えば、いくつかの実施形態では、コントローラシステムは、自律車両の自律動作を制御し、それに応じてアクション計画を更新するために実施されるべき選ばれたアクションのために、RLを使用して訓練された1つまたは複数のモデルを使用し得る。1つまたは複数のRLモデルは、それらのカバレッジ(例えば、タスクコンテキストの範囲)および精度を高めるために周期的に更新され得る。
【0073】
[0081]
図5は、自律車両を制御するためのアクション計画を生成および実行するための機械学習モデル化システム500の態様を示すブロック図を示す。
図5に示されているように、この例における機械学習モデル化システム500によって実施される予測は、いくつかの段階、すなわち、予測モデル訓練段階505、アクション予測段階510、および予測モデル更新段階515を含む。予測モデル訓練段階505は、(本明細書では、個々に予測モデル520と呼ばれるか、またはまとめて予測モデル520と呼ばれ得る)他の段階によって使用されるべき1つまたは複数の予測モデル520a~520n(「n」は任意の自然数を表す)を構築し、訓練する。例えば、予測モデル520は、建設、鉱業、製造、倉庫保管、物流、仕分け、包装、農業など、様々な産業に適用可能な様々な作業現場環境において自律車両を制御するための1つまたは複数の強化学習(RL)予測モデルを含むことができる。強化学習は、自律機器が連続的な意思決定タスクを学習することを可能にする。
【0074】
[0082]大きい領域にわたって軽く広げられた材料を含む実施形態を考慮し、ここで、材料は、スキッドステアローダ、掘削機、油圧ショベル、コンパクトトラックローダ、ホイールローダ、バックホウ、ブルドーザ、ローダ、掻き寄せ機など、自律機器によってすくい上げられる必要がある。そのような機器を使用して材料をすくい上げる場合、すくい上げアクションは、より長いすくい上げの動き、より多くのすくい上げ回数を必要とするか、または、より効果的であり得る、直線的なバケット降下の動きおよびそれに続くリフトバケットを必要とし得る。より高い土の堆積を伴う、さらなる実施形態では、極めて短いすくい上げアクションが、バケットを効率的に充填することができる。この例では、入力状態空間P(st)は、(i)シーン中の固定位置に対する機械位置、(ii)セグメント化された土の堆積の固定ロケーションからのLiDAR/3D点群データ(例えば、3D点データから構成される大きいデータセット)、(iii)バケット位置に関する画像/LiDAR点群データ、(iv)画像/LiDAR点群データから抽出されたバケット情報に関する、充填レベルを伴う、バケットが充填されているか否か、(v)タスク中のバケットの角度関節位置であって、角度位置が、バケットの角度に対するアームの相対角度であり得るか、またはベースフレームの既知の姿勢に対する絶対角度であり得る、角度関節位置、および/あるいは、すくい上げられるかまたは輸送されている間に地面または経路上にこぼれた土の情報から構成され得る。
【0075】
[0083]入力状態空間に基づいて、場合によっては機器によって実行される、RL予測モデルからのアクション推奨が、(ポリシーとしても知られる)アクションシーケンス、π(at|st)によって与えられ、ここで、1つまたは複数のアクションは、移動コントローラモジュールへの移動コマンド、バケット/アームコントローラへのバケットレベルコマンドなどを含む。この事例では、すくい上げ報酬関数r(at,st)は、すくい上げられる場所がそのサイズを低減するにつれて増加する電位/エネルギーベース関数であり、すなわち、すくい上げられるように残された材料の量が少ないほど、報酬は高くなる。このエピソードが終了するのにかかる時間は、負の報酬であるため、RL予測モデルは、タスクを完了するために最低または最小数のステップで土をすくい上げることを学習する。
【0076】
[0084]いくつかの実施形態では、RL予測モデルの訓練は、シミュレートされた環境においてシミュレータを使用して実現され得る。シミュレートされた環境を含むシミュレータと、現実の物理的環境を含む現実のシステムとは、画像セグメント化モジュールを通過する同じ運動学的および画像データ、シミュレートされたセグメント化画像データ、ならびにカメラ画像を使用する。シミュレートされた環境は、様々な学習セットおよびインスタンスを提供するために、環境が様々なパラメータについての変数の大きい範囲および/または程度を含むように構築され得る。RL予測モデルは、予測モデル訓練段階505においてシミュレーションを使用して訓練され得る。シミュレーションは、実行またはエピソードの速度を上げるために構築され得、典型的には、大規模な機械シミュレーションにはx100~x300倍の速度が必要とされる。これは、例えば近位ポリシー最適化ベース方法において、モデルのサンプル効率に基づいて決定され得る。いくつかの実施形態では、実際のデバイス上でRL予測モデルを改良するのは極めて費用がかかる可能性があるので、サンプル効率を低減するために、ノンパラメトリック確率ガウス過程(GP)ベースモデルが使用される。
【0077】
[0085]モデル不確実性は、シミュレートされた環境においてRL予測モデルの訓練が失敗することを引き起こし得る影響である。しかしながら、この影響は、いくつかのドメインランダム化方法によって避けられるか、または緩和され得る。したがって、いくつかの実施形態では、RL予測モデルは、ドメインランダム化を使用してさらに訓練される。ドメインランダム化は、RL予測モデルが環境と相互作用し、知られていない現実世界ダイナミクスを含む変化する環境に適応することを可能にすることによって、RL予測モデルの訓練を容易にする。サンプル効率が極めて高いメタ強化学習を使用して、訓練のさらなる改善が実施され得る。また、シミュレートされた環境は、必ずしも現実世界環境と完全にマッチしないように構築されるが、いくつかの必要な要素、タスク/エージェント/環境に関連する特性、または環境のパラメータがランダム化されるドメインランダム化とともに機能する。これは、エージェントまたは機器が、いくつかの方法を学習し、いくつかの変数をナビゲートして、タスクを実施し、タスクを成功裏に完了することを可能にする。これはまた、エージェント、すなわち自律機器が、現実世界における知られていない変数、パラメータおよび/またはダイナミクスに対処し、タスクを成功して実施することを可能にする。
【0078】
[0086]この方法を採用する利点は、その環境のパラメータ、変数または要素の極めて少量の変動しか扱うことができない従来のRLまたは機械学習アルゴリズムと比較して、この方法のために使用されるアルゴリズムがさらに前進されることに関連付けられる。ドメインランダム化は、アクチュエータ、コントローラおよびセンサ、ならびにセンサ配置が、過酷な環境による一定の変化にある物理機械において重要である。さらに、採掘、建設、農業、倉庫などの環境においてなど、複雑なタスクに適用されるとき、そのような訓練方法は、これらの環境における安全性、生産性、および機器有効性に関連付けられた様々な課題を解決することを提供する。さらに、そのような訓練方法は、これらの環境において様々なタスクに取り組む必要がある機器のフリート全体を訓練する際に使用され得る。さらに、そのような訓練方法は、これらの環境において他の機器、インフラストラクチャまたは人間のオペレータと協調して様々なタスクに取り組む必要がある機器のフリート全体を訓練する際に使用され得る。
【0079】
[0087]別の実施形態では、自律機器は、現場からおよび現場への材料のダンプのタスクを実施し得る。ダンプのさらなる例は、設定された要件に従って材料が整然とダンプされる、材料の統制されたダンプを含む。ダンプの別の例は、自律機器が必要に応じて土手のエッジに接近し、材料をダンプする、エッジダンプを含む。従来のプログラミングまたは事前プログラミングを使用して材料をダンプするタスクは、特にタスクの性質に関連付けられた様々な変数により、複雑で非効率的である。材料がダンプされると、ダンプ場の形状が変化する。例えば、地面にすでに存在する土の堆積にさらなる材料を追加することは、土の堆積の形状動力学を変化させる。土の堆積は、地面上により高く盛られるか、またはより広く広げられる場合があり、あるいは、単に地面上に不均一に分布する場合がある。さらに、次に機械が材料をダンプするとき、機械は、材料の広がり、高さ、および幅を考慮して、それに応じて移動する必要がある。例えば、RL予測モデルの報酬関数は、所望のダンプのプロファイルに比例して設定され得る。所望の形状が円錐である場合、これをサポートしないで行われるいかなるダンプも、負の報酬である。
【0080】
[0088]また別の実施形態では、タスクは、例えば上述したものなど、自律機器を使用して、領域にわたって材料を広げることを含み得る。このタスクは、材料を、均一にまたは領域に沿って必要な勾配に従って広げることを含み得る。この実施形態のさらなる例は、領域にわたって広げられた材料を固めるタスクを含む。これは、材料を、所望の厚さ、密度に、または様々な傾斜プロファイルで所望の勾配厚さに固めることを含み得る。RL予測モデルの訓練は、シミュレートされた環境を提供することによって、シミュレータを使用して実行され得る。したがって、製品の変動性を考慮するために、シミュレートされた環境のドメインが異なるパラメータのための変数の範囲で変更される、ドメインランダム化が行われ得る。これは、エージェントまたは自律機器が、シミュレーションを現実の環境に取り込むことをサポートするために、合成データおよびドメインランダム化を伴う訓練画像セグメント化を用いるものなど、多くの訓練セットを受けることを可能にする。RL予測モデルを訓練するためのセグメント化画像の使用は、前に行われたことが知られている。しかしながら、アクションを実施し、物体と相互作用するために視覚入力を解釈し、表すことは、有色画像が典型的には複雑で雑音が多いため、構造化されていない環境におけるロボットにとって困難である。
【0081】
[0089]さらに、異なる構成をサポートするために大量の訓練データを生成するために、ドメインランダム化も実行され得る。材料特性は、材料粘着性、堆積している材料のタイプ、堆積している材料の異なる形状、重量、密度、粒径、粒径の変動、粘度、およびさらなる粒子特性を介してシミュレートされ得る。高レベルダイナミクス、非接触または平滑化された接触ダイナミクスを伴うものなど、運動学的ベースモデルが、状態をモデル化するために使用される。土が、シミュレーションの変動性の程度を提供するために、多くのランダムな形状の粒子およびさらなる特性でさらにモデル化される。
【0082】
[0090]別の実施形態では、自律機器は、現場において土などの材料を穿孔するかまたは掘り出すタスクを実施し得る。従来のプログラミングまたは事前プログラミングを使用して掘り出すかまたは穿孔するタスクは、特にタスクの性質に関連付けられた様々な変数により、複雑で非効率的である。さらに、穿孔および掘出しのタスクは、自律機器が様々な土壌または材料粘度、密度などと接触することを含む。材料が地面から掘り出されるかまたは穿孔されると、地面の形状が変化する。したがって、次に自律機器がこの現場において材料に接近するとき、機器は、材料の広がり、高さ、および幅を考慮して、それに応じて移動する必要がある。例えば、RL予測モデルの報酬関数は、所望の掘出し跡のプロファイルに比例して設定され得る。所望の形状が、溝、開いた穴または半球形の穴などである場合、これをサポートしないで行われる穿孔または掘出しは、負の報酬である。
【0083】
[0091]様々な実施形態では、これらの実施形態および例において様々な予測モデル520を訓練するために、最初に、平均関数および共分散行列を使用して指定され得るGP事前分布525が生成される。より具体的には、GPは、無限次元多変量ガウス分布と同様であり、ここで、訓練サンプル540のラベル560の任意の集合が、同時ガウス分布される。このGP事前分布525内で、事前知識は、平均関数および共分散行列の選択を通して、予め規定された関数空間530(複雑さを低減するために、可能な関数に課される制約)について、組み込まれ得る。共分散行列は、入力空間において互いに近い値が、互いに近い出力値を生成することを保証する。訓練サンプル540は、入力または観測(独立変数x)およびそれらの出力またはラベル(従属変数y)560から構成され、訓練サンプル540は、訓練、試験、および/または検証サブセットに分割され得る。例えば、各予測モデル520についての訓練サンプル540は、シミュレーションまたは作業現場環境における自律車両の動作に関係する収集されたデータを含む、センサデータを含み得る。本明細書で説明されるように、訓練サンプルは、実施されているタスクまたはサブタスクのタスクコンテキストと一致する特徴または変数を含む。例えば、自律車両のための1つまたは複数のアクションを予測するために利用されるべき予測モデル520の場合、観測は、車両が動作中している間のジョイスティック/アクセルの位置/変位、ステアリング位置/角度、ブレーキの位置/変位、道路仰角、気温、および湿度など、リアルタイムデータを含み得、ラベル560は、自律車両の制御のための観測の結果として達成された作業現場環境における自律車両のヨーレート、車輪速度、ステアリング角、線速度および角速度など、動作情報を含み得る。GP事前分布525から、訓練点および/または試験点の集合は、観測(独立変数x)において評価された共分散行列に対応するエントリを有する共分散行列内で、同時多変量ガウス分布される。いくつかの事例では、ラベル分布と雑音分布とを合計することによって、分布されたガウス雑音がラベル(従属変数y)560に独立して組み込まれ得る。
【0084】
[0092]事前分布525を規定するGPにおける平均関数および共分散行列の形態は、モデル選択中に選定および調整され得る。いくつかの事例では、平均関数は、定数、すなわち、0または訓練サンプル540の平均のいずれかであり得る。共分散行列のいくつかのオプションがあり、いくつかの事例では、共分散行列は、それがカーネルの特性(すなわち、半正定値および対称)に従う限り、多くの形態を有することができる。ある共分散行列は、定数、線形、二乗指数およびMaternカーネル、ならびに複数のカーネルの合成物を含む。例えば、カーネルは、関数の平滑性について符号化する、放射基底関数(RBF)カーネルを有する定数カーネルの合成物であり得る(例えば、空間における入力の類似性は、出力の類似性に対応する)。共分散行列を指定した後に、予測モデル520に対する他の選択肢が指定され得る。例えば、アルファパラメータが、ラベル560上の分布されたガウス雑音の分散として規定され得、定数平均関数、Falseの場合の0、またはTrueの場合の訓練データ平均のいずれかを参照する、正規化パラメータが規定され得る。
【0085】
[0093]平均関数および共分散行列が事前分布525について識別されると、予測モデル520は、訓練サンプル540と適合され、(ハイパーパラメータの最適化を含む)試験され、検証され、最終的に、事前分布525から事後分布535を計算するために使用され得る。本明細書で説明される訓練機構が、主に予測モデル520を訓練することに焦点を当てるが、これらの訓練機構はまた、他のデータセット(例えば、同様の条件を有する作業現場環境からのデータセット)から訓練された既存の予測モデル520を微調整または更新するために利用され得る。例えば、いくつかの場合には、予測モデル520は、同様の条件を有するシミュレーションまたは作業現場環境からの既存の訓練データを使用して事前訓練されていることがある。それらの場合、予測モデル520は、本明細書で説明されるような観測およびラベルを含む訓練サンプル540を使用して再訓練され得る。
【0086】
[0094]予測モデル訓練段階505は、訓練されたアクションモデル555を含む訓練された予測モデル520を出力する。訓練されたアクションモデル555は、1つまたは複数のサブタスクまたはタスクに関連付けられた1つまたは複数のライブラリに割り当てられ得る。いくつかの事例では、訓練されたアクションモデル555は、それについてモデル555が訓練されたタスクコンテキスト(例えば、ジョイスティック/アクセルの位置/変位、ステアリング位置/角度、ブレーキの位置/変位、道路仰角、気温、および湿度)と一致する特徴または変数を識別するデータ(例えば、メタデータ)を含む。訓練されたアクションモデル555は、事後分布535または更新された事後分布545、および新しい観測(x)565に基づいて、出力(y)540についての運動学的および動的挙動予測を生成するなど、アクション予測を生成するために、アクション予測段階510において使用される。例えば、スキッドステア予測および制御では、新しい観測565は、ジョイスティック制御、または他の制御、例えば、アクセル、ステアリング角、ブレーキなどの位置、ならびに、他の状況および環境関係変数を含み得、予測された出力540は、実際の線速度および角速度であり得る。新しい観測(x)565は、予測された出力(y)540を取得するために、事後分布535または更新された事後分布545からサンプリングされ得る。下流プロセスでは、予測された出力(y)540は、自律車両の制御のために使用され得る。
【0087】
[0095]予測モデル更新段階515は、更新された事後分布545を計算し、観測された関心データ点550に基づいて、訓練されたアクションモデル555を更新する。いくつかの事例では、更新された事後分布545を計算するために、データおよび試験観測は、事後分布535から調節される。GP事前分布525はモデル520を訓練するために使用され得るため、更新された事後分布545を計算することは、事後分布535を通して扱いやすく、平均関数および共分散行列によって完全に記述され得る正規分布をもたらす。
【0088】
[0096]機械学習モデル化システム500は、完全に新しい動作表面または変化する動作表面上の車両の自動化を可能にするために、様々な手法を使用して実装され得る。例示的な一手法では、訓練サンプル540のための作業現場環境に関係するデータ(入力および出力データ)を収集するために、車両が、最初に、所定のまたは任意の時間の間、手動でまたは遠隔制御を介して動作され得る。入力データ(観測)は、対応する出力データ(例えば、ラベル560)に関連付けられるか、または、それを用いてラベル付けされ得る。予測モデル訓練段階505は、1つまたは複数のモデル520が適合、試験、および/または検証されるまで、訓練サンプル540を使用して事前分布525を有する1つまたは複数のモデル520を訓練する。いくつかの事例では、予測モデル訓練段階505は、1つまたは複数のモデル520を訓練するために自律車両からオフラインで(例えば、自律車両とは別個のシステムまたはコンピューティングデバイスにおいて)実装される。他の実施形態では、予測モデル訓練段階505は、1つまたは複数のモデル520を訓練し、事後分布535を計算するために、自律車両上で(例えば、自律車両のシステムまたはコンピューティングデバイスにおいて)実装される。
【0089】
[0097]1つまたは複数のモデル520が、適合、試験、および/または検証されると、1つまたは複数のモデル520は、アクション予測段階510における完全自律動作のための事後分布535を有する1つまたは複数の訓練されたアクションモデル555として(例えば、自律車両のシステムまたはコンピューティングデバイスにおいて)展開され得る。自律車両は、作業現場環境において動作され得、動作中に、新しい観測が、事後分布535に基づいて、予測された出力540を生成するために、1つまたは複数の訓練されたアクションモデル555における入力としてアクション予測段階510において使用され得る。進行中の車両の自律動作では、1つまたは複数の訓練されたアクションモデル555は、更新された事後分布545を計算し、最終的に制御を改善するために、選ばれたデータ点550を使用して予測モデル更新段階515においてリアルタイムで継続して更新され得る。
【0090】
[0098]別の例示的な手法では、車両は、実際の作業現場環境と同様の作業現場環境において収集された訓練サンプル540について訓練され、適合されたベースラインモデル(例えば、事前訓練されたアクションモデル555)をロードされ得る。自律車両は、作業現場環境の安全ゾーン(作業現場環境と同様の条件を有するが、車両、人、機械、他の車両などへの害を最小限に抑えるために試験のために確保された領域)において動作され得、動作中に、1つまたは複数の訓練されたアクションモデル555は、(作業現場環境の条件に固有の)更新された事後分布545を計算するために、選ばれたデータ点550を使用して予測モデル更新段階515においてリアルタイムで継続して更新され得る。1つまたは複数の訓練されたアクションモデル555が、作業現場環境の安全ゾーンにおける車両の動作からの観測されたデータで更新されると、運動学的および動的挙動予測段階510における完全自律動作のための更新された事後分布535を有する1つまたは複数のアクションモデル555は、(例えば、自律車両のシステムまたはコンピューティングデバイスにおいて)完全に展開され得る。自律車両は、作業現場環境において動作され得、動作中に、新しい観測が、更新された事後分布535に基づいて、予測された出力540を生成するために、1つまたは複数の訓練されたアクションモデル555における入力として運動学的および動的挙動予測段階510において使用され得る。進行中の車両の自律動作では、1つまたは複数の訓練されたアクションモデル555は、更新された事後分布545を再計算し、最終的に制御を改善するために、選ばれたデータ点550を使用して予測モデル更新段階515においてリアルタイムで継続して更新され得る。
【0091】
[0099]
図6は、様々な実施形態による、自律車両を制御するためのアクション計画を生成および実行するためのプロセス600を示すブロック図である。
図6に示されている処理は、それぞれのシステム、ハードウェア、またはそれらの組合せの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)において実装され得る。ソフトウェアは、非一時的記憶媒体(例えば、メモリデバイス)に記憶され得る。
図6に提示され、以下で説明される方法は、例示的かつ非限定的であることが意図されている。
図6は、特定の順番または順序で行われる様々な処理ステップを示すが、これは、限定を意図するものではない。いくつかの代替実施形態では、ステップは、異なる順序で実施され得、いくつかのステップは省略されるか、または、いくつかのステップは並行して実施される。
図4に示されている実施形態においてなど、いくつかの実施形態では、
図6に示されている処理は、
図2A、
図2B、および
図5に関して説明されたように、訓練システムについて訓練された1つまたは複数の予測モデルを使用してコントローラシステムによって実施され得る。
【0092】
[0100]ステップ605において、1つまたは複数のセンサによって検知されたセンサデータおよび/または他の入力が、自律車両管理システムによって受信される。例えば、センサデータは、GPSセンサ、自律車両に搭載された1つまたは複数のカメラから、LIDARからなど、受信され得る。いくつかの事例では、センサデータは、作業現場環境における自律車両の動作の表現と作業現場環境の状況コンテキストとを提供する。ステップ610において、受信されたセンサデータに対して一貫性チェックが実施され(例えば、一貫性モジュールによって実施され)、一貫性チェックは、受信されたセンサデータに対して合理性チェックおよび欠陥チェックを実施することと、受信されたセンサデータを正規化して、正規化されたセンサデータを生成することとを含む。ステップ615において、ステップ605において受信され、ステップ610において正規化されたセンサデータに基づいて、自律車両管理システムによって、一貫した内部マップが生成され、および/または更新される。いくつかの実施形態では、知覚サブシステムが、センサデータを受信し、内部マップを生成するように構成される。内部マップが前にすでに生成された場合、内部マップを生成することは、新たに受信されたセンサデータに基づいて一貫した内部マップを更新することを含み得る。前述したように、一貫した内部マップは、自律車両の環境の三次元マップであり得る。ステップ615において生成された内部マップは、自律車両の状態と、自律車両の周りの環境の状態とが変化するにつれて、継続的に更新され得る。ステップ615における処理は、一貫した内部マップが最新に保たれることを保証する。
【0093】
[0101]ステップ620において、自律車両管理システムは、ステップ615において生成された内部マップを使用して、自律車両によって達成されるべきタスク、安全上の考慮事項、位置特定情報など、他の入力に基づいて、アクション計画を生成する。いくつかの実施形態では、ステップ620における処理は、自律車両管理システムの計画サブシステムによって実施され得る。計画サブシステムがステップ615において生成された内部マップにアクセスし得る様々な方法がある。1つの事例では、計画サブシステムが内部マップにアクセスし、それを照会することを可能にするアプリケーションプログラミングインターフェース(API)が提供され得る。他の事例では、計画サブシステムが内部マップにアクセスし、それを使用することを可能にする他の機構が提供され得る。
【0094】
[0102]様々な実施形態では、アクション計画を生成することは、作業現場環境において自律車両によって実施されるべきタスクを取得することと、実施されるべき1つまたは複数のサブタスクを決定して、タスクおよび1つまたは複数のサブタスクの事前マッピングに基づいてタスクを実施することとを含む。いくつかの事例では、事前マッピングは、コントローラシステムの管理者またはユーザによって提供される。アクション計画を生成することは、センサデータの第1のセットに基づいて1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第1のタスクコンテキストを決定することをさらに含む。第1のタスクコンテキストは、作業現場環境における自律車両の動作の表現と作業現場環境の状況コンテキストとから、変数の予め規定されたセット(例えば、接近角についての変数、材料の堆積の形状についての変数、道路条件についての変数、材料のタイプについての変数など)を識別し、変数の予め規定されたセットに基づいて第1のタスクコンテキストを規定することによって、決定され得る。
【0095】
[0103]アクション計画を生成することは、第1のサブタスクに関連付けられた第1のタスクコンテキストに基づいて、予測モデルのライブラリから第1の予測モデルを識別することをさらに含む。第1の予測モデルは、第1のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練され(例えば、同様の形状の材料の堆積について、同様の環境条件において、同様の接近角でなど、訓練され)、第1のサブタスクを実施するように学習される。本明細書で使用される、同様は、同一または実質的に同様を意味する。第1の予測モデルは、変数の予め規定されたセットを、予測モデルのライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数と比較することと、比較することに基づいて、予測モデルのライブラリ内の各予測モデルを訓練するために使用される訓練データにおける特徴または変数との、変数の予め規定されたセットの類似性をランク付けすることと、ランク付けすることに基づいて、最も高くランク付けされた予測モデルを選択することとによって識別され得、ここで、この例における最も高くランク付けされた予測モデルは、第1の予測モデルである。いくつかの事例では、各予測モデルを訓練するために使用される訓練データにおける特徴または変数は、各予測モデルに関連付けられたメタデータに記憶される。
【0096】
[0104]理解されるべきであるように、アクション計画を生成するための上記のプロセスは、タスクの1つまたは複数のサブタスクの各々を実施するために1つまたは複数の予測モデルが識別されるまで反復的に繰り返され得る。例えば、作業現場環境における自律車両の動作の別の表現と作業現場環境の状況コンテキストとを提供するセンサデータの第2のセットが取得され得、コントローラシステムは、センサデータの第2のセットに基づいて、1つまたは複数のサブタスクのうちの第2のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、第2のサブタスクに関連付けられた第2のタスクコンテキストに基づいて、予測モデルの別のライブラリから第2の予測モデルを識別することであって、第2の予測モデルが、第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、第2の予測モデルによって、センサデータの第2のセットに基づいて、出力データの第2のセットを推定することと、入力データの第2のセットを使用して第2のサブタスクを実施するために、作業現場環境における自律車両の1つまたは複数の動作を制御することであって、入力データの第2のセットが、センサデータの第2のセットおよび出力データの第2のセットから導出される、制御することとを行い得る。いくつかの事例では、サブタスクのうちの1つまたは複数は、2つ以上の予測モデルを使用して実施され得、したがって、上記のプロセスは、タスクの1つまたは複数のサブタスクの各々を実施するためにすべての予測モデルが識別されるまで、各サブタスクについて反復的に繰り返され得る。その上、予測モデルが所与のサブタスクについて決定可能でない場合、予測モデルは、サブタスクを実施するためのライブラリから最良適合予測モデルを識別するか、または、アクション計画におけるエラーを発するか、または、そのサブタスクについてアクション計画における手動支援を要求し得る。
【0097】
[0105]任意選択のステップ625において、計画サブシステムは、センサの挙動を制御するための命令を1つまたは複数のセンサに送る。例えば、センサによってキャプチャされ、および/またはセンサから自律車両管理システムに通信されるセンサデータは、自律車両管理システムによって動的に、オンデマンドで制御され得る。これにより、自律車両管理システムが変更されたセンサデータを受信し得(ステップ605)、変更されたセンサデータに基づいて内部マップが再生成または更新され得る。これにより、さらに、自律車両を制御するための異なるまたは更新されたアクション計画が生成され得る。
【0098】
[0106]ステップ630において、ステップ620において生成されたアクション計画に基づいて自律車両の挙動が制御される。本明細書で説明されるように、いくつかの実施形態では、計画サブシステムによって生成されたアクション計画は、制御サブシステムに通信され得、制御サブシステムは、次いで、安全な方法でタスクを達成するために自律車両の挙動を制御するように、車両システムの1つまたは複数のシステムを制御し得る。自律車両管理システムは、ステップ620において識別された予測モデルを含む様々なAIおよび深層学習ベースモデルおよび技法を使用して、その処理を実施し、自律車両の挙動を制御する。例えば、AIベース技法(例えば、ベイズモデル)は、センサデータを使用して、自律車両の運動学的および動的挙動を含む自律車両の出力を推定し、自律車両の制御を改善するために、制御サブシステム(例えば、安定性制御サブシステム)によって使用され得る。
【0099】
[0107]様々な実施形態では、アクション計画に従う自律車両の制御は、収集されたデータを取得することと、収集されたデータを使用して、自律車両のための運動学的および動的挙動の出力を推定することとを含み得る。いくつかの事例では、安定性制御サブシステムは、自律動作のために、収集されたデータについて1つまたは複数の予測モデルを訓練し、適合させ、更新する。他の事例では、安定性制御サブシステムは、自律車両の制御を継続的に改善するために、リアルタイムで1つまたは複数の予測モデルを継続して更新する。また他の事例では、安定性制御サブシステムは、自律車両の制御を改善する(例えば、作業現場環境におけるより大きな安定性の)ために、1つまたは複数の予測モデルを使用して新しい入力変数に基づいて出力を予測する。例えば、安定性制御サブシステムは、入力(x1)および関連する出力(y1)のリストを受信し、入力(x1)および関連する出力(y1)について1つまたは複数の予測モデルを訓練し、適合させ、更新し、アクションまたはタスク(例えば、20メートル先で右折する)を実現するために計画サブシステムおよび制御システムが識別した入力の第2のリスト(x2)を受信し、訓練された1つまたは複数の予測モデルを使用して出力(y2)のセットを予測し、(出力(y2)の予測されたセットを使用して制御を実施した結果として受信され得る)入力(x3)および関連する出力(y3)の第3のリストを受信し、入力(x3)および関連する出力(y3)を使用して1つまたは複数の予測モデルを更新し得る。
【0100】
[0108]アクション計画に従う自律車両の制御は、出力(y2)の予測されたセット(例えば、線速度および角速度)を使用して、不安定性を回避する方法で自律車両を制御することをさらに含み得る。いくつかの実施形態では、自律車両の動作は、出力の予測されたセット(y2)に従って修正される。例えば、安定性制御サブシステムは、動作情報を受信し、出力を予測し得る。動作情報は、ヨーレート、車輪速度、ステアリング角、ならびに安定性制御システムによって使用される他の情報など、任意の動作情報を含み得る。安定性制御サブシステムは、車両挙動が安定しているかどうかを決定することができる。いくつかの事例では、車両の安定性は、自律車両の実際の経路および/または(予測された出力に基づく)予測された経路を、意図された経路と比較することによって、決定される。車両挙動が安定していると安定性制御サブシステムが決定した場合、制御は、プログラムされた通りに(例えば、計画サブシステムおよび制御システムによって現在命令されているように)継続する。車両挙動が不安定であると安定性制御サブシステムが決定した場合、安定性制御サブシステムは、ジョイスティック/アクセル、ステアリング、ブレーキなどの位置/変位など、補正された入力データのセットを計算して、自律車両を安定させ、自律車両を意図された経路に戻し得る。いくつかの事例では、安定性制御サブシステムは、補正された入力データの計算されたセットを1つまたは複数の予測モデルに入力して、更新された予測された出力を取得する。その後、安定性制御サブシステムは、自律車両の(更新された予測された出力に基づく)更新された予測された経路を、意図された経路と比較することによって、車両挙動が安定するかどうかを決定することができる。車両挙動が安定すると安定性制御サブシステムが決定した場合、安定性制御サブシステムは、自律車両の動作を修正するために、補正された入力データのセットを計画サブシステム、制御システム、および/または車両システムに送る。車両挙動が依然として不安定であると安定性制御サブシステムが決定した場合、安定性制御サブシステムは補正された入力データのセットを再計算し、プロセスは、自律車両が意図された経路に戻り、自律車両が安定するまで繰り返す。
【0101】
[0109]進行中の車両の自律動作では、ステップ635において、更新された事後分布を再計算し、作業現場環境における車両を制御するための予測を最終的に改善するために、選ばれたデータ点(例えば、新たに観測された独立変数x(入力)および従属変数y(出力))を使用して、1つまたは複数の予測モデルがリアルタイムで継続して更新される。その上、センサデータは、アクション計画を継続して更新し、更新されたタスクコンテキストにより良く適した異なる予測モデルを識別し、作業現場環境における自律車両の動作の変更および/または作業現場環境の状況コンテキストの変更を考慮して、識別された異なる予測モデルを使用して自律車両の制御を最適化するために使用され得る。例えば、作業現場環境における自律車両の動作の別の表現と作業現場環境の状況コンテキストとを提供するセンサデータの第2のセットが取得され得、コントローラシステムは、センサデータの第2のセットに基づいて、1つまたは複数のサブタスクのうちの第1のサブタスクに関連付けられた第2のタスクコンテキストを決定することと、第1のサブタスクに関連付けられた第2のタスクコンテキストに基づいて、予測モデルのライブラリから第2の予測モデルを識別することであって、第2の予測モデルが、第2のタスクコンテキストと一致する特徴または変数を有する訓練データについて訓練される、識別することと、センサデータの第2のセットに基づいて、出力データの第2のセットを推定することと、入力データの第2のセットを使用して第1のサブタスクを実施するために、作業現場環境における自律車両の1つまたは複数の動作を制御することであって、入力データの第2のセットが、センサデータの第2のセットおよび出力データの第2のセットから導出される、制御することとを行い得る。
【0102】
[0110]
図7は、本開示において説明されるシステムおよびサブシステムのうちの1つまたは複数を実装するために、ならびに/あるいは本明細書で説明されるプロセスまたは方法のうちのいずれか1つを実施するために使用され得る例示的なコンピューティングシステム700の簡略ブロック図を示す。例えば、自律車両管理システムがソフトウェアで実装される実施形態では、ソフトウェアは、
図7に示されているコンピューティングシステム700など、コンピューティングシステムによって実行され得る。コンピューティングシステム700は、例えば、プロセッサ、メモリ、ストレージ、およびI/Oデバイス(例えば、モニタ、キーボード、ディスクドライブ、インターネット接続など)を含み得る。いくつかの事例では、コンピューティングシステム700はまた、他の構成要素、回路、または特殊な機能を実行するための他の特殊なハードウェアを含み得る。いくつかの動作設定では、コンピューティングシステム700は、1つまたは複数のユニットを含むシステムとして構成され得、1つまたは複数のユニットの各々が、ソフトウェアのみ、ハードウェアのみ、またはそれらの何らかの組合せのいずれかでプロセスのいくつかの態様を実行するように構成される。コンピューティングシステム700は、様々な機能を果たすために追加のシステムを含むように構成され得る。
【0103】
[0111]
図7中の実施形態に示されているように、コンピューティングシステム700は、1つまたは複数の処理ユニット708と、(システムメモリ710、コンピュータ可読媒体720、およびディスクストレージ716を含む)メモリのセットと、I/Oサブシステム706とを含む。これらの構成要素は、コンピューティングシステム700の様々なシステムおよびサブシステムが意図したように互いに通信するための機構を提供するバスサブシステムを介して、互いに通信可能に結合され得る。バスサブシステムは、メモリバスまたはメモリコントローラ、周辺バス、様々なバスアーキテクチャのいずれかを使用するローカルバスなどを含む、いくつかのタイプのバス構造のいずれかであり得る。いくつかの実施形態では、構成要素706、708および710は、マザーボード704上に配置され得る。
【0104】
[0112]処理ユニット708は、1つまたは複数のプロセッサを含み得る。プロセッサは、シングルまたはマルチコアプロセッサであり得る。処理ユニット708はまた、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)など、カスタマイズされた回路を使用して実装され得る。プロセッサは、システムメモリ710、コンピュータ可読記憶媒体720、またはディスク716など、様々なメモリに記憶された命令(例えば、プログラム、コードなど)を実行するように構成される。プログラムまたはプロセスは、連続的にまたは並行して実行され得る。いくつかの実施形態では、コンピューティングシステム700は、1つまたは複数の仮想マシンを実行する仮想化コンピューティング環境を提供し得る。そのような実施形態では、1つまたは複数のプロセッサまたはプロセッサのコアが、各仮想マシンに割り振られ得る。いくつかの実施形態では、処理ユニット708は、グラフィックスプロセッサ(GPU)、デジタル信号プロセッサ(DSP)など、専用コプロセッサを含み得る。
【0105】
[0113]メモリのセットは、揮発性および不揮発性メモリデバイスを含む1つまたは複数の非一時的メモリデバイスを含むことができる。処理ユニット708の1つまたは複数のプロセッサによって実行されたとき、本明細書で説明される機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、メモリのうちの1つまたは複数に記憶され得る。フラッシュメモリ712も、いくつかの実施形態に含まれ得る。システムメモリ710は、プログラム実行中の命令およびデータの記憶のための揮発性メインランダムアクセスメモリ(RAM)(例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)など)と、固定命令が記憶される不揮発性読取り専用メモリ(ROM)またはフラッシュメモリとを含む、いくつかのメモリを含み得る。いくつかの実装形態では、起動中などにコンピューティングシステム700内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)が、典型的には、ROMに記憶され得る。RAMは、典型的には、処理ユニット708によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。
【0106】
[0114]実行可能コード、プログラム命令、アプリケーション、およびプログラムデータは、システムメモリ710にロードされ、処理ユニット708の1つまたは複数のプロセッサによって実行され得る。1つまたは複数のオペレーティングシステムもシステムメモリ710にロードされ得る。オペレーティングシステムの例は、限定はしないが、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、Linux(登録商標)オペレーティングシステム、および/または、iOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含む。
【0107】
[0115]いくつかの実施形態では、いくつかの実施形態の機能を提供するために使用されるプログラミングモジュールおよび命令、データ構造、ならびに他のデータ(集合的に722)は、コンピュータ可読媒体720に記憶され得る。コンピューティングシステム700に接続されたメディアドライブ718が、コンピュータ可読媒体720から情報を読み取り、および/またはコンピュータ可読媒体720に情報を書き込むために提供され得る。コンピュータ可読媒体720は、磁気ディスクドライブ、CD-ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などの光ディスクドライブ、Zip(登録商標)ドライブ、様々なタイプのメモリカードおよびドライブ(例えば、USBフラッシュドライブ、SDカード)、DVDディスク、デジタルビデオテープ、ソリッドステートドライブ(SSD)など、不揮発性メモリを含み得る。
【0108】
[0116]I/Oサブシステム706は、コンピューティングシステム700に情報を入力するための、および/またはコンピューティングシステム700からもしくはコンピューティングシステム700を介して情報を出力するためのデバイスおよび機構を含み得る。一般に、入力デバイスという用語の使用は、コンピューティングシステム700に情報を入力するためのすべての可能なタイプのデバイスおよび機構を含むことを意図している。入力機構は、例えば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えたオーディオ入力デバイス、マイクロフォン、カメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダなどを含み得る。一般に、出力デバイスという用語の使用は、コンピューティングシステム700からの情報をユーザまたは他のコンピュータに出力するためのすべての可能なタイプのデバイスおよび機構を含むことを意図している。そのような出力デバイスは、オーディオ出力デバイス、プリンタ、スピーカ、ヘッドホン、音声出力デバイスなど、1つまたは複数のタイプのディスプレイ、インジケータライト、または非視覚ディスプレイを含み得る。I/Oサブシステム706はまた、ディスプレイ714など、I/Oサブシステム706の外部の入力および/または出力デバイスへのインターフェースを含み得る。
【0109】
[0117]コンピューティングシステム700は、コンピューティングシステム700が他のコンピュータシステムおよびネットワークと通信する(例えば、データを受信する、データを送る)ためのインターフェースを提供する通信サブシステム724を含み得る。通信サブシステム724は、有線通信プロトコルおよび/または無線通信プロトコルの両方をサポートし得る。例えば、通信サブシステム724は、コンピューティングシステム700が、リモートセンサ、インターネットなどのネットワークなどと通信可能に結合されることを可能にし得る。Wi-Fi、Bluetooth(登録商標)(および/または、短波長無線送信を使用するものを含む短距離にわたってデータを交換するための他の規格)、USB、イーサネット、セルラー、超音波ローカルエリア通信プロトコルなど、様々な異なる通信プロトコルおよびフォーマットが、通信のために使用され得る。
【0110】
[0118]コンピューティングシステム700は、モバイルデバイス(例えば、携帯電話、タブレット、PDAなど)、パーソナルコンピュータ、ワークステーション、または任意の他のデータ処理システムを含む、様々なタイプのうちの1つであり得る。コンピュータおよびネットワークの絶えず変化する性質により、
図7に示されているコンピュータシステム700の説明は、特定の例としてのみ意図されている。
図7に示されているシステムよりも多いまたは少ない構成要素を有する多くの他の構成が可能である。
【0111】
[0118]上記で説明されたプロセスの結果に基づく少なくともいくつかの値は、その後の使用のために保存され得る。さらに、コンピュータによって上記で説明されたプロセスのいずれか1つを実施するための1つまたは複数のコンピュータプログラムを記憶(例えば、有形に具現化)するために、コンピュータ可読媒体が使用され得る。コンピュータプログラムは、例えば、汎用プログラミング言語(例えば、Pascal、C、C++、Java、Python)および/または何らかの特殊な特定用途向け言語(PHP、JavaScript、XML)で書かれ得る。いくつかの実施形態では、例としてJavaScriptが使用されていることに留意されたい。しかしながら、他の実施形態では、別のスクリプト言語および/またはJavaScriptのバリアントも利用され得る。
【0112】
[0119]本開示で説明された特徴、構造、または特性は、1つまたは複数の実施形態において任意の好適な方法で組み合わせられ得る。本明細書の説明では、様々な実施形態の完全な理解を提供するために、プログラミング、ソフトウェアモジュール、ユーザ選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例など、多数の具体的な詳細が提供される。しかしながら、当業者であれば、具体的な詳細のうちの1つまたは複数を用いずに、または他の方法、構成要素、材料などを用いて、特徴が実践され得ることを認識するであろう。他の事例では、新規な態様を不明瞭にすることを回避するために、よく知られている構造、材料、または動作は、詳細に図示または説明されない。
【0113】
[0120]本明細書に含まれる概略フローチャート図は、概して論理フローチャート図として記載される。したがって、示された順序およびラベル付けされたステップは、提示された方法の一実施形態を示す。示された方法の1つまたは複数のステップ、またはその一部と機能、論理、または効果において等価である他のステップおよび方法が考え出され得る。さらに、採用されるフォーマットおよび記号は、方法の論理ステップを説明するために提供され、方法の範囲を限定しないと理解される。様々な矢印タイプおよび線タイプがフローチャート図において採用され得るが、それらは、対応する方法の範囲を限定しないと理解される。実際、方法の論理フローのみを示すために、いくつかの矢印または他のコネクタが使用され得る。例えば、矢印は、示された方法の列挙されたステップ間の未指定の持続時間の待機または監視期間を示し得る。さらに、特定の方法が行われる順序は、示されている対応するステップの順序に厳密に従うことも従わないこともある。
【0114】
[0121]特定の実施形態が説明されたが、様々な修正、変更、代替構造、および等価物が可能である。実施形態は、いくつかの特定のデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作することができる。さらに、いくつかの実施形態は特定の一連のトランザクションおよびステップを使用して説明されたが、これは限定を意図するものではないことが、当業者には明らかである。いくつかのフローチャートは、動作を連続的なプロセスとして説明するが、動作の多くは、並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、図面に含まれていない追加のステップを有し得る。上記で説明された実施形態の様々な特徴および態様は、個別にまたは一緒に使用され得る。
【0115】
[0122]さらに、いくつかの実施形態は、ハードウェアとソフトウェアとの特定の組合せを使用して説明されたが、ハードウェアとソフトウェアとの他の組合せも可能であることを認識されたい。いくつかの実施形態は、ハードウェアのみで、またはソフトウェアのみで、あるいはそれらの組合せを使用して実装され得る。本明細書で説明された様々なプロセスは、任意の組合せで同じプロセッサまたは異なるプロセッサ上で実装され得る。
【0116】
[0123]デバイス、システム、構成要素またはモジュールが、いくつかの動作または機能を実施するように構成されるものとして説明される場合、そのような構成は、例えば、動作を実施するように電子回路を設計することによって、コンピュータ命令もしくはコードを実行すること、または非一時的メモリ媒体に記憶されたコードもしくは命令を実行するようにプログラムされたプロセッサもしくはコアによってなど、動作を実施するようにプログラマブル電子回路(マイクロプロセッサなど)をプログラムすることによって、あるいはそれらの任意の組合せによって、実現され得る。プロセスは、限定はしないがプロセス間通信のための従来の技法を含む様々な技法を使用して通信することができ、プロセスの異なるペアは異なる技法を使用し得るか、またはプロセスの同じペアは異なる時間に異なる技法を使用し得る。
【0117】
[0124]実施形態の完全な理解を提供するために、本開示において具体的な詳細が与えられる。しかしながら、これらの具体的な詳細なしで実施形態が実践され得る。例えば、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、実施形態を不明瞭にすることを回避するために、不必要な詳細なしに示されている。この説明は、例示的な実施形態のみを提供し、他の実施形態の範囲、適用性、または構成を限定することを意図しない。むしろ、実施形態の前述の説明は、様々な実施形態を実装することを可能にする説明を当業者に提供する。要素の機能および配置に様々な変更が加えられ得る。
【0118】
[0125]したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で見られるべきである。しかしながら、特許請求の範囲に記載されたより広い精神および範囲から逸脱することなく、追加、除去、削除、ならびに他の修正および変更が行われ得ることは明らかであろう。したがって、特定の実施形態が説明されたが、これらは限定を意図するものではない。様々な修正および等価物が、以下の特許請求の範囲内にある。
【国際調査報告】