(57)【要約】  インテリジェントナビゲーションシステムは、リアルタイムの道路状況及び操縦性状態に従って、自動車をナビゲートする。インテリジェントナビゲーションシステムは、経路逸脱が実際に発生する前に、起こり得る経路逸脱を予測し、補正する。インテリジェントナビゲーションシステムは、人による介入はほとんど又は全くなしで自動車をナビゲートできるように、自動車の操縦性能と対話する。インテリジェントナビゲーションシステムは、自動車が到達する目的地に関する目的地情報を入力装置から受信するステップと、自動車の初期位置に関する初期位置情報を測位装置から受信するステップと、自動車を初期位置から目的地まで操縦するタスクを、プロセッサを用いて決定するステップと、プロセッサを用いて車両操縦コントローラにタスクを実施するよう指示を出すステップと、を含んでなる方法を実施してもよい。
2015509195.tif 000002
【特許請求の範囲】
【請求項１】
自動車をナビゲートし且つ操縦するためのインテリジェントナビゲーションシステムであって、
前記自動車が到達する目的地に関する目的地情報を受信するように構成された入力装置と、
前記自動車の初期位置を決定し、前記自動車を前記初期位置から前記目的地へとナビゲートするための経路を計算するように構成された測位装置と、
前記入力装置及び前記測位装置と通信し、且つ、
前記自動車を前記初期位置から前記目的地へと操縦するためのタスクを決定し、
決定された該タスクに基づいて信号を生成するように構成されたプロセッサと、
該プロセッサと通信し、前記信号に応じて前記タスクを実行させるように構成された車両操縦コントローラと、を具備するインテリジェントナビゲーションシステム。
【請求項２】
前記プロセッサと通信し、且つ、計算された前記経路内の第１の位置と第２の位置との間の道路状況に関する前記道路状況情報を生成するように構成されたコンピュータサーバを更に具備し、これにより前記プロセッサが前記道路状況情報に基づいて前記タスクを決定するように構成された請求項１に記載のインテリジェントナビゲーションシステム。
【請求項３】
前記測位装置は、前記タスクが実行された後、前記自動車の移動中の位置を決定するように構成され、
前記プロセッサが、
前記移動中の位置と前記経路との間の相関を決定し、
該相関が所定の閾値より低い場合、前記測位装置から前記経路の更新を要求し、且つ、
更新された前記経路に基づいて、前記自動車を操縦するための更新されたタスクを決定するように構成された請求項１に記載のインテリジェントナビゲーションシステム。
【請求項４】
前記プロセッサに結合され、且つ、前記タスクの実行中に前記自動車の操縦性状態を検知するように構成されたセンサを更に具備し、これにより前記プロセッサが、
前記操縦性状態に基づいて前記タスクを遂行する場合の安全率を決定し、
該安全率が所定の閾値より低い場合に代替タスクを決定し、且つ、
該代替タスクに基づいて代替信号を生成し、これにより前記車両操縦コントローラに前記代替タスクを実行させるべく構成された請求項１に記載のインテリジェントナビゲーションシステム。
【請求項５】
前記操縦性状態が、前記自動車の燃料レベル、前記自動車の速度、前記自動車の馬力、又は、前記自動車のブレーキ状態、前記自動車と周辺物体との間の相対距離、前記自動車と前記周辺物体との間の相対速度、交通信号の出力状態、又は、車線境界の少なくとも１つを含む請求項４に記載のインテリジェントナビゲーションシステム。
【請求項６】
前記プロセッサが、前記自動車内に配置され、且つ、前記測位装置及び前記車両操縦コントローラと接続された請求項１に記載のインテリジェントナビゲーションシステム。
【請求項７】
前記プロセッサが、前記自動車の外側に配置され、且つ、ワイヤレス通信接続を介して前記測位装置と前記車両操縦コントローラと通信する請求項１に記載のインテリジェントナビゲーションシステム。
【請求項８】
自動車をナビゲートし且つ操縦するための方法であって、
前記自動車が到達する目的地に関する目的地情報を、入力装置から受信するステップと、
前記自動車の初期位置に関する初期位置情報を、測位装置から受信するステップと、
プロセッサを用いて、前記自動車を前記初期位置から前記目的地へと操縦するためのタスクを決定するステップと、
前記プロセッサを用いて、車両操縦コントローラに前記タスクを実行するように指示するステップと、を含む方法。
【請求項９】
前記自動車を前記初期位置から前記目的地へとナビゲートするための経路を、前記測位装置から受信するステップを更に含む請求項８に記載の方法。
【請求項１０】
前記タスクを決定するステップが、
前記プロセッサを用いて、受信された前記経路内に、複数の経路指定位置を定めることと、
該複数の経路指定位置の連続する一対の経路指定位置間の、道路状況に関する道路状況情報を、コンピュータサーバから受信することと、
前記プロセッサを用いて、且つ、受信された前記道路状況に基づいて、前記連続する一対の経路指定位置の第１の経路指定位置から前記連続する一対の経路指定位置の第２の経路指定位置へと前記自動車を操縦するための、操縦性機能を決定することと、を含む請求項９に記載の方法。
【請求項１１】
前記道路状況が、前記連続する一対の経路指定位置間の交通状況、又は、前記連続する一対の経路指定位置間の地形状態の、少なくとも一方を含む請求項１０に記載の方法。
【請求項１２】
前記タスクの実行後、前記自動車の移動中の位置に関する移動中の位置情報を、前記測位装置から受信するステップと、
前記プロセッサを用いて、前記移動中の位置と前記経路との間の相関を決定するステップと、
前記相関が所定の閾値より低い場合、前記測位装置から、前記経路の更新を受信するステップと、
前記プロセッサを用いて、更新された前記経路に基づいて更新されたタスクを決定するステップと、
前記プロセッサを用いて、前記車両操縦コントローラに前記更新されたタスクを実行するように指示するステップと、を更に含む請求項８に記載の方法。
【請求項１３】
前記プロセッサによって実行されたときに、
前記タスクの実行中に、前記自動車の操縦性状態に関する操縦性状態情報を、センサから受信するステップと、
前記操縦性状態に基づいて、前記タスクを遂行する場合の安全率を、前記プロセッサを用いて決定するステップと、
前記安全率が所定の閾値より低い場合、代替タスクを、前記プロセッサを用いて決定するステップと、
前記車両操縦コントローラに前記代替タスクを実行するように、前記プロセッサを用いて指示するステップと、を含む方法を、前記プロセッサに実行させる指示を更に記憶する請求項８に記載の方法。
【請求項１４】
前記操縦性状態が、前記自動車の燃料レベル、前記自動車の速度、前記自動車の馬力、前記自動車のブレーキ状態、前記自動車と周辺物体との間の相対距離、前記自動車と前記周辺物体との間の相対速度、交通信号灯の出力状態、又は、車線境界の少なくとも一つを含む請求項１３に記載の方法。
【請求項１５】
プロセッサによって実行されたとき、自動車をナビゲートし且つ操作するための方法を前記プロセッサに実行させる指示を記憶する非一時的記憶媒体であって、前記方法が、
前記自動車が到達する目的地を決定するステップと、
前記自動車の初期位置を決定するステップと、
前記自動車を前記初期位置から前記目的地へとナビゲートするための経路を計算するステップと、
計算された前記経路に基づいて、前記自動車を操縦するためのタスクを決定するステップと、を含む非一時的記憶媒体。
【請求項１６】
前記タスクを決定するステップが、
計算された前記経路内で、複数の経路指定位置を定めることと、
前記連続する一対の経路指定位置の第１の経路指定位置から前記連続する一対の経路指定位置の第２の経路指定位置へと前記自動車を操縦するための、操縦性機能を決定することと、を含む請求項１５に記載の非一時的記憶媒体。
【請求項１７】
前記操縦性機能が、前記連続する一対の経路指定位置間の交通状況、又は、前記連続する一対の経路指定位置間の地形状態の、少なくとも一方を含む道路状況に基づく請求項１６に記載の非一時的記憶媒体。
【請求項１８】
前記プロセッサによって実行されたとき、
前記タスクを実行するための信号を生成するステップと、
前記タスクの実行中に、前記自動車の移動中の位置を決定するステップと、
前記移動中の位置と前記経路との間の相関を決定するステップと、
前記相関が所定の閾値より低い場合に前記経路を再計算するステップと、
前記移動中の位置から前記目的地へと、前記自動車を操縦するための更新されたタスクを決定するステップと、を含む方法を、前記プロセッサに実行させる指示を更に記憶する請求項１５に記載の非一時的記憶媒体。
【請求項１９】
前記プロセッサによって実行されたとき、
前記タスクを実行するための信号を生成するステップと、
前記タスクの実行前及び実行中に、前記自動車の操縦性状態を決定するステップと、
前記操縦性状態に基づいて、前記タスクを遂行する場合の安全率を決定するステップと、
前記安全率が所定の閾値より低い場合に、代替タスクを決定するステップと、を含む方法を、前記プロセッサに実行させる指示を更に記憶する請求項１５に記載の非一時的記憶媒体。
【請求項２０】
前記操縦性状態が、前記自動車の燃料レベル、前記自動車の速度、前記自動車の馬力、前記自動車のブレーキ状態、前記自動車と周辺物体との間の相対距離、前記自動車と前記周辺物体との間の相対速度、交通信号灯の出力状態、又は、車線境界の、少なくとも一つを含む請求項１９に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してナビゲーションシステムの分野に関し、より詳細には、インテリジェントナビゲーションシステムに関する。
【背景技術】
【０００２】
近年、自動車にはナビゲーションシステムが搭載されている。ナビゲーションシステムは、運転者が目的地に到達するのを手助けするため、運転者に１つ以上の目的地を入力させ、一連の走行指示（経路など）を提供する。運転者が、走行指示に従い損ねて本来の経路から逸脱した場合、ナビゲーションシステムは新経路を計算し直し、運転者に新しい一連の走行指示を提供することができる。
【０００３】
従来のナビゲーションシステムは、本質的に受動的で、概して、運転者を取り巻くリアルタイムの状態に応じて運転者が起こす行動を予測することはない。例えば、従来のナビゲーションシステムは、右車線の切れ目のない交通が中央車線を走行している運転者の車線変更を阻むため、運転者が出口を逃す可能性が高いことを想定しないであろう。結果として、従来のナビゲーションシステムは、運転者が本来の経路から逸脱した後にのみ、経路を更新することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように遅延した応答は、リアルタイムのナビゲーションにおいて、ほとんど運転者の手助けにならないかもしれない。運転者は、一方で他の自動車に注意を払いながら、他方で、一定のリアルタイムの状況では達成が難しいであろう走行指示に従うことを要求される。残念な結果として、運転者は道路への集中力を失うか、走行指示を逃してしまうことがある。
【０００５】
更に、従来のナビゲーションシステムは本質的に受動的であるため、通常、自動車の操縦性（maneuverability）には関与しない。従来のナビゲーションシステムが提供する走行指示を実行することは、運転者の裁量に委ねられる。しかしながら、様々な理由から、走行指示を取り違えたり、走行指示によって混乱させられたり、ということが、人の運転者にはよくある。その結果、自動車が実際にとる経路は、従来のナビゲーションシステムが当初計算した経路よりもかなり長くなることがある。これによって、自動車の運行が非効率的になり、運転者は精神的にフラストレーションを生じさせかねない。
【０００６】
そこで、より能動的で、運転に積極的に関与するナビゲーションシステムが必要とされる。
【課題を解決するための手段】
【０００７】
本発明は、改善された機能を持つインテリジェントナビゲーションシステムを提供することができる。インテリジェントナビゲーションシステムは、リアルタイムの道路状況及び操縦性状態に従って、自動車をナビゲートすることができる。インテリジェントナビゲーションシステムは、経路逸脱（route deviations）が実際に発生する前に、経路逸脱の可能性を予測し、補正することができる。更に、インテリジェントナビゲーションシステムは、人による介入又は作用がほとんど若しくは全くなく、自動車をナビゲートするよう、自動車の操縦性能と相互作用する（interact）ことができる。
【０００８】
ある実施形態において、本発明は、自動車をナビゲートし且つ操縦するためのインテリジェントナビゲーションシステムを提供することができる。インテリジェントナビゲーションシステムは、入力装置、測位装置、プロセッサ、及び、車両操縦コントローラを有してもよい。入力装置は、目的地情報を受信するように構成されていてもよい。測位装置は、自動車の初期位置を決定するよう構成されてもよい。測位装置は、自動車を初期位置から目的位置へとナビゲートするための経路を計算するように構成されてもよい。プロセッサは、入力装置及び測位装置と通信してもよい。プロセッサは、自動車を初期位置から目的位置へと操縦するためのタスクを決定するよう構成されてもよく、且つ、決定されたタスクに基づいて信号を生成するよう構成されてもよい。車両操縦コントローラは、プロセッサと通信してもよく、信号に応じてタスクを実行させる（actuate）ように構成されてもよい。
【０００９】
別の実施形態において、本発明は、自動車をナビゲートし且つ操縦するための方法を提供することができる。この方法には、自動車が到達する目的位置に関する目的地情報を入力装置から受信するステップ、自動車の初期位置に関する初期位置情報を測位装置から受信するステップ、プロセッサを用いて、自動車を初期位置から目的位置まで操縦するタスクを決定するステップ、及び、プロセッサを用いて、車両操縦コントローラにタスクを実行させる指示を出すステップ、を含んでもよい。
【００１０】
更に別の実施形態において、本発明は、プロセッサによって実行されたとき、自動車をナビゲートし且つ操作するための方法をプロセッサに実行させる指示を記憶する非一時的記憶媒体を提供することができ、この方法は、自動車が到達する目的位置を決定するステップと、自動車の初期位置を決定するステップと、自動車を初期位置から目的位置へとナビゲートする経路を計算するステップと、計算された経路に基づいて自動車を操縦するタスクを決定するステップと、を含む。
【００１１】
本発明のその他のシステム、方法、特徴、及び利点は、以下の図面及び詳細な説明を参照することにより当業者に明らかとなる。これら付加的なシステム、方法、特徴、及び利点の全ては、本明細書中に含まれ、本発明の範囲内にあり、添付した特許請求の範囲によって保護されることを意図する。図面に示される構成部分は、必ずしも実物大ではなく、本発明の重要な特徴をよりよく描写するために強調されていることがある。図面中、異なる図面間で、同様の参照符号は同様の部分を示す。
【図面の簡単な説明】
【００１２】
【図１Ａ】本発明の実施形態によるインテリジェントナビゲーションシステムが実行され得る市街区の上面図を示す。
【図１Ｂ】本発明の実施形態による、車両操縦アプリケーション（ＶＭＡ）インタフェースを搭載する自動車の内部図を示す。
【図２】本発明の実施形態による、車両制御システムのシステムブロック図を示す。
【図３】本発明の実施形態による、インタフェースシステムソフトウェアのアルゴリズムのフローチャートを示す。
【図４】本発明の実施形態による、ＶＭＡ装置サブルーチンのアルゴリズムのフローチャートを示す。
【図５】本発明の実施形態による、インストールサブルーチンのアルゴリズムのフローチャートを示す。
【図６】本発明の実施形態による、更新サブルーチンのアルゴリズムのフローチャートを示す。
【図７】本発明の実施形態による、アンインストールサブルーチンのアルゴリズムのフローチャートを示す。
【図８】本発明の実施形態による、ＶＭＡ起動サブルーチンのアルゴリズムのフローチャートを示す。
【図９】本発明の実施形態による、メインメニューの画面表示を示す。
【図１０】本発明の実施形態による、ＶＭＡメニューの画面表示を示す。
【図１１】本発明の実施形態による、代替ＶＭＡメニューの画面表示を示す。
【図１２】本発明の実施形態による、起動されたＶＭＡの画面表示を示す。
【図１３】本発明の実施形態による、停止されたＶＭＡの画面表示を示す。
【図１４】本発明の実施形態による、優先された（overridden）ＶＭＡの画面表示を示す。
【図１５】本発明の実施形態による、ＶＭＡロックモードの画面表示を示す。
【図１６】本発明の実施形態による、代替ＶＭＡロックモードの画面表示を示す。
【図１７】本発明の実施形態による、インテリジェントナビゲーションシステムのブロック図を示す。
【図１８】本発明の実施形態による、インテリジェントナビゲーションアプリケーションのアルゴリズムのフローチャートを示す。
【図１９】本発明の実施形態による、ナビゲーションタスク決定サブルーチンのアルゴリズムのフローチャートを示す。
【図２０】本発明の実施形態による、ナビゲーションタスク実行サブルーチンのアルゴリズムのフローチャートを示す。
【発明を実施するための形態】
【００１３】
本発明の様々な特徴の実施形態を実行する機械、システム、方法を、図面を参照して以下に説明する。図面、及び関連する説明は、本発明の実施形態の幾つかを示すために提供されるが、本発明の範囲を制限するものではない。図面中で、参照番号は参照要素間の対応関係を示すために繰り返し使用される。更にそれぞれの参照符号の１桁目は、その要素が最初に示される図を示す。
【００１４】
図１Ａは、本発明の実施形態による、インテリジェントナビゲーションシステムが実行され得る市街区１０１の上面図を示す。インテリジェントナビゲーションシステムは、高い位置の観点から自動車を初期位置から特定の目的地まで案内するため、自動車をナビゲートし且つ操作することができる。インテリジェントナビゲーションシステムは、人による介入がほとんどなく操作できるように高度に自動化され得る。更に、インテリジェントナビゲーションシステムは、ラッシュアワーの間、交通を制御するために使用できるように、１以上の自動車の操作を調整してもよい。
【００１５】
概して、インテリジェントナビゲーションシステムは、測位機能ブロック、経路指定機能ブロック、ナビゲーションタスク機能ブロック、及び、監視機能ブロックなど、幾つかの機能ブロックを有してもよい。測位機能ブロックは、第１の自動車１４２、第２の自動車１４４、及び／又は、第３の自動車１４６といった、１つ以上の自動車の現在の位置を追跡する役割を担ってもよい。測位機能ブロックは、従来の全地球測位システム（ＧＰＳ）で実現され得る。概して、従来のＧＰＳは、衛星１７０、及び、追跡された各自動車に搭載された測位装置を含み得る。衛星１７０は、追跡された自動車の全地球的位置を探知し、追跡された各自動車に第１の衛星リンク１７２を介して測位信号を送ってもよい。
【００１６】
経路指定機能ブロックは、追跡された自動車の初期位置及びユーザが定義した目的位置に基づいて、追跡された自動車のために１つ以上の経路を決定し、計算してもよい。図１Ａに示すように、例えば、経路指定機能ブロックは、第１の自動車１４２のために第１の経路１６２を、第２の自動車１４４のために第２の経路１６４を、且つ／又は、第３の自動車１４６のために第３の経路１６６を、決定あるいは計算してもよい。
【００１７】
経路指定機能ブロックは、経路の決定又は計算のために、初期位置及びユーザが定義した目的地に加えて、他のソースから受信したその他の情報を利用してもよい。ある実施形態において、例えば、経路指定機能ブロックは、経路の決定又は計算の際に自動車の操縦性状態を考慮してもよい。別の実施形態において、例えば、経路指定機能ブロックは、経路の決定又は計算の際に、市街区１０１の道路状況を考慮してもよい。
【００１８】
経路指定機能ブロックは操縦性状態を分析して、自動車が追従する特定の経路の安全性が十分十分であるか否かを決定してもよい。本明細書において、自動車の操縦性状態は、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、及び／又は、自動車の位置する車線の車線境界、及び／又は、これらの組み合わせを含んでもよいが、これらに限られない。経路指定機能ブロックは、自動車に予め備え付けられた１つ以上のセンサから操縦性状態を受信してもよい。
【００１９】
操縦性状態が経路指定プロセスに与える影響を示すため、第１の経路１６２を第２の経路１６４との関係で説明する。明確性のため、第１の自動車１４２と第２の自動車１４４は、初めに高速道路１３０の北に向かうセグメント１３２を走行しており、両車両とも第１の目的地１４７に到着するものと想定する。第１のイテレーションにおいて、経路指定機能ブロックは、第１の経路１６２が、第１の自動車１４２及び第２の自動車１４４の両車両にとって、最も効率的な経路であると決定又は計算するかもしれない。経路指定機能ブロックは、第１の自動車１４２及び第２の自動車１４４に関連する操縦性状態を分析することで、第１の経路１６２を確定してもよい。
【００２０】
例えば、経路指定機能ブロックは、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、及び、自動車が位置する車線の車線境界を分析してもよい。第１の自動車１４２の右車線が十分に空いているため、経路指定機能ブロックは、第１の自動車１４２が第１の出口１３４に進行するのに安全性は十分であると判断してもよい。こうして、経路指定機能ブロックが、第１の自動車１４２のために第１の経路１６２を確定してもよい。
【００２１】
一方、第２の自動車１４２の右車線が切れ間のない交通で遮られている場合、経路指定機能ブロックは、第２の自動車１４４が車線を変更して第１の出口１３４に進行するのに安全性は十分ではないと判断するかもしれない。従って、経路指定機能ブロックは、第２の自動車１４４のための第１の経路１６２をキャンセルし、続くイテレーションにおいて、第２の自動車１４４のために、第２の経路１６４などの代替経路を計算又は決定してもよい。第２の自動車１４４は、第１の出口１３４に進行する代わりに、第２の出口１３６に進行してもよい。
【００２２】
経路再指定のプロセスは、経路指定機能ブロックが安全性指向のリアルタイムの経路を自動車に提供し得るように、繰り返し、反復して、周期的に、且つ／又は、応答可能なように実行され得ることを理解されたい。従来のナビゲーションシステムは、通常、自動車が当初の経路から逸脱した場合にのみ経路再指定機能を実行する。このような経路再指定機能は、本質的に受動的であり、その遅い処理時間は、運転者にフラストレーションを感じさせ得る。従来のナビゲーションシステムの経路再指定機能と比較すると、インテリジェントナビゲーションシステムの経路指定機能ブロックは、自動車が当初の経路から離れることを余儀なくされる前に経路再指定機能を実行し得る。好適には、インテリジェントナビゲーションシステムの経路指定機能ブロックは、従来のナビゲーションシステムよりも、より予測的で能動的になり得る。
【００２３】
操縦性状態に加えて、経路指定機能ブロックは、経路が、自動車が走行するのに時間効率がよく、且つ／又は、燃費がよいかを決定するため、道路状況を分析し得る。本明細書の記載において、道路状況は、自動車の初期位置と自動車が到達する予定の目的位置との間に存在する主要な高速道路と一般道路の交通状況及び／又は地形状態を含んでもよいが、これらに限られない。
【００２４】
高速道路又は一般道路の交通状況は、交通量に関連する状況であってもよい。一例では、交通量（rate of flow of traffic）が制限速度のおよそ±５％の場合、その高速道路又は一般道路は良好な交通状況となり得る。別の例において、交通量が制限速度をおよそ２０％下回る場合、その高速道路又は一般道路の交通状況は悪くなり得る。
【００２５】
高速道路又は一般道路の地形状態は、その走行路面の質に関する状態となり得る。概して、自動車が最小のトルクで前進できる平滑な（smooth）走行路面の場合に、高速道路又は一般道路の地形状態は良好となり得る。つまり、地形状態が良好な走行路面を走行する場合に、自動車は磨耗が少なく、且つ／又は、燃料消費も少ない。一例では、実質的に平坦でよく舗装された高速道路は、良好な地形状態となり得る。他の例では、傾斜してでこぼこな一般道路は、悪い地形状態となり得る。
【００２６】
当然のことながら、道路状況は、点数、パーセント、及び／又は、個別の等級（優良、良好、普通、不良、及び／又は、不適正）のいずれかを含むがこれらに限られない様々な形式で表現され得る。更に、道路状況は、１つ以上の高速道路及び／又は一般道路を含み得る経路に割り当てられるため、道路状況は、それぞれ高速道路又は一般道路のセグメントに関係付けられ得る、複数の道路状況の平均値又は重み付けされた平均値として計算され得る。
【００２７】
経路指定機能ブロックは、自動車の遠隔で稼動する１つ以上のコンピュータサーバから、道路状況を受信してもよい。１つの実施形態において、例えば、経路指定機能ブロックは、遠隔のコンピュータセンター１８０によって部分的に運用され得るワイヤレスネットワーク１８６を介して、道路状況を受信してもよい。遠隔のコンピュータセンター１８０は、市街区１０１の交通状況及び地形状態に関する現在の交通情報及び／又は地形情報を記憶し、更新するコンピュータサーバ１８４を含んでもよい。別の実施形態では、例えば、経路指定機能ブロックは、第１の衛星リンク１７２を介して間接的に道路状況を受信してもよい。携帯電話の基地局（cell site tower）１８２が、第２の衛星リンク１７４を介して道路状況情報を衛星１７０に通信してもよい。衛星１７０は、これに応答して、道路状況情報を経路指定機能ブロックに中継してもよい。
【００２８】
図１Ａに例証されるように、経路指定機能ブロックは、第３の自動車１４６が第２の目的地１４８に到達するための初期経路を計算してもよい。第３の自動車２４６は、初期経路に従って、第１の一般道路１５１に入る前に、高速道路１３０の南に向かうセグメント１３１の第２の出口１３５への進行を指示されてもよい。
【００２９】
経路指定機能ブロックは、第１の衛星リンク１７２及び／又はワイヤレスネットワーク１８６を介して道路状況情報を受信してもよい。道路状況情報の分析後、経路指定機能ブロックは、高速道路１３０の南に向かうセグメント１３１の第１の出口１３３と第２の出口１３５との間に交通事故１４１が発生していると判断してもよい。経路指定機能ブロックは、この判断に基づき、第３の自動車１４６のために第３の経路１６６などの新経路を計算し直してもよい。第３の自動車１４６は、第３の経路１６６に従って、交通事故１４１を回避するため、第１の出口１３３へ進行するよう案内されてもよい。第３の経路１６６で指定された全距離は初期経路よりもかなり長くなるかもしれないが、第３の経路１６６の全走行時間は、交通事故１４１を回避したことで時間が節約されたため、初期経路よりもはるかに短くなり得る。
【００３０】
当然のことながら、経路再指定のプロセスは、経路指定機能ブロックが効率性指向のリアルタイムの経路を自動車に提供し得るように、繰り返し、反復して、周期的に、且つ／又は／応答可能に実行され得る。従来のナビゲーションシステムは、通常、単一のソースから取得した交通状況情報に基づいて経路再指定機能を実施する。このような経路再指定機能は、自動車の効率性に影響を与える可能性のある地形状態などのその他の要素を考慮できていないことがある。
【００３１】
更に、交通状況情報が単一のソース（測位装置の製造者と関連したサービスプロバイダなど）から取得されるため、従来のナビゲーションシステムの経路再指定機能は、道路状況情報を提供し得る様々なサービスプロバイダを選択する柔軟性に欠けることがある。従来のナビゲーションシステムの経路再指定機能と比較すると、インテリジェントナビゲーションシステムの経路指定機能ブロックは、より包括的で柔軟性のある方法で経路再指定機能を実行し得る。
【００３２】
経路指定機能ブロックが経路を計算した後、ナビゲーションタスク機能ブロックは計算された経路を一連のナビゲーションタスク（set of navigation task）に変換してもよい。ナビゲーションタスク機能ブロックは、まず、計算された経路を２つ以上の経路指定位置（routing positions）に分割してもよい。それから、ナビゲーションタスク機能ブロックは、２つの連続した経路指定位置間に１つ以上のナビゲーションタスクを決定又は割り当ててもよい。ナビゲーションタスク機能ブロックは、全ての連続した経路指定位置が少なくとも１つのナビゲーションタスクを割り当てられるまで、割り当てプロセスを繰り返してもよい。
【００３３】
本明細書中で、各ナビゲーションタスクは、自動車を操縦するための高レベルの指示でもよい。ナビゲーションタスクは、自動車の一般的な動作を指揮するのに用いることができるという意味では、従来のナビゲーションシステムによって提供される指示と類似し得る。例えば、ナビゲーションタスクは、方向旋回（turn-bearing）ナビゲーションタスク、左折ナビゲーションタスク、車線追従ナビゲーションタスク、及び／又は、車線変更ナビゲーションタスクを含んでもよいが、これらに限られない。
【００３４】
しかしながら、ナビゲーションタスクは機械指向であり、それぞれのナビゲーションタスクは１つ以上の機械によって実行される操縦性機能に変換できるため、従来のナビゲーションシステムが提供する指示とは異なっていてもよい。本明細書中で、操縦性機能は、自動車の動作を作動させる一連の低レベルの指示でもよい。例えば、操縦性機能は、アクセル、ブレーキ、ギアチェンジ、ステアリング制御、及び／又は、低速走行を含んでもよいが、これらに限られない。
【００３５】
ナビゲーションタスク機能ブロックは、様々な入力ソースに基づいて、ナビゲーションタスクを一連の操縦性機能に変換してもよい。ある実施形態では、例えば、ナビゲーションタスク機能ブロックは、リアルタイムの交通状況及び地形状態に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。
【００３６】
別の実施形態では、例えば、ナビゲーションタスク機能ブロックは、１つ以上のリアルタイムの操縦性状態に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。上述したように、自動車の操縦性状態には、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、及び／又は、自動車の位置する車線の車線境界、及び／又は、これらの組み合わせを含むことがあるが、これらに限られない。
【００３７】
さらに別の実施形態では、例えば、ナビゲーションタスク機能ブロックは、１つ以上の予め定義された制限事項に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。予め定義された制限事項には、時間制限、距離制限、速度制限、安全性の制限、及び／又は、処理中断制限を含んでもよいが、これらに限られない。
【００３８】
操縦性機能は、自動車の周囲の状態により、繰り返し、反復して、周期的に、且つ／又は応答可能に更新されてもよい。こうして、ナビゲーションタスク機能ブロックは、各操縦性機能が実行される前及び実行中に、監視機能ブロックと相互作用（interact）してもよい。前述の機能ブロック間の作用関係を更に解説するため、第１の経路１６２、第２の経路１６４、及び、第３の経路１６６の例示的詳細を以下に説明する。
【００３９】
第１の経路１６２について、ナビゲーションタスク機能ブロックは第１の経路１６２を、まず、５つの経路指定位置に分割してもよい。第１の経路指定位置は、図１Ａに示すように第１の自動車１４２の初期位置であってもよい。第２の経路指定位置は、北に向かうセグメント１３２と第１の出口１３４との間の接合点であってもよい。第３の経路指定位置は、第１の出口１３４と第２の一般道路１５２との間の接合点（junction）であってもよい。第４の経路指定位置は、第２の一般道路１５２と第１の目的地１４７との間の接合点であってもよい。第５の経路指定位置は、第１の目的地１４７であってもよい。
【００４０】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、次に、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第１の経路指定位置と第２の経路指定位置との間にＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクを、第２の経路指定位置と第３の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿ＬナビゲーションタスクとＴＵＲＮ＿Ｌナビゲーションタスクを、第３の経路指定位置と第４の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｒナビゲーションタスクを、且つ、第４の経路指定位置と第５の経路指定位置との間にＴＵＲＮ＿Ｒナビゲーションタスクを割り当ててもよい。
【００４１】
ＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクは、自動車に隣接する右車線に変更するように指示してもよい。ＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスクは、自動車に左車線に追従するように指示してもよい。ＴＵＲＮ＿Ｌナビゲーションタスクは、自動車に次の交差点で左折するように指示してもよい。ＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｒナビゲーションタスクは、自動車に右車線に追従するように指示してもよい。ＴＵＲＮ＿Ｒナビゲーションタスクは、自動車に次の交差点で右折するように指示してもよい。
【００４２】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び／又は、予め定義した制限事項に従って、ナビゲーションタスクのそれぞれを一連の操縦性機能に変換してもよい。ＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第１の一連の操縦性状態が検出されるまで加速機能を呼び出し、第２の一連の操縦性状態が検出されている間、ステアリング機能を呼び出し、第２の経路指定位置に到達する前に減速機能を呼び出してもよい。
【００４３】
第１の一連の操縦性状態は、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び／又は、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。第２の一連の操縦性状態は、車線境界の予め定義された脱線、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び／又は、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでもよい。
【００４４】
ＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第１の交通信号灯１９１を検知する前に、車線追跡機能と共に一定速度機能を呼び出し、第１の交通信号灯１９１の交通信号灯状態が黄色又は赤と判断した場合、減速機能を呼び出してもよい。ＴＵＲＮ＿Ｌナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第１の交通信号灯１９１の交通信号灯状態が緑と判断した場合、加速機能とステアリング機能を実行させてもよい。
【００４５】
第２の経路１６４について、ナビゲーションタスク機能ブロックは、まず、第２の経路１６４を６つの経路指定位置に分割してもよい。第１の経路指定位置は、図１Ａに示すように第２の自動車１４４の初期位置であってもよい。第２の経路指定位置は、北に向かうセグメント１３２と第２の出口１３６との間の接合点であってもよい。第３の経路指定位置は、第２の出口１３６と第３の一般道路１５３との間の接合点であってもよい。第４の経路指定位置は、第３の一般道路１５３と第４の一般道路１５４との間の接合点であってもよい。第５の経路指定位置は、第４の一般道路１５４と第１の目的地１４７との間の接合点であってもよい。第６の経路指定位置は、第１の目的地１４７であってもよい。
【００４６】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第１の経路指定位置と第２の経路指定位置との間にＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクを、第２の経路指定位置と第３の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスク及びＴＵＲＮ＿Ｌナビゲーションタスクを、第３の経路指定位置と第４の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスク及びＴＵＲＮ＿Ｌナビゲーションタスクを、第４の経路指定位置と第５の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスクを、且つ、第５の経路指定位置と第６の経路指定位置との間にＴＵＲＮ＿Ｌナビゲーションタスクを割り当ててもよい。
【００４７】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び／又は、予め定義された制限事項に従って、それぞれのナビゲーションタスクを一連の操縦性機能に変換してもよい。ＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第１の一連の操縦性状態が検知されるまで加速機能を呼び出し、第２の一連の操縦性状態が検知されている間、ステアリング機能を呼び出し、第２の経路指定位置に到達する前に減速機能を呼び出してもよい。
【００４８】
第１の一連の操縦性状態には、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び／又は、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。第２の一連の操縦性状態には、予め定義された車線境界の脱線、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び／又は、第１の自動車１４２と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。
【００４９】
右車線が２台の隣接する自動車に遮られているため、第１の一連の操縦性状態は適合しない（not be met）かもしれない。結果として、ナビゲーションタスク機能ブロックは、ＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクの達成のため、一連の代替操縦性機能を呼び出してもよい。例えば、ナビゲーションタスク機能ブロックは、第２の自動車１４４を左車線に操縦するため、左ステアリング機能を呼び出し、第１の一連の操縦性状態が検知されるまで加速機能を呼び出し、第１の一連の操縦性状態を検知すると右ステアリング機能を呼び出し、第１の一連の操縦性状態が検知されるまでもう一度加速機能を呼び出し、且つ、第１の一連の操縦性状態を検知するともう一度右ステアリング機能を呼び出してもよく、且つ／又は、これらの組み合わせを呼び出してもよい。
【００５０】
ＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックが、第２の交通信号灯１９２を検知する前に、車線追跡機能と共に一定速度機能を呼び出し、第１の交通信号灯１９２の交通信号灯状態が黄色又は赤と判断した場合に、減速機能を呼び出してもよい。ＴＵＲＮ＿Ｌナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックが、第１の交通信号灯１９２の交通信号灯状態が緑と判断した場合に、加速機能とステアリング機能を呼び出してもよい。当然のことながら、その後のナビゲーションタスクは、第２の自動車１４４が第３の交通信号灯１９３の交通信号灯状態を確認し、応答するように、上述した例と同様の方法で変換できる。
【００５１】
第３の経路１６６について、ナビゲーションタスク機能ブロックは、最初に第３の経路１６６を６つの経路指定位置に分割してもよい。第１の経路指定位置は、図１Ａに示すように第３の自動車１４６の初期位置でもよい。第２の経路指定位置は、南に向かうセグメント１３１と第１の出口１３３との間の接合点であってもよい。第３の経路指定位置は、第１の出口１３３と第２の一般道路１５２との間の接合点であってもよい。第４の経路指定位置は第２の一般道路１５２と第４の一般道路１５４との間の接合点であってもよい。第５の経路指定位置は、第４の一般道路１５４と第２の目的地１４８との間の接合点でもよい。第６の経路指定位置は、第１の目的地１４８であってもよい。
【００５２】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第１の経路指定位置と第２の経路指定位置との間にＣＨＡＮＧＥ＿ＬＡＮＥ＿Ｒナビゲーションタスクを、第２の経路指定位置と第３の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｒナビゲーションタスク及びＴＵＲＮ＿Ｒナビゲーションタスクを、第３の経路指定位置と第４の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスク及びＴＵＲＮ＿Ｌナビゲーションタスクを、第４の経路指定位置と第５の経路指定位置との間にＦＯＬＬＯＷ＿ＬＡＮＥ＿Ｌナビゲーションタスクを、且つ、第５の経路指定位置と第６の経路指定位置との間にＴＵＲＮ＿Ｌナビゲーションタスクを割り当ててもよい。
【００５３】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び／又は、予め定義された制限事項に従って、それぞれのナビゲーションタスクを一連の操縦性機能に変換してもよい。ナビゲーションタスク変換プロセスは、上述した例と同様の方法で実行できる。従って、第３の自動車１４６は、第４の交通信号灯１９４と第５の交通信号灯１９５の交通信号灯状態を含み得る様々な操縦性状態を確認して、応答してもよい。
【００５４】
上記操縦性機能が第１の自動車１４２によって実行されるとき、監視機能ブロックは様々な操縦性状態を検知し、検知された操縦性状態をナビゲーションタスク機能ブロックに送信してもよい。リアルタイムに検知された操縦性状態に基づいて、ナビゲーションタスク機能ブロックは、現在の操縦性機能を実行し続けるのが安全か否かを判断してもよい。例えば、ナビゲーションタスク機能ブロックは、隣接する物体の相対速度及び／又は相対距離、現在の交通信号灯状態、隣接する車線の合流、及び／又は、駐車場所の寸法を含むがこれに限られない自動車の周囲環境に基づいて、安全率を決定してもよい。安全率が予め定義された閾値を下回る、例えば９０％などの場合、ナビゲーションタスク機能ブロックは安全率を増加させる代替操縦性機能を決定し、現在の操縦性機能を代替操縦性機能にスムーズに移行させてもよい。
【００５５】
それぞれの各操縦性機能又はナビゲーションタスクが完了した後、測位機能ブロックは自動車の移動中の位置（transient location）を追跡してもよい。測位機能ブロックは、自動車がまだ計算された経路内にあるか否かを判断してもよい。例えば、測位機能ブロックは、移動中の位置と、先に計算された経路との間の相関（correlation）を計算又は判定してもよい。相関が予め定義された閾値を下回る、例えば９０％などの場合、測位機能ブロックは、自動車の新しく検知された移動中の位置に基づいて、経路指定機能ブロックに更新された経路を計算又は決定するように要求してもよい。更新された経路が計算又は決定されると、ナビゲーションタスク機能ブロックはナビゲーションタスク割り当てプロセスと操縦性機能呼び出しプロセスを再度開始してもよい。上述のステップとプロセスは、目的地に到達するまで繰り返すか反復できる。
【００５６】
当然のことながら、インテリジェントナビゲーションシステムの各機能ブロックは、運転者又は遠隔地から自動車を操作する第三者などの人の操作者によって、停止、休止、復帰、及び／又は、優先（overridden）することができる。インテリジェントナビゲーションシステムが休止又は優先された場合、自動車の操縦アクチュエータとの間に構築された接続を放棄してもよい。しかしながら、サービスの素早い復帰のためには、インテリジェントナビゲーションシステムはバックグラウンドで実行されていてもよい。
【００５７】
ある実施形態では、例えば、経路指定機能タスクは、自動車の移動中の位置に基づいて、反復的、周期的、又は、応答可能に経路を更新してもよい。別の実施形態では、例えば、更新された経路に基づいて、ナビゲーションタスク機能ブロックが、監視機能ブロックと協働して、割り当てられたナビゲーションタスクと対応する操縦性機能とを更新してもよい。
【００５８】
当然のことながら、上述の各機能ブロック（すなわち、測位機能ブロック、経路指定機能ブロック、ナビゲーションタスク機能ブロック、及び、監視機能ブロック）は、ハードウェアとソフトウェアの組み合わせによって実現され得る。また、当然のことながら、上述の機能ブロックは個別に、あるいは一体化して実現され得る。機能ブロックが個別に実装される場合、インテリジェントナビゲーションシステムは複数のプロセッサを含んでもよく、各プロセッサは一つの機能ブロックのアルゴリズムコードを実行する役割を担い得る。各プロセッサは、１つ以上の周辺モジュールに連結し、一つの装置を形成してもよい。第１の実施形態において、第１のプロセッサはＧＰＳ受信機に連結し、一つの測位装置を形成してもよい。第２の実施形態において、第２のプロセッサは道路状況データベースに連結し、経路指定装置を形成してもよい。第３の実施形態において、第３のプロセッサは車両操縦コントローラに連結し、ナビゲーションタスク装置を形成してもよい。第４の実施形態において、第４のプロセッサは様々な操縦性センサに連結し、監視装置を形成してもよい。
【００５９】
機能ブロックが一体化して実現される場合、インテリジェントナビゲーションシステムは、４つの機能ブロック全てのアルゴリズムコードを実行するための一つのナビゲーションプロセッサを含んでいてもよい。ナビゲーションプロセッサは、測位装置、操縦性センサ、及び、道路状況情報データベースサーバなど、様々な周辺装置に連結していてもよい。更に、ナビゲーションプロセッサは自動車の一部でもよく、あるいは、ナビゲーションプロセッサは遠隔コンピュータサーバの一部でもよい。
【００６０】
好適な実施形態において、インテリジェントナビゲーションシステムは、自動車内に設けられたオペレーションシステムのプラットフォーム内で実装され、変更され、且つ／又は、実行され得る。このようなオペレーションシステムのプラットフォームの一つに車両操縦アプリケーションインターフェースがあるが、詳細は図１Ｂ、図２〜図１６で説明される。
【００６１】
図１Ｂは、本発明の実施形態による、車両操縦アプリケーション（ＶＭＡ）インタフェースを搭載する自動車１００の内部図を示す。概して、ＶＭＡインタフェースは１つ以上の車両操縦アプリケーション（ＶＭＡ）の設置、更新、実行、及び／又は、除去に用いられ得る。ＶＭＡは一連のソフトウェア指示又はコードであってもよく、車両操縦装置によって実行されると、車両操縦アプリケーション装置に自動車の動作を制御する方法を実行させる。例えば、ＶＭＡはアダプティブクルーズコントロールアプリケーション、車線追従アプリケーション、車線変更アプリケーション、衝突回避アプリケーション、自動駐車アプリケーション、自律運転アプリケーション、及び／又は、遠隔駆動アプリケーションを含んでもよい。ＶＭＡが実行されると、自動車１００は、より少ない人の介入で操作され得る。
【００６２】
自動車１００は、幾つかの車両操縦（ＶＭ）入力装置も含んでもよい。ＶＭＡが起動していない場合、又は、運転者が起動されたＶＭＡを優先すると決めた場合、様々なＶＭ入力装置は、運転者が自動車１００の動作を制御することを可能としてもよい。ある実施形態では、例えば、ＶＭ入力装置は、自動車１００を操縦するためのハンドル１０２、自動車１００を加速するためのアクセルペダル（gas pedal）１０４、自動車１００を減速するためのブレーキペダル１０６、及び、自動車１００のギアをシフトするための変速装置１０８を含んでもよい。
【００６３】
自動車１００は、物理的媒体（physical medium）に記憶されたＶＭＡを受信するために用いられ得るＶＭＡ入力装置１２０を有してもよい。ある実施形態では、例えば、ＶＭＡ入力装置１２０は、ユニバーサルシリアルバス（ＵＳＢ）ドライブ１２３又はＵＳＢ出力ポートが付属した記憶装置（図示せず）の内容を読み取るためのＵＳＢリーダ１２２、フラッシュメモリカード２２５の内容を読み取るためのフラッシュメモリカードリーダ１２４、コンパクトディスク（ＣＤ）１２７の内容を読み取るためのＣＤリーダ１２６を含んでもよい。
【００６４】
自動車１００は、運転者がＶＭＡインタフェースとやりとり（interact）ができるように幾つかの操作者入力装置、及び／又は、操作者出力装置を含んでもよい。ある実施形態では、例えば、自動車１００が接触感知式表示画面１１２を有していてもよく、ＶＭＡインタフェースによって生成されたＶＭＡメッセージ１１３の表示、及び／又は、ＶＭＡインタフェースへのＶＭＡ入力１１４の受信に用いられてもよい。別の実施形態では、例えば、自動車１００は一体型のマイクロホンスピーカ１１６を含み、ＶＭＡインタフェースが生成したオーディオ出力を伝えたり、ＶＭＡインタフェースへの音声命令を受信するのに用いられたりしてもよい。また別の実施形態では、自動車１００は一連のセンサ１１８を含み、ＶＭＡインタフェースへの入力を受信するのに用いられてもよい。一連のセンサ１１８は、１つ以上のタッチセンサ、近接センサ、圧力センサ（compression sensor）、及び／又は、光センサを含んでよい。
【００６５】
図２は、本発明の実施形態による、車両制御システム２００のシステムブロック図を示す。概して、車両制御システム２００は自動車１００に組み込まれた電気機械システムであり、自動車１００の１つ以上の機能を実行するために用いられ得る。ある実施形態では、車両制御システム２００は、操縦、加速及び減速など、自動車１００の動作に関連する機能を実行するのに用いられてもよい。別の実施形態では、車両制御システム２００は、任意で、温度制御、ナビゲーション補助など、自動車１００の動作に無関係の機能を実行するのに用いられてもよい。
【００６６】
車両制御システム２００は、入出力（Ｉ／Ｏ）ブロック２０１、車両操縦アプリケーション（ＶＭＡ）インタフェース２１０、車両システム２４０、ＶＭＡ装置２７０、ワイヤレスネットワーク装置２８０、及び、任意で周辺アプリケーション装置２９０を含んでもよい。Ｉ／Ｏブロック２０１は、運転者などの操作者との通信及び対話に用いられることがある。車両システム２４０は、車両制御システム２００の動作関連の機能及び／又は動作に無関係の機能を実行してもよい。ＶＭＡ装置２７０は、１つ以上のＶＭＡを記憶し、実行するのに用いられることがある。ＶＭＡインタフェース２１０によって実行されると、ＶＭＡは、動作関連の機能を実行するために車両システム２４０を制御してもよい。補助アプリケーション装置２９０は、１つ以上の補助アプリケーションの記憶や実行に用いられてもよく、補助アプリケーションが実行されると、動作に無関係の機能を実行するために車両システム２４０を制御してもよい。ワイヤレスネットワーク装置２８０は、車両制御システム２００を１つ以上のワイヤレスネットワークにワイヤレス接続するのに用いられてもよい。
【００６７】
Ｉ／Ｏブロック２０１は、操作者サブブロック２０２、車両操縦入力サブブロック２０４、及び、ＶＭＡ入力サブブロック２０６を有してもよい。操作者Ｉ／Ｏサブブロック２０２は、運転者にＶＭＡインタフェース２１０との通信及び対話を可能にするＩ／Ｏ装置を含んでもよい。例えば、Ｉ／Ｏ装置は、図１に示す一連のセンサ１１８、接触感知式表示画面１１２、及び／又は、一体型マイクロホンスピーカ１１６であってもよい。車両操縦入力サブブロック２０４は、運転者の車両システム２４０へのアクセスと制御を可能にし得る車両操縦入力装置を含んでいてもよい。例えば、車両操縦入力装置は、図１に示すステアリング１０２、アクセルペダル１０４、ブレーキペダル１０６、及び、変速装置１０８を含んでもよい。ＶＭＡ入力サブブロック２０６は、物理的記憶媒体からＶＭＡを受信するためのＶＭＡ入力装置を含んでもよい。例えば、ＶＭＡ入力装置は、図１に示すＵＳＢリーダ１２２、フラッシュメモリカードリーダ１２４、及びＣＤリーダ１２６であってもよい。
【００６８】
ＶＭＡインタフェース２１０は、Ｉ／Ｏドライバ２１１、インタフェースプロセッサ２２０、インタフェースメモリ２２５、及び、診断プロセッサ２３０を含んでもよい。Ｉ／Ｏドライバ２１１は、フォーマットされた入力がインタフェースプロセッサ２２０によって処理され得るように、操作者Ｉ／Ｏサブブロック２０２、車両操縦入力サブブロック２０４、及び、ＶＭＡ入力サブブロック２０６から受信した入力をフォーマットするのに用いられてもよい。
【００６９】
ＶＭＡインタフェース２１０の内部では、インタフェースプロセッサ２２０が、Ｉ／Ｏドライバ２１１、インタフェースメモリ２２５、及び、診断プロセッサ２３０に連結していてもよい。ＶＭＡインタフェース２１０の外部では、インタフェースプロセッサ２２０が、車両システム２４０、ＶＭＡ装置２７０、補助アプリケーション装置２９０、及び、ワイヤレスネットワーク装置２８０に連結していてもよい。ある実施形態では、インタフェースプロセッサ２２０がＶＭＡ装置２７０、補助アプリケーション装置２９０、及び／又は、ワイヤレスネットワーク装置２８０と、１つ以上の有線接続を構築してもよい。別の実施形態では、インタフェースプロセッサ２２０が、ＶＭＡ装置２７０、補助アプリケーション装置２９０、及び／又は、ワイヤレスネットワーク装置２８０と、１つ以上のワイヤレス接続を構築していてもよい。
【００７０】
インタフェースプロセッサ２２０は、１つ以上のＶＭＡを受信し、ＶＭＡ装置２７０にインストールするよう構成されていてもよい。インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２からインストール命令を受信すると、インストールプロセスを開始してもよい。インストールプロセスの開始後、インタフェースプロセッサ２２０はＶＭＡ入力ブロック２０６から、及び／又は、遠隔ネットワーク（図示せず）及び／又は遠隔サーバ（図示せず）から、ワイヤレスネットワーク装置２８０を介して、ＶＭＡを受信してもよい。インタフェースプロセッサ２２０はまず、新しく受信したＶＭＡが特定の自動車に用いるのに適しているか否かを判断してもよい。インタフェースプロセッサ２２０は、受信したＶＭＡの互換性を確認し、受信したＶＭＡが工業規格に適合することを確保してもよい。
【００７１】
インタフェースプロセッサ２２０は、様々な暗号化技術を用いて、受信したＶＭＡの品質を検証してもよい。例えば、必要な品質テストに合格した後で、ＶＭＡは認証機関から認証を受けてもよい。認証機関は、自動車製造業者、ＶＭＡ開発者、及び／又は、中立な第三者となり得る。中立な第三者は、自動車製造者及び／又はＶＭＡ開発者とは無関係の団体であってもよい。中立な第三者は、認証されたＶＭＡに暗号データを組み込んでもよい。暗号データは、ＶＭＡの互換性情報、安全性機能、及び品質に関連し得る。インタフェースプロセッサ２２０は、暗号データを復号する復号キーを使用してもよい。復号キーは、中立な第三者によってインタフェースプロセッサ２２０に付与されてもよい。あるいは、インタフェースプロセッサ２２０は、ワイヤレスネットワーク装置２８０を介して遠隔ネットワーク及び／又は遠隔サーバから更新された復号キーを読み出してもよい。
【００７２】
受信したＶＭＡが検証プロセスに合格しない場合、インタフェースプロセッサ２２０はインストールプロセスを終了させてもよい。インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者に、ＶＭＡが特定の自動車と互換性がないため、あるいは、認証されていないためインストールできない旨を通知する。受信したＶＭＡが検証プロセスに合格した場合、インタフェースプロセッサ２２０はインストールプロセスを継続し、ＶＭＡ装置２７０に領域確認要求（cheek-space request）を送信してもよい。
【００７３】
ＶＭＡ装置２７０は、ＶＭＡプロセッサ２７２、ＶＭＡセンサ２７４、及び、ＶＭＡメモリ２７６を含んでもよい。ＶＭＡプロセッサ２７２は、インタフェースプロセッサ２２０に連結され、ＶＭＡメモリ２７６はＶＭＡプロセッサ２７２に連結されてもよい。インタフェースプロセッサ２２０から領域確認要求を受信後、ＶＭＡプロセッサ２７２は、ＶＭＡメモリ２７６に利用可能な領域があるかを確認してもよい。ＶＭＡメモリ２７６に領域がない場合、ＶＭＡプロセッサ２７２は、新しく受信したＶＭＡがインストールされないことを示すため、領域不十分信号をインタフェースプロセッサ２２０に送信してもよい。領域不十分信号を受信後、インタフェースプロセッサ２２０はインストールプロセスを終了し、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージによって、ＶＭＡメモリ２７６が十分な領域を持たないためＶＭＡがインストールされない旨が操作者に報告されてもよい。
【００７４】
一方、ＶＭＡメモリ２７６に、受信したＶＭＡをインストールするのに十分な領域がある場合、ＶＭＡプロセッサ２７２は領域十分信号（sufficient-space signal）をインタフェースプロセッサ２２０に送信してもよい。領域十分信号に応答して、インタフェースプロセッサ２２０は、新しく受信したＶＭＡをＶＭＡプロセッサ２７２に送信してもよい。ＶＭＡプロセッサ２７２は、それに応答して、受信したＶＭＡを登録し、登録したＶＭＡをＶＭＡメモリ２７６に記憶し、インストール完了信号をインタフェースプロセッサ２２０に送信してもよい。インストール完了信号を受信したら、インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者にインストールプロセスが完了したことを報告してもよい。
【００７５】
インタフェースプロセッサ２２０は、ＶＭＡメモリ２７６に記憶され得る一つ以上のインストールされたＶＭＡを更新、且つ／又は、修正するよう構成されていてもよい。インタフェースプロセッサ２２０は、周期的に、反復的に、繰り返して、且つ／又は、ランダムに、すでにインストールされたＶＭＡに関連する更新情報を探索してもよい。例えば、インタフェースプロセッサ２２０は、１つ以上の遠隔ネットワーク及び／又は遠隔サーバの更新情報を探してもよい。他の例では、インタフェースプロセッサ２２０は、ＶＭＡ入力サブブロック２０６によって読み出され得る記憶媒体に記憶された更新情報を検知してもよい。
【００７６】
インタフェースプロセッサ２２０が更新された情報を特定すると、更新プロセスを開始してもよい。インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して通知メッセージを生成してもよい。通知メッセージは、１つ以上のインストールされたＶＭＡの更新が可能であることを操作者に通知してもよい。更に、インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して更新要求を生成してもよい。更新要求は受容されてもよく、拒否されてもよい。操作者が更新要求を拒否した場合、更新プロセスは終了する。操作者が更新要求を受容した場合、Ｉ／Ｏサブブロック２０２は、インタフェースプロセッサ２２０によって受信され得る更新命令を生成してもよい。
【００７７】
更新命令又は更新要求を受信すると、インタフェースプロセッサ２２０は更新内容（又は、修正内容）を読み出してもよい。例えば、インタフェースプロセッサ２２０は、ワイヤレスネットワーク装置２８０を介して、１つ以上の遠隔ネットワーク及び／又は遠隔サーバから更新内容を読み出してもよい。別の例では、インタフェースプロセッサ２２０は、ＶＭＡ入力ブロック２０６を介して１つ以上の物理的記憶媒体から更新内容を読み出してもよい。
【００７８】
更新内容を読み出すと、インタフェースプロセッサ２２０は、新しく読み出された更新内容が特定の自動車に用いられるのに適しているか否かを判断してもよい。インタフェースプロセッサ２２０は、更新内容の互換性を確認し（ascertain）、更新内容が工業規格に適合することを確定してもよい。インタフェースプロセッサ２２０は、様々な暗号化技術を用いて、更新内容の品質を確かめてもよい。例えば、インタフェースプロセッサ２２０は、インストールプロセスで実行したのと同様の検証プロセスを実行してもよい。
【００７９】
受信した更新内容が検証プロセスに合格しない場合、インタフェースプロセッサ２２０は更新プロセスを終了させてもよい。インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、更新内容が特定の自動車に互換性がないため、あるいは、更新内容が未認証のため、更新プロセスが実行されないことを操作者に通知してもよい。更新内容が検証プロセスに合格した場合、インタフェースプロセッサ２２０は、インストールプロセスを継続し、領域確認要求をＶＭＡ装置２７０に送信してもよい。
【００８０】
領域確認要求をインタフェースプロセッサ２２０から受信した後、ＶＭＡプロセッサ２７２は、ＶＭＡメモリ２７６の利用可能な領域を確認してもよい。ＶＭＡメモリ２７６に領域がない場合、ＶＭＡプロセッサ２７２は、更新内容がインストールされないことを意味する領域不十分信号をインタフェースプロセッサ２２０に送信してもよい。インストール領域不十分信号を受信後、インタフェースプロセッサ２２０は更新プロセスを終了し、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージによって、ＶＭＡメモリ２７６が十分な領域を持たないため更新内容がインストールされない旨が、操作者に報告されてもよい。
【００８１】
一方、ＶＭＡメモリ２７６に更新内容のための十分な領域がある場合、ＶＭＡプロセッサ２７２は領域十分信号をインタフェースプロセッサ２２０に送信してもよい。領域十分信号に応答して、インタフェースプロセッサ２２０は、更新内容をＶＭＡプロセッサ２７２に送信してもよい。ＶＭＡプロセッサ２７２は、これに応じて、更新予定のＶＭＡ（ターゲットＶＭＡなど）を再登録し、更新内容をターゲットＶＭＡに統合し、統合したＶＭＡをＶＭＡメモリ２７６に記憶し、更新完了信号をインタフェースプロセッサ２２０に送信してもよい。更新完了信号を受信したら、インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者に更新プロセスが完了したことを報告してもよい。
【００８２】
インタフェースプロセッサ２２０は、１つ以上のインストールされたＶＭＡをアンインストールし、削除し、且つ／又は除去するように構成されてもよい。ＶＭＡが問題なくインストールされ且つ／又は更新された後、操作者は、ＶＭＡメモリ２７６に記憶されているＶＭＡのアンインストール、削除、及び／又は、除去をいつでも決定してよい。操作者Ｉ／Ｏサブブロック２０２を介して操作者からの要求を受信すると、インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得るＶＭＡメニューを生成してもよい。操作者は、メニューからアンインストール機能を選択してもよい。アンインストール機能が呼び出された後、インタフェースプロセッサ２２０は、インストールされたＶＭＡの一覧を操作者に提供してもよい。操作者は、次に、１つ以上のＶＭＡをアンインストールする選択をし、その際に、操作者Ｉ／Ｏサブブロック２０２によってアンインストール命令が生成されてもよい。
【００８３】
アンインストール命令を受信後、インタフェースプロセッサ２２０はシステムチェックを実行してもよい。システムチェックは、要求されたアンインストールが未選択のＶＭＡを混乱させるか、又は、破壊するか否かを確かめてもよい。例えば、インタフェースプロセッサ２２０は、インタフェースメモリ２２５に記憶され得る未選択のＶＭＡのパラメータが、アンインストール予定のＶＭＡに依存するか、或いは、影響を受けるか否かを判断してもよい。別の例では、インタフェースプロセッサ２２０はＶＭＡプロセッサ２７２にＶＭＡの統合性チェックの実行を要求してもよい。これに応じて、ＶＭＡプロセッサ２７２は、選択したＶＭＡをアンインストールすると未選択のＶＭＡのコードが破壊されるか否かを判断してもよい。
【００８４】
アンインストールプロセスが未選択のＶＭＡを混乱させる、あるいは、破壊する可能性が高い場合、インタフェースプロセッサ２２０はアンインストールを拒否するか、あるいは、認証された団体からの承認又は修正キットを要求してもよい。インタフェースプロセッサ２２０がアンインストールを拒否した場合、操作者Ｉ／Ｏサブブロック２０２を介して中断メッセージが操作者に提示されてもよい。中断メッセージは、ＶＭＡ開発者、自動車製造者、及び／又は、中立な第三者を含み得る認証された団体から、認証された承認及び／又は修正キットを取得するよう、操作者に要求してもよい。アンインストールプロセスが未選択のＶＭＡを混乱又は破壊する可能性が低い場合、又は、アンインストールプロセスが承認され、且つ／又は、アンインストールプロセス用の修正キットが利用可能な場合、インタフェースプロセッサ２２０はシステムチェックを継続してもよい。
【００８５】
システムチェックは、また、アンインストールが車両システム２４０の機能性に悪影響を及ぼさないかを確かめてもよい。例えば、インタフェースプロセッサ２２０は、機能性チェックを実行するよう診断プロセッサ２３０に要求してもよい。これに応じて、診断プロセッサ２３０は車両データロガー２６０とインタフェースメモリ２２５に記憶されたデータを分析してもよい。分析に基づいて、診断プロセッサ２３０は選択したＶＭＡのアンインストールが、車両システム２４０の１つ以上の機能を混乱させる、除去する、又は、意図せず妨害するかを判断してもよい。
【００８６】
アンインストールプロセスが、車両システム２４０の１つ以上の機能を混乱させる、除去する、又は意図せず妨害する可能性が高い場合、インタフェースプロセッサ２２０は、アンインストールを拒絶し、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る中断メッセージを生成してもよい。中断メッセージは、アンインストールが実行されないことを操作者に報告し、機能性チェックのサマリを操作者に提供してもよい。アンインストールプロセスが、車両システム２４０の１つ以上の機能性を混乱させる、除去する、又は意図せず妨害する可能性が高い場合、インタフェースプロセッサ２２０はアンインストール信号をＶＭＡプロセッサ２７２に送信してもよい。
【００８７】
アンインストール信号に応答して、ＶＭＡプロセッサ２７２は選択したＶＭＡの登録を解除し、且つ／又は、ターゲットＶＭＡをＶＭＡメモリ２７６から削除してもよい。ＶＭＡプロセッサ２７２は、選択したＶＭＡが除去されると、アンインストール完了信号をインタフェースプロセッサ２２０に送信してもよい。インタフェースプロセッサ２２０は、インタフェースメモリ２２５から、アンインストールされたＶＭＡに関連した登録レコード、実行レコード、及び／又は、パラメータを除去してもよい。アンインストール完了信号を受信すると、インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者にアンインストールプロセスが完了したことを報告してもよい。
【００８８】
ＶＭＡインタフェース２１０は、操作者がＶＭＡを追加、修正及び／又は除去を行うのに都合のよいプラットフォームを提供してもよい。操作者は、予めインストールされたＶＭＡに加えて、新しく開発され且つ認証されたＶＭＡを様々な開発者から入手してもよい。例えば、操作者は、ＵＳＢドライブ、ＣＤ、又は、フラッシュメモリカードに記憶された認証済みＶＭＡを購入してもよい。別の例では、操作者は、携帯電話及び／又はラップトップコンピュータなどの携帯装置を介して認証済みＶＭＡを購入してもよく、且つ、購入したＶＭＡを携帯装置からインタフェースプロセッサ２２０に転送してもよい。別の例では、操作者がワイヤレスネットワーク装置２８０を介して１つ以上の遠隔ネットワークにアクセスしてもよく、オンラインストアで認証済みＶＭＡを購入してもよい。
【００８９】
ワイヤレスネットワーク装置２８０は、１つ以上の送受信機を含んでもよい。ある実施形態では、例えば、ワイヤレスネットワーク装置２８０は、専用狭域通信（ＤＳＲＣ）送受信機などの、狭域送受信機２８２を含んでもよい。別の実施形態では、例えば、ワイヤレスネットワーク装置２８０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）送受信機、赤外線（ＩＲ）送受信機、ラジオ周波数（ＲＦ）送受信機、及び／又は、ＩＥＥＥ８０２．１１送受信機などの中域送受信機２８４を含んでいてもよい。また別の実施形態では、例えば、ワイヤレスネットワーク装置２８０は、汎欧州デジタル移動電話方式（ＧＳＭ）送受信機、及び／又は、符号分割多重接続（ＣＤＭＡ）送受信機などの、広域送受信機２８６を含んでいてもよい。
【００９０】
従って、ＶＭＡインタフェース２１０は、ピアツーピアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、公衆網、私設網、及び／又は、仮想私設網を含み得るがこれらに限られない、様々なネットワークにアクセスしてもよい。利点として、ＶＭＡインタフェース２１０によって、新しく開発されたＶＭＡに互換性があり安全に使用できることを確保しながら、操作者は多種多様なＶＭＡを選択するのに高い柔軟性が与えられ得る。更に、権限のある第三者の操作者が、ワイヤレスネットワーク装置２８０を介してインタフェースプロセッサ２２０に遠隔からアクセスしてもよい。このように、権限のある第三者の操作者が、車両制御システム２００を遠隔から操作することがある。この特徴は、運転者が一時的に運転不能になった場合、あるいは、車両操縦入力サブブロック２０４が正常に機能しない場合に有益となり得る。
【００９１】
ＶＭＡがインストールされた後、インタフェースプロセッサ２２０を用いて、インストールされたＶＭＡを起動してもよい。インタフェースプロセッサ２２０は、操作者Ｉ／Ｏサブブロック２０２を介してＶＭＡ起動メニューを提示してもよい。操作者はＶＭＡ起動メニューから、起動する１つ以上のインストール済みＶＭＡを選択してもよい。選択後、操作者Ｉ／Ｏサブブロック２０２は初期化信号（別名、起動信号）をインタフェースプロセッサ２２０に送信してもよい。初期化信号は様々なデータに組み込まれてもよい。例えば、初期化信号は選択したＷＭＡを特定する識別子、及び／又は、選択されたＷＭＡの動作の優先度を示す優先度コードと共に組み込まれてもよい（embedded with）。
【００９２】
インタフェースプロセッサ２２０は初期化信号を処理し、それに応じて、ＶＭＡプロセッサ２７２に選択されたＶＭＡを実行するよう命令してもよい。ＶＭＡプロセッサ２７２は、ＶＭＡメモリ２７６から選択されたＶＭＡを検索し（locate）、ロードしてもよい。選択されたＶＭＡの初期化中に、ＶＭＡプロセッサ２７２は車両データ要求信号をインタフェースプロセッサ２２０に送信してもよい。ＶＭＡは、初期化及び／又は補正のため、現在の車両データをパラメータとして利用してもよい。
【００９３】
概して、車両データは自動車の物理的状態に関する情報を含み得る。例えば、車両データは各タイヤの回転速度、各タイヤの空気圧、ブレーキ流体の量、各ブレーキパッドの状態、各タイヤが受ける垂直抗力、各種照明装置の動作状態、ガソリンの量、及び／又は、前輪のそれぞれが受けるトルクに関する情報を含み得る。更に、車両データは、自動車の周囲の状態に関する情報を含み得る。例えば、車両データは、１つ以上の隣接する（前方、後方、左側、及び／又は、右側）自動車の相対速度、１つ以上の隣接する自動車の相対距離、近辺にある１つ以上の交通信号灯の状態、１つ以上の走行車線に対する自動車の位置、及び／又は、道路路面の摩擦力に関する情報を含んでいてもよい。
【００９４】
様々なセンサによって生成された車両データは、その後、車両データロガー２６０に記憶されてもよい。様々なセンサが車両データロガー２６０に連結し、自動車の１つ以上の機械部品に隣接して配置されてもよい。ある実施形態では、例えば、角度センサ２６２が、自動車の前車軸２４３の近辺に設置されていてもよい。角度センサ２６２は、自動車の回転角度を検知するのに用いられてもよい。別の実施形態では、例えば、回転速度センサ２６４が、自動車の各車輪２４５の近辺に設置されてもよい。回転速度センサ２６４は、自動車の速度、加速、及び／又は、減速を検知するのに用いられてもよい。また別の実施形態では、光センサ２６６が、方向指示灯、前灯、制御灯、尾灯、後退灯、及び／又は、ハイビーム灯の、１つ以上の照明装置２４７の近辺に設置されてもよい。光センサ２６６は、照明装置２４７の動作状態を検知するために用いられてもよい。
【００９５】
車両データ要求信号の処理後、インタフェースプロセッサ２２０は、車両データロガー２６０から車両データを取得してもよい。ある実施形態では、安全なアクセスを提供するために、診断プロセッサ２３０が車両データロガー２６０に連結されてもよい。このように、インタフェースプロセッサ２２０は、診断プロセッサ２３０を介して車両データロガー２６０にアクセスしてもよい。別の実施形態では、インタフェースプロセッサ２２０は、車両データロガー２６０に連結されてもよい。こうして、インタフェースプロセッサ２２０は、車両データロガー２６０から直接車両データを読み出してもよい。
【００９６】
インタフェースプロセッサ２２０は、起動されたＶＭＡが初期化及び／又は補正手続きを完了し得るように、読み出した車両データをＶＭＡプロセッサ２７２に送信してもよい。初期化プロセス後、ＶＭＡプロセッサ２７２は、インタフェースプロセッサ２２０への接続要求信号を生成してもよい。インタフェースプロセッサ２２０は、接続要求を受け取ると、ＶＭＡプロセッサ２７２と車両システム２４０との間に接続を構築してもよい。
【００９７】
ある実施形態では、車両システム２４０は、車両操縦コントローラ２４１、車両操縦コントローラ２４１によって制御される各種作動装置、各種作動装置によって操作される各種物理的構成要素、及び、車両データロガー２６０を有してもよい。
【００９８】
物理的構成要素は、自動車の基本的な物理的機能を実行する役割を担っていてもよい。例えば、物理的構成要素は、自動車の回転角度を制御する前軸（front axle）２４３、自動車の速度を制御する四車輪２４５、且つ／又は、各種照明機能を行う照明装置２４７（ヘッドライト、尾灯、方向指示灯及び／又は後退灯）を含んでもよい。別の例では、物理的構成要素は、ブレーキパッド及び／又はトランスミッションギアを含んでもよい。
【００９９】
作動装置は、車両操縦コントローラ２４１によって生成された１つ以上の制御信号を１つ以上の機械力、電気力、及び／又は、電気機械力に変換する役割を担ってもよい。例えば、作動装置は、ステアリング装置２４２、比例装置２４４、及び、車体装置２４６を含んでもよい。ステアリング装置２４２は、前軸２４３の操作に用いられ得る。比例装置２４４は、自動車の加速、減速、及び／又は、エネルギー消費を制御してもよい。つまり、比例装置２４４は、自動車のトランスミッションギア、ブレーキパッド、及び／又は、エンジンの操作に用いられ得る。車体装置２４６は、各種照明装置２４７の動作と自動車の動きを調和させるのに用いられてもよい。
【０１００】
車両操縦コントローラ２４１は、各種作動装置に連結されていてもよい。車両操縦コントローラ２４１は、各種作動装置の動作を制御するための１つ以上の制御信号を生成する役割を担うことがある。制御信号の生成では、車両操縦コントローラ２４１は、ＶＭＡプロセッサ２７２から受信した指示をコンパイルし、処理し、且つ／又は、実行するように構成されていてもよい。
【０１０１】
車両操縦コントローラ２４１は、任意で、閉ループシステムの動作を監視し補正する負帰還を採用するサーボシステムのマスタデバイスであってもよい。例えば、車両操縦コントローラ２４１は、車両操縦コントローラ２４１が各種物理的構成要素の動作と状態の両方又はいずれかを監視するのに用いられ得る各種センサ（角度センサ２６２、回転速度センサ２６４、光センサ２６６の全て又はいずれか、など）に連結していてもよい。
【０１０２】
あるいは、車両操縦コントローラ２４１は、サーボ機構のスレーブデバイスであってもよい。車両操縦コントローラ２４１は、監視や補正機能は実行せず、ＶＭＡプロセッサ２７２から受信した指示を実施してもよい。代わりに、ＶＭＡプロセッサ２７２が車両操縦コントローラ２４１によって実施されるタスクを監視し、補正できるように、ＶＭＡプロセッサ２７２がマスタデバイスでもよい。
【０１０３】
実行されるＶＭＡの形式によって、ＶＭＡプロセッサ２７２と車両システム２４０との間の接続は双方向、又は一方向であってもよい。接続が双方向の場合、ＶＭＡプロセッサ２７２は車両システム２４０に指示を送信し、車両システム２４０からフィードバック信号を受信してもよい。フィードバック信号は、車両操縦コントローラ２４１からの確認応答、車両操縦コントローラ２４１からの監視情報、及び、車両データロガー２６０からの車両データを含むがこれらに限られない情報に組み込まれてもよい。このように、ＶＭＡプロセッサ２７２と車両システム２４０との間の接続は、制御チャネルと情報チャネルを含んでもよい。接続が双方向の場合、ＶＭＡプロセッサ２７２は車両システム２４０に指示を送信し、車両操縦コントローラ２４１は、ＶＭＡプロセッサ２７２から要求を受信すると、ＶＭＡプロセッサ２７２にハンドシェイク信号を送信してもよい。このように、ＶＭＡプロセッサ２７２と車両システム２４０との間の接続は、制御チャネルのみを含んでもよい。
【０１０４】
更に、ＶＭＡプロセッサ２７２は、ＶＭＡセンサ２７４を介して操作者から操作入力を受信してもよい。ＶＭＡセンサ２７４は、ＶＭＡ装置２７０への操作入力の受信を専用に行うため、車両操縦入力サブブロック２０４からは独立している。ＶＭＡセンサ２７４は、操作者の一つ以上の動きを感知するのに用いられてもよい。更に、ＶＭＡセンサ２７４は、自動車の操縦性に影響を与え得る１つ以上の外部状態を感知するのに用いられてもよい。例えば、障害回避アプリケーションで、接近してくる物体を検知するのにＶＭＡセンサ２７４が用いられてもよい。ＶＭＡセンサ２７４は、制御スティック、タッチパッド、タッチセンサ、光センサ、近接センサ、イメージセンサ、測距センサ、熱センサの全て又はいずれかを含むことがあるが、これらに限られない。
【０１０５】
本発明の各種実施形態によると、起動されたＶＭＡは、１つ以上の操作者の命令と１つ以上の予め定義されたイベントの両方又はいずれかによって、休止、優先、終了の全て又はそのいずれかがなされてもよい。操作者が車両操縦入力サブブロック２０４の１つ以上の車両操縦装置を制御した場合、又は、ＶＭＡセンサ２７４が感知信号を生成した場合、起動されたＶＭＡは、休止、優先、終了の全て又はいずれかがなされてもよい。更に、操作者が、インタフェースプロセッサ２２０によって生成され、操作者Ｉ／Ｏサブブロック２０２によって操作者に提示され得るメニューから１つ以上のオプションを選択した場合、起動されたＶＭＡは休止、優先、終了の全て又はいずれかがなされてもよい。
【０１０６】
更に、幾つかの予め定義されたイベントの一つがインタフェースプロセッサ２２０によって検知された場合、起動されたＶＭＡは休止、優先、終了の全て又はいずれかがなされてもよい。予め定義されたイベントは、車両システム２４０の動作に負の影響を与えるイベントを含んでもよいが、これらに限られない。インタフェースプロセッサ２２０は、診断プロセッサ２３０を介して、又は、車両操縦コントローラ２４１を介して各種センサを監視して、所定のイベントを検知してもよい。例えば、インタフェースプロセッサ２２０は、車輪２４５の１つがブレーキを掛け損ねた場合に、予め定義されたイベントを検知してもよい。別の例では、インタフェースプロセッサ２２０は、前軸２４３が回転し損ねた場合に、予め定義されたイベントを検知してもよい。別の例では、インタフェースプロセッサ２２０は、比例装置２４４が車両操縦コントローラ２４１の制御信号に応答しない場合、予め定義されたイベントを検知してもよい。
【０１０７】
操作者Ｉ／Ｏサブブロック２０２及び車両操縦入力サブブロック２０４は、それぞれ割込み信号を生成してもよく、割込み信号は、インタフェースプロセッサ２２０によって受信され、処理されてもよい。インタフェースプロセッサ２２０は、割込み信号を受信し処理したとき、起動されたＶＭＡの特性（nature）によって、ＶＭＡを休止又は優先してもよい。
【０１０８】
操作者Ｉ／Ｏサブブロック２０２、車両操縦入力サブブロック２０４、及び、診断プロセッサ２３０は、それぞれ終了信号を生成してもよい。インタフェースプロセッサ２２０は、終了信号を受信し処理すると、起動されたＶＭＡを終了、又は中断してもよい。
【０１０９】
ＶＭＡが休止されると、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２にＶＭＡの実行を停止するよう指示してもよい。インタフェースメモリ２２５は、停止されたＶＭＡのパラメータを一時的に記憶してもよい。記憶されたパラメータは、ＶＭＡが復帰するときに読み出されてもよい。更に、車両操縦コントローラ２４１が車両操縦入力サブブロック２０４によって生成された信号によって制御され得るように、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２と車両操縦コントローラ２４１との間を一時的に接続不可能にしてもよい。ＶＭＡの休止中、操作者は自動車の操縦を制御できてもよい。停止されたＶＭＡは、操作者Ｉ／Ｏサブブロック２０２によって提示されたメニューから復帰オプションを選択するなどの操作で、操作者によって復帰されてもよい。復帰オプションが選択された場合、Ｉ／Ｏサブブロック２０２は、復帰信号を生成してもよい。インタフェースプロセッサ２２０は、復帰信号を受信し処理すると、ＶＭＡプロセッサ２７２と車両操縦コントローラ２４１との間に接続を再構築してもよい。そして、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２に停止されたＶＭＡの実行復帰を指示してもよい。
【０１１０】
ＶＭＡが優先された場合、操作者（運転者など）及びＶＭＡは、共同で車両操縦コントローラ２４１を制御してもよいが、操作者が生成した命令はＶＭＡプロセッサ２７２が生成した指示より優先されてもよい。インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２と車両操縦コントローラ２４１との間を瞬間的に接続不可能にする一方で、ＶＭＡプロセッサ２７２に優先されたＶＭＡの実行を継続させてもよい。例えば、操作者が自動車の動作の制御を試みているか否かを確かめるため、インタフェースプロセッサ２２０は車両操縦入力サブブロック２０４によって生成された信号を監視してもよい。車両操縦サブブロック２０４からの入力信号を検知すると、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２と車両操縦コントローラ２４１との間を接続不可能にしてもよい。従って、車両操縦コントローラ２４１は、ＶＭＡプロセッサ２７２によって生成される指示の代わりに入力信号を受信し、入力信号によって制御されてもよい。入力信号が検知されない場合、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２を車両操縦コントローラ２４１に再度接続させてもよい。
【０１１１】
ＶＭＡが終了される場合、インタフェースプロセッサ２２０は、ＶＭＡプロセッサ２７２にＶＭＡの実行を終了するよう指示してもよい。インタフェースメモリ２２５は、ＶＭＡが終了する前に実行された指示を記憶してもよい。インタフェースメモリ２２５は、診断プロセッサ２３０に、車両データロガー２６０に記憶される車両データと共に、実行された指示も分析するように指示してもよい。診断プロセッサ２３０は、実行された指示を車両データと比較し、自動車の操作、ＶＭＡの品質、操作者の運転習慣の全て又はいずれかに関連し得る各種事項を特定してもよい。例えば、診断プロセッサ２３０は、作動装置と車両システム２４０の物理的構成要素が適正に機能しているか否かを判断してもよい。他の例では、診断プロセッサ２３０は、ＶＭＡがプログラミング上のエラーを含むか否かを判断してもよい。他の例では、診断プロセッサ２３０は、操作者が道路の状態変化に十分対応しているか否かを判断してもよい。
【０１１２】
診断プロセッサ２３０は、診断結果をインタフェースプロセッサ２２０に送信してもよい。インタフェースプロセッサ２２０は、これに応答して、操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得る、操作者に理解しやすい診断サマリを生成してもよい。加えて、インタフェースプロセッサ２２０は、一つ以上のＶＭＡの起動、休止、優先、終了の全て又はそのいずれかの最中に、１つ以上の操作者に理解しやすいメッセージを生成してもよい。従って、操作者にはＶＭＡの学習と操作に役立つ情報が得られる。
【０１１３】
本発明の別の実施形態によると、車両システム２４０は、更に、補助コントローラ２５０及び補助装置ブロック２５２を含んでもよい。補助コントローラ２５０は、補助アプリケーション装置２９０から受信した指示の実行に用いられてもよい。補助アプリケーション装置２９０は、ＶＭＡ装置２７０に類似していてもよい。例えば、補助アプリケーション装置２９０は、補助プロセッサ２９２及び補助メモリ２９６を含んでもよい。補助メモリ２９６は、補助プロセッサ２９２と連結していてもよく、１つ以上の補助アプリケーションの記憶に用いられてもよい。補助プロセッサ２９２は、インタフェースプロセッサ２２０と連結していてもよく、１つ以上の補助アプリケーションの実行に用いられてもよい。補助アプリケーションは、自動車製造者と第三者の開発者の両方又はいずれかによって開発されてもよい。補助アプリケーションは、ナビゲーションアプリケーション、車内環境制御アプリケーション、オーディオ及びビデオアプリケーション、ＷＥＢ閲覧アプリケーション、エンターテインメントアプリケーションの全て又はいずれかを含んでいてもよい。
【０１１４】
補助アプリケーションの実行では、補助プロセッサ２９２が、補助コントローラ２５０に、補助装置ブロック２５２の１つ以上の補助装置を制御するための１つ以上の制御信号を生成するよう指示してもよい。補助装置は、空調装置、音楽プレーヤー、ビデオプレーヤー、ビデオゲームプロセッサ、全地球測位システム（ＧＰＳ）の全て、又はいずれかを含んでいてもよい。ある実施形態では、インタフェースプロセッサ２２０は補助プロセッサ２９２と補助コントローラ２５０との間に通信チャネルを提供してもよい。別の実施形態では、補助プロセッサ２９２は、補助コントローラ２５０と直接連結していてもよい。
【０１１５】
図２では、インタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、補助プロセッサ２９２は、個別のプロセッサであることが示されるが、本発明の代替の実施形態によると、インタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、補助プロセッサ２９２は、合わせて一つのプロセッサを形成していてもよい。この一つのプロセッサは、ＶＭＡインタフェース２１０の一部でもよく、幾つかのモジュールに分割され、各モジュールがインタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、補助プロセッサ２９２の機能を実行するのに用いられてもよい。
【０１１６】
インタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、補助プロセッサ２９２のそれぞれは、データを受信し、受信したデータを処理し、処理したデータを出力することが可能ないかなるコンピューティングデバイスでもよい。インタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、補助プロセッサ２９２のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらの組み合わせを用いて実現されてもよい。インタフェースプロセッサ２２０は、Ａｄｖａｎｃｅｄ  ＲＩＳＣ  Ｍａｃｈｉｎｅ（ＡＲＭ）、コンピュータ、コントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロプロセッサ、回路、プロセッサチップ、又は、データの処理が可能なその他の装置、及び、これらの組み合わせでもよい。
【０１１７】
図２はインタフェースメモリ２２５、車両データロガー２６０、ＶＭＡメモリ２７６、及び、補助メモリ２９６が個別に実施されることを示すが、本発明の代替の実施形態によると、これらは一つのメモリ装置で実現できる。この一つのメモリ装置は、幾つかの領域に分割されてもよく、各領域がインタフェースプロセッサ２２０、診断プロセッサ２３０、ＶＭＡプロセッサ２７２、及び、補助プロセッサ２９２によって処理されるデータを記憶するのに用いられてもよい。
【０１１８】
インタフェースメモリ２２５、車両データロガー２６０、ＶＭＡメモリ２７６、及び、補助メモリ２９６のそれぞれは、各種ルーチン及びデータを記憶してもよい。「メモリ」という用語は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、リードオンリーメモリ（ＲＯＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク、及び、指示とデータの両方又はいずれかを記憶し、格納し、又は、運ぶことが可能なその他の各種メディアを含むが、これらに限られない。
【０１１９】
次に、自動車で使用されるプロセッサによって実行され得るインタフェースソフトウェアの１つ以上のアルゴリズムを説明する。概して、インタフェースソフトウェアは、プロセッサによって実行されると、１つ以上の車両操縦アプリケーション（ＶＭＡ）のインストール、更新、アンインストール、起動、監視の全て又はそのいずれかを行うためのインタフェースをプロセッサに提供させることがある。従って、インタフェースソフトウェアは、図２で説明するように、インタフェースプロセッサ２２０の１つ以上の機能を呼び出してもよい。
【０１２０】
図３は、本発明の実施形態による、インタフェースシステムソフトウェア３００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、インタフェースシステムソフトウェア３００は、プロセッサに以下の方法のステップを実行させることがある。
【０１２１】
ステップ３０２で、プロセッサはインタフェースシステムの電源を入れてもよい。操作者の要求に応答して、プロセッサは、１つ以上のすでにインストールされているＶＭＡを事前ロード、事前設定、又はリセットしてもよい。ステップ３０４で、プロセッサは、図２で説明した車両システム２４０などの車両システムを診断してもよい。プロセッサは、車両データロガー２６０から車両データを読み出し、車両システムの物理的構成要素及び作動装置が適正に機能しているかを判断してもよい。診断の実行後、プロセッサは操作者に診断結果を表示してもよい。更に、プロセッサは、診断結果をインタフェースメモリ２２５のようなメモリに保存してもよく、且つ／又は、診断結果をワイヤレスネットワーク装置２８０のようなネットワーク装置を介して遠隔ネットワークに送信してもよい。
【０１２２】
ステップ３０６では、プロセッサはメインメニューを生成してもよく、メインメニューは図２で説明した操作者Ｉ／Ｏサブブロック２０２のような出力装置を介して、操作者に提示されてもよい。操作者は、メインメニューによって、図２で説明した補助アプリケーション装置２９０のような補助装置を操作できてもよい。更に、操作者は、メインメニューによって、図２で説明したＶＭＡ装置２７０のようなＶＭＡ装置を操作できてもよい。
【０１２３】
図９に例示するように、メインメニューは、メインメニュー画面表示９００に提示されてもよい。メインメニュー画面表示９００は、タイトルメッセージ９０２、車両操縦アプリケーション（ＶＭＡ）の対話型オプション９０４、及び、補助アプリケーションの対話型オプション９０６を含んでいてもよい。操作者は、メインメニュー画面表示９００をタッチして、ＶＭＡの対話型オプション９０４、又は、補助アプリケーションの対話型オプション９０６を選択してもよい。
【０１２４】
ステップ３０８で、プロセッサは、操作者の選択を検知してもよい。ステップ３１０で、プロセッサは、補助装置が選択されたかを判定してもよい。例えば、操作者が補助アプリケーションの対話型オプション９０６を選択すると、補助選択信号が生成される。プロセッサは、補助選択信号を検知すると、補助装置が選択されたと判定し、ステップ３１２を実行してもよい。ステップ３１２で、プロセッサは、補助装置サブルーチンを実行してもよい。補助装置サブルーチンの完了後、プロセッサはステップ３０６に戻ってもよい。
【０１２５】
補助選択信号が検知されない場合、プロセッサは補助装置が選択されていないと判定し、ステップ３２０を実行してもよい。ステップ３２０で、プロセッサは、ＶＭＡ装置が選択されたかを判定してもよい。例えば、操作者がＶＭＡの対話型オプション９０４を選択すると、ＶＭＡ装置選択信号が生成されてもよい。プロセッサは、ＶＭＡ装置選択信号を検知すると、ＶＭＡ装置が選択されたと判定し、ステップ３２２を実行してもよい。ステップ３２２で、プロセッサは、図４で詳細に説明されるＶＭＡ装置サブルーチンを実行してもよい。ＶＭＡ装置サブルーチンの完了後、プロセッサはステップ３０６に戻ってもよい。
【０１２６】
図３では判定ステップ３１０が判定ステップ３２０の前に実行されているが、本発明の様々な別の実施形態によると、判定ステップ３２０は判定ステップ３１０の前、又は、同時に実行されてもよい。
【０１２７】
図４は、本発明の実施形態による、ＶＭＡ装置サブルーチン４００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、ＶＭＡ装置サブルーチン４００は、プロセッサに以下の方法のステップを実行させることがある。
【０１２８】
ステップ４０２で、プロセッサは、ＶＭＡ装置を開始してもよい。例えば、図２で説明したように、プロセッサは、パラメータを、インタフェースメモリ２２５からＶＭＡプロセッサ２７２にロードしてもよい。ステップ４０４で、プロセッサは、ＶＭＡメニューを生成してもよい。概して、ＶＭＡメニューによって、操作者は１つ以上のＶＭＡのインストール、更新、アンインストール、起動の全て又はいずれかができてもよい。
【０１２９】
図１０に例示するように、ＶＭＡメニューは、ＶＭＡメニュー画面表示１０００に提示されてもよい。ＶＭＡメニュー画面表示１０００は、タイトルメッセージ１００２、インストールの対話型オプション１００４、更新の対話型オプション１００６、アンインストールの対話型オプション１００８、及び、起動の対話型オプション１０１０を含むことがある。
【０１３０】
操作者は、ＶＭＡメニュー画面表示１０００をタッチすることで、インストールの対話型オプション１００４、更新の対話型オプション１００６、アンインストールの対話型オプション１００８、及び、起動の対話型オプション１０１０のいずれかを選択してもよい。
【０１３１】
あるいは、図１１に例示されるように、ＶＭＡメニューは、代替ＶＭＡメニュー画面表示１１００に提示されてもよい。代替ＶＭＡメニュー画面表示１１００は、タイトルメッセージ１１０２、ＶＭＡ一覧、幾つかのアクションアイコン、幾つかの対話型オプション欄、及び、戻る対話型オプション１１１０を含むことがある。ＶＭＡの一覧は、ＶＭＡ＿Ａ１１０４などのすでにインストールされたＶＭＡを含んでいてもよい。ＶＭＡの一覧は、ＶＭＡ＿Ｂ１１０６などの、検知されたがまだインストールされていないＶＭＡも含んでいてもよい。ステップ４０４に入ると、プロセッサは、図２に示されるＶＭＡ入力サブブロック２０６又はワイヤレスネットワーク装置２８０を介して、まだインストールされていないＶＭＡを自動的に検知してもよい。
【０１３２】
幾つかのアクションアイコンは、情報アイコン１１２１、インストールアイコン１１２２、更新アイコン１１２３、アンインストールアイコン１１２４、起動（実行）アイコン１１２５の全て、又はいずれかを含んでいてもよい。幾つかの対話型オプション欄は、幾つかのアクションアイコンの下に配置されてもよい。各対話型オプション欄は、一覧中のＶＭＡと関連付けられ、操作者は関連付けられたＶＭＡに利用可能な各種アクションを選択することができてもよい。
【０１３３】
例えば、第１の対話型オプション欄１１３４は、ＶＭＡ＿Ａ１１０４に関連付けられてもよい。ＶＭＡ＿Ａ１１０４はすでにインストールされているため、操作者は、第１の対話型オプション欄１１３４で、情報アイコン１１２１、更新アイコン１１２３、アンインストールアイコン１１２４、起動アイコン１１２５の全て又はいずれかを選択することができてもよい。他の例では、第２の対話型オプション欄１１３６は、ＶＭＡ＿Ｂ１１０６に関連付けられてもよい。ＶＭＡ＿Ｂ１１０６は、まだインストールされていないため、操作者は、第２の対話型オプション欄１１３６で、情報アイコン１１２１、インストールアイコン１１２２、の両方又はいずれかのみを選択することができてもよい。また別の例では、第３の対話型オプション欄１１３６は、ＶＭＡ＿C１１０６に関連付けられてもよい。ＶＭＡ＿Ａ１１０４は遠隔サーバを介してのみアクセス可能なため、操作者は、第３の対話型オプション欄１１３６で、情報アイコン１１２１と起動アイコン１１２５の両方又はいずれかのみを選択することができてもよい。
【０１３４】
操作者が対話型オプションのいずれかを選択すると、プロセッサは選択されたオプションに関連する機能を実行することがある。操作者が、戻るオプションを選択すると、プロセッサは一つ前のメインメニュー画面表示９００に戻ってもよい。
【０１３５】
ステップ４０６で、プロセッサは、操作者の選択を検知してもよい。ステップ４１０で、プロセッサは、インストールプロセスが選択されたかを判定してもよい。例えば、操作者がインストールアイコン１１２２を選択した場合、インストール信号（命令）を生成してもよい。プロセッサは、インストール信号（命令）を検知すると、インストールプロセスが選択されたと判定し、ステップ４１２を実行してもよい。ステップ４１２で、プロセッサは図５で詳細に説明されるインストールサブルーチンを実行してもよい。インストールサブルーチンの完了後、プロセッサはステップ４５０を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【０１３６】
インストール信号（命令）が検知されない場合、プロセッサはインストールプロセスが選択されていないと判定し、ステップ４２０を実行してもよい。ステップ４２０で、プロセッサは、更新プロセスが選択されたかを判定してもよい。例えば、操作者が更新アイコン１１２３を選択した場合、更新信号（命令）が生成されてもよい。プロセッサは、更新信号（命令）を検知すると、更新プロセスが選択されたと判定し、ステップ４２２を実行してもよい。ステップ４２２で、プロセッサは図６で詳細に説明される更新サブルーチンを実行してもよい。更新サブルーチンの完了後、プロセッサはステップ４５０を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【０１３７】
更新信号（命令）が検知されない場合、プロセッサは更新プロセスが選択されていないと判定し、ステップ４３０を実行してもよい。ステップ４３０で、プロセッサは、アンインストールプロセスが選択されたかを判定してもよい。例えば、操作者がアンインストールアイコン１１２４を選択した場合、アンインストール信号（命令）が生成されてもよい。プロセッサは、アンインストール信号（命令）を検知すると、アンインストールプロセスが選択されたと判定し、ステップ４３２を実行してもよい。ステップ４３２で、プロセッサは、図７で詳細に説明されるアンインストールサブルーチンを実行してもよい。アンインストールサブルーチンの完了後、プロセッサはステップ４５０を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【０１３８】
アンインストール信号（命令）が検知されない場合、プロセッサはアンインストールプロセスが選択されていないと判定し、ステップ４４０を実行してもよい。ステップ４４０で、プロセッサは、起動（実行）プロセスが選択されたかを判定してもよい。例えば、操作者が起動アイコン１１２５を選択した場合、起動信号（命令）が生成されてもよい。起動信号（命令）を検知すると、プロセッサは起動プロセスが選択されたと判定し、ステップ４２２を実行してもよい。ステップ４２２で、プロセッサは、図８で詳細に説明される起動サブルーチンを実行してもよい。起動サブルーチンの完了後、プロセッサはステップ４５０を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【０１３９】
図４では、判定ステップ４１０、４２０、４３０、及び４４０が特定の順序で実行されているが、判定ステップ４１０、４２０、４３０、及び４４０は、各種代替の実施形態によると、並行して、又は他の順序で実行されてもよい。
【０１４０】
図５は、本発明の実施形態による、インストールサブルーチン５００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、インストールサブルーチン５００は、プロセッサに以下の方法のステップを実行させることがある。
【０１４１】
ステップ５０２で、プロセッサは、ＶＭＡソースからＶＭＡを受信することがある。ＶＭＡソースはＶＭＡ入力サブブロック２０６と、ワイヤレスネットワークの両方又はいずれかを含んでいてもよく、図２に示すワイヤレスネットワーク装置２８０を介してアクセスできてもよい。ステップ５０４で、プロセッサが受信したＶＭＡを検証してもよい。例えば、プロセッサは受信したＶＭＡが認証済み且つ試験済み、又はそのいずれかであるかを確かめることがある。他の例では、プロセッサは、受信したＶＭＡが車両システムの車両操縦コントローラと互換性があることを確保するための互換性テストを行ってもよい。
【０１４２】
ステップ５１２で、プロセッサは、受信したＶＭＡが検証に合格するかを判定してもよい。受信したＶＭＡが検証に失敗する場合、インストールプロセスは終了してもよい。そこで、ステップ５１４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得るインストールエラーメッセージを生成してもよい。ステップ５３６で、プロセッサは、インストールサブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。一方、受信したＶＭＡが検証に合格する場合、インストールプロセスはステップ５２０に進んでもよい。
【０１４３】
ステップ５２０で、プロセッサは、図２に示されるＶＭＡメモリ２７６などのＶＭＡメモリの利用可能なメモリ領域を確認してもよい。ステップ５２２で、プロセッサは、ＶＭＡメモリが検証済みＶＭＡを記憶するのに十分なメモリ領域があるかを判定してもよい。ＶＭＡメモリが十分なメモリ領域を持たない場合、インストールプロセスは終了することがある。このように、ステップ５２４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得るメモリ不足メッセージを生成してもよい。ステップ５３６で、プロセッサは、インストールサブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。一方、ＶＭＡメモリに十分なメモリ領域がある場合、インストールプロセスはステップ５３０に進んでもよい。
【０１４４】
ステップ５３０で、プロセッサは、検証済みＶＭＡをＶＭＡメモリにインストールしてもよい。ステップ５３２で、インストールしたＶＭＡを将来、特定し、検索し、読み出せるように、プロセッサはインストールしたＶＭＡを登録してもよい。ステップ５３４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得るインストール完了メッセージを生成してもよい。ステップ５３６で、プロセッサは、インストールサブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。
【０１４５】
ある実施形態では、プロセッサはインストールステップと登録ステップを行なってもよい。別の実施形態では、プロセッサは、ＶＭＡプロセッサ２７２などの二次プロセッサに、インストールステップと登録ステップを行うよう指示してもよい。従って、インストールステップと登録ステップが完了した際に、プロセッサは二次プロセッサから適宜インストール確認信号を受信してもよい。
【０１４６】
図６は、本発明の実施形態による、更新サブルーチン６００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、更新サブルーチン６００は、プロセッサに以下の方法のステップを実行させてもよい。
【０１４７】
ステップ６０２で、プロセッサは、ＶＭＡソースから修正ＶＭＡを受信することがある。ＶＭＡソースはＶＭＡ入力サブブロック２０６と、図２に示すワイヤレスネットワーク装置２８０を介してアクセスし得るワイヤレスネットワークの両方又はいずれかを含んでいてもよい。修正ＶＭＡは、現在インストールされているＶＭＡを更新又はアップグレードするために使用できるパッチデータでもよい。あるいは、修正ＶＭＡは、現在インストールされているＶＭＡの新しいバージョンでもよい。
【０１４８】
ステップ６０４で、プロセッサは、受信した修正ＶＭＡを検証してもよい。例えば、プロセッサは、受信した修正ＶＭＡが認証済み且つ試験済みか、又はそのいずれかであるかを確かめることがある。他の例では、プロセッサは、受信した修正ＶＭＡが車両システムの車両操縦コントローラと互換性があることを確保する互換性テストを行ってもよい。また他の例では、プロセッサは、ＶＭＡの修正が車両システムの全体的な安定性に与える影響を評価する、システムの安定性テストを行ってもよい。
【０１４９】
ステップ６１２で、プロセッサは、受信した修正ＶＭＡが検証に合格するかを判定してもよい。受信したＶＭＡが検証に失敗した場合、更新プロセスは終了してもよい。そこで、ステップ６１４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得る更新エラーメッセージを生成してもよい。ステップ６３６で、プロセッサは更新サブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。一方、受信した修正ＶＭＡが検証に合格した場合、更新プロセスはステップ６２０に進んでもよい。
【０１５０】
ステップ６２０で、プロセッサは、図２に示されるＶＭＡメモリ２７６などのＶＭＡメモリの、利用可能なメモリ領域を確認してもよい。ステップ６２２で、プロセッサは、ＶＭＡメモリに検証済みの修正ＶＭＡを記憶するのに十分なメモリ領域があるかを判定してもよい。ＶＭＡメモリに十分なメモリ領域がない場合、更新プロセスは終了してもよい。そこで、ステップ６２４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得るメモリ不足メッセージを生成してもよい。ステップ６３６で、プロセッサは、更新サブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。一方、ＶＭＡメモリに十分なメモリ領域がある場合、更新プロセスはステップ６３０に進んでもよい。
【０１５１】
ステップ６３０で、プロセッサは、検証された修正ＶＭＡでターゲットＶＭＡを更新してもよい。ステップ６３２で、更新されたＶＭＡを将来、特定し、検索し、読み出せるように、プロセッサは更新されたＶＭＡを再登録してもよい。ステップ６３４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得る更新完了メッセージを生成してもよい。ステップ６３６で、プロセッサは、更新サブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。
【０１５２】
ある実施形態では、プロセッサは更新ステップと再登録ステップを行ってもよい。別の実施形態では、プロセッサは、ＶＭＡプロセッサ２７２などの二次プロセッサに、更新ステップと再登録ステップを実行するよう指示してもよい。更新ステップと再登録ステップが完了した際に、プロセッサは、二次プロセッサから、適宜、更新確認信号を受信してもよい。
【０１５３】
図７は、本発明の実施形態による、アンインストールサブルーチン７００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、アンインストールサブルーチン７００は、プロセッサに以下の方法のステップを実行させることがある。
【０１５４】
ステップ７０２で、プロセッサは、あるＶＭＡのアンインストールの選択を受信することがある。この選択は、操作者Ｉ／Ｏサブブロック２０２を介して受信され、図１０と図１１に示すアンインストールの対話型オプションを提示してもよい。
【０１５５】
ステップ７０４で、プロセッサは、選択されたＶＭＡのアンインストールがシステム全体の安定性に与える影響を分析してもよい。例えば、プロセッサは、アンインストールが、一つ以上の選択されていないＶＭＡを破壊し得るかを評価してもよい。他の例では、プロセッサは、アンインストールが、一つ以上の既存のＶＭＡの動作を混乱させ得るかを評価してもよい。また他の例では、プロセッサは、アンインストールが、車両システムの一つ以上の機能性を阻害、無効化、又は遅延させ得るかを評価してもよい。
【０１５６】
ステップ７１２で、プロセッサはターゲットＶＭＡのアンインストール後に、システム全体が安定しているかを判定してもよい。プロセッサが、アンインストールがシステム全体を著しく不安定にすると判定した場合、プロセッサはアンインストールプロセスを終了させてもよい。そこで、ステップ７１４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得る、アンインストールエラーメッセージを生成してもよい。ステップ７２６で、プロセッサは、アンインストールサブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。一方、プロセッサが、アンインストールが、システム全体を著しく不安定にしないと判定した場合、アンインストールプロセスはステップ７２０に進んでもよい。
【０１５７】
ステップ７２０で、プロセッサは、図２に示すＶＭＡメモリ２７６などのＶＭＡメモリから、ターゲットＶＭＡを除去してもよい。ステップ７２２で、プロセッサは、除去したＶＭＡの登録を解除してもよい。このようにして、プロセッサは、アンインストールしたＶＭＡによってこれまで占領されていたメモリ領域を再利用、又は、リサイクルしてもよい。ステップ７２４で、プロセッサは、図２に示す操作者Ｉ／Ｏサブブロック２０２を介して操作者に提示し得るアンインストール完了メッセージを生成してもよい。ステップ７２６で、プロセッサは、更新サブルーチンを抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。
【０１５８】
ある実施形態では、プロセッサは除去ステップと登録解除ステップを行ってもよい。別の実施形態では、プロセッサは、ＶＭＡプロセッサ２７２などの二次プロセッサに、除去ステップと登録解除ステップを行うよう指示してもよい。除去ステップと登録解除ステップが完了した際に、プロセッサは、二次プロセッサから、適宜、アンインストール確認信号を受信してもよい。
【０１５９】
図８は、本発明の実施形態による、ＶＭＡ起動サブルーチン８００のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、ＶＭＡ起動サブルーチン８００は、プロセッサに以下の方法のステップを実行させることがある。
【０１６０】
ステップ８０２で、プロセッサは、あるＶＭＡの起動の選択を受信することがある。この選択は、操作者Ｉ／Ｏサブブロック２０２を介して受信され、図１０と図１１に示す起動の対話型オプションを提示してもよい。
【０１６１】
ステップ８０４で、プロセッサは、選択されたＶＭＡを起動することがある。プロセッサは、選択されたＶＭＡを、ＶＭＡメモリからＶＭＡプロセッサ２７２のようなＶＭＡプロセッサにロードしてもよい。ＶＭＡプロセッサは、選択されたＶＭＡの指示コードを実行するのに用いられてもよい。プロセッサは、次に、選択されたＶＭＡを開始するため、車両データロガー２６０から車両データを読み出してもよい。更に、プロセッサは、必要に応じて、選択されたＶＭＡを開始するために、インタフェースメモリ２２５から事前設定された又は事前ロードされたパラメータを読み出してもよい。
【０１６２】
ステップ８０６で、プロセッサは、車両操縦コントローラ２４１などの車両操縦コントローラとＶＭＡプロセッサとの間の接続を構築してもよい。起動されたＶＭＡの要件により、接続は一方向と双方向の両方、又はいずれかであってもよい。接続が構築されると、ＶＭＡプロセッサと、ＶＭＡプロセッサで実行される起動されたＶＭＡは、車両操縦コントローラにアクセスし、制御してもよい。このように、起動されたＶＭＡは、人による介入は少なく、車両の動作を制御してもよい。プロセッサは、周期的に、応答して、反復的に、又はそのいずれかで、自動車の状態、操作、動作、相対位置の全て又はいずれかに関する更新された情報を含み得る車両データロガーから車両データを読み出してもよい。プロセッサは読み出した車両データをＶＭＡプロセッサに送信してもよく、起動されたＶＭＡは、車両操縦コントローラを制御し、車両操縦コントローラと通信する、又はそのいずれかを行う際のフィードバック情報として、この車両データを使用することがある。
【０１６３】
操作者は、起動したＶＭＡをどの時点で休止、優先、又は、終了してもよい。ＶＭＡ起動サブルーチン８００は、起動されたＶＭＡの実行中、プロセッサに、常に、周期的に、又は、反復的に、操作者の入力を検知させてもよい。例えば、ステップ８１２で、プロセッサは、割り込み信号が検知されたかを判定してもよい。概して、割り込み信号は、操作者が生成した命令であってもよく、起動されたＶＭＡを全休止（休止など）又は部分的に休止（優先など）させる要求であってもよい。割込み信号は、操作者Ｉ／Ｏサブブロック２０２がナビゲーションアプリケーションなどの補助アプリケーションからの出力を伝達中に、操作者Ｉ／Ｏサブブロック２０２によって受信されてもよい。
【０１６４】
図１２に例示するように、ナビゲーション出力１２０２と共に、ＶＭＡバー１２０４が、起動されたＶＭＡ画面表示１２００に表示されてもよい。ＶＭＡが完全に起動したら、ＶＭＡバー１２０４は、アクティブ状態アイコン１２１２、全休止アイコン１２１４、部分休止アイコン１２１６、終了アイコン１２１８の全て、又はいずれかを表示してもよい。アクティブ状態アイコン１２１２は、ＶＭＡ＿Ｂが起動され、バックグラウンドで稼動中であることを示してもよい。操作者は、起動されたＶＭＡを完全に休止する全休止アイコン１２１４を選択するか、起動されたＶＭＡを部分的に休止する部分休止アイコン１２１６を選択してもよい。更に、操作者は起動されたＶＭＡを終了する終了アイコン１２１８を選択してもよい。
【０１６５】
全休止アイコン１２１４又は部分休止アイコン１２１６のいずれかが選択される際、操作者Ｉ／Ｏサブブロック２０２によって割込み信号が生成されてもよい。割込み信号には、操作者が選択した休止の種類に関連した情報が埋め込まれていてもよい。あるいは、操作者が、図１に示すハンドル１０２、アクセルペダル１０４、ブレーキペダル１０６、変速装置１０８の全て、又はいずれかなどの車両操縦入力装置の操作を開始したとき、割込み信号が生成されてもよい。操作の時間と頻度によって、割込み信号は、操作者が全休止を選択したか、部分休止を選択したかを示してもよい。
【０１６６】
割込み信号が検知された場合、ＶＭＡ起動サブルーチン８００はステップ８１４に進んでもよい。ステップ８１４で、プロセッサは、起動されたＶＭＡを休止してもよく、ＶＭＡプロセッサと車両操縦コントローラとの間の接続を休止してもよい。プロセッサは、操作者が全休止を選択したか、部分休止を選択したかを判定するために、更に、割込み信号を処理してもよい。
【０１６７】
全休止が選択された場合、プロセッサはＶＭＡからの指示の処理を停止し、ＶＭＡプロセッサと車両操縦コントローラとの間の接続を不可能にしてもよい。ＶＭＡが全休止しているときは、操作者が自動車の動作を制御してもよい。車両データロガーは、物理的構成要素の動作と作動装置の動作に関連した車両データを記録し続けてもよい。
【０１６８】
ある実施形態では、プロセッサは、操作者に、ＶＭＡが起動モードから全休止モードに移行又は移動したと通知してもよい。図１３に例示するように、ナビゲーション出力１２０２と共に、ＶＭＡバー１３０４が、全休止画面表示１３００に表示されてもよい。ＶＭＡが全休止したら、ＶＭＡバー１３０４は、全休止状態アイコン１３１２、復帰アイコン１３１４、及び、終了アイコン１２１８を表示してもよい。操作者が自動車の動作を直接制御できるように、全休止状態アイコン１３１２は、ＶＭＡ＿Ｂが完全に休止していることを示してもよい。操作者は、停止されたＶＭＡを復帰するために復帰アイコン１３１４、又は、停止されたＶＭＡを終了するために終了アイコン１２１８を選択してもよい。
【０１６９】
一方、部分休止が選択された場合、プロセッサは、操作者の入力がＶＭＡの指示を優先するのを許可してもよい。操作者が、１つ以上の車両操縦入力装置を操作する際に、プロセッサは、ＶＭＡプロセッサと車両操縦コントローラとの間の接続を不可能にしてもよい。このようにして、車両操縦コントローラは、ＶＭＡの指示の代わりに、操作者の入力に応答してもよい。車両データロガーは、物理的構成要素の動作と作動装置の動作に関連した車両データを記録し続けてもよい。これに応えて、プロセッサは、車両データロガーからの車両データをＶＭＡプロセッサに送信し続けてもよい。このように、ＶＭＡプロセッサは、部分休止したＶＭＡの指示を処理し続けてもよい。
【０１７０】
操作者が車両操縦入力装置の操作を完了するとすぐに、プロセッサは、ＶＭＡプロセッサに車両操縦コントローラの制御を回復させてもよい。操作者が１つ以上の車両操縦入力装置の操作を再開するまで、車両操縦コントローラは、部分休止したＶＭＡからの指示に応答してもよい。
【０１７１】
ある実施形態では、プロセッサは、操作者に、ＶＭＡが起動モードから部分休止モードに移行した又は移動したと通知してもよい。図１４に例示するように、ナビゲーション出力１２０２と共に、ＶＭＡバー１４０４が、部分休止画面表示１４００に表示されてもよい。ＶＭＡが部分休止したら、ＶＭＡバー１４０４は、部分休止状態アイコン１４１２、全休止アイコン１２１４、復帰アイコン１３１４、及び、終了アイコン１２１８を表示してもよい。自動車の動作制御の際に、操作者が部分休止したＶＭＡと対話ができるように、部分休止ステータスアイコン１４１２は、ＶＭＡ＿Ｂが部分的に休止していることを示してもよい。操作者は、休止したＶＭＡを復帰するために復帰アイコン１３１４、又は、休止したＶＭＡを終了するために終了アイコン１２１８を選択してもよい。
【０１７２】
休止ステップが実行された後、プロセッサは、復帰信号が検知されたかをプロセッサが判定し得るステップ８２２を実行してもよい。操作者が復帰アイコン１３１４を選択した際に、復帰信号が生成されてもよい。復帰信号が検知されない場合、ＶＭＡ起動サブルーチン８００は、ステップ８１４に戻ってもよく、これによって、プロセッサはＶＭＡの休止を継続してもよい。一方、復帰信号が検知されると、ＶＭＡ起動サブルーチン８００はステップ８２４に進んでもよい。ステップ８２４で、プロセッサは休止したＶＭＡを復帰し、ＶＭＡプロセッサと車両操縦コントローラとの間の接続を復帰してもよい。その後、ＶＭＡ起動サブルーチン８００は、ステップ８０４に戻ってもよい。
【０１７３】
ステップ８１２を再度参照して、割込み信号が検知されない場合、ＶＭＡ起動サブルーチン８００はステップ８３２に進んでもよい。ステップ８３２で、プロセッサは、終了信号が検知されたかを判定してもよい。概して、操作者が図１２〜図１４に示される終了アイコン１２１８を選択した際に、終了信号が生成されてもよい。更に、センサが１つ以上の危急イベント（exigent events）を検知した際に、終了信号が生成されてもよい。危急イベントは、物理的構成要素の障害、作動装置の障害、車両操縦コントローラの障害の全て、又はいずれかを含んでもよいが、これらに限られない。更に、危急イベントは、大雪状態、豪雨状態、視界不良状態の全て、又はいずれかなどの外部状態の変化を含んでもよい。ある実施形態では、危急イベントは起動されたＶＭＡによって予め定義されてもよい。別の実施形態では、危急イベントはインタフェースシステムソフトウェア３００によって予め定義されてもよい。また別の実施形態では、危急イベントは操作者によって予め定義されてもよい。
【０１７４】
終了信号が検知されない場合、ＶＭＡ起動サブルーチン８００はステップ８０４に戻り、プロセッサは選択されたＶＭＡを実行し続けてもよい。しかしながら、終了信号が検知された場合、ＶＭＡ起動サブルーチン８００は、ステップ８３４に進んでもよい。
【０１７５】
ステップ８３４で、プロセッサは、起動されたＶＭＡを終了し、ＶＭＡプロセッサと車両操縦コントローラとの間の接続を終了してもよい。プロセッサは、終了したＶＭＡのすでに実行された指示を記憶するため、ＶＭＡ実行レコードを作成してもよい。ＶＭＡ実行レコードはインタフェースメモリに記憶され、ＶＭＡの動作や運転事象（driving incidents）の１つ以上の原因の両方、又はいずれかの分析のために読み出されてもよい。１つ以上の運転事象は、脱線事象、スピード違反事象、前面衝突事象、追突事象、トラクション喪失事象、物理的構成要素の機能不全、作動装置の機能不全、車両操縦コントローラの機能不全の全て、又はいずれかを含んでいてもよいが、これらに限られない。
【０１７６】
ステップ８３６で、プロセッサは、車両データとＶＭＡ実行レコードに基づいてシステムの診断を行ってもよい。プロセッサは、ＶＭＡ実行レコードのすでに実行された指示と、車両データとを照合し、同調させる、又はそのいずれかを行ってもよい。プロセッサは、適宜、１つ以上の運転事象を特定してもよい。プロセッサは、車両データの個別分析、ＶＭＡ実行レコードと組み合わせた分析の両方、又はいずれかによって、特定した運転事象の１つ以上の原因を更に判断してもよい。加えて、プロセッサは、分析した結果を１つ以上の遠隔ネットワークを介して、各種代行機関に提出してもよい。各種代行機関は、それに応え、ＶＭＡの品質を向上させるために分析された結果を使用してもよい。
【０１７７】
本発明の別の実施形態によると、プロセッサはＶＭＡの実行と同時に診断ステップを実行してもよい。プロセッサは、起動されたＶＭＡのリアルタイムの動作と一緒に、物理的構成要素と作動装置のリアルタイムの状態を分析してもよい。プロセッサは、遠隔ネットワークを介して、リアルタイムの分析をエージェントに提出してもよい。リアルタイムの分析に基づいて、エージェントは、すぐに発生しそうな運転事象を予測してもよい。このように、エージェントは、操作者に警告メッセージを送り、起動したＶＭＡを優先することで、又はそのいずれかによって、すぐに発生しそうな運転事象を回避する手助けをしてもよい。
【０１７８】
ステップ８３６の後、ＶＭＡ起動サブルーチン８００は完了してもよい。ステップ８３８で、プロセッサは、ＶＭＡ起動サブルーチン８００を抜け出て、ＶＭＡ装置サブルーチン４００に戻ってもよい。
【０１７９】
ある実施形態では、プロセッサは起動ステップ、休止ステップ、復帰ステップ、終了ステップ、及び、診断ステップを実行してもよい。別の実施形態では、プロセッサは、ＶＭＡプロセッサ２７２などの二次プロセッサに、起動、休止、復帰、そして終了ステップの実行を指示し、診断プロセッサ２３０などの三次プロセッサに診断ステップの実行を指示してもよい。従って、起動ステップ、休止ステップ、復帰ステップ、終了ステップ、診断ステップの全て、又はいずれかが完了すると、プロセッサは、二次及び三次プロセッサから各種確認信号を受信してもよい。
【０１８０】
再度図２を参照して、本発明の各種実施形態によると、ＶＭＡインタフェース２１０は、ＶＭＡ装置２７０へのアクセスを制限し、制御する、又はそのいずれかを行うために、１つ以上のロックモード含んでいてもよい。ロックモードの実行中、ＶＭＡインタフェース２１０は、権限のない操作者がいずれかのＶＭＡをインストール、修正、アンインストールの全て、又はいずれかを行うのを防いでもよい。加えて、ＶＭＡインタフェース２１０は、権限のある操作者が有効化、無効化、起動、優先、終了の全て、又はいずれかをなし得るＶＭＡの量あるいは種類を制限してもよい。
【０１８１】
例えば、ＶＭＡインタフェース２１０は、操作者Ａに新しいＶＭＡのインストールのみを許可し、操作者ＡにインストールされたＶＭＡの更新又はアンインストールを許可しないことがある。別の例では、ＶＭＡインタフェース２１０は、操作者Ｂに第１のＶＭＡ（車線変更補助アプリケーションなど）には完全なアクセスを許すが、操作者Ｂが第２のＶＭＡ（衝突回避アプリケーションなど）を終了する権限は与えないことがある。また別の例では、ＶＭＡインタフェース２１０は、操作者Ｃに第１グループのＶＭＡのみ（補助指向のＶＭＡなど）の起動、終了の両方、又はいずれかを許可し、操作者Ｄに第２グループのＶＭＡのみ（安全性指向のＶＭＡなど）の起動、終了の両方、又はいずれかを許可してもよい。
【０１８２】
ＶＭＡ装置２７０へのアクセスを制御し、制限する、又はそのいずれかを行う能力は、自動車が複数の操作者によって操作され得る状況で有益なことがある。ある実施形態では、ＶＭＡインタフェース２１０は、各操作者によってなされた変更を記録し続けてもよい。これら変更は、ＶＭＡ装置２７０の内容と設定に影響を与えることがある。記録は、ローカルでインタフェースメモリ２２５に記憶されても、遠隔で、ネットワーク上の記憶媒体に記憶されてもよい。記憶されたレコードは、各操作者の運転習慣、起動されたＶＭＡの動作、自動車の各種物理的構成要素の動作、の全て又はいずれかを分析するのに役立つかもしれない。診断プロセッサ２３０は、各操作者の運転イベントの配列を再現するために記録を使用してもよい。運転イベントの配列は、操作者の入力と、自動車の物理的構成要素によって伝えられた実際の出力とを関連付けたものでもよい。診断プロセッサ２３０は、各操作者の技術レベルを判断し、インストールされたＶＭＡに関連する潜在的課題を特定する、又はそのいずれかを行うために、運転イベントの配列を使用してもよい。
【０１８３】
加えて、ロックモードによって、自動車の一次操作者は、１つ以上のグループの二次操作者の運転行動を監視し、制御する、又はそのいずれかを行ってもよい。状況によっては、一次操作者は、自動車の所有者兼管理者、又はそのいずれかで、二次操作者は、１つ以上のグループの賃借人兼運転者、又はそのいずれかかもしれない。一次操作者は、二次操作者の好みを無視した幾つかのＶＭＡを強制的に有効化するために、ロックモードを使用してもよい。例えば、一次操作者は、衝突回避アプリケーションを強制的に有効にし、二次操作者が衝突回避アプリケーションの補助付きで車両を操作できるようにしてもよい。
【０１８４】
強制的に有効にされたＶＭＡのおかげで、自動車の安全性能が向上し、一方で、自動車を損傷させるリスク又は二次操作者に怪我をさせるリスクが低減するかもしれない。この特徴はレンタカー産業にとって、特に有益かもしれない。レンタカー会社は、主として、レンタカーを様々な技術レベルの顧客に提供することがある。運転技術又は安全性意識の低い顧客は、レンタカーに損傷を追わせる可能性が高い。しかしながら、特定の顧客が優良運転者か否かを見極めるのは難しいことがある。
【０１８５】
レンタカーはレンタカー会社にとって主要な資産であり得るため、顧客に確実に安全で慎重な方法でレンタカーを操作してもらうことで、レンタカー会社はレンタカーを無傷な状態で保ちたいかもしれない。この目的を達成するために、レンタカー会社は、顧客に、車線変更補助アプリケーション及び衝突回避アプリケーションなどの、幾つかの安全性指向のＶＭＡを使用するよう要求してもよい。あるいは、レンタカー会社は、顧客が自らを優良運転者と証明できる場合、又は、顧客が自動車に潜在的な損傷を与えるリスクをカバーする料金を支払う意思がある場合は、そのような要求を放棄してもよい。
【０１８６】
ロックモードは、他のエンティティにも同様に有益なことがある。例えば、親がロックモードを用いて、子の運転者用に幾つかの安全性指向のＶＭＡを強制的に有効にしてもよい。別の例では、バス会社やトラック会社などの運輸会社が、従業員の運転者用に、幾つかの補助指向のＶＭＡを強制的に有効にするためにロックモードを使用してもよい。
【０１８７】
ロックモードを開始するために、インタフェースプロセッサ２２０が操作者の真正性を検証してもよい。ＶＭＡロックモード１５００の画面表示を示す図１５を参照すると、インタフェースプロセッサ２２０は、セキュリティロックコード１５１０を受け付けて、処理することで、各操作者を特定してもよい。セキュリティロックコード１５１０は、関係付けられた操作者の識別、及び、関係付けられた操作者が持ち得るアクセスレベルに関する情報と共に、暗号化されていてもよい。例えば、セキュリティロックコード１５１０は、第１コードセグメント１５１２と第２コードセグメント１５１４を持つことがある。第１コードセグメント１５１２は、操作者の識別を暗号化するのに用いられ、第２コードセグメント１５１４は操作者が持ち得るアクセスレベルの暗号化に用いられてもよい。
【０１８８】
セキュリティロックコード１５１０のセキュリティ機能を向上させるため、第１コードセグメント１５１２と第２コードセグメント１５１４の両方、又はいずれかを、常に、繰り返し、周期的に、反復的に、応答して、又はそのいずれかで、遠隔サーバから更新してもよい。更新された第１コードセグメント１５１２は、遠隔アクセスキーフォブ、携帯情報端末装置、携帯電話の全て、又はいずれかなどの個人通信装置を介して、関係付けられた操作者に送信されてもよい。
【０１８９】
第１コードセグメント１５１２と第２コードセグメント１５１４は互いに依存していてもよい。つまり、第１コードセグメント１５１２のコードシーケンスは、第２コードセグメント１５１４を復号する１つ以上のキーを含んでいてもよい。同様に、第２コードセグメント１５１４のコードシーケンスは、第１コードセグメント１５１２を復号する１つ以上のキーを含んでいてもよい。あるいは、第１コードセグメント１５１２と第２コードセグメント１５１４がそれぞれ独立して復号されるように、第１コードセグメント１５１２は第２コードセグメント１５１４から独立していてもよい。別の実施形態では、第１コードセグメント１５１２と第２コードセグメント１５１４は、一つのコードセグメントを形成するように、入り組み、組み合わせ、混ぜ合わされる、又はそのいずれかがなされてもよい。また別の実施形態では、第１コードセグメント１５１２と第２コードセグメント１５１４は、権限のある操作者に予め付与されてもよく、権限のある操作者によってのみ修正できる。
【０１９０】
代替ＶＭＡロックモード１６００の画面表示を示す図１６を参照すると、インタフェースプロセッサ２２０が、パスワード１６１４と併せてユーザ識別文字列１６１２を受け付けて、処理することで各操作者を識別してもよい。ユーザ識別文字列１６１２は、特定の操作者に特有であってもよく、パスワード１６１４は特定の識別文字列１６１２に特有であってもよい。識別文字列１６１２は、インタフェースプロセッサ２２０、ローカルの管理者、遠隔の管理者の全て、又はいずれかによって操作者に予め付与されていてもよい。パスワード１６１４は、識別文字列１６１２の認証に用いられてもよい。パスワード１６１４は、遠隔のサーバによって更新され、反復して、周期的に、応答して、又はそのいずれかで操作者に伝達されてもよい。あるいは、パスワード１６１４は、操作者によって修正されてもよい。
【０１９１】
インタフェースプロセッサ２２０は、インタフェースメモリ２２５又は遠隔サーバに記憶され得る１つ以上のレコードを検索して、パスワード１６１４が有効かを判断してもよい。パスワードが有効な場合、インタフェースプロセッサ２２０は有効な操作者に与えられたアクセスレベルを決定してもよい。インタフェースプロセッサ２２０は有効な操作者のアクセスレベルの範囲で、変更を受け入れてもよい。インタフェースプロセッサ２２０は、有効な操作者のアクセスレベルの範囲外の変更は拒絶してもよい。
【０１９２】
ＶＭＡロックモード１５００と代替ＶＭＡロックモード１６００の両方において、インタフェースプロセッサ２２０は、ＶＭＡインタフェースがロックされた日時を記録し続けてもよい。例えば、ＶＭＡロックモード１５００は、セキュリティロックコード日付１５２０とセキュリティロックコード時間１５３０を記録し続けてもよい。別の例では、代替ロックモード１６００は、パスワード確認日１６２０とパスワード確認時間１６３０を記録し続けてもよい。診断プロセッサ２３０は、日時データを、各種有効化されたＶＭＡと共に各種操作者の行動のタイムスタンプとして用いてもよい。そして、診断プロセッサ２３０は、タイムスタンプされた行動に基づいて、運転イベントを時間順に配列してもよい。
【０１９３】
次に、インテリジェントナビゲーションシステムと車両制御システム２００の一体化について解説する。図１７は、本発明の実施形態による、インテリジェントナビゲーションシステム１７００のブロック図を示す。インテリジェントナビゲーションシステム１７００は、車両制御システム２００、衛星１７１０、及び、コンピュータサーバ１７２２を組み入れてもよい。車両制御システム２００のＶＭＡセンサ２７４には、測位装置２７７と、操縦性センサ２７８が含まれていてもよい。測位装置２７７は、主として、図１Ａで説明した測位機能ブロックの役割を担っていてもよい。測位装置２７７は、衛星１７１０から、衛星信号１７０２を受信してもよい。衛星信号１７０２に基づいて、測位装置２７７は、自動車の位置を決定してもよい（初期位置、移動中の位置など）。
【０１９４】
測位装置２７７は、任意で、図１Ａで説明した経路指定機能ブロックの役割も担っていてもよい。これによって、測位装置２７７は、ワイヤレスネットワーク装置２８０及びクラウドネットワーク１７２０などのワイヤレスネットワークを介して、コンピュータデータベース１７２４に記憶され、更新される道路状況情報を受信してもよい。測位装置２７７は、自動車を初期位置から目的地までナビゲートするための経路を計算するのに、受信した道路状況情報を使用してもよい。更に、位置装置２７７は、１つ以上の検知した外部操縦状態１７０１又は内部操縦状態を用いて、計算した経路を更新してもよい。
【０１９５】
外部操縦状態１７０１は、自動車１００の周囲状態に関連していてもよく、操縦性センサ２７８によって検知できる。内部操縦状態は、自動車１００の操作状態に関連していてもよく、車両操縦コントローラ２４１によって操縦できる。本明細書において、明細書での制限においては、自動車の外部操縦性状態１７０７は、自動車１００と周辺物体との間の相対距離、自動車１００と周辺物体との間の相対速度、交通信号灯の出力状態、車線境界の全て、又はいずれかを含むことがあり、内部操縦性状態は、自動車１００の燃料レベル、自動車１００の速度、自動車１００の馬力、自動車１００のベアリング、自動車１００のブレーキ状態の全て、又はいずれかを含むことがある。
【０１９６】
あるいは、経路指定機能は、インテリジェントナビゲーションアプリケーション（インテリジェントナビゲーションシステム１７００のアルゴリズムコードなど）によって一体的に実行されてもよい。概して、インテリジェントナビゲーションアプリケーションは、図１Ａで説明されたナビゲーションタスク機能ブロックの機能内容を実施してもよい。特に、インテリジェントナビゲーションアプリケーションは、車両操縦アプリケーション（ＶＭＡ）の一種でもよい。このように、インテリジェントナビゲーションアプリケーションは、ＶＭＡインタフェース２１０によってインストール及び修正されることが可能で、ＶＭＡインタフェース２１０によって構築された接続を介して、車両操縦コントローラ２４１を制御し、車両操縦コントローラ２４１に命令することができる。
【０１９７】
インテリジェントナビゲーションアプリケーションは、ＶＭＡプロセッサ２７２によってアクセスされ得るＶＭＡメモリ２７６にインストールされてもよい。インテリジェントナビゲーションアプリケーションの実行に用いられる場合、ＶＭＡプロセッサ２７２は、ナビゲーションプロセッサと呼ばれることがある。あるいは、インテリジェントナビゲーションアプリケーションは、コンピュータサーバ１７２２によってアクセスされ得る遠隔のコンピュータデータベース１７２４に記憶されてもよい。インテリジェントナビゲーションアプリケーションの実行に使用される場合、コンピュータサーバ１７２２もまた、ナビゲーションプロセッサと呼ばれることがある。システムの構成によっては、インテリジェントナビゲーションアプリケーションは、ＶＭＡプロセッサ２７２が優位で実行されたり、コンピュータサーバ１７２２が優位で実行されたり、又は、ＶＭＡプロセッサ２７２とコンピュータサーバ１７２２によって共同で実行されることが可能である。
【０１９８】
第１の構成では、ＶＭＡプロセッサ２７２がマスタデバイスとして稼動し、コンピュータサーバ１７２２がスレーブデバイスとして稼動してもよい。このような構成では、ＶＭＡプロセッサ２７２が、インテリジェントナビゲーションアプリケーションの主要部分を実行する役割を担うことがある。ＶＭＡプロセッサ２７２は、インタフェースプロセッサ２２０に操縦性機能を出力してもよい。インタフェースプロセッサ２２０は、これに応答して、車線追跡ＶＭＡ、車線変更補助ＶＭＡ、衝突回避ＶＭＡ、又は、自動駐車ＶＭＡなどの、１つ以上のサブタスクＶＭＡを呼び出してもよい。加えて、インタフェースプロセッサ２２０は、操縦性機能のそれぞれを車両操縦コントローラ２４１によって実施可能な指示に直接コンパイルしてもよい。ＶＭＡプロセッサ２７２の計算機能を促進するために、コンピュータサーバ１７２２は、コンピュータデータベース１７２４に記憶された道路状況情報を分析し、分析した情報をＶＭＡプロセッサ２７２に提供してもよい。
【０１９９】
第２の構成では、コンピュータサーバ１７２２がマスタデバイスとして稼動し、ＶＭＡプロセッサ２７２がスレーブデバイスとして稼動してもよい。このような構成では、コンピュータサーバ１７２２がインテリジェントナビゲーションアプリケーションの主要な部分を実行する役割を担ってもよい。コンピュータサーバ１７２２は、インタフェースプロセッサ２２０に操縦性機能を出力してもよい。インタフェースプロセッサ２２０は、これに応答して、車線追跡ＶＭＡ、車線変更補助ＶＭＡ、衝突回避ＶＭＡ、又は自動駐車ＶＭＡなどの、１つ以上のサブタスクＶＭＡを呼び出してもよい。加えて、インタフェースプロセッサ２２０は、操縦性機能のそれぞれを車両操縦コントローラ２４１によって実施可能な指示に直接コンパイルしてもよい。コンピュータサーバ１７２２の計算機能を促進するために、ＶＭＡプロセッサ２７２は操縦性状態を分析し、分析した情報をコンピュータサーバ１７２２に提供してもよい。
【０２００】
第３の構成では、コンピュータサーバ１７２２とＶＭＡプロセッサ２７２は、それぞれ、ピアデバイスとして稼動してもよい。コンピュータサーバ１７２２は、道路状況に依存するインテリジェントナビゲーションアプリケーションの一部分を実行する役割を担ってもよい。ＶＭＡプロセッサ２７２は、操縦性状態に依存するインテリジェントナビゲーションアプリケーションの一部分を実行する役割を担ってもよい。このような構成では、ＶＭＡプロセッサ２７２とコンピュータサーバ１７２２は、同時に変化する道路状況と操縦性状態に対処する全体的な応答時間を減少させるため、並行してデータを処理してもよい。コンピュータサーバ１７２２及びＶＭＡプロセッサ２７２は、１つ以上の予め定義された制約事項に基づいて、これらの出力を比較し、一組の操縦性機能を選択してもよい。選択された操縦性機能は、インタフェースプロセッサ２２０に送信されてもよい。インタフェースプロセッサ２２０は、これに応答して、車線追跡ＶＭＡ、車線変更補助ＶＭＡ、衝突回避ＶＭＡ、又は、自動駐車ＶＭＡなどの、１つ以上のサブタスクＶＭＡを呼び出してもよい。加えて、インタフェースプロセッサ２２０は、操縦性機能のそれぞれを、車両操縦コントローラ２４１によって実施可能な指示に直接コンパイルしてもよい。
【０２０１】
ＶＭＡプロセッサ２７２とコンピュータサーバ１７２２は協力して稼動することもあるが、ＶＭＡプロセッサ２７２とコンピュータサーバ１７２２は、それぞれ独立して稼動してもよい。第１の代替構成では、ＶＭＡプロセッサ２７２はインテリジェントナビゲーションアプリケーションの全部分を実行する役割を担い、コンピュータサーバ１７２２は道路状況情報をコンピュータデータベース１７２４から読み出すダミー端末として機能してもよい。第２の代替構成では、コンピュータサーバ２７２はインテリジェントナビゲーションアプリケーションの全部分を実行する役割を担い、ＶＭＡプロセッサ２７２は操縦性状態情報を操縦性センサ２７８から伝達するダミー端末として機能してもよい。
【０２０２】
図１８は、本発明の実施形態による、インテリジェントナビゲーションアプリケーション１８００のアルゴリズムのフローチャートを示す。ナビゲーションプロセッサによって実行された場合、インテリジェントナビゲーションアプリケーション１８００は、ナビゲーションプロセッサに以下の方法のステップを実行させてもよい。
【０２０３】
ステップ１８０２では、インテリジェントナビゲーションアプリケーションが起動されてもよい。構成により、インテリジェントナビゲーションアプリケーション１８００は、ＶＭＡプロセッサ２７２、あるいは、コンピュータサーバ２７２２によって起動されてもよい。ステップ１８０４で、ＶＭＡプロセッサ２７２とコンピュータサーバ１７２２の両方又はいずれかでもよいナビゲーションプロセッサと、車両操縦コントローラ２４１との間に接続を構築してもよい。このような接続は、ＶＭＡインタフェース２１０によって提供されたプラットフォームを介して構築できる。結果、起動されたインテリジェントナビゲーションアプリケーション１８００は、車両操縦コントローラ２４１を介して自動車１００の動作を制御してもよい。
【０２０４】
ステップ１８０６では、１つ以上のユーザ定義の目的地が、ユーザＩ／Ｏサブブロック２０２を介して受信されてもよい。ステップ１８０８では、受信された目的地に対するユーザ定義の優先順位もまた受信されてもよい。ユーザ定義の優先順位は、ユーザが到着したい目的地の順位を明確にすることがある。
【０２０５】
ステップ１８１０で、自動車１００の初期位置は、測位装置２７７などの測位装置によって生成された出力信号に基づいて決定されてもよい。ステップ１８１２では、自動車１００を、ユーザ定義の優先順位に従って、初期位置からユーザ定義の目的地まで案内するための経路が計算されてもよい。計算された経路は、図１Ａで説明した道路状況と操縦性状態の両方又はいずれかを含み得る、予め定義された一組のパラメータに基づいて更新されてもよい。経路計算と経路更新が予測的で能動的に実行されるので、変化し続ける運転状態に、より的確に対応できることがある。
【０２０６】
ステップ１８１４では、計算された経路に基づいて１つ以上のナビゲーションタスクを決定することができる。図１９は、本発明の実施形態による、ナビゲーションタスク決定サブルーチン１９００のアルゴリズムのフローチャートを示す。
【０２０７】
ステップ１９０２で、計算された経路中に、１つ以上の経路指定位置が定義されてもよい。経路指定位置の定義は、測位装置２７７によって個別に、あるいは、測位装置２７７とナビゲーションプロセッサによって共同してなされてもよい。
【０２０８】
ステップ１９０４で、２つ以上の経路指定位置の間の交通状況が分析されてもよい。ステップ１９０６で、２つ以上の経路指定位置の間の地形状態が分析されてもよい。ナビゲーションプロセッサは、コンピュータデータベース１７２４などの遠隔のデータベースから交通状況と地形状態を読み出してもよい。ナビゲーションプロセッサは、図１Ａで説明したナビゲーションタスク機能ブロックと同様の方法で、交通状況と地形状態の分析を行ってもよい。
【０２０９】
ステップ１９０８では、１つ以上の操縦性機能が、２つの経路指定位置の間で決定されてもよい。操縦性機能は、インテリジェントナビゲーションアプリケーション１８００の中で定義されてもよい。加えて、操縦性機能は、１つ以上の他の予めインストールされたＶＭＡの呼び出しを伴ってもよい。対応する交通状況と対応する地形状態に基づいて、操縦性機能を選択、付与してもよい。
【０２１０】
再度図１８を参照すると、インテリジェントナビゲーションアプリケーション１８００は、１つ以上のナビゲーションタスクが決定された後でステップ１８１６に進んでもよい。ステップ１８１６では、現在のナビゲーションタスクが実行されてもよい。図２０は、本発明の実施形態による、ナビゲーションタスク実行サブルーチン２０００のアルゴリズムのフローチャートを示す。
【０２１１】
ステップ２００２では、現在のナビゲーションタスクが読み出されてもよい。特に、ナビゲーションプロセッサは、ＶＭＡメモリ２７６とコンピュータデータベース１７２４の両方又はいずれかから、操縦性機能を読み出してもよい。ナビゲーションプロセッサは、読み出した操縦性機能をインタフェースプロセッサ２２０に送信してもよい。これに応答して、インタフェースプロセッサ２２０は、操縦性機能を実行するために、操縦性機能をコンパイルするか、他のＶＭＡを呼び出してもよい。読出しステップは、ナビゲーションタスク決定サブルーチン１９００と同時に行われてもよい。あるいは、ナビゲーションタスク決定サブルーチン１９００の後、読出しステップが行われてもよい。
【０２１２】
ステップ２００４では、車両操縦コントローラ２４１がナビゲーションタスクの実行を指示されてもよい。この時点で、ナビゲーションタスクと、関連付けられた操縦性機能とが作動される。コンパイルされた操縦性機能に従って、自動車１００は動作する。作動ステップは、ナビゲーションタスク決定サブルーチン１９００と同時に行われてもよい。あるいは、ナビゲーションタスク決定サブルーチン１９００の後、読出しステップが行われてもよい。アプリケーションによって動かされた車両制御は、人の操作者によって停止、休止、復帰、優先の全て、又はいずれかができる。作動されたナビゲーションタスクが停止、休止、優先の全て又はそのいずれかがなされた場合、インタフェースプロセッサ２２０は車両操縦コントローラ２４１から解放されてもよい。しかしながら、ナビゲーションプロセッサは背景で稼動し続け、インタフェースプロセッサ２２０は新しく読み出された操縦性機能を継続的にコンパイルしてもよい。
【０２１３】
ステップ２００６では、１つ以上の操縦性状態が検知されてもよい。操縦性状態は、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車のベアリング、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、又は、車線境界の少なくとも一つを含む。応答時間を改善するため、検知ステップはステップ２００４と同時に実行されてもよい。
【０２１４】
ステップ２００８では、現在のナビゲーションタスクが、検知した操縦性状態で継続できるかに関する判定が行われてもよい。ナビゲーションプロセッサは、検知された操縦性状態における、現在のナビゲーションタスク又はそれぞれの操縦性機能を遂行した場合の安全率を決定してもよい。そして、ナビゲーションプロセッサは、安全率を予め定義した閾値と比較してもよい。
【０２１５】
安全率が、予め定義した閾値を下回る場合、ナビゲーションプロセッサは現在のナビゲーションタスクが継続できないと判断し、サブルーチン２０００はステップ２０１４に進んでもよい。ステップ２０１４では、現在検知されている操縦性状態で、ある代替ナビゲーションタスクが安全率を向上させると判断されるかもしれない。ステップ２０１６では、代替ナビゲーションタスクが現在のナビゲーションタスクに割り当てられてもよい。サブルーチン２０００は、ステップ２１０２に戻ってもよい。その結果、車両操縦コントローラ２４１は、代替ナビゲーションタスクを作動できる。
【０２１６】
一方で、安全率が予め定義された閾値かそれを上回る場合、ナビゲーションプロセッサは現在のナビゲーションタスクが十分安全に継続されると判断してもよい。結果として、サブルーチン２０００は、ステップ２０１０に進んでもよい。ステップ２０１０では、現在のナビゲーションタスクが完了したかの判定が行われてもよい。現在のナビゲーションタスクが完了していない場合、つまり、１つ以上の操縦性機能がまだ未作動の場合、サブルーチン２０００はステップ２００４に戻ってもよい。そうでない場合は、サブルーチン２０００は、ステップ２０１２に進んでもよい。
【０２１７】
ステップ２０１２では、完了したナビゲーションタスクが記録されてもよく、現在のナビゲーションタスクを終了できる。サブルーチン２０００は、完了したナビゲーションタスクの実施詳細を時間順に並べ、時間順の詳細をインタフェースメモリ２２５に記憶するよう、診断プロセッサ２３０に指示してもよい。完了したナビゲーションタスクの実施詳細は、実行した操縦性機能、操縦性機能のコンパイルされたバージョン、実行した各操縦性機能と関係付けられた検知された操縦性状態、実行した各操縦性機能と関係付けられた安全率の範囲、割り当てられた代替ナビゲーションタスクの数、の全て又はいずれかを含んでもよいが、これらに限られない。現在のナビゲーションタスクが終了した後、サブルーチン２０００はインテリジェントナビゲーションアプリケーション１８００に戻ってもよい。
【０２１８】
再度図１８を参照すると、現在のナビゲーションタスクの実行後、インテリジェントナビゲーションアプリケーション１８００はステップ１８１８に進んでもよい。ステップ１８１８では、自動車１００の移動中の位置が衛星１７１０と測位装置２７７によって検知されてもよい。
【０２１９】
ステップ１８２０では、移動中の位置が、計算された経路の中にあるかについて判定してもよい。ナビゲーションプロセッサは、移動中の位置と計算された経路との間の相関を計算してもよい。相関が予め定義した閾値を下回る場合、インテリジェントナビゲーションアプリケーション１８００はステップ１８１２に戻り、更新された経路が計算されてもよい。そうでなければ、インテリジェントナビゲーションアプリケーション１８００はステップ１８２２に進んでもよい。
【０２２０】
ステップ１８２２では、次の未作動ナビゲーションタスクが現在のナビゲーションタスクに割り当てられるように、現在のナビゲーションタスクが更新されてもよい。次に作動するナビゲーションタスクが一つもない場合は、このステップはスキップできる。
【０２２１】
ステップ１８２４では、全てのユーザ定義の目的地に到達したかの判定がなされてもよい。未到達の目的地がある場合、インテリジェントナビゲーションアプリケーション１８００は、ステップ１８１６に戻り、現在のナビゲーションタスクが実行されてもよい。未到達の目的地がない場合は、インテリジェントナビゲーションアプリケーション１８００は、ステップ１８２６に進み、インテリジェントナビゲーションアプリケーション１８００が終了してもよい。
【０２２２】
本発明の好ましい実施形態を、例証として開示した。本明細書全体を通して採用された用語は、適宜、制限しない意味合いで読まれるべきである。当業者には、本明細書の内容の些細な修正が着想されるであろうが、本明細書で保証される本発明の範囲の境界線は、本明細書が貢献する技術分野の進歩の範囲内に合理的にある実施形態の全てを意図し、添付の特許請求の範囲とその同等発明の観点を除き、その範囲は制限されるべきではない。
【図１Ａ】
2015509195.tif 000003
【図１Ｂ】
2015509195.tif 000004
【図２】
2015509195.tif 000005
【図３】
2015509195.tif 000006
【図４】
2015509195.tif 000007
【図５】
2015509195.tif 000008
【図６】
2015509195.tif 000009
【図７】
2015509195.tif 000010
【図８】
2015509195.tif 000011
【図９】
2015509195.tif 000012
【図１０】
2015509195.tif 000013
【図１１】
2015509195.tif 000014
【図１２】
2015509195.tif 000015
【図１３】
2015509195.tif 000016
【図１４】
2015509195.tif 000017
【図１５】
2015509195.tif 000018
【図１６】
2015509195.tif 000019
【図１７】
2015509195.tif 000020
【図１８】
2015509195.tif 000021
【図１９】
2015509195.tif 000022
【図２０】
2015509195.tif 000023
【国際調査報告】
2015509195.tif 000024
2015509195.tif 000025
2015509195.tif 000026