以下、本発明の実施形態について図面を用いて説明する。本実施形態は、移動体に搭載した位置検出装置による位置情報から、移動体が保持する地図画像データを用いて位置情報を補正し、補正した現在位置と目的地の位置情報を遠隔誘導サーバに送信し、遠隔誘導サーバは、現在位置から目的地までの経路情報と誘導情報を作成し、移動体は、その経路情報と誘導情報と位置情報に応じて誘導情報を出力するものである。
図1は、移動体向け遠隔誘導システムの構成図である。図示するように、移動体向け遠隔誘導システムは、移動体10、移動体10に向けて経路情報や誘導情報を提供する遠隔誘導サーバ20、移動体が自らの位置を検出するための情報を、移動体の外部から発信する位置情報発信機30、移動体10による無線通信回線の接続先である無線通信基地局40、及び遠隔誘導サーバ20と無線通信基地局40とを接続するネットワーク50を有する。移動体10と遠隔誘導サーバ20は、無線通信基地局40とネットワーク50とを介して通信する。一台の遠隔誘導サーバ20には、ネットワーク50を介して一般に複数の無線通信基地局40が接続される。また無線通信基地局40は、時分割、周波数分割などの多重通信により、複数の移動体10と同時に通信できる。
移動体10は、例えば、カーナビゲーションシステム、PND(Personal Navigation Device)、Ultra-Mobile PC、携帯電話などであっても良いし、これらの無線通信装置を搭載した車両でも良い。遠隔誘導サーバ20は、テレマティクスサービス(“通信技術と情報サービスの合体”。特に日本では、インターネットと車載情報無線技術の融合サービス)提供サーバや一般のASP(Application Service Provider)サーバの一部の機能として含まれても良い。位置情報発信機30は、路側帯に設置された位置情報発信機であっても良いし、GPS(Global Positioning System)用の人工衛星や光ビーコンであっても良い。無線通信基地局40は、携帯電話やPHS、無線LANなどの基地局(アクセスポイント)であっても良い。ネットワーク50は、携帯電話網であっても良いし、インターネット網であっても良い。
ここでは、移動体10として前述のような通信装置を搭載し、遠隔誘導サーバ20と無線通信により接続する車両として説明する。
移動体10は、GPSや光ビーコンなどの位置情報発信機30に対応する装置や車速パルスやジャイロなどの自律航法装置などにより移動体10の位置を検知する位置検出装置120、携帯電話やPHS、無線LANなどの無線通信装置130、液晶ディスプレイやスピーカなどの出力装置140、地図画像データ151などを蓄積するためのハードディスクやフラッシュメモリなどの記憶装置150、及び中央処理装置(CPU)110を搭載している。中央処理装置(CPU)110は、位置検出装置120、無線通信装置130、出力装置140、記憶装置150などと接続し、遠隔誘導サーバ20に経路探索を要求したり、遠隔誘導サーバ20から受信した情報を処理したりする。
中央処理装置110は、出発地と目的地の位置情報を遠隔誘導サーバ20に送信し、遠隔誘導サーバ20から経路探索結果情報151を取得し、記憶装置150に蓄積する経路探索要求処理部111と、位置検出装置120から取得した移動体10の位置情報から、その位置に対応する地図画像データ152を読み込み、地図画像データ152上の道路色一覧153を検索し、位置情報を道路上に乗るように補正し、補正した位置情報と遠隔誘導サーバ20から取得した誘導情報154に応じて誘導情報154を、出力装置140を使って出力する現在位置処理部112を有する。
遠隔誘導サーバ20は、ネットワーク50に接続するための通信装置230、数値地図251や誘導情報252などを蓄積するためのハードディスクなどの記憶装置250、通信装置230や記憶装置250と接続し、経路探索などを実行する中央処理装置(CPU)210を有する。
中央処理装置210は、移動体10が送信する出発地と目的地の位置情報を、通信装置230を用いて受信し、記憶装置250に蓄積する数値地図251を用いて経路探索する経路探索処理部211と、経路探索結果から誘導情報252を作成し、記憶装置250に蓄積する経路誘導処理部212とを有する。本実施形態では、分かり易くするために、1台の移動体10を対象に説明するが、誘導情報252は、移動体10毎に処理できるように、記憶装置250に格納される。
図2は、遠隔誘導サーバ20が生成し、移動体10に送信する経路探索結果情報151の一例を示す図である。経路探索結果情報151の項目は、経路を識別する経路ID1510、出発地から目的地までの経路を表す経路情報1511、経路上で誘導が必要な地点を表す交差点情報1512、経路を分割したときの部分の個数を表すグループ数1513、経路を分割したときの部分のシーケンシャルな番号を表すグループID1514、当該経路が出発地から目的地までの経路であるかまたは経路からの離脱した場合に備えた予備の経路であるかを判別する予備フラグ1515である。予備フラグ1513は、本来の経路および予備の経路の2種類の経路を判別するため、本来の経路の場合は0、予備の経路の場合は1とする。経路を分割した場合、経路ID1510の中の当該IDは複数のグループID1514を持つ。また、経路ID1510の中の一つのIDに対する予備フラグ1513は必ず0のみ、または0および1の値を持つ。経路情報1511の内容は図3に示す。交差点情報1512の内容は図4に示す。
図3は、経路探索結果情報151内の経路情報1511の一例を示す図である。経路情報1511は、複数の点をつないだ一本の線で表す。経路情報1511の項目は、経路の点の数nを示す経路点数15110、経路上の地点を表す経路点(1〜n:nは1以上の整数)15111である。経路上の地点を表す一つの経路点15111は、緯度15112、経度15113、当該地点で誘導案内を出力するとき誘導が必要な地点の番号i(1〜n:nは1以上の整数)を示す交差点番号15114、当該地点で誘導案内を出力するとき当該地点から交差点番号15114が示す地点までの距離を示す誘導距離15115で構成する。つまり、各経路点15111を順列につないだ一本の線が経路となる。交差点番号15114および誘導距離15115は、誘導案内を出力する地点にのみ値が有り、それ以外の地点には値が無い。
図4は、経路探索結果情報151内の交差点情報1512の一例を示す図である。交差点情報1512の項目は、交差点の数nを示す交差点数15120、交差点の位置を表す交差点(1〜n:nは1以上の整数)15121である。交差点の位置を表す一つの交差点15121は、緯度15122、経度15123で構成する。
図5は、遠隔誘導サーバ20が生成し、移動体10に送信する誘導情報154の一例を示す図である。誘導情報154の項目は、経路を識別する経路ID1540、経路ID1540の経路上で誘導が必要な地点の番号i(1〜n:nは1以上の整数)を示す交差点番号1541、交差点の名称1542、当該地点で誘導する方向を示す誘導方向1543、当該地点で誘導案内を出力する当該地点からの距離を示す誘導距離1544、当該地点で誘導案内の内容を示す誘導文1545、当該地点から目的地までの距離を示す目的地距離1546、当該地点から目的地までにかかる時間を示す目的地時間1547である。
図6は、移動体10に搭載する中央処理装置(CPU)110の処理(経路探索要求処理部111)、及び遠隔誘導サーバ20に搭載する中央処理装置(CPU)210の処理(経路探索処理部211、経路誘導処理部212)が経路探索するフローチャートである。経路探索要求処理部111は、移動体10を利用するユーザの要求時に起動され、処理を開始する。または、移動体10が経路から離脱し、移動体10の現在位置処理部112の経路離脱判定により起動され、処理を開始しても良い。
移動体10の経路探索要求処理部111は、移動体10を利用するユーザの要求を受け付け、現在位置及び目的地の緯度、経度を決定する(S6110)。目的地の決定方法は、移動体10の出力装置140に表示されている地図から指定しても良いし、移動体10の記憶装置150に蓄積された施設名称、住所、電話番号、緯度、経度などで構成する施設データベースから検索して指定しても良いし、インターネット経由で目的地を検索して指定しても良い。または、移動体10の経路探索要求処理部111は、移動体10の現在位置処理部112の経路離脱判定により、現在位置及び目的地の緯度、経度を決定しても良い。その場合の目的地は、移動体10を利用するユーザが最後に要求して決定した目的地とする。現在位置及び目的地の緯度、経度が道路上に無い場合は、現在位置処理部112を用いて道路上に乗るように補正しても良い。
移動体10の経路探索要求処理部111は、S6110で決定した現在位置及び目的地の緯度、経度を、無線通信装置130を用いて遠隔誘導サーバ20に送信する(S6120)。経路探索要求処理部111は、ユーザに出力する地図の解像度に応じて、経路情報の解像度も合わせて遠隔誘導サーバ20に送信しても良い。
遠隔誘導サーバ20の経路探索処理部211は、移動体10が送信した現在位置及び目的地の緯度、経度を受信する(S6210)。
遠隔誘導サーバ20の経路探索処理部211は、遠隔誘導サーバ20の記憶装置250に蓄積された数値地図251を用いて経路探索を実行し、図3で示した経路情報1511を生成する(S6220)。移動体10が経路情報の解像度を送信してきた場合、経路探索処理部211は、その解像度に応じて経路情報1511の経路点の数を調整する。経路点の数を調整する方法としては、あらかじめ数値地図251が保有している解像度ごとの地図データを元に経路点の数を調整しても良いし、一旦詳細な経路情報を作成した後、均等に点を間引いても良いし、交差点間ごとに点を間引いても良い。また、ユーザを目的地へ誘導中に、ユーザが経路からの離脱した場合に備えて、経路探索処理部211は、あらかじめ離脱しやすい場所を抽出し、離脱した場所から先に生成した経路までの経路を探索し、再度経路情報1511を生成する。このとき、経路ID1510は、先に生成した経路と同じIDを設定し、予備フラグ1515を1に設定する。離脱しやすい場所の抽出方法は、先に生成した経路から例えば100m以内の全ての交差点を抽出しても良いし、誘導が必要な交差点の手前の交差点を抽出しても良いし、誘導が必要な交差点を曲がらずに直進した先の交差点を抽出しても良い。
遠隔誘導サーバ20の経路誘導処理部212は、S6220で生成した経路情報1511を元に、経路上で誘導が必要な地点を抽出し、図4で示した交差点情報1512及び図5で示した誘導情報を生成し、図5で示した誘導情報は遠隔誘導サーバ20の記憶装置250に誘導情報252として蓄積する(S6230)。先に生成した誘導情報を事前にユーザに知らせるために、経路誘導処理部212は、S6220で生成した経路情報1511の中で誘導が必要な交差点の手前600m、300m、100mに相当する3つの経路点に対して、交差点番号15114に当該交差点の番号を、誘導距離15115に600m、300m、100m をそれぞれ設定しても良い。また、誘導情報252の誘導文1545は音声データであっても良い。
遠隔誘導サーバ20の経路探索処理部211は、S6220で生成した経路情報1511と、S6230で生成した交差点情報1512とから図2で示した経路探索結果情報を生成し、現在位置及び目的地の緯度、経度を送信した移動体10に対し、生成した経路探索結果情報を応答する(S6240)。移動体10に、経路探索結果情報を応答する際、S6230で生成した誘導情報252も付与して応答しても良い。また、経路探索結果情報をグループ単位で分割し、一部のみ応答しても良い。経路探索結果情報をグループ単位で分割する方法は、決められたデータサイズごとであっても良いし、決められた経路の距離ごとであっても良いし、決められた交差点の数ごとであっても良い。
移動体10の経路探索要求処理部111は、遠隔誘導サーバ20から図2で示した経路探索結果情報を受信し、移動体10の記憶装置150に経路探索結果情報151として蓄積する(S6130)。
移動体10の経路探索要求処理部111は、移動体10の出力装置140に表示されている地図上に、経路探索結果情報151を表示し、経路探索要求処理を終了する(S6140)。そのとき、経路情報1511の緯度、経度が道路上に無い場合は、現在位置処理部112を用いて道路上に乗るように補正しても良い。
図7は、移動体10に搭載する中央処理装置(CPU)110の処理(現在位置処理部112)、及び遠隔誘導サーバ20に搭載する中央処理装置(CPU)210の処理(経路誘導処理部212)が経路誘導するフローチャートである。現在位置処理部111は、移動体10に搭載するタイマにより起動され、処理を開始する。
あらかじめ、移動体10を利用するユーザは、図6に示した経路探索のフローチャートを実行する(S7110)。移動体10が、遠隔誘導サーバ20に要求を出す際、例えば経路全体を把握したい場合は経路情報の解像度は粗めで要求を出し、移動しながらユーザを誘導する場合は経路情報の解像度は高めで要求を出す。
移動体10の現在位置処理部112は、たとえば1秒毎に位置検出装置120を用いて緯度と経度を測定する(S7120)。ここでは、緯度、経度を測定する間隔を1秒としたが、たとえば0.5秒でも良いし、2秒でも良い。
移動体10の現在位置処理部112は、S7120で測定した緯度、経度を地図の道路上に乗るように補正する(S7130)。補正処理のフローチャートは後述する。
移動体10の現在位置処理部112は、S7130で補正した現在位置が、S7110で取得し、移動体10の記憶装置150に蓄積した経路探索結果情報151が表す経路から、例えば200m以上離れていないか診断する(S7140)。離れていればS7145へ、離れていなければS7150へ進む。経路から離れている距離を求める方法の一例を以下に述べる。ここで、S7130で補正した現在位置を、地点Aとする。最初に、動体10の記憶装置150に蓄積した経路探索結果情報151内の図3で示した経路点の中から、地点Aに最も近い経路点iを検索する。経路点iの一つ前の経路点i−1と経路点iと地点Aが成す角度と、経路点iの一つ後の経路点i+1と経路点iと地点Aが成す角度とを比較し、小さいほうの経路点iの隣の経路点(i−1またはi+1)を地点Bとする。そして、経路点iと地点Bを結ぶ線分に対して、地点Aから引いた垂線と直行する地点を地点Cとする。地点Aと地点Cとの距離を計算することで、現在位置と経路との距離を求めることができる。または簡単に、地点Aと地点Aに最も近い経路点iとの距離を、現在位置と経路との距離としても良い。ここでは、経路からの離脱距離の基準を200mとしたが、たとえば100mでも良いし、300mでも良い。
S7140で、現在位置が経路から離脱距離の基準距離以上離れていた場合、移動体10の現在位置処理部112は、移動体10の記憶装置150に蓄積した経路探索結果情報151の中から、予備フラグ1515の値が1で且つ現在位置を含む経路を抽出し、現在位置から目的地までの経路の予備フラグ1515の値を0に設定し、それ以外の予備フラグ1515の値を1に設定する。経路探索結果情報151の中に、予備フラグ1515の値が1で且つ現在位置を含む経路が存在しない場合、移動体10の記憶装置150に蓄積した経路探索結果情報151を破棄し、図6に示した経路探索のフローチャートを実行し、新たに取得した経路探索結果情報を、移動体10の記憶装置150に蓄積する(S7145)。このときの出発地は現在位置とし、目的地はS7110で移動体10を利用するユーザが選択した目的地とする。
次に通過する交差点に関する誘導情報154が移動体10の記憶装置150に蓄積されていない場合、移動体10の現在位置処理部112は、S7130で補正した現在位置が、移動体10の記憶装置150に蓄積した経路探索結果情報151内の次に通過する交差点から、例えば5000m以内にいるか診断する(S7150)。基準範囲内にいればS7152へ、基準範囲外であればS7160へ進む。次に通過する交差点までの距離を求める方法の一例を以下に述べる。ここで、S7130で補正した現在位置を、地点Aとする。また、次に通過する交差点を地点Bとする。最初に、移動体10の記憶装置150に蓄積した経路探索結果情報151内の図3で示した経路点の中から、地点Aに最も近い経路点iを検索し、地点Aと経路点i間の距離L0を計算して求める。同様に、経路点iと経路点i+1間の距離L1、経路点i+1と経路点i+2間の距離L2というように、地点Bまでの線分の長さを算出する。これらの線分の長さを足すことで、現在位置と次に通過する交差点までとの距離を求めることができる。または簡単に、地点Aと地点Bとの直線距離を、現在位置と次に通過する交差点までの距離としても良い。ここでは、次に通過する交差点までの距離の基準を1000mとしたが、たとえば1000mでも良いし、10000mでも良い。または、次に通過する交差点までの距離が基準距離以内かを診断するのではなく、交差点を通過したかを診断しても良い。つまり、交差点を通過したらS7152へ、交差点を通過しなければS7160へ進むとしても良い。
S7150で、現在位置が次に通過する交差点までの基準距離以内に入った場合、移動体10の現在位置処理部112は、移動体10の記憶装置150に蓄積した経路探索結果情報151内の経路ID1510と、次に通過する交差点Bの交差点番号を、無線通信装置130を用いて遠隔誘導サーバ20に送信する(S7152)。
遠隔誘導サーバ20の経路誘導処理部212は、移動体10が送信した経路ID1510と交差点番号を受信する(S7210)。
遠隔誘導サーバ20の経路誘導処理部212は、S6230で遠隔誘導サーバ20の記憶装置250に蓄積した誘導情報252から、経路ID1510と交差点番号に一致する誘導情報を抽出し、経路ID1510と交差点番号を送信した移動体10に対し、抽出した誘導情報を応答する(S7220)。
移動体10の現在位置処理部112は、遠隔誘導サーバ20から図5で示した誘導情報を受信し、移動体10の記憶装置150に誘導情報154として蓄積する(S7154)。
次に通過する交差点に関する誘導情報154が、移動体10の出力装置140によって出力されていない場合、移動体10の現在位置処理部112は、S7130で補正した現在位置が、誘導出力距離以内にいるか診断する(S7160)。誘導出力距離内にいればS7165へ、誘導出力距離外であればS7170へ進む。誘導出力距離は、現在位置と次に通過する交差点との距離であり、図3で示す経路情報の誘導距離15115から取得する。または、図5で示す誘導情報の誘導距離1544から取得しても良い。その場合、現在位置から次に通過する交差点までの距離を求める方法は、S7150で記した方法と同じ方法をとる。
S7160で、現在位置が誘導出力距離以内に入った場合、移動体10の現在位置処理部112は、移動体10の出力装置140を用いて、誘導情報154を出力する(S7165)。出力する誘導情報154とは、例えば図5に示す交差点名称1542、誘導方向1543などがある。また、例えばTTS(Text To Speech)プログラムを利用して、図5に示す誘導文1545を音声出力しても良いし、誘導文1545が音声データであれば、それを再生しても良い。また、現在位置から次に通過する交差点までの距離と、図5に示す目的地距離1546とを足した距離を、現在位置から目的地までの距離として表示出力しても良い。また、現在位置から目的地までの距離を、図5に示す目的地距離1546で割った値を、図5に示す目的地時間1547に掛けた時間を、現在位置から目的地までにかかる時間として表示出力しても良い。
移動体10の現在位置処理部112は、S7130で補正した現在位置が、移動体10の記憶装置150に蓄積した経路探索結果情報151内の目的地を示す最後の交差点、または経路探索結果情報151が分割されていた場合の部分経路の最後の地点から、例えば10m以内にいるか診断する(S7170)。目的地から10m以内にいればS7180へ進む。部分経路の最後の地点から10m以内にいれば、現在位置処理部112は、移動体10の記憶装置150に蓄積した経路探索結果情報151内の経路ID1510と、次のグループID1514を、無線通信装置130を用いて遠隔誘導サーバ20に送信すると、遠隔誘導サーバ20から次の誘導情報を受信し、移動体10の記憶装置150に新しい誘導情報154として蓄積する。目的地または部分経路の最後の地点から10m以内で無ければS7120へ進む。目的地となる最後の交差点、または部分経路の最後の地点までの距離を求める方法は、S7150で記した方法と同じである。ここでは、目的地および部分経路の最後の地点までの距離の基準を10mとしたが、たとえば20mでも良いし、5mでも良い。
S7170で、現在位置から目的地までの距離が基準距離以内に入った場合、移動体10の記憶装置150に蓄積した経路探索結果情報151及び誘導情報152を破棄し、経路誘導処理を終了する(S7180)。
図8は、移動体10に搭載する中央処理装置(CPU)110の処理(現在位置処理部112)が任意の地点Aを補正するフローチャートである。
あらかじめ、移動体10の現在位置処理部112は、移動体10の記憶装置150に、複数の地図画像データ152と、地図画像データ152の識別番号、地図画像データ152の左下のXY座標、地図画像データ152の右上のXY座標、地図画像データ152の左下のXY座標に対応する緯度経度、地図画像データ152の右上のXY座標に対応する緯度経度というような地図画像データ152と緯度経度を関連付ける対応表を蓄積する。複数の地図画像データ152は、全て同じ大きさの長方形である。
移動体10の現在位置処理部112は、移動体10の記憶装置150内の地図画像データ152と緯度経度を関連付ける対応表から、地点Aに対応する地図画像データ152を読み込む(S8110)。地点Aに対応する地図画像データ152の他に、地点Aを含む地図画像データ152を囲む8つの地図画像データ152も合わせて読み込んでも良い。
移動体10の現在位置処理部112は、地図画像データ152と緯度経度を関連付ける対応表を用いて、地点Aの緯度経度をXY座標に変換し、地図画像データ152上の地点Aの色情報を抽出し、移動体10の記憶装置150内の道路色一覧153のどれかと一致するか比較する(S8120)。地点Aの色が、道路色一覧153のどれとも一致しない場合、S8130に進む。地点Aの色が、道路色一覧153のどれかに一致した場合、S8190に進む。道路以外の点を排除するために、地点Aの一点だけでなく、地点Aから例えば5ピクセル範囲内に、道路色一覧153の色と一致する点の数が多いかを調べても良い。
S8120で、地点Aの色が道路色一覧153のどれとも一致しない場合、移動体10の現在位置処理部112は、地点Aから例えば100ピクセル以内に移動体10の記憶装置150内の道路色一覧153のどれかの色があるか調べる(S8130)。地点Aから100ピクセル以内に道路色一覧153のどれかの色がある場合、S8140に進む。地点Aから100ピクセル以内に道路色一覧153のどの色もない場合、S8190に進む。道路以外の点を排除するために、一点だけでなく、例えば5ピクセル範囲内の道路色一覧153の色と一致する点の数を調べても良い。
S8120で、地点Aから100ピクセル以内に道路色一覧153のどれかの色がある場合、移動体10の現在位置処理部112は、地点Aから最も近い道路色一覧153のどれかの色の座標を取得する(S8140)。この座標を地点Bとする。道路以外の点を排除するために、地点Aから最も近く、例えば5ピクセル範囲内の道路色一覧153の色と一致する点の数が多い座標を地点Bとしても良い。
移動体10の現在位置処理部112は、地点Bから地点Aとは反対側に直線を延ばし、直線上で道路色一覧153のどの色でもなく、地点Bから最も近い地点を取得し、地点Bからその地点までの長さを算出する(S8150)。前記地点を地点Cとする。地点Bから地点Cまで長さは道路の幅を表す。
移動体10の現在位置処理部112は、地点Bと地点Cとを結ぶ線分の中点を補正後の地点A’とし、任意の地点Aを補正する処理を終了する(S8160)。
S8120で、地点Aの色が、道路色一覧153のどれかに一致した場合、またはS8130で、地点Aから100ピクセル以内に道路色一覧153のどの色もない場合、地点Aを補正後の地点A’とし、任意の地点Aを補正する処理を終了する(S8190)。
以上説明した実施形態によれば、遠隔誘導サーバで経路探索を実行し、誘導は移動体側で実行するため、常に通信する必要は無く、経路探索の精度向上やバリエーションの拡張を容易にする。
また、サーバとの通信は主に経路探索時のみであるため、移動中の通信環境が悪くても影響なく動作可能である。
また、経路探索機能及び経路誘導機能をサーバに設置することで、これらの機能の精度向上やバリエーションの追加やカスタマイズを移動体側の変更なしに実現できる。
さらに、移動体側は道路を識別可能な地図画像データがあれば良く、道路を数値で表す数値地図は必ずしも必要ではない。