(57)【特許請求の範囲】
【請求項１】
移動体の測位点が時系列に並んだ測位点列を記憶する記憶部と、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択する測位点選択部と、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出する角度算出部と、
前記第１直線と前記第２直線との交点に最も近い近接測位点を前記測位点列から特定し、前記角度算出部が算出した角度に基づいて、前記近接測位点に位置する前記移動体の進行方向を判定する進行方向判定部と
を有することを特徴とする進行方向判定装置。
【請求項２】
前記測位点選択部は、第５測位点と、該第５測位点から閾値以上離れ前記第５測位点より前の時間に測位された第６測位点と、該第５測位点から閾値以上離れ前記第５測位点より後の時間に測位された第７測位点とを前記測位点列から更に選択し、
前記角度算出部は、前記第５測位点と前記第６測位点とを通る第３直線と、前記第５測位点と前記第７測位点とを通る第４直線との角度を更に算出し、
前記進行方向判定部は、前記第１直線および前記第２直線の角度、および、前記第３直線および前記第４直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする請求項１に記載の進行方向判定装置。
【請求項３】
前記測位点選択部は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする請求項１または２に記載の進行方向判定装置。
【請求項４】
前記測位点選択部は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする請求項１または２に記載の進行方向判定装置。
【請求項５】
前記測位点選択部は、前記進行方向判定部の前回の判定結果に基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする請求項４に記載の進行方向判定装置。
【請求項６】
コンピュータが実行する進行方向判定方法であって、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択し、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出し、
前記第１直線と前記第２直線との交点に最も近い近接測位点を前記測位点列から特定し、
算出した角度に基づいて、前記近接測位点に位置する前記移動体の進行方向を判定する
各処理をコンピュータが実行することを特徴とする進行方向判定方法。
【請求項７】
コンピュータに、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択し、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出し、
前記第１直線と前記第２直線との交点に最も近い近接測位点を前記測位点列から特定し、
算出した角度に基づいて、前記近接測位点に位置する前記移動体の進行方向を判定する
各処理を実行させることを特徴とする進行方向判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、進行方向判定装置等に関する。
【背景技術】
【０００２】
移動体ナビゲーションシステムやドライブレコーダの記録シーンを解析し、あるシーンでの移動体の進行方向の変化を推定することは、移動体の状況解析に有用である。移動体の進行方向は、右左折や直進、後退等に対応する。
【０００３】
例えば、ドライブレコーダで撮影記録した危険なシーンが、移動体のどのような進行方向の変化にともない撮影されたのかが判れば、移動体の挙動に問題が無かったかを判定することができる。また、移動体の進行方向で危険なシーンを分類して安全教育の教材に役立てることできる。このため、移動体の進行方向を高精度に推定することが求められる。
【０００４】
一般的に、移動体の進行方向を推定する場合には、移動体に搭載したＧＰＳ（Global  Positioning  System）測位センサ等で測位した測位点の時間差分から進行方向を求めるものがある。また、移動体の進行方向の変化に伴う加速度の変化を、加速度センサから取得したデータから推定し、移動体の進行方向を推定するものもある。
【０００５】
ここで、ＧＰＳ測位センサにより移動体の進行方向を推定する場合には、測位点の列から推定した移動体の経路のカーブを求めて、カーブの曲がり具合によって右左折や直進を判定する。カーブは、曲率に対応する。曲率の算出は、経路上の基準点および前後の点を含む３点の測位点を用いて算出するものが一般的である。
【０００６】
しかし、ＧＰＳ測位センサが測位点を測位する場合に、下記のような理由で、測位点の列にばらつきが生じる場合がある。ＧＰＳ測位センサが理想的な時間間隔で各測位点を測位した場合でも、実際の測位点の間隔は移動体の速度に依存する。すなわち、移動体の走行速度が遅いと、測位点の間隔は狭くなる。反対に、移動体の走行速度がはやいと測位点の間隔は広くなる。走行速度は、カーブなどの道路形状だけでなく、道路の混雑状況や路面状況など、様々な要因で変化する。従って、同じ道路であっても同じ走行状態になるとは限らず、不確定要素が大きい。また、ＧＰＳ測位センサは測位環境に依存したＧＰＳ衛星の補足失敗などが発生すると、測位の時間間隔もまばらになるため、経路の測位点は更にばらつきの大きな測位点列となる可能性がある。
【０００７】
ここで、曲率は、測位点の間隔に応じて、測位点の組を選択した方が正確に算出することができる。例えば、大きなカーブでは、測位点の間隔が広くなるように、測位点の組を選択する方が、曲率の精度が高くなる。これに対して、小さなカーブでは、測位点の間隔が狭くなるように、測位点の組を選択する方が、曲率の精度が高くなる。
【０００８】
図１９および図２０は、曲率と測位点との関係を示す図である。図１９に示すように、大きいカーブ１を狭い測位点の組１Ａで算出しようとすると、カーブをうまく検知できない。これに対して、大きいカーブ１を広い測位点の組１Ｂで算出すると、カーブを精度良く検知することができる。
【０００９】
図２０に示すように、小さいカーブ２を狭い測位点の組２Ａで算出すると、カーブを精度良く検知することができる。これに対して、小さいカーブ２を広い測位点の組２Ｂで算出しようとすると、カーブをうまく検知することができない。
【００１０】
このようなカーブと測位点の間隔との関係に鑑みると、どの測位点の組を選択して曲率を算出するかで、精度が大きく変わってしまう。また、ＧＰＳ測位センサが測位点を測位する測位点には上記のようなばらつきが存在するため、どの測位点の組を選択するかということは重要である。
【００１１】
まばらな測位点列を用いて、カーブを推定する従来技術１〜３が存在する。
【００１２】
従来技術１は、車両前方に存在する３点のうち、経路順で真ん中に位置する中心点での曲率を求める技術である。具体的に、従来技術１では、中心点と前後の２点間の点列間距離を算出し、中心点から短い方の点列間距離の半分の距離とした２点を、前後２点と中心点を結ぶ直線上の直線補間を用いて算出する。そして、従来技術１では、中心点と中心点から等距離の２点の合計３点で曲率を算出する。また、従来技術１では、点列間隔が長いほど、または、道路幅が狭いほど、曲率の半径が小さくなるように補正する手段を有している。
【００１３】
従来技術２は、車両走行経路を表す点列のうちで、連続する４つ以上の点列の座標をスプライン関数で補間して曲率を求める技術である。従来技術２では、同一方向のカーブ区間距離を閾値以上としてカーブを分離判定する。従来技術２では、高速道路の場合には閾値距離を長くし、一般道路の場合には閾値距離を短くすることで、カーブの誤判定を防ぐ。また、従来技術２では、方位変化の積算値が閾値以下の場合には、カーブ区間と判定しない。
【００１４】
従来技術３では、算出した曲率を補正すべきかどうかを、予め用意した形状パターンと比較して判定する技術である。従来技術３では、形状パターンと一致した場合に曲率を修正することで、長い直線に挟まれた身近カーブや曲率の大きめのカーブに顕著な曲率誤差を補正する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特許第３３４０９４１号公報
【特許文献２】特許第３５０８６１９号公報
【特許文献３】特許第４５０６２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述した従来技術では、移動体の進行方向を精度良く判定することができないという問題があった。
【００１７】
例えば、従来技術１では、点列間距離が小さいほど補正を行わないので、密な測位点列で計算した曲率は正しい曲率としての補正が小さく、疎な測位点列で計算した曲率は補正が大きい。このため、従来技術１では、同じカーブであっても測位点の間隔により、異なる曲率となる。また、従来技術１では、大きな緩いカーブを密な測位点列で求めた場合、補正が少なくなり、カーブではなく直線として検知される場合がある。
【００１８】
従来技術２では、測位点群を更に細分化した制御点群から算出した曲率を蓄積して判定している。このため、従来技術２では、算出した曲率の誤りが蓄積しやすく、カーブを精度良く推定できない。例えば、カーブの開始点では、曲率の算出結果が誤っている場合があり、この誤った曲率の算出結果も蓄積されてしまう。また、従来技術２では、単純に連続した測位点を選択しているため、曲率が浅めに算出されやすく、誤差が発生しやすい。
【００１９】
従来技術３では、形状パターンの合致判定が困難で、予め用意しておいたパターン以外の曲率には対応することができない。
【００２０】
開示の技術は、上記に鑑みてなされたものであって、移動体の進行方向を精度良く判定することができる進行方向判定装置、進行方向判定方法および進行方向判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
開示の進行方向判定装置は、記憶部と、測位点選択部と、角度算出部と、進行方向判定部とを有する。記憶部は、移動体の測位点列を記憶する。測位点選択部は、測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点を選択する。測位点選択部は、第２の測位点から閾値以上離れ第１測位点より後の時間に測位された第３測位点と、第３測位点から閾値以上離れ第１測位点より後の時間に測位された第４測位点とを選択する。角度算出部は、第１測位点と第２測位点とを通る第１直線と、第３測位点と第４測位点とを通る第２直線との角度を算出する。進行方向判定部は、角度算出部が算出した角度に基づいて、前記移動体の進行方向を判定する。
【発明の効果】
【００２２】
本願の進行方向判定装置によれば、移動体の進行方向を精度良く判定することができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】図１は、本実施例にかかる進行方向判定装置の構成を示す機能ブロック図である。
【図２】図２は、測位点列情報のデータ構造の一例を示す図である。
【図３】図３は、道路形状情報のデータ構造の一例を示す図である。
【図４】図４は、３点推定結果テーブルのデータ構造の一例を示す図である。
【図５】図５は、４点推定結果テーブルのデータ構造の一例を示す図である。
【図６】図６は、第１判定テーブルのデータ構造の一例を示す図である。
【図７】図７は、第２判定テーブルのデータ構造の一例を示す図である。
【図８】図８は、３点推定法を説明するための図である。
【図９】図９は、４点推定法を説明するための図である。
【図１０】図１０は、曲率となす角を算出する処理を説明するための図である。
【図１１】図１１は、３点推定結果テーブルに情報が格納される過程を示す図である。
【図１２】図１２は、４点推定結果テーブルに情報が格納される過程を示す図である。
【図１３】図１３は、３点推定結果テーブルを基にした判定結果の一例を示す図である。
【図１４】図１４は、４点推定結果テーブルを基にした判定結果の一例を示す図である。
【図１５】図１５は、本実施例にかかる進行方向判定装置の処理手順を示すフローチャートである。
【図１６】図１６は、３点推定処理の処理手順を示すフローチャートである。
【図１７】図１７は、４点推定処理の処理手順を示すフローチャートである。
【図１８】図１８は、進行方向判定プログラムを実行するコンピュータの一例を示す図である。
【図１９】図１９は、曲率と測位点との関係を示す図（１）である。
【図２０】図２０は、曲率と測位点との関係を示す図（２）である。
【発明を実施するための形態】
【００２４】
以下に、本願の開示する進行方向判定装置、進行方向判定方法および進行方向判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２５】
本実施例にかかる進行方向判定装置の構成について説明する。図１は、本実施例にかかる進行方向判定装置の構成を示す機能ブロック図である。図１に示すように、進行方向判定装置１００は、入力部１１０、表示部１２０、記憶部１３０、制御部１４０を有する。
【００２６】
入力部１１０は、各種の情報を入力する入力装置である。例えば、入力部１１０は、キーボードやマウス等に対応する。または、入力部１１０は、タッチパネル等に対応する。入力部１１０は、制御部１４０に接続される。
【００２７】
表示部１２０は、各種の情報を表示する表示装置である。表示部１２０は、制御部１４０から出力される移動体の進行方向に関する情報等を表示する。表示装置１２０は、例えば、ディスプレイやタッチパネル等に対応する。表示部１２０は、制御部１４０に接続される。
【００２８】
記憶部１３０は、ＧＰＳ情報１３０ａ、測位点列情報１３０ｂ、道路形状情報１３０ｃ、速度情報１３０ｄを記憶する。また、記憶部１３０は、３点推定結果テーブル１３０ｅ、４点推定結果テーブル１３０ｆ、第１判定テーブル１３０ｇ、第２判定テーブル１３０ｈを記憶する。記憶部１３０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００２９】
ＧＰＳ情報１３０ａは、移動体の測位情報、ＧＰＳの測位情報を含む。移動体の測位情報は、例えば、移動体の位置と測位時間とを対応付けている。また、ＧＰＳの測位情報は、ＧＰＳの位置と測位時間とを対応付けている。
【００３０】
また、ＧＰＳ情報１３０ａは、ＧＰＳ位置精度、ＧＰＳ測位時間単位、ＧＰＳ測位状態も含む。ＧＰＳ位置精度は、最小誤差、最大誤差の情報を含む。ＧＰＳ測位時間単位は、移動体を測位する最短の時間間隔の情報を含む。ＧＰＳ測位状態は、測位精度に関する情報を含む。
【００３１】
測位点列情報１３０ｂは、測位点列に含まれる各測位点の座標を含む。図２は、測位点列情報のデータ構造の一例を示す図である。図２に示すように、測位点列情報は、測位点を識別する測位点番号と、座標とを対応付ける。
【００３２】
道路形状情報１３０ｃは、測位点の属する道路の形状に関する情報を含む。図３は、道路形状情報のデータ構造の一例を示す図である。図３に示すように、道路形状情報は、道路幅、車線数、車線幅を含む。各情報は、測位点番号に対応付けられている。
【００３３】
速度情報１３０ｄは、移動体の速度情報を含む。例えば、時間に対応付けて速度情報を保持する。または、速度情報１３０ｄは、測位点に対応付けて、測位点の時点における速度情報を保持してもよい。
【００３４】
３点推定結果テーブル１３０ｅは、３つの測位点を用いて算出した角度と曲率との推定結果を保持するテーブルである。以下の説明において、３つの測位点を用いて角度と曲率を求める方法を、３点推定法と表記する。図４は、３点推定結果テーブルのデータ構造の一例を示す図である。図４に示すように、この３点推定結果テーブル１３０ｅは、測位点番号と、なす角βと、曲率とを対応付ける。なす角βおよび曲率に関する説明は後述する。
【００３５】
４点推定結果テーブル１３０ｆは、４つの測位点を用いて算出した角度と曲率との推定結果を保持するテーブルである。以下の説明において、４つの測位点を用いて角度と曲率を求める方法を、４点推定法と表記する。図５は、４点推定結果テーブルのデータ構造の一例を示す図である。図５に示すように、この４点推定結果テーブル１３０ｆは、測位点番号と、なす角φと、曲率と、交点Ｆからの距離とを対応付ける。なす角φ、曲率、交点Ｆからの距離に関する説明は後述する。
【００３６】
第１判定テーブル１３０ｇは、３点推定法によって特定される移動体の進行方向と、４点推定法によって特定される移動体の進行方向から、暫定的に、移動体の進行方向を判定するためのテーブルである。
【００３７】
図６は、第１判定テーブルのデータ構造の一例を示す図である。図６の１行目は、３点推定法によって特定される進行方向のパターンである。図６の１列目は、４点推定法によって特定される進行方向のパターンである。３点推定法によって特定された進行方向と、４点推定法によって特定された進行方向との組から、暫定的な、移動体の進行方向が判定される。例えば、３点推定法によって特定された進行方向が「直進」、４点推定法によって特定された進行方向が「直進」の場合には、暫定的な、移動体の進行方向は「直進」となる。
【００３８】
第１判定テーブル１３０ｇでは、各角度算出法による進行方向が異なる場合には、「直進」または「後退」よりも「右左折」を優先する。
【００３９】
第２判定テーブル１３０ｈは、４点推定法によって特定される移動体の進行方向と、４点推定法によって特定される移動体の進行方向から、最終的な移動体の進行方向を判定するためのテーブルである。
【００４０】
図７は、第２判定テーブルのデータ構造の一例を示す図である。図７の１行目は、３点推定法によって特定される進行方向のパターンである。図７の１列目は、４点推定法によって特定される進行方向のパターンである。３点推定法によって特定された進行方向と、４点推定法によって特定された進行方向との組から、移動体の進行方向が判定される。例えば、３点推定法によって特定された進行方向が「直進」、４点推定法によって特定された進行方向が「直進」の場合には、移動体の進行方向は「直進」となる。
【００４１】
第２判定テーブル１３０ｈでは、各角度算出法による進行方向が異なる場合には、「右左折」よりも「直進」または「後退」を優先させる。
【００４２】
図１の説明に戻る。制御部１４０は、測位値変換部１４０ａ、測位点選択部１４０ｂ、角度算出部１４０ｃ、進行方向判定部１４０ｄを有する。制御部１４０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１４０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００４３】
測位値変換部１４０ａは、ＧＰＳ情報１３０ａを測位点列情報１３０ｂに変換する処理部である。例えば、測位値変換部１４０ａは、移動体の測位情報を、平面直行座標系の距離単位系に変換することを行う。例えば、測位値変換部１４０ａは、測位点列が属する地域メッシュの左下の緯度経度点を原点とし、Ｙ軸の正方向を北、Ｘ軸の正方向を東として、変換を行う。また、測位値変換部１４０ａは、メートル単位の数値に変換する。なお、平面直行座標系は、上記のものに限られない。例えば、測位点列のうち、原点に対応する測位点を、最初の測位点としてもよい。この場合には、測位点列の各座標は、最初の測位点との差分となる。
【００４４】
測位点選択部１４０ｂおよび角度算出部１４０ｃの説明を行う前に、本実施例にかかる３点推定法と４点推定法について説明する。
【００４５】
図８は、３点推定法を説明するための図である。３点推定法は、基準測位点と、基準
測位点の前後の点を選択する。例えば、基準測位点を測位点Ｐｂとし、基準測位点の前後の測位点を測位点Ｐａ、Ｐｃとする。時間経過的に、測位点Ｐａは、測位点Ｐｂよりも前に測位した測位点である。また、時間経過的に、測位点Ｐｃは、測位点Ｐｂよりも後に測位した測位点である。後述するように、本実施例では、基準測位点から所定の探索距離だけ離れた測位点を、前後の測位点として選択する。
【００４６】
そして、３点推定法では、基準測位点Ｐｂと測位点Ｐａとを結ぶ直線Ｐ１と、基準測位点Ｐｂと測位点Ｐｃとを結ぶ直線Ｐ２とのなす角βを求める。また、３点推定法では、直線Ｐ１と直線Ｐ２とから、曲率を算出する。例えば、本実施例では、ベクトル計算による計算方法または内接三角形の辺による算出方法により、なす角β、曲率を求める。
【００４７】
図９は、４点推定法を説明するための図である。４点推定法は、基準測位点と、基準測位点の前後の点を選択する。例えば、基準測位点を測位点Ｑｂとし、基準測位点の前後の測位点を測位点Ｑａ、Ｑｃ、Ｑｄとする。測位された時間が最も早いものから各測位点を順に並べると、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの順になる。後述するように、測位点ＱａとＱｂとの距離、測位点ＱｃとＱｄとの距離、測位点ＱａとＱｄとの距離は、所定の条件を満たすように、測位点Ｑａ、Ｑｃ、Ｑｄは選択される。
【００４８】
そして、４点推定法では、基準測位点Ｑｂと測位点Ｑａとを通る直線Ｑ１と、測位点Ｑｃと測位点Ｑｄとを通る直線Ｑ２とのなす角φを求める。また、４点推定法では、直線Ｑ１と直線Ｑ２とから、曲率を算出する。例えば、本実施例では、ベクトル計算による計算方法または内接三角形の辺による算出方法により、なす角φ、曲率を求める。
【００４９】
本実施例では、４点推定法により求めたなす角φおよび曲率を、交点Ｆに最も近い測位点Ｑｅのなす角φおよび曲率とする。ここで、交点Ｆは、直線Ｑ１と直線Ｑ２との交点に対応する。図９において、測位点Ｑａ、Ｑｂ、Ｑｅ、Ｑｃ、Ｑｄの順に、測位した時間が大きくなるものとする。
【００５０】
図１の説明に戻る。測位点選択部１４０ｂは、図８に示した３点の測位点Ｐａ、Ｐｂ、Ｐｃを選択する。そして、測位点選択部１４０ｂは、選択した３点の測位点の情報を、角度算出部１４０ｃに出力する。
【００５１】
また、測位点選択部１４０ｂは、図９に示した４点の測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄを選択する。そして、測位点選択部１４０ｂは、選択した４点の測位点の情報を、角度算出部１４０ｃに出力する。
【００５２】
ここで、測位点選択部１４０ｂが、３点の測位点を選択する処理について説明する。まず、測位点選択部１４０ｂは、測位点列情報１３０ｂから、基準測位点を選択し、式（１）に基づいて、探索距離Ｔｈ１を算出する。
【００５３】
探索距離Ｔｈ１＝ＭＡＸ（ＧＰＳ最小記録単位、道路幅）×ｋ・・・（１）
【００５４】
式（１）においてＭＡＸ（ＧＰＳ最小記録単位、道路幅）は、基準測位点に対応するＧＰＳ最小記録単位と道路幅とのうち、大きい方の値を選択する関数である。また、式（１）において「ｋ」は、１より大きな任意のパラメータに対応する。
【００５５】
測位点選択部１４０ｂは、式（１）のＧＰＳ最小記録単位を、式（２）に基づいて求める。
【００５６】
ＧＰＳ最小記録単位＝ＧＰＳ測位時間単位×基準測位点の速度＋ＧＰＳ位置精度・・・（２）
【００５７】
式（２）において、ＧＰＳ測位時間単位は、基準測位点と前後の測位点との測定時間間隔に対応する。測位点選択部１４０ｂは、ＧＰＳ情報１３０ａを基にして、ＧＰＳ測位時間単位を求める。また、測位点選択部１４０ｂは、基準測位点の速度を、速度情報１３０ｂから取得する。また、測位点選択部１４０ｂは、ＧＰＳ位置精度を、ＧＰＳ情報１３０ａから取得する。なお、測位点選択部１４０ｂは、ＧＰＳ位置精度の値を、最小誤差とする。
【００５８】
式（２）において、「ＧＰＳ測位時間単位×基準測位点の速度」は、ＧＰＳの記録分解能に対応する値である。式（２）において、「ＧＰＳ位置精度」は記録誤差を意味する値である。「ＧＰＳ測位時間単位×基準測位点の速度」と「ＧＰＳ位置精度」とを合算することで、測位誤差の影響を考慮した測位点の選定を行うことができる。
【００５９】
式（２）において、道路幅は、基準測位点に対応する道路幅である。測位点選択部１４０ｂは、基準測位点に対応する道路幅を、道路形状情報１３０ｃから取得する。なお、測位点選択部１４０ｂは、右左折により、道路幅を調整してもよい。測位点選択部１４０ｂは、移動体が右折している場合には、上下車線の鎖線幅の合算値を、道路幅とする。これに対して、測位点選択部１４０ｂは、移動体が左折している場合には、片側車線の幅を道路幅とする。測位点選択部１４０ｂは、移動体の右左折の情報を、後述の進行方向判定部１４０ｄから取得する。
【００６０】
このように、測位点選択部１４０ｂは、右左折により探索距離Ｔｈ１に影響をおよぼす道路幅を調整することで、移動体が右左折する際の推定最低回転半径以上離れた測位点を選択することができる。
【００６１】
測位点選択部１４０ｂは、探索距離Ｔｈ１を求めた後に、基準測位点の前後の測位点を選択する。測位点選択部１４０ｂは、基準測位点の前方に位置する測位点の座標と、基準測位点の座標とを比較して、各測位点の距離が探索距離Ｔｈ１以上となる測位点を前方の測位点として特定する。ここで、前方の測位点とは、時間経過的に基準測位点よりも前に測位された測位点を示す。例えば、図８において、基準測位点Ｐｂと測位点Ｐａとの距離が、探索距離Ｔｈ１以上の場合に、測位点選択部１４０ｂは、測位点Ｐａを前方の測位点とする。
【００６２】
また、測位点選択部１４０ｂは、基準測位点の後方に位置する測位点の座標と、基準測位点の座標とを比較して、各測位点の距離が最初に探索距離Ｔｈ１以上となる測位点を後方の測位点として特定する。ここで、後方の測位点とは、時間経過的に基準測位点よりも後に測位された測位点を示す。例えば、図８において、基準測位点Ｐｂと測位点Ｐｃとの距離が、探索距離Ｔｈ１以上の場合に、測位点選択部１４０ｂは、測位点Ｐｃを後方の測位点とする。
【００６３】
測位点選択部１４０ｂは、選択した測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を、角度算出部１４０ｃに出力する。測位点Ｐａ、Ｐｂ、Ｐｃの組の情報には、例えば、測位点番号、座標等が含まれる。なお、測位点選択部１４０ｂは、探索距離Ｔｈ１以上の測位点が存在しない場合には、該当する測位点の情報をブランクとする。測位点選択部１４０ｂは、例えば、基準測位点Ｐｂに探索距離Ｔｈ１以上離れた測位点Ｐａが存在しない場合には、測位点Ｐａに対する情報をブランクとする。
【００６４】
測位点選択部１４０ｂは、基準測位点Ｐｂを順次移動させながら、上記処理を繰り返し実行し、測位点Ｐａ、Ｐｂ、Ｐｃの組を順次選択する。
【００６５】
次に、測位点選択部１４０ｂが、４点の測位点を選択する処理について説明する。測位点選択部１４０ｂは、測位点列情報１３０ｂから、式（３）の条件を満たす測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄを選択する。式（３）において、探索距離Ｔｈ２は、測位点Ｑａと測位点Ｑｂとの距離に対応する。探索距離Ｔｈ３は、測位点Ｑａと測位点Ｑｄとの距離に対応する。探索距離Ｔｈ４は、測位点Ｑｃと測位点Ｑｄとの距離に対応する。例えば、「ｓ」は、１．５以上の任意のパラメータである。
【００６６】
探索距離Ｔｈ３＝（探索距離Ｔｈ２＋探索距離Ｔｈ４）×ｓ・・・（３）
【００６７】
ここで、測位点選択部１４０ｂが、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄを選択する手順の一例について説明する。測位点選択部１４０ｂは、基準測位点Ｑｂを選択し、基準測位点Ｑｂからの距離が、探索距離Ｔｈ２以上となる測位点を、前方の測位点から選択する。ここで、前方の測位点とは、時間経過的に基準測位点Ｑｂよりも前に測位された測位点を示す。
【００６８】
測位点選択部１４０ｂは、測位点Ｑａからの距離が探索距離Ｔｈ３以上となる測位点Ｑｄを、基準測位点Ｑｂの後方の測位点から選択する。ここで、後方の測位点とは、時間経過的に基準測位点Ｑｂよりも後に測位された測位点を示す。
【００６９】
測位点選択部１４０ｂは、測位点Ｑｄからの距離が探索距離Ｔｈ４以上となる測位点Ｑｃを、基準測位点Ｑｂの後方の測位点から選択する。
【００７０】
測位点選択部１４０ｂは、選択した測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報を、角度算出部１４０ｃに出力する。測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報には、例えば、測位点番号、座標等が含まれる。
【００７１】
測位点選択部１４０ｂは、基準測位点Ｑｂを順次移動させながら、上記処理を繰り返し実行し、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組を順次選択する。
【００７２】
ここで、探索距離Ｔｈ２、Ｔｈ３、Ｔｈ４が式（４）の関係を満たす場合について説明する。この場合には、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄが一直線に並んだ場合でも、測位点ＱａおよびＱｂを結ぶ線分と測位点ＱｃおよびＱｄを結ぶ線分とを加算したものよりも、測位点ＱａおよびＱｄを結ぶ線分の方が長いことを意味している。また、この場合には、測位点ＱｂおよびＱｃが十分離れていることを意味する。探索距離Ｔｈ３は、大きなカーブの形状を再現するのに重要な探索距離である。式（４）の関係を根拠として、例えば、式（３）が利用される。
【００７３】
探索距離Ｔｈ３＞探索距離Ｔｈ２＋探索距離Ｔｈ４・・・（４）
【００７４】
角度算出部１４０ｃは、３点推測法および４点推測法を基にして、なす角と曲率とを算出する処理部である。角度算出部１４０ｃは、３点推測法で求めたなす角と曲率の情報を、３点推定結果テーブル１３０ｅに登録する。角度算出部１４０ｃは、４点推測法で求めたなす角と曲率の情報を、４点推定結果テーブル１３０ｆに登録する。
【００７５】
角度算出部１４０ｃは、何れの推定法を用いるにせよ、内接三角形の辺による算出方法またはベクトル計算により、曲率となす角を算出する。
【００７６】
まず、内接三角形の辺による算出方法によって、曲率となす角を算出する場合について説明する。図１０は、曲率となす角を算出する処理を説明するための図である。図１０に示すように、３点Ａ、Ｂ、Ｃは円５に内接する。円５の半径をＲとする。また、点Ａと点Ｂとを結ぶ直線と、点Ｂと点Ｃとを結ぶ直点とのなす角をβとする。
【００７７】
内接三角形ＡＢＣの各辺に対応する頂点名を利用して、点Ａと点Ｂとを結ぶ線分を「ｃ」とする。点Ｂと点Ｃとを結ぶ線分を「ａ」とする。点Ａと点Ｃとを結ぶ線分を「ｂ」とする。
【００７８】
正弦定理から式（５）の関係が導かれ、余弦定理から式（６）の関係が導かれる。式（５）と式（６）とを式（７）に代入すると、式（８）の関係が求められる。式（８）の両辺の二乗を外すことで、式（９）に示すように、半径Ｒが求められる。
【００７９】
【数１】
0005824994.tif 000002
【００８０】
【数２】
0005824994.tif 000003
【００８１】
【数３】
0005824994.tif 000004
【００８２】
【数４】
0005824994.tif 000005
【００８３】
【数５】
0005824994.tif 000006
【００８４】
曲率ρは、式（１０）によって求めることができる。なお、なす角βは、式（５）および式（６）からｔａｎβの変形式を求め、点Ａ、Ｂ、Ｃの座標値からｔａｎβを計算し、ｔａｎ−１βを求めることで、算出することが可能となる。
【００８５】
ρ＝１／Ｒ・・・（１０）
【００８６】
続いて、ベクトル計算による計算方法によって、曲率となす角を算出する場合について説明する。正弦定理より、円５の半径Ｒは、式（１１）によって表される。また、ベクトル外積により、式（１２）の関係がある。式（１２）より、ｓｉｎβは、式（１３）によって表される。そして、式（１１）と式（１３）から、式（１４）の関係が導かれる。また、ベクトルの内積は式（１５）によって表される。
【００８７】
【数６】
0005824994.tif 000007
【００８８】
【数７】
0005824994.tif 000008
【００８９】
【数８】
0005824994.tif 000009
【００９０】
【数９】
0005824994.tif 000010
【００９１】
【数１０】
0005824994.tif 000011
【００９２】
ベクトル計算では、式（１４）に基づいて、円５の半径Ｒを求め、式（１０）により、曲率ρを算出する。なお、なす角βは、式（１３）、式（１５）からｔａｎβの変形式を求め、点Ａ、Ｂ、Ｃの座標値からｔａｎβを計算し、ｔａｎ−１βを求めることで、算出することが可能となる。
【００９３】
次に、角度算出部１４０ｃが３点推測法に基づいてなす角βと曲率とを算出し、３点推定結果テーブル１３０ｅに登録する処理について説明する。基本的に、角度算出部１４０ｃは、測位点Ｐａ、基準測位点Ｐｂ、測位点Ｐｃの各座標を、図１０の点Ａ、Ｂ、Ｃの座標と見立て、基準測位点Ｐｂに対するなす角、曲率を算出する。角度算出部１４０ｃは、算出結果を、３点推定結果テーブル１３０ｅに登録する。角度算出部１４０ｃは、測位点選択部１４０ｂから、測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得するたびに、上記処理を繰り返し実行する。
【００９４】
ここで、角度算出部１４０ｃが測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得し、３点推定結果テーブル１３０ｅに情報を格納する過程の一例について説明する。図１１は、３点推定結果テーブルに情報が格納される過程を示す図である。
【００９５】
図１１の１段目について説明する。角度算出部１４０ｃは、測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得する。基準測位点Ｐｂの測位点番号を「１」とし、測位点Ｐａの情報をブランクとする。この場合には、なす角βおよび曲率を求めることができない。このため、角度算出部１４０ｃは、３点推定結果テーブル１３０ｅ（１）に示すように、測位点番号「１」に対応するなす角βおよび曲率に「×」を登録する。なお、この「×」は説明のため便宜的に登録しているものであり、実際のテーブルは空欄のままで構わない。
【００９６】
図１１の２段目について説明する。角度算出部１４０ｃは、次の測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得する。基準測位点Ｐｂの測位点番号を「２」とし、測位点Ｐａの情報をブランクとする。この場合には、なす角度βおよび曲率を求めることができない。このため、角度算出部１４０ｃは、３点推定結果テーブル１３０ｅ（２）に示すように、測位点番号「２」に対応するなす角βおよび曲率に「×」を登録する。
【００９７】
図１１の３段目について説明する。角度算出部１４０ｃは、次の測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得する。基準測位点Ｐｂの測位点番号を「３」とする。また、測位点Ｐａ、Ｐｂ、Ｐｃには、座標が含まれているものとする。角度算出部１４０ｃは、測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を基にして、なす角βおよび曲率を算出する。例えば、算出されたなす角βを「２４．５」とし、曲率を「１６．２」とする。角度算出部１４０ｃは、３点推定結果テーブル１３０ｅ（３）に示すように、測位点番号「３」に対応するなす角βに「２４．５」を登録し、曲率「１６．２」を登録する。
【００９８】
図１１の４段目について説明する。角度算出部１４０ｃは、順次、測位点Ｐａ、Ｐｂ、Ｐｃの組の情報を取得し、測位点番号「４」〜「８」に対応するなす角βおよび曲率を算出し、３点推定結果テーブル１３０ｅ（４）に登録する。また、角度算出部１４０ｃは、測位点番号「１」、「２」のなす角βと曲率を、測位点番号「３」のなす角βと曲率の値によって、代用する。
【００９９】
次に、角度算出部１４０ｃが４点推測法に基づいてなす角φと曲率を算出し、４点推定結果テーブル１３０ｆに登録する処理について説明する。基本的に、角度算出部１４０ｃは、測位点Ｑａ、交点Ｆ、測位点Ｑｄの各座標を、図１０の点Ａ、Ｂ、Ｃの座標と見立て、なす角φおよび曲率を算出する。角度算出部１４０ｃは、基準測位点Ｑｂと、測位点Ｑｃの間に存在する測位点に対応付けて、なす角φおよび曲率を登録または更新する。角度算出部１４０ｃは、測位点選択部１４０ｂから、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報を取得するたびに、上記処理を繰り返し実行する。
【０１００】
ここで、角度算出部１４０ｃが測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報を取得し、４点推定結果テーブル１３０ｆに情報を格納する過程の一例について説明する。図１２は、４点推定結果テーブルに情報が格納される過程を示す図である。
【０１０１】
図１２の１段目について説明する。角度算出部１４０ｃは、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報を取得する。基準測位点Ｑｂの測位点番号を「ｉ」とし、測位点Ｑｃの測位点番号を「ｉ＋４」とする。ｉは１以上の整数とする。角度算出部１４０ｃは、測位点Ｑａ、交点Ｆ、測位点Ｑｄの各座標から、なす角および曲率を算出する。例えば、なす角φを「４９．８」とし、曲率を「２２．６」とする。角度算出部１４０ｃは、テーブル７Ａに示すように、測位点番号「ｉ＋１」〜「ｉ＋３」の測位点に対応するなす角および曲率に、算出した値を登録する。また、角度算出部１４０ｃは、各測位点と、交点Ｆからの距離を、テーブル７Ａに登録する。角度算出部１４０ｃは、測位点「ｉ＋１」〜「ｉ＋３」の座標を、測位点列情報１３０ｂから取得し、交点Ｆからの距離を算出するものとする。
【０１０２】
図１２の２段目について説明する。角度算出部１４０ｃは、次の測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄの組の情報を取得する。基準測位点Ｑｂの測位点番号を「ｉ＋１」とし、測位点Ｑｃの測位点番号を「ｉ＋６」とする。角度算出部１４０ｃは、測位点Ｑａ、交点Ｆ、測位点Ｑｄの各座標から、なす角および曲率を算出する。例えば、なす角φを「５０．３」とし、曲率を「２０．１」とする。角度算出部１４０ｃは、テーブル７Ｂに示すように、測位点番号「ｉ＋２」〜「ｉ＋５」の測位点に対応するなす角および曲率に、算出した値を登録する。また、角度算出部１４０ｃは、各測位点と、交点Ｆからの距離を、テーブル７Ｂに登録する。角度算出部１４０ｃは、測位点「ｉ＋２」〜「ｉ＋５」の座標を、測位点列情報１３０ｂから取得し、交点Ｆからの距離を算出するものとする。
【０１０３】
図１２の３段目について説明する。角度算出部１４０ｃは、テーブル７Ａの情報と、テーブル７Ｂの情報とを組み合わせて、４点推定結果テーブル１３０ｆに情報を登録する。
【０１０４】
角度算出部１４０ｃは、重複していない部分に関しては、そのまま、４点推定結果テーブル１３０ｆに登録する。図１２において、測位点番号「ｉ＋１」の情報は、テーブルＡにしか登録されていない。このため、角度算出部１４０ｃは、テーブルＡの測位点番号「ｉ＋１」に対応付けられたなす角および曲率を、４点推定結果テーブル１３０ｆの「ｉ＋１」に対応するなす角および曲率に登録する。
【０１０５】
また、測位点番号「ｉ＋４」、「ｉ＋５」の情報は、テーブル７Ｂにしか登録されていない。このため、角度算出部１４０ｃは、テーブル７Ｂの測位点番号「ｉ＋４」、「ｉ＋５」に対応付けられたなす角および曲率を、４点推定結果テーブル１３０ｆの「ｉ＋４」、「ｉ＋５」に対応するなす角および曲率に登録する。
【０１０６】
角度算出部１４０ｃは、重複している情報に関しては、交点Ｆからの距離が近い方の情報を採用して、４点推定結果テーブル１３０ｆに登録する。例えば、図１２において、測位点番号「ｉ＋２」、「ｉ＋３」の情報は、テーブル７Ａ、７Ｂに存在しているため、重複している。測位点番号「ｉ＋２」に関しては、テーブル７Ａの方が、交点Ｆからの距離が小さい。このため、角度算出部１４０ｃは、テーブル７Ａの測位点番号「ｉ＋２」に対応付けられたなす角および曲率を、４点推定結果テーブル１３０ｆの「ｉ＋２」に対応するなす角および曲率に登録する。
【０１０７】
また、測位点番号「ｉ＋３」に関しては、テーブル７Ｂの方が、交点Ｆからの距離が小さい。このため、角度算出部１４０ｃは、テーブル７Ｂの測位点番号「ｉ＋３」に対応付けられたなす角および曲率を、４点推定結果テーブル１３０ｆの「ｉ＋３」に対応するなす角および曲率に登録する。
【０１０８】
角度算出部１４０ｃは、上記処理を繰り返し実行することで、４点推定結果テーブル１３０ｆに情報を順次登録していく。なお、図１２に示した処理は一例である。図１２では、テーブル７Ａ、７Ｂを用いて説明したが、角度算出部１４０ｃは、４点推定結果テーブル１３０ｆのみを用いて、図１２に示した処理と同様の処理を実行してもよい。
【０１０９】
図１の説明に戻る。進行方向判定部１４０ｄは、移動体の進行方向を判定する処理部である。進行方向判定部１４０ｄは、３点推定結果テーブル１３０ｅを基にして、移動体の進行方向を判定する。また、進行方向判定部１４０ｄは、４点推定結果テーブル１３０ｆを基にして、移動体の進行方向を判定する。そして、進行方向判定部１４０ｄは、各判定結果を比較して、移動体の暫定的な進行方向および最終的な進行方向を判定する。
【０１１０】
進行方向判定部１４０ｄが、３点推定結果テーブル１３０ｅを基にして、各測位点の進行方向を判定する処理について説明する。進行方向判定部１４０ｄは、測位点番号に対応するなす角βを取得する。進行方向判定部１４０ｄは、なす角βが、条件１に対応する場合には、進行方向を「直進」と判定する。進行方向判定部１４０ｄは、なす角βが、条件２に対応する場合には、進行方向を「右折」と判定する。進行方向判定部１４０ｄは、なす角βが、条件３に対応する場合には「左折」と判定する。進行方向判定部１４０ｄは、なす角φが、条件４または５に対応する場合には「後退」と判定する。なお、条件１〜５において、ｍは任意のパラメータである。また、条件１〜３における数値は、時計回りをプラスの度とする。
【０１１１】
（１８０−ｍ）≦なす角≦（１８０＋ｍ）・・・（条件１）
ｍ＜なす角＜（１８０−ｍ）            ・・・（条件２）
（１８０＋ｍ）＜なす角＜（３６０−ｍ）・・・（条件３）
（３６０−ｍ）≦なす角≦３６０        ・・・（条件４）
０≦なす角≦ｍ                        ・・・（条件５）
【０１１２】
進行方向判定部１４０ｄは、３点推定結果テーブル１３０ｅを基にした判定結果を、測位点番号と対応付けて記憶する。図１３は、３点推定結果テーブルを基にした判定結果の一例を示す図である。図１３に示すように、判定結果９Ａは、測位点番号と進行方向とを対応付ける。
【０１１３】
次に、進行方向判定部１４０ｄが、４点推定結果テーブル１３０ｆを基にして、各測位点の進行方向を判定する処理について説明する。進行方向判定部１４０ｄは、測位点番号に対応するなす角φを取得する。進行方向判定部１４０ｄは、なす角φが、条件１に対応する場合には、進行方向を「直進」と判定する。進行方向判定部１４０ｄは、なす角φが、条件２に対応する場合には、進行方向を「右折」と判定する。進行方向判定部１４０ｄは、なす角φが、条件３に対応する場合には「左折」と判定する。進行方向判定部１４０ｄは、なす角φが、条件４または５に対応する場合には「後退」と判定する。
【０１１４】
進行方向判定部１４０ｄは、４点推定結果テーブル１３０ｆを基にした判定結果を、測位点番号と対応付けて記憶する。図１４は、４点推定結果テーブルを基にした判定結果の一例を示す図である。図１４に示すように、判定結果９Ｂは、測位点番号と進行方向とを対応付ける。
【０１１５】
次に、進行方向判定部１４０ｄが、暫定的な進行方向を判定する処理について説明する。進行方向判定部１４０ｄは、同一の測位点番号に対する進行方向について、判定結果９Ａと判定結果９Ｂとを比較し、進行方向が同一であるか否かを判定する。進行方向が同一である場合には、該当する測位点番号の進行方向を、一致した進行方向とする。例えば、測位点番号ｉについて、判定結果９Ａ、９Ｂの進行方向が「右折」の場合には、測位点番号ｉの暫定的な進行方向を「右折」とする。
【０１１６】
進行方向判定部１４０ｄは、同一の測位点番号に対する進行方向について、判定結果９Ａと判定結果９Ｂとを比較し、進行方向が同一でない場合には、第１判定テーブル１３０ｇに基づいて、暫定的な進行方向を判定する。例えば、測位点番号ｉについて、判定結果９Ａの進行方向が「右折」、判定結果９Ｂの進行方向が「直進」の場合について説明する。この場合には、進行方向判定部１４０ｄは、図６の第１判定テーブル１３０ｇに基づいて、進行方向を「右折」と判定する。
【０１１７】
次に、進行方向判定部１４０ｄが、最終的な進行方向を判定する処理について説明する。進行方向判定部１４０ｄは、同一の測位点番号に対する進行方向について、判定結果９Ａと判定結果９Ｂとを比較し、進行方向が同一であるか否かを判定する。進行方向が同一である場合には、該当する測位点番号の進行方向を、一致した進行方向とする。例えば、測位点番号ｉについて、判定結果９Ａ、９Ｂの進行方向が「右折」の場合には、測位点番号ｉの最終的な進行方向を「右折」とする。
【０１１８】
進行方向判定部１４０ｄは、同一の測位点番号に対する進行方向について、判定結果９Ａと判定結果９Ａとを比較し、進行方向が同一でない場合には、第２判定テーブル１３０ｈに基づいて、最終的な進行方向を判定する。例えば、測位点番号ｉについて、判定結果９Ａの進行方向が「右折」、判定結果９Ｂの進行方向が「直進」の場合について説明する。この場合には、進行方向判定部１４０ｄは、図７の第２判定テーブル１３０ｈに基づいて、進行方向を「直進」と判定する。
【０１１９】
進行方向判定部１４０ｄは、暫定的な判定結果および最終的な判定結果を出力する。また、進行方向判定部１４０ｄは、暫定的な判定結果および最終的な判定結果を測位点選択部１４０ｂに出力する。
【０１２０】
次に、本実施例にかかる進行方向判定装置の処理手順の一例について説明する。図１５は、本実施例にかかる進行方向判定装置の処理手順を示すフローチャートである。図１５に示す処理は、例えば、測位値変換部１４０ａが、ＧＰＳ情報１３０ａを基にして、測位点列情報１３０ｂを生成した後に実行される。
【０１２１】
図１５に示すように進行方向判定装置１００は、変数ｉに初期値を設定する（ステップＳ１００）。進行方向判定装置１００は、３つの測位点Ｐａ（ｉ）、Ｐｂ（ｉ）、Ｐｃ（ｉ）を選択する（ステップＳ１０１）。ステップＳ１０１において、Ｐｂ（ｉ）は、測位点番号ｉの基準測位点に対応し、測位点Ｐａ（ｉ）およびＰｃ（ｉ）は、測位点番号ｉの測位点の前後の測位点に対応する。
【０１２２】
進行方向判定装置１００は、３点推定処理を実行し（ステップＳ１０２）、３点推定結果テーブル１３０ｅに登録する（ステップＳ１０３）。
【０１２３】
進行方向判定装置１００は、４つの測定点Ｑａ（ｉ）、Ｑｂ（ｉ）、Ｑｃ（ｉ）、Ｑｄ（ｉ）を選択する（ステップＳ１０４）。ステップＳ１０４において、Ｑｂ（ｉ）は、測位点番号ｉの基準測位点に対応し、測位点Ｑａ（ｉ）、Ｑｃ（ｉ）、Ｑｄ（ｉ）は、測位点番号ｉの測位点の前後の測位点に対応する。
【０１２４】
進行方向判定装置１００は、４点推定処理を実行し（ステップＳ１０５）、４点推定結果テーブル１３０ｆに登録する（ステップＳ１０６）。
【０１２５】
進行方向判定装置１００は、暫定的に進行方向を判定する（ステップＳ１０７）。進行方向判定装置１００は、測位点番号ｉの測位点が最後の測位点か否かを判定する（ステップＳ１０８）。
【０１２６】
進行方向判定装置１００は、最後の測位点ではない場合には（ステップＳ１０８，Ｎｏ）、ｉに１を加算し（ステップＳ１０９）、ステップＳ１０１に移行する。一方、進行方向判定装置１００は、最後の測定点である場合には（ステップＳ１０８，Ｙｅｓ）、最終的な進行方向を判定する（ステップＳ１１０）。
【０１２７】
なお、図１５に示した処理は一例である。例えば、図１５のステップＳ１０１〜１０３の順番と、ステップＳ１０４〜１０６の順番との順序が逆になってもよいし、同時に行ってもよい。
【０１２８】
次に、図１５のステップＳ１０１、１０２に示した処理をより詳細に説明する。図１６は、３点推定処理の処理手順を示すフローチャートである。図１６に示すように、進行方向判定装置１００は、Ｐｂ（ｉ）からの距離が探索距離Ｔｈ１以上となるＰａ（ｉ）をＰｂ（ｉ）の前方から探索する（ステップＳ２０１）。
【０１２９】
進行方向判定装置１００は、Ｐｂ（ｉ）からの距離が探索距離Ｔｈ１以上となるＰｃ（ｉ）をＰｂ（ｉ）の後方から探索する（ステップＳ２０２）。進行方向判定装置１００は、ベクトルＰａ（ｉ）Ｐｂ（ｉ）と、ベクトルＰｂ（ｉ）Ｐｃ（ｉ）のなす角βを算出する（ステップＳ２０３）。なお、この順番は一例であり、ステップＳ２０１とＳ２０２の順番が逆でもよい。
【０１３０】
次に、図１５のステップＳ１０４、１０５に示した処理をより詳細に説明する。図１７は、４点推定処理の処理手順を示すフローチャートである。図１７に示すように、進行方向判定装置１００は、Ｑｂ（ｉ）からの距離が探索距離Ｔｈ２以上となるＱａ（ｉ）を、Ｑｂ（ｉ）の前方から探索する（ステップＳ３０１）。
【０１３１】
進行方向判定装置１００は、Ｑａ（ｉ）からの距離が探索距離Ｔｈ３以上となるＱｄ（ｉ）をＱｂ（ｉ）の後方から探索する（ステップＳ３０２）。進行方向判定装置１００は、Ｑｄ（ｉ）からの距離が探索距離Ｔｈ４以上となるＱｃ（ｉ）をＱｂ（ｉ）の後方から探索する（ステップＳ３０３）。進行方向判定装置１００は、ベクトルＱａ（ｉ）Ｑｂ（ｉ）と、ベクトルＱｄ（ｉ）Ｑｃ（ｉ）のなす角φを算出する（ステップＳ３０４）。
【０１３２】
次に、本実施例にかかる進行方向判定装置１００の効果について説明する。進行方向判定装置１００は、測位点選択部１４０ｂが、測位点Ｑａ、Ｑｂ、Ｑｃ、Ｑｄを選択する。測位点Ｑａと測位点Ｑｂとの距離は、探索距離Ｔｈ２以上とする。また、測位点Ｑａと測位点Ｑｄとの距離は、探索距離Ｔｈ３以上とする。また、測位点Ｑｄと測位点Ｑｃとの距離は、探索距離Ｔｈ４以上とする。角度算出部１４０ｃは、測位点ＱａとＱｂを通る直線と、測位点Ｑｃと測位点Ｑｄを通る直線との角度を算出し、進行方向判定部１４０ｄは、角度に基づいて、進行方向を判定する。このように、進行方向判定装置１００は、所定の検索距離だけ離れた複数の点から進行方向を判定するため、測位点のばらつきが一カ所に集中していても、ばらつきの影響を除外して、進行方向を精度よく判定することができる。
【０１３３】
また、進行方向判定装置１００は、測位点選択部１４０ｂが、測位点Ｐａ、Ｐｂ、Ｐｃを更に選択する。そして、進行方向判定装置１００は、３点推測法および４点推測法の双方を用いて、進行方向を判定する。３点推定法は、小さなカーブをより正確に推定でき、４点推定法は、大きなカーブをより正確に推定できるという特性がある。このため、双方の推定法を用いることで、小さなカーブおよび大きなカーブに対応して、進行方向を精度良く判定することができる。
【０１３４】
また、進行方向判定装置１００は、移動体の速度と、測位点列の隣接する測位点の間隔とを基にして、探索距離Ｔｈ１を算出する。このため、移動体の速度や測位点の間隔に応じて、最適な測位点を選択でき、進行方向をより正確に判定することができる。
【０１３５】
また、進行方向判定装置１００は、移動体の走行する道路の道路幅または車線幅を基にして、探索距離Ｔｈ１を算出する。このため、移動体の走行速度や、道路の特徴に応じて、最適な測位点を選択でき、進行方向をより正確に判定することができる。例えば、不必要に基準測位点に接近した測位点を選択することを回避できる。
【０１３６】
また、進行方向判定装置１００は、進行方向判定部１４０ｄの一つ前の基準測位点における判定結果を基にして、探索距離Ｔｈ１を調整する。このため、実際に右左折する際の最低回転半径以上の距離離れた測位点を選択することができ、不必要に基準測位点に接近した測位点を選択することを回避でき、進行方向を正確に判定することができる。
【０１３７】
ところで、上述した進行方向判定装置１００の処理は一例であり、その他の処理を実行して、進行方向を判定してもよい。以下において、進行方向判定装置１００のその他の処理の例について説明する。
【０１３８】
続いて、測位点選択部１４０ｂのその他の処理について説明する。測位点選択部１４０ｂは、式（３）に基づいて、探索距離Ｔｈ２、探索距離Ｔｈ３、探索距離Ｔｈ４の関係を求めていたがこれに限定されない。例えば、探索距離Ｔｈ２、探索距離Ｔｈ３、探索距離Ｔｈ４の関係は、式（１６）に示す関係であってもよい。式（１６）において、「ｔ」は３以上の任意のパラメータである。
【０１３９】
探索距離Ｔｈ３＝ＭＡＸ（探索距離Ｔｈ２、探索距離Ｔｈ４）×ｔ・・・（１６）
【０１４０】
測位点選択部１４０ｂは、測位点Ｐａ、Ｐｂ、Ｐｃを選択する場合に、測位点Ｐｂを基準測位点として、前後の測位点Ｐａ、Ｐｃを選択していたが、これに限定されるものではない。例えば、測位点選択部１４０ｂは、測位点Ｐａを選択した後に、測位点Ｐａの後方から測位点Ｐｂ、Ｐｃを選択してもよい。また、測位点選択部１４０ｂは、測位点Ｐｃを選択した後に、測位点Ｐｃの前方から測位点Ｐｂ、Ｐａを選択してもよい。
【０１４１】
測位点選択部１４０ｂは、３点のうち最後に求めるＰｃとして、測位点Ｐｂとの距離が探索距離Ｔｈ１以上離れていなくても、例えば、測位点ＰａとＰｃとの距離が、探索距離Ｔｈ１の２倍以上離れていれば、選択してもよい。
【０１４２】
続いて、進行方向判定部１４０ｄのその他の処理について説明する。進行方向判定部１４０ｄは、３点推定法およぶ４点推定法を用いて、進行方向を判定していたがこれに限定されるものではない。進行方向判定部１４０ｄは、３点推定法と４点測定法のうち、どちらか一方を利用して、移動体の進行方向を判定してもよい。また、進行方向判定装置１００は、どちらか一方の推定法を利用して、測位点に対応するなす角が求められない場合に、他方の推定法を用いて、測位点に対応するなす角を求めてもよい。また、進行方向判定部１４０ｄは、所定の間隔毎に、測位点の進行方向を判定してもよい。
【０１４３】
なお、測位点変換部１４０ａは、ＧＰＳ情報１３０ａを基にして、測位点列情報１３０ｃを生成していたが、進行方向判定装置１００は測位点列情報１３０ｃを記憶部１３０に予め記憶させておいてもよい。
【０１４４】
進行方向判定部１４０ｄは、第１判定テーブル１３０ｇを用いて、暫定的な進行方向を判定し、第２判定テーブル１３０ｈを用いて、最終的な進行方向を判定していたがこれに限定されるものではない。進行方向判定部１４０ｄは、地理的特徴などにより、第１判定テーブル１３０ｇと第２判定テーブル１３０ｈとを使い分けてもよい。
【０１４５】
第１判定テーブル１３０ｇでは、各角度算出法による進行方向が異なる場合には、「直進」または「後退」よりも「右左折」を優先するものである。このため、進行方向判定部１４０ｄは、道路形状情報１３０ｃを基にして、右左折の多い場所で進行方向を判定する場合には、第１判定テーブル１３０ｇを用いて、最終的な進行方向を判定してもよい。
【０１４６】
第２判定テーブル１３０ｈでは、各角度算出法による進行方向が異なる場合には、「右左折」よりも「直進」または「後退」を優先させるものである。このため、進行方向判定部１４０ｄは、道路形状情報１３０ｃを基にして、右左折の少ない場所で進行方向を判定する場合には、第１判定テーブル１３０ｇを用いて、最終的な進行方向を判定してもよい。
【０１４７】
また、進行方向判定装置１００は、予め測定された測位点列情報１３０ｃを用いて、移動体の進行方向を判定する例を用いて説明したが、リアルタイムに移動体の測位点を取得して、移動体の進行方向をリアルタイムに判定してもよい。この場合には、若干のタイムラグを無視して、進行方向判定装置１００は、最新の測位点よりも前方の測位点を基準測位点とし、この基準測位点の前後の測位点を検出して、移動体の進行方向を判定する。
【０１４８】
次に、図１に示した進行方向判定装置１００と同様の機能を実現する進行方向判定プログラムを実行するコンピュータの一例について説明する。図１８は、進行方向判定プログラムを実行するコンピュータの一例を示す図である。
【０１４９】
図１８に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７を有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【０１５０】
ハードディスク装置２０７は、例えば、測位点選択プログラム２０７ａ、角度算出プログラム２０７ｂ、進行方向判定プログラム２０７ｃを有する。ＣＰＵ２０１は、各プログラム２０７ａ〜２０７ｃを読み出して、ＲＡＭ２０６に展開する。
【０１５１】
測位点選択プログラム２０７ａは、測位点選択プロセス２０６ａとして機能する。角度算出プログラム２０７ｂは、角度算出プロセス２０６ｂとして機能する。進行方向判定プログラム２０７ｃは、進行方向判定プロセス２０６ｃとして機能する。
【０１５２】
例えば、測位点選択プロセス２０６ａは、測位点選択部１４０ｂに対応する。角度算出プロセス２０６ｂは、角度算出部１４０ｃに対応する。進行方向判定プロセス２０６ｃは、進行方向判定部１４０ｄに対応する。
【０１５３】
なお、各プログラム２０７ａ〜２０７ｃについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくてもよい。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００がこれらから各プログラム２０７ａ〜２０７ｃを読み出して実行するようにしてもよい。
【０１５４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）移動体の測位点が時系列に並んだ測位点列を記憶する記憶部と、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択する測位点選択部と、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出する角度算出部と、
前記角度算出部が算出した角度に基づいて、前記移動体の進行方向を判定する進行方向判定部と
を有することを特徴とする進行方向判定装置。
【０１５６】
（付記２）前記測位点選択部は、第５測位点と、該第５測位点から閾値以上離れ前記第５測位点より前の時間に測位された第６測位点と、該第５測位点から閾値以上離れ前記第５測位点より後の時間に測位された第７測位点とを前記測位点列から更に選択し、
前記角度算出部は、前記第５測位点と前記第６測位点とを通る第３直線と、前記第５測位点と前記第７測位点とを通る第４直線との角度を更に算出し、
前記進行方向判定部は、前記第１直線および前記第２直線の角度、および、前記第３直線および前記第４直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記１に記載の進行方向判定装置。
【０１５７】
（付記３）前記測位点選択部は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記１または２に記載の進行方向判定装置。
【０１５８】
（付記４）前記測位点選択部は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記１または２に記載の進行方向判定装置。
【０１５９】
（付記５）前記測位点選択部は、前記進行方向判定部の前回の判定結果に基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記４に記載の進行方向判定装置。
【０１６０】
（付記６）コンピュータが実行する進行方向判定方法であって、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択し、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出し、
算出した角度に基づいて、前記移動体の進行方向を判定する
各処理をコンピュータが実行することを特徴とする進行方向判定方法。
【０１６１】
（付記７）前記測位点を選択する処理は、前記移動体の測位点列から、第５測位点と、該第５測位点から閾値以上離れ前記第５測位点より前の時間に測位された第６測位点と、該第５測位点から閾値以上離れ前記第５測位点より後の時間に測位された第７測位点とを前記測位点列から更に選択し、
前記角度を算出する処理は、前記第５測位点と前記第６測位点とを通る第３直線と、前記第５測位点と前記第７測位点とを通る第４直線との角度を更に算出し、
前記進行方向を判定する処理は、前記第１直線および前記第２直線の角度、および、前記第３直線および前記第４直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記６に記載の進行方向判定方法。
【０１６２】
（付記８）前記測位点を選択する処理は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記６または７に記載の進行方向判定方法。
【０１６３】
（付記９）前記測位点を選択する処理は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記６または７に記載の進行方向判定方法。
【０１６４】
（付記１０）前記測位点を選択する処理は、前記移動体の前回の進行方向の判定結果を基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記９に記載の進行方向判定方法。
【０１６５】
（付記１１）コンピュータに、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点とを選択し、
前記第１測位点と前記第２測位点とを通る第１直線と、前記第３測位点と前記第４測位点とを通る第２直線との角度を算出し、
算出した角度に基づいて、前記移動体の進行方向を判定する
各処理を実行させることを特徴とする進行方向判定プログラム。
【０１６６】
（付記１２）前記測位点を選択する処理は、前記移動体の測位点列から、第５測位点と、該第５測位点から閾値以上離れ前記第５測位点より前の時間に測位された第６測位点と、該第５測位点から閾値以上離れ前記第５測位点より後の時間に測位された第７測位点とを前記測位点列から更に選択し、
前記角度を算出する処理は、前記第５測位点と前記第６測位点とを通る第３直線と、前記第５測位点と前記第７測位点とを通る第４直線との角度を更に算出し、
前記進行方向を判定する処理は、前記第１直線および前記第２直線の角度、および、前記第３直線および前記第４直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記１１に記載の進行方向判定プログラム。
【０１６７】
（付記１３）前記測位点を選択する処理は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記１１または１２に記載の進行方向判定プログラム。
【０１６８】
（付記１４）前記測位点を選択する処理は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記１１または１２に記載の進行方向判定プログラム。
【０１６９】
（付記１５）前記測位点を選択する処理は、前記移動体の前回の進行方向の判定結果を基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記１４に記載の進行方向判定プログラム。
【０１７０】
（付記１６）移動体の測位点列を記憶する記憶部と、
前記測位点列から、第１測位点と、前記第１測位点から閾値以上離れ該第１測位点より前の時間に測位された第２測位点と、前記第２測位点から閾値以上離れ前記第１測位点より後の時間に測位された第３測位点と、前記第３測位点から閾値以上離れ前記第１測位点より後の時間に測位された第４測位点との測位点の組、または、
第５測位点と、該第５測位点から閾値以上離れ前記第５測位点より前の時間に測位された第６測位点と、該第５測位点から閾値以上離れ前記第５測位点より後の時間に測位された第７測位点との組を選択する測位点選択部と、
前記測位点選択部が選択した複数の測位点を基にして、前記移動体の進行方向を判定する進行方向判定部と
を有することを特徴とする進行方向判定装置。
【符号の説明】
【０１７１】
１００    進行方向判定装置
１１０    入力部
１２０    表示部
１３０    記憶部
１４０    制御部
【図１】
0005824994.tif 000012
【図２】
0005824994.tif 000013
【図３】
0005824994.tif 000014
【図４】
0005824994.tif 000015
【図５】
0005824994.tif 000016
【図６】
0005824994.tif 000017
【図７】
0005824994.tif 000018
【図８】
0005824994.tif 000019
【図９】
0005824994.tif 000020
【図１０】
0005824994.tif 000021
【図１１】
0005824994.tif 000022
【図１２】
0005824994.tif 000023
【図１３】
0005824994.tif 000024
【図１４】
0005824994.tif 000025
【図１５】
0005824994.tif 000026
【図１６】
0005824994.tif 000027
【図１７】
0005824994.tif 000028
【図１８】
0005824994.tif 000029
【図１９】
0005824994.tif 000030
【図２０】
0005824994.tif 000031