上述の通り、環境を通る自律車両のルートを生成することは計算集約的の場合があり、および/または乗客に安全または快適なルートを提供しない場合がある。この出願は、環境を通るルートを計画する計算上の負担を軽減するための技術を説明し、軌道生成の正確度および精度を改善し得る、および/または乗客のルートの安全性および快適性を改善し得る。例えば、本明細書に記載の技術は、ルートに沿った活動のレベル(例えば、曲率および/または物体に関連付けられたコスト)に基づいて、軌道ポイント(例えば、関連付けられたコストおよび制御を決定するために使用される軌道に沿ったポイント)の密度を適応的にスケーリングすることによって、計算負荷を軽減し得る。少ない活動(例えば、曲率に関連付けられたコストが低い、および/または近くの物体が少ない)を有するルートの一部分により低い密度の軌道ポイントを使用することにより、軌道生成の計算強度を削減できる。本明細書で言及されるそのようなコストは、非限定的な例として、曲率または距離、L1、L2、二次、フーバー、多項式、指数、関数など、またはそれらの任意の組み合わせに関して、比例し得る。別の例として、本明細書に記載の技術は、より高い活動(例えば、曲率に関連するより高いコストおよび/またはより近くの物体)を有するルートの一部分に対して比較的高密度の軌道ポイントを使用することによって、軌道生成の正確度および/または精度を増加し得る。別の例として、コスト関数は、快適性、車両運動性、安全性などの目標のバランスを定量的に取る。本明細書で論じられる技術は、環境を通る軌道の輪郭を決定する際の安全性および/または快適性を高めるために、1つまたは複数のコストに関連付けられた重みを適応的にスケーリングすることを含む。さらに、環境内の物体の周囲にバッファを確立する領域は、物体の分類(例えば、歩行者、車両など)に応じた、および/または環境内の自律車両の速度に応じたサイズ内で、増加または削減することができる。
この開示は、環境内で車両が走行するための軌道および運転可能エリアを生成する技術を対象としている。例えば、自律車両は、環境内で自律車両が辿る初期経路または軌道を表す基準軌道を受信できる。基準軌道上のポイントのポイント密度は、基準軌道の曲率に関連付けられたコスト、および/または基準軌道と環境内の障害物との間の距離に関連付けられたコスト、に少なくとも部分的に基づくことができる。様々なコストに関連付けられた重みは、基準軌道のジャンプや不連続性、または閾値を満たすもしくは超える障害物コストなどのトリガーに基づくことができる。さらに、運転可能エリアは、自律車両が走行できる環境内の領域を表すことができる。運転可能な領域の境界は環境内の物体および境界と物体の間の確率的な距離についての情報を含むことができる。いくつかの例では、運転可能エリアに関連付けられた領域は、環境内の物体の分類に、および/または環境内の自律車両の速度に基づくことができる。運転可能エリアに関する基準軌道上のポイントにおける1つまたは複数のコストの評価に少なくとも部分的に基づいて、基準軌道に関して目標軌道を生成することができ、それにより、基準軌道上のポイントの密度およびコストに関連付けられた重みを本明細書で論じられるように決定することができる。
いくつかの例では、自律車両の計画システムは、環境を走行する自律車両のための1つまたは複数の軌道を生成するおよび最適化するための1つまたは複数の層を含むことができる。例えば、計画システムの第1の層は車線基準(基準軌道とも呼ばれる)を受信または決定でき、これは道路セグメントの中心に対応または関連付けられ得る。車線基準上のポイントに関連付けられたコストを評価および最適化して、第1の目標軌道を生成できる。例えば、車両の状態を車線基準(または基準軌道)の各ポイントに沿って評価して、時間の経過に伴う車両の状態の変化(例えば、「ロールアウト」と呼ばれることもある)を評価できる。いくつかの例では、第1の目標軌道を計画システムの第2の層に提供することができ、それにより、第1の目標軌道が基準軌道として使用される。基準軌道上のポイントに関連付けられたコストを評価および最適化して、第2の目標軌道を生成できる。いくつかの例では、第2の目標軌道をさらに最適化することができる、または自律車両を制御するために使用することができる。いくつかの例では、第1の層は、ポイント間の距離に関して基準軌道を最適化することができ、および/または第2の層は、ポイント間の時間に関して基準軌道を最適化することができるが、他の組み合わせが本明細書で企図される。
いくつかの例では、自律車両が辿る初期経路または軌道を表す基準軌道を、自律車両のコンピューティングデバイスによって生成または受信することができる。いくつかの例では、基準軌道は道路セグメントの中心線に対応することができるが、基準軌道は環境内の任意の経路を表すことができる。いくつかの例では、基準軌道に関連付けられた曲率値に関連付けられたコストに少なくとも部分的に基づいて、および/または基準軌道の領域に関連付けられたポイントと環境内の1つまたは複数の障害物との間の距離に関連付けられたコストに少なくとも部分的に基づいて、基準軌道上のポイントを、確立する、選択する、サンプリングする、または、そうでなければ決定することができる。例えば、比較的高い曲率値に関連付けられた領域は、環境内の障害物の周りの操縦を表し得る、または角を曲がる、駐車などの操縦を表し得る。別の例として、基準軌道の領域は環境内の障害物に比較的近くすることができる。従って、曲率に関連付けられた高コストおよび/または障害物までの距離に関連付けられた高コストの場合、領域を基準軌道上のポイントの比較的高いポイント密度に関連付けることができる。場合によっては、1つまたは複数のコストを基準軌道上のポイントで評価して目標軌道を生成でき、これにより、自律車両を制御して目標軌道を辿ることができる。従って、基準軌道上の曲率に関連付けられたコストに基づいて、および/または基準軌道上のポイントと障害物に関連付けられたポイントとの間の距離に関連付けられたコストに基づいて、基準軌道上のポイントの密度を動的に変化させることは、目標軌道の生成に関連してダウンストリーム処理の量に影響を与えることができる。
いくつかの例では、基準軌道上のポイントに関連付けられた1つまたは複数のコストを評価することによって、基準軌道に関して目標軌道を生成することができる。一般に、1つまたは複数のコストは、限定されないが、基準コスト、障害物コスト、横方向コスト、縦方向コストなどを含み得る。1つまたは複数のコストの追加の詳細を以下に提示する。さらに、コストは、軌道に関連付けられたコストまたは軌道のポイントに関連付けられたコストを増加または減少させることができる重みに関連付けることができる。いくつかの例では、本明細書で説明する操作は、基準軌道における不連続性または閾値を満たすもしくは超える1つまたは複数のコストなどのトリガーに基づいて、コストに関連付けられた重みを減らすことを含むことができる。例として、および限定ではないが、車両が二重駐車車両の周りを走行している場合に、または車線を変更している間に、基準コスト(以下で説明される)に関連付けられた重みを減らすことができる。いくつかの例では、基準コストは、基準軌道上のポイント(基準ポイントとも呼ばれる)と目標軌道上の対応するポイント(ポイントまたはターゲットポイントとも呼ばれる)との間の差に関連付けられたコストを含むことができ、これにより、差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レートなどの1つまたは複数の差を表す。いくつかの例では、基準コストに関連付けられた重みを減らすことは基準軌道から離れた距離に配置された目標軌道に関連付けられたペナルティを減らすことができ、これは、より安全でおよび/またはより快適な車両操作につながるよりスムーズな移行を提供することができる。例えば、基準軌道の一部分に関連付けられた基準コストを減らすことは、車両と環境内の障害物との間のバッファの増加をもたらすことができる。
車線変更中などの他の例では、基準コストの重みを選択することを他のチェックと組み合わせて、安全で快適な車両運動性を提供できる。例えば、車線変更アクション中に、目標軌道をチェックして、車両が前方に移動した距離を考慮する場合、および/または移動時間の期間を考慮する場合、距離閾値未満の横方向変位を維持することができる。一例として、限定されないが、車両を、車両が前方方向に2メートル移動するごとに横方向に1メートル移動するように強制し得、それにより、車線変更中の横向きの力を低減する。別の例として、限定されないが、車両は、2秒などの時間の引窓の間、横方向に1メートル移動するようにさらに強制され得る。もちろん、他の距離および時間も本明細書で企図されている。
いくつかの例では、障害物コストは、基準軌道または目標軌道上のポイントと環境内の障害物に関連付けられたポイントとの間の距離に関連付けられたコストを含むことができる。例として、障害物に関連付けられたポイントは、運転可能エリアの境界上のポイントに対応することができ、または環境内の障害物に関連付けられたポイントに対応することができる。いくつかの例では、環境内の障害物は、限定しないが、静的物体(例えば、建物、縁石、歩道、車線マーキング、標識、信号機、木など)または動的物体(例えば、車両、自転車、歩行者、動物など)を含むことができる。いくつかの例では、動的物体はエージェントと呼ばれることもできる。いくつかの例では、静的物体または動的物体は概して物体または障害物と呼ばれることができる。
いくつかの例では、横方向コストは、車両の速度に対する最大ステアリング入力など、車両へのステアリング入力に関連付けられたコストを指すことができる。
いくつかの例では、縦方向コストは、車両の速度および/または加速度(例えば、最大ブレーキおよび/または加速度)に関連付けられたコストを指すことができる。
上で紹介したように、車両は、車両が走行できる環境内の領域を表す運転可能エリアを決定することができる。いくつかの例では、自律車両のコンピューティングデバイスは、自律車両の1つまたは複数のセンサによってキャプチャされたセンサデータを受信することができ、環境内の1つまたは複数の物体および/または環境内の1つまたは複数の物体の属性を決定することができる。いくつかの例では、自律車両は、物体および/または物体の属性を利用して、運転可能エリアの範囲を決定する際に、どの物体を含めるべきかを決定することができる。従って、自律車両は、運転可能エリアの範囲内で軌道(例えば、基準軌道および/または目標軌道)を計画することができる。
いくつかの例では、運転可能エリアは、拡張領域、衝突領域、および/または安全領域を含むことができる。例えば、拡張領域は、車線境界に関して静的にまたは動的に生成されて、運転可能エリアの最大範囲を表すことができ、環境内の物体に関する情報、ならびに境界と物体との間の確率的距離、ならびに基準および/または目標軌道を含むことができる。例えば、拡張領域は、距離(例えば、車両の幅の半分)さらにセンサノイズの不確実性に基づくいくつかの距離に少なくとも部分的に基づいて、境界に関連付けられたバッファを表すことができ、これは物体分類に少なくとも部分的に基づき得る。さらに、いくつかの例では、衝突領域は、自律車両が回避する領域を表す拡張領域(例えば、障害物と衝突領域の境界との間のより大きな距離を表す)よりも小さい運転可能エリアを表し、自律車両が環境内の物体と衝突する可能性をさらに減らすことできる。いくつかの例では、衝突領域への進入に関連付けられたコストは比較的高くなる可能性がある(安全領域と比較して)。いくつかの例では、安全領域は、衝突領域および拡張領域よりも小さい領域を表し、自律車両と環境内の物体との間にバッファを設けることができる。いくつかの例では、安全領域への進入に関連付けられたコストは、衝突領域に関連付けられたコストよりも低くなる可能性がある。いくつかの例では、衝突領域および/または安全領域はまた、環境内の物体に関する情報、および境界と物体との間の確率的距離と関連付けることができる。いくつかの例では、自律車両は、本明細書で説明するように、基準軌道および/または目標軌道上のポイントと領域に関連付けられた1つまたは複数のポイントとの間の距離に少なくとも部分的に基づいてコストを評価することができる。いくつかの例では、領域に関連付けられたコストは異なる場合がある。例えば、安全領域に関連付けられたコストおよび/または重みは、衝突領域に関連付けられたコストおよび/または重みよりも比較的小さくてもよい。
いくつかの例では、領域のサイズは、領域が表すか、そうでなければ環境内で関連付けられている物体の分類タイプに少なくとも部分的に基づくことができる。例えば、歩行者に関連付けられた安全領域は第1の距離またはサイズに関連付けられ得、車両に関連付けられた安全領域は第1の距離またはサイズとは異なる第2の距離またはサイズに関連付けられ得る。例として、限定されないが、歩行者に関連付けられた安全領域は、車両に関連付けられた安全領域よりも大きくなる可能性があり、他の要因が同じであると想定して、これは、自律車両が車両よりも歩行者に大きなバッファを与える結果を引き起こし得る。
いくつかの例では、領域のサイズは自律車両の速度に少なくとも部分的に基づくことができる。例えば、歩行者に関連付けられた安全領域は、自律車両が第1の速度で走行している(またはその領域に対応する基準ポイントで走行すると予測される)間、第1の距離またはサイズに関連付けられ得、自律車両が第1の速度とは異なる第2の速度で走行している(またはその領域に対応する基準ポイントで走行すると予測される)間、第2の距離またはサイズに関連付けられ得る。例として、限定されないが、自律車両の速度が増加するにつれて安全領域のサイズを増加ことができ、他の要因が同じであると想定して、これは、自律車両がより高速度時に、歩行者に大きなバッファを与える結果を引き起こし得る。
本明細書で論じられる技術は、いくつかの追加の手段でコンピューティングデバイスの機能を改善することができる。場合によっては、基準軌道に関連付けられたポイントの密度を変更することは、関心の高い領域または活動の多い領域のポイントの密度を増やすことによって、および関心の低いまたは活動の少ない領域のポイントの密度を減らすことによって、処理の量を減らすことができる。さらに、コストの評価などの追加の処理ステップは基準軌道上のポイントに基づいているため、考慮するポイントの数を減らすことは、正確度または精度を犠牲にすることなく、処理全体の大幅な削減を表すことができる。いくつかの例では、コストに関連付けられた重みを選択することは、より安全な軌道をもたらすことができ(例えば、環境内の物体と車両との間の距離を増やすことによって)、および/またはより快適な軌道をもたらすことができる(例えば、車線変更アクション中に横方向への加速を減らすことによって)。いくつかの例では、運転可能エリアに関連付けられた領域のサイズを変えることは、分類タイプおよび/または自律車両の速度に基づいて領域を生成および/または修正することによって、安全性を向上することができる。さらに、本明細書で論じられる技術を単独でまたは組み合わせて使用して、軌道を生成する様々なシステムにおける安全性および/または快適性を改善することができる。コンピュータの機能に対するこれらおよびその他の改善を本明細書で論じる。
本明細書で説明される技法は、いくつかの方法で実装することができる。例示の実装について、以下の図面を参照しながら以下に提示する。自律車両のコンテキストで論じているが、本明細書に記載の方法、装置、およびシステムは、様々なシステム(例えば、センサシステム、またはロボットプラットフォーム)に適用することができ、自律車両に限定されない。別の例では、技術は、航空または航海の状況で利用することができる。さらに、本明細書で説明される技術は、実データ(例えば、センサを用いてキャプチャされた)、模擬データ(例えば、シミュレーターによって生成された)、またはその2つの任意の組合せで用いることができる。
図1は、本開示の実施形態による、軌道を生成、運転可能エリアを生成、およびコストを評価するためのシステムの例示の実装を示す概略図である。より具体的には、図1は、車両102が配置されている例示の環境100を示している。図示の例では、車両102は環境100内で運転しているが、他の例では、車両102は環境100内に静止および/または駐車していてもよい。1つまたは複数の物体またはエージェントもまた、環境100内にある。例えば、図1は、環境100内の追加の車両104aおよび104bならびに歩行者106aおよび106bを示している。もちろん、任意の数および/またはタイプの物体が、追加的または代替的に環境100に存在することができる。
例示の目的で、車両102は、ドライバー(または乗員)の車両の常時制御を期待せず、全体行程の全ての安全上重要な機能を実行可能な車両について説明する米国国家高速道路交通***が発行するレベル5分類に従って操作するように構成された自律車両とすることができる。このような例では、車両102は全ての駐車機能を含む開始から停止までの全ての機能を制御するように構成できるので、無人化できる。これは単なる例であり、本明細書で説明するシステムおよび方法は、ドライバーが常に手動で制御する必要がある車両から、部分的または完全に自律的に制御されている車両までの範囲を含む任意の地上、空中、または水上車両に組み込むことができる。車両102に関連付けられた追加の詳細を以下で説明する。
図1の例では、車両102は、1つまたは複数のセンサシステム108に関連付けることができる。センサシステム108は、センサデータ110を生成することができ、これは、車両102に関連付けられた車両コンピューティングデバイス112によって利用されて、1つまたは複数の物体、例えば、車両104および歩行者106を認識することができる。センサシステム108は、限定されないが、光検出および測距(LIDAR)センサ、無線検出および測距(RADAR)センサ、飛行時間センサ(Time of Flight sensors)、超音波トランスデューサー、音波航法および測距(SONAR)センサ、位置センサ(例えば、全地球測位システム(GPS)、コンパスなど)、慣性センサ(例えば、慣性測定ユニット、加速度計、磁気計、ジャイロスコープなど)、カメラ(例えば、RGB、IR、強度、深度など)、ホイールエンコーダ、マイク、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)などを含むことができる。
少なくとも1つの例では、車両コンピューティングデバイス112は、知覚システムを含むことができ、これは、センサシステム108から受信したセンサデータ110に少なくとも部分的に基づいて物体検出、区分、および/または分類を実行することができる。例えば、知覚システムは、センサシステム108によって生成されたセンサデータ110に基づいて、環境100内の車両104aおよび104bおよび/または歩行者106aおよび106bを検出することができる。さらに、知覚システムは、車両104aおよび104bならびに/または歩行者106aおよび106bの範囲(例えば、高さ、重み、長さなど)、車両104aおよび104bならびに/または歩行者106aおよび106bのポーズ(例えば、x座標、y座標、z座標、ピッチ、ロール、ヨー)、などを決定できる。センサシステム108は、センサデータ110を(例えば、ほぼリアルタイムで)連続的に生成することができ、これは、知覚システム(および車両コンピューティングデバイス112の他のシステム)によって利用することができる。
車両コンピューティングデバイス112はまた、運転可能エリアコンポーネント114、軌道生成コンポーネント116、およびコストコンポーネント118を含むことができる。いくつかの例では、別々に説明されているが、軌道生成コンポーネント116およびコストコンポーネント118(および/または本明細書で説明されている他のコンポーネント)を、単一のコンポーネントまたはアルゴリズムに統合することができる。一般に、運転可能エリアコンポーネント114は、本明細書で論じられる実施形態に従って、運転可能エリア120を生成および/または決定するための機能を含むことができる。一般に、軌道生成コンポーネント116は、本明細書で論じられる実施形態に従って、運転可能エリア120内に、基準軌道122および/または目標軌道124を生成する機能を含むことができる。一般に、コストコンポーネントは、基準軌道122に関して目標軌道124を生成するための1つまたは複数のコストを評価する機能を含むことができる。
いくつかの例では、運転可能エリア120は、例えば、車両104a、104bおよび歩行者106a、106bを含む物体に対して、車両102が環境100を通って安全に移動することができる環境100内の仮想エリアであり得る。
図1に示されるように、および本明細書でさらに詳細に説明されるように、運転可能エリア120は、仮想境界126および128によって定義され得る。図1に示される運転可能エリア120の例において、運転可能エリア120は、例えば、車両102の幅または横方向に可変幅130を有し得る。図1は、第1の幅130aおよび第2の幅130bを示しており、これらは集合的に、および運転可能エリア120内の他の位置における他の幅とともに、幅130と呼ばれ得る。本明細書で説明するように、幅130を含む仮想境界126および128の属性は、センサデータ110および/または知覚システムによって行われた決定に少なくとも部分的に基づいて、決定され得る。例えば、いくつかの実装形態では、仮想境界126および128は、環境100内の物体に関する情報に基づいて決定され得、これは、意味分類および/または確率モデルに関する情報を含み得る。少なくともいくつかの例では、仮想境界126および128は、情報(最も近い物体までの横方向の距離、最も近い物体の意味分類、そのような距離および分類の関連する確率など)で符号化され得る。いくつかの例では、運転可能エリア120は、その全体が参照により本明細書に組み込まれる、2018年5月17日に出願された米国特許出願第15/982,694号に記載された技術に従って、生成することができる。
図1にも示されているように、運転可能エリア120を決定すると、車両コンピューティングデバイス112はまた、車両102が環境100を通って移動し得る基準軌道122を決定し得る。プランナーシステムは、センサシステム108から受信したセンサデータ110および/または知覚システムによって行われた任意の決定に少なくとも部分的に基づいて、車両102を制御するために使用するルートおよび/または軌道を決定することができる。例えば、計画システムは、車両104a、104bおよび歩行者106a、106bに対して環境を安全に走行するために、基準軌道122に関して、1つまたは複数のコストを評価し、目標軌道124を生成することができる。
より具体的には、図1は、車両102が環境100を通って、一般に矢印132の方向に移動しているシナリオを示している。車両102は、第1の車線136および第2の車線138を有する道路134を走行している。車両102は、車両104aの後方の第1の車線136にあり、この例では、車両104aよりも比較的速く移動している。例えば、車両104aは、減速して左に曲がる、道路134の左側に縦列駐車する、道路の左路肩に乗客または配達物を降ろす、などをし得る。本開示の例では、車両102は、例えば、運転可能エリアコンポーネント114を実行することによって、先行として運転可能エリア120を決定し、車両102が減速している車両104aの周りを安全に走行できるかどうかを決定し得る。より具体的には、車両コンピューティングデバイス112は、センサデータ110を使用して、環境100内の物体に関する情報を決定し得、これは、車両104a、車両104b、歩行者106a、歩行者106b、および/または追加の物体を含み得る。例えば、車両コンピューティングデバイス112は、運転可能エリアコンポーネント114を使用して、各物体に関する情報を融合または組み合わせて、運転可能エリア120を構成し得る。次に、そのような運転可能エリア120を使用して、車両102が沿って移動し得る基準軌道122および/または目標軌道124を決定し得る(例えば、制約および/または境界を提供することによって)。いくつかの例では、基準軌道122は、運転可能エリア120より先に、または実質的に同時に(技術的許容範囲内で)生成することができる。
図1をさらに参照すると、運転可能エリア120は、様々な幅、例えば、第1の幅130aおよび第2の幅130bを有し得、これらの幅は、環境100内の物体に関する情報に少なくとも部分的に基づいて、決定される。例えば、矢印132によって示される方向において、車両102の直前の位置にて、幅130aは概して道路134の幅全体に及ぶ。第1の車線136および第2の車線138の縁部では、路肩に対してわずかなオフセットが提供され得るが、そのようなオフセットは、他の実施形態では除外されてもよい。矢印132の方向に道路134に沿ってさらに進むと、境界128が左路肩から徐々に離れるにつれて、運転可能エリア120は右車線138に完全に制限されまで、運転可能エリア120は狭くなり始める。運転可能エリア120のこの狭小化は、車両104aの存在および/または相対的な減速の結果である。さらに、車両104aに直接隣接して、運転可能エリア120をさらに狭くし、例えば、車両104aに対して最小の横方向オフセットを設け得る。同様に、運転可能エリア120の右側上に、オフセットを、第1の歩行者106aおよび道路134の右の路肩に駐車されている車両104bに近接して設け得る。いくつかの例では、そのような運転可能エリア120はまた、歩行者106aのものなどの物体の予測軌道に基づいて決定され得る。図1に示される非限定的な例として、運転可能エリア120は、歩行者106aが進行方向132を歩き続けることを見越して、歩行者106aの近くで、わずかに避ける。そのような、避ける長さは、例えば、車両102および歩行者106aの速度に基づき得る。
本明細書でさらに説明するように、運転可能エリア120の幅130は、環境100内の物体に関する情報の結果として変化する。従って、例えば、オフセットは、車両104a、車両104b、および歩行者106aの近くに設けられる。これらのオフセットは、車両102が運転可能エリア120内を移動する際に、物体からの車両102の安全マージンまたは最小距離を設けるのに役立ち得る。いくつかの実装形態では、オフセットおよび/または最小距離は、環境100内の物体間で、異なり得る。例えば、物体に関する意味情報を使用して、適切なオフセットを決定し得る。従って、図1では、歩行者は第1の分類に関連付けられ得、車両は第2の分類に関連付けられ得る。第1の分類は、第2の分類が対応する最小オフセットよりも大きい最小オフセットに対応し得る。さらに、第2の分類内の車両はさらに、車両104bの場合のように静的として、または車両104aの場合のように動的として分類され得る。移動している車両104aに対するオフセットは、例えば、駐車している車両104bに関連付けられたオフセットよりも大きくなり得る。さらなる例では、物体に関する確率的情報はまた、または代替的に、オフセットを決定するために使用され得る。例えば、歩行者106aまたは車両104aのドライバーが進路を変更する可能性があるため、例えば、移動する歩行者106aおよび/または移動する車両104aのアクションに関連付けられたいくつかの不確実性があり得る。確率的情報はまた、例えば、センサシステム108に関連付けられたセンサの不正確さを説明するために使用され得る。
運転可能エリア120は、従来のナビゲーション技術と比較した場合、車両104aの周りのより効率的なナビゲーションを可能にし得る。従来の解決策では、例えば、車両102は、例えば、車両102と車両104aとの間の最小距離を維持するために、車両104aに近づくにつれて減速し得、停止または速さ閾値まで減速するときにのみ、車両102は車両104aの周りの代替ルートを探し始め得る。あるいは、車両102は、車両104aが方向転換、駐車、移動、加速などするまで、車線136内でアイドル状態になり得る。しかしながら、本開示の実装において、運転可能エリア120は、複数の物体ならびに物体に関する情報を考慮し、環境100のよりロバストな理解を提供する。この理解は、意思決定を強化し、および/または環境100を通過する際の車両102のより効果的かつ効率的な制御を可能にし得る。特に図1に関して、そのような強化された意思決定は、車両104aの後ろで減速する、および/または追加の意思決定を待つ必要なしに、車両が目標軌道124に沿って走行することを可能にし得る。さらに、運転可能エリア120は、経路の一部を安全に走行するために使用され得る広範囲の可能な軌道のための境界を提供する。そのような広範囲の安全な軌道を提供することにより、車両102は、シーン内のすべての物体に関する情報を組み込みながら、あらゆる危険を迅速に克服することが可能である。
図1は、運転可能エリアを使用して環境内を走行する一例を示している。他の無数の例も考慮される。例えば、運転可能エリアコンポーネント114は、任意の環境で使用されて、物体に関してよりよく走行し得る。
図2は、本開示の実施形態による、異なるポイント密度の領域を含む基準軌道の図である。より具体的には、図2は車両102が配置されている例示の環境200を示している。図2はさらに環境200内の障害物202を示し、それにより、基準軌道204は車両102が環境200内の障害物202の周りを走行するための初期経路を表す。いくつかの例では、障害物202は、図1の車両104aに対応するが、障害物202は、環境200内の任意の静的物体または動的物体を表し得る。さらに、基準軌道204は、図1の基準軌道122に対応し得るが、基準軌道204は、環境200内の任意の経路または軌道を表し得る。
いくつかの例では、軌道生成コンポーネント116(または車両コンピューティングデバイス112の別のコンポーネント)は、基準軌道204の様々な領域に関連付けられたポイントの密度を決定することができる。例として、限定されないが、車両コンピューティングデバイス112は、関心領域に対応する、または高活動の領域に対応する基準軌道204の領域を識別することができる。いくつかの例では、領域を、基準軌道204に関連付けられた曲率値に関連付けられたコストに少なくとも部分的に基づいて、ならびに/または基準軌道204上のポイントと、環境200内の障害物に関連付けられたポイントとの間の距離に関連付けられたコストに少なくとも部分的に基づいて、識別することができる。
図示のように、基準軌道204は、部分206、208、210、および226を含むが、基準軌道204は、任意の数の部分を含むことができる。
部分206はポイント密度212に関連付けることができ、部分208はポイント密度214に関連付けることができ、部分210はポイント密度216に関連付けることができ、部分226はポイント密度228に関連付けることができる。
いくつかの例では、部分208に関連付けられた曲率値に関連付けられたコストは、部分206および/または210に関連付けられた曲率値よりも高いため、ポイント密度214は、ポイント密度212および/または216よりも高くなることができる。いくつかの例では、部分226と障害物202との間の距離に関連付けられたコストは、部分206、210と障害物202との間の距離よりも小さいので、ポイント密度228はポイント密度212および/または217よりも高くなることができる。すなわち、部分208に関連付けられたポイント密度214は、部分208に関連付けられた曲率値に関連付けられたコストに少なくとも部分的に基づくことができ、部分226に関連付けられたポイント密度228は、部分226と障害物202との間の距離に関連するコストに少なくとも部分的に基づくことができる。
いくつかの例では、ポイント密度214は空間または時間におけるポイントの密度に対応することができる。例えば、上述の通り、計画システムの第1の層は、ポイント間の距離(ユークリッド距離、慣性基準に沿った長さなどであり得る)に基づいて軌道を最適化し得る、計画システムの第2の層はポイント間の時間期間に基づいて軌道を最適化し得る、またはその逆である。いくつかの例では、隣接する基準ポイント220と222との間の差218は、空間内の距離(例えば、5cm、10cm、50cm、1mなど)または時間内の距離(例えば、0.05秒、0.1秒、0.2秒、0.5秒、1秒など)を表すことができる。ポイント密度214がポイント密度212よりも高い例では、隣接するポイント220と222との間の差218は、部分206に関連付けられた隣接する基準ポイントとの間の差224よりも小さくすることができる。
本開示のコンテキストで理解できるように、1つまたは複数のコストを基準軌道204上の離散ポイントで評価し、車両102が環境200を通過するために辿ることができる目標軌道を生成することができる。
図3は、本開示の実施形態による、障害物の周りを走行する場合の基準軌道に基づいて目標軌道を生成することに関連付けられたコストに関連付けられた重みを決定する図である。より具体的には、図3は車両102が配置されている例示の環境300を示している。図3はさらに環境300内の障害物302を示し、それにより、基準軌道304は車両102が環境300内の障害物302の周りを走行するための初期経路を表す。いくつかの例では、基準軌道304は、環境300内の二重駐車車両の周りを走行する車両102の操縦に対応することができる。いくつかの例では、障害物302は、環境300内の任意の静的物体または動的物体を表し得る。さらに、基準軌道304は、環境300内の任意の経路を表し得る。
一般に、車両コンピューティングデバイス112は、基準ポイント306および308にて1つまたは複数のコストを評価し、基準ポイント306および308にそれぞれ対応するポイント312および314を有する目標軌道310を生成することができる。基準軌道304および目標軌道310上のポイントの間のドット線は、対応するポイントを示す。場合によっては、基準軌道304上の各ポイントは、目標軌道310上の対応するポイントに関連付けることができるが、場合によっては、目標軌道310は、必ずしも基準軌道上のポイントに対応するわけではないポイントに関連付けることができる。場合によっては、目標軌道310上のポイント(例えば、ポイント312、314、および326)は、基準軌道304での曲率値に少なくとも部分的に基づいて、基準軌道304上の対応する基準ポイント(例えば、それぞれ、基準ポイント306、308、および324)に直交することができる。
一般に、1つまたは複数のコストは、限定されないが、基準コスト、障害物コスト、横方向コスト、縦方向コストなどを含み得る。コストは、軌道に関連付けられたコストまたは軌道のポイントに関連付けられたコストを増加または減少させることができる重み(例えば、重み316および318)に関連付けることができる。いくつかの例では、車両コンピューティングデバイス112は、車両によって実行されるアクションまたは操縦に基づくコストに関連付けられた重みを減らすための操作を実行することができる。
開始トリガー320は、本明細書で論じられるように、コストに関連付けられた重みが変化する原因となる状態を表すことができる。いくつかの例では、トリガーは、閾値を満たすまたは超える障害物コスト(例えば、図3のコンテキストで論じられる)、および/または基準軌道におけるジャンプまたは不連続性(例えば、図4のコンテキストで論じられる)に対応できる。例えば、基準軌道304上の基準ポイントに関連付けられた初期費用を評価するための操作中に、基準ポイント324に関連付けられた障害物コストは、基準ポイント324が障害物302内に配置されることにより、コスト閾値を満たすまたは超え得る。従って、開始トリガーは、基準ポイント324に対する距離または時間に少なくとも部分的に基づいて、基準軌道304に沿って開始することができる。終了トリガー322は、閾値を下回る基準軌道304に関連付けられたコスト(例えば、障害物コスト)に関連付けられた期間または距離を表すことができる。開始トリガー320および終了トリガー322に少なくとも部分的に基づいて、基準軌道304および/または目標軌道310のポイントに関連付けられた重みを調整して、重みを増加または減少させることができる。例えば、基準ポイント306に関連付けられた重みは重み316に対応することができ、基準ポイント308に関連付けられた重みは重み318に対応することができる。従って、ポイント306および308に関連付けられたコストの評価は、それぞれ、重み316および318に少なくとも部分的に基づくことができる。障害物302を通過するときの基準コストに関連付けられた重みを減らすことにより、車両は、基準軌道304からさらに離れて障害物302を切り抜け得る軌道をよりよく探索することが可能である。例として、基準ポイント324に対応するポイント326は、障害物302を安全に切り抜けるために、基準ポイント324からさらに離れて配置することが可能である。
いくつかの例では、基準ポイント306、308、および324に関連付けられた重みを使用して、それぞれポイント312、314、および326を決定することができ、従って、目標軌道310の輪郭を決定することができる。一例として、限定されないが、車両が障害物302の周りを走行しているときに、基準コストに関連付けられた重みを減らすことができる。いくつかの例では、基準コストは、基準軌道304上のポイント(例えば、基準ポイント308)と、目標軌道310上の対応するポイント(例えば、ポイント314)との間の差に関連付けられたコストを含むことができる。いくつかの例では、差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レートなどの1つまたは複数の差を表すことができる。いくつかの例では、基準コストに関連付けられた重みを減らすことは基準軌道304から離れた距離に配置された目標軌道310に関連付けられたペナルティを減らすことができ、これは、より安全でおよび/またはより快適な車両操作につながるよりスムーズな移行を提供することができる。例えば、開始トリガー320および終了トリガー322に関連付けられた基準軌道304の一部に関連付けられた基準コストを減少させることは、環境300内の車両102と障害物302との間のバッファを増加させる、および/またはそうでなければ車両102が以前は利用不可能だった軌道を探索することを可能にすることができる。
図4は、本開示の実施形態による、車線を変更する場合の基準軌道に基づいて目標軌道を生成することに関連付けられたコストに関連付けられた重みを決定する図である。より具体的には、図4は車両102が配置されている例示の環境400を示している。図4はさらに環境400内の障害物402を示し、それにより、基準軌道404(部分404Aおよび404Bを含む)は車両102が車線を変更して環境400内の障害物402の周りを走行するための初期経路または軌道を表す。いくつかの例では、障害物402は、図1の車両104aに対応するが、障害物402は、環境200内の任意の静的物体または動的物体を表し得る。さらに、基準軌道404は、図1の基準軌道122と比較して代替の実装を表し得る(例えば、車線136から車線138への車線変更アクションを表す)。しかしながら、基準軌道404は、環境400内の任意の経路または軌道を表し得る。
一般に、車両コンピューティングデバイス112は基準ポイント406にて1つまたは複数のコストを評価し、基準ポイント406に対応するポイント410を有する目標軌道408を生成することができる。基準ポイント406とポイント410との間のドット線は、対応するポイントを示している。基準軌道404上の1つのポイントのみが図4に示されているが、基準軌道404上の複数のポイントが、目標軌道408上の複数の対応するポイントに対応できることが理解することができる。
一般に、1つまたは複数のコストは、限定されないが、基準コスト、障害物コスト、横方向コスト、縦方向コストなどを含み得る。コストは軌道に関連付けられたコストまたは軌道のポイントに関連付けられたコストを増加または減少させることができる重み(例えば、重み412および414)に関連付けることができる。いくつかの例では、車両コンピューティングデバイス112は車両によって実行されるアクションまたは操縦に基づくコストに関連付けられた重みを減らすための操作を実行することができる。
開始トリガー416は基準軌道404のジャンプまたは不連続性を表すことができ、これは、環境400内の車線136から車線138に変更するための車線変更アクションを表すことができる。曲線418は、基準軌道404B上のコストの変化する重みを表すことができ、それにより曲線418の形状は、車両102が距離および/または時間に関して走行するための横方向距離に基づいて調整することができる。開始トリガー416および曲線418に少なくとも部分的に基づいて、基準軌道404および/または目標軌道408のポイントに関連付けられた重みを調整して、重みを増加または減少させることができる。いくつかの例では、曲線418は、重みに関連付けられた線形関数、二次関数、段階的関数などを表すことができる。例えば、基準ポイント406に関連付けられた重みは重み414に対応することができる。従って、ポイント406に関連付けられたコストの評価は重み414に少なくとも部分的に基づくことができる。もちろん、コストの評価は、本明細書で説明するように、複数の重みに関連付けられた複数のポイントに対して実行することができる。
いくつかの例では、車線変更アクションを他の制約と関連付けて、車両102のスムーズかつ快適な動作を提供することができる。例えば、目標軌道408の詳細は目標軌道422の一部の詳細420として示されている。例424では、車両コンピューティングデバイス112は、車両102の横方向変位426が、縦方向変位428から与えられる閾値よりも小さいかどうかを決定することができる。一例として、限定されないが、横方向変位426は1メートル(またはNメートル)であり得、縦方向変位428は5メートル(またはMメートル)であり得る。例430では、車両コンピューティングデバイス112は、車両102の横方向変位432が、時間期間434から与えられる閾値よりも小さいかどうかを決定することができる。例として、限定されないが、横方向変位432は1メートル(またはN’メートル)であり得、縦方向変位428は2秒(またはS秒)であり得る。いくつかの例では、曲線418の形状を調整して(例えば、重みを多かれ少なかれ急速に変化させるために)、車両102の横方向変位426および432が閾値を下回ることを確実にすることができる。従って、いくつかの例では、車両コンピューティングデバイス112はコストに関連付けられた重みを変化させることができ、車両102の横方向変位が、移動する距離および時間期間から与えられる閾値未満であることを確実にし、車両102の目標軌道408に、車両102が環境400を走行するように辿ると決定できる。
図5Aは、本開示の実施形態による、運転可能エリアに関連付けられた拡張領域、衝突領域、および安全領域の図である。特に、図5は、車両102が道路504の車線502に配置されている例示の環境500を示している。図5はさらに、環境500を移動している歩行者106aおよび道路504の側に駐車された車両104aを示している。
いくつかの例では、車両コンピューティングデバイス112は、詳細508に示されるように、複数の領域を含む運転可能エリア506を決定することができる。特に、運転可能エリア506は、拡張領域510、衝突領域512、および安全領域514を含む。例えば、拡張領域510は運転可能エリア506の最大範囲を表すことができ、環境500内の物体(例えば、106aおよび104a)および境界(例えば、領域510、512、および514によって定義される)と物体の間の確率的距離に関する情報を含むことができる。非限定的な例として、物体の測定および/または移動からの不確実性は、そのような境界に効果的に「符号化」され得る。さらに、いくつかの例では、衝突領域512は、車両102が回避するための領域を表す拡張領域510よりも小さい運転可能領域を表して、車両102が環境500内の歩行者106aおよび車両104aと衝突する可能性をさらに低減することができる。いくつかの例では、安全領域514は衝突領域512および拡張領域510よりも小さい運転可能領域を表し、環境500内の車両102と歩行者106aと車両104aとの間にバッファを設けることができる。いくつかの例では、衝突領域512および/または安全領域514はまた、環境内の物体に関する情報および境界と物体との間の確率的距離と関連付けることができる。いくつかの例では、車両102は、本明細書で説明するように、基準軌道516(および/または目標軌道上の)ポイントと、領域510、512、および/または516に関連付けられた1つまたは複数のポイントとの間の距離に少なくとも部分的に基づいてコストを評価することができる。いくつかの例では、領域510、512、および514に関連付けられたコストは異なる場合がある。例えば、安全領域514に関連付けられたコストは衝突領域512に関連付けられたコストよりも比較的小さい場合があり、逆もまた同様である。
図5Bは、本開示の実施形態による、環境内の物体の分類におよび/または環境内の車両の速度に少なくとも部分的に基づく運転可能エリアに関連付けられた領域の図である。例518は、拡張領域510、衝突領域512、および安全領域514を備えている図5Aの詳細508を示している。
例えば、安全領域514は、車両102が速度V1に関連付けられている間の安全領域を表す。
別の例として、安全領域514*は、車両102が速度V2に関連付けられている間の安全領域を表す。安全領域514および514*を環境500内の物体(例えば、分類情報)および境界と物体との間の確率的距離に関する情報と関連付けることができ、安全領域514および514*の異なる部分のサイズは異なる部分の分類情報および車両102の速度に基づいて変化することができる。例えば、部分520は歩行者106aに関連付けられた安全領域514および514*の一部を表すことができ、一方、部分522は車両104aに関連付けられた安全領域514および514*の一部を表すことができる。部分524、526、および528は、物体106aまたは104aに関連付けられなくてもよく、または道路504の範囲に関連付けられてもよい。
いくつかの例では、安全領域514および514*のサイズは関連付けられた物体の分類情報および/または環境内の車両102の速度に少なくとも部分的に基づくことができる。例えば、安全領域514*の部分520に関連付けられた距離530は、車両102が速度V2である間、歩行者106aに関連付けられた部分の安全領域514のサイズの増加を表すことができる。安全領域514*の部分522に関連付けられた距離532は、車両102が速度V2である間、車両104aに関連付けられた部分の安全領域514のサイズの増加を表すことができる。いくつかの例では、距離530は距離532よりも大きくなることができる。いくつかの例では、速度V2は速度V1よりも高くなることができる。いくつかの例では、安全領域514および514*のサイズを変更することは運転可能エリアの範囲を変更し、変更された運転可能エリアを生成することをさらに含むことができる。
いくつかの例では、歩行者106aまたは車両104aに関連付けられていない安全領域514の部分524、526、および/または528は、車両102の速度に基づいて変化する場合もあれば、変化しない場合もある。
図6は、本開示の実施形態による、車両に近接する自転車などの物体の識別に基づいて領域を更新する図である。特に、図6は車両102が道路604の車線602に配置されている例示の環境600を示している。図6はさらに、環境600を移動している歩行者106a、道路604の側(脇)に駐車された車両104a、および車両102に近接する自転車606(例えば、自転車専用車線内の)を示している。
詳細608は、車両102、車両102に近接する自転車606、および複数の領域を含む運転可能エリア610を示している。説明を簡単にするために、車線境界612および車線バイアス領域614が図6に示されるが、追加の領域は、拡張領域、衝突領域、安全領域などを含み得ることが理解され得る。いくつかの例では、車両コンピューティングデバイス112は、環境600内で車両102に近接している自転車606(および/または自転車専用車線、駐車専用車線、駐車中の自動車など)に少なくとも部分的に基づいて、車線バイアス領域614を決定することができる。
例えば、車両コンピューティングデバイス112は自転車606の予測軌道を決定して、自転車606が車両102を通過し得ると決定することができ、従って、車線境界612のサイズを拡大して、車線バイアス領域614を生成することができる。従って、所与の基準軌道616について、車両コンピューティングデバイス112は、車両102の位置にバイアスをかけ自転車606(および/または自転車車線)から離れて、自転車がより快適な空間で車両102を通過することを可能にする目標軌道618を生成することができる。いくつかの例では、車線バイアス領域614を生成するかどうかの決定は、自転車606の速度、車両102の速度に対する自転車606の速度、閾値を下回る車両102の速度、道路604の車線602における自転車606の位置、車両102の位置、および/またはマップからの情報などの1つまたは複数に少なくとも部分的に基づくことができる。このようにして、車両コンピューティングデバイス112は、車線バイアス領域614に基づいてコストを評価し、自転車606が車両102を通過するための追加のスペースを設ける目標軌道620を生成することができる。
図7は、本明細書で説明される技法を実装するための例示のシステム700のブロック図を示す。少なくとも1つの例では、システム700は車両702を含むことができる。
車両702は、車両コンピューティングデバイス704、1つまたは複数のセンサシステム706、1つまたは複数のエミッタ708、1つまたは複数の通信接続部710、少なくとも1つの直接接続部712、および1つまたは複数の駆動システム714を含むことができる。
車両コンピューティングデバイス704は、1つまたは複数のプロセッサ716および1つまたは複数のプロセッサ716と通信可能に結合されたメモリ718を含むことができる。説明された例示において、車両702は自律車両であるが、車両702は、任意の他のタイプの車両とすることができる。図示の例では、車両コンピューティングデバイス704のメモリ718は、位置測定コンポーネント720、知覚コンポーネント722、1つまたは複数のマップ724、1つまたは複数のシステムコントローラ726、および運転可能エリアコンポーネント114を含む計画コンポーネント728、軌道生成コンポーネント116、コストコンポーネント118、安全領域コンポーネント730、軌道サンプリングコンポーネント732、および重みコンポーネント734、を格納する。例示の目的でメモリ718に常駐するものとして図7に描かれているが、位置測定コンポーネント720、知覚コンポーネント722、1つまたは複数のマップ724、1つまたは複数のシステムコントローラ726、計画コンポーネント728、運転可能エリアコンポーネント114、軌道生成コンポーネント116、コストコンポーネント118、安全領域コンポーネント730、軌道サンプリングコンポーネント732、および重みコンポーネント734は、追加的に、または代替的に、車両702にアクセス可能であり得る(例えば、リモートで格納されている)ことが企図される。
少なくとも1つの例では、位置測定コンポーネント720は、センサシステム706からデータを受信して、車両702の位置および/または向き(例えば、1つまたは複数のx、y、z位置、ロール、ピッチ、またはヨー)を決定する機能を含むことができる。例えば、位置測定コンポーネント720は、環境のマップを含み、および/または要求/受信することができ、マップ内の自律車両の位置および/または向きを継続的に決定できる。いくつかの例では、位置測定コンポーネント720は、SLAM(同時位置測定およびマッピング)、CLAMS(較正、位置測定およびマッピングを同時に)、相対SLAM、バンドル調整、非線形最小二乗最適化などを利用して、画像データ、LIDARデータ、RADARデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信し、自律車両の位置を正確に決定することができる。いくつかの例では、本明細書で論じるように、位置測定コンポーネント720は車両702の様々なコンポーネントにデータを提供して、軌道を生成するためのおよび/またはマップデータを生成するための自律車両の初期位置を決定できる。
いくつかの例では、知覚コンポーネント722は、物体の検出、区分、および/または分類を実行する機能を含むことができる。いくつかの例では、知覚コンポーネント722は、車両702に近接するエンティティの存在および/またはエンティティタイプ(例えば、車、歩行者、自転車、動物、建物、木、路面、縁石、歩道、不明など)としてのエンティティの分類を示す処理済みセンサデータを提供することができる。追加または代替の例では、知覚コンポーネント722は、検出されたエンティティ(例えば、追跡された物体)および/またはエンティティが位置する環境に関連付けられた1つまたは複数の特性を示す処理済センサデータを提供することができる。いくつかの例では、エンティティに関連付けられた特性は、限定しないが、x位置(グローバルおよび/またはローカルポジション)、y位置(グローバルおよび/またはローカルポジション)、z位置(グローバルおよび/またはローカルポジション)、方向(例えば、ロール、ピッチ、ヨー)、エンティティタイプ(例えば、分類)、エンティティの速度、エンティティの加速度、エンティティの範囲(サイズ)など、を含むことができる。環境に関連付けられた特性は、限定しないが、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、暗闇/光の表示などを含むことができる。
メモリ718はさらに、環境内を走行する車両702によって使用できる1つまたは複数のマップ724を含むことができる。この説明の目的上、マップは、これらに限定されないが、トポロジー(交差点など)、車道、山脈、道路、地形、および一般的な環境などの環境についての情報を提供することが可能である、2次元、3次元、またはN次元でモデル化された任意の数のデータ構造とすることができる。いくつかの例では、マップはテクスチャ情報(例えば、色情報(例えば、RGB色情報、ラボ色情報、HSV/HSL色情報)など)、強度情報(例えば、LIDAR情報、RADAR情報など)、空間情報(例えば、メッシュに投影された画像データ、個々の「サーフェル」(例えば、個々の色および/または強度に関連付けられたポリゴン))、反射率情報(例えば、鏡面反射率情報、再帰反射率情報、BRDF情報、BSSRDF情報など)、を含むことができる。一例では、マップは環境の3次元メッシュを含むことができる。いくつかの例では、マップの個々のタイルが環境の個別の部分を表すように、マップをタイルフォーマットで格納でき、本明細書にて説明するように、必要に応じて作業メモリに読み込むことができる。いくつかの例では、1つまたは複数のマップ724は、少なくとも1つのマップ(例えば、画像および/またはメッシュ)を含むことができる。いくつかの例では、車両702を、マップ724に少なくとも部分的に基づいて制御することができる。すなわち、マップ724を、位置測定コンポーネント720、知覚コンポーネント722、および/または計画コンポーネント728に関連して使用して、車両702の位置を決定し、環境内の物体を識別し、ならびに/または、環境内を走行するためのルートおよび/もしくは軌道を生成することができる。
いくつかの例では、1つまたは複数のマップ724は、ネットワーク736を介してアクセス可能なリモートコンピューティングデバイス(コンピューティングデバイス738など)に格納することができる。いくつかの例では、複数のマップ724は、例えば、特性(例えば、エンティティのタイプ、時刻、曜日、季節など)に基づいて格納することができる。複数のマップ724を格納することは、同様のメモリ要件を有するが、マップ内のデータにアクセスすることができる速さを増加させることができる。
少なくとも1つの例示において、車両コンピューティングデバイス704は、1つまたは複数のシステムコントローラ726を含むことができ、これは、車両702のステアリング、推進、制動、安全性、エミッタ、通信、および他のシステムを制御するよう構成することができる。これらのシステムコントローラ726は、駆動システム714および/または車両702の他のコンポーネントの対応するシステムと通信および/または制御することができる。
一般に、計画コンポーネント728は環境を走行するために車両702が辿る経路を決定できる。例えば、計画コンポーネント728は、様々なルートおよび軌道、ならびに様々なレベルの詳細を決定することができる。例えば、計画コンポーネント728は第1の位置(例えば現在の位置)から第2の位置(例えば目標の位置)へ走行するルートを決定することができる。本説明の目的のために、ルートは2つの位置の間を走行するための一連の経由地点とすることができる。非限定的な例として、経由地点は、道路、交差点、全地球測位システム(GPS)座標、マップおよび/またはマップ情報によって制約された第1の位置と第2の位置を結ぶ線に沿った分散ポイントなどが含まれる。さらに、計画コンポーネント728は、第1の位置から第2の位置へのルートの少なくとも一部に沿って自律車両を誘導するための命令を生成できる。少なくとも1つの例では、計画コンポーネント728は一連の経由地点内の第1の経由地点から一連の経由地点の第2の経由地点まで自律車両をどのように誘導するかを決定できる。いくつかの例では、命令は軌道または軌道の一部とすることができる。いくつかの例では、receding horizon技術に従って、複数の軌道を実質的に同時に(例えば、技術的許容範囲内で)生成することができ、複数の軌道のうちの1つが車両702の走行のために選択される。
いくつかの例では、計画コンポーネント728は環境内の物体の予測軌道を生成する予測コンポーネントを含むことができる。例えば、予測コンポーネントは、車両702からの距離閾値内にある車両、歩行者、動物などの1つまたは複数の予測軌道を生成することができる。いくつかの例では、予測コンポーネントは、物体のトレースを測定し、観察および予測された動作に基づいて物体の軌道を生成できる。予測軌道を生成する例は、2018年10月4日に出願された米国特許出願番号16/151,607および2018年5月17日に出願された15/982,658に記載されている。出願番号16/151,607および15/982,658は、その全体が参照により本明細書に組み込まれる。
いくつかの例では、運転可能エリアコンポーネント114は、環境内の運転可能エリアを生成および/または決定するための機能を含むことができる。例えば、運転可能エリアコンポーネント114は、センサシステム706からセンサデータを受信することができ、および/または知覚コンポーネント722から環境内の障害物および/または物体に関する情報を受信することができる。センサデータおよび/または物体に関連付けられた情報(例えば、位置、ポーズ、範囲、分類、速度、予測軌道など)に少なくとも部分的に基づいて、運転可能エリアコンポーネント114は、本明細書で論じられるように、限定されないが、拡張領域、衝突領域、および安全領域を含む1つまたは複数の領域を含む運転可能エリアを決定することができる。いくつかの例では、運転可能エリアコンポーネント114は、領域に近接する物体に関連付けられた分類タイプに基づいて、および/または車両702の速度に基づいて、領域の範囲を決定することができる。運転可能エリアコンポーネント114の追加の詳細は、本開示を通して議論される。
いくつかの例では、軌道生成コンポーネント116は、運転可能エリア内に基準軌道および/または目標軌道を生成する機能を含むことができる。例えば、軌道生成コンポーネント116は、基準軌道を受信または決定することができ、これは、環境を通る道路セグメントまたは他の経路の中心線に対応することができる。いくつかの例では、軌道生成コンポーネント116は、2017年12月15日に出願された米国特許出願番号15/843,596で論じられている技術に従って生成されたモーションプリミティブに対応することができるセグメントを生成することができる。さらに、所望の曲率によって定義されるセグメントは、2017年12月15日に出願された米国特許出願番号15/843,512で論じられている技術に従って生成することができる。出願番号15/843,596および15/843,512は、その全体が参照により本明細書に組み込まれる。軌道生成コンポーネント116の追加の詳細は、本開示を通して議論される。
いくつかの例では、コストコンポーネント118は基準軌道に関して目標軌道を生成するための1つまたは複数のコストを評価する機能を含むことができる。上述の通り、1つまたは複数のコストは、限定されないが、基準コスト、障害物コスト、横方向コスト、および縦方向コストなどを含み得る。いくつかの例では、1つまたは複数のコストは2018年9月28日に出願された米国特許出願番号16/147,492で論じられている技術に従って評価することができ、これは参照によりその全体が本明細書に組み込まれる。コストコンポーネント118の追加の詳細は本開示を通して議論される。
いくつかの例では、安全領域コンポーネント730は、環境内の物体の分類および/または環境を走行する車両702の速度に少なくとも部分的に基づいて、更新された安全領域を生成する機能を含むことができる。図5A、5B、および6に示されるように、安全領域コンポーネント730は安全領域(または他の領域)のサイズを決定することができ、これは、目標軌道の生成中にコストコンポーネント118によって使用することができる。安全領域コンポーネント730の追加の詳細は、本開示を通して議論される。
いくつかの例では、軌道サンプリングコンポーネント732は、基準軌道の一部に関連付けられた曲率値に関連付けられたコストに少なくとも部分的に基づいて、および/または、基準軌道上のポイントと環境内の障害物に関連付けられたポイントとの間の距離に関連付けられたコストに少なくとも部分的に基づいて、基準軌道の部分のポイント密度を決定する機能を含むことができる。図2に示されるように、軌道サンプリングコンポーネント732は、曲率値に関連付けられたコストが比較的高い場合、および/または基準軌道上のポイントと環境内の障害物に関連付けられたポイントとの間の距離に関連付けられたコストが比較的高い場合(例えば、環境内の物体が基準軌道に比較的近い位置にあることを示す)、基準軌道のポイントの密度を決定できる。活動の多い領域または関心のある領域の周りのポイントの数を増やすことは、より多くのポイントにてコストを評価することを可能にし、それにより、車両702の安全で快適な乗り心地を確実にする。軌道サンプリングコンポーネント732の追加の詳細は本開示を通して説明される。
いくつかの例では、重みコンポーネント734は目標軌道を生成するときに1つまたは複数のコスト関数を評価することに関連付けられた重みを選択または決定する機能を含むことができる。例えば、図3および4に示されるように、アクション開始(二重駐車車両アクションまたは車線変更アクションの開始など)は、計画コンポーネント728に車両702が環境を走行するためのより柔軟な目標軌道の生成を可能にさせるために、コストの重みを変えることができる。さらに、重みは他の操作と組み合わせて調整することができる(例えば、自転車、バイク車線、駐車車線、駐車中の車などの近接度に基づいて車線境界を拡張する場合)。重みコンポーネント734の追加の詳細は本開示を通して説明される。
いくつかの例では、本明細書で論じられるコンポーネントのいくつかまたはすべての態様は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含むことができる。例えば、いくつかの例では、メモリ718(および以下で説明するメモリ742)内のコンポーネントは、ニューラルネットワークとして実装することができる。
本明細書で説明するように、例示のニューラルネットワークは入力データを一連の接続された層に通して出力を作り出す生物学的に着想を得たアルゴリズムである。ニューラルネットワークの各層は別のニューラルネットワークを含むことができ、または任意の数の層(畳み込みかどうかに関係なく)を含むことができる。本開示のコンテキストで理解できるように、ニューラルネットワークは機械学習を利用でき、これは学習されたパラメータに基づいて出力が生成されるようなアルゴリズムの広範なクラスを指すことができる。
ニューラルネットワークのコンテキストで論じたが、任意のタイプの機械学習をこの開示と一致して使用できる。例えば限定しないが、機械学習アルゴリズムは、回帰アルゴリズム(例えば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応回帰スプライン(MARS)、局所的に推定されたスカープロット平滑化(LOESS))、インスタンスベースのアルゴリズム(例えば、リッジ回帰、最小絶対収縮および選択演算子(LASSO)、弾性ネット、最小角度回帰(LARS))、決定木アルゴリズム(例えば、分類および回帰木(CART)、反復二分法3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定切り株、条件付き決定木))、ベイジアンアルゴリズム(例えば、単純ベイズ、ガウス単純ベイズ、多項単純ベイズ、平均1依存推定量(AODE)、ベイジアン信念ネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均、k中央値、期待値最大化(EM)、階層的クラスタリング)、相関ルール学習アルゴリズム(例えば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、動径基底関数ネットワーク(RBFN))、ディープラーニングアルゴリズム(例えばディープボルツマンマシーン(DBM)、ディープブリーフネットワーク(DBN)、重畳型ニューラルネットワーク(CNN)、スタック・オートエンコーダ)、次元数削減アルゴリズム(例えば主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元スケーリング(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップ集計(バギング)、アダブースト、スタック一般化(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースティング回帰ツリー(GBRT)、ランダムフォレスト)、SVM(サポートベクターマシン)、教師あり学習、教師なし学習、半教師あり学習などの方法を含むことができる。
アーキテクチャの追加の例には、ResNet70、ResNet101、VGG、DenseNet、PointNetなどのニューラルネットワークが含まれる。
少なくとも1つの例では、センサシステム706は、LIDARセンサ、RADARセンサ、超音波トランスデューサー、sonarセンサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、カメラ(例えば、RGB、IR、強度、深度など)、飛行時間センサ(time of flight sensors)、マイク、ホイールエンコーダ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)などを含むことができる。センサシステム706は、センサのこれらまたは他のタイプのそれぞれの複数の実例を含むことができる。例えば、LIDARセンサは、車両702のコーナー、フロント、バック、サイド、および/またはトップに設置された個々のLIDARセンサを含むことができる。別の例として、カメラセンサは、車両702の外部および/または内部の様々な位置に配置された複数のカメラを含むことができる。センサシステム706は車両コンピューティングデバイス704に入力を提供することができる。追加的または代替的に、センサシステム706は、所定の期間が経過した後、ほぼ実時間で、特定の周波数にて1つまたは複数のコンピューティングデバイス738に、1つまたは複数のネットワーク736を介して、センサデータを送信できる。
車両702はまた、上記のように、光および/または音を発する1つまたは複数のエミッタ708を含むことができる。この例示のエミッタ708は車両702の乗客と通信するための内部オーディオおよびビジュアルエミッタを含む。限定ではなく例として、内部エミッタは、スピーカー、ライト、標識、ディスプレイ画面、タッチ画面、触覚エミッタ(例えば、振動および/またはフォースフィードバック)、機械式アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含むことができる。この例のエミッタ708はまた、外部エミッタを含む。限定ではなく例として、この例示の外部エミッタは、走行の方向または車両のアクションの他のインジケータ(例えば、インジケータライト、標識、ライトアレイなど)を信号で送るためのライト、および音響ビームステアリング技術を備える1つまたは複数の歩行者または他の近くの車両と音声で通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含む。
車両702はまた、車両702と1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの間の通信を可能にする1つまたは複数の通信接続部710を含むことができる。例えば、通信接続部710は車両702および/または駆動システム714上の他のローカルコンピューティングデバイスとの通信を容易にできる。また、通信接続部710は車両が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にできる。通信接続部710はまた、車両702が遠隔操作コンピューティングデバイスまたは他の遠隔サービスと通信することを可能にする。
通信接続部710は車両コンピューティングデバイス704を別のコンピューティングデバイスまたはネットワーク736などのネットワークに接続するための物理的および/または論理的インターフェースを含むことができる。例えば、通信接続部710は、IEEE802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetoothなどの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースで接続することを可能にする任意の適切な有線または無線通信プロトコルを可能にできる。
少なくとも1つの例では、車両702は1つまたは複数の駆動システム714を含むことができる。いくつかの例では、車両702は、単一の駆動システム714を有することができる。少なくとも1つの例では、車両702が複数の駆動システム714を有する場合、個々の駆動システム714は車両702の両端部(例えば前部および後部など)に位置付けできる。少なくとも1つの例では、駆動システム714は駆動システム714および/または車両702の周囲の状態を検出するための1つまたは複数のセンサシステムを含むことができる。限定ではなく例として、センサシステムは、駆動システムのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(例えばロータリーエンコーダ)、駆動システムの向きと加速度を測定するための慣性センサ(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラまたはその他の画像センサ、駆動システムの周囲の物体を音響的に検出するための超音波センサ、LIDARセンサ、RADARセンサなど、を含むことができる。ホイールエンコーダなどの一部のセンサは駆動システム714に固有のものとすることができる。場合によっては、駆動システム714上のセンサシステムは車両702の対応するシステム(例えばセンサシステム706)と重複または補足できる。
駆動システム714は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流を他の車両システムで使用する交流に変換するインバーター、ステアリングモーターおよびステアリングラック(電動とすることができる)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するブレーキ力分散用の安定性制御システム、HVACシステム、照明(例えば車両の外部環境を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば冷却システム、安全システム、車載充電システム、DC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどのその他の電装コンポーネント)を含む多くの車両システムを含むことができる。さらに、駆動システム714は、センサシステムからデータを受信し事前処理し、様々な車両システムの操作を制御できる駆動システムコントローラを含むことができる。いくつかの例では、駆動システムコントローラは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサと通信可能に結合されたメモリを含むことができる。メモリは1つまたは複数のコンポーネントを格納して、駆動システム714の様々な機能を実行できる。さらに、駆動システム714はまた、それぞれの駆動システムによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続部を含む。
少なくとも1つの例では、直接接続部712は1つまたは複数の駆動システム714を車両702の本体と結合するための物理的インターフェースを提供できる。例えば、直接接続部712は、駆動システム714と車両との間のエネルギー、流体、空気、データなどの転送を可能にすることができる。いくつかの例では、直接接続部712はさらに駆動システム714を車両702の本体に着脱可能に固定できる。
いくつかの例では、車両702はネットワーク736を介して1つまたは複数のコンピューティングデバイス738にセンサデータを送信することができる。いくつかの例では、車両702は未処理のセンサデータをコンピューティングデバイス738に送信することができる。他の例では、車両702は処理済のセンサデータおよび/またはセンサデータの表現をコンピューティングデバイス738に送信することができる。いくつかの例では、車両702は、所定の期間の経過後、ほぼ実時間で、特定の周波数などで、センサデータをコンピューティングデバイス738に送信することができる。場合によっては、車両702はセンサデータ(未処理または処理済み)を1つまたは複数のログファイルとしてコンピューティングデバイス738に送信できる。
コンピューティングデバイス738は計画コンポーネント744を格納するプロセッサ740およびメモリ742を含むことができる。
いくつかの例では、計画コンポーネント744は計画コンポーネント728に実質的に対応することができ、環境内の車両702の軌道を生成する機能を含むことができる。
車両702のプロセッサ716およびコンピューティングデバイス738のプロセッサ740は、本明細書で説明されるように、データを処理し操作を実行するための命令を実行可能な任意の適切なプロセッサとすることができる。限定ではなく例として、プロセッサ716および740は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、または電子データを処理して電子データをレジスタまたはメモリに格納できる他の電子データに変換する他の任意のデバイスまたはデバイスの一部、を備えることができる。いくつかの例では、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、および他のハードウェアデバイスはまた、それらが符号化された命令を実装するよう構成される限り、プロセッサと見なすことができる。
メモリ718および742は非一時的コンピュータ可読媒体の例である。メモリ718および742は、オペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納して、本明細書に記載の方法および様々なシステムに起因する機能を実装できる。様々な実装では、メモリを、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納可能な他の任意のタイプのメモリなど、適切なメモリ技術を使用して実装できる。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、他の多くの論理的、プログラム的、および物理的なコンポーネントを含むことができ、それらの添付図面に示されるものは、本明細書の説明に関連する単なる例にすぎない。
いくつかの例では、メモリ718および742は少なくとも作業メモリおよびストレージメモリを含むことができる。例えば、作業メモリは、プロセッサ716および740によって操作されるデータを格納するために使用される、限られた容量の高速メモリ(例えば、キャッシュメモリ)であり得る。いくつかの例では、メモリ718および742はデータの長期記憶に使用される比較的大容量の低速メモリであり得るストレージメモリを含むことができる。場合によっては、プロセッサ716および740はストレージメモリに記憶されているデータを直接操作することができず、本明細書で説明するように、データに基づいて操作を実行するために、データを作業メモリにロードする必要があり得る。
図7は分散システムとして示されているが、代替の例では、車両702のコンポーネントをコンピューティングデバイス738に関連付けることができ、および/またはコンピューティングデバイス738のコンポーネントは車両702に関連付けることができる、という事に留意すべきである。すなわち、車両702はコンピューティングデバイス738に関連付けられた機能のうちの1つまたは複数を実行でき、逆もまた同様である。
図8および図9は本開示の実施形態による例示のプロセスを示している。これらのプロセスは論理フローグラフとして図示され、このそれぞれの操作は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装できる一連の操作を表す。ソフトウェアのコンテキストにおいては、操作は、1つまたは複数のプロセッサで実行したときに、列挙した操作を実行する1つまたは複数のコンピュータ可読記録媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は特定の機能を実行する、または特定の抽象的データタイプを実装するルーチン、プログラム、物体、コンポーネント、データ構造などを含む。操作が記載される順序は限定して解釈されることを意図するものではなく、任意の数の記載される操作を任意の順序でおよび/または並行し結合して、プロセスを実装することができる。
図8は、本開示の実施形態による、基準軌道に関連付けられたポイントのポイント密度を決定し、目標軌道を生成するためのポイントにおけるコストを評価するための例示のプロセス800を示す。例えば、プロセス800の一部またはすべては、本明細書に記載されるように、図1または図7の1つまたは複数のコンポーネントによって実行することができる。例えば、プロセス800の一部またはすべては車両コンピューティングデバイス112および/またはコンピューティングデバイス704によって実行することができる。
操作802にて、プロセスは自律車両が環境を走行するための初期軌道を表す基準軌道を受信することを含むことができる。いくつかの例では、基準軌道は環境内で実行されるアクションおよび辿られる経路に応じて、連続軌道または区分的軌道のセグメントを含むことができる。いくつかの例では、基準軌道は、環境内の静的および/または動的障害物、最小または最大の縦方向の加速度または速度、最大のステアリング角、車両運動性(例えば、車輪がスリップしないという概念)に少なくとも部分的に基づくことができる。
操作804にて、プロセスは基準軌道の第1の部分に関連付けられた第1のポイントの第1のポイント密度を決定することを含むことができる。例えば、操作804は、基準軌道の一部に関連付けられた曲率値に関連付けられたコスト、および/または閾値を下回る障害物に関連付けられたポイントまでの距離に関連付けられたコストを決定することを含むことができる。いくつかの例では、操作804は、コストに基づいてポイント密度を決定するための、および/またはポイント密度を決定する関数へアクセスするための、ルックアップテーブルへアクセスすることを含むことができる。例えば、第1のコストが第1の閾値(例えば、0.1またはx)下回っている場合、第1のポイント密度は、領域のポイント密度として選択することができる。さらに、第2のコストが第1の閾値(例えば、0.1またはy)を上回っているが第2の閾値(例えば、0.5またはy)を下回っている場合、第2のポイント密度は、密度値間の線形補間に基づくことができる。さらに、第3のコストが第2の閾値(例えば、0.5またはy)を上回る場合、第3のポイント密度を領域のポイント密度として選択することができる。もちろん、コストは様々なやり方で選択できる。
さらに、いくつかの例では、曲率および/または距離に関連付けられたコストは、上述の通り、プランナーシステムの第2の層によって実行することができる。例えば、第2の層はプランナーシステムの第1の層から第1の目標軌道を受信することができ、それにより、第1の目標軌道は曲率値を含むことができる。さらに、操作804は、環境内の物体に関して経時的に第1の目標軌道を評価して、第1の目標軌道上のポイント(例えば、基準軌道)と環境内の障害物に関連付けられたポイントとの間の距離に関連付けられた初期コストを決定することを含むことができ、その後、コストに少なくとも部分的に基づいてポイント密度を決定できる。
操作806にて、プロセスは基準軌道の第2の部分に関連付けられた第2のポイントの第2のポイント密度を決定することを含むことができる。例えば、操作806は、低い曲率値(例えば、閾値を下回る曲率値)に関連付けられた、および/または閾値を満たすかまたは超える障害物に関連付けられたポイントまでの距離に関連付けられた、領域を決定することを含むことができる。
操作808にて、プロセスは第1のポイントの第1のポイントにておよび第2のポイントの第2のポイントにてコスト関数を評価し、目標軌道を生成することを含むことができる。例えば、操作808は、基準コスト、障害物コスト、横方向コスト、縦方向コストなどのうちの1つまたは複数を評価することを含むことができる。
操作810にて、プロセスは、コストが閾値を下回っているかどうかを決定することを含むことができる。例えば、操作810は最急降下法を含む技術を使用し、コスト関数を最適化することを含むことができる。いくつかの例では、操作810は、コストが閾値を下回っているかどうかを決定すること、最適化操作間のコストの変化が閾値を下回っているかどうかを決定すること、および/または複数の最適化反復が実行されたかどうかを決定することを含むことができる。コストが閾値に達するか超える場合(例えば、操作810で「いいえ」)、プロセスは、別の軌道を生成することができる(例えば、ポイントおよび/または制御(例えば、ステアリング角、加速など)の位置を変えることによって)、および更新されたコストを決定できる操作808に戻る。コストが閾値を下回っている場合(例えば、操作810で「はい」)、プロセスは操作812に続くことができる。
操作812にて、プロセスは、目標軌道に少なくとも部分的に基づいて、環境を走行するように自律車両を制御することを含むことができる。いくつかの例では、目標軌道を軌道スムーザーコンポーネントおよび/または軌道トラッカーコンポーネントに提供して、目標軌道を改良し、および/または自律車両の様々なモーターおよびステアリングアクチュエーターの制御信号を生成することができる。
図9は、本開示の実施形態による、基準軌道に沿ったポイント(例えば、図8に従って決定されたポイント)に関連付けられた重みを決定し、重みに基づいて、目標軌道を決定するポイントにおけるコストを評価するための例示のプロセス900を示す。例えば、プロセス900の一部またはすべては、本明細書に記載されるように、図1または図7の1つまたは複数のコンポーネントによって実行することができる。例えば、プロセス900の一部またはすべては、車両コンピューティングデバイス112および/またはコンピューティングデバイス704によって実行することができる。
操作902において、プロセスは、自律車両が環境を走行するための初期経路を表す基準軌道を受信することを含むことができる。いくつかの例では、この操作902は操作802に実質的に対応することができる。
操作904にて、プロセスは基準軌道の部分を決定することを含むことができる。例えば、操作904は、第1の部分906、第2の部分908、および第Nの部分910を決定することを含むことができる。いくつかの例では、部分906、908、および910は、基準軌道(および/またはそれに沿ったポイント)の離散部分とすることができる。いくつかの例では、操作904は、自律車両によって実行されるアクションまたは操縦に少なくとも部分的に基づいて、部分を決定することを含むことができる。例えば、アクションまたは操縦は、限定されないが、二重駐車車両アクションまたは車線変更アクションが含まれ得る。いくつかの例では、操作904は、自律車両が環境内の自転車または別の物体に近接していることを決定すること、および自転車の予測軌道に少なくとも部分的に基づいて基準軌道の一部を決定することを含むことができる。いくつかの例では、操作904は、本明細書で論じられるように、重みまたは重みを変化させるトリガーを示し得るマップデータに基づいて、車両に関連付けられた位置を決定することを含むことができる。
操作912にて、プロセスは基準軌道の部分に関連付けられたポイントにて評価される基準コストに関連付けられた重みを決定することを含むことができる。場合によっては、基準コストは基準軌道上のポイントと対応するポイントとの間の差に関連付けられている。例えば、操作912は、第1の重み914、第2の重み916、および第Mの重み918を決定することを含むことができる。いくつかの例では、操作912は操作904にて決定された個々の部分に対応する重みを決定することを含むことができる。いくつかの例では、操作912は個々の部分に関連付けられた個々のポイント(例えば、基準ポイント)に対応する重みを決定することを含むことができる。すなわち、部分906が10個のポイントを含む場合、操作912は、10個のポイントのそれぞれに関連付けられたコストの一意の重みを決定することを含むことができる。もちろん、他の構成が本明細書で企図される。
操作920にて、プロセスは、ポイントにて基準コスト関数を評価し、対応するポイントを含む目標軌道を生成することを含むことができる。いくつかの例では、操作920は、操作912において決定された重みによるコストのスケーリングを含むことができる。例えば、操作920は、コストに関連付けられた重みに基づいてコスト拡大または縮小をスケーリングすることを含むことができ、これは、次に、本明細書で説明されるように、様々なコストに関連付けられた重みに基づいて、目標軌道の輪郭の変化をもたらすことができる。いくつかの例では、操作920は他のコスト関数の評価を含むことができ、基準コスト関数の評価に限定されない。従って、操作は柔軟なフレームワークを提供し、軌道を生成する。
操作922において、プロセスは、目標軌道に少なくとも部分的に基づいて、環境を走行するように自律車両を制御することを含むことができる。いくつかの例では、この操作922は、操作812に実質的に対応することができる。
[例示的な発明内容]
A:1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサによって実行可能な命令を格納する1つまたは複数のコンピュータ可読媒体と、を備えたシステムであって、前記命令は、実行されると、前記システムに、自律車両が環境を走行するための初期軌道を表す基準軌道を受信するステップと、前記基準軌道の第1の部分に関連付けられた第1のポイントの第1のポイント密度を決定するステップと、前記基準軌道の第2の部分に関連付けられた第2のポイントの第2のポイント密度を決定するステップであって、前記第2のポイント密度が前記第1のポイント密度よりも少ない、ステップと、前記第1のポイントの第1のポイントおよび前記第2のポイントの第2のポイントにてコスト関数を評価し、第1の対応するポイントおよび第2の対応するポイントを含む目標軌道を生成するステップであって、前記第1の対応するポイントの第1の対応するポイントが前記第1のポイントの前記第1のポイントに対応し、前記第2の対応するポイントの第2の対応するポイントが前記第2のポイントの第2のポイントに対応する、ステップと、前記目標軌道に少なくとも部分的に基づいて前記自律車両が前記環境を走行するように制御するステップと、を含む操作を実行させる、システム。
B:前記第1のポイント密度は、前記第1のポイントの隣接するポイントの間の時間期間、または、前記第1のポイントの前記隣接するポイントの間の距離、の1つまたは複数に少なくとも部分的に基づく、段落Aに記載のシステム
C:前記コスト関数は前記目標軌道の前記第1の対応するポイントと前記環境内の障害物に関連付けられたポイントの間の距離に少なくとも部分的に基づくコストを含む、段落Aまたは段落Bに記載のシステム。
D:前記第1のポイント密度は、前記基準軌道の前記第1のポイントに関連付けられた曲率値に関連付けられた第1のコスト、前記第1のポイントと前記環境内の障害物に関連付けられたポイントとの間の距離に関連付けられた第2のコスト、の少なくとも1つを決定するステップに少なくとも部分的に基づく、段落Aから段落Cのいずれかに記載のシステム。
E:前記第1のポイント密度を決定するステップは、前記第1のコストまたは前記第2のコストに少なくとも部分的に基づいて、前記第1のポイント密度を決定するためのルックアップテーブルまたは関数にアクセスするステップを含む、段落Dに記載のシステム。
F:前記第1のポイントおよび前記第1のポイントの隣接する第1のポイントに関連付けられた第1の時間期間は、前記第2のポイントおよび前記第2のポイントの隣接する第2のポイントに関連付けられた第2の時間期間よりも少ない、段落Aから段落Eのいずれかに記載のシステム。
G:車両が環境を走行するための初期軌道を表す第1の軌道を受信するステップと、前記部分の曲率値に関連付けられた第1のコスト、または、前記部分の第1のポイントと前記環境内の障害物に関連付けられた第2のポイントとの間の距離に関連付けられた第2のコスト、に少なくとも部分的に基づいて、前記第1の軌道の部分に関連付けられたポイントのポイント密度を決定するステップと、前記第1のポイントに関連付けられたコストに少なくとも基づいて、第2の軌道を決定するステップと、前記車両が前記第2の軌道に少なくとも部分的に基づいて前記環境を走行するように制御するステップと、を含む方法。
H:前記曲率値に関連付けられた前記第1のコストが増加するにつれて、前記ポイント密度は増加する、または、第1のポイントと前記第2のポイントとの間の前記距離に関連付けられた前記第2のコストが増加するにつれて、前記ポイント密度は増加する、うちの少なくとも1つの、段落Gに記載の方法。
I:前記ポイント密度は第1のポイント密度であり、前記部分は第1の部分であり、前記ポイントは第1のポイントであり、前記曲率値は第1の曲率値であり、前記距離は第1の距離であり、前記障害物は第1の障害物であり、前記方法が、前記第2の部分の第2の曲率値に関連付けられた第3のコスト、または、前記第2の部分の第3のポイントと前記環境内の第2の障害物に関連付けられた第4のポイントとの間の第2の距離に関連付けられた第4のコスト、に少なくとも部分的に基づいて、前記第1の軌道の第2の部分に関連付けられた第2のポイントの第2のポイント密度を決定するステップであって、前記第1のポイント密度が前記第2のポイント密度と異なる、ステップ、をさらに含む、段落Gまたは段落Hに記載の方法。
J:前記距離は第1の距離であり、前記ポイント密度は、前記部分上の前記第1のポイントと前記部分上の隣接する第1のポイントとの間の第2の距離、または、前記第1のポイントに関連付けられた第1の時間および前記隣接する第1のポイントに関連付けられた第2の時間の差に関連付けられた時間期間の1つに少なくとも部分的に基づく、段落Gから段落Iのいずれかに記載の方法。
K:前記コストは、前記部分の前記第1のポイントと前記環境内の前記障害物に関連付けられた前記第2のポイントとの間の前記距離に、少なくとも部分的に基づく、段落Gから段落Jのいずれかに記載の方法。
L:前記第2の軌道を決定するステップは、前記第1の軌道に関連付けられた複数のポイントのための前記コストを評価し、前記第2の軌道を生成するステップをさらに含む、段落Gから段落Kのいずれかに記載の方法。
M:前記車両の計画システムの第1の層から前記第1の軌道を受信するステップであって、前記第1の軌道は、前記第1の軌道上のポイントの間の距離に関して、生成され、前記第2の軌道は、前記計画システムの第2の層によって、前記第2の軌道上のポイントの間の時間期間に関して、生成される、ステップ、をさらに含む、段落Gから段落Lのいずれかに記載の方法。
N:前記ポイント密度は前記第1の軌道の前記部分に関して、不均一である、段落Mに記載の方法。
O:実行されると、1つまたは複数のプロセッサに、車両が環境を走行するための初期軌道を表す第1の軌道を受信するステップと、前記部分の曲率値に関連付けられた第1のコスト、または、前記部分の第1のポイントと前記環境内の障害物に関連付けられた第2のポイントとの間の距離に関連付けられた第2のコスト、に少なくとも部分的に基づいて、前記第1の軌道の部分に関連付けられたポイントのポイント密度を決定するステップと、前記第1のポイントに関連付けられたコスト少なくとも部分的に基づいて、第2の軌道を生成するステップであって、前記第2の軌道は、ターゲットポイントを含む、ステップと、前記第2の軌道に少なくとも部分的に基づいて前記車両が前記環境を走行するように制御するステップと、含む操作を実行させる、命令を格納する非一時的コンピュータ可読媒体。
P:前記曲率値に関連付けられた前記第1のコストが増加するにつれて、前記ポイント密度は増加する、または、第1のポイントと前記第2のポイントとの間の前記距離に関連付けられた前記第2のコストが増加するにつれて、前記ポイント密度は増加することの少なくとも1つの段落Oに記載の非一時的コンピュータ可読媒体。
Q:前記ポイント密度は第1のポイント密度であり、前記部分は第1の部分であり、前記ポイントは第1のポイントであり、前記曲率値は第1の曲率値であり、前記距離は第1の距離であり、前記障害物は第1の障害物であり、前記操作は、前記第2の部分の第2の曲率値に関連付けられた第3のコスト、または、前記第2の部分の第3のポイントと前記環境内の第2の障害物に関連付けられた第4のポイントとの間の第2の距離に関連付けられた第4のコスト、に少なくとも部分的に基づいて、前記第1の軌道の第2の部分に関連付けられた第2のポイントの第2のポイント密度を決定するステップであって、第1のポイント密度は前記第2のポイント密度と異なる、ステップと、をさらに含む、段落Oまたは段落Pに記載の非一時的コンピュータ可読媒体。
R:前記距離は第1の距離であり、前記コストは前記第2の軌道の前記ターゲットポイントと前記環境内の前記障害物に関連付けられた前記第2のポイントとの間の第2の距離に少なくとも部分的に基づく、段落Oから段落Qのいずれかに記載の非一時的コンピュータ可読媒体。
S:前記第1のポイントおよび前記第1のポイントの隣接する第1のポイントに関連付けられた第1の時間期間は前記第2のポイントおよび前記第2のポイントの隣接する第2のポイントに関連付けられた第2の時間期間よりも少ない、段落Oから段落Rのいずれかに記載の非一時的コンピュータ可読媒体。
T:前記操作は前記車両の計画システムの第1の層から前記第1の軌道を受信するステップをさらに含み、前記第1の軌道は前記第1の軌道上のポイントの間のユークリッド距離に関して生成され、前記第2の軌道は、前記計画システムの第2の層によって、前記第2の軌道上のポイントの間の時間期間に関して、生成される、段落Sに記載の非一時的コンピュータ可読媒体。
U:1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサによって実行可能な命令を格納する1つまたは複数のコンピュータ可読媒体と、を備えたシステムであって、前記命令は、実行されると、前記システムに、自律車両が環境を走行するための初期経路を表す基準軌道を受信するステップと、前記基準軌道の第1の部分を決定するステップと、前記第1の部分から独立する前記基準軌道の第2の部分を決定するステップと、前記基準軌道の前記第1の部分に関連付けられた第1のポイントにおいて評価される第1の基準コストに関連付けられた第1の重みを決定するステップであって、前記第1の基準コストは前記基準軌道上の前記第1のポイントと対応する第1のポイントとの間の第1の差に関連付けられている、ステップと、前記基準軌道の前記第2の部分に関連付けられた第2のポイントにおいて、評価される第2の基準コストに関連付けられた第2の重みを決定するステップであって、前記第2の基準コストは前記基準軌道上の前記第2のポイントと対応する第2のポイントとの間の第2の差に関連付けられており、前記第2の重みは前記第1の重みよりも大きいステップと、前記第1のポイントおよび前記第2のポイントにおいて基準コスト関数を評価し、前記対応する第1のポイントおよび前記対応する第2のポイントを含む目標軌道を生成するステップと、前記目標軌道に少なくとも部分的に基づいて前記自律車両が前記環境を走行するように制御するステップと、を含む操作を実行させる、システム。
V:前記基準軌道の前記第1の部分は、前記基準軌道内の不連続性または障害物コスト閾値を満たすまたは超える障害物コストの少なくとも1つに関連付けられている、段落Uに記載のシステム。
W:前記第1の差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レートの1つまたは複数の差を含む、段落Uまたは段落Vに記載のシステム。
X:前記第1の重みは、前記基準軌道の前記第1の部分に対応する前記目標軌道の部分に関連付けられた横方向変位が所与の時間期間において第1の距離閾値を下回ることを決定するステップ、または前記基準軌道の前記第1の部分に対応する前記目標軌道の前記部分に関連付けられた前記横方向変位が所与の距離において第2の距離閾値を下回ることを決定するステップ、の1つまたは複数少なくとも部分的に基づいている、段落Uから段落Wのいずれかに記載のシステム。
Y:前記第1の基準コストは、前記基準軌道から、前記第1のポイントにおいて逸脱し、前記第1の差としてあらわされる前記目標軌道を生成するステップに関連付けられたペナルティを含む、段落Uから段落Xのいずれかに記載のシステム。
Z:自律車両が環境を走行するための第1の軌道を受信するステップと、前記第1の軌道の第1の部分を決定するステップと、前記第1の部分から独立している前記第1の軌道の第2の部分を決定するステップと、前記第1の軌道の前記第1の部分に関連付けられた第1の重みを決定するステップと、前記第1の軌道の第2の部分に関連付けられた第2の重みを決定するステップであって、前記第1の重みは前記第2の重みと異なる、ステップと、前記第1の軌道に関して、および前記第1の重みと前記第2の重みとに少なくとも部分的に基づいて、基準コストを評価し、第2の軌道を生成するステップと、前記第2の軌道に少なくとも部分的に基づいて前記自律車両が前記環境を走行するように制御するステップと、を含む方法。
AA:前記基準コストを評価するステップは、前記第1の部分に関連付けられた第1の基準コストを評価するステップであって、前記第1の基準コストは前記第1の重みに比例する、ステップと、前記第2の部分に関連付けられた第2の基準コストを評価するステップであって、前記第2の基準コストは前記第2の重みに比例する、ステップと、を含む、段落Zに記載の方法。
AB:前記第1の軌道の前記第1の部分はポイントに関連付けられており、前記ポイントは第1のポイントであり、前記方法は、前記第1の部分の曲率値に関連付けられた第1のコスト、または、前記第1の部分の前記第1のポイントと前記環境内の障害物に関連付けられた第2のポイントとの間の距離に関連付けられた第2のコスト、に少なくとも部分的に基づいて、前記第1の軌道の前記第1の部分に関連付けられた前記ポイントのポイント密度を決定するステップをさらに含む、段落Zまたは段落AAに記載の方法。
AC:前記基準コストは前記第1の軌道上の第1のポイントと前記第2の軌道上の対応する第1のポイントとの間の差に関連付けられている、段落Zから段落ABのいずれかに記載の方法。
AD:前記差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レートの1つまたは複数の差を含む、段落ACに記載の方法。
AE:前記第1の軌道の前記第1の部分は、前記第1の軌道の不連続性、または、障害物コスト閾値を満たすまたは超える障害物コスト、の少なくとも1つに関連付けられている、段落Zから段落ADのいずれかに記載の方法。
AF:前記第1の軌道の前記不連続性は車線変更アクションを表す、または、前記障害物コスト閾値を満たすまたは超える前記障害物コストは、前記環境内の障害物を表すエリア内を通過する前記第1の軌道の少なくとも一部を表す、段落AEに記載の方法。
AG:前記自律車両のための前記環境を通る運転可能エリアを決定するステップであって、前記運転可能エリアは、前記自律車両が走行するように構成されている前記環境内の領域および前記環境内の物体を表す、ステップと、前記運転可能エリアに少なくとも部分的に基づいて、障害物コストを評価するステップと、をさらに含み、前記第2の軌道は、前記障害物コストに少なくとも部分的に基づいている、段落Zから段落AFのいずれかに記載の方法。
AH:前記運転可能エリアを決定するステップは、前記自律車両に関連付けられた速度または前記物体の分類に少なくとも部分的に基づいている、段落AGに記載の方法。
AI:実行されると、1つまたは複数のプロセッサに、自律車両が環境を走行するための第1の軌道を受信するステップと、前記第1の軌道の第1の部分を決定するステップと、前記第1の部分から独立している前記第1の軌道の第2の部分を決定するステップと、前記第1の軌道の前記第1の部分に関連付けられた第1の重みを決定するステップと、前記第1の軌道の第2の部分に関連付けられた第2の重みを決定するステップであって、前記第1の重みは前記第2の重みと異なる、ステップと、前記第1の軌道に関しておよび前記第1の重みと前記第2の重みとに少なくとも部分的に基づいて、基準コストを評価し、第2の軌道を生成するステップと、前記第2の軌道に少なくとも部分的に基づいて前記自律車両が前記環境を走行するように制御するステップと、を含む操作を実行させる命令を格納した、非一時的コンピュータ可読媒体。
AJ:前記基準コストを評価するステップは、前記第1の部分に関連付けられた第1の基準コストを評価するステップであって、前記第1の基準コストは前記第1の重みに比例する、ステップと、前記第2の部分に関連付けられた第2の基準コストを評価するステップであって、前記第2の基準コストは前記第2の重みに比例する、ステップと、を含む段落AIに記載の非一時的コンピュータ可読媒体。
AK:前記基準コストは、前記第1の軌道上の第1のポイントと前記第2の軌道上の対応する第1のポイントとの間の差に関連付けられている、段落AIまたは段落AJに記載の非一時的コンピュータ可読媒体。
AL:前記第1の軌道の前記第1の部分は、前記第1の軌道の不連続性または障害物コスト閾値を満たすまたは超える障害物コストの少なくとも1つに関連付けられている、段落AIから段落AKのいずれかに記載の非一時的コンピュータ可読媒体。
AM:前記操作は、前記自律車両のための前記環境を通る運転可能エリアを決定するステップであって、前記運転可能エリアは前記自律車両が走行するように構成されている前記環境内の領域および前記環境内の物体を表す、ステップと、前記運転可能エリアに少なくとも部分的に基づいて障害物コストを評価するステップと、をさらに含み、前記第2の軌道は、前記障害物コストに少なくとも部分的に基づいている、段落AIから段落ALのいずれかに記載の非一時的コンピュータ可読媒体。
AN:前記運転可能エリアを決定するステップは、前記自律車両に関連付けられた速度または前記物体の分類に少なくとも部分的に基づいている、段落AMに記載の非一時的コンピュータ可読媒体。
上述の例示の発明内容は1つの特定の実装に関して説明しているが、この文書のコンテキストでは、例示の発明内容はまた、方法、デバイス、システムおよび/またはコンピュータ可読媒体、および/またはその他の実装を介して実装できることを理解されたい。
[結論]
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
例示の説明では、本明細書の一部を形成する添付の図面を参照するが、これは例示として請求される主題の具体的な例を示す。他の例を使用でき、構造的変更などの変更または代替を行うことできることを理解されたい。そのような例示、変更または代替は、意図して請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書のステップは特定の順序で提示できるが、場合によっては、説明したシステムおよび方法の機能を変更することなく、特定の入力を異なる時間または異なる順序で提供するように、順序を変更できる。開示された手順はまた異なる順序で実行できる。さらに、本明細書にある様々な計算は開示された順序で実行される必要はなく、計算の代替順序を使用する他の例を容易に実装できる。並べ替えに加えて、計算はまた、同じ結果となるサブ計算に分解できる。