(57)【要約】【課題】任意の所望の通信方式を用いて車両のヘッドユニットにナビゲーションデータを提供する。【解決手段】命令の組が、ポータブルデバイスから車両のヘッドユニットにナビゲーションデータを提供するためのアプリケーションプログラミングインターフェース(API)を実装する。ポータブルデバイス上で実行される付随アプリケーションによって呼び出されるときに、APIは、出発地と目的地との間でユーザをナビゲーションするためのナビゲーションデータを取得するように構成され、前記ポータブルデバイスは、長距離通信リンクを介してナビゲーションサーバからナビゲーションデータを受信する。APIは、ナビゲーションデータを、近距離通信リンクを介してヘッドユニットに送信するために付随アプリケーションに提供するようにさらに構成される。【選択図】図１
2019144265.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルデバイスと車両のヘッドユニットとの間でナビゲーションデータをやりとりするための方法であって、前記方法が、(i)ナビゲーションサーバからナビゲーションデータを受信するように構成されたナビゲーションサービスアプリケーションおよび(ii)前記ナビゲーションサービスアプリケーションとは別個に前記ポータブルデバイスにおいて実行される付随アプリケーションを実行する1つまたは複数のプロセッサを含む前記ポータブルデバイスにおいて実装され、前記方法は、
前記ナビゲーションサービスアプリケーションによって、長距離通信リンクを介して前記ナビゲーションサーバに目的地を送信するステップと、
前記ナビゲーションサービスアプリケーションによって、前記長距離通信リンクを介して前記ナビゲーションサーバから第1のナビゲーションデータを受信するステップであって、前記第1のナビゲーションデータが、出発地と前記目的地との間でナビゲーションするための複数のステップのうちの少なくとも1つを説明する、ステップと、
前記付随アプリケーションによって、前記ナビゲーションサービスアプリケーションのナビゲーションアプリケーションプログラミングインターフェース(API)を呼び出すステップであって、前記ナビゲーションAPIを呼び出すことが、前記ナビゲーションAPIに固有の構文およびパラメータのリストを用いて、前記ナビゲーションサービスアプリケーションから前記第1のナビゲーションデータを取得することを含む、ステップと、
前記付随アプリケーションによって、近距離通信リンクを介して前記ヘッドユニットに前記第1のナビゲーションデータを送信して、前記ヘッドユニットに、前記出発地と前記目的地との間でナビゲーションするための複数のステップのうちの少なくとも1つを示すナビゲーション情報を表示させるステップとを含む、方法。
【請求項２】
前記ナビゲーションAPIが、IPC方式を用いて前記ナビゲーションサービスアプリケーションと通信する請求項1に記載の方法。
【請求項３】
前記ナビゲーションAPIに固有の構文およびパラメータのリストが、前記ナビゲーションAPIと前記付随アプリケーションとの間でデータをやりとりするための1つまたは複数のデータ構造の組を定義する請求項1に記載の方法。
【請求項４】
前記第1のナビゲーションデータが、ステップのシーケンスを説明し、前記ナビゲーションAPIを呼び出すことが、前記ナビゲーションAPIに固有の構文およびパラメータのリストを用いて、複数の次ステップ要求の各々を前記ナビゲーションサービスアプリケーションに提供することに応答して、前記ヘッドユニットへの送信のために前記ステップのシーケンスの中の次のステップを前記ナビゲーションサービスアプリケーションから受信することを含む請求項1に記載の方法。
【請求項５】
前記ナビゲーションAPIを呼び出すことが、前記ナビゲーションAPIに固有の構文およびパラメータのリストを用いて、前記ナビゲーションサービスアプリケーションに認証情報を提供することを含む請求項1に記載の方法。
【請求項６】
前記ナビゲーションサーバから受信された前記第1のナビゲーションデータが、第1のフォーマットに準拠し、
前記ナビゲーションAPIが、前記付随アプリケーションによって呼び出されるとき、前記第1のナビゲーションデータを、前記ナビゲーションサービスアプリケーションと前記ヘッドユニットとの間でナビゲーションデータを伝達するためにのみ定義された第2のフォーマットに変換する請求項1に記載の方法。
【請求項７】
前記第2のフォーマットが、複数の車両の型に対応しているオープンフォーマットである請求項6に記載の方法。
【請求項８】
前記第2のフォーマットが、前記車両の製造業者に固有のフォーマットである請求項6に記載の方法。
【請求項９】
前記付随アプリケーションが、前記ヘッドユニットの製造業者によって定義された独自仕様の通信プロトコルに従って前記ヘッドユニットと通信する請求項1に記載の方法。
【請求項１０】
前記付随アプリケーションが、前記ヘッドユニットの製造業者によって定義された第1の独自仕様の通信方式に従って前記ヘッドユニットと通信し、前記ナビゲーションサービスアプリケーションが、前記ナビゲーションサーバのオペレータによって定義された第2の独自仕様の通信方式に従って前記ナビゲーションサーバと通信する請求項1に記載の方法。
【請求項１１】
1つまたは複数のプロセッサによって実行されるとき、請求項1から10のいずれか一項に記載の方法を前記プロセッサに実行させるコンピュータプログラム命令が記憶されたコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、ユーザインターフェースを介してデジタルナビゲーションデータを提供することに関し、より詳細には、車両のヘッドユニットにナビゲーションデータを提供すること関する。
【背景技術】
【０００２】
本明細書において与えられる背景技術の説明は、本開示の文脈をおおまかに示すことを目的とする。この背景技術の節で説明される範囲のここに名前を挙げられた発明者の研究と、それ以外で出願時に従来技術として認定され得ない説明の態様とは、明示的にも暗黙的にも本開示の従来技術として認められない。
【０００３】
今日、多くの自動車製造業者が、車両のヘッドユニットまたは「デッキ」に組み込まれたナビゲーションシステムを販売する。概して、これらの組み込まれた車両ナビゲーションシステムは、静的な地図の集合を記憶し、ヘッドユニットのローカルで経路選択およびナビゲーション動作を実行する。ナビゲーションシステムに実装された地図およびアルゴリズムは古くなるので、とにかくサポートされる場合、更新は、概して実行するのが難しい。現在、一部の組み込まれた車両ナビゲーションシステムはネットワークサーバにアクセスするための専用のセルラーリンクを含むが、通常、このリンクは、値段の高い加入を必要とする。
【０００４】
スマートフォンおよびその他のポータブルデバイス上で実行されるアプリケーションを利用するために、現在、一部の自動車製造業者は、車両のヘッドユニットの音声およびビジュアル構成要素にアクセスするためのアプリケーションプログラミングインターフェース(API)を提供する。これらのAPIは、ヘッドユニットにアクセするための製造業者に固有の方式を提供する。結果として、これらのAPIを用いるアプリケーションは、概して、車両のただ1つの型またはブランドのために開発される。
【発明の概要】
【課題を解決するための手段】
【０００５】
概して、APIが、ポータブルデバイス上で実行されるアプリケーションがワイヤレス通信ネットワークを介してナビゲーションサーバからターンバイターン方式の指示、経路の概要、音声命令、地図画像などを含み得るナビゲーションデータを受信することを可能にする。そして、APIを呼び出すアプリケーション(「付随アプリケーション(companion application)」)が、ヘッドユニットの製造業者によって定義された通信方式などの任意の所望の通信方式を用いて車両のヘッドユニットにナビゲーションデータを提供することができる。例示的な実装において、APIは、ポータブルデバイスのオペレーティングシステムにネイティブなナビゲーションサービスを介してナビゲーションサーバと通信する。ポータブルデバイスおよびヘッドユニットは、有線またはワイヤレス近距離通信リンクを介して通信することができる。付随アプリケーションは、APIによって明かされた予め定義されたフォーマットに従ってナビゲーションデータを受信することができ、ナビゲーションデータをヘッドユニットによってサポートされるフォーマットに変換する。したがって、ヘッドユニットの製造業者または車両の製造業者は、APIを用いて、ナビゲーションデータを取得し、このデータを所望のフォーマットに変換する付随アプリケーションを開発することができる。より広く、付随アプリケーションは、多種多様な通信および処理方式をサポートするためのAPIを呼び出すことができる。
【０００６】
本開示の技術を用いて、APIは、スマートフォンなどのポータブルデバイス上で実行されるナビゲーションサービスアプリケーションが、APIを呼び出すポータブルデバイス上で実行される第2のアプリケーション(「付随アプリケーション」)にデジタル地図画像を効率的に提供することを可能にする。そして、付随アプリケーションは、ヘッドユニットの製造業者によって定義された通信方式などの任意の所望の通信方式を用いて車両のヘッドユニットにデジタル地図画像を提供することができる。ナビゲーションサービスアプリケーションは、起点(origin)から目的地(destination)までの経路を定義するステップのシーケンスとしてのナビゲーションデータと、起点と目的地との間の地理的地域のデジタル地図をレンダリングするための地図データとを受信することができる。地図データは、たとえば、ベクトルグラフィックスフォーマットで提供される可能性があり、ナビゲーションサービスアプリケーションは、マップデータを解釈およびレンダリングしてビットマップを生成する可能性がある。帯域幅およびバッテリー電力を長く持たせるために、ナビゲーションサービスアプリケーションは、更新されたデジタル地図画像をヘッドユニットに提供し続けることなく、概して経路セグメント(route segment)の間の遷移のための操作(たとえば、「大通りを右折する」、「2.4マイル直進する」)であるナビゲーションの指示のステップを示すためだけに地図画像をレンダリングする可能性がある。より詳細には、リアルタイムで経路に沿った車両の進行を反映するためにデジタル地図を再レンダリングするのではなく、ナビゲーションサービスアプリケーションは、車両が経路に留まるために操作しなければならない道路のジャンクションなどの経路の「関心を引く」部分に関してのみデジタル地図画像を生成する可能性がある。ナビゲーションサービスアプリケーションは、デジタル画像上で車両が常に進行方向を向いているように見え得るように、各ステップにおいて車両の向きに従ってこれらのデジタル地図画像を生成する可能性がある。付随アプリケーションは、APIによって明かされた予め定義されたフォーマットに従ってナビゲーションサービスアプリケーションからデジタル地図画像を受信し、デジタル地図画像をヘッドユニットによってサ
ポートされるフォーマットに変換することができる。
【０００７】
さらに、スマートフォンなどのポータブルデバイス上で実行されるAPIを呼び出すアプリケーション(「付随アプリケーション」)は、自動車のヘッドユニットから会社の住所または名前の最初の数文字などの部分的なユーザ入力を受信する。付随アプリケーションは、ヘッドユニットの製造業者によって定義された通信方式などの任意の所望の通信方式を用いてヘッドユニットから部分的な入力を受信する。ポータブルデバイスは、たとえば、USBなどの近距離通信リンクを介して部分的なユーザ入力を受信する可能性がある。そして、付随アプリケーションは、付随アプリケーションがヘッドユニットを介して受信された部分的なユーザ入力をナビゲーションサービスに転送することを可能にするためのAPIを呼び出す。それから、ナビゲーションサービスは、ローカルでまたは提案(suggestion)をセルラーリンクなどの長距離通信リンクを介して提案サーバに要求することによって提案される入力を生成する。提案は、提案される入力に一致する地理的位置の1つまたは複数の名前またはアドレスを含み得る。望まれる場合、提案は、ポータブルデバイスのユーザ用にパーソナライズされる可能性がある。ナビゲーションサービスは、これらの提案を英数字の文字列、音声アナウンスなどの形態でヘッドユニットに提供する可能性がある。場合によっては、ナビゲーションサービスは、提案をヘッドユニットによって認識されるフォーマットに変換する。1つのそのような実装におけるナビゲーションサービスは、(i)ポータブルデバイスのオペレーティングシステムにネイティブなナビゲーションサービスアプリケーションと、(ii)提案を受信し、提案をヘッドユニットによって認識されるフォーマットに変換し、提案をヘッドユニットに提供するために付随アプリケーションが呼び出し得るAPIとを含む。
【０００８】
車両の運転者がポータブルデバイス(たとえば、スマートフォン)上のナビゲーション機能を安全に呼び出すことを可能にするために、本開示のAPIを呼び出すアプリケーション(「付随アプリケーション」)は、どの車両制御装置を運転者が作動させるかの指示を受信し、これらの指示と、ポータブルデバイスの個々のユーザ用に設定され得る特定のマッピングとに従ってナビゲーション機能を実行する。付随アプリケーションは、ヘッドユニットの製造業者によって定義された通信方式などの任意の所望の通信方式を用いてヘッドユニットから指示を受信する。そして、付随アプリケーションは、付随アプリケーションがヘッドユニットを介して受信された指示をナビゲーションサービスに転送することを可能にするためのAPIを呼び出す。運転者は、自動車のヘッドユニット上に配置されたかまたは自動車のヘッドユニットに接続されたハードウェア、タッチスクリーン、またはその他のボタンを押す可能性があり、ヘッドユニットは、これらのイベントをポータブルデバイスに転送する可能性がある。例示的な筋書きにおいては、初めに、ユーザが、ポータブルデバイス上でインタラクティブなダイアログを呼び出し、ヘッドユニットがこれらの作動イベントをポータブルデバイスに報告し得るように様々な車両制御装置を作動させ、各作動イベントに関する所望のナビゲーション機能を選択することによって車両制御装置とナビゲーション機能との間のマッピングを設定する。ナビゲーション中、ユーザは、たとえば、ハンドル上の「ボリュームを上げる」キーを押す可能性があり、ヘッドユニットがこのキー押下イベントをポータブルデバイスに報告した後、ポータブルデバイスは、次のナビゲーション命令をヘッドユニットに提供する可能性がある。ボタンがソフトウェアを用いてポータブルデバイス上で構成され得るので、ほぼすべての車両が、ポータブルデバイス上で実行されるナビゲーションソフトウェアと共に使用するために容易に構成および改良され得る。
【０００９】
より詳細には、本開示の技術の例示的な実装は、1つまたは複数のプロセッサ上で実行される命令を記憶するコンピュータ可読媒体である。命令は、ポータブルデバイスから車両内に設置されたヘッドユニットにナビゲーションデータを提供するためのAPIを実装する。ポータブルデバイス上で実行される付随アプリケーションによって呼び出されるときに、APIは、出発地と目的地との間でユーザをナビゲーションするためのナビゲーションデータを取得するように構成され、ポータブルデバイスは、第1の通信リンクを介してナビゲーションサーバからナビゲーションデータを受信する。APIは、ナビゲーションデータを、第2の通信リンクを介してヘッドユニットに送信するために付随アプリケーションに提供するようにさらに構成される。
【００１０】
これらの技術の別の例示的な実装は、1つまたは複数のプロセッサ上で実行される命令の別の組を記憶するコンピュータ可読媒体である。命令は、ポータブルデバイスから車両内に設置されたヘッドユニットにナビゲーションデータを提供するための別のAPIを実装する。ポータブルデバイス上で実行される付随アプリケーションによって呼び出されるときに、APIは、付随アプリケーションとは独立してポータブルデバイス上で実行されるナビゲーションアプリケーションからナビゲーションデータを受信するように構成される。ナビゲーションサービスアプリケーションは、第1の通信リンクを介してナビゲーションサーバからナビゲーションデータを受信し、付随アプリケーションは、第2の通信リンクを介してヘッドユニットと通信する。APIは、ナビゲーションデータを、ヘッドユニットに送信するために付随アプリケーションに提供するようにさらに構成される。
【００１１】
本開示の技術のさらに別の例示的な実装は、ポータブルデバイスから車両のヘッドユニットにナビゲーションデータを提供するためのコンピュータによって実施される方法である。方法は、長距離通信リンクを介してナビゲーションサーバからナビゲーションデータを受信するためにポータブルデバイス上で実行されるナビゲーションサービスを実装する命令を提供するステップを含む。ナビゲーションデータは、出発地と目的地との間のナビゲーションのための複数のステップを説明する。方法は、(i)ヘッドユニットを介して選択された目的地をナビゲーションサービスに提供すること、および(ii)ナビゲーションサーバからナビゲーションデータを受信することであって、付随アプリケーションが、近距離通信リンクを介してヘッドユニットにナビゲーションデータを提供する、受信することを行うために付随アプリケーションが呼び出すナビゲーションAPIを実装する命令を提供するステップとも含む。
【００１２】
これらの技術のさらに別の実装は、ナビゲーションサービスアプリケーションを実装する命令を記憶する非一時的コンピュータ可読媒体である。1つまたは複数のプロセッサによって実行されるときに、命令は、1つまたは複数のプロセッサに、長距離通信リンクを介して、出発地と目的地の間でユーザをナビゲーションするためのナビゲーションデータを受信させる。受信されるナビゲーションデータは、第1のフォーマットに準拠する。命令は、1つまたは複数のプロセッサにさらに、ナビゲーションデータを、ナビゲーションサービスアプリケーションと車両のヘッドユニットとの間でナビゲーションデータを伝達するためにのみ定義された第2のフォーマットに変換させ、第2のフォーマットのナビゲーションデータが近距離通信リンクを介して車両のヘッドユニットに送信されるようにさせる。ナビゲーションサービスを実装する命令は、ナビゲーションデータを変換するかまたはナビゲーションデータを送信させるためにヘッドユニットに固有の命令を呼び出させない。
【００１３】
これらの技術の別の実施形態は、車両内に設置されたヘッドユニットにナビゲーションデータを提供するためのコンピュータによって実施される方法である。方法は、1つまたは複数のプロセッサによって車両の現在位置および現在の向きの指示を受信するステップと、第1の通信リンクを介してネットワークデバイスから、現在位置を含む地理的地域のデジタル地図を生成するための地図データを受信するステップとを含む。方法は、1つまたは複数のプロセッサによって、現在の向きに応じてデジタル地図の向きを決めることを含め、地図データを用いてデジタル地図画像を生成するステップと、1つまたは複数のプロセッサによって第2の通信リンクを介してヘッドユニットにデジタル地図画像を提供するステップとをさらに含む。
【００１４】
これらの技術の別の実施形態は、1つまたは複数のプロセッサと、長距離通信リンクを介してネットワークデバイスと通信するための第1のネットワークインターフェースと、近距離通信リンクを介して車両のヘッドユニットと通信するための第2のネットワークインターフェースと、命令を記憶する非一時的コンピュータ可読メモリとを含むポータブルデバイスである。1つまたは複数のプロセッサによって実行されるとき、命令は、ポータブルデバイスに、車両の現在位置および現在の向きを判定させ、長距離通信リンクを介して現在位置を含む地理的地域のデジタル地図を生成するための地図データを受信させ、地図データを用いて車両の判定された向きに応じてデジタル地図画像を生成させ、近距離通信リンクを介してヘッドユニットにデジタル地図画像を提供させる。
【００１５】
これらの技術のさらに別の実施形態は、車両のヘッドユニットにナビゲーションデータを提供するためのコンピューティングデバイスにおける方法であって、ヘッドユニットがディスプレイデバイスを含む、方法である。方法は、1つまたは複数のプロセッサによって、出発点から目的地まで移動するためのステップのシーケンスを指定するナビゲーションデータを受信するステップであって、ステップの各々が、対応する地理的位置におけるそれぞれの操作を指定する、受信するステップを含む。方法は、ステップの各々に関して、1つまたは複数のプロセッサを用いて、ステップに対応する地理的位置を含む地理的地域のデジタル地図画像をレンダリングしてデジタル地図画像のシーケンスを生成するステップも含む。さらに、方法は、1つまたは複数のプロセッサによって車両のヘッドユニットにデジタル地図のシーケンスを提供するステップを含む。
【００１６】
さらに別の実施形態は、車両のヘッドユニットにナビゲーションデータを提供するための手段であって、ヘッドユニットがディスプレイデバイスを含む、手段である。ナビゲーションデータを提供するための手段は、(i)出発点から目的地まで移動するためのステップのシーケンスを指定するナビゲーションデータを受信するための手段であって、ステップの各々が、対応する地理的位置におけるそれぞれの操作を指定する、受信するための手段と、(ii)ステップの各々に関して、ステップに対応する地理的位置を含む地理的地域のデジタル地図画像をレンダリングしてデジタル地図画像のシーケンスを生成するための手段と、(iii)車両のヘッドユニットにデジタル地図のシーケンスを提供するための手段とを含む。
【００１７】
本開示の技術の別の実施形態は、車両のヘッドユニットを介してナビゲーションデータを要求するための入力の提案を提供するためのポータブルデバイスにおける方法である。方法は、部分的なユーザ入力が英数字のシーケンスを含むように、近距離通信リンクを介してヘッドユニットに提供された部分的なユーザ入力を受信するステップを含む。方法は、1つまたは複数のプロセッサによって、部分的なユーザ入力に対応する提案される入力を生成するステップであって、提案される入力が、英数字のシーケンスおよび1つまたは複数のさらなる文字を含み、提案される入力が、1つまたは複数の地理的位置の組に対応する、生成するステップを含む。方法は、1つまたは複数のプロセッサによって近距離通信リンクを介してヘッドユニットに提案される入力を提供するステップも含む。
【００１８】
本開示の技術の別の実施形態は、1つまたは複数のプロセッサと、第1の通信リンクを介して車両のヘッドユニットと通信するための第1のネットワークインターフェースと、第2の通信リンクを介して提案サーバと通信するための第2のネットワークインターフェースと、命令を記憶する非一時的コンピュータ可読媒体とを含むポータブルデバイスである。1つまたは複数のプロセッサによって実行されるとき、命令は、ポータブルデバイスに、(i)第1の通信リンクを介してヘッドユニットに提供された部分的なユーザ入力を受信させ、(ii)部分的なユーザ入力が提案サーバに送信されるようにさせ、(iii)提案の組に基づいて提案される入力を生成させ、(iv)提案される入力がヘッドユニットに送信されるようにさせる。
【００１９】
本開示の技術のさらに別の実施形態は、ポータブルデバイス上で実行されるソフトウェアアプリケーションによる使用のためにアプリケーションプログラミングインターフェース(API)を実装する命令を記憶する非一時的コンピュータ可読媒体である。APIは、ソフトウェアアプリケーションによって呼び出されるときに、(i)第1の通信リンクを介してポータブルデバイスとは独立して動作する外部デバイスから部分的なユーザ入力を受信し、(ii)第2の通信リンクを介して提案サーバに部分的なユーザ入力を提供し、(iii)提案サーバから1つまたは複数の地理的位置の組に対応する提案される入力を受信し、(iv)外部デバイスに提案される入力を提供するように構成される。
【００２０】
より詳細には、本開示の技術の1つの実施形態は、車両のヘッドユニットを介して受信されたユーザ入力に従ってポータブルデバイス上で実行されるナビゲーションサービスアプリケーションを制御するためのポータブルデバイスにおける方法である。方法は、1つまたは複数のプロセッサによって実行され、(i)ヘッドユニットの制御装置とナビゲーションソフトウェアアプリケーションの機能との間のマッピングを受信するステップと、(ii)ポータブルデバイスとヘッドユニットとの間の通信リンクを介して、制御装置のうちの1つが作動されたという指示を受信するステップと、(iii)受信されたマッピングおよび受信された指示に従ってナビゲーションソフトウェアアプリケーションの機能の中から機能を選択するステップと、(iv)ナビゲーションソフトウェアアプリケーションの選択された機能を実行するステップとを含む。
【００２１】
本開示の技術の別の実施形態は、1つまたは複数のプロセッサと、近距離通信リンクを介して車両のヘッドユニットと通信するための近距離ネットワークインターフェースであって、ヘッドユニットが複数の制御装置を含む、近距離ネットワークインターフェースと、1つまたは複数のプロセッサによって実行され得る命令を記憶する非一時的コンピュータ可読媒体とを含むポータブルデバイスである。命令は、複数のユーザが選択可能な機能をサポートするナビゲーションサービスアプリケーションを実装する。また、命令は、(i)近距離ネットワークインターフェースを介して、ヘッドユニット上の制御装置のうちの1つが作動されたという指示を受信し、(ii)受信された指示に基づいて複数のユーザが選択可能な機能の中から機能を選択し、(iii)選択された機能を実行するように構成される。
【００２２】
本開示の技術のさらに別の実施形態は、命令を記憶する非一時的コンピュータ可読媒体である。ポータブルデバイスの1つまたは複数のプロセッサによって実行されるときに、命令は、(i)車両のヘッドユニット上の複数の制御装置とポータブルデバイスによってサポートされる複数のナビゲーション機能との間のマッピングを受信し、(ii)ヘッドユニット上で制御装置のうちの1つが作動されることの指示を受信し、(iii)受信されたマッピングおよび受信された指示に従って複数のナビゲーション機能の中からナビゲーション機能を選択し、(iv)ナビゲーション機能を実行し、(v)ヘッドユニットに前記ナビゲーション機能を実行した結果を提供するように構成される。
【図面の簡単な説明】
【００２３】
【図１】本開示の技術がポータブルデバイスから車両のヘッドユニットにナビゲーションデータを転送するために使用され得る例示的な環境を示す図である。
【図２】図1のシステム内で動作し得る例示的なポータブルデバイスおよび例示的なヘッドユニットのブロック図である。
【図３】図1のポータブルデバイスが動作する例示的な通信システムのブロック図である。
【図４】ヘッドユニットを介して与えられたユーザ入力に応答してヘッドユニットにナビゲーションデータを提供するための図2に示された構成要素間の情報の例示的なやりとりを示すメッセージシーケンス図である。
【図５】図2のAPIに実装され得る、ナビゲーションサーバからナビゲーションデータを受信し、車両のヘッドユニットにナビゲーションデータを提供するための例示的な方法の流れ図である。
【図６】ヘッドユニットに操作に対応するデジタル地図画像を提供するための図2に示された構成要素間の情報の例示的なやりとりを示すメッセージシーケンス図である。
【図７】本開示の技術を用いてヘッドユニット上に表示され得る例示的な画像の図である。
【図８】図2のAPIに実装され得る、操作に関するデジタル地図画像を生成し、車両の車両ヘッドユニットにデジタル地図画像に提供するための例示的な方法の流れ図である。
【図９】ヘッドユニットのハードウェア制御装置をポータブルデバイスのナビゲーション機能にマッピングするための図2に示された構成要素間の情報の例示的なやりとりを示すメッセージシーケンス図である。
【図１０】ヘッドユニットを介して受信されたユーザ入力をポータブルデバイスのナビゲーションアプリケーションに提供するための図2に示された構成要素間の情報の例示的なやりとりを示すメッセージシーケンス図である。
【図１１】図2のポータブルデバイスに実装され得る、ポータブルデバイス上のナビゲーションアプリケーションにおいて車両のヘッドユニットを介して受信されたユーザ入力を処理するための例示的な方法の流れ図である。
【図１２】ヘッドユニットに入力の提案を提供するための図2に示された構成要素間の情報の例示的なやりとりを示すメッセージシーケンス図である。
【図１３】図2のポータブルデバイスに実装され得る、車両のヘッドユニットを介してナビゲーションデータを要求するための入力の提案を提供するための例示的な方法の流れ図である。
【発明を実施するための形態】
【００２４】
概要
ポータブルデバイス上で、ナビゲーションサービスが、アプリケーションがナビゲーションサービスからナビゲーションデータを受信することを可能にするナビゲーションAPIを明かす。アプリケーションが、ヘッドユニットの製造業者によって定義された通信方式などの任意の所望の通信方式を用いて車両のヘッドユニットまたは別の外部出力システムにナビゲーションデータを提供する。また、ナビゲーションAPIは、アプリケーションがヘッドユニットを介して受信されたユーザ入力をナビゲーションサービスに転送することを可能にし得る。したがって、ある意味で、APIは、アプリケーションとナビゲーションサービスとの間の双方向インターフェースを提供する。車両に応じて、ヘッドユニットは、英数字を表示し、音声を再生するための比較的簡単な構成要素、またはデジタル画像およびさらにはアニメーションを表示し、タッチスクリーン入力を受け取り、音声コマンドを受け取り、処理するためなどの比較的堅牢な構成要素を含む可能性がある。スマートフォンである可能性があるポータブルデバイスは、たとえば、Bluetooth(登録商標)プロトコルをサポートする近距離通信リンクなどの近距離通信リンクを介してヘッドユニットと通信することができる。
【００２５】
以下でより詳細に検討されるように、1つの例示的な実装のポータブルデバイスは、セルラーネットワークまたは別のワイヤレス通信ネットワークを介してナビゲーションサーバと通信するナビゲーションサービスアプリケーション(または単に「ナビゲーションアプリケーション」)をサポートする。ナビゲーションサービスアプリケーションは、ポータブルデバイスのオペレーティングシステムにネイティブである可能性がある。APIを用いて、プログラマは、ポータブルデバイス上で実行され、一方でナビゲーションサービスと通信し、他方でヘッドユニットがサポートする通信方式を用いてヘッドユニットと通信する「付随」アプリケーションを開発することができる。1つの別法として、APIは、ナビゲーションサーバと直接通信するための機能を実装する可能性がある。別の別法として、APIは、ナビゲーションサーバに要求を送信することなくポータブルデバイスのローカルでナビゲーションデータを生成するナビゲーションサービスアプリケーションと通信する可能性がある。
【００２６】
いずれの場合も、自動車製造業者は、その他の自動車製造業者と共有されない独自仕様の通信方式を含む任意の所望の通信方式を用いて自動車のヘッドユニットと通信する付随アプリケーションを開発することができる。概して、本開示のナビゲーションAPIは、開発者が車両を考慮してポータブルデバイスからナビゲーションデータを容易にかつ効率的にエクスポートし、既存の車両を改良することを可能にする。
【００２７】
実装に応じて、ナビゲーションAPIは、1つまたは複数の関数、クラスなどを含み得る。さらに、ナビゲーションAPIは、様々なデータ構造、メッセージフォーマット、定数、列挙されたリストなどを使用することができ、それに応じて、開発者は、適切な定義を提供され得る。その上さらに、ナビゲーションAPIは、コールバック関数を規定するか、またはそうでなければナビゲーションサービスアプリケーションから付随アプリケーションへのイベント報告、メッセージングなどを構成するためのメカニズムを提供する可能性がある。
【００２８】
1つの例示的な筋書きにおいて、付随アプリケーションは、ヘッドユニットからユーザ入力を受信し、ユーザ入力をナビゲーションサービスに提供するためのナビゲーションAPIを呼び出す。ユーザ入力は、たとえば、目的地の名前または住所を含む可能性がある。ナビゲーションサービスアプリケーションは、現在位置から目的地まで運転者を導く経路を生成するかまたはナビゲーションサーバから受信する。一例として、経路は、それぞれが経路セグメント(たとえば、道路の名前または番号、距離、移動時間、速度制限)と次の経路セグメントに行くための操作(たとえば、左折、右斜線変更、直進)とを説明するステップのシーケンスを含み得る。付随アプリケーションは、ナビゲーションAPIを介してナビゲーションサービスアプリケーションから経路を取り出し、ナビゲーションデータをヘッドユニットによってサポートされるフォーマットに変換し、たとえば、単一のメッセージまたはメッセージのシーケンスによってヘッドユニットにナビゲーションデータを提供する。
【００２９】
さらに、一部の実装におけるナビゲーションAPIは、経路のステップおよび/または車両の進行を示すためにヘッドユニットにデジタル地図画像のシーケンスを提供する。上で検討されたように、ナビゲーションサービスアプリケーションは、ポータブルデバイスの現在位置から指定された目的地までの経路の説明を受信し得る。ポータブルデバイスが経路に沿って目的地に向かって移動するとき、ナビゲーションサービスアプリケーションは、ポータブルデバイスが現在位置特定される地理的地域に関する地図データを要求する可能性がある。地図データを用いて、ポータブルデバイスは、デジタル地図画像をレンダリングすることができ、各ステップに関して、たとえば、ステップに対応する地理的地域、ステップに遷移するための操作などを示す。さらに、ポータブルデバイスおよび/または車両の慣性計測装置(IMU: inertial measurement unit)が、車両の現在の向きを判定し、車両の現在の向きに一致するようにそれぞれのデジタル地図画像の向きを決めることができる。その上さらに、ナビゲーションAPIは、(ナビゲーションサービスアプリケーションがパーソナライズサーバから受信する情報を用いて)パーソナライズされたデジタル地図画像を提供することもできる。デジタル地図画像をさらにパーソナライズするために、ヘッドユニットは、詳細なデジタル地図がヘッドユニットの能力および望まれる場合には自動車のデザインに合うようにスクリーンサイズ、様式オプションなどを指定する可能性もある。
【００３０】
一部の実装によれば、さらに、付随アプリケーションは、ヘッドユニットまたはハンドル上のハードウェアボタンなどの車両制御装置をナビゲーションサービスアプリケーションのナビゲーション機能にマッピングする。より詳細には、ヘッドユニットが単純にナビゲーションサービスアプリケーションにキー押下イベントを報告することができるように、ユーザがポータブルデバイス上でマッピングを指定する可能性がある。たとえば、付随アプリケーションは、ハンドル上のボリューム下げボタンを経路内の次のステップの説明を要求するための次ステップナビゲーション機能にマッピングする可能性がある。ユーザがハンドル上のボリューム下げボタンを押下するとき、ヘッドユニットは、付随アプリケーションにこのイベントを報告するメッセージを送信する。そして今度は、付随アプリケーションが、ボリューム下げボタンが次ステップ機能にマッピングされたと判定し、機能を呼び出し、次のステップの説明を受信するためのナビゲーションAPIを呼び出し、次のステップの説明をヘッドユニットに提供する。ハードウェアボタンがソフトウェアを用いてポータブルデバイス上で構成され得るので、多くの異なる種類の車両およびヘッドユニット内のほとんどのボタン(および場合によっては、さらにつまみまたはスライダー制御装置)が、本開示のナビゲーションAPIによって働くように容易に構成され得る。
【００３１】
さらに、一部の実装におけるナビゲーションAPIは、ヘッドユニットを介した部分的なユーザ入力に基づいて地理的な提案を生成することによって車両制御装置とのインタラクションの時間を削減するオートコンプリートの特徴をサポートする。運転者がたとえば自動車のヘッドユニットのタッチスクリーンを用いて位置を打ち込み始めるとき、ポータブルデバイスは、位置の提案を生成し、表示するためにヘッドユニットに提案を送信する。より詳細には、ヘッドユニットが、部分的なユーザ入力(たとえば、1つまたは複数のキー押下イベント)を付随アプリケーションに報告し、付随アプリケーションが、ナビゲーションサービスアプリケーションに部分的なユーザ入力を提供するためのナビゲーションAPIを呼び出し、そして今度は、ナビゲーションサービスアプリケーションが、提案サーバに連絡する。1つまたは複数の提案が到着すると、ナビゲーションサービスアプリケーションは、ヘッドユニットに転送するために付随アプリケーションに提案を提供する。提案は、提案を提供するときにユーザのプロファイルにアクセスするようにユーザがナビゲーションサービスアプリケーションを構成する場合、パーソナライズされる可能性もある。したがって、たとえば、運転者が目的の地点の最初の文字(たとえば、「M」)を打ち込むとき、ヘッドユニットは、その文字で始まるユーザによって最近訪問された提案される位置を表示する。
【００３２】
例示的な環境およびシステムアーキテクチャ
図1を参照すると、上で概略を示された技術が実装され得る例示的な環境1が、ポータブルデバイス10とヘッドユニット14を有する車両12とを含む。ポータブルデバイス10は、スマートフォン、タブレット、ウェアラブルコンピュータなどである可能性がある。ポータブルデバイス10は、有線(たとえば、ユニバーサルシリアルバス(USB))またはワイヤレス(たとえば、Bluetooth(登録商標)、Wi-Fiダイレクト)である可能性がある通信リンク16を介して車両12のヘッドユニット14と通信する。ポータブルデバイス10は、第4または第3世代セルラーネットワーク(それぞれ4Gまたは3G)などのワイヤレス通信ネットワークを介して様々なコンテンツプロバイダ、サーバなどと通信する可能性もある。
【００３３】
動作中、ポータブルデバイス10は、デジタル地図画像、テキスト、および音声を含み得るナビゲーションに関連する情報をヘッドユニット14に提供する。ヘッドユニット14は、ディスプレイ18によってこの情報を表示する。一部の実装におけるディスプレイ18は、タッチスクリーンであり、目的地の名前または住所、出発点などを含み得るテキスト入力を入力するためのソフトウェアキーボードを含む。別の種類のディスプレイ18は、たとえば、回転式コントローラなどの非タッチ入力デバイスまたは別のタッチパッドと一緒に提供される比較的手の込んだスクリーンとしてのものである可能性がある。概して、ディスプレイ18は、テキストと画像との両方を表示することができる必要はない。別の車両のヘッドユニットは、たとえば、1つまたは複数の行に英数字を表示することができるだけの簡単なディスプレイを含む可能性がある。
【００３４】
ヘッドユニット14は、ボタン、つまみなどのハードウェア入力制御装置を含み得る。これらの制御装置は、ヘッドユニット14上または車両12内の他の場所に配置される可能性がある。たとえば、図1の車両12は、ヘッドユニット14上のナビゲーション制御装置20とヘッドユニット14に通信可能なように結合されたハンドル制御装置22とを含む。制御装置20および22は、以下でより詳細に検討されるように、ポータブルデバイス10上の様々なナビゲーション制御機能にマッピングされる可能性がある。一部の実装における制御装置20および22は、英数字を入力するために使用される可能性もある。
【００３５】
車両12は、たとえば、マイクロフォン24およびスピーカ26などの音声入力および出力構成要素も含み得る。ハードウェア制御装置20および22と同様に、マイクロフォン24およびスピーカ26は、ヘッドユニット14上に直接配置されるかまたは車両12の他の場所に配置される可能性がある。
【００３６】
ポータブルデバイス10およびヘッドユニット14の例示的な実装が、図2を参照して示される。上で検討されたように、ヘッドユニット14は、ディスプレイ18、ハードウェア制御装置20、22、音声入力ユニット24、および音声出力ユニット26を含む。ヘッドユニット14は、プロセッサ25、1つまたは複数のセンサー28の組、および1つまたは複数の近距離通信ユニット30Bも含み得る。
【００３７】
センサー28の組は、たとえば、ヘッドユニット14が設置される車両の現在位置を判定するための全地球測位システム(GPS)モジュール、車両の速度、加速度、および現在の向きを測定するための慣性計測装置(IMU)、車両の高度を判定するための気圧計などを含み得る。図2はヘッドユニット14内のセンサー28の組を示すが、センサー28はヘッドユニット14の一体的な構成要素である必要はないことが留意される。むしろ、車両は、様々な位置に任意の数のセンサーを含む可能性があり、ヘッドユニット14は、動作中にこれらのセンサーからデータを受信する可能性がある。
【００３８】
近距離通信ユニット30Bは、ヘッドユニット14がポータブルデバイス10と通信することを可能にする。近距離通信ユニット30Bは、USB、Bluetooth(登録商標)、Wi-Fiダイレクト、近距離無線通信(NFC: Near Field Communication)などの有線またはワイヤレス通信をサポートする可能性がある。
【００３９】
実装に応じて、プロセッサ25は、コンピュータリーダメモリ(図示せず)上に記憶された命令を実行する汎用プロセッサまたはヘッドユニット14の機能を実装する特定用途向け集積回路(ASIC)である可能性がある。いずれの場合も、プロセッサ25は、ヘッドユニット14からポータブルデバイス10へのメッセージをフォーマットすること、ポータブルデバイス10からメッセージを受信し、処理すること、ディスプレイ18によって地図画像を表示すること、音声出力26によって音声メッセージを再生することなどを行うように動作することができる。
【００４０】
同様に、ポータブルデバイス10は、ヘッドユニット14と通信するための近距離通信ユニット30Aを含み得る。ユニット30Bと同様に、近距離通信ユニット30Aは、USB、Bluetooth(登録商標)、Wi-Fiダイレクトなどの1つまたは複数の通信方式をサポートし得る。また、ポータブルデバイス10は、1つまたは複数のプロセッサまたはCPU 34と、GPSモジュール36と、メモリ38と、3Gセルラーネットワーク、4Gセルラーネットワーク、または任意のその他の好適なネットワークを介してデータを送信および受信するためのセルラー通信ユニット50とを含む。ポータブルデバイス10は、たとえば、グラフィックス処理ユニット(GPU)などのさらなる構成要素も含み得る。概して、ポータブルデバイス10は、さらなるセンサー(たとえば、加速度計、ジャイロメーター)を含む可能性があり、または反対に、ポータブルデバイス10は、ヘッドユニット14によって供給されるセンサーデータに依拠する可能性がある。1つの実装においては、リアルタイムのナビゲーション中に精度を向上させるために、ポータブルデバイス10は、GPSモジュール36の出力ではなくヘッドユニット14によって供給される測位データに依拠する。
【００４１】
メモリ38は、たとえば、ユーザの連絡先40およびその他の個人データを記憶し得る。図2に示されるように、メモリは、オペレーティングシステム42、動作中にナビゲーションAPI 46を呼び出す付随アプリケーション44、およびナビゲーションサービスアプリケーション48の命令も記憶し得る。ソフトウェア構成要素42、44、および48は、コンパイルされた命令および/またはランタイムで解釈可能な任意の好適なプログラミング可能な言語の命令を含み得る。いずれの場合も、ソフトウェア構成要素42、44、および48は、1つまたは複数のプロセッサ34上で実行される。
【００４２】
ポータブルデバイス10の一部の実施形態において、付随アプリケーション44およびナビゲーションサービスアプリケーション48は、別々のプロセスまたはタスクとして実行される。アプリケーション44および48は、オペレーティングシステム42によって提供されるプロセス間通信(IPC)方式を用いて通信し得る。1つの実装において、ナビゲーションサービスアプリケーション48は、オペレーティングシステム42上のサービスとしてまたはそうでなければネイティブの構成要素として提供される。別の実装において、ナビゲーションサービスアプリケーション48は、オペレーティングシステム42に対応しているがおそらくは異なるソフトウェアプロバイダによってオペレーティングシステム42とは別々に提供されるアプリケーションである。
【００４３】
さらに、ポータブルデバイス10のその他の実施形態において、ナビゲーションサービスアプリケーション48の機能は、ナビゲーションAPI 46を介してアクセス可能な関数の静的なライブラリとして提供される可能性がある。言い換えれば、ナビゲーションサービスアプリケーション48の機能の一部またはすべては、付随アプリケーション44の一部として実行される可能性がある。より広く、ナビゲーションAPI 46は、付随アプリケーション44に、当技術分野で現在知られているソフトウェアアーキテクチャおよび通信方式を含む任意の好適なソフトウェアアーキテクチャおよび通信方式を用いるポータブルデバイス10のナビゲーションサービスへのアクセスを提供する。
【００４４】
概して、ナビゲーションAPI 46は、異なるそれぞれのオペレーティングシステムのための異なるバージョンで提供され得る。たとえば、ポータブルデバイス10のメーカーは、Android (商標)プラットフォームのためのナビゲーションAPI 46を含むソフトウェア開発キット(SDK)、iOS (商標)プラットフォームのための別のSDKを提供する可能性がある。
【００４５】
上で示されたように、ヘッドユニット14がサポートするメッセージング方式の知識を有するか、またはヘッドユニット14の機能を拡張するためにヘッドユニット14に十分にアクセスすることができる開発者は、付随アプリケーション44を開発し、ナビゲーションAPI 46を介してポータブルデバイス10のナビゲーションサービスにアクセスすることができる。言い換えれば、ナビゲーションサービスアプリケーション48は、外部デバイスの要件に合致するようにナビゲーションサービスアプリケーション48の機能にいかなる修正もせずに外部デバイス(この場合、ヘッドユニット14)にナビゲーションデータを提供することができる。
【００４６】
さらに明瞭にするために、図3が、ポータブルデバイス10がヘッドユニット14を介して送られたユーザの要求に応じてナビゲーションデータを得るように動作し得る例示的な通信システムを示す。図解を容易にするために、ポータブルデバイス10およびヘッドユニット14は、図3において簡略化されて示される。
【００４７】
ポータブルデバイス10は、長距離ワイヤレス通信リンク(たとえば、セルラーリンク)を介してインターネットなどの広域通信ネットワーク52にアクセスすることができる。再び図2を参照すると、ポータブルデバイス10は、セルラー通信ユニット50を介して通信ネットワーク52にアクセスすることができる。図3の例示的な構成において、ポータブルデバイス10は、ナビゲーションデータおよび地図データを提供するナビゲーションサーバ54、部分的なユーザ入力に基づいて提案を生成する提案サーバ56、ナビゲーションサーバ54とのユーザの過去のインタラクションおよびその他の要因に応じてパーソナライズデータを提供するパーソナライズサーバ58にアクセスすることができる。
【００４８】
一部の実装においては、付随サーバ60が、ヘッドユニット12による使用のためにナビゲーションデータを直接フォーマットする。特に、ポータブルデバイス10は、付随サーバ60および/またはナビゲーションサーバ54がヘッドユニット14にナビゲーションデータを直接提供し得るように、ヘッドユニット14と付随サーバ60との間のナビゲーションデータのための通信経路を確立することができる。
【００４９】
より広く、ポータブルデバイス10は、任意の数の好適なサーバと通信することができる。たとえば、図3に示された通信ネットワークの別の実施形態においては、ナビゲーションサーバ54が、別個の地図サーバが(たとえば、ベクトルグラフィックスフォーマットで)地図データを提供する間に指示およびその他のナビゲーションデータを提供し、交通データが、経路に沿った交通の最新情報を提供し、天気データサーバが、天気データおよび/または警報を提供する等々。
【００５０】
車両のヘッドユニットへのナビゲーションデータの提供
例示的な筋書きによれば、運転者は、ユーザの車両のヘッドユニット上の適切なボタンを押し、目的地を入力することによってナビゲーション情報を要求する。ヘッドユニットは、ポータブルデバイスに要求を与え、そして今度は、ポータブルデバイスが、ナビゲーションサーバにナビゲーションデータを要求し、ナビゲーションサーバからナビゲーションデータを受信する。そして、ポータブルデバイスは、表示および/または音声再生のためにヘッドユニットにナビゲーションデータを提供する。
【００５１】
さらに明瞭にするために、この筋書きのメッセージシーケンス図(400)が、図4に示される。それぞれの縦線は、対応する構成要素の時系列を図式的に表し、ページのより下に示されるイベントは、ページのより上に示されるイベントの後に発生する。構成要素間の情報の流れは、矢印によって表される。異なる状況における矢印は、異なる物理デバイスの間で伝搬されるメッセージ、同じデバイス上で実行されるタスクの間で伝搬されるメッセージ、1つのソフトウェアレイヤから別のソフトウェアレイヤへの関数呼び出し、トリガイベントに応じて呼び出されるコールバック関数などを表す可能性がある。さらに、場合によっては、単一の矢印が、関数呼び出しおよび/またはメッセージのシーケンスを表す可能性がある。
【００５２】
ユーザは、ヘッドユニット14に「233 South Wacker Dr.」などの目的地(D)を含む入力を送る(402)。ユーザは、起点(O)も指定する可能性があり、またはヘッドユニット14が、現在位置を起点と自動的に関連付ける可能性がある。ヘッドユニット14において利用可能なハードウェアおよびソフトウェアに応じて、ユーザは、ボタン、つまみ、音声、タッチスクリーンなどを用いて入力402を送ることができる。ヘッドユニット14は、ユーザ入力を処理し、ポータブルデバイス12上で実行される付随アプリケーション44にナビゲーション要求イベント404を送信する。望まれる場合、ナビゲーション要求イベント404は、ヘッドユニット14とヘッドユニット14の外部のデバイスとの間の通信のために規定された独自仕様の通信プロトコルに準拠するメッセージである可能性がある。再び図1および図2を参照すると、ヘッドユニット14は、近距離通信リンク16上でナビゲーション要求イベント404を送信し得る。
【００５３】
付随アプリケーション44は、ナビゲーション要求イベント404を受信し、ナビゲーションAPI 46を呼び出す。より詳細には、ナビゲーション要求イベント404は、API 46のフォーマットに従ってナビゲーション要求405を生成する。ナビゲーション要求405を生成することの一部として、付随アプリケーション44は、目的地を指定するための機能、ナビゲーションイベント(たとえば、近づいている曲がり角、途中の進行状況の確認)を報告する好ましい方法を指定するための機能、センサーの使用を構成する(たとえば、ヘッドユニット14またはポータブルデバイス10のGPSの読み取り値を使用する、車両12のIMUの読み取り値を使用する)ための機能などを呼び出す可能性がある。これらの機能の各々は、ナビゲーションAPI 46に固有の構文およびパラメータのリストを有する可能性がある。APIに固有のプロトタイプを用いて機能を呼び出すことに加えてまたはAPIに固有のプロトタイプを用いて機能を呼び出すことと代替的に、付随アプリケーション44が、ナビゲーションAPI 46によって明かされたデータ構造にデータを投入する可能性がある。
【００５４】
ある意味で、付随アプリケーション44は、ユーザを特定の目的地へ案内する要求をヘッドユニット14のフォーマットからナビゲーションAPI 46およびより広くポータブルデバイス10上で利用可能なナビゲーションサービスのフォーマットに変換する。したがって、ナビゲーションサービスは、様々な自動車製造業者のヘッドユニットと通信するために複数のプロトコルをサポートする必要がない。
【００５５】
付随アプリケーション44からナビゲーションサービスアプリケーション48に要求を転送する前に、一部の実装におけるナビゲーションAPI 46は、付随アプリケーション44の認証を行う。より詳細には、ナビゲーションAPI 46は、付随アプリケーション44がポータブルデバイス10のナビゲーションサービスからのナビゲーションデータを要求することを認可されるかどうかを判定する。ナビゲーションAPI 46は、認証鍵を受信し、たとえば、(図1〜図3に示されていない)認証サーバによって認証鍵が検証されることを要求する可能性がある。
【００５６】
次に、ナビゲーションAPI 46は、ナビゲーション要求メッセージ406によって要求をナビゲーションサービスアプリケーション48に知らせる。この目的で、任意の好適なIPC方式(または構成要素46および48が同じタスク内で動作する場合、プロセス内通信方式もしくは任意のその他の好適な通知メカニズム)が、使用され得る。
【００５７】
そして、ナビゲーションサービスアプリケーション48は、ナビゲーション要求408をフォーマットし、長距離ワイヤレス通信リンクと、最終的には図3を参照して検討されたネットワーク52などのワイヤレス通信ネットワークとを介してナビゲーションサーバ54に送信する。概して、ナビゲーション要求408は、ユーザがポータブルデバイス10を介してナビゲーション機能を直接呼び出すときにナビゲーションサービスアプリケーション48がナビゲーションサーバ54に送信するナビゲーション要求と同様である可能性がある。言い換えれば、一部の実装におけるポータブルデバイス10およびヘッドユニット14は、ナビゲーションサーバ54に単一のノードとして提示される可能性がある。一部の実装において、ナビゲーション要求408は、(ナビゲーションサーバ54とクライアントデバイスとの間の通信をより効率的にし、認可されていないアクセスの可能性を減らすために)ナビゲーションサーバ54のオペレータによって定義された独自仕様のプロトコルに準拠する。
【００５８】
ナビゲーション要求408に応答して、ナビゲーションサーバ54は、指示410を提供する。図4の例において、指示410は、N個のステップS1、S2、…、SNのシーケンスを説明するデータを含む。各ステップの説明は、経路セグメントと、次の経路セグメントに遷移するための操作とを示す可能性がある。また、指示410は、推定された到着時間、目的地までの時間および/または距離、(各ステップに関する)次の経路セグメントまでの時間および/または距離、現在の交通の状況の説明などを含み得る。ナビゲーションサーバ54は、長距離通信リンクを介してメッセージまたはメッセージのシーケンスの形態でナビゲーションサービスアプリケーション48に指示410を送信する。図解を容易にするために、図4は、ナビゲーションセッションの始まりにだけナビゲーションアプリケーション48に送信される単一のメッセージとして指示410を示す。しかし、その他の実施形態によるナビゲーションアプリケーション48およびナビゲーションサーバ54は、ポータブルデバイス10が目的地に向かって進むにつれて、ナビゲーションセッション中に後で経路の更新および修正などの追加の情報をやりとりする可能性がある。
【００５９】
図4を引き続き参照すると、ナビゲーションサービスアプリケーション48は、指示410を受信し、たとえば、付随アプリケーション44によって設定済みのコールバック関数である可能性があるメッセージ412の形態で付随アプリケーション44に第1のステップS1を提供する。概して、ナビゲーションサービスアプリケーション48は、ナビゲーションAPI 46を介して付随アプリケーション44にデータを転送し得る。
【００６０】
典型的な筋書きにおいて、メッセージ412は、英数字からなるテキストを含む。しかし、ナビゲーションサービスアプリケーション48は、場合によっては、ステップの説明に基づいて音声アナウンスを生成し、デジタル形式(たとえば、WAV、MP3)の音声アナウンスを付随アプリケーション44に提供する可能性がある。代替的に、テキストから音声への変換は、付随アプリケーション44において実施される可能性がある。さらに、ナビゲーションの指示のステップの説明は、図6〜図8を参照して以下でより詳細に検討されるように、デジタル地図画像を含む可能性がある。
【００６１】
いずれの場合も、付随アプリケーション44は、第1のステップS1の受信された説明をヘッドユニット14によってサポートされるフォーマットに変換し、近距離通信リンクを介してヘッドユニット14にナビゲーションデータメッセージ415Aを送信する。ヘッドユニット14は、任意の好適な方法(たとえば、表示、音声再生)で運転者に第1の情報を提供することができる。
【００６２】
図4の例示的な筋書きにおいて、運転者は、指示のうちの次の指示の説明を要求するためにハンドル上の特定のキーを押す(または別の制御装置を作動させる)。ヘッドユニット14は、入力イベント416を検出した後、次ステップトリガ通知418を付随アプリケーション44に送信し、そして今度は、付随アプリケーション44が、次のステップの要求419を送るためのナビゲーションAPI 46を呼び出す。ナビゲーションAPI 46は、ナビゲーションサービスアプリケーション48に次ステップ要求メッセージ420を送信する。上で検討された説明412と同様に、ナビゲーションアプリケーション48は、次のステップ(422)の説明を、変換およびナビゲーションデータメッセージ415Bの形式でのヘッドユニット14への転送のために付随アプリケーション44に提供する。筋書きは、たとえば、ユーザが目的地に到達するかまたはナビゲーションセッションを取り消すまでこのようにして継続し得る。
【００６３】
別の実装においては、ヘッドユニット14が、車両12の現在位置を分析すると自動的に次ステップトリガメッセージ418を生成する。別の実装においては、ナビゲーションアプリケーション48が、運転者が経路に留まるために操作を行わなければならない地点にポータブルデバイス10が近づくことを検出することに応じて次のステップ422の説明を自動的に生成する。さらに別の実装においては、ヘッドユニット14がステップのシーケンス全体を記憶することができるとすると、ナビゲーションアプリケーション48が、ナビゲーションサーバ54から指示410を受信するとすぐに指示のすべてのステップをヘッドユニット14に与える。
【００６４】
ここで図5を参照すると、例示的な方法500が、ナビゲーションAPI (たとえば、ナビゲーションAPI 46)の機能の一部を実施する。方法500は、たとえば、ポータブルデバイス10のコンピュータ可読メモリ上に記憶され、1つまたは複数のプロセッサ上で実行可能な命令の組である可能性がある。
【００６５】
方法は、目的地の識別子が付随アプリケーションから受信されるブロック502において始まる。識別子は、たとえば、完全な住所(たとえば、「233 South Wacker Drive、Chicago、IL、USA」)または地理に関する検索語(たとえば、「ChicagoのSears Tower」)を含む可能性がある。次に、ブロック504において、目的地の識別子が、ポータブルデバイスのナビゲーションサービスがアクセスされ得るソフトウェア構成要素に提供される。たとえば、識別子は、上で検討されたナビゲーションサービスアプリケーション48に提供される可能性がある。
【００６６】
ブロック506において、ナビゲーションデータが、ナビゲーションサービスアプリケーション48から、またはそうでなければポータブルデバイスのナビゲーションサービスから受信される。ブロック508において、ナビゲーションデータが、近距離通信リンクを介してヘッドユニット14に送信するために付随アプリケーションに提供される。方法は、ブロック508の後、完了する。
【００６７】
一部の実装において、ナビゲーションサービスアプリケーションは、付随アプリケーションを用いることなくヘッドユニットと直接通信する。より詳細には、ナビゲーションサービスアプリケーションおよびヘッドユニットは、特にナビゲーションサービスアプリケーションと車両のヘッドユニットとの間でナビゲーションデータおよび関連するデータを伝達するために定義されたデータフォーマットに準拠するメッセージをやりとりすることができる。このデータフォーマットは、いくつかの車両製造業者によって共有されるオープンフォーマットである可能性がある。ナビゲーションデータをヘッドユニットまたは車両に固有のフォーマットでヘッドユニットに送信する必要がないので、ナビゲーションサービスアプリケーションは、単純に、ナビゲーションデータをオープンフォーマットに準拠するメッセージに変換し、近距離通信リンクを介してこれらのメッセージを送信することができる。ナビゲーションサービスアプリケーションは、この場合、ヘッドユニットに固有の命令を実行する(たとえば、車両および/またはヘッドユニットの製造業者が提供するAPIを呼び出す)必要がない。さらに、任意のパーソナライズのため以外に、ナビゲーションサービスアプリケーションは、ヘッドユニットにナビゲーションデータを送信することができるためにヘッドユニットのいかなる特定のパラメータも知る必要がない。ナビゲーションサービスアプリケーションは、ポータブルデバイスのオペレーティングシステムにネイティブである可能性がある。
【００６８】
車両のヘッドユニットへのデジタル地図画像の提供
上で検討されたように、ナビゲーションサービスアプリケーション48は、要求された指示を経路を説明する一連のステップとして受信する。各ステップは、1つまたは複数の操作(たとえば、「大通りで左折」、「交差点を通過」、「Route 66に乗る」)を含む。一部の実装において、ヘッドユニット14は、さらに、操作に関するデジタル地図画像を受信する。デジタル地図画像は、地図の上が真北ではなく車両が現在向いている方向に対応するように、車両の現在の向きに一致するように向きを決められ得る。さらに、デジタル地図画像は、ユーザが前に訪れたことのある会社または別の関心のある地点(PO: point of interest)などのユーザのアカウントに関連する1つまたは複数の位置を含むようにパーソナライズされ得る。その上さらに、デジタル地図画像は、ヘッドユニットの様式に一致するようにパーソナライズされ得る。
【００６９】
この技術の1つの別法として、ポータブルデバイス10は、デジタル地図がポータブルデバイス10の新しい位置に応じて再レンダリングされるときにヘッドユニット14に画像を継続的にエクスポートすることができる。言い換えれば、ポータブルデバイス10上でレンダリングされるグラフィックスコンテンツが、ポータブルデバイス10に「ミラーリング(mirror)」され得る。しかし、ミラーリングする手法は、大量の帯域幅を必要とし、ポータブルデバイス10上のバッテリーを急速に消耗し、ヘッドユニット14が連続する画像を高速で表示することができることを必要とする。
【００７０】
図6の例示的な筋書き600によれば、ユーザが経路の次のステップのための命令を見たいおよび/または聞きたいことを示すためにそのユーザが制御装置を作動させるときに入力イベント602が生成される。たとえば、入力602は、入力イベント416に対応する可能性があり、したがって、図6に示される技術は、図4の筋書きにおいて実施される可能性がある。
【００７１】
入力イベント602に応答して、ヘッドユニット14は、近距離通信リンクを介して付随アプリケーション44に次ステップトリガイベント(604)を送信する。そして、付随アプリケーション44は、ナビゲーションAPI 46を呼び出し、この呼び出しは、次ステップトリガイベント604をナビゲーションAPI 46によって認識されるデータ構造および/または関数呼び出しに変換することを含む可能性がある。ナビゲーションAPI 46は、次ステップ要求メッセージ606によってナビゲーションアプリケーション48に通知する。
【００７２】
この例示的な筋書きにおいては、次のステップの説明を付随アプリケーション44に提供する(図4のメッセージ422参照)前に、ナビゲーションサービスアプリケーション48が、ユーザの好みに関してパーソナライズサーバ58に問い合わせ(パーソナライズ要求608)、それに応じてパーソナライズデータ610を受信し、ヘッドユニット14によって表示するための操作に関するデジタル地図画像を生成する。概して、ナビゲーションサービスアプリケーション48は、必ずしもパーソナライズサーバに連絡せず、一部の実装におけるナビゲーションサービスアプリケーション48は、パーソナライズされないデジタル地図画像を生成する。
【００７３】
デジタル地図画像を生成するとき、ナビゲーションサービスアプリケーション48は、たとえば、ベクトルグラフィックスフォーマットで定義された地図要素の組で動作する可能性がある。概して、ベクトルグラフィックスフォーマットは、幾何学形状の数学的記述に基づく。ナビゲーションサービスアプリケーション48は、様々な地理的区域に関する道、建物、水体、公園などの様々な地図要素を指定する地図データを受信し得る。地図データは、英数字ラベルおよび場合によってはラスタ化済みの画像(すなわち、ビットマップフォーマットで定義された画像)も含む可能性がある。ナビゲーションサービスアプリケーション48は、地図要素のベクトルに基づく定義を解釈して所望の向きの標準的なフォーマット(たとえば、JPEG)のラスタ画像を生成する可能性がある。
【００７４】
パーソナライズデータ610は、たとえば、経路に沿ったどの場所がユーザのためにより目立つように表示されるべきであるか(たとえば、コーヒーショップ)の指示、どの場所をユーザが前に訪れたことあるがあるかの指示、(たとえば、経路のよく訪れている部分に関してはより少ない指示が与えられ、ユーザがあまりよく知らない経路の部分に関してはより多くの指示が与えられるように)ユーザが経路の特定の部分をどれだけよく知っているかの指示などの情報を含む可能性がある。ナビゲーションサービスアプリケーション48は、パーソナライズデータ610を考慮してデジタル地図画像を生成することができる。
【００７５】
さらに、ナビゲーションサービスアプリケーション48は、ヘッドユニット602のパラメータを考慮して配色、線の太さ、ラベルで使用されるフォントなどの地図画像の視覚的な属性を調整する可能性がある。したがって、付随アプリケーション44は、ヘッドユニット14において利用可能なスクリーンのサイズ、解像度、好ましい配色などを指定するためのナビゲーションAPI 46の関数を呼び出すことができる。このようにして、付随アプリケーション44は、車両のインテリアの全体的な様式に合う地図画像を生成するようにナビゲーションアプリケーション48を構成することができる。
【００７６】
上でやはり示されたように、ナビゲーションサービスアプリケーション48は、車両が現在向いている方向に一致する向きで各地図画像を生成し得る。1つの例示的な実装において、付随アプリケーション44は、ヘッドユニット14から現在の向きの指示を受信し、ナビゲーションAPI 46を介してナビゲーションサービスアプリケーション48にこの指示を与える。代替的に、ナビゲーションサービスアプリケーション48および/またはナビゲーションAPI 46は、ポータブルデバイス10のセンサーを使用する可能性がある。ヘッドユニット14によって表示するためにナビゲーションサービスアプリケーション48が生成する地図画像は、BMP、JPEGなどの任意の好適なフォーマットである可能性がある。
【００７７】
ナビゲーションサービスアプリケーション48は、次のステップのデータを地図画像と一緒に付随アプリケーション44に提供し(地図画像をともなう次ステップメッセージ612)、そして今度は、付随アプリケーション44が、ヘッドユニット14にこのデータを提供する(地図データをともなうナビゲーションデータメッセージ614)。
【００７８】
手短に図7を見ると、ヘッドユニット14のディスプレイ上の例示的なビューポート700が示される。ビューポート700は、デジタル地図702、ステップ説明エリア704、および詳細デジタル地図区域706を表示する。ヘッドユニット14は、図6を参照して検討されたように要求され、受信されたデータを用いてビューポート700を生成し得る。
【００７９】
図7に示されるように、デジタル地図702は、ユーザアカウントに関連する1つまたは複数の場所、たとえば、ユーザが行きつけのレストランなどによって増強される。概して、デジタル地図によく知られている目標物を含めることは、ユーザが詳細なデジタル地図上に示される操作をよりはっきりと思い浮かべ、理解することを可能にする。
【００８０】
さらに明瞭にするために、ナビゲーションデータをデジタル地図画像とともに車両のヘッドユニットに提供するための例示的な方法800が、図8を参照して検討される。方法800は、コンピュータ可読メモリに記憶され、1つまたは複数のプロセッサ上で実行される1組のコンピュータが実行可能な命令として実装され得る。一例として、方法800は、ナビゲーションAPI 46に実装され得るが、概して、方法800は、ポータブルデバイスまたは任意の好適なコンピューティングデバイスに実装される可能性がある。
【００８１】
方法は、操作を指定するナビゲーションデータがナビゲーションサーバから受信するブロック802において始まる。次に、ブロック804において、車両12の現在位置の指示が受信される。一部の実施形態においては、車両12の向きが、ブロック804においてさらに受信される。ブロック806において、操作が行われる位置を含む地理的地域に関するデジタル地図が生成される。デジタル地図画像は、車両12の現在の向きに応じて向きを決められ、場合によっては上で検討されたようにパーソナライズされる可能性がある。ブロック808において、デジタル地図が、通信リンクを介して車両12のヘッドユニット14に提供される。方法は、ブロック810の後、完了する。
【００８２】
車両制御装置の構成およびマッピング
場合によっては、ポータブルデバイス10上のナビゲーションサービスが、ナビゲーションボタンおよびハンドルのボタンなどの車両12内の既存の車両制御装置をナビゲーションサービスアプリケーション48のナビゲーション機能にマッピングするために使用され得る。ユーザは、ヘッドユニット14が単純にキー押下イベントをナビゲーションサービスアプリケーション48に報告し得るようにポータブルデバイス10上でマッピングを構成する。たとえば、多くの車両は、ボリューム上げ、ボリューム下げ、次のトラック、前のトラックなどのためのハンドル、ラジオ、ヘッドユニット14などの上のボタンを有する。付随アプリケーション44は、ユーザが車両制御装置を様々なナビゲーション機能にマッピングする構成の特徴をサポートし得る。マッピングが完了すると、ナビゲーションサービスアプリケーション48は、ユーザが車両制御装置を作動させることに応じて経路の次のステップを提供する、経路の前のステップに戻るなど、様々なアクションを実行する。ボタンがポータブルデバイス10上でソフトウェアを用いて構成され得るので、ヘッドユニット14は、容易に構成され、さらには改良され得る。
【００８３】
図9は、ヘッドユニット14のハードウェア制御装置をポータブルデバイス10のナビゲーション機能にマッピングするための図2に示された構成要素間の情報900の例示的なやりとりを示すメッセージシーケンス図である。
【００８４】
ユーザがナビゲーションボタン20および/またはハンドルのボタン22 (図1参照)などの車両制御装置を作動させた後、付随アプリケーション44は、制御装置作動イベント902を受信する。たとえば、制御装置作動イベント902は、ユーザがハンドル上の「次のトラック」ボタンを押下したことを示す可能性がある。同時に、付随アプリケーション44は、ポータブルデバイス10上のユーザインターフェーススクリーンを提示することができ、そのユーザインターフェーススクリーンを介して、ユーザは、様々なナビゲーション機能を選択し、マッピングを指定することができる。ユーザは、付随アプリケーション44を介してナビゲーション機能(たとえば、次のステップ)を選択する。任意で、付随アプリケーション44は、ナビゲーションAPI 46 (図9のメッセージ904)を介してナビゲーション機能についてのパラメータおよびその他の情報を得る。
【００８５】
付随アプリケーション44は、どの車両制御装置が作動されたかの指示とどのナビゲーション機能が選択されたかの指示との両方を受信すると、車両制御装置とナビゲーション機能との間のマッピングを作成し(アクション906)、ポータブルデバイス10の永続的なメモリにマッピングを保存する(アクション908)。同様にして、付随アプリケーション44は、複数のナビゲーション機能と複数の車両制御装置とに関するマッピングを受信し得る。望まれる場合、2つ以上の車両制御装置が、同じナビゲーション機能にマッピングされ得る。
【００８６】
次に、図10のメッセージシーケンス図1000が、ヘッドユニット14を介して受信されたユーザ入力をナビゲーションサービスアプリケーション48に提供するための図2に示された構成要素間の情報の例示的なやりとりを示す。
【００８７】
図10に示されるように、ユーザは、「次のステップ」ナビゲーション機能にマッピングされたハンドル上の「次のトラック」ボタンなどの車両制御装置を作動させる(1002)。ヘッドユニット14は、近距離通信リンクを介して制御装置作動イベント(1004)においてキー押下イベントを報告する。付随アプリケーション44は、制御装置作動イベント1004を受信し、前に保存された構成情報を用いてナビゲーション機能を特定し、ナビゲーションAPI 46 (ナビゲーション機能選択1005)を介して特定されたナビゲーション機能を呼び出す。上記の例を続けると、付随アプリケーション44は、「次のステップ」ナビゲーション機能を特定し、呼び出す。
【００８８】
図10を引き続き参照すると、ナビゲーションAPI 46が、選択をナビゲーションサービスアプリケーション48に転送し(イベント1006)、ナビゲーションサービスアプリケーション48が、機能を実行し(イベント1008)、選択されたナビゲーション機能を実行した結果をヘッドユニット14に転送される(イベント1012)ように付随アプリケーション44に提供する(イベント1010)。
【００８９】
したがって、車両制御装置が、付随アプリケーションの構成機能を用いてナビゲーション機能にマッピングされる。一部の実装において、付随アプリケーション44は、1組の予め決められた規則に従って1つまたは複数の車両制御装置をポータブルデバイス10のナビゲーション機能に自動的にマッピングする。たとえば、付随アプリケーション44は、自動的に、「ボリューム上げ」または「次のトラック」のハンドルのボタンを経路の次のステップを示すナビゲーション機能にマッピングする可能性があり、「ボリューム下げ」または「前のトラック」のハンドルのボタンを前のステップを示すナビゲーション機能にマッピングする可能性がある等々。
【００９０】
別の別法として、ヘッドユニット14のルーチンが、車両制御装置とナビゲーション機能との間のマッピングを行い、記憶する可能性がある。この目的で、ヘッドユニット14は、ナビゲーションサービスアプリケーション48が利用可能なナビゲーション機能を列挙することを付随アプリケーション44を介して要求する可能性がある(そして今度は、付随アプリケーション44がナビゲーションAPI 46を呼び出す)。代替的に、ヘッドユニット14は、単純に、ポータブルデバイス10上の特定の機能の可用性を仮定する可能性がある。この実施形態によれば、ヘッドユニット14は、「生の」キー押下イベントではなく取りそろえられたナビゲーション機能を付随アプリケーション44に報告する。
【００９１】
さらに明瞭にするために、車両12内に設置された外部入力デバイスからのユーザ入力の指示を処理するための例示的な方法が、図11を参照して検討される。この方法は、たとえば、ポータブルデバイス10の1つまたは複数のプロセッサ上で実行可能であり、コンピュータ可読メモリに記憶される1組のコンピュータが実行可能な命令として実装され得る。
【００９２】
方法は、外部入力デバイス上の1組の制御装置とナビゲーションサービスの複数のナビゲーション機能との間のマッピングが受信されるブロック1102において始まる。次に、ブロック1104において、これらの制御装置のうちの1つが作動されたという指示が受信される。ブロック1106において、適切なナビゲーション機能が、受信されたマッピングおよび受信された指示に基づいて1組のナビゲーション機能の中から選択される。ブロック1108において、選択されたナビゲーション機能が呼び出される。実施形態の少なくとも一部においては、ナビゲーション機能の出力が、外部入力デバイスに提供される。方法は、ブロック1108の後、完了する。
【００９３】
部分的なユーザ入力を処理するための提案サーバの使用
一部の実施形態において、ポータブルデバイス10のナビゲーションサービスは、部分的にしか完成されていないユーザ入力に基づいて提案を提供するための「オートコンプリート」の特徴もサポートする。この特徴は、ユーザが運転中に車両制御装置とインタラクティブしなければならない時間を削減する。したがって、たとえば、ユーザが目的の地点の最初の文字(たとえば、「M」)に対応する入力を作動させるとき、ヘッドユニット14は、その文字で始まる提案される位置を表示またはアナウンスする。オートコンプリート機能は、ヘッドユニット14がポータブルデバイス10の長距離通信能力およびポータブルデバイス10に関連するユーザアカウントを利用することをやはり可能にする。このようにして、提案は、ヘッドユニット14が長距離ワイヤレスサービスに加入していることまたはヘッドユニット14が様々なユーザアカウントを保有することを必要とせずにユーザのためにパーソナライズされ得る。したがって、ユーザは、自動車をレンタルすること、友達から自動車を借りることなどが可能であり、パーソナライズされたナビゲーションデータ、パーソナライズされた地図画像、およびパーソナライズされた提案に引き続きアクセスすることができる。
【００９４】
図12は、ヘッドユニット14に入力の提案を提供するための図2に示された構成要素間の例示的な情報のやりとり1200を示すメッセージシーケンス図である。この筋書きによれば、ヘッドユニット14が、筋書きに応じてたった1文字または複数文字を含む可能性がある部分的な入力を受信する(イベント1201)。ヘッドユニット14の一部の実施形態においては、ヘッドユニット14上で実行されるソフトウェアが、ディスプレイを介して目的地を要求するためのダイアログを提示するか、または音声構成要素を介してユーザ入力を求める。
【００９５】
ヘッドユニット14は、近距離通信リンクを介して付随アプリケーション44に部分的入力イベント1202を送信する。そのとき、付随アプリケーション44が、ナビゲーションサービスアプリケーション48によってサポートされるフォーマットに準拠するように部分的な入力を構築するためのナビゲーションAPI 46を呼び出す。そして、ナビゲーションAPI 46は、部分的入力メッセージ1204をナビゲーションアプリケーション48に送信し、そして今度は、ナビゲーションアプリケーション48が、長距離通信リンクを介して提案サーバ56に提案要求1206を送信する。提案サーバ56が1つまたは複数の提案1208によって応答すると、ナビゲーションアプリケーション48は、付随アプリケーション44に提案を提供し(提案イベント1209)、付随アプリケーションは、ヘッドユニット14に提案を送信する(提案されるテキストメッセージ1210)。特に、付随アプリケーション44は、受信された提案をヘッドユニット14によってサポートされるフォーマットに変換することができる。このフォーマットは、テキスト、音声などを指定する可能性がある。
【００９６】
一部の実施形態において、ナビゲーションアプリケーション48および/または提案サーバ56は、ポータブルデバイス10のユーザアカウントおよび/または位置の履歴に基づいて提案をパーソナライズする。
【００９７】
ヘッドユニット14が入力を受信し続けるとき、プロセスは継続されるおよび/または繰り返される。たとえば、ヘッドユニット14は、目的地がユーザによって確認されるかまたは完全に入力されるまで第1の部分的な入力(目的地の最初の文字)を付随アプリケーション44に送信する可能性があり、第2の部分的な入力(目的地の最初の2文字)を付随アプリケーション44に送信する可能性がある等々。
【００９８】
一部の実施形態においては、ポータブルデバイス10が提案サーバ56と通信することができないとき、ポータブルデバイス10が提案の十分なキャッシュをメモリ38に記憶し、オートサジェスト機能が使用される。この場合、ナビゲーションサービスアプリケーション48は、部分的な入力を受信し、キャッシュに保存された提案に基づいて提案の出力を生成する。
【００９９】
さらに、一部の実施形態においては、ヘッドユニット14がいずれかの入力を受信する前に、ナビゲーションアプリケーション48が提案を生成する。たとえば、ポータブルデバイス10に関連するアカウントが、車両12がSydneyの空港にあるとき、概してユーザが車で家に帰ることを示す入りの履歴を含む可能性がある。したがって、ナビゲーションアプリケーション48は、ヘッドユニット14を介してユーザアクティブ化ナビゲーション機能に応じてユーザの位置の位置を提案する可能性がある。
【０１００】
さらに明瞭にするために、ヘッドユニット14を介して入力の提案を提供するための例示的な方法が、図13を参照して検討される。この方法は、1組のコンピュータが実行可能な命令として実装され、コンピュータ可読メモリに記憶され得る。1つの例示的な実装において、図13の方法は、ナビゲーションAPI 46に実装される。より広く、図13の方法は、ポータブルデバイスまたは任意の好適なコンピューティングデバイスに実装される可能性がある。
【０１０１】
方法は、部分的なユーザ入力が第1の通信リンクを介してヘッドユニット14から受信されるブロック1302において始まる。次に、ブロック1304において、部分的なユーザ入力が、第2の通信リンクを介して提案サーバに提供される。ブロック1306において、提案サーバからの部分的なユーザ入力に対応する提案される入力が、第2の通信リンクを介して受信される。ブロック1308において、提案される入力が、第1の通信リンクを介してヘッドユニット14に提供される。方法は、ブロック1308の後、完了する。
【０１０２】
さらなる考慮事項
以下のさらなる考慮事項が、上の検討に当てはまる。本明細書全体を通じて、単一のインスタンスとして説明された構成要素、動作、または構造を複数のインスタンスが実装する可能性がある。1つまたは複数の方法の個々の動作が別々の動作として示され、説明されているが、個々の動作のうちの1つまたは複数が同時に実行される可能性があり、動作が示された順序で実行される必要はない。例示的な構成において別個の構成要素として示された構造および機能は、組み合わされた構造または構成要素として実装され得る。同様に、単一の構成要素として示された構造および機能は、別個の構成要素として実装され得る。これらのおよびその他の変更、修正、追加、および改良は、本開示の対象の範囲内に入る。
【０１０３】
加えて、特定の実施形態が、論理またはいくつかの構成要素、モジュール、またはメカニズムを含むものとして本明細書において説明されている。モジュールは、ソフトウェアモジュール(たとえば、機械可読媒体に記憶されるコード)かまたはハードウェアモジュールかのどちらかを構成する可能性がある。ハードウェアモジュールは、特定の動作を実行することができる有形のユニットであり、特定の方法で構成または配列され得る。例示的な実施形態において、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロンのクライアントもしくはサーバコンピュータシステム)またはコンピュータシステムの1つもしくは複数のハードウェアモジュール(たとえば、プロセッサもしくはプロセッサのグループ)は、本明細書において説明されたように特定の動作を実行するように動作するハードウェアモジュールとしてソフトウェア(たとえば、アプリケーションまたはアプリケーションの一部)によって構成され得る。
【０１０４】
ハードウェアモジュールは、特定の動作を実行するように(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサとして)恒久的に構成される専用の回路または論理を含み得る。また、ハードウェアモジュールは、特定の動作を実行するようにソフトウェアによって一時的に構成されるプログラミング可能な論理または回路を(たとえば、汎用プロセッサまたはその他のプログラミング可能なプロセッサ内に包含されるものとして)含み得る。専用の恒久的に構成された回路または(たとえば、ソフトウェアによって構成された)一時的に構成された回路内にハードウェアモジュールを実装する判断がコストおよび時間の考慮によって促される可能性があることは、理解されるであろう。
【０１０５】
したがって、用語、ハードウェアは、特定の方法で動作するかまたは本明細書において説明された特定の動作を実行するように物理的に構築され、永続的に構成される(たとえば、結線される)かまたは一時的に構成される(たとえば、プログラミングされる)エンティティである有形のエンティティを包含すると理解されるべきである。ハードウェアモジュールが一時的に構成される(たとえば、プログラミングされる)実施形態を考慮すると、ハードウェアモジュールの各々が常に構成またはインスタンス化される必要はない。たとえば、ハードウェアモジュールがソフトウェアを用いて構成される汎用プロセッサを含む場合、汎用プロセッサは、異なる時間にそれぞれの異なるハードウェアモジュールとして構成され得る。したがって、ソフトウェアは、たとえば、1つの時点で特定のハードウェアモジュールを構成し、異なる時点で異なるハードウェアモジュールを構成するようにプロセッサを構成する可能性がある。
【０１０６】
ハードウェアおよびソフトウェアモジュールは、その他のハードウェアおよび/またはソフトウェアモジュールに情報を提供し、その他のハードウェアおよび/またはソフトウェアモジュールから情報を受信する可能性がある。したがって、説明されたハードウェアモジュールは、通信可能なように結合されると考えられ得る。そのようなハードウェアまたはソフトウェアモジュールの複数が同時に存在する場合、通信は、ハードウェアまたはソフトウェアモジュールを接続する(たとえば、適切な回路およびバスを介した)信号の送信を通じて実現され得る。複数のハードウェアモジュールまたはソフトウェアが異なる時間に構成またはインスタンス化される実施形態において、そのようなハードウェアまたはソフトウェアモジュールの間の通信は、たとえば、複数のハードウェアまたはソフトウェアモジュールがアクセスすることができるメモリ構造への情報の記憶およびそのメモリ構造からの情報の取り出しを通じて実現され得る。たとえば、1つのハードウェアまたはソフトウェアモジュールが、動作を実行し、その動作の出力を、そのハードウェアまたはソフトウェアモジュールが通信可能なように結合されるメモリデバイスに記憶する可能性がある。そのとき、さらなるハードウェアまたはソフトウェアモジュールが、後でメモリデバイスにアクセスして、記憶された出力を取り出し、処理する可能性がある。ハードウェアおよびソフトウェアモジュールは、入力または出力デバイスとの通信を開始する可能性もあり、リソース(たとえば、情報の集合)で動作する可能性がある。
【０１０７】
本明細書において説明された例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実行するように(たとえば、ソフトウェアによって)一時的に構成されるかまたは恒久的に構成される1つまたは複数のプロセッサによって実行される可能性がある。一時的に構成されるかまたは恒久的に構成されるかにかかわらず、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサによって実装されるモジュールを構成し得る。本明細書において言及されるモジュールは、一部の例示的な実施形態において、プロセッサによって実装されるモジュールを含み得る。
【０１０８】
同様に、本明細書において説明された方法またはルーチンは、少なくとも部分的にプロセッサによって実装され得る。たとえば、方法の動作の少なくとも一部は、1つまたは複数のプロセッサまたはプロセッサによって実装されるハードウェアモジュールによって実行され得る。動作の一部の実行は、単一のマシン内に存在するのみでなく、いくつかのマシンにわたっても配置される1つまたは複数のプロセッサの間に分散される可能性がある。一部の例示的な実施形態においては、1つのプロセッサまたは複数のプロセッサが単一の場所に(たとえば、家庭の環境内に、事務所の環境内に、またはサーバファームとして)置かれる可能性があり、一方、その他の実施形態においては、プロセッサがいくつかの場所にわたって分散される可能性がある。
【０１０９】
1つまたは複数のプロセッサは、「クラウドコンピューティング」環境におけるまたはSaaSとしての関連する動作の実行をサポートするように動作する可能性もある。たとえば、上で示されたように、動作の少なくとも一部は、(プロセッサを含むマシンの例として)コンピュータのグループによって実行される可能性があり、これらの動作は、ネットワーク(たとえば、インターネット)を介しておよび1つまたは複数の適切なインターフェース(たとえば、API)を介してアクセスされ得る。
【０１１０】
動作の一部の実行は、単一のマシン内に存在するのみでなく、いくつかのマシンにわたっても配置される1つまたは複数のプロセッサの間に分散される可能性がある。一部の例示的な実施形態においては、1つまたは複数のプロセッサまたはプロセッサによって実装されるモジュールが、単一の地理的位置に(たとえば、家庭の環境、事務所の環境、またはサーバファーム内に)置かれる可能性がある。その他の例示的な実施形態においては、1つまたは複数のプロセッサまたはプロセッサによって実装されるモジュールが、いくつかの地理的位置にわたって分散される可能性がある。
【０１１１】
本明細書のいくつかの部分は、マシンのメモリ(たとえば、コンピュータメモリ)内にビットまたはバイナリデジタル信号として記憶されるデータに対する動作のアルゴリズムまたは記号表現によって示されている。これらのアルゴリズムまたは記号表現は、データ処理技術の通常の技能を有する者によって、それらの者の成果の内容を当該技術に精通したその他の者に伝えるために使用される技術の例である。本明細書において使用されるとき、「アルゴリズム」または「ルーチン」は、所望の結果につながる動作または同様の処理の自己矛盾のないシーケンスである。この文脈では、アルゴリズム、ルーチン、および動作は、物理量の物理的操作を含む。必ずではないが通常は、そのような量は、マシンによって記憶、アクセス、転送、組合せ、比較、またはその他の操作を行われ得る電気的、磁気的、または光学的信号の形態をとる可能性がある。そのような信号を「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「シンボル」、「文字」、「用語」、「数」、「数字」などの語を用いて呼ぶことが、主に共通使用の理由で便利な場合がある。しかし、これらの語は、単に便宜的なラベルであるに過ぎず、適切な物理量に関連付けられるべきである。
【０１１２】
別途特別に述べられない限り、「処理」、「コンピューティング」、「計算」、「決定」、「提示」、「表示」などの語を用いる本明細書における検討は、1つまたは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、もしくはこれらの組合せ)、レジスタ、または情報を受信、記憶、送信、もしくは表示するその他のマシンの構成要素内で物理的(たとえば、電気的、磁気的、または光学的)量として表されるデータを操作または変換するマシン(たとえば、コンピュータ)のアクションまたはプロセスに言及する可能性がある。
【０１１３】
本明細書において使用されるとき、「1つの実施形態」または「実施形態」へのすべての言及は、実施形態に関連して説明された特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書中の様々な個所に現れる語句「1つの実施形態において」は、必ずしもすべてが同じ実施形態を指しているとは限らない。
【０１１４】
一部の実施形態は、表現「結合された」および「接続された」をそれらの派生形と一緒に用いて説明される可能性がある。たとえば、一部の実施形態は、2つ以上の要素が物理的または電気的に直接接触していることを示すために用語「結合された」を用いて説明される可能性がある。しかし、用語「結合された」は、2つ以上の要素が互いに直接接触していないが、しかし、それでもやはり互いに強力またはインタラクションすることを意味する可能性もある。実施形態は、この文脈に限定されない。
【０１１５】
本明細書において使用されるとき、用語「含む(comprises)」、「含む(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、またはこれらの任意のその他の変形は、非排他的包含を含むように意図される。たとえば、多数の要素を含むプロセス、方法、製品、または装置は、必ずしもそれらの要素だけに限定されず、明示的に挙げられていないまたはそのようなプロセス、方法、製品、または装置に固有でないその他の要素を含む可能性がある。さらに、反対のことが明示的に述べられない限り、「または(or)」は、包含的なまたは(or)を指し、排他的なまたは(or)を指さない。たとえば、条件AまたはBは、以下、すなわち、Aが真であり(または存在する)かつBが偽である(または存在しない)、Aが偽であり(または存在しない)かつBが真(または存在する)である、およびAとBとの両方が真である(または存在する)のうちのいずれか1つによって満たされる。
【０１１６】
加えて、「a」または「an」の使用は、本明細書の実施形態の要素および構成要素を説明するために使用される。これは、単に便宜的に、説明の一般的意味を与えるために行われる。この説明は、1つまたは少なくとも1つを含むものと読まれるべきであり、単数形は、そうでないように意図されていることが明らかでない限り複数も含む。
【０１１７】
本開示を読むと、当業者は、本明細書の開示された原理によるナビゲーションAPIに関するさらなる代替的な構造的および機能的設計を理解するであろう。したがって、特定の実施形態および応用が示され、説明されたが、開示された実施形態は本明細書において開示された厳密な構造および構成要素に限定されないことを理解されたい。当業者に明らかであろう様々な修正、変更、および変形が、添付の請求項において定義される精神および範囲を逸脱することなく、本明細書において開示された方法および装置の配置、動作、および詳細になされ得る。
【符号の説明】
【０１１８】
1  環境
10  ポータブルデバイス
12  車両
14  ヘッドユニット
16  通信リンク
18  ディスプレイ
20  制御装置
22  制御装置
24  マイクロフォン
25  プロセッサ
26  スピーカ
28  センサー
30A  近距離通信ユニット
30B  近距離通信ユニット
34  CPU
36  GPSモジュール
38  メモリ
40  連絡先
42  オペレーティングシステム
44  付随アプリケーション
46  ナビゲーションAPI
48  ナビゲーションサービスアプリケーション
50  セルラー通信ユニット
52  通信ネットワーク
54  ナビゲーションサーバ
56  提案サーバ
58  パーソナライズサーバ
60  付随サーバ
400  メッセージシーケンス図
402  入力
404  ナビゲーション要求イベント
405  ナビゲーション要求
406  ナビゲーション要求メッセージ
408  ナビゲーション要求
410  指示
412  メッセージ
415A  ナビゲーションデータメッセージ
415B  ナビゲーションデータメッセージ
416  入力イベント
418  次ステップトリガ通知、次ステップトリガメッセージ
419  次のステップの要求
420  次ステップ要求メッセージ
422  次のステップ
500  方法
600  筋書き
602  入力イベント
604  次ステップトリガイベント
606  次ステップ要求メッセージ
608  パーソナライズ要求
610  パーソナライズデータ
612  地図画像をともなう次ステップメッセージ
614  地図データをともなうナビゲーションデータメッセージ
700  ビューポート
702  デジタル地図
704  ステップ説明エリア
706  詳細デジタル地図区域
800  方法
900  情報
902  制御装置作動イベント
904  メッセージ
1000  メッセージシーケンス図
1004  制御装置作動イベント
1005  ナビゲーション機能選択
1006  イベント
1008  イベント
1010  イベント
1012  イベント
1200  情報のやりとり
1201  イベント
1202  部分的入力イベント
1204  部分的入力メッセージ
1206  提案要求
1208  提案
1209  提案イベント
1210  提案されるテキストメッセージ
【図１】
2019144265.tif 000003
【図２】
2019144265.tif 000004
【図３】
2019144265.tif 000005
【図４】
2019144265.tif 000006
【図５】
2019144265.tif 000007
【図６】
2019144265.tif 000008
【図７】
2019144265.tif 000009
【図８】
2019144265.tif 000010
【図９】
2019144265.tif 000011
【図１０】
2019144265.tif 000012
【図１１】
2019144265.tif 000013
【図１２】
2019144265.tif 000014
【図１３】
2019144265.tif 000015
【外国語明細書】
2019144265000001.pdf