最新運転者支援システムのための幾何学形状の作成
【課題】最新運転者支援システム(ADAS)、特に、ADASにおける使用に向けて幾何学形状を作成する技術を提供する。
【解決手段】ADASのための幾何学形状を作成する方法及びシステムを説明する。セグメントのシーケンスであるリンクチェーンが作成される。リンクチェーンは、2Dスプラインを作成するために用いられる。リンクチェーン、2Dスプライン、及び高度データを用いて3Dスプラインが作成される。3Dスプライン及び恐らく2Dスプラインも、2Dポリラインを作成するのに用いることができるベジエ曲線に変換される。ADASアプリケーションは、ベジエ曲線及び2Dポリラインを用いてADAS機能を提供することができる。
【解決手段】ADASのための幾何学形状を作成する方法及びシステムを説明する。セグメントのシーケンスであるリンクチェーンが作成される。リンクチェーンは、2Dスプラインを作成するために用いられる。リンクチェーン、2Dスプライン、及び高度データを用いて3Dスプラインが作成される。3Dスプライン及び恐らく2Dスプラインも、2Dポリラインを作成するのに用いることができるベジエ曲線に変換される。ADASアプリケーションは、ベジエ曲線及び2Dポリラインを用いてADAS機能を提供することができる。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への参照
本出願は、2008年10月1日出願の「最新運転者支援システムのための幾何学形状の作成」という名称の米国特許仮出願第61/101、752号の恩典を請求する。米国特許仮出願出願番号第61/101、752号の全開示内容は、本明細書に引用によって組み込まれている。
本特許出願は、本明細書に引用によって組み込まれている「最新運転者支援システムアプリケーションのためのベジエ曲線」という名称の同じ日付に出願された現在特許出願中の特許出願出願番号第____号、代理人整理番号N0295USに関連している。
本発明は、一般的に、最新運転者支援システム(ADAS)に関し、より具体的には、ADASにおける使用に向けて幾何学形状を作成することに関する。
【背景技術】
【0002】
ADASは、運転の快適さ、効率、安全性、及び全体的な満足感を改善するために開発されたものである。これらの最新運転者支援システムの例は、適応ヘッドライト照準、適応走行制御、車線逸脱警告及び制御、カーブ警告、速度制限通知、ハザード警告、予測走行制御、適応変速制御、並びにその他を含む。これらの最新運転者支援システムの一部は、車両の現在の状態及び車両の前方にある車道の現在の状態を判断するために車両内の様々なセンサ機構を用いる。これらのセンサ機構は、デジタルビデオカメラ及びLIDARのようなレーダー、赤外線、超音波、及び視覚指向性センサを含むことができる。
【0003】
一部の最新運転者支援システムはまた、デジタル地図データを用いる。これらのシステムは、時によっては地図援用ADASと呼ばれる。デジタル地図データは、最新運転者支援システムにおいて道路網、道路幾何学形状、道路状態、並びに車両の周囲の道路及び地形に関連する他の項目に関する情報を提供するのに用いることができる。一部のセンサとは異なり、デジタル地図データは、霧、雨、又は雪のような環境の状態による影響を受けない。更に、デジタル地図データは、曲率、断勾配、横傾斜、標識によって示されていない速度制限、及び車線制限などのようなセンサによっては確実には供給することができない有利な情報を提供することができる。更に、デジタル地図データは、車両の前方、曲がり角付近、坂の向こう側、又は障害物の向こう側の道路を判断するために、センサの範囲を十分に超えるか又は運転者の視界さえ超える予測機能を提供することができる。従って、デジタル地図データは、一部の最新運転者支援システムに対して有用な追加物とすることができる。
【0004】
地図援用最新運転者支援システムは、一般的に、車両内のナビゲーションシステムに付随する地理データベースからのデータを用いる。ナビゲーションシステムのデータベースは、道路及び交差点の場所(高度を含む地理座標)、道路名、道路に沿った速度制限、交差点での右左折制限、道路に沿った住所又は住所範囲、各道路における車線数、車線幅、車線境界線、道路の機能部類、及び中央分離帯の場所などのような地域内の道路網を表すデータを収容する。ナビゲーションシステムのデータベースはまた、水域、公園、行政区域(地方自治体、州、及び国の境界を含む)、及び会社、病院、及び警察署などのような肝心な点の場所のような他の地理的特徴に関する情報を収容することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許仮出願第61/101、752号
【特許文献2】米国特許公開第2006/0100780号
【特許文献3】米国特許第6、405、128号
【特許文献4】米国特許第7、084、882号
【発明の概要】
【発明が解決しようとする課題】
【0006】
ナビゲーションシステムのデータベースは、最新運転者支援システムが必要とするものよりも非常に多くのデータを有する。更に、ナビゲーションに向けて設計された地理データベースは、全てのデータを有していない場合があり、及び/又は最新運転者支援システムによって必要とされる精度レベルでデータを有していない場合がある。その結果、特に最新運転者支援システムに向けた地理データベースの設計には何らかの労力が費やされてきた。例えば、米国特許公開第2006/0100780号は、自動車システム内のセンサデバイスに向けて設計されたデータ記憶フォーマットを有する地理データベースを説明している。しかし、特に最新運転者支援システムに向けて設計された地理データベースには、改善の余地がある。
【課題を解決するための手段】
【0007】
ADASのための幾何学形状を作成する方法及びシステムを説明する。ソフトウエアルーチンを用いて、道路セグメントのシーケンスであるリンクチェーンが作成される。ソフトウエアルーチンは、関連の機能部類を有する最初の道路セグメントを選択する。各ノードにおいて、ソフトウエアルーチンは、リンクチェーンに追加する次の道路セグメントを選択する。リンクチェーンは、末端ノードを見つけるまで成長し続ける。
リンクチェーンに対して当て嵌めが行われ、2DのB−スプラインが作成される。2DのB−スプラインは、不規則性及びアラインメント問題を補正するために操作される。位置、曲率、勾配、及び/又は車両方位を保持するのに必要のない結び目は、記憶要件を最小にするために削除される。
【0008】
リンクチェーン、最適化された2DのB−スプライン、及び高度データが用いられて、3Dスプラインが作成される。好ましくは、高度データは、車両が道路セグメントによって表される道路上を走行する時に収集されたGPS/IMU記録から得られる。GPS高度の不正確性に対処するために、高度データは、交差ノードの位置で補正される。補正された高度データを用いて、リンクチェーンに対して当て嵌めが行われて高度B−スプラインが作成される。2DのB−スプラインと高度B−スプラインは融合され、3DのB−スプラインが得られる。2DのB−スプラインと同様に、記憶要件を最小にするために位置、曲率、勾配、及び/又は車両方位を保持するのに必要のない結び目は、3DのB−スプラインから削除される。
3DのB−スプライン及び場合によっては2DのB−スプラインは、ベジエ曲線に変換される。ベジエ曲線は、2Dポリラインを効率的に作成して曲率、勾配、及び車両方位を計算するのに用いることができる。ADASアプリケーションは、マップ照合に向けてADAS機能及びポリラインを提供するためにベジエ曲線を用いることができる。
【0009】
これら並びに他の態様及び利点は、適切な場合は添付図面を参照して以下の詳細説明を読解することにより当業者には明らかになるであろう。更に、この要約は例に過ぎず、特許請求する本発明の範囲を限定する意図はないことを理解されたい。
同様の参照番号が様々な図における同様の要素を指す添付図面の図を併用して現時点で好ましい実施形態を下記に説明する。
【図面の簡単な説明】
【0010】
【図1】実施例による地図援用ADASアーキテクチャのブロック図である。
【図2】実施例による図1に描かれたプロセッサに利用可能なソフトウエアアプリケーションのブロック図である。
【図3】実施例による図1に描かれた地理データベースからの道路セグメントデータ記録のブロック図である。
【図4】実施例による図3に描かれた道路セグメントデータ記録におけるデータ属性のブロック図である。
【図5】実施例によりADASのための幾何学形状を作成するための流れ図である。
【図6】例示的なベジエ曲線の図である。
【図7】ベジエ曲線から生成された例示的なポリラインの図である。
【図8】実施例によりリンクチェーンを作成するための流れ図である。
【図9】実施例により2DのB−スプラインを作成するための流れ図である。
【図10】実施例による不整合B−スプライン端の図である。
【図11】実施例による整合B−スプライン端の図である。
【図12】実施例により2DのB−スプラインをリンクチェーンに当て嵌めるための流れ図である。
【図13】実施例による一般的な四葉のクローバー状ランプにおけるランプスプライン形状の図である。
【図14】実施例によるランプノードオフセット法の図である。
【図15】実施例による3DのB−スプラインを作成するための流れ図である。
【図16】実施例による標高補正ルーチンの流れ図である。
【発明を実施するための形態】
【0011】
ADASアーキテクチャ
図1は、地図援用ADASアーキテクチャ100のブロック図を示している。この例では、地図援用ADASアーキテクチャ100は、運転者支援アプリケーション114、並びに地図及び測位エンジン(MPE)116を含む。図1では、MPE116を独立型モジュールとして示しているが、MPE116は、複数のパッケージに分散させることができ、及び/又はセンサパッケージのような他のデバイスパッケージ内に統合することができることを理解されたい。MPE116は、プロセッサ102、測位システム104、地理データベース106、通信システム108、及び車両内データバスインタフェース110を含む。MPE116はまた、メモリ及び電源のような他のハードウエア、ソフトウエア、及び/又はファームウエアを含むことができる。
【0012】
プロセッサ102は、あらゆる種類のプロセッサ、コントローラ、又は他のコンピュータデバイスとすることができる。例えば、プロセッサ102は、デジタル信号プロセッサとすることができる。プロセッサ102は、測位システム104、地理データベース106、通信システム108、車両内データバスインタフェース110、及びその他の供給源からの入力を受信する。次に、プロセッサ102は、一部を図2を参照して説明するアプリケーションソフトウエアプログラム200を用いてこれらの入力を処理する。
【0013】
次に、プロセッサ102は、車両内データバスインタフェース110及びデータバス112を通じて運転者支援アプリケーション114に出力を供給する。好ましくは、車両内データバスインタフェース110及びデータバス112は、自動車用途に向けて設計されたコントローラエリアネットワーク(CAN)インタフェース及びCANバスである。運転者支援アプリケーション114は、適応ヘッドライト照準、適応走行制御、障害物検出、障害物回避、衝突回避、適応変速制御、及びその他を含むことができる。
【0014】
測位システム104は、GPS型技術、推測航法型システム、又はこれらの組合せ、又は当業技術で公知の他のシステムを利用することができる。また、測位システム104は、走行距離、速度、方向、及び姿勢などを測定する適切な感知デバイスを含むことができる。例えば、測位システム104は、GPSシステム及びジャイロスコープを含むことができる。測位システム104は、プロセッサ102に出力信号を供給する。プロセッサ102上で作動するアプリケーションソフトウエアプログラム200の一部は、MPE116の場所、方向、及び姿勢などを判断するのに測位システム104からの出力信号を用いる。
【0015】
地理データベース106は、ADASアプリケーションに向けて設計される。ナビゲーションシステムの地理データベースと同様に、地理データベース106は、地理的領域内の道路及び交差点に関するデータを含む。例えば、地理データベース106は、各道路セグメント(リンクとも呼ぶ)に対して少なくとも1つのデータベース記録(「エンティティ」又は「エントリ」とも呼ぶ)を含む。道路セグメントがB−スプライン曲線又はベジエ曲線で表される時には、道路セグメントデータ記録は、制御点の地理座標(例えば、緯度、経度、及び高度)を与えるデータを含む。道路セグメントの端点(ノードとも呼ぶ)は、最初及び最後の制御点に対応する。更に、道路セグメントデータ記録はまた、B−スプライン幾何学に関する結び目ベクトルを収容することもできる。
道路セグメントが形状点幾何学形状として表される時には、道路セグメントデータ記録は、表される道路セグメントの端点の地理座標(例えば、緯度、経度、及び高度)を与えるデータを含む。曲線セグメントでは、道路セグメントデータ記録は、ポリラインを特徴付けるのに用いられる形状点の地理座標(例えば、緯度、経度、及び高度)を与えるデータも含む。
【0016】
道路セグメントデータ記録に対して、図3を参照してより詳しく説明する。
地理データベース106は、一般的にナビゲーションシステムの地理データベースに含まれるデータよりも高い品質(すなわち、正確な)データを含むことができる。例えば、道路幾何学形状に関して、地理データベース106内のデータは、経度、緯度、及び/又は高度に関してより正確なものとすることができる。また、地理データベース106では、トンネルの開始場所及び終了場所をより正確に指定することができる。更に、地理データベース106内のデータは、曲率のような導出情報に関してより正確なものとすることができる。
【0017】
また、地理データベース106は、一般的に、ナビゲーションシステムの地理データベースに含まれるデータよりも多くの種類のデータ(例えば、多くの種類の属性)を含むことができる。例えば、地理データベース106は、標識及び横断歩道のような道路物体に関するデータを道路セグメントに沿ったこれらの位置、標識物体種類、及び標識テキストを含めて含むことができる。地理データベース106内に見られるデータ属性の一部に対して、図4を参照して説明する。
【0018】
図2は、プロセッサ102に対して利用可能なソフトウエアアプリケーション200の一部を示しているブロック図である。図2に示しているソフトウエアアプリケーション200は、地図アクセスアプリケーション202、地図更新アプリケーション204、車両測位アプリケーション206、電子視野アプリケーション208、及びインタフェースアプリケーション210を含む。これは、プロセッサ102に対して利用可能な全てのソフトウエアアプリケーション200の網羅的なリストではないので、図2は、始動ルーチン、及び自己試験診断などを含むことができる他のアプリケーション212も示している。
【0019】
地図アクセスアプリケーション202は、物理的記憶媒体上に記憶された地理データベース106へのデータアクセスを提供する。地図アクセスアプリケーション202は、プロセッサ102からデータ要求を受信し、この要求に応じるデータを物理的記憶媒体上で探し出す。好ましくは、地図アクセスアプリケーション202は、プロセッサ102及び/又はアプリケーション200による使用に向けて、アプリケーションプログラミングインタフェース(API)を提供する。
【0020】
地図更新アプリケーション204は、地理データベース106に対する更新を容易にする。通信システム108は、既存のデータベースに付加的な受信範囲を追加するか、又は既存のパーセルを置換するかのいずれかを行う1つ又はそれよりも多くのパーセルを受信する。パーセルは、物理的記憶媒体上の地理データベース106内に地理データを記憶するための記憶単位である。新しいパーセルに対しては、地図更新アプリケーション204は、物理的記憶媒体上にこのパーセルを記憶する。既存のパーセルに対しては、地図更新アプリケーション204は、物理的記憶媒体上の古いパーセルを新しいパーセルで置換する。
車両測位アプリケーション206は、地理データベース106内に含まれるデータによって表される道路網に対する車両の位置を判断する。車両測位アプリケーション206は、測位システム104からの出力を用い、時によってマップ照合アルゴリズムと呼ぶ車両測位アルゴリズムを用いて、この出力を地理データベース106内のデータと照合する。
【0021】
電子視野アプリケーション208は、電子的視野を判断する。電子的視野は、電子視野アプリケーション208によって判断される範囲の現在の車両位置から前方の道路及び交差点の集合である。この道路及び交差点の集合は、車両が現在の車両位置から辿ることができる潜在的な経路である。電子視野アプリケーション208は、1つ又はそれよりも多くのコスト関数を用いて範囲を判断する。コスト関数は、運転者支援アプリケーション114の要求に基づいて、車両速度、走行時間、及び運転距離のような様々な要因を考慮に入れることができる。例示的な電子視野アプリケーションは、本出願と同じ出願人に譲渡され、本明細書においてその全内容が引用により組み込まれている米国特許第6、405、128号に説明されている。
【0022】
インタフェースアプリケーション210は、インタフェース110及びバス112を通じたMPE116と運転者支援アプリケーション114の間の通信を制御する。好ましくは、インタフェースアプリケーション210は、車両内の様々な電子デバイス間で通信を行うためのシリアル通信プロトコルであるCANプロトコルに基づいている。メッセージ及びデータを車両内の1つの電子デバイスから別のものへと送信することができるように、CANプロトコルに従って車両内の様々な電子デバイスを単一のシリアルバス(例えば、バス112)に結合することができる。CANプロトコルは、CANフレームが共通CANバス上に置かれるメッセージベースのプロトコルである。CANバスは、単一のワイヤ又は差動的に駆動されるワイヤ対とすることができる。
【0023】
図3は、地理データベース106からの道路セグメントデータ記録300のブロック図である。道路セグメントデータ記録300は、道路の一部分を表すために用いられるデータを含む。これらのデータは、セグメントの端点の緯度、経度、及び高度の座標位置を示すノードデータ302、304を含む。
また、データは、直線又は曲線セグメントの形状を表すために用いることができる制御点の緯度、経度、及び高度の座標位置を示す制御点データ306、308を含む。図3には2つの制御点に関するデータを示しているが、セグメントは、1つよりも多くの曲線を含むことができ、制御点数は、セグメント内の曲線の数及び形状に依存するものとすることができることを理解されたい。例えば、各3次ベジエ曲線は、4つの制御点によって表されるが、前のベジエ曲線の最後の制御点は、次のベジエ曲線の最初の制御点と同じである。道路セグメントデータ記録300は、ベジエ曲線の数を3倍し、1を足した数に等しい数の制御点に関するデータを記憶する。
【0024】
更に、データは、セグメントに関する属性310を含む。セグメントの属性310の一部を図4に示す。同様に道路セグメントデータ記録300は、形状点データのような追加データを含むことができる。
図4は、道路セグメントデータ記録300におけるデータ属性310の一部のブロック図である。図4に示しているデータ属性310は、セグメント識別子(ID)402、制御点404、走行方向406、速度カテゴリ408、車線カテゴリ410、道路種類412、セグメント特性414、及び通行特性416を含む。これは、道路セグメントデータ記録における全てのデータ属性の網羅的なリストではないので、図4は、他の属性418も示している。例えば、セグメントデータ属性400は、セグメントの端点302、304に対応するノードIDの形態のノードデータ記録への参照子を含むことができる。
セグメントID402は、地理データベース106内のデータ記録を識別する。
【0025】
制御点属性404は、曲率及び勾配プロフィールの作成を助ける制御点に関する追加情報を提供するビットフラグを収容する。例えば、制御点属性404は、制御点毎にバイトサイズのフラグを含むことができる。フラグ内のビットのうちの1つは、曲率に割り当てられ、一方、ビットのうちの別のものは、勾配に割り当てられる。曲率ビットフラグが1に設定された場合には、制御点は、曲率プロフィールの一部としてマーク付けされる。同様に勾配ビットフラグが1に設定された場合には、制御点は、勾配プロフィールの一部としてマーク付けされる。
【0026】
走行方向属性406は、セグメントにおいて許可される車の流れの方向を表している。例えば、セグメントは、道路網のうちで走行が双方向に許された部分を表すことができる。代替的に、セグメントは、道路網のうちで一方向の走行だけを可能にする部分を表すことができる。走行方向属性406は、セグメントが双方向走行又は単方向走行のいずれを可能にするのかを識別し、単方向の場合には、走行方向属性406は、許可された走行方向を更に識別する。
【0027】
速度カテゴリ属性408は、掲示又は示唆された速度制限に基づく道路の一般的な速度傾向を表している。速度カテゴリ属性408は、速度範囲に関連するデータを含む。例えば、速度カテゴリ属性408は、80mphを超える速度に対して整数1、65mph〜80mphの範囲の速度に対して整数2、55mph〜64mphの範囲の速度に対して整数3、及び速度範囲が0mphを含むまで以降同様に続くデータ表現を含むことができる。
【0028】
車線カテゴリ属性410は、セグメントにおける1つの走行方向の主な車線数を表している。好ましくは、車線カテゴリ属性410は、右左折車線を含まない。車線数が各方向において異なる場合には、車線カテゴリ属性410は、大きい方の数を表すことができる。
道路種類属性412は、道路の種類及び/又はセグメントが表す機能部類を表している。例えば、道路種類属性412は、州間高速道路、通行制御高速道路、歩行者通路等に関連付けられたデータを含むことができる。
【0029】
セグメント特性属性414は、様々なセグメント特性を説明するビットフラグを含む。例えば、セグメント特性属性414は、セグメントが舗装されているか、ランプであるか、橋であるか、トンネルであるか、及び環状交差点であるかなどを識別することができる。
アクセス特性属性416は、セグメントにおいて許可される交通の種類を定めるビットフラグを含む。例えば、アクセス特性属性416は、セグメントにおいて自動車、バス、トラック、タクシー、緊急車両、及び歩行者等が許可されているか否かを識別することができる。
【0030】
MPEのための幾何学形状の作成
図5は、MPE116のための幾何学形状を作成する方法500の流れ図である。ブロック503では、方法500は、並列処理を可能にするために地理データベース502をタイルへと再分割する。地理データベース502は、地理データベース106又は地理データベース106内のデータを含む異なるデータベースとすることができる。
これらのタイルは、各タイルがほぼ等量のノード及び形状点を含むように形成される。地図表面は、細かい(約2km×2km)セルを有する架空の2D矩形格子によって覆われる。次に、地理データベース502内のノード及び形状点を格子上にマップすることによってノード及び形状点の密度が計算される。タイルは、格子セルから組み立てられる。
各タイルがほぼ等しい数のノード及び形状点を有することを保証するために、格子全体は、水平及び垂直の両方の方向の格子線に沿って半分に再帰的に再分割され、2つの分割区分の各々が等しい数の幾何点を含むようにする。この処理は、タイルが、所定の閾値よりも少ない量のノード及び形状点を含むまで続く。各再分割の方向は、タイルのアスペクト比を最小にするように選択される。
【0031】
ブロック504では、方法500は、地理データベース502からのデータを用いて各タイル内でリンクチェーンを作成する。リンクチェーンは、各々が同じ道路種類属性412を有するセグメントのシーケンスである。好ましくは、セグメントシーケンスは、可能な限り長く作られる。リンクチェーンは、セグメント境界を横切る滑らかさを保証するB−スプライン当て嵌めを実施するのに用いられる。リンクチェーン504を作成する処理に対しては、図8に関連してより詳しく説明する。
【0032】
ブロック506では、方法500は、ブロック504で作成されたリンクチェーンを用いて2DのB−スプラインを作成する。ブロック508では、方法500は、ブロック504で作成されたリンクチェーン、ブロック506で作成された2DのB−スプライン、及び高度データ507を用いて3DのB−スプラインを作成する。好ましくは、高度データ507は、道路セグメントによって表される道路上を車両が走行する時に収集されるGPS/IMU記録から得られる。しかし、高度データ507は、他の供給源及び/又はセンサから得ることができる。2DのB−スプライン506を作成する処理に対しては、図9に関連して説明し、一方、3DのB−スプライン508を作成する処理に対しては、図15及び図16に関連して説明する。
【0033】
スプラインは、曲線区間を表して区間の境界において指定の条件を満たす区分的多項式関数で形成されるあらゆる複合曲線を指す。すなわち、B−スプラインを含む多くの種類のスプライン曲線が存在する。B−スプラインは、制御点及び結び目を有する。結び目は、多項式スプライン曲線の個々の多項式曲線セグメントが互いに接合する点である。セグメントは、完全な曲線の滑らかさを生じるように接合される。結び目ベクトルは、スプライン曲線に沿ってセグメントが開始及び終了する点を説明する非減少浮動小数点数の序列リストである。スプラインは、当業技術で公知である。
【0034】
スプラインを用いると、道路のカーブしている部分を含む地図特徴は、望ましい精度で地理特徴の形状に適合する曲線を生成するように判断された係数を有する多項式によって表される。従って、スプラインは、多項式の係数を指定することにより、基本的道路幾何学形状を説明するための手段である。米国特許第7、084、882号に説明されているように、スプラインは、ナビゲーションシステムのデータベースにおいて道路セグメントの形状を表すのに用いられている。米国特許第7、084、882号は、本出願と同じ出願人に譲渡されており、本明細書に引用によって組み込まれている。
【0035】
ブロック510では、2DのB−スプライン及び3DのB−スプラインをベジエ曲線に変換することができる。セグメントが高度データを持たない場合には、2DのB−スプラインは、ベジエ曲線に変換される。しかし、セグメントが高度データを確実に有する場合には、2DのB−スプラインは、ブロック508で3DのB−スプラインを作成することだけに用いることができる。
3次ベジエ曲線は、2つの端点及び曲線に対する接線に沿って位置決めされたこれらの端点における2つの追加制御点によって定められる。3次ベジエ曲線式は、ベクトル形式で次式のように書くことができる。
【0036】
【数1】
【0037】
ここで、P0、P1、P2、及びP3は制御点であり、tはパラメータである。ベジエ曲線は、公知の方法を用いてB−スプライン曲線から導出することができる。
【0038】
スプライン幾何学は、道路セグメント幾何学形状を表す上では有利であるが、MPE116におけるB−スプラインの使用は、車両測位及び電子視野アプリケーション206、208における計算要件を増大させる。解析的なB−スプライン幾何学は、車両測位アプリケーション206によるポリライン表現及び電子視野アプリケーション208による電子視野の実時間導出を容易にするためにベジエ表現に変換される。
【0039】
ブロック512では、車両測位アプリケーション206が、2Dポリライン表現を実時間で導出することができるように、ベジエ曲線は分割される。方法500は、道路幾何学形状が、弦から最も遠い点が弦線上に投影される時にこの点が弦の内側に収まるようなベジエ曲線を有することを仮定する。ベジエ道路幾何学形状は、図6に示しているように、ベジエ曲線から、この曲線の端点302、304を結ぶ線(すなわち、制御多角形の基本弦:
【0040】
【数2】
【0041】
)までの最も遠い距離(又は複数の距離)にある1つの点600(又は場合によっては1つよりも多くの点)を識別した後に分割される。図6では、最も遠い距離が、一般的に、曲線の中心にはないことも分る。
【0042】
最適な再分割点600は、ベジエ曲線上で制御多角形の基本弦から最も遠い点である。点600の位置は、点600におけるベジエ曲線に対する2Dの接線B(t)が弦に対して平行であるという条件から解析的に得られる。
【0043】
【数3】
【0044】
上記表現は、パラメータtに関する2次方程式へと簡略化される。一般的なベジエ曲線では、この2次方程式は、パラメータtが定められる間隔[0〜1]内に実根を有することができない。しかし、穏やかな挙動を示すベジエ曲線では、2次方程式は[0〜1]間隔内に1つ又は2つの実根を有することになる。2次方程式が2つの実根を有する場合には、2つの再分割点が2つの点でベジエ曲線を分割するように用いられる。点600が得られた状態で、ベジエ曲線は、デ・カステリョの再分割アルゴリズムを用いて2つに分割される。得られるベジエ曲線は、地理データベース106に記憶される。
ブロック514では、車両測位アプリケーション206は、2Dポリライン表現を実時間で導出する。ポリライン表現の例700を図7に示す。車両測位アプリケーション206は、ベジエ曲線の端点702を結び、その一方で内部制御点704を無視することによってポリライン表現700を導出する。
【0045】
リンクチェーンの作成
図8は、リンクチェーンを作成する方法800の流れ図である。リンクチェーンを作成する方法800は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
ブロック802では、リンクチェーンルーチン800は、リンクチェーンを開始するセグメントを選択する。各セグメントは2つのノード(端点とも呼ぶ)を有する。全てのノードが交差点にあるわけではない。例えば、一部のノードは、道路属性の変化を符号化するのに用いられる。
【0046】
ブロック804では、リンクチェーンは、隣接するセグメントを含めることによって両方の方向に成長する。ブロック806では、リンクチェーンルーチン800は、ノードが末端であり、そのノードにおいてその方向にリンクチェーンが終了されるかを判断する。リンクチェーンルーチン800は、ノードが末端であるかを判断するために規則を用いる。ノードを通じてリンクチェーンを進めるべきか(すなわち、非末端ノード)を判断するための規則は、以下のものを含むことができる。
1.リンクチェーン内の2つの隣接セグメントが、共通ノードを有するべきである。
2.リンクチェーン内のセグメントは、同じ機能部類に属さなければならない。
3.セグメントは、1つのリンクチェーン内だけに含まれるべきである。
4.各セグメントは、リンクチェーン内に含まれるべきである。
5.環状交差点セグメント(すなわち、環状交差点属性414に関連付けられたセグメント)を含むリンクチェーンは、通常のセグメントを含んではならない。
6.2つのセグメント間の角度が所定の閾値を超える場合には、これらのセグメントは、リンクチェーンを形成してはならない。この規則は、環状交差点チェーンには適応可能ではない。
7.ノードは、少なくとも2つのリンクに接続する。
末端ノードを識別するための他の規則を用いることもできる。ブロック806においてリンクチェーンルーチン800が末端ノードを識別した場合には、リンクチェーンルーチン800は、ブロック814においてリンクチェーンを成長させるのを終了する。
【0047】
ブロック806においてリンクチェーンルーチン800が末端ノードを識別しなかった場合には、リンクチェーンルーチン800は、ブロック808でノードを通じる最適経路を判断する。各ノードにおいて、リンクチェーンルーチン800は、リンクチェーンに追加することができるノードを通じた可能な経路を識別する。
ブロック810では、リンクチェーンルーチンは、各識別された可能な経路に対する経路重みを計算する。経路重みは、車線カテゴリ属性410、道路種類属性412、並びにノードからの経路の角度、及びセグメントによって表される道路上に保護レールが設けられているか否かのような他の属性418を用いて判断される。更に、経路重みは、交差点を通じた方向変化量を制限するように判断される。
【0048】
リンクチェーンを継続するのにどの経路を用いるかを判断する1つの方法は、リンク間角度及びリンク間の車線数差という2つの要因の組合せに基づいている。リンクチェーンが新しいリンクに継続される確率は、次式に従って判断することができる。
【0049】
【数4】
ここで、
【数5】
及び
【数6】
【0050】
ここで、角度は、度を単位とするリンク間角度であり、Δ車線#は、リンク間の車線数差(10を超えない)である。
2つよりも多くのリンクが交差するあらゆるノードにおいて、規則に準ずるリンクチェーンを形成する可能な方法は、計算された確率に従って比較及び順位付けされ、最適な選択肢が選択される。従って、リンクチェーンの形成は、リンクチェーンが作成される順序には依存しない。
【0051】
ブロック812では、リンクチェーンルーチン800は、ブロック810で計算された経路重みに基づいて、このノードを通じて継続を行うか否かを判断する。リンクチェーンルーチン800が、このノード通じて進むように判断した場合には、最も高い重みを有する経路が選択され、ブロック804でリンクチェーンに追加される。そうでなければ、リンクチェーンルーチン800は、ブロック814でリンクチェーンを成長させるのを終了する。
【0052】
ブロック816では、リンクチェーンルーチン800は、1つの操作で曲線当て嵌めを行うには長すぎるリンクチェーンを分割する。この判断は、チェーンの長さ(例えば、長さが25kmを超える)、ノード及び形状点の合計数(例えば、5000を超える)、及び/又は他の要因に基づいて行うことができる。好ましくは、リンクチェーンルーチン800は、ポリライン長さの中間部の近くで、リンクチェーンポリラインが可能な限り直線のところでリンクチェーンを分割する。
【0053】
両方の目的を達成するために、リンクチェーンルーチン800は、リンクチェーンの中間部の最も近くに位置するノードから開始して両方の方向に検索を開始する。考察対象のあらゆるノードに対して、リンクチェーンルーチン800は、ノードの周囲に窓を構成し、このノードが比較的直線のセグメント内に位置するかを判断する。リンクチェーンルーチン800は、内部点を2つの端点で形成されたセグメント上に投影し、点からセグメントまでの距離が閾値を超えず、これらの内部点が、セグメントの内部に投影されることを検証することによってセグメントが直線であるかを判断する。リンクチェーンルーチン800は、目的を満たすノードを見つけるまで、両方の方向に検索し続ける。リンクチェーンルーチン800は、分割に適するノードが見つからなかった場合には、直線セグメントの基準を緩和し、再度検索を繰り返す。
【0054】
2DのB−スプラインの作成
図9は、リンクチェーンから2DのB−スプラインを作成する方法900の流れ図である。方法800と同様に、2DのB−スプラインを作成する方法900は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
ブロック902では、2DのB−スプラインルーチン900は、方法800によって作成されたリンクチェーンを2DのB−スプラインに当て嵌める。2DのB−スプラインルーチン900は、2DのB−スプラインを単一のリンクチェーンであり、可能な場合はこのチェーンに隣接するリンクチェーンからのデータ点を両方の端に含むリンクチェーンに当て嵌める。隣接するリンクチェーンからのデータ点を含めることにより、2DのB−スプラインルーチン900は、連続する曲線当て嵌めを重ね合わせ、それによって曲線当て嵌め間の境界における形状整合性を保証することができる。隣接するリンクチェーンからのデータ点をどの場合に用いるべきかに関する判断は、規則によって制御される。環状交差点は、隣接するリンクチェーンからのデータ点が用いられない場合の例である。隣接するリンクチェーンの重複は、大きい場合がある(一般的に、数キロメートル)。
【0055】
2Dの曲線当て嵌め技術は、指定の曲線当て嵌め許容範囲に基づいて最適な局所曲線堅牢性を反復的に判断する。2DのB−スプラインルーチン900は、変分法を用いてスプラインに沿った曲率変化を最小にすることによってスプライン当て嵌めを正則化する。曲線当て嵌めは、次の汎関数を最小にすることによって実行される。
【0056】
【数7】
【0057】
式1:曲線当て嵌め最小化汎関数、ここで、vj(s)は、反復数[j]において曲線に沿って変化する正則化量を表している。vj(s)は、曲線に沿った弧長の関数として連続関数とすることができ、又はスプラインの各曲線セグメントに対する固有値のように離散的に実施することができる。
【0058】
積分:
【数8】
は、当て嵌められた曲線に沿った曲率変化を表している。曲率変化を最小にする正則化関数は、代替的に、
【数9】
で表すことができる。最小二乗項:
【数10】
は、当て嵌められた曲線とデータ点の間の偏差を示している。全体として、曲線当て嵌め最小化汎関数は、データ点からの偏差を最小にする一方、基本的道路幾何学形状を取り込むデータ点との対応を保ちながら、曲率が可能な限り小さく変化することを保証する。ブロック902におけるリンクチェーンへの2Dスプライン当て嵌めに対しては、図12を参照してより詳細に説明する。
【0059】
ブロック904では、2DのB−スプラインルーチン900は、タイル内で不整合なB−スプライン端を整合化する。スプライン当て嵌めは重複するが、出会わないB−スプライン端1002、1004を示している図10に示しているように、得られるB−スプラインの全てがノードにおいて完全に接合するわけではない。図11に示しているように2つのB−スプラインをノード1100で整合化するためには、これらのB−スプライン端が、XY平面内の共通点において、平滑な接線及び曲率(すなわち、C2連続性)を有しながら出会うようにこれらの端を整合化するべきである。
【0060】
B−スプライン端を整合化するために、2DのB−スプラインルーチン900は、パッチB−スプラインを用いて2つのB−スプライン間の平滑な移行を作成する。2DのB−スプラインルーチン900は、不整合B−スプライン端1002、1004の間のパッチB−スプライン上に中間点を投影する。2DのB−スプラインルーチン900は、パッチB−スプラインを分割し、結び目ベクトルを融合してパッチB−スプラインの各半分が不整合B−スプラインに適合するようにする。2DのB−スプラインルーチン900は、既存のB−スプライン形状を置換するパッチB−スプラインに対するパラメータ範囲を判断し、置換領域において再分割されたパッチB−スプラインからこれらのB−スプラインに制御点を複写する。2DのB−スプラインルーチン900は、良好なB−スプライン品質(例えば、位置、車両方位、曲率誤差において誤差許容範囲の)を保証しながら、あらゆる不用な結び目(例えば、B−スプラインを適合化する結び目融合段階に起因する)を削除する。
【0061】
ブロック906では、2DのB−スプラインルーチン900は、タイル境界を跨ぐB−スプラインを整合化する。タイル間のB−スプラインは、ブロック904を参照して説明したものと同様の方式で整合化される。この整合化では、第1のB−スプラインに対する曲線当て嵌めは、1つのタイル内にあり、第2のB−スプラインに対する曲線当て嵌めは、隣接タイル内にあり、パッチB−スプラインは、タイル境界を横切って当て嵌めが行われる。タイルを横切ってのB−スプライン整合化は、タイル境界において継ぎ目のないC2のB−スプライン接合部を作り出す。
【0062】
ブロック908では、2DのB−スプラインルーチン900は、3つ又はそれよりも多くの道路が出会う交差点におけるB−スプライン端を整合化する。各交差点において、2DのB−スプラインルーチン900は、自己交差点を含む交差リンクチェーンB−スプラインを探し出す。自己交差B−スプラインを含む2つのB−スプラインの交差点を識別する技術は、当業技術で公知である。交差するB−スプラインの各々に対して、2DのB−スプラインルーチン900は、交差点を十字路B−スプライン(すなわち、4つのセグメントが単一のノードで出会う)、T字路、又は複合交差点(すなわち、4つよりも多くのセグメントが単一のノードで出会う)として分類する。2DのB−スプラインルーチン900は、これらの道路を表すB−スプラインを共通ノードにおいて接合する。
【0063】
ブロック910では、2DのB−スプラインルーチン900は、スプラインにおける最適な分割場所を判断する。ノードが交差点ではない場合には、2DのB−スプラインルーチン900は、ノードをリンクチェーンのB−スプライン上に投影し、分割場所を識別する。ノードが交差点ノードである場合には、2DのB−スプラインルーチン900は、ブロック908を参照して説明した交差点分類に基づいて最適な分割場所を判断する。
【0064】
ブロック912では、2DのB−スプラインルーチン900は、ブロック910で判断された分割場所を用いてノードにおいてリンクチェーンのスプラインを分割し、各セグメントに対して1つの個々のB−スプラインを形成する。十字路B−スプラインでは、2DのB−スプラインルーチン900は、スプラインをこれらのスプラインが交差する場所で分割し、道路が出会う共通の端点を作成する。
T字路では、近似B−スプライン曲線当て嵌め技術の性質に起因して、2つのリンクチェーンB−スプラインは、T字路で交差するか又は交差しない可能性がある。交差するT字路リンクチェーンのB−スプラインでは、2DのB−スプラインルーチン900は、あらゆる重複区間を切り取って廃棄する。非交差のT字路では、2DのB−スプラインルーチン900は、繋ぐ側の道路に対する終端B−スプラインを主道路リンクチェーンのB−スプラインに延長又は短絡させる(すなわち、曲げる又はシフトする)ことによって交差点の場所を作成する。主道路B−スプラインは、終端B−スプラインが延長及び短絡の後に主道路B−スプラインに接合する場所で分割される。B−スプラインの形状又は位置を延長及び調節するための技術は当業技術で公知である。
【0065】
4つよりも多くのセグメントが単一のノードで出会う多重リンク交差点に対して、2DのB−スプラインルーチン900は、セグメントが共通ノードで出会うように2Dスプライン幾何学形状を調節する。B−スプラインの局所サポート、及びこれらのB−スプラインがアフィン変換に対して不変量であるという事実に起因して、B−スプラインは、形状及び位置の調節に非常に適するものにされる。B−スプライン幾何学形状を調節するための技術は、当業技術で公知である。
【0066】
各多重リンク交差点に対して、2DのB−スプラインルーチン900は、交差点ノードの共通の2Dの場所を判断する。最適な場所は、交差点幾何学形状、複雑度、及び周囲のリンク接続性に依存する。次に、B−スプラインの局所的な曲率又は車両方位の品質に影響を与えずにこれらのスプラインを整合化するために、交差点の近くでB−スプラインはシフトされるか、又はこれらのスプラインの2Dの形状が調節される。調節段階の後に、2DのB−スプラインルーチン900は、共通の交差点の場所においてB−スプラインを分割する。
【0067】
ブロック914では、2DのB−スプラインルーチン900は、2Dの曲率情報を2DのB−スプライン内に符号化する。符号化された曲率情報は、B−スプラインに沿って、曲率が弧長に対して線形に変化する場所を識別する。B−スプライン上で符号化された場所の各対の間では、各区間で曲率が弧長に対して線形に変化するので、曲率は、線形「クロソイド」と見なされる。これらのクロソイドの場所は、最初に、弧長の関数としての曲率のグラフであるB−スプラインに関する「曲率プロフィール」を作成することによって判断される。次に、曲率プロフィールは、線形曲率区間によって曲率プロフィールを近似するために、ポリラインによって近似される(Douglas−Peukerアルゴリズムに基づいて)。B−スプラインに沿ったポリラインの頂点の場所は、これらの場所にタグ付き結び目を挿入することによってB−スプライン内に符号化される。
【0068】
ブロック916では、2DのB−スプラインルーチン900は、結び目ベクトルを最適化する。ブロック902における曲線当て嵌め中に用いられる結び目ベクトルは、結び目数及び結び目の間隔に関して必ずしも最適ではない。結び目ベクトルは、2Dの位置、形状、車両方位、及び曲率の品質を維持しながら、物理的記憶媒体上の記憶スペースを最小にするように最適化される。
2DのB−スプラインルーチン900は、ブロック914で判断された2DのB−スプラインに沿った対応するクロソイドセグメント(すなわち、線形曲率領域)を識別することによって最適な結び目配置を探し出す。長いクロソイドセグメントは、等しい弧長間隔で結び目を挿入することによって近似することができる。これらの追加結び目は、長いクロソイドセグメントを単一の結び目スパンを用いて正確に表すことができない場所でB−スプライン曲線の形状を維持する。
【0069】
2DのB−スプラインルーチン900は、ブロック914で曲率を符号化するのに用いられなかったあらゆる結び目、又は元のB−スプラインの2Dの位置、形状、車両方位、及び曲率の許容範囲にこのB−スプラインを保つのに必要とされないあらゆる結び目を削除する。一般的に、最適な結び目間隔は、曲率に反比例する(すなわち、曲率が大きい程、結び目はより近く離間される)。
【0070】
リンクチェーンへの2D曲線当て嵌め
図12は、2DのB−スプライン曲線当て嵌めルーチン1200の流れ図である。ブロック1202では、2DのB−スプライン曲線当て嵌めルーチン1200は、曲線当て嵌め中に撓み及び振動のような曲線形状不規則性を防止する。例示的な防止段階は、直線形状を維持し、撓まない又は振動しないように曲線を拘束するためのリンクチェーンのうちで直線と分類される区間内への「仮想」形状点の挿入を含む。
【0071】
ブロック1204では、2DのB−スプライン曲線当て嵌めルーチン1200は、ある一定の機能部類のリンクチェーン(例えば、高速道路、主要幹線)又は折り返しリンクチェーンを除く全ての道路に対するリンクチェーン内であらゆる捩れが存在するかを判断する。形状点は、この形状点で出会うリンクセグメントの間の角度が「捩れ」閾値を超えた場合に、「捩れ」として識別される。例えば、捩れ閾値は、35度に設定することができる。
【0072】
捩れを表すスプライン曲線では、曲線は、捩れの場所で不連続導関数(すなわち、C0連続性のみ)を有する。ブロック1204においてリンクチェーン内に1つ又はそれよりも多くの捩れが検出された場合には、ブロック1206において、2DのB−スプライン曲線当て嵌めルーチン1200は、各リンクの場所においてリンクチェーンを捩れの間の個々の部分リンクチェーンに分割する。リンクチェーン内に捩れが存在しない場合には、ブロック1218において、リンクチェーン全体に対して2Dスプライン当て嵌めが実施される。
【0073】
ブロック1208では、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック902を参照して説明した2D曲線当て嵌め技術を用いて、部分リンクチェーンの各々に対して2DのB−スプラインで曲線当て嵌めを行う。得られるスプライン曲線は、捩れの場所においてC0連続性を有しながら出会う。
ブロック1210では、リンクチェーンは、ここでは複数のスプラインによって表されるので、2DのB−スプライン曲線当て嵌めルーチン1200は、部分リンクチェーンを単一のスプラインへと互いに縫合する。個々のB−スプライン曲線を単一の連続B−スプライン曲線へと接合するために、2DのB−スプライン曲線当て嵌めルーチン1200は、3次不均一B−スプラインが曲線上のこの曲線が捩れる場所(すなわち、この曲線がC0連続性のみを有するところ)で結び目多重度3を有するという不均一B−スプラインの性質を利用する。
【0074】
B−スプライン曲線は、一度に1つ追加され、従って、複数のB−スプライン曲線を接合することが望ましい場合は、この接合は、最初の曲線に第2の曲線を追加して単一の曲線を形成し、この単一の曲線に対して次の曲線を追加することができ、以降同様に続けることによって達成される。B−スプライン曲線を接合するための技術は、当業技術で公知である。共通端点を有する2つの不均一3次B−スプライン曲線は、これらの曲線の制御点配列を連結し、それらの結び目ベクトルを追加することによってC0連続性を有しながら接合することができる。
【0075】
ブロック1212では、2DのB−スプライン曲線当て嵌めルーチン1200は、B−スプライン形状不規則性を補正する。B−スプライン形状不規則性は、撓み及び振動を含むことができるが、ノイズの多い曲率のような他の曲線不規則性が存在する領域を含むことができる。不規則性は、セグメントの曲線を定めるのに不十分な形状点しか用いられない場合、又は道路セグメントが劣悪に配置された形状点しか持たない場合に発生する可能性がある。B−スプラインが直線ではなく、基本的な道路幾何学形状が仮想形状点を追加した後には直線であることが既知である場合には、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック1212において、B−スプラインを直線化するために制御点を操作することができる。ノイズの多い曲率領域を平滑にするのに同様の技術を用いることができる。
【0076】
ブロック1204に戻ると、リンクチェーンが捩れを持たない場合には、ブロック1214において、2DのB−スプライン曲線当て嵌めルーチン1200は、リンクチェーンがあらゆる端にランプを含むかを判断する。リンクチェーンがランプを含む場合には、ブロック1216において、2DのB−スプライン曲線当て嵌めルーチン1200は、正しいランプ形状及び曲率を保証するために、端ノード及び形状点のランプオフセットを実施する。図13に示しているように、ランプが自動車専用道路上に合流するランプ端において正しい方位及び曲率を得るために、スプライン当て嵌めにおいて、ランプリンクチェーンのノード及び形状点に加えて自動車専用道路のノード及び形状点が用いられる。
【0077】
2DのB−スプライン曲線当て嵌めルーチン1200は、スプライン当て嵌めに向けて以下の通りにランプを通じる点を編成する。
1.リンクチェーンがランプで始まるのか、又は終わるのかを判断する。
2.ランプリンクチェーンと自動車専用道路との間で共通するノードを識別する。
3.ランプリンクチェーンが一部の自動車専用道路で終わる場合には、自動車専用道路リンクセグメントとランプリンクセグメントの間の角度、及び機能部類に基づいて対応する自動車専用道路を選択する。
4.自動車専用道路リンクセグメントとランプリンクセグメントの間の角度が、閾値(例えば、50度)を超える場合には、スプラインは、自動車専用道路形状点を通じて当て嵌められない。
5.自動車専用道路リンクセグメントとランプリンクセグメントの間の角度が、閾値(例えば、50度)よりも小さい場合には、ランプ形状が自動車専用道路形状に追従することを保証するために、自動車専用道路点を編成することによってスプライン当て嵌めは自動車専用道路内に延長される。
6.ランプノード及び場合によっては自動車専用道路点は、図14に示しているように車線幅に対処するようにオフセットされる。ランプの端ノード及び場合によっては隣接ノード/形状点は、ランプリンクチェーン、及び後のスプラインが、自動車専用道路の中心線への不自然な接続ではなく、ランプから自動車専用道路車線への実際の自動車経路を辿るようにシフトされる。
7.編成されてオフセットされたノード及び形状点にスプラインを当て嵌める。
8.ブロック912で自動車専用道路ノードにおいてスプラインを切り取る。
【0078】
図14に示しているランプオフセットベクトル1402の長さは、既知又は推定の自動車専用道路幅に依存する。推定幅は、自動車専用道路の車線数、自動車専用道路の走行方向制限(すなわち、一方向又は双方向)、及びランプにおける車線数(ランプは常に一方向であると仮定される)に基づいて判断される。ランプスプラインが自動車専用道路の中心線に向って歪むのを回避するために、2DのB−スプライン曲線当て嵌めルーチン1200は、ランプの内部形状点及び/又はノードが、オフセットされた自動車専用道路/ランプ共通ノードよりも自動車専用道路の中心線に近くないことを保証する。ランプの内部形状点及び/又はノードの一部が近い場合には、2DのB−スプライン曲線当て嵌めルーチン1200は、ランプ/自動車専用道路交差点ノードから分離する自動車専用道路リンクセグメントに対して平行な線であり、交差点ノードをオフセットすることによって生じる想像ノードを通過する線上にランプの内部形状点及び/又はノードを投影する。図13は、一般的な四葉のクローバー状ランプにおいて得られるランプスプライン形状を示している。
ブロック1218では、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック902を参照して説明したように、リンクチェーンに2DのB−スプラインを当て嵌める。ブロック1212では、2DのB−スプライン曲線当て嵌めルーチン1200は、上述のようにB−スプライン形状不規則性を補正する。
【0079】
ブロック1214に戻ると、リンクチェーンがランプではない場合には、ブロック1220において、2DのB−スプライン曲線当て嵌めルーチン1200は、リンクチェーンが環状交差点であるかを判断する。リンクチェーンが環状交差点である場合には、ブロック1222において、2DのB−スプライン曲線当て嵌めルーチン1200は、環状交差点を3周回するようにリンクチェーンを延ばす。環状交差点に対する複数周回のスプライン当て嵌めは、水滴形の環状交差点幾何学形状を防止する。その後、ブロック912において、重複環状交差点スプラインの適切な区間が切り取られて、環状交差点に対する個々のスプラインが得られる。
【0080】
3DのB−スプラインの作成
図15は、3DのB−スプラインを作成する方法1500の流れ図である。3DのB−スプラインを作成する方法1500は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
3DのB−スプラインは、2DのB−スプライン(2DのB−スプラインルーチン900を用いて得られる)を1Dの標高スプラインと組み合わせることによって作成される。1Dの標高スプラインは、車両において収集されたGPSデータにスプラインを当て嵌めることによって作成される。3Dスプラインを必要とする道路を収集車両を用いて運転することにより、大量の順次データ点(緯度、経度、高度、車両方位、勾配、及び/又は速度データが関連付けられたもの)がもたらされる。絶対的及び相対的な地理的場所の精度を維持するために、データ点は、GPS及び慣性測定ユニット(GPS/IMU)を用いて収集される。高度点データセットは、あらゆるデータ異常を削除するためにフィルタリング及び調節される。フィルタリングは、給油停車、オフロード運転、及び方向転換操縦等に起因するあらゆる外生データを除去する。次に、データセットは、空間及び時間連続性に基づいて小さいデータセットへとまとめられる。
【0081】
ブロック1502では、記憶及びデータセット間の地理参照を容易にするために、高度点は、既知の幾何学形状の2D道路中心線のデータベース上にこれらの高度点を投影する(2DのXY投影を用いて)ことによって編成される。各点は、特定の道路リンクに割り当てられ、このリンクに沿う特定の距離へとパラメータ化される。この関連付けにより、標高データが道路データベース内の既存の情報を参照することが可能になる。
【0082】
3DのB−スプラインルーチン1500は、既知の道路リンク経路(道路網)に沿って進み、点を各可能なリンク経路上に投影することにより、点から2Dリンクへの投影を実施する。可能なリンク経路数は、一方向の走行方向制限及び機能部類レベルのようなデータベース内で符号化された道路制限によって絞り込まれる。GPS点記録に対する正しいリンク経路を得るために、単一の正しい経路が見つかるまで複数の経路が試験される。複数の有効な経路が見つかった場合には、元のGPS経路形状とリンク投影経路形状の間の差に基づいて罰則基準が計算され、最小の合計2Dオフセット、角度差、形状差、及び/又は走行距離差を有する経路が正しい道路リンクシーケンスとして選択される。このリンクシーケンスを標高リンクチェーンと呼ぶ。
【0083】
ブロック1504では、3DのB−スプラインルーチン1500は、1Dの高度B−スプラインを標高リンクチェーンに沿って高度点に当て嵌める。それによって記憶スペース及びデータベースI/O帯域幅を節約するコンパクトな標高表現が可能になる。ブロック1502において得られた高度点は、リンクチェーン順序及び2Dの点/リンク投影から見つかるリンクパラメータ距離に基づいて標高リンクチェーンに沿って単調に整列する。投影された標高点の各々までの2D弧長距離を計算するために、標高リンクチェーンに対してトラバース測定が行われる。このデータ対(リンクチェーン弧長と標高との)は、1Dの標高スプラインを計算するためのデータセットを形成する。
【0084】
3DのB−スプラインルーチン1500は、1Dの標高スプラインを作成する前に標高リンクチェーンを小さいリンクチェーンに分割する。目標は、各道路リンクに対して個々のスプラインを作成することであるが、リンク境界を跨ぐ平滑な高度B−スプラインを維持するために、複数のリンクチェーン区間(例えば、1000メートルまでの)にわたる中間スプラインが生成される。3DのB−スプラインルーチン1500は、同様に標高リンクチェーン境界を横切って平滑なスプラインが生成されるように、大きいリンクチェーンに重なっている。
【0085】
一部の場合には、隣接リンクを跨ぐ単一の標高スプライン当て嵌めは望ましくない。従って、3DのB−スプラインルーチン1500は、基本的道路データベース特性及び運転経路に基づいて大きいリンクチェーンを更に分割し、これらのリンクチェーンは、標高が突然の勾配又は標高変化を含む可能性がある場所で分割される。例えば、チェーンは、経路が80度よりも大きく屈曲する時(例えば、異なる道路に乗る)、及びリンクチェーンがデータ格差を含む場合に分割される。次に、3DのB−スプラインルーチン1500は、道路リンクノードの場所で1D高度B−スプラインを分割する。
【0086】
3DのB−スプラインルーチン1500は、得られるB−スプラインを各スプラインが2Dの道路リンク参照情報に連結されるようにデータベースに記憶する。更に、各道路リンクの標高スプラインに対して2つの横断時標高(スプライン開始及び終了点における)が保存される。横断時標高は、スプラインが道路リンクノードを横切る時のスプラインの高度を記憶する。このリンクノードへの参照情報が記憶される。標高スプラインが重複する場合には、単一の道路リンクノードは、複数の横断時標高を含むことになる。この横断時標高データベースは、標高スプラインの可能な交差場所を説明し、3DのB−スプラインルーチン1500が、ブロック1506において、交差場所及び交差するスプラインの間の高度差を効率的に照会することを可能にする。
【0087】
ブロック1502及び1504では、3DのB−スプラインルーチン1500は、以前の道路属性把握内容をスプラインに追加することができるように、高度B−スプラインデータを道路リンク地図データベースに関連付ける。それによって標高データが交差点にあるのか、又はランプ(交差する標高が異なることが許される)上にあるのかを把握するなどの高度B−スプラインの知的処理が可能になる。従って、より正確な標高に関する解法が可能である。
【0088】
ブロック1506では、3DのB−スプラインルーチン1500は、道路網に沿って走行する車両内に設けられたGPS/IMUによって収集された高度データを調節する。高度補正ルーチンの例に対して、図16を参照してより詳しく解説する。GPS/IMU地理参照機器の精度限界により、収集されたデータ点の絶対高度にある程度のドリフトが導入される可能性がある。その結果、2つの道路が交差する時に、各スプラインは、同じ交差点に対して若干異なる高度を間違って説明する可能性がある。一部のスプライン交差ノードは、異なる高度を有する(別の道路の上方を横断する橋等)。従って、標高補正ルーチンは、3Dスプラインが縦断勾配で交差するところを判断する。高度B−スプラインに関連付けられた道路地図データベース(B−スプライン道路リンクを参照情報として用いる)を利用することにより、道路リンクがどこで交差するか、これらのリンクが同じ高度でつながっているか、又はリンクが高架通路であるか、又は地下交通路であるかを把握することができる。横断時標高データベースは、この目的のためにブロック1504で作成されたものである。
【0089】
図16は、標高補正ルーチン1600の流れ図である。標高補正ルーチン1600は、標高スプラインのデータベース全体が単一の処理で補正されるように、好ましくは広域操作として実施される。1つの標高データセットを移動することにより、このデータセットが交差する他の標高データセットの当て嵌めが影響を受けるので、広域的解法が望ましい。広域的解法の作業負荷を最小にするために、標高補正ルーチン1600は、横断時標高(ブロック1504で得られた)だけにアクセスする。データは、横断時標高データベースに対して実施される1回のデータベース照会によってアクセス可能である。このアクセスは、標高スプラインが交差するノードを探し出し、スプラインが重複するノードのみが戻される。それによって標高補正ルーチン1600は、実際の標高スプラインをアクセス又は評価する必要なく、標高差を調べることが可能になる。
【0090】
標高補正ルーチン1600は、2つの操作を高度スプラインに適用する。第1に、スプラインが、同じ標高にある共通の道路リンクノードを横断するように、標高が垂直に補正される。第2に、多くの場合に、単一の道路リンクに対して複数の標高スプラインが利用可能である。標高補正ルーチン1600は、各道路リンクに対して単一の最適な高度スプラインを選択する。この後、選択された最適の高度スプラインは、高度スプライン作成処理の残りの部分に用いられる。
【0091】
道路リンクノードにおいて標高を整合化するのに、標高は、可能な限り最小限にしか変更されず、データにおける整合性を維持することに重点が置かれる。標高データは、その周囲の時間的に局所的なデータと比較すると非常に正確である。しかし、ドリフトに起因して、絶対標高は、大きい偏差を含む可能性がある。従って、整合化処理は、近接データ(高い相対精度)の使用を最大化し、異なるデータベース(絶対標高依存の)間の切り換えを最小にする。冗長な標高データの平均化は勧められない。代替的に、標高補正ルーチン1600は、最良のデータセットから単一の最良の標高を選択することによってノードの標高を判断する。理想的には、整合性を維持するために、可能な限り最大の近くの標高ノードに対して同じデータセットが用いられる。
【0092】
ブロック1602では、標高データセットは、これらのデータセットが標高において如何に良好に他の近接データセットの標高と合致するかということ、運転距離、及び運転精度信頼度に基づいて順位付けされる。この順位は、運転行程が、標高補正ルーチン1600において適用される順序を制御する。この順序は、どの標高が元の標高スプラインから直接に割り当てられるか(「基本ノード」標高と呼ぶ)、及び既存の標高スプラインに当て嵌める上でどの標高が調節されるか(補正標高)を判断する。更に、この順序は、どの標高スプラインが(単一の道路リンクに対して複数のスプラインが利用可能である時に)、ブロック1508において最終高度スプラインを生成する時に用いるべきスプラインとして選択されるかを判断する。
【0093】
ブロック1604では、最低信頼度レベルから外れる運転行程が整合化処理から除外される。それによって信頼性の低いデータが、不用な標高オフセットを引き起こすことが防止される。
ブロック1606では、標高補正処理を開始するのに最上位の運転行程が選択される。最初の運転行程は、いかなる既存の基本ノードの標高とも重複しないので、最初の運転行程は、標高において調節する必要はない。従って、ブロック1608では、標高補正ルーチン1600は、補正曲線なしに最初の運転行程におけるノードを「基本ノード」として割り当てる。最初の運転行程と交差する以降(ブロック1612より)のあらゆるスプラインは、基本ノードと整合化するように変更される。更に、ブロック1610では、標高補正ルーチン1600は、この運転行程からの標高スプラインを関連の2D道路リンクに対する最適スプラインとして割り当てる。
【0094】
ブロック1612では、標高補正ルーチン1600は、順位付けされたリストから、前に固定された運転行程の基本ノードと交差する次に最良の運転行程を選択する。ブロック1614では、標高補正ルーチン1600は、標高ノードを検査して、どのノードが、前の運転行程の前に固定されたもの(基本ノード)に対応するかを調べる。運転行程のノードを既存の基本ノードの標高と整合化するために、オフセットが計算される。
【0095】
運転行程ノードを既存の基本ノードに対して調節するのに加えて、基本ノード間で標高補正が線形に適用される。元の標高データを保持するために、元の標高スプラインを変更する代わりに仮想補正ポリラインが作成される。元の標高スプラインと仮想補正ポリラインの重ね合わせは、正しく整合化された高度スプラインを生じる。仮想ポリラインは、元のスプラインが他方の高度スプラインの基本ノードに当て嵌まるように補正するのに必要な標高オフセットを定める線形形状である。線形補正を用いることにより、標高補正ルーチン1600が、正確な場所で精密に補正を定める(すなわち、オーバーシュートがない)ことが可能になり、同様に標高補正ルーチン1600が、大きい2D距離にわたって補正を線形に分散させることが可能になる。
【0096】
この処理の恩典は、標高スプラインデータベースが一度もアクセスされず、スプライン形状を読み取り、変更し、及び保存する必要がないことである。この処理は、大きい広域操作であるから、データベースI/O及びCPU要件の有意な節約が行われる。データベース作動は、最小限のデータセットを読み取ることへと変形され、複数の横断時標高を有するノードのみが考察される。書込み作動は、各運転行程に対して単一の線形補正ポリラインを保存する段階、及び標高スプライン上のステータスフラグ(スプラインが、道路リンクに対する独特な代表として選択されたか否かを示す)を更新する段階という2つの段階へと変形される。
【0097】
ブロック1616では、標高補正ルーチン1600は、計算された整合化オフセットを表す仮想の線形ポリラインを作成する。仮想ポリライン補正は、運転行程における非基本ノードの補正ノード高度を判断するのに用いられる。ブロック1618では、標高補正ルーチン1600は、補正高度のノードを固定の基本ノードリストに追加する。
各運転行程が適用される時に、運転行程に関連付けられた道路リンクが検査され、これらのリンクに、以前の運転行程からの独特な「最適」高度スプラインが以前に割り当てられているか否かが調べられる。ブロック1620では、標高補正ルーチン1600は、最適のスプラインを持たないリンクに現在の運転行程データセットからの標高スプラインを割り当てる。その結果、標高が固定された運転行程と対応する高度スプラインセットが生じ、この高度スプラインセットは、以降の標高データセットに対する基礎を与える。
【0098】
ブロック1622では、標高補正ルーチン1600は、検査を行って既存の基本ノードの標高と重複する更に別の運転行程データセットが存在するか否かを調べる。重複データセットが存在する場合には、ブロック1612において、標高補正ルーチン1600は、既存の基本ノードと重複する次に最良の運転行程を選択し、上記処理が繰り返される。重複運転行程を処理し終わると、ブロック1624において、標高補正ルーチン1600は、いずれか残りの未処理運転行程が存在するか否かを検査する。未処理運転行程が残っている場合には、ブロック1606において、標高補正ルーチン1600は、残りの最良の運転行程に対して新しい整合化処理を再開する。
好ましくは、標高補正ルーチン1600は、運転行程の全てを処理し終わるまで繰り返される。処理の後に、標高補正曲線がデータベースに記憶され、単一で独特な標高スプラインが道路リンクに関連付けられる。
【0099】
図15に戻ると、ブロック1508において、3DのB−スプラインルーチン1500は、方法800において作成されたリンクチェーンに対して単一の多重リンク高度スプラインを作成する。リンクチェーン内の各リンク(道路セグメント)に対して、前に選択された最適な高度B−スプライン(ブロック1506における)が、例えば、1メートルのXY弧長毎に標高点に変換して戻される。補正ポリラインオフセット(ブロック1506)が計算され、各点に追加される。結果は、リンクチェーンのXY弧長によってパラメータ化された高度が整合化された点の集合である。
【0100】
3DのB−スプラインルーチン1500は、新しい高度B−スプラインを複数のリンクに対して標高がパラメータ化された点のリストに当て嵌める。各連続する曲線当て嵌めは、前の曲線当て嵌めからのスプラインと重複する。重複曲線当て嵌めは、曲線当て嵌めの間の境界における形状整合性を保証する。高度曲線当て嵌め技術は、指定の曲線当て嵌めZ許容範囲に基づいて最適な結び目ベクトルを再帰的に判断する。指定の高度曲線当て嵌め許容範囲は、高度が急激に変化する時により多くの結び目が存在し、高度が緩慢に変化する時により少ない結び目が存在するように結び目ベクトル間隔を判断するのに用いられる。高度B−スプラインにおける高度点は、リンクチェーンの弧長によってパラメータ化されているので、高度B−スプラインは、2DのB−スプラインに適合する結び目ベクトルパラメータ空間を有し、それによってブロック1510において、これらのB−スプラインを3DのB−スプラインへと融合することが可能になる。
【0101】
ブロック1510では、3DのB−スプラインルーチン1500は、方法900からの2DのB−スプラインと、ブロック1508からの高度B−スプラインとを融合し、3DのB−スプラインを得る。3DのB−スプライン表現は、高度B−スプラインのZ成分を2DのB−スプラインルーチン900によって作成された2DのB−スプラインに追加することによって作成される。2DのB−スプライン及び高度B−スプラインの両方に対するパラメータ空間は、同じXYリンク幾何学形状の弧長によってパラメータ化されているので、これらのB−スプラインは、これらの結び目ベクトルを融合することによって融合することができる。
【0102】
3DのB−スプラインルーチン1500は、両方のB−スプラインの最大結び目値によって2DのB−スプライン及び高度B−スプラインの各々の結び目ベクトルをスケーリングする。次に、3DのB−スプラインルーチン1500は、結び目挿入を用いて2DのB−スプラインの結び目を高度B−スプラインの中に挿入し、高度B−スプラインの元の結び目を2DのB−スプラインの中に挿入する。その結果、両方のB−スプラインが同じ結び目ベクトルを有し、同じパラメータ空間を共有する。
【0103】
3DのB−スプラインルーチン1500は、以下に示すように、3DのB−スプラインの制御点のZ値を高度B−スプラインのZ値のものと等しく設定することにより、2DのB−スプラインから3DのB−スプラインを作成する。
【0104】
【数11】
【0105】
ブロック1512では、3DのB−スプラインルーチン1500は、3DのB−スプラインに勾配情報を符号化する。この符号化は、3DのB−スプライン内に結び目をタグ付けすることによって達成され、これらの結び目は、電子視野アプリケーション208のための線形勾配プロフィールを生成するのに用いることができる。高度が急激に変化する時により多数の勾配結び目が存在し、高度が緩慢に変化する時により少数の結び目が存在するように、符号化される結び目ベクトル間隔を判断する上で指定の標高及び勾配許容範囲が用いられる。更に、勾配変曲点が発生する場所により多くの勾配点が追加される。3DのB−スプラインルーチン1500は、標高、勾配、及び勾配変化に基づいて、Douglas−Peuker線近似解析を用いて符号化された勾配結び目の場所を識別する。この解析は、データ点が線近似の許容範囲に入ると終了する。3DのB−スプラインルーチン1500は、高度分布に沿って各Douglas−Peukerポリライン点に「タグ付き」勾配結び目を挿入する。
【0106】
ブロック1514では、3DのB−スプラインルーチン1500は、ブロック1512における結び目挿入を評価することによってサイズを最適化する。得られる結び目挿入は、B−スプラインの3D形状を表すのに必要なものよりも多くの結び目を生じる可能性があるから、3DのB−スプラインルーチン1500は、勾配プロフィール及び曲率プロフィールを符号化するのに又はB−スプライン品質を維持するのに必要ではない結び目を削除する。
【0107】
上述の詳細説明が限定的ではなく例示的なものとして捉られること、及び全ての均等物を含む以下の特許請求の範囲が本発明の範囲を定めるように意図されることが理解されることを意図している。これらの特許請求の範囲は、その旨を明記しない限り、説明した順序又は要素に限定されると解釈すべきではない。従って、以下の特許請求の範囲及びその均等物の範囲及び精神に該当する全ての実施形態を本発明として特許請求する。
【符号の説明】
【0108】
100 地図援用ADASアーキテクチャ
106 地理データベース
110 車両内データバスインタフェース
114 運転者支援アプリケーション
116 地図及び測位エンジン(MPE)
【技術分野】
【0001】
関連出願への参照
本出願は、2008年10月1日出願の「最新運転者支援システムのための幾何学形状の作成」という名称の米国特許仮出願第61/101、752号の恩典を請求する。米国特許仮出願出願番号第61/101、752号の全開示内容は、本明細書に引用によって組み込まれている。
本特許出願は、本明細書に引用によって組み込まれている「最新運転者支援システムアプリケーションのためのベジエ曲線」という名称の同じ日付に出願された現在特許出願中の特許出願出願番号第____号、代理人整理番号N0295USに関連している。
本発明は、一般的に、最新運転者支援システム(ADAS)に関し、より具体的には、ADASにおける使用に向けて幾何学形状を作成することに関する。
【背景技術】
【0002】
ADASは、運転の快適さ、効率、安全性、及び全体的な満足感を改善するために開発されたものである。これらの最新運転者支援システムの例は、適応ヘッドライト照準、適応走行制御、車線逸脱警告及び制御、カーブ警告、速度制限通知、ハザード警告、予測走行制御、適応変速制御、並びにその他を含む。これらの最新運転者支援システムの一部は、車両の現在の状態及び車両の前方にある車道の現在の状態を判断するために車両内の様々なセンサ機構を用いる。これらのセンサ機構は、デジタルビデオカメラ及びLIDARのようなレーダー、赤外線、超音波、及び視覚指向性センサを含むことができる。
【0003】
一部の最新運転者支援システムはまた、デジタル地図データを用いる。これらのシステムは、時によっては地図援用ADASと呼ばれる。デジタル地図データは、最新運転者支援システムにおいて道路網、道路幾何学形状、道路状態、並びに車両の周囲の道路及び地形に関連する他の項目に関する情報を提供するのに用いることができる。一部のセンサとは異なり、デジタル地図データは、霧、雨、又は雪のような環境の状態による影響を受けない。更に、デジタル地図データは、曲率、断勾配、横傾斜、標識によって示されていない速度制限、及び車線制限などのようなセンサによっては確実には供給することができない有利な情報を提供することができる。更に、デジタル地図データは、車両の前方、曲がり角付近、坂の向こう側、又は障害物の向こう側の道路を判断するために、センサの範囲を十分に超えるか又は運転者の視界さえ超える予測機能を提供することができる。従って、デジタル地図データは、一部の最新運転者支援システムに対して有用な追加物とすることができる。
【0004】
地図援用最新運転者支援システムは、一般的に、車両内のナビゲーションシステムに付随する地理データベースからのデータを用いる。ナビゲーションシステムのデータベースは、道路及び交差点の場所(高度を含む地理座標)、道路名、道路に沿った速度制限、交差点での右左折制限、道路に沿った住所又は住所範囲、各道路における車線数、車線幅、車線境界線、道路の機能部類、及び中央分離帯の場所などのような地域内の道路網を表すデータを収容する。ナビゲーションシステムのデータベースはまた、水域、公園、行政区域(地方自治体、州、及び国の境界を含む)、及び会社、病院、及び警察署などのような肝心な点の場所のような他の地理的特徴に関する情報を収容することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許仮出願第61/101、752号
【特許文献2】米国特許公開第2006/0100780号
【特許文献3】米国特許第6、405、128号
【特許文献4】米国特許第7、084、882号
【発明の概要】
【発明が解決しようとする課題】
【0006】
ナビゲーションシステムのデータベースは、最新運転者支援システムが必要とするものよりも非常に多くのデータを有する。更に、ナビゲーションに向けて設計された地理データベースは、全てのデータを有していない場合があり、及び/又は最新運転者支援システムによって必要とされる精度レベルでデータを有していない場合がある。その結果、特に最新運転者支援システムに向けた地理データベースの設計には何らかの労力が費やされてきた。例えば、米国特許公開第2006/0100780号は、自動車システム内のセンサデバイスに向けて設計されたデータ記憶フォーマットを有する地理データベースを説明している。しかし、特に最新運転者支援システムに向けて設計された地理データベースには、改善の余地がある。
【課題を解決するための手段】
【0007】
ADASのための幾何学形状を作成する方法及びシステムを説明する。ソフトウエアルーチンを用いて、道路セグメントのシーケンスであるリンクチェーンが作成される。ソフトウエアルーチンは、関連の機能部類を有する最初の道路セグメントを選択する。各ノードにおいて、ソフトウエアルーチンは、リンクチェーンに追加する次の道路セグメントを選択する。リンクチェーンは、末端ノードを見つけるまで成長し続ける。
リンクチェーンに対して当て嵌めが行われ、2DのB−スプラインが作成される。2DのB−スプラインは、不規則性及びアラインメント問題を補正するために操作される。位置、曲率、勾配、及び/又は車両方位を保持するのに必要のない結び目は、記憶要件を最小にするために削除される。
【0008】
リンクチェーン、最適化された2DのB−スプライン、及び高度データが用いられて、3Dスプラインが作成される。好ましくは、高度データは、車両が道路セグメントによって表される道路上を走行する時に収集されたGPS/IMU記録から得られる。GPS高度の不正確性に対処するために、高度データは、交差ノードの位置で補正される。補正された高度データを用いて、リンクチェーンに対して当て嵌めが行われて高度B−スプラインが作成される。2DのB−スプラインと高度B−スプラインは融合され、3DのB−スプラインが得られる。2DのB−スプラインと同様に、記憶要件を最小にするために位置、曲率、勾配、及び/又は車両方位を保持するのに必要のない結び目は、3DのB−スプラインから削除される。
3DのB−スプライン及び場合によっては2DのB−スプラインは、ベジエ曲線に変換される。ベジエ曲線は、2Dポリラインを効率的に作成して曲率、勾配、及び車両方位を計算するのに用いることができる。ADASアプリケーションは、マップ照合に向けてADAS機能及びポリラインを提供するためにベジエ曲線を用いることができる。
【0009】
これら並びに他の態様及び利点は、適切な場合は添付図面を参照して以下の詳細説明を読解することにより当業者には明らかになるであろう。更に、この要約は例に過ぎず、特許請求する本発明の範囲を限定する意図はないことを理解されたい。
同様の参照番号が様々な図における同様の要素を指す添付図面の図を併用して現時点で好ましい実施形態を下記に説明する。
【図面の簡単な説明】
【0010】
【図1】実施例による地図援用ADASアーキテクチャのブロック図である。
【図2】実施例による図1に描かれたプロセッサに利用可能なソフトウエアアプリケーションのブロック図である。
【図3】実施例による図1に描かれた地理データベースからの道路セグメントデータ記録のブロック図である。
【図4】実施例による図3に描かれた道路セグメントデータ記録におけるデータ属性のブロック図である。
【図5】実施例によりADASのための幾何学形状を作成するための流れ図である。
【図6】例示的なベジエ曲線の図である。
【図7】ベジエ曲線から生成された例示的なポリラインの図である。
【図8】実施例によりリンクチェーンを作成するための流れ図である。
【図9】実施例により2DのB−スプラインを作成するための流れ図である。
【図10】実施例による不整合B−スプライン端の図である。
【図11】実施例による整合B−スプライン端の図である。
【図12】実施例により2DのB−スプラインをリンクチェーンに当て嵌めるための流れ図である。
【図13】実施例による一般的な四葉のクローバー状ランプにおけるランプスプライン形状の図である。
【図14】実施例によるランプノードオフセット法の図である。
【図15】実施例による3DのB−スプラインを作成するための流れ図である。
【図16】実施例による標高補正ルーチンの流れ図である。
【発明を実施するための形態】
【0011】
ADASアーキテクチャ
図1は、地図援用ADASアーキテクチャ100のブロック図を示している。この例では、地図援用ADASアーキテクチャ100は、運転者支援アプリケーション114、並びに地図及び測位エンジン(MPE)116を含む。図1では、MPE116を独立型モジュールとして示しているが、MPE116は、複数のパッケージに分散させることができ、及び/又はセンサパッケージのような他のデバイスパッケージ内に統合することができることを理解されたい。MPE116は、プロセッサ102、測位システム104、地理データベース106、通信システム108、及び車両内データバスインタフェース110を含む。MPE116はまた、メモリ及び電源のような他のハードウエア、ソフトウエア、及び/又はファームウエアを含むことができる。
【0012】
プロセッサ102は、あらゆる種類のプロセッサ、コントローラ、又は他のコンピュータデバイスとすることができる。例えば、プロセッサ102は、デジタル信号プロセッサとすることができる。プロセッサ102は、測位システム104、地理データベース106、通信システム108、車両内データバスインタフェース110、及びその他の供給源からの入力を受信する。次に、プロセッサ102は、一部を図2を参照して説明するアプリケーションソフトウエアプログラム200を用いてこれらの入力を処理する。
【0013】
次に、プロセッサ102は、車両内データバスインタフェース110及びデータバス112を通じて運転者支援アプリケーション114に出力を供給する。好ましくは、車両内データバスインタフェース110及びデータバス112は、自動車用途に向けて設計されたコントローラエリアネットワーク(CAN)インタフェース及びCANバスである。運転者支援アプリケーション114は、適応ヘッドライト照準、適応走行制御、障害物検出、障害物回避、衝突回避、適応変速制御、及びその他を含むことができる。
【0014】
測位システム104は、GPS型技術、推測航法型システム、又はこれらの組合せ、又は当業技術で公知の他のシステムを利用することができる。また、測位システム104は、走行距離、速度、方向、及び姿勢などを測定する適切な感知デバイスを含むことができる。例えば、測位システム104は、GPSシステム及びジャイロスコープを含むことができる。測位システム104は、プロセッサ102に出力信号を供給する。プロセッサ102上で作動するアプリケーションソフトウエアプログラム200の一部は、MPE116の場所、方向、及び姿勢などを判断するのに測位システム104からの出力信号を用いる。
【0015】
地理データベース106は、ADASアプリケーションに向けて設計される。ナビゲーションシステムの地理データベースと同様に、地理データベース106は、地理的領域内の道路及び交差点に関するデータを含む。例えば、地理データベース106は、各道路セグメント(リンクとも呼ぶ)に対して少なくとも1つのデータベース記録(「エンティティ」又は「エントリ」とも呼ぶ)を含む。道路セグメントがB−スプライン曲線又はベジエ曲線で表される時には、道路セグメントデータ記録は、制御点の地理座標(例えば、緯度、経度、及び高度)を与えるデータを含む。道路セグメントの端点(ノードとも呼ぶ)は、最初及び最後の制御点に対応する。更に、道路セグメントデータ記録はまた、B−スプライン幾何学に関する結び目ベクトルを収容することもできる。
道路セグメントが形状点幾何学形状として表される時には、道路セグメントデータ記録は、表される道路セグメントの端点の地理座標(例えば、緯度、経度、及び高度)を与えるデータを含む。曲線セグメントでは、道路セグメントデータ記録は、ポリラインを特徴付けるのに用いられる形状点の地理座標(例えば、緯度、経度、及び高度)を与えるデータも含む。
【0016】
道路セグメントデータ記録に対して、図3を参照してより詳しく説明する。
地理データベース106は、一般的にナビゲーションシステムの地理データベースに含まれるデータよりも高い品質(すなわち、正確な)データを含むことができる。例えば、道路幾何学形状に関して、地理データベース106内のデータは、経度、緯度、及び/又は高度に関してより正確なものとすることができる。また、地理データベース106では、トンネルの開始場所及び終了場所をより正確に指定することができる。更に、地理データベース106内のデータは、曲率のような導出情報に関してより正確なものとすることができる。
【0017】
また、地理データベース106は、一般的に、ナビゲーションシステムの地理データベースに含まれるデータよりも多くの種類のデータ(例えば、多くの種類の属性)を含むことができる。例えば、地理データベース106は、標識及び横断歩道のような道路物体に関するデータを道路セグメントに沿ったこれらの位置、標識物体種類、及び標識テキストを含めて含むことができる。地理データベース106内に見られるデータ属性の一部に対して、図4を参照して説明する。
【0018】
図2は、プロセッサ102に対して利用可能なソフトウエアアプリケーション200の一部を示しているブロック図である。図2に示しているソフトウエアアプリケーション200は、地図アクセスアプリケーション202、地図更新アプリケーション204、車両測位アプリケーション206、電子視野アプリケーション208、及びインタフェースアプリケーション210を含む。これは、プロセッサ102に対して利用可能な全てのソフトウエアアプリケーション200の網羅的なリストではないので、図2は、始動ルーチン、及び自己試験診断などを含むことができる他のアプリケーション212も示している。
【0019】
地図アクセスアプリケーション202は、物理的記憶媒体上に記憶された地理データベース106へのデータアクセスを提供する。地図アクセスアプリケーション202は、プロセッサ102からデータ要求を受信し、この要求に応じるデータを物理的記憶媒体上で探し出す。好ましくは、地図アクセスアプリケーション202は、プロセッサ102及び/又はアプリケーション200による使用に向けて、アプリケーションプログラミングインタフェース(API)を提供する。
【0020】
地図更新アプリケーション204は、地理データベース106に対する更新を容易にする。通信システム108は、既存のデータベースに付加的な受信範囲を追加するか、又は既存のパーセルを置換するかのいずれかを行う1つ又はそれよりも多くのパーセルを受信する。パーセルは、物理的記憶媒体上の地理データベース106内に地理データを記憶するための記憶単位である。新しいパーセルに対しては、地図更新アプリケーション204は、物理的記憶媒体上にこのパーセルを記憶する。既存のパーセルに対しては、地図更新アプリケーション204は、物理的記憶媒体上の古いパーセルを新しいパーセルで置換する。
車両測位アプリケーション206は、地理データベース106内に含まれるデータによって表される道路網に対する車両の位置を判断する。車両測位アプリケーション206は、測位システム104からの出力を用い、時によってマップ照合アルゴリズムと呼ぶ車両測位アルゴリズムを用いて、この出力を地理データベース106内のデータと照合する。
【0021】
電子視野アプリケーション208は、電子的視野を判断する。電子的視野は、電子視野アプリケーション208によって判断される範囲の現在の車両位置から前方の道路及び交差点の集合である。この道路及び交差点の集合は、車両が現在の車両位置から辿ることができる潜在的な経路である。電子視野アプリケーション208は、1つ又はそれよりも多くのコスト関数を用いて範囲を判断する。コスト関数は、運転者支援アプリケーション114の要求に基づいて、車両速度、走行時間、及び運転距離のような様々な要因を考慮に入れることができる。例示的な電子視野アプリケーションは、本出願と同じ出願人に譲渡され、本明細書においてその全内容が引用により組み込まれている米国特許第6、405、128号に説明されている。
【0022】
インタフェースアプリケーション210は、インタフェース110及びバス112を通じたMPE116と運転者支援アプリケーション114の間の通信を制御する。好ましくは、インタフェースアプリケーション210は、車両内の様々な電子デバイス間で通信を行うためのシリアル通信プロトコルであるCANプロトコルに基づいている。メッセージ及びデータを車両内の1つの電子デバイスから別のものへと送信することができるように、CANプロトコルに従って車両内の様々な電子デバイスを単一のシリアルバス(例えば、バス112)に結合することができる。CANプロトコルは、CANフレームが共通CANバス上に置かれるメッセージベースのプロトコルである。CANバスは、単一のワイヤ又は差動的に駆動されるワイヤ対とすることができる。
【0023】
図3は、地理データベース106からの道路セグメントデータ記録300のブロック図である。道路セグメントデータ記録300は、道路の一部分を表すために用いられるデータを含む。これらのデータは、セグメントの端点の緯度、経度、及び高度の座標位置を示すノードデータ302、304を含む。
また、データは、直線又は曲線セグメントの形状を表すために用いることができる制御点の緯度、経度、及び高度の座標位置を示す制御点データ306、308を含む。図3には2つの制御点に関するデータを示しているが、セグメントは、1つよりも多くの曲線を含むことができ、制御点数は、セグメント内の曲線の数及び形状に依存するものとすることができることを理解されたい。例えば、各3次ベジエ曲線は、4つの制御点によって表されるが、前のベジエ曲線の最後の制御点は、次のベジエ曲線の最初の制御点と同じである。道路セグメントデータ記録300は、ベジエ曲線の数を3倍し、1を足した数に等しい数の制御点に関するデータを記憶する。
【0024】
更に、データは、セグメントに関する属性310を含む。セグメントの属性310の一部を図4に示す。同様に道路セグメントデータ記録300は、形状点データのような追加データを含むことができる。
図4は、道路セグメントデータ記録300におけるデータ属性310の一部のブロック図である。図4に示しているデータ属性310は、セグメント識別子(ID)402、制御点404、走行方向406、速度カテゴリ408、車線カテゴリ410、道路種類412、セグメント特性414、及び通行特性416を含む。これは、道路セグメントデータ記録における全てのデータ属性の網羅的なリストではないので、図4は、他の属性418も示している。例えば、セグメントデータ属性400は、セグメントの端点302、304に対応するノードIDの形態のノードデータ記録への参照子を含むことができる。
セグメントID402は、地理データベース106内のデータ記録を識別する。
【0025】
制御点属性404は、曲率及び勾配プロフィールの作成を助ける制御点に関する追加情報を提供するビットフラグを収容する。例えば、制御点属性404は、制御点毎にバイトサイズのフラグを含むことができる。フラグ内のビットのうちの1つは、曲率に割り当てられ、一方、ビットのうちの別のものは、勾配に割り当てられる。曲率ビットフラグが1に設定された場合には、制御点は、曲率プロフィールの一部としてマーク付けされる。同様に勾配ビットフラグが1に設定された場合には、制御点は、勾配プロフィールの一部としてマーク付けされる。
【0026】
走行方向属性406は、セグメントにおいて許可される車の流れの方向を表している。例えば、セグメントは、道路網のうちで走行が双方向に許された部分を表すことができる。代替的に、セグメントは、道路網のうちで一方向の走行だけを可能にする部分を表すことができる。走行方向属性406は、セグメントが双方向走行又は単方向走行のいずれを可能にするのかを識別し、単方向の場合には、走行方向属性406は、許可された走行方向を更に識別する。
【0027】
速度カテゴリ属性408は、掲示又は示唆された速度制限に基づく道路の一般的な速度傾向を表している。速度カテゴリ属性408は、速度範囲に関連するデータを含む。例えば、速度カテゴリ属性408は、80mphを超える速度に対して整数1、65mph〜80mphの範囲の速度に対して整数2、55mph〜64mphの範囲の速度に対して整数3、及び速度範囲が0mphを含むまで以降同様に続くデータ表現を含むことができる。
【0028】
車線カテゴリ属性410は、セグメントにおける1つの走行方向の主な車線数を表している。好ましくは、車線カテゴリ属性410は、右左折車線を含まない。車線数が各方向において異なる場合には、車線カテゴリ属性410は、大きい方の数を表すことができる。
道路種類属性412は、道路の種類及び/又はセグメントが表す機能部類を表している。例えば、道路種類属性412は、州間高速道路、通行制御高速道路、歩行者通路等に関連付けられたデータを含むことができる。
【0029】
セグメント特性属性414は、様々なセグメント特性を説明するビットフラグを含む。例えば、セグメント特性属性414は、セグメントが舗装されているか、ランプであるか、橋であるか、トンネルであるか、及び環状交差点であるかなどを識別することができる。
アクセス特性属性416は、セグメントにおいて許可される交通の種類を定めるビットフラグを含む。例えば、アクセス特性属性416は、セグメントにおいて自動車、バス、トラック、タクシー、緊急車両、及び歩行者等が許可されているか否かを識別することができる。
【0030】
MPEのための幾何学形状の作成
図5は、MPE116のための幾何学形状を作成する方法500の流れ図である。ブロック503では、方法500は、並列処理を可能にするために地理データベース502をタイルへと再分割する。地理データベース502は、地理データベース106又は地理データベース106内のデータを含む異なるデータベースとすることができる。
これらのタイルは、各タイルがほぼ等量のノード及び形状点を含むように形成される。地図表面は、細かい(約2km×2km)セルを有する架空の2D矩形格子によって覆われる。次に、地理データベース502内のノード及び形状点を格子上にマップすることによってノード及び形状点の密度が計算される。タイルは、格子セルから組み立てられる。
各タイルがほぼ等しい数のノード及び形状点を有することを保証するために、格子全体は、水平及び垂直の両方の方向の格子線に沿って半分に再帰的に再分割され、2つの分割区分の各々が等しい数の幾何点を含むようにする。この処理は、タイルが、所定の閾値よりも少ない量のノード及び形状点を含むまで続く。各再分割の方向は、タイルのアスペクト比を最小にするように選択される。
【0031】
ブロック504では、方法500は、地理データベース502からのデータを用いて各タイル内でリンクチェーンを作成する。リンクチェーンは、各々が同じ道路種類属性412を有するセグメントのシーケンスである。好ましくは、セグメントシーケンスは、可能な限り長く作られる。リンクチェーンは、セグメント境界を横切る滑らかさを保証するB−スプライン当て嵌めを実施するのに用いられる。リンクチェーン504を作成する処理に対しては、図8に関連してより詳しく説明する。
【0032】
ブロック506では、方法500は、ブロック504で作成されたリンクチェーンを用いて2DのB−スプラインを作成する。ブロック508では、方法500は、ブロック504で作成されたリンクチェーン、ブロック506で作成された2DのB−スプライン、及び高度データ507を用いて3DのB−スプラインを作成する。好ましくは、高度データ507は、道路セグメントによって表される道路上を車両が走行する時に収集されるGPS/IMU記録から得られる。しかし、高度データ507は、他の供給源及び/又はセンサから得ることができる。2DのB−スプライン506を作成する処理に対しては、図9に関連して説明し、一方、3DのB−スプライン508を作成する処理に対しては、図15及び図16に関連して説明する。
【0033】
スプラインは、曲線区間を表して区間の境界において指定の条件を満たす区分的多項式関数で形成されるあらゆる複合曲線を指す。すなわち、B−スプラインを含む多くの種類のスプライン曲線が存在する。B−スプラインは、制御点及び結び目を有する。結び目は、多項式スプライン曲線の個々の多項式曲線セグメントが互いに接合する点である。セグメントは、完全な曲線の滑らかさを生じるように接合される。結び目ベクトルは、スプライン曲線に沿ってセグメントが開始及び終了する点を説明する非減少浮動小数点数の序列リストである。スプラインは、当業技術で公知である。
【0034】
スプラインを用いると、道路のカーブしている部分を含む地図特徴は、望ましい精度で地理特徴の形状に適合する曲線を生成するように判断された係数を有する多項式によって表される。従って、スプラインは、多項式の係数を指定することにより、基本的道路幾何学形状を説明するための手段である。米国特許第7、084、882号に説明されているように、スプラインは、ナビゲーションシステムのデータベースにおいて道路セグメントの形状を表すのに用いられている。米国特許第7、084、882号は、本出願と同じ出願人に譲渡されており、本明細書に引用によって組み込まれている。
【0035】
ブロック510では、2DのB−スプライン及び3DのB−スプラインをベジエ曲線に変換することができる。セグメントが高度データを持たない場合には、2DのB−スプラインは、ベジエ曲線に変換される。しかし、セグメントが高度データを確実に有する場合には、2DのB−スプラインは、ブロック508で3DのB−スプラインを作成することだけに用いることができる。
3次ベジエ曲線は、2つの端点及び曲線に対する接線に沿って位置決めされたこれらの端点における2つの追加制御点によって定められる。3次ベジエ曲線式は、ベクトル形式で次式のように書くことができる。
【0036】
【数1】
【0037】
ここで、P0、P1、P2、及びP3は制御点であり、tはパラメータである。ベジエ曲線は、公知の方法を用いてB−スプライン曲線から導出することができる。
【0038】
スプライン幾何学は、道路セグメント幾何学形状を表す上では有利であるが、MPE116におけるB−スプラインの使用は、車両測位及び電子視野アプリケーション206、208における計算要件を増大させる。解析的なB−スプライン幾何学は、車両測位アプリケーション206によるポリライン表現及び電子視野アプリケーション208による電子視野の実時間導出を容易にするためにベジエ表現に変換される。
【0039】
ブロック512では、車両測位アプリケーション206が、2Dポリライン表現を実時間で導出することができるように、ベジエ曲線は分割される。方法500は、道路幾何学形状が、弦から最も遠い点が弦線上に投影される時にこの点が弦の内側に収まるようなベジエ曲線を有することを仮定する。ベジエ道路幾何学形状は、図6に示しているように、ベジエ曲線から、この曲線の端点302、304を結ぶ線(すなわち、制御多角形の基本弦:
【0040】
【数2】
【0041】
)までの最も遠い距離(又は複数の距離)にある1つの点600(又は場合によっては1つよりも多くの点)を識別した後に分割される。図6では、最も遠い距離が、一般的に、曲線の中心にはないことも分る。
【0042】
最適な再分割点600は、ベジエ曲線上で制御多角形の基本弦から最も遠い点である。点600の位置は、点600におけるベジエ曲線に対する2Dの接線B(t)が弦に対して平行であるという条件から解析的に得られる。
【0043】
【数3】
【0044】
上記表現は、パラメータtに関する2次方程式へと簡略化される。一般的なベジエ曲線では、この2次方程式は、パラメータtが定められる間隔[0〜1]内に実根を有することができない。しかし、穏やかな挙動を示すベジエ曲線では、2次方程式は[0〜1]間隔内に1つ又は2つの実根を有することになる。2次方程式が2つの実根を有する場合には、2つの再分割点が2つの点でベジエ曲線を分割するように用いられる。点600が得られた状態で、ベジエ曲線は、デ・カステリョの再分割アルゴリズムを用いて2つに分割される。得られるベジエ曲線は、地理データベース106に記憶される。
ブロック514では、車両測位アプリケーション206は、2Dポリライン表現を実時間で導出する。ポリライン表現の例700を図7に示す。車両測位アプリケーション206は、ベジエ曲線の端点702を結び、その一方で内部制御点704を無視することによってポリライン表現700を導出する。
【0045】
リンクチェーンの作成
図8は、リンクチェーンを作成する方法800の流れ図である。リンクチェーンを作成する方法800は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
ブロック802では、リンクチェーンルーチン800は、リンクチェーンを開始するセグメントを選択する。各セグメントは2つのノード(端点とも呼ぶ)を有する。全てのノードが交差点にあるわけではない。例えば、一部のノードは、道路属性の変化を符号化するのに用いられる。
【0046】
ブロック804では、リンクチェーンは、隣接するセグメントを含めることによって両方の方向に成長する。ブロック806では、リンクチェーンルーチン800は、ノードが末端であり、そのノードにおいてその方向にリンクチェーンが終了されるかを判断する。リンクチェーンルーチン800は、ノードが末端であるかを判断するために規則を用いる。ノードを通じてリンクチェーンを進めるべきか(すなわち、非末端ノード)を判断するための規則は、以下のものを含むことができる。
1.リンクチェーン内の2つの隣接セグメントが、共通ノードを有するべきである。
2.リンクチェーン内のセグメントは、同じ機能部類に属さなければならない。
3.セグメントは、1つのリンクチェーン内だけに含まれるべきである。
4.各セグメントは、リンクチェーン内に含まれるべきである。
5.環状交差点セグメント(すなわち、環状交差点属性414に関連付けられたセグメント)を含むリンクチェーンは、通常のセグメントを含んではならない。
6.2つのセグメント間の角度が所定の閾値を超える場合には、これらのセグメントは、リンクチェーンを形成してはならない。この規則は、環状交差点チェーンには適応可能ではない。
7.ノードは、少なくとも2つのリンクに接続する。
末端ノードを識別するための他の規則を用いることもできる。ブロック806においてリンクチェーンルーチン800が末端ノードを識別した場合には、リンクチェーンルーチン800は、ブロック814においてリンクチェーンを成長させるのを終了する。
【0047】
ブロック806においてリンクチェーンルーチン800が末端ノードを識別しなかった場合には、リンクチェーンルーチン800は、ブロック808でノードを通じる最適経路を判断する。各ノードにおいて、リンクチェーンルーチン800は、リンクチェーンに追加することができるノードを通じた可能な経路を識別する。
ブロック810では、リンクチェーンルーチンは、各識別された可能な経路に対する経路重みを計算する。経路重みは、車線カテゴリ属性410、道路種類属性412、並びにノードからの経路の角度、及びセグメントによって表される道路上に保護レールが設けられているか否かのような他の属性418を用いて判断される。更に、経路重みは、交差点を通じた方向変化量を制限するように判断される。
【0048】
リンクチェーンを継続するのにどの経路を用いるかを判断する1つの方法は、リンク間角度及びリンク間の車線数差という2つの要因の組合せに基づいている。リンクチェーンが新しいリンクに継続される確率は、次式に従って判断することができる。
【0049】
【数4】
ここで、
【数5】
及び
【数6】
【0050】
ここで、角度は、度を単位とするリンク間角度であり、Δ車線#は、リンク間の車線数差(10を超えない)である。
2つよりも多くのリンクが交差するあらゆるノードにおいて、規則に準ずるリンクチェーンを形成する可能な方法は、計算された確率に従って比較及び順位付けされ、最適な選択肢が選択される。従って、リンクチェーンの形成は、リンクチェーンが作成される順序には依存しない。
【0051】
ブロック812では、リンクチェーンルーチン800は、ブロック810で計算された経路重みに基づいて、このノードを通じて継続を行うか否かを判断する。リンクチェーンルーチン800が、このノード通じて進むように判断した場合には、最も高い重みを有する経路が選択され、ブロック804でリンクチェーンに追加される。そうでなければ、リンクチェーンルーチン800は、ブロック814でリンクチェーンを成長させるのを終了する。
【0052】
ブロック816では、リンクチェーンルーチン800は、1つの操作で曲線当て嵌めを行うには長すぎるリンクチェーンを分割する。この判断は、チェーンの長さ(例えば、長さが25kmを超える)、ノード及び形状点の合計数(例えば、5000を超える)、及び/又は他の要因に基づいて行うことができる。好ましくは、リンクチェーンルーチン800は、ポリライン長さの中間部の近くで、リンクチェーンポリラインが可能な限り直線のところでリンクチェーンを分割する。
【0053】
両方の目的を達成するために、リンクチェーンルーチン800は、リンクチェーンの中間部の最も近くに位置するノードから開始して両方の方向に検索を開始する。考察対象のあらゆるノードに対して、リンクチェーンルーチン800は、ノードの周囲に窓を構成し、このノードが比較的直線のセグメント内に位置するかを判断する。リンクチェーンルーチン800は、内部点を2つの端点で形成されたセグメント上に投影し、点からセグメントまでの距離が閾値を超えず、これらの内部点が、セグメントの内部に投影されることを検証することによってセグメントが直線であるかを判断する。リンクチェーンルーチン800は、目的を満たすノードを見つけるまで、両方の方向に検索し続ける。リンクチェーンルーチン800は、分割に適するノードが見つからなかった場合には、直線セグメントの基準を緩和し、再度検索を繰り返す。
【0054】
2DのB−スプラインの作成
図9は、リンクチェーンから2DのB−スプラインを作成する方法900の流れ図である。方法800と同様に、2DのB−スプラインを作成する方法900は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
ブロック902では、2DのB−スプラインルーチン900は、方法800によって作成されたリンクチェーンを2DのB−スプラインに当て嵌める。2DのB−スプラインルーチン900は、2DのB−スプラインを単一のリンクチェーンであり、可能な場合はこのチェーンに隣接するリンクチェーンからのデータ点を両方の端に含むリンクチェーンに当て嵌める。隣接するリンクチェーンからのデータ点を含めることにより、2DのB−スプラインルーチン900は、連続する曲線当て嵌めを重ね合わせ、それによって曲線当て嵌め間の境界における形状整合性を保証することができる。隣接するリンクチェーンからのデータ点をどの場合に用いるべきかに関する判断は、規則によって制御される。環状交差点は、隣接するリンクチェーンからのデータ点が用いられない場合の例である。隣接するリンクチェーンの重複は、大きい場合がある(一般的に、数キロメートル)。
【0055】
2Dの曲線当て嵌め技術は、指定の曲線当て嵌め許容範囲に基づいて最適な局所曲線堅牢性を反復的に判断する。2DのB−スプラインルーチン900は、変分法を用いてスプラインに沿った曲率変化を最小にすることによってスプライン当て嵌めを正則化する。曲線当て嵌めは、次の汎関数を最小にすることによって実行される。
【0056】
【数7】
【0057】
式1:曲線当て嵌め最小化汎関数、ここで、vj(s)は、反復数[j]において曲線に沿って変化する正則化量を表している。vj(s)は、曲線に沿った弧長の関数として連続関数とすることができ、又はスプラインの各曲線セグメントに対する固有値のように離散的に実施することができる。
【0058】
積分:
【数8】
は、当て嵌められた曲線に沿った曲率変化を表している。曲率変化を最小にする正則化関数は、代替的に、
【数9】
で表すことができる。最小二乗項:
【数10】
は、当て嵌められた曲線とデータ点の間の偏差を示している。全体として、曲線当て嵌め最小化汎関数は、データ点からの偏差を最小にする一方、基本的道路幾何学形状を取り込むデータ点との対応を保ちながら、曲率が可能な限り小さく変化することを保証する。ブロック902におけるリンクチェーンへの2Dスプライン当て嵌めに対しては、図12を参照してより詳細に説明する。
【0059】
ブロック904では、2DのB−スプラインルーチン900は、タイル内で不整合なB−スプライン端を整合化する。スプライン当て嵌めは重複するが、出会わないB−スプライン端1002、1004を示している図10に示しているように、得られるB−スプラインの全てがノードにおいて完全に接合するわけではない。図11に示しているように2つのB−スプラインをノード1100で整合化するためには、これらのB−スプライン端が、XY平面内の共通点において、平滑な接線及び曲率(すなわち、C2連続性)を有しながら出会うようにこれらの端を整合化するべきである。
【0060】
B−スプライン端を整合化するために、2DのB−スプラインルーチン900は、パッチB−スプラインを用いて2つのB−スプライン間の平滑な移行を作成する。2DのB−スプラインルーチン900は、不整合B−スプライン端1002、1004の間のパッチB−スプライン上に中間点を投影する。2DのB−スプラインルーチン900は、パッチB−スプラインを分割し、結び目ベクトルを融合してパッチB−スプラインの各半分が不整合B−スプラインに適合するようにする。2DのB−スプラインルーチン900は、既存のB−スプライン形状を置換するパッチB−スプラインに対するパラメータ範囲を判断し、置換領域において再分割されたパッチB−スプラインからこれらのB−スプラインに制御点を複写する。2DのB−スプラインルーチン900は、良好なB−スプライン品質(例えば、位置、車両方位、曲率誤差において誤差許容範囲の)を保証しながら、あらゆる不用な結び目(例えば、B−スプラインを適合化する結び目融合段階に起因する)を削除する。
【0061】
ブロック906では、2DのB−スプラインルーチン900は、タイル境界を跨ぐB−スプラインを整合化する。タイル間のB−スプラインは、ブロック904を参照して説明したものと同様の方式で整合化される。この整合化では、第1のB−スプラインに対する曲線当て嵌めは、1つのタイル内にあり、第2のB−スプラインに対する曲線当て嵌めは、隣接タイル内にあり、パッチB−スプラインは、タイル境界を横切って当て嵌めが行われる。タイルを横切ってのB−スプライン整合化は、タイル境界において継ぎ目のないC2のB−スプライン接合部を作り出す。
【0062】
ブロック908では、2DのB−スプラインルーチン900は、3つ又はそれよりも多くの道路が出会う交差点におけるB−スプライン端を整合化する。各交差点において、2DのB−スプラインルーチン900は、自己交差点を含む交差リンクチェーンB−スプラインを探し出す。自己交差B−スプラインを含む2つのB−スプラインの交差点を識別する技術は、当業技術で公知である。交差するB−スプラインの各々に対して、2DのB−スプラインルーチン900は、交差点を十字路B−スプライン(すなわち、4つのセグメントが単一のノードで出会う)、T字路、又は複合交差点(すなわち、4つよりも多くのセグメントが単一のノードで出会う)として分類する。2DのB−スプラインルーチン900は、これらの道路を表すB−スプラインを共通ノードにおいて接合する。
【0063】
ブロック910では、2DのB−スプラインルーチン900は、スプラインにおける最適な分割場所を判断する。ノードが交差点ではない場合には、2DのB−スプラインルーチン900は、ノードをリンクチェーンのB−スプライン上に投影し、分割場所を識別する。ノードが交差点ノードである場合には、2DのB−スプラインルーチン900は、ブロック908を参照して説明した交差点分類に基づいて最適な分割場所を判断する。
【0064】
ブロック912では、2DのB−スプラインルーチン900は、ブロック910で判断された分割場所を用いてノードにおいてリンクチェーンのスプラインを分割し、各セグメントに対して1つの個々のB−スプラインを形成する。十字路B−スプラインでは、2DのB−スプラインルーチン900は、スプラインをこれらのスプラインが交差する場所で分割し、道路が出会う共通の端点を作成する。
T字路では、近似B−スプライン曲線当て嵌め技術の性質に起因して、2つのリンクチェーンB−スプラインは、T字路で交差するか又は交差しない可能性がある。交差するT字路リンクチェーンのB−スプラインでは、2DのB−スプラインルーチン900は、あらゆる重複区間を切り取って廃棄する。非交差のT字路では、2DのB−スプラインルーチン900は、繋ぐ側の道路に対する終端B−スプラインを主道路リンクチェーンのB−スプラインに延長又は短絡させる(すなわち、曲げる又はシフトする)ことによって交差点の場所を作成する。主道路B−スプラインは、終端B−スプラインが延長及び短絡の後に主道路B−スプラインに接合する場所で分割される。B−スプラインの形状又は位置を延長及び調節するための技術は当業技術で公知である。
【0065】
4つよりも多くのセグメントが単一のノードで出会う多重リンク交差点に対して、2DのB−スプラインルーチン900は、セグメントが共通ノードで出会うように2Dスプライン幾何学形状を調節する。B−スプラインの局所サポート、及びこれらのB−スプラインがアフィン変換に対して不変量であるという事実に起因して、B−スプラインは、形状及び位置の調節に非常に適するものにされる。B−スプライン幾何学形状を調節するための技術は、当業技術で公知である。
【0066】
各多重リンク交差点に対して、2DのB−スプラインルーチン900は、交差点ノードの共通の2Dの場所を判断する。最適な場所は、交差点幾何学形状、複雑度、及び周囲のリンク接続性に依存する。次に、B−スプラインの局所的な曲率又は車両方位の品質に影響を与えずにこれらのスプラインを整合化するために、交差点の近くでB−スプラインはシフトされるか、又はこれらのスプラインの2Dの形状が調節される。調節段階の後に、2DのB−スプラインルーチン900は、共通の交差点の場所においてB−スプラインを分割する。
【0067】
ブロック914では、2DのB−スプラインルーチン900は、2Dの曲率情報を2DのB−スプライン内に符号化する。符号化された曲率情報は、B−スプラインに沿って、曲率が弧長に対して線形に変化する場所を識別する。B−スプライン上で符号化された場所の各対の間では、各区間で曲率が弧長に対して線形に変化するので、曲率は、線形「クロソイド」と見なされる。これらのクロソイドの場所は、最初に、弧長の関数としての曲率のグラフであるB−スプラインに関する「曲率プロフィール」を作成することによって判断される。次に、曲率プロフィールは、線形曲率区間によって曲率プロフィールを近似するために、ポリラインによって近似される(Douglas−Peukerアルゴリズムに基づいて)。B−スプラインに沿ったポリラインの頂点の場所は、これらの場所にタグ付き結び目を挿入することによってB−スプライン内に符号化される。
【0068】
ブロック916では、2DのB−スプラインルーチン900は、結び目ベクトルを最適化する。ブロック902における曲線当て嵌め中に用いられる結び目ベクトルは、結び目数及び結び目の間隔に関して必ずしも最適ではない。結び目ベクトルは、2Dの位置、形状、車両方位、及び曲率の品質を維持しながら、物理的記憶媒体上の記憶スペースを最小にするように最適化される。
2DのB−スプラインルーチン900は、ブロック914で判断された2DのB−スプラインに沿った対応するクロソイドセグメント(すなわち、線形曲率領域)を識別することによって最適な結び目配置を探し出す。長いクロソイドセグメントは、等しい弧長間隔で結び目を挿入することによって近似することができる。これらの追加結び目は、長いクロソイドセグメントを単一の結び目スパンを用いて正確に表すことができない場所でB−スプライン曲線の形状を維持する。
【0069】
2DのB−スプラインルーチン900は、ブロック914で曲率を符号化するのに用いられなかったあらゆる結び目、又は元のB−スプラインの2Dの位置、形状、車両方位、及び曲率の許容範囲にこのB−スプラインを保つのに必要とされないあらゆる結び目を削除する。一般的に、最適な結び目間隔は、曲率に反比例する(すなわち、曲率が大きい程、結び目はより近く離間される)。
【0070】
リンクチェーンへの2D曲線当て嵌め
図12は、2DのB−スプライン曲線当て嵌めルーチン1200の流れ図である。ブロック1202では、2DのB−スプライン曲線当て嵌めルーチン1200は、曲線当て嵌め中に撓み及び振動のような曲線形状不規則性を防止する。例示的な防止段階は、直線形状を維持し、撓まない又は振動しないように曲線を拘束するためのリンクチェーンのうちで直線と分類される区間内への「仮想」形状点の挿入を含む。
【0071】
ブロック1204では、2DのB−スプライン曲線当て嵌めルーチン1200は、ある一定の機能部類のリンクチェーン(例えば、高速道路、主要幹線)又は折り返しリンクチェーンを除く全ての道路に対するリンクチェーン内であらゆる捩れが存在するかを判断する。形状点は、この形状点で出会うリンクセグメントの間の角度が「捩れ」閾値を超えた場合に、「捩れ」として識別される。例えば、捩れ閾値は、35度に設定することができる。
【0072】
捩れを表すスプライン曲線では、曲線は、捩れの場所で不連続導関数(すなわち、C0連続性のみ)を有する。ブロック1204においてリンクチェーン内に1つ又はそれよりも多くの捩れが検出された場合には、ブロック1206において、2DのB−スプライン曲線当て嵌めルーチン1200は、各リンクの場所においてリンクチェーンを捩れの間の個々の部分リンクチェーンに分割する。リンクチェーン内に捩れが存在しない場合には、ブロック1218において、リンクチェーン全体に対して2Dスプライン当て嵌めが実施される。
【0073】
ブロック1208では、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック902を参照して説明した2D曲線当て嵌め技術を用いて、部分リンクチェーンの各々に対して2DのB−スプラインで曲線当て嵌めを行う。得られるスプライン曲線は、捩れの場所においてC0連続性を有しながら出会う。
ブロック1210では、リンクチェーンは、ここでは複数のスプラインによって表されるので、2DのB−スプライン曲線当て嵌めルーチン1200は、部分リンクチェーンを単一のスプラインへと互いに縫合する。個々のB−スプライン曲線を単一の連続B−スプライン曲線へと接合するために、2DのB−スプライン曲線当て嵌めルーチン1200は、3次不均一B−スプラインが曲線上のこの曲線が捩れる場所(すなわち、この曲線がC0連続性のみを有するところ)で結び目多重度3を有するという不均一B−スプラインの性質を利用する。
【0074】
B−スプライン曲線は、一度に1つ追加され、従って、複数のB−スプライン曲線を接合することが望ましい場合は、この接合は、最初の曲線に第2の曲線を追加して単一の曲線を形成し、この単一の曲線に対して次の曲線を追加することができ、以降同様に続けることによって達成される。B−スプライン曲線を接合するための技術は、当業技術で公知である。共通端点を有する2つの不均一3次B−スプライン曲線は、これらの曲線の制御点配列を連結し、それらの結び目ベクトルを追加することによってC0連続性を有しながら接合することができる。
【0075】
ブロック1212では、2DのB−スプライン曲線当て嵌めルーチン1200は、B−スプライン形状不規則性を補正する。B−スプライン形状不規則性は、撓み及び振動を含むことができるが、ノイズの多い曲率のような他の曲線不規則性が存在する領域を含むことができる。不規則性は、セグメントの曲線を定めるのに不十分な形状点しか用いられない場合、又は道路セグメントが劣悪に配置された形状点しか持たない場合に発生する可能性がある。B−スプラインが直線ではなく、基本的な道路幾何学形状が仮想形状点を追加した後には直線であることが既知である場合には、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック1212において、B−スプラインを直線化するために制御点を操作することができる。ノイズの多い曲率領域を平滑にするのに同様の技術を用いることができる。
【0076】
ブロック1204に戻ると、リンクチェーンが捩れを持たない場合には、ブロック1214において、2DのB−スプライン曲線当て嵌めルーチン1200は、リンクチェーンがあらゆる端にランプを含むかを判断する。リンクチェーンがランプを含む場合には、ブロック1216において、2DのB−スプライン曲線当て嵌めルーチン1200は、正しいランプ形状及び曲率を保証するために、端ノード及び形状点のランプオフセットを実施する。図13に示しているように、ランプが自動車専用道路上に合流するランプ端において正しい方位及び曲率を得るために、スプライン当て嵌めにおいて、ランプリンクチェーンのノード及び形状点に加えて自動車専用道路のノード及び形状点が用いられる。
【0077】
2DのB−スプライン曲線当て嵌めルーチン1200は、スプライン当て嵌めに向けて以下の通りにランプを通じる点を編成する。
1.リンクチェーンがランプで始まるのか、又は終わるのかを判断する。
2.ランプリンクチェーンと自動車専用道路との間で共通するノードを識別する。
3.ランプリンクチェーンが一部の自動車専用道路で終わる場合には、自動車専用道路リンクセグメントとランプリンクセグメントの間の角度、及び機能部類に基づいて対応する自動車専用道路を選択する。
4.自動車専用道路リンクセグメントとランプリンクセグメントの間の角度が、閾値(例えば、50度)を超える場合には、スプラインは、自動車専用道路形状点を通じて当て嵌められない。
5.自動車専用道路リンクセグメントとランプリンクセグメントの間の角度が、閾値(例えば、50度)よりも小さい場合には、ランプ形状が自動車専用道路形状に追従することを保証するために、自動車専用道路点を編成することによってスプライン当て嵌めは自動車専用道路内に延長される。
6.ランプノード及び場合によっては自動車専用道路点は、図14に示しているように車線幅に対処するようにオフセットされる。ランプの端ノード及び場合によっては隣接ノード/形状点は、ランプリンクチェーン、及び後のスプラインが、自動車専用道路の中心線への不自然な接続ではなく、ランプから自動車専用道路車線への実際の自動車経路を辿るようにシフトされる。
7.編成されてオフセットされたノード及び形状点にスプラインを当て嵌める。
8.ブロック912で自動車専用道路ノードにおいてスプラインを切り取る。
【0078】
図14に示しているランプオフセットベクトル1402の長さは、既知又は推定の自動車専用道路幅に依存する。推定幅は、自動車専用道路の車線数、自動車専用道路の走行方向制限(すなわち、一方向又は双方向)、及びランプにおける車線数(ランプは常に一方向であると仮定される)に基づいて判断される。ランプスプラインが自動車専用道路の中心線に向って歪むのを回避するために、2DのB−スプライン曲線当て嵌めルーチン1200は、ランプの内部形状点及び/又はノードが、オフセットされた自動車専用道路/ランプ共通ノードよりも自動車専用道路の中心線に近くないことを保証する。ランプの内部形状点及び/又はノードの一部が近い場合には、2DのB−スプライン曲線当て嵌めルーチン1200は、ランプ/自動車専用道路交差点ノードから分離する自動車専用道路リンクセグメントに対して平行な線であり、交差点ノードをオフセットすることによって生じる想像ノードを通過する線上にランプの内部形状点及び/又はノードを投影する。図13は、一般的な四葉のクローバー状ランプにおいて得られるランプスプライン形状を示している。
ブロック1218では、2DのB−スプライン曲線当て嵌めルーチン1200は、ブロック902を参照して説明したように、リンクチェーンに2DのB−スプラインを当て嵌める。ブロック1212では、2DのB−スプライン曲線当て嵌めルーチン1200は、上述のようにB−スプライン形状不規則性を補正する。
【0079】
ブロック1214に戻ると、リンクチェーンがランプではない場合には、ブロック1220において、2DのB−スプライン曲線当て嵌めルーチン1200は、リンクチェーンが環状交差点であるかを判断する。リンクチェーンが環状交差点である場合には、ブロック1222において、2DのB−スプライン曲線当て嵌めルーチン1200は、環状交差点を3周回するようにリンクチェーンを延ばす。環状交差点に対する複数周回のスプライン当て嵌めは、水滴形の環状交差点幾何学形状を防止する。その後、ブロック912において、重複環状交差点スプラインの適切な区間が切り取られて、環状交差点に対する個々のスプラインが得られる。
【0080】
3DのB−スプラインの作成
図15は、3DのB−スプラインを作成する方法1500の流れ図である。3DのB−スプラインを作成する方法1500は、MPE116における使用に向けて地理データベース106内にデータを記憶する前に、あらゆるコンピュータ上で実行することができるソフトウエアルーチン(又は複数のソフトウエアルーチン)である。
3DのB−スプラインは、2DのB−スプライン(2DのB−スプラインルーチン900を用いて得られる)を1Dの標高スプラインと組み合わせることによって作成される。1Dの標高スプラインは、車両において収集されたGPSデータにスプラインを当て嵌めることによって作成される。3Dスプラインを必要とする道路を収集車両を用いて運転することにより、大量の順次データ点(緯度、経度、高度、車両方位、勾配、及び/又は速度データが関連付けられたもの)がもたらされる。絶対的及び相対的な地理的場所の精度を維持するために、データ点は、GPS及び慣性測定ユニット(GPS/IMU)を用いて収集される。高度点データセットは、あらゆるデータ異常を削除するためにフィルタリング及び調節される。フィルタリングは、給油停車、オフロード運転、及び方向転換操縦等に起因するあらゆる外生データを除去する。次に、データセットは、空間及び時間連続性に基づいて小さいデータセットへとまとめられる。
【0081】
ブロック1502では、記憶及びデータセット間の地理参照を容易にするために、高度点は、既知の幾何学形状の2D道路中心線のデータベース上にこれらの高度点を投影する(2DのXY投影を用いて)ことによって編成される。各点は、特定の道路リンクに割り当てられ、このリンクに沿う特定の距離へとパラメータ化される。この関連付けにより、標高データが道路データベース内の既存の情報を参照することが可能になる。
【0082】
3DのB−スプラインルーチン1500は、既知の道路リンク経路(道路網)に沿って進み、点を各可能なリンク経路上に投影することにより、点から2Dリンクへの投影を実施する。可能なリンク経路数は、一方向の走行方向制限及び機能部類レベルのようなデータベース内で符号化された道路制限によって絞り込まれる。GPS点記録に対する正しいリンク経路を得るために、単一の正しい経路が見つかるまで複数の経路が試験される。複数の有効な経路が見つかった場合には、元のGPS経路形状とリンク投影経路形状の間の差に基づいて罰則基準が計算され、最小の合計2Dオフセット、角度差、形状差、及び/又は走行距離差を有する経路が正しい道路リンクシーケンスとして選択される。このリンクシーケンスを標高リンクチェーンと呼ぶ。
【0083】
ブロック1504では、3DのB−スプラインルーチン1500は、1Dの高度B−スプラインを標高リンクチェーンに沿って高度点に当て嵌める。それによって記憶スペース及びデータベースI/O帯域幅を節約するコンパクトな標高表現が可能になる。ブロック1502において得られた高度点は、リンクチェーン順序及び2Dの点/リンク投影から見つかるリンクパラメータ距離に基づいて標高リンクチェーンに沿って単調に整列する。投影された標高点の各々までの2D弧長距離を計算するために、標高リンクチェーンに対してトラバース測定が行われる。このデータ対(リンクチェーン弧長と標高との)は、1Dの標高スプラインを計算するためのデータセットを形成する。
【0084】
3DのB−スプラインルーチン1500は、1Dの標高スプラインを作成する前に標高リンクチェーンを小さいリンクチェーンに分割する。目標は、各道路リンクに対して個々のスプラインを作成することであるが、リンク境界を跨ぐ平滑な高度B−スプラインを維持するために、複数のリンクチェーン区間(例えば、1000メートルまでの)にわたる中間スプラインが生成される。3DのB−スプラインルーチン1500は、同様に標高リンクチェーン境界を横切って平滑なスプラインが生成されるように、大きいリンクチェーンに重なっている。
【0085】
一部の場合には、隣接リンクを跨ぐ単一の標高スプライン当て嵌めは望ましくない。従って、3DのB−スプラインルーチン1500は、基本的道路データベース特性及び運転経路に基づいて大きいリンクチェーンを更に分割し、これらのリンクチェーンは、標高が突然の勾配又は標高変化を含む可能性がある場所で分割される。例えば、チェーンは、経路が80度よりも大きく屈曲する時(例えば、異なる道路に乗る)、及びリンクチェーンがデータ格差を含む場合に分割される。次に、3DのB−スプラインルーチン1500は、道路リンクノードの場所で1D高度B−スプラインを分割する。
【0086】
3DのB−スプラインルーチン1500は、得られるB−スプラインを各スプラインが2Dの道路リンク参照情報に連結されるようにデータベースに記憶する。更に、各道路リンクの標高スプラインに対して2つの横断時標高(スプライン開始及び終了点における)が保存される。横断時標高は、スプラインが道路リンクノードを横切る時のスプラインの高度を記憶する。このリンクノードへの参照情報が記憶される。標高スプラインが重複する場合には、単一の道路リンクノードは、複数の横断時標高を含むことになる。この横断時標高データベースは、標高スプラインの可能な交差場所を説明し、3DのB−スプラインルーチン1500が、ブロック1506において、交差場所及び交差するスプラインの間の高度差を効率的に照会することを可能にする。
【0087】
ブロック1502及び1504では、3DのB−スプラインルーチン1500は、以前の道路属性把握内容をスプラインに追加することができるように、高度B−スプラインデータを道路リンク地図データベースに関連付ける。それによって標高データが交差点にあるのか、又はランプ(交差する標高が異なることが許される)上にあるのかを把握するなどの高度B−スプラインの知的処理が可能になる。従って、より正確な標高に関する解法が可能である。
【0088】
ブロック1506では、3DのB−スプラインルーチン1500は、道路網に沿って走行する車両内に設けられたGPS/IMUによって収集された高度データを調節する。高度補正ルーチンの例に対して、図16を参照してより詳しく解説する。GPS/IMU地理参照機器の精度限界により、収集されたデータ点の絶対高度にある程度のドリフトが導入される可能性がある。その結果、2つの道路が交差する時に、各スプラインは、同じ交差点に対して若干異なる高度を間違って説明する可能性がある。一部のスプライン交差ノードは、異なる高度を有する(別の道路の上方を横断する橋等)。従って、標高補正ルーチンは、3Dスプラインが縦断勾配で交差するところを判断する。高度B−スプラインに関連付けられた道路地図データベース(B−スプライン道路リンクを参照情報として用いる)を利用することにより、道路リンクがどこで交差するか、これらのリンクが同じ高度でつながっているか、又はリンクが高架通路であるか、又は地下交通路であるかを把握することができる。横断時標高データベースは、この目的のためにブロック1504で作成されたものである。
【0089】
図16は、標高補正ルーチン1600の流れ図である。標高補正ルーチン1600は、標高スプラインのデータベース全体が単一の処理で補正されるように、好ましくは広域操作として実施される。1つの標高データセットを移動することにより、このデータセットが交差する他の標高データセットの当て嵌めが影響を受けるので、広域的解法が望ましい。広域的解法の作業負荷を最小にするために、標高補正ルーチン1600は、横断時標高(ブロック1504で得られた)だけにアクセスする。データは、横断時標高データベースに対して実施される1回のデータベース照会によってアクセス可能である。このアクセスは、標高スプラインが交差するノードを探し出し、スプラインが重複するノードのみが戻される。それによって標高補正ルーチン1600は、実際の標高スプラインをアクセス又は評価する必要なく、標高差を調べることが可能になる。
【0090】
標高補正ルーチン1600は、2つの操作を高度スプラインに適用する。第1に、スプラインが、同じ標高にある共通の道路リンクノードを横断するように、標高が垂直に補正される。第2に、多くの場合に、単一の道路リンクに対して複数の標高スプラインが利用可能である。標高補正ルーチン1600は、各道路リンクに対して単一の最適な高度スプラインを選択する。この後、選択された最適の高度スプラインは、高度スプライン作成処理の残りの部分に用いられる。
【0091】
道路リンクノードにおいて標高を整合化するのに、標高は、可能な限り最小限にしか変更されず、データにおける整合性を維持することに重点が置かれる。標高データは、その周囲の時間的に局所的なデータと比較すると非常に正確である。しかし、ドリフトに起因して、絶対標高は、大きい偏差を含む可能性がある。従って、整合化処理は、近接データ(高い相対精度)の使用を最大化し、異なるデータベース(絶対標高依存の)間の切り換えを最小にする。冗長な標高データの平均化は勧められない。代替的に、標高補正ルーチン1600は、最良のデータセットから単一の最良の標高を選択することによってノードの標高を判断する。理想的には、整合性を維持するために、可能な限り最大の近くの標高ノードに対して同じデータセットが用いられる。
【0092】
ブロック1602では、標高データセットは、これらのデータセットが標高において如何に良好に他の近接データセットの標高と合致するかということ、運転距離、及び運転精度信頼度に基づいて順位付けされる。この順位は、運転行程が、標高補正ルーチン1600において適用される順序を制御する。この順序は、どの標高が元の標高スプラインから直接に割り当てられるか(「基本ノード」標高と呼ぶ)、及び既存の標高スプラインに当て嵌める上でどの標高が調節されるか(補正標高)を判断する。更に、この順序は、どの標高スプラインが(単一の道路リンクに対して複数のスプラインが利用可能である時に)、ブロック1508において最終高度スプラインを生成する時に用いるべきスプラインとして選択されるかを判断する。
【0093】
ブロック1604では、最低信頼度レベルから外れる運転行程が整合化処理から除外される。それによって信頼性の低いデータが、不用な標高オフセットを引き起こすことが防止される。
ブロック1606では、標高補正処理を開始するのに最上位の運転行程が選択される。最初の運転行程は、いかなる既存の基本ノードの標高とも重複しないので、最初の運転行程は、標高において調節する必要はない。従って、ブロック1608では、標高補正ルーチン1600は、補正曲線なしに最初の運転行程におけるノードを「基本ノード」として割り当てる。最初の運転行程と交差する以降(ブロック1612より)のあらゆるスプラインは、基本ノードと整合化するように変更される。更に、ブロック1610では、標高補正ルーチン1600は、この運転行程からの標高スプラインを関連の2D道路リンクに対する最適スプラインとして割り当てる。
【0094】
ブロック1612では、標高補正ルーチン1600は、順位付けされたリストから、前に固定された運転行程の基本ノードと交差する次に最良の運転行程を選択する。ブロック1614では、標高補正ルーチン1600は、標高ノードを検査して、どのノードが、前の運転行程の前に固定されたもの(基本ノード)に対応するかを調べる。運転行程のノードを既存の基本ノードの標高と整合化するために、オフセットが計算される。
【0095】
運転行程ノードを既存の基本ノードに対して調節するのに加えて、基本ノード間で標高補正が線形に適用される。元の標高データを保持するために、元の標高スプラインを変更する代わりに仮想補正ポリラインが作成される。元の標高スプラインと仮想補正ポリラインの重ね合わせは、正しく整合化された高度スプラインを生じる。仮想ポリラインは、元のスプラインが他方の高度スプラインの基本ノードに当て嵌まるように補正するのに必要な標高オフセットを定める線形形状である。線形補正を用いることにより、標高補正ルーチン1600が、正確な場所で精密に補正を定める(すなわち、オーバーシュートがない)ことが可能になり、同様に標高補正ルーチン1600が、大きい2D距離にわたって補正を線形に分散させることが可能になる。
【0096】
この処理の恩典は、標高スプラインデータベースが一度もアクセスされず、スプライン形状を読み取り、変更し、及び保存する必要がないことである。この処理は、大きい広域操作であるから、データベースI/O及びCPU要件の有意な節約が行われる。データベース作動は、最小限のデータセットを読み取ることへと変形され、複数の横断時標高を有するノードのみが考察される。書込み作動は、各運転行程に対して単一の線形補正ポリラインを保存する段階、及び標高スプライン上のステータスフラグ(スプラインが、道路リンクに対する独特な代表として選択されたか否かを示す)を更新する段階という2つの段階へと変形される。
【0097】
ブロック1616では、標高補正ルーチン1600は、計算された整合化オフセットを表す仮想の線形ポリラインを作成する。仮想ポリライン補正は、運転行程における非基本ノードの補正ノード高度を判断するのに用いられる。ブロック1618では、標高補正ルーチン1600は、補正高度のノードを固定の基本ノードリストに追加する。
各運転行程が適用される時に、運転行程に関連付けられた道路リンクが検査され、これらのリンクに、以前の運転行程からの独特な「最適」高度スプラインが以前に割り当てられているか否かが調べられる。ブロック1620では、標高補正ルーチン1600は、最適のスプラインを持たないリンクに現在の運転行程データセットからの標高スプラインを割り当てる。その結果、標高が固定された運転行程と対応する高度スプラインセットが生じ、この高度スプラインセットは、以降の標高データセットに対する基礎を与える。
【0098】
ブロック1622では、標高補正ルーチン1600は、検査を行って既存の基本ノードの標高と重複する更に別の運転行程データセットが存在するか否かを調べる。重複データセットが存在する場合には、ブロック1612において、標高補正ルーチン1600は、既存の基本ノードと重複する次に最良の運転行程を選択し、上記処理が繰り返される。重複運転行程を処理し終わると、ブロック1624において、標高補正ルーチン1600は、いずれか残りの未処理運転行程が存在するか否かを検査する。未処理運転行程が残っている場合には、ブロック1606において、標高補正ルーチン1600は、残りの最良の運転行程に対して新しい整合化処理を再開する。
好ましくは、標高補正ルーチン1600は、運転行程の全てを処理し終わるまで繰り返される。処理の後に、標高補正曲線がデータベースに記憶され、単一で独特な標高スプラインが道路リンクに関連付けられる。
【0099】
図15に戻ると、ブロック1508において、3DのB−スプラインルーチン1500は、方法800において作成されたリンクチェーンに対して単一の多重リンク高度スプラインを作成する。リンクチェーン内の各リンク(道路セグメント)に対して、前に選択された最適な高度B−スプライン(ブロック1506における)が、例えば、1メートルのXY弧長毎に標高点に変換して戻される。補正ポリラインオフセット(ブロック1506)が計算され、各点に追加される。結果は、リンクチェーンのXY弧長によってパラメータ化された高度が整合化された点の集合である。
【0100】
3DのB−スプラインルーチン1500は、新しい高度B−スプラインを複数のリンクに対して標高がパラメータ化された点のリストに当て嵌める。各連続する曲線当て嵌めは、前の曲線当て嵌めからのスプラインと重複する。重複曲線当て嵌めは、曲線当て嵌めの間の境界における形状整合性を保証する。高度曲線当て嵌め技術は、指定の曲線当て嵌めZ許容範囲に基づいて最適な結び目ベクトルを再帰的に判断する。指定の高度曲線当て嵌め許容範囲は、高度が急激に変化する時により多くの結び目が存在し、高度が緩慢に変化する時により少ない結び目が存在するように結び目ベクトル間隔を判断するのに用いられる。高度B−スプラインにおける高度点は、リンクチェーンの弧長によってパラメータ化されているので、高度B−スプラインは、2DのB−スプラインに適合する結び目ベクトルパラメータ空間を有し、それによってブロック1510において、これらのB−スプラインを3DのB−スプラインへと融合することが可能になる。
【0101】
ブロック1510では、3DのB−スプラインルーチン1500は、方法900からの2DのB−スプラインと、ブロック1508からの高度B−スプラインとを融合し、3DのB−スプラインを得る。3DのB−スプライン表現は、高度B−スプラインのZ成分を2DのB−スプラインルーチン900によって作成された2DのB−スプラインに追加することによって作成される。2DのB−スプライン及び高度B−スプラインの両方に対するパラメータ空間は、同じXYリンク幾何学形状の弧長によってパラメータ化されているので、これらのB−スプラインは、これらの結び目ベクトルを融合することによって融合することができる。
【0102】
3DのB−スプラインルーチン1500は、両方のB−スプラインの最大結び目値によって2DのB−スプライン及び高度B−スプラインの各々の結び目ベクトルをスケーリングする。次に、3DのB−スプラインルーチン1500は、結び目挿入を用いて2DのB−スプラインの結び目を高度B−スプラインの中に挿入し、高度B−スプラインの元の結び目を2DのB−スプラインの中に挿入する。その結果、両方のB−スプラインが同じ結び目ベクトルを有し、同じパラメータ空間を共有する。
【0103】
3DのB−スプラインルーチン1500は、以下に示すように、3DのB−スプラインの制御点のZ値を高度B−スプラインのZ値のものと等しく設定することにより、2DのB−スプラインから3DのB−スプラインを作成する。
【0104】
【数11】
【0105】
ブロック1512では、3DのB−スプラインルーチン1500は、3DのB−スプラインに勾配情報を符号化する。この符号化は、3DのB−スプライン内に結び目をタグ付けすることによって達成され、これらの結び目は、電子視野アプリケーション208のための線形勾配プロフィールを生成するのに用いることができる。高度が急激に変化する時により多数の勾配結び目が存在し、高度が緩慢に変化する時により少数の結び目が存在するように、符号化される結び目ベクトル間隔を判断する上で指定の標高及び勾配許容範囲が用いられる。更に、勾配変曲点が発生する場所により多くの勾配点が追加される。3DのB−スプラインルーチン1500は、標高、勾配、及び勾配変化に基づいて、Douglas−Peuker線近似解析を用いて符号化された勾配結び目の場所を識別する。この解析は、データ点が線近似の許容範囲に入ると終了する。3DのB−スプラインルーチン1500は、高度分布に沿って各Douglas−Peukerポリライン点に「タグ付き」勾配結び目を挿入する。
【0106】
ブロック1514では、3DのB−スプラインルーチン1500は、ブロック1512における結び目挿入を評価することによってサイズを最適化する。得られる結び目挿入は、B−スプラインの3D形状を表すのに必要なものよりも多くの結び目を生じる可能性があるから、3DのB−スプラインルーチン1500は、勾配プロフィール及び曲率プロフィールを符号化するのに又はB−スプライン品質を維持するのに必要ではない結び目を削除する。
【0107】
上述の詳細説明が限定的ではなく例示的なものとして捉られること、及び全ての均等物を含む以下の特許請求の範囲が本発明の範囲を定めるように意図されることが理解されることを意図している。これらの特許請求の範囲は、その旨を明記しない限り、説明した順序又は要素に限定されると解釈すべきではない。従って、以下の特許請求の範囲及びその均等物の範囲及び精神に該当する全ての実施形態を本発明として特許請求する。
【符号の説明】
【0108】
100 地図援用ADASアーキテクチャ
106 地理データベース
110 車両内データバスインタフェース
114 運転者支援アプリケーション
116 地図及び測位エンジン(MPE)
【特許請求の範囲】
【請求項1】
運転者支援アプリケーションのための幾何学形状を作成する方法であって、
道路網の一部分を表す複数のセグメントからリンクチェーンを作成する段階と、
前記リンクチェーンから2DのB−スプラインを作成する段階と、
前記リンクチェーン、前記2Dスプライン、及び高度データから3DのB−スプラインを作成する段階と、
前記2DのB−スプライン及び前記3DのB−スプラインを表すデータをデータベースに記憶する段階と、
を含み、
少なくとも1つの運転者支援アプリケーションが、前記記憶された2DのB−スプラインデータ及び前記3DのB−スプラインデータから生成される道路幾何学形状情報を用いる、
ことを特徴とする方法。
【請求項2】
リンクチェーンを作成する段階は、末端ノードに到達するまで両方の方向に該リンクチェーンを成長させる段階を含むことを特徴とする請求項1に記載の方法。
【請求項3】
リンクチェーンを作成する段階は、ノードを通る可能な経路を識別する段階、及び該ノードを通る該可能な経路の1つを選択する段階を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記ノードを通る前記可能な経路の1つを選択する段階は、該可能な経路の各々に対して経路重みを計算する段階を含み、
前記経路重みは、前記ノードを通じた方向変化の量とリンク間の車線数の差とに基づいている、
ことを特徴とする請求項3に記載の方法。
【請求項5】
2DのB−スプラインを作成する段階は、2DのB−スプラインをリンクチェーンに当て嵌める段階を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記2DのB−スプラインを前記リンクチェーンに当て嵌める段階は、該2DのB−スプラインに沿った曲率の変化を最小にする段階を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記2DのB−スプラインを前記リンクチェーンに当て嵌める段階は、該2DのB−スプラインに沿った最小二乗誤差を最小にする段階を含むことを特徴とする請求項5に記載の方法。
【請求項8】
2DのB−スプラインを作成する段階は、パッチB−スプラインを用いて2DのB−スプライン端を整合化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項9】
2DのB−スプラインを作成する段階は、交差点で2DのB−スプライン端を整合化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項10】
2DのB−スプラインを作成する段階は、該2DのB−スプラインを分割して前記リンクチェーンにおける各セグメントに対応する2DのB−スプラインを形成する段階を含むことを特徴とする請求項1に記載の方法。
【請求項11】
2DのB−スプラインを作成する段階は、曲率情報を該2DのB−スプライン内に符号化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項12】
前記高度データは、前記道路網上を走行する収集車両に設置されたGPS/IMUデバイスから得られることを特徴とする請求項1に記載の方法。
【請求項13】
前記高度データは、既知の幾何学的2D道路中心線の地理データベース上に投影されることを特徴とする請求項1に記載の方法。
【請求項14】
3DのB−スプラインを作成する段階は、前記高度データを調節して標高不整合性を補正する段階を含むことを特徴とする請求項1に記載の方法。
【請求項15】
前記高度データを調節する段階は、標高を垂直に補正する段階、及び各セグメントに対して単一の高度スプラインを選択する段階を含むことを特徴とする請求項14に記載の方法。
【請求項16】
3DのB−スプラインを作成する段階は、前記リンクチェーンに対して高度スプラインを作成する段階を含むことを特徴とする請求項1に記載の方法。
【請求項17】
3DのB−スプラインを作成する段階は、前記2DのB−スプラインを前記高度スプラインと融合する段階を含むことを特徴とする請求項16に記載の方法。
【請求項18】
前記2DのB−スプラインを前記高度スプラインと融合する段階は、該高度スプラインのz成分を該2DのB−スプラインに追加する段階を含むことを特徴とする請求項17に記載の方法。
【請求項19】
前記2DのB−スプラインを前記高度スプラインと融合する段階は、該2DのB−スプライン及び該高度スプラインの結び目ベクトルを融合する段階を含むことを特徴とする請求項17に記載の方法。
【請求項20】
3DのB−スプラインを作成する段階は、勾配情報を該3DのB−スプライン内に符号化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項1】
運転者支援アプリケーションのための幾何学形状を作成する方法であって、
道路網の一部分を表す複数のセグメントからリンクチェーンを作成する段階と、
前記リンクチェーンから2DのB−スプラインを作成する段階と、
前記リンクチェーン、前記2Dスプライン、及び高度データから3DのB−スプラインを作成する段階と、
前記2DのB−スプライン及び前記3DのB−スプラインを表すデータをデータベースに記憶する段階と、
を含み、
少なくとも1つの運転者支援アプリケーションが、前記記憶された2DのB−スプラインデータ及び前記3DのB−スプラインデータから生成される道路幾何学形状情報を用いる、
ことを特徴とする方法。
【請求項2】
リンクチェーンを作成する段階は、末端ノードに到達するまで両方の方向に該リンクチェーンを成長させる段階を含むことを特徴とする請求項1に記載の方法。
【請求項3】
リンクチェーンを作成する段階は、ノードを通る可能な経路を識別する段階、及び該ノードを通る該可能な経路の1つを選択する段階を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記ノードを通る前記可能な経路の1つを選択する段階は、該可能な経路の各々に対して経路重みを計算する段階を含み、
前記経路重みは、前記ノードを通じた方向変化の量とリンク間の車線数の差とに基づいている、
ことを特徴とする請求項3に記載の方法。
【請求項5】
2DのB−スプラインを作成する段階は、2DのB−スプラインをリンクチェーンに当て嵌める段階を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記2DのB−スプラインを前記リンクチェーンに当て嵌める段階は、該2DのB−スプラインに沿った曲率の変化を最小にする段階を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記2DのB−スプラインを前記リンクチェーンに当て嵌める段階は、該2DのB−スプラインに沿った最小二乗誤差を最小にする段階を含むことを特徴とする請求項5に記載の方法。
【請求項8】
2DのB−スプラインを作成する段階は、パッチB−スプラインを用いて2DのB−スプライン端を整合化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項9】
2DのB−スプラインを作成する段階は、交差点で2DのB−スプライン端を整合化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項10】
2DのB−スプラインを作成する段階は、該2DのB−スプラインを分割して前記リンクチェーンにおける各セグメントに対応する2DのB−スプラインを形成する段階を含むことを特徴とする請求項1に記載の方法。
【請求項11】
2DのB−スプラインを作成する段階は、曲率情報を該2DのB−スプライン内に符号化する段階を含むことを特徴とする請求項1に記載の方法。
【請求項12】
前記高度データは、前記道路網上を走行する収集車両に設置されたGPS/IMUデバイスから得られることを特徴とする請求項1に記載の方法。
【請求項13】
前記高度データは、既知の幾何学的2D道路中心線の地理データベース上に投影されることを特徴とする請求項1に記載の方法。
【請求項14】
3DのB−スプラインを作成する段階は、前記高度データを調節して標高不整合性を補正する段階を含むことを特徴とする請求項1に記載の方法。
【請求項15】
前記高度データを調節する段階は、標高を垂直に補正する段階、及び各セグメントに対して単一の高度スプラインを選択する段階を含むことを特徴とする請求項14に記載の方法。
【請求項16】
3DのB−スプラインを作成する段階は、前記リンクチェーンに対して高度スプラインを作成する段階を含むことを特徴とする請求項1に記載の方法。
【請求項17】
3DのB−スプラインを作成する段階は、前記2DのB−スプラインを前記高度スプラインと融合する段階を含むことを特徴とする請求項16に記載の方法。
【請求項18】
前記2DのB−スプラインを前記高度スプラインと融合する段階は、該高度スプラインのz成分を該2DのB−スプラインに追加する段階を含むことを特徴とする請求項17に記載の方法。
【請求項19】
前記2DのB−スプラインを前記高度スプラインと融合する段階は、該2DのB−スプライン及び該高度スプラインの結び目ベクトルを融合する段階を含むことを特徴とする請求項17に記載の方法。
【請求項20】
3DのB−スプラインを作成する段階は、勾配情報を該3DのB−スプライン内に符号化する段階を含むことを特徴とする請求項1に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2010−86544(P2010−86544A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−244906(P2009−244906)
【出願日】平成21年10月1日(2009.10.1)
【出願人】(508351118)ナヴテック ノース アメリカ リミテッド ライアビリティ カンパニー (20)
【Fターム(参考)】
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2009−244906(P2009−244906)
【出願日】平成21年10月1日(2009.10.1)
【出願人】(508351118)ナヴテック ノース アメリカ リミテッド ライアビリティ カンパニー (20)
【Fターム(参考)】
[ Back to top ]