<実施の形態1>
図1は、実施の形態1における高精度地図データベース生成装置100の構成を示す機能ブロック図である。
高精度地図データベース(DB)生成装置100は、地図情報取得部10、属性値演算部20および高精度地図DB生成部30を含む。高精度地図DB生成装置100は、地図DB200から地図情報を取得し、高精度地図DB210を生成する。その地図DB200は、地図情報として、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含んでいる。
地図情報取得部10は、地図DB200から、複数の地点の座標と、その複数の地点の周辺の複数の道路リンクの情報とを取得する。それら複数の地点は、例えば列状に並んだ地点で構成されており、その場合、地図情報取得部10は、複数の地点の座標が配列された座標列データを取得する。
属性値演算部20は、方位角設定円が対象地点の後方の道路リンクと交わる第1交点と、方位角設定円が対象地点の前方の道路リンクと交わる第2交点と、を求める。方位角設定円とは、属性値演算部20が第1交点と第2交点とを求める際に、対象地点を中心に設定される円である。その対象地点とは、複数の地点のうちの一の地点に対応する。対象地点の後方とは、座標列データの一の方向である。対象地点の前方とは、座標列データの他の方向である。属性値演算部20は、第1交点と第2交点とを結ぶ方位に基づいて、対象地点における方位角を計算する。
高精度地図DB生成部30は、対象地点の座標および方位角の情報を、その対象地点の属性値として含む高精度地図DB210を生成して出力する。
図2は、高精度地図DB生成装置100が含む処理回路90の構成の一例を示す図である。地図情報取得部10、属性値演算部20および高精度地図DB生成部30の各機能は、処理回路90により実現される。すなわち、処理回路90は、地図情報取得部10、属性値演算部20および高精度地図DB生成部30を有する。
処理回路90が専用のハードウェアである場合、処理回路90は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはこれらを組み合わせた回路等である。地図情報取得部10、属性値演算部20および高精度地図DB生成部30の各機能は、複数の処理回路により個別に実現されてもよいし、1つの処理回路によりまとめて実現されてもよい。
図3は、高精度地図DB生成装置100が含む処理回路の構成の別の一例を示す図である。処理回路は、プロセッサ91とメモリ92とを有する。プロセッサ91がメモリ92に格納されるプログラムを実行することにより、地図情報取得部10、属性値演算部20および高精度地図DB生成部30の各機能が実現される。例えば、プログラムとして記述されたソフトウェアまたはファームウェアが、プロセッサ91によって実行されることにより各機能が実現される。このように、高精度地図DB生成装置100は、プログラムを格納するメモリ92と、そのプログラムを実行するプロセッサ91とを有する。
プログラムには、高精度地図DB生成装置100が、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含む地図DB200から、複数の地点の座標と複数の地点の周辺の複数の道路リンクの情報とを取得し、複数の地点のうちの一の地点である対象地点を中心に設定される方位角設定円が対象地点の後方の道路リンクと交わる第1交点と、方位角設定円が対象地点の前方の道路リンクと交わる第2交点と、を結ぶ方位に基づいて、対象地点における方位角を計算し、対象地点の座標および方位角の情報を、対象地点の属性値として含む高精度地図DB210を生成する機能が記述されている。また、プログラムは、地図情報取得部10、属性値演算部20および高精度地図DB生成部30の手順または方法をコンピュータに実行させるものである。
プロセッサ91は、例えば、CPU(Central Processing Unit)、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)等である。メモリ92は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)等の、不揮発性または揮発性の半導体メモリである。または、メモリ92は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等、今後使用されるあらゆる記憶媒体であってもよい。
上述した地図情報取得部10、属性値演算部20および高精度地図DB生成部30の各機能は、一部が専用のハードウェアによって実現され、他の一部がソフトウェアまたはファームウェアにより実現されてもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現する。
図4は、実施の形態1における高精度地図DB生成方法を示すフローチャートである。
ステップS1にて、地図情報取得部10は、地図DB200から複数の地点の座標および複数の道路リンクの情報を取得する。
ステップS2にて、属性値演算部20は、方位角設定円が対象地点の後方および前方の道路リンクとそれぞれ交わる第1交点および第2交点とを求める。
ステップS3にて、属性値演算部20は、第1交点および第2交点を結ぶ方位に基づいて対象地点における方位角を求める。
ステップS4にて、高精度地図DB生成部30は、対象地点の座標および方位角の情報を対象地点の属性値として含む高精度地図DB210を生成する。
以上をまとめると、実施の形態1における高精度地図DB生成装置100は、地図情報取得部10、属性値演算部20および高精度地図DB生成部30を含む。地図DB200は、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含む。地図情報取得部10は、地図DB200から、複数の地点の座標と複数の地点の周辺の複数の道路リンクの情報とを取得する。属性値演算部20は、複数の地点のうちの一の地点である対象地点における方位角を計算する。属性値演算部20は、対象地点を中心に設定される方位角設定円が対象地点の後方の道路リンクと交わる第1交点と、方位角設定円が対象地点の前方の道路リンクと交わる第2交点とを求める。属性値演算部20は、第1交点と第2交点とを結ぶ方位に基づいて、対象地点における方位角を計算する。高精度地図DB生成部30は、対象地点の座標および方位角の情報を、対象地点の属性値として含む高精度地図DB210を生成する。
上記の構成を有する高精度地図DB生成装置100は、地点ごとの正確な方位角の情報を含む高精度地図DB210を生成する。
また、実施の形態1における高精度地図DB生成方法は、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含む地図DB200から、複数の地点の座標と複数の地点の周辺の複数の道路リンクの情報とを取得し、複数の地点のうちの一の地点である対象地点を中心に設定される方位角設定円が対象地点の後方の道路リンクと交わる第1交点と、方位角設定円が対象地点の前方の道路リンクと交わる第2交点と、を結ぶ方位に基づいて、対象地点における方位角を計算し、対象地点の座標および方位角の情報を、対象地点の属性値として含む高精度地図DB210を生成する。
上記の構成を有する高精度地図DB生成方法によれば、地点ごとの正確な方位角の情報を含む高精度地図DB210の生成が可能である。
<実施の形態2>
実施の形態2における高精度地図DB生成装置および高精度地図DB生成方法を説明する。実施の形態2は実施の形態1の下位概念であり、実施の形態2における高精度地図DB生成装置は、実施の形態1における高精度地図DB生成装置100の各構成を含む。なお、実施の形態1と同様の構成および動作については説明を省略する。
図5は、実施の形態2における高精度地図DB生成装置101の構成を示す機能ブロック図である。
高精度地図DB生成装置101は、地図DB200から地図情報を取得し、ADAS(Advanced Driver Assistance System)用の高精度地図DB210を生成する。高精度地図DB生成装置101は、地図情報取得部10、地図情報記憶部15、属性値演算部20、属性値保存部25および高精度地図DB生成部30を含む。
地図DB200は、高精度地図DB210を生成するための地図情報を含む。地図DB200は、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含んでいる。実施の形態2における地点の情報は、2次元の座標で表されるノードの座標列(点列)データである。また、地図DB200は、通常のナビゲーションに使用される地図DBよりも、多くのノードによって車線の形状が表されている。地図DB200におけるノードの座標精度は、数cmレベルの精度を有し、座標の精度に関しては、高精度地図DB生成装置101によって生成される高精度地図DB210と同等の精度を有する。
地図情報取得部10は、地図DB200から地図情報として、複数のノードの座標と、その複数のノードの周辺の複数の道路リンクの情報とを取得する。
地図情報記憶部15は、地図情報取得部10で取得されたノードの座標および道路リンクの情報を、高精度地図DB210の生成のために記憶する。
属性値演算部20は、複数のノードのうちの方位角を計算する対象ノードを選択する。属性値演算部20は、対象ノードを中心とする方位角設定円を設定する。属性値演算部20は、方位角設定円が対象ノードの後方の道路リンクと交わる第1交点を求める。さらに、属性値演算部20は、方位角設定円が対象ノードの前方の道路リンクと交わる第2交点を求める。属性値演算部20は、第1交点と第2交点とを結ぶ方位に基づいて、対象ノードにおける方位角を計算する。属性値演算部20は、例えば、第1交点と第2交点とを結ぶ方位と北の方位とがなす角度を方位角として算出する。
属性値保存部25は、属性値演算部20で計算されたノードごとの方位角のデータを記憶する。属性値保存部25は、その方位角のデータを対象ノードと関連付けて記憶してもよい。
高精度地図DB生成部30は、高精度地図DB210を生成する。高精度地図DB210は、対象ノードの座標および方位角のデータを、その対象ノードの属性値として含む。この際、高精度地図DB生成部30は、予め定められたADASのフォーマットに従って、高精度地図DB210を生成する。
高精度地図DB生成装置101は、高精度地図DB生成部30で生成された高精度地図DB210を外部の記憶装置(図示せず)に出力してもよいし、記録媒体(図示せず)に出力してもよい。または、高精度地図DB生成装置101は、ネットワークを介して、外部装置(図示せず)に高精度地図DB210を送信してもよい。
地図情報取得部10、地図情報記憶部15、属性値演算部20、属性値保存部25および高精度地図DB生成部30の機能は、図2または図3に示される処理回路によって実現される。
図6は、実施の形態2における高精度地図DB生成方法を示すフローチャートである。高精度地図DB生成装置101は、例えば、元の地図DB200から新規に高精度地図DB210を生成する場合、または、元の地図DB200が更新されたことによって高精度地図DB210を更新する場合、以下の高精度地図DB生成方法を実行する。
ステップS10にて、属性値演算部20は、基準半径を読み込む。基準半径とは、方位角設定円の半径である。基準半径は、例えば20mであるが、別の値であってもよい。
ステップS20にて、地図情報取得部10は、地図DB200から地図情報を読み込む。地図情報取得部10は、例えば、高精度地図DB210の生成対象エリア、つまり、方位角の計算対象エリアにおけるノードの座標と道路リンクの情報とを取得する。その方位角の計算対象エリアは、予め設定されている。図7は、複数のノードおよびそのノード間を接続する道路リンクの一例を示す図である。ここでは、地図情報取得部10は、車線L1を表現するノードN1からN6の座標および道路リンクの情報を取得する。地図情報記憶部15は、地図情報取得部10で取得されたノードの座標および道路リンクの情報を記憶する。
ステップS30にて、属性値演算部20は、複数のノードのうち、方位角を計算する対象ノードNn(n=1~6)を選択する。ここでは、属性値演算部20は、ノードN4を対象ノードとして選択する。
ステップS40にて、属性値演算部20は、方位角設定円が対象ノードNnの後方の道路リンクと交わる第1交点を求める。さらに、属性値演算部20は、方位角設定円が対象ノードNnの前方の道路リンクと交わる第2交点を求める。対象ノードNnの後方とは、対象ノードNnよりもノード番号「n」が小さい方向である。対象ノードNnの前方とは、対象ノードNnよりもノード番号「n」が大きい方向である。
図8は、対象ノードNnにおける方位hnの算出方法の一例を示す図である。まず、属性値演算部20は、対象ノードであるノードN4を中心に基準半径Rfの方位角設定円を描く。属性値演算部20は、方位角設定円がノードN4の後方の道路リンクと交わる第1交点A4を求める。この際、属性値演算部20は、ノード番号の降順に、ノードN4の後方のノードNn(n=1~3)が方位角設定円の内側に位置するか、あるいは、外側に位置するかの内外判定を行う。ノードN3は、方位角設定円の内側に位置する。ノードN2は、方位角設定円の外側に位置する。属性値演算部20は、ノードN2とノードN3との間の道路リンクと、方位角設定円との交点を求める。これにより、第1交点A4(xa4,ya4)が求められる。
次に、属性値演算部20は、方位角設定円がノードN4の前方の道路リンクと交わる第2交点B4を求める。この際、属性値演算部20は、ノード番号の昇順に、ノードN4の前方のノードNn(n=5~6)が方位角設定円の内側に位置するか、あるいは、外側に位置するかの内外判定を行う。ノードN5は、方位角設定円の内側に位置する。ノードN6は、方位角設定円の外側に位置する。属性値演算部20は、ノードN5とノードN6との間の道路リンクと、方位角設定円との交点を求める。これにより、第2交点B4(xb4,yb4)が求められる。
このステップS40における第1交点A4および第2交点B4を求めるための数学的な手順は、上記に限定されるものではなく、どのような手順であってもよい。
図9は、対象ノードNnにおける方位hnの算出方法の別の一例を示す図である。ノードN3は、車線L1および車線L2の合流地点である。この場合、車線L1だけでなく車線L2も、方位角設定円と交わる。そのため、第1交点A4(xa4,ya4)および第1交点C4(xc4,yc4)が求められる。詳細は省略するが、ノードN4の前方に分岐地点が存在する場合には、ノードN4の前方にも複数の第2交点が検出される可能性がある。
ステップS50にて、属性値演算部20は、第1交点および第2交点はそれぞれ1つだけか否かを判定する。第1交点および第2交点がそれぞれ1つだけである場合、ステップS60が実行される。第1交点および第2交点がそれぞれ1つだけではない場合、ステップS70が実行される。言い換えると、第1交点の個数が0もしくは2つ以上である場合、ステップS70が実行される。または、第2交点の個数が0または2つ以上である場合、ステップS70が実行される。
ステップS60にて、属性値演算部20は、第1交点および第2交点を結ぶ方位に基づいて方位角を求める。図8の場合、属性値演算部20は、第1交点A4の座標(xa4,ya4)および第2交点B4の座標(xb4,yb4)に基づいて、ノードN4における方位h4を求める。その方位h4は、h4=(yb4-ya4)/(xb4-xa4)で求められる。属性値演算部20は、その方位h4と北の方位とがなす角度を方位角として計算する。
属性値演算部20は、方位角を、高精度地図DB210の仕様に従った値に修正する。属性値演算部20は、例えば、方位角の値をデジタイズする。または、方位角が特別な関係によってコード化されている場合には、属性値演算部20は、その関係を示す関数f(h)を用いて、方位角をコード値に変換する。例えばノードN4における方位角のコード値は、関数f(h4)によって算出される。なお、高精度地図DB210の使用時には、コード値と方位角との逆関係表等により、コード値は方位角に変換される。属性値演算部20は、方位角のデータを属性値保存部25に出力し、属性値保存部25はその方位角のデータを記憶する。属性値保存部25は、その方位角のデータを対象ノードNnと関連付けて記憶してもよい。
ステップS70にて、属性値演算部20は、方位角を無効値に設定する。これは、2つ以上の第1交点または第2交点が求められた場合には、いずれの交点に基づいて方位角を計算すべきか不明なためである。例えば図9の場合、属性値演算部20は、第1交点A4および第1交点C4のいずれを採用して方位を計算すべきか判断できない。また、交点の個数が0の場合、すなわち、第1交点および第2交点のうちのいずれかが検出されなかった場合も方位角は無効値に設定される。
ステップS80にて、属性値演算部20は、全ての対象ノードNnに対する処理が完了したか否かを判定する。ここで、全ての対象ノードNnとは、高精度地図DB210の生成対象エリア、つまり、方位角の計算対象エリアにおける全てのノードである。処理が完了している場合、ステップS90が実行される。処理が完了していない場合、ステップS30が再び実行される。
ステップS90にて、高精度地図DB生成部30は、対象ノードNnにおける方位角のデータを属性値保存部25から読み出す。高精度地図DB生成部30は、対象ノードNnの座標を地図情報記憶部15から読み出す。高精度地図DB生成部30は、対象ノードNnの座標および方位角のデータをその対象ノードNnの属性値として含む高精度地図DB210を生成する。高精度地図DB生成装置101は、高精度地図DB生成部30で生成された高精度地図DB210を記憶装置に出力してもよいし、記録媒体に出力してもよい。または、高精度地図DB生成装置101は、ネットワークを介して、外部装置に高精度地図DB210を送信してもよい。
ステップS30からS60は、座標列順に実行されることが好ましい。例えば、高精度地図DB生成装置101は、図7に示されるノードN1からN6をノード番号順に対象ノードとして選択し、各々の方位角を求めることが好ましい。
図10は、実施の形態2における運転支援情報出力装置240の構成を示す機能ブロック図である。運転支援情報出力装置240は、高精度地図DB210、走行道路判断部220および道路情報出力部230を含む。
ADASアプリ260は、運転支援情報出力装置240に対して、高精度地図情報の出力を要求する。ADASアプリ260は、運転支援情報出力装置240から取得した高精度地図情報に基づいて、例えば、経路逸脱警報、経路逸脱防止など種々のレベルの自動運転を制御する。
測位装置250は、車両の位置を測位する。測位装置250は、例えば、GNSS(Global Navigation Satellite System)から信号を受信して車両の位置を検出する。または、測位装置250は、車両に搭載されたジャイロセンサ、車速センサ等を含んでもいてもよい。
高精度地図DB210は、高精度地図DB生成装置101によって生成されたデータベースである。高精度地図DB210は、例えば、運転支援情報出力装置240に設けられた記憶部に記憶されている。または高精度地図DB210を記録した記録媒体が運転支援情報出力装置240に取り付けられていてもよい。
走行道路判断部220は、測位装置250によって検出された車両の位置情報と、高精度地図DB210とに基づいて、車両が走行している車線を判断する。
道路情報出力装置は、ADASアプリ260の要求に従い、車両が走行している車線情報、車両が走行している地点の方位角情報等を含む高精度地図情報をADASアプリ260に出力する。
実施の形態2における高精度地図DB生成装置101によれば、方位角は、方位角設定円と道路リンクとが交わる第1交点および第2交点に基づいて計算される。ADAS用の高精度地図DB210はノード数または形状補間点の個数が多大であるものの、上記の方位角計算の演算は単純であることから、その演算量は大幅に削減される。
また、高精度地図DB生成装置101は、不規則なノード間隔で表現される車線形状に対しても、正確な方位角を求めることができる。図11から図13は、対象ノードNnにおいて算出される方位hnを示す図である。ノードNn-1からノードNn+1によって表現される車線形状は、対象ノードNnにおいて、延伸方向が約90度変化するカーブである。図11から図13にかけて、対象ノードNnとノードNn+1との距離が長くなっているが、対象ノードNnにおける曲率は同じである。
ノードNn-1、対象ノードNn、ノードNn+1を通る円弧(図示せず)に基づいて、対象ノードNnの方位が求められる場合、対象ノードNnとノードNn+1との距離によって異なる方位角が計算される。同様に図示は省略するが、対象ノードNnにおけるその円弧の接線(図示せず)に基づいて、対象ノードNnの方位が求められる場合も、対象ノードNnとノードNn+1との距離によって異なる方位角が計算される。
一方で、図11から図13に示されるように、高精度地図DB生成装置101は、半径Rの方位角設定円が道路リンクと交わる第1交点Anおよび第2交点Bnを求める。高精度地図DB生成装置101は、その第1交点Anおよび第2交点Bnを結ぶ方位hnに基づいて方位角を計算する。したがって、対象ノードNnにおける方位角は、対象ノードNnとノードNn+1との距離に関わらず一定である。
実施の形態2における高精度地図DB生成装置101は、不規則なノード間隔で表現される車線形状に対しても、正確な方位角を求めることができる。
(実施の形態2の変形例1)
実施の形態2の変形例1における高精度地図DB生成装置101は、高精度地図DB210の生成対象エリアを複数の小エリアに分割し、その小エリアごとに各ノードの方位角を求める。高精度地図DB生成装置101は、小エリアごとに生成された複数の高精度地図DBを合成して、エリア全体の高精度地図DB210を生成する。
(実施の形態2の変形例2)
実施の形態2の変形例2における高精度地図DB生成装置101は、まず、座標列データのうち、1つまたは複数のノードにおける方位角を計算して、高精度地図DB210の一部を生成する。その後、高精度地図DB生成装置101は、座標列データのうち、他の1つまたは複数のノードにおける方位角を計算し、その計算結果を先に生成した高精度地図DB210に加える。高精度地図DB生成装置101は、方位角の計算および高精度地図DB210の生成を逐次的に実施してもよい。方位角の計算および高精度地図DB210の生成手順は、これらに限定されるものではない。その手順は、最終的に高精度地図DB210が生成されれば、どのような手順であってもよい。
(実施の形態2の変形例3)
実施の形態2の変形例3における高精度地図DB生成装置101は、複数の地点の座標として、形状補間点の座標列データを取得する。形状補間点とは、ノード間の道路リンクの形状を補間して表す点である。高精度地図DB生成装置101は、その形状補間点ごとに方位角を計算し、高精度地図DB210を生成する。
方位角が計算される複数の地点は、ノードおよび形状補間点に限定されるものではない。それら複数の地点は、ノード間の任意の点、例えばノード間の中点などであってもよい。例えば、ノード間の距離が予め定められた距離以上である場合、高精度地図DB生成装置101は、ノード間にサブノードを設け、そのサブノートにおける方位角を求めてもよい。その予め定められた距離とは、例えば20mである。
<実施の形態3>
実施の形態3における高精度地図DB生成装置および高精度地図DB生成方法を説明する。実施の形態3は実施の形態1の下位概念であり、実施の形態3における高精度地図DB生成装置は、実施の形態1における高精度地図DB生成装置100の各構成を含む。なお、実施の形態1または2と同様の構成および動作については説明を省略する。
実施の形態3における高精度地図DB生成装置101の構成は、実施の形態2と同様である。ただし、属性値演算部20の機能および動作が実施の形態2とは異なる。実施の形態3における属性値演算部20は、半径設定条件に基づいて新たな方位角設定円を設定する。新たな方位角設定円は、方位角設定円の基準半径Rfとは異なる半径を有する。属性値演算部20は、その新たな方位角設定円と道路リンクとが交わる第1交点Anおよび第2交点Bnを求める。以下に詳細を説明する。
半径設定条件は、道路構造に関する特異点と対象ノードNnとの位置関係に関する条件である。特異点とは、例えば、2以上の道路の合流地点、2以上の道路の分岐地点、道路リンクの始点および道路リンクの終点のうちのいずれかの地点に対応する。
少なくとも1つの特異点が方位角設定円内に存在する場合、第1交点の個数または第2交点の個数は1以外である。その場合、いずれの交点に基づいて方位角を計算すべきか不明である。そこで、属性値演算部20は、方位角設定円内に少なくとも1つの特異点が存在する場合、新たな方位角設定円を設定する。具体的には、属性値演算部20は、第1交点の個数および第2交点の個数がそれぞれ1つずつとなるように、方位角設定円の半径を小さくする。
言い換えると、実施の形態3における半径設定条件は、方位角設定円と対象ノードNnの後方または前方の道路リンクとの交点の個数に関する条件である。例えば、属性値演算部20は、第1交点の個数が0もしくは2以上である場合、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。または、属性値演算部20は、第2交点の個数が0もしくは2以上である場合、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。
方位角設定円内に1つの特異点が存在する場合、その新たな方位角設定円の半径は、その特異点と対象ノードNnとの距離以下に設定される。方位角設定円内に2以上の特異点が存在する場合、その新たな方位角設定円の半径は、2以上の特異点のうち対象ノードNnに最も近い特異点と対象ノードNnとの距離以下に設定される。
属性値演算部20は、その新たな方位角設定円と道路リンクとが交わる1つの第1交点Anおよび1つの第2交点Bnを求める。それら第1交点Anおよび第2交点Bnに基づいて方位角を計算する手段は、実施の形態2と同様である。
実施の形態3における属性値演算部20の機能は、図2または図3に示される処理回路によって実現される。
図14は、実施の形態3における高精度地図DB生成方法を示すフローチャートである。図6に示される高精度地図DB生成方法と比較して、ステップS50の後に、ステップS51からS53が挿入されている。ステップS10からS40まで、およびステップS60からS90までは、図6と同様である。
ステップS50にて、属性値演算部20は、第1交点および第2交点はそれぞれ1つだけか否かを判定する。第1交点および第2交点がそれぞれ1つだけである場合、ステップS60が実行される。第1交点および第2交点がそれぞれ1つだけではない場合、ステップS51が実行される。
ステップS51にて、属性値演算部20は、基準半径Rfよりも小さい暫定半径を有する新たな方位角設定円を設定する。例えば、属性値演算部20は、第1交点および第2交点がそれぞれ1つとなるような暫定半径を求める。詳細は後述する。
ステップS52にて、属性値演算部20は、暫定半径が予め定められた最小半径よりも小さいか否かを判定する。予め定められた最小半径は、例えば1mである。暫定半径が予め定められた最小半径以上である場合、ステップS53が実行される。暫定半径が予め定められた最小半径よりも小さい場合、ステップS70が実行される。
ステップS53にて、属性値演算部20は、暫定半径を有する新たな方位角設定円を用いて、第1交点Anおよび第2交点Bnを求める。続いてステップS60が実行される。
ステップS70にて、属性値演算部20は、方位角を無効値に設定する。暫定半径が予め定められた最小半径よりも小さい場合、第1交点と第2交点との距離は近接しすぎている。この状態で計算される方位角は誤差が大きい。そのため、属性値演算部20は、方位角を無効値に設定する。続いてステップS80が実行される。
上記のステップS40からステップS70について、以下に具体例を示す。
(第1の道路構造)
図15は、ノードおよび道路リンクによって表現された第1の道路構造を示す図である。ここでは、対象ノードはノードN4である。ノードN4の後方には、車線L1のノードN3に合流する車線L2が存在する。この場合、ノードN3は、合流地点であり、特異点である。
ステップS40にて、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の後方の道路リンクと交わる2つの第1交点A4および第1交点C4を検出する。
ステップS50にて、属性値演算部20は、第1交点が1つだけではないと判定する。つまり、2つの第1交点が存在することから、ステップS51が実行される。
ステップS51にて、属性値演算部20は、第1交点および第2交点がそれぞれ1つとなるような暫定半径を設定する。ここでは、属性値演算部20は、暫定半径R41の新たな方位角設定円を設定する。暫定半径R41は、特異点であるノードN3と、対象ノードであるノードN4との距離に対応する。
ステップS52にて、属性値演算部20は、暫定半径R41が予め定められた最小半径以上であると判定する。
ステップS53にて、属性値演算部20は、暫定半径R41を有する新たな方位角設定円を用いて、第1交点A4’および第2交点B4’を求める。ここでは、第1交点A4’は、ノードN3と同じ座標である。
ステップS60にて、属性値演算部20は、第1交点A4’および第2交点B4’を結ぶ方位h4に基づいて方位角を求める。ここでは、第1交点A4’の座標が(xa4’,ya4’)、第2交点B4’の座標が(xb4’,yb4’)、ノードN3の座標が(xn3,yn3)である。方位h4は、h4=(yb4’-ya4’)/(xb4’-xa4’)=(yb4’-yn3)/(xb4’-xn3)で求められる。例えば、方位角θは、θ=f(h4)で求められる。f(h)は関数である。
以上の方法により、ノードN4における方位角が求められる。ただし、ステップS51で設定される暫定半径R41は、特異点であるノードN3と、対象ノードであるノードN4と間の距離に限定されるものではない。暫定半径R41は、ノードN3およびノードN4間の距離より小さな値であればよい。暫定半径R41は、基準半径Rfに予め定められた縮小率が乗算された値であってもよい。その縮小率は、例えば、基準半径Rfの3/4または1/2など、離散的な値である。
また、3つ以上の第1交点が存在する場合、属性値演算部20は、ノードN4に最も近い特異点とそのノードN4との距離に対応する値を暫定半径に設定する。
(第2の道路構造)
図16は、ノードおよび道路リンクによって表現された第2の道路構造を示す図である。ここでは、対象ノードはノードN4である。ノードN4の前方には、車線L1のノードN5から分岐する車線L3が存在する。この場合、ノードN5は、分岐地点であり、特異点である。
ステップS40にて、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の前方の道路リンクと交わる2つの第2交点B4および第2交点D4を検出する。
ステップS50にて、属性値演算部20は、第2交点が1つだけではないと判定する。つまり、2つの第2交点が存在することから、ステップS51が実行される。
ステップS51にて、属性値演算部20は、第1交点および第2交点がそれぞれ1つとなるような暫定半径を設定する。ここでは、属性値演算部20は、暫定半径R42の新たな方位角設定円を設定する。暫定半径R42は、特異点であるノードN5と、対象ノードであるノードN4との距離に対応する。
ステップS52にて、属性値演算部20は、暫定半径R42が予め定められた最小半径以上であると判定する。
ステップS53にて、属性値演算部20は、暫定半径R42を有する新たな方位角設定円を用いて、第1交点A4’および第2交点B4’を求める。ここでは、第2交点B4’は、ノードN5と同じ座標である。
ステップS60にて、属性値演算部20は、第1交点A4’および第2交点B4’を結ぶ方位h4に基づいて方位角を求める。ここでは、第1交点A4’の座標が(xa4’,ya4’)、第2交点B4’の座標が(xb4’,yb4’)、ノードN5の座標が(xn5,yn5)である。方位h4は、h4=(yb4’-ya4’)/(xb4’-xa4’)=(yn5-ya4’)/(xn5-xa4’)で求められる。例えば、方位角θは、θ=f(h4)で求められる。f(h)は関数である。
以上の方法により、ノードN4における方位角が求められる。また、3つ以上の第2交点が存在する場合、属性値演算部20は、ノードN4に最も近い特異点とそのノードN4との距離に対応する値を暫定半径に設定する。
(第3の道路構造)
図17は、ノードおよび道路リンクによって表現された第3の道路構造を示す図である。対象ノードはノードN4である。ノードN4の後方には、車線L1のノードN3に合流する車線L2が存在する。ノードN4の前方には、車線L1のノードN5から分岐する車線L3が存在する。この場合、ノードN3は、合流地点である。ノードN5は、分岐地点である。ノードN3およびノードN5はともに特異点である。
ステップS40にて、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の後方の道路リンクと交わる2つの第1交点A4および第1交点C4を検出する。また、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の前方の道路リンクと交わる2つの第2交点B4および第2交点D4を検出する。
ステップS50にて、属性値演算部20は、第1交点および第2交点がそれぞれ1つだけではないと判定する。つまり、2つの第1交点および2つの第2交点が存在することから、ステップS51が実行される。
ステップS51にて、属性値演算部20は、第1交点および第2交点がそれぞれ1つとなるような暫定半径を設定する。
このステップS51において、まず、属性値演算部20は、ノードN3とノードN4との距離に対応する暫定半径R41を候補として選択する。さらに、属性値演算部20は、ノードN5とノードN4との距離に対応する暫定半径R42を候補として選択する。暫定半径R42の方位角設定円は、ノードN4の後方の道路リンクと2つの第1交点A4’および第1交点C4’で交わる。そのため、属性値演算部20は、暫定半径R41および暫定半径R42のうち小さい半径を選択する。図17の場合、R41<R42であるため、属性値演算部20は、暫定半径R41の方位角設定円を設定する。図示は省略するが、R41=R42の場合、属性値演算部20は、いずれかの値を暫定半径に設定する。
ステップS52にて、属性値演算部20は、暫定半径R41が予め定められた最小半径以上であると判定する。
ステップS53にて、属性値演算部20は、暫定半径R41を有する新たな方位角設定円を用いて、第1交点A4''および第2交点B4''を求める。ここでは、第1交点A4''は、ノードN3と同じ座標である。
ステップS60にて、属性値演算部20は、第1交点A4''および第2交点B4''を結ぶ方位h4に基づいて方位角を求める。
以上の方法により、ノードN4における方位角が求められる。ただし、3つ以上の第1交点または第2交点が存在する場合、属性値演算部20は、ノードN4に最も近い特異点とそのノードN4との距離に対応する値を暫定半径とする方位角設定円を設定する。
(第4の道路構造)
図18は、ノードおよび道路リンクによって表現された第4の道路構造を示す図である。ここでは、対象ノードはノードN4である。ノードN4の前方には、道路リンクの終点としてのノードN5が存在する。この場合、ノードN5は、特異点である。道路リンクの終点は、実際の道路の終点に対応する場合もあるし、道路は延伸しているものの座標列データの終端に対応する場合もある。
ステップS40にて、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の後方の道路リンクと交わる第1交点A4を検出する。一方で、属性値演算部20は、基準半径Rfの方位角設定円がノードN4の前方の道路リンクと交わる第2交点を検出しない。
ステップS50にて、属性値演算部20は、第2交点が1つだけではないと判定する。つまり、第2交点の個数が0であることから、ステップS51が実行される。
ステップS51にて、属性値演算部20は、第1交点および第2交点がそれぞれ1つとなるような暫定半径を設定する。ここでは、属性値演算部20は、暫定半径R4の新たな方位角設定円を設定する。暫定半径R4は、特異点であるノードN5と、対象ノードであるノードN4との距離に対応する。
ステップS52にて、属性値演算部20は、暫定半径R4が予め定められた最小半径以上であると判定する。
ステップS53にて、属性値演算部20は、暫定半径R4を有する新たな方位角設定円を用いて、第1交点A4’および第2交点B4’を求める。ここでは、第2交点B4’は、ノードN5と同じ座標である。
ステップS60にて、属性値演算部20は、第1交点A4’および第2交点B4’を結ぶ方位h4に基づいて方位角を求める。以上の方法により、ノードN4における方位角が求められる。
(第5の道路構造)
図示は省略するが、第5の道路構造は、対象ノードであるノードN4において、車線L2が車線L1に合流し、かつ、車線L1から車線L3が分岐する構造を有する。このような道路構造においては、方位角が正確に設定できないため、属性値演算部20は、暫定半径を0に設定する。
以上をまとめると、実施の形態3における属性値演算部20は、半径設定条件に基づいて、方位角設定円の基準半径Rfとは異なる半径を有する新たな方位角設定円を設定する。属性値演算部20は、新たな方位角設定円に対して、第1交点Anと第2交点Bnとを求める。
半径設定条件は、特異点と対象ノードNnとの位置関係に関する条件である。特異点は、2以上の道路の合流地点、2以上の道路の分岐地点、道路リンクの始点および道路リンクの終点のうちのいずれかの地点に対応する。
属性値演算部20は、半径設定条件として、対象ノードNnを中心とする方位角設定円内に特異点が存在する場合に、新たな方位角設定円を設定する。新たな方位角設定円は、特異点と対象ノードNnとの距離以下の半径を有する。
属性値演算部20は、半径設定条件として、対象ノードNnを中心とする方位角設定円内に2以上の特異点が存在する場合に、新たな方位角設定円を設定する。新たな方位角設定円は、2以上の特異点のうち対象ノードNnに近い特異点と対象ノードNnとの距離以下の半径を有する。
この構成により、高精度地図DB生成装置101は、方位角が無効値に設定される対象ノードNnの個数を削減する。すなわち、高精度地図DB生成装置101は、道路上に構造的な特異点が存在する場合であっても、ノードごとの方位角を正確に計算する。なお、特異点が道路上に存在する割合は少ないため、高精度地図DB210生成の際の演算量の増加は無視できる程度である。
また、実施の形態3における半径設定条件は、方位角設定円と対象ノードNnの後方または前方の道路リンクとの交点の個数に関する条件である。
属性値演算部20は、半径設定条件として、方位角設定円と対象ノードNnの後方の道路リンクとの交点の個数が0もしくは2つ以上である場合、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。または、属性値演算部20は、方位角設定円と対象ノードNnの前方の道路リンクとの交点の個数が0または2つ以上である場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。
この構成により、高精度地図DB生成装置101は、複数の第1交点または複数の第2交点が検出される場合であっても、ノードごとの方位角を正確に計算する。
<実施の形態4>
実施の形態4における高精度地図DB生成装置および高精度地図DB生成方法を説明する。実施の形態4は実施の形態1の下位概念であり、実施の形態4における高精度地図DB生成装置は、実施の形態1における高精度地図DB生成装置100の各構成を含む。なお、実施の形態1から3のいずれかと同様の構成および動作については説明を省略する。
実施の形態4における高精度地図DB生成装置101の構成は、実施の形態2と同様である。ただし、属性値演算部20の機能および動作が実施の形態2とは異なる。実施の形態4における属性値演算部20は、実施の形態3と同様に、半径設定条件に基づいて、新たな方位角設定円を設定し、第1交点Anおよび第2交点Bnを求める。ただし、その半径設定条件が実施の形態3とは異なる。以下に詳細を説明する。
半径設定条件は、対象ノードNnにおける曲率に関する条件である。対象ノードNnにおける曲率は、方位角設定円における対象ノードNnの後方および前方のノードの個数に基づいて推定される。言い換えると、半径設定条件は、方位角設定円に含まれる対象ノードNnの後方または前方のノードの個数に関する条件である。
例えば、属性値演算部20は、対象ノードNnの後方または前方のノード数が多いほど、曲率が大きいと判断する。属性値演算部20は、曲率が大きいほど、新たな方位角設定円の半径を小さな値に設定する。
属性値演算部20は、対象ノードNnの後方のノードの個数が、予め定められた閾値以上である場合に、基準半径Rfよりも小さな半径を有する新たな方位角設定円を設定する。または、属性値演算部20は、対象ノードNnの前方のノードの個数が予め定められた閾値以上である場合に、基準半径Rfよりも小さな半径を有する新たな方位角設定円を設定する。
実施の形態4における属性値演算部20の機能は、図2または図3に示される処理回路によって実現される。
図19は、実施の形態4における高精度地図DB生成方法を示すフローチャートである。図6に示される高精度地図DB生成方法と比較して、ステップS30の後に、ステップS31からS33が挿入されている。ステップS31からS33の前後のステップS10からS30まで、および、ステップS40からS90までは、図6と同様である。
図20は、実施の形態4におけるノードおよび方位角設定円の一例を示す図である。ここでは、対象ノードは、ノードN3およびノードN7である。ノードN3の曲率は小さく、ノードN7の曲率は大きい。以下、説明の都合上、ノードN3およびノードN7に対する処理を並行して説明するが、実際の処理は、ノードごとに行われる。
ステップS31にて、属性値演算部20は、方位角設定円内の対象ノードNnの後方および前方のノード数を求める。ノードN3の後方のノード数は、1つである。ノードN3の前方のノード数は、1つである。一方で、ノードN7の後方のノード数は、2つである。ノードN7の前方のノード数は、3つである。
ステップS32にて、属性値演算部20は、後方のノード数または前方のノード数が予め定められた閾値以上か否か判定する。ノード数が予め定められた閾値以上である場合、ステップS33が実行される。ノード数が予め定められた閾値よりも少ない場合、ステップS40が実行される。
ここでは、予め定められた閾値は3である。よって、この判定がノードN3に対する処理であるとき、ノードN3の後方および前方のノード数は、閾値よりも少ない。そのため、ステップS40が実行される。一方で、この判定処理がノードN7に対する処理であるとき、ノードN7の前方のノード数は、閾値以上である。そのため、ステップS33が実行される。
ステップS33にて、属性値演算部20は、基準半径Rfよりも小さい半径を有する方位角設定円を設定する。図21は、ノードN7の方位角設定円の基準半径Rfが変更された状態を示す図である。ここでは、新たな方位角設定円の半径R7は、基準半径Rfの2/3である。半径R7は、基準半径Rfの1/4であってもよい。
ステップS40にて、属性値演算部20は、第1交点および第2交点を求める。対象ノードがノードN3である場合、属性値演算部20は、基準半径Rfの方位角設定円を用いて、第1交点A3および第2交点B3を求める。対象ノードがノードN7である場合、属性値演算部20は、半径R7の新たな方位角設定円を用いて、第1交点A7’および第2交点B7’を求める。以降の処理は、実施の形態2と同様である。
図20に示されるように、道路の曲率が大きい場合、ノードの密度が高い。属性値演算部20は、対象ノードNnを中心とする基準半径Rf内のノード数が多いほど、道路の曲率が大きいと判断している。また、属性値演算部20は、対象ノードNnの前方および後方のノード数を別々に計算して、曲率の大きさを判断している。そのため、前方および後方のうち一方の曲率だけが大きい場合でも、属性値演算部20は、正確に方位角を計算する。
以上をまとめると、実施の形態4における属性値演算部20は、半径設定条件として、対象ノードNnにおける曲率が予め定められた閾値よりも大きい場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。その曲率は、対象ノードNnの後方および前方のノードに基づいて推定される。
属性値演算部20は、対象ノードNnにおける曲率が大きいほど、新たな方位角設定円の半径を小さな値に設定する。
属性値演算部20は、方位角設定円における対象ノードNnの後方もしくは前方のノードの個数に基づいて、曲率を推定する。
属性値演算部20は、方位角設定円における対象ノードNnの後方または前方のノードの個数が多いほど、曲率が大きいと判断する。
この構成により、高精度地図DB生成装置101は、道路の曲率が大きい場合であっても、対象ノードNnにおける方位角を正確に計算する。属性値演算部20は、前方および後方の曲率のうち一方の曲率が大きい場合には、方位角設定円の半径を小さくすることで方位角を正確に計算する。
また、高精度地図DB生成装置101は、対象ノードNnにおける曲率を直接計算するのではなく、対象ノードNnにおける曲率を方位角設定円とその内側に存在するノード数との関係によって推定する。そのため、高精度地図DB210の生成に要する演算時間の増大が避けられる。
また、実施の形態4における半径設定条件は、方位角設定円に含まれる対象ノードNnの後方または前方のノードの個数に関する条件である。
属性値演算部20は、半径設定条件として、方位角設定円に含まれる対象ノードNnの後方のノードの個数が予め定められた閾値以上である場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。または、属性値演算部20は、方位角設定円に含まれる対象ノードNnの前方のノードの個数が予め定められた閾値以上である場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。
この構成により、高精度地図DB生成装置101は、曲率の大きい道路にあっても、ノードごとの方位角を正確に計算する。
図20には、基準半径Rfの方位角設定円によって求められる方位h3および方位h7が示されている。また、その図20には、ノードN3およびノードN7における接線K3および接線K7も示されている。接線K3および接線K7は、例えば、前後のノードの座標列を結ぶ円弧(図示せず)に基づいて求められる。方位h3は、接線K3とほぼ同一の方向を示している。方位h7は、接線K7と異なる方向を示している。よって、曲率が大きいノードN7において求められた方位h7には、誤差が生じる可能性がある。一方で、図21に示されるように、小さな半径R7の新たな方位角設定円によって求められる方位h7’は、接線K7とほぼ同一の方向を示している。このように、実施の形態4における高精度地図DB生成装置101は、曲率が大きな道路においても、ノードごとの方位角を正確に計算することができる。図20および図21に示されるような急カーブは、高速道路または主要国道では存在しないが、一般道路には存在する。高精度地図DB生成装置101は、様々な道路の高精度地図DB210に適用可能である。
(実施の形態4の変形例1)
実施の形態4の変形例1における属性値演算部20は、対象ノードNnにおける曲率の大きさに応じて、離散的または連続的に新たな方位角設定円の半径を変更してもよい。その際、属性値演算部20は、曲率の大きさを、方位角設定円に含まれるノードの個数に関する予め定められた複数の閾値によって判断する。
例えば、第1閾値は3であり、第2閾値は5である。属性値演算部20は、対象ノードNnの後方または前方のノード数が第1閾値以上かつ第2閾値よりも少ない場合、基準半径Rfの2/3の半径を有する新たな方位角設定円を設定する。属性値演算部20は、対象ノードNnの後方または前方のノード数が第2閾値以上である場合、基準半径Rfの1/4の半径を有する新たな方位角設定円を設定する。
(実施の形態4の変形例2)
実施の形態4の変形例2における属性値演算部20は、方位角設定円に含まれる対象ノードNnの後方および前方のノード数が、予め定められた閾値以上である場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。すなわち、属性値演算部20は、対象ノードNnの前方のノード数と後方のノード数との合計値で、曲率の大きさを判断する。
(実施の形態4の変形例3)
実施の形態4の変形例3における属性値演算部20は、基準半径Rfから徐々に方位角設定円の半径を小さくする。属性値演算部20は、方位角設定円に含まれる対象ノードNnの後方または前方のノード数が、予め定められた閾値未満となる適当な半径を求める。
(実施の形態4の変形例4)
実施の形態4の変形例4における属性値演算部20は、方位角設定円における対象ノードNnの後方もしくは前方のノードと対象ノードNnとの位置関係に基づいて、曲率を推定する。具体的には、まず、属性値演算部20は、第1交点Anと第2交点Bnとを求める。属性値演算部20は、第1交点Anと、対象ノードNnと、第2交点Bnとがなす対象角度が小さいほど、曲率が大きいと判断する。
属性値演算部20は、その対象角度が、予め定められた角度以上である場合に、基準半径Rfよりも小さい半径を有する新たな方位角設定円を設定する。言い換えると、属性値演算部20は、その対象角度が、予め定められた角度以上である場合に、対象ノードNnにおける曲率が大きいと判断する。予め定められた角度は、例えば150度である。なお、曲率が0の場合、対象角度は180度である。
属性値演算部20は、対象角度が、予め定められた角度未満である場合には、基準半径Rfの方位角設定円を用いて、第1交点Anおよび第2交点Bnを求める。属性値演算部20は、対象角度が、予め定められた角度以上である場合には、基準半径Rfよりも小さい半径を有する新たな方位角設定円を用いて、第1交点Anおよび第2交点Bnを求める。
属性値演算部20は、実施の形態4の変形例1と同様に、対象角度の大きさに応じて、離散的または連続的に新たな方位角設定円の半径を変更してもよい。その際、属性値演算部20は、対象角度の大きさを、角度に関する予め定められた複数の閾値によって判定する。
属性値演算部20は、実施の形態4の変形例3と同様に、基準半径Rfから徐々に方位角設定円の半径を小さくしてもよい。属性値演算部20は、対象角度が、予め定められた角度未満となる適当な半径を求める。
(実施の形態4の変形例5)
実施の形態4の変形例5における属性値演算部20は、実施の形態4のように曲率の大小を推定する。曲率が大きい区間においては、属性値演算部20は、複数のノードを通る近似曲線の接線の方向に基づいて、対象ノードNnにおける方位角を計算してもよい。この際、属性値演算部20は、近似曲線が通過する複数のノードとして、方位角設定円内のノードを選択してもよい。高精度地図DB210の生成対象エリアにおいて、曲率が大きい区間が少ない場合、属性値演算部20が近似曲線に基づく方位角演算を行ったとしても、その演算量の増大は避けられる。
(実施の形態4の変形例6)
実施の形態4の変形例6における属性値演算部20は、極端に曲率が大きいと判断した場合には、方位角を無効値に設定する。
(実施の形態4の変形例7)
実施の形態4の変形例7における属性値演算部20は、実施の形態3および実施の形態4に記載の属性値演算部20の機能を両立してもよい。つまり、属性値演算部20は、方位角設定円と道路リンクとの交点の個数に関する条件、および、方位角設定円に含まれる対象ノードNnの個数に関する条件に基づいて、新たな方位角設定円を設定してもよい。
<実施の形態5>
実施の形態5における高精度地図DB生成装置および高精度地図DB生成方法を説明する。実施の形態5は実施の形態1の下位概念であり、実施の形態5における高精度地図DB生成装置は、実施の形態1における高精度地図DB生成装置100の各構成を含む。なお、実施の形態1から4のいずれかと同様の構成および動作については説明を省略する。
図22は、実施の形態5における高精度地図DB生成装置102の構成を示す機能ブロック図である。高精度地図DB生成装置102は、道路の上下方向の傾きであるスロープつまり仰角も対象ノードNnにおける属性値として求める。高精度地図DB生成装置102は、地図情報取得部10、地図情報記憶部15、属性値演算部21、属性値保存部25および高精度地図DB生成部30を含む。
地図DB201は、高精度地図DB211を生成するための地図情報を含む。地図DB201は、道路の車線の形状を表現するための複数の地点の情報と複数の道路リンクの情報とを含んでいる。実施の形態5における複数の地点の情報は、3次元の座標で表される複数のノードの座標列(点列)データである。
地図情報取得部10は、地図DB201から地図情報として、複数のノードの座標と、その複数のノードの周辺の複数の道路リンクの情報とを取得する。
地図情報記憶部15は、地図情報取得部10で取得されたノードの座標および道路リンクの情報を、高精度地図DB211の生成のために記憶する。
属性値演算部21は、複数のノードのうちの方位角および仰角を計算する対象ノードを選択する。属性値演算部20は、対象ノードを中心とする方位角設定円筒面を設定する。つまり、方位角設定円筒面を構成する円は、対象ノードNnを中心に設定される。方位角設定円筒面の半径は、基準半径Rfである。方位角設定円筒面は、実施の形態2において示された2次元平面における方位角設定円が高さ方向に引き伸ばされて形成された円筒面に対応する。属性値演算部21は、方位角設定円筒面が対象ノードNnの後方の道路リンクと交わる第1交点を求める。さらに、属性値演算部21は、方位角設定円筒面が対象ノードNnの前方の道路リンクと交わる第2交点を求める。属性値演算部21は、第1交点と第2交点とを結ぶ方位に基づいて、対象ノードNnにおける方位角および仰角を計算する。
属性値保存部25は、属性値演算部21で計算されたノードごとの方位角および仰角のデータを記憶する。
高精度地図DB生成部30は、高精度地図DB211を生成する。高精度地図DB211は、対象ノードNnの座標、方位角および仰角の情報を、その対象ノードNnの属性値として含む。この際、高精度地図DB生成部30は、予め定められたADASのフォーマットに従って、高精度地図DB211を生成する。仰角の情報は、角度データであってもよいし、三角関数等によって表された傾き(スロープ)に関連するデータであってもよい。
地図情報取得部10、地図情報記憶部15、属性値演算部21、属性値保存部25および高精度地図DB生成部30の機能は、図2または図3に示される処理回路によって実現される。
図23は、実施の形態5における高精度地図DB生成方法を示すフローチャートである。
ステップS110にて、属性値演算部21は、基準半径Rfを読み込む。
ステップS120にて、地図情報取得部10は、地図DB201から3次元座標で表された地図情報を読み込む。図24は、複数のノードおよびそのノード間を接続する道路リンクの一例を示す図である。ここでは、地図情報取得部10は、車線L1を表現するノードN1からN6の3次元座標および道路リンクの情報を取得する。地図情報記憶部15は、地図情報取得部10で取得されたノードの座標および道路リンクの情報を記憶する。
ステップS130にて、属性値演算部21は、複数のノードのうち、方位角および仰角を計算する対象ノードNnを選択する。ここでは、属性値演算部21は、ノードN4を対象ノードとして選択する。
ステップS140にて、属性値演算部21は、方位角設定円筒面PがノードN4の後方の道路リンクと交わる第1交点A4(xa4,ya4,za4)を求める。さらに、属性値演算部21は、方位角設定円筒面PがノードN4の前方の道路リンクと交わる第2交点B4(xb4,yb4,zb4)を求める。第1交点A4および第2交点B4は、例えば、方位角設定円筒面Pの方程式と3次元の直線の方程式とに基づいて算出される。図24において、車線L1がXY平面に投影された投影車線L1’は、投影ノードn1からn6の座標列によって表現される。投影ノードn4を中心とする基準半径Rfの方位角設定円Oが、道路リンクと交わる交点a4(xa4,ya4,0)および交点b4(xb4,yb4,0)は、実施の形態2における第1交点および第2交点に対応する。
ステップS150にて、属性値演算部21は、第1交点および第2交点はそれぞれ1つだけか否かを判定する。第1交点および前方の第2交点がそれぞれ1つだけである場合、ステップS160が実行される。第1交点および第2交点がそれぞれ1つだけではない場合、ステップS170が実行される。
ステップS160にて、属性値演算部21は、第1交点および第2交点を結ぶ方位に基づいて方位角を求める。図25は、方位角設定円筒面Pにより求められる方位h4および仰角SL4の一例を示す図である。ここでは、属性値演算部21は、交点a4(xa4,ya4,0)および交点b4(xb4,yb4,0)に基づいて方位h4を求める。属性値演算部21は、その方位h4と北の方位とがなす角度を方位角として計算する。属性値保存部25はその方位角のデータをノードN4と関連付けて記憶する。
ステップS170にて、属性値演算部21は、方位角および仰角SL4を無効値に設定する。
ステップS180にて、属性値演算部21は、第1交点および第2交点を結ぶ上下の傾きに基づいて仰角SL4を求める。仰角SL4は、第2交点B4(xb4,yb4,zb4)と点B4’(xb4,yb4,za4)との距離、および、第1交点A4(xa4,ya4,za4)と点B4’(xb4,yb4,za4)との距離に基づいて算出される。点B4’は、第1交点A4が位置するXY平面に、第2交点B4が投影された点に対応する。属性値保存部25はその仰角SL4のデータをノードN4と関連付けて記憶する。
ステップS190にて、属性値演算部21は、全ての対象ノードNnに対する処理が完了したかを判定する。処理が完了している場合、ステップS200が実行される。処理が完了していない場合、ステップS130が再び実行される。
ステップS200にて、高精度地図DB生成部30は、対象ノードNnにおける方位角および仰角のデータを属性値保存部25から読み出す。高精度地図DB生成部30は、対象ノードNnの座標を地図情報記憶部15から読み出す。高精度地図DB生成部30は、対象ノードNnの座標、方位角および仰角SL4のデータを、その対象ノードNnの属性値として含む高精度地図DB211を生成する。
以上をまとめると、実施の形態5において、地図DB201における複数の地点の座標は3次元座標で表されている。第1交点Anは、方位角設定円筒面Pと対象ノードNnの後方の道路リンクとの交点である。第2交点Bnは、方位角設定円筒面Pと対象ノードNnの前方の道路リンクとの交点である。方位角設定円筒面Pは、2次元平面における方位角設定円が高さ方向に引き伸ばされて形成される面である。属性値演算部21は、第1交点Anと第2交点Bnとを結ぶ方位に基づいて、対象ノードNnにおける仰角SL4をさらに計算する。高精度地図DB生成部30は、対象ノードNnの仰角SL4の情報を、対象ノードNnの属性値としてさらに含む高精度地図DB211を生成する。高精度地図DB生成装置102は、高精度地図DB生成部30で生成された高精度地図DB211を記憶装置に出力してもよいし、記録媒体に出力してもよい。または、高精度地図DB生成装置102は、ネットワークを介して、外部装置に高精度地図DB211を送信してもよい。
以上のように、高精度地図DB生成装置102は、ノードごとの正確な方位角および仰角の情報を含む高精度地図DBを生成する。
(実施の形態5の変形例1)
実施の形態5の変形例1における属性値演算部21は、対象ノードを中心とする方位角設定球面を設定する。方位角設定球面は、対象ノードNnを中心に設定される。方位角設定球面の半径は、基準半径Rfである。方位角設定球面は、実施の形態2において示された方位角設定円が、対象ノードNnの座標を中心に回転して形成される球面に対応する。属性値演算部21は、方位角設定球面が対象ノードNnの後方の道路リンクと交わる第1交点Anを求める。さらに、属性値演算部21は、方位角設定球面が対象ノードNnの前方の道路リンクと交わる第2交点Bnを求める。属性値演算部21は、第1交点Anと第2交点Bnとを結ぶ方位に基づいて、対象ノードNnにおける方位角および仰角SL4を計算する。
(実施の形態5の変形例2)
属性値演算部21は、方位角設定円筒面Pの半径または方位角設定球面の半径を、実施の形態3、実施の形態4およびそれらの変形例と同様な方法で変更してもよい。
<実施の形態6>
以上の各実施の形態に示された高精度地図DB生成装置は、ナビゲーション装置と、通信端末と、サーバと、これらにインストールされるアプリケーションの機能とを適宜に組み合わせて構築されるシステムにも適用することができる。ここで、ナビゲーション装置とは、例えば、PND(Portable Navigation Device)などを含む。通信端末とは、例えば、携帯電話、スマートフォンおよびタブレットなどの携帯端末を含む。
図26は、実施の形態6における高精度地図DB生成装置100およびそれに関連して動作する装置の構成を示す機能ブロック図である。
高精度地図DB生成装置100、運転支援情報出力装置240、地図DB200および通信装置280がサーバ300に設けられている。高精度地図DB生成装置100は、地図DB200に基づいて高精度地図DB210を生成し、運転支援情報出力装置240に出力する。車両1に設けられたADASアプリ260は、通信装置270および通信装置280を介して高精度地図DB210の情報を取得する。
高精度地図DB生成装置100の機能あるいは構成要素の一部がサーバ300に設けられ、他の一部が車両1に設けられるなど、分散して配置されてもよい。
なお、本開示は、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
本開示は詳細に説明されたが、上記した説明は、全ての局面において、例示であって、本開示がそれに限定されるものではない。例示されていない無数の変形例が、この開示の範囲から外れることなく想定され得るものと解される。