以下、本発明の一実施の形態について図に基づいて説明する。
図1は、本発明の実施の形態に係る経路入力装置としてのペン型入力装置10を含むナビゲーションシステム全体の構成を示す図である。この例では、ナビゲーションシステムは、ペン型入力装置10、地図帳30、および、ナビゲーション装置70を主要な構成要素としている。
ここで、ペン型入力装置10は、地図帳30の所定のページにおいて、出発地、目的地、立寄地が指定された場合には、地図帳30に印刷されているそれぞれの地点の光学パターン(詳細は後述する)を読み取って経路の距離を算出し、これらの地点とともに併せて入力された時間情報を参照して入力された走行計画(ドライブプラン)が妥当であるか否かを判定する。
地図帳30は、赤外線を透過させる通常のインクで地図情報が印刷されるとともに、赤外線を吸収するインクにより光学パターンが印刷されている。当該光学パターンをペン型入力装置10が読み取ることにより、地図上における位置情報を得ることができる。
ナビゲーション装置70は、例えば、自動車等に設置されており、ペン型入力装置10によって設定された出発地、立寄地、および、目的地に関する位置情報(緯度経度情報)と、それぞれの地点に関する時間情報を入力し、当該情報に基づいて経路の探索を行うとともに、探索された経路についてナビゲーションを行う。
図2は、ペン型入力装置10の外観を示す図である。この図2に示すように、ペン型入力装置10は、例えば、略円柱形状を有するハウジング11を有している。ハウジング11の底部の一部には、例えば、鉛筆の芯材である黒鉛、ボールペン先、または、万年筆等の筆記部材によって構成されるペン先12が設けられている。なお、ペン先12の一端はハウジング11の内部で、後述する筆圧センサ21に接触されている。ハウジング11の底部のペン先12の近傍には、地図帳30に印刷された光学パターンを読み取るための位置情報読取手段の一部および時間情報入力手段の一部としての赤外線LED(Light Emitting Diode)13と、同じく位置情報読取手段の一部および時間情報入力手段の一部としてのC−MOS(Complementary Metal-Oxide Semiconductor)カメラ14が設けられている。
ハウジング11の側面部の下部(図の下)には、入力された走行計画に関する情報をナビゲーション装置に転送する際に操作されるボタン15が設けられている。また、側面部の上部(図の上)には、入力された走行計画を文字情報または画像情報として表示して確認するためのLCD(Liquid Crystal Display)16が設けられている。LCD16の上部には、例えば、種々の音声によるガイダンス等を出力するためのスピーカ17が設けられている。ハウジング11の天部には、ナビゲーション装置70と通信するためのアンテナ18が設けられている。なお、アンテナ18は、後述する通信部25に接続されている。
なお、ユーザは、ハウジング11のLCD16とボタン15の中間部分に親指が位置する状態で把持し、ペン先12を地図帳30に接触させることで、地図帳30から所望の情報を書き込むことができる。このとき、ペン先12による地図帳30上の軌跡は、後で詳述するように赤外線LED13とC−MOSカメラ14によって読み取られた光学パターン(地図帳30に印刷されているパターン)に基づいて取得され、出発地、立寄地、目的地、および、時間情報を入力することができる。また、ペン型入力装置10は、入力されたこれらの情報に基づいて、走行計画が妥当であるか否かを判定するので、妥当でない場合には計画を変更することができる。さらに、ペン型入力装置10によって妥当性が検討された走行計画は、ナビゲーション装置70に転送することができるので、走行計画に基づいて実際に走行することができる。
図3は、図2に示すペン型入力装置10の電気的な構成例を示すブロック図である。この図に示すように、ペン型入力装置10は、赤外線LED13、C−MOSカメラ14、ボタン15、LCD16、スピーカ17、CPU(Central Processing Unit)20、筆圧センサ21、画像処理部22、メモリ23、タイマ24、通信部25、および、音源部26を主要な構成要素としている。
ここで、赤外線LED13は、CPU20の制御に基づいて、印刷媒体としての地図帳30の所定のページに赤外線を照射する。図4は、地図帳30の所定のページに印刷された光学パターンの詳細を説明する図である。この図に示すように、地図帳30の各ページには、地図情報とともに、中央に拡大して示すように、0.3mm間隔で赤外線を吸収するドットが印刷されている。これらのドットは、図中の右にさらに拡大して示すように、格子の中心から上下左右のいずれかの方向に所定量だけずれて印刷されている。6×6=36ドットが集まって、1つの光学パターンを構成しており、1ドットは4通りの組み合わせを有することから、1.8mm×1.8mmサイズの1つの光学パターンには4の36乗通りの組み合わせが存在する。1つの光学パターンには、地図帳30の所定のページの当該位置を示す位置情報が含まれており、当該位置情報を検出することにより、地図帳30の当該ページにおけるペン先12の位置を検出できる。
なお、複数のページのうち、どのページが指定されたかを知る方法としては、例えば、光学パターンにページに関する情報を格納する方法がある。また、全てのページに対して同一の座標系の位置情報を格納する方法もある。すなわち、全てのページを平面上に並べて大きな用紙とした場合に、この大きな用紙の左上隅が原点となるように座標系を設定することができる。
図5は、地図帳30の所定のページの一部の断面構造を示す図である。この図に示すように、地図帳30のベースとなる紙30a上には、赤外線を吸収するドットインク30bによって、図4に示すドットパターンが印刷されている。また、その上には、赤外線を透過する通常インク30cによって、地図情報が印刷されている。赤外線LED13から射出された赤外線のうち、ドットインク30bに照射された部分は吸収されてC−MOSカメラ14には入射されない。また、通常インク30cに照射された部分は透過して紙30aにより反射され、C−MOSカメラ14に入射される。これにより、光学パターンに応じた赤外線画像がC−MOSカメラ14に入射される。
画像処理部22は、C−MOSカメラ14に入射された赤外線による光学パターンに対応する画像データを入力して画像処理を施すことにより、光学パターンに含まれている情報(位置情報)を抽出し、CPU20に供給する。
筆圧センサ21は、例えば、印加される圧力に応じて抵抗値が変化する感圧センサ等によって構成され、ペン先12が地図帳30に接触されて所定の内容が書き込まれる際の筆圧を検出する。
メモリ23は、例えば、フラッシュメモリ等によって構成されており、CPU20が実行する基本的なプログラムを格納している。また、メモリ23は、CPU20が演算処理を実行する際に、演算途中のプログラムまたはデータを一時的に格納する。さらに、メモリ23は、入力される位置情報を緯度経度情報、時間情報、または、コマンド情報に変換するためのデータベースを記憶している。
タイマ24は、時刻情報を生成し、CPU20に供給する。CPU20は、タイマ24から供給される時刻情報を、画像処理部22から供給される位置情報に対応付けし、読取データとしてメモリ23に格納する。なお、時刻ではなく、ペン型入力装置10の電源が投入されてからの経過時間等を生成するようにしてもよい。
転送手段としての通信部25は、例えば、ブルートゥース(Bluetooth)等の規格に基づいて、ナビゲーション装置70との間で、アンテナ18を介して情報を授受する。なお、無線通信の代わりに、例えば、USB(Universal Serial Bus)等のケーブルを用いて、ナビゲーション装置70と有線接続し、情報を授受するようにしてもよい。
音源部26は、音声メッセージ等を再生する機能を有し、CPU20から供給された音声データを対応する音声信号に変換した後、図示せぬアンプで増幅し、スピーカ17に供給する。
図6は、図3に示すメモリ23に格納されているソフトウエアとしてのプログラム(不図示)が実行された場合に、ハードウエアとしてのCPU20その他とソフトウエアとが協働することにより実現される処理モジュールの一例を示している。なお、メモリ23に格納されるプログラムは、予めインストールした状態で出荷したり、ユーザが購入した後にインストールしたりしてもよい。また、その一部のみを予めインストールした状態で出荷し、後から他の部分をインストールしてもよい。後からインストールする場合には、例えば、CD−ROM(Compact Disk Read Only Memory)等の記憶媒体からインストールしたり、例えば、インターネット等のネットワークからダウンロードしてインストールしたりしてもよい。
図6に示すように、プログラムが実行された場合に実現される機能ブロック群50としては、入力インタフェース51、読取データ生成モジュール52、読取データ記憶モジュール53、データ変換モジュール54、コマンド変換DB(Data Base)55、緯度経度変換DB56、時間変換DB57、データ処理モジュール58、音声DB59、走行計画記憶モジュール60、および、出力インタフェース61を主要な構成要素としている。
ここで、入力インタフェース51は、画像処理部22、タイマ24、筆圧センサ21、および、ボタン15から出力される情報を入力するインタフェースである。
読取データ生成モジュール52は、筆圧センサ21が筆圧を検出した場合(ペン先12が地図帳30に接触された場合)には、画像処理部22から出力される位置情報(光学パターンから生成された情報)に対して、タイマ24から出力された時刻情報を対応付けして読取データを生成し、読取データ記憶モジュール53に格納する。読取データ記憶モジュール53は、位置情報に時刻情報が対応付けされた読取データを記憶する。図7は、読取データ記憶モジュール53に記憶されている読取データの一例を示す図である。この例では、各行が1つのレコードに対応し、各レコードは地図帳30の所定のページの左上端を原点とするx,y座標値による位置情報と、時、分、秒による時刻情報とを有している。
データ変換モジュール54は、読取データ生成モジュール52を介して読取データ記憶モジュール53から読取データを取得し、コマンド変換DB55、緯度経度変換DB56、および、時間変換DB57を参照して、読取データをコマンド情報、緯度経度情報、または、時間情報に変換する。
コマンド変換DB55は、地図帳30に印刷されている所定のコマンド入力領域がペン型入力装置10によって指定された場合に、取得された位置情報を対応するコマンド情報に変換するためのデータベースである。緯度経度変換DB56は、地図帳30に印刷されている光学パターンから生成された位置情報を、緯度経度情報に変換するためのデータベースである。時間変換DB57は、地図帳30に印刷されている光学パターンから生成された位置情報を、時間情報に変換するためのデータベースである。
実行手段としてのデータ処理モジュール58は、データ変換モジュール54から供給される、コマンド情報、緯度経度情報、および、時間情報から走行計画を生成し、自動車の想定される平均速度を考慮して、設定された走行計画が妥当であるか否かを判定し、判定結果を音声データまたは文字情報として出力する。また、ボタン15が操作された場合には、走行計画に関する情報を通信部25を介してナビゲーション装置70に送信する。
音声DB59は、各種の音声ナビゲーションに関する音声データを格納している。走行計画記憶モジュール60は、走行計画を格納するモジュールである。
出力インタフェース61は、データ処理モジュール58から出力される情報のうち、画像または文字情報についてはLCD16に供給して表示させ、音声データについては音源部26に出力してスピーカ17から出力させ、走行計画情報については通信部25に供給してナビゲーション装置70に送信させる。
つぎに、以上の実施の形態の動作について説明する。以下では、まず、本発明の実施の形態の動作の概要を説明した後、詳細な動作について説明する。
本発明の実施の形態では、地図帳30に印刷されている、例えば、図8に示すような情報に基づいて、走行計画を設定する。図8の例では、地図帳30の所定のページ80の上部には経路を設定するための地図情報81が印刷されている。また、その下には、時間情報を入力するための時間情報入力領域82が印刷されている。その下には、コマンド入力領域83〜87が印刷されている。ここで、コマンド入力領域83は出発地を設定する際にペン型入力装置10によってチェックされる。また、コマンド入力領域84は、目的地を設定する際に、コマンド入力領域85は立寄地を設定する際に、コマンド入力領域86は設定された出発地等を取り消す際に、コマンド入力領域87は設定された走行計画で決定する際にそれぞれチェックされる。
ページ80には、図4に示すような光学パターンが全面に印刷されており、ペン型入力装置10はこのような光学パターンを読み取ることで、ページ80のどの位置がペン先12によって指定されたかを知ることができる。
このような地図帳30において、ペン型入力装置10のペン先12によってコマンド入力領域83がチェックされた後に、地図情報81において所定の地点が指定され、時間情報入力領域82の「AM」がチェックされ、手書き文字として「9:00」が入力されたとすると、ペン型入力装置10は、指定された地点を出発地としてAM 9:00に出発することを認識する。同様にして、コマンド入力領域84がなぞられた後に、所定の地点が地図情報81において指定され、時間情報入力領域82の「PM」がチェックされ、手書き文字として「5:00」が入力されたとすると、ペン型入力装置10は、指定された地点を目的地としてPM 5:00に到着することを認識する。さらに、コマンド入力領域85がなぞられた後に、地図情報81において所定の地点が指定され、時間情報入力領域82の「PM」がチェックされ、手書き文字として「1:00」が入力され、つづいて、「AM」または「PM」がチェックされずに手書き文字として「1:00」が入力されたとすると、ペン型入力装置10は、指定された地点を立寄地として 1:00に到着し、1時間滞在した後に出発することを認識する。
つづいて、ペン型入力装置10は、出発地、立寄地、目的地のそれぞれの緯度経度情報を取得し、これらの間の直線距離を計算し、自動車の平均速度を適用することにより、設定時間を算出する。そして、入力された時間情報と比較することにより、入力された走行計画が妥当か否か(無理がないか否か)を判定し、無理がある場合には走行計画を変更するように促すメッセージをLCD16に表示したり、音声メッセージとしてスピーカ17から出力したりする。具体的には、立寄地と目的地の間の直線距離が200kmであり、自動車の平均速度が50kmである場合、立寄地にPM1時に到着して1時間滞在した後に出発すると、到着するのはPM6時(PM2時+4時間(=200km/50km/h))になってしまうことから、PM5時に目的地に到着する走行計画は妥当ではないと判定して、その旨をメッセージとして出力する。
これにより、ユーザは、走行計画が妥当であるか否かを、例えば、屋内に居ながら判断することができる。そして、妥当な走行計画が立案できた場合には、ナビゲーション装置70に対して走行計画を送信することにより、当該走行計画に基づいて経路案内を実施することができる。
つぎに、本発明の実施の形態の詳細な動作について説明する。
図9は、地図帳30において情報を入力(記入またはチェック)する際に、ペン型入力装置10において実行される処理の流れを説明するフローチャートである。このフローチャートが開始されると、以下のステップが実行される。
ステップS10:読取データ生成モジュール52は、入力インタフェース51を介して、筆圧センサ21の出力データを参照し、筆圧センサ21による検出があったか否か(ペン先12が地図帳30に接触されたか否か)を判定し、検出があった場合にはステップS11に進み、それ以外の場合には同様の処理を繰り返す。
ステップS11:読取データ生成モジュール52は、入力インタフェース51を介して画像処理部22から位置情報を取得する。すなわち、ペン先12が地図帳30の所定のページの所定の部分に接触された場合、赤外線LED13から射出された赤外線は、ペン先12が接触している部分およびその近辺に照射される。地図情報等を印刷した通常インク30cは、赤外線を通過するので、通過した赤外線は紙30aによって反射され、C−MOSカメラ14に入射される。一方、ドットインク30bに照射された赤外線は吸収されるので、C−MOSカメラ14には入射されない。したがって、C−MOSカメラ14には、地図帳30に印刷されたドットパターンに応じた強弱の分布を有する赤外線が入射される。C−MOSカメラ14は、入射された赤外線の強弱に応じた画像信号を生成し、画像処理部22に出力する。画像処理部22は、図4に示すドットの位置のずれに基づく復号処理を画像信号に対して施し、含まれている位置情報を生成し、出力する。読取データ生成モジュール52は、当該位置情報を取得する。
ステップS12:読取データ生成モジュール52は、入力インタフェース51を介してタイマ24からその時点における時刻情報を取得する。
ステップS13:読取データ生成モジュール52は、ステップS11において取得した位置情報にステップS12で取得した時刻情報を付加して読取データを生成する。
ステップS14:読取データ生成モジュール52は、ステップS13において生成された読取データを、読取データ記憶モジュール53に格納する。その結果、読取データ記憶モジュール53には、図7に示すような情報が格納される。
ステップS15:読取データ生成モジュール52は、ペン型入力装置10による入力が終了したか否かを判定し、終了した場合にはステップS16に進み、それ以外の場合にはステップS11に戻って同様の処理を繰り返す。具体的には、筆圧センサ21による筆圧の検出が所定の時間(例えば、1秒)以上途絶えた場合には、ユーザによる一連の入力動作が終了したと判定できるので、その場合にはステップS15に進む。例えば、ユーザが図8に示す地図帳30の所定のページ80において、出発地を設定するために、コマンド入力領域83をペン型入力装置10のペン先12によってチェックし、その後に地図情報81の所定の位置をチェックしたとする。その場合、コマンド入力領域83をチェックしてから地図情報81の所定の位置をチェックするまでには、通常は1秒以上の間隔が発生するので、コマンド入力領域83のチェックと、地図情報81のチェックとはそれぞれ個別の操作(入力)として判断される。
ステップS16:データ変換モジュール54は、読取データ生成モジュール52を介して読取データ記憶モジュール53から読取データを取得する。具体的には、ステップS11〜ステップS14の処理が繰り返されることにより取得された一連の読取データを取得し、取得が終了すると、読取データ記憶モジュール53からこれらの読取データを削除する。
ステップS17:データ変換モジュール54は、ステップS16で取得した読取データのそれぞれから位置情報を抽出する。その結果、図7に示す読取データから、x,y座標で示す位置情報が抽出される。
ステップS18:データ変換モジュール54は、緯度経度変換DB56を参照し、ステップS17で抽出した位置情報が地図領域に属するものであるか否かを判定する。図8に示す例の場合、地図情報81は地図領域に表示されており、これは、時間情報入力領域82およびコマンド入力領域83〜87以外の領域として定義される。緯度経度変換DB56には、地図帳30の各ページに印刷されている地図領域の光学パターンに含まれる位置情報と、緯度経度との対応関係を示す情報が格納されているので、緯度経度変換DB56に抽出した位置情報に対応する情報が格納されているか否かを判定し、格納されている場合には地図領域であると判定してステップS19に進み、それ以外の場合にはステップS20に進む。なお、読取データが複数存在する場合には、それら複数の情報の平均値を用いたり、または、一部の情報のみを用いたりして判断することができる。
ステップS19:データ変換モジュール54は、緯度経度変換DB56を参照して、位置情報を緯度経度データに変換する。例えば、図8に示す地図情報81の所定の位置が指定された場合には、当該指定された位置から読み取られた光学パターンに対応する位置情報が、対応する緯度経度データに変換される。
ステップS20:データ変換モジュール54は、時間変換DB57を参照し、ステップS17で抽出した位置情報が時間情報入力領域に属するものであるか否かを判定する。図8に示す例の場合、時間情報入力領域82に情報が書き込まれた場合には、ステップS21に進み、それ以外の場合にはステップS24に進む。なお、時間変換DB57には、地図帳30の各ページの時間情報入力領域内に印刷されている光学パターンに含まれる位置情報が格納されているので、抽出した位置情報に対応する情報が時間変換DB57に格納されているか否かを判定し、格納されている場合には時間情報入力領域であると判定してステップS21に進み、それ以外の場合にはステップS24に進む。なお、読取データが複数存在する場合の処理は前述の場合と同様である。
ステップS21:データ変換モジュール54は、ステップS17で抽出した位置情報に基づいて筆跡を再現する処理を実行する。具体的には、例えば、図10(A)に示すように、時間情報入力領域の「PM」がチェックされるとともに、手書き文字として「1:30」が入力されたとすると、これらの筆跡がそれぞれ再現される。
ステップS22:データ変換モジュール54は、ステップS21で再現された筆跡をパターン認識する処理を実行する。具体的には、図10(A)の例では、手書き文字としての「1:30」がパターン認識され、数字としての「1:30」が得られる。また、チェックを示す筆跡が「PM」部分に存在することから、「PM」が選択されたことが認識される。
ステップS23:データ変換モジュール54は、ステップS22におけるパターン認識処理の結果に基づいて、時間情報を生成する。具体的には、図10(A)の例では、「PM」がチェックされ、また、手書き文字としての「1:30」が入力されているので、時刻情報としての「PM 1:30」(=13:30)が生成される。また、図10(B)の例では、「AM」および「PM」の双方がチェックされていないので、入力された情報は時刻情報ではなく時間情報であると判定され、時間情報としての「1:30」が生成される。
ステップS24:データ変換モジュール54は、コマンド変換DB55を参照し、ステップS17で抽出した位置情報がコマンド入力領域に属するものであるか否かを判定する。図8に示す例の場合、コマンド入力領域83〜84のいずれかにチェックがされた場合には、ステップS25に進み、それ以外の場合にはステップS26に進む。なお、コマンド変換DB55には、地図帳30の各ページのコマンド入力領域内に印刷されている光学パターンに含まれる位置情報と、当該位置情報に対応するコマンド情報とが対応付けされて格納されているので、抽出した位置情報に対応する情報がコマンド変換DB55に格納されているか否かを判定し、格納されている場合にはコマンド入力領域であると判定してステップS25に進み、それ以外の場合にはステップS26に進む。なお、読取データが複数存在する場合の処理は前述の場合と同様である。
ステップS25:データ変換モジュール54は、コマンド変換DB55を参照して、位置情報を対応するコマンド情報に変換する。例えば、図8に示すコマンド入力領域83内がチェックされた場合には、その後に入力される位置情報が出発地を示すことを示すコマンド情報が生成され、データ処理モジュール58に受け渡される。
ステップS26:データ変換モジュール54は、例えば、コマンド入力領域87内がチェックされる等して、入力を終了することが指示された場合には処理を終了し、それ以外の場合にはステップS10に戻って同様の処理を繰り返す。
以上の処理により、ペン型入力装置10により、地図帳30の所定のページに所定の情報が記入された場合に、当該情報が対応するコマンド情報、緯度経度情報、時間情報に変換される。このようにして変換された情報は、データ処理モジュール58に供給され、これらの情報に基づいて後述する処理が実行される。
つぎに、図11を参照して、以上のようにして入力された情報に基づく処理について説明する。このフローチャートの処理が実行されると、以下のステップが実行される。
ステップS50:データ処理モジュール58は、データ変換モジュール54から供給される情報を参照し、出発地が入力されたか否かを判定し、入力された場合にはステップS51に進み、それ以外の場合には同様の処理を繰り返す。具体的には、図8に示す、コマンド入力領域83内がチェックされた場合には、データ変換モジュール54は出発地の設定を行うためのコマンド情報を出力するので、当該コマンド情報を受け取った場合には、ステップS51に進む。
ステップS51:データ処理モジュール58は、出発地の緯度経度情報を取得する。すなわち、ユーザが、図8に示す、コマンド入力領域83内をペン型入力装置10によってチェックした後、図12の右上に示す出発地を指定したとすると、当該出発地付近に印刷されている光学パターンに対応する緯度経度情報がデータ変換モジュール54から供給されるので、データ処理モジュール58は当該緯度経度情報を取得する。このようにして取得された出発地の緯度経度情報は、走行計画記憶モジュール60に記憶される。
ステップS52:データ処理モジュール58は、出発希望時刻を取得する。すなわち、ユーザが、図8に示す、時間情報入力領域82において、例えば、「AM」をチェックした後、手書き文字にて「10:00」を記入したとすると、出発希望時刻として「AM 10:00」が取得される。なお、出発希望時刻が入力された後に、出発地が入力されるようにしてもよい。また、出発地については、例えば、図示せぬGPS(Global Positioning System)から得られる緯度経度情報から取得するようにして入力を省略してもよい。なお、このようにして取得された出発希望時刻は、走行計画記憶モジュール60に格納される。
ステップS53:データ処理モジュール58は、データ変換モジュール54から供給される情報を参照し、目的地が入力されたか否かを判定し、入力された場合にはステップS53に進み、それ以外の場合には同様の処理を繰り返す。具体的には、図8に示す、コマンド入力領域84内がチェックされた場合には、データ変換モジュール54は目的地の設定を行うためのコマンド情報を出力するので、当該コマンド情報を受け取った場合には、ステップS54に進む。
ステップS54:データ処理モジュール58は、目的地の緯度経度情報を取得する。すなわち、ユーザが、図8に示す、コマンド入力領域84内をペン型入力装置10によってチェックした後、図12の左下に示す目的地を指定したとすると、当該目的地付近に印刷されている光学パターンに対応する緯度経度情報がデータ変換モジュール54から供給されるので、データ処理モジュール58は当該緯度経度情報を取得する。このようにして取得された目的地の緯度経度情報は、走行計画記憶モジュール60に記憶される。
ステップS55:データ処理モジュール58は、到着希望時刻を取得する。すなわち、ユーザが、図8に示す、時間情報入力領域82において、例えば、「PM」をチェックした後、手書き文字にて「4:00」を記入したとすると、到着希望時刻として「PM 4:00」が取得される。なお、前述の場合と同様に、到着希望時刻が入力された後に、目的地が入力されるようにしてもよい。このようにして取得された到着希望時刻は、走行計画記憶モジュール60に記憶される。
なお、以上の処理により、走行計画記憶モジュール60には、図13(A)に示すような、出発地および目的地の緯度経度情報ならびに出発希望時刻および到着希望時刻が格納される。
ステップS56:データ処理モジュール58は、出発地の緯度経度情報と、目的地の緯度経度情報を参照し、出発地と目的地の間の距離を直線距離を算出する。具体的には、図12に示す出発地と目的地の直線距離が求められる。なお、実際の経路は直線ではないため、例えば、求められた直線距離に所定の係数(例えば、“1.5”)を乗算し、これを距離とするようにしてもよい。
ステップS57:データ処理モジュール58は、ステップS56で求めた直線距離を、自動車の想定される平均速度によって除することにより、出発地から目的地までの直線距離を走行するために必要な時間(所要時間)T1を算出する。例えば、出発地と目的地の間の直線距離が50kmである場合に、平均速度が50kmである場合には、T1=1時間となる。
ステップS58:データ処理モジュール58は、出発希望時刻から到着希望時刻までの時間を算出し、これを設定時間T2とする。例えば、図13(A)の場合には、出発希望時刻はAM10:00であり、到着希望時刻はPM4:00であるので、T2=6時間となる。
ステップS59:データ処理モジュール58は、所要時間T1と設定時間T2とを比較し、T1>T2であるか否かを判定し、該当する場合にはステップS60に進み、それ以外の場合にはステップS61に進む。すなわち、所要時間T1の方が設定時間T2よりも大きい場合には、当該走行計画は実行不能であるので、ステップS60に進むことになる。
ステップS60:データ処理モジュール58は、音声DB59から再入力を促すコメントの音声データ(例えば、「走行計画が不適切です。再度入力してください。」等の音声データ)を取得し、出力インタフェース61を介して音源部26に供給し、当該メッセージをスピーカ17から出力するとともに、同様の文字によるメッセージをLCD16に表示させ、ユーザに再入力を促す。そして、ステップS50に戻って同様の処理を繰り返す。なお、ステップS53に戻って同様の処理を繰り返すようにしてもよい。
ステップS61:データ処理モジュール58は、データ変換モジュール54から供給される情報を参照し、立寄地が入力されたか否かを判定し、入力された場合にはステップS62に進み、それ以外の場合には同様の処理を繰り返す。具体的には、図8に示す、コマンド入力領域85内がチェックされた場合には、データ変換モジュール54は立寄地の設定を行うためのコマンド情報を出力するので、当該コマンド情報を受け取った場合には、ステップS62に進む。
ステップS62:データ処理モジュール58は、立寄地の緯度経度情報を取得する。すなわち、ユーザが、図8に示す、コマンド入力領域85内をペン型入力装置10によってチェックした後、図12の中央付近に示す立寄地(A)を指定したとすると、当該立寄地付近に印刷されている光学パターンに対応する緯度経度情報がデータ変換モジュール54から供給されるので、データ処理モジュール58は当該緯度経度情報を取得する。このようにして取得された立寄地の緯度経度情報は、走行計画記憶モジュール60に格納される。
ステップS63:データ処理モジュール58は、立寄地への到着希望時刻を取得する。すなわち、ユーザが、図8に示す、時間情報入力領域82において、例えば、「AM」をチェックした後、手書き文字にて「10:40」を記入したとすると、到着希望時刻として「AM 10:40」が取得される。なお、前述の場合と同様に、到着希望時刻が入力された後に、立寄地が入力されるようにしてもよい。このようにして取得された到着希望時刻は、走行計画記憶モジュール60に格納される。
ステップS64:データ処理モジュール58は、立寄地での滞在希望時間を取得する。すなわち、ユーザが、図8に示す、時間情報入力領域82において、例えば、「AM」「PM」をチェックせずに、手書き文字にて「1:00」を記入したとすると、滞在希望時間として「1:00」が取得される。このようにして取得された滞在希望時間は、走行計画記憶モジュール60に格納される。なお、その際、データ処理モジュール58は、立寄地の到着希望時刻と滞在希望時間とから、当該立寄地の出発希望時刻を算出して、格納する。
図13(B)は、以上の処理により、走行計画記憶モジュール60に記憶される情報の一例である。この例では、立寄地(A)の緯度経度情報とともに、立寄地(A)の到着希望時刻、滞在希望時間、および、出発希望時刻が記憶されている。
ステップS65:データ処理モジュール58は、所定の隣接2点間の直線距離を算出する。例えば、図13(B)の例では、隣接2点間は、出発地と立寄地(A)および立寄地(A)と目的地の2種類である。そこで、最初の処理では、出発地と立寄地(A)の間の直線距離が算出される。なお、直線近似するために実際の距離よりも短くなることを考慮して、算出された距離を、例えば、1.5倍し、これを直線距離として用いる。
ステップS66:データ処理モジュール58は、ステップS65で算出された直線距離を自動車の平均速度で除することにより、所要時間T1を算出する。例えば、図13(B)の出発地と立寄地(A)の場合では、図12に示すように、これらの間の距離が15kmであるとすると、1.5倍した距離は22.5kmとなる。平均速度が50km/hであるとすると、所要時間T1=27分となる。
ステップS67:データ処理モジュール58は、隣接2点の出発希望時刻と到着希望時刻を参照し、設定時間T2を算出する。例えば、図13(B)の出発地と立寄地(A)の場合では、出発地の出発希望時刻が「AM10:00」であり、立寄地(A)への到着希望時刻が「AM10:40」であるので、T2=40分となる。
ステップS68:データ処理モジュール58は、所要時間T1と設定時間T2とを比較し、T1>T2であるか否かを判定し、該当する場合にはステップS69に進み、それ以外の場合にはステップS70に進む。すなわち、所要時間T1の方が設定時間T2よりも大きい場合には、当該走行計画は実行不能であるので、ステップS69に進むことになる。いまの例では、T1=27分であり、T2=40分であるので、ステップS70に進む。
ステップS69:データ処理モジュール58は、音声DB59から再入力を促すコメントの音声データ(例えば、「走行計画が不適切です。立寄地を再度入力してください。」等の音声データ)を取得し、出力インタフェース61を介して音源部26に供給し、当該メッセージをスピーカ17から出力するとともに、同様の文字によるメッセージをLCD16に表示させ、ユーザに再入力を促す。そして、ステップS61に戻って同様の処理を繰り返す。
ステップS70:データ処理モジュール58は、T2をT1で除した値(=T2/T1)が所定の閾値Th1よりも小さいか否かを判定し、該当する場合にはステップS69に進む。後述するように、T2/T1の比が小さい場合には、走行計画に無理があると考えられるので、その場合には再入力を促すためにステップS69に進む。なお、具体的には、Th1として、1.2程度を選択する。いまの例では、40/27=1.48・・・であるので、ステップS71に進む。
ステップS71:データ処理モジュール58は、T2をT1で除した値(=T2/T1)が所定の閾値Th2よりも大きいか否かを判定し、該当する場合にはステップS73に進む。後述するように、T2/T1の比が大きい場合には、走行計画に余裕が十分にあると考えられるので、その場合には立寄地点の追加を促すためにステップS72に進む。なお、具体的には、Th2として、2.0程度を選択する。いまの例では、40/27=1.48・・・であるので、ステップS73に進む。
ステップS72:データ処理モジュール58は、音声DB59から再入力を促すコメントの音声データ(例えば、「プランに余裕があります。立寄地を追加してください。」等の音声データ)を取得し、出力インタフェース61を介して音源部26に供給し、当該メッセージをスピーカ17から出力するとともに、同様の文字によるメッセージをLCD16に表示させ、ユーザに再入力を促す。そして、ステップS61に戻って同様の処理を繰り返す。
以上の処理は、より詳細に説明するとつぎのようになる。すなわち、例えば、図14に示すように、所要時間が30分である場合に、設定時間が20分である場合(T1>T2の場合)には、実現不能であるのでステップS68の処理により再入力となる。また、設定時間が32分の場合(T2/T1<Th1の場合)には、ぎりぎりであるのでプランの見直しを促すために、ステップS69に進むことになる。また、設定時間が45分の場合(T2/T1≧Th1かつT2/T1≦Th2の場合)には想定時間内に到着することから、問題ないと判断される。さらに、設定時間が90分である場合(T2/T1>Th2の場合)には、プランに十分に余裕があるので、ステップS72に進むことになる。
例えば、図12に示す例の場合、図13(C)に示すように、立寄地(B)の到着希望時刻として「PM0:10」と滞在希望時間「2:00」が入力された後、図15(A)に示すように、立寄地(C)の到着希望時刻として「PM2:25」と滞在希望時間「1:15」が入力されたとする。この場合、図12に示すように、立寄地(C)と目的地の間の距離は10kmであるので、1.5倍されて15kmとなる。平均速度が50kmであるとすると所要時間は18分となる。一方、設定時間は20分(=PM4:00−PM3:40)である。この場合、Th1=1.2であるとすると、T2/T1=20/18=1.11・・・<Th1であるので、ステップS70で「Y」と判定されてステップS69に進む。その結果、ユーザは、例えば、図8に示すコマンド入力領域86をチェックして直前に入力した立寄地(C)に関する情報を取り消し、再度、立寄地(C)に関する情報を入力する。その結果、図15(B)に示すような情報が入力された場合には、ステップS68〜ステップS71の全てにおいて問題がない(N)と判定される。
ステップS73:データ処理モジュール58は、全地点に関する処理(隣接2点の全ての処理)が終了したか否かを判定し、終了していない場合にはステップS65に戻って同様の処理を繰り返し、それ以外の場合にはステップS74に進む。図13(B)の例では、出発地と立寄地(A)についての処理が終了した状態であるので、ステップS73では「N」と判定され、ステップS65に戻り、つぎの処理では、立寄地(A)と目的地との間の処理が実行される。
ステップS74:データ処理モジュール58は、入力を終了するか否かを判定し、終了しない場合にはステップS61に戻って同様の処理を繰り返し、それ以外の場合にはステップS75に進む。具体的には、例えば、図8に示すコマンド入力領域87がペン型入力装置10によってチェックされた場合には、ステップS75に進む。
ステップS75:データ処理モジュール58は、走行計画記憶モジュール60に記憶されている走行計画を、LCD17に対して表示する。その結果、例えば、図15(B)に示すような走行計画がLCD17に表示されることになる。ユーザは、事前に走行計画を確認することができる。
なお、以上のようにして入力された走行計画は、例えば、ボタン15を操作することにより、ナビゲーション装置70に転送することができる。ナビゲーション装置70は、転送された走行計画に含まれている緯度経度情報に基づいて、出発地、立寄地、および、目的地を設定するとともに、各地点の到着希望時刻および出発希望時刻を設定する。そして、目的地から立寄地を経由して目的地に到着する経路を図示せぬデータベースを参照して検索し、検索結果に基づいて案内を行う。
以上に説明したように、本発明の実施の形態によれば、ペン型入力装置10によって、地図帳30の所定の地点を指定するとともに、時間情報を入力することにより、走行計画を立案することが可能になる。ペン型入力装置10は、ナビゲーション装置70から離れた場所でも動作可能であるので、ユーザは、車内ではなく、室内にて走行計画を立案することができる。
また、本発明の実施の形態によれば、立案した走行計画の妥当性を判断し、妥当でない場合には、ユーザに再入力を促したり、立寄地の追加を促したりするようにしたので、より実現性の高い走行計画を立てることが可能になる。
また、本発明の実施の形態では、地点間の直線距離によって所要時間を求めるようにしたので、ペン型入力装置10は、道路に関する情報を持たなくてもよい。これにより、メモリ23の必要な記憶容量を少なくすることができる。
また、本発明の実施の形態では、出発地、立寄地、および、目的地を地図帳30において指定するようにしたので、例えば、ナビゲーション装置70の表示画面上において指定する場合に比較して、よりスムーズに地点の指定が可能になる。すなわち、ナビゲーション装置70に設けられている表示装置はそのサイズが小さく、また、表示されている地図をスクロールしたりする操作には時間を要する。一方、地図帳30は、例えば、A4サイズ等の大きさを有し、ページをめくることで所望の地図に簡易に到達することができるので、指定をスムーズに行うことができる。
また、本発明の実施の形態では、出発地、立寄地、および、目的地を指定するとともに、それぞれの地点への到着希望時刻、出発希望時刻、滞在希望時間を入力するようにしたので、より綿密な走行計画を立案することができる。
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
例えば、以上の実施の形態では、図2に示す機能ブロックをハウジング11内に全て内蔵するようにしたが、例えば、これらの一部をハウジング11内に内蔵し、それ以外については他の機器に内蔵するようにしてもよい。一例として、ペン先12、赤外線LED13、C−MOSカメラ14、および、筆圧センサ21についてはハウジング11内に内蔵し、それ以外については他の筐体内に内蔵し、当該筐体とハウジング11とを無線または有線で接続するようにしてもよい。このような実装方法によれば、ペン型入力装置10の重さを軽くすることができるので、操作性を向上できるとともに、消費電力を低減することができることから、ペン型入力装置10の電池の使用時間を延長することができる。
また、通信部25を介して、不図示のパーソナルコンピュータと無線等により通信を行い、入力された走行計画に関するデータをパーソナルコンピュータに送信し、パーソナルコンピュータまたは通信回線によって接続された不図示のサーバ装置によって、当該走行計画に基づいて経路の探索を行うとともに、当該走行計画の検証を行い、検証の結果をペン型入力装置10またはパーソナルコンピュータによって提示するようにしてもよい。その場合、パーソナルコンピュータに所定のアプリケーションプログラムをインストールし、当該アプリケーションプログラムを実行することにより、パーソナルコンピュータまたはサーバ装置が有するナビゲーション用のデータベース(地図情報を有するデータベース)にアクセスし、走行計画に基づいて経路を探索するようにしてもよい。そのような方法によれば、経路を探索することにより、より綿密な走行計画を立てることができる。なお、メモリ23の容量が十分である場合には、ナビゲーション用のデータベースを、メモリ23に格納しておき、ナビゲーション用のデータベースを検索しながら、経路を決定するようにしてもよい。
また、以上の実施の形態では、出発地、立寄地、目的地等をペン先12で指定することで、走行経路を入力するようにしたが、例えば、走行経路をペン先12によってなぞることにより経路を特定し(図12に示す太線の経路をペン先12でなぞって特定し)、その後に、経路上の所定の地点を指定することで立寄地を指定するようにしてもよい(図12に示す立寄地(A)〜(C)を指定するようにしてもよい)。そのような方法の場合、ペン型入力装置10では、ペン先12の軌跡の位置情報を読み込んで緯度経度情報に変換し、得られた緯度経度情報から走行距離を特定するようにすればよい。そのような方法によれば、直線で近似する場合に比較して、より正確な走行計画を立てることが可能になる。
また、以上の実施の形態では、出発地、立寄地、目的地のそれぞれについて出発希望時刻、到着希望時刻、および、滞在希望時間を入力するようにしたが、例えば、これらの一部のみを入力して、未入力の時間情報を入力済みの時間情報に基づいて算出してユーザに提示するようにしてもよい。例えば、目的地への到着希望時刻と立寄地の滞在希望時間を入力し、平均速度とそれぞれの地点間の距離から、出発地の出発予定時刻と、それぞれの立寄地への到着予定時刻および出発予定時刻を算出して提示するようにしてもよい。または、出発地の出発希望時刻と各立寄地の滞在希望時間を入力し、平均速度とそれぞれの地点間の距離から、目的地への到着予定時刻と、それぞれの立寄地への到着予定時刻および出発予定時刻を算出して提示するようにしてもよい。さらに、出発地の出発希望時刻と、目的地の到着希望時刻とを入力し、これらの差分の時間から走行に必要な時間を差し引くことにより、立寄地における滞在可能な時間を算出し、滞在可能な時間を例えば立寄地の個数によって等分することにより、各立寄地の到着予定時間と滞在時間とを提示するようにしてもよい。
また、以上の実施の形態では、出発地、立寄地、目的地を地図上において、直接指示するようにしたが、例えば、地図帳30にランドマークを印刷しておき、当該ランドマークを指定することにより、これらの地点を指定できるようにしてもよい。ランドマークとしては、例えば、各種の施設(公園、遊園地等)、店舗(コンビニエンスストア、スーパー等)、駅等がある。そのような実施の形態によれば、ランドマークを参照しながら、走行経路を設定することができるので、経路の設定をより簡易に行うことができる。
また、以上の実施の形態では、まず、出発地と目的地を設定して計画の妥当性を判断し、その後に立寄地を設定して経路全体の計画の妥当性を判断するようにしたが、出発地、目的地、および、立寄地を全て設定した後に、計画の妥当性を判断し、判断結果をユーザに提示するようにしてもよい。あるいは、目的地を最初に設定し、走行順序に応じて立寄地を順次設定し、最後に目的地を設定するようにし、それぞれの地点間において計画の妥当性を判断するようにしてもよい。
また、以上の実施の形態では、1つの走行計画を入力するようにしたが、例えば、複数の走行計画を入力可能とし、そのいずれかを選択してナビゲーション装置70に転送したり、全て転送してナビゲーション装置70において選択したりするようにしてもよい。
また、以上の実施の形態では、図8に示すような時間情報入力領域82から時間情報を入力するようにした。しかしながら、例えば、図16に示すような文字盤を有する時間情報入力領域90を設け、当該領域から時間情報を入力するようにしてもよい。文字盤としては、例えば、図17(A)に示すような12時間表示のものと、図17(B)に示すような24時間表示のものが考えられる。図17(A)の例では、時刻を入力する場合には右側に印刷されている「AM」または「PM」をチェックするとともに、左側の文字盤に長針および短針を書き込む。例えば、「PM1:00」を入力する場合、図18(A)に示すように、「PM」をチェックするとともに、文字盤の中心から外側の円の「12」に向けて長針を描き、文字盤の中心から内側の円の「1」(不図示)に向けて短針を描く。また、時間を入力する場合は、図18(B)(C)のようにして入力する。すなわち、時間「45分」を入力する場合には、図18(B)に示すように、「AM」および「PM」はチェックせずに、長針のみを円の中心から外側の円の「9」に向けて描く。また、時間「1時間45分」を入力する場合には、図18(C)に示すように、「AM」および「PM」はチェックせずに、長針を円の中心から外側の円の「9」に向けて描くとともに、短針を円の中心から内側の円の「1」(不図示)に向けて描く。
一方、図17(B)の例では、時刻を入力する場合には、文字盤の右側上の「時刻」をチェックし、時間を入力する場合には、文字盤の右側下の「時間」をチェックする。そして、分(minute)については長針で、時(hour)については短針で指示する。なお、「時刻」のみを表示しておき、当該領域がチェックされた場合には時刻が入力されると判定し、チェックされない場合には時間が入力されると判定するようにしてもよい。同様に、「時間」のみを表示するようにしてもよいことはいうまでもない。
また、時間情報を入力する方法としては、例えば、0〜9までの数字を地図帳30に表示し、必要な数字をチェックすることにより、時間を入力するようにしてもよい。その場合、時間と時刻の判別は、前述のように、「AM」および「PM」のチェックの有無によって判定したり、「時間」および「時刻」のチェックの有無によって判定したりするようにしてもよい。
また、以上の実施の形態では、ペン型入力装置10から走行計画をナビゲーション装置70へ転送するまでの説明を行ったが、例えば、ペン型入力装置10をユーザが携行し、出発予定時刻になった場合またはその直前になった場合には、例えば、音声等によって出発の時刻が近いことを通知するようにしてもよい。あるいは、電子メールまたは電話等により、ユーザが有する携帯電話に通知するようにしてもよい。そのような実施の形態によれば、出発予定時刻が近いことをユーザが知ることにより、走行計画に基づいて確実に走行することが可能になる。また、電子メールまたは電話等の送信先を複数予め登録するようにしておけば、ドライブに参加している複数のメンバに出発時刻が近いことを通知することができる。なお、このような方法を実現する方法としては、データ処理モジュール58が走行計画記憶モジュール60に記憶されている走行計画と、タイマ24から出力される時刻情報とを参照し、出発希望時刻が近づいた場合には、音声DB59から所定のメッセージを取得して音源部26に出力したり、通信部25を介して所定の携帯端末へ電子メールを発信したりするようにすればよい。