(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】軌道検証を用いた車両の衝突回避のシステム、方法、及び非一時的コンピュータ可読媒体
(51)【国際特許分類】
B60W 30/09 20120101AFI20241021BHJP
B60W 30/095 20120101ALI20241021BHJP
G08G 1/16 20060101ALI20241021BHJP
【FI】
B60W30/09
B60W30/095
G08G1/16 C
(21)【出願番号】P 2021533586
(86)(22)【出願日】2019-12-09
(86)【国際出願番号】 US2019065165
(87)【国際公開番号】W WO2020123347
(87)【国際公開日】2020-06-18
【審査請求日】2022-12-09
(32)【優先日】2018-12-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】アンドリュー ルイス キング
(72)【発明者】
【氏名】ジェファーソン ブラッドフィールド パッカー
(72)【発明者】
【氏名】ロバート エドワード サマーズ
(72)【発明者】
【氏名】マーク ウィマーショフ
【審査官】平井 功
(56)【参考文献】
【文献】特開2018-176879(JP,A)
【文献】特開2010-228740(JP,A)
【文献】特開2017-102907(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00-10/30
B60W 30/00-60/00
G08G 1/00-99/00
(57)【特許請求の範囲】
【請求項1】
車両の衝突回避のシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されたとき、
第1のシステムから、車両に対する第1の軌道および前記車両に対する第2の軌道を受信することと、
センサーデータを受信することと、
前記センサーデータに少なくとも部分的に基づいて、環境内の物体を決定することと、
前記物体に対して物体軌道を決定することと、
前記第1の軌道に関連付けられた第1の状態を決定するために、前記第1の軌道および前記物体軌道を用いて第1の衝突検出を実行することと、
前記第2の軌道に関連付けられた第2の状態を決定するために、前記第2の軌道および前記物体軌道を用いて第2の衝突検出を実行することと、
前記第1の状態および前記第2の状態に少なくとも部分的に基づいて、前記車両に対する第3の軌道を決定することであって、前記第3の軌道は、前記第1の軌道、前記第2の軌道、または第2のシステムによって生成された第4の軌道の少なくとも1つを備え、前記第4の軌道は、前記第2のシステムによって、前記第2の軌道に適用された減速又は修正を備えることと、
前記第3の軌道に少なくとも部分的に基づいて、前記車両を制御することと、
を前記システムに行わせる命令を備えた1つまたは複数のメモリと、
を備えた、システム。
【請求項2】
前記第1の衝突検出は、前記第1の軌道および前記物体軌道に少なくとも部分的に基づいて、前記車両と前記物体が衝突するか否かを決定することを備え、
前記第2の衝突検出は、前記第2の軌道および前記物体軌道に少なくとも部分的に基づいて、前記車両と前記物体が衝突するか否かを決定することを備えた、請求項1に記載のシステム。
【請求項3】
前記第1の状態は、前記第1の軌道は推定された衝突に関連付けられていることを示し、
前記1つまたは複数のメモリは、前記1つまたは複数のプロセッサによって実行されたとき、第1のシステムに対して、前記第1の状態に少なくとも部分的に基づいて、衝突までの時間、前記物体の範囲、前記物体の速度、前記物体の位置、または衝突点の1つまたは複数を示すメッセージを送信することを前記車両に行わせる命令を更に備えた、請求項1または2のいずれか1項に記載のシステム。
【請求項4】
前記第1の状態が、前記第1の軌道は第1の推定された衝突と関連付けられていることを指示するか、または前記第2の状態が、前記第2の軌道は第2の推定された衝突と関連付けられていることを示すかの少なくとも1つであるとき、
前記第3の軌道が、前記第2の軌道または前記第4の軌道の少なくとも1つを備え、
前記1つまたは複数のメモリが、前記1つまたは複数のプロセッサによって実行されたとき、
前記第3の軌道に少なくとも部分的に基づいて、前記車両の制御を維持することと、
前記第3の軌道から前記車両の制御を解除するための信号を受信することと、
前記第1のシステムから第5の軌道を受信することと、
前記第5の軌道および前記信号の少なくとも部分的に基づいて、前記車両を制御することと、
を前
記システムに行わせる命令をさらに備えた、請求項1から3のいずれか1項に記載のシステム。
【請求項5】
前記車両の制御を解除するための前記信号が、遠隔操作システムから受信される請求項4に記載のシステム。
【請求項6】
車両の衝突回避の方法であって、
第1のコンポーネントから車両に対する第1の軌道および前記車両に対する第2の軌道を受信することと、
第2のコンポーネントによって、センサーデータの少なくとも一部を受信することと、
前記第2のコンポーネントによって、且つ前記センサーデータの少なくとも前記一部に、少なくとも部分的に基づいて、環境内の物体を決定することと、
前記第2のコンポーネントによって、且つ前記センサーデータの少なくとも前記一部に、少なくとも部分的に基づいて、前記物体の物体軌道を特定することと、
前記第2のコンポーネントによって、前記第1の軌道と関連付けられた第1の状態を決定するために、前記第1の軌道を用いて1つまたは複数の第1の検証動作を実行することと、
前記第2のコンポーネントによって、前記第2の軌道と関連付けられた第2の状態を決定するために、前記第2の軌道を用いて1つまたは複数の第2の検証動作を実行することと、
前記第2のコンポーネントによって、且つ前記第1の状態および前記第2の状態の少なくとも部分的に基づいて、前記車両に対する第3の軌道を決定することであって、前記第3の軌道は、前記第1の軌道、前記第2の軌道、または前記第2のコンポーネントによって生成される第4の軌道の少なくとも1つを備えていることと、
前記第3の軌道に少なくとも部分的に基づいて、前記車両を制御することと、
を備え、
前記1つまたは複数の第1の検証動作を実行することは、
前記第2の軌道が、現在の時間から閾値未満の時間で生成されたかどうかを決定することと、
前記第2の軌道が、前記車両の現在および以前の姿勢と一致するかどうかを決定することと、
前記第2の軌道が、前記車両の性能と適合するかどうかを決定することと、
前記第2の軌道に沿って動く車両が、前記物体軌道に沿って動く物体と衝突するかどうかを決定することと、
の少なくとも1つを備えた、方法。
【請求項7】
前記1つまたは複数の第1の検証動作を実行することは、
前記第1の軌道が、現在の時間から閾値未満の時間で生成されたかどうかを決定することと、
前記第1の軌道が、前記車両の現在および以前の姿勢と一致するかどうかを決定することと、
前記第1の軌道が、前記車両の性能と適合するかどうかを決定することと、
前記第1の軌道に沿って動く車両が、前記物体軌道に沿って動く物体と衝突するかどうかを決定することと、
の少なくとも1つを備えた、請求項6に記載の方法。
【請求項8】
車両の衝突回避の方法であって、
第1のコンポーネントから車両に対する第1の軌道および前記車両に対する第2の軌道を受信することと、
第2のコンポーネントによって、センサーデータの少なくとも一部を受信することと、
前記第2のコンポーネントによって、且つ前記センサーデータの少なくとも前記一部に、少なくとも部分的に基づいて、環境内の物体を決定することと、
前記第2のコンポーネントによって、且つ前記センサーデータの少なくとも前記一部に、少なくとも部分的に基づいて、前記物体の物体軌道を特定することと、
前記第2のコンポーネントによって、前記第1の軌道と関連付けられた第1の状態を決定するために、前記第1の軌道を用いて1つまたは複数の第1の検証動作を実行することと、
前記第2のコンポーネントによって、前記第2の軌道と関連付けられた第2の状態を決定するために、前記第2の軌道を用いて1つまたは複数の第2の検証動作を実行することと、
前記第2のコンポーネントによって、且つ前記第1の状態および前記第2の状態の少なくとも部分的に基づいて、前記車両に対する第3の軌道を決定することであって、前記第3の軌道は、前記第1の軌道、前記第2の軌道、または前記第2のコンポーネントによって生成される第4の軌道の少なくとも1つを備えていることと、
前記第3の軌道に少なくとも部分的に基づいて、前記車両を制御することと、
を備え、
前記第1の状態が、前記第1の軌道は無効であることを示し、且つ前記第2の状態が、前記第2の軌道は無効であることを示し、前記方法は、
前記第2のコンポーネントによって、且つ前記第2の軌道に少なくとも部分的に基づいて、前記第4の軌道を生成することであって、前記第4の軌道は前記第2の軌道の修正を備えることと、
前記第2のコンポーネントによって、前記第4の軌道と関連付けられた第3の状態を決定するために、前記第4の軌道と前記物体軌道を用いて1つまたは複数の第3の検証動作を実行することであって、前記第3の状態が、前記第4の軌道は有効であると示すことと、
を更に備え、
前記車両に対する第3の軌道を決定することが、前記第3の軌道として、且つ前記第3の状態に少なくとも部分的に基づいて、前記第4の軌道を決定することを備える、方法。
【請求項9】
前記1つまたは複数の第1の検証動作を実行することは、
前記第1の軌道が、現在の時間から閾値未満の時間で生成されたかどうかを決定することと、
前記第1の軌道が、前記車両の現在および以前の姿勢と一致するかどうかを決定することと、
前記第1の軌道が、前記車両の性能と適合するかどうかを決定することと、
前記第1の軌道に沿って動く車両が、前記物体軌道に沿って動く物体と衝突するかどうかを決定することと、
の少なくとも1つを備えた、請求項8に記載の方法。
【請求項10】
前記1つまたは複数の第1の検証動作を実行することは、
前記第2の軌道が、現在の時間から閾値未満の時間で生成されたかどうかを決定することと、
前記第2の軌道が、前記車両の現在および以前の姿勢と一致するかどうかを決定することと、
前記第2の軌道が、前記車両の性能と適合するかどうかを決定することと、
前記第2の軌道に沿って動く車両が、前記物体軌道に沿って動く物体と衝突するかどうかを決定することと、
の少なくとも1つを備えた、請求項8または9に記載の方法。
【請求項11】
前記第1の状態が、前記第1の軌道は無効であることを示し、且つ前記第2の状態が、前記第2の軌道は無効であることを示し、前記方法は、
前記第2のコンポーネントによって、且つ前記第2の軌道に少なくとも部分的に基づいて、第5の軌道を生成することであって、前記第5の軌道が前記第2の軌道の修正を備えることと、
前記第2のコンポーネントによって、前記第5の軌道と関連付けられた第3の状態を決定するために、前記第5の軌道と前記物体軌道を用いて1つまたは複数の第3の検証動作を実行することであって、前記第3の状態が、前記第5の軌道は有効であると示すことと、
前記第2のコンポーネントによって、前記第4の軌道を生成することであって、前記第4の軌道が、最大減速度と関連付けられていることと、
をさらに備え、
前記第3の軌道を決定することは、前記第3の軌道として、且つ前記第3の状態に少なくとも部分的に基づいて前記第4の軌道を決定することを備える、請求項6から10のいずれか1項に記載の方法。
【請求項12】
前記第5の軌道を生成することは、前記第5の軌道を生成する限界まで前記第2の軌道を1回以上修正することを備え、
前記1つまたは複数の第3の検証動作を実行することは、前記修正された第5の軌道を用いて前記1つまたは複数の第3の検証動作を回数未満で実行することを備え、前記方法は、
前記回数が満足されていることをと決定すること、
をさらに備え、
前記第4の軌道を生成することは、前記回数が満足されていることを決定することに少なくとも部分的に基づいている、請求項11に記載の方法。
【請求項13】
前記車両の1つまたは複数のコンポーネントに対して、シートベルトのプリテンションまたはエアバッグの展開準備の少なくとも1つを行うための信号を送信することを更に備えた、請求項11に記載の方法。
【請求項14】
前記第1の状態が、前記第1の軌道は無効であることを示し、且つ前記第2の状態が、第2の軌道は無効であることを示し、前記方法は、
前記第2のコンポーネントによって、且つ前記第2の軌道に少なくとも部分的に基づいて、前記第2の軌道に最大量の修正を適用することによって前記第4の軌道を生成することと、
前記第2のコンポーネントによって、前記第4の軌道と関連付けられた第3の状態を決定するために、前記第4の軌道および前記物体軌道を用いて1つまたは複数の第3の検証動作を実行することであって、前記第3の状態が、前記第4の軌道は無効であることを示すことと、
前記第3の状態が、前記第4の軌道が無効であることを示すことを決定することと、
をさらに備え、
前記第3の軌道を決定することは、前記第3の軌道として、且つ前記第3の状態に少なくとも部分的に基づいて、前記第4の軌道を決定することを備える、
請求項6から10のいずれか1項に記載の方法。
【請求項15】
前記第3の軌道を決定することは、
前記第3の軌道として、前記第1の状態が、前記第1の軌道は閾値以上の時間において推定された衝突と関連付けられている、または衝突なしであると指示するとき、前記第1の軌道を選択することと、
前記第3の軌道として、前記第1の状態が、前記第1の軌道は閾値未満の時間において推定された衝突と関連付けられていることを示し、且つ前記第2の状態が、前記第2の軌道は衝突なしであることを示すとき、前記第2の軌道を選択することと、
前記第3の軌道として、前記第1の状態が、前記第1の軌道は閾値未満の時間において推定された衝突と関連付けられていることを示し、且つ前記第2の状態が、前記第2の軌道は第2の推定された衝突と関連付けられていることを示すとき、前記第4の軌道を選択することと、
の少なくとも1つを備えた、請求項6から14のいずれか1項に記載の方法。
【請求項16】
実行されると、1つまたは複数のプロセッサに請求項6から15のいずれか1項に記載の方法を実行させる命令を格納する、1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、軌道検証を用いた衝突回避システムに関する。
【背景技術】
【0002】
本PCT国際出願は、2018年12月12日に出願された米国特許出願第16/218182号の継続出願であり、その優先権の利益を主張するものであって、参照により本明細書に組み込まれる。
【0003】
車両の乗客や、車両に近接する他の人や物体の安全性は、最も重要である。このような安全性は、衝突の可能性を正確に検出し、安全対策をタイムリーに展開することが前提となることが多い。自律車両には、効果の高い衝突検出システムが実装されていることが多いが、まれにこれらのシステムが作動しなかったり、無効であったりすることがある。例えば、車両上のシステムの比較的長い処理パイプラインにエラーが発生し、物体と衝突する軌道をシステムに生成させ、および/または車両の現在の姿勢および/または車両の性能を考慮すると不可能または受け入れられない方法で車両を操作させ得る。このような場合、システムは所望の効果が動作せず、不安全な挙動を取り得る。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願第16/189726号明細書
【文献】米国特許出願第15/622905号明細書
【文献】米国特許出願第15/833715号明細書
【文献】米国特許出願第15/820245号明細書
【図面の簡単な説明】
【0005】
詳細な説明は、添付の図面を参照して行われる。図中において、符号の一番左の数字は、その符号が最初に現れる図面を示している。異なる図面で同じ符号を使用することは、類似または同一の構成要素または機能を示す。
【0006】
【
図1】本明細書で説明した技術が実装される可能性のある環境の例を示している。
【
図2】車両の主要システムと副次システムの詳細を例示した図である。
【
図3】車両の軌道が有効か無効かを決定する処理の一例を示す図である。
【
図4】車両の軌道が有効か無効かを決定する処理の一例を示す図である。
【
図5】車両の軌道が有効か無効かを決定する処理の一例を示す図である。
【
図6】副次システムで実装され得る状態の階層の例を示している。
【
図7A】本明細書で論じられる技術を実行するためのプロセスの例を示している。
【
図7B】本明細書で論じられる技術を実行するためのプロセスの例を示している。
【
図8】本明細書で説明される技術を実装するためのシステムの例を示すブロック図である。
【発明を実施するための形態】
【0007】
本開示は、車両を制御するための主要システムと、主要システムの動作を検証するために車両上で動作し、衝突を回避するために車両を制御する副次システムとを含む車両に向けられている。例えば、副次システムは、主要軌道および副次軌道(例えば、減速または他の操作に関連する臨時の軌道)など、主要システムから多様な軌道を受信し得る。副次システムは、各軌道を検証し得る(例えば、エラーが存在するかどうかを決定する)。例えば、副次システムは、主要システムによって生成された軌道が衝突の可能性に関連しているかどうか、軌道が車両の現在または以前の姿勢と一致しているかどうか、軌道が車両の性能と適合しているかどうか、などを決定し得る。主要軌道が有効である場合、副次システムは主要軌道に従って車両を制御し得る。主要軌道が無効であり、副次軌道が有効である場合、副次システムは、副次軌道に従って車両を制御し得る。主要軌道と副次軌道の両方が無効である場合、副次システムは、第2の軌道に沿って減速する軌道や別の操作を実行する軌道など、別の軌道を用いて車両を制御し得る。例では、副次システムが、主要軌道が将来的に衝突を引き起こすことを検出した場合、副次システムは、そのような状況を示すメッセージを主要システムに送信し得る。これは、そのような予測された任意の衝突を回避するために主要軌道を調整する機会を、主要システムに供給し得る。
【0008】
主要システムは、通常、環境内での車両の操作方法を制御するための処理を実行し得る。主要システムは、機械学習などの様々な人工知能(AI)技術を実装し、車両周辺の環境を理解、および/または環境内での移動を車両に指示し得る。例えば、主要システムはAI技術を実装し、車両をローカライズし、車両周辺の物体を検出し、センサーデータをセグメント化し、物体の分類を決定し、物体の軌道を予測し、車両の軌道を生成するなどをし得る。一例では、主要システムは、車両を制御するための主要軌道と、車両を制御するための副次的な臨時軌道を生成し、主要軌道と副次軌道を副次システムに提供する。臨時の軌道は、車両が停止するように、および/または別の操作(例えば、車線変更など)を行うように制御し得る。
【0009】
副次システムは、通常、主要システムが利用可能なデータ(例えば、センサーデータ)の少なくともサブセットを使用して、主要システムを評価し得る。例えば、副次システムは、車両が置かれている環境内の点、および/または物体に対する、車両の位置、および/または方向(姿勢と共に)を決定することにより、車両を独立してローカライズし得る。また、副次システムは、車両周辺の物体を独立して検出、および/または物体の軌道を予測し得る。副次システムは、車両の姿勢および/または物体の予測された軌道を用いて、副次システムから提供された車両の軌道を評価し、その軌道を車両の制御に用いるべきかどうかを決定し得る。このようなローカライゼーション、および/または検出は、その出力を検証するために主要システムで用いられる同様の技術を用いてもよく、そのような出力の一貫性および検証性を確保するために、異なる技術を使用してもよい。
【0010】
車両の軌道を評価するために、副次システムは、軌道を評価(または検証)するための1つまたは複数の操作を行い得る。例えば、副次システムは、軌道が閾値未満の時間前に生成されたかどうか、軌道が車両の現在または以前の姿勢と一致するかどうか(例えば、軌道は、車両の現在の姿勢を与えて、可能な位置に車両を位置させるように制御する)、軌道が車両の性能(例えば、操作限界、加速限界など)と適合するかどうか、などを確認し得る。さらに、副次システムは、軌道が衝突に関連しているかどうかを確認し得る。例えば、副次システムは、主要システムによって提供された車両の軌道が、副次システムによって決定された物体の軌道と交差し、物体と車両が同時に(または時間のウインドウで)交差点で会うかどうかを確認し得る。すなわち、副次システムは、主要システムが提供する軌道に沿って車両を維持した場合に、車両が物体と衝突するかどうかを決定し得る。このような衝突の確認は、移動の直接的な運動解析、および/または1つまたは複数の付加技術によって決定される運動の予測のいずれか1つまたは複数に基づき得る。
【0011】
例では、副次システムは、主要システムによって提供される車両の各軌道を評価し得る。例えば、副次システムは、主要システムによって生成された主要軌道(例えば、最上位の軌道)と、主要システムによって生成された副次軌道(例えば、次の最上位の軌道)とを評価し得る。副次軌道は、主要軌道が無効である場合に使用され得る臨時の軌道であり得る。さらに、例では、副次システムは、車両の三次軌道(例えば、次の最上位の軌道)を生成し、三次軌道を評価し得る。三次軌道は、主要軌道および副次軌道が無効である場合に使用され得る、さらなる臨時の軌道であり得る。三次軌道は、車両を副次軌道(または、場合によっては主要軌道)に沿って停止させたり、別の操作(例えば、車線変更、旋回など)を実行させたりし得る。いくつかの例では、三次軌道は、副次軌道の最小限の修正(縦方向の加速度、操舵角、横方向の加速度などの修正)に少なくとも部分的に基づいて決定され得る。
【0012】
副次システムは、軌道の評価に基づいて、車両の制御に使用する軌道を決定し得る。例えば、副次システムは、主要軌道の状態が、主要軌道は衝突していない、または「遠い」将来の衝突に関連している(例えば、主要軌道が一時的に有効である)ことを示している場合、主要システムによって提供される主要軌道を選択し得る。さらに、副次システムは、主要軌道が、衝突が差し迫っていることを示す状態と関連付けられており、副次軌道が衝突のないことを示す状態と関連付けられている場合、主要システムが提供する副次軌道を選択し得る。さらに、副次システムは、主要軌道が、衝突が差し迫っていることを示す状態と関連付けられており、副次軌道が衝突を示す状態と関連付けられている場合、副次システムが生成した三次軌道を選択し得る。軌道を選択すると、副次システムは、軌道に基づいて車両を制御させるために、システムコントローラに信号を送信し得る。少なくともいくつかの例では、どの軌道も衝突していない場合、副次システムは、例えば、緊急ブレーキの作動および/またはシートベルトのプリテンショニングなど、1つまたは複数の操作を車両に行わせ得る。
【0013】
例では、副次システムは、選択された軌道から制御を解除する信号が受信されるまで、選択された軌道に基づいて車両の制御を維持し得る。例えば、副次システムは、必要に応じていつでも低レベルの軌道に移行し、高レベルの軌道への制御を解除する信号を受信するまで、高レベルの軌道に戻って移行することを控え得る。例示すると、主要軌道が衝突に関連しているために副次システムが副次軌道を選択した場合、遠隔操作システム(例えば、オペレータに関連するシステム)からより高いレベルの軌道への制御を解除する信号を受信するまで、副次軌道(または、さらに低いレベルの軌道)に沿って車両の制御を維持し得る。こうすることにより、車両は軌道間の頻繁な変更を避け得る。
【0014】
さらに、例では、副次システムは、主要システムによって提供された軌道のエラーを示すメッセージを主要システムに提供し得る。例えば、要システムによって提供される主要軌道に沿って車両が進んだ場合に、副次システムが、主車両が直ちにブレーキをかける必要がない(例えば、閾値以上の時間離れている)程度に十分遠い将来に衝突が発生すると推定されると決定した場合、副次システムは、主要システムに警告するためのメッセージを主要システムに送信し得る。これは、主要システムが、衝突が発生する前に主要軌道を調整することを与え得る。
【0015】
例では、本明細書で論じられる技術および/またはシステムは、車両の乗客および/または車両に近接する他の人の安全性を高め得る。例えば、副次システムは、主要システムによって提供された軌道のエラーを検出し、衝突を回避するために安全に減速、停止、および/または別の操作を実行するように車両を制御し得る。例では、副次システムは、衝突を回避するために別の形式の評価が行われるよう、主要システムから比較的独立して動作し得る。例えば、副次システムは、車両に近接する物体を独立して検出、および/または、主要システムによって生成された軌道を評価し得る。さらに、例では、副次システムは、主要システムよりも高い整合性(例えば、より検証できる)、および/またはより複雑でないシステムであり得る。例えば、副次システムは、主要システムよりも少ないデータを処理するように設計され、主要システムよりも短い処理パイプラインを含み、主要システムの技術よりも容易に検証できる技術に従って動作するなど、様々な工夫がなされ得る。
【0016】
例では、本明細書で論じられる技術は、2018年11月11日に出願され、「Perception Collision Avoidance」と題された特許文献1で論じられる技術を実装してもよく、その内容全体は、参照により本明細書に組み込まれる。
【0017】
本明細書に記載されている方法、装置、およびシステムは、多くの方法で実装され得る。例示的な実装は、以下の図面を参照し、以下に提供される。自律車両のコンテキストで論じられているが、いくつかの例では、本明細書で説明する方法、装置、およびシステムは、様々なシステムに適用され得る。別の例では、方法、装置、およびシステムは、航空または航海のコンテキストで利用されてもよい。さらに、または代わりに、本明細書で述べられている技術は、実データ(例えば、センサーを使用してキャプチャされたもの)、シミュレーションデータ(例えば、シミュレータによって生成されたもの)、またはそれらの任意の組み合わせで使用され得る。
【0018】
図1は、本明細書で論じられる技術が実装され得る例示的な環境100を示している。例示的な環境100は、センサー104、主要システム106、副次システム108、およびシステムコントローラ110を含む自律車両102を示している。主要システム106は、一般に、人工知能(例えば、AI技術112)を実装して、様々な操作を実行し得り、副次システム108は、一般に、異なる技術を実装して、主要システム106を評価し、必要に応じて制御を引き継ぎ得る。例えば、主要システム106は、センサー104からのセンサーデータ114を処理して、主要軌道116および副次軌道118を生成する。主要システム106は、主要軌道116および副次軌道118を副次システム108に送信し得る。副次システム108は、主要軌道116および/または副次軌道118を評価するために、センサー104からのセンサーデータ120を処理し得る。上述のように、副次システム108によって実行された技術は、主要システム106によって採用される技術と同様の技術を備え得、結果は類似性を決定するために比較され得る。いくつかの例では、副次システム108は、類似の結果が両システムの正しい機能を示すように、主要システム106のものとは異なる技術を使用し得る。評価に基づいて、副次システム108は出力軌道122を選択し、自律車両102を制御するために出力軌道122をシステムコントローラ110に送信し得る。出力軌道122は、以下に詳述するように、主要軌道116、副次軌道118、および/または副次システム108によって生成される軌道などとは別の軌道を含み得る。
【0019】
技術の多くは、副次システム108がシステムコントローラ110に信号を送信する(例えば、出力軌道122を送信する)コンテキストで論じられるが、主要システム106は、場合によっては、代替的に、または付加的に、システムコントローラ110に信号を送信し得る。
【0020】
センサー104は、光検出と測距(LIDAR)センサー、RADARセンサー、超音波トランスデューサ、ソナーセンサー、位置センサー(例えば、グローバルナビゲーション衛星システム(GNSS)(グローバルポジショニングシステム(GPS)を含む)、コンパスなど)、慣性センサー(例えば、慣性センサー(例えば、IMU(慣性測定ユニット)、加速度計、磁力計、ジャイロスコープなど)、カメラ(例えば、RGB(red-green-blue)、赤外線(IR)、強度、深度など)、time of flightセンサー、マイク、ホイールエンコーダ、環境センサー(例えば、温度センサー、湿度センサー、光センサー、圧力センサーなど)など、様々なセンサーを含み得る。
【0021】
上述したように、通常、主要システム106はセンサーデータ114を処理し得、副次システム108はセンサーデータ120を処理し得る。いくつかの例では、センサーデータ120は、センサーデータ114のサブセットを含む。例示すると、センサーデータ114は、位置データ、慣性データ、LIDARデータ、RADARデータ、画像データ、音声データ、環境データ、深度データなど、多種多様なセンサー104からのデータを含み得る。一方、センサーデータ120は、LIDARデータ、RADARデータ、および/またはtime of flightデータなど、センサー104のより限定されたセットからのデータを含み得る。他の例では、センサーデータ120は、位置データ、慣性データ、LIDARデータ、RADARデータ、画像データ、音声データ、環境データ、および/または深度データのうちの1つまたは複数など、センサーデータ114と同じか、或いはそれ以上のデータを含む。
【0022】
主要システム106は、通常の動作中に車両を制御し得る。多くの例において、主要システム106は、自律車両102上のメインコンピューティングシステムであり得る。主要システム106は、AI技術112を実装して、自律車両102の周辺の環境を理解、および/または自律車両102に環境内での移動を指示し得る。AI技術112は、1つまたは複数のニューラルネットワークなどの機械学習(一般に、機械学習モデルとも呼ばれる)を含見得る。例えば、主要システム106は、センサーデータ114を解析し、自律車両102をローカライズ、自律車両102の周辺の物体を検出、センサーデータ114をセグメント化、物体の分類を決定、物体の軌道を予測、自律車両102の主要軌道116および/または副次軌道118を生成するなどし得る。
図1の例では、主要システム106は、自律車両102を制御するために主要軌道116を生成し、主要軌道116が無効であるか、さもなければ受け入れられない場合に、主要軌道の代わりに使用される臨時の(例えば、バックアップ)軌道として、或いはハードウェアまたはソフトウェアの故障などの場合に実行される、副次軌道118を生成する。例では、副次軌道118は、自律車両102を減速して停止するように制御し得る(例えば、自律車両102で可能な最大減速度よりも小さい減速度に関連する緩やかな停止)。
【0023】
例では、軌道は、自律車両102の操舵角、および/または加速度の制御を備える。さらに、軌道は、自律車両102の予測された将来の経路を表す時間と車両の状態(例えば、姿勢)のシーケンスを備え得る。例えば、軌道は、自律車両102がある時間のウインドウ(例えば、1ミリ秒、半秒、2秒、10秒など)の間に取るであろう経路を制御し得る。軌道は、自律車両102の動きを制御するために、時間をかけて継続的に更新されて得る。
【0024】
副次システム108は、主要システム106を評価し、主要システム106に問題がある場合に自律車両102の制御を引き継ぎ得る。副次システム108は、自律車両102、および/または自律車両102の周辺の物体の位置、速度、加速度等に基づく副次技術(例えば、確率的な技術、AI技術112とは異なる技術等)を実装し得る。例えば、副次システム108は、カルマンフィルタ、拡張カルマンフィルタ(EKG)、粒子フィルタ、および/またはトラッキングアルゴリズムを実装して、センサーデータの処理、センサーデータのセグメント化、物体の分類の識別、物体の軌道の予測等を行い得る。例では、副次システム108は、あらゆる形態のAI技術を実行しなくともよい。いくつかの例では、AI技術112は、ニューラルネットワークを使用し得、一方、副次システム108は、そのようなニューラルネットワークの使用を控え得る。他の例では、副次システム108は、主要システム106によって実装された機械学習モデルとは異なる(または、いくつかの例では同じ)機械学習モデルを実装するなど、AI技術を実行し得る。単一の副次システム108が図示されているが、例では、副次システム108は、多様なハードウェア/ソフトウェアシステムなど、多様なシステムとして実装され得る。
【0025】
例では、主要システム106を評価するために、副次システム108は、センサーデータ120を処理して、環境内の点、および/または物体に対する自律車両102の位置、および/または方向(姿勢と共に)を決定し得る。さらに、副次システム108は、センサーデータ120を処理して、自律車両102の周辺の物体を検出、物体を経時的に追跡、および/または物体の軌道の予測をし得る。いくつかの例では、副次システム108は、主要システム106によって検出された物体の足跡、および/または物体の予測された軌道を示す情報を主要システム106から受信し得る。物体の足跡は、物体が移動した経路を含み得る。物体の足跡は、一定期間(例えば、5秒)にわたる物体の現在または以前の位置、速度、加速度、方向、および/または進路を表し得る(または、それに基づき得る)。副次システム108は、自律車両102の周辺で検出された各物体の軌道、および/または予測された軌道を維持し得る。
図1の例では、副次システム108は、物体126に対する軌道124を推定する。ここでは、物体126は人を表しているが、物体126は、他の車両、構造物(例えば、建物など)、動物、標識など、任意の種類の物体を表し得る。
【0026】
副次システム108は、主要軌道116、および/または副次軌道118を評価するために、姿勢、足跡、および/または予測された軌道を使用し得る。図示されているように、副次システム108は、主要軌道116、副次軌道118、および/または衝突回避軌道(例えば、自律車両102を減速して停止させる軌道であり、主要軌道116または副次軌道118のいずれかの修正版であってもよい)などの副次システム108によって生成される軌道を検証するために、1つまたは複数の検証動作を実行する軌道管理コンポーネント128を含み得る。例では、軌道管理コンポーネント128は、主要軌道116、副次軌道118、および/または副次システム108が並行して生成する軌道(例えば、衝突回避軌道)のうちの1つまたは複数を検証し得る。ただし、任意のこのような軌道は、連続または別の方法で検証されてもよい。
【0027】
例では、軌道管理コンポーネント128は、1つまたは複数の検証動作を実行し、軌道が比較的新しいかどうか、自律車両102の状態と一致しているかどうか、および/または自律車両102の制限でもっともらしいかどうかを決定し得る。例えば、軌道管理コンポーネント128は、軌道が閾値未満の時間前に生成されたかどうか(例えば、軌道が比較的新しく、使用されるべきであることを示しているか)、軌道が車両の現在または以前の姿勢と一致するかどうか(例えば、軌道が自律車両102の現在の姿勢を与えて、可能な場所に自律車両102を位置させるように制御する)、軌道が自律車両102の性能(例えば、操舵限界、加速限界など)と適合するかどうか、などを決定し得る。
【0028】
さらに、例では、軌道管理コンポーネント128は、1つまたは複数の検証動作を実行して、軌道が
図1に示される衝突130などの衝突に関連するかどうかを決定し得る。例えば、軌道管理コンポーネント128は、主要システム106によって提供された軌道が、副次システム108によって決定された物体の軌道と交差するかどうかを決定し得る。すなわち、軌道管理コンポーネント128は、自律車両102が軌道に沿って進んだ場合に、自律車両102が物体と衝突するかどうかを決定し得る(例えば、主要システム106によって潜在的に見逃された衝突を検出する)。例では、軌道管理コンポーネント128は、直線近似を用いて物体の軌道を予測し得る。
【0029】
1つまたは複数の検証動作に基づいて、軌道管理コンポーネント128は、軌道に対する状態を決定し得る。例えば、軌道管理コンポーネント128は、軌道が閾値未満の時間前に生成される場合、軌道が自律車両102の現在または以前の姿勢と一致する場合、軌道が自律車両102の性能と適合する場合、および/または軌道が閾値以上の時間で衝突がないか、または衝突に関連する場合に、軌道に対して有効な状態を決定し得る。さらに、軌道管理コンポーネント128は、軌道が閾値以上の時間前に生成された場合、軌道が自律車両102の現在または以前の姿勢と矛盾している場合、軌道が自律車両102の性能と適合しない場合、および/または軌道が衝突に関連している場合に、軌道に対して無効な状態を決定し得る。
【0030】
次に、軌道管理コンポーネント128は、軌道の状態に基づいて、システムコントローラ110に提供する出力軌道122を決定し得る。例えば、軌道管理コンポーネント128は、通常、主要軌道116が有効である(例えば、主要軌道116が最上位に関連付けられている)場合、出力軌道122として、主要軌道116を選択するように求め得る。主要軌道116が無効である場合、軌道管理コンポーネント128は、出力軌道122として、副次軌道118(例えば、副次軌道118が、次の最上位に関連付けられている)を選択し得る。主要軌道116および副次軌道118が共に無効である場合、軌道管理コンポーネント128は、出力軌道122として、自律車両102を主要軌道116または副次軌道118の修正版に沿って停止させる(例えば、潜在的な衝突を回避するための)衝突回避軌道など、副次システム108によって生成される軌道を選択し得る。例えば、軌道管理コンポーネント128は、自律車両102を停止させるために、主要軌道116または副次軌道118に関連付けられた加速度パラメータを修正しながら、主要軌道116または副次軌道118に関連付けられた操舵制御を使用し得る。
【0031】
いくつかの例では、軌道管理コンポーネント128が衝突を回避する軌道を選択または生成することができない場合、軌道管理コンポーネント128(または駆動管理コンポーネントなどの別のコンポーネント)は、自律車両102が自律車両102にとって利用可能な最大の減速度(例えば、利用できる多様な減速度の中から)で停止するようにする最大減速軌道を生成し得る。これは、衝突の可能性がある場合の被害を軽減することを支援し得る。
【0032】
例では、軌道管理コンポーネント128は、出力軌道122から制御を解除する信号を受信するまで、出力軌道122に基づいて自律車両102の制御を維持し得る。例えば、軌道管理コンポーネント128は、必要に応じていつでも低レベルの軌道に移行し、高レベルの軌道に制御を解除する信号を受信するまで、高レベルの軌道に戻って移行するのを控え得る。例示すると、主要軌道116が無効であるために軌道管理コンポーネント128が副次軌道118を選択した場合、遠隔操作システム(例えば、操作者に関連するシステム)からより高レベルの軌道への制御を解除する信号を受信するまで、副次軌道118(またはより低レベルの軌道)に沿って自律車両102の制御を維持し得る。こうすることにより、自律車両102は、軌道間の頻繁な変更を回避し得る。
【0033】
さらに、例では、軌道管理コンポーネント128は、主要システムによって提供された軌道のエラーを示すメッセージを主要システム106に提供し得る。例えば、自律車両102が直ちにブレーキをかける必要が無いほど十分に遠い将来(例えば、閾値以上離れた時間)に主要軌道116について衝突が発生すると推定されると軌道管理コンポーネント128が決定した場合、軌道管理コンポーネント128は主要システム106に警告するために、主要システム106にメッセージ132を送信し得る。メッセージ132は、主要軌道116が衝突に関連している、および/または主要軌道116に基づいて自律車両102が維持されている場合、自律車両102の制御が副次システム108に引き継がれることを示し得る。これは、衝突が発生する前に、主要システム106が主要軌道116を調整することを与え得る。
【0034】
システムコントローラ110は、自律車両102の操舵、推進、ブレーキ、安全、エミッタ、通信、および/または他のシステムを制御し得る。システムコントローラ110は、自律車両102の駆動システムおよび/または他のコンポーネントが対応するシステムと通信および/または制御し得る。いくつかの例では、システムコントローラ110は、選択された軌道を、自律車両102に軌道を横切らせるために駆動システムによって使用可能な命令に変換し得る。
【0035】
図2は、
図1の自律車両102の主要システム106と副次システム108の詳細を例示している。
【0036】
この例では、主要システム106は、ローカライゼーションコンポーネント202、知覚コンポーネント204、予測コンポーネント206、および計画コンポーネント208を含む。ローカライゼーションコンポーネント202、知覚コンポーネント204、予測コンポーネント206、および/または計画コンポーネント208は、集合的および/または個別に、さまざまな機能を果たすニューラルネットワークなどの1つまたは複数の機械学習モデルを実装する処理パイプラインを含み得る。各処理パイプラインは、データを受信し、出力を提供し得る。一例では、知覚コンポーネント204は、処理パイプラインにおいて1つまたは複数のニューラルネットワークを実装し、このように検出された物体の予測された動きを決定することに加えて(またはそれに代えて)、物体の検出、セグメント化、および/または分類を実行する。パイプラインの各ステージは、パイプラインの別のステージに送り込むことができる知覚のいくつかの側面(例えば、物体検出、分類、バウンディングボックス生成など)を提供し得る。例では、主要システム106は、数千または数十万時間の車両訓練データを用いて訓練された多様なニューラルネットワークを実装する。さらに、多様なニューラルネットワークは、無数の複雑なシナリオを知覚し、それらのシナリオを考慮して自律車両102を制御するように構成され得る。例では、主要システム106は、(例えば、GPUで)並列コンピューティングを使用し、副次システム108は使用しない。他の例では、主要システム106および/または副次システム108において並列コンピューティングが使用される。
【0037】
本明細書で説明されるように、例示的なニューラルネットワークは、入力データを一連の接続された層に通して出力を生成する、生物学的にインスピレーションを得たアルゴリズムである。ニューラルネットワークの各層はまた、別のニューラルネットワークを備えてもよく、或いは任意の数の層(畳み込みであるか否かを問わない)を構成してもよい。本開示のコンテキストで理解されるように、ニューラルネットワークは、機械学習を利用してもよく、これは、学習されたパラメータに基づいて出力が生成される、そのようなアルゴリズムの広範なクラスを言い得る。
【0038】
ニューラルネットワークのコンテキストで論じられているが、本開示と一致する任意の種類の機械学習が使用され得る。例えば、機械学習アルゴリズムは、回帰アルゴリズム(例えば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応回帰スプライン(MARS)、局所的に重み付けされた散布図平滑化(LOESS))、インスタンスベースのアルゴリズム(例えば、リッジ回帰、最小絶対縮退選択演算子(LASSO)、弾性ネット、最小角回帰(LARS))、決定木アルゴリズム(例えば、分類回帰木(CART)、反復二分木3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定スタンプ、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウスナイーブベイズ、多項ナイーブベイズ、平均一従属性分類器(AODE)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k-means、k-medians、期待値最大化(EM)、階層型クラスタリング)、相関ルール学習アルゴリズム(例えば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、Radial Basis Function Network(RBFN))、深層学習アルゴリズム(Deep Boltzmann Machine(DBM)、Deep Belief Networks(DBN)、畳み込みニューラルネットワーク(CNN)、Stacked Auto-Encoders)、次元削減アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元尺度法(MDS)、Projection Pursuit、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(例えば、Boosting、Bootstrapped Aggregation(Bagging)、AdaBoost、Stacked Generalization(Blending)、Gradient Boosting Machines(GBM)、Gradient Boosted Regression Trees(GBRT)、Random Forest)、SVM(Support Vector Machine)、教師付き学習、教師なし学習、半教師付き学習、などを含み得るが、これらに限定はされない。アーキテクチャの追加例としては、ResNet50、ResNet101、VGG、DenseNet、PointNetなどのニューラルネットワークがある。
【0039】
ローカライゼーションコンポーネント202は、自律車両102の姿勢(例えば、位置および/または方向)、および/または自律車両102を取り囲む環境のマップを決定するために、1つまたは複数のセンサー104(
図2には図示せず)からセンサーデータ114を受信する機能を含み得る。例えば、ローカライゼーションコンポーネント202は、環境のマップを決定および/または受信し、マップ内の自律車両102の位置を連続的に決定し得る。マップは、位相幾何学的マップ、占有グリッド、ポイントマップ、ランドマークマップ、メッシュ、姿勢制約のグラフ、および/または任意の他の適切なマップを備え得る。いくつかの例では、ローカライゼーションコンポーネント202は、SLAM(Simultaneous localization and mapping)またはCLAMS(calibration, localization and mapping, simultaneously)を利用して、画像データ、LIDARデータ、RADARデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信し、自律車両102の位置/姿勢を正確に決定し得る。自律車両102の位置は、マップ内の点および/または物体に対する自律車両102の相対的な位置および/または方向、ローカル座標および/またはグローバル座標(例えば、GPS座標)を含む姿勢を備え得る。追加または代替の例では、方向は、基準平面に対する、および/またはマップ内の点および/または物体に対する自律車両102のヨー、ロール、および/またはピッチの表示を含み得る。位置および/または方向を合わせて「姿勢」を記述し得る。
【0040】
いくつかの例では、ローカライゼーションコンポーネント202は、自律車両102の様々なコンポーネントにデータを提供し得る。例えば、ローカライゼーションコンポーネント202は、後述するように、自律車両102の姿勢を計画コンポーネント208に提供し、軌道を生成し得る。他の例では、ローカライゼーションコンポーネント202は、自律車両102の姿勢を、知覚コンポーネント204および/または予測コンポーネント206などの自律車両102の他のコンポーネントに提供し得る。
【0041】
知覚コンポーネント204は、物体の検出、セグメント化、および/または分類を実行する機能を含み得る。いくつかの例では、知覚コンポーネント204は、センサーデータ114を入力として受信し、自律車両102に近接している物体の存在を示す主要知覚データ、および/または物体を物体の種類(例えば、自動車、歩行者、自転車、建物、木、路面、縁石、歩道、不明などのセマンティックラベル)としての分類を出力し得る。さらに、または代わりに、知覚コンポーネント204は、検出された物体および/または物体が配置されている環境に関連する1つまたは複数の特性を示す、処理済みセンサーデータを提供し得る。いくつかの例では、物体に関連する特性は、x-位置(例えば、グローバル位置、相対位置など)、y-位置(例えば、グローバル位置、相対位置など)、z-位置(例えば、グローバル位置、相対位置など)、方向、物体の種類(例えば、分類)、物体の速度、物体の範囲(サイズ)などを含むが、これらに限定はされない。いくつかの例では、物体の速度は、RADAR処理および/または他の技術から決定され得る。環境に関連する特性には、環境内の別の物体の存在、環境内の別の物体の状態、時間帯、曜日、季節、天候、暗さ/明るさの表示などが含まれ得るが、これらに限定はされない。
【0042】
いくつかの例では、知覚コンポーネント204は、主要知覚データおよび/または処理されたセンサーデータを、自律車両102の様々なコンポーネントに提供し得る。例えば、知覚コンポーネント204は、主要知覚データおよび/または処理されたセンサーデータを、計画コンポーネント208および/または予測コンポーネント206に提供し得る。他の例では、知覚コンポーネント204は、主要知覚データおよび/または処理されたセンサーデータを、ローカライゼーションコンポーネント202など、自律車両102の他のコンポーネントに提供し得る。例では、主要知覚データおよび/または処理されたセンサーデータは、物体のリストおよび/または物体の各々に対する特性を含む主要物体リストの形式であり得る。
【0043】
予測コンポーネント206は、検出された物体に足跡を関連付け、および/または物体の軌道を予測し得る。物体の足跡は、履歴的な物体の位置、速度、加速度、および/または方向を含み得る。いくつかの例では、予測コンポーネント206は、履歴的な物体の足跡を、知覚コンポーネント204によって最近検出された物体に関連付けるかどうかを決定し得る。例えば、予測コンポーネント206は、最近検出された物体が、履歴的な足跡に関連付けられた物体の以前の位置の閾値距離、履歴的な足跡に関連付けられた物体の以前の速度の閾値速度などの範囲内にあるかどうかを決定し得る。いくつかの例では、予測コンポーネント206は、照明状態(例えば、ウィンカー検出)、物体の速度/加速度、マップデータ(例えば、妥当な運転挙動を示す車線情報)、および/または学習した物体の行動に基づいて、環境内の物体の行動を予測する機械学習モデルを含み得る。いくつかの例では、予測コンポーネント206は、例えば、物体の以前、現在、および/または予測された位置、速度、加速度、および/または方向の確率的な決定、またはマルチモーダル分布に基づいて、知覚コンポーネント204によって検出された特定の物体に対する1つまたは複数の予測された物体の軌道を予測し得る。
【0044】
いくつかの例では、予測コンポーネント206は、物体の足跡、予測された物体の軌道(例えば、1つまたは複数の軌道および関連する不確実性)、および/または他のデータに関するデータを、自律車両102の様々なコンポーネントに提供し得る。例えば、予測コンポーネント206は、そのようなデータを計画コンポーネント208に提供し得る。いくつかの例では、予測コンポーネント206は、物体の予測された動きに関連するヒートマップを生成し、そのようなヒートマップを計画コンポーネント208に提供し得る。他の例では、予測コンポーネント206は、物体に関するデータを、ローカライゼーションコンポーネント202および/または知覚コンポーネント204など、自律車両102の他のコンポーネントに提供し得る。さらに、いくつかの例では、物体に関するデータは副次システム108に提供され得る。例では、物体に関するデータは、主要物体リストに格納され得る。
【0045】
いくつかの例では、知覚コンポーネント204および/または予測コンポーネント206は、「Voxel Based Ground Plane Estimation and Object Segmentation」と題され、2017年6月14日に出願された特許文献2、「Trajectory Prediction of Third-Party Objects Using Temporal Logicand Tree Search」と題され、2017年12月6日に出願された特許文献3、および「Sensor Data Segmentation」と題され、2017年11月21日に出願された特許文献4で論じられる技術を実装してもよく、これらすべての内容全体が参照により本明細書に組み込まれる。
【0046】
計画コンポーネント208は、自律車両102が環境を横切るために従うべき経路および/または軌道を決定し得る。例えば、計画コンポーネント208は、様々な経路および/または軌道、ならびに様々なレベルの詳細を決定し得る。例えば、計画コンポーネント208は、第1の場所(例えば、現在の場所)から第2の場所(例えば、目標の場所)まで移動するルートを決定し得る。例では、ルートは、2つの場所の間を移動するためのウェイポイントのシーケンスであってもよい。非限定的な例として、ウェイポイントは、街路、交差点、グローバルポジショニングシステム(GPS)座標などを含む。さらに、計画コンポーネント208は、第1の場所から第2の場所へのルートの少なくとも一部に沿って自律車両102を案内するための命令を生成し得る。少なくとも1つの例では、計画コンポーネント208は、自律車両102を、ウェイポイントのシーケンスにおける第1のウェイポイントから、ウェイポイントのシーケンスにおける第2のウェイポイントまで案内する方法を決定し得る。いくつかの例では、命令は、軌道、または軌道の一部を備え得る。
【0047】
例では、計画コンポーネント208は、主要軌道116を生成し、および/または主要軌道116を副次システム108に送信し得る。例えば、計画コンポーネント208は、receding horizon技術に従って、および/または主要システム106の他のコンポーネントから受信したデータに少なくとも部分的に基づいて、多様な軌道を実質的に同時に(例えば、技術的な許容範囲内で)生成し得る。いくつかの例では、計画コンポーネント208は、副次システム108に送信する主要軌道116を特定するために、多様な軌道上でコストベースの探索(または、自律車両102の動きを制御するための適切な軌道を特定するための他の適切なアルゴリズム)を行い得る。
【0048】
例では、計画コンポーネント208は、副次軌道118を生成、および/または副次軌道118を副次システム108に送信し得る。例えば、計画コンポーネント208は、多様な臨時の軌道を生成し、臨時の軌道の1つを選択して副次軌道118とし得る。副次軌道118は、主要軌道116が無効であるか、さもなければ受け入れられない場合に使用されるバックアップ軌道を表し得る。副次軌道118は、主要軌道116と異なっていてもよい。一例では、主要軌道116は、自律車両102を加速させたり、特定の速度を維持させたりし得るが、副次軌道118は、自律車両102を減速させて、(後述するように)緩やかな停止などの停止をさせ得る。別の例では、主要軌道116は、自律車両102に車線変更をさせ得、一方、副次軌道118は、自律車両102を同じ車線に留まらせ得る。さらに別の例では、主要軌道116が自律車両102に現在の速度および操舵角を維持させ得るのに対し、副次軌道118が自律車両102を車道の路肩に寄せさせ得る。
【0049】
例では、緩やかな停止は、所定の速度、第1の速度(例えば、最大ブレーキ速度)よりも小さい速度、第2の速度(例えば、最小ブレーキ速度)よりも大きい速度、複数の利用可能な速度の中から実質的に中間の速度(例えば、5つの速度の中の第3の速度)、複数の速度の中から最小の速度など、特定の速度でブレーキをかけることを含み得る。減速度とは、毎秒のメートル数やフィートの2乗(m/s^2)など、時間経過に伴う測定単位を言い得る。一例では、緩やかな停止は、自律車両102が停止するまで、2乗秒あたり5フィートまたは10フィートの速度で減速することを含み得る。
【0050】
ローカライゼーションコンポーネント202、知覚コンポーネント204、および予測コンポーネント206は、多くの例では、互いに(または主要システム106の他のコンポーネント)に出力を提供するものとして論じられているが、これらのコンポーネントはいずれも、いくつかの例では、副次システム108に出力を提供し得る。
【0051】
図示されているように、副次システム108は、ローカライゼーションコンポーネント210、知覚/予測コンポーネント212、軌道管理コンポーネント128、およびモニターコンポーネント214を含む。例では、ローカライゼーションコンポーネント210、知覚/予測コンポーネント212、軌道管理コンポーネント128、および/またはモニターコンポーネント214は、物理および/または統計(例えば、自律車両102および/または車両周辺の物体の位置、速度、加速度など)に基づくモデルを実装し得る。いくつかの例では、そのようなモデルは、確率的モデルを組み込み得る。例えば、副次システム108は、カルマンフィルタ(線形二次推定(LQE)とも呼ばれる)(例えば、拡張カルマンフィルタ(EKF)、アンセンテッドカルマンフィルタ(UKF)など)、粒子フィルタ、ベイズフィルタなどを実装し得る。例示すると、知覚/予測コンポーネント212は、カルマンフィルタまたは粒子フィルタを実装し得る。いくつかの例では、副次システム108は、主要システム106とは対照的に、機械学習モデルの使用を除外するように、または機械学習モデルの数を減らすように構成され得る。他の例では、副次システム108は、主要システム106のものとは異なる(或いは類似、または同一の)1つまたは複数の機械学習モデルを含み得る。いくつかの例では、副次システム108は、主要システム106とは異なるハードウェア(例えば、プロセッサおよびメモリ)を使用し得る。
【0052】
例では、副次システム108は、計算負荷が少なく、および/またはより高い整合性のレベルで動作するように設計され得る。例えば、副次システム108の処理パイプラインは、より少ないセンサーデータに依存すること、より複雑でないパイプラインコンポーネントを含むこと、全体としてより少ないパイプラインコンポーネントを含むこと、より少ないデータを出力すること、および/または機械学習モデルの使用を除外および/または制限することによって、より単純化され得る。いくつかの例では、副次システム108は、厳しい動作公差を達成、および/または検査(検証)される能力を有することにより、「高品位」システムであり得る。例では、副次システム108は、主要システム106よりも高いレベルの信頼性および/または検証性を有し得る。例えば、副次システム108のサブコンポーネントの出力は、完全な精度またはほぼ完全な精度(例えば、シナリオの99.99%、或いはそれ以上)で動作することが認証され得る。いくつかの例では、副次システム108は、ASIL(Automotive Safety Integrity Level)D認証を備え得る。
【0053】
ローカライゼーションコンポーネント210は、センサー104からのセンサーデータ120を処理して、自律車両102の位置および/または方向(姿勢と共に)のうちの1つまたは複数を決定し得る。ここで、位置および/または方向は、自律車両102が位置する環境内の点および/または物体に対するものであってよい。例では、方向は、基準平面に対する、および/または点、および/または物体に対する自律車両102のヨー、ロール、および/またはピッチの指示を含み得る。例において、ローカライゼーションコンポーネント210は、主要システム106のローカライゼーションコンポーネント202よりも少ない処理を実行し得る(例えば、より高レベルのローカライゼーション)。例えば、ローカライゼーションコンポーネント210は、マップに対する自律車両102の姿勢を決定するのではなく、自律車両102の周辺で検出された物体および/または表面に対する自律車両102の姿勢(例えば、グローバルな位置ではなくローカルな位置)、および/または自律車両102の以前の姿勢に対する姿勢を決定するだけであってもよい。このような位置いおよび/または姿勢は、例えば、センサーデータ120の一部または全てを用い、例えばベイズフィルタ(カルマンフィルタ、拡張カルマンフィルタ、アンスケンテッドカルマンフィルタなど)などの確率的フィルタリング技術を用いて決定され得る。
【0054】
ローカライゼーションコンポーネント210は、自律車両102の位置および/または方向を、知覚/予測コンポーネント212、軌道管理コンポーネント128など、副次システム108の様々なコンポーネントに提供し得る。
【0055】
知覚/予測コンポーネント212は、物体の検出、物体のセグメント化、物体の分類、足跡の決定、および/または各物体の1つまたは複数の軌道の予測(例えば、不確実性を含む)などを実行する機能を含み得る。いくつかの例では、知覚/予測コンポーネント212は、入力データとして、1つまたは複数のセンサー104からのセンサーデータ120、ローカライゼーションコンポーネント210からの自律車両102の姿勢、自律車両102の進行方向を示すデータ、自律車両102の速度を示すデータ、自律車両102の加速度を示すデータ、自律車両102のヨーレートを示すデータ、ヨー加速度を示すデータ、および/または自律車両102の操舵角を示すデータを受信し得る。さらに、いくつかの例では、知覚/予測コンポーネント212は、入力データとして、知覚コンポーネント204からの主要物体リスト、自律車両102の姿勢、主要システム106によって決定された1つまたは複数の物体の足跡などの、主要システム106からのデータを受信し得る。上述したように、主要システム106からの物体リストは、主要知覚データ、処理されたセンサーデータ、物体の足跡/軌道に関するデータなどを含み得る。そのような例では、知覚/予測コンポーネント212は、データの関連付けを実行して(例えば、確率的フィルタ、クラスタリング、最近接点分析などを使用して)、センサーデータを足跡に関連付けてもよい。
【0056】
知覚/予測コンポーネント212は、入力データを処理して副次知覚データを決定し得る。副次知覚データは、自律車両102に近接する物体の存在や、物体に関連する特性などを示し得る。ここで、物体に関連する特性は、自律車両102に対する物体の位置、自律車両102に対する物体の方向、物体の速度、物体の加速度、物体の範囲(物体の大きさ)などを含み得る。多くの例では、副次知覚データに含まれる特性は、対象物の分類(例えば、セマンティックラベル)を含まない。いくつかの例においてだが、副次知覚データは、分類を示し得る。
【0057】
知覚/予測コンポーネント212は、入力データを処理して、物体の1つまたは複数の足跡を決定してもよい。上述したように、物体の足跡は、履歴的な位置、速度、加速度、および/または方向などを含み得る。一例では、知覚/予測コンポーネント212は、第1の時間に環境内の物体を決定し、第2の時間に環境内の物体を決定し、第1の時間および第2の時間における物体のオーバーラップを決定し、物体の足跡を生成し得る。別の例では、知覚/予測コンポーネント212は、第1の時間における物体の速度を決定し、物体の予測された動きを第2の時間における物体のキャプチャされたデータと比較し、オーバーラップを決定し、物体の足跡を生成し得る。知覚/予測コンポーネント212は、自律車両102の周囲で検出された各物体の足跡を決定し得る。いくつかの例では、知覚/予測コンポーネント212は、主要システム106から受信したデータから独立して、物体の足跡を決定し得る(例えば、主要システム106から受信した主要物体リストおよび/または自律車両102の姿勢を使用しない)。一方、他の例では、知覚/予測コンポーネント212は、主要システム106から受信したデータを使用し得る。
【0058】
知覚/予測コンポーネント212はまた、入力データを処理して、物体の1つまたは複数の予測軌道を決定し得る。例えば、物体の現在の位置と、数秒の期間における物体の速度とに基づいて、知覚/予測コンポーネント212は、物体が今後数秒間に移動する経路を予測し得る。いくつかの例では、そのような予測された経路は、直線近似を使用するなど、位置、方向、速度、および/または方向が与えられた動きの線形近似を使用することを備え得る。他の例では、そのような予測された経路は、拡張カルマンフィルタ(EKF)伝搬、物体の挙動のモデル、または他の予測技術を使用するなど、より複雑な分析を備え得る。
【0059】
知覚/予測コンポーネント212は、副次知覚データおよび/または物体に関するデータ(例えば、足跡、軌道など)を、軌道管理コンポーネント128および/または副次システム108の他のコンポーネントに出力し得る。例では、副次知覚データおよび/または物体のデータは、副次物体リストで表される。例えば、物体リストは、各物体について、物体の特性および/または物体の足跡/軌道を示し得る。例では、知覚/予測コンポーネント212は、副次知覚データおよび/または物体のデータを、主要システム106に出力し得る。
【0060】
図示を簡便にするために、知覚/予測コンポーネント212(および主要システム106および副次システム108の他のコンポーネント)は、単一のブロックで図示されている。しかし、知覚/予測コンポーネント212(および/または主要システム106および副次システム108の他のコンポーネント)は、任意の数のブロックとして実装され得、各ブロックは、1つ以上のシステムまたはサブシステムに配置される。
【0061】
軌道管理コンポーネント128は、問題が検出された場合、主要システムを評価し、自律車両102の制御を引き継ぎ得る。例えば、軌道管理コンポーネント128は、主要軌道116および/または副次軌道118を評価して、主要軌道116および/または副次軌道118を使用すべきか、または別の軌道を使用すべきかを決定し得る。図示されるように、軌道管理コンポーネント128は、衝突検出コンポーネント216(1)~(2)、軌道検証コンポーネント218(1)~(3)、軌道選択コンポーネント220、および解除コンポーネント222を含み得る。
【0062】
衝突検出コンポーネント検出コンポーネント216は、潜在的な衝突を検出するために、主要軌道116および副次軌道118を評価し得る。例えば、衝突検出コンポーネント216(1)は、主要軌道116が物体の予測された軌道(例えば、知覚/予測コンポーネント212によって決定された)と交差するかどうか、および物体と自律車両102が同時に(または、時間のウインドウで)交差点で会うかどうかを決定し得る。これらの決定は、検出された任意の数の物体について繰り返され得る。さらに、このような決定は、自律車両102の軌道だけでなく、物体の軌道の1つまたは複数の不確実性に関する情報を追加または代替的に含み得る。衝突検出コンポーネント216(2)は、副次軌道118が(例えば、知覚/予測コンポーネント212によって決定された)物体の予測された軌道と交差する(および/または、衝突の閾値の確実性を満たす、或いは超える)かどうか、および物体と自律車両102が同時に(または、時間のウインドウで)交差点で会うかどうかを決定し得る。
【0063】
衝突検出コンポーネント216は、自律車両102によって検出された任意の数の物体について、自律車両102の軌道が現在の時間または将来の時間に交差するかどうかを検出し得る。いくつかの例では、これは、予測された物体の軌道と車両の軌道とが交差する、および/または互いに閾値距離(例えば、近接の場所)内に入るかを決定すること、予測された物体の軌道に沿った物体と、車両の軌道に沿った自律車両102とが、任意の交差点または近接の場所で同時にまたは時間のウインドウで会うかを決定すること、および/または物体のバウンディングボックスが、任意の交差点または近接の場所の周辺の自律車両102のバウンディングボックスと重なるかを決定することを含み得る。さらに、例では、各バウンディングボックスの周辺に安全マージン(例えば、バウンディングボックスの長さ/幅/高さを調整するなどして、特定の量だけ拡大されたバウンディングボックスを表す安全バウンディングボックス)を設けて、同じ処理を実行してもよい。バウンディングボックスは、物体の空間的な位置、方向、および/または大きさ(例えば、範囲)を表し得る。例えば、バウンディングボックスは、8つの角で定義された物体(例えば、立方体)の表現であり、位置、方向、長さ、幅、および/または高さを有するものであってもよい。例としては、バウンディングボックスは、物体を包含する最小体積の立方体であってもよい。
【0064】
衝突検出コンポーネント216は、衝突の検出を示すデータを軌道検証コンポーネント218に提供し得る。さらに、図示されているように、衝突検出コンポーネント216(1)は、主要軌道116(「PT116」として示される)を軌道検証コンポーネント218(1)に渡し得る。衝突検出コンポーネント216(2)は、副次軌道118(「ST118」として示される)を軌道検証コンポーネント218(2)および軌道検証コンポーネント218(3)に渡し得る。
【0065】
図2においては、2つの衝突検出コンポーネント216が図示されているが、単一の衝突検出コンポーネント216や2つ以上の衝突検出コンポーネント216(例えば、さらなる主要/副次軌道のため)など、任意の数の衝突検出コンポーネント216が実装され得る。
【0066】
例では、軌道検証コンポーネント218は、軌道が有効であるかどうかを決定するために、1つまたは複数の検証動作を実行し得る。いくつかの例では、軌道検証コンポーネント218(1)は、
図3を参照して後述する1つ以上の検証動作を実行することによって、主要軌道116が有効であるかどうかを決定し得る。さらに、いくつかの例では、軌道検証コンポーネント218(2)は、
図4を参照して後述する1つ以上の検証動作を実行することによって、副次軌道118が有効であるかどうかを決定し得る。
【0067】
さらに、いくつかの例では、軌道検証コンポーネント218(3)は、副次軌道118が有効であるかどうかを決定し得る。副次軌道118が無効である場合、軌道検証コンポーネント218(3)は、別の軌道を生成し、別の軌道が有効であるかどうかを決定し得る。軌道検証コンポーネント218(3)によって生成された軌道は、潜在的な衝突を回避または軽減しようとして自律車両102を減速させて停止させる衝突回避軌道を含み得る。例えば、衝突回避軌道は、副次軌道118(または、場合によっては主要軌道116)に沿った減速を含み得る。いくつかの例では、衝突回避軌道は、副次軌道118で検出された潜在的な衝突を緩和するために、副次軌道118の摂動を備え得る。軌道検証コンポーネント218(3)は、自律車両102の姿勢に関する情報(例えば、ローカライゼーションコンポーネント210によって提供される)、物体に関する情報(例えば、知覚/予測コンポーネント212によって提供される足跡または軌道の情報)、主要システム106によって提供される情報、および/または副次システム108が利用可能な他の情報に基づいて、衝突回避軌道を生成し得る。いくつかの例では、軌道検証コンポーネント218(3)は、
図5を参照して後述する検証動作のうちの1つ以上を実行し得る。
【0068】
軌道検証コンポーネント218は、軌道の有効性を示すデータを軌道選択コンポーネント220に出力し得る。例えば、軌道検証コンポーネント218(1)は、主要軌道116が有効か無効かを示す主要軌道116の状態を決定し、軌道選択コンポーネント220に出力し得る。さらに、軌道検証コンポーネント218(2)は、副次軌道118が有効か無効かを示す副次軌道118の状態を決定し、その状態を軌道選択コンポーネント220に出力し得る。さらに、軌道検証コンポーネント218(3)は、衝突回避軌道(例えば、修正された副次軌道118または副次軌道118)の状態を決定し、その状態を軌道選択コンポーネント220に出力し得る。
【0069】
図2では3つの軌道検証コンポーネント218が図示されているが、単一の軌道検証コンポーネント218や3つ以上の軌道検証コンポーネント218(例えば、さらなる軌道のため)など、任意の数の軌道検証コンポーネント218が実装され得る。
【0070】
例では、軌道管理コンポーネント128は、軌道の状態(例えば、有効または無効)を示すメッセージを計画コンポーネント208(または、主要システム106の別のコンポーネント)に提供し得る。例えば、軌道検証コンポーネント218の1つまたは複数は、軌道が有効か無効かを示すメッセージを計画コンポーネント208に送信し得る。例では、メッセージは、衝突までの時間、衝突の可能性に関連する物体の範囲、物体の速度、物体の位置、または衝突点(例えば、検出された衝突の位置)のうちの1つまたは複数を示し得る。
【0071】
軌道選択コンポーネント220は、システムコントローラ110に送信する出力軌道を決定し得る。軌道選択コンポーネント220は、通常、主要軌道116、副次軌道118、衝突回避軌道(または、副次システム108によって生成された別の軌道)、および/または最大減速軌道を選択し得る。そのような選択は、軌道検証コンポーネント218によって提供される1つまたは複数の軌道に対する、1つまたは複数の状態に基づき得る。主要軌道116は、副次軌道118よりも高いレベルを有し得、副次軌道118は、衝突回避軌道よりも高いレベルを有し得、衝突回避軌道は、最大減速軌道よりも高いレベルを有し得る。多くの例では、低いレベルの軌道は、高いレベルの軌道よりも高い減速度と関連し得る。例えば、衝突回避軌道は、副次軌道118よりも高い減速度(例えば、より多くの毎秒のフィート)と関連付け得る。軌道選択コンポーネント220は、一般に、有効な最高レベルの軌道を選択し得る。これは、自律車両102が、衝突を回避するために最小の減速度で減速し、乗客に比較的快適な乗り心地を提供すること与え得る。
【0072】
例では、最大減速軌道(急停止または緊急停止とも呼ばれる)は、所定の速度、閾値よりも大きい速度(例えば、最大ブレーキ速度)、複数の利用可能な速度の中から最大の速度など、特定の速度でブレーキすることを含み得る。一例では、最大減速軌道は、自律車両102が停止するまで、毎秒15フィートまたは20フィートの速度で減速することを含み得る。
【0073】
例では、軌道選択コンポーネント220は、主要軌道116が有効である場合、出力軌道として主要軌道116を選択し得る。主要軌道116が無効である場合、軌道選択コンポーネント220は、出力軌道として副次軌道118を選択し得る。主要軌道116と副次軌道118の両方が無効である場合、軌道選択コンポーネント220は、出力軌道として、衝突回避軌道を選択し得る。主要軌道116、副次軌道118、および衝突回避軌道が全て無効である場合、軌道選択コンポーネント220は、最大減速軌道を選択し得る。軌道選択コンポーネント220が軌道を選択すると、軌道選択コンポーネント220は、自律車両102を制御するために使用する軌道を示す信号を駆動管理コンポーネント224(または、
図1のシステムコントローラ110)に送信し得る。
【0074】
例では、出力軌道が減速に関連している場合、軌道選択コンポーネント220は、そのような減速に備えるために自律車両102の他のコンポーネントに信号を送信し得る。例えば、衝突の可能性が高いために最大減速軌道が選択された場合、軌道選択コンポーネント220は、他のコンポーネントが衝突に備えるように(例えば、シートベルトのプリテンション、エアバッグの展開準備など)、他のコンポーネントに警告する信号を出力し得る。
【0075】
例では、軌道選択コンポーネント220は、選択された軌道(例えば、出力軌道)を示すデータを維持する。例えば、軌道選択コンポーネント220は、軌道に関連する状態をそれぞれ移行させる状態マシンを維持し得る。軌道選択コンポーネント220によって実装され得る例示的な状態は、
図6を参照して後述される。例では、軌道選択コンポーネント220は、低レベルの状態に移行してもよく、低レベルの状態から制御を解除する信号を受信するまで、高レベルの状態に移行しなくてもよい。
【0076】
解除コンポーネント222は、現在の状態から制御を解除する(例えば、軌道から制御を解除する)ために、軌道選択コンポーネント220に信号を送信し得る。一例では、遠隔操作システムは、現在の状態から制御を解除するための信号を副次システム108に提供し得、これに応答して、解除コンポーネント222は、現在の状態から制御を解除するための信号を軌道選択コンポーネント220に送信し得る。遠隔操作システムは、自動化システム、オペレータ(例えば、ユーザ)に関連する遠隔操作システム、および/または別のエンティティを備え得る。オペレータは、自律車両102の走行の中断(例えば、予期せぬ停止)などの問題が発生したときに、自律車両102の管理を支援し得る。一例では、主要軌道116以外の軌道に関連する状態に移行すると、オペレータは自律車両102の乗客と通信したり、自律車両102に関連するデータを分析したりするなどして、自律車両102が通常の動作を再開する(または異なる状態に移行する)ことに問題がないかどうかを決定し得る。ここで、オペレータは、自律車両102が通常の動作を再開する(または異なる状態に移行する)ことが明確であると決定した場合に、現在の状態から制御を解除するための信号を、副次システム108に送信させ得る。別の例では、自律車両102のコンポーネントが、自律車両102が通常の動作を再開する(または異なる状態に移行する)ことが明確であると決定するための処理を実行し、現在の状態から制御を解除するための信号を解除コンポーネント222に送信させ得る。
【0077】
モニターコンポーネント214は、主要システム106、副次システム108、および/または自律車両102の他のコンポーネントを監視し、エラーがあるかどうかを決定し得る。多くの例では、モニターコンポーネント214は、軌道管理コンポーネント128よりもグローバルに主要システム106をモニターし得る(例えば、単なる軌道ではなくグローバルな車両状態情報をモニターする)。例では、モニターコンポーネント214は、主要システム106、副次システム108、および/または別のコンポーネントのハードウェアおよび/またはソフトウェアの障害が発生した場合に、エラーが発生したと決定し得る(例えば、自律車両102のセンサー104、アクチュエータ、または他のコンポーネントの故障)、主要システム106、副次システム108、および/または他のコンポーネントへの電力が途絶された場合、主要システム106、副次システム108、および/または他のコンポーネントから信号がしばらくの間(例えば、主要システム106が問題を経験していることを示す期間よりも長い期間)受信されなかった場合などに、エラーが発生したと決定し得る。そのような決定は、主要システム106からの信号、主要システム106/副次システム108のコンポーネントからの信号、駆動管理コンポーネント224(または、駆動管理コンポーネント224と通信し得るアクチュエータ(ブレーキ、ステアリングなど))からの信号、および/またはハードウェアまたはソフトウェアの障害を示すサービスプロバイダ(例えば、リモートデバイス)からの信号(例えば、診断情報)に基づき得る。さらに、または代替的に、そのような決定は、自律車両102のバッテリまたは電力供給に関連する他のコンポーネントからの、主要システム106/副次システム108(または主要システム106/副次システム108のコンポーネント)に電力が供給されているか否かを示す信号に基づき得る。
図2に示されるように、モニターコンポーネント214は、駆動管理コンポーネント224から信号を受信し得る。そのような信号は、駆動管理コンポーネント224および/またはアクチュエータなどの駆動管理コンポーネント224と通信しているコンポーネントのエラーを示し得る。さらに、モニターコンポーネント214は、計画コンポーネント208と通信して、計画コンポーネント208とのエラーを示す信号を受信し、および/または監視に関する情報(例えば、エラーが発生したことを示す自律車両102の状態)を送信し得る。
【0078】
モニターコンポーネント214が主要システム106のエラーを決定した場合、モニターコンポーネント214は、そのようなエラーを示す信号を軌道管理コンポーネント128(例えば、軌道選択コンポーネント220)に送信し得る。自律車両102が、減速に関連する軌道(例えば、副次軌道118、衝突回避軌道、または最大減速軌道)によって既に制御されていない場合、軌道選択コンポーネント220は、減速に関連する軌道を選択し、自律車両102を制御する(例えば、停止する)ための信号をシステムコントローラ110に送信し得る。
【0079】
駆動管理コンポーネント224は、(例えば、軌道選択コンポーネント220から)軌道を受信、および/または自律車両102を制御するためのコマンド/命令を生成し得る。例えば、駆動管理コンポーネント224は、自律車両102の操舵、推進、ブレーキ、安全性、エミッタ、通信、および/または他のシステムを制御し得る。いくつかの例では、駆動管理コンポーネント224は、自律車両102に軌道を横切らせるために、選択された軌道を駆動システムによって使用可能な命令に変換し得る。例では、駆動管理コンポーネント224は、システムコントローラ110の代わりに、または協力して実装される。さらに、例では、駆動管理コンポーネント224は、システムコントローラ110と置き換えられ得る。例では、駆動管理コンポーネント224は、ローカライゼーションコンポーネント210から姿勢情報を受信する。さらに、駆動管理コンポーネント224は、アクチュエータのエラーを示すアクチュエータ診断データなどのデータをモニターコンポーネント214に提供し得る。
【0080】
いくつかの例では、副次システム108または別のシステムは、センサーデータ120に対して地面削除技術を実行する。これは、センサーデータ120が副次システム108のコンポーネントによって使用される前に行われ得る。例えば、副次システム108は、LIDARデータまたはLIDARデータに関連するボクセルデータを分析し、LIDARデータまたはボクセルが地面を表しているかどうかを決定し得る。いくつかの例では、地面は、車両によって走行可能な表面に対応し得る。いくつかの例では、副次システム108は、LIDARシステムを搭載する装置の高さ次元(例えば、基準方向)のベクトルと、共通の座標系で表される法線ベクトル(ボクセル毎の固有値分解に基づいて決定され得るような)との間の内積を決定し得る。このような例では、内積が、例えば、約15度の閾値を満たす或いは超えると、そのボクセルが地面を備えていないことを示し得る。一方、内積が閾値より小さい場合は、ボクセルが地面を備えていることを示し得る。さらに、いくつかの例では、副次システム108は、地面に対応する表面を成長させるために、局所的に平坦なボクセルであると決定されたボクセルをクラスタリングし得る。例では、センサーデータにおいて地表が識別されると、地表に関連するデータがセンサーデータから除去され、残りのデータが処理され得る(例えば、物体の検出、セグメント化、分類など)。いくつかの例では、主要システム106、副次システム108、および/または別のシステムは、「Voxel Based Ground Plane Estimation and Object Segmentation」と題され、2017年6月14日に出願された、特許文献2で論じられる地面除去技術を実行してもよく、その内容全体は参照により本明細書に組み込まれる。
【0081】
主要システム106および/または副次システム108のコンポーネントは、ハードウェアおよび/またはソフトウェアのコンポーネントを表し得る。ソフトウェアのコンテキストでは、コンポーネントの1つまたは複数は、1つまたは複数のプロセッサによって実行可能な命令を含み得る。ハードウェアのコンテキストでは、コンポーネントの1つまたは複数は、集積回路(例えば、特定用途向け集積回路(ASIC)など)、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(FPGA)など)などとして実装され得る。少なくともいくつかの例では、主要システム106と副次システム108のハードウェアとソフトウェアの両方が異なり得る。
【0082】
図3、
図4、および
図5は、1つまたは複数の検証動作を実行するための例示的なプロセス300、400、および500を示している。プロセス300、400、および500は、論理的なフローグラフとして図示されており、その各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る動作のシーケンスを表している。ソフトウェアのコンテキストでは、動作は、1つまたは複数のコンピュータ可読記憶媒体に格納されたコンピュータ実行可能な命令を表し、1つまたは複数のプロセッサによって実行されると、記載された動作を実行する。一般的に、コンピュータ実行可能な命令には、特定の機能を実行するもの、または特定の抽象的なデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。説明されている動作の順序は、制限として解釈されることを意図したものではなく、説明されている動作の任意の数が、任意の順序および/または並列に組み合わされて、プロセスが実装され得る。プロセス300、400、および/または500は、自律車両102、サービスプロバイダ(例えば、サービスプロバイダのコンピューティングデバイス)、または任意の他のデバイスなど、任意のデバイスまたはコンポーネントによって実行され得る。
【0083】
図3は、車両の軌道が有効か無効かを決定する例示的なプロセス300を示している。いくつかの例では、プロセス300は、主要軌道に対して実行され得る。例えば、プロセス300は、
図2の軌道検証コンポーネント218(1)によって実行され得る。他の例では、プロセス300は、副次軌道、衝突回避軌道、および/または任意の他の軌道など、他の軌道に対して実行され得る。
【0084】
動作302において、システムは、車両のための軌道が、閾値未満の時間(例えば、現在の時間からの閾値)前に生成されたかどうかを決定し得る。例えば、システムは、現在の時間と、軌道が生成された時間とを参照し得る(例えば、軌道に関連するデータおよび/またはデータストア内のデータから)。システムが、軌道は閾値未満の時間前に生成されたと決定した場合(例えば、軌道が古くないことを示す場合)、プロセス300は動作304に進み得る。あるいは、システムが、軌道が閾値未満の時間前に生成されなかったと決定した場合(例えば、軌道が古いことを示す)、プロセス300は、動作306に進み得る。
【0085】
動作304で、システムは、軌道が車両の現在または以前の姿勢と一致するかどうかを決定し得る。例えば、システムは、軌道が、現在の姿勢および/または1つまたは複数の以前の姿勢に閾値以上の変化(例えば、方向、位置、進路などの閾値以上の変化)を引き起こすかどうかを決定し得る。いくつかの例では、軌道は、直近の3つの軌道など、多様な以前の軌道と比較され、以前の軌道のそれぞれから閾値以上の変化があるかどうかを決定し得る。システムは、1つまたは複数の以前の軌道を参照してもよいように、経時的に軌道を格納し得る。システムが、軌道は車両の現在または以前の姿勢と一致すると決定した場合、プロセス300は動作308に進み得る。あるいは、軌道が車両の現在または以前の姿勢と一致しないとシステムが決定した場合、プロセス300は、動作306に進み得る。
【0086】
動作308において、システムは、軌道が車両の性能と適合するかどうかを決定し得る。車両の性能は、自律車両102のハードウェアおよび/またはソフトウェアコンポーネント、および/またはそれらのコンポーネントの制限に基づき得る。一例では、システムは、最大操舵角、ある操舵角から別の操舵角に変更する時間、最大加速度など、自律車両102の性能を特定し得る。軌道が、最大操舵角を超える変化を必要とする場合、操舵角の調整に必要な時間よりも早く操舵を変更することを必要とする場合、および/または最大加速度を超える加速度を必要とする場合、システムは、軌道が車両の性能と適合しないと決定し得る。システムが、軌道が車両の性能と適合すると決定した場合、プロセス300は、動作310に進み得る。あるいは、軌道が車両の性能と適合しないとシステムが決定した場合、プロセス300は動作306に進み得る。
【0087】
動作310において、システムは、軌道が衝突のないものであるかどうかを決定し得る。例えば、システムは、車両軌道に沿って移動する車両が、物体軌道に沿って移動する物体と衝突するかどうかを決定し得る。そうである場合、軌道は衝突と関連づけられる。いくつかの例では、システムは、車両が物体と衝突する確率を決定し、その確率が確率閾値を満たすか、または超えるかを決定し得る。確率が確率閾値を満たすまたは超える場合、システムは、車両が物体と衝突すると決定し得る。例では、動作310は、車両の周辺で検出された各物体に対して実行され得る(例えば、1つまたは複数の衝突を確認するため)。
【0088】
システムが、軌道が衝突のないものであると決定した場合、プロセス300は、動作312に進み得る。あるいは、システムが、軌道が衝突のないものではない(例えば、衝突に関連するものである)と決定した場合、プロセス300は、動作314に進み得る。
【0089】
動作314において、システムは、衝突が閾値以上の時間で発生するかどうかを決定し得る。例えば、システムは、物体と衝突する前の最後の秒のブレーキまでの時間(TTLSB)を決定し得る。最後の秒のブレーキまでの時間は、車両が物体との衝突を回避するために最大減速軌道を開始する必要がある最後の可能な時間であってもよい。最後の秒のブレーキまでの時間が比較的遠い将来(例えば、閾値以上の時間)であれば、車両が軌道を修正して最大減速軌道の開始を回避する時間が存在し得る。すなわち、システムは、まだ最大減速軌道を開始する必要はない。例を挙げると、物体に対する最後の秒のブレーキまでの時間が10ミリ秒単位である場合、システムは、閾値未満の時間で衝突が発生すると決定し得る。反対に、最後の秒のブレーキまでの時間が2秒である場合、システムは、閾値以上の時間で衝突が発生すると決定し得る。例では、システムは、車両の周辺の各物体(例えば、物体リストの中の各物体)との衝突の可能性を評価し得る。
【0090】
システムが、閾値以上の時間で衝突が発生すると決定した場合(例えば、最後の秒のブレーキまでの時間までにまだ時間がある場合)、プロセス300は動作316に進み得る。あるいは、システムが、衝突が閾値の時間または閾値未満の時間で発生すると決定した場合、プロセス300は、動作306に進み得る。
【0091】
動作306において、システムは、軌道が無効であると決定し得る。例では、システムは、軌道が無効であることを示すために、軌道の状態を更新し得る。いくつかの例では、状態は、軌道が無効である理由(例えば、衝突に関連している、衝突が発生する時間、車両の現在/以前の姿勢と矛盾している、車両の性能と適合しない、など)を示し得る。
【0092】
いくつかの例では、プロセス300は、動作306を実行した後、動作318に進み得る。動作318において、システムは、軌道が無効であることを示すメッセージを送信し得る。例えば、システムは、副次システムであって、主要システムにメッセージを送信し、主要システムによって生成された軌道が無効であることを通知し得る。例では、メッセージは、軌道が無効である理由を示し得る。
【0093】
動作316において、システムは、軌道が衝突に関連付けられていることを示すメッセージを送信し得る。例えば、システムは、副次システムであって、主要システムにメッセージを送信し、主要システムによって生成された軌道が将来の衝突に関連することを主要システムに通知し得る。例では、メッセージは、衝突までの時間、衝突の可能性に関連する物体の範囲、物体の速度、物体の位置、または衝突点(例えば、検出された衝突の位置)の1つまたは複数を示し得る。
【0094】
動作312において、システムは、軌道が有効であると決定し得、および/または軌道を格納し得る。例では、システムは、軌道が有効であることを示すために、軌道の状態を更新し得る(例えば、衝突していないなど)。
【0095】
一例では、午前11時30分40秒に、評価中の軌道を使用した場合、システムは、車両が5秒後(午前11時30分45秒)に物体と衝突すると決定し得る。また、システムは、(例えば、最大減速軌道を用いて)車両を停止させ、物体との衝突を回避するために必要な時間が、(例えば、車両および/または物体の速度に基づいて)3秒であると決定し得る。システムは、そのような情報を使用して、車両が衝突を回避するために最大減速軌道を開始する必要がある最後の可能な時間(最後の秒のブレーキまでの時間(TTLSB)とも呼ばれる)を決定し得る。この例では、最後の秒のブレーキまでの時間は、午前11時30分42秒である。ここで、システムは、衝突が閾値以上の時間で発生すると決定し、その旨を示すメッセージを送信し、軌道が今のところ有効として指示し得る。午前11時30分42秒(2秒後の将来)に、システムは、車両に衝突の可能性があるかどうか(例えば、車両が、軌道または新しい軌道に基づいて物体と衝突するコース上にまだあるかどうか)を決定し得る。衝突の可能性が検出された場合、システムは、衝突を回避するために最大減速軌道(または別の操作)を開始し得る。
【0096】
図4は、車両の軌道が有効か無効かを決定する例示的なプロセス400を示す。いくつかの例では、プロセス400は、
図2の軌道検証コンポーネント218(2)によって実行され得る。他の例では、プロセス400は、他のコンポーネントによって、および/または他の軌道に対して実行され得る。
【0097】
動作402において、システムは、車両のための副次軌道が閾値未満の時間前に生成されたかどうかを決定し得る。例えば、システムは、主要システムによって現在出力されている副次軌道が、閾値未満の時間前に生成されたかどうかを決定し得る。システムが、副次軌道が閾値未満の時間前に生成されたと決定した場合、プロセス400は動作404に進み得る。あるいは、システムが、副次軌道は閾値未満の時間前に生成されなかったと決定した場合、プロセス400は動作406に進み得る。
【0098】
動作404において、システムは、評価する軌道を選択し得る。一例では、主要軌道が車両を制御するために現在使用されている場合、システムは、動作402における評価に合格した副次軌道(例えば、閾値未満の時間前に生成された副次軌道)を選択し得る。別の例では、現在使用されている軌道が、主要軌道よりも低いレベルの軌道(例えば、副次軌道、衝突回避軌道、またはその他の低いレベルの軌道)を有しており、主要軌道への制御を解除するための解除信号が受信された場合、システムは、動作402での評価に合格した副次軌道を選択し得る。さらに別の例では、以前の副次軌道から制御を解除するための解除信号が受信されていない場合、システムは以前の副次軌道を選択し得る。
【0099】
このように、動作404においてシステムは、以前に格納された副次軌道または主要システムから現在出力されている副次軌道を選択し得る。これを行うために、システムは、選択された状態(例えば、主要軌道状態、副次軌道状態、衝突回避軌道状態など)を決定し、より高いレベルの軌道に制御を解除するための解除信号を受信したか否かを決定し得る。例えば、別の副次軌道が先にラッチされていない場合や、解除信号を受信した場合には、主要システムが現在出力している副次軌道が選択され得る。さらに、以前に主要システムによって出力された副次軌道は、そのような副次軌道がラッチオンされており、会場信号が受信されていない場合に選択され得る。
【0100】
動作408において、システムは、選択された軌道が車両の現在または以前の姿勢と一致するかどうかを決定し得る。システムが、選択された軌道は車両の現在または以前の姿勢と一致すると決定した場合、プロセス400は、動作410に進み得る。あるいは、軌道が車両の現在または以前の姿勢と一致しないとシステムが決定した場合、プロセス400は動作406に進み得る。
【0101】
動作410において、システムは、選択された軌道が車両の性能と適合するかどうかを決定し得る。システムが、選択された軌道は車両の性能と適合すると決定した場合、プロセス400は動作412に進み得る。あるいは、選択された軌道が車両の性能と適合しないとシステムが決定した場合、プロセス400は動作406に進み得る。
【0102】
動作412において、システムは、軌道が衝突のないものであるかどうかを決定し得る。システムが、軌道は衝突のないものであると決定した場合、プロセス400は、動作414に進み得る。あるいは、システムが、軌道は衝突のないものではない(例えば、衝突に関連している)と決定した場合、プロセス400は、動作416に進み得る。
【0103】
動作416において、システムは、衝突が閾値未満の時間で発生するかどうかを決定し得る。システムが、衝突は閾値以上の時間で発生すると決定した場合(例えば、最後の秒のブレーキまでにまだ時間がある場合)、プロセス400は、動作414に進み得る。いくつかの例では、経路に沿って動作414に進むとき、システムは、
図3の動作316と同様に、軌道が衝突に関連していることを示すメッセージを送信し得る。あるいは、システムが、衝突が閾値の時間に起こるか、または閾値未満の時間に起こると決定した場合、プロセス400は、動作406に進み得る。
【0104】
動作406において、システムは、選択された軌道が無効であると決定し得る。例では、システムは、選択された軌道が無効であることを示すために、選択された軌道の状態を更新し得る。いくつかの例では、状態は、選択された軌道が無効である理由を示し得る。
【0105】
いくつかの例では、プロセス400は、動作406を実行した後、動作418に進み得る。動作418では、システムは、軌道が無効であることを示すメッセージを送信し得る。例えば、システムは、副次システムであって、主要システムにメッセージを送信し、主要システムによって生成された軌道が無効であることを主要システムに通知し得る。例では、メッセージは、軌道が無効である理由を示し得る。
【0106】
動作414において、システムは、選択された軌道が有効であることを決定、および/または選択された軌道を格納し得る。例では、システムは、選択された軌道が有効であることを示すために、選択された軌道の状態を更新し得る。少なくともいくつかの例では、そのような決定は、副次軌道が有効であることを示す主要システムにも送信され得る。
【0107】
図5は、車両の軌道が有効か無効かを決定する例示的なプロセス500を示している。いくつかの例では、プロセス500は、
図2の軌道検証コンポーネント218(3)によって実行され得る。他の例では、プロセス500は、他のコンポーネントによって、および/または他の軌道に対して実行され得る。
【0108】
動作502において、システムは、車両のための副次軌道が閾値未満の時間前に生成されたかどうかを決定し得る。例えば、システムは、主要システムによって現在出力されている副次軌道が、閾値未満の時間前に生成されたかどうかを決定し得る。システムが、副次軌道は閾値未満の時間前に生成されたと決定した場合、プロセス500は動作504に進み得る。あるいは、システムが、副次軌道が閾値未満の時間前に生成されなかったと決定した場合、プロセス500は、動作506に進み得る。
【0109】
動作504において、システムは、評価する軌道を選択し得る。一例では、主要軌道が車両を制御するために現在使用されている場合、システムは、動作502における評価に合格した副次軌道(例えば、閾値未満の時間前に生成された副次軌道)を選択し得る。別の例では、現在使用されている軌道が、主要軌道よりも低いレベルの軌道(例えば、副次軌道、衝突回避軌道、または他の低レベルの軌道)を有しており、主要軌道への制御を解除するための解除信号が受信された場合、システムは、動作502における評価に合格した副次軌道を選択し得る。さらに別の例では、以前の衝突回避軌道から制御を解除するための解除信号が受信されていない場合、システムは以前の衝突回避軌道を選択し得る。
【0110】
このように、動作504においてシステムは、以前に格納された衝突回避軌道または主要システムから現在出力されている副次軌道を選択し得る。これを行うために、システムは、選択された状態(例えば、主要軌道状態、副次軌道状態、衝突回避軌道状態など)を決定し、より高いレベルの軌道への制御を解除するための解除信号を受信したか否かを決定し得る。例えば、別の副次軌道が以前にラッチオンされていない場合、解除信号が受信された場合、またはシステムが追加の更新を無視すべきと決定した場合(例えば、システムが追加の副次軌道の整合性を検証し得ない場合)、主要システムによって現在出力されている副次が選択され得る。さらに、以前の衝突回避軌道がラッチオンされており、解除信号が受信されていない場合には、以前の衝突回避軌道が選択され得る。いくつかの例では、(後述するようにプロセス500によって決定/出力された)衝突回避軌道は、副次軌道であり得る。他の例では、(プロセス500によって決定/出力された)衝突回避軌道は、修正された副次軌道であり得る。
【0111】
動作508において、システムは、選択された軌道が車両の現在または以前の姿勢と一致するかどうかを決定し得る。システムが、選択された軌道が車両の現在または以前の姿勢と一致すると決定した場合、プロセス500は動作510に進み得る。あるいは、軌道が車両の現在または以前の姿勢と一致しないとシステムが決定した場合、プロセス500は動作506に進み得る。
【0112】
動作510において、システムは、選択された軌道が車両の性能と適合するかどうかを決定し得る。システムが、選択された軌道が車両の性能と適合すると決定した場合、プロセス500は動作512に進み得る。あるいは、選択された軌道が車両の性能と適合しないとシステムが決定した場合、プロセス500は動作506に進み得る。
【0113】
動作512において、システムは、軌道が衝突のないものであるかどうかを決定し得る。システムが、軌道は衝突のないものであると決定した場合、プロセス500は、動作514に進み得る。あるいは、システムが、軌道は衝突のないものではない(例えば、衝突に関連している)と決定した場合、プロセス500は、動作516に進み得る。
【0114】
動作516で、システムは、衝突が閾値以上の時間で発生するかどうかを決定し得る。システムが、衝突が閾値以上の時間で発生すると決定した場合(例えば、最後の秒のブレーキを行う時間までにまだ時間がある場合)、プロセス500は動作514に進み得る。あるいは、システムが、衝突は閾値の時間または閾値未満の時間で発生すると決定した場合、プロセス500は、動作506に進み得る。
【0115】
図5に示されているが、いくつかの例では、動作516は実行されなくてもよい。例えば、軌道が衝突に関連付けられている場合、プロセス500は動作506に進んでもよい。
【0116】
動作514において、システムは、選択された軌道が有効であることを決定、および/または選択された軌道を格納し得る。例では、システムは、選択された軌道が有効であることを示すために、選択された軌道の状態を更新し得る。
【0117】
動作506において、システムは、反復制限(制限と呼ばれることもある)が満足されるかどうかを決定し得る。反復制限は、システムが反復回数内で許容可能な衝突回避軌道を決定できない場合に、衝突回避軌道が無効であるとみなされるように使用され得る。これは、許容可能な衝突回避軌道を求めるために費やす時間を制限し得る。例では、反復制限は、最後の秒のブレーキまでの時間に基づいてもよい(例えば、最後の秒のブレーキまでに到達することが可能な反復の数に設定される)。例では、各反復において、動作520が実行される。
【0118】
反復制限が満足されているとシステムが決定した場合、プロセス500は動作518に進み得る。あるいは、システムが、反復制限は満足されていないと決定した場合、プロセス500は動作520に進み得る。
【0119】
動作520で、システムは、選択された軌道を修正し、動作508の実行に戻るなどし得る。いくつかの例では、システムは、物体と衝突する前に車両を停止させるために必要な量の減速度を追加し得る。これは、車両の現在の速度、物体の予測された軌道、および/または物体の現在の速度または予測された速度に基づいてもよい。代わりに、または付加的に、システムは、操舵角の変更、加速度の追加など、別の方法で選択された軌道を修正してもよい。これは、物体との衝突を回避し得る。例では、選択された軌道を修正することで、衝突回避軌道を作成してもよい。
【0120】
動作518において、システムは、選択された軌道が無効であると決定し得る。例では、システムは、選択された軌道が無効であることを示すために、選択された軌道の状態を更新し得る。いくつかの例では、状態は、選択された軌道が無効である理由を示し得る。
【0121】
いくつかの例では、プロセス500は、動作518を実行した後、動作522に進み得る。動作522において、システムは、選択された軌道が無効であることを示すメッセージを送信し得る。例えば、システムは、副次システムであって、軌道が無効であることを主要システムに通知するために、メッセージを主要システムに送信し得る。例では、メッセージは、軌道が無効である理由を示してもよい。
【0122】
例では、動作514で有効であると判定された軌道は、動作520で適用された減速(または他の修正)のない副次軌道であってもよい。例えば、動作504で選択された副次軌道に修正が必要ない場合、副次軌道が動作508、510、512での確認を合格するので、副次軌道はプロセス500によって決定/出力されてもよい。他の例では、動作514で有効であると決定された軌道は、減速(または他の修正)が適用された副次軌道であってもよい。例では、プロセス500を実行することによって決定/出力される(および/または将来の参照のために格納される)いずれかの種類の軌道は、衝突回避軌道と呼ばれ得る。
【0123】
例では、最大量の減速/修正が選択された軌道に適用され(例えば、車両の性能を考慮して、動作520を1回以上実行することによって)、選択された軌道が依然として衝突に関連している場合、システムは、検出された衝突を上書きし、動作514で選択された軌道が有効であるとの決定に進み得る。これは、修正された軌道(これは、最大量の減速/修正が適用された衝突回避軌道である)を使用すること与え得る。例では、これは、修正された軌道を無効と指示して、最大減速軌道(例えば、緊急停止軌道)を開始するよりも有益であり得、それは、最大減速軌道は、車両の操舵角をロックし得る一方で、衝突回避軌道は、横方向の足跡を維持し得る(例えば、車両を衝突回避軌道に沿って継続させる)からである。例では、最大量の減速/修正が適用された衝突回避軌道が使用されるように選択された場合(例えば、プロセス500から決定/出力された場合)、信号が、シートベルトのプリテンション、エアバッグの展開準備などのために、車両の1つまたは複数のコンポーネントに送信され得る。
【0124】
図6は、軌道選択コンポーネント220などの副次システムによって実装され得る状態602から608の例示的な階層600を示している。例えば、主要軌道状態602は、車両を制御するために主要軌道が選択されたときにアクティブであり得、副次軌道状態604は、副次軌道が選択されたときにアクティブであり得、衝突回避軌道状態606は、衝突回避軌道が選択されたときにアクティブであり得、最大減速軌道状態608は、最大減速軌道(例えば、緊急停止軌道)が選択されたときにアクティブであり得る。
図6では、階層600は、レベルに応じて順序付けられており、最高レベルの状態が最上位(主要軌道状態602)にあり、最低レベルの状態が最下位(最大減速軌道状態608)にある。
【0125】
副次システムは、通常、上位の状態が無効であることが決定した場合に、下位の状態に移行し得る。副次システムは、線が下がることで示されるように、現在の状態から任意の下位の状態へと移行し得る。少なくともいくつかの例では、現在の状態は、下に無効な状態がない最も高い有効な状態と関連し得る(例えば、副次軌道状態604が無効であり、なおかつ衝突回避軌道状態が無効である場合、そのようなシステムは、最大減速軌道状態608にデフォルトで移行し得る)。さらに、例では、階層600を上に移行するために、副次システムは、下位の状態から制御を解除する信号を受信するのを待ってもよい。例えば、副次システムが現在、衝突回避軌道に基づいて車両を制御しており、これに伴って、副次システムが衝突回避軌道状態606で動作している場合、副次システムは、主要軌道状態602に戻って制御を解除する信号を受信したとき、主要軌道状態602に戻るように移行し得る(ここでは、車両は主要軌道に基づいて制御される)。
【0126】
図7Aから
図7Bは、本明細書で論じた技術を実行するための例示的なプロセス700を示している。プロセス700は、論理的なフローブラフとして図示されており、その各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る動作のシーケンスを表す。ソフトウェアのコンテキストでは、動作は、1つまたは複数のコンピュータ可読記憶媒体に格納されたコンピュータ実行可能な命令を表し、1つまたは複数のプロセッサによって実行されると、記載された動作を実行する。通常、コンピュータ実行可能な命令は、特定の機能を実行したり、特定の抽象的なデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。説明されている動作の順序は、制限として解釈されることを意図したものではなく、説明されている動作の任意の数が、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。プロセス700は、自律車両102、サービスプロバイダ(例えば、サービスプロバイダのコンピューティングデバイス)、または任意の他のデバイスなど、任意のデバイスまたはコンポーネントによって実行され得る。
【0127】
説明を簡便にするために、プロセス700は、第1のシステム702(第1のコンポーネントと呼ばれることもある)および第2のシステム704(第2のコンポーネントと呼ばれることもある)によって実行されるものとして論じられる。例えば、第1のシステム702は、
図1および
図2の主要システム106を備える得、一方、第2のシステム704は、
図1および
図2の副次システム108を備え得る。
【0128】
図7Aでは、動作706において、第1のシステム702は、第1のセンサーデータを受信し得る。例えば、第1のシステム702は、車両のセンサーから、LIDARデータ、RADARデータ、画像データ、深度データ(time of flight、structured lightなど)、ホイールエンコーダデータ、IMUデータなどの1つまたは複数を受信し得る。
【0129】
動作708において、第1のシステム702は、車両の第1の軌道および車両の第2の軌道を決定し得る。例えば、第1のシステム702は、第1のセンサーデータを解析し、第1の軌道および第2の軌道を生成し得る。例では、第1のシステム702は、第1および第2の軌道を生成するために、ローカライゼーション、知覚、予測、および/または計画の動作を実行し得る。例では、第2の軌道は、第1の軌道の臨時の軌道であり得る。
【0130】
動作710において、第1のシステム702は、第1および第2の軌道を第2のシステム704に送信し得る。
【0131】
動作712において、第2のシステム704は、第2のセンサーデータを受信し得る。例えば、第2のシステム704は、車両のセンサーから、LIDARデータ、RADARデータ、画像データ、ホイールエンコーダデータ、IMUデータ、深度データ(time of flight、structured lightなど)などの1つまたは複数を受信し得る。いくつかの例では、第2のセンサーは、LIDARデータ、RADARデータ、ホイールエンコーダデータ、IMUデータ、GPSデータ、および/またはtime of flightデータなど、第1のセンサーデータのサブセットを含み得る。他の例では、第2のセンサーデータは、第1のセンサーデータと同じであってもよいし、より多くのデータを含んでいてもよい。
【0132】
動作714において、第2のシステム704は、第1のシステム702から第1および第2の軌道を受信し得る。
【0133】
動作716において、第2のシステム704は、環境内の物体を決定、および/または物体のための物体軌道を決定し得る。例えば、第2のシステム704は、第2のセンサーデータに基づいて物体を検出、および/または物体のための物体軌道を予測し得る。
【0134】
動作718において、第2のシステム704は、第1の軌道で1つまたは複数の第1の検証動作を実行し得る。例えば、第2のシステム704は、第1の軌道に関連する第1の状態を決定するために、車両のための第1の軌道および物体のための物体軌道を用いて、1つまたは複数の第1の検証動作を実行し得る。例では、1つ以上の第1の検証動作は、第1の軌道が閾値未満の時間前に生成されたかどうかを決定すること、第1の軌道が車両の現在または以前の姿勢と一致するかどうかを決定すること、第1の軌道が車両の性能と適合するかどうかを決定すること、および/または第1の軌道に沿って動く車両が、物体軌道に沿って動く物体と衝突するかどうかを決定すること(例えば、第1の衝突検出を実行すること)を備える。例では、第1の状態は、第1の軌道が有効であること、第1の軌道が無効であること、または推定された衝突が閾値以上の時間で発生するために第1の軌道が無効になることを示す。例では、第2のシステム704は、環境内で検出された各物体について第1の軌道を評価し得る(例えば、検出された各物体について衝突の可能性があるかどうかを決定する)。ここで、第1の軌道は、衝突がない場合に有効であり得、衝突が1つだけある場合に無効であり得る。少なくともいくつかの例では、衝突検出のために選択された物体は、最も近い(すなわち、最も近接した衝突の可能性がある)ものから最も遠いものへと順に決定され得る。
【0135】
動作720において、第2のシステム704は、第2の軌道で1つまたは複数の第2の検証動作を実行し得る。例えば、第2のシステム704は、第2の軌道に関連する第2の状態を決定するために、車両のための第2の軌道および物体のための物体軌道を用いて、1つまたは複数の第2の検証動作を実行し得る。例では、1つまたは複数の第2の検証動作は、第2の軌道が閾値未満の時間前に生成されたかどうかを決定すること、第2の軌道が車両の現在または以前の姿勢と一致するかどうかを決定すること、第2の軌道が車両の性能と適合するかどうかを決定すること、および/または第2の軌道に沿って動く車両が物体軌道に沿って動く物体と衝突するかどうかを決定すること(例えば、第2の衝突検出を実行すること)を備える。例では、第2の状態は、第2の軌道が有効であること、第2の軌道が無効であること、または推定された衝突が閾値以上の時間で発生するために第2の軌道が無効になることを示す。例では、第2のシステム704は、環境内で検出された各物体について、第2の軌道を評価し得る。
【0136】
動作722において、第2のシステム704は、車両のための第3の軌道を生成し得る。例えば、第2のシステム704は、第2の軌道(または、場合によっては第1の軌道)に基づいて第3の軌道を生成し得る。第3の軌道は、第2の軌道に沿った減速または他の修正、または他の操作(例えば、衝突回避軌道)を備え得る。例では、第2のシステム704は、反復制限に基づいて任意の回数、第2の軌道に減速/修正を適用してもよく、および/または、適用可能な減速/修正の最大量まで減速/修正を適用してもよい。
【0137】
動作724において、第2のシステム704は、第3の軌道で1つまたは複数の第3の検証動作を実行し得る。例えば、第2のシステム704は、第3の軌道に関連する第3の状態を決定するために、車両のための第3の軌道および物体のための物体軌道を用いて、1つまたは複数の第3の検証動作を実行し得る。例では、1つ以上の第3の検証動作は、第3の軌道が閾値未満の時間前に生成されたかどうかを判定すること、第3の軌道が車両の現在または以前の姿勢と一致するかどうかを決定すること、第3の軌道が車両の性能と適合するかどうかを決定すること、および/または第3の軌道に沿って動く車両が物体軌道に沿って動く物体と衝突するかどうかを決定すること(例えば、第3の衝突検出を実行すること)を備える。例では、第2の状態は、第3の軌道が有効であること、第3の軌道が無効であること、または閾値以上の時間で発生する推定された衝突のために第3の軌道が無効になることを示している。
【0138】
例では、1つまたは複数の第1の検証動作、1つまたは複数の第2の検証動作、および/または1つまたは複数の第3の検証動作の任意の数が同じであってもよい。他の例では、検証動作の任意の数が異なってもよい。
【0139】
動作726において、第2のシステム704は、第1のシステム702、第2のシステム704、および/または車両のコンポーネントをモニターし得る。モニターに基づいて、第2のシステム704は、第1のシステム702、第2のシステム、および/または車両のコンポーネントのエラーを決定し得る。
【0140】
動作728において、第2のシステム704は、車両の第4の軌道を決定し得る。例えば、第2のシステム704は、第1の状態、第2の状態、および/または第3の状態に基づいて、第4の軌道として、第1の軌道、第2の軌道、第3の軌道、または第5の軌道(例えば、最大減速軌道)を選択し得る。
【0141】
例では、第1の状態が第1の軌道は有効であることを示しているとき、第1の軌道を選択し得る。さらに、例では、第2のシステム704は、(i)第1の状態が第1の軌道は無効であることを示し(例えば、閾値未満の時間での推定された衝突に関連する)、第2の状態が第2の軌道は有効であることを示すとき、または(ii)第1のシステム702、第2のシステム704、および/または車両のコンポーネントでエラーが検出され、第2の状態が第2の軌道が有効であることを示すときに、第2のシステム704は第2の軌道を選択し得る。
【0142】
さらに、例では、(i)第1の状態が第1の軌道は無効であることを示し、第2の状態が第2の軌道は無効であることを示し、第3の状態が第3の軌道は有効であることを示すとき、(ii)第1のシステム702、第2のシステム704、および/または車両のコンポーネントでエラーが検出され、第2の状態が第2の軌道は無効であることを示し、第3の状態が第3の軌道は有効であることを示すとき、または(iii)第1の状態が第1の軌道は無効であることを示し、第2の状態が第2の軌道が無効であることを示し、第3の軌道が衝突に関連しており、第3の軌道が最大量の減速/修正に関連しており、第3の軌道に減速/修正を適用する際に反復制限が満たされていないときに、第2のシステム704は第3の軌道(例えば、衝突回避軌道)を選択し得る。このように、いくつかの例では、第2のシステム704は、第3の軌道を生成するために最大量の減速/修正が適用されたかどうか、および/または反復制限が満たされたかどうかを決定し得る。
【0143】
さらに、例では、第2のシステム704は、第1の軌道、第2の軌道、または第3の軌道が上述のように選択されていない(例えば、第1の軌道が無効、第2の軌道が無効、第3の軌道が無効である)場合に、最大減速軌道(例えば、緊急停止軌道)を選択し得る。上述したように、第3の軌道は、第3の軌道に減速/修正を適用する際に反復制限が満たされることにより、無効となり得る。
【0144】
図7Bでは、動作730において第2のシステム704は、(例えば、軌道が無効である場合)第1のシステム702にメッセージを送信し得る。 メッセージは、軌道が無効である、および/または軌道に基づいて車両の制御が維持される場合に、第2のシステム704が介入することを示し得る。いくつかの例では、メッセージは送信されなくてもよい(例えば、第1の軌道が選択される場合)。少なくともいくつかの例では、そのようなメッセージデータは、例えば、衝突までの時間、衝突点、衝突する可能性のある物体に関する情報(例えば、物体の範囲、物体の識別子、物体の位置、物体の速度のいずれか1つまたは複数)などを含み得る。
【0145】
さらに、または代わりに、例では、動作728で最大減速軌道または衝突回避軌道(最大量の減速/修正が適用される)が選択された場合、メッセージまたは信号が車両の1つまたは複数のコンポーネントに送信され、シートベルトのプリテンション、エアバッグの展開準備などが行われ得る。
【0146】
動作732において、第1のシステム702は、第2のシステム704からメッセージを受信し得る。例では、第1のシステム702は、メッセージに基づいて、主要軌道などの軌道を調整し得る。
【0147】
動作734において、第2のシステム704は、第4の軌道に基づいて車両を制御し得る。例えば、第2のシステム704は、第4の軌道に基づいて車両を制御することを指示する信号を、駆動管理コンポーネント、システムコントローラなどに送信し得る。
【0148】
動作736において、第2のシステム704は、第4の軌道に基づいて車両の制御を維持し得る。例えば、第2のシステム704は、第2の軌道、第3の軌道、および/または最大減速軌道にラッチされた状態で維持し得、これは、システムコントローラに信号を送り続けることを含み得る。
【0149】
動作738において、第2のシステム704は、第4の軌道から車両の制御を解除する信号を受信し得る。例では、信号は、遠隔操作システムまたは別のシステムから受信され得る。信号は、車両が衝突を免れたこと、またはそうでなければ通常の動作に戻ることができることを示し得る。例えば、第4の軌道により、衝突の可能性があるために車両が停止した場合、信号は、車両が再び動くことが安全であることを示し得る。
【0150】
動作740において、第1のシステム702は、第6の軌道を生成し得る。第6の軌道は、主要/メインの軌道を備え得る。
【0151】
動作742において、第1のシステム702は、第6の軌道を第2のシステム704に送信し得る。
【0152】
動作744において、第2のシステム704は、第1のシステム702から第6の軌道を受信し得る。
【0153】
動作746において、第2のシステム704は、動作716に戻り、第6の軌道を評価し、有効であれば第6の軌道に基づいて車両を制御する。
【0154】
図8は、本明細書で説明される技術を実装するための例示的なシステム800のブロック図を示している。いくつかの実施形態では、システム800は、
図1の自律車両102に対応することができる車両802を含み得る。いくつかの例では、車両802は、米国高速道路交通安全局が発行したレベル5の分類に従って動作するように構成される自律車両であってよく、この分類は、運転者(または乗員)がいつでも車両を制御することを期待されない状態で、移動全体のためにすべての安全上重要な機能を実行することができる車両を説明している。しかし、他の例では、自律車両802は、任意の他のレベルまたは分類を有する完全または部分的な自律車両であってもよい。さらに、いくつかの例では、本明細書で説明される技術は、非自律的な車両によっても同様に使用され得る。
【0155】
車両802は、第1のシステム804(例えば、第1のコンピューティングデバイス)、第2のシステム806(例えば、第2のコンピューティングデバイス)、1つまたは複数のセンサー808、1つまたは複数のエミッタ810、1つまたは複数の通信接続部812、1つまたは複数の駆動システム814、および/または直接接続部816(例えば、データを交換するため、および/または電力を供給するために車両802を物理的に結合するため)を含み得る。
【0156】
いくつかの例では、センサー808は、光検出と測距(LIDAR)センサー、RADARセンサー、超音波トランスデューサ、ソナーセンサー、位置センサー(例えば、グローバルポジショニングシステム(GPS)、コンパスなど)、慣性センサー(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、カメラ(red-green-blue(RGB)、赤外線(IR)、強度、深度、time of flightなど)、マイク、ホイールエンコーダ、環境センサー(温度センサー、湿度センサー、光センサー、圧力センサーなど)などを含み得る。センサー808は、これらまたは他の種類のセンサーのそれぞれの多様なインスタンスを含み得る。例えば、LIDARセンサーは、車両802の角部、前部、後部、側面、および/または上部に配置された個々のLIDARセンサーを含み得る。別の例として、カメラは、車両802の外部および/または内部に関する様々な場所に配置された複数のカメラを含み得る。センサー808は、第1のシステム804および/または第2のシステム806に入力を提供し得る。
【0157】
車両802は、上述したように、光および/または音を放出するためのエミッタ810を含んでもよい。この例のエミッタ810は、車両802の乗客と通信するための内部の音声および映像エミッタを含み得る。例示であって限定ではないが、内部エミッタは、スピーカ、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(例えば、振動および/またはフォースフィードバック)、機械的アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含み得る。本例におけるエミッタ810は、外部エミッタも含み得る。限定されるものではないが、この例の外部エミッタは、進行方向または車両の動作の他の指示器を知らせるためのライト(例えば、方向指示器、標識、ライトアレイなど)、および歩行者または他の近くの車両と音声通信するための1つまたは複数の音声エミッタ(例えば、スピーカ、スピーカアレイ、ホーンなど)を含み、そのうちの1つまたは複数は、音響ビームステアリング技術を備える。
【0158】
車両802は、車両802と1つまたは複数の他のローカルまたはリモートのコンピューティングデバイスとの間の通信を可能にする通信接続部812を含んでもよい。例えば、通信接続部812は、車両802および/または駆動システム814上の他のローカルコンピューティングデバイスとの通信を容易にし得る。また、通信接続部812は、付加的または代替的に、車両802が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを有してもよい。通信接続部812は、付加的または代替的に、車両802がコンピューティングデバイス818と通信することを有し得る。
【0159】
通信接続部812は、第1のシステム804および/または第2のシステム806を、別のコンピューティングデバイスまたはネットワーク820などのネットワークに接続するための物理的および/または論理的なインターフェースを含み得る。例えば、通信接続部812は、IEEE 800.11規格で定義された周波数を介したようなWi-Fiベースの通信、Bluetooth(登録商標)などの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを有する任意の適切な有線または無線通信プロトコルを有し得る。いくつかの例では、第1のシステム804、第2のシステム806、および/またはセンサー808は、ネットワーク820を介して、特定の周波数で、所定の期間の経過後、ほぼリアルタイムなどで、センサーデータをコンピューティングデバイス818に送信し得る。
【0160】
いくつかの例では、車両802は、駆動システム814を含み得る。いくつかの例では、車両802は、単一の駆動システムを有し得る。いくつかの例では、駆動システム814は、駆動システム814および/または車両802の周辺の状態を検出するための1つまたは複数のセンサーを含み得る。例示であり限定ではないが、駆動システム814のセンサーは、駆動モジュールの車輪の回転を感知するための1つまたは複数のホイールエンコーダ(例えば、ロータリーエンコーダ)、慣性センサー(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラなどのイメージセンサー、駆動モジュールの周辺にある物体を音響的に検出する超音波センサー、LIDARセンサー、RADARセンサーなどを含み得る。ホイールエンコーダのようないくつかのセンサーは、駆動システム814に固有のものであってもよい。場合によっては、駆動システム814上のセンサーは、車両802の対応するシステム(例えば、センサー808)と重複または補完してもよい。
【0161】
駆動システム814は、高電圧バッテリ、車両を推進するためのモータ、バッテリからの直流を他の車両システムで使用するために交流に変換するインバータ、ステアリングモータおよびステアリングラック(電気式であってもよい)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するためにブレーキ力を分配するための安定性制御システム、HVACシステム、照明(例えば、車両の外部周辺を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバータ、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどの電子部品)を含む、多くの車両システムを含み得る。さらに、駆動システム814は、センサーからデータを受信して前処理し、様々な車両システムの動作を制御するための駆動システムコントローラを含み得る。いくつかの例では、駆動システムコントローラは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサと通信を有するように結合されたメモリとを含み得る。メモリは、駆動システム814の様々な機能を実行するための1つまたは複数のモジュールを格納し得る。さらに、駆動システム814は、それぞれの駆動システムが1つまたは複数の他のローカルまたはリモートのコンピューティングデバイスと通信することを有する1つまたは複数の通信接続部を含み得る。
【0162】
第1のシステム804は、1つまたは複数のプロセッサ822と、1つまたは複数のプロセッサ822との通信を有するように結合されたメモリ824とを含み得る。第2のシステム806は、1つまたは複数のプロセッサ826と、1つまたは複数のプロセッサ826との通信を有するように結合されたメモリ828とを含み得る。また、コンピューティングデバイス818は、プロセッサ830および/またはプロセッサ830との通信を有するように結合されたメモリ832を含み得る。プロセッサ822、826、および/または830は、データを処理し、本明細書で説明される動作を実行する命令を行うことができる任意の適切なプロセッサであってもよい。限定ではなく例として、プロセッサ822、826、および/または830は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、集積回路(例えば、特定用途向け集積回路(ASIC)など)、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(FPGA)など)、および/または電子データを処理して、その電子データをレジスタおよび/またはメモリに格納され得る他の電子データに変換する任意の他の装置または装置の一部を含み得る。
【0163】
メモリ824、828、および/または832は、非一時的コンピュータ可読媒体の例であり得る。メモリ824、828、および/または832は、本明細書に記載で説明される方法および様々なシステムに帰属する機能を実装するために、動作システムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納し得る。様々な実装において、メモリは、static random access memory(SRAM)、synchronous dynamic RAM(SDRAM)、不揮発性/フラッシュメモリ、または情報を格納することを有する他の種類のメモリなど、任意の適切なメモリ技術を使用して実装され得る。本明細書で論じられるアーキテクチャ、システム、および個々の要素は、他の多くの論理的、プログラム的、および物理的なコンポーネントを含み得る。
【0164】
例では、第1のシステム804のメモリ824は、1つまたは複数のコンポーネント834を格納し得る。例えば、第1のシステム804は、
図1および
図2の主要システム106に対応し、ローカライゼーションコンポーネント202、知覚コンポーネント204、予測コンポーネント206、および/または計画コンポーネント208を格納し得る。プロセッサ822は、1つまたは複数のコンポーネント834を実行して、第1のシステム804に、本明細書で論じられる様々な動作を行わせ得る。
【0165】
例では、第2のシステム806のメモリ828は、1つまたは複数のコンポーネント836を格納し得る。例えば、第2のシステム806は、
図1および
図2の副次システム108に対応し、ローカライゼーションコンポーネント210、知覚/予測コンポーネント212、軌道管理コンポーネント128、モニターコンポーネント214、および/または駆動管理コンポーネント224を格納し得る。プロセッサ826は、1つまたは複数のコンポーネント836を実行して、第2のシステム806に本明細書で論じられる様々な動作を行わせ得る。
【0166】
図8では、例示の目的で、メモリ824および/またはメモリ828に存在するものとして描かれているが、コンポーネント834および/またはコンポーネント836は、付加的にまたは代替的に、コンピューティングデバイス818へのアクセスを有し得る(例えば、遠隔地に格納されている)ことが企図されている。例えば、メモリ832は、コンポーネント834の少なくとも一部に対応する第1のシステムコンポーネント838を格納、および/またはコンポーネント836の少なくとも一部に対応する第2のシステムコンポーネント840を格納し得る。付加的にまたは代替的に、メモリ832は1つまたは複数のマップ842を格納し得る。
【0167】
少なくとも1つの例では、第1のシステム804および/または第2のシステム806は、1つまたは複数のシステムコントローラ844を含み得、これらのシステムコントローラは、車両802の操舵、推進、ブレーキ、安全、エミッタ、通信、およびその他のシステムを制御するように構成され得る。例では、システムコントローラ844は、メモリ824および/またはメモリ828に格納され得る。システムコントローラ844は、駆動システム814の対応するシステムおよび/または車両802の他のコンポーネントと通信および/または制御をし得る。いくつかの例では、システムコントローラ844は、第1のシステム804によって生成、第2のシステム806によって生成、および/または第2のシステム806によって選択された軌道を、駆動システム814によって使用できる命令に変換し、車両802に軌道を横切らせ得る。
【0168】
いくつかの例では、第1のシステム804、第2のシステム806、システムコントローラ844、および/またはその任意のコンポーネントは、上述のようにセンサーデータを処理し得、ネットワーク820を介してコンピューティングデバイス818にそれぞれの出力を送信し得る(例えば、特定の周波数、所定の期間の経過後、ほぼリアルタイムで、など)。
【0169】
第1のシステム804および/または第2のシステム806は、環境内をナビゲートするために車両802によって使用され得る1つまたは複数のマップ846を格納し得る。この議論の目的のために、マップは、2次元、3次元、またはN次元でモデル化された任意の数のデータで特徴づけられ、トポロジー(交差点など)、街路、山脈、道路、地形、および一般的な環境などの、環境に関する情報を提供することを有するものであり得る。いくつかの例では、限定されないが、マップは、テクスチャ情報(例えば、色情報(例えば、RGB色情報、Lab色情報、HSV/HSL色情報)など)、強度情報(例えば、LIDAR情報、RADAR情報など)、空間情報(例えば、メッシュに投影された画像データ、個々の「サーフェル」(例えば、個々の色および/または強度に関連付けられたポリゴン))、反射率情報(例えば、鏡面反射性情報、再帰反射率情報、BRDF情報、BSSRDF情報など)を含み得る。一例では、マップは、環境の3次元メッシュを含み得る。いくつかの例では、マップは、マップの個々のタイルが環境の離散的な部分を表すようなタイルフォーマットで格納され得、必要に応じて作業メモリにロードされ得る。いくつかの例では、マップは、占有グリッド、ポイントマップ、ランドマークマップ、および/またはポーズ制約のグラフを含み得る。いくつかの例では、車両502は、マップ546に少なくとも部分的に基づいて制御され得る。すなわち、マップ546は、第1のシステム504のローカライゼーションコンポーネント(および/または、いくつかの例では、第2のシステム506のローカライゼーションコンポーネント)と組み合わせて使用され、車両502の位置を決定し、環境内の物体を識別し、および/または環境内をナビゲートするためのルートおよび/または軌道を生成し得る。
【0170】
いくつかの例では、本明細書で論じられるコンポーネントの一部またはすべての側面は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含み得る。例えば、メモリ824(および/またはメモリ828、または832)内のコンポーネント834は、ニューラルネットワークとして実装され得る。
【0171】
図8は分散システムとして図示されているが、代替例では、車両802のコンポーネントがコンピューティングデバイス818に関連付けられてもよく、および/またはコンピューティングデバイス818のコンポーネントが車両802に関連付けられてもよいことに留意すべきである。すなわち、車両802は、コンピューティングデバイス818に関連付けられた1つまたは複数の機能を実行してもよく、その逆もまた然りである。
【0172】
いくつかの例では、1つまたは複数のコンポーネント836(および/または1つまたは複数のコンポーネント834)は、車両802の進行方向、車両802の速度、車両802の加速度、車両802のヨーレート、ヨー加速度、および/または車両802の操舵角を決定する推定・検証コンポーネントを含む。例では、そのような情報は、システムコントローラ844、駆動システム814などからの信号に基づき得る。推定・検証コンポーネントは、そのような情報の1つまたは複数を示すデータを生成し、そのデータを第2のシステム806および/または第1のシステム804の様々なコンポーネントに提供し得る。
【0173】
さらに、いくつかの例では、1つまたは複数のコンポーネント836(および/または1つまたは複数のコンポーネント834)は、センサーデータをフィルタリングして低減された量のデータを生成するためのデータ処理コンポーネントを含み得る。一例では、データ処理コンポーネントは、特定の範囲外にあるデータをセンサーデータから削除し得る。これは、車両802の速度または加速度、物体の足跡、物体の速度または加速度などに基づき得る(例えば、比較的低速で走行しているときは相当量のデータを削除し、比較的高速で走行しているときはより少ないデータを削除する)。例示すると、車両802が時速15マイルで走行しており、自律車両102に向かって走行している車両がない場合、データ処理コンポーネントは、200フィート離れたデータを削除し得るが、それは、このデータが、軌道を評価したり、差し迫った衝突の可能性を識別したりするために必要でない可能性が高いからである。別の例では、データ処理コンポーネントは、車両802が配置される環境の種類に基づいて、センサーデータからデータを削除し得る。例えば、車両802が、多様な車両、道路、道路交差点などを有する都市部にある場合、データ処理コンポーネントは、センサーデータからデータを削除しなくてよい(または、限られた量を削除する)。しかし、車両802が、車両、道路、道路交差点などが比較的少ない農村部や都市環境のまばらな地域にある場合、データ処理コンポーネントは、センサーデータからより多くのデータを削除し得る。例では、センサーデータの量を減らすことで、削減されたセンサーデータを処理する可能性のある第2のシステム806が、より迅速に動作し得る(例えば、より少ないデータを処理することで、計算時間が短縮される)。
【0174】
例示項
A.車両システムであって、1つまたは複数の第1のプロセッサを備えた第1のシステムと、1つまたは複数の第1のメモリであって、1つまたは複数の第1のプロセッサによって実行されると、1つまたは複数のセンサーからセンサーデータを受信することと、センサーデータに少なくとも部分的に基づいて、自律車両に対する第1軌道と自律車両に対する第2軌道を生成することとを1つまたは複数の第1のプロセッサに行わせる命令を備えた1つまたは複数の第1のメモリと、1つまたは複数の第2のプロセッサを備えた第2のシステムと、1つまたは複数の第2のメモリであって、1つまたは複数の第2のプロセッサによって実行されると、第1のシステムから第1の軌道および第2の軌道を受信することと、センサーデータの少なくとも一部を受信することと、センサーデータの少なくとも一部に基づいて、環境内の物体を決定することと、物体に対して物体軌道を決定することと、第1の軌道に関連する第1の状態を決定するために、第1の軌道と物体軌道で第1の衝突検出を実行することと、第2の軌道に関連する第2の状態を決定するために、第2の軌道と物体軌道で第2の衝突検出を実行することと、第1の状態および第2の状態に少なくとも部分的に基づいて、自律車両の第3の軌道を決定することであって、第3の軌道は、第2のシステムによって生成された第1の軌道、第2の軌道、または第4の軌道のうちの少なくとも1つを備えることと、第3の軌道に少なくとも部分的に基づいて自律車両を制御することとを、1つまたは複数の第1のプロセッサに行わせる命令を備えた1つまたは複数の第2のメモリとを備えた車両システム。
【0175】
B.例Aの車両システムであって、第1の衝突検出は、第1の軌道および物体軌道に少なくとも部分的に基づいて、車両が物体と衝突するか否かを決定することを備え、第2の衝突検出は、第2の軌道および物体軌道に少なくとも部分的に基づいて、車両が物体に衝突するか否かを決定することを備えた車両システム。
【0176】
C.例Aまたは例Bの車両システムであって、第1の状態は、第1の軌道が推定された衝突に関連していることを示し、第2のシステムの1つまたは複数の第2のメモリは、1つまたは複数の第2のプロセッサによって実行されると、第1の状態に少なくとも部分的に基づいて、衝突までの時間、物体の範囲、物体の速度、物体の位置、または衝突点のうちの1つまたは複数を示すメッセージを、第1のシステムに送信することを1つまたは複数の第2のプロセッサに行わせる命令をさらに備えた車両システム。
【0177】
D.例Aから例Cのいずれかの車両システムであって、第1の状態が、第1の軌道は第1の推定された衝突に関連していることを示すか、または第2の状態が、第2の軌道は第2の推定された衝突に関連していることを示しすかの少なくとも1つであるとき、第3の軌道は、第2の軌道または第4の軌道の少なくとも1つを備え、第2のシステムの1つまたは複数の第2のメモリは、1つまたは複数の第2のプロセッサによって実行されると、第3の軌道に少なくとも部分的に基づいて自律車両の制御を維持することと、第3の軌道から自律車両の制御を解除する信号を受信することと、第1のシステムから第5の軌道を受信することと、第5の軌道と信号に少なくとも部分的に基づいて自律車両を制御することとを、1つまたは複数の第2のプロセッサに行わせる命令をさらに備えた車両システム。
【0178】
E.方法であって、第1のコンポーネントから、車両に対する第1の軌道および車両に対する第2の軌道を受信することと、第2のコンポーネントによって、センサーデータの少なくとも一部を受信することと、第2のコンポーネントによって、センサーデータの少なくとも一部に基づいて、環境内の物体を決定することと、第2のコンポーネントによって、センサーデータの少なくとも一部に基づいて、物体の物体軌道を特定することと、第2のコンポーネントによって、第1の軌道に関連する第1の状態を決定するために、第1の軌道に対して1つまたは複数の第1の検証動作を実行することと、第2のコンポーネントによって、第2の軌道に関連する第2の状態を決定するために、第2の軌道に対して1つまたは複数の第2の検証動作を実行することと、第2のコンポーネントによって、第1の状態および第2の状態に少なくとも部分的に基づいて、車両の第3の軌道を決定することであって、第3の軌道は、第2のコンポーネントによって生成された第1の軌道、第2の軌道、または第4の軌道のうちの少なくとも1つを備えることと、第3の軌道に少なくとも部分的に基づいて車両を制御することとを備えた方法。
【0179】
F.例Eの方法であって、1つまたは複数の第1の検証動作を実行することは、第1の軌道が現在の時間から閾値未満の時間で生成されたかどうかを決定すること、第1の軌道が車両の現在または以前の姿勢と一致するかどうかを決定すること、第1の軌道が車両の性能と適合するかどうかを決定すること、または第1の軌道に沿って動く車両が物体軌道に沿って動く物体と衝突するかどうかを決定することのうちの少なくとも1つを備えた方法。
【0180】
G.例Eまたは例Fの方法であって、1つまたは複数の第2の検証動作を実行することは、第2の軌道が現在の時間から閾値未満の時間で生成されたかどうかを決定すること、第2の軌道が車両の現在または以前の姿勢と一致するかどうかを決定すること、第2の軌道が車両の性能と適合するかどうかを決定すること、または第2の軌道に沿って動く車両が物体軌道に沿って動く物体と衝突するかどうかを決定することの少なくとも1つを備えた方法。
【0181】
H.例Eから例Gのいずれかの方法であって、第1の状態が、第1の軌道は無効であることを示し、第2の状態が、第2の軌道は無効であることを示し、方法は、第2のコンポーネントによって、第2の軌道に少なくとも部分的に基づいて第4の軌道を生成することであって、第4の軌道は、第2の軌道の修正を備えることと、第2のコンポーネントによって、第4の軌道および物体軌道を用いて1つまたは複数の第3の検証動作を実行し、第4の軌道に関連する第3の状態を決定することであって、第3の状態は、第4の軌道が有効であることを示すこととを備え、車両に対する第3の軌道を決定することは、第3の軌道として、第3の状態に少なくとも部分的に基づいて第4の軌道を決定することを備えた方法。
【0182】
I.例Eから例Hのいずれかの方法であって、第1の状態が、第1の軌道は無効であることを示し、第2の状態が、第2の軌道は無効であることを示し、第2のコンポーネントによって、第2の軌道に少なくとも部分的に基づいて第5の軌道を生成することと、第2のコンポーネントによって、第5の軌道および物体軌道に対して1つまたは複数の第3の検証動作を実行し、第5の軌道に関連付けられた第3の状態を決定することであって、第3の状態は、第5の軌道が無効であることを示すことを備え、第2のコンポーネントによって、第4の軌道を生成することであって、第4の軌道は、最大減速度と関連付けられており、第3の軌道を決定することは、前記第3の軌道として、かつ第3の状態に少なくとも部分的に基づいて、第4の軌道を決定することを備えた方法。
【0183】
J.例Eから例Iのいずれかの方法であって、第5の軌道を生成することは、第5の軌道を生成する限界まで第2の軌道を1回以上修正することを備え、1つまたは複数の第3の検証動作を実行することは、修正された第5の軌道を用いて1つまたは複数の第3の検証動作を回数未満で実行することを備え、回数が満足されていることを決定することであって、第4の軌道を生成することは、回数が満たされていることを決定することに少なくとも部分的に基づいていることを備えた方法。
【0184】
K.例Eから例Jのいずれかの方法であって、シートベルトのプリテンションまたはエアバッグの展開準備の少なくとも1つを行うために、1つまたは複数の車両のコンポーネントに信号を送信することさらに備えた方法。
【0185】
L.例Eから例Kのいずれかの方法であって、第1の状態が、第1の軌道がは無効であることを示し、第2の状態が、第2の軌道は無効であることを示すとき、第2のコンポーネントによって、第2の軌道に少なくとも部分的に基づいて、第2の軌道に最大量の修正を適用して第4の軌道を生成することと、第3の状態が、第4の軌道が無効であることを示すとき、第4の軌道に関連付けられた第3の状態を決定するため、第2のコンポーネントによって、第4の軌道および物体軌道を用いて1つまたは複数の第3の検証動作を実行することと、第3の状態が、前記第4の軌道が無効であることを示していると決定することであって、第3の軌道を決定することが、第3の軌道として、かつ第3の状態に少なくとも部分的に基づいて、第4の軌道を決定することを備えること、を備えた方法。
【0186】
M.例Eから例Lのいずれかの方法であって、第3の軌道を決定することは、第3の軌道として、第1の状態が、第1の軌道は閾値以上の時間で推定された衝突に関連づけられていることを示しているか、または衝突がないことを示している場合に、第1の軌道を選択すること、第3の軌道として、第1の状態が、第1の軌道は閾値未満の時間で推定された衝突に関連づけられていることを示しており、第2の状態が、第2の軌道は衝突がないことを示している場合に、第2の軌道を選択すること、または、第3の軌道として、第1の状態が、第1の軌道が閾値未満の時間で第1の推定された衝突に関連付けられていることを示し、第2の状態が、第2の軌道が第2の推定衝突に関連付けられていることを示す場合に、第4の軌道を選択することの少なくとも1つを備えた方法。
【0187】
N.1つまたは複数の非一時的なコンピュータ可読媒体であって、実行されると、第1のシステムから、車両の第1の軌道および車両の第2の軌道を受信することと、第1の軌道が第1の衝突に関連付けられているかどうかを示す第1の状態を決定することと、第2の軌道が第2の衝突に関連付けられているかどうかを示す第2の状態を決定することと、第2の軌道および第2の状態に少なくとも部分的に基づいて、車両に対する第3の軌道を決定することと、第1の状態および第2の状態に少なくとも部分的に基づいて、車両に対する第4の軌道を決定することであって、第4の軌道は、第1の軌道、第2の軌道、または第3の軌道のうちの少なくとも1つを備えることと、第4の軌道に少なくとも部分的に基づいて車両を制御することとを備えた行為を、1つまたは複数のプロセッサに行わせる命令を格納する非一時的なコンピュータ可読媒体。
【0188】
O.例Nの1つまたは複数の非一時的なコンピュータ可読媒体であって、第1の軌道が第1の衝突に関連付けられているかどうかを示す第1の状態を決定することは、第1の軌道が第1の衝突に関連付けられていると決定することとを備え、行為は、第1のシステムに衝突までの時間、衝突の位置、衝突に関連付けられた物体の位置、衝突に関連付けられた物体の速度、または衝突に関連付けられた物体の大きさのうちの1つまたは複数を備えたメッセージを送信することをさらに備えた非一時的なコンピュータ可読媒体。
【0189】
P.例NまたはOの1つまたは複数の非一時的なコンピュータ可読媒体であって、第4の軌道は、第2の軌道または第3の軌道の少なくとも1つを備え、行為は、第4の軌道に少なくとも部分的に基づいて車両の制御を維持することと、第4の軌道から車両の制御を解放する信号を受信することと、第5の軌道を受信することと、第5の軌道および信号に少なくとも部分的に基づいて車両を制御することとをさらに備えた非一時的なコンピュータ可読媒体。
【0190】
Q.例Nから例Pのいずれかの1つまたは複数の非一時的なコンピュータ可読媒体であって、第4の軌道から車両の制御を解除する信号は、遠隔操作システムまたは別のシステムの少なくとも1つから受信される非一時的なコンピュータ可読媒体。
【0191】
R.例Nから例Qのいずれかの1つまたは複数の非一時的なコンピュータ可読媒体であって、第1の軌道が第1の衝突に関連付けられているかどうかを示す第1の状態を決定することは、第1の軌道が第1の衝突に関連付けられていることを決定することを備え、第2の軌道が第2の衝突に関連付けられているかどうかを示す第2の状態を決定することは、第2の軌道が第2の衝突に関連付けられていることを決定することを備え、行為は、第2の軌道に少なくとも部分的に基づいて、第5の軌道を生成することであって、第5の軌道は、第2の軌道の修正を備えていることと、第5の軌道が、第1の衝突、第2の衝突、または第3の衝突のうちの少なくとも1つに関連付けられていると決定することと、第3の軌道を生成することであって、第3の軌道は最大減速度と関連付けられており、第4の軌道を決定することが、第4の軌道として、第5の軌道が第1の衝突、第2の衝突、または第3の衝突の少なくとも1つに関連付けられていると決定することに少なくとも部分的に基づいて、第3の軌道を決定することとを備えた非一時的なコンピュータ可読媒体。
【0192】
S.例Nから例Rのいずれかの1つまたは複数の非一時的コンピュータ可読媒体であって、
第5の軌道を生成することは、第5の軌道を生成するための限界までの1回以上の回数で第2の軌道を修正することを備え、第5の軌道が第1の衝突、第2の衝突、または第3の衝突の少なくとも1つに関連付けられていることを決定することは、第5の軌道に少なくとも部分的に基づいており、行為は、制限が満たされていることを決定することであって、第3の軌道を生成することが、制限が満たされていることを決定することに少なくとも部分的に基づいていることとをさらに備えた非一時的コンピュータ可読媒体。
【0193】
T.例Nから例Sのいずれかの1つまたは複数の非一時的コンピュータ可読媒体であって、行為は、第1のシステムまたは車両のコンポーネントの1つまたは複数をモニターすることと、モニターに少なくとも部分的に基づいて、エラーが発生したことを決定することとであって、第4の軌道を決定することが、第4の軌道として、エラーに少なくとも部分的に基づいて、第2の軌道または第3の軌道のうちの少なくとも1つを決定することとをさらに備えた非一時的コンピュータ可読媒体。
【0194】
上述の例示項は、特定の実装に関して説明されているが、本文書のコンテキストでは、例示項の内容は、方法、装置、システム、コンピュータ可読媒体、および/または別の実装を介して実装することが可能であることを理解すべきである。
【0195】
結論
本明細書で説明される技術の1つまたは複数の例を説明してきたが、その様々な代替、追加、順列、および等価物は、本明細書で説明される技術の範囲内に含まれる。
【0196】
例示では、参照は本明細書の一部を形成する添付図面に対してなされ、請求された主題の特定の例を例示として示している。他の例を使用してもよく、構造的な変更などの変更または代替を行ってもよいことが理解されるべきである。そのような例、変更または代替は、意図された請求項の主題に関する範囲から必ずしも逸脱するものではない。本明細書の手順は一定の順序で提示され得るが、場合によっては、記載されたシステムおよび方法の機能を変更することなく、特定の入力が異なるタイミングまたは異なる順序で提供されるように順序を変更されてもよい。開示された手順を異なる順序で実行されてもよい。さらに、本明細書に記載されている様々な計算は、開示されている順序で実行される必要はなく、計算の代替的な順序を用いた他の例も容易に実施されてよい。順序を変えることに加えて、計算は、同じ結果のサブ計算に分解されてもよい。
【0197】
主題は、構造的特徴および/または方法論的行為に特有の言葉で説明されてきたが、添付の請求項で定義される主題は、必ずしも説明された特定の特徴または行為に限定されないことを理解されたい。むしろ、特定の特徴や動作は、特許請求の範囲を実施するための例示的な形態として開示されている。
【0198】
本明細書に記載されているコンポーネントは、任意の種類のコンピュータ可読媒体に格納されてもよい命令を表し、ソフトウェアおよび/またはハードウェアで実装されてもよい。上述したすべての方法およびプロセスは、1つ以上のコンピュータまたはプロセッサ、ハードウェア、またはそれらのいくつかの組み合わせによって実行されるソフトウェアコードモジュールおよび/またはコンピュータ実行可能命令で具現化され、それらを介して完全に自動化されてもよい。方法の一部またはすべては、代替的に、特殊なコンピュータハードウェアで具現化されてもよい。
【0199】
特に、「し得る」、「であろう」、「してよい」、または「だろう」などの条件付き言語は、特に別段の記載がない限り、コンテキストの中で、特定の例が特定の特徴、要素、および/またはステップを含む一方で、他の例が含まないことを提示するものと理解される。したがって、このような条件付き言語は、一般的に、特定の特徴、要素、および/またはステップが1つまたは複数の例に何らかの形で必要であること、または1つまたは複数の例が、特定の特徴、要素、および/またはステップが含まれるかどうか、または特定の例で実行されるかどうかを、ユーザー入力またはプロンプトの有無にかかわらず決定するための論理を必ず含むことを意味するように意図されていない。
【0200】
「X、Y、またはZのうち少なくとも1つ」というフレーズのような接続詞的な言葉は、特に別段の記載がない限り、項目、用語などがX、Y、またはZのいずれか、または各要素の倍数を含むそれらの任意の組み合わせであり得ることを提示するように理解されるべきである。明確に単数形と記載されていない限り、「a」は単数形および複数形を意味する。
【0201】
本明細書に記載されたおよび/または添付の図に描かれたフロー図における任意のルーチンの記述、要素又はブロックは、ルーチンにおける特定の論理的な機能又は要素を実施するための1つ以上のコンピュータ実行可能な命令を含むコードのモジュール、セグメントまたは部分を表す可能性があると理解すべきである。当業者であれば理解できるように、関係する機能に応じて、要素または機能は削除したり、実質的に同期させたり、逆の順序で実行したり、追加の操作を行ったり、または操作を省略するなど、図示または議論されたものとは異なる順序で実行され得る代替の実装が、本明細書に記載された例の範囲内に含まれる。
【0202】
上述した例には、多くの変更および修正を加えてもよく、その要素は、他の許容可能な例の1つであると理解されるべきである。そのようなすべての修正および変更は、本開示の範囲内で本明細書に含まれることを意図しており、以下の請求項によって保護される。