自律走行車又は半自律走行車等の車両が車両交通ネットワークの一部を横断する場合がある。車両交通ネットワークは、建物等の1つ以上の通行不能領域、駐車領域(例えば、駐車場、駐車スペース等)等の1つ以上の部分的通行可能領域、道路(車線、中央分離帯、交差点等を含む)の1つ以上の通行可能領域、又はこれらの組み合わせを含み得る。
車両は、1つ以上のセンサを含み得る。車両交通ネットワークを横断することは、車両の動作環境又はその一部に対応するデータ等のセンサデータを生成又は捕捉するセンサを含み得る。例えば、センサデータは、1つ以上の外部オブジェクト(又は単にオブジェクト)に対応する情報を含み得る。
外部オブジェクトは静的オブジェクトであり得る。静的オブジェクトとは、静止していて、数秒以内に移動することが予想されないオブジェクトである。静的オブジェクトの例としては、運転者のいない自転車、コールドビークル、空車、道路標識、壁、建物、穴等が含まれる。
外部オブジェクトは、停止したオブジェクトであってもよい。停止したオブジェクトとは、静止しているが、いつでも移動し得るオブジェクトである。停止オブジェクトの例としては、信号機で停止している車両、及び乗員(例えば、運転者)がいる道路側の車両等が含まれる。実装によっては、停止したオブジェクトは静的オブジェクトとみなされる。
外部オブジェクトは、歩行者、遠隔車両、自動二輪車、自転車等の動的(すなわち、移動)オブジェクトであってもよい。動的オブジェクトは、(車両に向かって)対向しているものであり、又は車両と同じ方向に移動していてもよい。動的オブジェクトは、車両に対して縦方向又は横方向に移動し得る。静的オブジェクトは動的オブジェクトになる可能性があり、その逆もしかりである。
一般に、車両交通ネットワークを横断する(例えば、その中を走行する)ことは、ロボット的な動作とみなされ得る。すなわち、特定の状況(例えば、交通状況又は道路状況)に対する車両の予測可能な応答は予想することが可能である。例えば、交通状況の観測者は、次の数秒間における車両の応答がどのようなものであるかを予想することが可能である。すなわち、例えば、走行環境(すなわち、車両交通ネットワーク、道路)が動的であっても、道路状態に対する車両(すなわち、人に運転される、遠隔操作されるもの等)による応答は予測/予想することが可能である。
(複数の)応答は、車両交通ネットワークを横断することが道路の規則(例えば、左折する車両は対向する交通に譲らなければならず、車両は車線の標示の間を走行しなければならない)、社会的慣習(例えば、停止標識において、右側の運転者が譲られるべきである)、及び物理的制約(例えば、静的オブジェクトが車両の進行方向に瞬間的に横方向に移動することはない)により支配されるので予測可能である。予測可能な応答のさらなる例が、図3に関して示されている。
本開示による実装は、静的オブジェクトの存在を検出し(例えば、感知、観測等)、車両交通ネットワークの他のユーザ(例えば、道路ユーザ、動的オブジェクト)の軌道を予想(すなわち、予測)することによって、自律走行車の軌道を決定する。本開示による実装は、自律走行車の円滑な制御(例えば、停止、待機、加速、減速、合流等)及び自律走行車の社会的に許容可能な挙動(例えば、操作)に寄与する動的オブジェクト(例えば、他の道路ユーザ)の軌道を正確かつ効率的に計画することが可能である。
以下にさらに説明するように、本開示による軌道プランナの実装は、例えば、HD地図データ、遠隔操作データ、及び他の入力データを受信すること;起点位置から目的地位置までの経路の速度プロファイルを決定するために、入力データを縦方向に縫い合わせ(例えば、融合、接続等)する(例えば、起点位置から目的地位置までの経路の異なる区間に沿ってAVを走行し得る速度を指定する速度プロファイル);及び離散的な時点において(例えば、数ミリ秒ごとに)、AVのセンサデータに基づいて観測される静的及び動的オブジェクトに関連する制約を軌道プランナに処理させることにより、次の時間ウィンドウ(例えば、6秒の先読み時間)のためのAVの円滑な軌道を生成することによって、自律走行車(AV)のための円滑な軌道を起点位置から目的地位置まで生成し得る。
軌道プランナは、車両交通ネットワークの他のユーザ(本明細書では実世界オブジェクトとも呼ばれる)の予想される(すなわち、予測される)軌道をモジュール(例えば、世界モデルモジュール)から受信し得る。検出された各動的オブジェクト(例えば、車両、歩行者、自転車等の実世界オブジェクト)について、世界モデルモジュールは、実世界オブジェクトの考えられる意図に関する1つ以上の仮説を維持(例えば、予測及び更新)し得る。意図(例えば、仮説)の例には、停車、右折、左折、直進、通過、及び駐車が含まれる。尤度は各仮説と関連付けられる。尤度はセンサデータから受信した観測に基づいて更新される。
受信したセンサデータ(本明細書では、測定値又はセンサ観測とも呼ばれる)に基づいて実世界オブジェクトが検出される。世界モデルモジュールは、実世界オブジェクトに関連付けられた各仮説(例えば、意図)の状態を維持する(経時的に関連付け及び更新する)。状態は以下でさらに説明される。例えば、状態は、仮説の意図を考慮した関連する実世界オブジェクトの予測位置を含む。
世界モデルモジュールは、連続的に観測(例えば、センサデータ)を受信する。世界モデルモジュールは、特定の観測について、その観測が関連付けられている実世界オブジェクトを決定する。関連する実世界オブジェクトが発見されると、実世界オブジェクトに関連する各仮説の状態が観測に基づいて更新される。すなわち、例えば、実世界(例えば、物理世界)から受信した観測に基づいて、実世界オブジェクトの予測位置を更新する。
センサ観測はノイズを含むことがあることに留意されたい。このノイズは、感知能力及び/又はセンサ設定の制限による可能性がある。例えば、センサは、限られた視野を有し、限られた感知範囲を有し、誤検出及び/又は検出漏れの読み取り値を提供し、大きな不確かさを有する観測を提供し、及び/又は誤ったオブジェクト分類を提供し得る。また、自律走行車によって使用される異なるセンサタイプは、異なる、部分的な、及び/又は矛盾する観測(例えば、分類、位置等)を提供し得る。そのため、不確かさのレベルは、世界モデルモジュールによって受信されるセンサデータに関連付けられる。
自律走行車は、複数のタイプのセンサ(例えば、カメラ、LiDAR、レーダ等)からのデータを使用(例えば、融合)して、自律走行車の外部にある実世界オブジェクトの速度、姿勢(位置及び方位)、軌道、クラス等の少なくとも1つを推定し得る。本開示の実施によれば、世界モデルモジュールは、複数のセンサからの情報を融合し、センサ特性を考慮することによって、実世界オブジェクト(すなわち、道路ユーザ)の現在の状態の最良の推定を提供し得る。
要約すると、他の道路ユーザの意図がAVに知られていないので、AVは、道路ユーザが何をするかについて複数の可能な意図(仮説)を予測して追跡し、それによってAV(例えば、AVの軌道プランナ)は、道路ユーザの予測された意図に基づいて滑らかな軌道を計画し得る。センサデータからの観測を考慮して、世界モデルモジュールは、本開示の実装に従って、観測されたオブジェクト(すなわち、実世界オブジェクト)の状態を追跡して推定し、複数の仮説を用いて、確率的な方法で実世界オブジェクトの将来の状態を予測する。すなわち、世界モデルモジュールによって、実世界におけるオブジェクトの追跡を改善することが可能になる。世界モデルモジュールは、実世界オブジェクトの可能な軌道に関する複数の仮説を予測する。すなわち、例えば、世界モデルモジュールは、後述するように、オブジェクトがどこに向かっているか、オブジェクトが停止しているか、オブジェクトが駐車しているか等を予測し得る。
以下の説明から明らかなように、世界モデルモジュールは、(1)連続的な(例えば、オブジェクトの姿勢、速度、ジオメトリ等)及び離散的なオブジェクト状態(例えば、オブジェクトの分類、意図等)を追跡すること、(2)関連する確率(例えば、尤度)を用いて複数のオブジェクト状態仮説(例えば、意図)を推定して追跡すること、(3)オブジェクトの状態、地図及び/又は環境情報に応じて、抽象オブジェクト意図を生成して追跡すること、(4)可変長の時間にわたって、複数の仮説を用いた将来のオブジェクト状態を予測すること、及び(5)各種センサ(例えば、LiDAR、レーダ、カメラ等)からのデータをリアルタイムに処理して融合することを含む利点を提供し得る。本発明の教示は、広範囲のオブジェクト及び道路ユーザ(自動車、自転車、歩行者を含むが、これらに限定されない)に適用し得る。
本明細書では自律走行車を参照して記載されているが、本明細書に記載の方法及び装置は、自律的又は半自律的動作が可能な任意の車両で実装されてもよい。車両交通ネットワークを参照して記載されているが、本明細書に記載の方法及び装置は、車両によって走行可能な任意の領域で自律走行車が動作することを含んでもよい。
本開示による実装は、自律走行車(すなわち、記録自律走行車又は記録AV)からの記録データ(すなわち、走行データの記録)を使用して、自律走行をシミュレーションすることもできる。自律走行をシミュレーションすることは、シミュレーションAVと相互作用する他の仮想道路ユーザ(例えば、歩行者、自転車運転者、ペット、他の車両等)を含む仮想3次元世界において、シミュレーションAVを使用して走行することを意味し得る。
自律走行のシミュレーションは、例えば、軌道計画、意思決定、オブジェクト検出及び分類、及び/又は自律走行に関連する他の側面等のテストの重要な部分であり得る。例えば、シミュレーションを使用して、改善された意思決定アルゴリズムをテスト(例えば、検証、不具合の発見等)してから、実世界の道路を走行し、実世界オブジェクト(すなわち、他の道路ユーザ)に遭遇する実自律走行車において改善された意思決定アルゴリズムを使用し得る。理解されるように、シミュレーションは、実世界のテストよりも実行コストが低く、より重要なことには、例えば、シミュレーションでは誤った意思決定アルゴリズムによって負傷が生じない。
シミュレーションテストは、シミュレーションされた世界オブジェクト又は記録された路上走行に基づいて行うことができる。
シミュレーションされた世界オブジェクトシナリオでは、シミュレーションで使用される他の道路ユーザは、コンピュータで生成されたオブジェクトにし得る。そのため、シミュレーションは完全知覚で実行されると言われている。完全知覚とは、他の道路ユーザの各々の位置、分類、速度、姿勢、より多くの、より少ない、又は他の側面(例えば、特性、特徴、測定値等)を不確実性なしに知ることができることを意味する。すなわち、完全知覚は、互いの道路ユーザに関するグラウンドトゥルースを知ることができることを意味する。
しかし、上述したように、センサデータはノイズを含むことがある。少なくとも部分的にはノイズに起因して、記録AV(すなわち、実世界をナビゲーションするAV)は不完全な知覚を有すると言われている。意思決定アルゴリズムは、不完全な知覚に対して望ましくはロバストである必要があるため、(例えば、コンピュータで生成された他の道路ユーザを使用することによる)完全な知覚を使用する意思決定アルゴリズムのテスト(例えば、シミュレーション)は、不十分である。何故なら、例えば、一組の結果(例えば、最適な決定)が完全な知覚の下でシミュレーションAVによって生成され得るが、同じ意思決定アルゴリズムが、記録AVによって(例えば、実世界において)不完全な知覚の下で使用される場合、最適ではない決定(例えば、衝突につながる決定)が生成され得るからである。
記録された路上走行シナリオでは、AV(すなわち、記録AV)を使用して実世界を走り回る。走行は、シミュレーション中に記録及び再生され得る。走行の記録は、あるサンプリングレートで、記録走行データを記録することを含み得る。例えば、サンプリングレートは、毎秒10記録データ点とし得る。しかしながら、本明細書の開示はそれほど限定されず、他のサンプリングレート(例えば、より多くの又は少ない毎秒記録データ点)を使用し得る。一例として、記録走行データは、各サンプリング時間において、AVが記録AVによって観測した(例えば、視覚センサを介して「見られる」又は検出された、及び/又は聴覚センサを介して聞かれた)オブジェクト(例えば、ここでは他の道路ユーザ及び/又は実世界オブジェクトと呼ばれる)、観測されたオブジェクトの位置、サンプリング時間における記録AVの位置(例えば、場所)、及び記録AVの感知領域の1つ以上の画像を含み得る。感知領域は、記録AVのセンサによって観測し得る実世界の領域として定義し得る。
記録走行データを用いてシミュレーションを行うことができる。すなわち、例えば、記録AVからの観測データは、シミュレーションAVによって、シミュレーション中の他の道路ユーザの観測として使用し得る。すなわち、物理センサからセンサ情報を受信する代わりに、記録走行データ(記録AVの物理センサによって捕捉された感知データを含む)を使用し得る。そのため、(記録走行データは、上述したように、記録AVの不完全知覚の下で捕捉されたので)シミュレーションは不完全知覚の下で実行できる。
しかしながら、自律走行シミュレーションのために記録した走行データを使用することは、時間同期の課題を提示し得る。時間同期の課題は、記録AVの位置(すなわち、場所)とシミュレーションAVの位置(すなわち、場所)との間のずれに起因し得る。すなわち、例えば、記録されたデータの時間tにおける記録AVの第1の位置は、同じ時間tにおけるシミュレーションAVの第2の位置とは異なってもよい。状況によっては、以下にさらに説明するように、第1の位置と第2の位置との間のずれ(例えば、距離)は、以下にさらに説明するように、シミュレーションAVが記録走行データの少なくとも一部を適時に受信しないように十分に大きくすることができ、それによって、(記録AVによって)観測された他の道路ユーザに基づかない意思決定がもたらされる。
繰り返すが、シミュレーションAVと記録AVは、全く同じ位置でシミュレーションを開始し得るが、シミュレーションAVと記録AVは、位置(例えば、空間内の場所)に関して互いから離れていくことがある。いくつかのソースが、記録AVとシミュレーションAVとの間の位置のずれに寄与し得る。
例えば、ずれは、オペレータの介入によって引き起こされ得る。一般的なシナリオでは、実世界を走り回るためにAV(すなわち、記録AV)が使用される。AVは、例えば、AVの意思決定及び/又は計画された軌道をオーバーライドし得るオペレータ(例えば、人間の運転手や電話交換手)を含み得る。例えば、オペレータは、別の道路ユーザを避けるために加速、減速及び/又は停止し得る。オペレータは、記録AVがコーナリングしている間にハンドルを保持及び/又は回転させて、記録AVのステアリング角をオーバーライドし得る。又は、記録AVが同じ車線に留まっていた場合に、オペレータが車線を変更してもよい。
別の例では、シミュレーションAV及び記録AVは、異なる運動モデル(例えば、モーションコントロールモデル、運動学的動作モデル等)を使用し得る。運動モデルは、AVに印加される電力量、AVのタイヤ力学、より少ない、より多い、又はAVの他の側面を記述(例えば、モデル化)し得る。例えば、運動制御のシミュレーションがシミュレーションのオブジェクトではない場合、記録AVによって使用されるものよりも単純な運動制御モデルをシミュレーションAVのために使用することができ、それによって、位置ずれに寄与する。
別の例では、シミュレーションAV及び記録AVは、異なる意思決定アルゴリズムを使用し得る。例えば、シミュレーションAVの意思決定アルゴリズムは、記録AVの意思決定アルゴリズムの改良版であってもよい。そのため、ずれは、記録AVとシミュレーションAVの意思決定アルゴリズムによる異なる自律走行意思決定に起因し得る。
ずれのソース及び/又は原因に関係なく、上述のように、記録走行データは、例えば、シミュレーションAVの意思決定アルゴリズムを評価するために、自律走行シミュレーションにおいて使用し得る。しかしながら、記録AV及びシミュレーションAVの位置は、シミュレーションAVが、記録AVによって観測された全てのデータを使用してその意思決定を実行し得るように、同期されることが望ましい。
なお、シミュレーションAVと記録AVの位置を同期させることは、記録AVとシミュレーションAV又はその両方の位置を調整することを意味していないことに留意されたい。むしろ、後述するように、シミュレーションAVと記録AVの位置を同期させることは、シミュレーションAVの第1の位置と記録AVの第2の位置との同時点での差分に基づいて、シミュレーションデータ(記録走行データであってもよい)の再生速度を調整すること(例えば、連続的に調節すること)を意味する。すなわち、例えば、シミュレーション中の時間TにおけるシミュレーションAVの第1の位置と、記録走行の時間Tにおける記録AVの第2の位置との間の距離を用いて、再生速度が決定される。再生速度を調整することによって、記録AVによって捕捉された(以下に詳述するように、感知データによって利用可能な)他の全ての道路ユーザは、シミュレーションAVの意思決定アルゴリズムによって使用し得る。すなわち、記録されたデータの再生速度を調整することによって、シミュレーションAVは、その意思決定アルゴリズムを実行する際に記録AVが使用した同じデータを使用して、その意思決定アルゴリズムを実行し得る。
本開示による実装は、シミュレーションされた世界オブジェクト及び/又は記録された路上走行データに基づく自律走行シミュレーションの上述の制限を克服し得る。記録AVの記録走行データの再生速度をシミュレーションAVの位置に一致するように変化させることによって、不完全な知覚を使用して、記録された観測を省略するリスクなしに、(例えば、シミュレーションAVの意思決定アルゴリズムの評価するために)自律走行をシミュレーションし得る。したがって、シミュレーションAVの位置が記録AVの位置からずれても、シミュレーションAVは、記録AVによって記録された観測(例えば、測定)を見落とすことはない。
本明細書の教示のいくつかの実装をより詳細に説明するために、まず、本開示が実装され得る環境を参照する。
図1は、本明細書に開示の態様、特徴及び要素が実装され得る車両100の一部の例示の図面である。車両100は、シャーシ102、パワートレイン104、コントローラ114、車輪132/134/136/138を含み、又は車両の任意の他の要素又は要素の組み合わせを含んでもよい。簡潔のため車両100は4つの車輪132/134/136/138を含むように示されているが、プロペラ又はトレッド等の1つ以上の任意の他の推進装置が使用されてもよい。図1において、パワートレイン104、コントローラ114及び車輪132/134/136/138等の要素を相互接続する線は、データ又は制御信号等の情報、電力又はトルク等の力、又は情報及び電力の両方が各要素間で伝達され得ることを示している。例えば、コントローラ114は、パワートレイン104から電力を受信して、パワートレイン104、車輪132/134/136/138、又は両方と通信して、車両100を制御してもよく、これは、車両100を加速、減速、操縦又は他のやり方で制御することを含み得る。
パワートレイン104は、電源106、トランスミッション108、ステアリング装置110、車両アクチュエータ112を含み、サスペンション、駆動シャフト、アクセル若しくは排気システム等のパワートレインの任意の他の要素又は要素の組み合わせを含んでもよい。別々に示されているが、車輪132/134/136/138は、パワートレイン104に含まれてもよい。
電源106は、電気エネルギ、熱エネルギ又は運動エネルギ等のエネルギを提供するように動作する任意の装置又は装置の組み合わせであってもよい。例えば、電源106は、内燃エンジン、電気モータ又は内燃エンジン及び電気モータの組み合わせ等のエンジンを含み、車輪132/134/136/138の1つ以上に原動力として運動エネルギを提供するように動作する。いくつかの実施形態では、電源106は、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Li−ion)等の1つ以上の乾電池、太陽電池、燃料電池、又はエネルギを提供することが可能な任意の他の装置等のポテンシャルエネルギ装置を含む。
トランスミッション108は、電源106から運動エネルギ等のエネルギを受信して、原動力を提供するために車輪132/134/136/138にエネルギを送る。トランスミッション108は、コントローラ114、車両アクチュエータ112又は両方によって制御されてもよい。ステアリング装置110は、コントローラ114、車両アクチュエータ112又は両方によって制御され、車両を操縦するために車輪132/134/136/138を制御する。車両アクチュエータ112は、コントローラ114から信号を受信してもよく、車両100を動作させるために電源106、トランスミッション108、ステアリング装置110又はこれらの任意の組み合わせを作動又は制御してもよい。
例示の実施形態では、コントローラ114は、位置決め装置116、電子通信装置118、プロセッサ120、メモリ122、ユーザインターフェース124、センサ126、及び電子通信インターフェース128を含む。単一の装置として示されているが、コントローラ114の任意の1つ以上の要素が任意の数の分離した物理装置に組み込まれてもよい。例えば、ユーザインターフェース124及びプロセッサ120は、第1の物理装置に組み込まれてもよく、メモリ122は、第2の物理装置に組み込まれてもよい。図1には示されていないが、コントローラ114は、バッテリ等の電源1210を含んでもよい。別個の要素として示されているが、位置決め装置116、電子通信装置118、プロセッサ120、メモリ122、ユーザインターフェース124、センサ126、電子通信インターフェース128、又はこれらの任意の組み合わせは、1つ以上の電子装置、回路又はチップに組み込まれ得る。
いくつかの実施形態では、プロセッサ120は、信号又は他の情報を操作又は処理することが可能な現存する又は今後開発される任意の装置又は装置の組み合わせ、例えば、光プロセッサ、量子プロセッサ、分子プロセッサ、又はそれらの組み合わせを含む。例えば、プロセッサ120は、1つ以上の専用プロセッサ、1つ以上のデジタル信号プロセッサ、1つ以上のマイクロプロセッサ、1つ以上のコントローラ、1つ以上のマイクロコントローラ、1つ以上の集積回路、1つ以上の特定用途向け集積回路、1つ以上のフィールド・プログラマブル・ゲート・アレイ、1つ以上のプログラマブル・ロジック・アレイ、1つ以上のプログラマブル・ロジック・コントローラ、1つ以上の状態機械、又はこれらの任意の組み合わせを含んでもよい。プロセッサ120は、位置決め装置116、メモリ122、電子通信インターフェース128、電子通信装置118、ユーザインターフェース124、センサ126、パワートレイン104、又はこれらの任意の組み合わせと動作可能に結合されてもよい。例えば、プロセッサは、通信バス130を介してメモリ122と動作可能に結合されてもよい。
プロセッサ120は、命令を実行するように構成されてもよい。このような命令は、オペレーションセンタを含む遠隔地から車両100を操作するために使用され得る遠隔操作のための命令を含んでもよい。遠隔操作のための命令は、車両100に記憶され、又は交通管理センタ又はクラウド型サーバコンピュータ装置を含むサーバコンピュータ装置等の外部ソースから受信されてもよい。遠隔操作は、2018年2月21日に出願され、“REMOTE OPERATION EXTENDING AN EXISTING ROUTE TO A DESTINATION”と題された米国仮特許出願第62/633,414号で紹介されている。
メモリ122は、プロセッサ120によって使用される又はそれと接続される、機械可読命令又はそれに関連付けられる任意の情報を、例えば、保持、記憶、伝達又は搬送することが可能な任意の有形の非一時的コンピュータ使用可能又はコンピュータ可読媒体を含んでもよい。メモリ122は、例えば、1つ以上の半導体ドライブ、1つ以上のメモリカード、1つ以上のリムーバブル媒体、1つ以上の読み取り専用メモリ(ROM)、1つ以上のランダムアクセスメモリ(RAM)、1つ以上のレジストリ、1つ以上の低電力ダブルデータレート(LPDDR)メモリ、1つ以上のキャッシュメモリ、1つ以上のディスク(ハードディスク、フロッピーディスク、又は光学ディスクを含む)、磁気若しくは光学カード、又は電子情報を記憶するのに適した任意のタイプの非一時的な媒体、又はこれらの任意の組み合わせを含んでもよい。
電子通信インターフェース128は、図示のような無線アンテナ、有線通信ポート、光学通信ポート、又は有線若しくは無線電子通信媒体140とインターフェース接続することが可能な任意の他の有線若しくは無線装置であってもよい。
電子通信装置118は、電子通信インターフェース128等を介して、有線又は無線電子通信媒体140を介して信号を送信又は受信するように構成されてもよい。図1に明示されていないが、電子通信装置118は、無線周波数(RF)、紫外線(UV)、可視光、光ファイバ、有線回線、又はこれらの組み合わせ等の任意の有線又は無線通信媒体を介して送信、受信又は両方を行うように構成される。図1は、単一の電子通信装置118及び単一の電子通信インターフェース128を示しているが、任意の数の通信装置及び任意の数の通信インターフェースが使用されてもよい。いくつかの実施形態では、電子通信装置118は、専用の短距離通信(DSRC)装置、無線安全装置(WSU)、IEEE802.11p(WiFi−P)、又はそれらの組み合わせを含み得る。
位置決め装置116は、限定されないが、車両100の経度、緯度、高度、進行方向又は速さを含む地理情報を決定してもよい。例えば、位置決め装置は、広域補強システム(Wide Area Augmentation System;WAAS)対応米国海洋電子機器協会(National Marine Electronics Association;NMEA)装置、無線三角測量装置、又はこれらの組み合わせ等の全地球測位システム(GPS)装置を含む。位置決め装置116は、例えば、車両100の現在の向き、2次元又は3次元での車両100の現在地、車両100の現在の角度方向、又はこれらの組み合わせを表す情報を取得するために使用され得る。
ユーザインターフェース124は、仮想キーパッド、物理キーパッド、タッチパッド、ディスプレイ、タッチスクリーン、スピーカ、マイクロホン、ビデオカメラ、センサ、及びプリンタのいずれかを含む、人間がインターフェースとして使用することが可能な任意の装置を含んでもよい。ユーザインターフェース124は、図示のようにプロセッサ120と、又はコントローラ114の任意の他の要素と動作可能に結合されてもよい。単一の装置として示されているが、ユーザインターフェース124は、1つ以上の物理装置を含み得る。例えば、ユーザインターフェース124は、人物との音声通信を行うための音声インターフェース、及び人物との視覚及びタッチに基づく通信を行うためのタッチディスプレイを含む。
センサ126は、車両を制御するために使用され得る情報を提供するように動作し得るセンサの配列等の1つ以上のセンサを含んでもよい。センサ126は、車両の現在の動作特徴又はその周囲に関する情報を提供し得る。センサ126は、例えば、速度センサ、加速度センサ、ステアリング角センサ、トラクション関連センサ、ブレーキ関連センサ、又は車両100の現在の動的状況の何らかの態様に関する情報を報告するように動作可能な任意のセンサ若しくはセンサの組み合わせを含む。
いくつかの実施形態では、センサ126は、車両100の周囲の物理環境に関する情報を取得するように動作可能なセンサを含む。例えば、1つ以上のセンサが、道路形状、及び固定妨害物、車両、サイクリスト及び歩行者等の妨害物を検出する。センサ126は、既知の又は後に開発される、1つ以上のビデオカメラ、レーザ感知システム、赤外線感知システム、音響感知システム、又は任意の他の適切なタイプの車載環境感知装置、又は装置の組み合わせであるか、又はこれらを含み得る。センサ126及び位置決め装置116は結合されてもよい。
別に示されてはいないが、車両100は、軌道コントローラを含んでもよい。例えば、コントローラ114は、軌道コントローラを含んでもよい。軌道コントローラは、車両100の現在の状態及び車両100に対して計画された経路を記述する情報を取得し、この情報に基づいて、車両100に対する軌道を決定及び最適化するように動作可能であってもよい。いくつかの実施形態では、軌道コントローラは、車両100が軌道コントローラによって決定される軌道に従うように、車両100を制御するように動作可能な信号を出力する。例えば、軌道コントローラの出力は、パワートレイン104、車輪132/134/136/138又は両方に供給され得る最適化された軌道であり得る。最適化された軌道は、一組のステアリング角等の制御入力であってもよく、各ステアリング角は1つの時点又は位置に対応する。最適化された軌道は、1つ以上の経路、線、曲線、又はこれらの組み合わせであり得る。
1つ以上の車輪132/134/136/138は、ステアリング装置110の制御下でステアリング角に枢動される操縦された車輪、トランスミッション108の制御下で車両100を推進するためのトルクを与えられる推進された車輪、又は車両100を操縦及び推進する操縦及び推進された車輪であってもよい。
車両は、エンクロージャ、ブルートゥース(登録商標)モジュール、周波数変調(FM)ラジオ装置、近距離無線通信(NFC)モジュール、液晶ディスプレイ(LCD)ディスプレイ装置、有機発光ダイオード(OLED)ディスプレイ装置、スピーカ、又はこれらの任意の組み合わせ等の図1に示されていない装置又は要素を含んでもよい。
図2は、本明細書に開示の態様、特徴及び要素が実装され得る車両交通及び通信システム200の一部の例示の図面である。車両交通及び通信システム200は、図1に示された車両100等の車両202、及び図1に示された車両100、歩行者、サイクリスト等の任意の交通手段の形態と共に建物等の任意の形態の構造を含み得る外部オブジェクト206等の1つ以上の外部オブジェクトを含む。車両202は、交通ネットワーク208の1つ以上の部分を介して移動してもよく、1つ以上の電子通信ネットワーク212を介して外部オブジェクト206と通信してもよい。図2には明示されていないが、車両は、オフロード領域等の交通ネットワークに明示的に又は完全には含まれていない領域を横断してもよい。いくつかの実施形態では、交通ネットワーク208は、誘導ループセンサ等の1つ以上の車両検出センサ210を含んでもよく、これは交通ネットワーク208において車両の移動を検出するために使用されてもよい。
電子通信ネットワーク212は、車両202、外部オブジェクト206及びオペレーションセンタ230の間の音声通信、データ通信、映像通信、メッセージング通信、又はこれらの組み合わせ等の通信を提供する多重アクセスシステムであってもよい。例えば、車両202又は外部オブジェクト206は、電子通信ネットワーク212を介してオペレーションセンタ230から交通ネットワーク208を表す情報等の情報を受信してもよい。
オペレーションセンタ230は、図1に示されたコントローラ114の特徴の一部又は全てを含むコントローラ装置232を含む。コントローラ装置232は、自律走行車を含む車両の移動を監視及び調整し得る。コントローラ装置232は、車両202等の車両及び外部オブジェクト206等の外部オブジェクトの状態又は状況を監視してもよい。コントローラ装置232は、車両速度、車両位置、車両動作状態、車両目的地、車両経路、車両センサデータ、外部オブジェクト速度、外部オブジェクト位置、外部オブジェクト動作状態、外部オブジェクト目的地、外部オブジェクト経路及び外部オブジェクトセンサデータのいずれかを含む車両データ及びインフラストラクチャデータを受信し得る。
さらに、コントローラ装置232は、車両202等の1つ以上の車両又は外部オブジェクト206等の外部オブジェクトに対する遠隔制御を確立し得る。このようにして、コントローラ装置232は、遠隔地から車両又は外部オブジェクトを遠隔操作してもよい。コントローラ装置232は、無線通信リンク226等の無線通信リンク又は有線通信リンク228等の有線通信リンクを介して、車両202、外部オブジェクト206又はサーバコンピュータ装置234等の車両、外部オブジェクト又はコンピュータ装置と状態データを交換(送信又は受信)してもよい。
サーバコンピュータ装置234は、電子通信ネットワーク212を介して、車両202、外部オブジェクト206又はオペレーションセンタ230を含む1つ以上の車両又はコンピュータ装置と状態信号データを交換(送信又は受信)し得る1つ以上のサーバコンピュータ装置を含んでもよい。
いくつかの実施形態では、車両202又は外部オブジェクト206は、有線通信リンク228、無線通信リンク214/216/224、又は任意の数若しくはタイプの有線若しくは無線通信リンクの組み合わせを介して通信を行ってもよい。例えば、図示のように、車両202又は外部オブジェクト206は、陸上無線通信リンク214を介して、非陸上無線通信リンク216を介して、又はこれらの組み合わせを介して通信を行う。いくつかの実装では、陸上無線通信リンク214は、イーサネット(登録商標)リンク、シリアルリンク、ブルートゥース(登録商標)リンク、赤外線(IR)リンク、紫外線(UV)リンク、又は電子通信を可能にする任意のリンクを含む。
車両202等の車両又は外部オブジェクト206等の外部オブジェクトは、別の車両、外部オブジェクト又はオペレーションセンタ230と通信してもよい。例えば、ホスト又はオブジェクトの車両202が、直接通信リンク224を介して又は電子通信ネットワーク212を介して、オペレーションセンタ230から基本安全メッセージ(basic safety message;BSM)等の1つ以上の自動車両間メッセージを受信してもよい。例えば、オペレーションセンタ230は、300メートル等の既定のブロードキャスト範囲内のホスト車両に又は定義された地理領域にメッセージをブロードキャストしてもよい。いくつかの実施形態では、車両202は、信号リピータ(図示せず)又は別の遠隔車両(図示せず)等のサードパーティを介してメッセージを受信する。いくつかの実施形態では、車両202又は外部オブジェクト206は、100ミリ秒(ms)等の既定の間隔に基づいて周期的に1つ以上の自動車両間メッセージを送信する。
車両202は、アクセスポイント218を介して電子通信ネットワーク212と通信してもよい。コンピュータ装置を含み得るアクセスポイント218は、無線又は有線通信リンク214/220を介して、車両202と、電子通信ネットワーク212と、オペレーションセンタ230と、又はこれらの組み合わせと通信するように構成される。例えば、アクセスポイント218は、基地局、BTS(base transceiver station)、Node−B、eNode−B(enhanced Node−B)、HNode−B(Home Node−B)、無線ルータ、有線ルータ、ハブ、リレー、スイッチ、又は任意の類似の有線若しくは無線装置である。単一の装置として示されているが、アクセスポイントは、任意の数の相互接続要素を含み得る。
車両202は衛星222又は他の非陸上通信装置を介して電子通信ネットワーク212と通信してもよい。コンピュータ装置を含み得る衛星222は、1つ以上の通信リンク216/236を介して、車両202と、電子通信ネットワーク212と、オペレーションセンタ230と、又はこれらの組み合わせと通信するように構成されてもよい。単一の装置として示されているが、衛星は、任意の数の相互接続要素を含み得る。
電子通信ネットワーク212は、音声、データ、又は任意の他のタイプの電子通信装置を提供するように構成される任意のタイプのネットワークであってもよい。例えば、電子通信ネットワーク212は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、モバイル若しくはセルラ電話ネットワーク、インターネット、又は任意の他の電子通信システムを含む。電子通信ネットワーク212は、トランスミッション・コントロール・プロトコル(TCP)、ユーザ・データグラム・プロトコル(UDP)、インターネット・プロトコル(IP)、リアルタイム・トランスポート・プロトコル(RTP)、ハイパー・テキスト・トランスポート・プロトコル(HTTP)、又はこれらの組み合わせ等の通信プロトコルを使用してもよい。単一の装置として示されているが、電子通信ネットワークは、任意の数の相互接続要素を含み得る。
いくつかの実施形態では、車両202は、電子通信ネットワーク212、アクセスポイント218又は衛星222を介して、オペレーションセンタ230と通信する。オペレーションセンタ230は、車両202等の車両からのデータ、外部オブジェクト206等の外部オブジェクトからのデータ、又はサーバコンピュータ装置234等のコンピュータ装置からのデータを交換(送信又は受信)し得る1つ以上のコンピュータ装置を含んでもよい。
いくつかの実施形態では、車両202は、交通ネットワーク208の一部又は状態を識別する。例えば、車両202は、速度センサ、車輪速度センサ、カメラ、ジャイロスコープ、光学センサ、レーザセンサ、レーダセンサ、音響センサ、又は交通ネットワーク208の一部若しくは状態を決定若しくは識別することが可能な任意の他のセンサ若しくはデバイス又はこれらの組み合わせを含む図1に示されたセンサ126等の1つ以上の車載センサ204を含んでもよい。
車両202は、交通ネットワーク208を表す情報、1つ以上の車載センサ204、又はこれらの組み合わせ等の電子通信ネットワーク212を介して伝達される情報を使用して、交通ネットワーク208の1つ以上の部分を横断してもよい。外部オブジェクト206は、車両202に関して先に記載された通信及びアクションの全て又は一部の能力を有してもよい。
簡潔のため、図2は、ホスト車両としての車両202、外部オブジェクト206、交通ネットワーク208、電子通信ネットワーク212、及びオペレーションセンタ230を示している。しかしながら、任意の数の車両、ネットワーク又はコンピュータ装置が使用されてもよい。いくつかの実施形態では、車両交通及び通信システム200は、図2に示されていない装置、ユニット又は要素を含む。
電子通信ネットワーク212を介してオペレーションセンタ230と通信する車両202が示されているが、車両202(及び外部オブジェクト206)は、任意の数の直接又は間接通信リンクを介してオペレーションセンタ230と通信してもよい。例えば、車両202又は外部オブジェクト206は、ブルートゥース(登録商標)通信リンク等の直接通信リンクを介してオペレーションセンタ230と通信してもよい。簡潔のため、図2は1つの交通ネットワーク208及び1つの電子通信ネットワーク212を示しているが、任意の数のネットワーク又は通信装置が使用されてもよい。
外部オブジェクト206は、図2に第2の遠隔車両として示されている。外部オブジェクトは、他の車両に限定されない。外部オブジェクトは、オペレーションセンタ230にデータを送信する能力を有する任意のインフラストラクチャ要素、例えば、フェンス、標識、建物等であってもよい。データは、例えば、インフラストラクチャ要素からのセンサデータであってもよい。
図3は、本開示の実装による予測可能な応答の状況300の図である。状況300は、自律走行車(AV)302の応答を予測し得る状況310−360、及び計画された軌道を含んでいる。
状況300は、予測可能な状況及び道路ユーザの応答の例を表している。これらの状況は、遅い時間スケールで発生する(例えば、起こる、生じる)。すなわち、AV302が高速(例えば、時速60マイル(MPH))で進んでいる場合であっても、状況310−360は、AV302の計算能力(例えば、図1のプロセッサ120等のプロセッサ及び/又は図1のコントローラ114等のコントローラの演算能力)のために、経過時間のサブ秒以内で外部オブジェクトの応答を予測し、自律走行車の軌道を決定し得るので、遅いシナリオであると考えられる。
AV302は、少なくともいくつかの検出された外部オブジェクトを追跡することが可能な世界モデル化モジュールを含み得る。世界モデル化モジュールは、複数の追跡対象オブジェクトの少なくとも一部の追跡対象オブジェクトごとに、1つ以上の可能性のある仮説(すなわち、軌道、経路等)を予測し得る。AV302は、軌道計画システム(又は、単に軌道プランナ)を含んでもよく、このシステムは、プロセッサによって実行されて、(初期状態、所望のアクション、及び予測された軌道を有する少なくともいくつかの追跡対象オブジェクトを考慮して)衝突回避、法令遵守、快適応答(例えば、軌道、経路等)を生成し得る。
状況310において、AV302は、道路の側方にある駐車車両(静的オブジェクト)304を(すなわち、追跡コンポーネントによって)検出する。AV302(すなわち、AV302の軌道プランナ)は、以下にさらに説明するが、軌道306によって示されるように、AV302を駐車車両304の周りにナビゲートする経路(すなわち、軌道)を計画し得る。
状況320は、AV302が他の静的オブジェクトを検出する別の状況である。検出された静的オブジェクトは、穴322である。AV302は、AV302のタイヤのいずれもがポットホール322内を走行しないように、ポットホール322上を走行するような軌道324を計画し得る。
状況330において、AV302は、対向車両332と、対向車両332と同じ道路側の駐車車両334とを検出する。対向車両332は移動している。したがって、対向車両332は動的オブジェクトである。対向車両332は、AV302と同じ(又は少なくとも実質的に同じである)前後方向に移動している。したがって、対向車両332は、以下にさらに説明するように、縦方向制約として分類し得る。対向車両332は、AV302とは逆方向に移動している。したがって、対向車両332は、対向縦方向制約として分類し得る。駐車車両334は、静的オブジェクトである。
AV302は、対向車両332が軌道336を追従して駐車車両334を回避(例えば、迂回)することを、(すなわち、予測コンポーネントによって)閾値を超えるある程度の確実性をもって予測し得る。軌道336は、道路の中心線337と重なる。対向車両332からの安全な距離を維持するために、AV302の軌道プランナは、位置339における曲率を含む軌道338を計画し得る。すなわち、AV302の計画軌道は、対向車両332の進路を予測してAV302を右方に移動させる。
状況340において、AV302の追跡コンポーネントは、駐車車両342(静的オブジェクト)及び移動中の自転車344(すなわち、縦方向制約である動的オブジェクト)を検出し得る。予測コンポーネントは、自転車344が軌道346に沿って駐車車両342の周りを移動することをある程度確実に決定し得る。そのため、AV302は、AV302が減速して、自転車344が駐車車両342を通過することを可能にするように軌道348を決定(すなわち、計画、計算、選択、生成、又は他のやり方で決定)する。別の例では、AV302は、複数の可能な軌道を決定し得る。例えば、AV302は、上述したような第1の軌道と、自転車344が駐車車両を通過する前にAV302が加速して自転車344を通過する第2の軌道と、自転車344が駐車車両342を通過しているときにAV302が自転車344の周りを通過する第3の軌道とを決定し得る。次に、軌道プランナは、決定された可能な軌道の1つを選択する。
状況350では、AV302の追跡コンポーネントが対向車両352、第1の駐車車両356、第2の駐車車両357を検出する。AV302の予測コンポーネントは、対向車両352が軌道354を辿っていると決定する。AV302は、AV302が第1の駐車車両356を通過し、第1の駐車車両356と第2の駐車車両357との間で対向車両352が通過するまで待機した後で、第2の駐車車両357を通過するように軌道358を選択する。
状況360では、AV302の予測コンポーネントは、大型トラック362が右折する可能性が最も高いと判断する。軌道プランナは、(例えば、大型トラックの運動モデルに基づいて)大型トラックは大きな旋回半径を必要とするので、大型トラック362は軌道364を辿る可能性が高いと判断する。軌道364がAV302の経路と干渉するので、AV302の軌道プランナは、大型トラック362が邪魔にならなくなるまでAV302を停止させるようにAV366の軌道302を決定する。
図4は、本開示の実装による自律走行車用システム400のコンポーネントの一例である。システム400は、図1の車両100等の自律走行車のソフトウェアパイプラインを表す。システム400は、世界モデルモジュール402と、経路計画モジュール404と、意思決定モジュール406と、軌道プランナ408と、反応軌道制御モジュール410とを含む。システム400の他の例は、より多くの、より少ない、又は他のモジュールを含み得る。いくつかの例では、モジュールを組み合わせてもよく、他の例では、モジュールを1つ以上の他のモジュールに分割し得る。
世界モデルモジュール402は、図1のセンサ126等からセンサデータを受信し、センサデータからオブジェクトを決定する(例えば、変換する、検出する)。すなわち、例えば、世界モデルモジュール402は、受信したセンサデータから道路ユーザを決定する。例えば、世界モデルモジュール402は、光検出測距(LiDAR)センサ(すなわち、センサ126のセンサ)から受信した点群をオブジェクトに変換し得る。複数のセンサからのセンサデータを融合して、オブジェクトを決定する(例えば、その正体を推測する)ことができる。オブジェクトの例としては、自転車、歩行者、車両等が含まれる。
世界モデルモジュール402は、検出されたオブジェクトの少なくともいくつかについての追加情報を世界モデルモジュール402が計算及び維持することを可能にするセンサ情報を受信し得る。例えば、世界モデルモジュール402は、決定されたオブジェクトの少なくともいくつかの状態を維持し得る。例えば、オブジェクトの状態には、ゼロ以上の速度、姿勢、ジオメトリ(幅、高さ、奥行き等)、分類(例えば、自転車、大型トラック、歩行者、道路標識等)、及び位置が含まれる。そのため、オブジェクトの状態は、離散状態情報(例えば、分類)及び連続状態情報(例えば、姿勢と速度)を含む。
世界モデルモジュール402は、センサ情報を融合し、オブジェクトを追跡し、動的オブジェクトのうちの少なくともいくつかについて仮説のリストを維持し(例えば、オブジェクトAは直進、右折、又は左折しているかもしれない)、各仮説について予測軌道を作成及び維持し、各仮説の尤度推定を維持する(例えば、オブジェクトAは、オブジェクトの姿勢/速度と軌道の姿勢/速度を考慮して、確率90%で直進している)。一例では、世界モデルモジュール402は、軌道プランナのインスタンスを使用して、動的オブジェクトの少なくともいくつかについての各オブジェクト仮説に対する基準走行線を生成する。例えば、軌道プランナの1つ以上のインスタンスを使用して、車両、自転車、及び歩行者に関する基準走行線を生成し得る。別の例では、軌道プランナのインスタンスを使用して、車両及び自転車の基準走行線を生成することができ、異なる方法を使用して、歩行者に関する基準走行線(例えば、基準経路)を生成し得る。
世界モデルモジュール402によって維持されるオブジェクトは、図3に関して説明したように、静的オブジェクト及び/又は動的オブジェクトを含み得る。
経路計画モジュール404は、例えば、道路レベル計画412に関して図示される道路レベル計画を決定する。例えば、出発地と目的地を考慮して、経路計画モジュール404は、出発地から目的地までの経路を決定する。例えば、経路計画モジュール404は、AVが出発位置から目的位置までナビゲートするために従うべき道路のリスト(すなわち、道路レベル計画)を決定し得る。
経路計画モジュール404によって決定された道路レベル計画、及び世界モデルモジュール402によって維持されるオブジェクト(及び対応する状態情報)は、意思決定モジュール406によって、道路レベル計画に沿った離散レベル決定を決定するために使用され得る。離散的決定414に関して、離散的決定に含まれる決定の例が示されている。離散レベル決定の例には、道路Aと道路Bの間の交差点で停止すること、ゆっくりと前進すること、ある速度制限まで加速すること、一番右の車線に合流すること等が含まれる。
軌道プランナ408は、離散レベル決定、世界モデルモジュール402によって維持されるオブジェクト(及び対応する状態情報)、及び世界モデルモジュール402からの外部オブジェクトの予測軌道及び尤度を受信し得る。軌道プランナ408は、受信した情報の少なくとも一部を使用して、自律走行車に関する詳細な計画軌道を決定し得る。
例えば、詳細な計画軌道416に関して図示されるように、軌道プランナ408は、次の数秒の軌道を決定する。したがって、次の数秒が次の6秒(すなわち、6秒の先読み時間)である例では、軌道プランナ408は、次の6秒における自律走行車の軌道及び位置を決定する。例えば、軌道プランナ408は、いくつかの時間間隔(例えば、1/4秒ごと、又は他の時間間隔)で自律走行車の予測位置を決定(例えば、予測、計算等)し得る。軌道プランナ408は、例えば、図3に関して説明したように、他の道路ユーザの予測可能な応答に基づいて、詳細な計画軌道を決定し得る。
反応軌道制御モジュール410は、自律走行車が遭遇するかもしれないが、軌道プランナ408によって予測できない(例えば、処理できない)状況に対処し得る。このような状況には、軌道プランナ408の詳細な計画軌道が、オブジェクトの誤分類及び/又はまれに起こる予期しない状況に基づいていた場合の状況が含まれる。例えば、反応軌道制御モジュール410は、自律走行車の左側の静的オブジェクトが誤分類されていると決定することに応答して、詳細な計画軌道を修正し得る。例えば、オブジェクトが大型トラックとして分類されている場合があるが、新しい分類では静的道路障壁であると判断される。別の例では、反応軌道制御モジュール410は、自律走行車の突然のタイヤのパンクに応じて詳細な計画軌道を修正し得る。予期しない状況の他の例としては、他の車両が突然(例えば、タイヤのパンク又は高速道路のオフランプに到達するための決定が遅れたため)AVの車線から逸脱し、歩行者又は他のオブジェクトが後方の閉塞から突然現れることが含まれる。
図5は、本開示の実装による自律走行車の軌道プランナ500のレイヤの例である。軌道プランナ500は、図4の軌道プランナ408であり得るか、又はその一部であり得る。軌道プランナ500は、走行目標501を受信し得る。軌道プランナ500は、例えば、第1の位置を第2の位置に接続する一連の車線選択及び速度制限を表し得る一連の走行目標501を受信し得る。例えば、複数の走行目標501の中の1つの走行目標は、「位置xから開始し、制限速度yを遵守して、特定の識別子を有する車線(例えば、A123と等しい識別子を持つ車線)を走行する」であってもよい。軌道プランナ500は、走行目標501のシーケンスを達成する軌道を生成するために使用し得る。
軌道プランナ500は、走行線データレイヤ502と、基準軌道生成レイヤ504と、オブジェクト回避レイヤ506と、軌道最適化レイヤ508とを含む。軌道プランナ500は、最適化された軌道を生成する。軌道プランナ500の他の例は、より多くのレイヤ、より少ないレイヤ、又は他のレイヤを含み得る。いくつかの例では、複数のレイヤを結合し得る。他の例では、レイヤは1つ以上の他のレイヤに分割され得る。
走行線データレイヤ502は、軌道プランナ500によって使用され得る入力データを含む。(例えば、基準軌道生成レイヤ504によって)走行線データを使用して、第1の位置から第2の位置までの粗走行線を決定する(すなわち、生成する、計算する、選択する、又は他のやり方で決定する)ことできる。走行線は、AVが道路に沿って移動するときに、AVの縦軸が一致する道路の線と考え得る。したがって、走行線データは、走行線を決定するために使用され得るデータである。走行線は、この時点では粗いものであり、隣接する車線間の横方向への遷移に向けられたとき等の横方向の不連続性を含み得る。この時点での走行線も、以下にさらに説明するように、AVが遭遇するオブジェクトに対してはまだ調整されていない。
一例では、走行線データレイヤ502は、高精細(HD)地図データ510、遠隔操作地図データ512、記録経路データ514、先行車両データ516、駐車場データ518、及び知覚経路データ520のうちの1つ以上を含み得る。
HD地図データ510は、自律走行車が利用可能な高精細(高精度)地図からのデータである。HD地図データ510は、数センチメートル以内までの車両交通ネットワークに関する正確な情報を含み得る。例えば、HD地図データ510は、道路車線、道路分割線、交通信号、交通標識、速度制限等に関する詳細を含み得る。
遠隔操作地図データ512は、比較的短い走行線データを含み得る。例えば、遠隔操作地図データ512は、長さ100メートル〜200メートルの走行線データとし得る。しかしながら、遠隔操作地図データ512は、必ずしもこれに限定されるものではない。遠隔操作地図データ512は、AVが自動的に処理することができない例外的な状況に応答して、又はそれを予期して、遠隔オペレータによって手動で生成し得る。
走行線はリアルタイムで作成し得る。次に、走行線をリアルタイムで作成する例を示す。遠隔オペレータは、AV生センサデータを遠隔で観測していてもよい。例えば、遠隔オペレータは、(例えば、AVのカメラによって捕捉される)工事区域のパイロンを(例えば、遠隔モニタ等で)見て、工事現場を通るAVの経路を描いてもよい。次に、遠隔オペレータは、フラグを持った人物がAVに前進許可を与えるのを見てもよく、その時点で、遠隔オペレータは、描かれた経路に沿ってAVを進行させ得る。
AVが以前に遭遇した例外的な状況に到達したときに経路を手動で描く処理時間を短縮するために、走行線データを遠隔に記憶し、必要に応じてAVに送信し得る。
記録された経路データ514は、自律走行車が以前に辿った経路に関するデータを含み得る。一例では、自律走行車のオペレータ(例えば、運転者又は遠隔オペレータ)は、道路から家庭のガレージまでの経路を記録してもよい。
先行車両データ516は、自律走行車と略同じ軌道に沿って自律走行車に先行する1つ以上の車両から受信したデータであり得る。一例では、自律走行車と先行車両は、図2に関して説明したように、無線通信リンクを介して通信し得る。したがって、自律走行車は、無線通信リンクを介して先行車両から軌道及び/又は他の情報を受信し得る。また、先行車両データ516は、明示的な通信リンクなしでも知覚(例えば、追従)され得る。例えば、AVは、先行車両を追跡することができ、追跡結果に基づいて先行車両の車両走行線を推定し得る。
駐車場データ518は、駐車場及び/又は駐車スペースの位置に関するデータを含む。一例では、駐車場データ518を使用して、他の車両の軌道を予測し得る。例えば、駐車場入口が他の車両に近接している場合、他の車両の予測された軌道の1つは、他の車両が駐車場に入ることであり得る。
状況によっては、地図(例えば、HD地図)情報が車両交通ネットワークの一部に対して利用できないことがある。したがって、知覚された経路データ520は、以前にマッピングされた情報がない走行線を表し得る。その代わりに、AVは、より少ない、より多い車線標示、縁石、及び道路制限又はそれ以外のものを使用して、リアルタイムで走行線を検出し得る。例えば、ある地表タイプ(例えば、舗装)から他の地表タイプ(例えば、砂利又は草)への遷移に基づいて、道路の制限を検出し得る。リアルタイムで走行線を検出するには、他の方法も使用し得る。
基準軌道生成レイヤ504は、走行線連結モジュール522、戦略的速度計画モジュール524、及び走行線合成モジュール526を含み得る。基準軌道生成レイヤ504は、粗走行線を離散時間速度計画モジュール528に提供する。図6は、基準軌道生成レイヤ504の動作の一例を示す。
経路計画モジュール404は、第1の位置から第2の位置へ移動するために使用される車線IDシーケンスを生成することができ、それによって走行目標501に対応する(例えば、提供する)。そのため、走行目標501は、車線の長さに応じて、例えば、数100メートル離れていてもよい。例えば、HD地図データ510の場合、基準軌道生成レイヤ504は、位置(例えば、GPSの位置、3Dデカルト座標等)と車線(例えば、車線の識別子)との組み合わせを走行目標501のシーケンスに用いて、AVの一連の姿勢として表される高解像度走行線を(例えば、HD地図510から)生成し得る。各姿勢は、既定の距離にあってもよい。例えば、姿勢は1〜2メートル離れていてもよい。姿勢は、座標(x、y、z)、ロール角度、ピッチ角度、及び/又はヨー角度等、より多く、より少ない、又はその他の量で定義し得る。
上述したように、走行線データは、粗走行線を決定(例えば、生成、計算等)するために使用され得る。走行線連結モジュール522は、走行線データレイヤ502の入力データを連結(例えば、リンク、融合、合流、接続、統合、又はその他の連結)して、縦方向に沿って(例えば、自律走行車の経路に沿って)粗走行線を決定する。例えば、位置A(例えば、職場)から位置D(例えば、自宅)に移動するように、粗走行線を決定するために、走行線連結モジュール522は、駐車場データ518からの入力データを使用して、職場駐車場から幹線道路に出る出口の位置を決定し、HD地図データ510からのデータを使用して、幹線道路から自宅までの経路を決定し、記録された経路データ514からのデータを使用して、自宅のガレージにナビゲートし得る。
粗走行線には速度情報は含まれない。しかしながら、いくつかの例では、粗走行線は、HD地図データ510から使用(例えば、抽出)し得る速度制限情報を含み得る。戦略的速度計画モジュール524は、粗走行線の異なる部分に沿った(複数の)特定の速度を決定する。例えば、戦略的速度計画モジュール524は、粗走行線の第1の直線区間において、自律走行車の速度をその第1の直線区間の速度制限に設定してもよく、その後の粗走行線の第2のカーブ区間では、自律走行車の速度をより遅い速度に設定することを決定し得る。そのため、戦略的速度計画モジュール524は、AVの現在の状態(例えば、速度及び加速度)を考慮しているが、他の道路ユーザ又は静的オブジェクトは考慮せずに、粗走行線についての法令遵守(例えば、速度制限及び停止線の遵守)、快適性(例えば、肉体的及び精神的)、及び物理的に実現可能な速度プロファイル(例えば、走行線に沿った速度対距離)を計算する。
戦略的速度計画が戦略的速度計画モジュール524によって決定されると、走行線合成モジュール526は、粗走行線を横方向に調整し得る。戦略的な速度プロファイルと、横方向に不連続な粗走行線とを考慮して、走行線合成モジュール526は、車線変更の開始位置と終了位置を決定し、これらの位置を接続する走行線を合成する。車線変更の長さは、速度に依存し得る。
走行線合成モジュール526は、粗走行線における横方向に不連続な位置を連結する走行線を合成し得る。例えば、HD地図データ510は、道路の第1の車線上にある粗走行線の第1の区間と、同じ道路の第2の車線上にある粗走行線の第2の区間とを含むと仮定する。したがって、粗走行線には横方向の不連続性が存在する。走行線合成モジュール526は、まず、AVが第1の車線から第2の車線に遷移すべき遷移距離(言い換えれば、開始位置と終了位置)を決定する。すなわち、開始位置は、第1の車線から第2の車線への移動を開始するように自律走行車を制御する場合の道路位置である。終了位置は、自律走行車が車線変更を完了した場合の道路位置である。次に、横方向連続性モジュールは、第1の車線における開始位置と第2の車線における終了位置とを結合する新しい走行線データを生成する。
走行線合成モジュール526によって決定される遷移は、速度に依存し得る。例えば、AVがより高速で移動しているときよりも低速で移動している場合は、AVが第1の車線から第2の車線に遷移するために、より短い遷移距離が必要とされ得る。例えば、自律走行車がより遅い速度(例えば、15MPH)で走行している交通混雑状況では、遷移のために20ヤードが必要になることがある。しかしながら、自律走行車がより高速(例えば、65MPH)で走行している場合、遷移距離は100ヤードであってもよい。そのため、走行線合成モジュール526は、AVの速度に応じて遷移位置を決定し得る。
走行線合成モジュール526の出力は、オブジェクト回避レイヤ506に提供される。走行線合成モジュール526の出力は、粗走行線及び戦略的速度計画を含む。オブジェクト回避レイヤ506は、粗走行線において中期的な離散時間速度計画及び横方向制約を生成する。将来の離散的な時点について(言い換えれば、AVの経路に沿った離散位置において)、離散時間速度計画モジュール528は、AVのそれぞれの所望の速度を決定(すなわち、計算)する。
オブジェクト回避レイヤ506では、以下にさらに説明するように、粗走行線、近傍の静的オブジェクト、及び近傍の動的オブジェクトとそれらの予測軌道を使用して、オブジェクト回避レイヤ506は、AVを安全に操作し得る走行可能領域を決定(例えば、抽出)する。(後述する)各ビンの左右の境界が決定される。AVの現在の速度を考慮して、リアルタイム速度計画を生成し得る。リアルタイム速度計画は、AVの将来の位置を推定するために使用し得る。AVの将来の位置は、動的オブジェクトの将来の予想(例えば、予測)位置に対して評価し得る。AVの走行可能領域は、動的オブジェクトの(例えば、オーバーラップ)位置に対応する走行可能領域の中の領域を除去するように調整される。
オブジェクト回避レイヤ506では、粗走行線がオブジェクトに対して評価及び/又は調整される。オブジェクトは、AVの外部及び近位のオブジェクトであり得る。そのため、オブジェクトは、図4の世界モデルモジュール402に関して記載されたオブジェクトであり得る。そのため、AVの現在の速度を考慮して、オブジェクト回避レイヤ506は、リアルタイム速度計画を生成する。リアルタイム速度計画を使用して、オブジェクト回避レイヤ506は、離散的な将来の時点におけるAVの将来の位置を推定し得る。将来の位置は、オブジェクト(すなわち、世界モデルのオブジェクト)の位置に対して評価され、AVの円滑な走行を提供(例えば、生成)し得る。円滑な走行(すなわち、円滑な軌道)を提供することは、以下にさらに説明するように、反復処理であり得る。
要約すると、最初に、粗走行線が生成され、次に、粗走行線から速度計画が生成され、そして、粗走行線及び速度計画を考慮して、AVの世界モデルにおいて維持される他のオブジェクトを考慮して軌道が最適化されて、最適化された所望の軌道を提供する。軌道は調整された走行可能領域で最適化される。非走行可能領域(すなわち、他のオブジェクトのためにAVを安全に走行することができない領域)は、調整された走行可能領域を提供するためにデフォルトの走行可能領域から除去される。
図6は、本開示の実装による粗走行線連結の例600を示す図である。例600は、図5の基準軌道生成レイヤ504の動作の一例である。
ビュー610では、AV611は、車線612〜614を含む3車線道路の右端の車線614にある。ビュー610は、左側通行システム(すなわち、車線612〜614内の交通は、図6の下から上に向かって移動する)の例であることに留意されたい。経路計画モジュール404等のルートプランナは、図5のHD地図データ510等のHD地図データに基づいて、AV611が1車線道路の車線615へ右折することを決定してもよい。HD地図は、各車線の中心線(図示せず)を提供してもよい。
場合によっては、AVの走行線は、車線又は道路の中心線と一致しないことがある。例えば、車線615は、車線615の左側に沿って駐車スペースを収容するために特別に広くてもよい。別の例では、ほとんどの運転者は中心線の少し左を運転することを好むことが分かっていてもよい。そのため、AV611の走行線は、車線615の中心線の左側に設定される。そのため、走行線連結モジュール522は、車線ジオメトリ(例えば、車線幅)を考慮して走行線を決定するために車線のジオメトリを決定する。例えば、粗走行線に旋回がある場合、走行線連結モジュール522は、車線の幅、旋回方向(例えば、右又は左)、旋回角度、及び/又は旋回速度に基づいて、走行線が(すなわち、車線の中心線から外れて)どこに移動されるかを決定する。すなわち、走行線連結モジュール522は、HD地図の中心線に基づいてAVの走行線を設定する。一例では、車線幅に基づいて走行線を設定し得る。
AVの走行線を設定するために、走行線連結モジュール522は、粗走行線に沿った車線のジオメトリを決定する。一例では、走行線連結モジュール522は、粗走行線に沿った特定の距離(例えば、100m、200m、300m等)のジオメトリを決定する。ジオメトリを決定するために、走行線連結モジュール522は、粗走行線に沿ったポリゴン616等のポリゴンを決定してもよく、これは車線境界を定義するために使用され得る。
ビュー620は、車線の幅621に基づいて走行線(すなわち、粗走行線)を決定することを示す。HD地図からは、AV611が走行している車線の右端624、左端622及び中心線626を取得し得る。走行線連結モジュール522は、幅621に基づいて走行線628(すなわち、粗走行線)を決定する。したがって、走行線628は中心線626からずれている。
ビュー630は、走行線を決定するために、例えば、図5の遠隔操作地図データ512に関して記載した遠隔操作データを使用して説明する。上述したように、HD地図データは静的データであるのに対し、遠隔操作データは、道路状況及び/又は例外的状況に基づいてリアルタイム走行線を提供し得る。例えば、AV611の走行線632に沿って工事区域が存在する。工事区域は、パイロン636等の障害物によって囲まれており、この障害物は、工事計画634を取り囲んでいる。そのため、走行線連結モジュール522は、以下にさらに説明するように、遠隔操作データによって提供されるリアルタイム走行線を使用して、走行線632を走行線638(すなわち、粗走行線)となるように調整する。
ビュー640は、速度に依存する車線変更を示す。速度依存車線変更は、上述したように、図5の走行線合成モジュール526によって実装し得る。一例では、図4の意思決定モジュール406によって、車線642に沿って走行するAV611は、例えば、車線642が終了するか、又はAV611が左折するために、次に車線644に入ることになる。そのため、AV611は、ある時点で車線642から車線644に移動することになる。HD地図が車線遷移情報を提供しない場合があるので、AV611の基準軌道生成レイヤ504は車線遷移時間を決定する。上述のように、遷移は速度に依存し得る。
一例では、(基準軌道生成レイヤ504がその中の1つのレイヤである)軌道プランナ500は、粗走行線に沿った点Xにおいて、(戦略的速度計画モジュール524によって決定されるように)AV611が速度Yで移動していることを決定し得る。AV611が低速(例えば、35mPH)で移動している場合、走行線合成モジュール526は、遷移が遅くなり得ると判断し得る。したがって、車線642から車線644に移動する経路は、経路646によって示されるようになり得る。一方、AV611が高速(例えば、65mPH)で走行している場合には、経路648に示すように、車線切り替えのための経路の距離は長くなる必要がある。
経路646及び648を辿るのに要する時間は同じであってもよい。しかしながら、距離は異なっている。AV611が第1の速度で走行しているときの車線遷移に必要な距離は、AV611が第1の速度よりも遅い第2の速度で走行しているときに必要な距離よりも長い。
速度に依存する車線変更を決定するために、車線変更率を使用し得る。すなわち、車線変更率は、車線642とビュー640の車線644等の2つの隣接する車線の間の接続を作成するために使用し得る。車線変更率は、「メートルごとに何メートルか」、すなわち、経路が縦1mで横に何m移動するかで定義され得る。上記のように、目標は、ターゲット時間量において車線変更を完了することを達成する車線変更率を特定することである。すなわち、AVが低速で走行している場合(例えば、ラッシュアワーの交通量が多いとき)、車線変更率は高く、短距離で(例えば、数十メートルのオーダーで)行われる。AVが高速で(例えば、高速道路の速度で)走行している場合、車線変更率は遅く、長距離(例えば、数百メートルのオーダーで)で行われる。
図7は、本開示の実装による戦略的速度計画を決定する例700である。例700は、図5の戦略的速度計画モジュール524が戦略的速度計画714を決定するために使用し得る入力の例を示す。いくつかの実装形態では、戦略的速度計画モジュール524は、戦略的速度計画を決定するために、より多くの入力、より少ない入力、又は他の入力を使用し得る。
例700では、速度制限入力及び加速制限入力を使用し得る。速度制限は、道路速度制限702、曲率速度制限704、及びシームレスオートノマスモビリティ(SAM)データ706のうちの少なくとも1つを含み得る。加速制限は、車両加速制限710及び快適性限界712を含み得る。速度制限及び/又は加速制限は、より多くの入力、より少ない入力、又は他の入力を含み得る。
道路速度制限702は、速度制限標識等に掲示されている道路速度制限(例えば、20mPH、65mPH等)とし得る。一例では、道路速度制限702は、HD地図から取得し得る。曲率速度制限704は、例えばAVの粗走行線に沿った旋回等の旋回の曲率に対する車速に関するデータであってもよい。あるいは、曲率速度制限704は、道路曲率情報(例えば、湾曲の回転半径)のみを提供してもよい。曲率速度制限704は、AVの横方向加速度に対する制限とし得る。そのため、速度計画は、AVが曲がるときに、曲率速度制限704と一致する減少したAV速度を含み得る。
SAMデータ706は、(自律的であるか否かに関係なく)車両から(例えば、クラウドベースのシステムで)収集されたデータとし得る。このデータは、車両(AVを含む)が路上で安全かつ円滑に動作することを可能にする。一例では、SAMデータ706は、道路の一部に沿って車両から収集された振動データを含み得る。振動データは、道路の異なる部分における振動レベルと速度とを相関させ得る。一例では、振動データは、ある道路位置について、車両が所定の速度を超えて走行しているときに(例えば、道路の一部の速度バンプに起因する)許容できないレベルの振動を示し得る。したがって、振動の影響を最小限に抑えるために、道路の一部でAVの速度を(所定の速度以下に)落とすべきである。一例では、SAMデータ706は、オペレーションセンタ230、サーバコンピューティング装置234、又は他の何らかのネットワーク装置等の中央サーバからAVによって受信され得る。一例では、SAMデータ706は、その場所に到着する自律走行車の特定の期間(例えば、1分、10分、20分等)内に他の車両から蓄積されたデータであり得る。一例では、AVはSAMデータ706をプルしてもよい。別の例では、SAMデータ706は、AVがSAMデータ706を提供するサーバにその位置を報告することに基づいて、AVにプッシュし得る。
道路速度制限702、曲率速度制限704、及びSAMデータ706を組み合わせて、生速度制限708を提供し得る。一例では、粗走行線に沿った特定の位置の各位置について(例えば、5mごと、10mごと等)、その位置における道路速度制限702の最小速度、その位置における曲率速度制限704の速度、及びその位置におけるSAMデータ706の速度が、その位置における生速度制限708の速度として使用される。
車両加速制限710は、AVのトルク及び出力に起因するAV加速制限とし得る。快適性限界712は、AVの乗員がAVをどれだけ速く加速させたいか等の加速度に関する人間の快適性限界を含む。
基準軌道生成レイヤ504の戦略的速度計画モジュール524は、生速度制限708、車両加速制限710、及び快適性限界712を組み合わせて、円滑な速度計画である戦略的速度計画714を提供し得る。
上述したように、粗走行線に沿った位置では、道路速度制限702、曲率速度制限704、及びシームレスオートノマスモビリティSAMデータ706の最小値をAVの速度制限として用い得る。車両加速制限710及び快適性限界712は、加速度と速度とを関係付ける。そのため、一例では、車両加速制限710と快適性限界712とは、2つの最大曲線(快適性、速度)の最小値を求めることによって組み合わせ得る。したがって、低速では、快適性がAVの最大加速度を制限し得る。一方、高速では、AVの加速制限(例えば、出力)がAVの加速度を制限し得る。速度プロファイルは、速度(走行線に沿った任意の位置における速度制限)と加速度(任意の速度における加速制限)の制約を満たす粗走行線に沿った最速の速度プロファイルを解決することによって生成し得る。
また、上記以外の入力を用いて、戦略的スピード計画714を計算し得る。例えば、道路μ、最小巡航時間、近隣タイプ、又は他の入力のうちの1つ以上を使用し得る。道路μは、氷、雨、斜面等による道路の滑り易さに関連する。
最小巡航時間は、AVの速度を一定速度に設定し得る最小時間長に関連する。例えば、道路の区間長が500mであり、その区間の制限速度が45mPHである仮定する。さらに、AVの運動モデルを考慮して、AVが停止位置から45mPHの制限速度に達するためには250mを要し、45mPHの現在の速度を考慮して、AVが停止するためには250mが必要であると仮定する。AVが道路区間の始点で停止位置にあり、道路区間の終点でAVを再び停止する場合、AVが制限速度45mPHに達すると、AVは直ちに減速を開始しなければならない。このような速度プロファイルは、AVの乗員にとって望ましくないかつ/又は自然なものでない場合がある。そのため、例えば、最小巡航時間は、AVが減速(又は加速)を開始する前に、最小巡航時間(例えば、3秒)の間速度を維持しなければならないことを示し得る。したがって、より自然な速度プロファイルを提供し得る。
近隣タイプは、通常の人間の運転行動をモデル化するために使用することができ、これは、AVが通過している近隣のタイプに依存し得る。例えば、人間の運転者は、たとえ両方の近隣地域が同じ掲示制限速度を有していても、住宅地(例えば、子供たちが通りで遊んでいることを観測し得る場所)においては掲示制限速度を下回る速度で運転してもよく、工業地域においては少なくとも掲示制限速度で運転し得る。
図8は、本開示の実装による走行可能領域及び離散時間速度計画を決定するための処理800のフローチャートである。処理800の一部又は全ての態様は、図1に示す車両100及び図2に示す車両202を含む車両、又は図2に示すコントローラ装置232を含むコンピュータ装置で実装し得る。1つの実装では、処理800のいくつかの又は全ての態様は、本開示に記載される特徴のいくつか又は全てを組み合わせたシステムで実施し得る。例えば、処理800は、図5のオブジェクト回避レイヤ506によって利用され得る。
図9を参照して処理800を説明する。図9は、本開示の実装による走行可能領域及び離散時間速度計画を決定する図である。図9は、走行可能領域(横方向制約)及び制限された速度プロファイルの生成を示しており、これは離散時間で表され得る。走行可能領域は、例えば、自律走行車が走行可能な車両交通ネットワークの領域であり得る。最初に(例えば、処理800の開始時に)、走行可能領域は、AVが安全に走行すると予測できない領域を含んでもよい。処理800は、AVが安全に走行すると予測できない領域の走行可能領域を調整する(例えば、切り取る)。処理800は、調整された走行可能領域をもたらす。
動作810では、処理800は、AVに対して近傍のオブジェクトを識別する。一例では、近傍のオブジェクトは、世界モデルモジュール402によって維持される外部オブジェクトの少なくとも一部であってもよい。一例では、近傍のオブジェクトは、世界モデルモジュール402によって維持される全てのオブジェクトであり得る。別の例では、近傍のオブジェクトは、世界モデルモジュール402によって維持されるオブジェクトのサブセットであり得る。例えば、近傍のオブジェクトは、AVから所定の距離内のオブジェクト、AVの予測到着時間内のオブジェクト、又はオブジェクトのサブセットを識別するための他の基準を満たすオブジェクトであり得る。例えば、図9のビュー910を参照すると、AV912に対して、静止車両920、静止車両914、動的対向車両918、及び動的車両916が識別される。1つの実装では、動作810は、図10−12に関して説明したように、オブジェクトを表すドット(すなわち、境界点)及び/又はドットのグループを識別する。
動作820において、処理800は、走行可能領域を抽出する。走行可能領域は、AV912が(例えば、法的及び/又は物理的に)走行可能な領域であってもよい。一例では、走行可能領域を粗走行線から抽出し得る。例えば、走行可能領域は、粗走行線に沿って(例えば、縦方向に)AVから所定の距離であり得る。図9のビュー930における走行可能領域932は、走行可能領域の一例である。一例では、走行可能領域932は、中央分離帯934と路肩936とによって(すなわち、横方向に)囲まれた領域であり得る。一例では、AV912の現在位置に基づいてHD地図から走行可能領域を抽出し得る。走行可能領域は、AV912が配置されている車線(又は道路、又はその他の地域)の左右境界によって囲まれ得る。例えば、走行可能領域は道路の中心線をまたいでもよい。すなわち、逆方向の車線を走行可能領域に含め得る。そのため、ビュー930では、中央分離帯934が存在しない場合、走行可能領域は、走行可能領域938であってもよい。
処理800は、次に、AVが(例えば、安全に)走行できない部分を走行可能領域から除去する。「調整された走行可能領域」という用語は、本明細書に記載された静的及び/又は動的オブジェクトを考慮して領域が走行可能領域から除去された後の走行可能領域を指すために本明細書で使用される。静的及び/又は動的オブジェクトがAVの軌道に干渉しない場合、調整された走行可能領域は、走行可能領域と同じである。
動作830において、処理800は、静的オブジェクトに対して走行可能領域を調整する。すなわち、処理800は、静的オブジェクトが位置する走行可能領域の部分を走行可能領域から除去する(例えば、切り取る)。これは、AVが静的オブジェクトの周囲をナビゲート(例えば、走行)するように制御されるためである。図9のビュー940は、走行可能領域の一部を切り取ることを示す。静止車両914を回避するために、処理800は、走行可能領域932のカットアウト942を切り取る。カットアウト領域のサイズは、静的オブジェクトのサイズの推定値に基づいて決定し得る。カットアウト領域のサイズは、AVが静的オブジェクトに近づき過ぎないようにクリアランス領域を含み得る。
図10−12を参照して、静的オブジェクトの走行可能領域を調整する例をさらに説明する。以下、図13を参照して、静的オブジェクトの走行可能領域の調整処理の一例を説明する。
動作840において、処理800は、静的オブジェクトに関して離散時間速度計画を調整する。例えば、障害物又は他の道路ユーザがいない場合、離散時間速度計画は戦略的速度プロファイルに従う。例えば、調整された走行可能領域が静的オブジェクトを考慮した狭い経路を含む場合、戦略的プロファイルに逐語的に(すなわち、戦略的プロファイルに設定された通りに)従う(その速度を使用する)代わりに、処理800は、AVの速度を快適な速度まで減少させるように離散時間速度計画を調整する。例えば、静的オブジェクトを考慮して調整された走行可能領域が静的閉塞を含む場合、処理800は、AVが静的閉塞の前に所定の距離で停止するように離散時間速度計画を調整する。
動作850において、処理800は、近くにある動的オブジェクトのそれぞれについて、各経路を識別する(例えば、予測する、計算する、生成する、受信する、又は他のやり方で識別する)。一例では、少なくともいくつかの動的オブジェクトの各経路(すなわち、軌道)の予測は、図4の世界モデルモジュール402等の世界モデルで維持し得る。したがって、処理800は、世界モデルから各経路を受信してもよい(例えば、要求する、読み取る、又は他のやり方で受信する)。
例えば、処理800は、動的対向車両918が静的車両920を迂回するように経路922を辿ること、及び動的車両916が静的車両914を通過した後で経路924を辿ることを予測する(例えば、予測を受信する、又は他のやり方で予測する)。1つの実装では、動作820は、処理800のインスタンス(すなわち、実行)を使用して、動的オブジェクトの経路を識別する。一例では、処理800は、動的オブジェクトの経路を予測するときに、AVを動的オブジェクトの近傍のオブジェクトのリストから除外する。
一例では、動的オブジェクトの経路を予測することは、他の動的オブジェクトのそれぞれの速度及び動的オブジェクト間の進路権の推定に基づいてもよい。進路権の推定の一例では、第2の車両が車線内で第1の車両に追従している(すなわち、その後ろにある)場合、第2の車両の存在下で第1の車両がシミュレーションされる(すなわち、第1の車両について経路が予測される)が、第2の車両は第1の車両が存在しない状態でシミュレーションされる。
そのため、軌道プランナ500のインスタンスは、軌道プランナ500を含む自律走行車専用とすることができ、軌道プランナ500の1つ以上の他のインスタンスは、自律走行車によって使用されて、自律走行車に対して可視である動的オブジェクト(例えば、世界モデルモジュール402によって維持される動的オブジェクト)の軌道を予測し得る。
動作860において、処理800は、動的オブジェクトのための走行可能領域を調整する。すなわち、処理800は、各動的オブジェクトのそれぞれの予測軌道に基づいて、走行可能領域の一部を切り取る。処理800は、各動的オブジェクトの位置に関するタイミング情報を使用して、走行可能領域の追加部分を切り取る。動的オブジェクトのための走行可能領域内のカットアウトは、動的オブジェクトに対する予測のタイミングと、(動作840に関して説明したように)今度は静的オブジェクトを考慮している離散時間速度計画によって生成されるタイミングとを比較することによって生成される。すなわち、処理800は、動的オブジェクトについて、及び動的オブジェクトの予測された軌道に基づいて、動的オブジェクトが、同じ離散的時点におけるAVの位置に対して異なる離散的時点に位置する場所を予測し得る。図14−16を参照して、動的オブジェクトの走行可能領域を調整する例を以下にさらに説明する。図18を参照して、動的オブジェクトの走行可能領域を調整する処理の一例を以下に説明する。
動的オブジェクトの位置は、AVの予測位置と一致させて、カットアウト部分を決定する。上述のように、AVの予測位置は、動作840で調整された(すなわち、静的オブジェクトを考慮した)離散時間速度計画に基づく。カットアウトは、動的オブジェクトの現在の位置に対応しない場合があり得る。むしろ、カットアウトは、AV及び動的オブジェクトが出会うと予測される位置に基づいてもよい。動的オブジェクトの予測軌道が走行可能領域と干渉しない場合、動的オブジェクトに対して走行可能領域のいかなる部分も切り取られない。動的オブジェクトの予測された軌道が走行可能領域と干渉する場合、動的オブジェクトとの潜在的な衝突を回避するために、走行可能領域の1つ以上の部分が切り取られる。
図9のビュー950は、動的オブジェクトに対する走行可能領域の調整(すなわち、動作860)を示す。処理800は、動的対向車両918が静的車両920を迂回する(例えば、避ける)ために経路922を辿ることを予測する。処理800はさらに、AV912がその現在の軌道に沿って進み続ける場合、AV912と動的対向車両918とが位置954の周囲で出会うことを予測する。そのため、処理800は、走行可能領域932からカットアウト956を切り取る。
動作870において、処理800は、動的オブジェクトに対して離散時間速度計画を調整する。(この時点において静的オブジェクトと動的オブジェクトの両方を考慮して)調整された走行可能領域がAVと同じ方向に走行する動的オブジェクトを含む場合、動的オブジェクトは縦方向制約としてラベル付けされ、AVが快適な速度及び距離でブロックしているオブジェクトに従うように離散時間速度計画が調整される。
図9のビュー960は、動的オブジェクトに対する離散時間速度計画を調整する例(すなわち、動作870)を示す。処理800は、動的車両916がAV912の調整された走行可能領域内にあり、AV912が動的車両916を通過することは、例えば、動的車両916の縁部と調整された走行可能領域の境界との間に安全なギャップが存在しないため、安全でないと判断する。このようにして、AV912は、動的車両916の後方を追従する。動的車両916が戦略的速度計画よりも遅く移動している場合、AVが快適な速度及び距離で動的車両916に従うように離散時間速度計画が調整される。また、ビュー960は、AV912のための軌道962が、例えば、カットアウト956に基づいていることを示す。
別の例では、動的車両916自体が縦方向制約を有すると決定されると仮定する。例えば、第2の車両(図示せず)が動的車両916の前方にあってもよい。そのため、第2の車両自体も、AV912に対する別の縦方向制約とみなし得る。そのため、第1の離散時間速度計画(例えば、第1の減速計画)は、動的車両916に基づいてAV912について決定してもよく、第2の離散時間速度計画(例えば、第2の減速計画)は、AV912について決定し得る。AVの離散時間速度計画としては、第1の離散時間速度計画と減速度の大きい第2の離散時間速度計画のいずれかを選択し得る。より一般的には、AVの制約に関して制約であると決定されたオブジェクト自体をAVの制約として扱ってもよい。
調整された走行可能領域964は、処理800の動作から生じる調整された走行可能領域を示す。
図10−12は、本開示の実装による静的オブジェクトのための走行可能領域を調整する例1000、1100、1200である。例1000、1100、1200は、走行可能領域の静的境界を決定することを示す。すなわち、図10−12は、図8の動作830に関して説明した静的オブジェクトの走行可能領域の調整例である。すなわち、例1000、1100及び1200は、AVの粗走行線に沿って、AVが静的オブジェクトを参照して走行し得る場所を決定することを例示している。
図10の例1000では、AV1002の粗走行線は、粗走行線1004によって表される。粗走行線1004は、本明細書では、粗走行線とも呼ばれる。粗走行線1004は、図5の基準軌道生成レイヤ504に関して説明したように決定(例えば、計算、生成等)し得る。例1000は、AV1002の走行可能領域の横方向境界を決定するための動作830の一例を示す。すなわち、例1000は、静的オブジェクトを考慮して、例えば、AV1002の走行可能領域の左右境界を決定することを示す。
このようにして、走行可能領域(すなわち、図9の走行可能領域932等の非調整の非カットアウト走行可能領域)が決定される。例えば、走行可能な領域はデフォルトの幅を有してもよい。デフォルトの幅は、AVの現在の車線又は現在の道路に基づいてもよい。デフォルトの幅は、既定の幅(例えば、8メートル)によって定義され得る。したがって、走行可能領域は道路の中心線を横断し得る。なお、デフォルトの走行可能領域は、中央分離帯にあり得るバリア(例えば、コンクリートバリア)によって制限され得ることに留意されたい。そのようなバリアは静的オブジェクトであり、走行可能領域を制限する。
AV1002の走行可能領域は、複数のビンに分割される。各ビンは、中心点1006等の中心点を有する。中心点は等間隔に配置され得る。例えば、中心点は約2メートル離れていてもよい。各ビンの左右の境界は、粗走行線1004の方位に関連させ得る。右境界1018及び左境界1020はビン1022の境界を示す。
境界点1008等の境界点は、静的オブジェクトから発生する。例えば、境界点は、LiDARセンサ、レーザポインタ、レーダ、又は図1のセンサ126等の任意の他のセンサからのデータから導出され得る。境界点は、占有されているか、そうでなければAVが侵入できない(x、y)座標を表し得る。静的オブジェクトに対応する各境界点は、境界点を含むビンに割り当てられる。例えば、境界点1008は、ビン1022に割り当てられる。(例えば、ビン内で、又はビンの境界を越えて)隣接する境界点は、1つ以上の静的オブジェクトに対応し得る。
各ビンの左右の境界は、ビンに割り当てられた境界点に基づいて定義(すなわち、設定)し得る。例えば、ビン1024が境界点を含まないので、ビン1024の右境界1016及び左境界1010は、(調整されていない)走行可能領域と整合する。一方、ビン1026の左境界1012は、カットアウト1028が走行可能領域から除外されているため、走行可能領域と整合しておらず、ビン1026の右側境界1014も、カットアウト1030が走行可能領域から除外されているため、走行可能領域と整合していない。
調整された走行可能領域の境界は、調整された走行可能領域の左境界を形成する分割線1032と、調整された走行可能領域の右境界を形成する分割線1034とによって表される。図を明確にするために、分割線1032、1034は、実際の境界からオフセットして示されている。すなわち、例えば、分割線1032は境界1010及び境界1012と重なっているが、明確にするために、分割線1032は境界1010及び境界1012から僅かにオフセットされて示されている。分割線1032は、調整された走行可能領域の計算された左境界である。分割線1034は、調整された走行可能領域の計算された右境界である。
計算された左右の境界は、AV1002が粗走行線1004に沿って継続し得るかどうかを決定するために使用される。AV1002を各ビンの中央まで(物理的にではなく、仮想的に又は計算上)前進させて、(コンピュータの境界を考慮した)ビンの幅は、AV1002がビンを何とか安全に通り抜け得るようなものであるかどうかを決定し得る。例えば、ビン1022に関して、AV1002は、ビンの左境界(すなわち、左側の計算された境界)を安全にクリアすることができない。したがって、以下にさらに説明するように、AV1002の軌道は変更される。例えば、AV1002を停止させ得る必要があるので、AV1002の軌道は調整する必要がない場合があり、又はAV1002の軌道を他のやり方で変更し得る。
図11は、静的境界を決定し、本開示の実装に従って離散時間速度計画を調整する際に考慮される閉塞を識別する例1100を示す。例1100では、粗走行線1103は、AV1102の粗走行線である。AV1102のデフォルトの走行可能領域は、左境界1104と右境界1106によって定義される。例1100では、AV1102を含む車線の左車線境界1108及び右車線境界1110が示されている。例1100では、走行可能領域はAV1102の車線(すなわち、左車線境界1108及び右車線境界1110によって囲まれた車線)に限定されている。そのため、車線の左右の境界は静的オブジェクト用に調整される。
左境界1104及び右境界1106は、最大可能走行可能領域(すなわち、最大境界)を定義し得る。しかしながら、AV1102を車線内に維持することが好ましい場合があるので、左車線境界1108及び右車線境界1110は、走行可能領域の境界を定義する。一例では、AV1102が自身の車線内で(例えば、左車線境界1108と右車線境界1110との間で)安全に走行できない場合、AV1102が車線境界の外であるが最大境界の中で走行し得るかどうかを評価し得る。走行可能領域を拡張することは、「拡張走行可能領域検査」と呼ばれてもよい。
右車線境界1110は、部分1112を含む。この部分1112は、後述するように、走行可能領域のこの部分が調整されるため、破線として示されている。
図10に関して説明したように、AV1102の走行可能領域は複数のビンに分割されており、ビン1116、1118等の各ビンには静的オブジェクトに対応する境界点が割り当てられている。ビン1116、1118の境界点は、大きな長方形のオブジェクトに対応しているように見えるので、そのオブジェクトは(例えば、図4の世界モデルモジュール402によって)「トラック」として分類し得る。
オブジェクト(静的又は動的オブジェクト)に対応する(すなわち、それに基づいて定義される)境界は、ハード境界と呼ばれてもよい。ハード境界とは、例えば、計画した軌道がハード境界と交差する場合に、別のオブジェクトと衝突する可能性があるものである。一方、車線及び/又は道路標示は、ソフト境界と呼ばれ、合法的又は論理的な境界を表し得る。ソフト境界とは、例えば、計画された軌道がハード境界でもないソフト境界を横断する場合に、AVの動きが違法であり、かつ/又は社会的に受け入れられないが、AVは安全であり得るものである。例えば、図11に示すように、左境界1104(すなわち、左側の走行可能領域の境界)は左ハード境界を定義し、左車線境界1108は左ソフト境界を定義する。右側のハード境界は、右側の境界1106(すなわち、右側の走行可能領域の境界)と境界1114で構成され、右側のソフト境界は、右側車線境界1110及び境界1114によって定義される。
ビンの左右のハード境界間の距離を考慮して、経路が存在するかどうかを決定するために詳細検査が行われ得る。境界1114と左車線境界1108との間の距離1120は、AV1102がその中を走行する(すなわち、通過する)には狭過ぎると判断される。したがって、ビン1116に対応する位置1122は、静的閉塞としてマークされる。このため、AV1102は、ビン1116、1118の境界点で表される(複数の)オブジェクトを通過することができない。したがって、AV1102は、位置1122に対応する静的閉塞の前で停止することになる。したがって、モジュール530は、AVが静的閉塞の前で停止するように離散時間速度計画を調整し得る。
別の例では、静的閉塞のために停止する代わりに、軌道プランナは、少なくともビン1116及び1118に対して、左車線境界1108を横切って、走行可能領域が延びるようにギャップ1124を通る軌道を決定する。例えば、左車線境界1108が道路の中心である場合、軌道プランナは、対向する動的オブジェクトが存在しないので、車線境界を横断しても安全であると判断し得る。
別の例では、静的閉塞の前でAVが停止するのに十分な距離がない場合、離散時間速度計画は、AVを減速させることしかできないので、AVが右ハード境界を横断して静的オブジェクトに衝突することを回避するために左ソフト境界を横断し得るように軌道を決定し得る。そのため、ハード境界とソフト境界の両方の認識を維持することにより、軌道プランナは、緊急状況下におけるオブジェクト回避操作へのシームレスな遷移を伴うほとんどの状況下で合法的かつ社会的に許容可能な走行である軌道を生成し得る。
一例では、ビンの境界は、ビン内のオブジェクト(例えば、境界点のグループ)の状態に基づいて調整され得る。例えば、ビン内の境界点を経時的に追跡し得る。ビン内の境界点のグループがわずかに(すなわち、移動の閾値レベル未満)移動していると判断される場合には、より高いレベルのクリアランスが要求され得る。すなわち、AV1102は、境界点が移動している場合には、境界点からさらに離れて走行し得る。一方、境界点が安定している(すなわち、移動していない)場合には、AV1102を境界点により近づけて走行し得る。そのため、ビンの境界(例えば、境界1114)は、ビン内の境界点の移動のレベルに応じて、経時的に調整し得る。
一例では、時間tにおいて境界点の移動が検出された場合、境界点の移動が継続しているか否かに関係なく、境界点はその後(すなわち、後の時間t+xにおいて)移動しているとみなされる。
ビン内の境界点の移動に基づいてビンの境界を経時的に調整することは、フィルタされた横方向の限界と呼んでもよい。このコンテキストにおける「フィルタされる」とは、経時的に横方向の限界(例えば、ビン境界)が変更され得ることを意味する。
図12は別の例であり、本開示の実装に従って静的境界を決定する例1200である。例1200では、粗走行線1203は、AV1202の粗走行線である。AV1202のデフォルトの走行可能領域は、左車線境界1204及び右車線境界1206によって定義される。走行可能領域からカットアウト1208とカットアウト1210が切り取られる。この例では、カットアウト1210は、走行可能領域の中央にある。
カットアウト領域の境界をデフォルトの走行可能領域の境界まで延長するかどうかは、カットアウト領域とデフォルトの走行可能領域の境界との間の距離に依存し得る。例えば、カットアウト1210の右端と右車線境界1206との間のギャップ1216に対応する距離が閾値距離未満である場合、カットアウト1210は、カットアウト1210の左境界1217から右車線境界1206に延びる領域によって定義し得る。一例では、閾値距離はAV1202の幅に関連し得る。例えば、閾値距離は、AV1202の幅の1.5、2.0倍等とし得る。同様に、ビンの境界点のクラスタ(例えば、クラスタ1209)と車線境界(例えば、右車線境界1206)との間のギャップ(例えば、ギャップ1207)も決定される。ギャップ1207の場合、(AV1202がギャップを通過することができないように)ギャップ1207は閾値距離よりも小さくなるように決定されるため、カットアウト1208は右車線境界1206まで延長される。
AV1202の軌道プランナは、距離1212が、AV1202が距離1212に対応するギャップを通過し得るようなものであると決定してもよい。カットアウト1210が粗走行線1203に重なると、AV1202の軌道プランナは詳細検査を実行して、AV1202がそのギャップを通過し得るようにカットアウト1210の左又は右のギャップを決定する(例えば、見つける)。詳細検査の結果、ギャップが見つからない場合、AV1202はブロックされていると見なされ、停止しなければならない。
例1200では、ギャップ1214及びギャップ1216は共に、AV1202がいずれかのギャップ1214、1216を通過し得るようになっている。一例では、ギャップ1214、1216のうちの1つがランダムに選択される。別の例では、軌道プランナは、カットアウト1208を通過するために左方向を既に選択しているため、ギャップ1214(すなわち、カットアウト1210の左側のギャップ)を選択する。
第2のオブジェクトに関して可能な2つの経路(例えば、オブジェクトの周りの左経路と右経路)を考慮し、かつ第1のオブジェクトに関する(例えば、右又は左に)第1の経路を考慮して、「多仮説追跡」は、第2のオブジェクトに関する第2の経路(例えば、軌道)を決定することを意味する。
図13は、本開示による静的境界を決定するための処理1300のフローチャートである。処理1300の動作の一部又は全部は、処理800の動作830で実行され得る。
動作1310では、処理1300は、粗走行線に沿って境界点をビン内に編成する。境界点は、図10−12に関して説明したように、粗走行線に沿ってビンに編成される。
動作1320において、処理1300は、粗走行線に照らしてビンの境界を検査する。ビンの境界は、粗走行線に照らして検査され、AVが少なくとも1つのギャップを通過し得るようなギャップが存在するかどうかが決定される。一例では、動作1320は、動作13202〜132012によって実行され得る。動作1320は、例えば、図10のビン1026の左境界1012及び右境界1014に関して説明したようなビン境界点に基づいて、走行可能領域のビンの左右の境界を調整する。
動作13202では、処理1300は実際の走行線を推定する。例えば、カットアウト1208に関して説明したように、処理1300は、カットアウト1208の左側にある実際の走行線を決定する。
動作13204において、処理1300は、通過可能なギャップを識別する。すなわち、処理1300は、通過可能なギャップの数を識別する。例えば、図11のビン1116の左右の境界を考慮して、処理1300は、AV1102が距離1120によって定義されるギャップを通過し得るかどうかを決定する。その場合、一方のギャップが識別される。同様に、処理1300は、AV1202が図12の距離1212によって定義されるギャップを通過し得るかどうかを決定する。
動作13206において、単一の(すなわち、一方の)ギャップが識別された場合、処理1300は132012で終了する。すなわち、軌道はギャップを通過することを許可される。動作13204で複数のギャップが識別された場合、処理1300は動作13208に進む。例えば、AV1202及びカットアウト1210に関して、処理1300は、2つのギャップ、すなわち、カットアウト1210の右側のギャップ及び左側のギャップを識別する。
動作13208において、処理1300は、図12のギャップ1214、1216に関して説明したように、他のギャップが利用可能であるかどうかを決定するために詳細検査を実行する。例えば、ギャップ1214が小さ過ぎてAV1202がカットアウト1210の左側を通過できないと判断された場合、処理1300は、AV1202がギャップ1216を通過し得るかどうかをテストし得る。動作13208において、処理1300は、左又は右のいずれかを選択し、どちらも可能でない場合、処理1300は、静的閉塞が存在すると決定する。
動作132010において、先読み距離が完全に検査されると、処理1300は、動作132012で終了する。そうでない場合、処理1300は動作13202に戻り、追加の障害物を検査する。
先読み距離は、AVの速度によって変化する可能性があり得る。例えば、AVの速度に応じて先読み距離を変化させることで、計算時間を短縮することが可能であり、その一方で、前方に障害物又は横方向制約が検出された場合に、AVを停止させるか又は快適に(例えば、安全に)操縦するのに十分な時間を確保し得る。例えば、先読み時間の4秒が必要とされる場合、AVが12メートル/秒で移動しているとすると、適切な先読み距離は48メートルになり得る。AVが30メートル/秒で移動している場合(例えば、高速道路を走行しているとき)、適切な距離は120メートルであろう。
再び図5を参照すると、離散時間速度計画モジュール528は、基準軌道生成レイヤ504によって(より詳細には、戦略的速度計画モジュール524によって)決定された戦略的速度計画から目標速度及び加速度を生成し得る。離散時間速度計画モジュール528は、縦方向制約から(例えば、それに基づいて)目標速度及び加速度を生成し得る。一例では、縦方向制約は、(後述する)停止線、(後述する)仮想停止線、静的障害物(すなわち、静的オブジェクト)、及び/又は動的障害物(すなわち、動的オブジェクト)を含み得る。離散時間速度計画モジュール528は、目標速度及び加速度を反復計算する。目標速度及び加速度は、先読み時間(すなわち、将来の計画対象期間)について計算される。一例では、先読み時間は6秒であり得る。
停止線は、AVが進行する前に停止することが法律で義務付けられている線を表す。一例では、停止線は、道路上で塗料によってマーキングされ得る。別の例では、交差点構造及び停止標識位置に基づいて停止線を推定し得る。仮想停止線は、AVによって、法律で義務付けられていないが、停止して交差情報を検査することが期待される重要な位置を表すために使用され得る。例えば、左折時に、AVを停止させ、交差するトラフィックに譲らせるために、交差点の中央で仮想停止線が使用されてもよい。
離散時間速度計画モジュール528は、縦方向制約(すなわち、AVの縦方向にある静的又は動的オブジェクト)に対するそれぞれの目標速度及び/又は縦方向制約に対するそれぞれの目標距離を計算する。
離散時間速度計画モジュール528は、静的及び/又は動的オブジェクトの少なくともいくつかに対して追跡モードを設定(すなわち、選択、決定、又は他のやり方の設定)し得る。例えば、追跡モードは、「ギャップ閉鎖」、「ギャップ維持」、「ギャップ開放」、「ブレーキ」、「追従」のいずれかであり得る。例えば、図9の動的車両916に関して、離散時間速度計画モジュール528は、「ギャップ閉鎖」の追跡モードを決定し得る。例えば、図11のビン1116のオブジェクトに関しては、追跡モードを「ブレーキ」と決定し得る。利用可能な追跡モードには、より少ない、より多い、又はその他の追跡モードが含まれ得る。追跡モードは、離散時間速度計画モジュール528によって使用される調整パラメータの集合を選択するために使用し得る。調整パラメータは、目標加速度、ヒステリシスパラメータ、及び他の調整パラメータを含み得る。
次に、離散時間速度計画モジュール528の動作を説明するための例を示す。縦方向制約が見つからない場合、離散時間速度計画モジュール528は、(基準軌道生成レイヤ504によって決定されるように)AVが戦略的速度計画に基づいて動作可能であると判断し得る。一方、追跡モードが「ブレーキ」であると決定された縦方向制約が(例えば、図11のビン1116のオブジェクトに関して)検出された場合、離散時間速度計画モジュール528は、AVを停止させるための速度プロファイルを計算する。すなわち、AVを停止させるための減速速度プロファイルを計算する。
一例では、速度プロファイルは、AVの現在の速度と縦方向制約への距離とを使用して、縦方向制約の前でAVを停止させる減速速度プロファイルを計算する。
図14−16は、本開示の実装に従って動的境界を決定する例1400、1500、及び1600である。すなわち、図14−16は、図8の動作850に関して説明した動的オブジェクトの走行可能領域を調整する例である。すなわち、例1400、1500及び1600は、AVの粗走行線に沿って、AVが動的オブジェクトを参照して走行され得る場所を決定することを示す。
各動的オブジェクトは、利用可能な複数のクラスのうちの少なくとも1つに分類し得る。例として、使用可能なクラスには、「横方向制約」、「縦方向制約」、「対向の横方向制約」、及び「対向の縦方向制約」が含まれる。他のクラスも利用可能である。
「横方向制約」として分類される動的オブジェクトは、AVの速度ではなく経路に影響を与える。例えば、動的オブジェクトは、AVのそれと略直交する方向に移動していてもよい。すなわち、動的オブジェクトは、AVの経路を妨げる(すなわち閉塞)ことなく、AVの左側又は右側のいずれかから移動していてもよい。したがって、図5の軌道プランナ500等の軌道プランナは、動的オブジェクトを回避するためにAVの軌道を調整する必要があり得る。すなわち、AVは動的オブジェクトとの衝突を避けるために(左又は右に)移動する必要があり得る。
「縦方向制約」として分類される動的オブジェクトは、AVの経路ではなく速度に影響を与える。例えば、動的オブジェクトは、AVと略同じ方向に移動し、AVの経路内にある場合があり得る。すなわち、縦方向制約オブジェクトは、AVの現在の速度でAVの経路を妨げる(すなわち、遮る)ことになる。したがって、AVの軌道プランナは、AVの軌道を調整する必要はないが、動的オブジェクトとの衝突を回避するためにAVの速度を(例えば、軌道プランナの離散時間速度計画モジュール528によって)調整する必要があり得る。縦方向制約の一例は、図9の動的車両916である。すなわち、縦方向制約オブジェクトは、AVの前方にあり、かつAVよりも低速で移動している車両であり得る。そのため、動的オブジェクトとの追突を回避するためにAVを減速させる必要があり得る。
対向する横方向制約オブジェクトは、横方向制約オブジェクトと同様であるが、対向する横方向制約オブジェクトがAVとは逆方向に移動する点が異なる。図9の動的対向車両918は、対向する横方向制約オブジェクトの一例である。このような場合、AVは、(例えば、図9の軌道962に関して説明したように)減速することなく移動され得る。
対向する縦方向制約オブジェクトは、縦方向制約オブジェクトと同様であるが、対向する縦方向制約オブジェクトがAVとは逆方向に移動する点が異なる。この場合、図16を参照してさらに説明するように、AVは停止する。
そのため、図5のオブジェクト回避レイヤ506のモジュール532は、動的オブジェクトの分類に基づいてAVの離散速度計画を制約する(すなわち、制約を適用する)。例えば、AVの軌道をブロックする対向する動的オブジェクトは、車線内(すなわち、AVと同じ車線内の)静的オブジェクトとして処理し得る。例えば、先行の動的オブジェクト(すなわち、AVの前方にあり、AVと同じ方向に移動している動的オブジェクト)は、離散時間速度計画では縦方向制約として処理され得る。例えば、AVの計画された走行線の近くにある動的オブジェクトは、横方向制約として処理され得る。
図14の例1400では、AV1402が粗走行線1403に沿って移動している。静的オブジェクトは見あたらない。したがって、図10−12で説明したように、静的オブジェクトに合わせて算出された走行可能領域の境界である左境界1417及び右境界1418は、走行可能領域の境界と一致する。
車両1404が、道路の右路肩から(又は、AV1402を含む車線の右側の車線から)経路1420に沿ってAVの経路に移動していると予測される。そのため、車両1404は、最初に、横方向制約として分類される。車両1404の予測経路は経路1420であり、これは粗走行線1403の近くにある(例えば、隣接している)。したがって、モジュール532は、車両1404を横方向制約として分類し続ける。
モジュール532は、異なる離散的時点におけるAV1402の位置を決定(例えば、予測)し得る。すなわち、モジュール532は、異なる時点で、粗走行線1403に沿って到着する位置を決定する。例えば、時間tにおいて(例えば、1秒で)、AV1402は位置1406にあると予測され、時間t+1において(例えば、2秒で)、AV1402は位置1408にあると予測され、時間t+2において(例えば、3秒で)、AV1402は位置1410にあると予測される。
例1400、1500、及び1600に関して将来の3秒後の位置(すなわち、3秒の時間ウインドウ)が示されているが、事前定義された時間ウィンドウを考慮して、より多くの又はより少ない位置が決定(例えば、予測、計算等)され得る。例えば、時間ウィンドウは6秒である。予測位置の頻度も変化し得る。一例では、時間ウィンドウは6秒であり、位置が半秒ごとに決定され得る。そのため、12箇所が予測される。
上述のように、軌道プランナの第2のインスタンスは、車両1404を追跡(例えば、その軌道を予測)してもよい。そのため、第2の軌道プランナのモジュール532は、車両1404の位置を決定(例えば、予測)し得る。例えば、時間tにおいて(例えば、1秒で)、車両1404は位置1412にあると決定され、時間t+1において(例えば、2秒で)、車両1404は位置1414にあると決定され、時間t+2において(例えば、3秒で)、車両1404は位置1416にあると決定される。例として、AVのインスタンス化された全ての軌道プランナについて、同じ時間ウィンドウと予測の頻度を同じにすることができまる。しかしながら、必ずしもその必要はない。時間ウィンドウと頻度は、動的オブジェクトのタイプ(例えば、自転車、歩行者、スポーツカー、セダン、大型トラック等)によって異なり得る。AV1402の走行可能領域は、車両1404の位置に対応する領域を除去するように調整される。
図14の例1400では、車両1404とAV1402とが略同時に同じ位置にあると決定される。そのため、例えば、経路1422に対応するビンの(この例では右側の)境界を設定することによって、経路1422に対応する部分がAV1402の走行可能領域から切り取られる。図12の距離1212に関して説明したように、距離1424が、AV1402が距離1424によって定義されるギャップを何とか通り抜け得るようなものである場合、AV1402の走行線は、ギャップを通って調整される(すなわち、AV1402は左に押される)。
図15の例1500では、AV1502が粗走行線1503に沿って移動している。静的オブジェクトは見あたらない。したがって、走行可能領域の左境界1517及び右境界1518は、静的オブジェクトに対して調整されない。しかしながら、車両1504が、道路の右路肩から(又は、AV1502を含む車線の右側の車線から)経路1520に沿ってAV1502の経路内へと移動していると予測される。
最初に、例えば、車両1504が最初に検出されたときに、それは横方向制約として分類し得る。したがって、図14の車両1404に関して説明したように、車両1504に関して横方向制約を適用し得る。
図15に関して説明したように、時間t、t+1、及びt+2におけるAV1502の位置は、それぞれ位置1506、1508、及び1510であると予測され、時間t、t+1、t+2における車両1504の位置はそれぞれ1512、1514、1516と予測される。そのため、車両1504の軌道(すなわち、経路1520)は、AV1502の粗走行線1503に重なると予測される。したがって、車両1504は縦方向制約として分類される。これにより、車両1504の分類が「横方向制約」から「縦方向制約」に変更される。したがって、軌道プランナは、(図14に関して上述したように)AV1502が左に移動するように、AV1502の軌道を変更する必要はない。むしろ、離散時間速度計画モジュール528は、AV1502の粗走行線1503に縦方向制約を適用し得る。すなわち、離散時間速度計画モジュール528は、車両1504を先行車両として離散時間速度計画を計算する。「追従」の追跡モードは、離散時間速度計画モジュール528によって、AV1502が車両1504の後方に追従するように設定し得る。離散時間速度計画モジュール528はまた、例えば、AV1502が車両1504より前に位置1506に到着しないようにAV1502を減速させる離散時間速度計画を決定し得る。
図16の例1600では、AV1602が粗走行ライン1603に沿って東方向に移動しており、車両1604が西方向に移動している。車両1604は、駐車車両1606を回避するために経路1609を辿ることが予測される。粗走行線1603に沿った時間t、t+1、及びt+2におけるAV1602の位置は、それぞれ位置1610、1612、及び1614であると予測される。時間t、t+1、及びt+2における経路1609に沿った車両1604の位置は、それぞれ1616、1618、及び1620であると予測される。
軌道プランナは、AV1602と車両1604とが略同じ位置(すなわち、位置1612、1618に対応する交差位置)に同時に(すなわち、時間t+2において)存在すると予測されることを決定する。そのため、AV1602が粗走行線1603に沿って進み続けると、車両1604と衝突する可能性が非常に高い。
図16には示されていないが、例1600の走行可能領域は、図9のビュー956のカットアウト950に関して説明したように調整(すなわち、切り取り)される。すなわち、AV1602の走行可能領域は、例えば、経路1609に対応する(重なる)ビンの(この例では、左側の)境界を設定することによって、車両1604の位置に対応する領域を除去するように調整される。
交差位置(すなわち、位置1612、1618)で、軌道プランナは、交差点と走行可能領域の端との間の走行可能領域の幅を評価し得る。すなわち、軌道プランナは、距離1622を評価して、距離1622によって定義されるギャップが、AV1602が通過し得るほど十分に大きいかどうかを決定する。上述したように、距離1622は、交差点を含むビン1608の計算された境界間の距離である。
距離1622が十分に大きくない(すなわち、ギャップが小さ過ぎる)と判断された場合、軌道プランナは、AV1602が車両1604をクリアし得る位置を判断する。一例では、AV1602の予測位置の少なくともいくつかについて、交差点(例えば、Xが正の整数である場合の時間t+Xにおける位置)から開始し、時間的に後退し(例えば、時間t+X−1、t+X−2、...、t−1、tにおける位置の少なくともいくつか)、軌道プランナは、その位置において、AV1602が車両1604をクリアし得るかどうかを決定する。例1600では、軌道プランナは、AV1602が位置1610で車両1604をクリアし得ると判断し得る。
別の例では、車両1604の予測位置の少なくともいくつかについて、交差点(例えば、Xが正の整数である場合の時間t+Xにおける位置)から開始し、時間的に前進し(例えば、時間t+X+1、t+X+2、...、t+X+nにおける位置の少なくともいくつか)、軌道プランナは、その位置において、AV1602が車両1604をクリアし得るかどうかを決定する。
軌道プランナは、車両1604が位置1620にあるときにAV1602が車両1604をクリアし得ると判断する。したがって、軌道プランナ(より詳細には、モジュール530)は、位置1624において静的閉塞を設定する。次に、軌道プランナ(より詳細には、離散時間速度計画モジュール528)は、速度及び/又は減速プロファイルを決定して、AV1602を位置1624で停止させる。このようにして、AV1602は、車両1604が位置1624に到着するまで、位置1624で停止させられ、その時点でAV1602は、粗走行線1603に沿って進んでもよい。
距離1622が十分に大きいと決定された場合、軌道プランナは、図9のビュー962の軌道960に関して示されたように、AV1602が交差点位置で車両1604を避けるように左に移動するように粗走行線1603を調整し得る。
そのため、一例では、オブジェクト回避レイヤ506は、オブジェクトを系統的に処理する。オブジェクトが制約でない場合、それはオブジェクト回避レイヤ506によって無視され得る。
オブジェクトが静的オブジェクトであり、調整された走行可能領域が通過可能である場合(例えば、場合によっては、AVが走行可能領域又は調整された走行可能領域内の1つ以上のギャップを通過し得る場合)、モジュール530は、静的制約(例えば、横方向制約)を適用して、例えば、図12の距離1212に関して説明したように、調整された走行可能領域を決定し得る。
オブジェクトが静的オブジェクトであり、走行可能領域(又は調整された走行可能領域)が通過不能である場合、離散時間速度計画モジュール528は、例えば、図11の位置1122に関して説明したように、離散時間速度プロファイルを調整し得る。
オブジェクトが動的オブジェクトであり、かつオブジェクトが横方向制約である場合、モジュール532は、例えば、図15に関して説明したように、走行可能領域(又は調整された走行可能領域)を調整し得る。
オブジェクトが動的オブジェクトであり、かつオブジェクトが縦方向制約である場合、離散時間速度計画モジュール528は、例えば、図16に関して説明したように、離散時間速度プロファイルを調整し得る。離散時間速度計画モジュール528は、制約を考慮して、将来のウインドウ(例えば、次の6秒間の速度計画)のための離散時間速度計画を生成し得る。
図5に戻ると、軌道最適化レイヤ508は、制約に基づいてAVのための最適軌道を決定するために、制約された動作等の(複数の)最適化動作を実行する。軌道最適化レイヤ508は、(すなわち、最適化動作への入力として)AVの動作モデル(例えば、運動学的動作モデル)、粗走行線(例えば、図10の粗走行線1004、図11の粗走行線1103、図14の粗走行線1403等)、及び/又は、粗走行線に沿ったビンの中心点(例えば、中心点1006)、及び調整された走行可能領域(例えば、調整された走行可能領域の左右の境界)を使用して、AVのための最適軌道を計算(例えば、決定、生成等)し得る。そのため、最適軌道は、粗走行線に沿って、静的及び動的オブジェクトを考慮して、粗走行線及び左側と右側の境界が考慮される。
図17は、本開示の実装による軌道計画のさらなる例1700を示す。以下の例の各々において、図5の軌道プランナ500等の1つ以上の軌道プランナが、自律走行車内で実行され得る。軌道プランナの第1のインスタンスは、自律走行車自体の軌道を決定する。第2の軌道プランナインスタンスは、少なくとも1つの外部動的オブジェクトの各基準走行線を予測する。説明を簡単にするために、本明細書では、「軌道プランナ」は、第1のインスタンス及び/又は第2のインスタンスを参照するために使用される。
第1の例では、AV1702の軌道プランナは、対向車両1704が静的オブジェクト1705を回避するために軌道1706を辿ることを予測する。軌道プランナはさらに、図16に関して説明したように、AV1702が対向車両1704の軌道と走行可能領域の右境界との間のギャップを通過できないことを決定する。そのため、軌道プランナは、対向車両1704が静的閉塞1708を通過するまでAV1702を静的閉塞1708で停止させる速度計画を決定する。
第2の例では、AV1710は(すなわち、AVの軌道プランナによって)動的オブジェクト1712が経路1714を辿ることを決定する。軌道プランナは、AV1710が、(図9の走行可能領域932に関して説明したように)走行可能領域の左ハード境界であり得る道路の中心線を横断せずに、動的オブジェクト1712を通過することができないと判断する。したがって、AV1710の軌道プランナは、AV1710を静的閉塞1716で停止させる速度計画を決定する。別の例では、AV1710は、静的閉塞1716において停止するのではなく、動的オブジェクト1712を通過させるために十分に減速する
第3の例では、AV1720は、対向する動的オブジェクト1722が軌道1724に従うことを決定する。AV1720はさらに、AV1720が軌道1730に沿って、第1の静的オブジェクト1726と第2の静的オブジェクト1728との間にナビゲートされ、そこでAV1720は、静的閉塞1732で計算された秒数の間待機し、その後で進行するように、AV1720の軌道1730を決定する。計算された秒数は、図16の位置1624に関して説明したように、対向する動的オブジェクト1722が静的閉塞1732の位置を通過するのに十分な時間である。
第4の例では、AV1734は、大型の動的オブジェクト1736が右折中であると決定する。AV1734の軌道プランナは、大型の動的オブジェクト1736の運動モデルを使用して、大型の動的オブジェクト1736が大きな回転半径を必要とし、したがって、大型の動的オブジェクト1736が軌道1738を辿ることを決定する。したがって、AV1734の経路が大きな動的オブジェクト1736からクリアされるまで静的閉塞1740においてAV1734が停止するように、AV1734に対する速度計画が決定(例えば、計算、生成等)される。
要約すると、本開示による軌道プランナ(例えば、軌道プランナの走行線データレイヤ)は、基準となる(すなわち、粗い)走行線を決定(例えば、生成、計算、選択等)し得る。軌道プランナは、粗走行線を決定するためにいくつかの入力データを融合し得る。したがって、粗走行線は、(すなわち、複数のタイプの入力データからの)マルチソースされることを意味し得る。入力データは、HD地図データ、遠隔操作データ、記録経路データ、先行車データ、駐車場データ、局所知覚データを含み得る。軌道プランナは、より少ない入力、より多い入力、又は他の入力を使用し得る。
軌道プランナ(例えば、軌道プランナの粗走行線連結レイヤ)は、粗走行線に沿った特定の速度値を含む戦略的速度計画を生成(例えば、決定、計算等)し得る。軌道プランナは、戦略的速度計画を生成するために、道路曲率、道路μ、車両速度及び/又は加速制限、最小巡航時間、近隣タイプの少なくとも1つ、並びにより多く、より少なく、又は他の入力を使用し得る。
軌道プランナ(例えば、軌道プランナの粗走行線連結レイヤ)は、ハード境界(静的及び/又は動的オブジェクトに基づいて設定される)、ソフト境界(例えば、車線マーク)、フィルタされた横方向限界、多重仮説追跡、拡張可能な走行可能領域検査、及び動的オブジェクト分類(例えば、オブジェクトを対向車両、先行車、又は横方向制約として分類する)の少なくとも1つ以上に基づいて、AVのための調整された走行可能領域を決定する。
軌道プランナ(例えば、軌道プランナの離散時間速度計画モジュール)は、例えば、自然加速度プロファイル(例えば、AVの運動モデル)、先行車両加速度プロファイル、及び縦方向制約の限界の決定を用いて、離散時間速度計画を決定(例えば、計算)する。
軌道プランナ(例えば、軌道プランナの最適化された所望の軌道レイヤ)は、例えば、制約された最適化動作を使用して、AVの最適化軌道を生成(例えば、計算、決定等)する。一例では、最適化動作は、二次ペナルティ関数に基づいてもよく、又はこれを含み得る。一例では、最適化動作は、対数バリア関数に基づいてもよく、又はこれを含み得る。例えば、二次ペナルティ関数はソフト制約とともに使用し得る。例えば、対数バリア関数は、ハード制約と共に使用し得る。
図18は、本開示によるオブジェクト回避のための処理1800のフローチャート図である。処理1800は、図5の軌道プランナ500等の軌道プランナによって実行し得る。
動作1810では、処理1800は、AVの走行可能領域の粗走行線に沿って第1のオブジェクトを検出する。一例では、第1のオブジェクトを検出することは、オブジェクトに対応する図10の境界点1008等の境界点を検出すること意味し得る。一例では、オブジェクトを検出することは、例えば、図4の世界モデルモジュール402に関して説明したように、世界モデルからオブジェクトを(例えば、問い合わせることによって)受信することを意味し得る。粗走行線は、例えば、図10の粗走行線1004、図11の粗走行線1103、図12の粗走行線1203等に関して説明したものであってもよい。走行可能領域は、図9の走行可能領域932に関して説明したものであってもよい。
動作1820において、処理1800は、第1のオブジェクトの予測経路を受信する。一例では、処理1800は、第1のオブジェクトの分類及び第1のオブジェクトの運動モデルに基づいて、第1のオブジェクトの予測経路を決定する。別の例では、処理1800は、第1のオブジェクトの経路を予測する軌道プランナから第1のオブジェクトの予測経路を受信する。予測される経路は、図3の軌道336、軌道346、軌道354、及び軌道364に関して説明したもの、すなわち、図14の経路142014、図15の経路1520、及び図16の経路1609であってもよい。
動作1830において、処理1800は、第1のオブジェクトの予測経路に基づいて、調整された走行可能領域を決定する。一例では、上述したように、走行可能領域から一部を切り取ることにより、調整された走行可能領域を生成し得る。別の例では、例えば、第1のオブジェクトが横制約でも縦方向制約でもない場合、上述したように、調整された走行可能領域は走行可能領域と同じであってもよい。
動作1840において、処理1800は、調整された走行可能領域を通るAVの軌道を決定する。軌道は、図5の軌道最適化レイヤ508に関して説明したように決定し得る。
一例では、第1のオブジェクトの予測経路に基づいて、調整された走行可能領域を決定することは、粗走行線の少なくとも一部を複数のビンに分割すること、第1のオブジェクトを複数のビンの1つのビンに割り当てること、及び1つのビンに基づいて調整された走行可能領域を決定することを含み得る。ビンは、例えば、図10に関して説明したものであってもよい。1つのビンに基づいて調整された走行可能領域を決定することは、上述したように、少なくとも1つのビンに対する境界を決定(例えば、計算)することを含み得る。
一例では、第1のオブジェクトの予測経路に基づいて調整された走行可能領域を決定することは、離散時間間隔で第1のオブジェクトの各オブジェクト位置を決定すること、離散時間間隔でAVの各AV位置を決定すること、及び各オブジェクト位置と各AV位置とに基づいて調整された走行可能領域を決定することを含み得る。第1のオブジェクトの各オブジェクト位置、AV位置、及び調整された走行可能領域の決定は、図14−16を参照して説明したものであってもよい。
一例では、処理1800は、第1のオブジェクトを分類することを含み得る。別の例では、処理1800は、世界モデルモジュール402等から第1のオブジェクトの分類を受信し得る。第1のオブジェクトが対向する縦方向制約として分類される場合、調整された走行可能領域を通るAVの軌道を決定することは、図16に関して説明したように、第1のオブジェクトのオブジェクト位置がAVのAV位置と出会う第1の時間に続く第2の時間までAVを停止することを含み得る。
第1のオブジェクトが縦方向制約として分類される場合、調整された走行可能領域を通るAVの軌道を決定することは、図15に関して説明したように、第1のオブジェクトの後方を走行するようにAVを減速させることを含み得る。
一例では、処理1800は、第1のオブジェクトを、横方向制約、縦方向制約、対向する横方向制約、又は対向する縦方向制約として分類することも含み得る。
一例では、調整された走行可能領域を通るAVの軌道を決定することは、図16に関して説明したように、第1のオブジェクトが静的閉塞であることを決定して、AVを停止させることを含み得る。
図19は、本開示の実装による実世界オブジェクトに関する仮説の例1900の図である。例1900は、例1910、1930、1940、1950、及び1960を含み、ここで、観測された実世界オブジェクトの仮説(すなわち、意図)が予測される。
例1910は、AV1912を示している。AV1912(より具体的には、AV1912の世界モデルモジュール)は、対向する動的オブジェクト1914を検出する。AV1912は、対向する動的オブジェクト1914が経路1918か、又は対向する動的オブジェクト1914が駐車車両1916を避けることができるように経路1920かのいずれかを辿ることができることを予測する。そのため、AV1912は、第1の仮説(例えば、経路1918に対応する「停止」)及び第2の仮説(例えば、経路1920に対応する「左側への迂回」)を、対向する動的オブジェクト1914と関連付けることができる。第1の仮説は、対向する動的オブジェクト1914が駐車車両1916の後方で停止することを示す。第2の仮説は、対向する動的オブジェクト1914がAV1912の軌道を妨害することを示す。そのため、軌道プランナが、上述のように、経路1920を対向する動的オブジェクト1914の予測経路として受信すると、軌道プランナは、対向する動的オブジェクト1914を対向長手方向制約として分類する。
AV1912は、各経路1918、1920に尤度を関連付けることができる。一例として、尤度0.2を経路1918に割り当て、尤度0.8を経路1920に割り当てることができる。したがって、対向する動的オブジェクト1914が直進し続け、駐車車両1916に到達する前に停止及び/又は減速する可能性は20%であり、対向する動的オブジェクト1914が駐車車両1916の周りを回る可能性は80%である。
例1930は、AV1932を示している。AV1932(より具体的には、AV1932の世界モデルモジュール)は、隣接オブジェクト1933を検出する。隣接オブジェクト1933は、大型トラックとして分類し得る。AV1932は、(後述するように)地図データを用いて、道路交差点が位置1934に存在することを決定する。そのため、AV1932は、第1の仮説(例えば、経路1938に対応する「直進」)及び第2の仮説(例えば、経路1936に対応する「右折」)を隣接オブジェクト1933と関連付けることができる。後述するように、経路1936の軌道は、右折中の大型トラックの処理モデル(例えば運動モデル)を用いて予測し得る。
AV1932は、尤度を第1及び第2の仮説のそれぞれと関連付けることができる。一例として、尤度0.6を第1の仮説に、尤度0.4を第2の仮説に割り当てることができる。そのため、交差点で前進し続ける確率は60%であり、交差点で右折する確率は40%である。以下にさらに説明するように、各仮説の尤度は、状態情報に基づいて決定し得る。簡単な例では、隣接オブジェクト1933が経時的に減速しているように見えない場合、第2の仮説(例えば、「右折」)の尤度は減少する。
例1940は、AV1942を示している。AV1942は、自転車1946を検出する。すなわち、AV1942は、「自転車」に分類されるオブジェクトを検出する。また、AV1942は、駐車車両1944を検出する。そのため、AV1932は、第1の仮説(例えば、経路1948に対応する「迂回」)を自転車1946と関連付けることができる。そのため、自転車1946は、上述のように、軌道プランナによって、横方向制約又は縦方向制約のいずれかとして分類され得る。自転車1946には1つの仮説しか関連付けられていないので、1つの尤度(例えば、100%)を1つの仮説に割り当てることができる。
例1950は、AV1952を示している。AV1952は、車両1954を検出する。すなわち、AV1952は、「車両」に分類されるオブジェクトを検出する。AV1952は、道路が2つの車線(すなわち、車線1953A及び車線1953B)を含むと(例えば、地図データに基づいて)決定し得る。そのため、AV1932は、第1の仮説(例えば、車両1954が車線1953Bに留まるように、経路1958に対応する「真進」)と第2の仮説(例えば、車両1954が車線1953Aに移動するように、経路1956に対応する「左車線への変更」)を関連付け得る。
AV1952は、尤度を第1及び第2の仮説のそれぞれと関連付けることができる。一例として、尤度0.3を第1の仮説に、尤度0.7を第2の仮説に割り当てることができる。そのため、車両1954が車線1953Bに留まる確率は30%であり、車両が車線1953Aに移動する確率は70%である。以下にさらに説明するように、各仮説の尤度は、状態情報に基づいて決定し得る。
例1960は、AV1962を示している。AV1962は、車両1964を検出する。すなわち、AV1962は、「車両」に分類されるオブジェクトを検出する。AV1962は、(例えば、地図データを使用して)車両1964と、第1の仮説(例えば、車両1964が車線1963Aに右折して経路1966を辿ることに対応する「右折」)及び第2の仮説(例えば、車両1964が左折して車線1963Bに入り、経路1968を辿ることに対応する「左折」)を関連付けることができる。一例として、第1の仮説に尤度0.2を割り当て、第2の仮説に尤度0.8を割り当てることができる。したがって、車両1964が右折する可能性は20%であり、車両1964が左折する可能性は80%である。
図20は、本開示による世界モデル化のための処理2000のフローチャート図を含む。処理2000は、後述する動作2002−2012を含む。処理2000は、図4の世界モデルモジュール402等の世界モデルモジュールによって実装し得る。処理2000は、AV(図1の車両100等)のプロセッサ(図1のプロセッサ120等)が実行可能な命令としてメモリ(図1のメモリ122等)に記憶し得る。
処理2000は、上述の動的オブジェクト等の実世界オブジェクトについての1つ以上の仮説を維持する。処理2000は、実世界オブジェクトの少なくともいくつかの仮説の少なくともいくつかを各状態に維持する(例えば、関連付ける)ことができる。過去の測定(例えば、受信したセンサ観測)を考慮して、処理2000は、各仮説について、関連する実世界オブジェクトの状態を推定して、将来のオブジェクト状態を予測する。処理2000は、仮説の各々について尤度を維持し(例えば、計算する、決定する、又は他のやり方で維持する)、新しいセンサ観測値が受信されると尤度を更新する。処理2000は、データストア2014等のデータストア内で、1つ以上の仮説、検出されたオブジェクト、及び関連する状態を維持し得る。データストア2014は、図1のメモリ122等のメモリに記憶され得る。データストア2014は、例えば、リレーショナルデータベース、ファイルストア、又は任意の適切なデータストア等のデータベースとし得る。処理2000は、新しいセンサ測定値が利用可能なときに、所定のスケジュールで(数ミリ秒ごと等)、それらの組み合わせ、又は他の条件下で実行し得る。
処理2000のステップのうちの少なくともいくつかは、粒子フィルタリング型のアルゴリズムを使用して、そのアルゴリズムとして、又はそのアルゴリズムのステップとして実装し得る。粒子フィルタリングは、オブジェクト状態の観測に基づいてオブジェクト状態を追跡(例えば、予測)するための技法である。一例として、RBPF(Rao−Blackwellized Particle Filter)法を使用し得る。
処理2000は、粒子を使用して仮説を表現し得る。RBPFは、粒子に割り当てられた重みを使用する。したがって、仮説の尤度は、その仮説を表す粒子の重みとして使用し得る。そのため、複数の仮説が実世界オブジェクトに関連付けられ得るので、実世界オブジェクトは、重み付けされた一連の粒子(それぞれが実世界オブジェクトの仮説に対応する)で構成し得る。
処理2000は、入力2001を受信し得る。入力2001は、センサデータ(すなわち、センサ観測)、例えばセンサ126の1つ以上からの測定値を含んでもよい。センサデータを使用して、実世界オブジェクトを検出し得る。すなわち、例えば、センサデータを使用して、AVのビュー内に実世界オブジェクトが存在することを決定し得る。
一例では、処理2000は、センサデータを使用して、検出されたオブジェクトの姿勢及び速度を決定する。処理2000は、センサデータを使用して、検出されたオブジェクトに対する分類を決定する(例えば、割り当てる)ことができる。処理2000は、センサデータを使用して、検出されたオブジェクトに関するジオメトリを決定(例えば、計算、推定)し得る。
一例では、1つ以上のカメラからのデータを使用して、検出されたオブジェクトのクラスを決定し得る。クラスの非限定的な例には、「車」、「スポーツカー」、「セダン」、「大型トラック」、「歩行者」、及び「自転車」が含まれる。別の例では、経時的に、LiDARデータ(例えば、LiDAR点群)の経時的な動きに基づいて分類を割り当てることができる。一例では、ニューラルネットワーク(畳み込みニュートラルネットワーク等)を、検出されたオブジェクトのオブジェクト認識(例えば、分類)に使用し得る。オブジェクトに関連付けられるセンサデータの分類を決定するために、他の方法を利用し得る。
異なるセンサデータは、異なるオブジェクト分類を提供し得ることに留意されたい。例えば、LiDARデータに基づいて「自転車」の第1の分類を決定し、カメラデータに基づいて「ジョガー」の第2の分類を決定し得る。したがって、オブジェクトの分類は確率的に決定され得る(例えば、第1の分類と第2の分類のどちらがより可能性が高いか)。したがって、異なるセンサデータが融合されて、分類が決定される。分類は確率的であるため、オブジェクトの分類は経時的に変化し得る。いくつかの実装形態では、処理2000は、可能な分類の少なくともいくつかについての仮説を維持し得る。
1つの実装では、処理2000は、検出されたオブジェクトに関する姿勢及び速度を入力として受信する。1つの実装では、処理2000は、追加の入力として、検出されたオブジェクトに関する1つ以上のジオメトリ及び分類を受信する。したがって、分類は、処理2000によって決定されるのではなく、入力として受信し得る。
また、入力2001は、地図情報も含んでもよい。地図情報は、(図5のHD地図データ510に関して説明したような)HD地図データ、(図5の知覚経路データ520に関して説明したような)知覚経路データ、他の地図情報、又はこれらの組み合わせであってもよい。
地図情報には、地図車線構造(本明細書では道路構造とも呼ばれる)が含まれ得る。特定の車線の地図車線構造には、後継車線情報、先行車線情報、及び兄弟車線情報が含まれ得る。次に、図19を使用して、例示を提供する。車線1953A及び車線1953Bは、兄弟車線である。車線1963A及び車線1963Bは、車線1970の可能な後継車線である。したがって、地図車線構造には、道路の車線がどのように接続されているかに関する情報が含まれる。地図車線構造を使用して、検出されたオブジェクトが取り得る(例えば、辿る)車線の可能な組み合わせを決定し得る。すなわち、地図車線構造を使用して、検出されたオブジェクトの可能な経路を決定し得る。
また、入力2001は、環境情報も含んでもよい。環境情報は、AVが走行している車両交通ネットワークのナビゲート不能領域に関する情報を含んでもよい。例えば、環境情報は、図5の駐車場データ518に関して説明したような駐車場の位置を含んでもよい。環境情報を使用して、検出されたオブジェクトに対する1つ以上の仮説を追加(例えば、作成)し得る。例えば、駐車場が検出されたオブジェクトから既定の距離内にある場合、検出されたオブジェクトについて「駐車場に入る」仮説を追加し得る。
上述したように、処理2000は、仮説に関する各状態情報を維持する。すなわち、例えば、観測された(例えば、検出された)オブジェクト(例えば、車両、自転車)ごとに、処理2000は、オブジェクト状態についての1つ以上の仮説を維持する。各仮説に対して、処理2000は、オブジェクト状態(すなわち、履歴測定値に基づく現在の状態)及び将来のオブジェクト状態の予測を維持し得る。
上述したように、オブジェクト状態は、離散オブジェクト状態情報及び連続オブジェクト状態情報を含んでもよい。離散オブジェクト状態情報は、分類(例えば、「車」、「自転車」、「歩行者」等)及び意図(例えば、「右に行く」「左に行く」等)を含み得る。離散オブジェクト状態情報は、より多くの、より少ない、又は追加の情報を含んでもよい。連続オブジェクト状態情報は、以前の測定値を考慮して連続状態の推定を提供する。連続オブジェクト状態情報は、動的状態(例えば、速度、加速度)、運動学的状態(例えば、姿勢、位置、方向)、幾何学的状態(例えば、オブジェクトの境界ボックスの長さ、幅及び/又は高さ)、又は外観状態として、より多くの、より少ない、又は他の連続状態に関する推定を含んでもよい。外観には、オブジェクトの色が含まれ得る。一例では、現在の色が黒であると決定され、後に受信されたセンサ観測が赤色を示す場合、そのような情報を使用して、センサ観測がオブジェクトに関連付けられているかどうかを決定し得る。色は、「赤」等のラベルとして追跡し得る。色は、赤、緑、青(RGB)値等の色値の集合として追跡し得る。一例では、現在の外観状態は(255、0、0)の色値を示してもよく、これは受信したセンサ観測に基づいて(254.37、0、0)に更新される。したがって、外観は連続変数である。
将来のオブジェクト状態の予測は、指定された終了時間に提供される。例えば、処理2000は、各仮説について、その仮説に関連するオブジェクトの各軌道を予測し、指定された終了時間までの軌道に沿った離散時間点におけるオブジェクトの状態を予測し得る。予測状態には、予測位置、予測速度、予測方位等が含まれるが、説明を簡単にするために、予測位置について説明する。例えば、指定された終了時間は6秒であってもよく、処理2000は、0.5秒におけるオブジェクトの位置を最大6秒まで増分して予測し得る。このようにして、オブジェクトの12箇所が予測される。例では、オブジェクトの(x、y)座標によって位置を定義し得る。位置は、AVの現在の位置を基準にし得る。
上述のように、処理2000は、各仮説に尤度を割り当てる(例えば、計算する、決定する、又は他のやり方で割り当てる)ことができる。
上記を説明するために、処理2000によって自動車(すなわち、「車」として分類される検出されたオブジェクト)について維持される仮説の例を示す。仮説は仮説1と仮説2を含む。
仮説1は、分類=「車」、意図=「次の交差点を直進する」という離散的オブジェクト状態情報を含む。連続オブジェクト状態情報には、位置=(10、25)(すなわち、AVの前方10m、右側25m)と速度=65mPHが含まれる。仮説1には、次のN秒間(すなわち、指定された終了時間)の車の位置の予測も含まれる。そのため、仮説1は、t=T(すなわち、現在の時間)からt=T+Nまでのオブジェクト状態を含む。さらに、車が仮説1の意図(すなわち、「次の交差点を直進する」)に従う尤度は60%である。
仮説2は、分類=「車」、意図=「次の交差点を右折する」という離散的オブジェクト状態情報を含む。連続オブジェクト状態情報には、位置=(10、25)と速度=45mPHが含まれる。仮説2には、次のN秒間(すなわち、指定された終了時間)の車の位置の予測も含まれる。そのため、仮説2は、t=T(すなわち、現在の時間)からt=T+Nまでのオブジェクト状態を含む。さらに、車が仮説2の意図(すなわち、「次の交差点を右折する」)に従う尤度は40%である。オブジェクトが最初に作成されるとき、そのオブジェクトに対して作成される仮説は、同じ初期位置及び速度を有し得ることに留意されたい。しかしながら、オブジェクトが追跡されると(例えば、オブジェクトに関連する仮説の状態が更新されると)、異なる仮説に関連する位置及び/又は速度は異なり得る。
動作2002では、処理2000は、検出された実世界オブジェクトの少なくともいくつかについての仮説を作成及び維持する。仮説は、データストア2014内で維持し得る。実世界オブジェクトの位置が変化すると(例えば、受信されたセンサ観測に関して以下にさらに説明するように)、実世界オブジェクトに関連する1つ以上の仮説が変化し得る。例えば、いくつかの仮説は無効になり得る(例えば、不可能であるか、可能性が非常に低い)。例えば、実世界オブジェクトが左折する(又は略確実に左折する)場合、「次の交差点を右折する」という意図に関連付けられた仮説は無効になる。左折する実世界オブジェクトに基づいて、いくつかの追加の仮説を作成する必要があり得る。上述したように、仮説を作成及び維持するために、地図情報(例えば、HD地図データ、知覚地図データ等)、環境情報データ、及び/又は他の地図情報が使用される。
図21は、本開示の実装による戦略的速度計画を決定する例2100である。例2100は、車両交通ネットワークの一部、すなわち道路2104を横断する車両2102(すなわち、処理2000を実行するAVによって検出される実世界オブジェクト)を示す。
ビュー2110は、時間t=0における車両2102の位置を示している。t=0において、車両2102は、道路2104における分岐点2112の手前にある。そのため、処理2000は、地図情報から得られた地図車線構造を用いて、車両2102が一旦分岐点2112に到着すると、車両2102が「左折」(「1」とラベル付けされた経路に対応)、「直進」(「2」とラベル付けされた経路に対応)、又は「右折」(「3」とラベル付けされた経路に対応)を行うことができることを決定し得る。そのため、処理2000は、車両2102についての3つの仮説を(データストア2014内等に)作成し得る。すなわち、仮説1、仮説2、及び仮説3は、それぞれ1、2、及び3とラベル付けされた経路に対応する。以上のように、仮説ごとに状態情報が決定(例えば、計算、設定、又は他のやり方で決定)される。
ビュー2120は、時間t=1における車両2102の位置を示している。t=1において、車両2102はもはや「左に行く」ことができないので、仮説1は(例えばデータストア2014から)取り除かれる。AVが「直進する」の意図(すなわち、仮説2)に従っている場合、処理2000は、地図情報を使用して、車両2102が「直進する」(「4」とラベル付けされた経路に対応)する又は「右に行く」(「5」とラベル付けされた経路に対応)ことができると判断し得る。そのため、処理2000は、車両2102が分岐点2122に到着した後で、仮説2を、それぞれ「4」及び「5」とラベル付けされた経路に対応する仮説4及び仮説5に置き換える。
AVが「右に行く」の意図(仮説3)に従っている場合、処理2000は、地図情報を使用して、車両2102が分岐点2124に到達した後で、「左折する」(「6」とラベル付けされた経路に対応)、「直進する」(「7」とラベル付けされた経路に対応)、又は「右に行く」(「8」とラベル付けされた経路に対応)すると判断し得る。したがって、処理2000は、仮説3を、「6」、「7」及び「8」とラベル付けされた経路にそれぞれ対応する仮説6、仮説7、及び仮説8に置き換える。
一例では、処理2000は、車両2102の姿勢、速度、及び位置を含む要因に基づいて、車両2102に関する仮説がもはや実行可能でない(又は無視し得る尤度で実行可能である)ことを決定し得る。無視し得る尤度は、閾値尤度より低い尤度であり得る。仮説の実現可能性を決定するために、より多くの、より少ない、又は他の要因を用いることができる。一例では、閾値尤度は、10%未満の閾値であり得る。例えば、t=t1では、車両2102の向きは略北東であると推定され、45mPHの推定速度で走行しているので、車両2102が仮説1の意図に依然として従うことができる無視し得る可能性がある。
ビュー2130は、時間t=2における車両2102の位置を示している。t=2では、車両2102が仮説4、5の意図に従うことがもはやできないので、仮説4、5は(例えば、データストア2014から)取り除かれる。仮説を取り除くことは、データストア2014から仮説を削除することを意味し得る。仮説を取り除くことは、その仮説が処理2000の動作によってもはや使用されないように、その仮説を非アクティブ状態に設定することを意味し得る。仮説6、7、8は維持される。仮説を維持することは、仮説の尤度を更新することを含んでもよい。単純な例では、仮説4、5、6、7、及び8の可能性が等しい場合、仮説4、5、6、7、及び8のそれぞれの可能性は20%であろう。仮説6、7、及び8が、仮説4及び5が除去された後も等しくあり得ると仮定すると、仮説6、7、及び8の各々は、33%の関連する尤度を有するであろう。
再び図20を参照すると、動作2004において、処理2000は、実世界オブジェクトの軌道を予測する。すなわち、処理2000は、実世界オブジェクトの各仮説について、関連する軌道を予測する。動作2004において、処理2000は、実世界オブジェクトに関する仮説を決定し(例えば、データストア2014から読み出し又は抽出し)、各仮説に対して基準走行線を生成(又は使用)し、各基準走行線に対して予測軌道を生成し得る。図5の軌道プランナ500のような軌道プランナの1つ以上のインスタンスを使用して、基準走行線を生成し得る。動作2004について、図22を参照してさらに説明する。
上述したように、実世界オブジェクトに関連する仮説は、分類を含む状態情報及び意図を含む。一例として、オブジェクトの分類に基づく運動モデルを使用して、意図に対する軌道を予測し得る。
図22は、本開示の実装による粗走行線連結の例2200を示す図である。例2200は、動作2004を示す。例2200は、車両2202(すなわち、実世界オブジェクト)を示す。処理2000は、車両2202について2つの仮説を(データ記憶装置2014等に)維持する。すなわち仮説1(すなわち、「直進」の意図に対応する仮説2204)と仮説2(すなわち、「右折」の意図に対応する仮説2206)である。
少なくともいくつかの仮説について、処理2000は(動作22004において)、最初に基準走行線を決定し得る。例えば、基準走行線がなくても軌道を予測し得る場合には、仮説に対して基準走行線を決定しなくてもよい。例えば、基準走行線は、基準走行線生成器(例えば、軌道プランナ又は他の基準走行線生成器)が利用できない場合には基準走行線について決定されなくてもよい。各仮説に対する基準走行線は、例えば、仮説の意図に対応する車線の中心であり得る。そのため、基準走行線2208が車両2202の仮説1について予測され、基準走行線2210が車両2202の仮説2について予測される。
基準走行線の各々について、処理2000は軌道(例えば、図5の軌道プランナ500に関して説明したような滑らかな軌道)を決定(例えば、計算、予測)する。仮説に関連する状態は、その仮説に関する軌道を決定するために使用し得る。そのため、軌道2212は、車両2202が基準走行線2208に従うように、車両2202がその現在位置から基準走行線2208上にナビゲート(例えば、合流)されると予測される。また、軌道2214は、車両2202が基準走行線2210に従うように、車両2202がその現在位置から基準走行線2210上にナビゲートされると予測される。
別の例では、動作2004は、動作2016によって生成された基準走行線を使用し得る。このような場合、動作2004は、動作2016によって生成された基準走行線を使用して軌道を決定する。動作2016は、処理2000とは別に実行される非同期処理であり得る。
再び図20を参照すると、動作2004において、処理2000は、受信されたセンサ観測を実世界オブジェクトに関連付ける。処理2000は、新しいセンサ観測を受信する。センサ観測は、例えば、複数のセンサ読み取り値から融合されたデータに対応し得る。センサ観測は、観測されたオブジェクトの位置を示し得る。処理2000は、センサ観測が(データストア2014内等に)維持されている実世界オブジェクトが存在する場合、それがどのオブジェクトに対応するかを決定する。センサ観測が、維持されている実世界オブジェクトのいずれにも対応していないと決定された場合、処理2000は、動作2012に関して以下にさらに説明するように、センサ観測に対応する新しい実世界オブジェクトを(例えば、データストア2014内に)作成し得る。
処理2000は、各観測の周囲にゲート領域を定義すること、測定尤度行列を計算すること、及び測定関連付けに対するオブジェクト状態(言い換えれば、測定関連付けに対する仮説)を決定することを含むステップによって、受信したセンサ観測を実世界オブジェクトに関連付けることができる。動作2004について、図23を参照してさらに説明する。
図23は、本開示に従って、センサ観測を実世界オブジェクトに関連付ける例2300である。ビュー2310は、時間t=Tにおいて、処理2000がセンサ観測2320、2322、及び2324を受信することを示す。観測は物理的世界の新しい測定値である。処理2000は、動作2004において、観測のそれぞれについて、この観測がどの実世界オブジェクトに対応するか?(すなわち、関連付けられるか)という質問への回答を試行する。上述したように、処理2000は、各仮説について(場所を含む)将来の状態を予測する。処理2000がセンサ観測を受信すると、処理2000は、物理的世界から受信した観測に基づいて予測を更新する。予測は、予測状態及びセンサ観測から更新状態を算出(例えば、計算)することによって更新し得る。
以下の表Iは、ビュー2310に対応し、時間t=T(すなわち、処理2000がセンサデータを受信する時間)において処理2000によって維持される仮説を示す。時間t=Tにおいて、処理2000は、4つの仮説、すなわち仮説1、仮説2、仮説3、仮説4を維持している。参照を容易にするために、表Iの仮説には順番に番号を付けてある。しかしながら、例えば、仮説2は「オブジェクト2に関する第1の仮説」であり、仮説3は「オブジェクト2に関する第2の仮説」であると読む方が正確であり得る。
仮説1は、オブジェクト1が時間t=Tで位置2312にあるという予測を伴って、「オブジェクト1」(例えば車)の「直進」の意図に対応する。仮説2及び3は、同じオブジェクトである「オブジェクト2」(例えば自動二輪車)に対して維持される2つの仮説である。仮説2は、オブジェクト2が時間t=Tで位置2314にあるという予測を伴って、「オブジェクト2」の「直進」の意図に対応する。仮説3は、オブジェクト2が時間t=Tで位置2318にあるという予測を伴って、「オブジェクト2」の「右折」の意図に対応する。仮説4は、オブジェクト3が時間t=Tで位置2318にあるという予測を伴って、「オブジェクト3」(例えば、トラック)の「直進」の意図に対応する。
例2300のビュー2330は、ゲート領域の定義を示す。図23における煩雑さを軽減するために、ビュー2310及び2330の同じ位置にある図形要素(すなわち、位置及びセンサ観測)の番号は、ビュー2330では省略されている。
一例では、ゲート領域は、受信した各観測の周囲のゲート領域である。観測の周囲のゲート領域は、センサ観測の近くにある(すなわち、近接する)実世界オブジェクトに対する検索領域を定義する。より具体的には、観測の周囲のゲート領域は、実世界オブジェクトの予測位置を含む検索の領域を定義する。すなわち、観測の周囲のゲート領域は、予測位置に基づいて、実世界オブジェクト(例えば、データストア2014内に維持されるオブジェクト)を含み得る領域であって、観測に関連付けられ得る領域を定義する。ゲート領域は、センサ観測から離れ過ぎているためにセンサ観測と関連付けられる可能性が低いオブジェクト(又は、より具体的には、仮説)を取り除く(すなわち、除外する)ための第1の通過として使用される。
センサ観測に関連付けられるオブジェクトについては、オブジェクト(すなわち、オブジェクトの予測位置)は、センサ観測に近接していると予測される。一例では、観測の周囲のゲート領域は円であってもよい。そのため、ビューは、センサ観測2320を中心とするゲート領域2332、センサ観測2324を中心とするゲート領域2334、及びセンサ観測2322を中心とするゲート領域2336を示している。一例では、ゲート円の半径は、10メートルであってもよい。
ビュー2330は、時間t=Tにおけるオブジェクト1及びオブジェクト3の予測位置がゲート領域2332によって包囲されているので、オブジェクト1及びオブジェクト3がセンサ観測2320に関連付けられる可能性が高いことを示している。仮説2及び3においてはオブジェクト2の予測位置がゲート領域2334によって包囲されているので、オブジェクト3及びオブジェクト2の仮説2及び3は、センサ観測2324に関連付けられる可能性が高い。また、(仮説2と仮説3における)オブジェクト2の予測位置はゲート領域2336によって包囲されているので、オブジェクト2(すなわち、仮説2と仮説3)もセンサ観測2322に関連付けられる可能性が高い。
別の例では、観測値の周囲ではなく、実世界オブジェクトの予測位置の周囲にゲート領域を描画し得る(図示せず)。予測位置の周囲のゲート領域のサイズ(例えば、半径)は、実世界オブジェクトの状態に依存し得る。例えば、ある仮説の下でのオブジェクトの状態の速度と位置(例えば、連続状態情報)を用いて半径を決定し得る。例えば、時間t=T−1(例えば、以前のセンサ観測が受信された時間)からt=T(例えば、現在の時間)までの最大移動可能距離に基づいて半径を設定し得る。
動作2006は、センサ観測と実世界オブジェクトとの間の関連付けの尤度を計算し得る。動作2006は、可能な関連付けのための尤度値を決定し得る。尤度の計算には、実世界オブジェクトの動力学を使用し得る。例えば、速度、位置、姿勢、移動方向、ジオメトリよりも多い、少ない又はその他の動力学(例えば、オブジェクト状態情報)を使用し得る。例えば、あるオブジェクトがある仮説の下で「車」として分類され、センサ観測が、関連付けられたオブジェクトが大きなオブジェクトであることを示す(例えば、トラックを示す)場合、その観測は、そのオブジェクトに関連付けられる可能性が低い。例えば、オブジェクト状態が、所与の仮説に対して、オブジェクトが65mPHの速度で「直進」していることを含む場合、オブジェクトの予測位置から20メートル後方にあるセンサ観測は、所与の仮説に関連付けられる可能性が低い。
一例では、動作2006は、測定尤度行列を計算する。表IIは、測定尤度行列の例を示す。表IIの値は、オブジェクトの仮説とセンサ観測との間の尤度の加重和である。例えば、(オブジェクト2の)仮説2の重みを0.75、(オブジェクト2の)仮説3の重みを0.25とし、さらに仮説2とセンサ観測2322との間の測定尤度(以下のように計算される)を0.1、仮説3とセンサ観測2322との間の測定尤度を0.3とすると、オブジェクト2とセンサ観測2322との間の測定尤度は、(0.1×0.25)+(0.3×0.75)=0.25と計算され得る。すなわち、オブジェクト2とセンサ観測2322との測定尤度は((仮説2とセンサ観測2322との間の測定尤度)×(仮説2の重み)+(仮説3とセンサ観測2322との間の測定尤度)×(仮説3の重み))に等しい。
上述のように、ゲート領域を使用して、5つの可能な(可能性のある)関連付けが決定された。そのため、表IIは、可能性のある関連付けのそれぞれについて対応する尤度を含む。しかしながら、上述したように、実世界オブジェクトの予測又は推定された動力学に基づいて、いくつかの尤度は、計算されないか、又は0に設定され得る。
表IIは、オブジェクト1がセンサ観測2320に関連付けられている尤度が0.6であり、オブジェクト2がセンサ観測2322に関連付けられている尤度が0.25であり、オブジェクト2がセンサ観測2324に関連付けられている尤度が0.7であり、オブジェクト3がセンサ観測2320に関連付けられている尤度が0.3であり、オブジェクト3がセンサ観測2324に関連付けられている尤度が0.15であることを示している。
以下にさらに説明するように、センサ観測及び予測状態(例えば、予測位置)は、ノイズのために正確でない場合がある。上述したように、予測状態には、予測位置、予測速度、予測方位等が含まれるが、説明を容易にするために、予測位置について説明する。そのため、センサ観測の位置(xo、yo)及び予測位置(xp、yp)は、それぞれガウス分布として描くことができる。センサ観測は、(xo、yo)において不確かさと平均を有するガウス分布(すなわち、観測された分布)としてモデル化され得る。センサ測定に関連する不確かさは、測定モデルとして与えることができる(例えば、それによって定義される)。センサの測定モデルは、センサから受信した測定値の特性(ノイズ等)をモデル化する。センサ観測は、(xp、yp)において不確かさと平均を有するガウス分布(すなわち、予測分布)としてモデル化され得る。2つのガウス分布を組み合わせて、予測位置が観測された位置である可能性がどれだけ高いかを決定し得る。
一例では、関連付けは、最も高い尤度に基づいて決定され得る。したがって、オブジェクト1は、センサ観測2320に関連付けられていると判断され(関連付け2338によって示される)、オブジェクト2は、センサ観測2324に関連付けられていると判断される(それぞれ仮説2及び仮説3に関して関連付け2340及び関連付け2342によって示される)。したがって、オブジェクト3は、いかなるセンサ観測にも関連付けられず、センサ観測2322は、処理2000によって維持される実オブジェクトのいずれにも関連付けられない。
式(1)において、μxは予測分布の平均であり、σxは予測分布の標準偏差であり、μmは観測分布の平均であり、σmは観測分布の標準偏差である。
再び図20を参照すると、動作2008において、処理2000は、いくつかの仮説の尤度を更新する。処理2000は、動作2006で検出された仮説(言い換えれば、これらのオブジェクト)が受信されたセンサ観測に関連付けられる尤度を更新する。すなわち、処理2000は、オブジェクトに関連付けられる新しいセンサ観測に基づいて、オブジェクトが仮説の意図に従う可能性が高いか低いかを決定する。
表IIに関して記述された測定尤度は、動作2008で仮説の尤度を更新するために使用し得る。すなわち、測定尤度を用いて、粒子の重みを更新し得る。前述したように、粒子の重みは、その粒子によって表される仮説の尤度に対応する。粒子の重みは、式(2)を用いて計算し得る。
P(p、t=T+dt)=(t=T+dtにおける測定尤度)*P(p、t=T)(2)
すなわち、時間T+dt(すなわち、新しいセンサ観測が受信された時間)における粒子p(すなわち、仮説)の確率(すなわち、尤度)は、時間T+dtにおける測定尤度(すなわち、時間T+dtにおいて、センサ観測が粒子/仮説に関連付けられる尤度)と仮説の最後に計算された確率(すなわち、以前の時間t=Tにおける仮説の尤度)との乗算によって与えられる。
時間t=T+dtにおける各オブジェクトの仮説の計算された確率は、それらを合計して1になるように正規化し得る。例えば、2つの粒子が実世界オブジェクトに関連付けられ、2つの粒子が時間t=Tでそれぞれの確率0.5と0.5を有すると仮定する。さらに、式(2)を用いてt=T+dtでそれぞれ0.4及び0.3となるように確率が計算されると仮定する。時間t=T+dtにおける確率が計算された後で、その確率は、それぞれ、(0.4/(0.4+0.3))及び(0.3/(0.4+0.3))、又は0.57及び0.43に正規化される。
動作2010において、処理2000は、受信されたセンサ観測に関連付けられることが動作2006において見出された仮説に関連付けられる状態を更新する。
一方、RBPFは、粒子を維持するための処理2000のステップのための一般的なフレームワークとして使用することができ、RBPFは、例えば、(例えば、動作2004において)粒子がどのように移動するか又は(例えば、動作2010において)粒子の状態がどのように更新されるかを指定しない。拡張カルマンフィルタ(EKF)は、(すなわち、動作2004における)予測と(すなわち、動作2010における)更新に使用し得る。
上述したように、オブジェクトの運動モデルは、意図を考慮して、オブジェクトの将来の状態を予測するために使用し得る。すなわち、例えば、運動モデルを用いて、粒子(すなわち、仮説)が時間tから時間t+1へどのように発展するかを予測し得る。運動モデルは、分類及び他の状態パラメータ(例えば、速度、姿勢)に応じて、オブジェクトの動力学をモデル化する。オブジェクトの位置を示す新しいセンサ測定値を(すなわち、動作2006において)受信した場合、(すなわち、動作2010において)EKFを使用して、運動モデルを使用して生成された予測状態を新しい測定値と融合(例えば、組み合わせ、調和、合併、又は他のやり方で融合)し、更新された状態を生成(例えば、計算、決定、又は他のやり方で生成)し得る。
式(3)を用いて、オブジェクトの状態を更新し得る。
式(3)において、xt’は時間tにおける予測状態であり、ytは時間tにおけるセンサ観測状態であり、xt uは時間tにおける更新状態であり、Pt’は時間tにおける予測状態の共分散であり、Jhは測定モデルのヤコビアンであり、Rtは測定モデルの測定ノイズ共分散であり、Pt uは時間tにおける更新状態の共分散である。
繰り返しになるが、処理2000は、オブジェクト(例えば、実世界オブジェクト)を追跡するためにRBPFを開始し得る。処理2000は、データストア2014内の少なくともいくつかのオブジェクトの軌道を追跡しかつ予測する。したがって、処理2000は、オブジェクトを追跡して予測するために、RBPFの集合を実行し得る。RBPFは、各オブジェクトの連続状態を予測し、各オブジェクトの連続状態を更新し、各粒子の重みを更新するために使用される。
図24は、本開示の実装による戦略的速度計画を決定する例2400である。例2400は、動作2008及び2010を示している。上述したように、オブジェクトに関連付けられる仮説に従ったオブジェクトの位置は、その仮説(言い換えれば、オブジェクト)の状態の一部である。仮説1に基づくオブジェクト1の位置2312は位置2402に更新され、仮説2に基づくオブジェクト2の位置2314は位置2404に更新され、仮説3に基づくオブジェクト2の位置2316は位置2406に更新される。
一例では、位置は観測の位置と一致するように更新される。すなわち、例えば、時間t=Tについて、オブジェクト1の仮説1の状態位置は、位置2312の代わりにセンサ観測2320の位置に更新される。時間t=Tについて、オブジェクト2の仮説2の状態位置は、位置2314の代わりにセンサ観測2324の位置に更新される。そして、時間t=Tについて、オブジェクト3の仮説3の状態位置は、位置2316の代わりにセンサ観測2324の位置に更新される。
一例では、位置は、予測位置におけるノイズ(例えば、不確かさ)及びセンサ測定値に関連付けられるノイズを考慮して更新される。
予測位置(例えば、位置2312−2318)は、予測された経路に基づいて計算(例えば、生成、予測、推定、又は他のやり方で計算)される。予測された経路は、オブジェクト分類に関連付けられた運動モデルを用いて生成される。そのため、何らかのノイズ(例えば、不確かさ)が、予測された経路に関連付けられてもよい。同様に、ノイズ(例えば、不確かさ)は、センサ観測と関連付けられてもよい。例えば、センサ観測では、オブジェクトが特定の位置にあることが示されるが、実際にはオブジェクトは2メートル左にあり得る。
そのため、処理2000は、ノイズのある予測をノイズのあるセンサ観測と融合して、更新された位置を生成し得る。一例では、更新された位置は、センサ観測値と関連付けられた予測位置との中間点であってもよい。そのため、位置2402は、センサ観測2320と位置2312との中間にあり、位置2404は、センサ観測2324と位置2314との中間にあり、位置2406は、センサ観測2324と位置2316との中間にある。
測定尤度(表IIに関して上記を参照)、姿勢、速度、位置、より少ない、より多い、又は他の状態情報を使用して、処理2000は仮説の尤度を更新し得る。例えば、仮説1はオブジェクト1に関連付けられる唯一の仮説であるので、仮説1の尤度は同じまま(例えば、1.0)であり得る。例えば、センサ観測2324が、仮説2の予測状態(すなわち、位置2314)よりも仮説3の予測状態(すなわち、位置2316)に近いので、仮説3の尤度が(例えば、0.5から0.8へと)高くなり、仮説2の尤度が(例えば、0.5から0.2へと)低くなる。
再び図20を参照すると、動作2012において、処理2000は、新しいオブジェクトを作成する。例えば、上述のように、仮説(言い換えれば、オブジェクト)は、センサ観測2322に関連付けられない。そのため、センサ観測2322は、以前は処理2000によって維持されていなかった新しいオブジェクトに対応し得る。そのため、処理2000は、センサ観測2322に対応するように新しいオブジェクトを生成し得る。処理2000は、上述のように、1つ以上の仮説を新しいオブジェクトに割り当てる(例えば、作成する)こともできる。
一例では、新しいセンサ観測は、センサ観測に基づいて新しいオブジェクトを作成する前に、特定の基準を満たす必要がある。センサ観測が基準を満たさない場合、処理2000は、センサ観測を無視してもよく、オブジェクトは作成されない。一例では、基準は、センサ観測のサイズ(例えば、境界ボックス、ジオメトリ等)に関連し得る。例えば、各寸法が0.25メートルのオブジェクトに対応するセンサ観測が決定された場合、そのオブジェクトは小さ過ぎると見なされ、センサ観測は無視される。このような場合、センサ観測は、センサ測定におけるノイズに起因する可能性がある。
動作2002は、粒子を(すなわち、作成及び維持することによって)修正する。動作2002は、粒子を追加及び/又は除去し得る。例えば、時間t=0において、動作2002は、図21のビュー2110の「左折」、「直進」及び「右折」の仮説に対応する3つの粒子を生成し得る。
上述したように、(Xと表記される)オブジェクトの状態は、(Xdと表記される)離散状態情報と(Xcと表記される)連続状態情報とに分けることができる。したがって、X={Xc、Xd}となる。上述したように、離散状態情報Xd及び連続状態情報Xcの各々は、1以上の量を含んでもよい。
離散状態情報Xdを用いて、オブジェクトの運動モデルを決定(例えば、選択、使用、又は他のやり方で決定)し得る。また、運動モデルは、状態遷移モデル又は処理モデルとも呼ばれ得る。運動モデルは、所定の基準を考慮して、オブジェクトがどのように移動、操縦、挙動等するかを(例えば、数学的、アルゴリズム的、又はその他のモデルとして)記述する。例えば、「右折」という意図を考慮して、「車」として分類されるオブジェクトの運動モデルは、車が旋回する前に減速することを示してもよく、「トラック」として分類されるオブジェクトの運動モデルは、トラックが減速して大きく右旋回することを示し得る。別の例として、「直進」という意図を考慮して、「車」として分類されるオブジェクトの運動モデルは、車が(連続状態情報Xcに示される)その現在の速度を維持することを示し得る。運動モデルは、オブジェクト分類によって利用可能であってもよい。オブジェクト分類には走行スタイルが含まれ得る。例えば、分類には「攻撃的な運転の車」と「のんびりした運転の車」があり得る。一例では、走行スタイルを分類から分離し得る。すなわち、走行スタイルは、分類とは別個の状態変数として維持し得る。したがって、運動モデルは、複数の状態変数に基づくことができる。
離散状態値の各組合せに対して、離散状態値の組合せに関連付けられる運動モデルを使用して、連続状態を推定するために1つの粒子を生成し得る。すなわち、運動モデルは、所与の仮説について、オブジェクトの現在の状態がどのように将来の状態に変化するかを定義する(これを使用して決定し得る)。運動モデルを用いて、離散的将来時点について(例えば、次の6秒間における0.5秒ごとに)、将来状態が予測される。
動作2004は、粒子はどこへ行くのかという質問への答えに対応する。より具体的には、動作2004は、仮説の意図、及びその仮説に関連する現在知られている及び/又は予測状態に基づいて、その仮説の実世界オブジェクトはどこにあると予測されるか?という質問に答える。動作2004は、上述したように、粒子の軌道を予測することによって質問に答える。維持された仮説の少なくともいくつかの各々について、動作2004は軌道を予測する。
また、(すなわち、仮説を表現する)粒子は、動作2006において、センサ観測と仮説との間の関連付けの尤度を決定する際に使用し得る。
また、動作2008において粒子を使用して仮説の尤度を更新することもできる。すなわち、新しいセンサ観測を用いて粒子(つまり仮説)の尤度を更新する。動作2010では、処理2000は、受信したセンサ観測時の粒子の状態(例えば、位置)を推定(例えば、計算)する。
データストア2014内に維持される実世界オブジェクトとセンサ観測との間の関連付けは、先験的に知られていない。センサ観測と実世界オブジェクトとの間の関連付けは、図23−24に関して上述したように導出される。
また、図20は、本開示による世界モデルを使用する処理2050のフローチャート図を含む。図4のシステム400に示すように、意思決定モジュール406及び軌道プランナ408は、世界モデルモジュール402からのデータ及び/又は決定を入力として使用する。そのため、処理2050は、例えば、意思決定モジュール406、軌道プランナ408、システム400の他のモジュール、又は実世界モデルを使用する車両100の他のモジュールからのクエリに応答して実行し得る。
クエリに応答して、動作2052において、処理2050は、データストア2014から実世界オブジェクトを抽出(例えば、フェッチ、取得、読み取り、又は他のやり方で抽出)する。動作2054において、処理2000は、ある将来の時間範囲(例えば、6秒)までの抽出されたオブジェクトの軌道を予測(又は更新)する。動作2056において、処理2050は、実世界オブジェクト及び予測された軌道を要求モジュールに提供する。
図25は、本開示による自律走行車による世界オブジェクト追跡及び予測のための処理2500のフローチャート図である。世界オブジェクトは、上記の実世界オブジェクトに関連して説明したものである。処理2500の一部又は全ての態様は、図1に示す車両100及び図2に示す車両202を含む車両、又は図2に示すコントローラ装置232を含むコンピュータ装置で実装し得る。1つの実装では、処理2500のいくつかの又は全ての態様は、本開示に記載される特徴のいくつか又は全てを組み合わせたシステムで実装し得る。例えば、処理2500は、図4の世界モデルモジュール402によって利用し得る。
動作2502において、処理2500は、AVのセンサから、第1の観測データ(すなわち、第1のセンサ観測)を受信する。第1の観測データは、図20の動作2006に関して説明したように受信し得る。動作2504において、処理2500は、第1の観測データを第1の世界オブジェクトに関連付ける。第1の観測データは、図20の動作2006に関して説明したように、第1の世界オブジェクトに関連付けることができる。動作2506において、処理2500は、第1の世界オブジェクトに関する仮説を決定する。仮説は第1の世界オブジェクトの意図に対応する。一例では、仮説は、追加的又はその代わりに、第1の世界オブジェクトの分類に対応し得る。意図は、第1の世界オブジェクトの可能な経路に対応し得る。仮説は、例えば、図20の動作2002に関して説明したように決定し得る。
動作2508において、処理2500は、各仮説の各仮説尤度を決定する。仮説尤度とは、第1の世界オブジェクトが意図に従う(例えば、それに従って進行する)尤度を示す。仮説尤度は、例えば、図20の動作2008に関して説明したように決定し得る。動作2510において、処理2500は、複数の仮説のうちの少なくとも1つの仮説について、各状態を決定する。状態は、第1の世界オブジェクトの予測位置を含む。状態は、例えば、図20の動作2010に関して説明したように決定し得る。
一例として、状態は、推定された現在の位置、速度、及び幾何学的形状、並びに関連する不確かさ(例えば、尤度)よりも多くの、より少ない、及び他の情報を含んでもよい。この文脈でいう「現在」の用語とは、「最後に更新された」ことを意味する。例えば、第1のオブジェクトが時間t=T0で最後に更新された場合(例えば、センサ観測が受信されたとき)、第1のオブジェクトの最新状態(例えば、位置)は時間t=T0で決定された状態であり、第1のオブジェクトの予測状態は時間t=T0+dtで開始する。時間t=T1において第2のオブジェクトが最後に更新された場合、第2のオブジェクトの最新の状態は時間t=T1において決定された状態であり、第2のオブジェクトの予測状態は時間t=T1+dtで開始する。状態は、センサ観測及び一連の予測状態に基づいて決定(例えば、更新、予測、又は他のやり方で決定)される。予測状態は、予測位置、予測速度、予測ジオメトリ、及びそれらに関連する予測不確かさ(例えば、尤度)を含んでもよい。
動作2512において、処理2500は、クエリに応答して、各仮説の各仮説尤度に基づいて複数の仮説のうちの1つの仮説を提供する。処理2500は、図20の処理2050に関して説明したように仮説を提供し得る。
一例では、複数の仮説のうちの1つの仮説は、HD地図データ、知覚地図データ、又は他のタイプの地図データ等の地図情報を用いて決定し得る。
一例では、処理2500は、AVのセンサから第2の観測データを受信し、第2の観測データを第1の世界オブジェクトに関連付け、第2の観測データに基づいて状態を更新することを含んでもよい。一例として、状態の更新は、拡張カルマンフィルタリングを使用して実行し得る。
一例では、処理2500は、第1の世界オブジェクトの運動モデルに基づいて、少なくともいくつかの仮説の各軌道を予測することを含んでもよい。一例では、仮説の各軌道を予測することは、その仮説の分類、意図、及び基準走行線よりも1つ多い、少ない、又は他の要因にさらに基づくことができる。各軌道は、図20の動作2004に関して上述したように予測し得る。一例では、各軌道を予測することは、例えば図22に関して説明したように、第1の世界オブジェクトに関する基準走行線を決定することと、第1の世界オブジェクトの現在の予測経路が基準走行線と一致するように、運動モデルに基づいて、各軌道を予測することとを含んでもよい。
一例では、処理2500は、AVのセンサから第2の観測データを受信することと、第2の観測データを第1の世界オブジェクト及び第2の世界オブジェクトの1つに関連付けることとを含んでもよい。第2の観測データを第1の世界オブジェクト及び第2の世界オブジェクトのいずれかに関連付けることは、図23に関して説明した通りである。したがって、第2の観測データを第1の世界オブジェクト及び第2の世界オブジェクトのうちの1つと関連付けることは、第2の観測データに関するゲート領域を使用して、ゲート領域内の世界オブジェクトを決定すること、及び、第1の世界オブジェクトがゲート領域内にある場合、第2の観測データが第1の世界オブジェクトに対応する関連付け尤度を決定することを含み得る。
一例では、処理2500は、(例えば、式(2)で説明したように)関連付け尤度に基づいて各仮説の各仮説尤度を更新することと、(例えば、EKFについて述べたように)第1の世界オブジェクトの状態を更新することとをさらに含む。
一例では、処理2500は、AVのセンサから第2の観測データを受信すること、第2の観測データがある基準を満たすことを条件として、第2の観測データを第2の世界オブジェクトに関連付けること、及び、第2の観測データが基準を満たさないことを条件として、第2の観測データを無視することをさらに含む。
図26は、本開示の実装による戦略的速度計画を決定する例2600である。例2600は、図20の動作2004の一例を示す。例2600は、実世界オブジェクト2602を含む。実世界オブジェクト2602は、図22の車両2202とし得る。実世界オブジェクト2602は、時間t=T0(例えば、軌道が決定される時間)における車両2202の位置を示す。
また、例2600は、図22の基準走行線2208等の基準走行線に沿って、基準位置2604等の基準位置を含む。また、例2600は、図22の軌道2212等の予測軌道に沿って、予測位置2606等の位置を含む。予測された軌道は、一連の予測されたオブジェクト状態と将来の時点(例えば、タイムスタンプ)での共分散から成る。予測状態は、将来の時点におけるそれぞれの予測位置を含む。例2600では、複数の時間における4つの予測状態(位置を含む)、すなわち、時間t=T0+Δtにおける予測状態、時間t=T0+2Δtにおける予測状態、時間t=T0+3Δtにおける予測状態、及び時間t=T0+4Δtにおける予測状態(すなわち、予測位置2606)を示している。Δtは時間ステップ(例えば、半秒、1秒等)を表している。予測された軌道に沿った予測位置は、異なるサイズ及び形状を有するものとして示される。サイズ及び形状は、予測状態の位置(例えば、(x、y)座標)共分散を示す。上述のように、予測状態は、例2600には示されていない速度及びジオメトリを含んでもよい。
図27は、本開示による軌道を予測するための処理2700のフローチャートである。処理2700は、図20の動作2004によって実装し得る。開始状態(すなわち、時間t=T0における実世界オブジェクト2602の状態)及び基準走行線(すなわち、基準走行線に沿った、基準位置2604等の基準位置)を使用して、処理2700は、基準走行線に収束する図22の軌道2212等の予測軌道を決定(例えば、計算、算出、又は他のやり方で決定)する。
処理2700は、基準走行線を入力として受信する(例えば、使用する)。基準走行線は、オブジェクト(すなわち、実世界オブジェクト)の基準状態から構成され、これは指定されたタイムスタンプ(すなわち、将来の時点)におけるオブジェクトの所望の状態を示す。処理2700は、予測のために時間長さを使用する(例えば、入力として受信する、デフォルトを使用する、あるいは他のやり方で使用する)ことができる。上述のように、予測軌道は、特定のタイムスタンプ(すなわち、将来の時点)における予測状態から成る。処理2700は、それぞれのタイムスタンプにおける全ての予測状態が計算されるまで反復する。処理2700の第1の反復において、開始状態は時間t=T0の状態に設定される。
動作2702において、処理2700は、開始状態を考慮して基準走行線から基準状態を見つける(例えば、計算する、算出する、又は他のやり方で見つける)。
動作2704において、処理2700は、開始状態及び基準状態を用いて予測状態を決定(例えば、計算、算出等)する。動作2704は、式(4)を用いて予測状態を決定し得る。
式(4)において、xt startは時間tにおける開始状態であり、xt refは時間tにおける基準状態であり、Δtは予測ステップサイズであり、xt+Δt’は時間t+Δtにおける予測状態であり、Pt startは時間tにおける開始状態の共分散であり、Jfは軌道が予測されているオブジェクトの運動モデルのヤコビアンであり、Qtは運動モデルノイズ共分散であり、Pt+Δt’はt+Δtにおける予測状態の共分散である。
動作2706において、処理2700は、予測長さが満たされているかどうかを決定する。すなわち、処理2700は、全ての所望の将来の時点に対するそれぞれの予測状態が計算されたか否かを決定する。もしそうであれば、処理2700は2708で終了する。さもなければ動作2710に進む。動作2710では、処理2700は、動作2704で開始状態を予測状態に設定する。次に、処理2700は、動作2702に進み、次の状態を予測する。
図28は、本開示による自律走行の軌道を予測するための処理2800のフローチャートである。処理2800は、図1に示す車両100又は図2に示す車両202のような自律走行車(AV)内で、又はAVによって実装し得る。AVは、半自律走行車であってもよいし、自律走行を実行する他の車両であってもよい。AVは、車両交通ネットワークの一部を横断するように構成される。処理2800は、図5の軌道プランナ500のような軌道プランナによって実施し得る。処理2800は、第1の位置から第2の位置までの粗走行線を決定し、粗走行線のための戦略的速度計画を決定し、粗走行線における横方向の不連続性を除去して調整された粗走行線を生成し、調整された粗走行線の周りの横方向制約を生成し、観測されたオブジェクトに基づいて離散時間速度計画を生成する。その後、AVは、離散時間速度計画に従って動作し得る。一実施形態では、AVは、図5の軌道最適化層508に関して説明したような最適化された軌道に従って動作し得る。
動作2802において、処理2800は、第1の位置から第2の位置までの粗走行線を決定する。第1の位置及び第2の位置は、図5の走行目標501に関して説明した位置であり得る。粗走行線は、図5の走行線連結モジュール522のような走行線連結モジュールによって決定される粗走行線とし得る。そのため、粗走行線は、図5の走行線連結モジュール522に関して説明したように決定し得る。粗走行線は速度情報を含まなくてもよい。しかしながら、いくつかの例では、粗走行線は速度制限情報を含み得る。粗走行線は不連続性を含み得る。
1つの実装では、粗走行線を決定することは、図5の走行線連結モジュール522に関して説明したように、縦方向に沿って(例えば、自律走行車の経路に沿って)粗走行線を決定するために、走行線データ層502等からの入力データを接合(例えば、連結、融合、合併、接続、統合、又は他の接合)することを含み得る。例えば、位置A(例えば、職場)から位置D(例えば、自宅)に移動するように、粗走行線を決定するために、走行線連結モジュール522は、駐車場データ518からの入力データを使用して、職場駐車場から幹線道路への経路を決定し、HD地図データ510からのデータを使用して、幹線道路から自宅までの経路を決定し、記録された経路データ514からのデータを使用して、幹線道路から自宅のガレージにナビゲートし得る。
1つの実装では、粗走行線を決定することは、図5の戦略的速度計画モジュール524に関して説明したように、第1の位置から第2の位置までの第1のセグメントに関する第1のデータと、第1の位置から第2の位置までの第2のセグメントに関する第2のデータとを含む走行線データを取得し、第1のデータと第2のデータとを連結することを含み得る。一例として、第1のデータは、図5のHD地図データ510に関して説明したようなHD地図データとし得る。一例として、第2のデータは、図5の経路データ514に関して説明したように、記録された経路データとし得る。一例として、第1のデータ又は第2のデータは、図5のHD地図データ510に関して説明したようなHD地図データと、図5の遠隔操作地図データ512に関して説明したような遠隔操作データとを含み得る。いくつかの例では、第1のデータ及び/又は第2のデータは、HD地図データ510、遠隔操作地図データ512、記録経路データ514、先行車両データ516、駐車場データ518、及び知覚経路データ520の任意の組み合わせを含み得る。
動作2804において、処理2800は、粗走行線のための戦略的速度計画を決定する。戦略的速度計画は、図5の戦略的速度計画モジュール524のような戦略的速度計画モジュールによって決定される戦略的速度計画とし得る。そのため、戦略的速度計画モジュール524は、粗走行線の異なる部分に沿った(複数の)特定の速度を決定する。
一例では、戦略的速度計画を決定することは、図7に関して説明したように、速度制限及び加速制限を使用して、戦略的速度計画を決定することを含み得る。速度制限は、(図7の路上速度限界702に関して説明したような)道路速度制限、(図7の曲率速度制限704に関して説明したような)曲率速度制限、及び(図7のSAMデータ706に関して説明したような)シームレスオートノマスモビリティデータのうちの少なくとも1つを含み得る。上述したように、シームレスオートノマスモビリティデータは、他の車両から収集されたデータであってもよい。一例として、シームレスオートノマスモビリティデータをネットワーク化されたサーバからAVで受信し得る。一例では、加速制限は、(図7の車両加速度限界710に関して説明したような)車両加速制限及び(図7の快適性限界712に関して説明したような)快適性限界の少なくとも1つを含み得る。
動作2806において、処理2800は、調整された粗走行線を生成するために、戦略的速度計画に基づいて粗走行線における横方向の不連続性を除去する。粗走行線は、(例えば、粗走行線と呼ばれる)2つ以上のセグメントを含み得る。処理2800は、粗走行線を合成して、粗走行線における横方向の不連続性を除去する。すなわち、処理2800は、戦略的速度計画及び目標横方向速度に基づいて、粗走行線における横方向の不連続性を連結する粗走行線を合成し得る。横方向に不連続性を有する粗走行線及び戦略的速度プロファイルを考慮して、動作2806は、車線変更の開始位置及び終了位置を決定し、2つの位置を接続する走行線を合成する。走行線は、図5の走行線合成モジュール526のような走行線合成モジュールによって合成し得る。そのため、粗走行線における横方向の不連続性を除去することは、第1の車線から第2の車線に合流する走行線を合成することを含み得る。したがって、横方向の不連続性を除去することは、第1の車線から第2の車線に合流するための合流速度計画を決定することを含み得る。
動作2808では、処理2800は、観測されたオブジェクトに基づいて、調整された粗走行線の周りの横方向制約と離散時間速度計画とを生成する。生成した離散時間速度計画は、無衝突離散時間速度計画である。すなわち、生成された離散時間速度計画は、AVが観測されたオブジェクトとの(例えば、停止、譲ること、減速、加速等による)衝突を回避するように動作し得るようなものである。処理2800は、図5のオブジェクト回避層506に関して説明したように、横方向制約及び離散時間速度計画を生成し得る。そのため、一例として、横方向制約を生成することは、図5のモジュール530に関して説明したように、静的オブジェクトに基づいて走行可能領域の境界を決定することを含み得る。一例として、離散時間速度計画を生成することは、図5のモジュール532及び図8の動作830に関して説明したように、動的オブジェクトの分類に基づいて縦方向制約を適用することを含み得る。
図29は、本開示の実装による自律走行シミュレーションのための時間伸縮法のためのシステム2900の一例である。システム2900は、記録AV2902及びシミュレーションAV2904を含む。一例では、記録AVは、実世界で走行する自律走行車であってもよい。
記録AV2902が走行している間、記録モジュール2906は、その走行に関するデータ(すなわち、記録走行データ2908)を記録する。一例として、オペレータは、記録モジュール2906によって、記録走行データの記録を開始及び停止させることができる。しかしながら、記録走行データ2908の記録を開始及び停止するための他の手段も利用可能であり得る。例えば、記録モジュール2906は、記録AVが所定の開始位置にあるときに記録を開始し、記録AVが所定の停止位置にあるときに記録を停止し得る。
記録走行データ2908は、記録AV2902のメモリ、例えば図1のメモリ122に格納し得る。記録走行データ2908は、記録されている場合に、走行が完了した後の断続的な時間に、クラウドベースの場所のようなネットワークベースの場所に送信し得る。記録走行データ2908の記憶場所に関係なく、記録走行データ2908をシミュレーションAV2904に利用可能にし得る。いくつかの例では、シミュレーションデータ2910は、記録走行データ2908のサブセットであってもよく、自律走行をシミュレーションするためにシミュレーションAV2904によって使用し得る。
一例として、記録AV2902は、図1の車両100又は図2の車両202であり得る。記録AV2902は、本明細書に記載されるように構成し得る。すなわち、例えば、記録AV2902は、図4のシステム400に関して説明した1つ以上のコンポーネントを含み得る。例えば、記録AV2902は、軌道プランナ(例えば図4の軌道プランナ408)、世界モデルモジュール(例えば図4の世界モデルモジュール402)、意思決定モジュール(例えば図4の意思決定モジュール406)、経路プランナ(例えば図4の経路計画モジュール404)、反応軌道制御モジュール(例えば図4の反応軌道制御モジュール410)、より少ない、より多い、又は他のモジュールを含み得る。例えば、記録AV2902は、(図8に関して説明したような)走行可能領域及び離散時間速度計画を決定するための処理、(図13に関して説明したような)静的境界を決定するための処理、(図18に関して説明したような)オブジェクト回避のための処理、(図20に関して説明したような)世界モデル化のための処理、(図25に関して説明したような)世界オブジェクト追跡及び予測のための処理、並びに(図26に関して説明したような)軌道を予測するための処理等、本明細書に記載される処理のより多く、より少なく、又は他の処理を実行し得る。しかしながら、必ずしもその必要はない。すなわち、記録AV2902は、本明細書に記載されるように構成される必要はない。
一例では、シミュレーションAV2904は、図4のシステム400に関して説明した1つ以上のコンポーネントを含み得る。例えば、シミュレーションAV2904は、軌道プランナ(例えば図4の軌道プランナ408)、世界モデルモジュール(例えば図4の世界モデルモジュール402)、意思決定モジュール(例えば図4の意思決定モジュール406)、経路プランナ(例えば図4の経路計画モジュール404)、反応軌道制御モジュール(例えば図4の反応軌道制御モジュール410)、より少ない、より多い、又は他のモジュールを含み得る。例えば、シミュレーションAV2904は、(図8に関して説明したような)走行可能領域及び離散時間速度計画を決定するための処理、(図13に関して説明したような)静的境界を決定するための処理、(図18に関して説明したような)オブジェクト回避のための処理、(図20に関して説明したような)世界モデル化のための処理、(図25に関して説明したような)世界オブジェクト追跡及び予測のための処理、並びに(図26に関して説明したような)軌道を予測するための処理等、本明細書に記載される処理のより多く、より少なく、又は他の処理を実行し得る。シミュレーションAV2904のコンポーネント及び/又はモジュールは、記録AV2902のコンポーネント及び/又はモジュールと同じである必要はない。例えば、他のモジュール、コンポーネント、及び/又は処理についても同様であるが、記録AV2902は、第1の意思決定モジュールを含むことができ、シミュレーションAVは、第2の意思決定モジュールを含み得るが、第1の意思決定モジュール及び第2の意思決定モジュールの実装、アルゴリズム、決定のタイプ、より多くの、より少ない、又は他の側面は異なり得る。
図30は、本開示の実施形態による記録走行データ3000の一例である。上述したように、記録AVからの記録走行データ(又はそのサブセット)は、自律走行のシミュレーションにおいて、シミュレーションAVによって使用し得る。記録走行データ3000は、図29の記録走行データ2908とし得る。したがって、記録走行データ3000は、図29の記録モジュール2906のような記録モジュールによって記録し得る。説明を容易にするために、記録走行データ3000は、表形式で示されている。しかしながら、記録走行データ3000は、任意の他の適切なフォーマットで補足(例えば、保存、編成等)し得る。記録走行データ3000は、記録エントリ3002A−E等のデータエントリ(以下に詳細に説明する)を含む。
一例として、記録された各エントリは、記録されたエントリの時間3004、記録されたエントリのタイプ3006、記録されたエントリが記録された時間3008における記録AVの位置3004、時間3004で記録AVによって維持されるオブジェクト3010、1つ以上の画像3012、及び他のデータ3014を含み得る。
時間3004は、記録走行データの記録開始時間からの相対時間であってもよい。記録状態時間は、記録されている走行の開始時間又は記録が開始された(例えば、起動された)時間であってもよい。そのため、時間3004の値の例は、「記録開始から10秒後」、「記録開始から20秒後」等を含む。時間3004は、絶対時間(例えば、時刻)であり得る。時間3004は、サンプリング数(例えば、シーケンス番号)とし得る。例えば、第1の記録データエントリの時間は1の時間を有することができ、第2の記録データエントリの時間は2の時間を有することができ、以下同様である。
タイプ3006は、データエントリのタイプを示す。一例として、記録走行データ3000は、異なるタイプのエントリを含み得る。例えば、エントリ3002A及び3004C等の「位置(POSITION)」エントリは、所定のサンプリングレートに従って記録されるデータエントリである。例えば、サンプリングレートは、1エントリが10ミリ秒ごとに記録され、1エントリが20ミリ秒ごとに記録され、1エントリが1秒ごとに記録されるものであり得る。その他のサンプリングレートも利用可能である。記録走行データ3000は、興味深いと見なされてもよく、したがって記録を保証し得るイベントを記録するエントリを含み得る。例えば、「オペレータ(OPERATOR)」タイプのエントリに対応するエントリ3002Dは、時間t 17.3において、オペレータが、記録AVの意思決定(例えば、所定の速度で前進する決定)を、他のデータ3014における「減速(SLOW)」に示されるように、ブレーキを押すことによってオーバーライドしたことを記録している。「観測(OBSERVATION)」タイプのエントリに対応するエントリ3002は、記録AVが時間t11.1で新しいセンサ観測を受信したことを示す。新しいセンサ観測は、図25の2502、2504、又はこれらの組み合わせに関して説明したように、AVによって受信し得る。エントリ3002Eは、(すなわち、記録AVの意思決定アルゴリズムによって決定され、記録AVによって実行される)決定に対応し、記録AVが時間t11.8で「右車線に変更(した)」ことを示す。
位置3008は、データエントリのそれぞれの時間、時間3004における記録AVのGPS(Global Position Location)であり得る。位置3008は、記録AVの縦方向及び横方向の位置のうちの少なくとも一方が位置3008から決定され得るようなデータであり得るか、又はそれを含み得る。
オブジェクト3010は、図4の世界モデルモジュール402に関して記述されたオブジェクトのリストであってもよいし、そのリストを含んでもよい。すなわち、オブジェクト3010は、記録されたデータエントリの時間3004において世界モデルモジュール402によって維持されるオブジェクトのリストを含み得る。画像3012は、記録されたデータ入力の時間3004における記録AVの感知領域の1つ以上の画像を含み得る。他のデータ3014は、記録走行データ3000のデータエントリの少なくとも一部について、他のエントリタイプ固有の有用な情報を含み得る。
一例として、記録走行データは、時間3004、位置3008、オブジェクト3010、及び画像3012を含み得る。別の例では、記録走行データは、時間3004、位置3008、及びオブジェクト3010を含み得る。さらに別の例では、記録走行データは、時間3004、位置3008、及び画像3012を含み得る。
上述したように、記録走行データ3000には、記録AVが路上を走行するときの記録AVの感知データ、移動データ、意思決定データが含まれる。感知データは、オブジェクト3010、画像3012、又はそれらの組み合わせに関して説明したようなオブジェクト及び/又は生のセンサ観測に対応する。移動データは、位置3008に関して説明したような記録AVの経時的な位置情報のシーケンスに対応する。意思決定データは、例えば、上述したように、「決定(DECISION)」タイプのエントリに対応する。
1つの実装では、観測タイプのデータエントリを使用して、シミュレーションAVに影響を与えることができる。位置タイプのデータ入力を使用して、(後述するように)記録走行データの再生速度を調整する(すなわち、速度を上下させて調節する)ことができる。また、決定タイプのデータエントリはシミュレーションAVによって使用されない。
図31は、本開示の実装によるシミュレーションデータ3100の一例である。シミュレーションデータ3100は、図29のシミュレーションデータ2910とし得る。シミュレーションデータ3100は、自律走行シミュレーションを実行するのに有用な、図30の記録走行データ3000のような記録走行データのサブセットに対応する。一例として、シミュレーションデータ3100は、記録走行データ3000から抽出し得る。すなわち、例えば、シミュレーションデータ3100は、記録走行データ3000とは別のデータ構造、別のデータ記憶場所等、又はそれらの組み合わせに抽出され得る。別の例では、シミュレーションデータ3100は、記録走行データ3000の場所(例えば、論理ビュー)でフィルタリングし得る。
シミュレーションAVの意思決定アルゴリズムをテストする場合、意思決定に関する記録走行データにおけるデータエントリは、シミュレーションデータ3100に含まれない。意思決定に関するデータは、若しあれば、シミュレーション中にシミュレーションAVによって生成されるデータであるため含まれない。同様に、オペレータの介入に関するデータもシミュレーションデータ3100に含まれない。シミュレーションデータ3100は、移動データ(すなわち、記録AVの位置)及び感知データ(すなわち、図30に関して説明したようなオブジェクト及び/又は画像)を含む。
感知データ及び移動データは、シミュレーションAVによって使用される。シミュレーションAVは、感知データと移動データとに基づいて(例えば、意思決定アルゴリズム又はモジュールを使用して)意思決定を行う。意思決定アルゴリズムは、現在感知されているもの(例えば、現在感知されかつ識別されたオブジェクト)に基づいて、次の又は将来のステップ(例えば、操縦、加速、減速、停止等)を決定する。例えば、上述したように、感知データを使用して、感知範囲内の識別されたオブジェクトのうちの少なくともいくつかについての仮説を作成及び維持し、したがって、軌道を決定(例えば、計算)し得る。そのため、移動データと感知データは、シミュレーションAVの意思決定アルゴリズムによる意思決定のための不可分データと見なされ得る。
記録AV(より具体的には、記録されたACのセンサ)は、センサの視線を用いて他の道路ユーザを感知する。視線は、記録AVの位置によって決定(例えば、制約、定義、限定)される。シミュレーションAVが記録AVの感知データ(例えば、記録走行データのエントリ)を使用するためには、シミュレーション中のシミュレーションAVの位置は、感知データがシミュレーションAVの感知範囲内にあるように感知データの時間に記録AVの位置と同期していなければならない。感知データがシミュレーションAVの感知範囲内にない場合、シミュレーションAVの環境の不完全なデータ及び/又は不正確なビューを使用して、シミュレーションAVの意思決定アルゴリズムの1つ以上の決定が行われ得る。すなわち、シミュレーションAVの世界ビュー(例えば、他の道路ユーザの実際の集合)は、不完全であり得る。これは、記録走行データをシミュレーションに使用する目的が、記録AVと同じ条件下でシミュレーションAVの決定をテスト(例えば、観測)することであるため、望ましくない。
図31を参照すると、シミュレーションデータ3100がタイムライン3102上に示されている。タイムライン3102は、楕円3104及び3106を含み、シミュレーションデータ3100が、図示されたものよりも前及び/又は後の時間の追加のシミュレーションデータを含み得ることを示す。シミュレーションデータ3108のような各シミュレーションデータは、参照を容易にするために番号付きのボックスで示されている。各シミュレーションデータは、感知及び移動情報を含む。シミュレーションデータ3100は、図30の記録走行データ3000であってもよく、又はそれから導出されてもよいので、シミュレーションデータ3100は、記録走行データ3000と同じサンプリングレートを有し得る。タイムライン3102は、Δt時間単位離れている2つの時点の間ごとに5つのシミュレーションデータ点が利用可能であることを示す。しかしながら、サンプリングレートは任意のサンプリングレートであり得る
図32は、記録AVの位置3200及び時間TにおけるシミュレーションAVの位置の例を示す。位置3200は、例3210、例3220及び例3230を含む。例3210、3220、3230の各々は、図29の記録AV2902等の記録AV3214と、図29のシミュレーションAV2904等のシミュレーションAV3216とを含む。矢印3202は、記録AV2902及びシミュレーションAV2904の想定される進行方向を示す。
実施例3210、3220、3230は、記録AV3214の感知範囲3212に対するシミュレーションAV3216の位置を示す。感知範囲3212は、記録AV3214のセンサの視野に対応する。感知範囲3212は、記録AVの視点(例えば、全てのセンサの中心と見なすことができる点)に対して測定し得る。一例では、視野は、記録AVの長手方向(例えば、前方及び後方)のそれぞれにおいて50−100メートルの範囲、及び記録AVの横方向(例えば、右側と左側)のそれぞれにおいて10−50メートルの範囲とし得る。また、例3210、3220、3230のそれぞれは、記録AV3214のセンサ範囲内にある他の道路ユーザ3218も含む。
図30−31で説明したように、記録AV3214からの記録走行データのサブセットとなり得るシミュレーションデータがシミュレーションAV3216によって使用されるので、シミュレーションAV3216の感知範囲は、記録AV3214の感知範囲と一致すると想定される。
理想状況と見なされ得る例3212は、シミュレーションAV3216が記録AV3214の感知範囲3212内に留まる状況を示す。このため、時間TにおけるシミュレーションAV3216と記録AVとの位置のずれは生じない(又は、少なくとも大きなずれは生じない)。
図31のシミュレーションデータ3100のようなシミュレーションデータは、意思決定を行って、軌道を計画するために、シミュレーションAV3216によって使用される。シミュレーションデータのサンプリングレートに対応するサンプリング時間において、それぞれのシミュレーションデータが、本明細書に記載される意思決定アルゴリズム及び/又は他のモジュールに提供される(言い換えれば、アクセス又は取得される)。
例3212では、記録AV3214とシミュレーションAV3216とは、記録AVの感知範囲3212内に同位置に配置されたままである。そのため、シミュレーションデータ(例えば、図31のシミュレーションデータ3100)の各シミュレーションデータは、シミュレーションAV3216にとって「合理的」と言える。これは、記録AV3214とシミュレーションAV3216が同じ他の世界オブジェクト(他の道路ユーザ3218等)を「見る」ことができ、かつシミュレーションAV3216の意思決定アルゴリズムがそれに応じて決定を行うことができるためである。例えば、記録AVが対向車(図3の対向車302等)を検出した場合、その対向車(又はその表現)が記録走行データに記録される。そして、シミュレーションデータを介して、対向車はシミュレーションAVに対して可視である。したがって、シミュレーションAVは、シミュレーションAV3216の意思決定、軌道計画、及び/又は他の処理及びモジュールに従って、対向車両の表現と(仮想的に)相互作用し得る。
例3220及び3230は、記録AV3214及びシミュレーションAV3216の位置がずれた状況を示す。実施例3220及び3230は、自律走行シミュレーションのための時間伸縮法が適用されない状況を示す。
例3220及び3230は、記録AV3214及びシミュレーションAV3216の位置が、本開示の実装に従って同期されない状況を示す。すなわち、例3220及び3230では、シミュレーションデータは、記録走行データが記録AV3214によって捕捉されたのと同じ時間ステップでシミュレーションAV3216に提示される。すなわち、例えば、記録AVとシミュレーションAVの位置がずれたか否かに関係なく、記録された走行の2つの時点の間(例えば、図31の(t+2Δt)と(t+3Δt)との間)に記録された同じ記録データ点(例えば、図31のシミュレーションデータ11−15)が、シミュレーションの同じ2つの時点の間のシミュレーションAVによって使用される。
例3220では、時間TにおいてシミュレーションAV3216が記録AV3214よりも遅れている場合を示している。「遅れている」とは、時間Tにおいて、記録走行データによれば、記録AV3214の(例えば、縦方向で走行軌道に沿った)位置がシミュレーションの時間TにおいてシミュレーションAV3216の位置よりも進んでいることを意味する。ずれは、1つ又は複数の上述した理由又は他の理由に起因し得る。なお、時間Tにおけるシミュレーションデータには、他の道路ユーザ3218が含まれている。
時間Tにおいて、他の道路ユーザ3218が(その位置を考慮すると)シミュレーションAV3216の感知範囲外にあるので、シミュレーションAV3216の処理又はモジュールは、他の道路ユーザ3218を「見る」ことはない。例えば、他の道路ユーザ3218は、図4の世界モデルモジュール402のようなシミュレーションAV3216の世界モデルモジュール内に維持されなくてもよい。
さらに例3220を参照する。説明を簡単にするために、他の道路ユーザ3218が静止していると仮定し、さらに、Tより後の時間T’において、記録AV3214の位置は、記録AV3214がもはや他の道路ユーザ3218を見ない(すなわち、感知しない)ようなものであると仮定する。そのため、時間T’において、記録AV3214の世界モデルは、他の道路ユーザ3218を含まないので、時間T’における記録されたデータは、他の道路ユーザ3218を含まない。さらに、時間T’において、シミュレーションAV3216の位置は、例3230に示される感知範囲3212内にあると仮定する。このため、時間T’において、シミュレーションAV3216は、他の道路ユーザ3218を「見る」べきであるにもかかわらず、シミュレーションAV3216は、他の道路ユーザ3218を含まない(時間T’における記録されたデータに対応する)シミュレーションデータを受信する。そのため、シミュレーションAV3216は、他の道路ユーザ3218を考慮して決定を行うべきであるが、シミュレーションAV3216は、あたかもシミュレーションAV3216が(すなわち、他の道路ユーザ3218が存在しないので)無人の世界を横断しているかのように決定を行う。
そのため、例3220に関して上述したような「遅れている場合」では、記録AV3214からのセンサメッセージ(例えば、シミュレーションデータ)は、シミュレーションAV3216が応答するにはあまりにも先に受信されると言える。
例3230は、シミュレーションAV3216が記録AV3214に先行する場合を示しており、これは、時間Tにおいて、記録走行データによれば、記録AV3214の(縦方向で走行軌道に沿った)位置がシミュレーションの時間TにおけるシミュレーションAV3216の位置よりも後方にあることを意味している。時間Tにおけるシミュレーションデータは、他の道路ユーザ3218を含む。
さらに例3230を参照する。時間Tより前の時間T”において、シミュレーションAV3216が感知範囲3212内にあり、記録AVが遅れていると仮定する。時間T”におけるシミュレーションAVの位置は破線のシミュレーションAV3216’で示され、時間T”における記録AVの位置は破線の記録AV3214’で示される。他の道路ユーザ3218が破線の記録AV3214’の感知範囲外であるため、時間T”に対応する記録走行データは他の道路ユーザ3218を含まない。そのため、時間T”におけるシミュレーションAVは、実際にそうすべきときに、他の道路ユーザ3218を受信しない。そのため、シミュレーションAV3216’は、他の道路ユーザ3218を考慮して意思決定を行うべきであるが、シミュレーションAV3216’は、あたかもシミュレーションAV3216が無人の世界を横断しているかのように意思決定を行う。
したがって、例3230に関して上述したような「先行する場合」では、記録AV3214からのセンサメッセージ(例えば、シミュレーションデータ)は、シミュレーションAV3216が(この場合、他の道路ユーザ3218の存在に対して)応答するにはあまりにも遅く受信されると言える。
さらに、時間Tにおいて、実際にシミュレーションAV3216が無人の世界を横断している場合、シミュレーションAV3216は、他の道路ユーザ3218が時間Tに対応する記録走行データに含まれているので、他の道路ユーザ3218を含むシミュレーションデータを受信する。そのため、シミュレーションAV3216は、実際には他の道路ユーザ3218がそうでないときに、あたかも他の道路ユーザ3218がシミュレーションAVのセンサ範囲内にあるかのように決定し得る。
例3220及び3230に関して説明したような、自律走行のシミュレーションにおいて記録走行データを使用することに関連する問題を克服するために、本開示による実装は、シミュレーションAVによる自律走行シミュレーションのために、記録AVから受信した記録走行データのサブセットであり得るシミュレーションデータを時間伸縮させる。この問題は、(記録走行データにおいて捕捉された)記録AVの位置及び(シミュレーションAVの意思決定アルゴリズムによって決定された)シミュレーションAVの位置のずれに起因し得る。
シミュレーションデータの時間伸縮法は、必要に応じて、シミュレーションAVの位置が、記録走行データに捕捉された記録AVの位置を、記録AVと実質的に同じ他の道路ユーザを感知(例えば、観測及び反応)することに対して一致するように、シミュレーションデータの速度を連続的に変化させることによって達成し得る。すなわち、シミュレーションデータの再生速度を変化させることによって、シミュレーションAVは、他の道路ユーザの位置及びシミュレーションAVの位置と一致する他の道路ユーザに関するデータを受信する。
シミュレーションデータの時間伸縮法は、以下のように要約し得る。
シミュレーションAVと記録AVとが実質的に同じ位置にある場合、シミュレーションデータの再生速度は維持される。例えば、シミュレーションAVが記録AVのセンサ範囲内にある場合、再生速度は維持される。例えば、シミュレーションAVが記録AVの閾値距離内にある場合、再生速度は維持される。
例3220に関して説明したように、シミュレーションAVが記録AVに遅れる場合、シミュレーションAVが処理する(例えば、「見て」反応する)には、他の道路ユーザに関する感知データを受信するのが遅すぎないように、シミュレーションデータの再生速度が遅くなる。別の言い方をすれば、シミュレーションデータの再生が遅くなり、それによってシミュレーションAVが追いつくことが可能になる。一例として、シミュレーションAVと記録AVとの間の距離が閾値距離を超え、かつシミュレーションAVが記録AVの(位置的に)後方にあるか否かに基づいて、シミュレーションAVが記録AVに遅れているか否かを決定し得る。
例3230に関して説明したように、シミュレーションAVが記録AVに先行している場合、シミュレーションAVが処理する(例えば、「見て」反応する)には、他の道路ユーザに関する感知データを受信するのが早すぎないように、シミュレーションデータの再生速度が高速化される。換言すれば、シミュレーションデータの再生が高速化され、それによって記録AVが追いつくことが可能になる。一例として、シミュレーションAVと記録AVとの間の距離が閾値距離を超え、かつシミュレーションAVが記録AVの(位置的に)前方にあるか否かに基づいて、シミュレーションAVが記録AVに先行しているか否かを決定し得る。
時間Tにおいて、シミュレーションAVが記録AVのセンサ範囲内にあるかどうかは、シミュレーションAVの処理及びモジュール(例えば、軌道プランナ、意思決定モジュール等)の少なくとも1つによって決定される、記録AVの時間Tにおける位置(シミュレーションデータにおいて利用可能である)、記録AVのセンサ範囲の境界、及びシミュレーションAVの時間Tにおける位置を使用して決定し得る。
時間T’において、シミュレーションAVが記録AVの閾値距離内にあるか否かは、記録AVの時間T’における位置と、シミュレーションAVの時間T’における位置とを用いて決定し得る。閾値距離は、1メートル、2メートル、10メートル、より長い距離、又はより短い距離であり得る。一例として、閾値距離は、記録AVの感知範囲に関連させることができる。例えば、感知範囲が縦方向にXメートル延びている場合、閾値距離は、Xより大きい値、又はXに関連する何らかの他の値(例えば、0.75×X)とし得る。感知範囲は、記録AVで利用可能なセンサ(図1のセンサ126等)の能力に関連している。一例として、センサ範囲は、長手方向のそれぞれに100メートル(例えば、記録AVの前方100m、及び後方100m)延びることができる。しかしながら、上述したように、センサ能力によっては他の値も可能である。
図33は、本開示の実装による自律走行をシミュレーションするための処理3300のフローチャート図である。自律走行は、シミュレーションAVによってシミュレーションされる。1つの実装では、シミュレーションAVは、図4に関して説明したモジュールのうちの1つ以上を含むように構成し得る。シミュレーションAVが軌道を計画するモジュールを含む実装では、シミュレーションAVは、図5に関して説明した1つ以上のモジュールを含み得る。1つの実装では、シミュレーションAVは、自律走行を実行するために使用される、本開示に記載のモジュールの任意の組合せ及び/又は処理の任意の組合せを含み得る。しかしながら、シミュレーションAVは、本明細書に開示される処理及びモジュールに限定されない。
処理3300の自律走行がシミュレーションである場合、シミュレーションAVは物理センサ(図1のセンサ126等)を含まない。したがって、センサを含む自律走行車とは異なり、シミュレーションAVは、物理的センサによって収集されたデータを含む記録走行データ(例えばデジタルデータ)を受信する。
シミュレーションAVは、メモリ及びプロセッサを含む装置によって実行し得る。プロセッサは、処理3300を含む自律走行をシミュレーションするためにメモリに記憶された命令を実行するように構成し得る。
工程3310において、処理3300は、記録AVから記録走行データを受信する。記録走行データは、図29の記録走行データ2908に関して説明したものであってもよい。記録AVは、図29の記録AV2902に関して説明したものであってもよい。したがって、記録走行データは、第1の意思決定アルゴリズム(すなわち、記録AVの意思決定アルゴリズム)を用いて生成された意思決定データ、感知データ(すなわち、記録AVによって観測及び分類等された他の世界オブジェクトに関するデータ)、及び記録AVの移動データを含み得る。移動データは、記録AVの位置を含む。一例として、記録走行データは、図30の記録走行データ3000に関して説明したものあってもよく、又は類似のものであってもよい。
上述したように、感知データは、記録AVのセンサを用いて取得された他の道路ユーザの表現(例えば、それを記述するデータ)を含む。
工程3320において、処理3300は、記録走行データからシミュレーションデータを取得する。シミュレーションデータは、図29のシミュレーションデータ2910に関して説明したように得ることができる。したがって、記録走行データからシミュレーションデータを得ることは、記録走行データから意思決定データを除外することを含み得る。この文脈で使用される場合、「除外」とは、無視すること、フィルタで除くこと、コピーしないこと、使用しないこと、又は他の何らかのやり方で除外することを意味する。記録走行データがさらにオペレータデータを含む場合、シミュレーションデータを得ることは、記録走行データからオペレータデータを除外することを含み得る。図31にシミュレーションの一例が示されている。
工程3330において、処理3300は、シミュレーションデータを用いて第2の意思決定アルゴリズムをシミュレーションする。すなわち、シミュレーションAVは、シミュレーションデータを用いて、自律走行に関する1以上の処理を実行する。1つ以上の処理は、第2の意思決定アルゴリズム(図4の意思決定モジュール406のようなシミュレーションAVの意思決定モジュールによって実行し得る)を含み得る。したがって、第2の意思決定アルゴリズムをシミュレーションすることは、第2の意思決定アルゴリズムによって、他の道路ユーザの表現を受信することを含む。
非限定的な例では、他の道路ユーザの表現の受信に応答して、シミュレーションAVは、処理2000の1つ以上の動作、例えば、他の道路ユーザ(すなわち、実世界オブジェクト)の軌道を予測するための動作2004を実行し得る。
1つの実装では、第1の意思決定アルゴリズムと第2の意思決定アルゴリズムは同一である。例えば、記録走行データが、歩行者(例えば、別の世界オブジェクト)の存在を示す第1の記録走行データと、歩行者が記録AVによって検出された直前又は直後にオペレータ(例えば、記録AVの人間の予備運転者)がAVを停止させたことを示す第2の記録走行データとを含んでいると仮定する。同じ意思決定アルゴリズムを使用することにより、第2の記録走行データをシミュレーションデータから除外しながら、シミュレーションAVが人間の介在なしにどのように動作するか(したがって、どのように記録AVであれば動作したか)を観測し得る。すなわち、意思決定アルゴリズムは、記録AVの意思決定アルゴリズムの決定が、記録AVを歩行者と衝突させるか、又は歩行者を回避させるかを決定するためにテストされ得る。
1つの実装では、第1の意思決定アルゴリズムと第2の意思決定アルゴリズムは同一ではない。すなわち、第1の意思決定アルゴリズムと第2の意思決定アルゴリズムは、同じ条件(例えば、観測された同じ他の道路ユーザ)の下で異なる行動方針(すなわち意思決定)を決定し得る。
第2の意思決定アルゴリズムをシミュレーションすることは、第1の時間にシミュレーションAVの第1の位置を決定する動作3332と、第1の時間に記録AVの位置の第1の位置と第2の位置との間の差に基づいてシミュレーションデータの再生速度を調整する第2の動作3334とを含み得る。
上述したように、シミュレーションAVは、軌道プランナを含み得る。そのため、シミュレーション中の任意の時点におけるシミュレーションの位置を、軌道プランナによって決定される軌道に基づいて決定し得る。そのため、第1の時間におけるシミュレーションAVの第1の位置は、決定された軌道上の第1の時間にけるシミュレーションAVの位置(すなわち、場所)である。上述したように、第1の時間における記録AVの第2の位置は、記録走行データの一部である移動データにおいて利用可能であり得る。
距離は、記録AVとシミュレーションAVのそれぞれ同じ位置にある視点の間で測定し得る。視点は、AV上の場所に対応する。視点は、AVの全てのセンサの中心点と考えることができる。例えば、視点は、AVの後車軸の中心であり得る。そのため、距離は、シミュレーションAVの実車軸の中心と記録AVの実車軸の中心との間の第1の時間に測定された距離であり得る。例えば、距離は、シミュレーションAVと記録AVのそれぞれの実車軸の中心間のユークリッド距離であり得る。すなわち、距離は、それぞれの実車軸の中心間の直線の長さであり得る。別の実装では、距離は、シミュレーションAV及び記録AVの進行方向である長手方向においてのみ測定し得る。
1つの実装では、シミュレーションデータの再生速度を調整することは、記録AVの感知範囲外である第1の位置に応答して、シミュレーションデータの再生速度を調整することを含み得る。再生速度を調整することにより、第1の位置と第2の位置が記録AVの感知範囲内にあるという効果を得ることができる。
1つの実装では、シミュレーションデータの再生速度を調整することは、第1の位置と第2の位置との間の距離が閾値距離を超えることに応答して、シミュレーションデータの再生速度を調整することを含み得る。上述したように、再生速度を調整することにより、第1の位置と第2の位置が記録AVの感知範囲内にあるという効果を得ることができる。
再生速度の調整量は、PID(比例−積分−微分)コントローラを使用して決定し得る。PIDコントローラは、第1の位置と第2の位置との間の距離を誤差値として使用し得る。
図34は、本開示の実装による再生速度調整を決定するためのPID(比例積分微分)コントローラ3400のブロック図である。PIDコントローラ3400の詳細な説明は、PIDコントローラが当業者にはよく理解されているので省略する。距離3402をPIDコントローラ3400への入力として用いる。距離3402は、時間TにおけるシミュレーションAVの最初の位置と記録AVの位置の第2の位置との差である。距離3402は、時間TにおいてシミュレーションAVが記録AVに遅れているか又は先行しているかを示す符号付きの値である。PIDコントローラの出力3404は、再生速度に対する調整量を示す。上述したように、距離3402が閾値距離を(絶対値で)超えない場合、PIDコントローラ3400は再生速度を調整しないように構成し得る。閾値距離は、1メートル、2メートル、又はその他の閾値距離であってもよい。再生速度3406は、シミュレーションAVが次の時間ウィンドウで処理すべき記録データ点の数を示す。
図31を再び参照して、PIDコントローラ3400等による再生速度の調整を説明する。現在のシミュレーション時間を時間tと仮定する。記録AVとシミュレーションAVとの間の距離が閾値距離を超えない場合、シミュレーションAVは、シミュレーションデータ点をリアルタイムで処理する。すなわち、シミュレーションAVは、記録AVによってシミュレーションデータ点が記録されたのと同じ速度でシミュレーションデータ点を処理する。例えば、図31を参照して、記録AVが、時間tとt+Δtとの間に1−5のラベルを付けられたシミュレーションデータ点(又は、より正確には、シミュレーションデータ点がそこから導出される記録走行データ点)を記録した場合、シミュレーションAVは、シミュレーション時間tとt+Δtとの間に同じ速度でデータ点1−5を処理する。すなわち、シミュレーションAVは、シミュレーション時間tとt+Δtとの間で、1−5の番号を付けられたシミュレーションデータを処理する。
一方、距離が閾値距離を超えており、シミュレーションAVが記録AVに先行していることを示す場合、PIDコントローラ3400は、(出力3404を介して)再生速度3406を例えばリアルタイム速度の140%まで上げるべきことを示してもよい。そのため、シミュレーション時間tとt+Δtとの間で、シミュレーションAVは、シミュレーションデータ点1−7を処理する(140%×(時間ウィンドウあたりのデータ点数)=140%×5=次の7シミュレーションデータ点に対応する)。
次に、距離が閾値距離を超え、シミュレーションAVが記録AVより遅れていることを示し、PIDコントローラ3400が(出力3404を介して)、再生速度3406を例えばリアルタイム速度の60%まで低下させるべきことを示していると仮定する。そのため、シミュレーション時間t+Δtとt+2Δtとの間で、シミュレーションAVは、8−10とラベル付けされたシミュレーションデータ点を処理する(60%×(時間ウィンドウあたりのデータ点数)=60%×5=次の3シミュレーションデータ点に対応する)。
いくつかの実装では、再生速度はシミュレーションの一部に対してのみ調整される。例えば、シミュレーションの目的は、シミュレーションにおいて、他の道路ユーザとシミュレーションAVとの間の相互作用をテストすることであり得る。例えば、シミュレーションデータは、時間t1で開始し、時間t2で終了する、記録走行の間隔内における記録AVと道路ユーザとの間の相互作用を含む、長さLの記録走行に関するものであり得る。例えば、記録された走行は、20分の長さであってもよく、記録AVは、記録された走行の10分30秒の時点で歩行者に遭遇していてもよい。したがって、再生速度は、シミュレーションの時間t1まで調整し得る。シミュレーションの時間t1とt2との間では、再生速度は調整されない。
1つの実装では、自律走行をシミュレーションする処理は、第1の意思決定アルゴリズムを使用する記録自律走行車(AV)から記録走行データを受信すること、シミュレーションAVによって、記録走行データの少なくとも一部を用いて、第2の意思決定アルゴリズムをシミュレーションすることを含み得る。第2の意思決定アルゴリズムをシミュレーションすることは、第1の時間におけるシミュレーションAVの第1の位置と第1の時間における記録AVの第2の位置との間の差に基づいて、記録走行データの少なくとも一部の再生速度を調整することを含み得る。
説明を簡単にするために、処理800、1300、1800、2000、2050、2500、2700、2800及び3300は、それぞれ一連の動作として示されかつ説明されている。しかしながら、本開示に従った動作は、様々な順序で及び/又は同時に起こり得る。さらに、本明細書に提示及び記載されていない他のステップ又は動作を使用してもよい。さらに、全ての図示された動作が、開示された主題に従った技術を実装するために必要とされるわけではない。
本明細書で使用される場合、「運転者」又は「オペレータ」という用語は、同じ意味で使用されてもよい。本明細書で使用される場合、「ブレーキ」又は「減速」という用語は、同じ意味で使用されてもよい。本明細書で使用される場合、「コンピュータ」又は「コンピュータ装置」という用語は、本明細書で開示の任意の方法を実行し得る任意のユニット又はユニットの組み合わせ、又はその任意の部分若しくは複数の部分を含む。
本明細書で使用される場合、「命令」という用語は、本明細書に開示の任意の方法を実行するための指示若しくは表現、又はその任意の部分若しくは複数の部分を含んでもよく、ハードウェア、ソフトウェア又はこれらの任意の組み合わせで実現されてもよい。例えば、命令は、本明細書に記載の各方法、アルゴリズム、態様又はこれらの組み合わせのいずれかを行うためにプロセッサによって実行され得るメモリに記憶されたコンピュータプログラム等の情報として実装されてもよい。いくつかの実装形態では、命令又はその一部は、本明細書に記載の任意の方法、アルゴリズム、態様又はその組み合わせを行うための専用ハードウェアを含み得る専用プロセッサ又は回路として実装されてもよい。いくつかの実装形態では、命令の部分は、直接的に又はローカルエリアネットワーク、ワイドエリアネットワーク、インターネット又はこれらの組み合わせ等のネットワークを介して通信し得る複数の装置又は単一の装置上の複数のプロセッサに分散されてもよい。
本明細書で使用される場合、「例示」、「実施形態」、「実装」、「態様」、「特徴」又は「要素」という用語は、用例、例示又は実例としての役割を果たすことを示している。特に明示されない限り、任意の例示、実施形態、実装、態様、特徴又は要素が、互いの例示、実施形態、実装、態様、特徴又は要素から独立しており、任意の他の例示、実施形態、実装、態様、特徴又は要素と組み合わせて使用されてもよい。
本明細書で使用される場合、「決定」及び「識別」又はこれらの任意の変形の用語は、図示の及び本明細書に記載の1つ以上の装置を使用するいかなるやり方で選択、確認、計算、検索、受信、決定、確立、取得、又は他のやり方で識別又は決定することを含んでいる。
本明細書で使用される場合、「又は」という用語は、排他的な「又は」ではなく包含的な「又は」を意味することが意図されている。すなわち、他に特に定めがない限り、又は特に文脈によって明示されない限り、「XがA又はBを含む」は、任意の当然の包含的なそれの並べ替えを示すことが意図されている。XがAを含む、XがBを含む、又はXがA及びBの両方を含む場合、「XがA又はBを含む」は、上記の例示のいずれかによって満たされる。さらに、本願及び添付の請求項の中で使用される“a”及び“an”という冠詞は、一般に、単数形を指していることが文脈から明確であるか又は他に特段の定めがない限り、「1つ以上の」を意味すると解釈されるべきである。
さらに、説明の簡潔のため、本明細書の図面及び説明は一連の動作又は段階又はシーケンスを含み得るが、本明細書に開示の方法の要素は、様々な順番で又は同時に起こってもよい。さらに、本明細書に開示の方法の要素は、本明細書に明示的に提示及び開示されていない他の要素と共に起こってもよい。さらに、本明細書に記載の方法の全ての要素が、本開示による方法を実装することを要求されるとは限らない。態様、特徴及び要素は特定の組み合わせで本明細書に記載されているが、各態様、特徴又は要素は、他の態様、特徴及び/又は要素と共に又はそれらなしで独立して又は様々な組み合わせで使用されてもよい。
本開示の技術は、特定の実施形態に関連して説明されてきたが、本開示の技術は、開示された実施形態に限定されるものではなく、逆に、添付の特許請求の範囲に含まれる様々な変更及び同等の構成を包含することを意図しており、その範囲は、全てのそのような変更及び同等の構成を包含するように、法律の下で許容される最も広い解釈に一致されるものである。