以下に、本願の開示する進行方向判定装置、進行方向判定方法および進行方向判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例にかかる進行方向判定装置の構成について説明する。図1は、本実施例にかかる進行方向判定装置の構成を示す機能ブロック図である。図1に示すように、進行方向判定装置100は、入力部110、表示部120、記憶部130、制御部140を有する。
入力部110は、各種の情報を入力する入力装置である。例えば、入力部110は、キーボードやマウス等に対応する。または、入力部110は、タッチパネル等に対応する。入力部110は、制御部140に接続される。
表示部120は、各種の情報を表示する表示装置である。表示部120は、制御部140から出力される移動体の進行方向に関する情報等を表示する。表示装置120は、例えば、ディスプレイやタッチパネル等に対応する。表示部120は、制御部140に接続される。
記憶部130は、GPS情報130a、測位点列情報130b、道路形状情報130c、速度情報130dを記憶する。また、記憶部130は、3点推定結果テーブル130e、4点推定結果テーブル130f、第1判定テーブル130g、第2判定テーブル130hを記憶する。記憶部130は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
GPS情報130aは、移動体の測位情報、GPSの測位情報を含む。移動体の測位情報は、例えば、移動体の位置と測位時間とを対応付けている。また、GPSの測位情報は、GPSの位置と測位時間とを対応付けている。
また、GPS情報130aは、GPS位置精度、GPS測位時間単位、GPS測位状態も含む。GPS位置精度は、最小誤差、最大誤差の情報を含む。GPS測位時間単位は、移動体を測位する最短の時間間隔の情報を含む。GPS測位状態は、測位精度に関する情報を含む。
測位点列情報130bは、測位点列に含まれる各測位点の座標を含む。図2は、測位点列情報のデータ構造の一例を示す図である。図2に示すように、測位点列情報は、測位点を識別する測位点番号と、座標とを対応付ける。
道路形状情報130cは、測位点の属する道路の形状に関する情報を含む。図3は、道路形状情報のデータ構造の一例を示す図である。図3に示すように、道路形状情報は、道路幅、車線数、車線幅を含む。各情報は、測位点番号に対応付けられている。
速度情報130dは、移動体の速度情報を含む。例えば、時間に対応付けて速度情報を保持する。または、速度情報130dは、測位点に対応付けて、測位点の時点における速度情報を保持してもよい。
3点推定結果テーブル130eは、3つの測位点を用いて算出した角度と曲率との推定結果を保持するテーブルである。以下の説明において、3つの測位点を用いて角度と曲率を求める方法を、3点推定法と表記する。図4は、3点推定結果テーブルのデータ構造の一例を示す図である。図4に示すように、この3点推定結果テーブル130eは、測位点番号と、なす角βと、曲率とを対応付ける。なす角βおよび曲率に関する説明は後述する。
4点推定結果テーブル130fは、4つの測位点を用いて算出した角度と曲率との推定結果を保持するテーブルである。以下の説明において、4つの測位点を用いて角度と曲率を求める方法を、4点推定法と表記する。図5は、4点推定結果テーブルのデータ構造の一例を示す図である。図5に示すように、この4点推定結果テーブル130fは、測位点番号と、なす角φと、曲率と、交点Fからの距離とを対応付ける。なす角φ、曲率、交点Fからの距離に関する説明は後述する。
第1判定テーブル130gは、3点推定法によって特定される移動体の進行方向と、4点推定法によって特定される移動体の進行方向から、暫定的に、移動体の進行方向を判定するためのテーブルである。
図6は、第1判定テーブルのデータ構造の一例を示す図である。図6の1行目は、3点推定法によって特定される進行方向のパターンである。図6の1列目は、4点推定法によって特定される進行方向のパターンである。3点推定法によって特定された進行方向と、4点推定法によって特定された進行方向との組から、暫定的な、移動体の進行方向が判定される。例えば、3点推定法によって特定された進行方向が「直進」、4点推定法によって特定された進行方向が「直進」の場合には、暫定的な、移動体の進行方向は「直進」となる。
第1判定テーブル130gでは、各角度算出法による進行方向が異なる場合には、「直進」または「後退」よりも「右左折」を優先する。
第2判定テーブル130hは、4点推定法によって特定される移動体の進行方向と、4点推定法によって特定される移動体の進行方向から、最終的な移動体の進行方向を判定するためのテーブルである。
図7は、第2判定テーブルのデータ構造の一例を示す図である。図7の1行目は、3点推定法によって特定される進行方向のパターンである。図7の1列目は、4点推定法によって特定される進行方向のパターンである。3点推定法によって特定された進行方向と、4点推定法によって特定された進行方向との組から、移動体の進行方向が判定される。例えば、3点推定法によって特定された進行方向が「直進」、4点推定法によって特定された進行方向が「直進」の場合には、移動体の進行方向は「直進」となる。
第2判定テーブル130hでは、各角度算出法による進行方向が異なる場合には、「右左折」よりも「直進」または「後退」を優先させる。
図1の説明に戻る。制御部140は、測位値変換部140a、測位点選択部140b、角度算出部140c、進行方向判定部140dを有する。制御部140は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部140は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
測位値変換部140aは、GPS情報130aを測位点列情報130bに変換する処理部である。例えば、測位値変換部140aは、移動体の測位情報を、平面直行座標系の距離単位系に変換することを行う。例えば、測位値変換部140aは、測位点列が属する地域メッシュの左下の緯度経度点を原点とし、Y軸の正方向を北、X軸の正方向を東として、変換を行う。また、測位値変換部140aは、メートル単位の数値に変換する。なお、平面直行座標系は、上記のものに限られない。例えば、測位点列のうち、原点に対応する測位点を、最初の測位点としてもよい。この場合には、測位点列の各座標は、最初の測位点との差分となる。
測位点選択部140bおよび角度算出部140cの説明を行う前に、本実施例にかかる3点推定法と4点推定法について説明する。
図8は、3点推定法を説明するための図である。3点推定法は、基準測位点と、基準
測位点の前後の点を選択する。例えば、基準測位点を測位点Pbとし、基準測位点の前後の測位点を測位点Pa、Pcとする。時間経過的に、測位点Paは、測位点Pbよりも前に測位した測位点である。また、時間経過的に、測位点Pcは、測位点Pbよりも後に測位した測位点である。後述するように、本実施例では、基準測位点から所定の探索距離だけ離れた測位点を、前後の測位点として選択する。
そして、3点推定法では、基準測位点Pbと測位点Paとを結ぶ直線P1と、基準測位点Pbと測位点Pcとを結ぶ直線P2とのなす角βを求める。また、3点推定法では、直線P1と直線P2とから、曲率を算出する。例えば、本実施例では、ベクトル計算による計算方法または内接三角形の辺による算出方法により、なす角β、曲率を求める。
図9は、4点推定法を説明するための図である。4点推定法は、基準測位点と、基準測位点の前後の点を選択する。例えば、基準測位点を測位点Qbとし、基準測位点の前後の測位点を測位点Qa、Qc、Qdとする。測位された時間が最も早いものから各測位点を順に並べると、測位点Qa、Qb、Qc、Qdの順になる。後述するように、測位点QaとQbとの距離、測位点QcとQdとの距離、測位点QaとQdとの距離は、所定の条件を満たすように、測位点Qa、Qc、Qdは選択される。
そして、4点推定法では、基準測位点Qbと測位点Qaとを通る直線Q1と、測位点Qcと測位点Qdとを通る直線Q2とのなす角φを求める。また、4点推定法では、直線Q1と直線Q2とから、曲率を算出する。例えば、本実施例では、ベクトル計算による計算方法または内接三角形の辺による算出方法により、なす角φ、曲率を求める。
本実施例では、4点推定法により求めたなす角φおよび曲率を、交点Fに最も近い測位点Qeのなす角φおよび曲率とする。ここで、交点Fは、直線Q1と直線Q2との交点に対応する。図9において、測位点Qa、Qb、Qe、Qc、Qdの順に、測位した時間が大きくなるものとする。
図1の説明に戻る。測位点選択部140bは、図8に示した3点の測位点Pa、Pb、Pcを選択する。そして、測位点選択部140bは、選択した3点の測位点の情報を、角度算出部140cに出力する。
また、測位点選択部140bは、図9に示した4点の測位点Qa、Qb、Qc、Qdを選択する。そして、測位点選択部140bは、選択した4点の測位点の情報を、角度算出部140cに出力する。
ここで、測位点選択部140bが、3点の測位点を選択する処理について説明する。まず、測位点選択部140bは、測位点列情報130bから、基準測位点を選択し、式(1)に基づいて、探索距離Th1を算出する。
探索距離Th1=MAX(GPS最小記録単位、道路幅)×k・・・(1)
式(1)においてMAX(GPS最小記録単位、道路幅)は、基準測位点に対応するGPS最小記録単位と道路幅とのうち、大きい方の値を選択する関数である。また、式(1)において「k」は、1より大きな任意のパラメータに対応する。
測位点選択部140bは、式(1)のGPS最小記録単位を、式(2)に基づいて求める。
GPS最小記録単位=GPS測位時間単位×基準測位点の速度+GPS位置精度・・・(2)
式(2)において、GPS測位時間単位は、基準測位点と前後の測位点との測定時間間隔に対応する。測位点選択部140bは、GPS情報130aを基にして、GPS測位時間単位を求める。また、測位点選択部140bは、基準測位点の速度を、速度情報130bから取得する。また、測位点選択部140bは、GPS位置精度を、GPS情報130aから取得する。なお、測位点選択部140bは、GPS位置精度の値を、最小誤差とする。
式(2)において、「GPS測位時間単位×基準測位点の速度」は、GPSの記録分解能に対応する値である。式(2)において、「GPS位置精度」は記録誤差を意味する値である。「GPS測位時間単位×基準測位点の速度」と「GPS位置精度」とを合算することで、測位誤差の影響を考慮した測位点の選定を行うことができる。
式(2)において、道路幅は、基準測位点に対応する道路幅である。測位点選択部140bは、基準測位点に対応する道路幅を、道路形状情報130cから取得する。なお、測位点選択部140bは、右左折により、道路幅を調整してもよい。測位点選択部140bは、移動体が右折している場合には、上下車線の鎖線幅の合算値を、道路幅とする。これに対して、測位点選択部140bは、移動体が左折している場合には、片側車線の幅を道路幅とする。測位点選択部140bは、移動体の右左折の情報を、後述の進行方向判定部140dから取得する。
このように、測位点選択部140bは、右左折により探索距離Th1に影響をおよぼす道路幅を調整することで、移動体が右左折する際の推定最低回転半径以上離れた測位点を選択することができる。
測位点選択部140bは、探索距離Th1を求めた後に、基準測位点の前後の測位点を選択する。測位点選択部140bは、基準測位点の前方に位置する測位点の座標と、基準測位点の座標とを比較して、各測位点の距離が探索距離Th1以上となる測位点を前方の測位点として特定する。ここで、前方の測位点とは、時間経過的に基準測位点よりも前に測位された測位点を示す。例えば、図8において、基準測位点Pbと測位点Paとの距離が、探索距離Th1以上の場合に、測位点選択部140bは、測位点Paを前方の測位点とする。
また、測位点選択部140bは、基準測位点の後方に位置する測位点の座標と、基準測位点の座標とを比較して、各測位点の距離が最初に探索距離Th1以上となる測位点を後方の測位点として特定する。ここで、後方の測位点とは、時間経過的に基準測位点よりも後に測位された測位点を示す。例えば、図8において、基準測位点Pbと測位点Pcとの距離が、探索距離Th1以上の場合に、測位点選択部140bは、測位点Pcを後方の測位点とする。
測位点選択部140bは、選択した測位点Pa、Pb、Pcの組の情報を、角度算出部140cに出力する。測位点Pa、Pb、Pcの組の情報には、例えば、測位点番号、座標等が含まれる。なお、測位点選択部140bは、探索距離Th1以上の測位点が存在しない場合には、該当する測位点の情報をブランクとする。測位点選択部140bは、例えば、基準測位点Pbに探索距離Th1以上離れた測位点Paが存在しない場合には、測位点Paに対する情報をブランクとする。
測位点選択部140bは、基準測位点Pbを順次移動させながら、上記処理を繰り返し実行し、測位点Pa、Pb、Pcの組を順次選択する。
次に、測位点選択部140bが、4点の測位点を選択する処理について説明する。測位点選択部140bは、測位点列情報130bから、式(3)の条件を満たす測位点Qa、Qb、Qc、Qdを選択する。式(3)において、探索距離Th3は、測位点Qaと測位点Qbとの距離に対応する。探索距離Th3は、測位点Qaと測位点Qdとの距離に対応する。探索距離Th4は、測位点Qcと測位点Qdとの距離に対応する。例えば、「s」は、1.5以上の任意のパラメータである。
探索距離Th3=(探索距離Th2+探索距離Th4)×s・・・(3)
ここで、測位点選択部140bが、測位点Qa、Qb、Qc、Qdを選択する手順の一例について説明する。測位点選択部140bは、基準測位点Qbを選択し、基準測位点Qbからの距離が、探索距離Th2以上となる測位点を、前方の測位点から選択する。ここで、前方の測位点とは、時間経過的に基準測位点Qbよりも前に測位された測位点を示す。
測位点選択部140bは、測位点Qaからの距離が探索距離Th3以上となる測位点Qdを、基準測位点Qbの後方の測位点から選択する。ここで、後方の測位点とは、時間経過的に基準測位点Qbよりも後に測位された測位点を示す。
測位点選択部140bは、測位点Qdからの距離が探索距離Th4以上となる測位点Qcを、基準測位点Qbの後方の測位点から選択する。
測位点選択部140bは、選択した測位点Qa、Qb、Qc、Qdの組の情報を、角度算出部140cに出力する。測位点Qa、Qb、Qc、Qdの組の情報には、例えば、測位点番号、座標等が含まれる。
測位点選択部140bは、基準測位点Qbを順次移動させながら、上記処理を繰り返し実行し、測位点Qa、Qb、Qc、Qdの組を順次選択する。
ここで、探索距離Th2、Th3、Th4が式(4)の関係を満たす場合について説明する。この場合には、測位点Qa、Qb、Qc、Qdが一直線に並んだ場合でも、測位点QaおよびQbを結ぶ線分と測位点QcおよびQdを結ぶ線分とを加算したものよりも、測位点QaおよびQdを結ぶ線分の方が長いことを意味している。また、この場合には、測位点QbおよびQcが十分離れていることを意味する。探索距離Th3は、大きなカーブの形状を再現するのに重要な探索距離である。式(4)の関係を根拠として、例えば、式(3)が利用される。
探索距離Th3>探索距離Th2+探索距離Th4・・・(4)
角度算出部140cは、3点推測法および4点推測法を基にして、なす角と曲率とを算出する処理部である。角度算出部140cは、3点推測法で求めたなす角と曲率の情報を、3点推定結果テーブル130eに登録する。角度算出部140cは、4点推測法で求めたなす角と曲率の情報を、4点推定結果テーブル130fに登録する。
角度算出部140cは、何れの推定法を用いるにせよ、内接三角形の辺による算出方法またはベクトル計算により、曲率となす角を算出する。
まず、内接三角形の辺による算出方法によって、曲率となす角を算出する場合について説明する。図10は、曲率となす角を算出する処理を説明するための図である。図10に示すように、3点A、B、Cは円5に内接する。円5の半径をRとする。また、点Aと点Bとを結ぶ直線と、点Bと点Cとを結ぶ直点とのなす角をβとする。
内接三角形ABCの各辺に対応する頂点名を利用して、点Aと点Bとを結ぶ線分を「c」とする。点Bと点Cとを結ぶ線分を「a」とする。点Aと点Cとを結ぶ線分を「b」とする。
正弦定理から式(5)の関係が導かれ、余弦定理から式(6)の関係が導かれる。式(5)と式(6)とを式(7)に代入すると、式(8)の関係が求められる。式(8)の両辺の二乗を外すことで、式(9)に示すように、半径Rが求められる。
曲率ρは、式(10)によって求めることができる。なお、なす角βは、式(5)および式(6)からtanβの変形式を求め、点A、B、Cの座標値からtanβを計算し、tan−1βを求めることで、算出することが可能となる。
ρ=1/R・・・(10)
続いて、ベクトル計算による計算方法によって、曲率となす角を算出する場合について説明する。正弦定理より、円5の半径Rは、式(11)によって表される。また、ベクトル外積により、式(12)の関係がある。式(12)より、sinβは、式(13)によって表される。そして、式(11)と式(13)から、式(14)の関係が導かれる。また、ベクトルの内積は式(15)によって表される。
ベクトル計算では、式(14)に基づいて、円5の半径Rを求め、式(10)により、曲率ρを算出する。なお、なす角βは、式(13)、式(15)からtanβの変形式を求め、点A、B、Cの座標値からtanβを計算し、tan−1βを求めることで、算出することが可能となる。
次に、角度算出部140cが3点推測法に基づいてなす角βと曲率とを算出し、3点推定結果テーブル130eに登録する処理について説明する。基本的に、角度算出部140cは、測位点Pa、基準測位点Pb、測位点Pcの各座標を、図10の点A、B、Cの座標と見立て、基準測位点Pbに対するなす角、曲率を算出する。角度算出部140cは、算出結果を、3点推定結果テーブル130eに登録する。角度算出部140cは、測位点選択部140bから、測位点Pa、Pb、Pcの組の情報を取得するたびに、上記処理を繰り返し実行する。
ここで、角度算出部140cが測位点Pa、Pb、Pcの組の情報を取得し、3点推定結果テーブル130eに情報を格納する過程の一例について説明する。図11は、3点推定結果テーブルに情報が格納される過程を示す図である。
図11の1段目について説明する。角度算出部140cは、測位点Pa、Pb、Pcの組の情報を取得する。基準測位点Pbの測位点番号を「1」とし、測位点Paの情報をブランクとする。この場合には、なす角βおよび曲率を求めることができない。このため、角度算出部140cは、3点推定結果テーブル130e(1)に示すように、測位点番号「1」に対応するなす角βおよび曲率に「×」を登録する。なお、この「×」は説明のため便宜的に登録しているものであり、実際のテーブルは空欄のままで構わない。
図11の2段目について説明する。角度算出部140cは、次の測位点Pa、Pb、Pcの組の情報を取得する。基準測位点Pbの測位点番号を「2」とし、測位点Paの情報をブランクとする。この場合には、なす角度βおよび曲率を求めることができない。このため、角度算出部140cは、3点推定結果テーブル130e(2)に示すように、測位点番号「2」に対応するなす角βおよび曲率に「×」を登録する。
図11の3段目について説明する。角度算出部140cは、次の測位点Pa、Pb、Pcの組の情報を取得する。基準測位点Pbの測位点番号を「3」とする。また、測位点Pa、Pb、Pcには、座標が含まれているものとする。角度算出部140cは、測位点Pa、Pb、Pcの組の情報を基にして、なす角βおよび曲率を算出する。例えば、算出されたなす角βを「24.5」とし、曲率を「16.2」とする。角度算出部140cは、3点推定結果テーブル130e(3)に示すように、測位点番号「3」に対応するなす角βに「24.5」を登録し、曲率「16.2」を登録する。
図11の4段目について説明する。角度算出部140cは、順次、測位点Pa、Pb、Pcの組の情報を取得し、測位点番号「4」〜「8」に対応するなす角βおよび曲率を算出し、3点推定結果テーブル130e(4)に登録する。また、角度算出部140cは、測位点番号「1」、「2」のなす角βと曲率を、測位点番号「3」のなす角βと曲率の値によって、代用する。
次に、角度算出部140cが4点推測法に基づいてなす角φと曲率を算出し、4点推定結果テーブル130fに登録する処理について説明する。基本的に、角度算出部140cは、測位点Qa、交点F、測位点Qdの各座標を、図10の点A、B、Cの座標と見立て、なす角φおよび曲率を算出する。角度算出部140cは、基準測位点Qbと、測位点Qcの間に存在する測位点に対応付けて、なす角φおよび曲率を登録または更新する。角度算出部140cは、測位点選択部140bから、測位点Qa、Qb、Qc、Qdの組の情報を取得するたびに、上記処理を繰り返し実行する。
ここで、角度算出部140cが測位点Qa、Qb、Qc、Qdの組の情報を取得し、4点推定結果テーブル130fに情報を格納する過程の一例について説明する。図12は、4点推定結果テーブルに情報が格納される過程を示す図である。
図12の1段目について説明する。角度算出部140cは、測位点Qa、Qb、Qc、Qdの組の情報を取得する。基準測位点Qbの測位点番号を「i」とし、測位点Qcの測位点番号を「i+4」とする。iは1以上の整数とする。角度算出部140cは、測位点Qa、交点F、測位点Qdの各座標から、なす角および曲率を算出する。例えば、なす角φを「49.8」とし、曲率を「22.6」とする。角度算出部140cは、テーブル7Aに示すように、測位点番号「i+1」〜「i+3」の測位点に対応するなす角および曲率に、算出した値を登録する。また、角度算出部140cは、各測位点と、交点Fからの距離を、テーブル7Aに登録する。角度算出部140cは、測位点「i+1」〜「i+3」の座標を、測位点列情報130bから取得し、交点Fからの距離を算出するものとする。
図12の2段目について説明する。角度算出部140cは、次の測位点Qa、Qb、Qc、Qdの組の情報を取得する。基準測位点Qbの測位点番号を「i+1」とし、測位点Qcの測位点番号を「i+6」とする。角度算出部140cは、測位点Qa、交点F、測位点Qdの各座標から、なす角および曲率を算出する。例えば、なす角φを「50.3」とし、曲率を「20.1」とする。角度算出部140cは、テーブル7Bに示すように、測位点番号「i+2」〜「i+5」の測位点に対応するなす角および曲率に、算出した値を登録する。また、角度算出部140cは、各測位点と、交点Fからの距離を、テーブル7Bに登録する。角度算出部140cは、測位点「i+2」〜「i+5」の座標を、測位点列情報130bから取得し、交点Fからの距離を算出するものとする。
図12の3段目について説明する。角度算出部140cは、テーブル7Aの情報と、テーブル7Bの情報とを組み合わせて、4点推定結果テーブル130fに情報を登録する。
角度算出部140cは、重複していない部分に関しては、そのまま、4点推定結果テーブル130fに登録する。図12において、測位点番号「i+1」の情報は、テーブルAにしか登録されていない。このため、角度算出部140cは、テーブルAの測位点番号「i+1」に対応付けられたなす角および曲率を、4点推定結果テーブル130fの「i+1」に対応するなす角および曲率に登録する。
また、測位点番号「i+4」、「i+5」の情報は、テーブル7Bにしか登録されていない。このため、角度算出部140cは、テーブル7Bの測位点番号「i+4」、「i+5」に対応付けられたなす角および曲率を、4点推定結果テーブル130fの「i+4」、「i+5」に対応するなす角および曲率に登録する。
角度算出部140cは、重複している情報に関しては、交点Fからの距離が近い方の情報を採用して、4点推定結果テーブル130fに登録する。例えば、図12において、測位点番号「i+2」、「i+3」の情報は、テーブル7A、7Bに存在しているため、重複している。測位点番号「i+2」に関しては、テーブル7Aの方が、交点Fからの距離が小さい。このため、角度算出部140cは、テーブル7Aの測位点番号「i+2」に対応付けられたなす角および曲率を、4点推定結果テーブル130fの「i+2」に対応するなす角および曲率に登録する。
また、測位点番号「i+3」に関しては、テーブル7Bの方が、交点Fからの距離が小さい。このため、角度算出部140cは、テーブル7Bの測位点番号「i+3」に対応付けられたなす角および曲率を、4点推定結果テーブル130fの「i+3」に対応するなす角および曲率に登録する。
角度算出部140cは、上記処理を繰り返し実行することで、4点推定結果テーブル130fに情報を順次登録していく。なお、図12に示した処理は一例である。図12では、テーブル7A、7Bを用いて説明したが、角度算出部140cは、4点推定結果テーブル130fのみを用いて、図12に示した処理と同様の処理を実行してもよい。
図1の説明に戻る。進行方向判定部140dは、移動体の進行方向を判定する処理部である。進行方向判定部140dは、3点推定結果テーブル130eを基にして、移動体の進行方向を判定する。また、進行方向判定部140dは、4点推定結果テーブル130fを基にして、移動体の進行方向を判定する。そして、進行方向判定部140dは、各判定結果を比較して、移動体の暫定的な進行方向および最終的な進行方向を判定する。
進行方向判定部140dが、3点推定結果テーブル130eを基にして、各測位点の進行方向を判定する処理について説明する。進行方向判定部140dは、測位点番号に対応するなす角βを取得する。進行方向判定部140dは、なす角βが、条件1に対応する場合には、進行方向を「直進」と判定する。進行方向判定部140dは、なす角βが、条件2に対応する場合には、進行方向を「右折」と判定する。進行方向判定部140dは、なす角βが、条件3に対応する場合には「左折」と判定する。進行方向判定部140dは、なす角φが、条件4または5に対応する場合には「後退」と判定する。なお、条件1〜5において、mは任意のパラメータである。また、条件1〜3における数値は、時計回りをプラスの度とする。
(180−m)≦なす角≦(180+m)・・・(条件1)
m<なす角<(180−m) ・・・(条件2)
(180+m)<なす角<(360−m)・・・(条件3)
(360−m)≦なす角≦360 ・・・(条件4)
0≦なす角≦m ・・・(条件5)
進行方向判定部140dは、3点推定結果テーブル130eを基にした判定結果を、測位点番号と対応付けて記憶する。図13は、3点推定結果テーブルを基にした判定結果の一例を示す図である。図13に示すように、判定結果9Aは、測位点番号と進行方向とを対応付ける。
次に、進行方向判定部140dが、4点推定結果テーブル130fを基にして、各測位点の進行方向を判定する処理について説明する。進行方向判定部140dは、測位点番号に対応するなす角φを取得する。進行方向判定部140dは、なす角φが、条件1に対応する場合には、進行方向を「直進」と判定する。進行方向判定部140dは、なす角φが、条件2に対応する場合には、進行方向を「右折」と判定する。進行方向判定部140dは、なす角φが、条件3に対応する場合には「左折」と判定する。進行方向判定部140dは、なす角φが、条件4または5に対応する場合には「後退」と判定する。
進行方向判定部140dは、4点推定結果テーブル130fを基にした判定結果を、測位点番号と対応付けて記憶する。図14は、4点推定結果テーブルを基にした判定結果の一例を示す図である。図14に示すように、判定結果9Bは、測位点番号と進行方向とを対応付ける。
次に、進行方向判定部140dが、暫定的な進行方向を判定する処理について説明する。進行方向判定部140dは、同一の測位点番号に対する進行方向について、判定結果9Aと判定結果9Bとを比較し、進行方向が同一であるか否かを判定する。進行方向が同一である場合には、該当する測位点番号の進行方向を、一致した進行方向とする。例えば、測位点番号iについて、判定結果9A、9Bの進行方向が「右折」の場合には、測位点番号iの暫定的な進行方向を「右折」とする。
進行方向判定部140dは、同一の測位点番号に対する進行方向について、判定結果9Aと判定結果9Bとを比較し、進行方向が同一でない場合には、第1判定テーブル130gに基づいて、暫定的な進行方向を判定する。例えば、測位点番号iについて、判定結果9Aの進行方向が「右折」、判定結果9Bの進行方向が「直進」の場合について説明する。この場合には、進行方向判定部140dは、図6の第1判定テーブル130gに基づいて、進行方向を「右折」と判定する。
次に、進行方向判定部140dが、最終的な進行方向を判定する処理について説明する。進行方向判定部140dは、同一の測位点番号に対する進行方向について、判定結果9Aと判定結果9Bとを比較し、進行方向が同一であるか否かを判定する。進行方向が同一である場合には、該当する測位点番号の進行方向を、一致した進行方向とする。例えば、測位点番号iについて、判定結果9A、9Bの進行方向が「右折」の場合には、測位点番号iの最終的な進行方向を「右折」とする。
進行方向判定部140dは、同一の測位点番号に対する進行方向について、判定結果9Aと判定結果9Aとを比較し、進行方向が同一でない場合には、第2判定テーブル130hに基づいて、最終的な進行方向を判定する。例えば、測位点番号iについて、判定結果9Aの進行方向が「右折」、判定結果9Bの進行方向が「直進」の場合について説明する。この場合には、進行方向判定部140dは、図7の第2判定テーブル130hに基づいて、進行方向を「直進」と判定する。
進行方向判定部140dは、暫定的な判定結果および最終的な判定結果を出力する。また、進行方向判定部140dは、暫定的な判定結果および最終的な判定結果を測位点選択部140bに出力する。
次に、本実施例にかかる進行方向判定装置の処理手順の一例について説明する。図15は、本実施例にかかる進行方向判定装置の処理手順を示すフローチャートである。図15に示す処理は、例えば、測位値変換部140aが、GPS情報130aを基にして、測位点列情報130bを生成した後に実行される。
図15に示すように進行方向判定装置100は、変数iに初期値を設定する(ステップS100)。進行方向判定装置100は、3つの測位点Pa(i)、Pb(i)、Pc(i)を選択する(ステップS101)。ステップS101において、Pb(i)は、測位点番号iの基準測位点に対応し、測位点Pa(i)およびPc(i)は、測位点番号iの測位点の前後の測位点に対応する。
進行方向判定装置100は、3点推定処理を実行し(ステップS102)、3点推定結果テーブル130eに登録する(ステップS103)。
進行方向判定装置100は、4つの測定点Qa(i)、Qb(i)、Qc(i)、Qd(i)を選択する(ステップS104)。ステップS104において、Qb(i)は、測位点番号iの基準測位点に対応し、測位点Qa(i)、Qc(i)、Qd(i)は、測位点番号iの測位点の前後の測位点に対応する。
進行方向判定装置100は、4点推定処理を実行し(ステップS105)、4点推定結果テーブル130fに登録する(ステップS106)。
進行方向判定装置100は、暫定的に進行方向を判定する(ステップS107)。進行方向判定装置100は、測位点番号iの測位点が最後の測位点か否かを判定する(ステップS108)。
進行方向判定装置100は、最後の測位点ではない場合には(ステップS108,No)、iに1を加算し(ステップS109)、ステップS101に移行する。一方、進行方向判定装置100は、最後の測定点である場合には(ステップS108,Yes)、最終的な進行方向を判定する(ステップS110)。
なお、図15に示した処理は一例である。例えば、図15のステップS101〜103の順番と、ステップS104〜106の順番との順序が逆になってもよいし、同時に行ってもよい。
次に、図15のステップS101、102に示した処理をより詳細に説明する。図16は、3点推定処理の処理手順を示すフローチャートである。図16に示すように、進行方向判定装置100は、Pb(i)からの距離が探索距離Th1以上となるPa(i)をPb(i)の前方から探索する(ステップS201)。
進行方向判定装置100は、Pb(i)からの距離が探索距離Th1以上となるPc(i)をPb(i)の後方から探索する(ステップS202)。進行方向判定装置100は、ベクトルPa(i)Pb(i)と、ベクトルPb(i)Pc(i)のなす角βを算出する(ステップS203)。なお、この順番は一例であり、ステップS201とS202の順番が逆でもよい。
次に、図15のステップS104、105に示した処理をより詳細に説明する。図17は、4点推定処理の処理手順を示すフローチャートである。図17に示すように、進行方向判定装置100は、Qb(i)からの距離が探索距離Th2以上となるQa(i)を、Qb(i)の前方から探索する(ステップS301)。
進行方向判定装置100は、Qa(i)からの距離が探索距離Th3以上となるQd(i)をQb(i)の後方から探索する(ステップS302)。進行方向判定装置100は、Qd(i)からの距離が探索距離Th4以上となるQc(i)をQb(i)の後方から探索する(ステップS303)。進行方向判定装置100は、ベクトルQa(i)Qb(i)と、ベクトルQd(i)Qc(i)のなす角φを算出する(ステップS304)。
次に、本実施例にかかる進行方向判定装置100の効果について説明する。進行方向判定装置100は、測位点選択部140bが、測位点Qa、Qb、Qc、Qdを選択する。測位点Qaと測位点Qbとの距離は、探索距離Th2以上とする。また、測位点Qaと測位点Qdとの距離は、探索距離Th3以上とする。また、測位点Qdと測位点Qcとの距離は、探索距離Th4以上とする。角度算出部140cは、測位点QaとQbを通る直線と、測位点Qcと測位点Qdを通る直線との角度を算出し、進行方向判定部140dは、角度に基づいて、進行方向を判定する。このように、進行方向判定装置100は、所定の検索距離だけ離れた複数の点から進行方向を判定するため、測位点のばらつきが一カ所に集中していても、ばらつきの影響を除外して、進行方向を精度よく判定することができる。
また、進行方向判定装置100は、測位点選択部140bが、測位点Pa、Pb、Pcを更に選択する。そして、進行方向判定装置100は、3点推測法および4点推測法の双方を用いて、進行方向を判定する。3点推定法は、小さなカーブをより正確に推定でき、4点推定法は、大きなカーブをより正確に推定できるという特性がある。このため、双方の推定法を用いることで、小さなカーブおよび大きなカーブに対応して、進行方向を精度良く判定することができる。
また、進行方向判定装置100は、移動体の速度と、測位点列の隣接する測位点の間隔とを基にして、探索距離Th1を算出する。このため、移動体の速度や測位点の間隔に応じて、最適な測位点を選択でき、進行方向をより正確に判定することができる。
また、進行方向判定装置100は、移動体の走行する道路の道路幅または車線幅を基にして、探索距離Th1を算出する。このため、移動体の走行速度や、道路の特徴に応じて、最適な測位点を選択でき、進行方向をより正確に判定することができる。例えば、不必要に基準測位点に接近した測位点を選択することを回避できる。
また、進行方向判定装置100は、進行方向判定部140dの一つ前の基準測位点における判定結果を基にして、探索距離Th1を調整する。このため、実際に右左折する際の最低回転半径以上の距離離れた測位点を選択することができ、不必要に基準測位点に接近した測位点を選択することを回避でき、進行方向を正確に判定することができる。
ところで、上述した進行方向判定装置100の処理は一例であり、その他の処理を実行して、進行方向を判定してもよい。以下において、進行方向判定装置100のその他の処理の例について説明する。
続いて、測位点選択部140bのその他の処理について説明する。測位点選択部140bは、式(3)に基づいて、探索距離Th2、探索距離Th3、探索距離Th4の関係を求めていたがこれに限定されない。例えば、探索距離Th2、探索距離Th3、探索距離Th4の関係は、式(16)に示す関係であってもよい。式(16)において、「t」は3以上の任意のパラメータである。
探索距離Th3=MAX(探索距離Th2、探索距離Th4)×t・・・(16)
測位点選択部140bは、測位点Pa、Pb、Pcを選択する場合に、測位点Pbを基準測位点として、前後の測位点Pa、Pcを選択していたが、これに限定されるものではない。例えば、測位点選択部140bは、測位点Paを選択した後に、測位点Paの後方から測位点Pb、Pcを選択してもよい。また、測位点選択部140bは、測位点Pcを選択した後に、測位点Pcの前方から測位点Pb、Paを選択してもよい。
測位点選択部140bは、3点のうち最後に求めるPcとして、測位点Pbとの距離が探索距離Th1以上離れていなくても、例えば、測位点PaとPcとの距離が、探索距離Th1の2倍以上離れていれば、選択してもよい。
続いて、進行方向判定部140dのその他の処理について説明する。進行方向判定部140dは、3点推定法およぶ4点推定法を用いて、進行方向を判定していたがこれに限定されるものではない。進行方向判定部140dは、3点推定法と4点測定法のうち、どちらか一方を利用して、移動体の進行方向を判定してもよい。また、進行方向判定装置100は、どちらか一方の推定法を利用して、測位点に対応するなす角が求められない場合に、他方の推定法を用いて、測位点に対応するなす角を求めてもよい。また、進行方向判定部140dは、所定の間隔毎に、測位点の進行方向を判定してもよい。
なお、測位点変換部140aは、GPS情報130aを基にして、測位点列情報130cを生成していたが、進行方向判定装置100は測位点列情報130cを記憶部130に予め記憶させておいてもよい。
進行方向判定部140dは、第1判定テーブル130gを用いて、暫定的な進行方向を判定し、第2判定テーブル130hを用いて、最終的な進行方向を判定していたがこれに限定されるものではない。進行方向判定部140dは、地理的特徴などにより、第1判定テーブル130gと第2判定テーブル130hとを使い分けてもよい。
第1判定テーブル130gでは、各角度算出法による進行方向が異なる場合には、「直進」または「後退」よりも「右左折」を優先するものである。このため、進行方向判定部140dは、道路形状情報130cを基にして、右左折の多い場所で進行方向を判定する場合には、第1判定テーブル130gを用いて、最終的な進行方向を判定してもよい。
第2判定テーブル130hでは、各角度算出法による進行方向が異なる場合には、「右左折」よりも「直進」または「後退」を優先させるものである。このため、進行方向判定部140dは、道路形状情報130cを基にして、右左折の少ない場所で進行方向を判定する場合には、第1判定テーブル130gを用いて、最終的な進行方向を判定してもよい。
また、進行方向判定装置100は、予め測定された測位点列情報130cを用いて、移動体の進行方向を判定する例を用いて説明したが、リアルタイムに移動体の測位点を取得して、移動体の進行方向をリアルタイムに判定してもよい。この場合には、若干のタイムラグを無視して、進行方向判定装置100は、最新の測位点よりも前方の測位点を基準測位点とし、この基準測位点の前後の測位点を検出して、移動体の進行方向を判定する。
次に、図1に示した進行方向判定装置100と同様の機能を実現する進行方向判定プログラムを実行するコンピュータの一例について説明する。図18は、進行方向判定プログラムを実行するコンピュータの一例を示す図である。
図18に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207を有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、例えば、測位点選択プログラム207a、角度算出プログラム207b、進行方向判定プログラム207cを有する。CPU201は、各プログラム207a〜207cを読み出して、RAM206に展開する。
測位点選択プログラム207aは、測位点選択プロセス206aとして機能する。角度算出プログラム207bは、角度算出プロセス206bとして機能する。進行方向判定プログラム207cは、進行方向判定プロセス206cとして機能する。
例えば、測位点選択プロセス206aは、測位点選択部140bに対応する。角度算出プロセス206bは、角度算出部140cに対応する。進行方向判定プロセス206cは、進行方向判定部140dに対応する。
なお、各プログラム207a〜207cについては、必ずしも最初からハードディスク装置207に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラム207a〜207cを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)移動体の測位点が時系列に並んだ測位点列を記憶する記憶部と、
前記測位点列から、第1測位点と、前記第1測位点から閾値以上離れ該第1測位点より前の時間に測位された第2測位点と、前記第2測位点から閾値以上離れ前記第1測位点より後の時間に測位された第3測位点と、前記第3測位点から閾値以上離れ前記第1測位点より後の時間に測位された第4測位点とを選択する測位点選択部と、
前記第1測位点と前記第2測位点とを通る第1直線と、前記第3測位点と前記第4測位点とを通る第2直線との角度を算出する角度算出部と、
前記角度算出部が算出した角度に基づいて、前記移動体の進行方向を判定する進行方向判定部と
を有することを特徴とする進行方向判定装置。
(付記2)前記測位点選択部は、第5測位点と、該第5測位点から閾値以上離れ前記第5測位点より前の時間に測位された第6測位点と、該第5測位点から閾値以上離れ前記第5測位点より後の時間に測位された第7測位点とを前記測位点列から更に選択し、
前記角度算出部は、前記第5測位点と前記第6測位点とを通る第3直線と、前記第5測位点と前記第7測位点とを通る第4直線との角度を更に算出し、
前記進行方向判定部は、前記第1直線および前記第2直線の角度、および、前記第3直線および前記第4直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記1に記載の進行方向判定装置。
(付記3)前記測位点選択部は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記1または2に記載の進行方向判定装置。
(付記4)前記測位点選択部は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記1または2に記載の進行方向判定装置。
(付記5)前記測位点選択部は、前記進行方向判定部の前回の判定結果に基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記4に記載の進行方向判定装置。
(付記6)コンピュータが実行する進行方向判定方法であって、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第1測位点と、前記第1測位点から閾値以上離れ該第1測位点より前の時間に測位された第2測位点と、前記第2測位点から閾値以上離れ前記第1測位点より後の時間に測位された第3測位点と、前記第3測位点から閾値以上離れ前記第1測位点より後の時間に測位された第4測位点とを選択し、
前記第1測位点と前記第2測位点とを通る第1直線と、前記第3測位点と前記第4測位点とを通る第2直線との角度を算出し、
算出した角度に基づいて、前記移動体の進行方向を判定する
各処理をコンピュータが実行することを特徴とする進行方向判定方法。
(付記7)前記測位点を選択する処理は、前記移動体の測位点列から、第5測位点と、該第5測位点から閾値以上離れ前記第5測位点より前の時間に測位された第6測位点と、該第5測位点から閾値以上離れ前記第5測位点より後の時間に測位された第7測位点とを前記測位点列から更に選択し、
前記角度を算出する処理は、前記第5測位点と前記第6測位点とを通る第3直線と、前記第5測位点と前記第7測位点とを通る第4直線との角度を更に算出し、
前記進行方向を判定する処理は、前記第1直線および前記第2直線の角度、および、前記第3直線および前記第4直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記6に記載の進行方向判定方法。
(付記8)前記測位点を選択する処理は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記6または7に記載の進行方向判定方法。
(付記9)前記測位点を選択する処理は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記6または7に記載の進行方向判定方法。
(付記10)前記測位点を選択する処理は、前記移動体の前回の進行方向の判定結果を基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記9に記載の進行方向判定方法。
(付記11)コンピュータに、
記憶装置に記憶された移動体の測位点が時系列に並んだ測位点列を取得し、
前記測位点列から、第1測位点と、前記第1測位点から閾値以上離れ該第1測位点より前の時間に測位された第2測位点と、前記第2測位点から閾値以上離れ前記第1測位点より後の時間に測位された第3測位点と、前記第3測位点から閾値以上離れ前記第1測位点より後の時間に測位された第4測位点とを選択し、
前記第1測位点と前記第2測位点とを通る第1直線と、前記第3測位点と前記第4測位点とを通る第2直線との角度を算出し、
算出した角度に基づいて、前記移動体の進行方向を判定する
各処理を実行させることを特徴とする進行方向判定プログラム。
(付記12)前記測位点を選択する処理は、前記移動体の測位点列から、第5測位点と、該第5測位点から閾値以上離れ前記第5測位点より前の時間に測位された第6測位点と、該第5測位点から閾値以上離れ前記第5測位点より後の時間に測位された第7測位点とを前記測位点列から更に選択し、
前記角度を算出する処理は、前記第5測位点と前記第6測位点とを通る第3直線と、前記第5測位点と前記第7測位点とを通る第4直線との角度を更に算出し、
前記進行方向を判定する処理は、前記第1直線および前記第2直線の角度、および、前記第3直線および前記第4直線の角度を基にして、前記移動体の進行方向を判定することを特徴とする付記11に記載の進行方向判定プログラム。
(付記13)前記測位点を選択する処理は、前記移動体の速度と、前記測位点列の隣接する測位点の間隔とを基にして、前記閾値を算出することを特徴とする付記11または12に記載の進行方向判定プログラム。
(付記14)前記測位点を選択する処理は、前記移動体の走行する道路の道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記11または12に記載の進行方向判定プログラム。
(付記15)前記測位点を選択する処理は、前記移動体の前回の進行方向の判定結果を基づいて、前記道路幅または車線幅を調整し、調整した道路幅または車線幅を基にして、前記閾値を算出することを特徴とする付記14に記載の進行方向判定プログラム。
(付記16)移動体の測位点列を記憶する記憶部と、
前記測位点列から、第1測位点と、前記第1測位点から閾値以上離れ該第1測位点より前の時間に測位された第2測位点と、前記第2測位点から閾値以上離れ前記第1測位点より後の時間に測位された第3測位点と、前記第3測位点から閾値以上離れ前記第1測位点より後の時間に測位された第4測位点との測位点の組、または、
第5測位点と、該第5測位点から閾値以上離れ前記第5測位点より前の時間に測位された第6測位点と、該第5測位点から閾値以上離れ前記第5測位点より後の時間に測位された第7測位点との組を選択する測位点選択部と、
前記測位点選択部が選択した複数の測位点を基にして、前記移動体の進行方向を判定する進行方向判定部と
を有することを特徴とする進行方向判定装置。