Notice: Undefined variable: fterm_desc_sub in /mnt/www/biblio_conv.php on line 353
移動軌跡補間装置、移動軌跡補間方法、及びプログラム
説明

移動軌跡補間装置、移動軌跡補間方法、及びプログラム

【課題】移動軌跡の補間点の精度を向上させること。
【解決手段】移動軌跡補間装置は、第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部と、前記第二の記憶部が記憶する時刻と速度との関係に基づいて、前記第一の時刻と前記第二の時刻との間の第三の時刻に関して、前記第一の時刻からの第一の移動距離と、前記第二の時刻までの第二の移動距離とを算出する算出部と、前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを補間点として判定する判定部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動軌跡補間装置、移動軌跡補間方法、及びプログラムに関する。
【背景技術】
【0002】
例えば、GPS(Global Positioning System)機能を有する車載器が搭載された車両の走行軌跡は、GPSによって計測された緯度及び経度等の位置情報の集合に基づいて、把握することができる。
【0003】
但し、GPSによる位置情報の観測点の間隔は、把握したい走行軌跡の精度に対して、必ずしも十分でない場合がある。そこで、従来、例えば、スプライン補間法によって、走行軌跡に関する補間点が求められていた。スプライン補間法とは、点の集合が与えられたときに、各点を通る多項式を求め、当該多項式によって、補間点を求める方法である。
【0004】
図1は、スプライン補間法による求められる補間点の例を示す図である。図1において、白丸は、観測点を示す。黒丸は、補間点を示す。スプライン補間法では、観測点の集合に基づいて求められた多項式が求められ、当該多項式が示すスプライン曲線上において、補間点が求められる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−73080号公報
【特許文献2】特開平6−28418号公報
【特許文献3】特開平6−162199号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、車両の移動は、位置のみならず、時間及び速度という概念をも含むところ、スプライン補間法では、時間及び速度に関しては捨象されてしまう。時間及び速度が考慮されていない点に関して、スプライン補間法によって得られた観測点の精度は、必ずしも十分ではないと考えられる。
【0007】
そこで、1側面では、移動軌跡の補間点の精度を向上させることのできる移動軌跡補間装置、移動軌跡補間方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【0008】
一つの案では、移動軌跡補間装置は、第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部と、前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出する算出部と、前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する判定部とを有する。
【発明の効果】
【0009】
一態様によれば、移動軌跡の補間点の精度を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】スプライン補間法による求められる補間点の例を示す図である。
【図2】本発明の実施の形態における移動軌跡補間装置のハードウェア構成例を示す図である。
【図3】本発明の実施の形態における移動軌跡補間装置の機能構成例を示す図である。
【図4】補間点の算出処理の処理手順の一例を説明するためのフローチャートである。
【図5】入力情報記憶部の構成例を示す図である。
【図6】時刻・速度記憶部の構成例を示す図である。
【図7】補間点計算関数の生成例を示す図である。
【図8】補間点計算関数に基づく始点時刻から終点時刻までの移動距離の算出例を説明するための図である。
【図9】始点時刻から終点時刻までの総移動距離が直線距離より短い状態の一例を示す図である。
【図10】最初の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【図11】前半移動距離及び後半移動距離のいずれか一方が他方と直線距離との合計より長い状態の例を示す図である。
【図12】最初の補間時点に関して始点を中心とする円と終点を中心とする円との交点の例を示す図である。
【図13】二つの交点のうちの一方を補間点とする判定方法の例を示す図である。
【図14】最初の補間時点における補間点の例を示す図である。
【図15】2番目の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【図16】2番目の補間時点における補間点の例を示す図である。
【図17】3番目の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【図18】3番目の補間時点における補間点の例を示す図である。
【図19】二つのベクトルのなす角度を説明するための図である。
【発明を実施するための形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。図2は、本発明の実施の形態における移動軌跡補間装置のハードウェア構成例を示す図である。図2の移動軌跡補間装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0012】
移動軌跡補間装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0013】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って移動軌跡補間装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0014】
なお、記録媒体101の一例としては、CD−ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【0015】
図3は、本発明の実施の形態における移動軌跡補間装置の機能構成例を示す図である。図3において、移動軌跡補間装置10は、補間処理制御部11、入力情報取得部12、補間点計算関数生成部13、補間点候補算出部14、及び補間点判定部15等を有する。これら各部は、移動軌跡補間装置10にインストールされたプログラムが、CPU104に実行させる処理により実現される。移動軌跡補間装置10は、また、入力情報記憶部21、時刻・速度記憶部22、及び補間点記憶部23等を有する。これら各記憶部は、補助記憶装置102、メモリ装置103、又は移動軌跡補間装置10とネットワークを介して接続される記憶装置等を用いて実現可能である。
【0016】
補間処理制御部11は、補間点を求めるための処理全体を制御する。本実施の形態では、車両の移動軌跡に関して補間点(補間する地点)を求める例について説明する。
【0017】
入力情報取得部12は、入力情報記憶部21より入力情報を取得する。入力情報は、補間点を求めたい区間の始点に関する位置情報や終点に関する位置情報等を含む。
【0018】
補間点計算関数生成部13は、時刻・速度記憶部22を参照して、補間点計算関数を生成する。補間点計算関数は、車両の移動に関して、時刻と速度との関係を示す関数、すなわち、時間の経過に応じた速度の変化を示す関数である。時刻・速度記憶部22は、時刻に対応付けて車両の速度の計測値を記憶する。
【0019】
補間点候補算出部14は、補間点計算関数を用いて、補間点の候補を算出する。補間点判定部15は、補間点の候補の中から、補間点を判定又は特定する。補間点記憶部23は、補間点の属性情報を記憶する。
【0020】
以下、移動軌跡補間装置10が実行する処理手順について説明する。図4は、補間点の算出処理の処理手順の一例を説明するためのフローチャートである。
【0021】
ステップS101において、入力情報取得部12は、入力情報記憶部21より入力情報を取得する。
【0022】
図5は、入力情報記憶部の構成例を示す図である。図5において、入力情報記憶部21の一つのレコードは、車両ID、始点情報、及び終点情報等を含む。
【0023】
車両IDは、各車両の識別子である。始点情報は、補間点を求める区間の開始地点に関する情報である。終点情報は、補間点を求める区間の終了地点に関する情報である。補間点を求める区間を、以下、「補間区間」という。また、補間区間の開始地点を「始点」といい、終了地点を「終点」という。更に、車両が始点に位置した時刻を「始点時刻」といい、終点に位置した時刻を「終点時刻」という。
【0024】
図5において、始点情報及び終点情報は、(時刻、移動方向、緯度、経度)の形式で示されている。時刻は、車両IDに係る車両が、始点時刻又は終点時刻である。移動方向は、始点又は終点における当該車両の移動方向である。移動方向は、例えば、真北を0度として、時計回りに0〜360度の値が付与される。但し、他の形式によって移動方向が表現されてもよい。緯度及び経度は、始点又は終点の緯度又は経度である。緯度及び経度は、位置情報の一例である。
【0025】
入力情報記憶部21が記憶する情報は、例えば、車両に搭載された車載器のGPS機能によって記録された情報である。但し、移動方向は、車載器に搭載された電子コンパスによって計測されてもよいし、始点又は終点の直前又は直後の計測地点と始点又は終点とを結んだベクトルの向きによって特定されてもよい。
【0026】
なお、入力情報記憶部21には、同一車両に関して、複数の入力情報が記憶されていてもよい。すなわち、同一の車両の車載器によって計測された時刻、移動方向、緯度、及び経度の履歴が記憶されていてもよい。
【0027】
ステップS101では、入力情報記憶部21より一つのレコードが取得される。取得対象とされるレコードは、例えば、ユーザによって指定されてもよい。例えば、車両ID及び時刻の指定を受けることにより、取得対象とされるレコードが特定されてもよい。以下において、単に、入力情報というとき、ステップS101において取得されたレコードに記録されている始点情報及び終点情報をいう。なお、入力情報は、予め入力情報記憶部21に記憶されているのではなく、ステップS101において、ユーザによって入力されてもよい。この場合、入力された入力情報を記憶するメモリ装置103が、入力情報記憶部21に相当する。
【0028】
続いて、補間処理制御部11は、補間点記憶部23をクリアする(S102)。すなわち、図4の処理の前回の実行時に補間点記憶部23に記憶された情報が削除される。続いて、補間処理制御部11は、変数iの値を1に初期化する(S103)。変数iは、後述されるループ処理のカウンタとして用いられる。
【0029】
続いて、補間処理制御部11は、始点の緯度及び経度と、終点の緯度及び経度とを結ぶ線分の長さを変数lenに代入する(S104)。すなわち、始点と終点との間の直線距離が変数lenに代入される。以下、当該直線距離を、「直線距離len」という。
【0030】
続いて、補間点計算関数生成部13は、時刻・速度記憶部22を参照して、補間点計算関数を生成する(S105)。補間点計算関数の生成は、時刻・速度記憶部22が記憶する各時刻の間の速度を推定することの一例に相当する。
【0031】
図6は、時刻・速度記憶部の構成例を示す図である。図6に示されるように、時刻・速度記憶部22は、時刻ごとに、当該時刻における車両の速度の計測値を記憶する。時刻・速度記憶部22が記憶する情報は、例えば、車両に設置されているドライブレコーダ等から取得されてもよい。時刻・速度記憶部22は、車両IDごとに存在する。したがって、ステップS105では、入力情報に入力情報に含まれている車両IDに対応する時刻・速度記憶部22が参照される。なお、時刻・速度記憶部22には、補間区間よりも短い時間間隔で、レコードが記憶されていることが、補間点の精度の向上の観点において望ましい。
【0032】
補間点計算関数は、時刻・速度記憶部22が記憶する時刻と速度との関係を示す関数である。補間点計算関数は、例えば、図7に示されるように生成される。
【0033】
図7は、補間点計算関数の生成例を示す図である。図7では、x軸を時刻とし、y軸を速度とする座標系に対して、時刻・速度記憶部22の各レコードをマッピングした点を線分で接続することにより、補間点計算関数が生成されている。補間点計算関数の生成には、時刻・速度記憶部22が記憶する全てのレコードが利用される必要はない。補間区間を含む期間に係るレコードが利用されればよい。
【0034】
例えば、時刻・速度記憶部22のi番目のレコードをsとすると、sとs+1それぞれ直線で結んだ線分を示す多項式の集合が、補間点計算関数となる。ここで、1≦i≦m−1である。sは、始点時刻に対応するレコード、sは、終点時刻に対応するレコードである。mは、時刻・速度記憶部22において、補間区間を含む最小のレコード数である。図7では、m=5の場合が示されている。
【0035】
なお、始点時刻と一致する時刻に係るレコードが時刻・速度記憶部22に記憶されていない場合、始点時刻より前の時刻であって、時刻・速度記憶部22において最も遅い時刻が開始時刻とされればよい。また、終点時刻と一致する時刻に係るレコードが時刻・速度記憶部22に記憶されていない場合、終点時刻より後の時刻であって、時刻・速度記憶部22において最も早い時刻が終了時刻とされればよい。
【0036】
続いて、補間点候補算出部14は、始点時刻tsrcと終点時刻tdstとの区間に関して補間点計算関数を積分することにより、始点時刻tsrcから終点時刻tdstまでの車両の総移動距離Dを算出する(S106)。すなわち、補間点計算関数をf(t)とした場合、総移動距離Dは、以下の演算によって算出される。
【0037】
【数1】

【0038】
なお、ステップS106における演算は、図8に示さされるように、補間点計算関数の折れ線とx軸とで挟まれた領域のうち、始点時刻tsrcと終点時刻tdstとの区間の面積を求めることに相当する。
【0039】
図8は、補間点計算関数に基づく始点時刻から終点時刻までの移動距離の算出例を説明するための図である。なお、図8では、図7に比べて、便宜上、補間点計算関数が単純化されている。
【0040】
続いて、補間点候補算出部14は、総移動距離Dが、直線距離len以下であるか否かを判定する(S107)。この判定は、図9に示されるような状態であるか否かの判定に相当する。
【0041】
図9は、始点時刻から終点時刻までの総移動距離が直線距離より短い状態の一例を示す図である。図9では、始点Psrcと終点Pdstとの間の直線距離lenよりも、始点時刻tsrcと終点時刻tdstとの間の総移動距離Dの方が短い状態が示されている。
【0042】
このような場合(S107でYes)、後述される方法によって補間点を求めることはできないため、図4の処理は終了する。また、直線距離lenと総移動距離Dとが同じ場合も(S107でYes)、後述される方法によって補間点を求める意味が無いため、図4の処理は終了する。
【0043】
図9に示されるような状態の発生は、理論上、考えにくいが、ステップS107は、念のためのチェック処理である。なお、総移動距離Dが直線距離len以下となった場合、図7において例示した方法とは別の方法によって、補間点計算関数を求め、改めて、ステップS106以降を実行してもよい。例えば、図7における各sを通るスプライン曲線が補間点計算関数として求められてもよい。
【0044】
一方、総移動距離Dが直線距離lenより大きい場合(S107でNo)、補間点候補算出部14は、補間区間において求めたい補間点の数に応じて、補間区間を等分した場合の、一つの分割間隔trangeを算出する。すなわち、trangeは、以下の式によって算出される。
【0045】
range=(tdst−tsrc)/(k+1)
ここで、kの値は、補間区間において求めたい補間点の数である。kの値は、例えば、入力情報と共に指定されていてもよいし、固定値であってもよい。本実施の形態では、kの値は「3」であるとする。
【0046】
続いて、補間点候補算出部14は、変数iの値が、kより大きいか否かを判定する(S109)。すなわち、k個分の補間点を求める処理が終了したか否かが判定される。変数iの値がkより大きい場合(S109でYes)、図4の処理は終了する。
【0047】
一方、変数iの値がk以下である場合(S109でNo)、補間点を追加する時刻tを、以下の式によって算出する(S110)。すなわち、
=tsrc+trange×i
すなわち、補間点を追加する時刻tは、始点時刻tsrcに対して、i個分の分割間隔trangeを加算した値となる。以下、補間点を追加する時刻tを、「補間時点t」という。ここで、変数iの値は、1以上k以下である。
【0048】
続いて、補間点候補算出部14は、始点時刻tsrcと補間時点tとの区間に関して補間点計算関数を積分することにより、始点時刻tsrcから補間時点tまでの車両の移動距離を算出する(S111)。当該移動距離を、以下、「前半移動距離D」という。前半移動距離Dは、以下の演算によって算出される。
【0049】
【数2】

【0050】
続いて、補間点候補算出部14は、補間時点tと終点時刻tdstとの区間に関して補間点計算関数を積分することにより、補間時点tから終点時刻tdstまでの車両の移動距離を算出する(S112)。当該移動距離を、以下「後半移動距離D」という。後半移動距離Dは、以下の演算によって算出される。
【0051】
【数3】

【0052】
変数iの値が1である場合、ステップS110〜S112の処理内容は、例えば、図10に示される通りである。
【0053】
図10は、最初の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【0054】
図10では、補間点計算関数の折れ線とx軸とで挟まれた領域のうち、始点時刻tsrcと補間時点tとの区間の面積が前半移動距離Dとして算出されている。また、補間時点tと終点時刻tdstとの区間の面積が後半移動距離Dとして算出されている。
【0055】
続いて、補間点候補算出部14は、前半移動距離Dと後半移動距離Dとのうち、値の大きい方を、変数Dupperに代入する(S113)。続いて、補間点候補算出部14は、前半移動距離Dと後半移動距離Dとのうち、値の小さい方を、変数Dlowerに代入する(S114)。なお、前半移動距離Dと後半移動距離Dとの値が同じである場合、いずれか一方が変数Dupperに代入され、他方が変数Dlowerに代入されればよい。
【0056】
続いて、補間点候補算出部14は、変数Dlowerの値に直線距離lenを加算した値が、変数Dupperの値より大きいか否かを判定する(S115)。この判定は、図11に示されるような状態であるか否かの判定に相当する。
【0057】
図11は、前半移動距離及び後半移動距離のいずれか一方が他方と直線距離との合計より長い状態の例を示す図である。
【0058】
図11に示されるような状態では、始点Psrcを中心とし、前半移動距離Dを半径とする円Cと、終点Pdstを中心とし、後半移動距離Dを半径とする円Cとの交点は存在しない。後述されるように、本実施の形態において補間点を求めるためには、円Cと円Cとが交点を有する必要がある。したがって、補間点を求めることはできない。そこで、このような場合(S115でYes)、補間点候補算出部14は、変数iに1を加算して(S122)、ステップS109以降を繰り返す。すなわち、現在の補間時点tに関して補間点の追加は行われない。
【0059】
一方、変数Dlowerの値に直線距離lenを加算した値が、変数Dupperの値以下である場合(S115でNo)、補間点候補算出部14は、円Cと円Cとの交点を求める(S116)。円Cは、始点Psrcを中心とし、前半移動距離Dを半径とする円である。円Cは、終点Pdstを中心とし、後半移動距離Dを半径とする円である。
【0060】
図12は、最初の補間時点に関して始点を中心とする円と終点を中心とする円との交点の例を示す図である。図12では、円Cと円Cとに関して、交点Pと交点Pとの二つの交点が求められた例が示されている。これらの交点は、始点Psrcからの前半移動距離Dと、終点Pdstからの後半移動距離Dとの双方を満たす地点又は位置に相当する。したがって、図12に示される二つの交点は、補間時点tにおける補間点の候補であるといえる。すなわち、円Cの円周上は、始点時刻tsrcと補間時点tとの間における、始点Psrcからの車両の移動距離を示す。換言すれば、円Cの円周は、始点時刻tsrcを基準とした場合において、車両が位置していたと推定される地点の集合である。同様に、円Cの円周上は、補間時点tと終点時刻tdstとの間における、終点Pdstまでの車両の移動距離を示す。換言すれば、円Cの円周は、終点時刻tsrcを基準とした場合において、車両が位置していたと推定される地点の集合である。したがって、円Cと円Cとの交点は、補間時点tにおいて、車両が位置していたと推定される場所であるといえる。
【0061】
なお、ベクトルvsrcは、始点における車両の移動方向に伸びるベクトル(例えば、単位ベクトル)を示す。ベクトルVdstは、終点における車両の移動方向に伸びるベクトル(例えば、単位ベクトル)を示す。
【0062】
続いて、補間点判定部15は、円Cと円Cとの交点が二つで有るか否かに応じて処理を分岐させる(S117)。図12に示されるように、交点が二つ有る場合(S117でYes)、補間点判定部15は、二つの交点の中から補間点を判定する処理を実行する(S118)。二つの交点、すなわち、補間点の候補の中から、いずれか一方を補間点として判定する方法について説明する。
【0063】
図13は、二つの交点のうちの一方を補間点とする判定方法の例を示す図である。図13中、図12と同一部分には同一符号を付している。
【0064】
第一の判定方法は、(1)に示されるように、ベクトルvs1とベクトルvsrcとがなす角度と、ベクトルvs2とベクトルvsrcとがなす角度とを比較することにより補間点を判定する方法である。この場合、角度の小さいベクトルvs1に係る交点Pが補間点として判定される。なお、ベクトルvs1は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。ベクトルvs2は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。ベクトルvs1及びベクトルvs2は、単位ベクトルであってもよい。
【0065】
第一の判定方法は、始点Psrcにおける車両の移動方向を、終点Pdstにおける車両の移動方向よりも重要視した判定方法であるといえる。
【0066】
なお、ベクトルvs1とベクトルvs2とは、それぞれ単位ベクトルであってもよい。
【0067】
第二の判定方法は、(2)に示されるように、ベクトルvd1とベクトルvdstとがなす角度と、ベクトルvd2とベクトルvdstとがなす角度とを比較することにより補間点を判定する方法である。この場合、角度の小さいベクトルvd1に係る交点Pが補間点として判定される。なお、ベクトルvd1は、終点Pdstを始点として、交点Pから終点Pdstの方向に伸びるベクトルである。ベクトルvd2は、終点Pdstを始点として、交点Pから終点Pdstの方向に伸びるベクトルである。ベクトルvd1及びベクトルvd2は、単位ベクトルであってもよい。
【0068】
第二の判定方法は、終点Pdstにおける車両の移動方向を、始点Psrcにおける車両の移動方向よりも重要視した判定方法であるといえる。
【0069】
第三の判定方法は、前半移動距離D≧後半移動距離Dを満たす場合は、第一の判定方法を採用し、前半移動距離D<後半移動距離Dを満たす場合は、第二の採用方法を採用する判定方法である。第三の判定方法は、移動距離が近い方の移動方向を重要視した判定方法である。すなわち、第三の判定方法は、始点Psrcにより近い場合は、始点Psrcにおける移動方向に近い方向に移動しており、終点Pdstにより近い場合は、終点Pdstにおける移動方向に近い方向に移動しているだろうという推定に基づく判定方法である。
【0070】
例えば、図12に示される状態において、第一の判定方法が採用される場合、図14に示されるように、交点Pが補間点として判定される。
【0071】
図14は、最初の補間時点における補間点の例を示す図である。図14では、ベクトルvs1とベクトルvsrcとがなす角度の方が、ベクトルvs2とベクトルvsrcとがなす角度より小さいため、ベクトルvs1に係る交点Pが補間点として判定された例が示されている。すなわち、図14では、補間点として選択されなかった方のベクトル及び交点が、破線によって示されている。
【0072】
なお、図12に示される状態においては、第一〜第三の判定方法のいずれが採用された場合であっても、交点Pが補間点として判定される。
【0073】
続いて、補間点判定部15は、補間点の緯度及び経度を、補間点記憶部23に記憶する(S120)。なお、補間点の緯度及び経度と共に、補間時点iの値が補間点記憶部23に記憶されてもよい。
【0074】
一方、円Cと円Cとの交点が一つである場合、すなわち、円Cと円Cとが一つの接点において接している場合(S119でYes)、補間点判定部15は、当該交点を、補間点として、補間点記憶部23に記憶する(S120)。続いて、ステップS121以降が繰り返される。
【0075】
ステップS120に続いて、変数iに1が加算され(ステップS121)、ステップS109以降が繰り返される。
【0076】
なお、円Cと円Cとの交点が無い場合(S119でNo)、補間点は記憶されずに、ステップS121以降が繰り返される。
【0077】
続いて、変数iの値が2の場合において、ステップS110〜S114が実行されると、補間時点tにおける前半移動距離D及び後半移動距離Dは、例えば、図15に示されるように算出される。
【0078】
図15は、2番目の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【0079】
図15では、補間点計算関数の折れ線とx軸とで挟まれた領域のうち、始点時刻tsrcと補間時点tとの区間の面積が前半移動距離Dとして算出されている。また、補間時点tと終点時刻tdstとの区間の面積が後半移動距離Dとして算出されている。
【0080】
図15に示される前半移動距離D及び後半移動距離Dに基づいて、ステップS116〜ステップS120が実行されると、例えば、図16に示されるような補間点が補間点記憶部23に記憶される。
【0081】
図16は、2番目の補間時点における補間点の例を示す図である。図16中、図14と同一部分には同一符号を付している。但し、図16における前半移動距離D及び後半移動距離Dの値は、図14とは異なる。
【0082】
図16において、円Cと円Cとは、交点Pと交点Pとの二つの交点を有する。第一の判定方法が採用される場合、ベクトルvs3とベクトルvsrcとがなす角度の方が、ベクトルvs4とベクトルvsrcとがなす角度より小さいため、ベクトルvs3に係る交点Pが補間点として判定され、補間点記憶部23に記憶される。なお、ベクトルvs3は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。ベクトルvs4は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。
【0083】
続いて、変数iの値が3の場合において、ステップS110〜S114が実行されると、補間時点tにおける前半移動距離D及び後半移動距離Dは、例えば、図17に示されるように算出される。
【0084】
図17は、3番目の補間時点に関する前半移動距離と後半移動距離の算出例を示す図である。
【0085】
図17では、補間点計算関数の折れ線とx軸とで挟まれた領域のうち、始点時刻tsrcと補間時点tとの区間の面積が前半移動距離Dとして算出されている。また、補間時点tと終点時刻tdstとの区間の面積が後半移動距離Dとして算出されている。
【0086】
図17に示される前半移動距離D1及び後半移動距離D2に基づいて、ステップS116〜ステップS120が実行されると、例えば、図18に示されるような補間点が補間点記憶部23に記憶される。
【0087】
図18は、3番目の補間時点における補間点の例を示す図である。図18中、図16と同一部分には同一符号を付している。但し、図18における前半移動距離D及び後半移動距離Dの値は、図16とは異なる。
【0088】
図18において、円Cと円Cとは、交点Pと交点Pとの二つの交点を有する。第一の判定方法が採用される場合、ベクトルvs5とベクトルvsrcとがなす角度の方が、ベクトルvs6とベクトルvsrcとがなす角度より小さいため、ベクトルvs5に係る交点Pが補間点として判定され、補間点記憶部23に記憶される。なお、ベクトルvs5は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。ベクトルvs6は、始点Psrcを始点として、始点Psrcから交点Pの方向に伸びるベクトルである。
【0089】
以上の結果、k=3個分の補間点が求められた。すなわち、補間点P、P、及びPが、始点Psrcと終点Pdstとの間の補間点として求められた。その結果、例えば、図18に示されるように、始点Psrc、補間点P、補間点P、補間点P、及び終点Pdstを順番に線分で結ぶことにより、始点Psrcから終点Pdstまでの移動軌跡の推定値を復元することができる。
【0090】
なお、上記において、二つのベクトルがなす角度は、例えば、次のように求めることができる。図19は、二つのベクトルのなす角度を説明するための図である。
【0091】
ベクトルa=(a,a)とし、ベクトルb=(b,b)とする。但し、ベクトルa≠0、ベクトルb≠0であるとする。
【0092】
この場合、ベクトルaとベクトルbとがなす角度をθ(0≦θ≦180)とすると、次の式が成り立つ。
【0093】
【数4】

【0094】
なお、||で囲まれた値は、ベクトルの大きさを示す。例えば、ベクトルaの大きさは、以下の式に基づいて展開される。
【0095】
【数5】

【0096】
上述したように、本実施の形態によれば、移動体の位置情報のみならず、時刻に応じた速度や、始点及び終点における移動方向をも考慮して補間点を求めることができる。したがって、位置情報のみに基づいて補間点を求める場合に比べて、より高い精度で補間点が求められることが期待できる。
【0097】
なお、本実施の形態では、補間時点tが、補間区間を等分した値である例を説明したが、各補間時点tの間隔は、必ずしも同じでなくてもよい。また、補間点の数が与えられるのではなく、補間時点tの間隔が入力情報として与えられてもよい。例えば、1分間隔で補間点を追加したいのであれば、1分間隔で補間時点tが設定されればよい。
【0098】
また、本実施の形態の適用範囲は、車両の移動軌跡に限定されない。航空機、ロボット、人等、他の移動体の移動軌跡に対して適用されてもよい。人の場合は、例えば、人が形態している移動体端末によって人の時刻に応じた位置、移動速度、及び移動方向等が検知され、記録されてもよい。
【0099】
なお、本実施の形態において、入力情報記憶部21は、第一の記憶部の一例である。時刻・速度記憶部22は、第二の記憶部の一例である。補間点候補算出部14は、算出部の一例である。補間点判定部15は、判定部の一例である。
【0100】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0101】
以上の説明に関し、更に以下の項を開示する。
(付記1)
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部と、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出する算出部と、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する判定部とを有する移動軌跡補間装置。
(付記2)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定部は、前記交点が二つ有る場合に、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する付記1記載の移動軌跡補間装置。
(付記3)
前記第一の記憶部は、前記第二の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定部は、前記交点が二つ有る場合に、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する付記1記載の移動軌跡補間装置。
(付記4)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の第一の移動方向を示す情報と、前記第二の位置情報が示す位置における前記移動体の第二の移動方向を示す情報とを記憶し、
前記判定部は、前記交点が二つ有る場合に、前記第一の移動距離が前記第二の移動距離より小さいときは、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定し、前記第二の移動距離が前記第一の移動距離より小さいときは、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する付記1記載の移動軌跡補間装置。
(付記5)
コンピュータが、
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部とを用いて、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出し、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する処理を実行する移動軌跡補間方法。
(付記6)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定する処理は、前記交点が二つ有る場合に、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する付記5記載の移動軌跡補間方法。
(付記7)
前記第一の記憶部は、前記第二の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定する処理は、前記交点が二つ有る場合に、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する付記5記載の移動軌跡補間方法。
(付記8)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の第一の移動方向を示す情報と、前記第二の位置情報が示す位置における前記移動体の第二の移動方向を示す情報とを記憶し、
前記判定する処理は、前記交点が二つ有る場合に、前記第一の移動距離が前記第二の移動距離より小さいときは、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定し、前記第二の移動距離が前記第一の移動距離より小さいときは、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する請求項5記載の移動軌跡補間方法。
(付記9)
コンピュータに、
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部とを用いて、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出し、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する処理を実行させるプログラム。
(付記10)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定する処理は、前記交点が二つ有る場合に、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する付記9記載のプログラム。
(付記11)
前記第一の記憶部は、前記第二の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定する処理は、前記交点が二つ有る場合に、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する付記9記載のプログラム。
(付記12)
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の第一の移動方向を示す情報と、前記第二の位置情報が示す位置における前記移動体の第二の移動方向を示す情報とを記憶し、
前記判定する処理は、前記交点が二つ有る場合に、前記第一の移動距離が前記第二の移動距離より小さいときは、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定し、前記第二の移動距離が前記第一の移動距離より小さいときは、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を補間する地点として判定する請求項9記載のプログラム。
【符号の説明】
【0102】
10 移動軌跡補間装置
11 補間処理制御部
12 入力情報取得部
13 補間点計算関数生成部
14 補間点候補算出部
15 補間点判定部
21 入力情報記憶部
22 時刻・速度記憶部
23 補間点記憶部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

【特許請求の範囲】
【請求項1】
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部と、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出する算出部と、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する判定部とを有する移動軌跡補間装置。
【請求項2】
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定部は、前記交点が二つ有る場合に、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する請求項1記載の移動軌跡補間装置。
【請求項3】
前記第一の記憶部は、前記第二の位置情報が示す位置における前記移動体の移動方向を示す情報を記憶し、
前記判定部は、前記交点が二つ有る場合に、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する請求項1記載の移動軌跡補間装置。
【請求項4】
前記第一の記憶部は、前記第一の位置情報が示す位置における前記移動体の第一の移動方向を示す情報と、前記第二の位置情報が示す位置における前記移動体の第二の移動方向を示す情報とを記憶し、
前記判定部は、前記交点が二つ有る場合に、前記第一の移動距離が前記第二の移動距離より小さいときは、前記第一の位置情報が示す位置から一方の前記交点への方向と、前記第一の位置情報が示す位置から他方の前記交点への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定し、前記第二の移動距離が前記第一の移動距離より小さいときは、一方の前記交点から前記第二の位置情報が示す位置への方向と、他方の前記交点から前記第二の位置情報が示す位置への方向とのうち、前記移動方向に対する角度が小さい方向に係る前記交点を前記補間する地点として判定する請求項1記載の移動軌跡補間装置。
【請求項5】
コンピュータが、
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部とを用いて、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出し、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する処理を実行する移動軌跡補間方法。
【請求項6】
コンピュータに、
第一の時刻と前記第一の時刻における移動体の位置を示す第一の位置情報と、第二の時刻と前記第二の時刻における前記移動体の位置を示す第二の位置情報とを記憶する第一の記憶部と、
時刻と、該時刻における前記移動体の速度とを記憶する第二の記憶部とを用いて、
前記第二の記憶部が記憶する時刻と速度との関係に基づいて前記第二の記憶部が記憶をする時刻と時刻との間における移動体の速度を推定し、前記第一の時刻における移動体の位置と前記第二の時刻における移動体の位置との間を補間する地点の数を特定する情報から、前記補間する地点を判断する第三の時刻を該地点ごとに特定し、前記第一の時刻から何れかの前記第三の時刻までの第一の移動距離と、第一の移動距離を求める際に用いた前記第三の時刻から前記第二の時刻までの第二の移動距離とを、前記推定した移動体の速度から算出し、
前記第一の位置情報が示す位置を中心とし、前記第一の移動距離を半径とする円と、前記第二の位置情報が示す位置を中心とし、前記第二の移動距離を半径とする円との交点のうちの一つを前記補間する地点として判定する処理を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−83582(P2013−83582A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−224324(P2011−224324)
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】