(57)【要約】【課題】データベースに格納されているノード点に関する情報に基づいてクロソイド曲線を算出することによって、コーナを含む道路形状を正確に推定することができるようにする。【解決手段】地図データを読み込む地図データ読み込み部と、前記地図データに基づいて、コーナ区間に対応するクロソイド曲線を算出するクロソイド曲線算出部と、前記クロソイド曲線を前記コーナ区間に適合させるフィッティング処理部とを有する。【選択図】図１
2005214839.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）地図データを読み込む地図データ読み込み部と、
（ｂ）前記地図データに基づいて、コーナ区間に対応するクロソイド曲線を算出するクロソイド曲線算出部と、
（ｃ）前記クロソイド曲線を前記コーナ区間に適合させるフィッティング処理部とを有することを特徴とする道路形状推測装置。
【請求項２】
前記コーナ区間に適合させた前記クロソイド曲線に基づいて、前記コーナ区間の開始点又は終了点の位置を判定する開始点位置判定部を有する請求項１に記載の道路形状推測装置。
【請求項３】
前記フィッティング処理部は、前記クロソイド曲線を前記コーナ区間の開始部分又は終了部分に適合させる請求項１又は２に記載の道路形状推測装置。
【請求項４】
前記クロソイド曲線算出部は、実際の道路におけるコーナ区間の半径と前記道路を設計する際に使用されたクロソイド曲線のクロソイド係数との関係に基づいて作成されたテーブルから、前記コーナ区間の最小半径に対応したクロソイド係数を取得して使用する請求項１〜３のいずれか１項に記載の道路形状推測装置。
【請求項５】
前記クロソイド曲線算出部は、Ｘ座標及びＹ座標を以下の式（１）及び（２）で示す近似式を使用して、クロソイド曲線を算出する請求項１〜４のいずれか１項に記載の道路形状推測装置。
【数１】
2005214839.tif 000013
｛ただし、Ｘ0 及びＹ0 はクロソイド曲線の開始点のＸ座標及びＹ座標であり、Ｌはクロソイド曲線の開始点からの距離であり、クロソイド曲線の開始点の方位をαとすると、φは以下の式（３）で示され、
φ＝α＋２ｋＬ    （３）
さらに、クロソイド係数をＡとすると、ｋは以下の式（４）で示される。
ｋ＝２８／Ａ2     （４）｝
【請求項６】
前記クロソイド曲線算出部、フィッティング処理部及び開始点位置判定部の処理によって得られたデータを記憶する推測結果データベースを有する請求項１〜５のいずれか１項に記載の道路形状推測装置。
【請求項７】
（ａ）プログラムされたコンピュータによって、地図データに基づいてコーナ区間に対応するクロソイド曲線を算出するクロソイド曲線算出方法であって、
（ｂ）Ｘ座標及びＹ座標を以下の式（１）及び（２）で示す近似式を使用して、クロソイド曲線を算出することを特徴とするクロソイド曲線算出方法。
【数１】
2005214839.tif 000014
｛ただし、Ｘ0 及びＹ0 はクロソイド曲線の開始点のＸ座標及びＹ座標であり、Ｌはクロソイド曲線の開始点からの距離であり、クロソイド曲線の開始点の方位をαとすると、φは以下の式（３）で示され、
φ＝α＋２ｋＬ    （３）
さらに、クロソイド係数をＡとすると、ｋは以下の式（４）で示される。
ｋ＝２８／Ａ2     （４）｝
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、道路形状推測装置に関するものである。
【背景技術】
【０００２】
従来、自動車等の車両に搭載され、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）と呼ばれる位置測定装置や各種センサを使用して、前記車両の運転者等の使用者に対して、車両の現在位置を表示したり、目的地までの経路を探索して表示したりするナビゲーション装置が知られている。
【０００３】
また、該ナビゲーション装置が搭載された車両において、前記ナビゲーション装置が提供する道路状況データに対応させて駆動力制御を行うことができるようにした車両の駆動力制御装置も提供されている。この場合、例えば、車両がコーナ（カーブ）に差し掛かることが検出され、かつ、運転者の動作に基づく所定の条件が満たされると、駆動力制御としてシフトダウン等の車両を減速させるためのコーナ制御が行われる。そして、上限の変速段が決定され、該上限の変速段より上の変速段（高速側の変速段、変速比の小さい変速段等）が選択されないようになっている。
【０００４】
この場合、前記車両の駆動力制御装置は、前記ナビゲーション装置が提供する道路状況データ、車両の速度、アクセル開度等の種々のデータに基づいて演算を行い、制御用データを作成し、該制御用データに基づいて道路形状に合わせた制御を行うようになっている（例えば、特許文献１参照。）。
【特許文献１】特開２００１−９３０９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来のナビゲーション装置のデータベースには、地図データにおける道路の位置及び形状を構成するノード点に関するデータが含まれている。しかしながら、前記ノード点は、道路の屈曲点の位置を示すようになっているので、コーナにおける最小半径付近の範囲では比較的高い密度で設定されているが、コーナの出入口付近のように半径の大きい箇所では低い密度でしか設定されていない。そのため、前記ノード点を結んだ曲線を作成しても、該曲線の形状が実際の道路形状とは異なってしまうことがある。
【０００６】
また、前記ノード点がコーナの出入口付近において低い密度でしか設定されていないので、コーナが開始するコーナ開始点及びコーナが終了するコーナ終了点の位置を求めるとずれが生じてしまうことがある。その場合、適切なコーナ制御を行うことができなくなってしまう。
【０００７】
本発明は、前記従来の問題点を解決して、データベースに格納されているノード点に関する情報に基づいてクロソイド曲線を算出することによって、コーナを含む道路形状を正確に推定することができる道路形状推測装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
そのために、本発明の道路形状推測装置においては、地図データを読み込む地図データ読み込み部と、前記地図データに基づいて、コーナ区間に対応するクロソイド曲線を算出するクロソイド曲線算出部と、前記クロソイド曲線を前記コーナ区間に適合させるフィッティング処理部とを有する。
【０００９】
本発明の他の道路形状推測装置においては、さらに、前記コーナ区間に適合させた前記クロソイド曲線に基づいて、前記コーナ区間の開始点又は終了点の位置を判定する開始点位置判定部を有する。
【００１０】
本発明の更に他の道路形状推測装置においては、さらに、前記フィッティング処理部は、前記クロソイド曲線を前記コーナ区間の開始部分又は終了部分に適合させる。
【００１１】
本発明の更に他の道路形状推測装置においては、さらに、前記クロソイド曲線算出部は、実際の道路におけるコーナ区間の半径と前記道路を設計する際に使用されたクロソイド曲線のクロソイド係数との関係に基づいて作成されたテーブルから、前記コーナ区間の最小半径に対応したクロソイド係数を取得して使用する。
【００１２】
本発明の更に他の道路形状推測装置においては、さらに、前記クロソイド曲線算出部は、Ｘ座標及びＹ座標を以下の式（１）及び（２）で示す近似式を使用して、クロソイド曲線を算出する。
【００１３】
【数１】
2005214839.tif 000003
｛ただし、Ｘ0 及びＹ0 はクロソイド曲線の開始点のＸ座標及びＹ座標であり、Ｌはクロソイド曲線の開始点からの距離であり、クロソイド曲線の開始点の方位をαとすると、φは以下の式（３）で示され、
φ＝α＋２ｋＬ    （３）
さらに、クロソイド係数をＡとすると、ｋは以下の式（４）で示される。
ｋ＝２８／Ａ2     （４）｝
本発明の更に他の道路形状推測装置においては、さらに、前記クロソイド曲線算出部、フィッティング処理部及び開始点位置判定部の処理によって得られたデータを記憶する推測結果データベースを有する。
【００１４】
本発明のクロソイド曲線算出方法においては、プログラムされたコンピュータによって、地図データに基づいてコーナ区間に対応するクロソイド曲線を算出するクロソイド曲線算出方法であって、Ｘ座標及びＹ座標を以下の式（１）及び（２）で示す近似式を使用して、クロソイド曲線を算出する。
【００１５】
【数１】
2005214839.tif 000004
｛ただし、Ｘ0 及びＹ0 はクロソイド曲線の開始点のＸ座標及びＹ座標であり、Ｌはクロソイド曲線の開始点からの距離であり、クロソイド曲線の開始点の方位をαとすると、φは以下の式（３）で示され、
φ＝α＋２ｋＬ    （３）
さらに、クロソイド係数をＡとすると、ｋは以下の式（４）で示される。
ｋ＝２８／Ａ2     （４）｝
【発明の効果】
【００１６】
本発明によれば、データベースに格納されているノード点に関する情報に基づいてクロソイド曲線を算出することによって、コーナを含む道路形状を正確に推定することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１８】
図１は本発明の実施の形態における道路形状推測装置の構成を示すブロック図である。
【００１９】
図において、２０は演算手段、記憶手段等を有する一種のコンピュータシステムとしての道路形状推測装置であり、道路を走行する乗用車、トラック、バス、オートバイ、作業車等の車両に配設されている。また、４１は地球の周囲の軌道上を周回してＧＰＳ情報を発信するＧＰＳ衛星である。ここで、該ＧＰＳ衛星は、実際には複数（例えば、６軌道上に２４個）であるが、図においては、単一のＧＰＳ衛星４１がすべてのＧＰＳ衛星を代表するものとして示されている。
【００２０】
そして、前記道路形状推測装置２０において、２１は、地図の表示、車両の現在位置の認識、経路案内等のナビゲーション装置としての基本処理を実行するナビ制御装置である。また、２２は、コーナを含む道路形状を推測するための処理を実行する道路形状推測制御装置であり、前記ナビ制御装置２１と各種情報の送受信を行うようになっている。
【００２１】
また、２４は、前記ＧＰＳ衛星４１からのＧＰＳ情報を受信して、ナビ制御装置２１に送信するＧＰＳ受信装置であり、通常のナビゲーション装置において使用されるものと同様の構成を有する。そして、２５は、前記道路形状推測制御装置２２が推測したコーナを含む道路形状に関するデータを格納する推測結果データベースである。また、２６は、車両のエンジン制御装置、変速比を制御する駆動力制御装置等の車両の各部を制御する車両制御装置と通信するための車両制御装置インターフェイスである。さらに、２７は、ＣＲＴ、液晶ディスプレイ、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）ディスプレイ、ホログラフィ装置等を備え、前記道路形状推測制御装置２２の指令に応じてコーナを含む道路形状等の道路情報等を表示する表示装置である。なお、該表示装置２７は、ナビ制御装置２１の出力する、地図、経路、検索された施設等の情報も表示する。
【００２２】
そして、２８は、車両の状態を示す各種車両状態情報を各種センサから受信して、前記ナビ制御装置２１に送信するセンサ情報受信装置である。なお、前記各種車両状態情報は、ナビ制御装置２１を経由して、道路形状推測制御装置２２にも送信されるようにしてもよい。この場合、前記各種センサには、アクセル開度を検出するアクセル開度センサ、運転者が操作するブレーキペダルの動きを検出するブレーキスイッチ、運転者が操作するステアリングの舵（だ）角を検出するステアリングセンサ、運転者が操作するウィンカースイッチの動きを検出するウィンカーセンサ、運転者が操作する変速機のシフトレバーの動きを検出するシフトレバーセンサ、車両の走行速度、すなわち、車速を検出する車速センサ、車両の加速度を検出する加速度センサ、車両の向いている方位の変化を示すヨーレイトを検出するヨーレイトセンサ等が含まれる。なお、前記各種車両状態情報は、アクセル開度、運転者が操作するブレーキペダルの動き、運転者が操作するステアリングの舵角、運転者が操作するウィンカースイッチの動き、運転者が操作する変速機のシフトレバーの動き、車両の走行速度、すなわち、車速、車両の加速度、車両の向いている方位の変化を示すヨーレイト等を含んでいる。
【００２３】
また、２３は、道路の半径とクロソイド係数との関係を統計的に分析することによって作成された半径−クロソイド係数テーブルを格納するクロソイド係数データベースである。前記半径−クロソイド係数テーブルは、道路設計地図に基づいて、あらかじめコーナ区間における道路の半径とクロソイド係数との関係を統計的に分析することによって作成されたものである。
【００２４】
ここで、前記ナビ制御装置２１は、図示されないＣＰＵ、ＭＰＵ等の演算手段、半導体メモリ、磁気ディスク等の記憶手段、通信インターフェイス等を備える。そして、前記記憶手段には、地図データベース２１ａが格納されている。該地図データベース２１ａは、各種地図データから成るデータベースであり、例えば、交差点データファイル、ノードデータファイル、道路データファイル、及び、各地域のホテル、ガソリンスタンド等の施設の情報が記録された施設情報データファイルを含むものである。そして、前記記憶手段には、経路を探索するためのデータの他、前記表示装置２７の画面に、探索された経路に沿って案内図を表示したり、次の交差点までの距離、次の交差点における進行方向等を表示したり、他の案内情報を表示したりするための各種データが記録される。なお、前記記憶手段には、所定の情報を音声出力するための各種データも記録される。また、前記記憶手段は、磁気テープ、磁気ディスク、磁気ドラム、フラッシュメモリ、ＣＤ−ＲＯＭ、ＭＤ、ＤＶＤ−ＲＯＭ、光ディスク、ＭＯ、ＩＣカード、光カード、メモリカード等、あらゆる形態の記憶媒体を含むものであり、取り外し可能な外部記憶媒体を使用することもできる。
【００２５】
そして、前記地図データベース２１ａにおける交差点データファイルには交差点データが、ノードデータファイルにはノードデータが、道路データファイルには道路データが、それぞれ、記録され、前記交差点データ、ノードデータ及び道路データによって道路状況が前記表示装置２７の画面に表示される。なお、前記交差点データには、交差点の種類、すなわち、交通信号灯器の設置されている交差点であるか又は交通信号灯器の設置されていない交差点であるかが含まれる。また、前記ノードデータは、前記地図データベース２１ａに記録された地図データにおける少なくとも道路の位置及び形状を構成するものであり、実際の道路の分岐点（交差点、Ｔ字路等を含む）、ノード点、及び、各ノード点間を連結するリンクを示すデータから成る。さらに、前記ノード点は、少なくとも道路の屈曲点の位置を示す。
【００２６】
また、前記道路データには、道路自体について、幅員、カント、バンク、道路の車線数、該車線数の減少する地点、幅員の狭くなる地点等のデータが含まれる。なお、高速道路や幹線道路の場合、対向方向の車線のそれぞれが別個の道路データとして格納され、２条化道路として処理される。例えば、片側二車線以上の幹線道路の場合、２条化道路として処理され、上り方向の車線と下り方向の車線は、それぞれ、独立した道路として道路データに格納される。また、コーナについては、曲率半径、交差点、Ｔ字路、コーナの入口等のデータが含まれる。さらに、道路属性については、踏切、高速道路出入口ランプウェイ、高速道路の料金所、道路種別等のデータが含まれる。
【００２７】
さらに、前記ナビ制御装置２１の通信インターフェイスは、道路形状推測制御装置２２との間で通信を行うとともに、ＦＭ送信装置、電話回線網、インターネット、携帯電話網等との間で各種データの送受信を行うことができるものであることが望ましい。例えば、図示されない情報センサ等によって受信した渋滞等の道路情報、交通事故情報、ＧＰＳセンサの検出誤差を検出するＤ−ＧＰＳ情報等の各種データを受信するようになっていることが望ましい。
【００２８】
そして、前記ナビ制御装置２１は、ＧＰＳ受信装置２４及びセンサ情報受信装置２８から受信した情報に基づいて、目的地までの経路の探索、経路中の走行案内、地点、施設等の検索等の各種処理を実行し、地図を表示装置２７の画面に表示し、前記地図上に車両の現在位置、該現在位置から目的地までの経路、該経路に沿った案内情報等を表示する。なお、該案内情報は、発音手段によって音声出力されるようにしてもよい。
【００２９】
また、前記道路形状推測制御装置２２は、図示されないＣＰＵ、ＭＰＵ等の演算手段、半導体メモリ、磁気ディスク等の記憶手段、通信インターフェイス等を備える。ここで、前記記憶手段は、磁気テープ、磁気ディスク、磁気ドラム、フラッシュメモリ、ＣＤ−ＲＯＭ、ＭＤ、ＤＶＤ−ＲＯＭ、光ディスク、ＭＯ、ＩＣカード、光カード、メモリカード等、あらゆる形態の記憶媒体を含むものであり、取り外し可能な外部記憶媒体を使用することもできる。
【００３０】
そして、前記道路形状推測制御装置２２は、前記記憶手段に格納された制御プログラムに従って、前記ナビ制御装置２１の地図データベース２１ａから取得した地図データに基づいて、コーナを含む道路形状を推測する処理、すなわち、道路形状推測処理を行う。
【００３１】
本実施の形態において、道路形状推測装置２０は、機能の観点から、地図データを読み込む地図データ読み込み部、コーナ区間を算出するコーナ区間算出部、クロソイド曲線を算出するクロソイド曲線算出部、クロソイド曲線をコーナ区間に適合させるフィッティング処理を実行するフィッティング処理部、及び、コーナ区間の開始点又は終了点の位置を判定する開始点位置判定部を有する。
【００３２】
なお、本実施の形態における道路形状推測装置２０は、随時、コーナを含む道路形状に関するデータを作成して、推測結果データベース２５に格納するようになっている。例えば、車両の運転者等の操作者が、図示されない入力装置を操作してナビ制御装置２１を作動させ、目的地を設定し、該目的地までの経路を探索させた場合、探索された経路に対応する道路について、コーナを含む道路形状に関するデータを作成するようにしてもよい。また、車両の走行中に、車両の前方の所定距離範囲内の経路に対応する道路について、コーナを含む道路形状に関するデータを作成するようにしてもよい。さらに、コーナを含む道路形状に関するデータをナビ制御装置２１の地図データベース２１ａに記録することもできる。このように、道路形状推測装置２０が道路形状推測処理を実行した経路に関しては、前記コーナを含む道路形状に関するデータが記録され蓄積されていくので、道路形状推測処理を繰り返し実行する必要がない。
【００３３】
次に、前記構成の道路形状推測装置２０の動作について説明する。
【００３４】
図２は本発明の実施の形態におけるクロソイド曲線の例を示す第１の図、図３は本発明の実施の形態におけるクロソイド曲線のフィッティング処理の動作を示す図、図４は本発明の実施の形態における道路形状推測装置の全体的動作を示すフローチャートである。
【００３５】
まず、道路形状推測制御装置２２は、コーナを含む道路形状に関するデータを作成する対象となる道路が設定されると、該道路を対象とした道路形状推測処理を開始する。この場合、前記道路形状推測制御装置２２は、地図データベース２１ａから前記道路の位置及び形状を構成するノードデータを取得する。なお、該ノードデータは、ノード点及び各ノード点間を連結するリンクを示すデータを含み、前記道路は複数のノード点の列として把握される。また、各ノード点のデータには、該ノード点の半径又は曲率が含まれる。そして、前記道路形状推測制御装置２２は、前記ノード点の列からコーナ区間の位置を大まかに検出し、該コーナ区間にクロソイド曲線を適合させ、すなわち、フィッティングさせ、前記コーナの開始点や半径の数値を推定するようになっている。
【００３６】
この場合、前記道路形状推測制御装置２２は、前記列の最初のノード点から最後のノード点までのループを開始する。ここで、ノード点の番号をｎｕｍとすると、ｎｕｍは０からスタートし、順次１ずつ増加するように、各ノード点に付与されている。そして、前記道路形状推測制御装置２２は、まず、ｎｕｍ＝０のノード点に関して、最寄りコーナ区間検出処理を実行する。これにより、ｎｕｍ＝０のノード点の前方直近に位置するコーナ区間を構成するノード点を検出する。
【００３７】
続いて、前記道路形状推測装置２０は、前記コーナ区間の半径に対応するクロソイド曲線を算出するためのクロソイド曲線算出処理を実行する。ここで、クロソイド曲線は、曲率が長さに沿って増加又は減少する曲線であり、道路を設計する際には、例えば、図２に示されるような曲率が長さに沿って増加するクロソイド曲線の一部がコーナ区間の開始部分に適用される。なお、図２に示されるクロソイド曲線上の◆の点は、開始点（座標原点）からの距離が１〔ｍ〕増加する毎にプロットされたものである。
【００３８】
仮に、道路が直線を曲率が一定の単曲線でつないだ形状を有していると、車両の運転者は、直線と単曲線との接続部において前記単曲線の曲率に対応する舵角まで一気にステアリングを操作する必要があり、車両の姿勢が不安定になったりしてしまう。しかし、実際の運転において車両がコーナ区間に進入する際、運転者は所定の曲率に対応する舵角まで徐々にステアリングを操作し、しかも、その間車両は進行し続ける。この場合、車両は、進行するに従って曲率が増加する曲線を描いて進行する。そのため、コーナ区間の開始部分の道路形状は、通常、クロソイド曲線で表すことができるようになっている。なお、前記クロソイド曲線の半径は、次の式（１）で表される。
ＲＬ＝Ａ2   ・・・式（１）
ただし、Ｒは半径、Ｌは曲線長、Ａは定数としてのクロソイド係数である。
【００３９】
そして、前記クロソイド曲線算出処理によって前記コーナ区間の半径に対応するクロソイド曲線が算出されると、前記道路形状推測制御装置２２は、図３に示されるように、前記コーナ区間に対応するノード点の列にクロソイド曲線をフィッティングさせるためのフィッティング処理を実行する。なお、図３において、線ａはノード点を接続した線であり、●で示されるｂはコーナ区間に対応するノード点、○で示されるｃは直線区間に対応するノード点である。図３に示される例において、最寄りコーナ区間検出処理によって検出されたコーナ区間Ｂには、３つのノード点ｂが存在する。そして、図３において、ｄはクロソイド曲線算出処理によって算出されたクロソイド曲線であり、前記道路形状推測制御装置２２は、前記クロソイド曲線ｄをコーナ区間Ｂにフィッティングさせる。
【００４０】
続いて、前記道路形状推測制御装置２２は、フィッティング処理の結果に基づいてコーナの開始点の位置を判定するための開始点位置判定処理を実行する。これにより、図３において□で示されるｅの位置がコーナ区間Ｂの開始点の位置として判定される。なお、前記コーナ区間Ｂの終了点の位置は、同様の処理を反対側から実行することによって判定することができる。
【００４１】
そして、コーナの開始点の位置が判定されると、前記道路形状推測制御装置２２は、処理対象のノード点の番号ｎｕｍを前記コーナ区間Ｂの終端に位置するノード点、すなわち、コーナ終端点のｎｕｍに更新し、該コーナ終端点を処理対象として前記ループを開始する。なお、処理対象のノード点の番号ｎｕｍが処理対象の道路に対応するノード点の列の最後のノード点の番号になったときには、ループを終了する。
【００４２】
次に、フローチャートについて説明する。
ステップＳ１  最初のノード点から最後のノード点までのループを開始する。
ステップＳ２  最寄りコーナ区間検出処理を実行する。
ステップＳ３  クロソイド曲線算出処理を実行する。
ステップＳ４  フィッティング処理を実行する。
ステップＳ５  開始点位置判定処理を実行する。
ステップＳ６  処理対象のｎｕｍをコーナ終端点まで更新する。
ステップＳ７  ループを終了し、処理を終了する。
【００４３】
次に、最寄りコーナ区間検出処理について詳細に説明する。
【００４４】
図５は本発明の実施の形態におけるコーナ区間を検出する方法を説明する第１の図、図６は本発明の実施の形態におけるコーナ区間を検出する方法を説明する第２の図、図７は本発明の実施の形態における最寄りコーナ区間検出処理の動作を示すフローチャートである。
【００４５】
この場合、道路形状推測制御装置２２は、まず、図５に示されるようなコーナ区間Ｂを検出する。図５において、線ａはノード点を結んだ線であり、●で示されるｂは半径が閾（しきい）値未満でありコーナとされるノード点、○で示されるｃは半径が閾値以上であり直線とされるノード点である。前記閾値は、例えば、３００〔ｍ〕である。図５に示される例において、検出されたコーナ区間Ｂには、４つのノード点ｂが存在する。
【００４６】
ところで、図６は、「発明が解決しようとする課題」の項において説明したように、ノード点を結んだ曲線を作成しても、実際の道路半径を再現することが困難であることを示している。図６において、ａはある道路に関して道路設計地図に基づいて作成した道路半径を示す曲線であり、□で示されるｂは、通常の車両用ナビゲーション装置において使用されるノードデータに含まれる前記道路についてのノード点から算出した半径を示す点であり、ｃは点ｂを結んだ線である。図６から、「発明が解決しようとする課題」の項において説明したように、コーナ区間の出入口付近のように半径の大きな箇所では、点ｂを結んだ線ｃの半径が実際の道路半径を示す曲線ａから大きく乖離していることが分かる。これは、コーナ区間の出入口付近のように半径の大きな箇所では、ノード点の間隔が広い、例えば、６〜８〔ｍ〕程度又はそれ以上であるからである。一方、図６においてＤで示される範囲は、半径が最小となる３つのノード点に対応する点ｂに該当する範囲では、点ｂを結んだ線ｃと実際の道路半径を示す曲線ａとがほぼ一致していることが分かる。これは、コーナ区間の中心付近において半径が小さい箇所では、ノード点の間隔が狭い、例えば、２〔ｍ〕程度であるからである。したがって、ノード点の間隔が十分に狭い、すなわち、密度が十分に高い箇所のノード点を使用して算出した半径は、実際の道路の半径とほぼ同一になると考えることができる。
【００４７】
そこで、本実施の形態においては、検出されたコーナ区間において、隣接する３つのノード点を使用して半径を算出して最小となる半径の値を見出し、また、該当するノード点を特定するようになっている。
【００４８】
まず、前記道路形状推測制御装置２２は、コーナ区間の開始点となるノード点の番号ｎｕｍを格納する記憶エリアｆｉｒｓｔを初期化してＮＵＬＬとする。続いて、前記道路形状推測装置２０は、コーナ区間の終点までのループを開始する。この場合、任意の番号ｎｕｍのノード点を処理対象ノード点として、ループを開始することができる。なお、処理対象ノード点の番号はｃｈｋとする。そして、前記道路形状推測制御装置２２は、処理対象ノード点、すなわち、ｃｈｋ番ノード点とその前後に位置する２つのノード点、すなわち、隣接する３つのノード点によって形成される形状に基づいて、ｃｈｋ番ノード点の半径を算出する三点半径計算処理を実行する。これにより、前記ｃｈｋ番ノード点における半径が算出される。
【００４９】
続いて、前記道路形状推測制御装置２２は、算出されたｃｈｋ番ノード点の半径が前記閾値未満であるか否かを判断して、前記ｃｈｋ番ノード点がコーナ区間に存在するか否かを確認する。そして、半径が前記閾値未満であり、前記ｃｈｋ番ノード点がコーナ区間に存在することが確認されると、前記道路形状推測制御装置２２は、旋回方向が同じであるか否かを判断して、旋回方向に変化がないか否かを確認する。これは、いわゆるＳ字コーナの場合には、変曲点までを１つのコーナ区間として把握するためである。
【００５０】
続いて、旋回方向が同じであり、旋回方向に変化がないことを確認すると、前記道路形状推測制御装置２２は、記憶エリアｆｉｒｓｔがＮＵＬＬであるか否かを判断して、記憶エリアｆｉｒｓｔに値が格納されていないか否かを確認する。そして、記憶エリアｆｉｒｓｔに値が格納されていないことを確認すると、前記道路形状推測制御装置２２は、記憶エリアｆｉｒｓｔにｃｈｋを格納して登録し、前記ｃｈｋ番ノード点をコーナ区間の開始点として登録する。続いて、前記道路形状推測制御装置２２は、コーナ区間の最小半径を格納する記憶エリアｓ−ｒａｄに前記ｃｈｋ番ノード点の半径を格納して登録し、次のノード点を処理対象ノード点としてループを開始する。
【００５１】
また、記憶エリアｆｉｒｓｔがＮＵＬＬでなく、記憶エリアｆｉｒｓｔに値が格納されている場合、前記道路形状推測制御装置２２は、記憶エリアｓ−ｒａｄに登録されている半径より前記ｃｈｋ番ノード点の半径の方が小さいか否かを判断する。そして、小さい場合には記憶エリアｓ−ｒａｄに登録されている半径を前記ｃｈｋ番ノード点の半径に置き換えて更新し、また、小さくない場合にはそのままにし、次のノード点を処理対象ノード点としてループを開始する。
【００５２】
一方、半径が前記閾値以上であり、前記ｃｈｋ番ノード点がコーナ区間に存在しないことが確認された場合、及び、旋回方向が同じでなく、旋回方向に変化があることが確認された場合には、前記道路形状推測制御装置２２は、記憶エリアｆｉｒｓｔがＮＵＬＬであるか否かを判断して、記憶エリアｆｉｒｓｔに値が格納されていないか否かを確認する。そして、記憶エリアｆｉｒｓｔに値が格納されていないことを確認すると、次のノード点を処理対象ノード点としてループを開始する。また、記憶エリアｆｉｒｓｔがＮＵＬＬでなく、記憶エリアｆｉｒｓｔに値が格納されている場合、前記道路形状推測制御装置２２は、コーナ区間の終了点となるノード点の番号ｎｕｍを格納する記憶エリアｅｎｄにｃｈｋ−１を格納して登録し、ｃｈｋ−１番ノード点をコーナ区間の終了点として登録する。これにより、前記道路形状推測制御装置２２は、最寄りコーナ区間検出処理を終了する。
【００５３】
次に、フローチャートについて説明する。
ステップＳ２−１  記憶エリアｆｉｒｓｔを初期化してＮＵＬＬとする。
ステップＳ２−２  コーナ区間の終点までのループを開始する。
ステップＳ２−３  三点半径計算処理を実行する。
ステップＳ２−４  ｃｈｋ番ノード点の半径が閾値未満であるか否かを判断する。ｃｈｋ番ノード点の半径が閾値未満である場合はステップＳ２−５に進み、ｃｈｋ番ノード点の半径が閾値以上である場合はステップＳ２−１１に進む。
ステップＳ２−５  旋回方向が同じであるか否かを判断する。旋回方向が同じである場合はステップＳ２−６に進み、旋回方向が同じでない場合はステップＳ２−１１に進む。
ステップＳ２−６  記憶エリアｆｉｒｓｔがＮＵＬＬであるか否かを判断する。記憶エリアｆｉｒｓｔがＮＵＬＬである場合はステプＳ２−７に進み、記憶エリアｆｉｒｓｔがＮＵＬＬでない場合はステップＳ２−９に進む。
ステップＳ２−７  記憶エリアｆｉｒｓｔにｃｈｋを格納して登録する。
ステップＳ２−８  記憶エリアｓ−ｒａｄにｃｈｋ番ノード点の半径を格納して登録する。
ステップＳ２−９  記憶エリアｓ−ｒａｄに登録されている半径よりｃｈｋ番ノード点の半径の方が小さいか否かを判断する。記憶エリアｓ−ｒａｄに登録されている半径よりｃｈｋ番ノード点の半径の方が小さい場合にはステップＳ２−１０に進み、記憶エリアｓ−ｒａｄに登録されている半径よりｃｈｋ番ノード点の半径の方が小さくない場合はステップＳ２−１３に進む。
ステップＳ２−１０  記憶エリアｓ−ｒａｄに登録されている半径をｃｈｋ番ノード点の半径に置き換えて更新する。
ステップＳ２−１１  記憶エリアｆｉｒｓｔがＮＵＬＬであるか否かを判断する。記憶エリアｆｉｒｓｔがＮＵＬＬである場合はステップＳ２−１３に進み、記憶エリアｆｉｒｓｔがＮＵＬＬでない場合はステップＳ２−１２に進む。
ステップＳ２−１２  記憶エリアｅｎｄにｃｈｋ−１を格納して登録して、処理を終了する。
ステップＳ２−１３  ループを終了し、処理を終了する。
【００５４】
次に、三点半径計算処理について詳細に説明する。
【００５５】
図８は本発明の実施の形態における３つのノード点を通過する円の半径を計算する方法を説明する図、図９は本発明の実施の形態における三点半径計算処理の動作を示すフローチャートである。
【００５６】
ここで、処理対象ノード点であるｃｈｋ番ノード点とその前後に位置する２つのノード点を通過する円とを描くと図８に示されるようになる。そして、円の半径をＲとすると、各部の長さは、図８に示されるようになる。この場合、（ａ）の二乗と（ｂ）の二乗との和が半径Ｒの二乗であるから、次の式（２）の関係が成り立つ。
【００５７】
【数２】
2005214839.tif 000005
そして、該式（２）の（ａ）及び（ｂ）にそれぞれの長さを代入すると次の式（３）となる。
【００５８】
【数３】
2005214839.tif 000006
続いて、該式（３）を変形すると次の式（４）となる。
【００５９】
【数４】
2005214839.tif 000007
さらに、該式（４）を変形すると次の式（５）となる。
【００６０】
【数５】
2005214839.tif 000008
さらに、該式（５）を変形すると次の式（６）となる。
【００６１】
【数６】
2005214839.tif 000009
最後に、該式（６）を変形すると次の式（７）となる。
【００６２】
【数７】
2005214839.tif 000010
該式（７）から、半径Ｒは、Ｌ1 、Ｌ2 及びθの関数であることが分かる。
【００６３】
そこで、道路形状推測制御装置２２は、まず、ｃｈｋ番ノード点から進行方向に関して後方のノード点、すなわち、ｃｈｋ−１番ノード点までの距離Ｌ1 を算出する。続いて、前記道路形状推測制御装置２２は、ｃｈｋ番ノード点から進行方向に関して前方のノード点、すなわち、ｃｈｋ＋１番ノード点までの距離Ｌ2 を算出する。続いて、前記道路形状推測制御装置２２は、ｃｈｋ番ノード点とｃｈｋ−１番ノード点とを結ぶ線と、ｃｈｋ番ノード点とｃｈｋ＋１番ノード点とを結ぶ線とのなす角度θを算出する。そして、前記道路形状推測制御装置２２は、算出したＬ1 、Ｌ2 及びθの値を前記式（７）に代入して円の半径Ｒを算出し、三点半径計算処理を終了する。これにより、ｃｈｋ番ノード点における半径を得ることができる。
【００６４】
次に、フローチャートについて説明する。
ステップＳ２−３−１  後方のノード点までの距離Ｌ1 を算出する。
ステップＳ２−３−２  前方のノード点までの距離Ｌ2 を算出する。
ステップＳ２−３−３  ｃｈｋ番ノード点と後方のノード点とを結ぶ線と、ｃｈｋ番ノード点と前方のノード点とを結ぶ線とのなす角度θを算出する。
ステップＳ２−３−４  円の半径Ｒを算出して、処理を終了する。
【００６５】
次に、クロソイド曲線算出処理について詳細に説明する。
【００６６】
図１０は本発明の実施の形態におけるクロソイド曲線の比較を示す第１の図、図１１は本発明の実施の形態におけるクロソイド曲線の比較を示す第２の図、図１２は本発明の実施の形態におけるクロソイド曲線の比較を示す第３の図、図１３は本発明の実施の形態におけるクロソイド曲線の比較を示す第４の図、図１４は本発明の実施の形態におけるコーナ区間の最小半径とクロソイド係数との相関の例を示す図、図１５は本発明の実施の形態における半径−クロソイド係数テーブルの例を示す図、図１６は本発明の実施の形態におけるクロソイド曲線算出処理の動作を示すフローチャートである。
【００６７】
本実施の形態において、道路形状推測制御装置２２は、本発明の発明者が独自に案出した近似式を使用してクロソイド曲線を算出するようになっているので、まず、前記近似式について説明する。
【００６８】
通常、クロソイド曲線のＸ座標及びＹ座標は、それぞれ、次の式（８）及び（９）で示される多項式から算出される。（社団法人日本道路協会編集、「クロソイドポケットブック」、平成３年５月１日、第３６版発行、丸善株式会社  参照。）。
【００６９】
【数８】
2005214839.tif 000011
ただし、Ｌはクロソイド曲線の開始点からの距離、すなわち、曲線長であり、Ｒは半径である。また、前記ＬとＲとの関係は前記式（１）で表される。
【００７０】
しかし、前記式（８）及び（９）は、高次の多項式であり、多数の点をプロットして図２に示されるようなクロソイド曲線を算出するためには、道路形状推測制御装置２２の処理負荷が大きくなってしまう。そこで、本発明の発明者は、多数のシュミレーションを行った結果、クロソイド曲線のＸ座標及びＹ座標を、それぞれ、次の式（１０）及び（１１）で示される近似式から算出することができることを見出した。
【００７１】
【数９】
2005214839.tif 000012
ただし、Ｌはクロソイド曲線の開始点からの距離、すなわち、曲線長であり、Ｘ0 及びＹ0 はクロソイド曲線の開始点のＸ座標及びＹ座標である。なお、図２に示されるようなクロソイド曲線において、開始点は座標原点であり、Ｘ0 及びＹ0 は０である。また、φは次の式（１２）で表される。
φ＝α＋２ｋＬ  ・・・式（１２）
ただし、αは開始点の方位である。そして、ｋは次の式（１３）で表される。
ｋ＝２８／Ａ2   ・・・式（１３）
ただし、Ａはクロソイド係数である。
【００７２】
図１０〜１３には、前記式（８）及び（９）で示される多項式から算出したＸ座標及びＹ座標に基づいて作成されたクロソイド曲線と、前記式（１０）及び（１１）で示される近似式から算出したＸ座標及びＹ座標に基づいて作成されたクロソイド曲線との比較が示されている。図１０〜１３において、◆は前記式（８）及び（９）で示される多項式から算出したＸ座標及びＹ座標に基づいてプロットした点を示し、□は前記式（１０）及び（１１）で示される近似式から算出したＸ座標及びＹ座標に基づいてプロットした点を示している。なお、図１０はクロソイド係数Ａの値が２０の場合、図１１はクロソイド係数Ａの値が３０の場合、図１２はクロソイド係数Ａの値が４０の場合、図１３はクロソイド係数Ａの値が５０の場合である。
【００７３】
図１０〜１３から分かるように、前記式（８）及び（９）で示される多項式から算出したＸ座標及びＹ座標に基づいて作成されたクロソイド曲線と、前記式（１０）及び（１１）で示される近似式から算出したＸ座標及びＹ座標に基づいて作成されたクロソイド曲線とはほぼ一致する。そこで、本実施の形態においては、道路形状推測制御装置２２の処理負荷が小さくて済むように、前記式（１０）及び（１１）で示される近似式を使用してクロソイド曲線を算出する。
【００７４】
次に、あらかじめ作成されクロソイド係数データベース２３に格納されている半径−クロソイド係数テーブルについて説明する。
【００７５】
本実施の形態においては、道路設計地図に基づいて、実際の道路のコーナ区間における道路の半径と、前記道路を設計する際に使用されたクロソイド曲線のクロソイド係数との関係から近似式を求めるようになっている。図１４は、ある道路についての半径とクロソイド係数との関係を示す図であり、◆はクロソイド係数をプロットした点である。そして、曲線ａは、前記点の位置に基づいて半径とクロソイド係数との関係を示すものであり、具体的には、次の式（１４）のような多項式で表される。
Ａ＝−０．０００７Ｒ2 ＋０．４９６１Ｒ＋１７．４１４  ・・・式（１４）
また、直線ｂは次の式（１５）で表される。
Ａ＝Ｒ  ・・・式（１５）
ただし、Ａはクロソイド係数であり、Ｒは半径である。
【００７６】
そして、前記式（１４）のような多項式に基づいて、図１５に示されるような半径とクロソイド係数との関係を示す半径−クロソイド係数テーブルを作成し、クロソイド係数データベース２３に格納する。なお、図１５に示される半径−クロソイド係数テーブルにおいて右側の欄はクロソイド係数を二乗した数値が示されている。また、該数値は、１０ずつ増加する半径に対応するように示されているが、その間の前記数値はリニアに変化するものと仮定して、線形補完によって求めることができる。また、本実施の形態においては、クロソイド曲線のクロソイド係数との関係を近似式で表すようになっているが、統計的に分析して、例えば、ある半径に対するクロソイド係数の平均値を算出して、半径−クロソイド係数テーブルを作成してもよい。
【００７７】
そして、道路形状推測制御装置２２は、記憶エリアｓ−ｒａｄに登録されたコーナ区間の最小半径に基づいて、図１５に示されるような半径−クロソイド係数テーブルからクロソイド係数を二乗した数値を取得する。続いて、前記道路形状推測制御装置２２は、前記数値及び記憶エリアｆｉｒｓｔに登録されたコーナの開始点に基づいてクロソイド曲線を算出するための演算処理を実行して、クロソイド曲線算出処理を終了する。
【００７８】
次に、フローチャートについて説明する。
ステップＳ３−１  コーナ区間の最小半径に基づいて、半径−クロソイド係数テーブルからクロソイド係数を二乗した数値を取得する。
ステップＳ３−２  演算処理を実行して、処理を終了する。
【００７９】
次に、演算処理について詳細に説明する。
【００８０】
図１７は本発明の実施の形態における演算処理の動作を示すフローチャートである。
【００８１】
まず、道路形状推測制御装置２２は、任意の長さ分のクロソイド曲線、例えば、１００〔ｍ〕までのクロソイド曲線を算出するまでのループを開始する。ここでは、クロソイド曲線上において、開始点（座標原点）からの距離が１〔ｍ〕の点、すなわち、曲線長Ｌが１〔ｍ〕の点からループを開始し、前記開始点からの距離が１〔ｍ〕増加する毎の各点のＸ座標及びＹ座標を順次算出し、前記開始点から１００〔ｍ〕の距離の点、すなわち、曲線長Ｌが１００〔ｍ〕になったらループを終了する。
【００８２】
そして、前記道路形状推測制御装置２２は、各点のＸ座標及びＹ座標を前記式（１０）及び（１１）で示される近似式を使用して算出し、曲線長Ｌが１００〔ｍ〕の点のＸ座標及びＹ座標を算出するとループを終了し、演算処理を終了する。これにより、クロソイド曲線上における１００点のＸ座標及びＹ座標を得ることができ、図２や図１０〜１３に示されるようなクロソイド曲線を算出することができる。
【００８３】
次に、フローチャートについて説明する。
ステップＳ３−２−１  クロソイド曲線が任意の長さになるまでループを開始する。
ステップＳ３−２−２  Ｌ〔ｍ〕地点のＸ座標を算出する。
ステップＳ３−２−３  Ｌ〔ｍ〕地点のＹ座標を算出する。
ステップＳ３−２−４  ループを終了し、処理を終了する。
【００８４】
次に、フィッティング処理について詳細に説明する。
【００８５】
図１８は本発明の実施の形態におけるフィッティング処理の動作を示す第１のフローチャート、図１９は本発明の実施の形態におけるフィッティング処理の動作を示す第２のフローチャートである。
【００８６】
まず、道路形状推測制御装置２２は、フィッティング誤差指標を格納する記憶エリアｌｏｗ−ｄｉｓｔに１０００００を格納して設定し、また、フィッティング結果を格納する記憶エリアｓａｖｅ−ｄｉｓｔに１００００を格納して設定する。続いて、前記道路形状推測制御装置２２は、フィッティングさせるクロソイド曲線において距離Ｌが−１００〜１００〔ｍ〕の範囲内で順次検索を行う第１のループを開始する。そして、前記道路形状推測制御装置２２は、クロソイド曲線とコーナ区間に対応するノード点の列とを相対的に距離Ｌ〔ｍ〕だけ移動させたときにフィッティング対象となるノード点の座標を算出するためのノード点座標算出処理を実行する。
【００８７】
続いて、前記道路形状推測制御装置２２は、Ｘ座標の誤差指標を格納する記憶エリアｂｋ−ｄｅｌ−ｘに１００００を格納して設定する。続いて、前記道路形状推測制御装置２２は、フィッティングさせるクロソイド曲線上における１００点について順次検索を行う第２のループを開始する。なお、前記クロソイド曲線上における点の番号をｃ−ｎｕｍとすると、前記第２のループはｃ−ｎｕｍが０から９９まで行われることになる。
【００８８】
続いて、前記道路形状推測制御装置２２は、フィッティング対象となるノード点のＸ座標とクロソイド曲線上におけるｃ−ｎｕｍ番の点のＸ座標との差分の絶対値ｄｅｌ−ｘを算出する。そして、前記道路形状推測制御装置２２は、絶対値ｄｅｌ−ｘが記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標より小さいか否かを判断して確認する。ここで、小さくない場合には、クロソイド曲線上における次の点について第２のループを開始する。また、小さい場合には、記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標を絶対値ｄｅｌ−ｘに置き換えて更新する。
【００８９】
続いて、前記道路形状推測制御装置２２は、フィッティング対象となるノード点のＹ座標とクロソイド曲線上におけるｃ−ｎｕｍ番の点のＹ座標との差分の絶対値ｄｅｌ−ｙを算出する。続いて、前記道路形状推測制御装置２２は、更新された記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標と絶対値ｄｅｌ−ｙとを加算して、加算結果ｗｏｒｋ−ｄｉｓｔを算出する。そして、前記道路形状推測制御装置２２は、加算結果ｗｏｒｋ−ｄｉｓｔが記憶エリアｌｏｗ−ｄｉｓｔに設定されているフィッティング誤差指標より小さいか否かを判断して確認する。ここで、小さくない場合には、クロソイド曲線上における次の点について第２のループを開始する。また、小さい場合には、記憶エリアｌｏｗ−ｄｉｓｔに設定されているフィッティング誤差指標を加算結果ｗｏｒｋ−ｄｉｓｔに置き換えて更新する。さらに、前記道路形状推測制御装置２２は、フィッティング結果を格納する記憶エリアｓａｖｅ−ｄｉｓｔに、ノード点座標算出処理において移動させた距離Ｌ〔ｍ〕を格納して設定する。そして、クロソイド曲線上における次の点について第２のループを開始する。
【００９０】
続いて、前記道路形状推測制御装置２２は、ｃ−ｎｕｍが０から９９まで前記第２のループを行うと、該第２のループを終了して、Ｌが次の値になる点において第１のループを開始する。続いて、前記道路形状推測制御装置２２は、距離Ｌが−１００〜１００〔ｍ〕の範囲内で前記第１のループを行うと、該第１のループを終了し、フィッティング結果を格納する記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が初期値でないか否か、すなわち、１００００でないか否かを判断して確認する。そして、記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が初期値でない場合、フィッティングが成功したものとしてフィッティング処理を終了する。また、記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が初期値である場合、フィッティングが失敗したものとしてフィッティング処理を終了する。
【００９１】
次に、フローチャートについて説明する。
ステップＳ４−１  記憶エリアｌｏｗ−ｄｉｓｔに１０００００を格納して設定する。
ステップＳ４−２  記憶エリアｓａｖｅ−ｄｉｓｔに１００００を格納して設定する。
ステップＳ４−３  距離Ｌが−１００〜１００〔ｍ〕の範囲で第１のループを開始する。
ステップＳ４−４  ノード点座標算出処理を実行する。
ステップＳ４−５  記憶エリアｂｋ−ｄｅｌ−ｘに１００００を格納して設定する。
ステップＳ４−６  クロソイド曲線上における点の番号ｃ−ｎｕｍが０から９９まで第２のループを開始する。
ステップＳ４−７  フィッティング対象となるノード点のＸ座標とクロソイド曲線上におけるｃ−ｎｕｍ番の点のＸ座標との差分の絶対値ｄｅｌ−ｘを算出する。
ステップＳ４−８  絶対値ｄｅｌ−ｘが記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標より小さいか否かを判断して確認する。小さい場合にはステップＳ４−９に進み、小さくない場合にはステップＳ４−１５に進む。
ステップＳ４−９  記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標を絶対値ｄｅｌ−ｘに置き換えて更新する。
ステップＳ４−１０  フィッティング対象となるノード点のＹ座標とクロソイド曲線上におけるｃ−ｎｕｍ番の点のＹ座標との差分の絶対値ｄｅｌ−ｙを算出する。
ステップＳ４−１１  更新された記憶エリアｂｋ−ｄｅｌ−ｘに設定されているＸ座標の誤差指標と絶対値ｄｅｌ−ｙとを加算して、加算結果ｗｏｒｋ−ｄｉｓｔを算出する。
ステップＳ４−１２  加算結果ｗｏｒｋ−ｄｉｓｔが記憶エリアｌｏｗ−ｄｉｓｔに設定されているフィッティング誤差指標より小さいか否かを判断する。小さい場合にはステップＳ４−１３に進み、小さくない場合にはステップＳ４−１５に進む。
ステップＳ４−１３  記憶エリアｌｏｗ−ｄｉｓｔに設定されているフィッティング誤差指標を加算結果ｗｏｒｋ−ｄｉｓｔに置き換えて更新する。
ステップＳ４−１４  記憶エリアｓａｖｅ−ｄｉｓｔに、ノード点座標算出処理において移動させた距離Ｌ〔ｍ〕を格納して設定する。
ステップＳ４−１５  第２のループを終了する。
ステップＳ４−１６  第１のループを終了する。
ステップＳ４−１７  記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が１００００でないか否かを判断する。記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が１００００でない場合はステップＳ４−１８に進み、記憶エリアｓａｖｅ−ｄｉｓｔに格納されている数値が１００００である場合はステップＳ４−１９に進む。
ステップＳ４−１８  フィッティングが成功したものとして、処理を終了する。
ステップＳ４−１９  フィッティングが失敗したものとして、処理を終了する。
【００９２】
次に、ノード点座標算出処理について詳細に説明する。
【００９３】
図２０は本発明の実施の形態におけるフィッティング対象となるノード点をコーナにつながる直線方向に移動させる動作を示す図、図２１は本発明の実施の形態におけるノード点座標算出処理の動作を示すフローチャートである。
【００９４】
ここでは、図２０に示されるように、最寄りコーナ区間検出処理によって検出したコーナ区間Ｂにおいて、フィッティング対象となるノード点ｂをコーナにつながる直線方向に移動させたときの前記ノード点ｂの座標を算出するようになっている。なお、図２０において、線ａはノード点を接続した移動前の線であり、●で示されるｂはコーナ区間Ｂに対応する移動前のノード点、○で示されるｃは直線区間に対応するノード点である。なお、最寄りコーナ区間検出処理によって検出されたコーナ区間Ｂには、４つのノード点ｂが存在する。また、ｄはクロソイド曲線算出処理によって算出されたクロソイド曲線であり、ｆはコーナにつながる直線方向を示す直線、Ｃはノード点ｂを移動させる方向を示す矢印である。さらに、線ａ−１及びａ−２は移動後のノード点を接続した線であり、ｂ−１及びｂ−２はコーナ区間Ｂに対応する移動後のノード点である。これにより、クロソイド曲線をコーナ区間Ｂに対して移動させた場合と同様の効果を得ることができる。
【００９５】
まず、道路形状推測制御装置２２は、コーナ区間につながる直線方向を示す直線ｆの方位が０度であるか否かを判断する。ここで、前記直線ｆの方位は、東を向いている場合に０度とし、反時計回り方向に数値が増加するように角度が付与される。そして、０度である場合、すなわち、直線ｆの方位が東を向いている場合、ノード点ｂのＸ座標の数値にＬ〔ｍ〕を加算する。移動前のノード点ｂのＸ座標の数値をＸ０とすると、Ｘ０＋ＬをＸ座標の数値Ｘとして設定する。また、移動前のノード点ｂのＹ座標の数値をＹ０とすると、Ｙ０をＹ座標の数値Ｙとして設定する。そして、ノード点座標算出処理を終了する。
【００９６】
また、前記直線ｆの方位が０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が９０度であるか否かを判断する。ここで、前記直線ｆの方位は、北を向いている場合に９０度となる。そして、９０度である場合、すなわち、直線ｆの方位が北を向いている場合、Ｘ０をＸ座標の数値Ｘとして設定する。また、Ｙ０＋ＬをＹ座標の数値Ｙとして設定する。そして、ノード点座標算出処理を終了する。
【００９７】
さらに、前記直線ｆの方位が９０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が１８０度であるか否かを判断する。ここで、前記直線ｆの方位は、西を向いている場合に１８０度となる。そして、１８０度である場合、すなわち、直線ｆの方位が西を向いている場合、Ｘ０−ＬをＸ座標の数値Ｘとして設定する。また、Ｙ０をＹ座標の数値Ｙとして設定する。そして、ノード点座標算出処理を終了する。
【００９８】
さらに、前記直線ｆの方位が１８０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が２７０度であるか否かを判断する。ここで、前記直線ｆの方位は、南を向いている場合に２７０度となる。そして、２７０度である場合、すなわち、直線ｆの方位が南を向いている場合、Ｘ０をＸ座標の数値Ｘとして設定する。また、Ｙ０−ＬをＹ座標の数値Ｙとして設定する。そして、ノード点座標算出処理を終了する。
【００９９】
なお、前記直線ｆの方位が２７０度でない場合、すなわち、前記直線ｆの方位が東西南北のいずれでもない場合、Ｌ〔ｍ〕をＸ成分及びＹ成分に分解して、ノード点ｂのＸ座標及びＹ座標の数値に加算する。つまり、前記直線ｆの方位をθとすると、Ｘ０＋ＬｃｏｓθをＸ座標の数値Ｘとして設定し、Ｙ０＋ＬｓｉｎθをＹ座標の数値Ｙとして設定する。そして、ノード点座標算出処理を終了する。
【０１００】
次に、フローチャートについて説明する。
ステップＳ４−４−１  直線ｆの方位が０度であるか否かを判断する。直線ｆの方位が０度である場合はステップＳ４−４−２に進み、直線ｆの方位が０度でない場合はステップＳ４−４−４に進む。
ステップＳ４−４−２  Ｘ０＋ＬをＸ座標の数値Ｘとして設定する。
ステップＳ４−４−３  Ｙ０をＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ４−４−４  直線ｆの方位が９０度であるか否かを判断する。直線ｆの方位が９０度である場合はステップＳ４−４−５に進み、直線ｆの方位が９０度でない場合はステップＳ４−４−７に進む。
ステップＳ４−４−５  Ｘ０をＸ座標の数値Ｘとして設定する。
ステップＳ４−４−６  Ｙ０＋ＬをＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ４−４−７  直線ｆの方位が１８０度であるか否かを判断する。直線ｆの方位が１８０度である場合はステップＳ４−４−８に進み、直線ｆの方位が１８０度でない場合はステップＳ４−４−１０に進む。
ステップＳ４−４−８  Ｘ０−ＬをＸ座標の数値Ｘとして設定する。
ステップＳ４−４−９  Ｙ０をＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ４−４−１０  直線ｆの方位が２７０度であるか否かを判断する。直線ｆの方位が２７０度である場合はステップＳ４−４−１１に進み、直線ｆの方位が２７０度でない場合はステップＳ４−４−１３に進む。
ステップＳ４−４−１１  Ｘ０をＸ座標の数値Ｘとして設定する。
ステップＳ４−４−１２  Ｙ０−ＬをＹ座標の数値Ｙとして、処理を終了する。
ステップＳ４−４−１３  Ｘ０＋ＬｃｏｓθをＸ座標の数値Ｘとして設定する。
ステップＳ４−４−１４  Ｙ０＋ＬｓｉｎθをＹ座標の数値Ｙとして設定して、処理を終了する。
【０１０１】
次に、開始点位置判定処理について詳細に説明する。
【０１０２】
図２２は本発明の実施の形態におけるクロソイド曲線の開始点をコーナ区間につながる直線方向に移動させる動作を示す図、図２３は本発明の実施の形態における開始点位置判定処理の動作を示すフローチャートである。
【０１０３】
ここでは、図２２に示されるように、クロソイド曲線の開始点を、フィッティング処理によって得られたフィッティング結果として記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕だけコーナにつながる直線方向に移動させるようになっている。なお、図２２において、線ａはノード点を接続した線であり、●で示されるｂはコーナ区間Ｂに対応するノード点、○で示されるｃは直線区間に対応するノード点である。なお、最寄りコーナ区間検出処理によって検出されたコーナ区間Ｂには、４つのノード点ｂが存在する。また、ｄはクロソイド曲線算出処理によって算出されたクロソイド曲線であり、ｆはコーナにつながる直線方向を示す直線、Ｃは前記開始点を移動させる方向を示す矢印である。さらに、ｂ−１はコーナ区間Ｂの最初のノード点であり、□で示されるｅの位置が判定されたコーナの開始点である。
【０１０４】
まず、道路形状推測制御装置２２は、コーナ区間につながる直線方向を示す直線ｆの方位が０度であるか否かを判断する。ここで、前記直線ｆの方位は、前記ノード点座標算出処理の場合と同様に付与される。そして、０度である場合、すなわち、直線ｆの方位が東を向いている場合、ノード点ｂ−１のＸ座標の数値に記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を加算する。この場合、ノード点ｂ−１のＸ座標の数値をＸ０とすると、Ｘ０＋Ｌを開始点ｅのＸ座標の数値Ｘとして設定する。また、ノード点ｂ−１のＹ座標の数値をＹ０とすると、Ｙ０を開始点ｅのＹ座標の数値Ｙとして設定する。そして、開始点位置判定処理を終了する。
【０１０５】
また、前記直線ｆの方位が０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が９０度であるか否かを判断する。ここで、前記直線ｆの方位は、北を向いている場合に９０度となる。そして、９０度である場合、すなわち、直線ｆの方位が北を向いている場合、Ｘ０を開始点ｅのＸ座標の数値Ｘとして設定する。また、ノード点ｂ−１のＹ座標の数値に記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を加算し、Ｙ０＋Ｌを開始点ｅのＹ座標の数値Ｙとして設定する。そして、開始点位置判定処理を終了する。
【０１０６】
さらに、前記直線ｆの方位が９０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が１８０度であるか否かを判断する。ここで、前記直線ｆの方位は、西を向いている場合に１８０度となる。そして、１８０度である場合、すなわち、直線ｆの方位が西を向いている場合、ノード点ｂ−１のＸ座標の数値から記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を減算し、Ｘ０−Ｌを開始点ｅのＸ座標の数値Ｘとして設定する。また、Ｙ０を開始点ｅのＹ座標の数値Ｙとして設定する。そして、開始点位置判定処理を終了する。
【０１０７】
さらに、前記直線ｆの方位が１８０度でない場合、前記道路形状推測制御装置２２は、前記直線ｆの方位が２７０度であるか否かを判断する。ここで、前記直線ｆの方位は、南を向いている場合に２７０度となる。そして、２７０度である場合、すなわち、直線ｆの方位が南を向いている場合、Ｘ０を開始点ｅのＸ座標の数値Ｘとして設定する。また、ノード点ｂ−１のＹ座標の数値から記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を減算し、Ｙ０−Ｌを開始点ｅのＹ座標の数値Ｙとして設定する。そして、開始点位置判定処理を終了する。
【０１０８】
なお、前記直線ｆの方位が２７０度でない場合、すなわち、前記直線ｆの方位が東西南北のいずれでもない場合、記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕をＸ成分及びＹ成分に分解して、ノード点ｂ−１のＸ座標及びＹ座標の数値に加算する。つまり、前記直線ｆの方位をθとすると、Ｘ０＋Ｌｃｏｓθを開始点ｅのＸ座標の数値Ｘとして設定し、Ｙ０＋Ｌｓｉｎθを開始点ｅのＹ座標の数値Ｙとして設定する。そして、開始点位置判定処理を終了する。
【０１０９】
次に、フローチャートについて説明する。
ステップＳ５−１  直線ｆの方位が０度であるか否かを判断する。直線ｆの方位が０度である場合はステップＳ５−２に進み、直線ｆの方位が０度でない場合はステップＳ５−４に進む。
ステップＳ５−２  ノード点ｂ−１のＸ座標の数値に記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を加算し、Ｘ０＋Ｌを開始点ｅのＸ座標の数値Ｘとして設定する。
ステップＳ５−３  Ｙ０を開始点ｅのＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ５−４  直線ｆの方位が９０度であるか否かを判断する。直線ｆの方位が９０度である場合はステップＳ５−５に進み、直線ｆの方位が９０度でない場合はステップＳ５−７に進む。
ステップＳ５−５  Ｘ０を開始点ｅのＸ座標の数値Ｘとして設定する。
ステップＳ５−６  ノード点ｂ−１のＹ座標の数値に記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を加算し、Ｙ０＋Ｌを開始点ｅのＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ５−７  直線ｆの方位が１８０度であるか否かを判断する。直線ｆの方位が１８０度である場合はステップＳ５−８に進み、直線ｆの方位が１８０度でない場合はステップＳ５−１０に進む。
ステップＳ５−８  ノード点ｂ−１のＸ座標の数値から記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を減算し、Ｘ０−Ｌを開始点ｅのＸ座標の数値Ｘとして設定する。
ステップＳ５−９  Ｙ０を開始点ｅのＹ座標の数値Ｙとして設定して、処理を終了する。ステップＳ５−１０  直線ｆの方位が２７０度であるか否かを判断する。直線ｆの方位が２７０度である場合はステップＳ５−１１に進み、直線ｆの方位が２７０度でない場合はステップＳ５−１３に進む。
ステップＳ５−１１  Ｘ０を開始点ｅのＸ座標の数値Ｘとして設定する。
ステップＳ５−１２  ノード点ｂ−１のＹ座標の数値から記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕を減算し、Ｙ０−Ｌを開始点ｅのＹ座標の数値Ｙとして設定して、処理を終了する。
ステップＳ５−１３  記憶エリアｓａｖｅ−ｄｉｓｔに格納された距離Ｌ〔ｍ〕をＸ成分及びＹ成分に分解して、ノード点ｂ−１のＸ座標及びＹ座標の数値に加算する。つまり、Ｘ０＋Ｌｃｏｓθを開始点ｅのＸ座標の数値Ｘとして設定する。
ステップＳ５−１４  Ｙ０＋Ｌｓｉｎθを開始点ｅのＹ座標の数値Ｙとして設定して、処理を終了する。
【０１１０】
このように、本実施の形態において、道路形状推測装置２０は、道路形状推測処理を実行し、地図データベース２１ａに格納されている地図データに基づいて、コーナ区間を検出し、該コーナ区間の最小半径に基づいて前記コーナ区間の開始部分に対応するクロソイド曲線を算出し、該クロソイド曲線を前記コーナ区間に対応するノード点の列にフィッティングさせ、さらに、フィッティングの結果に基づいて前記コーナ区間の開始点の位置を判定するようになっている。なお、前記道路形状推測処理の説明において、コーナ区間の開始部分に対応するクロソイド曲線を算出し、開始点の位置を判定する動作について説明したが、道路を逆方向に辿（たど）りながら同様の動作を行うことによって、コーナ区間の終了部分に対応するクロソイド曲線を算出し、終了点の位置を判定するができる。
【０１１１】
これにより、地図データベース２１ａに格納されているノードデータにおけるノード点以外の位置にコーナ区間の開始点及び終了点を設定することができる。そのため、前記ノード点の間隔が広くても、コーナ区間の開始点及び終了点を正確に把握することができる。また、クロソイド曲線をコーナ区間の開始部分及び終了部分に設定するので、コーナ区間の開始部分及び終了部分における曲率の変化を滑らかに、かつ、正確に把握することができる。さらに、コーナ区間において隣接するノード点同士の間にも滑らかな曲線を設定することができ、前記コーナ区間の道路形状を正確に把握することができる。したがって、コーナを含む道路形状を正確に推定することができる。
【０１１２】
また、前記クロソイド曲線を算出する場合に、コーナ区間の最小半径を使用するので、前記コーナ区間の半径を正確に把握することができ、正確なクロソイド曲線を算出することができる。さらに、クロソイド曲線のクロソイド係数の数値を、あらかじめ作成された半径とクロソイド係数との関係を示す半径−クロソイド係数テーブルから取得するようになっているので、正確なクロソイド曲線を容易に、かつ、短時間で算出することができる。
【０１１３】
さらに、前記半径−クロソイド係数テーブルは、道路設計地図に基づいて、実際の道路のコーナ区間における道路の半径と、前記道路を設計する際に使用されたクロソイド曲線のクロソイド係数との関係をあらかじめ統計的に分析することによって作成されている。そのため、適用範囲が広く信頼性の高い半径−クロソイド係数テーブルを得ることができる。さらに、近似式を使用してクロソイド曲線を算出するようになっているので、演算処理の負荷を小さくすることができ、精度の高いクロソイド曲線を容易に、かつ、短時間で算出することができる。
【０１１４】
また、算出したクロソイド曲線を前記コーナ区間に対応するノード点の列にフィッティングさせるので、クロソイド曲線を容易に、かつ、正確に適用することができ、コーナ区間の開始点及び終了点も正確に設定することができる。さらに、フィッティングさせる際に、コーナにつながる直線方向に沿って移動させるので、コーナ区間の開始点及び終了点を直線区間上に正確に設定することができる。
【０１１５】
さらに、前記道路形状推測処理によって得られたデータは、推測結果データベース２５に記録され蓄積されていくので、同一の道路に関して、前記道路形状推測処理を繰り返し実行する必要がない。
【０１１６】
以上のように、本実施の形態においては、コーナを含む道路形状を正確に、かつ、容易に推測することができる。そのため、コーナ区間の開始点及び終了点の位置を正確に把握することができ、コーナ区間の開始部分及び終了部分における曲率の変化を正確に把握することができるので、コーナ制御を行う場合にも、滑らかに適切なコーナ制御を行うことができる。
【０１１７】
なお、本発明は前記実施の形態に限定されるものではなく、本発明の趣旨に基づいて種々変形させることが可能であり、それらを本発明の範囲から排除するものではない。
【図面の簡単な説明】
【０１１８】
【図１】本発明の実施の形態における道路形状推測装置の構成を示すブロック図である。
【図２】本発明の実施の形態におけるクロソイド曲線の例を示す第１の図である。
【図３】本発明の実施の形態におけるクロソイド曲線のフィッティング処理の動作を示す図である。
【図４】本発明の実施の形態における道路形状推測装置の全体的動作を示すフローチャートである。
【図５】本発明の実施の形態におけるコーナ区間を検出する方法を説明する第１の図である。
【図６】本発明の実施の形態におけるコーナ区間を検出する方法を説明する第２の図である。
【図７】本発明の実施の形態における最寄りコーナ区間検出処理の動作を示すフローチャートである。
【図８】本発明の実施の形態における３つのノード点を通過する円の半径を計算する方法を説明する図である。
【図９】本発明の実施の形態における三点半径計算処理の動作を示すフローチャートである。
【図１０】本発明の実施の形態におけるクロソイド曲線の比較を示す第１の図である。
【図１１】本発明の実施の形態におけるクロソイド曲線の比較を示す第２の図である。
【図１２】本発明の実施の形態におけるクロソイド曲線の比較を示す第３の図である。
【図１３】本発明の実施の形態におけるクロソイド曲線の比較を示す第４の図である。
【図１４】本発明の実施の形態におけるコーナ区間の最小半径とクロソイド係数との相関の例を示す図である。
【図１５】本発明の実施の形態における半径−クロソイド係数テーブルの例を示す図である。
【図１６】本発明の実施の形態におけるクロソイド曲線算出処理の動作を示すフローチャートである。
【図１７】本発明の実施の形態における演算処理の動作を示すフローチャートである。
【図１８】本発明の実施の形態におけるフィッティング処理の動作を示す第１のフローチャートである。
【図１９】本発明の実施の形態におけるフィッティング処理の動作を示す第２のフローチャートである。
【図２０】本発明の実施の形態におけるフィッティング対象となるノード点をコーナにつながる直線方向に移動させる動作を示す図である。
【図２１】本発明の実施の形態におけるノード点座標算出処理の動作を示すフローチャートである。
【図２２】本発明の実施の形態におけるクロソイド曲線の開始点をコーナ区間につながる直線方向に移動させる動作を示す図である。
【図２３】本発明の実施の形態における開始点位置判定処理の動作を示すフローチャートである。
【符号の説明】
【０１１９】
２０    道路形状推測装置
２５    推測結果データベース
【図１】
2005214839.tif 000015
【図２】
2005214839.tif 000016
【図３】
2005214839.tif 000017
【図４】
2005214839.tif 000018
【図５】
2005214839.tif 000019
【図６】
2005214839.tif 000020
【図７】
2005214839.tif 000021
【図８】
2005214839.tif 000022
【図９】
2005214839.tif 000023
【図１０】
2005214839.tif 000024
【図１１】
2005214839.tif 000025
【図１２】
2005214839.tif 000026
【図１３】
2005214839.tif 000027
【図１４】
2005214839.tif 000028
【図１５】
2005214839.tif 000029
【図１６】
2005214839.tif 000030
【図１７】
2005214839.tif 000031
【図１８】
2005214839.tif 000032
【図１９】
2005214839.tif 000033
【図２０】
2005214839.tif 000034
【図２１】
2005214839.tif 000035
【図２２】
2005214839.tif 000036
【図２３】
2005214839.tif 000037