(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-19
(45)【発行日】2024-06-27
(54)【発明の名称】自律車両における運動挙動推定および動的挙動推定のための技術
(51)【国際特許分類】
B60W 50/00 20060101AFI20240620BHJP
B60W 60/00 20200101ALI20240620BHJP
G06T 7/00 20170101ALI20240620BHJP
G08G 1/16 20060101ALI20240620BHJP
H04N 7/18 20060101ALI20240620BHJP
【FI】
B60W50/00
B60W60/00
G06T7/00 350B
G06T7/00 650Z
G08G1/16 C
H04N7/18 K
(21)【出願番号】P 2021533279
(86)(22)【出願日】2019-12-10
(86)【国際出願番号】 US2019065516
(87)【国際公開番号】W WO2020123531
(87)【国際公開日】2020-06-18
【審査請求日】2022-12-07
(32)【優先日】2018-12-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521195032
【氏名又は名称】セーフ エーアイ,インコーポレイテッド
(74)【代理人】
【識別番号】100137969
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】マジュムダール,スディプタ
(72)【発明者】
【氏名】ハルダー,ビブハラジット
【審査官】戸田 耕太郎
(56)【参考文献】
【文献】国際公開第2014/155893(WO,A1)
【文献】米国特許出願公開第2014/0163773(US,A1)
【文献】特開2007-176396(JP,A)
【文献】特開2018-147103(JP,A)
【文献】特開2013-222235(JP,A)
【文献】特開2009-199572(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 50/00
B60W 60/00
G06T 7/00
G08G 1/16
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
自律車両の制御部システムが、作業現場環境での前記自律車両の動作の表現を提供する第1セットのセンサデータを取得することと、
ガウス過程を含む訓練されたモデルが、前記第1セットのセンサデータに基づいて、第1セットの出力データを推定することであって、前記訓練されたモデルの前記ガウス過程が、前記作業現場環境での前記自律車両の前記動作のための従属変数と独立変数との間の関係を定義する1つ以上の関数にわたる事後分布を定義する、推定することと、
前記制御部システムが、第1セットの入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することであって、前記第1セットの入力データが、前記第1セットのセンサデータおよび前記第1セットの出力データから導出される、制御することと、
前記制御部システムが、前記作業現場環境での前記自律車両の前記1つ以上の動作から実際の出力データを取得することと、
前記制御部システムによって、前記第1セットの入力データおよび前記実際の出力データに関する複数のデータ点からデータ点のサブセットを選択することであって、前記データ点のサブセットは、事後分布を計算するために使用される既存のデータ点に対する前記データ点のサブセットの近接性に基づいて選択されることと、
前記制御部システムが、前記第1セットの入力データおよび前記実際の出力データを用いて、前記訓練されたモデルを更新することであって、
前記更新は、更新された事後分を生成するために前記データ点のサブセットを使用して事後分布を再計算することを含み、前記更新された訓練されたモデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる、更新された事後分布を定義する、更新することを含む方法。
【請求項2】
前記制御部システムが、前記作業現場環境における前記自律車両の動作の別の表現を提供する第2セットのセンサデータを取得することと、
前記更新された訓練されたモデルが、前記第2セットのセンサデータに基づいて、第2セットの出力データを推定することであって、前記更新された訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記更新された事後分布を定義する、推定することと、
前記制御部システムが、前記第2セットのセンサデータおよび前記第2セットの出力データに基づいて定義された入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することとをさらに含み、
前記更新することが、前記訓練されたモデルを更新するために前記実際の出力データから新規または追加のデータ点を選択するためのスパース方法を実装することを含む、請求項1に記載の方法。
【請求項3】
前記自律車両を前記作業現場環境で動作させることであって、前記自律車両が手動でまたは遠隔制御を介して動作される、動作させることと、
前記作業現場環境における前記
自律車両を前記動作させることの間に、複数のセンサが、訓練セットのセンサデータを収集することと、
前記訓練されたモデルを生成するために、前記訓練セットのセンサデータを使用してガウス過程を用いてモデルを訓練することであって、前記モデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる事前分布を定義して、前記訓練が、前記訓練セットのセンサデータに基づいて、前記訓練されたモデルの前記1つ以上の関数にわたる前記事後分布を計算することを含む、訓練することとをさらに含む、請求項2に記載の方法。
【請求項4】
ガウス過程を用いるベースラインモデルを前記自律車両に搭載することであって、前記ベースラインモデルが、前記作業現場環境と実質的に類似の別の作業現場環境における前記自律車両の動作中に収集されたセンサデータについて訓練される、搭載することと、
前記制御部システムが、前記作業現場環境の安全ゾーンで前記自律車両を動作させることと、
前記作業現場環境における前記
自律車両を前記動作させることの間に、複数のセンサが、予備セットのセンサデータを収集することと、
前記制御部システムが、前記訓練されたモデルを生成するために、前記予備セットのセンサデータを用いて前記ベースラインモデルを更新することであって、前記訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記事後分布を定義する、更新することとをさらに含む請求項2に記載の方法。
【請求項5】
前記自律車両の位置特定サブシステムが、前記第1セットのセンサデータに対して整合性チェックを実行することと、
前記自律車両の知覚サブシステムが、前記第1セットのセンサデータに基づいて内部地図を生成することであって、前記内部地図が、前記作業現場環境の3次元地図である、生成することと、
前記自律車両の計画サブシステムが、前記内部地図を使用して、前記自律車両によって達成される目標に基づいて動作計画を生成することとをさらに含み、
前記自律車両の前記1つ以上の動作が、前記目標を達成するための前記動作計画に基づいて前記作業現場環境において制御される、請求項1に記載の方法。
【請求項6】
前記第1セットの入力データを使用して、前記作業現場環境における前記自律車両の前記1つ以上の動作を前記制御することが、
前記制御部システムが、車両挙動が不安定であるか否かを決定するために、前記自律車両の、実際の経路および/または予測された経路を意図する経路と比較することと、
前記車両挙動が不安定である場合、前記制御部システムが、前記自律車両を安定化して、前記自律車両を前記意図する経路に戻すために、前記第1セットの入力データを計算することと、
前記訓練されたモデルが、前記第1セットの入力データに基づいて第3セットの出力データを推定することと、
前記制御部システムが、前記第1セットの入力データが前記自律車両を安定化して、前記第3セットの出力データの前記推定に基づいて前記自律車両を前記意図する経路に戻すことを決定することと、
前記制御部システムが、前記第1セットの入力データを使用して、前記作業現場環境での前記自律車両の前記1つ以上の動作を制御するための命令を生成することとを含む、請求項1に記載の方法。
【請求項7】
前記独立変数に、前記自律車両が動作している間の、ジョイスティックまたはアクセルの位置または変位、操舵の位置または角度、ブレーキの位置または変位、道路仰角、気温、湿度、またはそれらの組み合わせが含まれ、前記従属変数に、前記自律車両が動作している間の、線速度、角速度、またはそれらの組み合わせが含まれる、請求項1に記載の方法。
【請求項8】
1つ以上のデータプロセッサと、
前記1つ以上のデータプロセッサ上で実行されると、前記1つ以上のデータプロセッサに動作を実行させる命令を含む非一時的なコンピュータ可読記憶媒体であって、前記動作が、
自律車両の制御部システムが、作業現場環境での前記自律車両の動作の表現を提供する第1セットのセンサデータを取得することと、
ガウス過程を含む訓練されたモデルが、前記第1セットのセンサデータに基づく第1セットの出力データを推定することであって、前記訓練されたモデルの前記ガウス過程が、前記作業現場環境での前記自律車両の前記動作のための従属変数と独立変数との間の関係を定義する1つ以上の関数にわたる事後分布を定義することと、
前記制御部システムが、第1セットの入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することであって、前記第1セットの入力データが、前記第1セットのセンサデータおよび前記第1セットの出力データから導出される、制御することと、
前記制御部システムが、前記作業現場環境での前記自律車両の前記1つ以上の動作から実際の出力データを取得することと、
前記制御部システムによって、前記第1セットの入力データおよび前記実際の出力データに関する複数のデータ点からデータ点のサブセットを選択することであって、前記データ点のサブセットは、事後分布を計算するために使用される既存のデータ点に対する前記データ点のサブセットの近接性に基づいて選択されることと、
前記制御部システムが、前記第1セットの入力データと前記実際の出力データを用いて、前記訓練されたモデルを更新することであって、
前記更新は、更新された事後分布を生成するために前記データ点のサブセットを使用して事後分布を再計算することを含み、前記更新された訓練されたモデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる、更新された事後分布を定義する、更新することを含む非一時的なコンピュータ可読記憶媒体とを備えるシステム。
【請求項9】
前記動作が、
前記制御部システムが、前記作業現場環境における前記自律車両の動作の別の表現を提供する第2セットのセンサデータを取得することと、
前記更新された訓練されたモデルが、前記第2セットのセンサデータに基づいて第2セットの出力データを推定することであって、前記更新された訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記更新された事後分布を定義する、推定することと、
前記制御部システムが、前記第2セットのセンサデータおよび前記第2セットの出力データに基づいて定義された入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することとをさらに含み、
前記更新することが、前記訓練されたモデルを更新するために前記実際の出力データから新規または追加のデータ点を選択するためのスパース方法を実装することを含む、請求項8に記載のシステム。
【請求項10】
前記動作が、
前記自律車両を前記作業現場環境で動作させることであって、前記自律車両が、手動または遠隔制御を介して動作される、動作させることと、
前記作業現場環境における前記
自律車両を前記動作させることの間に、複数のセンサが、訓練セットのセンサデータを収集することと、
前記訓練されたモデルを生成するために、前記訓練セットのセンサデータを使用してガウス過程を用いてモデルを訓練することであって、前記モデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる事前分布を定義して、前記訓練が、前記訓練セットのセンサデータに基づいて、前記訓練されたモデルの前記1つ以上の関数にわたる前記事後分布を計算することを含む、訓練することとをさらに含む、請求項9に記載のシステム。
【請求項11】
前記動作が、
ガウス過程を有するベースラインモデルを前記自律車両に搭載することであって、前記ベースラインモデルが、前記作業現場環境と実質的に類似の別の作業現場環境における前記自律車両の動作中に収集されたセンサデータについて訓練される、搭載することと、
前記制御部システムが、前記作業現場環境の安全ゾーンにおいて前記自律車両を動作させることと、
前記作業現場環境における前記
自律車両を前記動作させる間に、複数のセンサが、予備セットのセンサデータを収集することと、
前記制御部システムが、前記訓練されたモデルを生成するために、前記予備セットのセンサデータを用いて前記ベースラインモデルを更新することであって、前記訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記事後分布を定義する、更新することとをさらに含む、請求項9に記載のシステム。
【請求項12】
前記動作が、
前記自律車両の位置特定サブシステムが、前記第1セットのセンサデータに対して整合性チェックを実行することと、
前記自律車両の知覚サブシステムが、前記第1セットのセンサデータに基づいて内部地図を生成することであって、前記内部地図が前記作業現場環境の3次元地図である、生成することと、
前記自律車両の計画サブシステムが、前記内部地図を使用して、前記自律車両によって達成される目標に基づいて動作計画を生成することとをさらに含み、
前記自律車両の前記1つ以上の動作が、前記目標を達成するための前記動作計画に基づいて前記作業現場環境において制御される、請求項8に記載のシステム。
【請求項13】
前記第1セットの入力データを使用して、前記作業現場環境における前記自律車両の前記1つ以上の動作を前記制御することが、
前記制御部システムが、車両挙動が不安定であるか否かを決定するために、前記自律車両の、実際の経路および/または予測された経路を意図する経路と比較することと、
前記車両挙動が不安定である場合、前記制御部システムが、前記自律車両を安定化して、前記自律車両を前記意図する経路に戻すために、前記第1セットの入力データを計算することと、
前記訓練されたモデルが、前記第1セットの入力データに基づいて第3セットの出力データを推定することと、
前記制御部システムが、前記第1セットの入力データが前記自律車両を安定化して、第3セットの出力データの前記推定に基づいて前記自律車両を前記意図する経路に戻すことを決定することと、
前記制御部システムが、前記第1セットの入力データを使用して、前記作業現場環境での前記自律車両の前記1つ以上の動作を制御するための命令を生成することとを含む、請求項8に記載のシステム。
【請求項14】
前記独立変数に、前記自律車両が動作している間の、ジョイスティックまたはアクセルの位置または変位、操舵の位置または角度、ブレーキの位置または変位、道路仰角、気温、湿度、またはそれらの組み合わせが含まれ、前記従属変数に、前記自律車両が動作している間の、線速度、角速度、またはそれらの組み合わせが含まれる、請求項8に記載のシステム。
【請求項15】
1つ以上のデータプロセッサに動作を実行させるように構成された命令を含む、非一時的な機械可読記憶媒体に
格納されたコンピュータプログラムであって、前記動作が、
自律車両の制御部システムが、作業現場環境での前記自律車両の動作の表現を提供する第1セットのセンサデータを取得することと、
ガウス過程を含む訓練されたモデルが、前記第1セットのセンサデータに基づいて、第1セットの出力データを推定することであって、前記訓練されたモデルの前記ガウス過程が、前記作業現場環境での前記自律車両の動作のための従属変数と独立変数との間の関係を定義する1つ以上の関数にわたる事後分布を定義する、推定することと、
前記制御部システムが、前記第1セットの入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することであって、前記第1セットの入力データが、前記第1セットのセンサデータおよび前記第1セットの出力データから導出される、制御することと、
前記制御部システムが、前記作業現場環境での前記自律車両の前記1つ以上の動作から実際の出力データを取得することと、
前記制御部システムによって、前記第1セットの入力データおよび前記実際の出力データに関する複数のデータ点からデータ点のサブセットを選択することであって、前記データ点のサブセットは、事後分布を計算するために使用される既存のデータ点に対する前記データ点のサブセットの近接性に基づいて選択されることと、
前記制御部システムが、前記第1セットの入力データおよび前記実際の出力データを用いて、前記訓練されたモデルを更新することであって、
前記更新は、更新された事後分布を生成するために前記データ点のサブセットを使用して事後分布を再計算することを含み、前記更新された訓練されたモデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる、更新された事後分布を定義する、更新することを含む、
コンピュータプログラム。
【請求項16】
前記動作が、
前記制御部システムが、前記作業現場環境における前記自律車両の動作の別の表現を提供する第2セットのセンサデータを取得することと、
前記更新された訓練されたモデルが、前記第2セットのセンサデータに基づいて第2セットの出力データを推定することであって、前記更新された訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記更新された事後分布を定義する、推定することと、
前記制御部システムが、前記第2セットのセンサデータおよび前記第2セットの出力データに基づいて定義された入力データを使用して、前記作業現場環境における前記自律車両の1つ以上の動作を制御することと、
前記更新することが、前記訓練されたモデルを更新するために前記実際の出力データから新規または追加のデータ点を選択するためのスパース方法を実装することをさらに含む、請求項15に記載の
コンピュータプログラム。
【請求項17】
前記動作が、
前記自律車両を前記作業現場環境で動作させることであって、前記自律車両が手動または遠隔制御を介して動作される、動作させることと、
前記作業現場環境における前記
自律車両を前記動作させることの間に、複数のセンサが、訓練セットのセンサデータを収集することと、
前記訓練されたモデルを生成するために前記訓練セットのセンサデータを使用してガウス過程を用いてモデルを訓練することであって、前記モデルの前記ガウス過程が、前記作業現場環境における前記自律車両の前記動作のための前記従属変数と前記独立変数との間の前記関係を定義する前記1つ以上の関数にわたる事前分布を定義して、前記訓練が、前記訓練セットのセンサデータに基づいて、前記訓練されたモデルの前記1つ以上の関数にわたる前記事後分布を計算することを含む、訓練することとをさらに含む、請求項16に記載の
コンピュータプログラム。
【請求項18】
前記動作が、
ガウス過程を用いるベースラインモデルを前記自律車両に搭載することであって、前記ベースラインモデルが、前記作業現場環境と実質的に類似の別の作業現場環境における前記自律車両の動作中に収集されたセンサデータについて訓練される、搭載することと、
前記制御部システムが、前記作業現場環境の安全ゾーンで前記自律車両を動作させることと、
前記作業現場環境における前記
自律車両の動作中に、複数のセンサによって、予備セットのセンサデータを収集することと、
前記制御部システムが、前記訓練されたモデルを生成するために、前記予備セットのセンサデータを用いて前記ベースラインモデルを更新することであって、前記訓練されたモデルの前記ガウス過程が、前記1つ以上の関数にわたる前記事後分布を定義する、更新することとをさらに含む、請求項16に記載の
コンピュータプログラム。
【請求項19】
前記動作が、
前記自律車両の位置特定サブシステムが、前記第1セットのセンサデータに対して整合性チェックを実行することと、
前記自律車両の知覚サブシステムが、前記第1セットのセンサデータに基づいて内部地図を生成することであって、前記内部地図が前記作業現場環境の3次元地図である、生成することと、前記自律車両の計画サブシステムが、前記内部地図を使用して、前記自律車両によって達成される目標に基づいて、動作計画を生成することとをさらに含み、
前記自律車両の前記1つ以上の動作が、前記目標を達成するための前記動作計画に基づいて前記作業現場環境において制御される、請求項15に記載の
コンピュータプログラム。
【請求項20】
前記第1セットの入力データを使用して、前記作業現場環境における前記自律車両の前記1つ以上の動作を前記制御することが、
車両挙動が不安定であるか否かを決定するために、前記制御部システムが、前記自律車両の、実際の経路および/または予測された経路を意図する経路と比較することと、
前記車両挙動が不安定である場合、前記制御部システムが、前記自律車両を安定化して、前記自律車両を前記意図する経路に戻すために、前記第1セットの入力データを計算することと、
前記訓練されたモデルが、前記第1セットの入力データに基づいて
第3セットの出力データを推定することと、
前記制御部システムが、前記第1セットの入力データが前記自律車両を安定化して、前記第3セットの出力データの前記推定に基づいて自律車両を意図する経路に戻すことを決定することと、
前記制御部システムが、前記第1セットの入力データを使用して、前記作業現場環境での前記自律車両の前記1つ以上の動作を制御するための命令を生成することとを含む、請求項15に記載の
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]関連出願の相互参照
本出願は、2018年12月11日に出願された米国仮特許出願第62/778,064号「Methods And Systems Of Estimating Heavy Equipment Kinematics And Dynamic Behavior To Improve Digging And Material Carrying Task」の利益および優先権を主張して、その内容はすべての目的のためにその全体が参照により本明細書に組み込まれる。
【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つ以上の関数にわたる、更新された事後分布を定義する、更新することを含むコンピュータ実装方法を提供する。
【0009】
[0009]いくつかの実施形態では、本方法は、制御部システムが、作業現場環境における自律車両の動作の別の表現を提供するセンサデータの第2の組を取得することと、更新された訓練されたモデルが、センサデータの第2の組に基づいて、出力データの第2の組を推定することであって、更新された訓練されたモデルのガウス過程が、1つ以上の関数にわたる更新された事後分布を定義する、推定することと、制御部システムが、センサデータの第2の組および出力データの第2の組に基づいて定義された入力データを使用して、作業現場環境における自律車両の1つ以上の動作を制御することとをさらに含み、更新することが、訓練されたモデルを更新するために実際の出力データから新規または追加のデータ点を選択するためのスパース方法を実装することを含む。
【0010】
[0010]いくつかの実施形態では、本方法は、自律車両を作業現場環境で動作させることであって、自律車両が手動でまたは遠隔制御を介して動作される、動作させることと、作業現場環境における車両を動作させることの間に、複数のセンサが、センサデータの訓練の組を収集することと、訓練されたモデルを生成するために、センサデータの訓練の組を使用してガウス過程を用いてモデルを訓練することであって、モデルのガウス過程が、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を定義する1つ以上の関数にわたる事前分布を定義して、訓練が、センサデータの訓練の組に基づいて、訓練されたモデルの1つ以上の関数にわたる事後分布を計算することを含む、訓練することとをさらに含む。
【0011】
[0011]いくつかの実施形態では、本方法は、ガウス過程を用いるベースラインモデルを自律車両に搭載することであって、ベースラインモデルが、作業現場環境と実質的に類似の別の作業現場環境における自律車両の動作中に収集されたセンサデータについて訓練される、搭載することと、制御部システムが、作業現場環境の安全ゾーンで自律車両を動作させることと、作業現場環境における車両を動作させることの間に、複数のセンサが、センサデータの予備の組を収集することと、制御部システムが、訓練されたモデルを生成するために、センサデータの予備の組を用いてベースラインモデルを更新することであって、訓練されたモデルのガウス過程が、1つ以上の関数にわたる事後分布を定義する、更新することとをさらに含む。
【0012】
[0012]いくつかの実施形態では、本方法は、自律車両の位置特定サブシステムが、センサデータの第1の組に対して整合性チェックを実行することと、自律車両の知覚サブシステムが、センサデータの第1の組に基づいて内部地図を生成することであって、内部地図が、作業現場環境の3次元地図である、生成することと、自律車両の計画サブシステムが、内部地図を使用し、自律車両によって達成される目標に基づいて動作計画を生成することとをさらに含み、自律車両の1つ以上の動作が、目標を達成するための動作計画に基づいて作業現場環境において制御される。
【0013】
[0013]いくつかの実施形態では、入力データの第1の組を使用して、作業現場環境における自律車両の1つ以上の動作を、制御することが、車両挙動が不安定であるか否かを決定するために、制御部システムが、自律車両の、実際の経路および/または予測された経路を意図する経路と比較することと、
車両挙動が不安定である場合、制御部システムが、自律車両を安定化して、自律車両を意図する経路に戻すために、入力データの第1の組を計算することと、訓練されたモデルが、入力データの第1の組に基づいて出力データの第3の組を推定することと、制御部システムが、入力データの第1の組が自律車両を安定化して、出力データの第3の組の推定に基づいて自律車両を意図する経路に戻すことを決定することと、制御部システムが、入力データの第1の組を使用して、作業現場環境での自律車両の1つ以上の動作を制御するための命令を生成することとを含む。
【0014】
[0014]いくつかの実施形態では、独立変数に、自律車両が動作している間の、ジョイスティックまたはアクセルの位置または変位、操舵の位置または角度、ブレーキの位置または変位、道路仰角、気温、湿度、またはそれらの組み合わせが含まれ、従属変数に、自律車両が動作している間の、線速度、角速度、またはそれらの組み合わせが含まれる。
【0015】
[0015]いくつかの実施形態では、1つ以上のデータプロセッサと、1つ以上のデータプロセッサ上で実行されると、本明細書に開示する1つ以上のデータプロセッサに1つ以上の方法または1つ以上のプロセスの、一部またはすべてを実行させる命令を含む非一時的なコンピュータ可読記憶媒体とを含むシステムを提供する。
【0016】
[0016]いくつかの実施形態では、1つ以上のデータプロセッサに、本明細書に開示する1つ以上の方法の一部またはすべてを実行させるように構成された命令を含む、非一時的な機械可読記憶媒体に有形に実施されたコンピュータプログラム製品を提供する。
【0017】
[0017]本開示のいくつかの実施形態は、1つ以上のデータプロセッサを含むシステムを含む。いくつかの実施形態では、システムは、1つ以上のデータプロセッサ上で実行されると、1つ以上のデータプロセッサに、本明細書に開示する、1つ以上の方法の一部もしくはすべて、および/または1つ以上のプロセスの一部またはすべてを実行させる命令を含む非一時的コンピュータ可読記憶媒体を含む。本開示のいくつかの実施形態は、1つ以上のデータプロセッサに、本明細書に開示する、1つ以上の方法の一部もしくはすべて、および/または1つ以上のプロセスの一部またはすべてを実行させるように構成された命令を含む、非一時的な機械可読記憶媒体で有形に実施されたコンピュータプログラム製品を含む。
【0018】
[0018]使用される用語および表現は、限定の用語ではなく説明の用語として使用され、このような用語および表現の使用において、示して説明する特徴またはその一部の均等物を除外する意図はないが、特許請求される実施形態の範囲内で様々な修正が可能であることが認識される。したがって、特定の実施形態が開示されているが、他の実施形態ならびに本明細書に開示する概念の任意の特徴、修正および変形は、当業者によって使用されてもよく、このような修正および変形は、添付の特許請求の範囲によって定義される範囲内にあると見なされることを理解されたい。
【0019】
[0019]本開示は、添付の図面と併せて以下の説明を参照することによって最もよく理解することができ、添付の図面では、同様の部分を同様の符号で参照することができる。
【図面の簡単な説明】
【0020】
【
図1A】様々な実施形態による、制御部システム(本明細書では自律車両管理システム(AVMS)と呼ばれる)を組み込んだ自律車両の高レベルの簡略化されたブロック図である。
【
図1B】様々な実施形態による、主にソフトウェアで実装された例示的な自律車両管理システムを示す図である。
【
図2A】様々な実施形態による、自律車両管理システムのサブシステムを示す簡略化されたブロック図である。
【
図2B】様々な実施形態による、自律車両管理システムの様々なサブシステムを実装するために使用してもよいソフトウェアモジュール(例えば、自律機械の1つ以上のプロセッサによって実行可能なプログラム、コード、または命令)を示す図である。
【
図3】様々な実施形態による、自律機械の例示的なセンサの組を示す図である。
【
図4】様々な実施形態による、自律車両における安定性制御サブシステムの簡略化されたブロック図である。
【
図5】様々な実施形態による、自律車両のナビゲーション、掘削、および材料搬送タスクを改善するために、運動挙動および動的挙動を推定するための機械学習モデリングシステムを示す図である。
【
図6A】様々な実施形態による、観測されたデータとの1つ以上の訓練されたモデルの適合を示す図である。
【
図6B】様々な実施形態による、観測されたデータとの1つ以上の訓練されたモデルの適合を示す図である。
【
図7】様々な実施形態による、自律車両の運動挙動および動的挙動を推定するために、機械学習モデルを実装するための例示的な方法を示す簡略化されたブロック図である。
【
図8】様々な実施形態による、自律車両に動的安定性制御を提供するためのプロセスを示すフローチャートである。
【
図9】様々な実施形態による、予測モデルのリアルタイム更新のためのプロセスを示すフローチャートである。
【
図10】様々な実施形態による、予測モデルのリアルタイム更新のための代替プロセスを示すフローチャートである。
【
図11】本開示で説明するシステムおよびサブシステムのうちの1つ以上を実装するために、および/または本明細書で説明するプロセスもしくは方法のいずれかを実行するために使用することができる例示的なコンピュータシステムの簡略化されたブロック図である。
【発明を実施するための形態】
【0021】
[0033]以下で、本開示の例示的な例および例示的な実施形態を図面に基づいて詳細に説明して、図面は、当業者が本開示を実施することが可能になるように例示的な例として提供される。特に、以下の図および例は、本開示の範囲を単一の実施形態に限定することを意味するものではなく、説明または図示する要素の一部または全部の交換または組み合わせによって他の実施形態が可能である。便宜上、同じまたは類似の部分を参照するために図面全体を通して同じ符号が使用される。以下の説明では、説明の目的のために、特定の発明の実施形態の完全な理解を提供するために特定の詳細を示す。しかしながら、これらの特定の詳細なしで様々な実施形態を実施できることは明らかであろう。図面および説明は、限定することを意図するものではない。「例示的」という用語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。本明細書で「例示的」として説明する、任意の実施形態または設計は、他の実施形態または設計よりも好ましいまたは有利であると、必ずしも解釈されるべきではない。これらの実装形態の特定の要素が既知の構成要素を使用して部分的または完全に実装されてもよい場合、本開示の理解に必要なこのような既知の構成要素の部分のみが説明され、このような既知の構成要素の他の部分の詳細な説明は、本開示を不明瞭にしないように省略される。
【0022】
[0034]本開示は、概して、様々なタスクを実行するための重機または車両の自律動作に関し、より詳細には、自律重機または自律車両によって実行されるナビゲーション、掘削、および材料などのタスクの性能を改善するための、自律重機または自律車両の運動推定および動的挙動推定のための技術に関する。従来の重機または車両は、主に不安定な作業面または可変の作業面に起因して、動的安定性制御が不十分であるという問題がある。建設および鉱業における作業現場環境の多様で構造化されていない性質に起因して、例えば舗装された表面、ほこりの表面、草の表面、砂利の表面などの異なる表面を区別することは困難であり、動的安定性制御の問題が強調される。これらの限定および問題を克服するために、アプリケーションおよびフレームワークが本明細書に開示され、アプリケーションおよびフレームワークは、予測モデリングを使用して、建設、鉱業、製造、倉庫保管、物流、仕分け、包装、農業などの様々な産業に適用可能な様々な作業現場環境(例えば、多様なオフロード状況において)における自律車両の運動挙動および動的挙動を推定する。その後、自律車両の推定された運動挙動および動的挙動を使用して、作業現場環境の不安定性を回避しながら動作計画またはタスク計画を完了するために自律車両をどのように制御(例えば、加速、操舵、制動など)するかについて車両システムに命令する。
【0023】
[0035]本開示は、自律車両に関連していくつかの実施形態を説明する。「車両」という用語の使用および車両に対する説明は、限定または制限を意図するものではない。本明細書で説明する教示は、自動化された方法で1つ以上のタスクまたは動作を実行して、人間の介入を実質的に伴わないように構成された自律車両および他のタイプの自律機械(例えば、ブルドーザおよびクレーンなどの重機)を含む任意の自律装置と共に使用され、適用されてもよい。
【0024】
[0036]本明細書で使用される場合、「実質的に(substantially)」、「およそ(approximately)」、および「約(about)」という用語は、当業者によって理解されるように、大部分が特定されるものであるが、必ずしも完全には特定されないもの(および完全に特定されるものを含む)として定義される。任意の開示する実施形態では、「実質的に」、「およそ」、または「約」という用語は、指定されたもの「のパーセント値以内」で置き換えてもよく、パーセント値は0.1、1、5、および10パーセントを含む。本明細書で使用される場合、動作が何か「に基づく」場合、これは、動作が何かの少なくとも一部に、少なくとも部分的に基づくことを意味する。
【0025】
[0037]
図1Aは、特定の実施形態による、制御部システム(本明細書では自律車両管理システム(AVMS)105と呼ばれる)を組み込んだ自律車両100の高レベルの簡略化されたブロック図である。本開示の目的のために、自律車両100などの自律車両は、自律的に、および人間のユーザまたは手動入力を伴わずに、1つ以上の動作を実行することができる車両である。例えば、特定の実施形態では、自律動作は、車両100がその環境を自律的に感知して、人間のユーザまたは手動入力を実質的に伴わずに、自律的に経路に沿ってナビゲートまたは駆動する能力であってもよい。他の自律動作の例には、すくい動作および放出動作、材料または物体の移動(例えば、ある領域から別の領域への土または砂の移動)、材料の持ち上げ、駆動、地均し、土の拡散、掘削、ある地点から別の地点への材料または物体の輸送などが含まれるが、これらに限定されない。
【0026】
[0038]自律車両100は、様々な異なるタイプのものであってもよい。例えば、自律車両100は、人および/または貨物を輸送するために使用することができる自動車または移動機械であってもよい。自律車両100は、道路または経路の締固め、地均し、掘削、持ち上げなどの特殊な動作を実行するための特殊な車両であってもよい。自律車両100の例には、ワゴン、自転車、自動車両(例えば、オートバイ、自動車、トラック、バス)、鉄道車両(例えば、電車、路面電車)、船舶(例えば、船、ボート)、航空機、宇宙機、および/または重機車両(例えば、ダンプトラック、トラクタ、ブルドーザ、油圧ショベル、フォークリフトなど)が含まれるが、これらに制限されない。自律車両100の環境は、他の自律車両を含む他の車両を含む場合があるので、明確にするために、自律車両100をその環境における他の車両と区別するために、自律車両100は自車両と呼ばれることもある。
【0027】
[0039]以下では、例として自律車両を使用して様々な特徴を説明する。しかしながら、これは限定を意図するものではない。本明細書で説明する教示は、1つ以上の自律動作を実行することができる任意の機械に適用することができる。例えば、本教示は、ホイールローダ、コンパクタなどによって使用することができる。機械は、製造、鉱業、建設、医療用の応用形態、包装、組立、測量、マッピング技術物流などの様々な産業で使用してもよい。
【0028】
[0040]
図1Aに示すように、自律車両管理システム105に加えて、自律車両100は、センサ110および車両システム115を含んでもよく、またはそれらに接続してもよい。自律車両管理システム105は、有線接続または無線接続を介してセンサ110および車両システム115と通信可能に接続されてもよい。自律車両管理システム105とセンサ110との間、および自律車両管理システム105と車両システム115との間の通信を容易にするために、1つ以上の異なる通信プロトコルを使用してもよい。
【0029】
[0041]車両システム115には、自律車両100が特定の経路または進路に沿って走行またはナビゲートすること(例えば、多様なオフロード状況を通る経路に沿ってナビゲートすること)などの、自律車両100の意図する機能を実行することを可能にする様々な電気機械システム、構成要素、リンク装置などが含まれてもよい。車両システム115には、例えば、自律車両を駆動するための、操舵システム、スロットルシステム、制動システム、推進システムなどと、電気システムと、補助システム(例えば、自律車両100の運転者または乗客に情報を出力するためのシステム)となどが含まれてもよい。車両システム115は、自律車両100の経路および速度を設定するために使用することができる。特殊な動作(例えば、リフト動作および放出動作を行うことに特化したダンプトラック、トラクタなど)を実行するように構成された自律車両では、車両システム115はまた、このような特殊な動作を実行するように構成されたシステムを含んでもよい。
【0030】
[0042]センサ110は、自律車両100の外面または内側に配置されてもよく(「車載センサ」)、または自律車両100から遠隔に(「遠隔センサ」)さえも配置されてもよい。自律車両管理システム105は、無線通信プロトコルを使用して無線接続を介して遠隔センサと通信可能に接続されてもよい。センサ110は、自律車両100の環境情報を取得することができる(例えば、車両が動作中に、ジョイスティック/アクセルの位置/変位、操舵の位置/角度、ブレーキの位置/変位、道路仰角、気温、湿度などのリアルタイムデータを取り込むためのセンサ)。その後、このセンサデータを自律車両管理システム105に供給することができる。
図3は、限定はしないが、LIDAR(Light Detection and Ranging)センサ302、レーダ304、カメラ306(異なる感知能力を有する異なる種類のカメラを使用してもよい)、全地球測位システム(GPS)および慣性計測装置(IMU)センサ308、車車間/路車間通信(V2X)センサ310、音声センサ、気温センサおよび湿度センサなどを含む、自律車両の例示的なセンサ110の組を図示する。センサ110は、自律車両100に対する環境情報を取得(例えば、感知、取り込み)して、処理のために、感知または取り込まれたセンサデータを自律車両管理システム105に通信することができる。他のセンサは、近接センサ、ソナーセンサ、および他のセンサを含んでもよい。
【0031】
[0043]レーダセンサ304(例えば、長距離レーダ、短距離レーダ、画像レーダなど)の例には、自律車両100の環境における物体を検出して、検出された物体の速度を決定するために使用されるセンサが含まれてもよい。LIDARセンサ302の例には、パルスレーザ光の形態の光を使用して目標物までの距離を測定する測量技術を使用するセンサが含まれる。この測定は、パルスレーザ光を用いて、測定される目標物を照射して、センサを使用して反射パルスを測定することによって行われる。V2Xセンサの例には、V2X通信技術を使用して交通システムの可動部と通信するセンサが含まれる。例えば、自律車両100は、車両から自律車両の周囲または近くの別の要素に、情報を渡して、および/または情報を受信するためにV2Xセンサを使用してもよい。V2X通信センサ/システムは、V2I(Vehicle-to-infrastructure)、V2V(Vehicle-to-vehicle)、V2P(Vehicle-to-pedestrian)、V2D(Vehicle-to-device)、V2G(Vehicle-to-grid)などの他のより具体的なタイプの通信インフラストラクチャを組み込んでもよい。IMUセンサは、加速度計、ジャイロスコープ、磁力計などの組み合わせを使用して、車体の特定の力、角速度、およびいくつかの例では車体を取り囲む磁場を測定して報告する電子装置であってもよい。GPSセンサは、地理的位置情報および時間情報を決定するために宇宙に拠点を置く衛星航法システムを使用する。
【0032】
[0044]以下に説明するように、特定の実施形態では、異なるタイプのセンサまたは同じタイプのセンサの複数の例から取得されたデータを組み合わせまたは融合して、経路状況もしくは道路状況、または他の物体の3次元(3D)表現を形成してもよく、3D表現から、経路/道路または物体の1つ以上の特性または特徴(例えば、傾斜角、経路/道路の材料構成、雪で覆われていることなどの経路/道路の状況など)を推定してもよい。3D表現を生成するためのデータを取得する目的で、様々なタイプのセンサの組み合わせを使用してもよい。異なるセンサタイプを組み合わせることには、特定の利点がある。例えば、カメラは、経路/道路または物体がその中にある環境の非常に詳細な画像を生成することができるが、LIDARおよびレーダは、より良好な深度知覚を提供する。LIDARは、概して、静止物体を検出する場合、レーダよりも正確であるが、レーダは、移動物体を検出する場合、より正確である。
【0033】
[0045]自律車両管理システム105(制御部システムとも呼ばれる)は、自律車両100の状態および自律車両の環境の状態を説明するデータを処理して、処理に基づいて、自律車両100の1つ以上の、自律機能または動作を制御するように構成されている。例えば、自律車両管理システム105は、車両システム115に命令/コマンドを発行してもよく、自律車両100の推進、制動、操舵、またはナビゲーション、および補助挙動(例えば、ライトをオンにする)機能などの自律車両の動きの様々な態様をプログラム的で自律的に制御する。自律車両管理システム105は、自律車両100が自律的に1つ以上の動作を実行することを可能にする制御アルゴリズムおよび計画アルゴリズムを実装する。
【0034】
[0046]自律車両管理システム105は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装してもよい。ソフトウェアは、(例えば、記憶装置上の)非一時的コンピュータ可読媒体に格納されてもよく、その機能を実行するために1つ以上のプロセッサによって(例えば、コンピュータシステムによって)実行されてもよい。
図1に示す実施形態では、自律車両管理システム105は、自律車両100の内側または外面にあるものとして示されている。しかしながら、これは限定を意図するものではない。代替的な実施形態では、自律車両管理システム105はまた、自律車両100から離れて遠隔地にあってもよい。
【0035】
[0047]自律車両管理システム105は、定期的またはオンデマンドでセンサ110からセンサデータを受信する。自律車両管理システム105は、センサ110から受信したセンサデータを使用して、自律車両の周囲および環境を知覚する。自律車両管理システム105は、センサ110から受信したセンサデータを使用して、自律車両の状態と自律車両100を取り囲む空間および環境の状態とに関する情報をカプセル化するデジタルモデルを生成して、更新された状態を保つ。このデジタルモデルは、自律車両100の現在の状態、および経路/道路の状況を含むその環境をカプセル化する内部地図と呼んでもよい。内部地図が、他の情報と共に、自律車両管理システム105によってその後使用され、自律車両100によって実行される動作(例えば、ナビゲーション、制動、加速、すくい、放出など)に関する決定が行われる。自律車両管理システム105は、車両システム115に命令またはコマンドを送信して、車両システム115のシステムによって動作を実行させてもよい。
【0036】
[0048]前述のように、自律車両管理システム105は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装してもよい。
図1Bは、いくつかの実施形態による、自律車両管理システム105が主にソフトウェアで実装される例示的な自律車両管理システムを示す。自律車両管理システム105は、完全自律車両ソフトウェアスタック120として実装してもよい。完全自律車両ソフトウェアスタック120には、車両安全マネージャ125、遠隔インタフェースマネージャ130、アプリケーション135、ミドルウェア140、およびオペレーティングシステム145が含まれてもよい。完全自律車両ソフトウェアスタック120を使用して、前述の様々なシステムおよび様々なサブシステムの機能を実装してもよい。
【0037】
[0049]
図2Aは、特定の実施形態による自律車両管理システム105のサブシステムを示す簡略化されたブロック図である。自律車両管理システム105は、1つ以上の通信チャネルを介して互いに通信可能に接続された複数のシステムまたは複数のサブシステムを備えてもよい。
図2Aに示す実施形態では、サブシステムは、センサインタフェースサブシステム205、位置特定サブシステム210、知覚サブシステム215、計画サブシステム220、制御サブシステム225、および情報サブシステム230を含む。
【0038】
[0050]
図2Aに示す自律車両管理システム105の実施形態は単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図しない。当業者は、多くの可能な変形形態、代替形態、および修正形態を認識するであろう。例えば、いくつかの実装形態では、自律車両管理システム200は、
図2Aに示すものよりも多い数もしくは少ない数の、サブシステムもしくは構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有してもよい。サブシステムは、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装してもよい。
図2Aに示す実施形態では、自律車両管理システム105およびそのすべてのサブシステムは、自律車両100の内側または外面にあるものとして示されている。しかしながら、これは限定を意図するものではない。代替的な実施形態では、自律車両管理システム105のすべてのサブシステム、または自律車両管理システム105の特定のサブシステムはまた、自律車両100から離れて遠隔地にあってもよい。
【0039】
[0051]センサインタフェースサブシステム210は、センサ110(車載センサおよび遠隔センサを含む)と自律車両管理システム105との間の通信を可能にするインタフェースを提供する。センサインタフェースサブシステム210は、センサ110からセンサデータを受信して、そのデータを自律車両管理システム105の1つ以上の他のサブシステムに提供してもよい。例えば、
図2Aに示すように、センサデータは、さらに処理するために位置特定サブシステム210および知覚サブシステム215に提供されてもよい。様々なセンサ110によって収集されたセンサデータによって、自律車両管理システム105が、自律車両100および経路/道路の状況を含むその周囲環境の視野または画像を構築することが可能になる。
【0040】
[0052]特定の実施形態では、自律車両管理システム105によって、自律車両管理システム105の1つ以上のサブシステムが命令またはコマンドを1つ以上のセンサ110に送信して、1つ以上のセンサの動作を制御することが可能になる。例えば、特定のセンサに命令を送信して、特定のセンサの挙動を変更してもよい。例えば、命令をセンサに送信して、センサによって感知または収集された情報を変更して、および/またはセンサから自律車両管理システム122に通信されるセンサデータを変更してもよい。これらの命令を使用して、自律車両管理システム122は、センサ110から自律車両管理システム122に通信されるセンサデータを動的に制御することができる。このセンサデータの制御に関するさらなる詳細は、計画サブシステム206によって実行される機能の文脈で以下に提供される。
【0041】
[0053]位置特定サブシステム210は、センサ110からセンサデータを受信して、センサデータに基づいて、その周囲環境における自律車両100の場所(車両位置特定)を識別するように構成されている。位置特定サブシステム210は、自車両の環境(例、鉱山)に対する自車両の現在のローカル位置情報を提供する。自車両100の位置は、知覚サブシステム215によって生成される事前定義された地図に対して決定してもよい。特定の実施形態では、位置特定サブシステム210は、自車両の位置情報を自律車両100の他のシステムまたは他のサブシステムにブロードキャストするように構成されている。その後、他のシステムまたは他のサブシステムは、それら自体の処理のために必要に応じて位置情報を使用してもよい。
【0042】
[0054]位置特定サブシステム210は、内部地図管理、地図マッチング、ビジュアルオドメトリ、推測航法、場所履歴管理などの様々な機能を実装してもよい。例えば、自律車両100が鉱山を走行していると仮定する。位置特定サブシステム210は、鉱山の地図を入力として受信してもよい。鉱山は、通常、様々な地形を有する駆動可能な領域、および駆動不可能な領域を含む固定の経路と、鉱山の周囲を採掘車両が辿るための固定の道路とを有する。位置特定サブシステム210は、経路に沿って、自車両の位置を決定してもよい。位置特定サブシステム210は、位置特定サブシステム210がセンサから受信する複数の入力と、経路/道路の状況を含む環境の地図とを利用することによってこの位置の決定を行ってもよい。位置特定サブシステム210は、GPSセンサデータを使用して自車両の全地球測位を決定してもよい。位置特定サブシステム210は、GPSセンサデータを受信して、GPSセンサデータを自律車両管理システム105の1つ以上の他のサブシステムによって使用可能なより有用な形態に変換してもよい。例えば、情報サブシステム、位置特定サブシステム210は、鉱山地図(地図管理とも呼ばれる)などの環境の地図に対して自車両がどこに位置するかを識別してもよい。
【0043】
[0055]位置特定サブシステム210はまた、地図マッチングを実行するように構成されてもよく、位置特定サブシステム210が知覚するものは、位置特定サブシステム210が事前に取得した情報(例えば、グランドトゥルース)とマッチングされる。地図マッチングは、(例えば、地理情報システム(GPS)などを使用して、)記録された地理座標を、現実世界の論理モデルとマッチングすることができる。一例では、地図マッチングアルゴリズムは、記録された連続的な位置点を(例えば、GPSから)取得して、それらの位置点を既存の街路図面の端部に(例えば、ネットワークとして)関連付けることができる。関連付けられた位置点は、自律車両の走行を表すソートされたリストにあってもよい。地図マッチングの一部として、位置特定サブシステム210は、自車両の環境において自車両を追跡して、現実世界地図などの地図に対して位置特定サブシステム210に見えるものに基づいてその位置を推定する。
【0044】
[0056]位置特定サブシステム210はまた、ビジュアルオドメトリを実行するように構成され、ビジュアルオドメトリは、1つ以上のカメラによって取り込まれた画像を分析することなどによって、センサデータに基づいて自車両の向きおよび位置を決定することを含む。
【0045】
[0057]また、位置特定サブシステム210は、推測航法処理を実行してもよい。推測航法は、事前に決定された位置を使用して自身の現在位置を計算して、または固定して、経過時間および進路にわたる既知の速度または推定された速度に基づいてその位置を前進させるプロセスである。このプロセスは、移動した方向および距離を推定することによって自車両の位置を計算することを含んでもよい。例えば、自律車両管理システム105は、その車輪速度、操舵角、自律車両100が1秒前にいた場所などの、自律車両100に関する特定の情報を受信して、認識する。過去の位置情報に基づいて、速度/操舵角などと組み合わせて、位置特定サブシステム210は、車両の次の場所または現在の場所を決定することができる。この位置の決定によって、自車両が自車両の経路を移動するときに、自車両の位置をローカルで理解することが提供される。経路は、様々な実施形態によれば、道路、高速道路、鉄道システム、滑走路、ボートのルート、自転車専用道路などであってもよい。
【0046】
[0058]位置特定サブシステム210はまた、ローカル履歴管理追跡を実行してもよく、自車両の経路に関する履歴情報が分析され、現在の経路と比較される。例えば、自律車両100が鉱山の特定の経路を何度も走行する場合、この情報は、位置特定サブシステム210によって比較および分析することができる。
【0047】
[0059]位置特定サブシステム210はまた、合理性チェック、欠陥チェック、センサデータの正規化などを実行するように構成された整合性モジュールを実装してもよい。例えば、位置特定サブシステム210は、自車両の位置、場所などに関する情報の異なる源から情報を受信してもよい。合理性チェックを使用して妥当性チェックを行い、様々なセンサからの情報が一貫していて堅牢であることを確認してもよい。このチェックは、誤った結果を低減するのに役立つ。合理性チェックには、センサデータ値および/または計算の結果が真である可能性があるか否かを評価するための試験が含まれてもよい。センサ110から受信したセンサデータを正規化して、正規化されたセンサデータを位置特定サブシステム210に提供することもできる。その後、位置特定サブシステム210は、正規化されたセンサデータを利用して、(例えば、ネットワーキングおよび処理レイテンシなどを想定する)自律車両のリアルタイム環境の一貫した内部地図を生成および/または更新することができる。
【0048】
[0060]知覚サブシステム215は、定期的またはオンデマンドで、センサ110からセンサデータを受信して、受信した情報に基づいて一貫した内部地図を構築して維持する。知覚サブシステム215はまた、位置特定サブシステム210などの他の源から入力を受信して、受信した入力を使用して内部地図を構築して維持してもよい。知覚サブシステム215によって生成される内部地図は、自車両の情報、自車両および自車両の環境の状態、経路または道路の状況に関する情報、自車両の環境における物体に関する情報(例えば、自車両の周囲の動的物体および静的物体に関する情報)を含むすべての情報を含む。一貫した内部地図は、自律車両の環境、例えば、自律車両の周囲において感知された要素/物体の局所的な地図であってもよい。特定の実施形態では、これらの感知された要素/物体は、3次元(3D)にマッピングされる。特定の実施形態では、知覚サブシステム215は、位置特定サブシステム210から位置情報を受信して、位置情報を内部地図に組み込む。センサがオフラインになった場合でも、内部地図を維持することができる。
【0049】
[0061]合理性チェックおよび正規化は、知覚サブシステム215によって受信されたセンサデータに対して実行されてもよい。これらのチェックには、センサデータ値および/または計算の結果が真である可能性があるか否かを評価するための試験が含まれてもよい。センサ110から受信したセンサデータを正規化して、正規化されたセンサデータを知覚サブシステム215に提供することもできる。その後、知覚サブシステム215は、正規化されたセンサデータを利用して、自律車両のリアルタイム環境の一貫した内部地図を生成および/または更新することができる。
【0050】
[0062]知覚サブシステム215は、人工知能(AI)および機械学習に基づく技術を含む、様々な異なるアルゴリズムおよび技術を使用してその機能を実行してもよい。例えば、知覚サブシステム215は、畳み込みニューラルネットワーク(CNN)を使用して、センサデータに基づいて物体検出および物体分類を実行してもよい。訓練フェーズの間、CNNは、車両の環境のサンプル画像および対応するグランドトゥルース分類を含むラベル付けされた訓練データを使用して訓練されてもよい。ラベル付けされたデータは、概して、1つ以上のラベルでタグ付けされたサンプルのグループを含み、ラベルは訓練入力サンプルの既知の結果(例えば、グランドトゥルース分類など)を表す。ラベル付けを使用して、ラベル付けされていないデータの組を取得して、そのラベル付けされていないデータの各部分を情報量が多い意味のあるタグで増強することもできる。その後、訓練に基づいて構築されたCNNモデルまたは他のAI/機械学習モデルをリアルタイムで使用して、センサ110から受信した新規のセンサデータに基づいて、自律車両100の環境において物体を識別および分類してもよい。
【0051】
[0063]計画サブシステム220は、自律車両100の動作計画を生成するように構成されている。計画は、自律車両100によって実行される1つ以上の計画された動作を含んでもよい。例えば、計画は、自律車両100が横断すべき軌道または経路を識別する情報を含んでもよい。経路は、様々な実施形態によれば、道路、高速道路、鉄道システム、滑走路、ボートのルート、自転車専用道路などであってもよい。例えば、軌道情報は、点Aから点Bまで車両が辿るための軌道を印を付ける点Aと点Bとの間の点のリストを用いて、車両が点Aから点Bまでどのように移動すべきかを示してもよい。別の例として、計画サブシステム220によって生成された計画は、指示器またはライトをオンまたはオフすること、1つ以上の音(例えば、アラーム)を生成することなど、自律車両100のアクセサリに対する計画された動作を含んでもよい。自律車両100が特殊な動作を実行するようにカスタマイズされた特殊な構成要素を有する状況では、計画サブシステム220によって生成された計画はまた、これらの特殊な構成要素のうちの1つ以上によって実行される計画された動作を含んでもよい。例えば、自律車両が、材料の掘削および材料の移動を実行するためのバケットおよびアーム組立体を有する掘削トラックである場合、計画サブシステム220によって生成された計画には、掘削を実行するためのバケットおよびアーム組立体によって実行される動作が含まれてもよい。例えば、計画は、アームを上げるべき角度、および/またはアームに対するバケットの角度を含んでもよい。動作計画が生成された後、計画サブシステム220は、動作計画を制御サブシステム225に通信してもよく、その後制御サブシステム225は、動作計画における計画された動作を自律車両100によって安全な方法で実行させるように車両システム115の1つ以上のシステムを制御してもよい。
【0052】
[0064]知覚サブシステム215によって生成された内部地図に加えて、計画サブシステム220は、自律車両100の動作計画を生成する際に使用する様々な他の入力も受信してもよい。これらの入力には、(a)位置特定サブシステム210から受信した位置情報または位置特定情報、(b)自律車両100の1つ以上の目標を識別する情報が含まれてもよい(例えば、右折するための自律車両100の最終目標を識別する情報を受信してもよい)が、これらに限定されない。目標は、自律車両または機械の、エンドユーザまたはオペレータによって設定されてもよい。自動車の例では、ユーザは、自律車両100の現在の場所から特定の最終目的地まで駆動するために高レベルを設定してもよい。自律車両100は、現在位置および最終目的地位置に基づいて、GPSルート計画に従って現在の場所から最終目的地まで自律的に駆動することを目標として、GPSルート計画を決定してもよい。採掘環境の例では、オペレータによって設定された高レベルの目標は、点Aから10トンの材料(例えば、砂、石炭など)を様々な地形にわたって移動させ、点Bで材料を放出することであってもよい。概して、1つ以上の異なる目標が提供されてもよい。目標のカテゴリ(そのうちのいくつかは重複する可能性がある)の例には、自律車両による自律動作の実行に関連する目標(例えば、経路に沿った自律駆動またはナビゲーション、すくい動作および放出動作、材料または物体の移動、材料の持ち上げ、駆動、地均し、土の拡散、掘削、ある地点から別の地点への材料または物体の輸送など)、地形または経路状況を考慮した車両の操縦に関連する目標、車両の環境における車両と様々な当事者、物体などとの相互作用に関する目標、車両の一般的な動作に関連する目標などが含まれるが、これらに限定されない。目標の例は、車線を変更すること、ある場所から別の場所に駆動すること、目的地まで可能な限り速く駆動すること、方向転換すること、一連のステップをシーケンスで実行することなどである。(c)自律車両100が取る経路またはルートに関する高レベルのルート情報。この情報は、自律車両のエンドユーザまたはオペレータによって直接的または間接的に提供されてもよい。(d)安全上の考慮事項を識別する情報。これらの情報はまた、自律車両100によって提供されるAPIを使用して、または自律車両100用に構成されたメタデータを介して、エンドユーザ/オペレータなどによって自律車両に提供されてもよい。これらの考慮事項の例には、車線内に常にとどまること、常に任意の物体から一定の距離を維持すること、ダンプトラックが30度を超える方向転換をしないこと、ホイールローダBが15度を超える所定の勾配を上らないことなどが含まれるが、これらに限定されない。(e)過去に特定の動作がどのように実行されたかに関する情報。例えば、特定の自律車両の場合、この情報は、その特定の自律車両が過去にどのように動作を実行したか、異なる自律車両が過去にどのように動作を実行したか、過去に車両を使用してどのように動作が手動で実行されたか(例えば、運転者/オペレータが、運転者/オペレータの制御下で動作している車両を用いて過去にどのように動作を行ったか)の過去の履歴であってもよい。例えば、自律車両が過去に経路を走行したこと、マニュアルのトラックがこの経路をどのように走行したか、または特定のタスクをどのように完了したかなどである。(f)その他の入力。
【0053】
[0065]1つ以上の入力に基づいて、計画サブシステム220は、自律車両100の動作計画を生成する。計画サブシステム220は、自律車両100の環境が変化するにつれて(例えば、経路変更または道路変更の状況として)、自律車両100によって実行される目標が変化するにつれて、または概して、計画サブシステム220への入力のいずれかの変化に応じて、計画を定期的に更新してもよい。
【0054】
[0066]動作計画を生成して更新する一部として、計画サブシステム220は、安全な方法で特定の目標を達成するために、どの動作を計画に含めるかに関する様々な決定を行う。これらの決定を行う一部として計画サブシステム220によって実行される処理は、挙動計画、全体計画、経路計画、フェイルセーフ経路、経路履歴追跡などを含んでもよい。
【0055】
[0067]計画サブシステム220は、自律車両100によって安全に実行される機能または動作(例えば、自律駆動またはナビゲーション、エリアの採掘)を実行する目標を達成するために、様々なAIに基づく機械学習アルゴリズムを使用して動作計画を生成して更新してもよい。例えば、特定の実施形態では、計画サブシステム220は、動作計画を生成して更新するために強化学習(RL)を使用して訓練されたモデルを使用してもよい。自律車両管理システム105は、RLモデルを使用して、自律車両100の自律動作を制御するために実行される動作を選択してもよい。RLモデルは、RLモデルのカバレッジおよび精度を高めるために定期的に更新してもよい。強化学習(RL)は、行動主義心理学によって着想を得た機械学習の分野であり、エージェントが累積報酬の概念を最大限に活用するために環境においてどのように動作を起こすべきかに関する。
【0056】
[0068]特定の実施形態では、動作計画を生成することに加えて、計画サブシステム220は、センサ110の挙動を動的に制御することができる。例えば、計画サブシステム220は、センサ110から特定のセンサに命令またはコマンドを送信して、特定のセンサによって取り込まれるセンサデータを動的に制御して、および/またはセンサから知覚サブシステム215に(または、位置特定サブシステム210などの自律車両管理システム105の他のサブシステムに)通信されるセンサデータを制御することができる。知覚サブシステム215によって構築された内部地図が、センサから知覚サブシステム215によって受信されたセンサデータに基づくので、センサから受信したセンサデータを動的に制御することができることによって、知覚サブシステム215に含まれる、内部地図を構築して維持するための情報、および/または知覚サブシステム215によって使用される、内部地図を構築して維持するための情報も、計画サブシステム220によって動的に制御することができる。計画サブシステム220は、動的でオンデマンドに直接センサ110を命令して、特定の種類の情報を取得、または指定された方法で動作させて、例えば、追加のセンサデータを提供して、一貫した内部地図を更新することができる。例えば、計画サブシステム220は、LIDARセンサに命令して、LIDARセンサの感知範囲を360度(360°)の視野から、LIDARシステムによってより詳細に感知および/または追跡される特定の物体を含むより狭い範囲に絞り込むことができる。このようにして、一貫した内部地図は、計画サブシステム220からのフィードバックに基づいて、および計画サブシステムの制御下で更新される。
【0057】
[0069]自律車両管理システム105は、インフラストラクチャを提供して、このインフラストラクチャによって、計画サブシステム220(または自律車両管理システム105の他のサブシステム)が、1つ以上のセンサに1つ以上の命令またはコマンドを送信して、1つ以上のセンサの挙動を制御することが可能になる。
図2Aに示す実施形態では、センサインタフェースサブシステム205は、センサ110と相互作用するためのインタフェースを提供する。アウトバウンド方向(自律車両管理システム105からセンサ方向への)において、計画サブシステム220は、命令またはコマンドをセンサインタフェースサブシステム205に送信することができる。その後、センサインタフェースサブシステム205は、受信した命令を意図する送信先センサに通信するように構成されている。インバウンド方向(センサから自律車両管理システム105への)において、センサインタフェースサブシステム205は、計画サブシステム220から送信された命令に応じてセンサからセンサデータを受信してもよい。その後、センサインタフェースサブシステム210は、受信したセンサデータを計画サブシステム220(または命令を発信した自律車両管理システム105の適切なサブシステム)に通信してもよい。
【0058】
[0070]センサインタフェースサブシステム205は、1つ以上の異なる通信プロトコルを使用して異なるセンサと通信することができてもよい。特定の実施形態では、アウトバウンド方向において、計画サブシステム220から(または自律車両管理システム105の任意の他のサブシステムから)受信して、特定のセンサに送信する命令またはコマンドに対して、センサインタフェースサブシステム205は、その命令を、その特定のセンサによって理解可能であるフォーマットであって、その特定のセンサと通信するのに適したフォーマットに変換して、その後、その特定のセンサに適用可能な特定の通信プロトコルを使用してもよい。
【0059】
[0071]特定の実施形態では、自律車両管理システム105は、センサ110およびそれらの能力を識別する情報にアクセスしてもよい。その後、自律車両管理システム105のサブシステムは、この格納された情報にアクセスして使用して、センサの可能な能力および挙動を決定して、命令をそのセンサに送信してそのセンサの挙動を変更してもよい。特定の実施形態では、センサと自律車両管理システム105との間の通信が可能になる前に、センサを自律車両管理システム105に登録する必要がある。登録プロセスの一部として、登録されているセンサに対して、センサに関する情報を提供してもよい。この情報には、センサを識別する情報、センサの感知能力および感知挙動、センサによって使用可能な通信プロトコル、およびセンサに関する他の情報が含まれてもよい。その後、自律車両管理システム105は、この情報を使用してセンサと通信して、センサの挙動を制御してもよい。
【0060】
[0072]前述のように、計画サブシステム220は、命令をセンサに送信して、センサの挙動を制御して変更してもよい。センサの挙動の変更には、センサから自律車両管理システム105(例えば、センサから、知覚サブシステム215、または自律車両管理システム105の他のサブシステムに通信されるセンサデータ)に通信されるセンサデータを変更すること、センサによって収集または感知されるデータの変更すること、またはそれらの組み合わせが含まれてもよい。例えば、センサから自律車両管理システム105に通信されるセンサデータを変更することには、命令を受信する前にセンサから自律車両管理システム105に通信されたデータと比べて、より多いまたはより少ないデータを通信すること、および/またはセンサから自律車両管理システム105に通信されるセンサデータのタイプを変更することが含まれてもよい。いくつかの例では、センサによって感知または収集されたデータは同じままであってもよいが、センサから自律車両管理システム105に通信されるセンサデータは変化してもよい。他の例では、センサによって感知または収集されたデータ自体が、自律車両管理システム105から受信した命令に応じて変更されてもよい。計画サブシステム220はまた、適切な命令をセンサに送信することによって、センサをオンまたはオフにしてもよい。
【0061】
[0073]例えば、計画サブシステム220は、知覚サブシステム215によって生成された現在の内部地図、位置特定サブシステム210からの位置情報、および自律車両100が一定時間内に方向転換する目標(例えば、次の5秒間での右折)を含む入力を受信してもよい。目標を安全に達成するために自律車両100が取る動作の最良の組が何かを決定することの一部として、計画サブシステム220は、自律車両100の右側の経路または道路の状況および環境を示す特定のセンサデータ(例えば、追加の画像)が必要であると決定してもよい。その後、計画サブシステム220は、特定のセンサデータ(例えば、自律車両100の右側の環境の画像)を提供してもよい1つ以上のセンサ(例えば、カメラ)を決定してもよい。その後、計画サブシステム220は、これらの1つ以上のセンサに命令を送信して、それらのセンサの挙動を変更させて、1つ以上のセンサが特定のセンサデータを取り込み、自律車両管理システム105に(例えば、知覚サブシステム215に)通信するようにしてもよい。知覚サブシステム215は、この特定のセンサデータを使用して内部地図を更新してもよい。その後、更新された内部地図を計画サブシステム220によって使用して、自律車両100に対する動作計画に含める適切な動作に関する決定を行ってもよい。自律車両100によって右折が成功した後、計画サブシステム220は、別の命令を送信して、異なる、低減された可能性があるレベルのセンサデータを自律車両管理システム105に通信することに戻るように同じカメラに命令してもよい。このようにして、内部地図を構築するために使用されるセンサデータを動的に変更することができる。
【0062】
[0074]自律車両管理システム105からセンサによって受信された命令によって引き起こされるセンサの挙動における変化の例には、センサから自律車両管理システム105に通信されるセンサデータを、センサに低減させること、または遮断させることが含まれてもよいが、これらに限定されない。この低減または遮断は、例えば、自律車両管理システム105によって受信される大量のセンサデータを低減するために行ってもよい。前述の例と同じ例を使用して、計画サブシステム220が、自律車両100の目標が右折することであることを示す入力を受信した場合、計画サブシステム220は、自律車両100の左の環境に対して、必要とするセンサデータが低減されたと決定してもよい。その後、計画サブシステム220は、低減されるセンサデータを通信する役割を果たす1つ以上のセンサ(例えば、カメラ)を決定してもよい。その後、計画サブシステム220は、これらの1つ以上のセンサにこれらのセンサの挙動を変更させるための命令を送信して、これらのセンサから自律車両管理システム105に(例えば、知覚サブシステム215に)通信されるセンサデータの量が低減されるようにしてもよい。一例として、計画サブシステム220から送信された命令は、以下のうちの1つ以上を行ってもよい。(i)センサに視野を変更させる。例えば、カメラまたはLIDARセンサを狭い場所にズームインさせること、(ii)センサに部分的な情報のみを送信させること。例えば、センサは、センサによって取り込まれたすべての情報よりも少ない情報を送信してもよく、(iii)センサに、以前よりもまたは通常の速度よりも速くまたは遅く情報を送信させてもよく、(iv)センサをオンにさせてもよく、(v)センサに、以前とは異なる解像度または粒度で自律車両管理システム122に情報を取り込みおよび/または送信させてもよい。
【0063】
[0075]前述のように、計画サブシステム220は、動作計画または動作計画を実行するための命令を制御サブシステム225に送信してもよい。制御サブシステム225は、車両システム115に命令/コマンドを発行して、推進、制動、操舵、またはナビゲーションなどの自律車両の動きの様々な態様と、自律車両100の補助挙動(例えば、ライトをオンにする)機能とをプログラム的で自律的に制御してもよい。制御サブシステム225は、自律車両100が動作計画で定義された1つ以上の動作を自律的に実行することを可能にする制御アルゴリズムおよび計画アルゴリズムを実装する。いくつかの例では、制御サブシステム225は、安定性制御サブシステム235を利用して自律車両100の運動挙動および動的挙動を推定して、様々な作業現場環境(例えば、多様なオフロード状況において)でのナビゲーション、掘削、および材料搬送などの様々な動作またはタスクを改善(例えば、不安定性を回避する)する。安定性制御サブシステム235は、予測モデリングを利用して、様々な作業現場環境における自律車両100の運動挙動および動的挙動を推定してもよい。その後、自律車両100の推定された運動挙動および動的挙動を使用して、作業現場環境の不安定性を回避しながら、自律車両100をどのように制御(例えば、加速、操舵、制動など)するかを車両システム115に命令して、動作計画またはタスク計画を完了する。
【0064】
[0076]いくつかの例では、自律車両100は、最初に所定の時間量(例えば、20~30分)の間、作業現場環境内で手動または遠隔制御で動作されて、作業現場環境に関連するセンサ110からデータを収集してもよい。その後、訓練プロセス(オンラインまたはオフライン)において、予測モデルは、収集されたデータ(例えば、作業現場環境内での車両の入力および実際の性能)を使用して訓練され適合されてもよい。予測モデル訓練および適合が試験および/または有効性確認されると、作業現場環境に固有の訓練された予測モデルは、作業現場環境内の完全自律動作における車両制御のために展開されてもよい。訓練された予測モデルは、車両制御のために安定性制御サブシステム235によって使用されるために情報サブシステム230に格納されてもよい。その後、完全な自律動作のために自律車両100を作業現場環境内に展開してもよい。自律動作中(例えば、計画サブシステム220からのタスクを完了すること)、訓練された予測モデルは、リアルタイムで継続的に更新され、制御を継続的に改善し不安定性を回避する。
【0065】
[0077]他の例では、自律車両100は、実際の動作現場(例えば、作業現場環境)と類似の環境で収集されたデータに適合するベースラインモデルを搭載してもよい。ベースラインモデルは、車両制御のために安定性制御サブシステム235によって使用するために情報サブシステム230に格納されてもよい。最初に、自律車両100は、完全展開の前にベースラインモデルを使用して作業現場環境の安全ゾーンで自律モードで動作する。データが、安全ゾーン動作中にセンサ110によって収集され(例えば、作業現場環境内での車両の入力および実際の性能)、安全ゾーン動作中にリアルタイムでベースラインモデルを更新するために使用される。したがって、ベースラインモデルは、作業現場環境の実際の状況について訓練されるようになる。訓練された予測モデルは、車両制御のために安定性制御サブシステム235によって使用するために、情報サブシステム230に更新および/または格納されてもよい。その後、完全な自律動作のために自律車両100を作業現場環境内に展開してもよい。自律動作中(例えば、計画サブシステム220からの完了タスク)、訓練された予測モデルは、リアルタイムで継続的に更新され、制御を継続的に改善し不安定性を回避する。
【0066】
[0078]前述の例と同じ例を使用して、自律車両100の目標が右折することであることを示す入力を計画サブシステム220が受信する場合、計画サブシステム220は、車両の動作中にセンサ110からリアルタイムデータ(例えば、ジョイスティック制御装置の位置、またはアクセル、操舵角、ブレーキなどの他の制御部と、他の状況に関する変数および環境に関する変数)を取得してもよく、安定性制御サブシステム235は、そのリアルタイムデータを使用して、所与の作業現場環境または決定された作業現場環境に対する訓練された予測モデルに基づいて、所与の作業現場環境または決定された作業現場環境における自律車両100の運動挙動および動的挙動を推定してもよい。制御サブシステム225は、自律車両100の推定された運動挙動および動的挙動を使用して、車両システム115のコマンドまたは命令を生成して、不安定性(例えば、方向転換で転倒すること、または方向転換で滑り落ちること)を回避しながら、作業現場環境で右折を実行するために特有の方法で自律車両を動作させてもよい。理解されるように、動作している自律車両のタイプおよび/または作業現場環境に応じて、自律車両100の運動挙動および動的挙動を推定するために、異なる訓練された予測モデルを使用してもよい。
【0067】
[0079]本明細書で説明する1つ以上の実施形態は、プログラムモジュール、エンジン、または構成要素を使用して実装することができる。プログラムモジュール、エンジン、または構成要素には、プログラム、サブルーチン、プログラムの一部、または1つ以上の記載されたタスクもしくは機能を実行することができるソフトウェア構成要素もしくはハードウェア構成要素が含まれてもよい。本明細書で使用される場合、モジュールまたは構成要素は、他のモジュールまたは構成要素とは独立してハードウェア構成要素上に存在することができる。代替的に、モジュールまたは構成要素は、他のモジュール、プログラムまたは機械の共有要素または共有プロセスであってもよい。
図2Bは、特定の実施形態による自律車両管理システム105の様々なサブシステムを実装するために使用されてもよいモジュール、エンジン、または構成要素(例えば、自律車両100の1つ以上のプロセッサによって実行可能なプログラム、コード、または命令)を図示する。モジュール、エンジン、または構成要素は、非一時的コンピュータ媒体に格納されてもよい。必要に応じて、モジュール、エンジン、または構成要素のうちの1つ以上は、システムメモリ(例えば、RAM)に搭載され、自律車両100の1つ以上のプロセッサによって実行されてもよい。
図2Bに示す例では、位置特定サブシステム210、知覚サブシステム215、計画サブシステム220、および制御サブシステム225を実装するためのモジュール、エンジン、または構成要素が示されている。
【0068】
[0080]
図4は、特定の実施形態による自律車両における安定性制御サブシステム400(例えば、
図2Aに対して説明する安定性制御サブシステム235)の簡略化されたブロック図である。
図4に示すように、安定性制御サブシステム400は、前処理モジュール410と、データ収集モジュール420と、運動挙動推定および動的挙動推定モジュール430と、安定性制御モジュール425とを含んでもよい。モジュール410、420、430、および440の各々は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実装することができる。
図4に示す安定性制御サブシステム400は単なる一例である。当業者は、多くの可能な変形形態、代替形態、および修正形態を認識するであろう。例えば、いくつかの実装形態では、安定性制御サブシステム400は、
図4に示すものと比べて、数が多いまたは数が少ないサブシステムまたは構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成または配置を有してもよい。さらに、自律車両の安定性制御に関する安定性制御サブシステムの態様の説明を不明瞭にしないように、安定性制御サブシステム400の特定の構成要素は意図的に省略されている。
【0069】
[0081]前処理モジュール410は、データ収集モジュール420と運動挙動推定および動的挙動推定モジュール430とによるさらなる処理の準備として、取得されたセンサデータを調整および/または再フォーマットするように構成されている。フォーマットすることは、第1のセンサによって生成されたデータ、および第2のセンサによって生成されたデータを、共有フォーマットおよび/または共有基準フレームに変換することを含んでもよい。例えば、センサは、異なる速度(例えば、毎秒異なるフレームでデータを取り込む2つのカメラ、またはLIDARセンサとは異なる周波数で動作するレーダセンサ)でデータを取り込んでもよい。したがって、前処理モジュール410によって実行される処理の一部として、異なる速度で動作するセンサから取り込まれたデータは、再フォーマットして、その結果、センサデータがその後コヒーレントに組み合わされること、例えば、異なるセンサによって取り込まれたが同じ期間に対応するデータをマージまたはグループ化することが可能になってもよい。別の例として、センサは、異なる場所(例えば、ブレーキおよびアクセルなどの自律車両の異なる場所)に配置されてもよく、および/または異なる向き(例えば、2つのカメラが立体画像を生成するためにわずかに異なる方向に向けられる)であってもよい。第1のセンサが車両の知覚された速度に相当するジョイスティックの変位を取り込み、第2のセンサが速度計からの車両の計算された速度を取り込む場合(例えば、第1のセンサに対する第2のセンサの視点の違いに起因)、前処理モジュール410は、車両の速度が両方のセンサからのセンサデータにおいて、2つの別個の速度ではなく単一の速度として表されることを確実にするために正規化または補正を実行してもよい。
【0070】
[0082]センサデータの調整は、センサデータの品質を改善する任意の数の動作を含んでもよい。調整は、センサのタイプに応じて異なってもよい。例えば、カメラの前処理には、(例えば、より高速な下流処理のために大きな画像をより小さいサイズに縮小するための)画像サイズまたは解像度の調整、および補正画像処理(例えば、レンズ補正、収差補正、ホワイトバランス、絞り補正等)が含まれてもよい。カメラ前処理はまた、(例えば、画像の組の平均として)異なる画像を単一の画像に組み合わせることを含んでもよい。他の種類の調整動作には、ノイズまたは不要な情報を取り除く動作(例えば、画像をトリミングすること、特定の視野外で取り込まれたLIDARデータを排除すること、関心のない物体または領域(例えば、地面)に対応するデータを取り除くことなど)が含まれる。
【0071】
[0083]前処理モジュール410はまた、センサの較正を実行してセンサ挙動を変更して、および/または理想的でないセンサ挙動を補償するように構成されてもよい。LIDARセンサまたはレーダセンサの挙動を変更することの例には、(例えば、傾斜または勾配などの対象経路のセクションが車両からの距離よりも小さいことが知られている場合に、特定の距離を超えるデータの取り込みを防止するために、)反射率パラメータを調整してLIDARセンサ/レーダセンサの動作範囲を変更すること、およびLIDAR/レーダセンサによって取り込まれる視野を変更すること(例えば、360度~270度)が含まれてもよい。補正カメラ較正の一例は、カメラのレンズおよび/またはカメラの画像センサのパラメータの推定であり、推定されたパラメータを使用して後続の画像取り込み中のレンズ歪みを補正することが可能になる。したがって、前処理には、センサデータを取り込む前に実行される動作と取り込み後の動作とが含まれてもよい。較正には、内部較正(例えば、同じセンサによって取り込まれたデータに基づいてセンサの挙動を調整すること)および/または外部較正(例えば、別のセンサからのデータに基づいてセンサの挙動を調整すること)が含まれてもよい。
【0072】
[0084]特定の実施形態では、カメラの較正には、カメラの外部行列を計算することが含まれる。外部行列は、カメラの姿勢を表して、カメラの基準フレームを他の何らかの基準フレーム(例えば、LIDARセンサの基準フレームまたは熱センサの熱マッピング)にマッピングするために必要な幾何変換(例えば、並進および/または回転)を示す値を含む変換行列である。外部行列は、チェッカーボード較正技術を使用して3×4行列として計算することができ、チェッカーボード較正技術では、チェッカーボード模様を特徴とする3D較正装置がカメラの視野内に配置され、その後取り込まれて、チェッカーボード画像の点または特徴を他の基準フレームの対応する点または特徴にマッピングする行列パラメータを決定する。例えば、チェッカーボード画像に表される較正装置の角は、LIDARセンサによって生成された点群に表される較正装置の角にマッピングすることができる。外部行列の計算は、透視n点(PnP)アルゴリズムの使用を含む1回の設定として実行することができ、カメラ画像のn個の3D点の組、およびそれらに対応する2次元(2D)投影を考慮して、カメラ姿勢を推定する。計算されると、外部行列は、カメラからのデータを別のセンサからのデータと組み合わせるために使用されてもよく、例えば、2Dカメラ画像を他のセンサ(例えば、LIDAR点群)からの3Dデータとマージするため、または2つの異なるカメラからの2Dカメラ画像をマージして、カメラ画像間の視差に基づいて深度画像を形成するために使用されてもよい。
【0073】
[0085]データ収集モジュール420は、作業現場環境における自律車両の動作中にデータを収集するように構成されている。収集されたデータには、作業現場環境での自律車両の動作中に1つ以上のセンサから直接取得されたセンサデータ(例えば、ジョイスティック/アクセルの位置/変位、操舵、ブレーキ、道路の高さまたは角度、気温、湿度、線速度、角速度など)、計画サブシステム220などの別のシステム構成要素によって取得され処理されたセンサデータ、前処理モジュール410からの前処理されたセンサデータ、またはそれらの組み合わせが含まれる。データ収集モジュール420は、さらに下流の処理のために記憶装置(例えば、ローカルまたは遠隔の永続メモリ)にデータを格納して、またはさらに下流の処理のために、収集されたデータをデータストリームまたはバッチで、
図5に対して説明するようにオフラインモデル訓練システムに転送して、または運動挙動推定および動的挙動推定モジュール430に転送するようにさらに構成されている。いくつかの実施形態では、データ収集モジュール420は、さらなる処理のために格納または転送する前に、収集されたデータをカテゴリに編成するようにさらに構成されている。例えば、データ収集モジュール420は、収集されたデータを入力のリストおよび出力のリストに編成するように構成されてもよい。入力は、ジョイスティック/アクセルの位置/変位、操舵、ブレーキなどの作業現場環境における自律車両の動作中の車両システム制御、ならびに気温、降水量、湿度、経路表面上のインチでの積雪量、砂利表面の深さ、傾斜角または勾配角などの作業現場環境における自律車両の動作中に特定された環境状況に関連するデータである。出力は、自律車両の制御のための入力の結果として達成される、作業現場環境における自律車両のヨーレート、車輪速度、操舵角、線速度、および角速度などの動作情報である。
【0074】
[0086]運動挙動推定および動的挙動推定モジュール430は、データ収集モジュール420から収集されたデータを取得して、収集されたデータを使用して自律車両の運動挙動および動的挙動を推定するように構成されている。いくつかの例では、運動挙動推定および動的挙動推定モジュール430は、将来の自律動作のために収集されたデータに対する1つ以上の予測モデルを訓練して、適合して、更新する。他の例では、運動挙動推定および動的挙動推定モジュール430は、収集されたデータに対する1つ以上の予測モデルを継続的に(例えば、リアルタイムで)更新して、自律車両の制御を継続的に改善する。さらに他の例では、運動挙動推定および動的挙動推定モジュール430は、自律車両の制御を改善(例えば、作業現場環境における安定性をより良くすること)するために、1つ以上の予測モデルを使用して、収集されたデータ内の新規の入力変数に基づいて出力を予測する。例えば、運動挙動推定および動的挙動推定モジュール430は、データ収集モジュール420から、入力(x1)および関連付けられた出力(y1)のリストを受信して、入力(x1)および関連付けられた出力(y1)に対して1つ以上の予測モデルを訓練して、適合して、更新して、計画サブシステム220および制御システム225が動作またはタスク(例えば、20メートル先で右折すること)を達成するために識別した入力の第2のリスト(x2)を受信して、訓練された1つ以上の予測モデルを使用して出力の組(y2)を予測して、出力の組(y2)を、自律車両の制御のための下流処理で使用してもよい安定性制御モジュール440に転送して、(出力(y2)の組の予測を使用して制御を実装する制御モジュール425の結果として受信してもよい)入力(x3)および関連付けられた出力(y3)の第3のリストをデータ収集モジュール420から受信して、入力(x3)および関連付けられた出力(y3)を使用して1つ以上の予測モデルを更新してもよい。
【0075】
[0087]安定性制御モジュール440は、予測された出力(例えば、線速度および角速度)を使用して、不安定性を回避する方法で自律車両を制御するように構成されている。いくつかの実施形態では、自律車両の動作は、運動挙動推定および動的挙動推定モジュール430の予測された出力に従って修正される。例えば、安定性制御モジュール440は、データ収集モジュール420から動作情報を受信して、運動挙動推定および動的挙動推定モジュール430から予測された出力を受信してもよい。動作情報には、ヨーレート、車輪速度、操舵角、道路状況、環境状況、ならびに安定性制御サブシステム400によって使用される他の情報などの、任意の動作情報が含まれてもよい。安定性制御モジュール440は、車両挙動が安定しているか否かを決定することができる。いくつかの例では、車両の安定性は、自律車両の実際の経路および/または(予測された出力に基づく)予測された経路を意図する経路と比較することによって決定される。車両挙動が安定していると安定性制御モジュール440が決定した場合、制御はプログラムされたように(例えば、計画サブシステム220および制御システム225によって現在命令されているように)継続する。車両挙動が不安定である(例えば、自律車両が、不安定な状態をもたらす起伏のある地形に遭遇している)と安定性制御モジュール440が決定した場合、安定性制御モジュール440は、ジョイスティック/アクセルの位置/変位、操舵、ブレーキなどの補正された入力データの組を計算して、自律車両を安定化して、自律車両を意図する経路に戻してもよい。いくつかの例では、安定性制御モジュールは、更新された予測された出力を取得するための処理のために、計算された補正された入力データの組を運動挙動推定および動的挙動推定モジュール430に送信する。その後、安定性制御モジュール440は、自律車両の(更新された予測された出力に基づいて)更新された予測された経路を、意図する経路と比較することによって、車両挙動が安定するか否かを決定することができる。車両挙動が安定すると安定性制御モジュール440が決定した場合、安定性制御モジュール440は、補正された入力データの組を計画サブシステム220、制御システム225、および/または車両システム115に送信して、自律車両の動作を修正する。安定性制御モジュール440が、車両挙動が依然として不安定になると決定した場合、安定性制御モジュール440は、補正された入力データの組を再計算して、自律車両が意図する経路に戻され、自律車両が安定化されるまでプロセスが繰り返される。
【0076】
[0088]
図5は、自律車両のナビゲーション、掘削、および材料搬送タスクを改善するために運動挙動および動的挙動を推定するための機械学習モデリングシステム500の態様を示すブロック図を示す。
図5に示すように、この例で機械学習モデリングシステム500によって実行される予測には、いくつかの段階、すなわち、予測モデル訓練段階505、運動挙動および動的挙動予測段階510、および予測モデル更新段階515が含まれる。予測モデル訓練段階505は、(本明細書では個々に予測モデル520と呼ばれてもよく、またはまとめて予測モデル520と呼ばれてもよい)他の段階によって使用される1つ以上の予測モデル520a~520n(ここで、「n」が任意の自然数を表す)を構築して訓練する。例えば、予測モデル520には、すべての可能な関数の中から基礎となる関数を推定する1つ以上のベイズモデルが含まれてもよい。様々な例では、予測モデル520の少なくとも1つは、ガウス過程に関する構造および変数(例えば、共分散行列、平均値関数、および独立変数xの関数としてモデル化することができる従属変数y)を含む。ガウス過程が、観測されたデータと一貫している可能な関数にわたる分布を見つけるという点で、予測モデル520におけるガウス過程は、(固定の数のパラメータによって制限されず、代わりに不特定多数のパラメータを考慮する)機械学習ノンパラメトリック手法を用いる、回帰モデルまたは曲線あてはめの置換形態である。ガウス過程が機能するのは、定義された関数空間530に適合するすべての許容可能な関数にわたって事前分布525を指定して、訓練サンプル540を使用して事後分布535を計算して、訓練されたモデル555を使用してデータPOI550上の更新された事後分布545を計算することによってである。
【0077】
[0089]この例における様々な予測モデル520を訓練するために、最初に、ガウス過程事前分布525を生成して、ガウス過程事前分布525は平均値関数および共分散行列を使用して指定してもよい。より具体的には、ガウス過程は、無限次元多変量ガウス分布に類似していて、訓練サンプル540のラベル560の任意の集合は結合ガウス分布である。このガウス過程事前分布525内で、事前知識は、平均値関数および共分散行列の選択を通じて、事前定義された関数空間530(複雑さを低減するために可能な関数に課される制約)について組み込まれてもよい。共分散行列によって、入力空間内で互いに近い値が、互いに近い出力値を生成することが確実になる。訓練サンプル540は、入力または観測値(独立変数x)、およびそれらの出力またはラベル(従属変数y)560を含み、訓練サンプル540は、訓練、試験、および/または検証のサブセットに分割してもよい。いくつかの例では、各予測モデル520の訓練サンプル540は、
図1A、
図1B、
図2A、
図2B、
図3、および
図4に対して説明するように、作業現場環境における自律車両の動作に関連して収集されたセンサデータを含む。
【0078】
[0090]例えば、自律車両の運動挙動および動的挙動を予測するために利用される予測モデル520に対して、観測値には、車両の動作中の、ジョイスティック/アクセルの位置/変位、操舵の位置/角度、ブレーキの位置/変位、道路仰角、気温、および湿度などのセンサデータ(例えば、リアルタイムのセンサデータおよび/または収集された履歴センサデータ)が含まれてもよく、ラベル560には、自律車両の制御のための観測の結果として達成される作業現場環境における自律車両の、ヨーレート、車輪速度、操舵角、線速度、および角速度などの動作情報(例えば、リアルタイム動作情報および/または収集された履歴動作情報)が含まれてもよい。ガウス過程事前分布525から、訓練点および/または試験点の集合は、観測値(独立変数x)において評価された共分散行列に対応するエントリを有する共分散行列内に分布する結合多変量ガウス分布にされる。いくつかの例では、ラベル分布およびノイズ分布を合計することによって、分布ガウスノイズをラベル(従属変数y)560に独立して組み込んでもよい。
【0079】
[0091]事前分布525を定義するガウス過程における平均値関数および共分散行列の形態は、モデル選択中に選択して調整してもよい。いくつかの例では、平均値関数は、0または訓練サンプル540の平均のいずれかであって、一定であってもよい。共分散行列には多くの選択肢があり、いくつかの例では、共分散行列は、カーネルの特性(すなわち、半正定値および対称)に従う限り、多くの形態を有することができる。いくつかの共分散行列は、定数、線形、2乗指数、およびMaternカーネル、ならびに複数のカーネルの構成を含む。例えば、カーネルは、(例えば、空間における入力の類似性が、出力の類似性に対応する)関数の平滑性のために符号化する放射状基底関数(RBF)カーネルを有する定数カーネルの構成であってもよい。共分散行列を指定した後、予測モデル520に対して他の選択肢を指定することができる。例えば、アルファパラメータが、ラベル560上の分布ガウスノイズの分散として定義されてもよく、および/または正規化パラメータが定数平均値関数を参照するものとして定義されてもよく、ここで、Falseの場合は0、またはTrueの場合は訓練データを意味する。
【0080】
[0092]平均値関数および共分散行列が事前分布525に対して識別されると、予測モデル520は、訓練サンプル540と適合され、(ハイパーパラメータの最適化を含む)試験され、有効性確認され、最終的には事前分布525から事後分布535を計算するために使用されてもよい。
図6Aは、事前分布525から事後分布535の例を計算するために使用されている7つの訓練点(観測値)を示す。7つの訓練点(観測値)によって、可能な関数の組が、事前分布525から事後分布535のそれらの関数のみに絞り込まれる。色の濃い線は、事後分布535の1つ以上の関数に対する最良の予測を表して、色の薄い領域は、事後分布535の1つ以上の関数に対する可能性のある領域または不確実性を表す。不確実性は、これらの領域からの追加の観測されたデータを用いてより確実にすることができる。本明細書で説明する訓練メカニズムは、主に予測モデル520の訓練に焦点を当てているが、これらの訓練メカニズムは、他のデータ組(例えば、類似の状況を有する作業現場環境からのデータ組)から訓練された既存の予測モデル520を微調整または更新するために利用することもできる。例えば、いくつかの例では、予測モデル520は、類似の状況を有する作業現場環境からの既存の訓練データを使用して既に事前訓練されていてもよい。これらの場合では、予測モデル520は、本明細書で説明するような観測値およびラベルを含む訓練サンプル540を使用して再訓練することができる。
【0081】
[0093]予測モデル訓練段階505は、訓練された運動挙動および動的挙動モデル555を含む訓練された予測モデル520を出力する。訓練された運動挙動および動的挙動モデル555は、運動挙動および動的挙動予測段階510で使用され、事後分布535または更新された事後分布545、および新規の観測値(x)565に基づいて、出力(y)540の運動挙動および動的挙動予測を生成してもよい。例えば、スキッドステアの予測および制御の場合、新規の観測値565には、ジョイスティック制御または他の制御、例えばアクセル、操舵角、ブレーキなどの位置と、他の状況に関する変数および環境に関する変数とが含まれてもよく、予測された出力540は、推定された、自律車両の直線速度および角速度であってもよい。新規の観測値(x)565を、事後分布535または更新された事後分布545からサンプリングして、予測された出力(y)540を取得してもよい。下流処理では、予測された出力(y)540を自律車両の制御に使用することができる。
【0082】
[0094]予測モデル更新段階515は、更新された事後分布545を計算して、観測されたデータPOI550に基づいて、訓練された運動挙動および動的挙動モデル555を更新する。いくつかの例では、更新された事後分布545を計算するために、データ、および試験観測値は事後分布535から調整される。ガウス過程事前分布525がモデル520を訓練するために選択されたので、更新された事後分布545を計算することは事後分布535を通して加工しやすく、平均値関数および共分散行列によって完全に説明することができる正規分布をもたらす。
図6Bは、共分散行列を使用して事前分布525または事後分布535から更新された事後分布545を計算するために使用される観測されたデータPOI550を示す。観測されたデータPOI550によって、可能な関数の組が、事前分布525または事後分布535から、更新された事後分布545のそれらの関数のみに絞り込まれる。色の濃い線は、更新された事後分布545の1つ以上の関数に対する最良の予測を表して、色の薄い領域は、更新された事後分布545の1つ以上の関数に対する可能性のある領域または不確実性を表す。不確実性は、これらの領域からの追加の観測されたデータを用いてより確実にすることができる。
【0083】
[0095]特定の実施形態では、訓練されたモデルを更新するための新規/追加のデータPOI550を選択するために、スパース方法、例えば、Sparse Online Gaussian Process(SOGP)アルゴリズム、またはSparse Online Noisy Input Gaussian Process(SONIG)アルゴリズムが使用される。例えば、新規/追加のデータPOI550が既存の観測値に実質的に近い場合、データPOI550は、モデルの訓練、および更新された事後分布545の計算には含まれない。新規/追加のデータPOI550が既存の観測値に実質的に近くない場合、データPOI550は、モデルの訓練、および更新された事後分布545の計算に含まれる。
【0084】
[0096]機械学習モデリングシステム500は、完全に新規の動作表面または変化する動作表面での車両の自動化を可能にするために、様々な手法を使用して実装してもよい。例示的な一手法では、車両は、最初に、所定の時間または任意の時間、作業現場環境で手動または遠隔制御を介して動作され、訓練サンプル540に関連するデータ(入力データおよび出力データ)を収集してもよい。入力データ(観測値)は、対応する出力データと関連付けられ、または対応する出力データでラベル付け(例えば、ラベル560)されてもよい。予測モデル訓練段階505は、訓練サンプル540を使用して、事前分布525を有する1つ以上のモデル520を、1つ以上のモデル520が適合、試験、および/または有効性確認されるまで訓練する。いくつかの例では、予測モデル訓練段階505は、自律車両からオフラインで(例えば、自律車両とは別個のシステムまたはコンピュータ装置において)実装されて、1つ以上のモデル520を訓練する。他の実施形態では、予測モデル訓練段階505は、自律車両に(例えば、自律車両のシステムまたはコンピュータ装置において)搭載されて実装され、1つ以上のモデル520を訓練して、事後分布535を計算する。
【0085】
[0097]1つ以上のモデル520が適合、試験、および/または有効性確認されると、1つ以上のモデル520は、運動挙動および動的挙動予測段階510における完全な自律動作のための事後分布535を有する、1つ以上の訓練されたモデル555として(例えば、自律車両のシステムまたはコンピュータ装置において)展開してもよい。自律車両は、作業現場環境で動作してもよく、動作中に、新規の観測値を、運動挙動および動的挙動予測段階510において、1つ以上の訓練されたモデル555における入力として使用して、事後分布535に基づいて、予測された出力540を生成してもよい。車両の自律動作が進行中である場合、選択データ点550を使用して、1つ以上の訓練されたモデル555を、予測モデル更新段階515においてリアルタイムで連続的に更新して、更新された事後分布545を計算して、最終的に制御を改善してもよい。
【0086】
[0098]別の例示的な手法では、車両は、実際の作業現場環境と実質的に類似の作業現場環境で収集された訓練サンプル540上で訓練され適合されたベースラインモデル(例えば、事前訓練されたモデル555)を搭載してもよい。自律車両を、作業現場環境の安全ゾーン(作業現場環境と類似の状況を有するが、車両、人、機械、他の車両などへの損害を最小限に抑えるために試験用に確保された領域)で動作してもよく、動作中に、選択データ点550を使用して予測モデル更新段階515で1つ以上の訓練されたモデル555をリアルタイムで連続的に更新して、(作業現場環境の状況に固有の)更新された事後分布545を計算してもよい。1つ以上の訓練されたモデル555が作業現場環境の安全ゾーンにおける車両の動作からの観測されたデータで更新されると、運動挙動および動的挙動予測段階510における完全自律動作のための更新された事後分布535を有する1つ以上のモデル555を、(例えば、自律車両のシステムまたはコンピュータ装置において)完全に展開してもよい。自律車両は、作業現場環境で動作してもよく、動作中に、新規の観測値を、運動挙動および動的挙動予測段階510において、1つ以上の訓練されたモデル555における入力として使用して、更新された事後分布535に基づいて、予測された出力540を生成してもよい。車両の自律動作が進行中である場合、選択データ点550を使用して、1つ以上の訓練されたモデル555を、予測モデル更新段階515においてリアルタイムで連続的に更新して、更新された事後分布545を再計算して、最終的に制御を改善してもよい。
【0087】
[0099]
図7は、様々な実施形態による、自律車両の運動挙動および動的挙動を推定するための機械学習モデルを実装するためのプロセス700を示すブロック図である。
図7に示す処理は、それぞれの、システム、ハードウェア、またはそれらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装してもよい。ソフトウェアは、非一時的記憶媒体に(例えば、記憶装置に)格納されてもよい。
図7に提示して、以下に説明する方法は、例示的であることを意図していて、限定的であることを意図していない。
図7は、特定のシーケンスまたは特定の順序で行われる様々な処理ステップを示しているが、これらに限定する意図はない。特定の代替実施形態では、ステップは、異なる順序で実行されてもよく、特定のステップは省略されてもよく、またはいくつかのステップは並行して実行されてもよい。
図4に示す実装形態などの特定の実施形態では、
図7に示す処理は、
図5に示す実施形態などの機械学習モデルを訓練するために機械学習モデルに訓練入力を供給するように構成されたコンピュータ装置またはシステムと共に、安定性制御サブシステムの機械学習モデル(例えば、運動挙動推定および動的挙動推定モジュール430によって実装される機械学習モデル)によって実行されてもよい。
【0088】
[0100]ステップ705で、自律車両の運動挙動および動的挙動を推定するためにベースモデルを定義する。様々な実施形態において、ベースモデルは、すべての可能な関数の中から基礎となる関数を推定するベイズモデルである。いくつかの例では、ベイズモデルは、平均値関数および共分散行列によって定義されるガウス過程を含む。ガウス過程は、任意の点x∈Rdにランダム変数f(x)が割り当てられたランダム過程であって、有限数のこれらの変数p(f(x1),...,f(xN))の結合分布が、それ自体ガウス形であり、関数、例えば、f=(f(x1),...,f(xN))、μ=(m(x1),...,m(xN))、およびKij=K(xi,xj)、ここで、mは平均値関数であり、Kは正定値カーネル関数または共分散行列である関数にわたる事前分布p(f|X)を定義する、ランダム過程である。したがって、ガウス過程は、その形状(例えば、平滑性)がKによって定義される関数上の分布である。点xiおよびxjがカーネルによって類似していると見なされる場合、これらの点f(xi)およびf(xj)における関数値も類似していると期待することができる。ガウス過程事前分布p(f|X)は、何らかのデータyを観測した後、ガウス過程事後分布p(f|X,y)に変換することができる。その後、事後分布p(f|X,y)を使用して、新規の入力が与えられた予測を行うことができる。
【0089】
[0101]ステップ710で、作業現場環境における自律車両の動作の表現を含むデータが取得される。取得されたデータには、作業現場環境での自律車両の動作中に1つ以上のセンサ(例えば、ジョイスティック/アクセルの位置/変位、操舵、ブレーキ、道路の高さまたは角度、気温、湿度、線速度、角速度など)から取得されたセンサデータ、および/または前処理モジュール410からの前処理されたセンサデータが含まれる。いくつかの例では、取得されたデータには、独立変数x(入力)および従属変数y(出力)が含まれる。入力は、ジョイスティック/アクセルの位置/変位、操舵、ブレーキなどの作業現場環境における自律車両の動作中の車両システム制御、ならびに気温、降水量、湿度、経路表面上のインチでの積雪量、砂利表面の深さ、傾斜角または勾配角などの作業現場環境における自律車両の動作中に特定された環境状況に関連するデータである。出力は、自律車両の制御のための入力の結果として達成される、作業現場環境における自律車両のヨーレート、車輪速度、操舵角、線速度、および角速度などの動作情報である。
【0090】
[0102]ステップ715で、ベースモデルを訓練して、取得されたデータに適合して、独立変数(x)(入力)を使用して従属変数y(出力)を予測することができる訓練されたモデルを生成する。訓練および適合は、取得されたデータからの観測された独立変数x(入力)および従属変数y(出力)を使用して、プロセス事前分布p(f|X)をガウス過程事後分布p(f|X,y)に変換することを含む。例えば、ガウス過程は、ベースモデルが関数上の事前分布p(f|X)を説明することを可能にするので、ベイズの規則を使用して、取得されたデータを観測することによってガウス過程を更新して、ベースモデルが関数にわたって事後分布p(f|X,y)を説明することを可能にすることができる。更新されたガウス過程は、観測されたデータに適合する可能な関数に制約され、例えば、1つ以上の関数の平均値は、観測されたデータ内のすべての訓練点を遮断する。
【0091】
[0103]ステップ720で、訓練されたモデルを自律動作のために展開する。いくつかの例では、事後分布p(f|X,y)を有する訓練されたモデルを自律車両に実装して、作業現場環境で車両を制御するための予測を行う。訓練されたモデルは、自律車両の、システムまたはコンピュータ装置に訓練されたモデルをアップロードして保存することによって展開してもよい。特定の実施形態では、自律機械は、訓練されたモデルの以前のバージョンが既に展開されている場合がある。そうである場合、720における展開は、例えば、機械学習モデルの機能および他のパラメータを自律車両に通信することによって、既存のモデルを更新することを含んでもよい。特定の実施形態では、訓練されたモデルは、展開前に最適化される(例えば、ハイパーパラメータを最適化してもよい)。最適化は、例えば関数に対する事後分布p(f|X,y)のヒストグラムを計算することによって、訓練されたモデルの状態の統計的分析によって決定してもよい。その後、自律車両を作業現場環境で動作させてもよく、動作中に、新規の観測値を、訓練されたモデルの入力として使用して、事後分布p(f|X,y)に基づいて、予測された出力を生成してもよい。車両の自律動作が進行中である場合、ステップ725で、訓練されたモデルを、選択データ点(例えば、新たに観測された独立変数x(入力)および従属変数y(出力))を使用してリアルタイムで連続的に更新して、更新された事後分布p(f|X,y’)を再計算して、最終的に作業現場環境で車両を制御するための予測を改善する。いくつかの例では、訓練されたモデルを更新するための新規/追加のデータ点を選択するためにスパース方法が使用される(例えば、自律車両が作業現場環境で動作するときに観測されるすべてのデータ点が、モデルを更新して、更新された事後分布p(f|X,y’)を計算するために使用されるわけではない)。
【0092】
[0104]
図8は、様々な実施形態による、自律車両に動的安定性制御を提供するためのプロセス800を図示するフローチャートである。
図8に示す処理は、それぞれの、システム、ハードウェア、またはそれらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装してもよい。ソフトウェアは、非一時的記憶媒体に(例えば、記憶装置に)格納されてもよい。
図8に提示して、以下に説明する方法は、例示的であることを意図していて、限定的であることを意図していない。
図8は、特定のシーケンスまたは特定の順序で行われる様々な処理ステップを示しているが、これらに限定する意図はない。特定の代替実施形態では、ステップは、異なる順序で実行されてもよく、特定のステップは省略されてもよく、またはいくつかのステップは並行して実行されてもよい。
図2Aおよび
図4に示す実施形態などの特定の実施形態では、
図8に示す処理は、
図5に示す実施形態などの機械学習モデルを訓練するために機械学習モデルに訓練入力を供給するように構成されたコンピュータ装置またはシステムと共に、安定性制御サブシステムの機械学習モデル(例えば、運動挙動推定および動的挙動推定モジュール430を実装する機械学習モデル)によって実行されてもよい。
【0093】
[0105]ステップ805で、1つ以上のセンサによって感知されたセンサデータ、および/または他の入力が自律車両管理システムによって受信される。例えば、センサデータは、GPSセンサ、自律車両に取り付けられた1つ以上のカメラ、加速度計、操舵センサ、ブレーキセンサ、ジョイスティック変位センサ、LIDARなどから受信してもよい。ステップ810で、受信されたセンサデータに対して(例えば、整合性モジュールによって実行される)整合性チェックが実行され、整合性チェックには、受信されたセンサデータに対して合理性チェックおよび欠陥チェックを実行することと、正規化されたセンサデータを生成するために受信されたセンサデータを正規化することとが含まれる。ステップ815で、ステップ805で受信され、ステップ810で正規化されたセンサデータに基づいて、自律車両管理システムによって、一貫した内部地図が生成および/または更新される。特定の実施形態では、知覚サブシステムは、センサデータを受信して、内部地図を生成するように構成されている。内部地図が事前に生成されている場合、内部地図を生成することは、新たに受信したセンサデータに基づいて、一貫した内部地図を更新することを含んでもよい。前述したように、一貫した内部地図は、自律車両の環境の3次元地図であってもよい。ステップ815で生成された内部地図を、自律車両の状態および自律車両の周囲の環境の状態が変化するにつれて、継続的に更新してもよい。ステップ815の処理によって、一貫した内部地図が最新の状態に保たれることが確実になる。
【0094】
[0106]ステップ820で、自律車両管理システムは、ステップ815で生成された内部地図を使用して動作計画を生成して、自律車両によって達成される目標、安全上の考慮事項、位置特定情報などの他の入力に基づいて、動作計画を生成する。特定の実施形態では、ステップ820の処理は、自律車両管理システムの計画サブシステムによって実行されてもよい。計画サブシステムがステップ815で生成された内部地図にアクセスしてもよい様々な方法がある。一例では、計画サブシステムが内部地図にアクセスして照会することを可能にするアプリケーションプログラミングインタフェース(API)を提供してもよい。他の例では、計画サブシステムが内部地図にアクセスして使用することを可能にする他の機構が提供されてもよい。
【0095】
[0107]任意選択のステップ825で、計画サブシステムは、命令を1つ以上のセンサに送信して、センサの挙動を制御する。例えば、センサによって取り込まれたセンサデータ、および/またはセンサから自律車両管理システムに通信されるセンサデータは、自律車両管理システムによって動的でオンデマンドに制御してもよい。この制御により、自律車両管理システムが変更されたセンサデータを受信することができ(ステップ805において)、変更されたセンサデータに基づいて内部地図を再生成または更新してもよい。
【0096】
[0108]ステップ830で、自律車両の挙動は、ステップ820で生成された動作計画に基づいて制御される。本明細書で説明するように、いくつかの実施形態では、計画サブシステムによって生成された動作計画は、制御サブシステムに通信されてもよく、制御サブシステムは、その後、車両システムの1つ以上のシステムを制御して、自律車両の挙動を制御して、安全な方法で目標を達成してもよい。自律車両管理システムは、様々なAIおよび深層学習に基づくモデルおよび技術を使用して、その処理を実行して、自律車両の挙動を制御してもよい。例えば、AIに基づく技術(例えば、ベイズモデル)を、制御サブシステム(例えば、安定性制御サブシステム)が使用して、自律車両の運動挙動および動的挙動を推定して、自律車両の制御を改善してもよい。別の例として、計画サブシステムは、AIに基づく技術(例えば、ベイズモデル)を使用して、特定の目標を安定して達成するために自律車両によって実行される1つ以上の動作のシーケンスを含む動作計画を生成してもよい。
【0097】
[0109]様々な実施形態では、動作計画に従った自律車両の制御は、収集されたデータを取得することと、自律車両の運動挙動および動的挙動を推定するために収集されたデータを使用することとを含んでもよい。いくつかの例では、安定性制御サブシステムは、自律動作のために収集されたデータに対する1つ以上の予測モデルを訓練して、適合して、更新する。他の例では、安定性制御サブシステムは、リアルタイムで1つ以上の予測モデルを継続的に更新して、自律車両の制御を継続的に改善する。さらに他の例では、安定性制御サブシステムは、自律車両の制御を改善(例えば、作業現場環境における安定性をより良くすること)するために、1つ以上の予測モデルを使用して、新規の入力変数に基づいて出力を予測する。例えば、安定性制御サブシステムは、入力(x1)および関連付けられた出力(y1)のリストを受信して、
入力(x1)および関連付けられた出力(y1)に対して1つ以上の予測モデルを訓練して、適合して、更新して、計画サブシステムおよび制御システムが動作またはタスク(例えば、20メートル先で右折すること)を達成するために識別した入力の第2のリスト(x2)を受信して、訓練された1つ以上の予測モデルを使用して出力の組(y2)を予測して、(出力(y2)の組の予測を使用して制御を実装することの結果として受信してもよい)入力(x3)および関連付けられた出力(y3)の第3のリストを受信して、入力(x3)および関連付けられた出力(y3)を使用して1つ以上の予測モデルを更新してもよい。
【0098】
[0110]動作計画に従った自律車両の制御は、不安定性を回避する方法で自律車両を制御するために、予測された出力の組(y2)(例えば、線速度および角速度)を使用することをさらに含んでもよい。いくつかの実施形態では、自律車両の動作を、予測された出力の組(y2)に従って修正する。例えば、安定性制御サブシステムは、動作情報を受信して、出力を予測してもよい。動作情報には、ヨーレート、車輪速度、操舵角、ならびに安定性制御システムによって使用される他の情報などの、任意の動作情報が含まれてもよい。安定性制御サブシステムは、車両挙動が安定しているか否かを決定することができる。いくつかの例では、車両の安定性は、自律車両の実際の経路および/または(予測された出力に基づく)予測された経路を意図する経路と比較することによって決定される。車両挙動が安定していると安定性制御サブシステムが決定した場合、制御はプログラムされたように(例えば、計画サブシステムおよび制御システムによって現在命令されているように)継続する。車両挙動が不安定であると安定性制御サブシステムが決定した場合、安定性制御サブシステムは、ジョイスティック/アクセルの位置/変位、操舵、ブレーキなどの補正された入力データの組を計算して、自律車両を安定化して、自律車両を意図する経路に戻してもよい。いくつかの例では、安定性制御サブシステムは、計算された補正された入力データの組を1つ以上の予測モデルに入力して、更新された予測された出力を取得する。その後、安定性制御サブシステムは、自律車両の(更新された予測された出力に基づいて)更新された予測された経路を、意図する経路と比較することによって、車両挙動が安定するか否かを決定することができる。車両挙動が安定すると安定性制御サブシステムが決定した場合、安定性制御サブシステムは、補正された入力データの組を計画サブシステム、制御システム、および/または車両システムに送信して、自律車両の動作を修正する。安定性制御サブシステムが、車両挙動が依然として不安定になると決定した場合、安定性制御サブシステムは、補正された入力データの組を再計算して、自律車両が意図する経路に戻され、自律車両が安定化されるまでプロセスが繰り返される。
【0099】
[0111]車両の自律動作が進行中である場合、ステップ835で、1つ以上の予測モデルを、選択データ点(例えば、新たに観測された独立変数x(入力)および従属変数y(出力))を使用してリアルタイムで連続的に更新して、更新された事後分布を再計算して、最終的に作業現場環境で車両を制御するための予測を改善する。いくつかの例では、訓練されたモデルを更新するための新規/追加のデータ点を選択するためにスパース方法が使用される(例えば、自律車両が作業現場環境で動作するときに観測されるすべてのデータ点が、モデルを更新して、更新された事後分布を計算するために使用されるわけではない)。
【0100】
[0112]
図9は、様々な実施形態による、予測モデルのリアルタイム更新のためのプロセス900を示すフローチャートである。
図9に示す処理は、それぞれの、システム、ハードウェア、またはそれらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装してもよい。ソフトウェアは、非一時的記憶媒体に(例えば、記憶装置に)格納されてもよい。
図9に提示して、以下に説明する方法は、例示的であることを意図していて、限定的であることを意図していない。
図9は、特定のシーケンスまたは特定の順序で行われる様々な処理ステップを示しているが、これらに限定する意図はない。特定の代替実施形態では、ステップは、異なる順序で実行されてもよく、特定のステップは省略されてもよく、またはいくつかのステップは並行して実行されてもよい。
図2Aおよび
図4に示す実施形態などの特定の実施形態では、
図9に示す処理は、
図5に示す実施形態などの機械学習モデルを訓練するために機械学習モデルに訓練入力を供給するように構成されたコンピュータ装置またはシステムと共に、安定性制御サブシステムの機械学習モデル(例えば、運動挙動推定および動的挙動推定モジュール430を実装する機械学習モデル)によって実行されてもよい。
【0101】
[0113]ステップ905で、自律車両は、所定の時間または任意の時間、手動または遠隔制御を介して動作され、訓練サンプルに対する作業現場環境に関連するデータ(入力データおよび出力データ)を収集する。データを複数のセンサによって収集してもよく、データの少なくとも一部を、予測モデル(1つ以上の予測モデル)を訓練するためのセンサデータの訓練の組として指定してもよい。いくつかの例では、センサデータの訓練の組は、自律車両の制御部システムによって取得される。センサデータの訓練の組は、作業現場環境における自律車両の動作の表現を提供する。ステップ910で、入力データ(観測値)は、対応する出力データと関連付けられ、または対応する出力データでラベル付けされる。いくつかの例では、センサデータの第1の組は、入力データ(例えば、アクセル、ブレーキ、および操舵の変位)を対応する出力データ(例えば、入力の結果として生じる、自律車両の直線速度および角速度)と関連付ける方法、またはラベル付けする方法でデータ行列に保存される。
【0102】
[0114]ステップ915で、訓練サンプルを使用して、事前分布を有する予測モデル(1つ以上の予測モデル)が、モデルが適合、試験、および/または有効性確認されるまで訓練される。いくつかの例では、予測モデルはガウス過程を含み、予測モデルが、訓練されたモデル(1つ以上の訓練されたモデル)を生成するために、センサデータの訓練の組を使用して訓練される。ガウス過程は、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を定義する1つ以上の関数にわたる事前分布を定義して、訓練が、センサデータの訓練の組に基づいて、訓練されたモデルに対して1つ以上の関数にわたる事後分布を計算することを含む。独立変数に、自律車両が動作している間の、ジョイスティックまたはアクセルの位置または変位、操舵の位置または角度、ブレーキの位置または変位、道路仰角、気温、湿度、またはそれらの組み合わせが含まれてもよく、従属変数に、自律車両が動作している間の、線速度、角速度、またはそれらの組み合わせが含まれてもよい。いくつかの例では、自律車両からオフラインで(例えば、自律車両とは別個のシステムまたはコンピュータ装置において)訓練を実装して、予測モデルを訓練して、事後分布を計算する。他の実施形態では、訓練を、自律車両に(例えば、自律車両のシステムまたはコンピュータ装置において)搭載して実装して、予測モデルを訓練して、事後分布を計算する。
【0103】
[0115]予測モデルが適合、試験、および/または有効性確認されると、モデルは、作業現場環境における完全自律動作のための事後分布を有する訓練されたモデルとしてステップ920で(例えば、自律車両のシステムまたはコンピュータ装置において)展開される。訓練されたモデルは、自律車両の、システムまたはコンピュータ装置に訓練されたモデルをアップロードして保存することによって展開してもよい。特定の実施形態では、自律機械は、訓練されたモデルの以前のバージョンが既に展開されている場合がある。そうである場合、920における展開は、例えば、機械学習モデルの機能および他のパラメータを自律車両に通信することによって、既存のモデルを更新することを含んでもよい。特定の実施形態では、訓練されたモデルは、展開前に最適化される(例えば、ハイパーパラメータを最適化してもよい)。
【0104】
[0116]ステップ925で、自律車両を、作業現場環境において自律的に動作させて、動作中に、新規の観測値を、1つ以上の訓練されたモデルにおける入力として使用して、事後分布に基づいて、予測された出力を生成する。いくつかの例では、センサデータの第1の組は、自律車両の制御部システムによって取得される。センサデータの第1の組は、作業現場環境における自律車両の動作の表現を提供する。第1の組の出力データは、第1の組のセンサデータに基づいて、訓練されたモデルによって推定してもよい。訓練されたモデルのガウス過程は、作業現場環境における自律車両の動作のために、独立変数と従属変数との間の関係を定義する1つ以上の関数にわたる事後分布を定義する。
【0105】
[0117]ステップ930で、本明細書で詳細に説明するように、予測された出力を使用して、自律車両の制御を改善する。いくつかの例では、作業現場環境における自律車両の1つ以上の動作は、入力データの第1の組を使用して制御部システムによって制御される。第1の組の入力データは、第1の組のセンサデータおよび第1の組の出力データから導出される。例えば、入力データの第1の組を使用して作業現場環境における自律車両の1つ以上の動作を制御することは、車両挙動が不安定であるか否かを決定するために、制御部システムが、自律車両の、実際の経路および/または予測される経路を意図する経路と比較することと、車両挙動が不安定である場合、制御部システムが、自律車両を安定化して、自律車両を意図する経路に戻すために、入力データの第1の組を計算することとを含んでもよい。制御することは、訓練されたモデルが、入力データの第1の組に基づいて出力データの第3の組を推定することと、制御部システムが、入力データの第1の組が自律車両を安定化して、出力データの第3の組の推定に基づいて自律車両を意図する経路に戻すと決定することと、制御部システムが、入力データの第1の組を使用して作業現場環境における自律車両の1つ以上の動作を制御するための命令を生成することとをさらに含んでもよい。
【0106】
[0118]車両の自律動作が進行中である場合、ステップ935で、訓練されたモデルを、リアルタイムで連続的に更新して、更新された事後分布を計算して、最終的に作業現場環境で車両を制御するための予測を改善する。いくつかの例では、実際の出力データは、作業現場環境における自律車両の1つ以上の動作から、制御部システムによって取得される。いくつかの例では、訓練されたモデルを更新するために実際の出力データから新規/追加のデータ点を選択するために、スパース方法を使用する(例えば、自律車両が作業現場環境で動作するときに観測されるすべてのデータ点が、モデルを更新して、更新された事後分布を計算するために使用するわけではない)。制御部システムは、第1の組の入力データおよび実際の出力データを用いて、訓練されたモデルを更新してもよい。更新された訓練されたモデルのガウス過程は、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を定義する1つ以上の関数にわたる、更新された事後分布を定義する。その後、制御部システムは、作業現場環境における自律車両の動作の別の表現を提供するセンサデータの第2の組を取得して、更新された訓練されたモデルが、センサデータの第2の組に基づいて出力データの第2の組を推定してもよい。制御部システムは、第2の組のセンサデータおよび第2の組の出力データに基づいて定義された入力データを使用して、作業現場環境における自律車両の1つ以上の動作を制御する。
【0107】
[0119]
図10は、様々な実施形態による、予測モデルのリアルタイム更新のためのプロセス1000を図示するフローチャートである。
図10に示す処理は、それぞれの、システム、ハードウェア、またはそれらの組み合わせの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装してもよい。ソフトウェアは、非一時的記憶媒体に(例えば、記憶装置に)格納されてもよい。
図10に提示して、以下に説明する方法は、例示的であることを意図していて、限定的であることを意図していない。
図10は、特定のシーケンスまたは特定の順序で行われる様々な処理ステップを示しているが、これらに限定する意図はない。特定の代替実施形態では、ステップは、異なる順序で実行されてもよく、特定のステップは省略されてもよく、またはいくつかのステップは並行して実行されてもよい。
図2Aおよび
図4に示す実施形態などの特定の実施形態では、
図10に示す処理は、
図5に示す実施形態などの機械学習モデルを訓練するために機械学習モデルに訓練入力を供給するように構成されたコンピュータ装置またはシステムと共に、安定性制御サブシステムの機械学習モデル(例えば、運動挙動推定および動的挙動推定モジュール430を実装する機械学習モデル)によって実行されてもよい。
【0108】
[0120]ステップ1005で、実際の作業現場環境と類似の作業現場環境で収集された訓練サンプルで訓練され適合されたベースラインモデル(例えば、事前訓練されたモデル)を、自律車両に搭載する。いくつかの例では、自律車両は、ガウス過程を有するベースラインモデルを搭載する。ベースラインモデルを、作業現場環境と実質的に類似の別の作業現場環境における自律車両の動作中に収集されたセンサデータに対して、訓練してもよい。ステップ1010で、自律車両を、作業現場環境の安全ゾーン(作業現場環境と実質的に類似の状況を有するが、車両、人、機械、他の車両などへの損害を最小限に抑えるために試験用に確保された領域)で動作させて、動作中に、選択データ点を使用してベースラインモデルを連続的に訓練してリアルタイムで更新して、(作業現場環境の状況に固有の)更新された事後分布を計算する。いくつかの例では、作業現場環境での車両を動作させることの間に、複数のセンサが、センサデータの予備の組を収集して、制御部システムが、訓練されたモデルを生成するために、センサデータの予備の組を用いてベースラインモデルを更新する。訓練されたモデルのガウス過程は、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を定義する1つ以上の関数にわたって更新された事後分布を定義する。
【0109】
[0121]ステップ1015で、ベースラインモデルが訓練され、作業現場環境の安全ゾーンにおける車両の動作からの観測されたデータで更新されると、訓練されたモデルが、作業現場環境における完全自律動作のための更新された事後分布を有して、(例えば、自律車両のシステムまたはコンピュータ装置において)完全に展開される。訓練されたモデルは、自律車両の、システムまたはコンピュータ装置に訓練されたモデルをアップロードして保存することによって展開してもよい。特定の実施形態では、自律機械は、訓練されたモデルの以前のバージョンが既に展開されている場合がある。そうである場合、920における展開は、例えば、機械学習モデルの機能および他のパラメータを自律車両に通信することによって、既存のモデルを更新することを含んでもよい。特定の実施形態では、訓練されたモデルは、展開前に最適化される(例えば、ハイパーパラメータを最適化してもよい)。
【0110】
[0122]ステップ1020で、自律車両を作業現場環境で動作させて、動作中に、新規の観測値を訓練されたモデルにおいて入力として使用して、更新された事後分布に基づいて、予測された出力を生成する。いくつかの例では、センサデータの第1の組は、自律車両の制御部システムによって取得される。センサデータの第1の組は、作業現場環境における自律車両の動作の表現を提供する。第1の組の出力データは、第1の組のセンサデータに基づいて、訓練されたモデルによって推定してもよい。訓練されたモデルのガウス過程は、1つ以上の関数にわたる更新された事後分布を定義する。
【0111】
[0123]ステップ1025で、本明細書で詳細に説明するように、予測された出力を使用して、自律車両の制御を改善する。いくつかの例では、作業現場環境における自律車両の1つ以上の動作は、入力データの第1の組を使用して制御部システムによって制御される。第1の組の入力データは、第1の組のセンサデータおよび第1の組の出力データから導出される。例えば、入力データの第1の組を使用して作業現場環境における自律車両の1つ以上の動作を制御することは、車両挙動が不安定であるか否かを決定するために、制御部システムが、自律車両の、実際の経路および/または予測される経路を意図する経路と比較することと、車両挙動が不安定である場合、制御部システムが、自律車両を安定化して、自律車両を意図する経路に戻すために、入力データの第1の組を計算することとを含んでもよい。制御することは、訓練されたモデルが、入力データの第1の組に基づいて出力データの第3の組を推定することと、制御部システムが、入力データの第1の組が自律車両を安定化して、出力データの第3の組の推定に基づいて自律車両を意図する経路に戻すと決定することと、制御部システムが、入力データの第1の組を使用して作業現場環境における自律車両の1つ以上の動作を制御するための命令を生成することとをさらに含んでもよい。
【0112】
[0124]車両の自律動作が進行中である場合、ステップ1030で、訓練されたモデルを、リアルタイムで連続的に更新して、更新された事後分布を再計算して、最終的に作業現場環境で車両を制御するための予測を改善する。いくつかの例では、実際の出力データは、作業現場環境における自律車両の1つ以上の動作から、制御部システムによって取得される。いくつかの例では、訓練されたモデルを更新するために実際の出力データから新規/追加のデータ点を選択するために、スパース方法を使用する(例えば、自律車両が作業現場環境で動作するときに観測されるすべてのデータ点が、モデルを更新して、更新された事後分布を計算するために使用するわけではない)。制御部システムは、第1の組の入力データおよび実際の出力データを用いて、訓練されたモデルを更新してもよい。更新された訓練されたモデルのガウス過程は、作業現場環境における自律車両の動作のための独立変数と従属変数との間の関係を定義する1つ以上の関数にわたる、更新された事後分布を定義する。その後、制御部システムは、作業現場環境における自律車両の動作の別の表現を提供するセンサデータの第2の組を取得して、更新された訓練されたモデルが、センサデータの第2の組に基づいて出力データの第2の組を推定してもよい。制御部システムは、第2の組のセンサデータおよび第2の組の出力データに基づいて定義された入力データを使用して、作業現場環境における自律車両の1つ以上の動作を制御する。
【0113】
[0125]
図11は、本開示に説明する、システムおよびサブシステムのうちの1つ以上を実装するために、および/または本明細書で説明する、プロセスまたは方法のいずれかを実行するために使用することができる例示的なコンピュータシステム1100の簡略化されたブロック図を示す。例えば、自律車両管理システムがソフトウェアで実装される実施形態では、ソフトウェアは、
図11に示すコンピュータシステム1100などのコンピュータシステムによって実行されてもよい。コンピュータシステム1100は、例えば、プロセッサ、メモリ、ストレージ、およびI/Oデバイス(例えば、モニタ、キーボード、ディスクドライブ、インターネット接続など)を含んでもよい。いくつかの例では、コンピュータシステム1100はまた、他の構成要素、回路、または特殊な機能を実行するための他の特殊なハードウェアを含んでもよい。いくつかの動作設定では、コンピュータシステム1100は、1つ以上のユニットを含むシステムとして構成されてもよく、ユニットの各々がソフトウェアのみ、ハードウェアのみ、またはそれらの何らかの組み合わせのいずれかでプロセスのいくつかの態様を実行するように構成されている。コンピュータシステム1100は、様々な機能を果たすために追加のシステムを含むように構成してもよい。
【0114】
[0126]
図11の実施形態に示すように、コンピュータシステム1100は、1つ以上の処理ユニット1108、(システムメモリ1110、コンピュータ可読媒体1120、およびディスク記憶装置1116を含む)メモリの組、およびI/Oサブシステム1106を含む。これらの構成要素は、コンピュータシステム1100の、様々なシステムおよび様々なサブシステムが意図したように互いに通信するための機構を提供するバスサブシステムを介して、互いに通信可能に接続されてもよい。バスサブシステムは、メモリバスまたはメモリコントローラ、周辺バス、様々なバスアーキテクチャのいずれかを使用するローカルバスなどを含むいくつかのタイプの任意のバス構造であってもよい。いくつかの実施形態では、構成要素1106、1108、および1110は、マザーボード1104上に配置されてもよい。
【0115】
[0127]処理ユニット1108は、1つ以上のプロセッサを含んでもよい。プロセッサは、シングルコアプロセッサまたはマルチコアプロセッサであってもよい。処理ユニット1108は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用して実装することもできる。プロセッサは、システムメモリ1110、コンピュータ可読記憶媒体1120、またはディスク1116などの様々なメモリに格納された命令(例えば、プログラム、コードなど)を実行するように構成されている。プログラムまたはプロセスは、順次または並列に実行されてもよい。特定の実施形態では、コンピュータシステム1100は、1つ以上の仮想マシンを実行する仮想化コンピューティング環境を提供してもよい。このような実施形態では、1つ以上のプロセッサ、または1つ以上のプロセッサのコアを各仮想マシンに割り当ててもよい。いくつかの実施形態では、処理ユニット1108は、グラフィックスプロセッサ(GPU)、デジタル信号プロセッサ(DSP)などの専用コプロセッサを含んでもよい。
【0116】
[0128]メモリの組には、揮発性記憶装置および非揮発性記憶装置を含む1つ以上の非一時的記憶装置が含まれてもよい。処理ユニット1108の1つ以上のプロセッサによって実行される場合に本明細書で説明する機能を提供するソフトウェア(プログラム、コードモジュール、命令)を、メモリのうちの1つ以上に格納してもよい。また、特定の実施形態では、フラッシュメモリ1112が含まれてもよい。システムメモリ1110は、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)(例えば、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)など)、および固定命令が格納される不揮発性読取り専用メモリ(ROM)またはフラッシュメモリを含む多数のメモリを含んでもよい。いくつかの実装形態では、起動中などにコンピュータシステム1100内の要素同士の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)は、通常、ROMに格納されてもよい。RAMは、通常、処理ユニット1108によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。
【0117】
[0129]実行可能コード、プログラム命令、アプリケーション、およびプログラムデータは、システムメモリ1110の中に搭載され、処理ユニット1108の1つ以上のプロセッサによって実行されてもよい。また、システムメモリ1110には、1つ以上のオペレーティングシステムが搭載されてもよい。オペレーティングシステムの例には、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、Linux(登録商標)オペレーティングシステムの異なるバージョン、および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSのオペレーティングシステムなどのモバイルオペレーティングシステムが含まれるが、これらに限定されない。
【0118】
[0130]特定の実施形態では、いくつかの実施形態の機能を提供するために使用されるプログラミングモジュールおよび命令、データ構造、ならびに他のデータ(まとめて1122)は、コンピュータ可読媒体1120に格納してもよい。コンピュータシステム1100に接続された媒体ドライブ1118は、コンピュータ可読媒体1120から情報を読み取り、および/またはコンピュータ可読媒体1120に情報を書き込むために提供されてもよい。コンピュータ可読媒体1120は、磁気ディスクドライブ、CD-ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などの光ディスクドライブ、Zip(登録商標)ドライブ、様々なタイプのメモリカードおよびドライブ(例えば、USBフラッシュメモリ、SDカード)、DVDディスク、デジタルビデオテープ、ソリッドステートドライブ(SSD)などの非揮発性記憶装置を含んでもよい。
【0119】
[0131]I/Oサブシステム1106は、コンピュータシステム1100に情報を入力するため、および/またはコンピュータシステム1100から情報を出力、またはコンピュータシステム1100を介して情報を出力するための装置および機構を含んでもよい。概して、入力装置という用語の使用は、コンピュータシステム1100に情報を入力するためのすべての可能な種類の装置および機構を含むことを意図している。入力機構には、例えば、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有する音声入力装置、マイクロフォン、カメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダなどが含まれてもよい。概して、出力装置という用語の使用は、コンピュータシステム1100からユーザまたは他のコンピュータに情報を出力するためのすべての可能な種類の装置および機構を含むことを意図している。このような出力装置には、1つ以上の種類の、ディスプレイと、表示灯と、またはオーディオ出力装置、プリンタ、スピーカ、ヘッドホン、音声出力装置などの非視覚ディスプレイとが含まれてもよい。I/Oサブシステム1106はまた、ディスプレイ1114などのI/Oサブシステム1106の外部の、入力装置および/または出力装置へのインタフェースを含んでもよい。
【0120】
[0132]コンピュータシステム1100は、コンピュータシステム1100が他のコンピュータシステムおよびネットワークと通信する(例えば、データを受信して、データを送信する)ためのインタフェースを提供する通信サブシステム1124を含んでもよい。通信サブシステム1124は、有線通信プロトコルおよび/または無線通信プロトコルの両方をサポートしてもよい。例えば、通信サブシステム1124によって、コンピュータシステム1100が、遠隔センサ、インターネットなどのネットワークなどと通信可能に接続することが可能になってもよい。Wi-Fi、Bluetooth(登録商標)(および/または短距離でデータを交換するための他の規格は、短波長無線送信を使用するものを含む)、USB通信、イーサネット通信、移動体通信、超音波ローカルエリア通信プロトコルなどの様々な異なる通信プロトコルおよびフォーマットを通信に使用してもよい。
【0121】
[0133]コンピュータシステム1100は、モバイル装置(例えば、携帯電話、タブレットコンピュータ、PDAなど)、パーソナルコンピュータ、ワークステーション、または任意の他のデータ処理システムを含む、様々なタイプのうちの1つであってもよい。コンピュータおよびネットワークの絶えず変化する性質に起因して、
図11に示すコンピュータシステム1100の説明は、特定の例としてのみ意図されている。
図11に示すシステムと比べて、数が多いまたは数が少ない構成要素を有する多くの他の構成が可能である。
【0122】
[0134]前述のプロセスの結果に基づく少なくともいくつかの値は、その後の使用のために保存することができる。さらに、コンピュータ可読媒体を使用して、コンピュータによって前述のプロセスのいずれか1つを実行するための1つ以上のコンピュータプログラムを格納(例えば、有形に実施する)することができる。コンピュータプログラムは、例えば、汎用プログラミング言語(例えば、Pascal、C言語、C++、Java、Python)および/または何らかの特殊な特定用途向け言語(PHP、JavaScript、XML)で説明してもよい。いくつかの実施形態では、例としてJavaScriptが使用されていることに留意されたい。しかしながら、他の実施形態では、別のスクリプト言語および/またはJavaScriptの変形形態も同様に利用することができる。
【0123】
[0135]本開示に説明する特徴、構造、または特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。本明細書の説明では、様々な実施形態の完全な理解を提供するために、プログラミング、ソフトウェアモジュール、ユーザ選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例など、多数の特定の詳細が提供される。しかしながら、当業者であれば、特定の詳細のうちの1つ以上を用いずに、または他の方法、構成要素、材料などを用いて、特徴を実施してもよいことを認識するであろう。他の例では、新規性ある態様を不明瞭にすることを避けるために、周知の構造、材料、または動作は詳細に図示または説明されていない。
【0124】
[0136]本明細書に含まれる概略フローチャート図は、概して論理フローチャート図として示されている。したがって、図示された順序およびラベル付けされたステップは、提示された方法の一実施形態を示す。機能、論理、または効果において、図示する方法の1つ以上のステップ、またはその一部と同等である他のステップおよび方法を考えることができる。さらに、使用されるフォーマットおよび記号は、方法の論理ステップを説明するために提供され、方法の範囲を限定するものではないと理解される。フローチャート図では様々な矢印のタイプおよび線のタイプを使用してもよいが、これらは対応する方法の範囲を限定するものではないと理解される。実際、いくつかの矢印または他のコネクタを使用して、方法の論理フローのみを示してもよい。例えば、矢印は、図示する方法の列挙するステップ同士の間の不特定の時間の長さの待機時間または監視時間を示してもよい。さらに、特定の方法が行われる順序は、示している対応するステップの順序に厳密に準拠してもしなくてもよい。
【0125】
[0137]特定の実施形態を説明したが、様々な修正形態、変更形態、代替構造、および均等物が可能である。実施形態は、ある特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の実施形態が特定の一連のトランザクションおよびステップを使用して説明されているが、これは限定することを意図するものではないことが当業者には明らかである。いくつかのフローチャートは、動作をシーケンシャルプロセスとして説明しているが、動作の多くは、並行して実行または同時に実行することができる。また、動作の順序を入れ替えてもよい。プロセスは、図に含まれていない追加のステップを有してもよい。前述の実施形態の様々な特徴および態様は、個別または一緒に使用してもよい。
【0126】
[0138]さらに、特定の実施形態は、ハードウェアとソフトウェアとの特定の組み合わせを使用して説明されているが、ハードウェアとソフトウェアとの他の組み合わせも可能であることを認識されたい。特定の実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組み合わせを使用して実装してもよい。本明細書で説明する様々なプロセスは、任意の組み合わせで同じプロセッサまたは異なるプロセッサ上で実装することができる。
【0127】
[0139]装置、システム、構成要素、またはモジュールが特定の動作または機能を実行するように構成されるものとして説明されている場合、このような構成は、例えば、動作を実行するように電子回路を設計することによって、コンピュータ命令もしくはコードを実行すること、または非一時的メモリ媒体に格納されたコードもしくは命令を実行するようにプログラムされたプロセッサもしくはコアによって、動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはこれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれらに限定されない様々な技術を使用して通信してもよく、プロセスの異なる対は異なる技術を使用してもよく、またはプロセスの同じ対は異なる時間に異なる技術を使用してもよい。
【0128】
[0140]実施形態の完全な理解を提供するために、本開示において具体的な詳細が与えられる。しかしながら、実施形態は、これらの具体的な詳細なしで実施してもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、および技術が、実施形態が不明瞭になることを避けるために、不必要な詳細なしで示されている。この説明は、例示的な実施形態のみを提供して、他の実施形態の、範囲、適用性、または構成を限定することを意図しない。むしろ、実施形態の前述の説明は、様々な実施形態を実装するための可能な説明を当業者に提供する。要素の機能および要素の配置には、様々な変更を加えてもよい。
【0129】
[0141]したがって、本明細書および図面は、限定する意味ではなく例示を意味するものとして見なされるべきである。しかしながら、特許請求の範囲に示されたより広い精神および範囲から逸脱することなく、追加、除去、削除、および他の修正および変更を行ってもよいことは明らかであろう。したがって、特定の実施形態を説明するが、これらは限定することを意図するものではない。様々な修正形態および等価物が、以下の特許請求の範囲内にある。