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

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

▶ ズークス インコーポレイテッドの特許一覧

<>
  • 特許-衝突回避システム 図1
  • 特許-衝突回避システム 図2
  • 特許-衝突回避システム 図3
  • 特許-衝突回避システム 図4
  • 特許-衝突回避システム 図5
  • 特許-衝突回避システム 図6
  • 特許-衝突回避システム 図7A
  • 特許-衝突回避システム 図7B
  • 特許-衝突回避システム 図8
  • 特許-衝突回避システム 図9
  • 特許-衝突回避システム 図10
  • 特許-衝突回避システム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】衝突回避システム
(51)【国際特許分類】
   B60W 30/08 20120101AFI20241216BHJP
   B60W 40/02 20060101ALI20241216BHJP
   G08G 1/16 20060101ALI20241216BHJP
【FI】
B60W30/08
B60W40/02
G08G1/16 C
【請求項の数】 15
(21)【出願番号】P 2021537838
(86)(22)【出願日】2019-12-18
(65)【公表番号】
(43)【公表日】2022-03-01
(86)【国際出願番号】 US2019067276
(87)【国際公開番号】W WO2020139666
(87)【国際公開日】2020-07-02
【審査請求日】2022-10-21
(31)【優先権主張番号】16/232,863
(32)【優先日】2018-12-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】アンドリュー ルイス キング
(72)【発明者】
【氏名】ジェファーソン ブラッドフィールド パッカー
(72)【発明者】
【氏名】ロバート エドワード サマーズ
(72)【発明者】
【氏名】マーク ウィマーショフ
(72)【発明者】
【氏名】クリストファー スヴェン スメッズ
【審査官】鶴江 陽介
(56)【参考文献】
【文献】米国特許出願公開第2018/0261093(US,A1)
【文献】特開2016-038689(JP,A)
【文献】特開2016-037149(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 30/00-60/00
G08G 1/00- 1/16
(57)【特許請求の範囲】
【請求項1】
第1のシステムに通信可能に接続された第2のシステムであって、前記第2のシステムは、1つまたは複数のプロセッサーおよびメモリを備え、前記第2のシステムは、
センサデータの少なくとも一部を受信し、
オブジェクトの特性、前記オブジェクトのトラック、または前記オブジェクトの推定されるオブジェクト軌道のうちの少なくとも1つを示すデータを出力し、前記トラックは、前記オブジェクトによって移動された経路を含む
第1のサブシステムと、
前記第1のシステムから車両に対する第1の軌道と車両に対する第2の軌道とを受信し、前記第2の軌道は、前記第1の軌道のためのバックアップ軌道であり、
前記第1のサブシステムから前記データを受信し、
前記第1の軌道に関する1つまたは複数の第1の認可動作を行って、前記第1の軌道に関連付けられた第1の状態を判定し、前記第1の状態は、前記第1の軌道が妥当であること、前記第1の軌道が不当であること、または前記第1の軌道が不当になることを示し、
前記第2の軌道に関する1つまたは複数の第2の認可動作を行って、前記第2の軌道に関連付けられた第2の状態を判定し、前記第2の状態は、前記第2の軌道が妥当であること、前記第2の軌道が不当であること、または前記第2の軌道が不当になることを示し、
前記第2のシステムに含まれている軌道マネージャを用いて、前記第1の軌道および前記第2の軌道に基づく第3の軌道を決定し、前記第3の軌道は、前記第2の軌道のためのバックアップ軌道であり、前記第2の軌道に沿った減速または修正を含む動きが適用され
前記第1の状態および前記第2の状態に少なくとも部分的に基づいて、前記車両に対する出力軌道を出力し、前記出力軌道は、前記第1の軌道、前記第2の軌道、または前記第3の軌道のうちの少なくとも1つを含む
ように構成された第2のサブシステムと
を備えたことを特徴とする車両システム。
【請求項2】
前記第1のシステムは、
1つまたは複数の追加のプロセッサーと、
前記1つまたは複数の追加のプロセッサーによって実行されると、前記第1のシステムに、
センサから前記センサデータを受信させ、
前記センサデータに少なくとも部分的に基づいて、前記オブジェクトに対して、オブジェクト検出、オブジェクトセグメンテーション、オブジェクト分類、またはオブジェクトトラッキングのうちの少なくとも1つを行わせ、
前記センサデータに少なくとも部分的に基づいて、前記第1の軌道および前記第2の軌道を生成させる
命令を含む追加のメモリと
を備えたことを特徴とする請求項1に記載の車両システム。
【請求項3】
前記1つまたは複数の第1の認可動作は、
前記第1の軌道がしきい値量よりも少ない時間前に生成されたかどうかを判定すること、
前記第1の軌道が、現在の体勢の前記車両を制御するかどうかを判定すること、
前記第1の軌道が、前記車両の性能により前記車両を制御できるかどうかを判定すること、または、
前記第1の軌道に沿って動く前記車両が、前記オブジェクトとの推定される衝突に関連付けられるかどうかを判定すること
のうちの少なくとも1つを含むことを特徴とする請求項1または2に記載の車両システム。
【請求項4】
前記第1の状態は、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示し、前記出力軌道は、前記第2の軌道または前記第3の軌道のうちの少なくとも1つを含み、前記第2のシステムは、
前記出力軌道に少なくとも部分的に基づいて、前記車両の制御を維持する第3のサブシステム
をさらに備えたことを特徴とする請求項1ないし3のいずれか一項に記載の車両システム。
【請求項5】
前記第2のシステムは、
前記軌道のセレクタに通信可能に接続された第4のサブシステムをさらに備え、前記第4のサブシステムは、
前記出力軌道から前記車両の制御を放すと判定し、
前記出力軌道から前記車両の制御を放すための第3のサブシステムへの信号を出力し、
前記第3のサブシステムは、
前記第4のサブシステムから前記信号を受信し、
前記車両を制御するために、前記第1の軌道、前記第2の軌道、または前記第1のシステムから受信される第4の軌道を出力し、前記第4の軌道は、最大減速軌道である
ようにさらに構成されることを特徴とする請求項1に記載の車両システム。
【請求項6】
前記第2のシステムは、
前記車両の前記第1のシステムまたはコンポーネントのうちの少なくとも1つをモニタリングし、
前記モニタリングに少なくとも部分的に基づいて、エラーが起きたことを判定し、
前記エラーが起きたことを示す信号を出力する
ように構成された第3のサブシステムをさらに備え、
前記第2のサブシステムは、
前記第3のサブシステムから前記信号を受信し、
前記信号に少なくとも部分的に基づいて前記出力軌道を判定し、前記出力軌道は、前記第2の軌道または前記第3の軌道を含む
ことを特徴とする請求項1ないし3のいずれか一項に記載の車両システム。
【請求項7】
前記第1の状態は、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示し、
前記軌道マネージャは、
前記第1のシステムへ、前記第1の状態に少なくとも部分的に基づいて、前記オブジェクトとの推定される衝突までの時間、前記オブジェクトの大きさ、前記オブジェクトの速度、前記オブジェクトの位置、または前記オブジェクトとの推定される衝突の環境におけるポイントのうちの1つまたは複数を示すメッセージを送り、
前記第1のシステムから第4の軌道を受信し、
前記第4の軌道に関する前記1つまたは複数の第1の認可動作を行い、
前記車両を制御する前記第4の軌道を出力する
ように構成されることを特徴とする請求項1ないし6のいずれか一項に記載の車両システム。
【請求項8】
前記第1のシステムは、前記センサデータに少なくとも部分的に基づいて、第1のオブジェクト検出、オブジェクトの第1のセグメンテーション、第1のオブジェクト分類、またはオブジェクトに対する第1のトラッキングのうちの少なくとも1つを行う第1の技法を実装し、
前記第2のシステムは、前記センサデータの前記一部に少なくとも部分的に基づいて、第2のオブジェクト検出、オブジェクトの第2のセグメンテーション、第2のオブジェクト分類、またはオブジェクトに対する第2のトラッキングのうちの少なくとも1つを行う第2の技法を実装する
ことを特徴とする請求項1ないし7のいずれか一項に記載の車両システム。
【請求項9】
前記データは、第1のデータを含み、前記第2のシステムは、
前記センサデータの前記少なくとも前記一部を受信し、
前記センサデータの前記少なくとも前記一部に部分的に基づいて、前記車両の体勢を判定し、
前記第1のサブシステムまたは前記第2のサブシステムのうちの少なくとも1つへ、前記車両の前記体勢を示す第2のデータを出力する
ように構成された第3のサブシステム、または
前記軌道マネージャから前記出力軌道を受信し、
前記出力軌道に少なくとも部分的に基づいて前記車両を制御する
ように構成された第4のサブシステム
のうちの少なくとも1つをさらに備えることを特徴とする請求項1ないし3、7、または8のいずれか一項に記載の車両システム。
【請求項10】
車両システムによって実行される方法であって、
1つまたは複数のプロセッサーを含む第2のシステムの第1のサブシステムによって、センサデータの少なくとも一部に基づいて、環境におけるオブジェクトの特性、前記オブジェクトのトラック、または前記オブジェクトの推定されるオブジェクト軌道のうちの少なくとも1つを含む認知データを判定するステップであって、前記トラックは、前記オブジェクトによって移動された経路を含む、ステップと、
前記第2のシステムの第2のサブシステムによって、第1のシステムから車両に対する第1の軌道を受信するステップであって、前記第1のシステムは、前記センサデータに少なくとも部分的に基づいて前記第1の軌道を生成する、ステップと、
前記第2のサブシステムによって、前記認知データに少なくとも部分的に基づいて、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示す状態にあるかどうかを判定するステップと、
前記第2のサブシステムによって、前記状態に少なくとも部分的に基づいて、前記車両に対する出力軌道を出力するステップであって、前記出力軌道は、前記第1の軌道、または前記第2のサブシステムによって生成された第2の軌道のうちの少なくとも1つを含み、前記第2の軌道は、前記第1の軌道に沿った動きが適用され、前記動きは、前記第1の軌道に沿った減速または修正を含む、ステップと、
前記第2のサブシステムによって、前記状態に少なくとも部分的に基づいて、前記オブジェクトとの推定される衝突までの時間、前記オブジェクトの大きさ、前記オブジェクトの速度、前記オブジェクトの位置、または前記オブジェクトとの推定される衝突の環境におけるポイントのうちの1つまたは複数を示すメッセージを前記第1のシステム送るステップと、
前記第2のサブシステムによって、前記メッセージに少なくとも部分的に基づいて、前記第1のシステムから、前記車両に対する第3の軌道を受信するステップであって、前記第3の軌道は、前記第1の軌道のためのバックアップ軌道である、ステップと
を備えることを特徴とする方法。
【請求項11】
前記第2のシステムの第3のサブシステムによって、前記車両の前記第1のシステムまたは追加のコンポーネントのうちの少なくとも1つをモニタリングするステップと、
前記第3のサブシステムによって、前記モニタリングに少なくとも部分的に基づいて、エラーが起きたことを判定するステップと、
前記第3のサブシステムによって、前記エラーが起きたことを示す信号を出力するステップと、
前記第2のサブシステムによって、前記第3のサブシステムから前記信号を受信するステップと、
前記第2のサブシステムによって、前記第3のサブシステムからの前記信号に少なくとも部分的に基づいて前記出力軌道を判定するステップと
をさらに備えることを特徴とする請求項10に記載の方法。
【請求項12】
前記状態は、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示し、前記出力軌道は、前記第2の軌道を含み、
前記第2のサブシステムによって、前記出力軌道に少なくとも部分的に基づいて前記車両の制御を維持するステップと、
前記第2のシステムの第3のサブシステムによって、前記出力軌道から前記車両の制御を放すと判定するステップと、
前記第3のサブシステムによって、前記出力軌道から前記車両の制御を放すための信号を出力するステップと
をさらに備えることを特徴とする請求項10に記載の方法。
【請求項13】
前記状態は、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示し、前記出力軌道は、前記第2の軌道を含み、前記第2の軌道は、前記第1の軌道に対しての減速または修正のうちの少なくとも1つに関連付けられることを特徴とする請求項10ないし12のいずれか一項に記載の方法。
【請求項14】
前記状態は、前記第1の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示し、
前記第3の軌道が、前記オブジェクトとの推定される衝突に関連付けられることを示す追加の状態にあるかどうかを判定するステップと、
前記追加の状態に少なくとも部分的に基づいて、前記車両を制御する前記第3の軌道を出力するステップと
をさらに備えることを特徴とする請求項10ないし13のいずれか一項に記載の方法。
【請求項15】
1つまたは複数のプロセッサーによって実行されると、コンピューティングデバイスに、請求項10ないし14のいずれか一項の方法を行わせる命令を格納する1つまたは複数のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、衝突回避システムに関し、より詳細には、車両を制御する衝突回避システムに関する。
【背景技術】
【0002】
関連出願
本PCT国際出願は、参照により本明細書に組み込まれる、2018年12月26日に出願された米国特許出願第16/232,863号明細書の優先権の利益を主張するものである。
【0003】
車両における搭乗者、および車両に近接した他の人々またはオブジェクトの安全は、最大の重要事項である。そのような安全は、しばしば、潜在的な衝突の正確な検出および安全対策の適時な展開に根拠が置かれている。自律車両は、非常に効果的な衝突検出システムを有するシステムでしばしば実装されるものの、これらのシステムは、稀な機会に、動作しない、または効果がないことがある。たとえば、比較的長く潜在的に複雑な、車両上のシステムのための処理パイプラインにエラーが発生して、車両が安全ではないやり方で動かされることがある。
【0004】
詳細な説明が、添付の図を参照して説明される。図において、参照番号の最も左側の数字は、参照番号が最初に現れた図を識別する。異なる図における同じ参照番号の使用は、類似のもしくは同一のコンポーネントまたは特徴を示す。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許出願第16/189,726号明細書
【文献】米国特許出願第16/218,182号明細書
【文献】米国特許出願第15/897,028号明細書
【文献】米国特許出願第15/947,486号明細書
【文献】米国特許出願第15/622,905号明細書
【図面の簡単な説明】
【0006】
図1】本明細書にて述べられる技法が実装され得る例示的な環境を例示する。
図2】車両の一次システムおよび二次システムの例示的な詳細を描く。
図3】車両用の軌道が妥当であるか不当であるかを判定する例示的な処理を例示する。
図4】車両用の軌道が妥当であるか不当であるかを判定する例示的な処理を例示する。
図5】車両用の軌道が妥当であるか不当であるかを判定する例示的な処理を例示する。
図6】二次システムによって実装され得る状態の例示的な階層を例示する。
図7A】本明細書にて述べられる技法を行う例示的な処理を例示する。
図7B】本明細書にて述べられる技法を行う例示的な処理を例示する。
図8】一次システムおよび/または二次システムの種々のコンポーネントによって行われ得る例示的な処理を例示する。
図9】一次システムおよび/または二次システムの種々のコンポーネントによって行われ得る例示的な処理を例示する。
図10】一次システムおよび/または二次システムの種々のコンポーネントによって行われ得る例示的な処理を例示する。
図11】本明細書にて説明される技法を実装するための例示的なシステムのブロック図を描く。
【発明を実施するための形態】
【0007】
本開示は、車両を制御するためにデータを生成するための一次システムと、衝突を回避するためにそのデータおよび/または他のデータを確認する二次システムとを含む車両に向けられる。たとえば、一次システムは、車両をローカライズする、車両の周りのオブジェクトを検出する、センサデータをセグメント化する、オブジェクトの分類を判定する、オブジェクト軌道を予測する、車両のための軌道を生成することなどができる。二次システムは、独立して、車両をローカライズする、車両の周りのオブジェクトを検出する、オブジェクト軌道を予測する、一次システムによって生成された軌道を評価することなどができる。例において、二次システムはまた、車両のコンポーネントをモニタリングして、エラーを検出することができる。一次システムによって生成された軌道に関するエラー、および/または車両のコンポーネントに関するエラーを二次システムが検出した場合、二次システムは、減速すること、レーンを変更すること、逸れること、その他などの動きを、車両に実施させることができる。例において、二次システムは、情報(たとえば、潜在的な衝突に関する情報)を、一次システムに送ることができる。多くの例において、本明細書で議論される技法は、車両の周りのオブジェクトとの潜在的な衝突を回避するために実装されてよい。本明細書では一次および二次システムとして説明されるものの、当然ながら、説明される技法は、制御を検証し、安全制御のための高い完全性アルゴリズムおよび冗長プロセスを提供するために、任意の数のシステムおよびサブシステムにおいて実装されてもよい。
【0008】
一次システムは、一般に、環境内でどのように車両を動かすかを制御するための処理を実施することができる。一次システムは、機械学習などのさまざまな人工知能(AI)技法を実装して、車両の周りの環境を理解する、および/または車両に環境内で動くように命令することができる。たとえば、一次システムは、AI技法を実装して、車両をローカライズする、車両の周りのオブジェクトを検出する、センサデータをセグメント化する、オブジェクトの分類を判定する、オブジェクトトラックを判定する、車両のための軌道を生成することなどができる。一例において、一次システムは、車両を制御するための一次軌道と、車両を制御するための二次偶発的軌道とを生成し、一次軌道および二次軌道を二次システムに提供する。偶発的軌道は、停止に至るように、および/または別の動き(たとえば、レーン変更、その他)を実施するように、車両を制御することができる。
【0009】
二次システムは、一般に、一次システムに利用可能にされたデータ(たとえば、センサデータ)の少なくともサブセットを使用して、一次システムを評価することができる。二次システムは、一次システムにおいて使用されたのと類似した技法を使用して、一次システムの出力を検証する、ならびに/または、類似していない技法を使用して、そのような出力の一貫性および検証可能性を確実にすることができる。例において、二次システムは、車両が位置付けられた環境内におけるポイントおよび/またはオブジェクトに対する車両のポジションおよび/または向き(合わせて体勢)を判定することによって、独立して車両をローカライズするためのローカライザ(localizer)を含むことができる。二次システムはまた、車両の周りのオブジェクトを検出する、オブジェクトについてのトラックを判定する、オブジェクトについての軌道を予測するなどのためのパーシーバ(perceiver)を含むことができる。二次システムは、車両の1つまたは複数のコンポーネントをモニタリングして、1つまたは複数のコンポーネントに関するエラーを検出するためのモニタコンポーネントを含むことができる。さらに、二次システムは、二次システムのローカリゼーションコンポーネント(localization component)、パーシーバ、および/またはモニタコンポーネントからのデータを使用して、一次システムによって提供された車両の軌道を評価するための、および/または車両を制御するのに使用する軌道を判定するための、軌道マネージャを含むことができる。二次システムはまた、軌道マネージャから軌道を受信し、軌道に基づいて車両を制御するためのドライブマネージャ(drive manager)(および/またはシステムコントローラ)を含むことができる。
【0010】
例証するために、軌道マネージャは、一次システムによって提供された軌道を評価する(または確認する)ための1つまたは複数の動作を実施することができる。たとえば、二次システムは、軌道がしきい値量よりも少ない時間前に生成されたかどうか、軌道が車両の現在のまたは以前の体勢と一貫している(たとえば、軌道は、車両の現在の体勢が与えられた上で可能である位置にポジショニングされるように車両を制御する)かどうか、軌道が車両の性能(たとえば、ステアリング限度、加速限度、その他)と両立できるかどうかなどを見るためにチェックすることができる。さらに、軌道マネージャは、軌道が衝突に関連付けられているかどうかを見るためにチェックすることができる。たとえば、軌道マネージャは、一次システムによって提供された車両の軌道が二次システムのパーシーバによって判定されたオブジェクトの軌道と交差するかどうか、ならびにオブジェクトと車両とが、同時に(もしくは時間枠内で)および/または互いからのしきい値距離内で、交差点で出会うかどうかを見るためにチェックすることができる。すなわち、軌道マネージャは、車両が一次システムによって提供された軌道に沿って維持される場合に、車両がオブジェクトと衝突することになるかどうか、および/または、そのような事象の関連付けられた不確実性を判定することができる。そのような衝突チェックは、移動の直接的な運動学仮定、および/または1つまたは複数の追加的な技法によって判定されたモーションの予測に基づいていてよい。
【0011】
例において、軌道マネージャは、一次システムによって提供された車両の各軌道を評価することができる。たとえば、軌道マネージャは、一次システムによって生成された一次軌道(たとえば、最も高いレベルの軌道)と、一次システムによって生成された二次軌道(たとえば、次に最も高いレベルの軌道)とを評価することができる。二次軌道は、一次軌道が不当である(たとえば、車両のための安全な軌道を提供しない、現在の車両の状態と両立できない、など)ケースにおいて使用され得る、偶発的軌道であってよい。さらに、例において、軌道マネージャは、車両のための三次軌道(たとえば、次に最も高いレベルの軌道)を生成し、三次軌道を評価することができる。三次軌道は、一次および二次軌道が不当であるケースにおいて使用され得る、さらなる偶発的軌道であってよい。三次軌道は、車両を二次軌道(または、いくつかのケースにおいては一次軌道)に沿って停止に至らせる、または車両に別の動き(たとえば、レーン変更、逸れ、その他)を実施させることができる。いくつかの例において、三次軌道は、二次軌道の最小修正(たとえば、縦方向加速度、ステアリング角度、横方向加速度などに対する修正)に少なくとも部分的に基づいて判定されてよい。
【0012】
軌道マネージャは、軌道の評価に基づいて、車両を制御するために使用する軌道を判定することができる。たとえば、一次軌道が衝突なし、または「遠い」この先における衝突に関連付けられている(たとえば、一次軌道が一時的に妥当である)ことを一次軌道の状態が示す場合に、軌道マネージャは、一次システムによって提供された一次軌道を選択することができる。さらに、一次軌道が、衝突が差し迫っていることを示す状態に関連付けられており、二次軌道が二次軌道は衝突なしであることを示す状態に関連付けられている場合に、軌道マネージャは、一次システムによって提供された二次軌道を選択することができる。その上、一次軌道が、衝突が差し迫っていることを示す状態に関連付けられており、二次軌道が衝突を示す状態に関連付けられている場合に、軌道マネージャは、軌道マネージャによって生成された三次軌道を選択することができる。さらに、モニタによってエラーが検出された場合に、軌道マネージャは、二次または三次軌道を選択することができる。上の例のいずれかにおいて、衝突なしは、衝突の確率(および/または時間枠の間、別のオブジェクトのしきい値距離内であること)が、しきい値確率よりも低いこと、またはしきい値確率と同じであることを指すことができる。
【0013】
軌道を選択すると、軌道マネージャは、軌道に基づいて車両が制御させられるように、ドライブマネージャ(および/またはシステムコントローラ)に信号を送ることができる。少なくともいくつかの例において、衝突なしの軌道がない場合、二次システムは、たとえば、緊急ブレーキを係合すること、シートベルトに張力を付与すること、その他などの1つまたは複数の動作を、車両に実施させることができる。
【0014】
例において、軌道マネージャは、選択された軌道から制御を解放するための信号が受信されるまで、選択された軌道に基づいて車両の制御を維持することができる。たとえば、軌道マネージャは、必要とされる場合、いかなる時でもより低いレベルの軌道に移行し、より高いレベルの軌道に制御を解放するための信号が受信されるまで、より高いレベルの軌道に再び移行するのを控えることができる。例証するために、一次軌道が衝突に関連付けられていることのために軌道マネージャが二次軌道を選択する場合、より高いレベルの軌道に制御を解放するための信号が遠隔操作システム(たとえば、オペレータに関連付けられたシステム)から受信されるまで、車両の制御は、二次軌道(またはいっそう低いレベルの軌道)に沿って維持されてよい。そうすることによって、車両は、軌道間での頻繁な変更を回避することができる。
【0015】
さらに、例において、軌道マネージャは、一次システムによって提供された軌道に関するエラーを示すメッセージを、一次システムに提供することができる。たとえば、一次システムによって提供された一次軌道に沿って車両が進む場合に、車両が即座にブレーキを掛けることを必要としないほど(たとえば、しきい値量の時間よりも多く隔てた)十分遠いこの先において衝突が起こると推定されることを軌道マネージャが判定した場合、二次システムは、メッセージを一次システムに送って、一次システムに警告することができる。これは、衝突が起こる前に、一次システムが一次軌道を調整するのを可能にすることができる。
【0016】
少なくともいくつかの例において、二次システムによって実施される計算のうちの1つまたは複数(警告メッセージ、軌道認可(trajectory validation)、認知情報(perception information)、トラッキング情報、その他を含む)は、(送信されるデータに依存してよい)1つまたは複数の頻度で、一次システムに継続的に送信されてよい。
【0017】
例において、本明細書で議論される技法および/またはシステムは、車両における搭乗者および/または車両に近接した他の個人の安全を強化することができる。たとえば、二次システムは、一次システムによって提供された軌道におけるエラーおよび/もしくは車両のコンポーネントに関するエラーを検出し、安全に減速する、停止する、ならびに/または別の動きを実施するように車両を制御して、衝突を回避することができる。例において、二次システムは、一次システムから比較的独立して動作することができ、その結果、衝突を回避するために別の形態の評価が行われる。たとえば、二次システムは、独立して、車両に近接したオブジェクトを検出する、車両のコンポーネントをモニタリングする、および/または一次システムによって生成された軌道を評価することができる。さらに、例において、二次システムは、一次システムよりも、高い完全性(たとえば、より検証可能な)および/または複雑さの少ないシステムであってよい。たとえば、二次システムは、一次システムよりも、少ないデータを処理する、短い処理パイプラインを含む、一次システムの技法よりも簡単に検証可能な技法に従って動作する、などのように設計されてよい。
【0018】
例において、本明細書で議論される技法は、2018年11月11日に出願され、「Perception Collision Avoidance」と題された特許文献1、および/または2018年12月12日に出願され、「Collision Avoidance System with Trajectory Validation」と題された特許文献2において議論される技法を実装することができ、両方の全内容は、参照により本明細書に組み込まれる。
【0019】
本明細書で説明される方法、装置、およびシステムは、いくつかのやり方で実装されてよい。例示の実装は、以下の図を参照して下に提供されている。自律車両のコンテキストにおいて議論されるものの、いくつかの例において、本明細書で説明される方法、装置、およびシステムは、多様なシステムに適用されてもよい。別の例において、方法、装置、およびシステムは、航空または航海のコンテキストにおいて利用されてもよい。追加として、または代替として、本明細書で説明される技法は、(たとえば、センサを使用してキャプチャされた)実データ、(たとえば、シミュレータによって生成された)シミュレートされたデータ、またはそれらの任意の組合せを用いて使用されてもよい。
【0020】
図1は、本明細書で議論される技法が実装されてよい、例示の環境100を例証する。例示の環境100は、センサ104と、一次システム106と、二次システム108と、システムコントローラ110とを含む自律車両102を示す。一次システム106は、一般に、人工知能(たとえば、AI技法112)を実装して、多様な動作を実施することができ、二次システム108は、一般に、異なる技法を実装して、一次システム106を評価し、必要とされる場合に制御を引き継ぐことができる。たとえば、一次システム106は、センサ104からのセンサデータ114を処理して、一次軌道116および二次軌道118を生成する。一次システム106は、一次軌道116および二次軌道118を、二次システム108に送ることができる。二次システム108は、センサ104からのセンサデータ120を処理して、一次軌道116および/または二次軌道118を評価することができる。例において、二次システム108によって実施される技法は、一次システム106によって採用されるものと類似した技法を含むことができ、結果は、類似性を判定するために比較されてよい。他の例において、二次システム108は、類似した結果が両方のシステムが正しく機能することを示し得るように、一次システム106におけるものとは類似していない技法を使用してもよい。評価に基づいて、二次システム108は、出力軌道122を選択し、出力軌道122をシステムコントローラ110に送って、自律車両102を制御することができる。出力軌道122は、一次軌道116、二次軌道118、および/または、下で詳細に議論されるように二次システム108によって生成される軌道などの別の軌道を含むことができる。図1の例において、一次軌道116および二次軌道118は、一次システム106から送られるものとして例証されている。しかしながら、いくつかの例において、単一の軌道が一次システム106によって送られてもよいし、および/または、任意の数の追加の軌道が図示されていない追加のシステムによって送られてもよい。
【0021】
技法の多くは、システムコントローラ110に信号を送る(たとえば、出力軌道122を送る)二次システム108のコンテキストにおいて議論されるものの、いくつかのケースにおいては、代替として、または追加として、一次システム106がシステムコントローラ110に信号を送ってもよい。
【0022】
センサ104は、光検出および測距(LIDAR)センサ、RADARセンサ、超音波トランスデューサ、ソナーセンサ、位置センサ(たとえば、全地球航法衛星システム(GNSS)(全地球測位システム(GPS)を含む)、コンパス、その他)、慣性センサ(たとえば、慣性測定ユニット(IMU)、加速度計、磁気計、ジャイロスコープ、その他)、カメラ(たとえば、赤-緑-青(RGB)、赤外線(IR)、輝度、深度、その他)、タイムオブフライト(time of flight)センサ、マイクロフォン、ホイールエンコーダ、環境センサ(たとえば、温度センサ、湿度センサ、光センサ、圧力センサ、その他)その他などの多様なセンサを含むことができる。
【0023】
上に記されたように、一次システム106は、一般に、センサデータ114を処理することができ、二次システム108は、センサデータ120を処理することができる。いくつかの例において、センサデータ120は、センサデータ114のサブセットを含む。例証するために、センサデータ114は、位置データ、慣性データ、LIDARデータ、RADARデータ、画像データ、オーディオデータ、環境データ、深度データ、その他などの、広く多様なセンサ104からのデータを含むことができる。その一方、センサデータ120は、LIDARデータ、RADARデータ、および/またはタイムオブフライトデータなどの、センサ104のより限定されたセットからのデータを含むことができる。他の例において、センサデータ120は、位置データ、慣性データ、LIDARデータ、RADARデータ、画像データ、オーディオデータ、環境データ、および/または深度データのうちの1つまたは複数などの、センサデータ114と同じ、またはセンサデータ114よりも多いデータを含む。少なくともいくつかの例において、二次システム108によって使用されるセンサデータ120のサブセットは、たとえば、1つまたは複数のプロセスに基づいていてよく、かつ互いに異なっていてもよい。非限定的な例として、一次システム106がローカライゼーションおよびオブジェクト検出のためにすべてのセンサを使用することができるのに対し、二次システム108でのローカライゼーションは、IMUおよびホイールオドメトリデータのみを使用することができ、二次システム108でのオブジェクト検出は、LIDARデータのみを使用することができる。
【0024】
一次システム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を制御することができる。少なくともいくつかの例において、車両102が道路の脇へと動くこと、障害物を回避すること、または一般に乗員のための安全の量を増加させることを容易にするために、二次軌道118は、複雑な動き(ステアリング、加速、その他を含む)を含むことができる。
【0025】
例において、軌道は、自律車両102のステアリング角度および/または加速度についての制御を含む。さらに、軌道は、自律車両102の推定されるこの先の経路を表す、時間のシーケンスおよび車両の状態(たとえば、体勢)を含むことができる。たとえば、軌道は、時間枠(たとえば、1ミリ秒、半秒、2秒、10秒、その他)にわたって自律車両102が取ることになる経路を制御することができる。軌道は、自律車両102のモーションを制御するために、時間にわたって継続的に更新されてよい。
【0026】
二次システム108は、一次システム106を評価し、一次システム106で問題があるときに、自律車両102の制御を引き継ぐことができる。二次システム108は、自律車両102の、および/または自律車両102の周りのオブジェクトの、ポジション、速度、加速度、その他に基づいた二次技法(たとえば、確率的技法、AI技法112とは異なる技法、その他)を実装することができる。たとえば、二次システム108は、カルマンフィルタ、拡張カルマンフィルタ(EKF)、粒子フィルタ、および/またはトラッキングアルゴリズムを実装して、センサデータを処理する、センサデータをセグメント化する、オブジェクトの分類を識別する、オブジェクト軌道を予測することなどができる。例において、二次システム108は、いかなる形態のAI技法も実施しないことがある。いくつかの例において、AI技法112は、ニューラルネットワークを使用することができ、一方二次システム108は、そのようなニューラルネットワークを使用するのを控えることがある。他の例において、二次システム108は、一次システム106によって実装される機械学習されたモデルとは異なる(またはいくつかの実例においては同じ)機械学習されたモデルを実装するなどして、AI技法を実施してもよい。単一の二次システム108が例証されているものの、例において、二次システム108は、多数のハードウェア/ソフトウェアシステムなどの多数のシステムとして実装されてもよい。例において、二次システム108は、一次システム106とは異なるビジョンの範囲を有する(たとえば、一次システム106とは異なる範囲でセンサデータを検出する、および/または処理する)、一次システム106とは異なる処理のレートで動作する(たとえば、一次システム106よりも速い(またはいくつかのケースでは遅い)レートで命令を処理する)ことなどができる。
【0027】
例において、一次システム106を評価するために、二次システム108は、センサデータ120を処理して、環境におけるポイントおよび/またはオブジェクトに対する自律車両102のポジションおよび/または向き(合わせて体勢)を判定することができる。さらに、二次システム108は、センサデータ120を処理して、自律車両102の周りのオブジェクトを検出する、時間にわたってオブジェクトの跡を追う、および/またはオブジェクトについての軌道を予測することができる。いくつかの例において、二次システム108は、一次システム106によって検出されたオブジェクトのトラック、および/またはオブジェクトの予測された軌道を示す情報を、一次システム106から受信することができる。オブジェクトのトラックは、オブジェクトによって移動された経路(たとえば、以前の状態-ポジション、向き、速度、その他、ならびに中心位置、広さ、その他、および/またはそれらに関連付けられた不確実性)を含むことができる。オブジェクトのトラックは、現在のもしくは以前のポジション、速度、加速度、向き、および/または時間の期間(たとえば、5秒)にわたるオブジェクトの進行方向を表す(またはそれらに基づく)ことができる。二次システム108は、自律車両102の周りで検出されたオブジェクトごとに、トラックおよび/または予測された軌道を維持することができる。図1の例において、二次システム108は、オブジェクト126についての軌道124を推定する。ここで、オブジェクト126は人を表すが、オブジェクト126は、別の車両、構造物(たとえば、ビルディング、その他)、動物、サイン、その他などの、任意のタイプのオブジェクトを表すことができる。
【0028】
二次システム108は、体勢、トラック、および/または予測された軌道を使用して、一次軌道116および/または二次軌道118を評価することができる。二次システム108は、1つもしくは複数の認可動作(validation operation)を行って、一次軌道116、二次軌道118、および/または衝突回避軌道(たとえば、一次軌道116または二次軌道118のいずれかの修正されたバージョンであってよい、自律車両102を停止へと減速させる軌道)などの、二次システム108によって生成された軌道を認可することができる。例において、二次システム108は、一次軌道116、二次軌道118、および/または二次システム108によって生成された軌道(たとえば、衝突回避軌道)のうちの1つもしくは複数を、並行して確認することができる。とはいえ、そのような軌道のうちのいずれも、順次に、または別のやり方で確認されてもよい。
【0029】
例において、二次システム108は、1つもしくは複数の認可動作を行って、軌道が、比較的新しいか、自律車両102の状態と一貫しているか、および/または自律車両102の限界で実現可能かどうかを判定することができる。たとえば、二次システム108は、軌道がしきい値量よりも少ない時間前に生成されたかどうか(たとえば、軌道が比較的新しく、使用されるべきであることを示す)、軌道が車両の現在のまたは以前の体勢と一貫している(たとえば、軌道は、自律車両102の現在の体勢が与えられた上で可能である位置にポジショニングされるように自律車両102を制御する)かどうか、軌道が自律車両102の性能(たとえば、ステアリング限度、加速限度、その他)と両立できるかどうかなどを判定することができる。
【0030】
さらに、例において、二次システム108は、軌道が衝突に関連付けられているかどうかを判定するための1つまたは複数の認可動作を行うことができる。たとえば、二次システム108は、一次システム106によって提供された軌道が、二次システム108によって判定されたオブジェクトの軌道と交差するかどうかを判定することができる。すなわち、二次システム108は、自律車両102が軌道に沿って続行した場合に、自律車両102がオブジェクトと衝突することになるかどうかを判定する(たとえば、一次システム106によって潜在的に見逃された衝突を検出する)ことができる。少なくともいくつかの例において、これは、車両102が時間枠内にオブジェクトのしきい値距離内に来る確率が、しきい値確率を下回ることを含むことができる。例において、二次システム108は、直線近似を使用して、オブジェクトの軌道を予測することができる。
【0031】
1つまたは複数の認可動作に基づいて、二次システム108は、軌道についての状態を判定することができる。たとえば、二次システム108は、軌道がしきい値量よりも少ない時間前に生成されたか、軌道が自律車両102の現在のもしくは以前の体勢と一貫しているか、軌道が自律車両102の性能と両立できるか、および/または、軌道が衝突なし、もしくはしきい値量よりも多い時間内に衝突に関連付けられているかどうかの、軌道についての妥当な状態を判定することができる。さらに、二次システム108は、軌道がしきい値量よりも多い時間前に生成されたか、軌道が自律車両102の現在のもしくは以前の体勢と一貫していないか(たとえば、軌道を実現するためには、車両の状態に大きな(および実質的に即時の)変化を余儀なくすることになる)、軌道が自律車両102の性能と両立できないか(たとえば、軌道が自律車両102のハードウェアによって達成不可能なステアリング角度および/もしくは加速度を示す場合)、ならびに/または、軌道が衝突に関連付けられているかどうかの、軌道についての不当な状態を判定することができる。
【0032】
例において、二次システム108はまた、自律車両102の1つまたは複数のコンポーネントをモニタリングすることができる。たとえば、二次システム108は、一次システム106、二次システム108、および/または自律車両102の任意の他のハードウェア/ソフトウェアコンポーネント(たとえば、モータ、コントローラ、その他)をモニタリングして、エラーを検出することができる。二次システム108は、一次システム106、二次システム108、および/もしくは別のコンポーネントについてのハードウェアならびに/またはソフトウェア障害がある場合に、一次システム106、二次システム108、および/または別のコンポーネントへの電力が途絶された場合に、一次システム106、二次システム108、および/または別のコンポーネントからしばらくの間信号が受信されていない場合などに、エラーを検出することができる。
【0033】
図1の例は、二次システム108が、不当な軌道128(たとえば、衝突に関連付けられた軌道)および/またはコンポーネントエラー130を判定することができることを例証している。
【0034】
二次システム108は次いで、軌道の状態および/またはコンポーネントに関するエラーに基づいて、システムコントローラ110に提供するための出力軌道122を判定することができる。たとえば、二次システム108は、一般に、一次軌道116が妥当である(たとえば、一次軌道116が最も高いレベルに関連付けられている)ときには、一次軌道116を出力軌道122として選択するよう努めることができる。一次軌道116が不当である場合、二次システム108は、二次軌道118(たとえば、二次軌道118が次に最も高いレベルに関連付けられている)を、出力軌道122として選択することができる。一次軌道116および二次軌道118が両方不当である場合、二次システム108は、(たとえば、潜在的な衝突を回避するために)一次軌道116または二次軌道118の修正されたバージョンに沿って自律車両102を停止に至らせる衝突回避軌道などの、二次システム108によって生成された軌道を、出力軌道122として選択することができる。たとえば、二次システム108は、一次軌道116または二次軌道118に関連付けられた加速パラメータを修正している間に、一次軌道116または二次軌道118に関連付けられたステアリング制御を使用して、自律車両102を停止させることができる。さらに、エラーが、一次システム106、二次システム108、および/または自律車両102の任意の他のハードウェア/ソフトウェアコンポーネントにより検出されるならば、二次システム108は、二次軌道118および/または二次システム108によって生成された軌道を、出力軌道122として選択することができる。
【0035】
いくつかの例において、二次システム108が衝突を回避する軌道を選択または生成することができない場合、二次システム108(またはドライブマネージャなどの別のコンポーネント)は、(たとえば、利用可能な多数の減速レートの中から)自律車両102に利用可能な最大減速レートで自律車両102を停止に至らせる最大減速軌道を生成することができる。これは、潜在的な衝突に対する損傷を軽減するのを助けることができる。
【0036】
例において、二次システム108は、出力軌道122から制御を解放するための信号が受信されるまで、出力軌道122に基づいて自律車両102の制御を維持することができる。たとえば、二次システム108は、必要とされる場合、いかなる時でもより低いレベルの軌道に移行し、より高いレベルの軌道に制御を解放するための信号が受信されるまで、より高いレベルの軌道に再び移行するのを控えることができる。例証するために、一次軌道116が不当であることのために二次システム108が二次軌道118を選択する場合、より高いレベルの軌道に制御を解放するための信号が遠隔操作システム(たとえば、オペレータに関連付けられたシステム)から受信されるまで、自律車両102の制御は、二次軌道118(またはいっそう低いレベルの軌道)に沿って維持されてよい。そうすることによって、自律車両102は、軌道間での頻繁な変更を回避することができる。
【0037】
さらに、例において、二次システム108は、一次システムによって提供された軌道に関するエラーについてのメッセージ132を、一次システム106に提供することができる。たとえば、自律車両102が即座にブレーキを掛けることを必要としないほど(たとえば、しきい値量の時間よりも多く隔てた)十分遠いこの先において一次軌道116について衝突が起こると推定されることを二次システム108が判定した場合、二次システム108は、メッセージ132を一次システム106に送って、一次システム106に警告することができる。メッセージ132は、自律車両102が一次軌道116に基づいて維持される場合に、一次軌道116が衝突に関連付けられていること、および/または、自律車両102の制御が二次システム108によって引き継がれることになることを示すことができる。これは、衝突が起こる前に、一次システム106が一次軌道116を調整するのを可能にすることができる。例証目的のために、図1にはエラーが検出されたときに送信されるように描写されているが、本開示は、そのように限定することは意図されていない。たとえば、二次システム108は、いくつかの例において、送られる情報に依存してよい1つまたは複数の頻度で、1つまたは複数のプロセス(認知、ローカライゼーション、衝突/妥当性判定、その他)からの出力を、一次システム106に継続的に送ることができる。
【0038】
システムコントローラ110は、自律車両102のステアリング、推進、ブレーキング、安全、エミッタ、通信、および/または他のシステムを制御することができる。システムコントローラ110は、ドライブシステムの対応するシステム、および/もしくは自律車両102の他のコンポーネントと通信する、ならびに/または、それらを制御することができる。いくつかの実例において、システムコントローラ110は、選択された軌道を、ドライブシステムによって使用可能な命令に変えて、自律車両102に軌道を横断させることができる。
【0039】
図2は、図1の自律車両102の一次システム106および二次システム108の例示の詳細を描写する。
【0040】
この例において、一次システム106は、少なくとも、ローカリゼーションコンポーネント202(時にローカライザ202と呼ばれる)と、認知コンポーネント(perception component)204(時にパーシーバ(perceiver)202と呼ばれる)と、予測コンポーネント206(時にプレディクタ206と呼ばれる)と、プランニングコンポーネント208(時にプランナ208と呼ばれる)とを含む。ローカリゼーションコンポーネント202、認知コンポーネント204、予測コンポーネント206、および/またはプランニングコンポーネント208は、多様な機能を遂行するニューラルネットワークなどの1つもしくは複数の機械学習されたモデルを実装する処理パイプラインを、まとめて、および/または個々に含むことができる。各処理パイプラインは、データを受信し、出力を提供することができる。一例において、認知コンポーネント204は、処理パイプラインにおいて1つまたは複数のニューラルネットワークを実装して、オブジェクト検出、そのような検出されたオブジェクトの予測されたモーションを判定することに加えた(もしくは代替としての)セグメンテーション、および/または分類を実装する。パイプラインにおける各段階は、パイプラインの別の段階にフィードする(たとえば、1つの機械学習されたモデルからの出力を、入力として別の機械学習されたモデルに提供する)ことができる、認知のなんらかの態様(たとえば、オブジェクト検出、分類、境界ボックス生成、など)を提供することができる。例において、一次システム106は、数千時間または数十万時間の車両トレーニングデータ(合成またはシミュレートされたデータを含んでよい)を使用してトレーニングされた多数のニューラルネットワークを実装する。さらに、多数のニューラルネットワークは、無数の複雑なシナリオを認知し、それらのシナリオを考慮して自律車両102を制御するように構成されてよい。一般に、任意の例において、一次システム106と二次システム108とは、類似した、および/または類似していないハードウェアに依拠することができる。例において、一次システム106は(たとえば、GPUにおいて)並列コンピューティングを使用し、一方で二次システム108は使用しない。他の例において、並列コンピューティングは、一次システム106および/または二次システム108において使用される。
【0041】
本明細書で説明されるように、典型的なニューラルネットワークは、入力データを接続されたレイヤの連続に通して出力を生み出す、生物学的に着想されたアルゴリズムである。ニューラルネットワークにおける各レイヤはまた、別のニューラルネットワークを含んでもよいし、または任意の数のレイヤ(畳み込みであろうと、なかろうと)を含んでもよい。本開示のコンテキストにおいて理解され得るように、ニューラルネットワークは、学習されたパラメータに基づいて出力が生成される、そのようなアルゴリズムの広範なクラスを指してよい機械学習を利用することができる。
【0042】
ニューラルネットワークのコンテキストにおいて議論されているものの、任意のタイプの機械学習が、本開示と一貫して使用されてよい。たとえば、機械学習アルゴリズムは、回帰アルゴリズム(たとえば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン(MARS)、局所推定散布図平滑化(LOESS))、インスタンスベースのアルゴリズム(たとえば、リッジ回帰、最小絶対値縮小選択演算子(LASSO)、弾性ネット、最小角度回帰(LARS))、決定木アルゴリズム(たとえば、分類および回帰木(CART)、反復二分器3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定株、条件付き決定木)、ベイジアンアルゴリズム(たとえば、ナイーブベイズ、ガウシアンナイーブベイズ、多項ナイーブベイズ、平均単依存エスティメータ(AODE)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(たとえば、k平均法、k中央値法、期待値最大化法(EM)、階層的クラスタリング)、関連付けルール学習アルゴリズム(たとえば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、動径基底関数ネットワーク(RBFN))、深層学習アルゴリズム(たとえば、深層ボルツマンマシン(DBM)、深層ビリーフネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層オートエンコーダ)、次元削減アルゴリズム(たとえば、主成分分析(PCA)、主成分回帰(PCR)、部分的最小二乗回帰(PLSR)、サモンマッピング、多次元尺度法(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、2次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(たとえば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、積層一般化(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰木(GBRT)、ランダムフォレスト)、SVM(サポートベクトルマシン)、教師あり学習、教師なし学習、半教師あり学習、その他を含むことができるが、それらに限定はされない。アーキテクチャの追加の例は、ResNet50、ResNet101、VGG、DenseNet、PointNet、その他などのニューラルネットワークを含む。
【0043】
ローカリゼーションコンポーネント202は、1つまたは複数のセンサ104(図2には例証されず)からセンサデータ114を受信して、自律車両102を取り巻く環境のマップに対する自律車両102の体勢(たとえば、ポジションおよび/または向き)を判定するための機能性を含むことができる。たとえば、ローカリゼーションコンポーネント202は、環境のマップを判定する、および/または受信することができ、マップ内での自律車両102の位置を継続的に判定することができる。マップは、トポロジカルマップ、占有グリッド、ポイントマップ、ランドマークマップ、メッシュ、体勢の制約グラフ、および/または任意の他の好適なマップを含むことができる。いくつかの実例において、ローカリゼーションコンポーネント202は、自律車両102の位置/体勢を正確に判定するために、SLAM(同時のローカライゼーションおよびマッピング)またはCLAMS(較正、ローカライゼーション、およびマッピングを同時に)を利用して、画像データ、LIDARデータ、RADARデータ、IMUデータ、GPSデータ、ホイールエンコーダデータ、および/またはその他を受信することができる。自律車両102の位置は、マップ、局所座標、および/もしくは全体座標(たとえば、GPS座標)におけるポイントならびに/またはオブジェクトに対する、自律車両102の相対的なポジションおよび/または向きを含む体勢を含むことができる。追加のまたは代替の実例において、向きは、基準面に対する、ならびに/または、マップにおけるポイントおよび/もしくはオブジェクトに対する、自律車両102のヨー、ロール、および/またはピッチの表示を含むことができる。ポジションおよび/または向きを合わせて、「体勢」を説明することができる。
【0044】
いくつかの実例において、ローカリゼーションコンポーネント202は、自律車両102のさまざまなコンポーネントにデータを提供することができる。たとえば、ローカリゼーションコンポーネント202は、下で議論されるように、自律車両102の体勢をプランニングコンポーネント208に提供して、軌道を生成することができる。他の例において、ローカリゼーションコンポーネント202は、自律車両102の体勢を、認知コンポーネント204および/または予測コンポーネント208などの、自律車両102の他のコンポーネントに提供することができる。
【0045】
認知コンポーネント204は、オブジェクト検出、セグメンテーション、および/または分類を実施するための機能性を含むことができる。いくつかの例において、認知コンポーネント204は、センサデータ114を入力として受信し、自律車両102に最も近いオブジェクトの存在、および/またはオブジェクトタイプ(たとえば、車、歩行者、サイクリスト、動物、ビルディング、木、道路表面、カーブ、歩道、不明のもの、その他などの意味ラベル)としてのオブジェクトの分類を示す一次認知データ(primary perception data)を出力することができる。追加として、または代替として、認知コンポーネント204は、検出されたオブジェクトに関連付けられた、および/またはオブジェクトがポジショニングされている環境に関連付けられた1つまたは複数の特性を示す、処理されたセンサデータを提供することができる。いくつかの例において、オブジェクトに関連付けられた特性は、xポジション(たとえば、全体的ポジション、相対的ポジション、その他)、yポジション(たとえば、全体的ポジション、相対的ポジション、その他)、zポジション(たとえば、全体的ポジション、相対的ポジション、その他)、向き、オブジェクトタイプ(たとえば、分類)、オブジェクトの速度、オブジェクトの広さ(サイズ)、その他、および/または関連付けられた不確実性を含むことができるが、それらに限定はされない。いくつかの例において、オブジェクトの速度は、後続のデータ、RADAR処理、および/または他の技法における同じオブジェクトの多数の検出から判定されてもよい。環境に関連付けられた特性は、環境における別のオブジェクトの存在、環境における別のオブジェクトの状態、時刻、曜日、季節、天候条件、暗さ/明るさの表示、その他を含むことができるが、それらに限定はされない。
【0046】
いくつかの実例において、認知コンポーネント204は、一次認知データおよび/または処理されたセンサデータを、自律車両102のさまざまなコンポーネントに提供することができる。たとえば、認知コンポーネント204は、一次認知データおよび/または処理されたセンサデータを、プランニングコンポーネント208および/または予測コンポーネント206に提供することができる。他の例において、認知コンポーネント204は、一次認知データおよび/または処理されたセンサデータを、ローカリゼーションコンポーネント202などの、自律車両102の他のコンポーネントに提供することができる。例において、一次認知データおよび/または処理されたセンサデータは、オブジェクトのリスト、および/またはオブジェクトの各々についての特性を含む一次オブジェクトリストの形態であってよい。
【0047】
予測コンポーネント206は、トラックを検出されたオブジェクトに関連付ける、および/またはオブジェクト軌道を予測することができる。オブジェクトのトラックは、履歴のオブジェクトポジション、速度、加速度、および/または向きを含むことができる。いくつかの実例において、予測コンポーネント206は、履歴のオブジェクトトラックを、認知コンポーネント204によって最近検出されたオブジェクトに関連付けるか否かを判定することができる。たとえば、予測コンポーネント206は、最近検出されたオブジェクトが、以前に検出されたオブジェクトに対して類似した特徴(たとえば、類似した特徴マップ、最も近い埋め込み、類似したビジュアル特徴(FAST、BRISK、ORB、その他)など)を有するかどうか、履歴のトラックに関連付けられたオブジェクトの以前のポジションのしきい値距離内であるかどうか、履歴のトラックに関連付けられたオブジェクトの以前の速度のしきい値速度内であるかどうか、その他を判定することができる。いくつかの例において、予測コンポーネント206は、照明の状態(たとえば、ブリンカ検出)、オブジェクト速度/加速度、マップデータ(たとえば、理にかなった運転挙動を示すレーン情報)、および/または学習されたオブジェクト挙動に基づいて、環境におけるオブジェクトの挙動を予測するための機械学習されたモデルを含むことができる。いくつかの例において、予測コンポーネント206は、たとえば、履歴の、現在の、ならびに/または予測された、オブジェクトのポジション、速度、加速度、および/もしくは向きの、確率的判定またはマルチモーダル分布に基づいて、認知コンポーネント204によって検出された具体的なオブジェクトについての1つもしくは複数の予測されたオブジェクト軌道を予測することができる。
【0048】
いくつかの実例において、予測コンポーネント206は、オブジェクトトラック、予測されたオブジェクト軌道(たとえば、1つもしくは複数の軌道および関連付けられた不確実性)に関するデータ、および/または他のデータを、自律車両102のさまざまなコンポーネントに提供することができる。たとえば、予測コンポーネント206は、そのようなデータを、プランニングコンポーネント208に提供することができる。いくつかの例において、予測コンポーネント206は、オブジェクトの予測されたモーションに関連付けられたヒートマップを生成することができ、そのようなヒートマップを、プランニングコンポーネント208に提供することができる。他の例において、予測コンポーネント206は、オブジェクトに関するデータを、ローカリゼーションコンポーネント202および/または認知コンポーネント204などの、自律車両102の他のコンポーネントに提供することができる。さらに、いくつかの例において、オブジェクトに関するデータは、二次システム108に提供されてもよい。例において、オブジェクトに関するデータは、一次オブジェクトリストに記憶されてよい。
【0049】
いくつかの例において、認知コンポーネント204および/または予測コンポーネント206は、「Detecting Blocking Objects」と題され、2018年2月14日に出願された特許文献3、および「Feature-Based Prediction」と題され、2018年4月6日に出願された特許文献4において議論される技法を実装することができ、それらのすべての全内容は、参照により本明細書に組み込まれる。
【0050】
プランニングコンポーネント208は、自律車両102が環境を横断するためにたどる経路および/または軌道を判定することができる。たとえば、プランニングコンポーネント208は、さまざまなルートおよび/または軌道、ならびにさまざまなレベルの詳細を判定することができる。たとえば、プランニングコンポーネント208は、第1の位置(たとえば、現在の位置)から第2の位置(たとえば、目標位置)まで移動するためのルートを判定することができる。例において、ルートは、2つの位置の間を移動するためのウェイポイントのシーケンスであってよい。非限定的な例として、ウェイポイントは、通り、交差点、全地球測位システム(GPS)座標、その他を含む。さらに、プランニングコンポーネント208は、第1の位置から第2の位置までのルートの少なくとも一部に沿って自律車両102を導くための命令を生成することができる。少なくとも一例において、プランニングコンポーネント208は、ウェイポイントのシーケンスにおける第1のウェイポイントから、ウェイポイントのシーケンスにおける第2のウェイポイントまで、自律車両102をどのように導くのかを判定することができる。いくつかの例において、命令は、軌道または軌道の一部を含むことができる。
【0051】
例において、プランニングコンポーネント208は、一次軌道116を生成する、および/または一次軌道116を二次システム108に送ることができる。たとえば、プランニングコンポーネント208は、後退ホライズン技法に従って、および/または一次システム106の他のコンポーネントから受信されたデータに少なくとも部分的に基づいて、多数の軌道を実質的に同時に(たとえば、技術的公差内で)生成することができる。いくつかの実例において、プランニングコンポーネント208は、多数の軌道にわたってコストベースの探索(または自律車両102のモーションを制御するための好適な軌道を識別するための任意の他の好適なアルゴリズム)を行って、二次システム108に送信するための一次軌道116を識別することができる。
【0052】
例において、プランニングコンポーネント208は、二次軌道118を生成する、および/または二次軌道118を二次システム108に送ることができる。たとえば、プランニングコンポーネント208は、多数の偶発的軌道を生成し、偶発的軌道のうちの1つを二次軌道118として選択することができる。二次軌道118は、一次軌道116が不当である、または別の状況で受け入れ不可能である場合に使用されるバックアップ軌道を表してよい。二次軌道118は、一次軌道116とは異なっていてよい。一例において、一次軌道116は、自律車両102を加速させる、または自律車両102に特定の速度を維持させることができ、一方で二次軌道118は、自律車両102を(下で議論されるように)穏やかな停止などの停止へと減速させることができる。別の例において、一次軌道116は、自律車両102にレーン変更をさせることができ、対して二次軌道118は、自律車両102を同じレーンにとどまらせることができる。さらに別の例において、一次軌道116は、自律車両102に現在のスピードおよびステアリング角度を維持させることができ、対して二次軌道118は、自律車両102を路肩の方へと寄せさせることができる。任意の例において、一次軌道116および二次軌道118の両方は、軌道に沿ったこの先のポイントで、および/もしくは軌道に沿ったこの先の時間に自律車両102によって達せられるべき、車両状態のセット(ポジション、向き、速度、その他)、ならびに/またはコマンド(加速度、ステアリング角度、その他)を含むことができる。
【0053】
例において、穏やかな停止は、予め決められたレートで、第1のレート(たとえば、最大ブレーキングレート)よりも小さいレートで、第2のレート(たとえば、最小ブレーキングレート)よりも大きいレートで、複数の利用可能なレートの中からの実質的に中間にあるレート(たとえば、5つのレートの中からの3番目のレート)で、複数のレートの中からの最小レートなどの特定のレートで、ブレーキを掛けることを含むことができる。減速のレートは、メートルまたはフィート毎秒毎秒(m/s^2)の数などの、時間にわたる測定の単位を指してよい。一例において、穏やかな停止は、自律車両102が停止に至るまで、5または10フィート(1.524または3.048メートル)毎秒毎秒のレートで減速することを含むことができる。
【0054】
多くの例において、ローカリゼーションコンポーネント202、認知コンポーネント204、および予測コンポーネント206は、互いに(または一次システム106の他のコンポーネントに)出力を提供するように議論されているものの、いくつかの例において、これらのコンポーネントのいずれも、二次システム108に出力を提供することができる。非限定的な例として、一次システム106は、オブジェクトトラック情報を、二次システム108に提供することができる。
【0055】
例証されるように、二次システム108は、ローカライザ210と、パーシーバ212(時に認知/予測コンポーネント212と呼ばれる)と、軌道マネージャ214と、モニタ216とを含む。例において、ローカライザ210、パーシーバ212、軌道マネージャ214、および/またはモニタ216は、自律車両102の、および/または車両の周りのオブジェクトの、ポジショニング、速度、加速度、その他に基づいたモデルを実装することができる。いくつかの例において、そのようなモデルは、確率的モデルを組み込むことができる。たとえば、二次システム108は、カルマンフィルタ(線形2次推定(LQE)ともまた呼ばれる)(たとえば、拡張カルマンフィルタ(EKF)、無香カルマンフィルタ(UKF)、その他)、粒子フィルタ、ベイジアンフィルタなどを実装することができる。例証するために、パーシーバ212は、センサデータを、検出、トラッキング、予測、その他のための以前のデータに関連付けるために、カルマンフィルタまたは粒子フィルタを実装することができる。いくつかの例において、二次システム108は、一次システム106とは対照的に、機械学習されたモデルの使用を除外する、または機械学習されたモデルの数を削減するようなやり方で構成されてもよい。他の例において、二次システム108は、(たとえば、類似した入力に基づいて類似した出力を生じながらも、異なる内部ネットワークアーキテクチャを有する)一次システム106のものとは異なる(または、類似したもしくは同一の)1つまたは複数の機械学習されたモデルを含むことができる。いくつかの例において、二次システム108は、一次システム106とは異なるハードウェア(たとえば、プロセッサーおよびメモリ)を使用することができる。
【0056】
例において、二次システム108は、計算的な負担がより少なくなるように、および/またはより高い完全性レベルで動作するように設計されてよい。たとえば、二次システム108の処理パイプラインは、より少ないセンサデータに依拠することによってより単純であってよく、より複雑でないパイプラインコンポーネントを含み、全般により少ないパイプラインコンポーネントを含み、より少ないデータを出力し、ならびに/または、機械学習されたモデルの使用を除外および/もしくは限定することができる。いくつかの実例において、二次システム108は、厳しい動作公差を達成することによって「高完全性」システムであってよく、および/または、検査される(検証される)能力を有することができる。例において、二次システム108は、一次システム106よりも高いレベルの信頼性および/または検証可能性を有することができる。たとえば、二次システム108のサブコンポーネントの出力は、完璧な精度、またはほぼ完璧な精度(たとえば、シナリオの99.99%、またはより高い)で動作することが証明され得る。いくつかの例において、二次システム108は、自動車安全完全性レベル(ASIL)D認定を含むことができる。
【0057】
ローカライザ210は、センサ104からのセンサデータ120を処理して、自律車両102のポジションおよび/または向き(合わせて体勢)のうちの1つまたは複数を判定することができる。ここで、ポジションおよび/または向きは、自律車両102が位置付けられている環境におけるポイントおよび/またはオブジェクトに対してであってよい。例において、向きは、基準面に対する、ならびに/またはポイントおよび/もしくはオブジェクトに対する自律車両102のヨー、ロール、および/またはピッチの表示を含むことができる。例において、ローカライザ210は、一次システム106のローカリゼーションコンポーネント202よりも少ない処理(たとえば、より高いレベルのローカライゼーション)を行うことがある。たとえば、ローカライザ210は、マップに対する自律車両102の体勢を判定しなくてもよく、単に、自律車両102の周りで検出されたオブジェクトおよび/もしくは表面(たとえば、局所的ポジションであって、全体的ポジションではない)に対して、ならびに/または自律車両102の以前の体勢に対して、自律車両102の体勢を判定することができる。そのようなポジションおよび/または向きは、たとえば、センサデータ120のうちのいくつかまたはすべてを使用する、たとえば、ベイジアンフィルタ(カルマンフィルタ、拡張カルマンフィルタ、無香カルマンフィルタ、その他)などの確率的フィルタリング技法を使用して判定されてよい。
【0058】
ローカライザ210は、自律車両102のポジションおよび/または向きを、パーシーバ212、軌道マネージャ214、ドライブマネージャ226、その他などの、二次システム108のさまざまなコンポーネントに提供することができる。
【0059】
いくつかの例において、ローカライザ210は、自律車両102の体勢を確認するための体勢バリデータ(pose validator)を含むことができる。たとえば、体勢バリデータは、体勢が自律車両102の以前の体勢と一貫していることをチェックすることができる。体勢が(たとえば、横方向運動、垂直方向運動、向き、その他に対して)以前の体勢からしきい値量よりも多い分だけ変化していない場合、体勢は妥当であってよい。例において、体勢バリデータは、体勢が妥当であるか否かについてのデータを、パーシーバ212、軌道マネージャ214、ドライブマネージャ226、その他などの、二次システム108のさまざまなコンポーネントに提供することができる。
【0060】
パーシーバ212は、オブジェクト検出、オブジェクトセグメンテーション、オブジェクト分類、トラック判定、および/または、オブジェクトごとに1つもしくは複数の軌道を予測すること(たとえば、不確実性を含む)、その他を実施するための機能性を含むことができる。いくつかの例において、パーシーバ212は、入力データとして、センサ104の1つもしくは複数からのセンサデータ120、ローカライザ210からの自律車両102の体勢、自律車両102のモーションの方向を示すデータ、自律車両102の速度を示すデータ、自律車両102の加速度を示すデータ、自律車両102のヨーレートを示すデータ、ヨー加速度を示すデータ、ならびに/または自律車両102のステアリング角度および/もしくはステアリング角度レートを示すデータを受信することができる。さらに、いくつかの例において、パーシーバ212は、入力データとして、認知コンポーネント204からの一次オブジェクトリスト、自律車両102の体勢、一次システム106によって判定された1つまたは複数のオブジェクトトラック、その他などの、一次システム106からのデータを受信することができる。上に記されたように、一次システム106からのオブジェクトリストは、一次認知データ、処理されたセンサデータ、オブジェクトのトラック/軌道に関するデータ、その他を含むことができる。そのような例において、パーシーバ212は、(たとえば、確率的フィルタ、クラスタリング、最接近ポイントの分析などを使用することによって)データ関連付けを実施して、センサデータをトラックに関連付けることができる。
【0061】
パーシーバ212は、入力データを処理して、二次認知データ(secondary perception data)を判定することができる。二次認知データは、自律車両102に最も近いオブジェクトの存在、オブジェクトに関連付けられた特性などを示すことができる。ここで、オブジェクトに関連付けられた特性は、自律車両102に対するオブジェクトのポジション、自律車両102に対するオブジェクトの向き、オブジェクトの速度、オブジェクトの加速度、オブジェクトの広さ(オブジェクトのサイズ)、その他を含むことができる。多くの例において、二次認知データに含まれる特性は、オブジェクトの分類(たとえば、意味ラベル)を含まない。とはいえ、いくつかの例において、二次認知データは、分類を示してもよい。
【0062】
パーシーバ212はまた、入力データを処理して、オブジェクトについての1つまたは複数のトラックを判定することができる。上に記されたように、オブジェクトのトラックは、履歴のポジション、速度、加速度、および/もしくは向き、広さなど、ならびに/またはそれらに関連付けられた不確実性を含むことができる。一例において、パーシーバ212は、データ関連付けのためのカルマンフィルタを実装して、および/または、データにおける特徴(たとえば、独自のピクセルなどのデータの独自の/顕著なポイント)を使用して、新たな検出を、以前に検出されたオブジェクトに関連付けることができる。別の例として、パーシーバ212は、環境におけるオブジェクトを1回目に判定し、環境におけるオブジェクトを2回目に判定し、1回目と2回目とのオブジェクトの重なりを判定し、オブジェクトについてのトラックを生成することができる。さらに別の例において、パーシーバ212は、オブジェクトの速度を1回目に判定し、オブジェクトの予測されるモーションを2回目にキャプチャされたオブジェクトのデータと比較し、重なりを判定し、オブジェクトについてのトラックを生成することができる。パーシーバ212は、自律車両102の周りで検出されたオブジェクトごとにトラックを判定することができる。いくつかの例において、パーシーバ212は、一次システム106から受信されたデータから独立して、オブジェクトのトラックを判定することができる(たとえば、一次システム106から受信された、一次オブジェクトリストおよび/または自律車両102の体勢を使用しないことになる)。一方で他の例において、パーシーバ212は、一次システム106から受信されたデータを使用することができる。
【0063】
パーシーバ212はまた、入力データを処理して、オブジェクトについて1つまたは複数の予測された軌道を判定することができる。たとえば、オブジェクトの現在の位置、および数秒の期間にわたるオブジェクトの速度に基づいて、パーシーバ212は、次の数秒にわたってオブジェクトが動くことになる経路を予測することができる。いくつかの例において、そのような予測された経路は、直線近似の使用および/またはより高い次数のモデルへの適合などの、ポジション、向き、速度、および/または向きが与えられたモーションの線形仮定を使用することを含むことができる。他の例において、そのような予測された経路は、拡張カルマンフィルタ(EKF)伝播、オブジェクト挙動のモデル、または他の予測技法の使用などの、より複雑な分析を含むことができる。
【0064】
パーシーバ212は、二次認知データおよび/またはオブジェクトに関するデータ(たとえば、トラック、軌道、その他)を、軌道マネージャ214および/または二次システム108の任意の他のコンポーネントに出力することができる。例において、二次認知データおよび/またはオブジェクトのデータは、二次オブジェクトリストに表される。たとえば、オブジェクトリストは、オブジェクトごとに、オブジェクトの特性、および/またはオブジェクトのトラック/軌道を示すことができる。例において、パーシーバ212は、二次認知データおよび/またはオブジェクトに関するデータを、一次システム106に出力することができる。
【0065】
例証しやすさのために、パーシーバ212(ならびに一次システム106および二次システム108の他のコンポーネント)は、単一のブロックを用いて例証されている。しかしながら、パーシーバ212(ならびに/または一次システム106および二次システム108の他のコンポーネント)は、各ブロックが1つもしくは複数のシステムまたはサブシステムに位置付けられた、任意の数のブロックとして実装されてもよい。
【0066】
軌道マネージャ214は、一次システム106を評価し、問題が検出された場合に、自律車両102の制御を引き継ぐことができる。たとえば、軌道マネージャ214は、一次軌道116および/または二次軌道118を評価して、一次軌道116および/もしくは二次軌道118が使用されるべきか、または別の軌道が使用されるべきかを判定することができる。例証されるように、軌道マネージャ214は、衝突検出コンポーネント218(1)~(2)(時に衝突ディテクタ218と呼ばれる)と、軌道認可コンポーネント(trajectory validation component)220(1)~(3)(時に軌道バリデータ220と呼ばれる)と、軌道セレクタ222と、リリーサ(releasor)224とを含むことができる。
【0067】
衝突検出コンポーネント218は、一次軌道116および二次軌道118を評価して、潜在的な衝突を検出することができる。たとえば、衝突検出コンポーネント218(1)は、一次軌道116が(たとえば、パーシーバ212によって判定された)オブジェクトの予測された軌道と交差する(もしくはそのしきい値距離内に来る)かどうか、およびオブジェクトと自律車両102とが同時(もしくは時間枠)に交差点で出会うことになるかどうか、ならびに/または、それらに関連付けられた確率がしきい値よりも低いか、もしくはしきい値に等しいかを判定することができる。これらの判定は、検出された任意の数のオブジェクトについて繰り返されてよい。少なくともいくつかの例において、判定は、自律車両102に最接近したオブジェクトから順に行われてよい。いくつかの例において、すべてのオブジェクトに関するそのような判定は、実質的に同時に実施されてもよい。さらに、そのような判定は、追加として、または代替として、自律車両102の軌道ならびにオブジェクトのそれらのうちの1つまたは複数の不確実性に関する情報を含むことができる。衝突検出コンポーネント218(2)は、二次軌道118が(たとえば、パーシーバ212によって判定された)オブジェクトの予測された軌道と交差する(および/または衝突のしきい値確実性を満たす、もしくは超える)かどうか、ならびにオブジェクトと自律車両102とが、同時(もしくは時間枠)に、および/または互いからのしきい値距離内で、交差点で出会うことになるかどうかを判定することができる。
【0068】
衝突検出コンポーネント218は、自律車両102によって検出された任意の数のオブジェクトについて、自律車両102のための軌道が、今の時点またはこの先の時間に交差するかどうかを検出することができる。いくつかの実例において、これは、予測されたオブジェクト軌道と車両軌道とが交差する、および/または互いのしきい値距離内(たとえば、近接の位置)に来るかどうかを判定すること、予測されたオブジェクト軌道に沿ったオブジェクトと車両軌道に沿った自律車両102とが、同時もしくは時間枠に、および/または互いのしきい値距離内で、任意の交差点または近接の位置で出会うことになるかどうかを判定すること、ならびに/または、オブジェクトについての境界ボックスが、任意の交差点もしくは近接の位置の周りで、および/または互いからのしきい値距離内で、自律車両102についての境界ボックスと重なるかどうかを判定することを含むことができる。さらに、例において、同じプロセスが、各境界ボックスの周りの安全マージン(たとえば、境界ボックスの長さ/幅/高さを調整することなどによって、特定の量の分だけ拡大されている境界ボックスを表す安全境界ボックス)を用いて実施されてもよい。境界ボックスは、オブジェクトの空間的位置、向き、および/またはサイズ(たとえば、広さ)を表すことができる。たとえば、境界ボックスは、8つの隅(たとえば、直方体)によって定義された、ポジション、向き、長さ、幅、および/または高さを有するオブジェクトの表象であってよい。例において、境界ボックスは、オブジェクトを取り囲む最小体積直方体であってよい。
【0069】
衝突検出コンポーネント218は、衝突の検出を示すデータを、軌道認可コンポーネント220に提供することができる。さらに、例証されるように、衝突検出コンポーネント218(1)は、一次軌道116(「PT116」として示されている)を、軌道認可コンポーネント220(1)に渡すことができる。衝突検出コンポーネント218(2)は、二次軌道118(「ST118」として示されている)を、軌道認可コンポーネント220(2)および軌道認可コンポーネント220(3)に渡すことができる。
【0070】
図2には2つの衝突検出コンポーネント218が例証されているものの、単一の衝突検出コンポーネント218、(たとえば、さらなる一次/二次軌道のための)2つよりも多い衝突検出コンポーネント218、その他などの、任意の数の衝突検出コンポーネント218が実装されてよい。
【0071】
例において、軌道認可コンポーネント220は、1つまたは複数の認可動作を実施して、軌道が妥当であるかどうかを判定することができる。いくつかの例において、軌道認可コンポーネント220(1)は、図3を参照して下で議論される1つまたは複数の認可動作を実施することによって、一次軌道116が妥当であるかどうかを判定することができる。さらに、いくつかの例において、軌道認可コンポーネント220(2)は、図4を参照して下で議論される1つまたは複数の認可動作を実施することによって、二次軌道118が妥当であるかどうかを判定することができる。
【0072】
その上、いくつかの例において、軌道認可コンポーネント220(3)は、二次軌道118が妥当であるかどうかを判定することができる。二次軌道118が不当である場合、軌道認可コンポーネント220(3)は、別の軌道を生成し、別の軌道が妥当であるかどうかを判定することができる。軌道認可コンポーネント220(3)によって生成された軌道は、潜在的な衝突を回避または軽減する試みにおいて自律車両102を停止へと減速させる、衝突回避軌道を含むことができる。たとえば、衝突回避軌道は、二次軌道118(または、いくつかのケースにおいては一次軌道116)に沿った減速を含むことができる。第2の軌道118に沿って加速プロファイルを変更する(たとえば、より速く減速する、ある部分において加速する、その他)ことによって、予想される衝突の前に停止に至りながら、類似した動きが、潜在的な他のオブジェクトを回避するために行われ得る。いくつかの例において、衝突回避軌道は、二次軌道118において検出されたあらゆる潜在的な衝突を軽減するために、二次軌道118のずれ(たとえば、所望の車両状態および/または関連付けられた制御のうちのいずれか1つもしくは複数における変更)を含むことができる。軌道認可コンポーネント220(3)は、(たとえば、ローカライザ210によって提供された)自律車両102の体勢についての情報、オブジェクトについての情報(たとえば、パーシーバ212によって提供されたトラックもしくは軌道情報)、一次システム106によって提供された情報、および/または、二次システム108に利用可能な任意の他の情報に基づいて、衝突回避軌道を生成することができる。いくつかの例において、軌道認可コンポーネント220(3)は、図5を参照して下で議論される認可動作のうちの1つまたは複数を実施することができる。
【0073】
軌道認可コンポーネント220は、軌道の妥当性を示すデータを、軌道セレクタ222に出力することができる。たとえば、軌道認可コンポーネント220(1)は、一次軌道116が妥当であるか不当であるかを示す一次軌道116の状態を判定し、状態を軌道セレクタ222に出力することができる。さらに、軌道認可コンポーネント220(2)は、二次軌道118が妥当であるか不当であるかを示す二次軌道118の状態を判定し、状態を軌道セレクタ222に出力することができる。その上、軌道認可コンポーネント220(3)は、衝突回避軌道(たとえば、修正された二次軌道118または二次軌道118)の状態を判定し、状態を軌道セレクタ222に出力することができる。
【0074】
図2には3つの軌道認可コンポーネント220が例証されているものの、単一の軌道認可コンポーネント220、(たとえば、さらなる軌道のための)3つよりも多い軌道認可コンポーネント220、その他などの、任意の数の軌道認可コンポーネント220が実装されてよい。さらに、いくつかの実例において、衝突検出コンポーネント218(2)および/または軌道認可コンポーネント220(2)~(3)は、一次軌道116または二次軌道118のうちの1つもしくは複数が妥当である場合に、データを処理しなくてもよい。非限定的な例として、計算的なリソースを節約するために、一次軌道116が妥当である(かつ、どちらのシステムの他のエラーも存在しない)ことを軌道認可コンポーネント220(1)が判定した場合、他の確認プロセスは実施されなくてよい。
【0075】
例において、軌道マネージャ214は、軌道の状態(たとえば、妥当または不当)を示すメッセージを、プランニングコンポーネント208(または一次システム106の別のコンポーネント)に提供することができる。たとえば、軌道認可コンポーネント220のうちの1つまたは複数は、軌道が妥当であるか不当であるかを示すメッセージを、プランニングコンポーネント208に送ることができる。例において、メッセージは、衝突までの時間、潜在的な衝突に関連付けられたオブジェクトの広さ、オブジェクトの速度、オブジェクトの位置、または衝突のポイント(たとえば、検出された衝突の位置)のうちの1つもしくは複数を示すことができる。
【0076】
軌道セレクタ222は、出力軌道を判定して、システムコントローラ110に送ることができる。軌道セレクタ222は、一般に、一次軌道116、二次軌道118、衝突回避軌道(もしくは二次システム108によって生成された別の軌道)、および/または最大減速軌道を選択することができる。そのような選択は、軌道認可コンポーネント220によって提供された1つまたは複数の軌道についての1つまたは複数の状態に基づいていてよい。一次軌道116は、二次軌道118よりも高いレベルを有してよく、二次軌道118は、衝突回避軌道よりも高いレベルを有してよく、衝突回避軌道は、最大減速軌道よりも高いレベルを有してよい。多くの例において、より低いレベルの軌道は、より高いレベルの軌道よりも高い減速レートに関連付けられていてよい。たとえば、衝突回避軌道は、二次軌道118よりも高い減速レート(たとえば、秒あたりより多くのフィート)に関連付けられていてよい。軌道セレクタ222は、一般に、妥当である最も高いレベルの軌道を選択することができる。これは、自律車両102が、衝突を回避するのに最も少ない量の減速で減速し、搭乗者に比較的快適な搭乗を提供するのを可能にすることができる。
【0077】
例において、最大減速軌道(急な停止または緊急停止ともまた呼ばれる)は、予め決められたレート、しきい値よりも大きいレート(たとえば、最大ブレーキングレート)、複数の利用可能なレートの中からの最も大きいレートであるレート、その他などの特定のレートで、ブレーキを掛けることを含むことができる。一例において、最大減速軌道は、自律車両102が停止に至るまで、15または20フィート(4.572または6.096メートル)毎秒毎秒のレートで減速することを含むことができる。
【0078】
例において、軌道セレクタ222は、一次軌道116が妥当であるときに、一次軌道116を出力軌道として選択することができる。一次軌道116が不当である場合、軌道セレクタ222は、二次軌道118を出力軌道として選択することができる。一次軌道116と二次軌道118の両方が不当である場合、軌道セレクタ222は、衝突回避軌道を出力軌道として選択することができる。一次軌道116、二次軌道118、および衝突回避軌道がすべて不当である場合、軌道セレクタ222は、最大減速軌道を選択することができる。一旦軌道セレクタ222が軌道を選択すると、軌道セレクタ222は、自律車両102を制御するために使用する軌道を示す信号を、ドライブマネージャ226(または図1のシステムコントローラ110)に送ることができる。
【0079】
例において、出力軌道が減速に関連付けられている場合、軌道セレクタ222は、そのような減速に備えるために、自律車両102の別のコンポーネントに信号を送ることができる。たとえば、ありそうな衝突のために最大減速軌道が選択された場合、軌道セレクタ222は、他のコンポーネントに警告するための信号を出力することができ、その結果、他のコンポーネントは、衝突に備えること(たとえば、シートベルトに張力を付与すること、エアバッグを展開のために備えること、その他)ができる。
【0080】
例において、軌道セレクタ222は、選択された軌道(たとえば、出力軌道)を示すデータを維持する。たとえば、軌道セレクタ222は、軌道にそれぞれ関連付けられた状態の間を移行する状態機械を維持することができる。軌道セレクタ222によって実装され得る例示の状態は、図6を参照して下で議論される。例において、軌道セレクタ222は、より低いレベルの状態に移行することができ、より低いレベルの状態から制御を解放するための信号が受信されるまで、より高いレベルの状態に移行しなくてもよい。いくつかの例において、軌道セレクタ222は、同じより低いレベルの軌道に基づいて、制御を維持することができる(たとえば、同じレベルの更新された軌道に配慮しない)。他の例において、新しいより低いレベルの軌道(たとえば、二次軌道)が一次システム106から受信されることがあり、新しいより低いレベルの軌道は、より低い状態を維持するために使用されてもよい(たとえば、同じレベルの更新された軌道を受け入れる)。
【0081】
リリーサ224は、軌道セレクタ222に信号を送って、現在の状態から制御を解放する(たとえば、軌道から制御を解放する)ことができる。一例において、リモートシステムが、二次システム108に信号を提供して、現在の状態から制御を解放することができ、それに応答して、リリーサ224は、軌道セレクタ222に信号を送って、現在の状態から制御を解放することができる。リモートシステムは、自動化されたシステム、オペレータ(たとえばユーザ)に関連付けられた遠隔操作システム、および/または別のエンティティを含むことができる。オペレータは、自律車両102の移動における中断(たとえば、予期されない停止)などの問題が持ち上がったときに、自律車両102を管理するのを助けることができる。1つの例証において、一次軌道116以外の軌道に関連付けられた状態に移行すると、オペレータは、自律車両102における搭乗者と通信する、自律車両102に関連付けられたデータを分析するなどして、自律車両102が正常な動作を再開すること(または、異なる状態に移行すること)が明らかであるかどうかを判定することができる。ここで、自律車両102が正常な動作を再開すること(または、異なる状態に移行すること)が明らかであることをオペレータが判定したとき、オペレータは、現在の状態から制御を解放するために、二次システム108に信号が送られるようにさせることができる。別の例において、自律車両102のコンポーネントが、自律車両102が正常な動作を再開すること(または、異なる状態に移行すること)が明らかであることを判定するための処理を実施し、現在の状態から制御を解放するために、リリーサ224に信号を送ることができる。
【0082】
モニタ216は、一次システム106、二次システム108、および/または自律車両102の他のコンポーネントをモニタリングして、エラーがあるかどうかを判定することができる。多くの例において、モニタ216は、軌道マネージャ214よりも全体的に一次システム106をモニタリングする(たとえば、軌道だけの代わりに、全体的車両状態情報をモニタリングする)ことができる。例において、モニタ216は、一次システム106、二次システム108、および/もしくは別のコンポーネントについてのハードウェアならびに/またはソフトウェア障害(たとえば、センサ104、アクチュエータ、または自律車両102の任意の他のコンポーネントの障害)がある場合に、一次システム106、二次システム108、および/または別のコンポーネントへの電力が途絶された場合に、一次システム106、二次システム108、および/または別のコンポーネントからしばらくの間(たとえば、一次システム106が問題を被っていることを示す時間の期間よりも長く)信号が受信されていない場合などに、エラーが起こっていることを判定することができる。そのような判定は、一次システム106からの信号、一次システム106/二次システム108のコンポーネントからの信号、ドライブマネージャ226(もしくはドライブマネージャ226と通信中であり得るアクチュエータ(ブレーキ、ステアリング、その他))からの信号、および/または、ハードウェアもしくはソフトウェア障害を示すサービスプロバイダ(たとえば、リモートデバイス)からの信号(たとえば、診断情報)に基づいていてよい。追加として、または代替として、そのような判定は、一次システム106/二次システム108(または一次システム106/二次システム108のコンポーネント)に電力が提供されているか否かを示す、自律車両102のバッテリからの、または電力を提供することに関連付けられた他のコンポーネントからの信号に基づいていてもよい。図2に例証されるように、モニタ216は、ドライブマネージャ226から信号を受信することができる。上記の信号は、ドライブマネージャ226、および/またはドライブマネージャ226と通信中のコンポーネント、たとえば、アクチュエータなどに関するエラーを示すことができる。さらに、モニタ216は、プランニングコンポーネント208と通信して、プランニングコンポーネント208に関するエラーを示す信号を受信する、および/またはモニタリングについての情報(たとえば、エラーが起こっていることを示す自律車両102の状態)を送ることができる。
【0083】
モニタ216が一次システム106に関するエラーを判定した場合、モニタ216は、そのようなエラーを示す信号を、軌道マネージャ214(たとえば、軌道セレクタ222)および/またはドライブマネージャ226に送ることができる。一例において、自律車両102が減速に関連付けられた軌道(たとえば、二次軌道118、衝突回避軌道、または最大減速軌道)によってまだ制御されていない場合、軌道セレクタ222は、減速に関連付けられた軌道を選択し、システムコントローラ110に信号を送って、自律車両102を(たとえば、停止に至るように)制御することができる。別の例において、信号がドライブマネージャ226に送られた場合、ドライブマネージャ226は、最大減速軌道または別の軌道を実装するように、自律車両102を制御することができる。
【0084】
ドライブマネージャ226は、(たとえば、軌道セレクタ222から)軌道を受信する、および/または自律車両102を制御するためのコマンド/命令を生成することができる。たとえば、ドライブマネージャ226は、自律車両102のステアリング、推進、ブレーキング、安全、エミッタ、通信、および/または他のシステムを制御することができる。いくつかの実例において、ドライブマネージャ226は、選択された軌道を、ドライブシステムによって使用可能な命令に変えて、自律車両102に軌道を横断させることができる。例において、ドライブマネージャ226は、システムコントローラ110の代わりに、またはシステムコントローラ110と協力して実装される。さらに、例において、ドライブマネージャ226は、システムコントローラ110に置き換えられてもよい。例において、ドライブマネージャ226は、ローカライザ210から体勢情報を受信する。さらに、ドライブマネージャ226は、アクチュエータに関するエラーを示すアクチュエータ診断データなどのデータを、モニタ216に提供することができる。例において、ドライブマネージャ226は、1つもしくは複数の以前の軌道および/または使用されている現在の軌道を維持する/記憶することができる。
【0085】
いくつかの例において、二次システム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日に出願された特許文献5において議論されるグラウンド除去技法を実施することができ、その全内容は、参照により本明細書に組み込まれる。
【0086】
一次システム106および/または二次システム108のコンポーネントは、ハードウェアおよび/またはソフトウェアコンポーネントを表してよい。ソフトウェアのコンテキストにおいて、コンポーネントのうちの1つまたは複数は、1つまたは複数のプロセッサーによって実行可能な命令を含むことができる。ハードウェアのコンテキストにおいて、コンポーネントのうちの1つまたは複数は、集積回路(たとえば、特定用途向け集積回路(ASIC)、その他)、ゲートアレイ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、その他)などとして実装されてよい。少なくともいくつかの例において、一次システム106と二次システム108とのハードウェアおよびソフトウェアの両方は、異なっていてよい。
【0087】
図3図4、および図5は、1つまたは複数の認可動作を実施するための例示のプロセス300、400、および500を例証する。プロセス300、400、および500は、論理フローグラフとして例証されており、その各動作は、ハードウェア、ソフトウェア、またはその組合せで実装されてよい動作のシーケンスを表す。ソフトウェアのコンテキストにおいて、動作は、1つまたは複数のプロセッサーによって実行されるときに列挙された動作を実施する、1つまたは複数のコンピュータ可読ストレージ媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実施する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることは意図されず、任意の数の説明される動作が、任意の順序で組み合わされて、および/または並行して、プロセスを実装することができる。プロセス300、400、および/または500は、自律車両102、サービスプロバイダ(たとえば、サービスプロバイダのコンピューティングデバイス)、または任意の他のデバイスなどの、任意のデバイスもしくはコンポーネントによって実施されてよい。
【0088】
図3は、車両のための軌道が妥当であるか不当であるかを判定するための例示のプロセス300を例証する。いくつかの例において、プロセス300は、一次軌道について実施されてよい。たとえば、プロセス300は、図2の軌道認可コンポーネント220(1)によって実施されてよい。他の例において、プロセス300は、二次軌道、衝突回避軌道、および/または任意の他の軌道などの他の軌道について実施されてもよい。
【0089】
動作302で、システムは、車両用の軌道がしきい値量(たとえば、現在の時間からのしきい値量の時間)よりも少ない時間前に生成されたかどうかを判定することができる。たとえば、システムは、現在の時間と、(たとえば、軌道に関連付けられたデータから、および/またはデータストアにおけるデータから)軌道が生成された時間とを参照することができる。軌道がしきい値量よりも少ない時間前に生成されたことをシステムが判定した(たとえば、軌道が古くないことを示す)場合、プロセス300は、動作304に進むことができる。あるいは、軌道がしきい値量よりも少ない時間前に生成されたのではないことをシステムが判定した(たとえば、軌道が古いことを示す)場合、プロセス300は、動作306に進むことができる。
【0090】
動作304で、システムは、軌道が車両の現在のまたは以前の体勢と一貫しているかどうかを判定することができる。たとえば、システムは、軌道が、現在の体勢および/または1つもしくは複数の以前の体勢に、しきい値量よりも多い変化(たとえば、向き、ポジション、進行方向、その他におけるしきい値量よりも多い変化)を引き起こすことになるかどうかを判定することができる。いくつかの実例において、軌道は、最後3つの軌道などの多数の以前の軌道と比較されて、以前の軌道の各々からしきい値量よりも多い変化があるかどうかを判定することができる。システムは、軌道を時間にわたって記憶することができ、その結果、1つまたは複数の以前の軌道が参照され得る。軌道が車両の現在のまたは以前の体勢と一貫していることをシステムが判定した場合、プロセス300は、動作308に進むことができる。あるいは、軌道が車両の現在のまたは以前の体勢と一貫していないことをシステムが判定した場合、プロセス300は、動作306に進むことができる。
【0091】
動作308で、システムは、軌道が車両の性能と両立できるかどうかを判定することができる。車両の性能は、自律車両102のハードウェアおよび/もしくはソフトウェアコンポーネント、ならびに/またはそれらのコンポーネントの限界に基づいていてよい。一例において、システムは、最大ステアリング角度、1つのステアリング角度から別のステアリング角度へと変更するまでの時間の量、最大加速度、その他などの、自律車両102の性能を識別することができる。軌道が、最大ステアリング角度を越えた変更を要求する場合、ステアリング角度調整を行うことが必要とされる時間の量よりも素早く変更するステアリングを要求する場合、および/または、最大加速度を上回る加速度を要求する場合、システムは、軌道が車両の性能と両立できないことを判定してよい。軌道が車両の性能と両立できることをシステムが判定した場合、プロセス300は、動作310に進むことができる。あるいは、軌道が車両の性能と両立できないことをシステムが判定した場合、プロセス300は、動作306に進むことができる。
【0092】
動作310で、システムは、軌道が衝突なしかどうか判定することができる。たとえば、システムは、車両軌道に沿って動く車両がオブジェクト軌道に沿って動くオブジェクトと衝突することになるかどうかを判定することができる。そうである場合、軌道は、衝突に関連付けられる。いくつかの例において、システムは、車両がオブジェクトと衝突する確率を判定し、確率が確率しきい値を満たす、または超えるかどうかを判定することができる。確率が確率しきい値を満たす、または超える場合、システムは、車両がオブジェクトと衝突することになることを判定することができる。例において、動作310は、(たとえば、1つまたは複数の衝突についてチェックするために)車両の周りで検出されたオブジェクトごとに実施されてよい。
【0093】
軌道が衝突なしであることをシステムが判定した場合、プロセス300は、動作312に進むことができる。あるいは、軌道が衝突なしではない(たとえば、衝突に関連付けられている)ことをシステムが判定した場合、プロセス300は、動作314に進むことができる。
【0094】
動作314で、システムは、衝突がしきい値量よりも多い時間内に起こることになるかどうかを判定することができる。たとえば、システムは、オブジェクトと衝突する前の、最終瞬間でのブレーキ掛けまでの時間(time to last second braking(TTLSB))を判定することができる。最終瞬間でのブレーキ掛けまでの時間は、車両がオブジェクトとの衝突を回避するために最大減速軌道を開始することが必要であるときの最後の可能な時間であってよい。最終瞬間でのブレーキ掛けまでの時間がこの先において比較的離れている(たとえば、しきい値量の時間よりも多い)場合、車両が軌道を訂正し、最大減速軌道を開始することを回避するための時間があってよい。すなわち、システムは、まだ最大減速軌道を開始する必要がない。例証するために、オブジェクトに対して最終瞬間でのブレーキ掛けまでの時間が10ミリ秒内である場合、システムは、衝突がしきい値量よりも少ない時間内に起こることになることを判定することができる。対照的に、最終瞬間でのブレーキ掛けまでの時間が2秒内である場合、システムは、衝突がしきい値量よりも多い時間内に起こることになることを判定することができる。例において、システムは、車両の周りの各オブジェクト(たとえば、オブジェクトリストにおける各オブジェクト)との潜在的な衝突を評価することができる。
【0095】
衝突がしきい値量よりも多い時間内に起こることになる(たとえば、最終瞬間でのブレーキ掛けまでの時間の前になおも時間がある)ことをシステムが判定した場合、プロセス300は、動作316に進むことができる。あるいは、衝突がしきい値量の時間内に、またはしきい値量よりも少ない時間内に起こることになることをシステムが判定した場合、プロセス300は、動作306に進むことができる。
【0096】
動作306で、システムは、軌道が不当であることを判定することができる。例において、システムは、軌道が不当であることを示すために、軌道の状態を更新することができる。いくつかの実例において、状態は、軌道がなぜ不当であるのか(たとえば、衝突に関連付けられている、衝突が起こることになる時間、車両の現在/以前の体勢と一貫していない、車両の性能と両立できない、その他)を示すことができる。
【0097】
いくつかの例において、プロセス300は、動作306を実施した後に、動作318に進むことができる。動作318で、システムは、軌道が不当であることを示すメッセージを送ることができる。たとえば、システムは、二次システムであってよく、一次システムによって生成された軌道が不当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。例において、メッセージは、軌道がなぜ不当であるのかを示すことができる。
【0098】
動作316で、システムは、軌道が衝突に関連付けられていることを示すメッセージを送ることができる。たとえば、システムは、二次システムであってよく、一次システムによって生成された軌道がこの先において衝突に関連付けられていることを一次システムに通知するために、一次システムにメッセージを送ることができる。例において、メッセージは、衝突までの時間、潜在的な衝突に関連付けられたオブジェクトの広さ、オブジェクトの速度、オブジェクトの位置、または衝突のポイント(たとえば、検出された衝突の位置)のうちの1つもしくは複数を示すことができる。
【0099】
動作312で、システムは、軌道が妥当であることを判定することができる、および/または軌道を記憶することができる。例において、システムは、軌道が妥当であること(たとえば、衝突なし、その他)を示すために、軌道の状態を更新することができる。例において、システムは、二次システムであってよく、軌道が妥当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。
【0100】
一例において、午前11:30:40に、システムは、評価を受けた軌道が使用された場合、車両が5秒内に(午前11:30:45に)オブジェクトと衝突することになることを判定することができる。システムはまた、車両を(たとえば、最大減速軌道を用いて)停止し、オブジェクトとの衝突を回避するために必要とされる時間の量は、(たとえば、車両および/またはオブジェクトの速度に基づいて)3秒であることを判定することができる。システムは、そのような情報を使用して、衝突を回避するために車両が最大減速軌道を開始することを必要とするときの最後の可能な時間(最終瞬間でのブレーキ掛けまでの時間(TTLSB)ともまた呼ばれる)を判定することができる。この例において、最終瞬間でのブレーキ掛けまでの時間は、午前11:30:42である。ここで、システムは、衝突がしきい値量よりも多い時間内に起こることになることを判定し、そのように示すメッセージを送り、軌道は今のところ妥当であると指摘することができる。午前11:30:42(この先における2秒)に、システムは、車両について潜在的な衝突がある(たとえば、軌道または新しい軌道に基づいて、車両はなおもオブジェクトと衝突する進路上にある)かどうかを判定することができる。潜在的な衝突が検出された場合、システムは、衝突を回避するために、最大減速軌道(または別の動き)を開始することができる。
【0101】
図4は、車両のための軌道が妥当であるか不当であるかを判定するための例示のプロセス400を例証する。いくつかの例において、プロセス400は、図2の軌道認可コンポーネント220(2)によって実施されてよい。他の例において、プロセス400は、他のコンポーネントによって、および/または他の軌道について実施されてもよい。
【0102】
動作402で、システムは、車両のための二次軌道がしきい値量よりも少ない時間前に生成されたかどうかを判定することができる。たとえば、システムは、一次システムによって現在出力されている二次軌道が、しきい値量よりも少ない時間前に生成されたかどうかを判定することができる。二次軌道がしきい値量よりも少ない時間前に生成されたことをシステムが判定した場合、プロセス400は、動作404に進むことができる。あるいは、二次軌道がしきい値量よりも少ない時間前に生成されたのではないことをシステムが判定した場合、プロセス400は、動作406に進むことができる。
【0103】
動作404で、システムは、評価するための軌道を選択することができる。一例において、車両を制御するために一次軌道が現在使用されている場合、システムは、動作402で評価に合格した二次軌道(たとえば、しきい値量よりも少ない時間前に生成された二次軌道)を選択することができる。別の例において、使用されている現在の軌道が一次軌道よりも低いレベルを有し(たとえば、二次軌道、衝突回避軌道、または任意の他のより低いレベルの軌道)、一次軌道に制御を解放するための解放信号が受信されている場合、システムは、動作402で評価に合格した二次軌道を選択することができる。さらに別の例において、以前の二次軌道から制御を解放するための解放信号が受信されていない場合、システムは、(たとえば、受信されたいずれの更新された二次軌道も無視して)以前の二次軌道を選択することができる。
【0104】
したがって、動作404で、システムは、以前に記憶された二次軌道を、または一次システムから現在出力される二次軌道を選択することができる。そうするために、システムは、選択された状態(たとえば、一次軌道状態、二次軌道状態、衝突回避軌道状態、その他)を判定し、より高いレベルの軌道に制御を解放するための解放信号が受信されているか否かを判定することができる。たとえば、一次システムによって現在出力されている二次軌道は、別の二次軌道が以前に入手されていない、または解放信号が受信されている場合に、選択されてよい。さらに、一次システムによって以前に出力されている二次軌道は、そのような二次軌道が入手されていて、かつ解放信号が受信されていない場合に、選択されてよい。
【0105】
動作408で、システムは、選択された軌道が車両の現在のまたは以前の体勢と一貫しているかどうかを判定することができる。選択された軌道が車両の現在のまたは以前の体勢と一貫していることをシステムが判定した場合、プロセス400は、動作410に進むことができる。あるいは、軌道が車両の現在のまたは以前の体勢と一貫していないことをシステムが判定した場合、プロセス400は、動作406に進むことができる。
【0106】
動作410で、システムは、選択された軌道が車両の性能と両立できるかどうかを判定することができる。選択された軌道が車両の性能と両立できることをシステムが判定した場合、プロセス400は、動作412に進むことができる。あるいは、選択された軌道が車両の性能と両立できないことをシステムが判定した場合、プロセス400は、動作406に進むことができる。
【0107】
動作412で、システムは、軌道が衝突なしかどうかを判定することができる。軌道が衝突なしであることをシステムが判定した場合、プロセス400は、動作414に進むことができる。あるいは、軌道が衝突なしではない(たとえば、衝突に関連付けられている)ことをシステムが判定した場合、プロセス400は、動作416に進むことができる。
【0108】
動作416で、システムは、衝突がしきい値量よりも多い時間内に起こることになるかどうかを判定することができる。衝突がしきい値量よりも多い時間内に起こることになる(たとえば、最終瞬間でのブレーキ掛けまでの時間の前になおも時間がある)ことをシステムが判定した場合、プロセス400は、動作414に進むことができる。動作414へのルートに沿って進むときのいくつかの例において、図3の動作316に類似して、システムは、軌道が衝突に関連付けられていることを示すメッセージを送ることができる。あるいは、衝突がしきい値量の時間内に、またはしきい値量よりも少ない時間内に起こることになることをシステムが判定した場合、プロセス400は、動作406に進むことができる。
【0109】
動作406で、システムは、選択された軌道が不当であることを判定することができる。例において、システムは、選択された軌道が不当であることを示すために、選択された軌道の状態を更新することができる。いくつかの実例において、状態は、選択された軌道がなぜ不当であるかを示すことができる。
【0110】
いくつかの例において、プロセス400は、動作406を実施した後に、動作418に進むことができる。動作418で、システムは、軌道が不当であることを示すメッセージを送ることができる。たとえば、システムは、二次システムであってよく、一次システムによって生成された軌道が不当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。例において、メッセージは、軌道がなぜ不当であるかを示すことができる。
【0111】
動作414で、システムは、選択された軌道が妥当であることを判定することができる、および/または選択された軌道を記憶することができる。例において、システムは、選択された軌道が妥当であることを示すために、選択された軌道の状態を更新することができる。少なくともいくつかの例において、二次軌道が妥当であることを示すそのような判定はまた、一次システムに送られてもよい。例において、システムは、二次システムであってよく、軌道が妥当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。
【0112】
図5は、車両のための軌道が妥当であるか不当であるかを判定するための例示のプロセス500を例証する。いくつかの例において、プロセス500は、図2の軌道認可コンポーネント220(3)によって実施されてよい。他の例において、プロセス500は、他のコンポーネントによって、および/または他の軌道について実施されてもよい。
【0113】
動作502で、システムは、車両のための二次軌道がしきい値量よりも少ない時間前に生成されたかどうかを判定することができる。たとえば、システムは、一次システムによって現在出力されている二次軌道が、しきい値量よりも少ない時間前に生成されたかどうかを判定することができる。二次軌道がしきい値量よりも少ない時間前に生成されたことをシステムが判定した場合、プロセス500は、動作504に進むことができる。あるいは、二次軌道がしきい値量よりも少ない時間前に生成されたのではないことをシステムが判定した場合、プロセス500は、動作506に進むことができる。
【0114】
動作504で、システムは、評価するための軌道を選択することができる。一例において、車両を制御するために一次軌道が現在使用されている場合、システムは、動作502で評価に合格した二次軌道(たとえば、しきい値量よりも少ない時間前に生成された二次軌道)を選択することができる。別の例において、使用されている現在の軌道が一次軌道よりも低いレベルを有し(たとえば、二次軌道、衝突回避軌道、または任意の他のより低いレベルの軌道)、一次軌道に制御を解放するための解放信号が受信されている場合、システムは、動作502で評価に合格した二次軌道を選択することができる。さらに別の例において、以前の衝突回避軌道から制御を解放するための解放信号が受信されていない場合、システムは、(たとえば、いずれの更新にも配慮しないことによって、および/または衝突回避軌道を更新しないことによって)以前の衝突回避軌道を選択することができる。
【0115】
したがって、動作504で、システムは、以前に記憶された衝突回避軌道、または一次システムから現在出力される二次軌道を選択することができる。そうするために、システムは、選択された状態(たとえば、一次軌道状態、二次軌道状態、衝突回避軌道状態、その他)を判定し、より高いレベルの軌道に制御を解放するための解放信号が受信されているか否かを判定することができる。たとえば、一次システムによって現在出力されている二次軌道は、別の二次軌道が以前に入手されていない、解放信号が受信されている、または追加の更新が無視されるべきであることをシステムが別の状況で判定した場合に(たとえば、追加の二次軌道の完全性をシステムが検証できないことがある場合に)、選択されてよい。さらに、以前の衝突回避軌道は、そのような衝突回避軌道が入手されていて、かつ解放信号が受信されていない場合に、選択されてよい。いくつかの例において、(下で議論されるように、プロセス500によって判定/出力された)衝突回避軌道は、二次軌道であってもよい。他の例において、(プロセス500によって判定/出力された)衝突回避軌道は、修正された二次軌道であってもよい。
【0116】
動作508で、システムは、選択された軌道が車両の現在のまたは以前の体勢と一貫しているかどうかを判定することができる。選択された軌道が車両の現在のまたは以前の体勢と一貫していることをシステムが判定した場合、プロセス500は、動作510に進むことができる。あるいは、軌道が車両の現在のまたは以前の体勢と一貫していないことをシステムが判定した場合、プロセス500は、動作506に進むことができる。
【0117】
動作510で、システムは、選択された軌道が車両の性能と両立できるかどうかを判定することができる。選択された軌道が車両の性能と両立できることをシステムが判定した場合、プロセス500は、動作512に進むことができる。あるいは、選択された軌道が車両の性能と両立できないことをシステムが判定した場合、プロセス500は、動作506に進むことができる。
【0118】
動作512で、システムは、軌道が衝突なしかどうかを判定することができる。軌道が衝突なしであることをシステムが判定した場合、プロセス500は、動作514に進むことができる。あるいは、軌道が衝突なしではない(たとえば、衝突に関連付けられている)ことをシステムが判定した場合、プロセス500は、動作516に進むことができる。
【0119】
動作516で、システムは、衝突がしきい値量よりも多い時間内に起こることになるかどうかを判定することができる。衝突がしきい値量よりも多い時間内に起こることになる(たとえば、最終瞬間でのブレーキ掛けまでの時間の前になおも時間がある)ことをシステムが判定した場合、プロセス500は、動作514に進むことができる。あるいは、衝突がしきい値量の時間内に、またはしきい値量よりも少ない時間内に起こることになることをシステムが判定した場合、プロセス500は、動作506に進むことができる。
【0120】
図5には例証されているものの、いくつかの例において、動作516は実施されなくてもよい。たとえば、軌道が衝突に関連付けられている場合、プロセス500は、動作506に進むことができる。
【0121】
動作514で、システムは、選択された軌道が妥当であることを判定することができる、および/または選択された軌道を記憶することができる。例において、システムは、選択された軌道が妥当であることを示すために、選択された軌道の状態を更新することができる。例において、システムは、二次システムであってよく、軌道が妥当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。
【0122】
動作506で、システムは、反復限度(時に限度と呼ばれる)が満たされているかどうかを判定することができる。反復限度は、システムが受け入れ可能な衝突回避軌道を反復の数以内で判定することができない場合に、衝突回避軌道が不当であると考えられるように使用されてよい。これは、受け入れ可能な衝突回避軌道を見つけるための試みに費やされる時間の量を限定することができる。例において、反復限度は、最終瞬間でのブレーキ掛けまでの時間に基づいていてよい(たとえば、最終瞬間でのブレーキ掛けまでの時間の前に到達され得る反復の数に設定する)。例において、各反復において動作520が実施される。
【0123】
反復限度が満たされることをシステムが判定した場合、プロセス500は、動作518に進むことができる。あるいは、反復限度が満たされていないことをシステムが判定した場合、プロセス500は、動作520に進むことができる。
【0124】
動作520で、システムは、選択された軌道を修正し、動作508などを実施するために戻ることができる。いくつかの例において、システムは、オブジェクトと衝突する前に、車両を停止させるのに必要とされる減速の量を追加することができる。これは、車両の現在の速度、オブジェクトの予測される軌道、および/またはオブジェクトの現在のもしくは予測される速度に基づいていてよい。代替として、または追加として、システムは、ステアリング角度を変更することによって、加速を追加することによって、その他などの別のやり方で、選択された軌道を修正することができる。これもまた、オブジェクトとの衝突を回避することができる。例において、選択された軌道を修正することは、衝突回避軌道を作成してもよい。
【0125】
動作518で、システムは、選択された軌道が不当であることを判定することができる。例において、システムは、選択された軌道が不当であることを示すために、選択された軌道の状態を更新することができる。いくつかの実例において、状態は、選択された軌道がなぜ不当であるかを示すことができる。
【0126】
いくつかの例において、プロセス500は、動作518を実施した後に、動作522に進むことができる。動作522で、システムは、選択された軌道が不当であることを示すメッセージを送ることができる。たとえば、システムは、二次システムであってよく、軌道が不当であることを一次システムに通知するために、一次システムにメッセージを送ることができる。例において、メッセージは、軌道がなぜ不当であるかを示すことができる。
【0127】
例において、動作514で妥当であると判定された軌道は、動作520で適用されるいかなる減速(または他の修正)もなしの二次軌道であってもよい。たとえば、二次軌道が動作508、510、および512でのチェックに合格したことにより、動作504で選択された二次軌道に修正が必要ない場合、二次軌道は、プロセス500によって判定/出力されてよい。他の例において、動作514で妥当であると判定された軌道は、減速(または他の修正)が適用された二次軌道であってもよい。例において、プロセス500に実施することによって判定/出力された(および/またはこの先の参照のために記憶された)どちらのタイプの軌道も、衝突回避軌道と呼ばれてよい。
【0128】
例において、最大量の減速/修正が、選択された軌道に(たとえば、車両の性能を考慮して、かつ動作520を1回または複数回実施することによって)適用され、なおも選択された軌道が衝突に関連付けられている場合、システムは、検出された衝突を無効にし、選択された軌道が妥当であることを動作514で判定することに進むことができる。これは、修正された軌道(最大量の減速/修正が適用された衝突回避軌道)が使用されるのを可能にすることができる。例において、これは、修正された軌道が不当であると指摘すること、および最大減速軌道(たとえば、緊急停止軌道)を開始することよりも有益であることがあり、というのは、最大減速軌道は車両のステアリング角度を固定することがあり、一方で衝突回避軌道は横方向トラッキングを維持する(たとえば、車両を衝突回避軌道に沿って続行させる)ことができるからである。例において、最大量の減速/修正が適用された衝突回避軌道が使用されるように選択された(たとえば、プロセス500から判定/出力された)場合、シートベルトに張力を付与する、エアバッグを展開のために備える、その他のために、信号が車両の1つまたは複数のコンポーネントに送られてよい。
【0129】
図6は、軌道セレクタ222によってなど、二次システムによって実装されてよい、状態602~608の例示の階層600を例証する。たとえば、一次軌道状態602は、車両を制御するために一次軌道が選択されているときにアクティブであってよく、二次軌道状態604は、二次軌道が選択されているときにアクティブであってよく、衝突回避軌道状態606は、衝突回避軌道が選択されているときにアクティブであってよく、最大減速軌道状態608は、最大減速軌道(たとえば、緊急停止軌道)が選択されているときにアクティブであってよい。図6において、階層600は、レベルに従って順序付けられており、最も高いレベルの状態が上部にあり(一次軌道状態602)、最も低いレベルの状態が下部にある(最大減速軌道状態608)。
【0130】
二次システムは、一般に、より高いレベルの状態が不当であると見出されたときに、より低いレベルの状態に移行することができる。二次システムは、下がっていく線によって例証されるように、現在の状態から任意のより低い状態に移行することができる。少なくともいくつかの例において、現在の状態は、下に不当な状態がない最も高い妥当な状態に関連付けられていてよい(たとえば、二次軌道状態604が不当であり、しかも衝突回避軌道状態が不当である場合、そのようなシステムは、最大減速軌道状態608にデフォルト設定することができる)。さらに、例において、階層600を上に移行するために、二次システムは、より低いレベルの状態から制御を解放するための信号を受信するのを待つことができる。たとえば、二次システムが現在衝突回避軌道に基づいて車両を制御している場合、およびしたがって、二次システムが衝突回避軌道状態606において動作している場合、二次システムは、一次軌道状態602戻って制御を解放するための信号が受信されたときに、一次軌道状態602に再び移行することができる(車両は、一次軌道に基づいて制御される)。
【0131】
図7A図7Bは、本明細書で議論される技法を実施するための例示のプロセス700を例証する。プロセス700は、論理フローグラフとして例証されており、その各動作は、ハードウェア、ソフトウェア、またはその組合せで実装されてよい動作のシーケンスを表す。ソフトウェアのコンテキストにおいて、動作は、1つまたは複数のプロセッサーによって実行されるときに列挙された動作を実施する、1つまたは複数のコンピュータ可読ストレージ媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実施する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることは意図されず、任意の数の説明される動作が、任意の順序で組み合わされて、および/または並行して、プロセスを実装することができる。プロセス700は、自律車両102、サービスプロバイダ(たとえば、サービスプロバイダのコンピューティングデバイス)、または任意の他のデバイスなどの、任意のデバイスもしくはコンポーネントによって実施されてよい。
【0132】
例証しやすさのために、プロセス700は、第1のシステム702(時に第1のコンポーネントと呼ばれる)、および第2のシステム704(時に第2のコンポーネントと呼ばれる)によって実施されるものとして議論されることになる。たとえば、第1のシステム702は、図1および図2の一次システム106を含むことができ、一方で第2のシステム704は、図1および図2の二次システム108を含むことができる。
【0133】
図7Aにおいて、動作706で、第1のシステム702は、第1のセンサデータを受信することができる。たとえば、第1のシステム702は、LIDARデータ、RADARデータ、画像データ、深度データ(タイムオブフライト、構造化光、その他)、ホイールエンコーダデータ、IMUデータ、その他のうちの1つまたは複数を、車両のセンサから受信することができる。
【0134】
動作708で、第1のシステム702は、車両のための第1の軌道および車両のための第2の軌道を判定することができる。たとえば、第1のシステム702は、第1のセンサデータを分析して、第1および第2の軌道を生成することができる。例において、第1のシステム702は、ローカライゼーション、認知、予測、および/またはプランニング動作を実施して、第1および第2の軌道を生成することができる。例において、第2の軌道は、第1の軌道のための偶発的軌道であってよい。
【0135】
動作710で、第1のシステム702は、第1および第2の軌道を、第2のシステム704に送ることができる。
【0136】
動作712で、第2のシステム704は、第2のセンサデータを受信することができる。たとえば、第2のシステム704は、LIDARデータ、RADARデータ、画像データ、ホイールエンコーダデータ、IMUデータ、深度データ(タイムオブフライト、構造化光、その他)、その他のうちの1つまたは複数を、車両のセンサから受信することができる。いくつかの例において、第2のセンサは、LIDARデータ、RADARデータ、ホイールエンコーダデータ、IMUデータ、GPSデータ、および/またはタイムオブフライトデータなどの、第1のセンサデータのサブセットを含むことができる。他の例において、第2のセンサデータは、第1のセンサデータと同じであっても、または第1のセンサデータよりも多くのデータを含んでもよい。
【0137】
動作714で、第2のシステム704は、第1および第2の軌道を、第1のシステム702から受信することができる。
【0138】
動作716で、第2のシステム704は、環境におけるオブジェクトを判定する、および/またはオブジェクトについてのオブジェクト軌道を判定することができる。たとえば、第2のシステム704は、第2のセンサデータに基づいて、オブジェクトを検出する、および/またはオブジェクトについてのオブジェクト軌道を予測することができる。
【0139】
動作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つでも衝突がある場合には不当であってよい。少なくともいくつかの例において、衝突検出について選択されたオブジェクトは、最もそば(すなわち、最も近い潜在的な衝突)から最も遠くと順に判定されてよい。
【0140】
動作720で、第2のシステム704は、1つまたは複数の第2の認可動作を、第2の軌道に関して行うことができる。たとえば、第2のシステム704は、1つまたは複数の第2の認可動作を、車両のための第2の軌道およびオブジェクトについてのオブジェクト軌道で実施して、第2の軌道に関連付けられた第2の状態を判定することができる。例において、1つまたは複数の第2の認可動作は、第2の軌道がしきい値量よりも少ない時間前に生成されたかどうかを判定すること、第2の軌道が車両の現在のもしくは以前の体勢と一貫しているかどうかを判定すること、第2の軌道が車両の性能と両立できるかどうかを判定すること、および/または、第2の軌道に沿って動く車両がオブジェクト軌道に沿って動くオブジェクトと衝突することになるかどうかを判定すること(たとえば、第2の衝突検出を実施すること)を含む。例において、第2の状態は、第2の軌道が妥当であること、第2の軌道が不当であること、または、しきい値量よりも多い時間内に起こる推定される衝突のために第2の軌道が不当になることを示す。例において、第2のシステム704は、環境において検出されたオブジェクトごとに第2の軌道を評価することができる。
【0141】
動作722で、第2のシステム704は、車両のための第3の軌道を生成することができる。たとえば、第2のシステム704は、第2の軌道(もしくは、いくつかのケースにおいては第1の軌道)に基づいて、および/または以前に生成された軌道から独立して、第3の軌道を生成することができる。第3の軌道は、第2の軌道に沿った減速もしくは他の修正、および/または任意の他の動きを含むことができる(たとえば、衝突回避軌道)。例において、第2のシステム704は、第2の軌道に、減速/修正を、反復限度に基づいて任意の回数適用する、および/または減速/修正を、適用に利用可能である最大量の減速/修正まで適用することができる。
【0142】
動作724で、第2のシステム704は、1つまたは複数の第3の認可動作を、第3の軌道に関して行うことができる。たとえば、第2のシステム704は、1つまたは複数の第3の認可動作を、車両のための第3の軌道およびオブジェクトについてのオブジェクト軌道で実施して、第3の軌道に関連付けられた第3の状態を判定することができる。例において、1つまたは複数の第3の認可動作は、第3の軌道がしきい値量よりも少ない時間前に生成されたかどうかを判定すること、第3の軌道が車両の現在のもしくは以前の体勢と一貫しているかどうかを判定すること、第3の軌道が車両の性能と両立できるかどうかを判定すること、および/または、第3の軌道に沿って動く車両がオブジェクト軌道に沿って動くオブジェクトと衝突することになるかどうかを判定すること(たとえば、第3の衝突検出を実施すること)を含む。例において、第2の状態は、第3の軌道が妥当であること、第3の軌道が不当であること、または、しきい値量よりも多い時間内に起こる推定される衝突のために第3の軌道が不当になることを示す。
【0143】
例において、1つもしくは複数の第1の認可動作、1つもしくは複数の第2の認可動作、および/または1つもしくは複数の第3の認可動作の任意の数は、同じであってよい。他の例において、認可動作の任意の数は、異なっていてもよい。
【0144】
動作726で、第2のシステム704は、車両の第1のシステム702、第2のシステム704、および/またはコンポーネントをモニタリングすることができる。モニタリングに基づいて、車両の第2のシステム704は、第1のシステム702、第2のシステム704、および/またはコンポーネントに関するエラーを判定することができる。
【0145】
動作728で、第2のシステム704は、車両のための第4の軌道を判定することができる。たとえば、第2のシステム704は、第1の状態、第2の状態、および/または第3の状態に基づいて、第1の軌道、第2の軌道、第3の軌道、または第5の軌道を、第4の軌道として選択することができる(たとえば、最大減速軌道)。
【0146】
例において、第2のシステム704は、第1の軌道が妥当であることを第1の状態が示すときに、第1の軌道を選択することができる。さらに、例において、第2のシステム704は、(i)第1の軌道が不当である(たとえば、しきい値量よりも少ない時間内に推定される衝突に関連付けられている)ことを第1の状態が示し、第2の軌道が妥当であることを第2の状態が示すとき、または(ii)第1のシステム702、第2のシステム704、および/もしくは車両のコンポーネントでエラーが検出され、第2の軌道が妥当であることを第2の状態が示すときに、第2の軌道を選択することができる。
【0147】
その上、例において、第2のシステム704は、(i)第1の軌道が不当であることを第1の状態が示し、第2の軌道が不当であることを第2の状態が示し、第3の軌道が妥当であることを第3の状態が示すとき、(ii)第1のシステム702、第2のシステム704、および/もしくは車両のコンポーネントでエラーが検出され、第2の軌道が不当であることを第2の状態が示し、第3の軌道が妥当であることを第3の状態が示すとき、または(iii)第1の軌道が不当であることを第1の状態が示し、第2の軌道が不当であることを第2の状態が示し、第3の軌道が衝突に関連付けられており、第3の軌道が最大量の減速/修正に関連付けられており、減速/修正を第3の軌道に適用することにおいて反復限度が満たされていないときに、第3の軌道(たとえば、衝突回避軌道)を選択することができる。したがって、いくつかの例において、第2のシステム704は、第3の軌道を生成するために最大量の減速/修正が適用されているかどうか、および/または反復限度が満たされているかどうかを判定することができる。
【0148】
さらに、例において、第2のシステム704は、第1の軌道、第2の軌道、または第3の軌道が上で議論されたように選択されない(たとえば、第1の軌道が不当であり、第2の軌道が不当であり、第3の軌道が不当である)場合に、最大減速軌道(たとえば、緊急停止軌道)を選択することができる。上に記されたように、第3の軌道は、減速/修正を第3の軌道に適用することにおいて反復限度が満たされているために、不当であることがある。
【0149】
図7Bにおいて、動作730で、第2のシステム704は、(たとえば、軌道が不当である場合に)第1のシステム702にメッセージを送ることができる。メッセージは、軌道が不当であること、および/または、軌道に基づいて車両の制御が維持される場合に第2のシステム704が介入することになることを示すことができる。いくつかの例において、メッセージは、(たとえば、第1の軌道が選択された場合に)送られなくてもよい。少なくともいくつかの例において、そのようなメッセージデータは、たとえば、衝突までの時間、衝突のポイント、潜在的に衝突するオブジェクトについての情報(たとえば、オブジェクトの広さ、オブジェクト識別子、オブジェクトポジション、オブジェクト速度のうちのいずれか1つまたは複数)、その他を含むことができる。少なくともいくつかの例において、1つまたは複数のメッセージは、いかなる軌道の妥当性に関わりなく絶えず第1のシステム702に送られて、妥当性、プロセス(認知、ローカライゼーション、確認、その他)からの1つまたは複数の出力、衝突までの時間などを示すことができる。
【0150】
追加として、または代替として、例において、最大減速軌道または(最大量の減速/修正が適用された)衝突回避軌道が動作728で選択された場合、シートベルトに張力を付与する、エアバッグを展開のために備える、その他のために、メッセージまたは信号が、車両の1つもしくは複数のコンポーネントに送られてもよい。
【0151】
動作732で、第1のシステム702は、第2のシステム704からメッセージを受信することができる。例において、第1のシステム702は、メッセージに基づいて、一次軌道などの軌道を調整することができる。
【0152】
動作734で、第2のシステム704は、第4の軌道に基づいて車両を制御することができる。たとえば、第2のシステム704は、第4の軌道に基づいた制御車両を命令する信号を、ドライブマネージャ、システムコントローラ、その他に送ることができる。
【0153】
動作736で、第2のシステム704は、第4の軌道に基づいた車両の制御を維持することができる。たとえば、第2のシステム704は、第2の軌道、第3の軌道、および/または最大減速軌道が入手された状態で第2のシステム704を維持することができ、これは、システムコントローラに信号を送るのを続行することを含むことができる。
【0154】
動作738で、第2のシステム704は、第4の軌道から車両の制御を解放するための信号を受信することができる。例において、信号は、遠隔操作システムまたは別のシステムから受信されてよい。信号は、車両が衝突のないこと、または別の状況で正常な動作に戻ることが明らかであることを示すことができる。たとえば、第4の軌道が潜在的な衝突のために車両を停止に至らせた場合、信号は、車両がもう一度動くためにその安全を示すことができる。
【0155】
動作740で、第1のシステム702は、第6の軌道を生成することができる。第6の軌道は、一次/主要軌道を含むことができる。
【0156】
動作742で、第1のシステム702は、第6の軌道を第2のシステム704に送ることができる。
【0157】
動作744で、第2のシステム704は、第6の軌道を第1のシステム702から受信することができる。
【0158】
動作746で、第2のシステム704は、動作716に戻って第6の軌道を評価し、妥当であれば、第6の軌道に基づいて車両を制御する。
【0159】
図8図10は、本明細書で議論される技法を実施するための例示のプロセス800、900、および1000を例証する。プロセス800、900、および1000は、論理フローグラフとして例証されており、その各動作は、ハードウェア、ソフトウェア、またはその組合せで実装されてよい動作のシーケンスを表す。ソフトウェアのコンテキストにおいて、動作は、1つまたは複数のプロセッサーによって実行されるときに列挙された動作を実施する、1つまたは複数のコンピュータ可読ストレージ媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実施する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることは意図されず、任意の数の説明される動作が、任意の順序で組み合わされて、および/または並行して、プロセスを実装することができる。プロセス800、900、および1000は、自律車両102、サービスプロバイダ(たとえば、サービスプロバイダのコンピューティングデバイス)、または任意の他のデバイスなどの、任意のデバイスもしくはコンポーネントによって実施されてよい。
【0160】
図8は、一次システムおよび/または二次システムのさまざまなコンポーネントによって実施されてよい、例示のプロセス800を例証する。例証しやすさのために、プロセス800は、図1および/または図2のコンテキストにおいて例証される。しかしながら、プロセス800は、他の環境において実施されてもよい。
【0161】
例において、一次システム106は、第1の技法を実装して、第1のオブジェクト検出、第1のオブジェクトセグメンテーション、第1のオブジェクト分類、または第1のオブジェクトトラッキングのうちの少なくとも1つを実装する。その一方、二次システム108は、第2の技法を実装して、第2のオブジェクト検出、第2のオブジェクトセグメンテーション、第2のオブジェクト分類、または第2のオブジェクトトラッキングのうちの少なくとも1つを実装する。第1および第2の技法は、類似していても、同じでも、または異なっていてもよい。
【0162】
動作802で、一次システム106は、1つまたは複数のセンサからセンサデータを受信することができる。たとえば、一次システム106は、自律車両102のセンサ104からセンサデータ114を受信することができる。
【0163】
動作804で、一次システム106は、車両のための軌道を生成することができる。たとえば、一次システム106は、センサデータ114に少なくとも部分的に基づいて、一次軌道116および/または二次軌道118を生成することができる。
【0164】
動作806で、一次システム106は、軌道を出力することができる。たとえば、一次システム106は、一次軌道116および/または二次軌道118を、軌道マネージャ214などの二次システム108に送ることができる。
【0165】
808で、軌道マネージャ214は、軌道を受信することができる。たとえば、軌道マネージャ214は、一次軌道116および/または二次軌道108を、一次システム106から受信することができる。
【0166】
動作810で、ローカライザ210は、センサデータの少なくとも一部を受信することができる。たとえば、ローカライザ210は、センサ104から、センサデータ120の少なくとも一部を受信することができる。ローカライザ210は、軌道マネージャ214、パーシーバ212、ドライブマネージャ226、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0167】
動作812で、ローカライザ210は、車両の体勢を判定することができる。たとえば、ローカライザ210は、センサデータ120に少なくとも部分的に基づいて、自律車両102の体勢を判定することができる。上のように、そのような体勢は、(一次システム106から受信され得る)マップに対して、または自律車両102の1つもしくは複数の以前の体勢に対してのいずれかであってよい。
【0168】
動作814で、ローカライザ210は、車両の体勢を示すデータを出力することができる。たとえば、ローカライザ210は、自律車両102の体勢を示すデータを、パーシーバ212、軌道マネージャ214、および/またはドライブマネージャ226に送ることができる。
【0169】
動作816で、ドライブマネージャ226は、ローカライザ210から、車両の体勢を示すデータを受信することができる。ドライブマネージャ226は、ローカライザ210、軌道マネージャ214、モニタ216、ドライブシステム、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0170】
動作818で、軌道マネージャ214は、ローカライザ210から、車両の体勢を示すデータを受信することができる。
【0171】
動作820で、パーシーバ212は、ローカライザ210から、車両の体勢を示すデータを受信することができる。パーシーバ212は、ローカライザ210、軌道マネージャ214、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0172】
動作822で、パーシーバ212は、センサデータの少なくとも一部を受信することができる。たとえば、パーシーバ212は、センサ104から、センサデータ120の少なくとも一部を受信することができる。少なくともいくつかの例において、822で受信されるセンサデータの一部は、810で受信されたその一部とは異なっていてもよい。
【0173】
動作824で、パーシーバ212は、環境におけるオブジェクト、オブジェクトについてのトラック、および/またはオブジェクトについてのオブジェクト軌道を判定することができる。たとえば、パーシーバ212は、センサデータ120に少なくとも部分的に基づいて、オブジェクト126の存在、オブジェクト126の特性、オブジェクト126についてのトラック、および/またはオブジェクト126についてのオブジェクト軌道を判定することができる。
【0174】
動作826で、パーシーバ212は、オブジェクトの特性、オブジェクトについてのトラック、および/またはオブジェクト軌道を示すデータを出力することができる。たとえば、パーシーバ212は、オブジェクト126の特性(たとえば、広さ、速度、加速度、ポジション、向き、その他)、オブジェクト126についてのトラック、および/またはオブジェクト126についてのオブジェクト軌道を示すデータを、軌道マネージャ214に送ることができる。
【0175】
動作828で、軌道マネージャ214は、オブジェクトの特性、オブジェクトについてのトラック、および/またはオブジェクト軌道を示すデータを、パーシーバ212から受信することができる。
【0176】
動作830で、軌道マネージャ214は、センサデータの少なくとも一部を受信することができる。たとえば、軌道マネージャ214は、センサ104から、センサデータ120の少なくとも一部を受信することができる。いくつかの例において、830で受信される一部は、810または812で受信されたどちらの一部とも異なっていてもよい。軌道マネージャ214は、ローカライザ210、パーシーバ212、モニタ216、ドライブマネージャ226、一次システム106、および/または任意の他のコンポーネントもしくはシステムに通信可能に接続されていてよい。
【0177】
動作832で、モニタ216は、車両の一次システム106および/または任意の他のコンポーネントをモニタリングすることができる。たとえば、モニタ216は、一次システム106/二次システム108のコンポーネントからの信号、ドライブマネージャ226(またはアクチュエータ(ブレーキ、ステアリング、その他))からの信号、ハードウェアまたはソフトウェア障害を示すサービスプロバイダ(たとえば、リモートデバイス)からの信号(たとえば、診断情報)、一次システム106/二次システム108に電力を提供することに関連付けられた自律車両102のバッテリまたは他のコンポーネントからの信号、その他を受信することができる。モニタ216は、一次システム106、軌道マネージャ214、ドライブマネージャ226、および/または自律車両102などの車両の任意のコンポーネントに通信可能に接続されていてよい。
【0178】
動作834で、モニタ216は、エラーが起きたことを判定することができる。たとえば、モニタ216は、一次システム106、二次システム108、および/もしくは別のコンポーネントについてのハードウェアならびに/またはソフトウェア障害(たとえば、センサ104、アクチュエータ、その他の障害)がある場合に、一次システム106、二次システム108、および/または別のコンポーネントへの電力が途絶された場合に、一次システム106、二次システム108、および/または別のコンポーネントからしばらくの間(たとえば、一次システム106が問題を被っていることを示す時間の期間よりも長く)信号が受信されていない場合などに、エラーが起こっていることを判定することができる。
【0179】
動作836で、モニタ216は、エラーを示す信号を出力することができる。たとえば、モニタ216は、エラーが起こっていることを示す信号を、軌道マネージャ214および/またはドライブマネージャ226に送ることができる。
【0180】
動作838で、軌道マネージャ214は、モニタ216から、信号を受信することができる。
【0181】
動作840で、ドライブマネージャ226は、モニタ216から、信号を受信することができる。例において、エラーが重大である(たとえば、予め決められたタイプのエラー、二次システム108に関するエラー、コンポーネントに関するエラーの組合せ、その他)場合、ドライブマネージャ226は、最大減速軌道または別の軌道に少なくとも部分的に基づいて、自律車両102を制御することができる。
【0182】
動作842で、一次システム106とモニタ216とは、データを通信することができる。たとえば、モニタ216は、一次システム106におけるエラーに関するデータを受信することができる。そのようなデータは、エラーが起きたことを判定するために、動作834で使用されてよい。別の例において、モニタ216は、モニタ216がエラーを検出したことを示すデータを、一次システム106に送ることができる。
【0183】
図9は、一次システムおよび/または二次システムのさまざまなコンポーネントによって実施されてよい、例示のプロセス900を例証する。例証しやすさのために、プロセス900は、図1および/または図2のコンテキストにおいて例証される。しかしながら、プロセス900は、他の環境において実施されてもよい。例において、プロセス900は、プロセス800が実施された後に実施されてよい。他の例において、プロセス900は、他の時間に実施されてもよい。
【0184】
動作902で、衝突検出コンポーネント218(1)は、第1の衝突検出を実施することができる。たとえば、衝突検出コンポーネント218(1)は、一次軌道116を受信し、一次軌道116が1つまたは複数のオブジェクトとの衝突に関連付けられているかどうかを判定することができる。判定は、ローカライザ210、パーシーバ212、および/または(いくつかのケースにおいて)一次システム106のコンポーネントから受信されたデータに基づいていてよい。衝突検出コンポーネント218(1)は、一次システム106、軌道認可コンポーネント220(1)、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0185】
動作904で、衝突検出コンポーネント218(1)は、第1の衝突検出に関するデータを出力することができる。たとえば、衝突検出コンポーネント218(1)は、衝突が検出であるかどうか、衝突の確率、その他を示すデータを、軌道認可コンポーネント220(1)に出力することができる。
【0186】
動作906で、軌道認可コンポーネント220(1)は、衝突検出コンポーネント218(1)から、データを受信することができる。
【0187】
動作908で、衝突検出コンポーネント218(2)は、第2の衝突検出を実施することができる。たとえば、衝突検出コンポーネント218(2)は、二次軌道118を受信し、二次軌道118が1つまたは複数のオブジェクトとの衝突に関連付けられているかどうかを判定することができる。判定は、ローカライザ210、パーシーバ212、および/または(いくつかのケースにおいて)一次システム106のコンポーネントから受信されたデータに基づいていてよい。衝突検出コンポーネント218(2)は、一次システム106、軌道認可コンポーネント220(2)、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0188】
動作910で、衝突検出コンポーネント218(2)は、第2の衝突検出に関するデータを出力することができる。たとえば、衝突検出コンポーネント218(2)は、衝突が検出であるかどうか、衝突の確率、その他を示すデータを、軌道認可コンポーネント220(2)および/または軌道認可コンポーネント220(3)に出力することができる。
【0189】
動作912で、軌道認可コンポーネント220(2)は、衝突検出コンポーネント218(2)から、データを受信することができる。
【0190】
動作914で、軌道認可コンポーネント220(3)は、衝突検出コンポーネント218(2)から、データを受信することができる。
【0191】
動作916で、軌道認可コンポーネント220(1)は、1つまたは複数の第1の認可動作を実施することができる。たとえば、軌道認可コンポーネント220(1)は、一次軌道116で1つまたは複数の第1の認可動作を実施して、一次軌道116に関連付けられた第1の状態を判定することができる。1つまたは複数の第1の認可動作は、ローカライザ210、パーシーバ212、衝突検出コンポーネント218(1)からのデータ(たとえば、動作906で受信されたデータ)などに基づいていてよい。1つまたは複数の認可動作は、一次軌道116が現在の時間からのしきい値量よりも少ない時間に生成されたかどうかを判定すること、一次軌道116が自律車両102の現在のもしくは以前の体勢と一貫しているかどうかを判定すること、一次軌道116が自律車両102の性能と両立できるかどうかを判定すること、および/または、一次軌道116に沿って動く自律車両102がオブジェクト軌道に沿って動くオブジェクトと衝突することになるかどうかを判定することを含むことができる。いくつかの例において、1つまたは複数の認可動作は、それらが上で説明された順序などの特定の順序で実施されてよい。ここで、認可動作は、任意のポイントで一次軌道116が不当であると判定された場合には実施されなくてもよい。たとえば、一次軌道116がしきい値量よりも多い時間前に生成されていることが判定された場合、一次軌道116は、不当であると判定されてよく、他の認可動作は実施されない。
【0192】
軌道認可コンポーネント220(1)は、衝突検出コンポーネント218(1)、軌道セレクタ222、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0193】
動作918で、軌道認可コンポーネント220(1)は、第1の状態を出力することができる。たとえば、軌道認可コンポーネント220(1)は、一次軌道116が妥当であるか不当であるか、(それが不当であれば)不当である理由、その他を示すデータを、軌道セレクタ222に送ることができる。例において、第1の状態は、一次軌道116が衝突に関連付けられているかどうかを示すことができる。
【0194】
動作920で、軌道認可コンポーネント220(2)は、1つまたは複数の第2の認可動作を実施することができる。たとえば、軌道認可コンポーネント220(2)は、二次軌道118で1つまたは複数の第2の認可動作を実施して、二次軌道118に関連付けられた第2の状態を判定することができる。1つまたは複数の第2の認可動作は、ローカライザ210、パーシーバ212、衝突検出コンポーネント218(2)からのデータ(たとえば、動作912で受信されたデータ)などに基づいていてよい。例において、1つまたは複数の第2の認可動作は、1つまたは複数の第1の認可動作と類似していても、または同じであってもよい。
【0195】
軌道認可コンポーネント220(2)は、衝突検出コンポーネント218(2)、軌道セレクタ222、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0196】
動作922で、軌道認可コンポーネント220(2)は、第2の状態を出力することができる。たとえば、軌道認可コンポーネント220(2)は、二次軌道118が妥当であるか不当であるか、(それが不当であれば)不当である理由、その他を示すデータを、軌道セレクタ222に送ることができる。例において、第2の状態は、二次軌道118が衝突に関連付けられているかどうかを示すことができる。
【0197】
動作924で、軌道認可コンポーネント220(3)は、1つまたは複数の第3の認可動作を実施することができる。たとえば、軌道認可コンポーネント220(3)は、二次軌道118、および/または軌道認可コンポーネント220(3)によって生成された三次軌道(たとえば、衝突回避軌道)で、1つもしくは複数の第3の認可動作を実施して、二次軌道118または三次軌道に関連付けられた第3の状態を判定することができる。例において、二次軌道118が不当である場合、軌道認可コンポーネント220(3)は、三次軌道を生成し、三次軌道で1つまたは複数の第3の認可動作を実施することができる。三次軌道は、一次軌道116または二次軌道118に対する修正を含むことができる。1つまたは複数の第3の認可動作は、ローカライザ210、パーシーバ212、衝突検出コンポーネント218(2)からのデータ(たとえば、動作914で受信されたデータ)などに基づいていてよい。例において、1つまたは複数の第3の認可動作は、1つまたは複数の第1の認可動作と類似していても、または同じであってもよい。
【0198】
軌道認可コンポーネント220(3)は、衝突検出コンポーネント218(2)、軌道セレクタ222、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0199】
動作926で、軌道認可コンポーネント220(3)は、第3の状態を出力することができる。たとえば、軌道認可コンポーネント220(3)は、二次軌道118または三次軌道が妥当であるか不当であるか、(それが不当であれば)不当である理由、および/または修正された軌道(三次軌道)それ自体、その他を示すデータを、軌道セレクタ222に送ることができる。例において、第3の状態は、二次軌道118または三次軌道が衝突に関連付けられているかどうかを示すことができる。
【0200】
動作928で、軌道セレクタ222は、軌道についての1つまたは複数の状態を受信することができる。たとえば、軌道セレクタ222は、第1の状態を示す軌道認可コンポーネント220(1)からのデータ、第2の状態を示す軌道認可コンポーネント220(2)からのデータ、および/または第3の状態を示す軌道認可コンポーネント220(3)からのデータを受信することができる。
【0201】
軌道セレクタ222は、軌道認可コンポーネント220(1)、軌道認可コンポーネント220(2)、軌道認可コンポーネント220(3)、リリーサ224、モニタ216、ドライブマネージャ226、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0202】
動作930で、軌道セレクタ222は、出力軌道を判定することができる。たとえば、判定は、一次軌道116についての第1の状態、二次軌道118についての第2の状態、二次軌道118もしくは三次軌道についての第3の状態、モニタ216からの信号、および/またはリリーサ224からの信号に少なくとも部分的に基づいていてよい。
【0203】
例において、軌道セレクタ222は、一次軌道116が妥当であるときには一次軌道116を選択することができる。軌道セレクタ222は、(i)一次軌道116が不当であり、第2の軌道が妥当であるとき、または(ii)モニタ216によってエラーが報告され、二次軌道118が妥当であるときに、第2の軌道118を選択することができる。軌道セレクタ222は、(i)一次軌道116が不当であり、二次軌道118が不当であり、三次軌道が妥当であるとき、(ii)モニタ216によってエラーが報告され、二次軌道118が不当であり、三次軌道が妥当であるとき、または(iii)一次軌道116が不当であり、二次軌道118が不当であり、三次軌道が衝突に関連付けられており、三次軌道が最大量の減速/修正に関連付けられており、減速/修正を三次軌道に適用することにおいて反復限度が満たされていないときに、三次軌道(たとえば、衝突回避軌道)を選択することができる。さらに、軌道セレクタ222は、一次軌道116、二次軌道118、または三次軌道が選択されない場合に、最大減速軌道(たとえば、緊急停止軌道)を選択することができる。
【0204】
図10は、一次システムおよび/または二次システムのさまざまなコンポーネントによって実施されてよい、例示のプロセス1000を例証する。例証しやすさのために、プロセス1000は、図1および/または図2のコンテキストにおいて例証される。しかしながら、プロセス1000は、他の環境において実施されてもよい。例において、プロセス1000は、プロセス900が実施された後に実施されてよい。他の例において、プロセス1000は、他の時間に実施されてもよい。
【0205】
動作1002で、軌道セレクタ222は、出力軌道を出力することができる。たとえば、軌道セレクタ222は、図9の動作930で判定された出力軌道を出力することができる。出力軌道は、ドライブマネージャ226に送られてよい。
【0206】
動作1004で、ドライブマネージャ226は、軌道セレクタ222から、出力軌道を受信することができる。ドライブマネージャ226は、軌道セレクタ222、モニタ216、ローカライザ210、および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0207】
動作1006で、ドライブマネージャ226は、車両を制御することができる。たとえば、ドライブマネージャ226は、出力軌道に少なくとも部分的に基づいて、自律車両102を制御するためのコマンド/命令を生成することができる。ドライブマネージャ226は、自律車両102のステアリング、推進、ブレーキング、安全、エミッタ、通信、および/または他のシステムを制御することができる。例において、ドライブマネージャ226は、出力軌道を実装する前に自律車両102を制御するために使用されている軌道などの、自律車両102のための以前の軌道に基づいて、自律車両102を制御するためのコマンド/命令を生成することができる。ここで図10には例証されていないが、いくつかの例において、システムコントローラが、ドライブマネージャ226によって提供されたコマンドを受信して、1つまたは複数の制御システム(ステアリング、推進、ブレーキング、その他)を作動させることができる。
【0208】
いくつかの例において、ドライブマネージャ226は、ローカライザ210から、自律車両102の体勢を受信する。体勢が不当である(たとえば、ローカライザ210の体勢バリデータがそのように示す)場合、ドライブマネージャ226は、最大減速軌道(たとえば、緊急停止軌道)に基づいて、自律車両102を制御することができる。
【0209】
動作1008で、軌道認可コンポーネント220は、不当な軌道または衝突に関するメッセージを出力することができる。たとえば、軌道が、不当である、または(たとえば、この先において)衝突に関連付けられている場合、軌道認可コンポーネント220のうちのいずれか1つが、そのような軌道に関するメッセージを、一次システム106に送ることができる。メッセージは、衝突までの時間、オブジェクトの広さ、オブジェクトの速度、オブジェクトの位置、衝突のポイント、不当である理由、その他を示すことができる。
【0210】
動作1010で、一次システム106は、軌道認可コンポーネント220のうちのいずれか1つから、メッセージを受信することができる。
【0211】
動作1012で、軌道セレクタ222は、出力軌道を維持することができる。たとえば、エラー、推定される衝突、その他のために、二次軌道118、三次軌道、または最大減速軌道がドライブマネージャ226に出力された場合、軌道セレクタ222は、出力軌道に基づいて自律車両102の制御を維持する(たとえば、より低いレベルの状態で制御を維持する)ことができる。少なくともいくつかの例において、これは、いずれの更新された軌道または新たに提供された軌道にも配慮しないことに対応し、対して他の例において、これは、制御のために使用される軌道のレベルを維持することに対応する。非限定的な例として、二次システム108は、更新された一次および二次軌道を受け入れ、更新された一次軌道が妥当であるにもかかわらず、更新された二次軌道を使用することができる。
【0212】
動作1014で、リリーサ224は、出力軌道から車両の制御を解放することを判定することができる。一例において、リモートシステムが、現在の状態から制御を解放するために二次システム108に信号を提供することができ、それに応答して、リリーサ224は、現在の状態から制御を解放することを判定することができる。別の例において、自律車両102のコンポーネントが、自律車両102が正常な動作を再開すること(または、異なる状態に移行すること)が明らかであることを判定するための処理を実施し、現在の状態から制御を解放するために、リリーサ224に信号を送ることができる。リリーサ224は、軌道セレクタ222および/または任意の他のコンポーネントに通信可能に接続されていてよい。
【0213】
動作1016で、リリーサ224は、出力軌道から車両の制御を解放するための信号を出力することができる。たとえば、動作1014での判定に少なくとも部分的に基づいて、リリーサ224は、より低いレベルの軌道/状態(たとえば、一次軌道116よりも低い)から、より高いレベルの軌道/状態に制御を解放するための信号を、軌道セレクタ222に送ることができる。
【0214】
1018で、軌道セレクタ222は、リリーサ224から、信号を受信することができる。
【0215】
動作1020で、軌道セレクタ222は、ドライブマネージャ226に軌道を出力することができる。たとえば、動作1018で受信された信号に少なくとも部分的に基づいて、軌道セレクタ222は、一次システム106によって現在提供されている一次軌道(または、いくつかのケースにおいて別の軌道)を、ドライブマネージャ226に送ることができる。
【0216】
動作1022で、ドライブマネージャ226は、軌道セレクタ222から、軌道を受信することができる。
【0217】
動作1024で、ドライブマネージャ226は、車両を制御することができる。たとえば、ドライブマネージャ226は、軌道に少なくとも部分的に基づいて、自律車両102を制御するためのコマンド/命令を生成することができる。
【0218】
図11は、本明細書で説明される技法を実装するための例示のシステム1100のブロック図を描写する。いくつかの実例において、システム1100は、図1における自律車両102に対応してよい車両1102を含むことができる。いくつかの実例において、車両1102は、いかなる時でも運転手(または乗員)が車両を制御することを予期されることなしに、全旅程についてすべての安全重視機能を実施することが可能な車両を説明する、米国運輸省道路交通安全局によって発行されたレベル5分類に従って動作するように構成された自律車両であってよい。しかしながら、他の例において、自律車両1102は、任意の他のレベルもしくは分類を有する、全面的または部分的な自律車両であってもよい。その上、いくつかの実例において、本明細書で説明される技法は、非自律車両によっても同様に使用可能であってよい。
【0219】
車両1102は、第1のシステム1104(たとえば、第1のコンピューティングデバイス)、第2のシステム1106(たとえば、第2のコンピューティングデバイス)、1つもしくは複数のセンサ1108、1つもしくは複数のエミッタ1110、1つもしくは複数の通信接続1112、1つもしくは複数のドライブシステム1114、および/または(たとえば、データを交換するために、および/または電力を提供するために、車両1102を物理的に接続するための)直接接続1116を含むことができる。
【0220】
いくつかの実例において、センサ1108は、光検出および測距(LIDAR)センサ、RADARセンサ、超音波トランスデューサ、ソナーセンサ、位置センサ(たとえば、全地球測位システム(GPS)、コンパス、その他)、慣性センサ(たとえば、慣性測定ユニット(IMU)、加速度計、磁気計、ジャイロスコープ、その他)、カメラ(たとえば、赤-緑-青(RGB)、赤外線(IR)、輝度、深度、タイムオブフライトなど)、マイクロフォン、ホイールエンコーダ、環境センサ(たとえば、温度センサ、湿度センサ、光センサ、圧力センサ、その他)その他を含むことができる。センサ1108は、これらの、または他のタイプのセンサの各々の多数の実例を含むことができる。たとえば、LIDARセンサは、車両1102の隅、前部、後部、側部、および/または上部に位置付けられた個々のLIDARセンサを含むことができる。別の例として、カメラは、車両1102の外側および/または内側のあちらこちらのさまざまな位置に配置された多数のカメラを含むことができる。センサ1108は、第1のシステム1104および/または第2のシステム1106に、入力を提供することができる。
【0221】
車両1102はまた、上で説明されたように、光および/または音を発するためのエミッタ1110を含むことができる。この例におけるエミッタ1110は、車両1102の搭乗者と通信するための内側のオーディオおよびビジュアルエミッタを含むことができる。限定ではなく例として、内側のエミッタは、スピーカ、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(たとえば、振動および/または力フィードバック)、機械的アクチュエータ(たとえば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナー、その他)などを含むことができる。この例におけるエミッタ1110はまた、外側のエミッタを含むことができる。限定ではなく例として、この例における外側のエミッタは、移動の方向を合図するためのライト、または車両アクションの他のインジケータ(たとえば、インジケータライト、サイン、ライトアレイ、その他)、および歩行者もしくは他の近傍の車両と可聴的に通信するための1つもしくは複数のオーディオエミッタ(たとえば、スピーカ、スピーカアレイ、ホーン、その他)を含み、そのうちの1つまたは複数は、音響ビームステアリング技術を含む。
【0222】
車両1102はまた、車両1102と、1つもしくは複数の他のローカルまたはリモートのコンピューティングデバイスとの間の通信を容易にする、通信接続1112を含むことができる。たとえば、通信接続1112は、車両1102上の他のローカルコンピューティングデバイスおよび/またはドライブシステム1114との通信を促進することができる。また、通信接続1112は、追加として、または代替として、車両1102が、他の近傍のコンピューティングデバイス(たとえば、他の近傍の車両、交通信号、その他)と通信するのを可能にすることができる。通信接続1112は、追加として、または代替として、車両1102が、コンピューティングデバイス1118と通信するのを容易にすることができる。
【0223】
通信接続1112は、第1のシステム1104および/または第2のシステム1106を、別のコンピューティングデバイスまたはネットワーク1120などのネットワークに接続するための、物理的および/または論理的インターフェースを含むことができる。たとえば、通信接続1112は、IEEE800.11標準によって定義された周波数などを介したWi-Fiベースの通信、Bluetooth(登録商標)などの短距離ワイヤレス周波数、セルラ通信(たとえば、2G、3G、4G、4G LTE、5G、その他)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースを取ることを容易にする、任意の好適なワイヤードもしくはワイヤレス通信のプロトコルを容易にすることができる。いくつかの実例において、第1のシステム1104、第2のシステム1106、および/またはセンサ1108は、ネットワーク1120を介して、特定の頻度で、予め決められた時間の期間の経過後に、準実時間、その他に、コンピューティングデバイス1118にセンサデータを送ることができる。
【0224】
いくつかの実例において、車両1102は、ドライブシステム1114を含むことができる。いくつかの実例において、車両1102は、単一のドライブシステム1114を有することができる。いくつかの実例において、ドライブシステム1114は、ドライブシステム1114および/または車両1102の周囲の条件を検出するための1つもしくは複数のセンサを含むことができる。限定ではなく例として、ドライブシステム1114のセンサは、駆動モジュールのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(たとえば、ロータリエンコーダ)、駆動モジュールの向きおよび加速を測定するための慣性センサ(たとえば、慣性測定ユニット、加速度計、ジャイロスコープ、磁気計、その他)、カメラまたは他の画像センサ、駆動モジュールの周囲におけるオブジェクトを音響的に検出するための超音波センサ、LIDARセンサ、RADARセンサ、その他を含むことができる。ホイールエンコーダなどのいくつかのセンサは、ドライブシステム1114に独自であってよい。いくつかのケースにおいて、ドライブシステム1114上のセンサは、車両1102の対応するシステム(たとえば、センサ1108)と重なる、または対応するシステムを補足することができる。
【0225】
ドライブシステム1114は、高電圧バッテリ、車両を推進させるためのモータ、他の車両システムによる使用のためにバッテリからの直流電流を交流電流にコンバートするためのインバータ、ステアリングモータおよびステアリングラック(電気式であってもよい)を含むステアリングシステム、液圧式または電気式アクチュエータを含むブレーキングシステム、液圧式および/または空気圧式コンポーネントを含むサスペンションシステム、トラクションの喪失を軽減し、制御を維持するためにブレーキ力を分散するための安定制御システム、HVACシステム、照明(たとえば、車両の外側の周囲を照らすためのヘッド/テールライトなどの照明)、ならびに1つまたは複数の他のシステム(たとえば、冷却システム、安全システム、車載充電システム、DC/DCコンバータ、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどの他の電気式コンポーネント、その他)を含む、車両システムの多くを含むことができる。追加として、ドライブシステム1114は、センサからのデータを受信し、処理することができ、さまざまな車両システムの動作を制御するための、ドライブシステムコントローラを含むことができる。いくつかの実例において、ドライブシステムコントローラは、1つまたは複数のプロセッサーと、1つまたは複数のプロセッサーと通信可能に接続されたメモリとを含むことができる。メモリは、ドライブシステム1114のさまざまな機能性を実施するための1つまたは複数のモジュールを記憶することができる。さらに、ドライブシステム1114はまた、1つもしくは複数の他のローカルまたはリモートのコンピューティングデバイスとのそれぞれのドライブシステムによる通信を容易にする、1つまたは複数の通信接続を含むことができる。
【0226】
第1のシステム1104は、1つまたは複数のプロセッサー1122と、1つまたは複数のプロセッサー1122と通信可能に接続されたメモリ1124とを含むことができる。第2のシステム1106は、1つまたは複数のプロセッサー1126と、1つまたは複数のプロセッサー1126と通信可能に接続されたメモリ1128とを含むことができる。コンピューティングデバイス1118はまた、プロセッサー1130、および/またはプロセッサー1130と通信可能に接続されたメモリ1132を含むことができる。プロセッサー1122、1126、および/または1130は、本明細書で説明されたようにデータ処理し、動作を実施するための命令を実行することが可能な任意の好適なプロセッサーであってよい。限定ではなく例として、プロセッサー1122、1126、および/または1130は、1つもしくは複数の中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、集積回路(たとえば、特定用途向け集積回路(ASIC)、その他)、ゲートアレイ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、その他)、ならびに/または、電子データを処理して、その電子データをレジスタおよび/もしくはメモリに記憶され得る他の電子データに変換する、任意の他のデバイスもしくはデバイスの一部を含むことができる。
【0227】
メモリ1124、1128、および/または1132は、非一時的なコンピュータ可読媒体の例であってよい。メモリ1124、1128、および/または1132は、本明細書で説明された方法、およびさまざまなシステムに帰される機能を実装するための、オペレーティングシステムおよび1つもしくは複数のソフトウェアアプリケーション、命令、プログラム、ならびに/またはデータを記憶することができる。さまざまな実装において、メモリは、静的ランダムアクセスメモリ(SRAM)、同期動的RAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を記憶することが可能な任意の他のタイプのメモリなどの、任意の好適なメモリ技術を使用して実装されてよい。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、多くの他の論理的、プログラム的、および物理的なコンポーネントを含むことができ、それらのうちの添付の図に示されたものは、本明細書での議論に関係付けられた単なる例にすぎない。
【0228】
例において、第1のシステム1104のメモリ1124は、1つまたは複数のコンポーネント1134を記憶することができる。たとえば、第1のシステム1104は、図1および図2の一次システム106に対応し、ローカリゼーションコンポーネント202、認知コンポーネント204、予測コンポーネント206、および/またはプランニングコンポーネント208を記憶することができる。プロセッサー1122は、1つまたは複数のコンポーネント1134を実行して、第1のシステム1104に、本明細書で議論されたさまざまなアクションを実施させることができる。
【0229】
例において、第2のシステム1106のメモリ1128は、1つまたは複数のコンポーネント1136を記憶することができる。たとえば、第2のシステム1106は、図1および図2の二次システム108に対応し、ローカライザ210、パーシーバ212、軌道マネージャ214、モニタ216、および/またはドライブマネージャ226を記憶することができる。プロセッサー1126は、1つまたは複数のコンポーネント1136を実行して、第2のシステム1106に、本明細書で議論されたさまざまなアクションを実施させることができる。
【0230】
例証目的のために、図11にはメモリ1124および/またはメモリ1128に常駐しているように描写されているが、コンポーネント1134および/またはコンポーネント1136は、追加として、または代替として、(たとえば、リモートに記憶された)コンピューティングデバイス1118にアクセス可能であってもよいことが企図される。たとえば、メモリ1132は、コンポーネント1134の少なくとも一部に対応する第1のシステムコンポーネント1138を記憶する、および/またはコンポーネント1136の少なくとも一部に対応する第2のシステムコンポーネント1140を記憶することができる。追加として、または代替として、メモリ1132は、1つまたは複数のマップ1142を記憶することができる。
【0231】
少なくとも一例において、第1のシステム1104および/または第2のシステム1106は、車両1102のステアリング、推進、ブレーキング、安全、エミッタ、通信、および他のシステムを制御するように構成されてよい、1つまたは複数のシステムコントローラ1144を含むことができる。例において、システムコントローラ1144は、メモリ1124および/またはメモリ1128に記憶されてよい。システムコントローラ1144は、ドライブシステム1114の対応するシステム、および/もしくは車両1102の他のコンポーネントと通信する、ならびに/またはそれらを制御することができる。いくつかの実例において、システムコントローラ1144は、第1のシステム1104によって生成された軌道、第2のシステム1106によって生成された軌道、および/または第2のシステム1106によって選択された軌道を、ドライブシステム1114によって使用可能な命令に変えて、車両1102に軌道を横断させることができる。いくつかの例において、1つまたは複数のシステムコントローラ1144は、第1のシステム1104および/または第2のシステム1106とは別個のハードウェアコンポーネント上に位置付けられてもよい。
【0232】
いくつかの実例において、第1のシステム1104、第2のシステム1106、システムコントローラ1144、および/またはそれらの任意のコンポーネントは、上で説明されたようにセンサデータを処理することができ、それらのそれぞれの出力を、ネットワーク1120上で、(たとえば、特定の頻度で、予め決められた時間の期間の経過後に、準実時間、その他に)コンピューティングデバイス1118に送ることができる。
【0233】
第1のシステム1104および/または第2のシステム1106は、環境内でナビゲートするために車両1102によって使用され得る、1つまたは複数のマップ1146を記憶することができる。この議論の目的のために、マップは、限定はされないが、トポロジ(交差点など)、通り、山岳地帯、道路、地形、および環境一般などの環境についての情報を提供することが可能な、2次元、3次元、またはN次元でモデル化された任意の数のデータ特徴であってよい。いくつかの実例において、マップは、テクスチャ情報(たとえば、色情報(たとえば、RGB色情報、Lab色情報、HSV/HSL色情報)など)、輝度情報(たとえば、LIDAR情報、RADAR情報、など)、空間情報(たとえば、メッシュ上に投影された画像データ、個々の「サーフェル(surfel)」(たとえば、個々の色および/または輝度に関連付けられた多角形))、反射性情報(たとえば、鏡面反射性情報、再帰反射性情報、BRDF情報、BSSRDF情報、など)を含むことができるが、限定はされない。一例において、マップは、環境の3次元メッシュを含むことができる。いくつかの実例において、マップは、マップの個々のタイルが環境の離散的な一部を表すようなタイル形式で記憶されてもよく、必要に応じて、作業メモリの中にロードされてもよい。いくつかの実例において、マップは、占有グリッド、ポイントマップ、ランドマークマップ、および/または体勢の制約グラフを含むことができる。いくつかの実例において、車両1102は、マップ1146に少なくとも部分的に基づいて制御されてよい。すなわち、マップ1146は、車両1102の位置を判定する、環境におけるオブジェクトを識別する、ならびに/または環境内でナビゲートするためのルートおよび/もしくは軌道を生成するために、第1のシステム1104のローカリゼーションコンポーネント(および/または、いくつかの例において第2のシステム1106のローカリゼーションコンポーネント)と併せて使用されてよい。
【0234】
いくつかの実例において、本明細書で議論されたコンポーネントのいくつかまたはすべての態様は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含むことができる。たとえば、メモリ1124におけるコンポーネント1134、メモリ1128におけるコンポーネント1136、および/またはメモリ1132におけるコンポーネントは、ニューラルネットワークとして実装されてもよい。
【0235】
図11は分散システムとして例証されているが、代替例において、車両1102のコンポーネントは、コンピューティングデバイス1118に関連付けられていてもよいし、および/またはコンピューティングデバイス1118のコンポーネントが、車両1102に関連付けられていてもよいことが留意されるべきである。すなわち、車両1102は、コンピューティングデバイス1118に関連付けられた機能のうちの1つまたは複数を実施することができ、その逆もまた同様である。
【0236】
いくつかの例において、1つもしくは複数のコンポーネント1136(および/または1つもしくは複数のコンポーネント1134)は、車両1102のモーションの方向、車両1102の速度、車両1102の加速度、車両1102のヨーレート、ヨー加速度、および/または車両1102のステアリング角度を判定するための、推定および確認コンポーネントを含む。例において、そのような情報は、システムコントローラ1144、ドライブシステム1114、その他からの信号に基づいていてよい。推定および確認コンポーネントは、そのような情報のうちの1つもしくは複数を示すデータを生成し、データを、第2のシステム1106および/または第1のシステム1104のさまざまなコンポーネントに提供することができる。
【0237】
さらに、いくつかの例において、1つもしくは複数のコンポーネント1136(および/または1つもしくは複数のコンポーネント1134)は、センサデータをフィルタにかけて削減された量のデータを生成するための、データ処理コンポーネントを含むことができる。一例において、データ処理コンポーネントは、センサデータから、特定の範囲の外にあるデータを除去することができる。これは、車両1102の速度または加速度、オブジェクトのトラック、オブジェクトの速度または加速度、その他に基づいていてよい(たとえば、比較的ゆっくり移動するときにはかなりの量のデータを除去し、比較的速く移動するときにはより少ないデータを除去する)。例証するために、車両1102が時間につき15マイル(24.14キロメートル)で移動しており、自律車両102に向かって移動している車両がない場合、データ処理コンポーネントは、200フィート(60.96メートル)隔てたデータを除去することができ、それは、軌道を評価する、または潜在的な差し迫った衝突を識別するために、このデータは必要とされないと思われるからである。別の例において、データ処理コンポーネントは、車両1102が位置付けられている環境のタイプに基づいて、センサデータからデータを除去することができる。たとえば、車両1102が多数の車両、道路、道路交差点、その他を伴う都市エリアにある場合、データ処理コンポーネントは、センサデータからデータを除去しなくてもよい(または限定された量を除去する)。しかしながら、車両1102が比較的少ない車両、道路、道路交差点、その他を伴う農村エリアまたは都市環境の過疎地域にある場合、データ処理コンポーネントは、センサデータからより多くのデータを除去することができる。例において、センサデータの量を削減することは、削減されたセンサデータを処理することができる第2のシステム1106が、より迅速に動作する(たとえば、より少ないデータを処理し、削減された計算時間をもたらす)ことを可能にすることができる。
【0238】
例示的な箇条
A.第1のシステムに通信可能に接続された第2のシステムを含む例示の車両システムであって、第2のシステムは、1つまたは複数のプロセッサー、およびメモリを含み、第2のシステムは、センサデータの一部を受信し、センサデータの一部に少なくとも部分的に基づいて、環境におけるオブジェクト、オブジェクトについてのトラック、またはオブジェクトについてのオブジェクト軌道のうちの少なくとも1つを判定し、オブジェクトの特性、オブジェクトについてのトラック、またはオブジェクト軌道のうちの少なくとも1つを示すデータを出力するためのパーシーバと、パーシーバに通信可能に接続された軌道マネージャであって、センサデータに少なくとも部分的に基づいて第1のシステムによって生成された、車両のための軌道を、第1のシステムから受信し、パーシーバからデータを受信し、データに少なくとも部分的に基づいて衝突検出を実施して、軌道に関連付けられた状態を判定し、軌道に関連付けられた状態に少なくとも部分的に基づいて出力軌道を判定し、出力軌道に少なくとも部分的に基づいて自律車両を制御するための軌道マネージャと、を含む、例示の車両システム。
【0239】
B.センサデータの一部は、センサデータの第1の一部であり、データは、第1のデータを含み、第2のシステムは、パーシーバおよび軌道マネージャに通信可能に接続されたローカライザをさらに含み、ローカライザは、センサデータの第2の一部を受信し、センサデータの第2の一部に少なくとも部分的に基づいて車両の体勢を判定し、自律車両の体勢を示す第2のデータを、パーシーバまたは軌道マネージャのうちの少なくとも1つに出力するように構成され、軌道マネージャは、ローカリゼーションコンポーネントから第2のデータを受信し、第2のデータに少なくとも部分的に基づいて衝突検出を実施するように構成される、例示Aに記載の車両システム。
【0240】
C.第2のシステムは、第1のシステムまたは自律車両のコンポーネントのうちの少なくとも1つに通信可能に接続されたモニタであって、第1のシステムまたは自律車両のコンポーネントのうちの少なくとも1つをモニタリングし、モニタリングに少なくとも部分的に基づいてエラーが起こったことを判定し、エラーが起こったことを示す信号を出力するためのモニタをさらに含み、軌道マネージャは、モニタから信号を受信し、モニタからの信号に少なくとも部分的に基づいて出力軌道を判定するように構成される、例示AまたはBに記載の車両システム。
【0241】
D.第2のシステムは、第1のシステムまたは自律車両のコンポーネントのうちの少なくとも1つに通信可能に接続されたモニタであって、第1のシステムまたは自律車両のコンポーネントのうちの少なくとも1つをモニタリングし、モニタリングに少なくとも部分的に基づいてエラーが起こったことを判定し、エラーが起こったことを示す信号を出力するためのモニタと、軌道マネージャに通信可能に接続されたドライブマネージャであって、モニタから信号を受信し、最大減速軌道に少なくとも部分的に基づいて車両を制御するためのドライブマネージャと、をさらに含む、例示A乃至Cのいずれか1つに記載の車両システム。
【0242】
E.軌道は、第1の軌道を含み、第1の軌道に関連付けられた状態は、第1の軌道が衝突に関連付けられることを示し、出力軌道は、第1の軌道の修正、または最大減速レートに関連付けられた第2の軌道のうちの少なくとも1つを含む、例示A乃至Dのいずれか1つに記載の車両システム。
【0243】
F.第1のシステムに通信可能に接続された第2のシステムを含む例示の車両システムであって、第2のシステムは、1つまたは複数のプロセッサー、およびメモリを含み、第2のシステムは、センサデータの少なくとも一部を受信し、オブジェクトの特性、オブジェクトについてのトラック、またはオブジェクトについてのオブジェクト軌道のうちの少なくとも1つを示すデータを出力するためのパーシーバと、車両のための第1の軌道および車両のための第2の軌道を、第1のシステムから受信し、パーシーバからデータを受信し、第1の軌道で1つまたは複数の第1の認可動作を実施して、第1の軌道に関連付けられた第1の状態を判定し、第2の軌道で1つまたは複数の第2の認可動作を実施して、第2の軌道に関連付けられた第2の状態を判定し、第1の状態および第2の状態に少なくとも部分的に基づいて、第1の軌道、第2の軌道、または軌道マネージャによって生成された第3の軌道のうちの少なくとも1つを含む、車両のための出力軌道を出力するように構成された軌道マネージャと、を含む、例示の車両システム。
【0244】
G.1つまたは複数の追加のプロセッサーおよび追加のメモリを含む第1のシステムをさらに含み、追加のメモリは、1つまたは複数の追加のプロセッサーによって実行されるときに、第1のシステムに、センサからセンサデータを受信させ、センサデータに少なくとも部分的に基づいて、オブジェクト検出、オブジェクトセグメンテーション、オブジェクト分類、またはオブジェクトについてのオブジェクトトラッキングのうちの少なくとも1つを実施させ、センサデータに少なくとも部分的に基づいて、第1の軌道および第2の軌道を生成させる命令を含む、例示Fに記載の車両システム。
【0245】
H.1つまたは複数の第1の認可動作は、第1の軌道が現在の時間からのしきい値量よりも少ない時間に生成されたかどうかを判定すること、第1の軌道が車両の現在のもしくは以前の体勢と一貫しているかどうかを判定すること、第1の軌道が車両の性能と両立できるかどうかを判定すること、または第1の軌道に沿って動く車両が衝突に関連付けられるかどうかを判定することのうちの少なくとも1つを含む、例示FまたはGに記載の車両システム。
【0246】
I.第1の状態は、第1の軌道が衝突に関連付けられることを示し、出力軌道は、第2の軌道または第3の軌道のうちの少なくとも1つを含み、第2のシステムは、出力軌道に少なくとも部分的に基づいて車両の制御を維持するための軌道セレクタをさらに含む、例示F乃至Hのいずれか1つに記載の車両システム。
【0247】
J.第2のシステムは、軌道セレクタに通信可能に接続されたリリーサであって、出力軌道から車両の制御を解放することを判定し、出力軌道から車両の制御を解放するために軌道セレクタに信号を出力するためのリリーサをさらに含み、軌道セレクタは、リリーサから信号を受信し、車両を制御するために、第1の軌道、第2の軌道、または第1のシステムから受信された第4の軌道を出力するようにさらに構成される、例示F乃至Iのいずれか1つに記載の車両システム。
【0248】
K.第2のシステムは、車両の第1のシステムまたはコンポーネントのうちの少なくとも1つをモニタリングし、モニタリングに少なくとも部分的に基づいてエラーが起こったことを判定し、エラーが起こったことを示す信号を出力するように構成されたモニタをさらに含み、軌道マネージャは、モニタから信号を受信し、信号に少なくとも部分的に基づいて、第2の軌道または第3の軌道のうちの少なくとも1つを含む出力軌道を判定するように構成される、例示F乃至Jのいずれか1つに記載の車両システム。
【0249】
L.第1の状態は、第1の軌道が推定される衝突に関連付けられることを示し、軌道マネージャは、第1の状態に少なくとも部分的に基づいて、衝突までの時間、オブジェクトの広さ、オブジェクトの速度、オブジェクト位置、または衝突のポイントのうちの1つまたは複数の示すメッセージを第1のシステムに送り、第1のシステムから第4の軌道を受信し、第4の軌道で1つまたは複数の第1の認可動作を実施し、第4の軌道を出力して車両を制御するように構成される、例示F乃至Kのいずれか1つに記載の車両システム。
【0250】
M.第1のシステムは、センサデータに少なくとも部分的に基づいて、第1のオブジェクト検出、第1のオブジェクトセグメンテーション、第1のオブジェクト分類、または第1のオブジェクトトラッキングのうちの少なくとも1つを行うための第1の技法を実装し、第2のシステムは、センサデータの一部に少なくとも部分的に基づいて、第2のオブジェクト検出、第2のオブジェクトセグメンテーション、第2のオブジェクト分類、または第2のオブジェクトトラッキングのうちの少なくとも1つを行うための第2の技法を実装する、例示F乃至Lのいずれか1つに記載の車両システム。
【0251】
N.第2のシステムは、軌道マネージャから出力軌道を受信し、出力軌道に少なくとも部分的に基づいて車両を制御するように構成されたドライブマネージャをさらに含む、例示F乃至Mのいずれか1つに記載の車両システム。
【0252】
О.データは、第1のデータを含み、第2のシステムは、センサデータの少なくとも一部を受信し、センサデータの少なくとも一部に少なくとも部分的に基づいて車両の体勢を判定し、車両の体勢を示す第2のデータをパーシーバまたは軌道管理コンポーネントのうちの少なくとも1つに出力するためのローカライザをさらに含む、例示F乃至Nのいずれか1つに記載の車両システム。
【0253】
P.1つまたは複数のプロセッサーを含む第2のコンポーネントのパーシーバによって、センサデータの少なくとも一部に基づいて、環境におけるオブジェクトの特性、オブジェクトについてのトラック、またはオブジェクトについてのオブジェクト軌道のうちの少なくとも1つを含む認知データ(perception data)を判定するステップと、第2のコンポーネントの軌道マネージャによって、第1のコンポーネントから車両のための第1の軌道を受信するステップであって、第1のコンポーネントは、センサデータに少なくとも部分的に基づいて第1の軌道を生成する、受信するステップと、軌道マネージャによって、認知データに少なくとも部分的に基づいて、第1の軌道が衝突に関連付けられるかどうかを示す状態を判定するステップと、軌道マネージャによって、状態に少なくとも部分的に基づいて車両のための出力軌道を出力するステップであって、出力軌道は、第1の軌道、または軌道マネージャによって生成された第2の軌道のうちの少なくとも1つを含む、出力するステップとを含む、例示の方法。
【0254】
Q.第2のコンポーネントのモニタによって、車両の第1のコンポーネントまたは追加のコンポーネントのうちの少なくとも1つをモニタリングするステップと、モニタによって、モニタリングに少なくとも部分的に基づいてエラーが起こったことを判定するステップと、モニタによって、エラーが起こったことを示す信号を出力するステップと、軌道マネージャによって、モニタから信号を受信するステップと、軌道マネージャによって、モニタからの信号に少なくとも部分的に基づいて出力軌道を判定するステップとをさらに含む、例示Pに記載の方法。
【0255】
R.状態は、第1の軌道が衝突に関連付けられることを示し、出力軌道は、第2の軌道を含み、方法は、軌道マネージャによって、出力軌道に少なくとも部分的に基づいて車両の制御を維持するステップと、第2のコンポーネントのリリーサによって、出力軌道から車両の制御を解放することを判定するステップと、リリーサによって、出力軌道から車両の制御を解放するための信号を出力するステップとをさらに含む、例示PまたはQに記載の方法。
【0256】
S.状態は、第1の軌道が衝突に関連付けられることを示し、出力軌道は、第1の軌道に対する減速または修正のうちの少なくとも1つに関連付けられる第2の軌道を含む、例示P乃至Rのいずれか1つに記載の方法。
【0257】
T.状態は、第1の軌道がオブジェクトとの推定される衝突に関連付けられることを示し、方法は、軌道マネージャによって、状態に少なくとも部分的に基づいて、衝突までの時間、オブジェクトの広さ、オブジェクトの速度、オブジェクトの位置、または衝突のポイントのうちの1つまたは複数を示すメッセージを第1のコンポーネントに送るステップと、軌道マネージャによって、メッセージに少なくとも部分的に基づいて、第1のシステムから車両のための第3の軌道を受信するステップと、第3の軌道が衝突または追加の衝突に関連付けられるかどうかを示す追加の状態を判定するステップと、追加の状態に少なくとも部分的に基づいて、車両を制御するための第3の軌道を出力するステップとをさらに含む、例示P乃至Sのいずれか1つに記載の方法。
【0258】
上で説明された例示の条項は特定の実装に関して説明されているが、本文書のコンテキストにおいて、例示の条項の内容は、方法、デバイス、システム、コンピュータ可読媒体、および/または別の実装を介して実装され得ることが理解されるべきである。
【0259】
結び
本明細書で説明された技法のうちの1つまたは複数の例が説明されてきたが、それらのさまざまな改変、追加、置換、および等価なものは、本明細書で説明された技法の範囲内に含まれる。
【0260】
例の説明において、その一部を形成し、特許請求される主題の具体的な例を例証として示す、添付の図面への参照が行われる。他の例が使用されてもよいこと、および構造的な変更などの変更または改変が行われてもよいことを理解されたい。そのような例、変更、または改変は、意図された特許請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書におけるステップは一定の順序で提示され得るが、いくつかのケースにおいて、順序付けは、説明されたシステムおよび方法の機能を変更することなく、一定の入力が、異なる時間にまたは異なる順序で提供されるように変更されてもよい。開示された手順は、異なる順序でもまた実行され得る。追加として、本明細書におけるさまざまな計算は、開示された順序で実施される必要はなく、計算の代替的な順序付けを使用する他の例もたやすく実装され得る。再順序付けされることに加えて、計算はまた、同じ結果を伴う部分計算に分解されてもよい。
【0261】
本主題は構造的特徴および/または方法論的措置に特有な言語で説明されてきたが、付属の特許請求の範囲において定義される本主題は、必ずしも説明された特有な特徴または措置には限定されないことを理解されたい。むしろ、特有な特徴または措置は、特許請求の範囲を実装する例示の形態として開示されている。
【0262】
本明細書で説明されたコンポーネントは、任意のタイプのコンピュータ可読媒体に記憶されてよく、かつソフトウェアおよび/またはハードウェアで実装されてよい命令を表す。上で説明された方法およびプロセスのすべては、1つもしくは複数のコンピュータまたはプロセッサー、ハードウェア、またはそのなんらかの組合せによって実行されるソフトウェアコードモジュールおよび/またはコンピュータ実行可能命令において具現化され、それらを介して全面的に自動化されてもよい。あるいは、方法のうちのいくつかまたはすべてが、特殊化されたコンピュータハードウェアで具現化されてもよい。
【0263】
とりわけ、「できる(may)」「し得る(could)」、「してもよい(may)または(might)」などの条件付き言語は、別段そうでないと記載されない限り、一定の例が、一定の特徴、要素、および/またはステップを含み、一方で他の例はそれらを含まないことを提示することが、コンテキスト内で理解される。したがって、そのような条件付き言語は、一定の特徴、要素、および/もしくはステップが、1つもしくは複数の例にとにかく要求されることを、または、ユーザ入力もしくはプロンプトがあってもなくても、一定の特徴、要素、および/もしくはステップが含まれるかどうか、もしくは任意の特定の例において実施されることになるかどうかを決定するための論理を、1つもしくは複数の例が必然的に含むことを、一般に含意するようには意図されていない。
【0264】
語句「X、Y、またはZのうちの少なくとも1つ」などの接続的言語は、別段そうでないと記載されない限り、項目、用語、その他が、X、Y、もしくはZ、または各要素の倍数を含むその任意の組合せの、いずれかであってもよいことを提示すると理解されることになる。単数形として明示的に説明されない限り、「a」は、単数形および複数形を意味する。
【0265】
本明細書で説明されたフロー図における、および/または添付された図に描写された、いずれのルーチンの説明、要素、またはブロックも、具体的な論理機能またはルーチンにおける要素を実装するための1つもしくは複数のコンピュータ実行可能命令を含むモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されるべきである。代替実装は、本明細書で説明された例の範囲内に含まれ、その中の要素または機能は、当業者によって理解されるように関与される機能性に応じて、削除されてもよいし、または実質的に同期して、逆の順序で、追加の動作と共に、もしくは動作を省くことを含む、示された、もしくは議論されたものから外れた順序で実行されてもよい。
【0266】
多くの変形および修正が、上で説明された例に対して行われてもよく、その要素は、とりわけ受け入れ可能な例として理解されることになる。すべてのそのような修正および変形は、本明細書において本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることが意図される。
図1
図2
図3
図4
図5
図6
図7A
図7B
図8
図9
図10
図11