説明

ナビゲーション装置

【課題】ナビゲーション装置等の組み込み機器向けのプログラムの開発、およびプログラムの修正のための手間・コストを低減する。
【解決手段】OS101上でナビゲーションプログラムおよび仮想マシン103を実行する演算装置(CPU)を有するナビゲーション装置において、ナビゲーションプログラム101に仮想マシン103とのインタフェース105を設けておく。そして、仮想マシン103が、演算装置に、必要な機能の提供をナビゲーションプログラム101に要求する処理を実行させ、ナビゲーションプログラム101がインタフェース105を介して仮想マシン103から受付けた要求にしたがい、演算装置に、受付けた要求に対応するナビゲーション処理を実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ナビゲーション装置等の組み込み機器の技術に関し、特に、仮想マシンを搭載した組み込み機器の技術に関する。
【背景技術】
【0002】
ナビゲーション装置、携帯電話、デジタル家電製品(例えば、デジタルカメラ)等のように専用の機能を提供する組み込み機器が普及してきている。例えば、ナビゲーション装置には、GPS(Global Positioning System)受信装置や車両制御装置等のハードウェアに接続されていて、これらのハードウェアから取得するデータを用いて地図上に現在位置を示した画面を表示する機能を提供するものがある。
【0003】
従来から、ハードウェアを活用したソフトウェアにより各種の機能を提供する組み込み機器が知られている。例えば、特許文献1には、ハードウェアを活用したソフトウェアにより、車両外部の明るさに対応して案内画像を常に見易く表示する機能を提供するナビゲーション装置が記載されている。具体的には、特許文献1のナビゲーション装置には、車両外部の明るさを検知するセンサが接続されている。そして、ナビゲーション装置は、そのセンサからのデータを取得し、表示画像の明るさを変更している。
【0004】
また、特許文献2には、携帯電話などのバックライト付の液晶装置を備える組み込み機器において、バックライトがオフの際の視認性を向上させるために、バックライトオフの場合に描画色を変えることで液晶表示のコントラストを高めるという方法が開示されている。
【0005】
また、特許文献3には、GPS受信装置を持つナビゲーション装置において、GPS受信装置からの位置情報および時間情報を取得して、ナビゲーション装置に実装されている位置対応時差記憶部を用いてローカル時刻を演算する方法が開示されている。
【0006】
【特許文献1】特開2000―10543号公報
【特許文献2】特開2002―108292号公報
【特許文献3】特開2003−114290号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、組み込み機器向けのプログラムは、その構成が複雑になる傾向にある。例えば、組み込み機器は、一般のサーバやワークステーションと比較して、低機能なOS(Operating System)が搭載されていることが多い。そして、組み込み機器では、OSに不足している機能をアプリケーションプログラム内で実装することが多く行われるため、組み込み機器向けのプログラムの構成が複雑になる傾向にある。また、現在問題なく稼動している組み込み機器のプログラム(例えば、ナビゲーションプログラム)を大規模に変更することは品質維持の面でも避ける傾向にあり、既存のプログラムに機能追加が繰り返されることが多い。その結果、組み込み機器向けのプログラムは、多機能で複雑な構成になっているものが多い。
【0008】
さらに、組み込み機器の場合、ハードウェア開発とプログラム開発は同じメーカが行っていることが多く、限られたハードウェアリソースを効率よく活用するために、汎用的なプログラムではなく、ハードウェアに特化したプログラムとなっている。
【0009】
このように、ナビゲーション装置などの組み込み機器向けプログラムは、汎用的なプログラムの技術ではなく特殊な技術が要求されるため、プログラムの開発者不足が生じている。また、組み込み機器向けプログラムは、上述のように構造が複雑になる傾向にあるためプログラムの開発に手間およびコストがかかるという問題を有している。
【0010】
上記各特許文献には、ハードウェア(例えば、GPS受信装置)を活用して専用の機能を提供することについての提案は行われている。しかし、上記各特許文献は、組み込み機器用プログラムの開発にかかる手間およびコストを軽減することについて特に考慮されていない。
【0011】
なお、サーバやワークステーションでのプログラム開発に広く用いられ、開発者も多いサン・マイクロシステムズ社が開発したJava(登録商標)言語により組み込み機器向けプログラムを開発することも考えられる。しかしながら、Java(登録商標)言語等の仮想マシンを組み込み機器に搭載する場合、PC(Personal Computer)などの高機能なOSが搭載された計算機上での開発にはない課題が存在する。
【0012】
ひとつは、組み込み機器に搭載されているOSには、PC上で稼動する高機能なOSのように、標準化されたインタフェースを持つ豊富なデバイスドライバやミドルウェアが十分に揃っていない。そのため、仮想マシンによりハードウェアの機能を利用しようとする場合、別途、ドライバやミドルウェアを開発する必要がありコストがかかる。さらに、通常、仮想マシンの開発者がハードウェアに熟知していることが少ないため、ハードウェアの機能を活用する組み込み機器用のプログラムの開発に手間がかかる。また、組み込み機器開発においてはハードウェア開発とプログラム開発が並行して行われる場合が多い。そのため、たとえ仮想マシンの開発者が利用するハードウェアを熟知していたとしても、プログラム開発時にハードウェアがまだ出来上がっていない場合が多く、プログラムの細かなチューニング作業が行えないという問題が発生してしまう。
【0013】
本発明は、上記事情に鑑みてなされたものであり、組み込み機器向けのプログラムの開発、およびプログラムの修正のための手間・コストを低減することにある。
【課題を解決するための手段】
【0014】
上記課題を解決するため、本発明の一態様は、OS(Operating System)プログラム上でナビゲーションプログラムおよび仮想マシンプログラムを実行する演算装置を有するナビゲーション装置に適用される。ここで、前記ナビゲーション装置は、前記OSプログラム、前記ナビゲーションプログラム、および仮想マシンプログラムを記憶する記憶装置を有する。
【0015】
そして、前記仮想マシンプログラムは、前記演算装置に、必要な機能の提供を前記ナビゲーションプログラムに要求する処理を実行させ、前記ナビゲーションプログラムは、前記仮想マシンプログラムとのインタフェースを有し、前記インタフェースを介して前記仮想マシンプログラムから受付けた要求にしたがい、前記演算装置に、該受付けた要求に対応するナビゲーション処理を実行させる。
【発明の効果】
【0016】
このように本発明によれば、ナビゲーションプログラム以外の他のプログラム(仮想マシンプログラム)は、ナビゲーションプログラムの持つ機能をナビゲーションプログラムのインタフェースを介して利用できるようになる。そのため、本発明によれば、ナビゲーションプログラムの中身の実装を気にすることなく、ナビゲーションプログラムの機能を利用するプログラムを開発することができる。その結果、本発明によれば、プログラムの開発のための手間・コストを低減することができる。また、本発明によれば、下位のハードウェアやデバイスドライバ等に仕様変更が生じた場合でも、ナビゲーションプログラム経由で各機能を利用することにより、他のプログラム(仮想マシンプログラム)を修正することなく使用することが可能となる。その結果、本発明によれば、プログラムの修正のための手間・コストを低減するこができる。
【0017】
さらに、本発明では、例えば、ナビゲーションプログラムが描画機能やサウンド再生機能を有する場合、仮想マシンプログラムは、その機能を利用するができる。そのため、本発明によれば、仮想マシンプログラムとナビゲーションプログラムとを統一されたユーザインタフェースで使用することが可能になる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施形態について図面を用いて説明する。なお、以下では、本発明が車両に搭載されたナビゲーション装置に適用された場合を例にするが、本発明は、特にこれに限定されるものではない。本発明は、ナビゲーション装置以外の組み込み機器にも適用することができる。
《第1実施形態》
先ず、本発明の第1実施形態を説明する。
【0019】
図1は、本発明の第1実施形態のナビゲーション装置の概念図である。
【0020】
図示するように、ナビゲーション装置は、CPU(Central Processing Unit)およびメモリ等を有するハードウェア100(図3参照)に、ハードウェア100の各種資源を管理し、アプリケーションプログラムに各種資源を利用させるOS(Operating System)102が搭載されている。そして、ナビゲーション装置は、ハードウェア100およびOS102上で稼動するナビゲーションプログラム101と、ハードウェア100およびOS102上で稼動する仮想マシン103と、仮想マシン103上で稼動する仮想マシンアプリケーション107a〜nとを有する。
【0021】
ナビゲーションプログラム101には、ハードウェア100を制御して各種機能を提供するプログラム(以下「ナビアプリケーション」という)104が含まれている。なお、ナビアプリケーション104が提供する機能については特に限定しない。例えば、ナビアプリケーション104は、地図等を画面に表示するグラフィックス描画機能、サウンド再生機能、GPS(Global Positioning System)情報取得機能、地図データアクセス機能を提供する。また、ナビゲーションプログラム101には、仮想マシン103に対し、ナビアプリケーション104の機能を抽象化して提供するインタフェース105が含まれている。
【0022】
仮想マシン103は、中間コードを実行するためのプログラムであり、ナビゲーションプログラム101が持つインタフェース105を介し、ナビゲーションプログラム101が有する機能を利用する。例えば、仮想マシン103は、インタフェース105を介してナビゲーションプログラム101のグラフィックス機能を利用する。また、例えば、仮想マシン103は、インタフェース105を介してナビゲーションプログラム101からロケール情報(ロケール情報については後述する)を取得して動作する。なお、本実施形態では、仮想マシン103について特に限定しない。例えば、仮想マシン103にサン・マイクロシステムズ社のJava(登録商標)仮想マシンを利用することができる。
【0023】
仮想マシンアプリケーション107a〜nは、仮想マシン103上で動作するプログラムである。本実施形態では、仮想マシンアプリケーション107a〜nの具体的な機能を限定しない。例えば、仮想マシンアプリケーション107a〜nは、画像データを生成したり、或いは、音声データを再生する機能を提供する。
【0024】
なお、仮想マシンアプリケーション107a〜nがナビゲーションプログラム101の機能を利用しない場合(OS102の機能だけを利用する場合等)、仮想マシン103は、ナビゲーションプログラム101のインタフェース105を経由しないで、OS102に対して直接要求を渡す。
【0025】
続いて、第1実施形態のナビゲーション装置の機能について図2を用いて説明する。図2は、本発明の第1実施形態のナビゲーション装置の機能ブロック図である。
【0026】
ナビゲーション装置201は、ナビゲーション部202、仮想マシン部203、地図・時差データ記憶装置204、液晶ディスプレイ等の表示装置205、スピーカ等の音声出力装置206、GPS衛星からの電波を受信し、緯度、経度等の位置情報および標準時間を出力するGPS受信装置207、およびヘッドライトのオン・オフ等の車両情報を取得する車両情報取得装置208を有する。地図・時差データ記憶装置204は、地図データと、地図データの所定位置毎に標準時刻からの時差を対応付けた時差データとを記憶するユニットであり、例えば、DVD−ROMドライブとDVD−ROM、またはHDD等により構成される。
【0027】
ナビゲーション部202は、ナビゲーション装置201のハードウェア資源(GPS受信装置207、表示装置205等)を利用し、利用者に各種機能を提供する。また、ナビゲーション部202は、仮想マシン部203からの要求に応じて、自身が持つ機能を仮想マシン部203に提供する。具体的には、ナビゲーション部202は、ロケール・ローカル時刻演算部210、GPSドライバ部211、グラフィック描画部212、ビデオドライバ部213、サウンド再生部214、サウンドドライバ部215、およびインタフェース部217を有する。
【0028】
GPSドライバ部211は、GPS受信装置207を制御し、GPS受信装置207との間で行うデータの送受信を行う。ビデオドライバ部213は、表示装置205を制御し、グラフィック描画部212から受け付けた画像データを表示装置205に表示する。また、サウンドドライバ部215は、音声出力装置206を制御し、サウンド再生部214から受け付けた音声データを音声出力装置206から出力する。
【0029】
ロケール・ローカル時刻演算部210は、GPS受信装置207および地図・時差データ記憶装置204からのデータを利用して、「ロケール情報(ナビゲーション装置が動作する言語環境等を設定するための国名等の情報)」および車両が位置する「ローカル時刻」を算出する。具体的には、ロケール・ローカル時刻演算部210は、GPS受信装置207が出力する位置データ(緯度、経度)および標準時刻を取得する。また、ロケール・ローカル時刻演算部210は、地図・時差データ記憶装置204にアクセスして、「地図データ」および「時差データ」を読み出す。そして、ロケール・ローカル時刻演算部210は、取得した「位置データ」および読み出した「地図データ」を用いて、車両が存在する位置に対応する「ロケール情報」を特定する。また、ロケール・ローカル時刻演算部210は、取得した「位置データ」および「標準時刻」と、読み出した「時差データ」とを用いて、車両が存在する位置に対応する「ローカル時刻」を算出する。なお、本実施形態では、「地図データ」には、位置に対応する「国名」が含まれているものとする。
【0030】
グラフィック描画部212は、表示装置205に表示するための画像データを生成する。グラフィック描画部212は、ビデオドライバ部213を介して、生成した画像データを表示装置205に表示する。サウンド再生部214は、音声出力装置206に出力させるための音声データを生成する。そして、サウンド生成部214は、サウンドドライバ部215を介して、生成した音声データを音声出力装置206に出力する。なお、本実施形態のグラフィック描画部212は、車両情報取得装置208からのヘッドライトのオン・オフ情報により、表示装置205に表示する表示画像(画像の色、明るさ等)を変更する。
【0031】
インタフェース部217は、仮想マシン部203との間で各種データの授受を行う。なお、インタフェース部217と仮想マシン部203との間で行われるデータの形式は、予め定められている。インタフェース部217が仮想マシン部203からの各種要求を受付けた場合、ナビゲーション部202は、仮想マシン部203からの要求に対応するナビゲーション部202の機能を仮想マシン部203に提供する。
【0032】
続いて、仮想マシン部203について説明する。仮想マシン部203は、インタフェース部217を介して、ナビゲーション部202の機能を利用して各種の処理を行う。具体的には、仮想マシン部203は、ナビゲーション部202のロケール・ローカル時刻演算部210の機能を利用して、「ロケール情報」および「ローカル時刻」を取得する。このように構成することにより、仮想マシン部203に「ロケール情報」および「ローカル時刻」を算出するための構成を設ける必要がなくなる。
【0033】
また、仮想マシン部203は、ナビゲーション部202のグラフィック描画部212を利用して表示装置205に画像データを表示する。具体的には、仮想マシン部203は、ナビゲーション部202のインタフェース部217に「描画命令」を送信する。ナビゲーション部202のインタフェース部217は、仮想マシン部203からの「描画命令」を抽象化された命令として受け取り、グラフィック描画部212に出力する。グラフィック描画部212は、送られた「描画命令」をナビゲーション装置201のハードウェアに合致するよう適切に変換し(例えば画面の大きさや色情報等を変換し)、ナビゲーション装置201に依存した命令としてビデオドライバ213に対して発行する。ビデオドライバ213は、与えられた命令にしたがって、表示装置205上に描画を行う。
【0034】
同様に、仮想マシン部203は、ナビゲーション部202のインタフェース部217に対して「サウンド再生命令」を送信する。ナビゲーション部202のインタフェース部217は、仮想マシン部203からの「サウンド再生命令」を抽象化された命令として受け取り、サウンド再生部214に出力する。サウンド再生部214は、送られた「サウンド再生命令」をナビゲーション装置201のサウンド機能に合致するよう適切に変換し、ナビゲーション装置201に依存した命令としてサウンドドライバ部215に対して発行する。サウンドドライバ部215は、与えられた命令にしたがって、音声出力装置206に音声出力を行う。
【0035】
このように、本発明の第1実施形態によれば、仮想マシン部203により処理された画像データ(又は音声データ)は、ナビゲーション部202経由で表示装置205(又は音声出力装置206)に出力される。そのため、仮想マシン部203により処理されたデータは、ナビゲーション部202により処理されたデータを同じユーザインタフェースで利用者に提供されることとなり、利用者に違和感を与えることがない。
【0036】
ここで、仮想マシン部203およびナビゲーション部202との間で行われるデータの送受信について、仮想マシン部203が「ロケール情報」および「ローカル時刻」を取得する場合を例に挙げて説明する。
【0037】
仮想マシン部203は、「ロケール情報」を取得する場合、インタフェース部217に「ロケール取得要求」を送信する。インタフェース部217は、「ロケール取得要求」を受け付けた場合、ロケール・ローカル時刻演算部210に「ロケール情報」の算出を要求する。そして、インタフェース部217は、ロケール・ローカル時刻演算部210から「ロケール情報」を取得する。インタフェース部217は、「ロケール取得要求」に対して、所定形式の「ロケール情報(例えば、国名を示す情報(日本の場合「JA」、米国の場合「US」等の情報))を仮想マシン部203に送信する。
【0038】
また、仮想マシン部203は、「ローカル時刻」を取得する場合、インタフェース部217に「ローカル時刻取得要求(例えば、「int getLocalTime()」)」を送信する。インタフェース部217は、「ローカル時刻取得要求」を受け付けた場合、ロケール・ローカル時刻演算部210に「ローカル時刻」の算出を要求する。そして、インタフェース部217は、ロケール・ローカル時刻演算部210から「ローカル時刻情報(○年○月○日の△時△分△秒からの現在位置での経過秒)」を取得して、仮想マシン部203に送信する。
【0039】
仮想マシン部203は、インタフェース部217が送信した「ロケール情報」および「ローカル時刻」を受付ける。仮想マシン部203は、受け付けた「ロケール情報」および「ローカル時刻」を用いて動作環境の設定処理(言語環境、日付や時刻などの表記方法等の設定)を行う。仮想マシン部203は、設定された動作環境にしたがい、各種の処理を行う。例えば、仮想マシン部203は、設定された言語環境(例えば「英語」)で画像データの描画命令をナビゲーション部202のインタフェース部217に出力する。インタフェース部217は、設定された言語環境による画像データをグラフィック描画部212に出力する。その結果、表示装置205には、設定された言語環境(例えば「英語」)による画像が表示される。なお、「ロケール情報」および「ローカル時刻」の取得は、仮想マシン部203の初期化の際に行ってもよいし、仮想マシン部203の実行中に自動車が移動した場合に定期的にローカル時刻・ロケール情報を取得し、仮想マシン部203の処理に反映させてもよい。
【0040】
このように構成することにより、例えば、英語圏を走行中は英語でメッセージを画面に出力し、中国を走行中は中国語で画面出力すると言ったことが自動的に行える。また、本実施形態によれば、現在時刻も自動的に走行中の地域のローカル時刻に合わせられる。
【0041】
また、本実施形態では、言語環境の設定や時刻設定の機能を仮想マシン203側に設ける必要がなく、仮想マシン部203の構成を簡単にできる。そのため、仮想マシン側のソフトを開発する際には、既存のナビゲーション装置のアプリケーションを利用するだけでよい。すなわち、本実施形態では、仮想マシン側の開発コストの手間やコストを低減させることが可能になる。なお、仮想マシン部203がナビゲーション部202の機能を利用しないようにした場合、仮想マシン部203に独自にロケール・ローカル時刻演算部210の機能を設ける必要が生じてしまう。例えば、仮想マシン部203にGPSドライバにアクセスしてGPS情報を取得するための関数(緯度を取得するための関数「int getPositionNS()」、経度を取得するための関数「int getPositionEW()」)等を保持させておく必要がある。また、仮想マシン部203に、ロケールやローカル時刻を算出するためのデータベースを別途用意しておく必要が生じてしまう。
【0042】
続いて、第1実施形態のナビゲーション装置のハードウェア構成について、図3を用いて説明する。図3は、本発明の第1実施形態のハードウェア構成を説明するための図である。
【0043】
図示するように、ナビゲーション装置201は、装置本体300、地図・時差データ記憶装置204、表示装置205、音声出力装置206、GPS受信装置207、および車両情報取得装置208を有する。
【0044】
装置本体300には、各種の処理を実行するCPU301、I/Oインタフェース302、およびメモリ303を有するコンピュータシステムを用いることができる。I/Oインタフェース302は、外部の装置(地図・時差データ記憶装置204、表示装置205、音声出力装置206、GPS受信装置207、および車両情報取得装置208)との間で行なわれるデータの送受信を制御する。また、メモリ303には、ナビゲーションプログラム101、OS102、仮想マシン103、および仮想マシンアプリケーション107が記憶されている。
【0045】
なお、ナビゲーションプログラム101には、インタフェース105(図2のインタフェース部217の機能を実現するためのプログラム)およびナビアプリケーション104が含まれている。また、ナビアプリケーション104には、図2で説明したナビゲーション部217の機能(ロケール・ローカル時刻演算部210、GPSドライバ部211、グラフィック描画部212、ビデオドライバ部213、サウンド再生部214、およびサウンドドライバ部215)を実現するためのプログラム(ロケール・ローカル時刻演算プログラム、GPSドライバ、グラフィック描画プログラム、ビデオドライバプログラム、サウンド再生プログラム、およびサウンドドライバ)が含まれている。
【0046】
そして、上述したナビゲーション部202の機能は、CPU301がOS102上で稼動するナビゲーションプログラム101を実行することにより実現される。また、仮想マシン部203の機能は、CPU301がOS102上で稼動する仮想マシン103を実行することにより、或いはCPU301がOS102上で稼動する仮想マシン103および仮想マシンアプリケーション107を実行することにより実現される。
【0047】
続いて、仮想マシン103からの描画命令に応じて行われるナビゲーションプログラム101の処理について、図4および図5を用いて説明する。なお、以下の処理は、装置本体300のCPU301が各プログラム(OS102、仮想マシン103、仮想マシンアプリケーション107、ナビゲーションプログラム101)を実行することにより実現されるものである。しかしながら、以下では、各処理を担当するプログラムを明確にするために、各プログラム(仮想マシン103、仮想マシンアプリケーション107、ナビゲーションプログラム101)を動作主体として記載することとする。
【0048】
図4は、本発明の第1実施形態のナビゲーション装置が行う描画処理のフローを説明するための図である。
【0049】
先ず、仮想マシン103が起動し、初期化処理を行う。初期化処理において、仮想マシン103は、ナビゲーション装置201およびナビゲーションプログラム101がどのようなグラフィックス機能を持っているかについて調べる。具体的には、仮想マシン103は、ナビゲーションプロラム101のナビアプリケーション104のグラフィック描画プログラムに対して、インタフェース105を経由してグラフィックス属性情報(画素数、色、画面のサイズ等を示す情報)の送信を要求する(S501)。
【0050】
続いて、ナビゲーションプロラム101のグラフィック描画プログラムは、グラフィックス属性情報の送信要求を受け、インタフェース105を介し、仮想マシン103に対してグラフィックス属性情報を送信する(S601)。そして、仮想マシン103は、グラフィック描画プログラムからのグラフィックス属性情報を受信する(S502)。
【0051】
続いて、仮想マシン103は、取得したグラフィックス属性情報を元に、表示画面の一画素のビット数やカラーモデル、描画を行うためのオフスクリーンバッファなどを設定し(S503)、仮想マシンアプリケーション107の起動を開始し、S504の処理に進む。なお、起動された仮想マシンアプリケーション107は、表示装置205に表示させる画像データを生成する処理を行うものとする。
【0052】
ここで、オフスクリーンバッファおよび描画処理について説明する。仮想マシン103に限らず一般のグラフィックス描画を含むプログラムは、描画の際にハードウェアが持つビデオメモリへ直接描画するのではなく、オフスクリーンバッファと呼ばれる非表示のバッファを持ち、このバッファ上に描画する。そして、オフスクリーンバッファ上への描画の後に、表示の同期時に表示用のビデオメモリに転送するという手法を用いる場合が多い。この方式を利用するのは、低速なCPUや低速なビデオコントローラを使用する際、描画の様子が見えることで画面がちらついてしまうことを防ぐ効果があるためである。
【0053】
なお、従来技術では、このオフスクリーンバッファに描画したものを表示用ビデオメモリに転送するのは、そのアプリケーション(オフスクリーンバッファに描画処理をしたアプリケーション)が担当していた。この転送の際には、ソフトウェアで行うにしろ、ハードウェアアクセラレータを利用するにしろ、ビデオメモリの画素のビット数やカラーモデルなどを考慮して適切な変換処理を行う必要がある(すなわち、変換処理した上で転送が行われる)。本実施形態では、以下で説明するように、オフスクリーンバッファに描画した画像の変換処理および表示用ビデオメモリへの転送処理をナビゲーションプログラム101側の機能を利用して行うことにしている。このように構成することにより、仮想マシン103は、表示用メモリの画素のビット数やカラーモデルを意識することなく転送が行えるようになる。
【0054】
図4に戻り説明を続ける。S504では、仮想マシンアプリケーション107により、画像データが生成されて、その画像データを描画する描画命令が発行される。仮想マシン103は、仮想マシンアプリケーション107からの描画命令を受けてオフスクリーンバッファに描画を行う。
【0055】
続いて、仮想マシン103は、オフスクリーンバッファ上のデータを実際のビデオメモリ上に転送(同期)するかどうかを判定する(S505)。具体的には、S505において、仮想マシン103は、転送要求が在る場合、ナビゲーションプログラム101のグラフィックス描画プログラムに対して転送要求を行い、ナビゲーションプログラム101側の処理に移行する(S602に移行する)。一方、仮想マシン103は、転送要求がない場合、S504に戻り、仮想マシンアプリケーション107からの次の描画命令を待つ。なお、ビデオメモリへの転送は、仮想マシンアプリケーション107からの明示的な転送要求である場合や、定期的に仮想マシン103によって行われる場合もあり、実装依存である。
【0056】
S602では、ナビゲーションプログラム101のグラフィックス描画プログラムは、オフスクリーンバッファ上のデータに対して、描画色の変換等の変更処理を行なう。その後、S603において、ナビゲーションプログラム101のグラフィック描画プログラムは、オフスクリーンバッファ上のデータをビデオメモリに転送する。転送後は、再び、仮想マシン103側の処理であるS504に戻る。
【0057】
続いて、上述した図4の処理フローを採用することによる効果を、図5を用いて説明する。図5は、本発明の第1実施形態の描画処理により表示される画像を説明するための図である。なお、本実施形態では、ナビゲーションプログラム101は、車両のヘッドライトが「オン」であるか「オフ」であるかにより、表示画面に表示する空の色を変更する処理を行うものとする。
【0058】
図5(a)の表示画面601は、ヘッドライトオフ(昼間)の際にナビゲーションプログラム101により描画された画面を示し、602は、昼間の空を表している。また、図5(b)図の表示画面611は、ヘッドライトオン(夜間)の際にナビゲーションプログラム101により描画された画面を示し、612は、夜間の空を表している。603および613は、天気予報を示す画像を表している。この天気予報を示す画像(603および613)は、それぞれ、仮想マシン103上で動作する仮想マシンアプリケーション107により生成される画像である。なお、603および613以外の部分の画像データは、ナビゲーションプログラム101により生成されている。
【0059】
具体的には、仮想マシンアプリケーション107により生成された画像データ(603或いは613)は、仮想マシン103により、オフスクリーンバッファに描画される(図4のS504)。そして、仮想マシン103は、上述したS505により、画像データ(603或いは613)の表示同期要求をナビゲーションプログラム101に行う。
【0060】
ナビゲーションプログラム101のグラフィック描画プログラムは、上記のS602の処理により、オフスクリーンバッファに描画された画像データ(603或いは613)に描画色変換を行う。なお、ナビゲーションプログラム101のグラフィック描画プログラムは、車両情報取得装置208からの車両情報(ここでは、ヘッドライトのオン/オフ情報)に応じて、描画色変換を行う。グラフィック描画プログラムは、夜間の場合には、図5(b)図に示すように、「天気予報を示す画像613」を「空の色612」と紛らわしくないような色に変更する処理を行う。すなわち、変換処理を仮想マシン103側で意識する必要はなく、ナビゲーションプログラム101側が変換処理を自動的に行なう。
【0061】
このように、本発明の第1実施形態によれば、表示画面の配色を昼間と夜間とで変えたいような場合でも、仮想マシン103は、昼間/夜間を問わず例えば昼間のつもりで描画を行えばよい。この例のように、いかなる場合でも、仮想マシン103とナビゲーションプログラム101との見え方を合わせることができ、ユーザインタフェースの統一性が図れる。
【0062】
また、本発明の第1実施形態によれば、ナビゲーション装置201やナビゲーションプログラム101に変更が生じた場合でも、仮想マシン103に修正を加える必要がない。そのため、ナビゲーションプログラム101側の仕様が変更しても、仮想マシン103は、新しい仕様に即した描画やロケール情報の取得がそのまま行える。
《第2実施形態》
次に、本発明の第2実施形態を説明する。
【0063】
本発明の第2実施形態は、ナビゲーション装置201のキーやリモコンなどからの入力を仮想マシンがイベントとして受け取る例を示したものである。第2実施形態は、上述した第1実施形態の図2の機能を変更したものであり、第2実施形態の概念は図1で示したものと同じである。なお、第2実施形態の説明において、第1実施形態と同じ構成には同じ符号を用いることとする。また、第2実施形態の説明では、第1実施形態と異なる部分を中心に説明する。
【0064】
図6は、本発明の第2実施形態の機能ブロック図である。図示するように、ナビゲーション装置201は、仮想マシン部203、ナビゲーション部610、およびキー・リモコン等の利用者からの各種要求を受付ける入力装置620を有する。
【0065】
ナビゲーション部610は、仮想マシン部との間のデータを送受信するインタフェース部611、イベント・メッセージ変換部612、およびキー・リモコンスイッチドライバ613を有する。インタフェース部611は、仮想マシン部203との間で行われるデータの送受信を制御する。具体的には、ナビゲーション部610は、キー・リモコンデバイスドライバ613を経由してキーやリモコンなどの入力装置610からユーザ入力情報を取得する。通常、ここでの取得可能な情報とは、ハードウェアに特有なキーコードであったり、個々の「マウスボタンを押した/離したなどの情報」である。第2実施形態では、キー・リモコンデバイスドライバ613が受付けた入力装置620からの情報をイベント・メッセージ変換部304にて、適切な抽象化されたキーコード、およびマウスのダブルクリックの情報などに変換して、イベントやメッセージとして仮想マシン部203の要求に応じて受け渡す。仮想マシン部203は、この情報に基づいて仮想マシン上のイベントを発行する。
【0066】
続いて、第2実施形態のハードウェア構成を説明する。第2実施形態のナビゲーション装置は、図3に示す装置本体300に「入力装置620」を接続したものである。また、メモリ303のナビゲーションプログラム101には、図6で説明したナビゲーション部217の機能(インタフェース部611、イベント・メッセージ変換部612、キー・リモコンデバイスドライバ613)を実現するためのプログラムが含まれている。
【0067】
そして、上述したナビゲーション部610の機能は、CPU301がOS102上で稼動するナビゲーションプログラム101を実行することにより実現される。また、仮想マシン部203の機能は、CPU301がOS102上で稼動する仮想マシン103を実行することにより、或いはCPU301がOS102上で稼動する仮想マシン103および仮想マシンアプリケーション107を実行することにより実現される。
【0068】
このように、第2実施形態によれば、入力装置620から入力されるデータを変換するための変換テーブルを仮想マシン103側に持たせておく必要がなくなる。また、第2実施形態によれば、入力デバイスから仮想マシン103がデータを受け取るのか、ナビゲーションプログラム101側でデータを受け取るのかを一元化することができるようになる。
【0069】
このように、上述した本発明の第1および第2実施形態では、ナビゲーションプログラム101に、仮想マシン103との間でデータをやり取りするためのインタフェース105を設け、ナビゲーションプログラムが持つ機能(例えばハードウェア制御機能)を共通インタフェースとして提供するようにしている。その結果、本実施形態によれば、仮想マシンにより、これら機能が容易に利用可能になる。したがって、Java(登録商標)等の仮想マシンの開発者や、仮想マシンで動作するJava(登録商標)プログラムの開発者が、車両の現在位置やロケールなどの車両情報、ハードウェア仕様などを意識することなくプログラムの開発を行えるようになる。その結果、本発明の実施形態によれば、ナビゲーション装置等の組み込み機器のプログラムの開発の手間およびコストを低減することができる。
【0070】
また、本発明の実施形態は、仮想マシン103にJava(登録商法)仮想マシンを利用する場合に特に有効である。具体的には、Java(登録商標)仮想マシンにおいては、製品化の際にJava(登録商標)言語の開発元であるサン・マイクロシステムズ社のJava(登録商標)互換性テストを行って認証を取得する必要がある。そして、この認証は、Java(登録商標)仮想マシンの変更の都度必要になる。そのため、ハードウェアやデバイスドライバ、ミドルウェアの仕様変更に伴い、Java(登録商法)仮想マシンの修正の必要が生じた場合、その変更に伴い、再度、認証を取得する必要が生じてしまい開発工数や日数の増大を招く。本実施形態では、ハードウェアやデバイスドライバ等の仕様が変更した場合であっても仮想マシン側を修正する必要がないため、上述のような認証のための手間を低減することができる。
【0071】
なお、本発明は以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、上記実施形態の説明では、仮想マシン103が利用するナビゲーションプログラムの機能として、GPS受信装置207からのデータを利用したロケール・ローカル時刻演算機能、グラフィックス描画機能、サウンド再生機能、入力装置620からの入力受付機能を例にしたが、特にこれに限定するものではない。例えば、ナビゲーション装置201が音声認識プログラムを備えている場合、音声による入力を仮想マシン103の入力イベントに変換して、仮想マシン103に渡してもよい。
【0072】
また、上述した図4のフローチャートにおいて、S602とS603とを、一画面単位に行ってもよいし、一画素単位で描画色変換(S602)および転送(S603)を行ってもよい。どちらが効果的な方法かはハードウェアの仕様・機能に依存する。また、オフスクリーンバッファを持たない場合には、仮想マシン103がオフスクリーンバッファへの描画を行わないで、描画用のデータをナビアプリケーション101に渡すようにしてもよい。そして、ナビアプリケーション101は、描画色変換を行った後、直接ビデオメモリに描画を行ってもよい。上述した方式でも本発明の効果は変わらない。
【0073】
また、上記実施形態の説明において、ナビゲーションプログラム101の中にGPSドライバ、ビデオドライバ、サウンドドライバ、キー・リモコンデバイスドライバを含めるようにしたが特にこれに限定するものではない。GPSドライバ、ビデオドライバ、サウンドドライバ、キー・リモコンデバイスドライバがOSの中に含まれていてもよい。また、GPSドライバ、ビデオドライバ、サウンドドライバ、キー・リモコンデバイスドライバが、OS上で稼動するナビゲーションプログラムと別のプログラムであってもよい。
【0074】
また、上記実施形態では、本発明をナビゲーション装置に適用した場合について説明したが、これは例示に過ぎない。例えば、本発明を他の組み込み機器(例えば、携帯電話、デジタル家電)に適用するようにしてもかまわない。
【図面の簡単な説明】
【0075】
【図1】本発明の第1実施形態のナビゲーション装置の概念図である。
【図2】本発明の第1実施形態のナビゲーション装置の機能ブロック図である。
【図3】本発明の第1実施形態のハードウェア構成を説明するための図である。
【図4】本発明の第1実施形態のナビゲーション装置が行う描画処理のフローを説明するための図である。
【図5】本発明の第1実施形態の描画処理により表示される画像を説明するための図である。
【図6】本発明の第2実施形態の機能ブロック図である。
【符号の説明】
【0076】
100…ハードウェア、101…ナビゲーションプログラム、102…OS、103…仮想マシン、104…ナビアプリケーション、105…インタフェース、107…仮想マシンアプリケーション、201…ナビゲーション装置、202…ナビゲーション部、203…仮想マシン部、204…地図・時差データ記憶装置、205…表示装置、206…音声出力装置、207…GPS受信装置、208…車両情報取得装置、210…ロケール・ローカル時刻演算部、211…GPSドライバ部、212…グラフィック描画部、213…ビデオドライバ部、214…サウンド再生部、215…サウンドドライバ部、300…装置本体、301…CPU、302…I/Oインタフェース、303…メモリ、610…ナビゲーション部、611…インタフェース部、612…イベント・メッセージ変換部、613…キー・リモコンデバイスドライバ部、620…入力装置

【特許請求の範囲】
【請求項1】
OS(Operating System)プログラム上でナビゲーションプログラムおよび仮想マシンプログラムを実行する演算装置を有するナビゲーション装置であって、
前記OSプログラム、前記ナビゲーションプログラム、および仮想マシンプログラムを記憶する記憶装置を有し、
前記仮想マシンプログラムは、
前記演算装置に、必要な機能の提供を前記ナビゲーションプログラムに要求する処理を実行させ、
前記ナビゲーションプログラムは、
前記仮想マシンプログラムとのインタフェースを有し、前記インタフェースを介して前記仮想マシンプログラムから受付けた要求にしたがい、前記演算装置に、該受付けた要求に対応するナビゲーション処理を実行させること
を特徴とするナビゲーション装置。
【請求項2】
請求項1に記載のナビゲーション装置であって、
GPS(Global Positioning System)受信装置が接続されていて、
地図データと、地図データの所定位置毎に標準時刻からの時差を対応付けた時差データとを記憶していて、
前記ナビゲーションプログラムには、
前記演算装置に、前記GPS受信装置から位置データを取得し、該取得した位置データおよび前記地図データを用いて車両が存在している位置に対応するロケール情報を算出するロケール算出処理と、前記GPS受信装置から標準時間を取得し、前記取得した位置データおよび標準時間と前記時差データとを用いて車両のローカル時刻を算出する処理とを実行させるプログラムが含まれていて、
前記ナビゲーションプログラムは、
前記仮想現マシンプログラムから受付けた要求がロケール情報の送信要求の場合、前記演算装置に、前記ロケール算出処理および該算出したロケール情報を前記仮想マシンプログラムに送信する処理を実行させ、
前記仮想現マシンプログラムから受付けた要求がローカル時刻の送信要求の場合、前記演算装置に、前記ローカル算出処理および該算出したローカル時刻を前記仮想マシンプログラムに送信する処理を実行させること
を特徴とするナビゲーション装置。
【請求項3】
請求項1に記載のナビゲーション装置であって、
表示装置が接続されていて、
前記ナビゲーションプログラムには、前記演算装置に、所定形式の画像データを前記表示装置に表示する処理を実行させるプログラムが含まれていて、
前記ナビゲーションプログラムは、
前記仮想現マシンプログラムから受付けた要求が画像データを描画する要求の場合、前記演算装置に、前記画像データを前記所定形式の画像データに変換した上で前記表示装置に表示する処理を実行させること
を特徴とするナビゲーション装置。
【請求項4】
請求項1に記載のナビゲーション装置であって、
音声出力装置が接続されていて、
前記ナビゲーションプログラムには、前記演算装置に、所定形式の音声データを前記音声出力装置に出力する処理を実行させるプログラムが含まれていて、
前記ナビゲーションプログラムは、
前記仮想現マシンプログラムから受付けた要求が音声データを出力する要求の場合、前記演算装置に、該音声データを前記所定形式の音声データに変換した上で前記音声出力装置に出力する処理を実行させること
を特徴とするナビゲーション装置。
【請求項5】
請求項1に記載のナビゲーション装置であって、
利用者からの各種操作を受付ける入力装置が接続されていて、
前記ナビゲーションプログラムには、前記演算装置に、前記入力装置からのデータを受付け、該受付けたデータを所定のイベントに変換する処理を実行させるプログラムが含まれていて、
前記ナビゲーションプログラムは、
前記演算装置に、前記仮想現マシンプログラムからの要求にしたがい、前記変換したイベントを該仮想マシンプログラムに送信する処理を実行させること
を特徴とするナビゲーション装置。
【請求項6】
請求項1〜5のいずれか一項に記載のナビゲーション装置であって、
前記仮想マシンプログラムは、Java(登録商標)仮想マシンであること
を特徴とするナビゲーション装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−350469(P2006−350469A)
【公開日】平成18年12月28日(2006.12.28)
【国際特許分類】
【出願番号】特願2005−172834(P2005−172834)
【出願日】平成17年6月13日(2005.6.13)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】