【実施例】
【0029】
1.
例示的なナビゲーション・システム・プラットフォーム
A.
概観
図1を参照すると、ナビゲーション・システム110の例示的実施形態を示す図がある。
図1に記載の実施形態において、ナビゲーション・システム110は、乗り物111、例えば自動車、トラック、またはバスに配置されている。ナビゲーション・システム110は、ハードウェアおよびソフトウェア・コンポーネントの組み合わせである。ナビゲーション・システム110のハードウェア・コンポーネントは、プロセッサ112、メモリ120、等を含んでもよい。
図1に記載の実施形態において、ナビゲーション・システム110はまた、それがインストールされている乗り物111の位置を決定する位置測定システム124も含む。位置測定システム124は、乗り物111の速度、方位、方向、角加速度等を感知するセンサ125または他のコンポーネントを含んでもよい。位置測定システム124は、GPSシステムも含んでもよい。
【0030】
ナビゲーション・システム110はまた、ユーザ・インターフェース131も含む。前記ユーザ・インターフェース131は、ナビゲーション・システムのエンド・ユーザからの入力を受信するための、適切な手段127を含む。入力受信手段127は、キーボード、キーパッド、または他の種類の入力パネル127(P)、マイクロフォン127(M)を、音声認識ソフトウェア等、エンド・ユーザ入力を受信するための他の手段と同様に含んでもよく、それらを通して、エンド・ユーザは、ナビゲーション情報およびサービスを要求してもよい。ユーザ・インターフェース131はまた、エンド・ユーザに、情報を戻すための適切な手段129も含む。情報供給手段129は、それらを通してエンド・ユーザが、ナビゲーション・システム110から情報およびサービスを供給されることができるディスプレイ129(D)およびスピーカ129(S)(スピーチ合成ハードウェアおよびソフトウェアを含む)を含んでもよい。
【0031】
ナビゲーション・システム110はまた、通信システム128も含む。通信システム128は、データ・メッセージをワイヤレスで送信および受信するための適切なハードウェアおよびソフトウェアを含む。通信システム128は、メッセージを送信するための、あらゆる利用可能な技術を使用して実行されてもよい。通信システム128は、以下に詳述されるとおり、操作上は、メッセージがナビゲーション・システムから送信され、およびそれによって受信されるように、ナビゲーション・システム110の他のコンポーネントに接続される。
【0032】
図2は、ユーザ・インターフェース131のコンポーネントを示す。
図2において、ナビゲーション・システム110は、乗り物111のダッシュボード133にインストールされている。ディスプレイ129(D)、スピーカ129(S)、および入力パネル・キーパッド127(P)を含む、ユーザ・インターフェース131のコンポーネントは、ナビゲーション・システム110の前面パネルにインストールされるものとして図示されている。
【0033】
上述されたコンポーネントのすべては、従来のもの(または従来以外のもの)でもよく、これらのコンポーネントの製造および使用は、当業者には公知である。
【0034】
再度、
図1を参照すると、ユーザ・インターフェース入力手段127は、エラー報告キーまたはボタン127(R)を含む。
図2に記載のとおり、報告キーまたはボタン127(R)は、ナビゲーション・システム110の前面パネルにインストールされるものとして図示されている。報告キー127(R)の機能は後述される。
【0035】
B.
地図データベース
図1を再度参照すると、ナビゲーション特性をエンド・ユーザに供給するために、ナビゲーション・システム110は、地図データ140を使用する。地図データ140は、一つ以上の地図領域または網羅区域に関する情報を含む。地図データ140は、乗り物111に記憶されてもよく、代替的には、地図データ140は、遠隔地に記憶され、およびナビゲーション・システム110の一部でもよいワイヤレス通信システム128を通して、乗り物111におけるナビゲーション・システム110が利用できるようになっていてもよい。他の代替例において、地図データ140の一部は、乗り物111に記憶されてもよく、地図データ140の一部は、遠隔地に記憶され、および遠隔地からワイヤレス通信システム128を介して、乗り物111におけるナビゲーション・システム110が利用できるようになっていてもよい。
【0036】
図1に記載の実施形態において、地図データ140のいくつかまたはすべては、乗り物111にある媒体132に記憶される。従って、ナビゲーション・システム110は、前記媒体132がインストールされ、およびアクセスされうるドライブ114(または、他の適切な周辺装置)を含む。一つの実施形態において、記憶媒体132は、CD−ROMディスクである。他の代替的実施形態において、記憶媒体132は、PCMCIAカードでもよく、その場合、ドライブ114はPCMCIAスロットに替わるであろう。将来開発されるかもしれない記憶媒体と同様に、固定またはハード・ディスク、DVDディスク、または他の現在利用可能な記憶媒体を含む様々な他の記憶媒体が使用されてもよい。
【0037】
地図データ140は、網羅された地図領域における道路の位置を特定するデータを含む。地図データ140はまた、道路に沿った移動の方向に関する制限(例えば、一方通行路)、道路に沿った通りの住所、通りの名前、道路に沿った速度制限、交差点での方向転換制限等、道路に関するデータも含む。地図データ140はまた、ホテル、レストラン、美術館、スタジアム、会社、自動車販売会社、自動車修理工場等、地図領域における関心のある場所に関する情報も含んでもよい。地図データ140はまた、都市、街、または他の自治体等、地域に関する情報を含んでもよい。地図データ140は、地図領域に関する他の種類のデータを含んでもよい。
【0038】
地図データ140は、様々な異なる形式でもよい。一つの実施形態において、地図データ140は、一つ以上のコンピュータ読み取り可能データ・ファイルまたはデータベース141の形式である。地図データベースを形成しおよび編成するための方法は、アメリカ合衆国特許第5,953,722号、第5,974,419号および第5,968,109号に開示されており、その開示は、ここに参照のために採用されている。一つの実施形態において、地図データベース141は、複数の道路区分データ記録を含む。各道路区分データ記録は、地図領域における航行可能な道路の一部(または一区分)を表す。地図データベースの一つの種類において、地図領域における、各表示された道路区分に関して、少なくとも一つのデータベース・エントリ(「エンティティ(entity)」または「記録(record)」とも称される)がある。道路区分データ記録は、それによって、前記記録が地図データベースにおいて識別されうる、区分IDを含んでもよい。データ属性は、表示された道路区分の特性または特徴を記述するために、各道路区分データ記録と関連している。道路区分データ記録は、道路に沿った速度制限(または速度制限範囲)、道路の種類(例えば、管制アクセス、ランプ(ramp)、橋、トンネル、有料道路、フェリー等)、機能的ランク、許可されている移動の方向、アドレス範囲、名前、前記道路区分が一部を成す道路の高速道路指定等を表す属性を含んでもよい。道路区分に関連する様々な属性が、単一の道路区分記録に含まれてもよく、または相互参照される一つ以上の種類の記録に含まれてもよい。
【0039】
各物理的道路区分は、それに関連する二つのノードを有し、道路区分の各端点に一つある。一つの実施形態において、地図データベース141は、とれらのノードを表す複数のデータ・エンティティを含む。一つの実施形態において、各道路区分データ記録は、表示された道路区分の端点を表すノード・データ記録へのデータ参照を含む。
【0040】
(「区分(segment)」および「ノード(node)」という用語は、これらの物理的地図特性を記述するための唯一の用語を表し、これらの特性のための他の用語は、これらの概念の範疇に入るものである。)
【0041】
一つの実施形態において、地図データは、イリノイ州、ナビゲーション・テクノロジー・コーポレーション・オブ・ローズモント(Navigation Technologies Corporation of Rosemont)によって供給される。しかしながら、ここで開示されている本発明の概念は、特定のデータ源に限定されないものと理解される。
【0042】
C.
ナビゲーション・プログラミング
図1に記載のとおり、ナビゲーション・システム110は、ナビゲーション・プログラミング228を含み、または使用する。ナビゲーション・プログラミング228は、ナビゲーション・システム110によって実行される機能および/または特性を供給するソフトウェアを含む。ナビゲーション・プログラミング228は、様々なナビゲーション関連特性および/または機能を供給するために、ユーザ・インターフェース131を介した、エンド・ユーザからの入力との関連で、およびおそらく、位置測定システム124からの出力との関連で、地図データ140を使用する。
【0043】
ナビゲーション・プログラミング228は、ナビゲーション・システム110における不揮発性記憶媒体229に記憶されてもよい。代替的には、ナビゲーション・プログラミング228および地図データ140は、単一の記憶装置または媒体に、一緒に記憶されてもよい。代替的には、ナビゲーション・プログラミング228は、遠隔地にあってもよく、および通信システムを介して、ナビゲーション・システム110へと供給され、またはナビゲーション・システム110によってアクセスされてもよい。
【0044】
一つの実施形態において、ナビゲーション・プログラミング228は、Cプログラミング言語で書かれるが、他の実施形態においては、C++、Java
TM、Visual Basic等、他のプログラミング言語が使用されてもよい。
【0045】
ナビゲーション・プログラミング228は、個別のコンポーネント・アプリケーション(プログラム、サブプログラム、ルーチン、またはツールとも称される)で形成されてもよい。ナビゲーション・プログラミング228のコンポーネント・アプリケーションは、定義されたプログラミング・インターフェースを通して連動する。
図3は、
図1に記載のナビゲーション・システムに含まれるナビゲーション・プログラミング228の一つの実施形態に関する、コンポーネント・アプリケーションのいくつかを示すブロック図である。
図3に記載のコンポーネント・プログラムに加えて、ナビゲーション・プログラミング228は、他のコンポーネント・サブルーチンまたはプログラムを含んでもよい。
【0046】
図3において、ナビゲーション・プログラミング228は、ナビゲーション・アプリケーション・マネージャ(navigation application manager)240を含むように記載されている。ナビゲーション・アプリケーション・マネージャ240は、ナビゲーション・システム110の機能の全体的な管理を供給するプログラムまたはルーチンである。ナビゲーション・アプリケーション・マネージャ240はまた、位置測定システム124およびユーザ・インターフェース131等、ナビゲーション・システム・ハードウェアのためのサポート、およびそれらとのインターフェースも含んでもよい。ナビゲーション・プログラミング228は、ユーザ・インターフェース・ハードウェア131と連結するためのユーザ・インターフェース機能242を含む。これらのユーザ・インターフェース機能242は、ユーザ・インターフェース・ハードウェア131のスクリーン・ディスプレイ129(D)上で、エンド・ユーザにメニュを提示すること、ユーザ・インターフェース・ハードウェア131の入力装置127を介して、エンド・ユーザからの入力を受信すること、ユーザ・インターフェース・ハードウェア131のスクリーン・ディスプレイ129(D)上で、エンド・ユーザに結果を表示すること等、を供給してもよい。
【0047】
ナビゲーション・プログラミング228は、ナビゲーション・アプリケーション・マネージャ240と連結し、およびナビゲーション・システムによって実行されるべき特定のナビゲーション関連特性または機能を供給するサブ・プログラムまたはルーチンを含む。これらのサブ・プログラムは、ルート算出アプリケーション250、ルート・ガイダンス・アプリケーション252、地図表示アプリケーション253、乗り物位置測定アプリケーション256および地域別分類アプリケーション258を含む。ナビゲーション・プログラミング228は、これらに加えて、他のナビゲーション・アプリケーションを含んでもよい。
【0048】
D.
ナビゲーション・システムのオペレーションの例
ルート・ガイダンスへの要求は、エンド・ユーザからの入力に起因してもよい。エンド・ユーザは、所望の目的地を識別する。エンド・ユーザは、通りの住所、場所の名前、交差点、関心のある場所の種類等によって、所望の目的地を識別してもよい。前記要求は、ユーザ・インターフェース131を介して受信される。エンド・ユーザの入力は、ユーザ・インターフェース機能242およびマネージャ・アプリケーション240を介して、地域別分類アプリケーション258に転送される。地域別分類アプリケーション258は、所望の目的地と関連のある、一つ以上のデータベース記録を識別する。地域別分類アプリケーション258は、一つ以上の識別されたデータベース記録を示すデータを、ルート算出アプリケーション250へ転送する。
【0049】
一方で、乗り物位置測定アプリケーション256は、現在乗り物が存在する道路区分を表すデータベース記録を識別する。乗り物位置測定アプリケーション256は、識別されたデータベース記録を示すデータを、ルート算出アプリケーション250へと転送する。
【0050】
開始場所および所望の目的地の場所を識別するデータを受信すると、ルート算出アプリケーション250は、開始場所と目的地場所との間の一つ以上の解ルートを決定しようと試みる。解ルートは、乗り物が、開始場所から目的地場所へと移動することができる、一連の接続された道路区分で形成される。ルート算出アプリケーション250がルートを算出する時、それは地図データ140にアクセスし、開始場所および目的地場所周辺、およびそれらの間の道路区分を表す道路区分データ記録を入手する。ルート算出アプリケーション250は、開始場所から目的地場所への、少なくとも一つの有効な解ルートを決定することを試みるために、道路区分データ記録における情報を使用する。ルート算出アプリケーション250は、解ルートを決定する時に、様々な手段またはアルゴリズムを使用してもよい。乗り物が移動するための、有効な解ルートを決定する時に、ルート算出プログラム250は、移動方向制限(例えば、一方通行路)、交差点での転回制限(例えば、左折禁止)、等を考慮するために、道路区分データ記録と関連するデータ属性を使用する。ルート算出アプリケーション250は、移動時間が最短であり、距離が最も短く、または他の基準に合致する解ルートを見付けるように試みてもよい。
【0051】
ルート算出アプリケーション250は、出力を供給する。
図3の実施形態において、ルート算出アプリケーション250の出力は、複数の道路区分を識別する、順番のリスト(ordered list)254の形式である。前記複数の道路区分は、ルート算出アプリケーション250によって算出された、起点と目的地との間の、継続的航行可能ルートを形成する。(ルート算出アプリケーション250は、一つ以上の解ルートを算出してもよい。)
【0052】
ルート算出アプリケーション250によって決定される道路区分のリスト254は、ルート・ガイダンス・アプリケーション252へと供給される。ルート・ガイダンス・アプリケーション252は、ルート算出アプリケーション250によって出力されたリスト254によって定義されたルートを移動するための、移動(maneuvering)命令およびアドバイスを、エンド・ユーザに供給するために、地図データベース141からの追加情報と同様に、リスト254における情報を使用する。
【0053】
適切な時間および場所で移動命令を供給するために、ナビゲーション・システム110は、位置測定システム124からのデータを使用する。位置測定システム124は、移動する乗り物の位置を決定するために使用されるデータを獲得する。ナビゲーション・プログラミング228における乗り物位置測定アプリケーション256は、地図データベース141におけるデータと相対した乗り物の場所を決定するために、位置測定システム124からのデータを使用する。乗り物の位置と、算出された走行ルート254における道路区分の位置との比較に基づいて、移動命令は、適切な時間または場所で供給される。
【0054】
ルート算出アプリケーション250の出力はまた、乗り物が算出されたルートを移動するときに、地図が表示されるように、地図表示アプリケーション253にも供給されてもよい。
【0055】
ルート算出の方法は、特許出願第09/047,698号、1998年3月25日提出に開示されている;ルート・ガイダンスを供給する方法は、特許出願第第08/893,201号、1997年7月15日提出および第09/196,279号、1998年11月19日提出に開示されている;乗り物位置測定を供給する方法は、特許出願第09/276,377号、1999年3月25日提出に開示されている;および地図表示を供給する方法は、特許出願第09/047,141号、1998年3月24日提出、および特許出願第09/092,625号、1998年6月5日提出に開示されている。これら6の特許出願の開示内容は、参照のため、ここに採用されている。これらの特許出願において開示されている方法は、これらの機能が供給されうる方法のいくつかのみを表しており、ここに請求されている主題は、特定の方法に限定されない。現在公知の、または将来開発される、あらゆる適切な方法が採用されてもよい。
【0056】
II.
報告特性
第一の実施形態に従って、ナビゲーション・システムは、エラー、不正確性、またはナビゲーション・システムによって使用される地図データにおける省略、またはナビゲーション・システムの他の問題に関する、エンド・ユーザによる報告を容易にする特性を含む。前記特性は、地図データにおいて感知されたエラー、質の低いルート、紛らわしいルート・ガイダンス等を報告するために、ナビゲーション・システムのエンド・ユーザによって使用されうる。
【0057】
エラー報告特性を供給するために、ナビゲーション・システム110は、報告プログラムを含む。
図3を参照すると、報告プログラム300は、ナビゲーション・プログラミング228におけるアプリケーションに含まれるように図示されている。一つの実施形態において、報告プログラム300は、モニタリング・コンポーネント310および報告コンポーネント320を含む。
【0058】
報告プログラム300のモニタリング・コンポーネント310は、ナビゲーション・アプリケーション228のいくつかのオペレーションを監視する、ソフトウェア・プログラムまたはルーチンである。モニタリング・コンポーネント310は、ナビゲーション・システムが使用されている間、背景で継続的に動作してもよい。
図4は、モニタリング・コンポーネント310によって実行されるステップを示す。モニタリング・コンポーネント310は、その他のアプリケーションのいくつかから、データを受信する(ステップ330)。特に、モニタリング・コンポーネント310は、ユーザ・インターフェース131を介してエンド・ユーザに供給されるナビゲーション関連情報を示すデータを受信する。例えば、ルート・ガイダンス・アプリケーション252が、ユーザ・インターフェース131を介して、エンド・ユーザに走行命令を供給する場合、モニタリング・コンポーネント310は、走行命令を示すデータを受信する。モニタリング・コンポーネント310は、ルート・ガイダンス・アプリケーション252からユーザ・インターフェース131へと送信された同じデータのコピーを受信してもよく、代替的には、モニタリング・コンポーネント310は、前記データの短縮した、あるいは圧縮したバージョンを受信してもよい。他の例に従って、地図表示アプリケーション253が、ユーザ・インターフェース131のディスプレイ・スクリーン129(D)上に、エンド・ユーザへと表示される地図画像のためのデータを供給する場合、モニタリング・コンポーネント310は、地図画像を示すデータを受信する。
【0059】
これらのデータが様々なナビゲーション・アプリケーションから受信されると、モニタリング・コンポーネント310は、エンド・ユーザに供給された最近のナビゲーション関連情報のログ340を維持する(ステップ350)。ログ340は、ナビゲーション・システム110のRAM(
図1に記載の120)の一部であるバッファ・メモリに維持されてもよい。モニタリング・コンポーネント310は、エンド・ユーザに供給されるナビゲーション関連情報の各アイテムに関して、ログ340にエントリ355をする。一例として、移動命令、例えば「次の交差点で左折してください」がエンド・ユーザに供給されると、モニタリング・コンポーネント310は、エンド・ユーザが、ルート・ガイダンスおよび供給された特定のガイダンス(すなわち、「次の交差点を左折してください」)を供給されたことを示すデータ・エントリ355を、ログ340に含むであろう。他の一例として、地図画像が、ディスプレイ・スクリーン129(D)上において、エンド・ユーザに供給された場合、モニタリング・コンポーネント310は、エンド・ユーザが、地図および供給された特定の地図を示すデータを供給されたことを示すデータ・エントリ355を含むであろう。
【0060】
モニタリング・コンポーネント310は、タイム・スタンプ(time stamp)357を各エントリ355と関連させる。タイム・スタンプ357は、前記関連するガイダンスが、エンド・ユーザに供給された時間を示す。また、モニタリング・コンポーンネント310は、ナビゲーション関連情報が、ナビゲーション・システムによってエンド・ユーザに供給された時の乗り物の位置を示すデータ359を、各エントリ355と関連させてもよい。乗り物の位置を示すデータ359は、乗り物位置測定アプリケーション256(
図3に記載)から入手される。
【0061】
ナビゲーション・システムが、新しいナビゲーション情報を、エンド・ユーザに供給し続けると、モニタリング・コンポーネント310は、新しいエントリ355をログ340に追加する。一つの実施形態に従って、モニタリング・コンポーネント310は、ログ340に関して、クリーン・アップ機能(clean up function)を実行する。ナビゲーション・システムが、新しいナビゲーション情報をエンド・ユーザに供給すると、モニタリング・コンポーネント310は、ログ340における最も古いエントリを、新しいエントリと取り替える、すなわちファースト・イン・ファースト・アウト(first-in-first-out)である。例えば、新しい移動命令がナビゲーション・システムによって供給されると、エントリが、これらの移動命令を示すログに追加される。以前に、例えば数分前に供給された移動命令を示すログにおけるエントリは、廃棄される。それゆえに、前記ログは、少なくとも、最近、すなわち過去数分間に、エンド・ユーザに供給されたナビゲーション関連情報を維持する。
【0062】
ログの、ファースト・イン・ファースト・アウト・メンテナンスの一つの例外が、継続的に供給されるナビゲーション情報に適用される。継続的に供給されるナビゲーション情報は、相対的に長い期間、ナビゲーション・システムによって供給され続ける情報を含む。ディスプレイ129(D)上の地図画像は、継続的に供給されるナビゲーション情報の一例である。同じ地図画像が、数秒間、または数分間、ディスプレイ・スクリーン上に表示されてもよい。同じ地図画像が表示されている間、ナビゲーション・システムは、エンド・ユーザに、いくつかの移動命令を供給したかもしれない。モニタリング・コンポーネント310は、例えば表示されている地図画像等、継続的に供給されるナビゲーション情報に関するエントリを、前記情報がエンド・ユーザに供給されている限り、ログ340に維持する。継続的に供給される情報が、もはやエンド・ユーザに供給されない時は、前記情報に関するログ・エントリは廃棄され、他の、新しく供給されたナビゲーション情報に関するエントリと取り替えられる。
【0063】
モニタリング・コンポーネント310は、エンド・ユーザが、報告が作成されるのを要求したかを調べる(ステップ360)。エンド・ユーザは、報告キーまたはボタン(
図2に記載の127(R))を押すことによって、またはユーザ・インターフェースへの、他の適切な入力によって、報告が作成されることを要求してもよい。エンド・ユーザが、報告が作成されることを要求しなかった場合、モニタリング・コンポーネント310は、エンド・ユーザに供給されているナビゲーション情報を示し、前記ナビゲーション情報をログに記憶するデータを収集し続ける(ステップ362)。
【0064】
ナビゲーション・システムが動作している間はいつでも、エンド・ユーザは、ナビゲーション・システムにおいて使用される地図データにおける明らかなエラーまたは不正確性を感知するかもしれない。感知されたエラーまたは不正確性は、あらゆる種類である可能性があり、様々な方法で遭遇するかもしれない。たとえば、目的地へのルートに従うように案内されている間に、ナビゲーション・システムは、エンド・ユーザに、正しくなく、不正確な、または紛らわしいガイダンスを供給するかもしれない。この例に従って、ナビゲーション・システムは、エンド・ユーザに「次の交差点で左折する」ように忠告するかもしれないが、次の交差点は、左折を禁止する標識を有する。他の例に従って、ナビゲーション・システムは、誤った名前で、通りを識別するかもしれない。
【0065】
ナビゲーション・システムが、間違った、不正確な、または紛らわしい情報をエンド・ユーザに供給するには、様々な理由がある。一つの可能性のある原因は、ナビゲーション・システムによって使用される地図データが間違っているかもしれないことである。地図データは、データが収集される時に犯されるエラーによって間違うかもしれない。代替的に、ナビゲーション・システムによって使用される地図データは、エンド・ユーザのシステムによって使用される地図データが収集されたために、地図データによって表される物理的特性が変化したことで、間違っているかもしれない。
【0066】
エンド・ユーザが、ナビゲーション・システムから間違った、不正確な、または紛らわしいガイダンスを受信する他の可能性のある原因は、ナビゲーション・システムにおけるソフトウェア・プログラミングのエラーかもしれない。この場合、地図データは正しいかもしれないが、ナビゲーション・システムをプログラミングしているソフトウェアが、地図データを正しく使用しないために、エンド・ユーザは、間違った、不正確な、または紛らわしいガイダンスを受信する。例えば、ナビゲーション・システム・ソフトウェアが、乗り物の位置を不正確に決定すると、間違った通りの名前が供給され、それによってエンド・ユーザに、実際にナビゲーション・プログラミングがエラーの原因となっている時に、地図データが不正確であるという印象を与える。
【0067】
ナビゲーション・システムが、間違ったまたは紛らわしいガイダンスを供給する他の理由は、ナビゲーション・システムによって使用される地図データが、よりよい指示を供給するために必要な属性を含まないかもしれないことである。例えば、ある地図領域にある道路を表すデータは、一方通行情報が、その領域に関して、まだ収集されていないために、一方通行情報を含まないかもしれない。代替的には、ナビゲーション・システムにおけるソフトウェア・プログラミングは、走行指示を供給する時に、一方通行路を考慮しないかもしれない。
【0068】
感知されたエラーの原因に関わらず、エンド・ユーザが明らかなエラーを感知した時は、前記ユーザは、報告プログラム300を使用して、感知されたエラーに関する報告を作成する。報告プログラム300によって、データベース・ディベロッパにとって有意義な報告を作成するために必要とされるいくつかの、またはすべてのステップを自動的に実行することによって、および前記データベース・ディベロッパに前記報告を送信することによって、感知されたエラーの報告を容易にする。
【0069】
前記報告プログラムを使用して、感知されたエラーを報告するために、エンド・ユーザは、報告プログラム300のエラー報告コンポーネント320のオペレーションを開始する。
図3に関連して上述されたとおり、エラー報告コンポーネント320は、報告プログラム300の一部である。エンド・ユーザは、ユーザ・インターフェース131の適切なオペレーションによって、報告プログラム300のエラー報告コンポーネント320のオペレーションを開始する。
図2に記載の実施形態に従って、ユーザ・インターフェース131は、専用エラー報告ボタンまたはキー(例えば、
図2に記載のエラー・ボタン127(R))を含んでもよい。エンド・ユーザは、感知されたエラーを報告するために、エラー報告コンポーネント320のオペレーションを開始するための、前記専用エラー報告ボタン127(R)を操作する。(代替的実施例において、専用エラー報告ボタンの代わりに、ナビゲーション・システム110は、キーパッド127(P)またはマイクロフォン127(M)を使用することによって、エラー報告コンポーネント320を開始させることを供給してもよい。報告プログラムを操作するために、キーパッド127(P)またはマイクロフォン127(M)の使用を支援するために、メニュまたはプロンプト(prompt)が、ディスプレイ129(D)またはスピーカ129(S)において供給されてもよい。)
【0070】
図4を参照すると、モニタリング・コンポーネント310は、エンド・ユーザが、エラー報告ボタン127(R)を押したか、そうでなければ前記ユーザがエラーを報告したがっていることを示すために、ユーザ・インターフェース131を操作したかを調べる(ステップ360)。モニタリング・コンポーネント310が、エラー報告が所望されていることを示すユーザ入力を検出すると、モニタリング・コンポーネント310は、エラー報告コンポーネント320を呼び出す。
【0071】
エラー報告コンポーネント320は、感知されたエラーに関する報告を形成し、および送信することに関与するステップのすべて、またはいくつかを実行する。エラー報告コンポーネント320は、完全に自動的に前記報告を形成しおよび送信してもよく、代替的には、エラー報告プログラム320は、エンド・ユーザからの入力を含むエラー報告を供給してもよい。
図5は、エラー報告370を形成し、および送信するために、エラー報告コンポーネント320によって実行されるステップのいくつかを示す。
図5に記載のエラー報告コンポーネント320の実施例は、完全に自動的に、すなわち、エンド・ユーザからの入力なしに、エラー報告を形成する。
【0072】
図5において、エラー報告コンポーネント320は、ログ340から最近供給されたナビゲーション・ガイダンスを示すデータを入手するステップを含む(ステップ378)。エラー報告コンポーネント320は、前記データのいくつかを廃棄してもよい(ステップ378)。例えば、ログ340からのデータのいくつかが、相対的に古く、または冗長である場合、これらのデータは廃棄されてもよい。エラー報告コンポーネントはまた、適切であれば、ログ340からのデータを圧縮してもよい。エラー報告コンポーネント320は、エラー報告ルーチンが開始した時間を示すデータ372を、報告370に含む(ステップ382)。エラー報告コンポーネント320はまた、ナビゲーション・システムによって使用される地図データベース(
図1に記載の141)のバージョン、リリース、および網羅領域を識別するデータ374も含む(ステップ384)。任意で、エラー報告コンポーネント320はまた、乗り物データ376も含む(ステップ386)。乗り物データ376は、乗り物の速度、方向、前記乗り物がナビゲーション・システムによって算出されたルート上に現在いるのか、等を含んでもよい。乗り物データ376は、様々な乗り物センサ(例えば、
図1に記載のセンサ125)から入手されてもよく、代替的には、同じ乗り物データのいくつかを使用するプログラミング228におけるナビゲーション・アプリケーションから入手されてもよい。
【0073】
これらすべてのアイテムの情報が収集されると、前記情報は、報告に適したフォーマットで編成される(ステップ385)。一つの実施例において、報告370は、WML(ワイヤレス・マークアップ言語)(Wireless Markup Language)、WAP(ワイヤレス・アプリケーション・プロトコル)(Wireless Application Protocol)、またはXML(エクステンシブル・マークアップ言語)(Extensible Markup Language)等、標準化されたフォーマットで編成される。これによって、様々なナビゲーション・システム・ハードウェア・プラットフォームで準備される報告が、データ変換の必要なく、収集され、および使用されることができる。報告が準備された後、エラー報告コンポーネント320は、前記報告370を、すぐに地図データベース・ディベロッパに送信するか(オプション1)、または代替的には、エラー報告コンポーネント320は、前記報告を記憶し、それから前記報告を地図データベース・ディベロッパ371に送信する(オプション2)。エラー報告コンポーネント320が、前記報告をすぐに送信する場合、前記報告370は、ナビゲーション・システム110の通信システム128へと転送され、前記通信システム128は、前記報告370を、地図データベース・ディベロッパに送信するために使用される(ステップ390)。エラー報告コンポーネント320が最初に前記報告370を記憶する場合、前記報告370は乗り物111における媒体388に記憶される(ステップ387)。前記報告370は、他の報告とともに、前記媒体388に記憶されてもよい。後に、前記報告370は、媒体388から入手される(ステップ389)。媒体388に記憶された他の報告がある場合、これら他の報告もまた、このステップにおいて入手されてもよい。それから前記報告370は、データベース・ディベロッパ371に送信される(ステップ390)。
【0074】
通信システム128を使用して、報告370を地図データベース・ディベロッパ371に送信するとき、報告370は、様々な通信システム、搬送波、またはネットワーク394を介して送信されてもよいことが理解される。例えば、報告370は、乗り物111から地上レシーバへ、ワイヤレス通信システムを介して送信されてもよく、前記報告は、地上通信システムまたはインターネットを介して、地図データベース・ディベロッパへと送られてもよい。
【0075】
エラー報告コンポーネント320が、報告370を地図データベース・ディベロッパに送信した後、エラー報告コンポーネント320は、モニタリング・コンポーネント310に戻る(ステップ392)。この時点で、エンド・ユーザは、前記報告を提出したことに対して感謝するメッセージを送信されてもよい。
【0076】
上述のとおり、代替的実施形態において、エラー報告プログラム320は、エンド・ユーザからの入力を含むエラー報告を供給してもよい。
図6は、ユーザ入力を含む報告を供給するために、エラー報告コンポーネント320によって実行されるステップのいくつかを示す。ユーザ入力を含むエラー報告コンポーネントの前記実施形態は、ユーザ入力のない報告を自動的に準備し、送信するエラー報告コンポーネントの実施形態と同じステップのいくつかを実行する。従って、
図6は、
図5に記載の同じステップのいくつかを含む。
【0077】
図6に記載のとおり、データがログ340から収集されるステップ(すなわちステップ378)の後、エラー報告コンポーネント320は、エラー報告を形成するために、エンド・ユーザからの入力を要求する(ステップ400)。エラー報告コンポーネント320によって要求される前記入力によって、エンド・ユーザは、感知されたエラーを特定することができる。エンド・ユーザからのこの入力を要求する時に、エラー報告コンポーネント320は、エンド・ユーザに、ディスプレイ・スクリーン129(D)上にメニュを提示してもよく、または聴覚的に入力を要求してもよい。
図7は、報告されるべき、感知されたエラーの種類を特定するために、エンド・ユーザからの入力を要求するためのナビゲーション・システムのユーザ・インターフェースの、ディスプレイ・スクリーン129(D)上のメニュ500を示す。前記メニュ500は、エンド・ユーザがそこから選択することができる選択肢のリスト504を含む。
図7に記載の実施形態において、選択肢504は、エンド・ユーザに供給された様々な種類の情報を示す。エラー報告コンポーネント320は、エンド・ユーザに、選択をするように要求するメッセージ506を提示する。エンド・ユーザは、選択肢の一つを選択する方法を供給される。例えば、選択ボックス508が、一つの選択肢から別の選択肢へと移動してもよい。前記選択ボックス508が、エンド・ユーザによって所望されるメニュ上にある時、前記エンド・ユーザは、前記選択肢を表示するために、キーを押すか、またはユーザ・インターフェースの他の適切なコンポーネントを操作することができる。
【0078】
エラー報告コンポーネント320は、一つのメニュ上にあるアイテムの一つを選択することによって、他のメニュまたはスクリーンが表示されるように、メニュまたはディスプレイ・スクリーンの階層を含んでもよい。例えば、エンド・ユーザが、メニュ500から「ガイダンス(GUIDANCE)」を選択する場合、エンド・ユーザは、最近供給されたルート・ガイダンスのアイテムを示す、他のスクリーンを提示される。
図8は、最近供給されたルート・ガイダンスのアイテムのリスト516を伴うディスプレイ・スクリーン518の一例を示す。最近供給されたルート・ガイダンスのアイテムのリスト516は、モニタリング・コンポーネント310から、エラー報告コンポーネント320によって得られるログ340から得られてもよい(ステップ378)。前記エンド・ユーザは、エンド・ユーザに、これらのアイテムの一つ以上を選択するように要求するメッセージ520を供給される。エンド・ユーザはまた、前記アイテムの一つ以上を表示するための一つの手段、例えば選択ボックス524も供給される。
【0079】
代替的実施形態において、最近供給された走行命令が、聴覚的にエンド・ユーザに供給されうる。この代替的実施形態に従って、前記エンド・ユーザが、
図7に記載のメニュ500から「ガイダンス(GUIDANCE)」を選択すると、最近供給された走行命令は、再度、「これはエラーを含むガイダンスですか。(IS THIS THE GUIDANCE THAT CONTAINS AN ERROR?)」と尋ねる照会とともに、エンド・ユーザに供給される。この照会は、最近供給された走行命令と聴覚的に供給されてもよく、または前記照会はディスプレイ・スクリーン129(D)上で供給されてもよい。
【0080】
再度
図7を参照すると、エンド・ユーザがメニュ500から「地図(MAP)」を選択すると、エラー報告コンポーネント320は、最近供給された地図画像のディスプレイを提示する。報告コンポーネント320はまた、エンド・ユーザに、前記地図画像上に、または地図画像の一部に表示される特性を選択するための一つの手段も供給する。例えば、エンド・ユーザは、(例えば、入力パネル127(P)上で)位置決め装置を使用して、前記地図画像上で特性を強調するための一つの方法を供給されてもよい。代替的には、エンド・ユーザは、箱または円を描くことによって、前記地図の領域を選択するための一つの方法を供給されてもよい。
図9は、カーソルまたは矢印554でそれを指すことによって、エンド・ユーザに特性を選択するように促すメッセージ552を含む、エラー報告コンポーネント320によって供給される地図ディスプレイ550の一例を示す。
【0081】
他の代替的実施形態に従って、エンド・ユーザが、エラー報告処理の一部として、ディスプレイ・スクリーン129(D)上にメニュ、地図、またはメッセージを供給されると、前記ディスプレイ・スクリーンは、二つ(以上)のウィンドウまたは部分に分割されてもよい。エラー報告処理の一部として供給される、前記メニュ、地図、またはメッセージは、前記ウィンドウの一つを占めてもよい。前記ウィンドウの他方は、ルートをたどるための適切な地図、グラフィック、またはルート・ガイダンスを供給し続けるために使用される。複数のペイン・ディスプレイ・スクリーン(pane display screen)560の一例が、
図10に記載されている。
【0082】
さらに他の代替的実施形態に従って、エンド・ユーザは、エラー報告コンポーネント320によってそうするように促される時に、口頭でコメントを供給してもよい。前記口頭によるコメントは、ディスプレイ・スクリーン129(D)上のメニュ、地図、またはメッセージを使用して、エンド・ユーザによってなされる選択の代わりに、またはそれに加えて、供給されてもよい。
【0083】
再度
図6を参照すると、エラー報告コンポーネント320は、メニュ、プロンプト(prompts)等に応答して、エンド・ユーザの入力を含む(ステップ560)。エンド・ユーザの入力は、エラー報告コンポーネント320によって準備される報告370に含まれる。エンド・ユーザの入力は、関連しない前記報告からの情報を廃棄するために(ステップ380において)使用されてもよい。例えば、エンド・ユーザが、ルート・ガイダンスはエラーを含むことを示すと、ログ340からの地図情報は、エラー報告コンポーネント320によって準備されるエラー報告370から省かれてもよい。
【0084】
ユーザ入力を含むエラー報告コンポーネント320はそれから、ユーザ入力を含まないエラー報告コンポーネント320と同じ、上述のステップを実行する。特定的に、エラー報告コンポーネント320は、タイム・スタンプ(ステップ382)、データベース・バージョン、リリース、および網羅領域を示すデータ(ステップ384)、および乗り物データ(ステップ386)を含んでもよい。エラー報告コンポーネント320は、報告をフォーマットする(ステップ385)。それから、エラー報告コンポーネント320はすぐに、前記報告370を地図データベース・ディベロッパ371に送信し、または前記報告を最初に記憶し、後にそれを地図データベース・ディベロッパ371に送信する。
【0085】
図11を参照すると、エンド・ユーザの乗り物におけるエラー報告プログラム300によって準備された報告370は、ネットワーク394を介してデータベース・ディベロッパ371に送信される。データベース・ディベロッパ371は、報告受信プログラム600を操作する。報告受信プログラム600は、ネットワーク394に接続されているサーバ620上に配置されている。データベース・ディベロッパ371は、様々なユーザからネットワーク394を介して受信された報告370を、報告データベース630に記憶する。
【0086】
図12を参照すると、報告データベース630におけるデータは、地図データベース更新処理700において使用される。地図データベース更新処理700は、地図データベース・ディベロッパ371によって実行されてもよい。
【0087】
一つの実施形態にしたがって、地図データベース更新処理700は、報告データベース630からデータを受信する(ステップ710)。報告データベース630における報告は、解析されおよび/または確認される(ステップ720)。様々な種類の解析が実行されてもよい。例えば、顕著な数のエラーが同じ場所に関して報告されると、それは、前記場所を表すデータに関連するエラーがあるかもしれない表示であると考えられるかもしれない。同様に、質の悪い乗り物位置決めの、数多くの報告が、一つの領域に関して報告されると、それは前記領域における道路の位置を示す地図データベースにおけるデータが、正しくないことを示しているのかもしれない。さらに、低質なルートが、一定の領域に関して報告されると、それは、前記領域における道路カテゴリまたは道路の速度制限を示すデータが正しくないことを示しているかもしれない。
【0088】
一定の種類のエラーの報告が、航空写真を検査することによって、前記データによって表示される場所へと出かけることによって、または他の手段で確認されてもよい。エラーが確認されると、正しい情報が地図データベースに追加され、それによって地図データベースの更新されたバージョン716を形成する(ステップ730)。前記エラーに関する報告を提出したエンド・ユーザは、地図データベースのマスタ・コピーが修正され、更新されたことを知らせるメッセージを(例えば電話または電子メールによって)送信されてもよい。データベース716が更新されると、前記更新されたデータを反映する、抽出されたデータベース製品が作られ、エンド・ユーザに分配される(ステップ740)。エンド・ユーザは、前記更新されたデータベースのコピーを入手し、または購入する機会を与えられてもよい。
【0089】
3.
代替例
上述の実施形態において、エラー・メッセージが、データ・メッセージとして、エラー報告プログラムによって地図データベース・ディベロッパに送信された。代替的実施形態において、エンド・ユーザは、エラー報告を声で供給することができる。この代替的実施形態に従って、エンド・ユーザが、(例えば
図2に記載のエラー報告ボタン127(R)を押すことによって)エラーを報告するために、ナビゲーション・システムのユーザ・インターフェースを操作する時、ナビゲーション・システムでプログラミングすることによって、自動的にエラー報告受信サービスに電話をかける。エラー報告受信サービスは、エンド・ユーザからの電話に応答する人間のオペレータが配属されてもよく、代替的には、エラー報告受信サービスは、自動応答インターフェース(answering machine interface)を供給してもよい。エラー報告受信サービスが、エラーを報告するナビゲーション・システムからの電話に応答すると、エンド・ユーザはエラーに関する情報を供給する。エラー報告サービスが、人間のオペレータを含む場合、前記人間のオペレータは、エラーに関して、前記エンド・ユーザから情報を得ることができる。データベース・バージョンに関する情報は、エンド・ユーザによって供給される必要はない。その代わり、ナビゲーション・システムが自動的にエラー報告サービスを呼び出す場合、ナビゲーション・システムは、自らをコード番号で識別し、およびナビゲーション・システムによって使用される地図データベースのバージョンも識別してもよい。代替的に、エラー報告サービスは、特定のナビゲーション・システムと関連するデータベース・バージョンを示すデータ記録を維持してもよい。エラー報告サービスが、エンド・ユーザからの感知されたエラーに関する情報を入手すると、エラー報告サービスは、前の実施形態において記述されたとおり、地図データベースを更新するためにその報告を使用する地図データベース・ディベロッパに、報告を送信する。
【0090】
上述の実施形態のいくつかにおいて、地図データベースは、乗り物におけるナビゲーション・システムとともに配置された媒体に記憶されているものとして記述されていた。代替的実施形態においては、地図データは、乗り物に配置されている必要はない。例えば、エラー報告特性は、地図データが遠隔地、例えば中央サーバに配置されているナビゲーション・システムとともに使用され、乗り物にワイヤレスで送信されうる。代替的実施形態においては、ナビゲーション・プログラミングまたはアプリケーションも、遠隔地に配置されうる。エラー報告特性も、前記ナビゲーション・プログラムまたはアプリケーションが遠隔地に配置されるナビゲーション・システムとともに使用されうる。
【0091】
4.
効果
開示された実施形態の効果の一つは、エンド・ユーザが、ナビゲーション・システムを使用している時に遭遇するエラーに関する報告を、簡単に報告することができることである。
【0092】
開示された実施形態の他の効果は、エラー報告が継続的に供給されることである。
【0093】
開示された実施形態の他の効果は、地図データベース・ディベロッパが、感知されたエラーの原因を決定することができるように、エンド・ユーザからのエラー報告が、十分な詳細を含むことである。
【0094】
開示された実施形態の他の効果は、エンド・ユーザが、更新処理に関与する機会を与えられることである。この関与によって、エンド・ユーザと地図データベース・ディベロッパとの間のグッドウィル(good will)を発達させる手助けになるかもしれない。
【0095】
上述の詳細な説明は、制限的よりもむしろ、例示的なものと見なされるものであり、すべての関連を含む前述の特許請求の範囲が、本発明の範囲を定義するものであることが理解される。