(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024045081
(43)【公開日】2024-04-02
(54)【発明の名称】3次元道路形状推定
(51)【国際特許分類】
B60W 40/06 20120101AFI20240326BHJP
B60W 40/072 20120101ALI20240326BHJP
B60W 40/076 20120101ALI20240326BHJP
B60W 60/00 20200101ALI20240326BHJP
【FI】
B60W40/06
B60W40/072
B60W40/076
B60W60/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023155481
(22)【出願日】2023-09-21
(31)【優先権主張番号】17/949693
(32)【優先日】2022-09-21
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】523360544
【氏名又は名称】エンバーク トラックス インコーポレーテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】カール グランストローム
【テーマコード(参考)】
3D241
【Fターム(参考)】
3D241BA49
3D241CA18
3D241CC02
3D241CC08
3D241CC17
3D241CE04
3D241CE05
3D241DB01Z
3D241DC35Z
3D241DC43Z
3D241DC45Z
(57)【要約】
【課題】自律走行車の動作のために道路形状を正確かつ効率的に推定またはモデリングするための効率的かつロバストなシステムおよび方法を提供することを課題とする。
【解決手段】センサデータ内の道路に関連付けられた車線境界線データを識別するステップと、道路の形状を道路区分のシーケンスとしてモデリングするステップと、各道路区分は、曲率率と道路勾配率とを含むパラメータによって定義される、ステップと、モデリングされた道路形状の数学的表現に基づいて、各道路区分の近似を生成するステップと、各道路区分の生成された近似に基づいて、区分のシーケンスを含む道路の3次元表現を生成するステップとを含む方法およびシステム。
【選択図】
図10
【特許請求の範囲】
【請求項1】
車両コンピューティングシステムであって、
コンピュータ命令を記憶するメモリと、
車両の少なくとも第1のセンサによって取り込まれたデータを含む、前記車両の動作に関連付けられたセンサデータを記憶するデータ記憶デバイスと、
前記命令を実行するために前記メモリと通信可能に結合されたプロセッサと
を備え、前記プロセッサは、前記車両の動作中に、
前記センサデータ内の道路に関連付けられた車線境界線データを識別することと、
前記道路の形状を道路区分のシーケンスとしてモデリングすることであって、前記道路は、初期進行方向と、初期曲率と、3次元位置によって定義される初期ロケーションとを含むパラメータによって指定される初期位置によって定義され、各道路区分は、曲率率と道路勾配率とを含むパラメータによって定義される、モデリングすることと、
前記モデリングされた道路形状の数学的表現に基づいて、各道路区分の近似を生成することと、
各道路区分の前記生成された近似に基づいて、区分の前記シーケンスを含む前記道路の3次元表現を生成することと
を行うことが可能である、システム。
【請求項2】
各区分の前記曲率は、ゼロ曲線率を有する直線区分、一定の非ゼロ曲線率を有する曲線区分、および直線的に変化する曲線率を有する、直線区分と曲線区分との間の移行区分のうちの1つとして指定される、請求項1に記載のシステム。
【請求項3】
前記センサデータは、前記車両に搭載されたレーダーによって生成されたレーダーデータ、前記車両に搭載されたライダーによって生成されたライダーデータ、および前記車両に搭載されたカメラによって生成されたカメラデータのうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項4】
前記初期ロケーションを定義する前記3次元位置は、デカルト座標によって指定され、前記モデリングされた道路形状の前記数学的表現は、フレネル積分によって指定される、請求項1に記載のシステム。
【請求項5】
前記道路の前記3次元表現は、前記区分のシーケンスの連続的な構成を含む、請求項1に記載のシステム。
【請求項6】
前記区分のシーケンスの前記連続的な構成における連続的な区分は、前記連続的な区分の接合部における曲率、進行方向、および位置について等しい値を有する、請求項5に記載のシステム。
【請求項7】
前記道路の前記生成された3次元表現は、前記道路の車線境界線、前記道路の近傍にある障壁、前記道路の走行可能表面、前記道路の端、および前記道路の近傍にある物体のロケーションのうちの少なくとも1つの推定ロケーションを含む、請求項1に記載のシステム。
【請求項8】
方法であって、
前記センサデータ内の道路に関連付けられた車線境界線データを識別するステップと、
前記道路の形状を道路区分のシーケンスとしてモデリングするステップであって、前記道路は、初期進行方向と、初期曲率と、3次元位置によって定義される初期ロケーションとを含むパラメータによって指定される初期位置によって定義され、各道路区分は、曲率率と道路勾配率とを含むパラメータによって定義される、ステップと、
前記モデリングされた道路形状の数学的表現に基づいて、各道路区分の近似を生成するステップと、
各道路区分の前記生成された近似に基づいて、区分の前記シーケンスを含む前記道路の3次元表現を生成するステップと
を含む方法。
【請求項9】
各区分の前記曲率は、ゼロ曲線率を有する直線区分、一定の非ゼロ曲線率を有する曲線区分、および直線的に変化する曲線率を有する、直線区分と曲線区分との間の移行区分のうちの1つとして指定される、請求項8に記載の方法。
【請求項10】
前記センサデータは、前記車両に搭載されたレーダーによって生成されたレーダーデータ、前記車両に搭載されたライダーによって生成されたライダーデータ、および前記車両に搭載されたカメラによって生成されたカメラデータのうちの少なくとも1つを含む、請求項8に記載の方法。
【請求項11】
前記初期ロケーションを定義する前記3次元位置は、デカルト座標によって指定され、前記モデリングされた道路形状の前記数学的表現は、フレネル積分によって指定される、請求項8に記載の方法。
【請求項12】
前記道路の前記3次元表現は、前記区分のシーケンスの連続的な構成を含む、請求項8に記載の方法。
【請求項13】
前記区分のシーケンスの前記連続的な構成における連続的な区分は、前記連続的な区分の接合部における曲率、進行方向、および位置について等しい値を有する、請求項12に記載の方法。
【請求項14】
前記道路の前記生成された3次元表現は、前記道路の車線境界線、前記道路の近傍にある障壁、前記道路の走行可能表面、前記道路の端、および前記道路の近傍にある物体のロケーションのうちの少なくとも1つの推定ロケーションを含む、請求項8に記載の方法。
【請求項15】
プロセッサ実行可能命令が記憶された非一時的媒体であって、
前記センサデータ内の道路に関連付けられた車線境界線データを識別するための命令と、
前記道路の形状を道路区分のシーケンスとしてモデリングするための命令であって、前記道路は、初期進行方向と、初期曲率と、3次元位置によって定義される初期ロケーションとを含むパラメータによって指定される初期位置によって定義され、各道路区分は、曲率率と道路勾配率とを含むパラメータによって定義される、命令と、
前記モデリングされた道路形状の数学的表現に基づいて、各道路区分の近似を生成するための命令と、
各道路区分の前記生成された近似に基づいて、区分の前記シーケンスを含む前記道路の3次元表現を生成するための命令と
を含む媒体。
【請求項16】
各区分の前記曲率は、ゼロ曲線率を有する直線区分、一定の非ゼロ曲線率を有する曲線区分、および直線的に変化する曲線率を有する、直線区分と曲線区分との間の移行区分のうちの1つとして指定される、請求項15に記載の媒体。
【請求項17】
前記センサデータは、前記車両に搭載されたレーダーによって生成されたレーダーデータ、前記車両に搭載されたライダーによって生成されたライダーデータ、および前記車両に搭載されたカメラによって生成されたカメラデータのうちの少なくとも1つを含む、請求項15に記載の媒体。
【請求項18】
前記初期ロケーションを定義する前記3次元位置は、デカルト座標によって指定され、前記モデリングされた道路形状の前記数学的表現は、フレネル積分によって指定される、請求項15に記載の媒体。
【請求項19】
前記道路の前記3次元表現は、前記区分のシーケンスの連続的な構成を含む、請求項15に記載の媒体。
【請求項20】
前記区分のシーケンスの前記連続的な構成における連続的な区分は、前記連続的な区分の接合部における曲率、進行方向、および位置について等しい値を有する、請求項19に記載の媒体。
【発明の詳細な説明】
【背景技術】
【0001】
自律走行車は、人間の運転者の入力なしに1つまたは複数の必要な運転機能を実行することができる自動車であり、一般に、SAE InternationalのJ3016規格に一般的に記載されているレベル2以上の能力を含み、特定の実施形態では、自律走行車がその動作中に遭遇する様々な物体、状況、および環境に応答して生成されるデータを含め、車両の位置、速度、動作特性、および車両の状態に関連する様々なパラメータ値を示すセンサデータを生成するように共に機能し得るセンサ、デバイス、およびシステムを含む自動運転トラックを含む。
【0002】
自律走行車は、カメラ、ライダー、レーダー、慣性測定装置(IMU)などのセンサに依存して、ユーザの対話を必要とせずに車両周辺の道路およびその他の世界を理解することができる。自律走行車が動作する道路の正確なモデリングは、例えば、車両がセンサ読取り値(すなわち、センサデータ)を使用して道路を安全にナビゲートすることができるようにするために重要である。道路の正確なモデリングまたは推定は、認知(コンピュータビジョン)、制御、マッピング、および他の機能にとって重要であり得る。適切なモデリングがなければ、自律走行車は、その車線内に留まることが困難になると共に、ステアリングおよびナビゲーションなどのさらなる問題を有する可能性がある。
【0003】
一部の従来の道路形状推定プロセスは、著しい近似誤差を招く数学的近似に依存する。そのような近似は、いくつかの適用例または使用事例では許容可能であり得るが、自律走行車の高精度およびセーフティクリティカルな動作は、高レベルの正確さおよび最小の近似誤差を必要とする。
【0004】
したがって、自律走行車の動作のために道路形状を正確かつ効率的に推定またはモデリングするための効率的かつロバストなシステムおよび方法が必要とされている。
【図面の簡単な説明】
【0005】
例示的な実施形態の特徴および利点、ならびにそれらが達成される方法は、添付の図面と併せて以下の詳細な説明を参照することにより、より容易に明らかになるであろう。
【
図1】例示的な実施形態による、車両内に配備され得る制御システムの例示的なブロック図である。
【
図2A】例示的な実施形態による、セミトラックの外観の例示的な描写である。
【
図2B】例示的な実施形態による、セミトラックの外観の例示的な描写である。
【
図2C】例示的な実施形態による、セミトラックの外観の例示的な描写である。
【
図3】例示的な実施形態による、自律走行車が動作し得る道路の例示的な描写である。
【
図4A】例示的な実施形態による、例示的な道路に沿った位置の例示的なプロットである。
【
図4B】例示的な実施形態による、例示的な道路の曲率(curvature)の例示的なプロットである。
【
図4C】例示的な実施形態による、例示的な道路の進行方向の例示的なプロットである。
【
図5】例示的な実施形態による、自律走行車が走行した例示的な道路の例示的な表現である。
【
図6】例示的な実施形態による、複数の道路区分に分割された
図5の例示的な道路の例示的な描写である。
【
図7A】例示的な実施形態による、
図6の複数の道路区分についての曲率率(curvature rate)の例示的なプロットである。
【
図7B】例示的な実施形態による、
図6の複数の道路区分についての曲率の例示的なプロットである。
【
図7C】例示的な実施形態による、
図6の複数の道路区分に沿った進行方向の例示的なプロットである。
【
図8A】例示的な実施形態による、自律走行車が走行した例示的な道路の道路勾配率の例示的なプロットである。
【
図8B】例示的な実施形態による、自律走行車が走行した例示的な道路の道路高度の例示的なプロットである。
【
図9】例示的な実施形態による、計算された3D道路形状推定に関連する例示的なプロットである。
【
図10】例示的な実施形態による、プロセスの例示的なフロー図である。
【
図11】例示的な実施形態による、コンピューティングシステムの例示的なブロック図である。
【0006】
図面および発明を実施するための形態全体を通して、別段に説明されない限り、同じ図面参照番号は、同じ要素、特徴、および構造を指すものと理解されよう。これらの要素の相対的なサイズおよび描写は、明瞭さ、例示、および/または便宜のために誇張または調整され得る。
【発明を実施するための形態】
【0007】
以下の説明では、様々な例示的な実施形態の完全な理解を与えるために、具体的な詳細が記載される。実施形態に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、本開示の趣旨および範囲から逸脱することなく他の実施形態および適用例に適用され得ることが理解されるべきである。さらに、以下の説明では、説明のために多数の詳細が記載される。しかしながら、当業者は、実施形態がこれらの具体的な詳細を使用せずに実践され得ることを理解すべきである。他の事例では、不必要な詳細によって説明を不明瞭にしないために、周知の構造およびプロセスは示されることも説明されることもない。したがって、本開示は、示される実施形態に限定されるように意図されておらず、本明細書で開示される原理および特徴と一致する最も広い範囲が与えられるべきである。
【0008】
説明の便宜および容易さのために、本明細書ではいくつかの用語を使用する。例えば、「セミトラック」という用語は、例示的な実施形態のシステムが使用され得る車両を指すために使用される。「セミトラック」、「トラック」、「トラクタ」、「車両」および「セミ」という用語は、本明細書では互換的に使用され得る。さらに、本開示を読めば当業者に明らかになるように、本発明の実施形態は、他のタイプの車両と併せて使用され得る。一般に、実施形態は、トレーラを牽引したり、長距離にわたって貨物を運搬したりする任意の車両と併せて、望ましい結果を伴って使用され得る。
【0009】
図1は、例示的な実施形態による、例えば、限定されないが、
図2A~
図2Cに描写されるセミトラック200などの自律走行車(AV)に配備され、それを含み得る制御システム100を示す。
図1を参照すると、制御システム100は、例えば、ゲートウェイ180を介して車両の構成要素を制御する制御動作を含む動作を実行するためにコンピュータシステム140に提供されるデータおよび情報を収集するセンサ110を含み得る。いくつかの実施形態に従い、ゲートウェイ180は、コンピュータシステム140が異なる製造業者からの異なる構成要素を制御することを可能にするように構成される。
【0010】
コンピュータシステム140は、本明細書の他の箇所に記載されているような本発明の実施形態の特徴を実装するための処理を含む処理を実行すると共に、制御システム100が配備される車両のシステムに関連付けられた1つまたは複数のアクチュエータまたは他のコントローラ(例えば、スロットル184、ステアリングシステム186、ブレーキ188、および/または他のデバイスおよびシステムの制御を可能にするアクチュエータまたはコントローラ)を制御するための制御信号を生成する際に使用するためのセンサ110からのセンサデータを受信するために、1つまたは複数の中央処理装置(CPU)142を用いて構成され得る。一般に、制御システム100は、自律(または半自律)動作モードで車両(例えば、セミトラック200)を動作させるように構成され得る。
【0011】
例えば、制御システム100は、セミトラック200の様々なロケーションに取り付けられた1つまたは複数のカメラ112から画像を取り込み、それらの取り込まれた画像に対して処理(例えば、画像処理)を実行して、セミトラック200に近接した、またはその経路にある物体を識別するように動作され得る。いくつかの態様では、セミトラック200に近接した、またはその経路にある物体の存在および体積を感知または検出するために、1つまたは複数のライダー114およびレーダー116センサが車両上に配置され得る。位置データなどの他の情報を取り込むために、他のセンサをセミトラック200の様々なロケーションに配置または取り付けてもよい。例えば、センサは、1つまたは複数の衛星測位センサおよび/またはGNSS/IMU118などの慣性航法システムを含み得る。全地球的航法衛星システム(GNSS)は、地球上またはその近くのどこにいても、あらゆる気象条件におけるロケーション情報(経度、緯度、高度)および時間情報をGNSS受信機と呼ばれるデバイスに提供する宇宙ベースの衛星システムである。GPSは、世界で最も使用されているGNSSシステムであり、本明細書ではGNSSと互換的に使用され得る。慣性測定装置(「IMU」)は、慣性航法システムである。一般に、慣性航法システム(「INS」)は、移動物体の向き、位置、速度、および加速度を測定し、積分する。INSは、測定されたデータを積分し、GNSSは、INS方位計算の積分誤差に対する補正として使用される。任意の数の異なるタイプのGNSS/IMU118センサが、本発明の特徴と併せて使用され得る。
【0012】
センサ110の各々によって収集されたデータは、コンピュータシステム140によって処理されて、セミトラック200の動作を制御するために使用され得る制御信号を生成し得る。例えば、画像およびロケーション情報を処理して、セミトラック200の周囲または経路内の物体を識別または検出し得、制御信号を送信して、必要に応じて、コントローラ(複数可)182を介してスロットル184、ステアリング186、および/またはブレーキ188を調整し、セミトラック200を自律的または半自律的に安全に動作させ得る。
図1には、実例となる例示的なセンサ、アクチュエータ、および他の車両システムおよびデバイスが示されているが、当業者であれば、本開示を読めば、他のセンサ、アクチュエータ、およびシステムもまた、本開示と一致するシステム100に含まれ得ることを理解するであろうことに留意されたい。例えば、いくつかの実施形態では、車両(例えば、セミトラック200)のトランスミッションの制御を可能にする機構を提供するアクチュエータも提供され得る。
【0013】
制御システム100は、本明細書で説明される処理の少なくとも一部を実行するために1つまたは複数のソフトウェア、ファームウェア、および制御アプリケーション(例えば、項目160~182)が実行され得るコンピューティング環境を提供するように構成されたコンピュータシステム140(例えば、コンピュータサーバ)を含み得る。いくつかの実施形態では、コンピュータシステム140は、車両上に配備される(例えば、
図2Cに示すように、セミトラックの寝台212内に配置されたシステムラック240内に配備される)構成要素を含む。コンピュータシステム140は、セミトラック200に対してローカルおよび/またはリモートであり得る他のコンピュータシステム(図示せず)と通信し得る(例えば、コンピュータシステム140は、ワイヤレス通信ネットワーク接続を介して1つまたは複数のリモート地上またはクラウドベースのコンピュータシステムと通信し得る)。
【0014】
本明細書で説明される様々な実施形態によれば、コンピュータシステム140は、サーバとして実装され得る。いくつかの実施形態では、コンピュータシステム140は、限定はしないが、パーソナルコンピュータシステム、クラウドプラットフォーム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、タブレット、スマートフォン、データベース、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、分散クラウドコンピューティング環境など、上記のシステムまたはデバイスなどのいずれかを含み得るいくつかのコンピューティングシステム、環境、および/または構成のいずれかを使用して構成され得る。
【0015】
異なるソフトウェアアプリケーションまたは構成要素が、コンピュータシステム140および制御システム100によって実行され得る。例えば、能動学習構成要素160に示すように、1つまたは複数のカメラ112によって取り込まれた画像およびライダー114によって取得された情報を処理するために能動学習機械処理を実行するアプリケーションが提供され得る。例えば、画像データは、取り込まれた画像内の関心のある物体(例えば、他の車両、工事標識など)を識別するために、深層学習区分化モデル162を使用して処理され得る。本明細書の一部の態様では、深層学習区分化は、ライダースキャン内の車線点を識別するために使用され得る。一例として、システムは、ライダースキャン内の車線点を識別するために、強度ベースのボクセルフィルタを使用し得る。ライダーデータは、機械学習アプリケーション164によって処理されて、画像データ上に境界ボックスを描画または識別して、ライダーセンサによって位置特定された関心のある物体を識別し得る。
【0016】
機械学習アプリケーションから出力された情報は、他の道路ユーザのアクションを予測し、リアルタイムでローカル車両姿勢をグローバルマップ形状と融合して、オンザフライマップ補正を可能にするための処理を実行し得るオブジェクト融合168およびビジョンマップ融合170ソフトウェア構成要素への入力として提供され得る。機械学習アプリケーションからの出力は、レーダー116からの情報およびマップローカライゼーション166アプリケーションデータ(ならびに測位データ)で補完され得る。いくつかの態様では、これらのアプリケーションにより、制御システム100は、マップへの依存が減り、絶えず変化する道路環境にさらに対応することができるようになる。さらに、任意のマップ誤差をオンザフライで補正することによって、制御システム100は、代替のマップ中心手法と比較して、より安全で、よりスケーラブルで、より効率的な動作を容易にし得る。
【0017】
トラック動作環境におけるセミトラック200と他の関連車両との間の対話および予測された対話に基づいて、リアルタイムで軌道生成システム176によって軌道が生成されることを可能にする軌道計画174構成要素に入力を提供する予測および計画アプリケーション172に情報が提供される。いくつかの実施形態では、例えば、制御システム100は、60秒の計画期間(planning horizon)を生成し、関連するアクターおよび利用可能な軌道を分析する。複数の基準(安全性、快適性、および経路の好みを含む)に最も適合する計画が選択され得、計画を実施するために必要な任意の関連する制御入力が、セミトラック200の移動を制御するためにコントローラ(複数可)182に提供さる。
【0018】
いくつかの実施形態では、これらの開示されたアプリケーションまたは構成要素(ならびに、本明細書で説明する他の構成要素またはフロー)は、別段に指定されていない限り、ハードウェアで、プロセッサによって実行されるコンピュータプログラムで、ファームウェアで、または上記の組み合わせで実装され得る。いくつかの事例では、コンピュータプログラムは、記憶媒体または記憶デバイスなどのコンピュータ可読媒体上に具現化され得る。例えば、コンピュータプログラム、コード、または命令は、ランダムアクセスメモリ(「RAM」)、フラッシュメモリ、読取り専用メモリ(「ROM」)、消去可能プログラマブル読取り専用メモリ(「EPROM」)、電気的消去可能プログラマブル読取り専用メモリ(「EEPROM」)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(「CD-ROM」)、または当技術分野で知られている任意の他の形態の非一時的記憶媒体中に常駐し得る。
【0019】
非一時的記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC」)内に常駐し得る。代替の実施形態では、プロセッサおよび記憶媒体は、個別の構成要素として常駐し得る。例えば、
図1は、以下で開示される構成要素のいずれかを表すか、またはその中に統合され得る例示的なコンピュータシステム140を示す。このように、
図1は、本明細書で開示されるシステムおよび方法の実施形態の使用または機能性の範囲に関して、いかなる限定も示唆するように意図されるものではない。コンピュータシステム140は、本明細書で開示される機能性のいずれかを実装および/または実行することが可能である。
【0020】
コンピュータシステム140は、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明され得る。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含み得る。コンピュータシステム140は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境において実装され得る。分散クラウドコンピューティング環境では、プログラムモジュールは、非一時的メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータシステム記憶媒体に位置し得る。
【0021】
図1を参照すると、コンピュータシステム140は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム140の構成要素は、限定はしないが、1つまたは複数のプロセッサ(例えば、CPU142およびGPU144)、通信インターフェース146、1つまたは複数の入力/出力インターフェース148、および1つまたは複数の記憶デバイス150を含み得る。図示されていないが、コンピュータシステム140は、システムメモリを含む様々なシステム構成要素をCPU142に結合するシステムバスを含み得る。いくつかの実施形態では、入力/出力(I/O)インターフェース148はまた、ネットワークインターフェースを含み得る。例えば、いくつかの実施形態では、制御システム100の構成要素のうちのいくつかまたはすべては、制御システム100が配備され、関連付けられる車両の内側の様々な構成要素を相互接続するコントローラエリアネットワーク(「CAN」)バスなどを介して通信し得る。
【0022】
いくつかの実施形態では、記憶デバイス150は、様々なタイプおよび形態の非一時的コンピュータ可読媒体を含み得る。そのような媒体は、コンピュータシステム/サーバによってアクセス可能な任意の利用可能な媒体であり得、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブルメディアの両方を含み得る。システムメモリは、一実施形態では、本明細書の他の図のフロー図(複数可)によって表されるプロセスを実装する。システムメモリは、ランダムアクセスメモリ(RAM)および/またはキャッシュメモリなど、揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。別の例として、記憶デバイス150は、取り外し不可能な不揮発性磁気媒体(図示せず、典型的には「ハードドライブ」と呼ばれる)を読み取ったりそれに書き込んだりすることができる。図示されていないが、記憶デバイス150は、磁気、テープまたは光ディスクドライブなどの1つまたは複数の取り外し可能な不揮発性ディスクドライブを含み得る。そのような事例では、各々は、1つまたは複数のデータ媒体インターフェースによってバスに接続され得る。記憶デバイス150は、本出願の様々な実施形態の機能を実行するように構成されたプログラムモジュール、コード、および/または命令のセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0023】
いくつかの実施形態では、コンピュータシステム140の1つまたは複数の態様、特徴、デバイス、構成要素、およびシステムは、インターネットを通じて利用可能なクラウドサービスによってアクセスされ、提供され、またはサポートされ得る。いくつかの事例では、クラウドサービスは、インフラストラクチャ、プラットフォーム、またはサードパーティプロバイダによってホストされるソフトウェア(例えば、Amazon Web Services、Microsoft Azure、Google Cloud Platformなど)を含み得る。例えば、いくつかの実施形態では、コンピュータシステム140の記憶、処理、および制御機能または構成要素のうちの1つまたは複数の少なくともいくつかの部分は、インターネットを介してアクセスされるクラウドサービスによって提供され得る。いくつかの態様では、クラウドサービスは、Infrastructure-as-a-Service(IaaS)、Platforms-as-a-Service(PaaS)、Software-as-a-Service(SaaS)、Function-as-a-Service(FaaS)、および他のクラウドコンピューティングサービスソリューションとして実装され得る。
【0024】
図2A~
図2Cは、例示的な実施形態に関連付けられ得るか、または例示的な実施形態で使用され得るセミトラック200の外観の例示的な描写である。セミトラック200は、例示の目的でのみ示されている。このように、当業者は、本開示を読めば、実施形態がいくつかの異なるタイプの車両とともに使用され得、
図2A~
図2Cに示されたタイプの車両に限定されないことを理解するであろう。
図2A~
図2Cに示される例示的なセミトラック200は、運転台202の前方のエンジン206と、ステアリング車軸214と、2つの駆動軸216とを含む、北米で一般的なトラック構成の1つのスタイルである。トレーラ(図示せず)は、典型的には、フレーム218上に提供され、駆動軸216上に配置されるフィフスホイールトレーラ連結器を介して、セミトラック200に取り付けられ得る。寝台212は、
図2Aおよび2Cに示すように、運転台202の背後に配置され得る。
図2A~
図2Cは、セミトラック200の異なるロケーションに配置された複数のセンサをさらに示す。例えば、1つまたは複数のセンサが、センサラック220上の運転台202の屋根に取り付けられ得る。センサは、サイドミラー210だけでなく、セミトラックの他のロケーションにも取り付けられ得る。センサは、バンパー204だけでなく、運転台202の側面および他のロケーションにも取り付けられ得る。例えば、
図2Aでは、後向きレーダー236が運転台202の側面に取り付けられているように示されている。実施形態は、トラックおよび他の車両の他の構成(例えば、キャブオーバーまたはキャブフォワード構成などを有するセミトラックなど)と共に使用され得る。一般に、本開示の実施形態を限定することなく、本発明の特徴は、長距離セミトラック路線などの長距離にわたって貨物を運搬する車両において望ましい結果を伴って使用され得る。
【0025】
図2Bは、セミトラック200の正面図であり、いくつかのセンサおよびセンサロケーションを示す。センサラック220は、長距離ライダー222、長距離カメラ224、GPSアンテナ234、および中距離前向きカメラ226を含む、いくつかのセンサをフロントガラス208の上方に固定および配置し得る。サイドミラー210は、後向きカメラ228および中距離ライダー230のための取り付けロケーションを提供し得る。フロントレーダー232は、バンパー204に取り付けられ得る。他のセンサ(図示されているものおよび図示されていないものを含む)が、セミトラック200の他のロケーションに取り付けられるかまたは設置され得る。このように、
図2A~
図2Cに示されているロケーションおよび取り付けは、例示のみを目的としている。
【0026】
ここで
図2Cを参照すると、運転台202および寝台212の内部のいくつかの態様を示すセミトラック200の部分図が示されている。いくつかの実施形態では、
図1の制御システム100の一部(複数可)は、寝台212内のシステムラック240内に配備され得、保守および動作のために制御システム100の構成要素への容易なアクセスを可能にする。
【0027】
本開示の特定の態様は、3次元(3D)道路形状推定を生成するためのフレームワークを提供する方法およびシステムに関する。いくつかの態様では、生成された3D道路形状は、自律走行車(AV)(例えば、
図1および
図2A~
図2Cに開示されたものと同様のトラック)が動作されている(例えば、運転されている)ときにリアルタイムで、自律走行車に関連する使用事例および適用例について十分に正確である。本開示の態様は、一般に、例えば、車線境界線、障壁、走行可能表面、道路端、標識などを含む、AVの周囲の静止世界を正確かつ効率的に推定するためのフレームワークを提供する。
【0028】
図3は、例示的な実施形態による、自律走行車が動作し得る道路300の例示的な描写である。道路300は、車線境界線305、310、および315によって画定された道路の簡略図である。本明細書で説明されるように、道路は、一定または直線的に変化する曲率を有するものとしてモデリングすることができる。本明細書で使用される場合、道路は、ゼロ曲率を有する「直線」道路、一定の非ゼロ曲率を有する「曲線」、直線的に変化する曲率を有する、直線と曲線との間の「移行」としてモデリングすることができる。一例として、道路の直線区分(例えば、320、325)に沿って走行している車両は、車両のハンドルを(略)ゼロ度で制御すること(すなわち、現在の進行経路から左にも右にも曲がらないこと)に対応し得る。道路の曲線区分(例えば、330)に沿って走行している車両は、(略)何らかの非ゼロ角度で車両のハンドルを制御すること(すなわち、ステアリングすること)に対応し得る。直線的に変化する曲率を有する道路の移行区分(例えば、335、340)は、(略)一定の速度で曲がるようにハンドルを制御することを必要とする道路の区分に沿って走行する車両によって例示され得る。
【0029】
一定または直線的に変化する曲率を有するものとしてモデリングされた道路に関して、道路の区分を考慮し、s[m]は、弧長、すなわち、道路区分に沿った距離(すなわち、位置)を示すものとする。道路区分の曲率は、次のように表すことができる:
【数1】
ここで、k
0は、区分の初期曲率であり、k
1は、曲率変化率である。すなわち、道路に沿って移動するときの初期曲率および曲率率の関数として道路曲率を記述する。直線的に変化する曲率によって形成される形状は、クロソイド、すなわちオイラー螺旋とも呼ばれる。曲率モデル(1)は、以下を含む、上で紹介された道路の3つの場合すべてに適合することに留意されたい:
【数2】
【0030】
本明細書における道路区分の進行方向または向きは、次のように表され得る:
【数3】
ここで、φ
0は、初期進行方向である。上記のように、進行方向は、曲率と同様または同じ原理に基づいて表され得る。例えば、AVが道路上の車線内にあるとき、AVは、何らかの方向または進行方向を向いている。AVが道路に沿って走行するにつれ、この進行方向は、道路が直線であるかまたはカーブしているかに応じて変化し得る。道路進行方向式(2)は、道路向ききまたは道路進行方向がどのように変化するかを記述する。上記のように、初期の向きがあり、式(2)は、あるロケーションsにおける進行方向の数学的表現を示す。
【0031】
いくつかの態様では、デカルト道路位置(x,y)を進行方向の関数として記述するモデルが望まれる。すなわち、道路形状の記述が望まれる。いくつかの実施形態では、道路形状モデルは、2つの式3(a)および3(b)で表される。しかしながら、2つの式3(a)および3(b)は、解析解を持たない。
【0032】
道路区分の2Dデカルト道路形状は、以下のように記述される:
【数4】
ここで(x
0,y
0)は、道路区分が始まる位置である。道路区分のパラメータは、以下のように、曲率率、初期曲率、および2D位置のパラメータを含むベクトルによって与えられる:
【数5】
【0033】
本開示では、特に断りのない限り、異なる変数の標準単位は、x/y/z位置[m]、道路進行方向[ラジアン]、曲率[1/m]、曲率率[1/m2]、道路勾配[単位なし]、および道路勾配率[1/m]を含む。
【0034】
(3)における積分は、閉形式解を持たず、道路形状推定の文脈では、それらは一般的に近似される(例えば、次数2もしくは3の多項式を使用して、またはテイラー展開を使用して、何らかの次数の多項式をもたらす)。これらの一般的な近似値には、AV制御および誘導操作での使用に適していない誤差が含まれている。
【0035】
正弦および余弦の角度加算式と、初期の向きφ
0が被積分関数tとは無関係であるという事実とを使用して、積分方程式(3)は、次のように書くことができる:
【数6】
【0036】
別の方法で表現すると、φ
0ラジアンの回転と並進ベクトル[x
0y
0]
Tを有するベクトル
【数7】
の剛体変換がある。このように道路形状式(3)を再公式化することによって、積分(7)に焦点を当てることができる。
【0037】
いくつかの態様では、(3)および(7)における積分は、フレネル積分と同様であり、次のように定義される:
【数8】
【0038】
フレネル積分は、べき級数配備に基づく正確な近似を有する。積分近似は、例えば、SciPy(例えば、https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.fresnel.html)で利用可能である。したがって、(7)を書き換え、フレネル積分で積分を表すことによって、(3)の道路形状推定問題を解くために(8)の正確な近似を利用することができる。式(8)によって表される道路形状は、AV制御、ナビゲーション、較正、および誘導と互換性があり、それらにおいて有用である、より小さい近似を用いて道路形状を計算するために使用することができる。
【0039】
以下にさらに示すように、道路形状問題の解は、いくつかの機能ψ(・)、C(・)、S(・)に対して、次のように表すことができる。
【数9】
【0040】
次に、フレネル積分を使用して道路形状の式を開示する。k
1=0の場合、次にk
1≠0の場合について、道路形状の式を提供する。曲率率k
1=0の場合、積分(7)は閉形式解を持つ。2Dデカルト道路形状(3)が以下のようになることを示すことができる:
【数10】
ここで、関数sinc(・)およびcosc(・)は次のように定義される:
【数11】
言い換えると、以下である:
【数12】
【0041】
非ゼロの曲率率k1≠0の事例では、以下の3つの場合が考えられる:正の比率k1>0、負の比率k1<0、および何らかの閾値Tk1に対して非常に小さい比率|k1|≦Tk1。
【0042】
曲率率が正で、k
1>0である場合、以下が得られる:
【数13】
【0043】
曲率率が負で、k
1<0である場合、以下が得られる:
【数14】
【0044】
曲率率が非常に小さい場合を考慮すると、(15)、(16)、および(17)におけるk
1による除算は、k
1が非常に小さい場合に数値問題を引き起こす可能性があることに留意されたい。絶対曲率率がある閾値よりも小さい|k
1|≦T
k1場合、テイラー展開に依拠し、以下の近似を使用する:
【数15】
【0045】
|k0|≦Tk0の場合、gC(・)およびgS(・)におけるk0での除算による数値問題を回避するために、テイラー近似を使用する。したがって、k1→0となるにつれて、(18b)および(18c)がそれぞれ(14b)および(14c)に近づくことが分かる。
【0046】
したがって、要約すると、以下ということになる:
【数16】
【0047】
上記の開示によって示されるように、本明細書で開示される道路形状の式の(再)定式化は、以前のモデルおよび数式の有意な近似の使用を回避する。このようにして、本明細書で開示される道路モデリング技法を使用する道路形状モデリングは、AV動作シナリオおよび使用事例に適用可能であり、AV動作にとって十分には正確でない他の以前のモデルと比較してはるかに小さい数値誤差を含み得る。
【0048】
図4A~
図4Cは、例示的な実施形態による、例示的な道路区分に関するパラメータ(例えば、進行方向、曲率、および位置)の例示的なプロットであり、ここで、道路区分は、直線区分、曲線区分、および移行区分を含む。具体的には、
図4Aは、例示的な実施形態による、道路区分の2次元(2D)デカルト位置のy成分の例示的なプロット405である。y位置は、道路の直線区分410、曲線区分415、および移行区分420について示されている。
【0049】
図4Bは、例示的な実施形態による、道路区分の曲率の例示的なプロット425である。本明細書の曲率に基づいてモデリングされた道路の定義によれば、直線道路区分410はゼロ曲率を有し、曲線道路区分415は一定の非ゼロ曲率を有し、移行道路区分420は直線的に変化する曲率を有する。
【0050】
図4Cは、例示的な実施形態による、道路に沿った様々なロケーションにおける例示的な道路区分の進行方向、すなわち道路の向きの例示的なプロット430である。図示のように、直線道路区分410の進行方向は一定であり、変化しないが、曲線道路区分415および移行道路区分420の進行方向は道路に沿って変化する。
【0051】
いくつかの現実世界のシナリオでは、道路のより長い区分は、(単一の)一定の曲率率によって正確にモデリングされない場合がある。例えば、道路のより長い区分、例えば、1マイルまたは2マイルを考慮した場合、実際には、道路は、道路に沿ったすべてのロケーションで同じ曲率を有しているわけではない可能性がある。すなわち、曲率率は、例示的な長い道路に沿って少なくとも1回変化する可能性が高い。例えば、考慮中の道路は、直線道路区分、少なくとも1つの曲線を含む可能性があり、その後、再び直線道路区分に変化する場合がある。
図5は、例示的な実施形態による、自律走行車が動作し得る例示的な道路500の例示的な描写である。図示のように、道路500は、道路の全長にわたって同じ曲率を有しているわけではない。
【0052】
本明細書のいくつかの実施形態では、道路は、変化する曲率率を有する複数の道路区分としてモデリングされ得る。すなわち、本明細書における道路は、曲率モデルのシーケンス(例えば、直線道路区分、曲線道路区分、および移行道路区分)としてモデリングされ得る。
図6は、例示的な実施形態による、複数の道路区分に分割された
図5の例示的な道路の例示的な描写である。
図6において、道路500は、9つの異なる道路区分605~645の連続したシーケンスに分割されているものとして示されている。
【0053】
図7Aは、例示的な実施形態による、
図6の複数の道路区分についての曲率率の例示的なプロットである。
図7Aに示すように、道路区分605、615、625、635、および645は、直線道路区分に対応するゼロの曲率率を有する。道路区分610、620、630、および640は、カーブした道路区分に対応する一定の非ゼロの曲率率を有する。
【0054】
図7Bは、例示的な実施形態による、
図6の複数の道路区分605~645についての曲率の例示的なプロットである。
図7Bに示すように、直線道路区分(例えば、ゼロ曲率を有する605、625、および645)と曲線道路区分(例えば、一定の非ゼロ曲率を有する615および635)との間の移行道路区分610、620、630、および640の曲率は、直線的に変化している。
【0055】
本開示は、複数の道路区分をモデリングすることを含む。道路形状(3)に従い、均一な長さLであるN個の連続する道路区分を考慮する。区分が滑らかに整列するためには、完全な道路がG2連続性を有する(すなわち、2次幾何学的である)ように接続されなければならない。すなわち、2つの連続する道路区分間の各接合部において、一次導関数と二次導関数とがすべて一致する。
【0056】
滑らかな運転体験を生み出すために、道路は一般的に連続的であり、一般的に滑らかである(すなわち、異なる曲率率間の移行において道路に急激なねじれがない)という現実を考えると、道路形状モデルは、同じものを表すべきである。したがって、2つの道路区分が接合または接触する任意の点において、本明細書のいくつかの実施形態は、実際の道路を表す基礎となる方法およびモデルが滑らかであることを保証するために、隣接する道路区分が、等しい曲率、等しい進行方向、および等しい位置を有するという制約を有する。すなわち、いくつかの実施形態では、連続する道路区分の終点および始点は、2つの連続する道路区分の曲率、進行方向、および位置が互いに等しいという制約に従う。
【0057】
図7Cは、例示的な本実施形態による、
図6の複数の道路区分605~645に沿った進行方向の例示的なプロットである。
図7Cは、
図6に見られるように、連続する道路区分間の(すなわち、連続する道路区分の接合部における)進行方向が等しいという制約がどのように「滑らかな」連続道路をもたらすかを部分的に示す。
【0058】
G2-連続性は、道路区分の初期条件に対する以下の制約によって保証され得る。
【数17】
【0059】
N個の区分の場合、初期位置(x
0,y
0)、初期進行方向φ
0、初期曲率k
0、およびN個の曲率率
【数18】
を含む、道路を定義するN+4個のパラメータが存在することに留意されたい。これらのパラメータは、以下のベクトルで編成することができる:
【数19】
【0060】
初期曲率および進行方向のシーケンスは、再帰的に計算することができる。しかしながら、パラメータがベクトル(25)で編成される場合、初期曲率および進行方向は、
【数20】
として計算することができ、ここで、I
mは、サイズmの単位行列であり、1
mxnは、m×nの全一行列(all-one-matrix)であり、0
mxnは、m×nは、全ゼロ行列(all-zero-matrix)である。
【0061】
第iの区分の初期曲率または初期進行方向を得るために、
【数21】
【0062】
連続する道路区分間の値の同一性を保証するために、初期位置に対して、第iの区分の初期位置は、前の区分i-1の最終位置であり、次のように記述することができる:
【数22】
【0063】
この関係を反復して適用することにより、次式が得られる:
【数23】
【0064】
マルチ区分道路形状について、均一な長さLのN個の区分があるとする。これは、ロケーションパラメータs∈[0,NL]を意味する。(i-1)L<s<iLとなるようなロケーションパラメータsを考えると、道路上の対応する位置は、第iの区分に属し、次のように定義される:
【数24】
ここで、簡潔にするために、次の表記を導入する:
【数25】
【0065】
上記の道路形状モデリングは、平坦なデカルト平面(例えば、x,y)における2D曲率モデリングを含む。本明細書のいくつかの実施形態では、道路形状モデルは、3D道路形状モデルを提供するために道路高度を含むように拡張される。道路形状モデルは、上記の曲率モデルと同様の方法で表すことができる道路高度または道路高さのモデルを使用する。
【0066】
道路のある区分について、初期道路高度z
0[m]を有するその区分上のロケーションを考える。初期道路勾配v
0と、高度変化の尺度を記述する道路勾配率aとが存在する。道路勾配は、次のように表され得、
【数26】
これは、移動距離に対する高度(すなわち、勾配)の変化を記述する。道路勾配は、曲率と同様に、初期道路勾配v
0+道路勾配率×移動距離asの関数として表され、ここで、sは、ロケーションまたは弧長である。上記の道路勾配式は、移動距離(例えば、1メートル)にわたって道路がどのように変化するかを決定するために使用することができる。道路勾配は、正であっても負であってもよい。すなわち、道路勾配は、正の道路勾配に対応して上向きに傾斜してもよいし、負の道路勾配に対応して下向きに傾斜してもよい。道路勾配がゼロである場合、道路は平坦である。
【0067】
道路高度は、次のように表され得、
【数27】
これは、移動距離の関数として道路の高度を記述し、ここで、s[m]は、弧長(すなわち、道路区分に沿った距離)を示す。道路高度は、上述した道路進行方向と同様の方法で、初期道路高度z
0と、道路勾配(v
0s)および道路勾配率aの両方の関数とによって表される。
【0068】
図8Aは、例示的な実施形態による、自律走行車が動作し得る例示的な道路の道路勾配の例示的なプロット805である。グラフ805において、道路勾配は、例示的な道路に沿った様々なロケーションで示される。
【0069】
図8Bは、例示的な実施形態による、自律走行車が動作し得る例示的な道路の道路高度の例示的なプロット810である。グラフ810において、道路高度は、例示的な道路に沿った様々なロケーションで示される。
【0070】
いくつかの態様では、3D道路高度モデルは、道路高度または高さがどのように変化するかを記述するための機構またはフレームワークを提供し、例えば、ハイウェイのオフランプは、ハイウェイを横切る高架道路に向かって上向きに傾斜し得る。この例では、正の道路勾配率があり、道路勾配は、道路の初期の平坦な区分に沿ってゼロであり得、その後、道路勾配率は、2つの道路区分の組み合わせが上向きに傾斜し始める道路となるように、正の道路勾配に変化する。
【0071】
いくつかの実施形態では、本明細書の道路形状モデルは、道路またはその表現を複数の区分に分割するか、または他の方法で区分化することによって道路をモデリングするために使用され得る。いくつかの事例では、本明細書で開示される3D道路形状推定の実装形態は、道路を等しい長さL(例えばL=50m)の区分に分割し得る。しかしながら、いくつかの実施形態では、道路を構成する道路区分の長さが等しい長さであるという要件または必要性はない。
【0072】
いくつかの実施形態では、AVは、本明細書で開示される3D道路形状に基づいて道路形状の近似を決定または生成するように構成され得る。いくつかの事例では、各区分は等しい長さであり得るが、他の実装形態は、1つまたは複数のファクタ(例えば、道路地形、計算リソース、詳細/粒度などの所望のレベル、計算結果の意図された使用または適用など)に基づいて道路区分の長さを変化させ得る。
【0073】
上記で定義したように、各道路区分は、曲率率および道路勾配率(すなわち、区分ごとに2つのパラメータ)と、3D位置(例えば、x、y、z)、初期進行方向、初期曲率、および初期道路勾配を含む初期点(すなわち、各区分の初期点ごとに6つのパラメータ)とによって表されるかまたは記述され得る。
【0074】
いくつかの態様では、本明細書で開示される3D道路形状推定の一実施形態は、他の既知の道路形状モデルと比較して、(比較的)少ないパラメータで道路形状のコンパクトな記述を提供する。一例として、道路が9つの区分に分割される場合、各区分は、曲率率および道路勾配率という2つのパラメータ、合計で18個のパラメータ(すなわち、(9*2=18))によって記述され得る。道路の初期点は、3つのパラメータ(x、y、z)の3D位置と、初期進行方向、初期曲率、および初期道路勾配の3つのパラメータ、合計で追加の6つのパラメータによって指定される。したがって、9つの道路区分に分割された道路は、合計で24個のパラメータで表され得る。区分長が50メートルの場合、24個のパラメータは、450メートルの全長を表す。代替のまたは前の表現では、より多くのパラメータを必要とする場合があり、例えば、5メートルごとにサンプリングされる高解像度のポリラインには、270個のパラメータが必要である。このようにして、本明細書で開示される3D道路形状モデリング技法/プロセスによって必要とされるパラメータの数は、他の以前の道路モデリング技法によって必要とされるものよりもはるかに少ない。
【0075】
本明細書で開示される3D道路形状推定(複数可)の少なくともいくつかの態様は、例えば、本明細書で開示されるモデル(複数可)を使用して3D道路形状を生成するように構成されたAVのGPS(全地球測位システム)測定値、ライダーデータ、カメラデータなどに基づいて、正確かつ効率的であることが検証されており、ここで、車両からのセンサデータ(例えば、ライダーデータおよびレーダーデータ)がモデルへの入力として使用された。
図9に示すように、本明細書で開示されるモデル(複数可)を使用してAVによって生成された計算された道路高度推定905は、所望の事後+/-3標準偏差(915、920)内でGPS高度データ910と整合する(すなわち、適合する)ように決定された。
【0076】
図10は、例示的な実施形態による、プロセスの例示的なフロー図である。いくつかの実施形態では、本明細書で開示されるシステムまたは装置は、プロセス1000のいくつかの態様を実装するために使用され得る。動作1005において、AVのセンサデータ内の道路に関連付けられた車線境界線データが受信される。いくつかの事例では、センサデータは、AVに搭載されて配置された1つまたは複数の3Dライダーおよび1つまたは複数のカメラ(例えば、
図1のカメラ112およびライダー114)によって生成され得る。1つまたは複数のプロセスは、生センサデータに基づいて道路に関連付けられた車線境界線データを識別および決定するために、AV(例えば、
図1のコンピュータ140)によって実行され得る。
【0077】
動作1010において、本明細書で開示される3D道路形状モデリング技法およびプロセスにしたがって、道路の形状が道路区分のシーケンスとしてモデリングされる。いくつかの実施形態では、動作1010(または、別個の動作、図示せず)は、考慮中の道路を複数の道路区分に分割することを含み得、ここで、道路区分のシーケンスは、動作1005において受信されたデータに関連付けられた情報(例えば、メタデータ、タイムスタンプなど)に基づいて維持され得る。本明細書で開示される他の態様によれば、道路は、初期道路進行方向と、初期道路曲率と、3次元(3D)位置(例えば、x、y、z座標)によって定義された初期ロケーションとを含むパラメータによって指定された初期点によって定義され得、各道路区分は、曲率率(例えば、k1)および道路勾配率(例えばa)を含むパラメータによって定義され得る。
【0078】
動作1015に進むと、各道路区分の近似は、フレネル積分としてのモデリングされた道路形状の表現に基づいて生成され得る。上記(例えば、式8(a)、8(b)または9(a)、9(b))で開示されたように、フレネル積分としての道路形状の(再)定式化は、近似誤差(複数可)が最小の推定道路形状を提供するための機構を提供する。
【0079】
動作1020において、区分のシーケンスを含む道路の3D表現が、各道路区分の生成された近似に基づいて生成される。本明細書で開示される他の態様によれば、道路の3D表現は、3D道路形状推定のための1つまたは複数の制約、ルール、または仕様を考慮し、それに準拠することによって生成され得る。例えば、動作320(または、別個の動作、図示せず)は、連続する道路区分間の接合部が、隣接する道路区分に対して等しい曲率、等しい進行方向、および等しい位置の値を有することを指定する3D道路形状推定のための制約、ルール、または仕様を考慮し得る。
【0080】
いくつかの実施形態では、本明細書で開示される3D道路形状モデリングは、(例えば、コンピュータ140またはAVに搭載された他のシステムおよびデバイスを使用して)車両上でリアルタイムに実行され得る。トラック上で生成されたカメラデータ、ライダーデータ、およびレーダーデータは、本明細書で開示されるモデリング技法を使用して、道路形状の正確な3D表現を生成するために、車載コンピュータ(複数可)によって処理され得る。
【0081】
いくつかの態様では、AVが道路上を走行するにつれ、AVは、その初期開始ロケーションから移動する道路の部分を次々と連続的に見る。AVは、限られた範囲の道路しか見ることができないが、道路に沿って移動するにつれて、より多くの道路を見るための追加のデータを取得する。いくつかの実施形態では、3D道路形状推定実装形態は、AVが生成する道路の範囲を拡張し、周辺化(marginalize)し得る。いくつかの事例では、AVは、車両のすぐ近くの道路、車両の前方の有限距離、およびトラックの後方の有限距離の表現を生成し得る(例えば、車両の後方に表される距離は、車両の前方に生成される道路の範囲よりも小さくなるように指定され得るが、同じであってもさらにはそれよりも大きくてもよい)。車両の前方および後方で推定される道路の範囲は、AVに搭載されたセンサ(例えば、ライダー、レーダーなど)の能力に対応するように指定され得る。すなわち、いくつかの実施形態は、主に車両が現在いる場所からプラスマイナスいくらかの前方にある距離および後方にある距離までの道路を表すことを望むので、車両がより多くの道路を見るときに車両の前方の新しい道路区分を連続的に(または、少なくとも周期的に)追加し、また、車両が前方に移動するにつれて車両の後方の区分を除去するように動作し得る。
【0082】
いくつかの態様では、本明細書で開示される3D道路形状モデリングの実装形態において1つまたは複数の数値最適化技法およびプロセスが使用され得る。いくつかの事例では、数値最適化ソルバは、3D道路形状モデルのヤコビアンを計算し得る。本明細書で開示される数学モデルは、ヤコビアンとして表現され得る。
【0083】
いくつかの態様では、新しい測定値(すなわち、センサデータ)が(例えば、カメラ、ライダーなどから)受信され、現在のモデルを改善するために更新された測定値が使用され得、それにより、そのモデルは、最も正確で最新の曲率、道路勾配、他の決定されたパラメータ値を提供する。更新されたセンサデータに基づいてモデルを更新するために、いくつかの異なる技法およびプロセスが使用され得、そのような技法およびプロセスは、いずれか1つの数学的または他の技術的最適化もしくは変換に限定されない。そのような技法およびプロセスは、他の実装プロセスよりも効率的かつ高速である改良された実装形態のための機構を提供し得る。技法およびプロセスは、それぞれ、本明細書で開示されるモデリング式(例えば、(8))に基づき得る。
【0084】
いくつかの態様では、道路形状推定問題を解くための1つの重要な構成要素は、データ関連付けであり得る。本明細書で開示されるような車線境界線の場合、新しいデータが車両によって取得されると、この新しく取得されたデータが、モデルを改善するために使用され得る。このように、データ関連付けを実行する必要があり得る。例えば、取得されたカメラ画像について、車線境界線に対応する画像内の特定の画素と、車線境界線のどの部分を測定するかを決定する必要がある。いくつかの態様では、データ関連付けは、数値最適化と見なされ得る。いくつかの実施形態では、本明細書のデータ関連付けは、データ関連付けを3つの部分に分割することを含み得る。
【0085】
本明細書のいくつかの実施形態では、単一の測定値に対するデータ関連付けは、3つの部分に分割することができる:
1.測定値をマルチ区分車線境界線に関連付けること;
2.測定値を車線境界線の区分のうちの1つに関連付けること;
3.測定値を区分に沿ってロケーション
【数28】
に関連付けること;
【0086】
データを区分ロケーションに関連付けることに関して、以下に、一般的であるが、特定のタイプの測定(すなわち、2Dデカルト測定)についてのものである方法を開示する。したがって、開示される方法は、例えば、3Dデカルト検出、カメラピクセル検出などを含む、他のタイプの測定にも適用され得る。データを車線区分に関連付けるために、測定値z=[zxzy]Tが道路区分に関連付けられていると仮定する。簡潔にするために、以下では道路区分のインデックス付けは省略する。
【0087】
この測定値が対応する区分に沿ったロケーションs
^、すなわち弧長、は、最小化問題を解くことによって求められ、
【数29】
ここで||・||
2は、ユークリッドノルムを示す。この最小化問題は、求根アルゴリズム(例えば、Newton's methodまたはHalley's method)を使用して解くことができるが、いずれもコスト関数f(s)をロケーションsに関して微分する必要がある。微積分の基本定理から、以下が成り立つ:
【数30】
コスト関数の一次、二次、および三次導関数は以下である:
【数31】
ここで、道路進行方向φ(s)の定義((2)を参照されたい)から、以下が成り立つ:
【数32】
【0088】
f(s)の最小値が達成される場合、f´(s)=0となるので、最小化問題の解は、求根アルゴリズムをf´(s)に適用することによって求めることができる。初期化s
0が与えられると、収束するまで、以下の反復を適用することができる:
【数33】
【0089】
s^を求めるための上記の解は道路区分パラメータ(x0,y0,φ0,ko,k1)を知っている必要があることに留意されたい。しかしながら、実際には、これらは不明である。逐次解法では、時間ステップkでの測定値が与えられると、時間ステップk-1からの道路区分パラメータの推定値を使用してs^について解くことが提案される。バッチ解法では、収束するまで、バッチ時間窓内で、一度に1つの時間ステップについての関連付けを反復的に精緻化することが提案される。
【0090】
図11は、例示的な実施形態による、本明細書で開示されるアーキテクチャまたはフレームワーク(例えば、
図1)およびプロセス(例えば、
図9)のいずれかにおいて使用され得るコンピューティングシステム1100を示す。
図11は、いくつかの実施形態による、イベントプロセッサを具現化するコンピューティングデバイス1100のブロック図である。コンピューティングシステム1100は、汎用コンピューティング装置を備え得、本明細書で説明される機能のいずれかを実行するためのプログラムコードを実行し得る。コンピューティングシステム1100は、いくつかの実施形態による他の図示されていない要素を含み得る。
【0091】
コンピューティングシステム1100は、通信デバイス1120、データ記憶デバイス1130、1つまたは複数の入力デバイス1140、1つまたは複数の出力デバイス1150、およびメモリ1160に動作可能に結合された処理ユニット(複数可)1110を含む。通信デバイス1120は、外部ネットワーク、データ記憶デバイス、または他のデータソースなどの外部デバイスとの通信を容易にし得る。入力デバイス(複数可)1140は、例えば、キーボード、キーパッド、マウスもしくは他のポインティングデバイス、マイクロフォン、ノブもしくはスイッチ、赤外線(IR)ポート、ドッキングステーション、および/またはタッチスクリーンを含み得る。入力デバイス(複数可)1140は、例えば、コンピューティングシステム1100に情報(例えば、AV動作関連データの特定のセットに対する手動要求)を入力するために使用され得る。出力デバイス(複数可)1150は、例えば、ディスプレイ(例えば、表示画面)、スピーカ、および/またはプリンタを含み得る。
【0092】
データ記憶デバイス1130は、磁気記憶デバイス(例えば、磁気テープ、ハードディスクドライブ、およびフラッシュメモリ)、光学記憶デバイス、読取り専用メモリ(ROM)デバイスなどの組み合わせを含む任意の適切な永続記憶デバイスを含み得、メモリ1160は、ランダムアクセスメモリ(RAM)を含み得る。
【0093】
アプリケーションサーバ1132はそれぞれ、コンピューティングシステム1100に、本明細書で説明されるプロセスのうちのいずれか1つまたは複数を実行させるために、プロセッサ(複数可)1110によって実行されるプログラムコードを含み得る。実施形態は、単一のコンピューティングデバイスによるこれらのプロセスの実行に限定されない。データ記憶デバイス1130はまた、追加の機能性を提供するための、および/またはデバイスドライバ、オペレーティングシステムファイルなどのコンピューティングシステム1100の動作のために必要である、データおよび他のプログラムコードを記憶し得る。3D道路形状推定エンジン1134は、入力センサデータ(例えば、ライダーデータおよびカメラデータ)に応答して、AVが走行している(すなわち、動作している)道路の3D道路形状を決定するために、プロセッサ(複数可)1110によって実行されるプログラムコードを含み得る。3D道路形状推定エンジン1134によって生成された結果は、データベース管理システムノード1136に記憶され得る。
【0094】
前述の明細書に基づいて理解されるように、本開示の上述の例は、コンピュータソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせもしくはサブセットを含むコンピュータプログラミングまたはエンジニアリング技法を使用して実装され得る。コンピュータ可読コードを有する、任意のそのような結果として生じるプログラムは、1つまたは複数の非一過性コンピュータ可読媒体内に具現化または提供され、それによって、本開示の議論される例による、コンピュータプログラム製品、すなわち、製造品を作製してもよい。例えば、非一時的コンピュータ可読媒体は、固定ドライブ、ディスケット、光ディスク、磁気テープ、フラッシュメモリ、外部ドライブ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)などの半導体メモリ、ならびに/またはインターネット、クラウドストレージ、モノのインターネット(IoT)、もしくは他の通信ネットワークもしくはリンクなどの任意の他の非一時的素言う進および/もしくは受信媒体であり得るが、それらに限定されない。コンピュータコードを含む製造品は、1つの媒体から直接コードを実行することによって、1つの媒体から別の媒体にコードをコピーすることによって、またはネットワークを介してコードを送信することによって、作成および/または使用され得る。
【0095】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、「アプリ」、またはコードとも呼ばれる)は、プログラマブルプロセッサのための機械命令を含み得、高レベル手続き型および/またはオブジェクト指向プログラム言語で、および/またはアセンブリ/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、クラウドストレージ、モノのインターネット、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。しかしながら、「機械可読媒体」および「コンピュータ可読媒体」は、一時的な信号を含まない。「機械可読信号」という用語は、機械命令および/または任意の他の種類のデータをプログラマブルプロセッサに提供するために使用され得る任意の信号を指す。
【0096】
本明細書におけるプロセスの上記の説明および例示は、プロセスステップを実行するための固定された順序を意味するものと見なされるべきではない。むしろ、プロセスステップは、少なくともいくつかのステップの同時実行を含む、実施可能な任意の順序で実行され得る。本開示は、特定の例に関連して説明されてきたが、添付の特許請求の範囲に記載された本開示の趣旨および範囲から逸脱することなく、開示された実施形態に対して、当業者に明らかな様々な変更、置換、および改変を行うことができることを理解されるべきである。
【外国語明細書】