(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサが、前記自動車内に配置され、且つ、前記測位装置及び前記車両操縦コントローラと接続された請求項1に記載のインテリジェントナビゲーションシステム。
前記プロセッサが、前記自動車の外側に配置され、且つ、ワイヤレス通信接続を介して前記測位装置と前記車両操縦コントローラと通信する請求項1に記載のインテリジェントナビゲーションシステム。
前記道路状況が、前記連続する一対の経路指定位置間の交通状況、又は、前記連続する一対の経路指定位置間の地形状態の、少なくとも一方を含む請求項10に記載の方法。
プロセッサによって実行されたとき、自動車をナビゲートし且つ操作するための方法を前記プロセッサに実行させる指示を記憶する非一時的記憶媒体であって、前記方法が、
前記自動車が到達する目的地を決定するステップと、
前記自動車の初期位置を決定するステップと、
前記自動車を前記初期位置から前記目的地へとナビゲートするための経路を計算するステップと、
前記自動車の少なくとも一つの操縦性状態を検知するステップと、
前記自動車を制御するためのソフトウェア指示を有する車両操縦アプリケーションを記憶するステップと、
前記自動車の作動装置を制御するステップと、
計算された前記経路に基づいて、前記自動車を操縦するためのタスクを決定するステップと、
前記タスクが実行されるように、決定された前記タスクと前記少なくとも一つの操縦性状態とに基づいて前記車両操縦アプリケーションのソフトウェア指示を実行して前記自動車を制御するステップと、
前記自動車又は前記自動車の作動装置の物理的状態に関連付けられた車両データを収集するステップと、
実行された前記ソフトウェア指示と収集された前記車両データとに基づいて、前記車両操縦アプリケーションの作動の機能正常又は機能不全を自動的に分析するステップと、を含む非一時的記憶媒体。
前記操縦性機能が、前記連続する一対の経路指定位置間の交通状況、又は、前記連続する一対の経路指定位置間の地形状態の、少なくとも一方を含む道路状況に基づく請求項16に記載の非一時的記憶媒体。
【発明を実施するための形態】
【0013】
本発明の様々な特徴の実施形態を実行する機械、システム、方法を、図面を参照して以下に説明する。図面、及び関連する説明は、本発明の実施形態の幾つかを示すために提供されるが、本発明の範囲を制限するものではない。図面中で、参照番号は参照要素間の対応関係を示すために繰り返し使用される。更にそれぞれの参照符号の1桁目は、その要素が最初に示される図を示す。
【0014】
図1Aは、本発明の実施形態による、インテリジェントナビゲーションシステムが実行され得る市街区101の上面図を示す。インテリジェントナビゲーションシステムは、高い位置の観点から自動車を初期位置から特定の目的地まで案内するため、自動車をナビゲートし且つ操作することができる。インテリジェントナビゲーションシステムは、人による介入がほとんどなく操作できるように高度に自動化され得る。更に、インテリジェントナビゲーションシステムは、ラッシュアワーの間、交通を制御するために使用できるように、1以上の自動車の操作を調整してもよい。
【0015】
概して、インテリジェントナビゲーションシステムは、測位機能ブロック、経路指定機能ブロック、ナビゲーションタスク機能ブロック、及び、監視機能ブロックなど、幾つかの機能ブロックを有してもよい。測位機能ブロックは、第1の自動車142、第2の自動車144、及び/又は、第3の自動車146といった、1つ以上の自動車の現在の位置を追跡する役割を担ってもよい。測位機能ブロックは、従来の全地球測位システム(GPS)で実現され得る。概して、従来のGPSは、衛星170、及び、追跡された各自動車に搭載された測位装置を含み得る。衛星170は、追跡された自動車の全地球的位置を探知し、追跡された各自動車に第1の衛星リンク172を介して測位信号を送ってもよい。
【0016】
経路指定機能ブロックは、追跡された自動車の初期位置及びユーザが定義した目的位置に基づいて、追跡された自動車のために1つ以上の経路を決定し、計算してもよい。
図1Aに示すように、例えば、経路指定機能ブロックは、第1の自動車142のために第1の経路162を、第2の自動車144のために第2の経路164を、且つ/又は、第3の自動車146のために第3の経路166を、決定あるいは計算してもよい。
【0017】
経路指定機能ブロックは、経路の決定又は計算のために、初期位置及びユーザが定義した目的地に加えて、他のソースから受信したその他の情報を利用してもよい。ある実施形態において、例えば、経路指定機能ブロックは、経路の決定又は計算の際に自動車の操縦性状態を考慮してもよい。別の実施形態において、例えば、経路指定機能ブロックは、経路の決定又は計算の際に、市街区101の道路状況を考慮してもよい。
【0018】
経路指定機能ブロックは操縦性状態を分析して、自動車が追従する特定の経路の安全性が十分十分であるか否かを決定してもよい。本明細書において、自動車の操縦性状態は、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、及び/又は、自動車の位置する車線の車線境界、及び/又は、これらの組み合わせを含んでもよいが、これらに限られない。経路指定機能ブロックは、自動車に予め備え付けられた1つ以上のセンサから操縦性状態を受信してもよい。
【0019】
操縦性状態が経路指定プロセスに与える影響を示すため、第1の経路162を第2の経路164との関係で説明する。明確性のため、第1の自動車142と第2の自動車144は、初めに高速道路130の北に向かうセグメント132を走行しており、両車両とも第1の目的地147に到着するものと想定する。第1のイテレーションにおいて、経路指定機能ブロックは、第1の経路162が、第1の自動車142及び第2の自動車144の両車両にとって、最も効率的な経路であると決定又は計算するかもしれない。経路指定機能ブロックは、第1の自動車142及び第2の自動車144に関連する操縦性状態を分析することで、第1の経路162を確定してもよい。
【0020】
例えば、経路指定機能ブロックは、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、及び、自動車が位置する車線の車線境界を分析してもよい。第1の自動車142の右車線が十分に空いているため、経路指定機能ブロックは、第1の自動車142が第1の出口134に進行するのに安全性は十分であると判断してもよい。こうして、経路指定機能ブロックが、第1の自動車142のために第1の経路162を確定してもよい。
【0021】
一方、第2の自動車142の右車線が切れ間のない交通で遮られている場合、経路指定機能ブロックは、第2の自動車144が車線を変更して第1の出口134に進行するのに安全性は十分ではないと判断するかもしれない。従って、経路指定機能ブロックは、第2の自動車144のための第1の経路162をキャンセルし、続くイテレーションにおいて、第2の自動車144のために、第2の経路164などの代替経路を計算又は決定してもよい。第2の自動車144は、第1の出口134に進行する代わりに、第2の出口136に進行してもよい。
【0022】
経路再指定のプロセスは、経路指定機能ブロックが安全性指向のリアルタイムの経路を自動車に提供し得るように、繰り返し、反復して、周期的に、且つ/又は、応答可能なように実行され得ることを理解されたい。従来のナビゲーションシステムは、通常、自動車が当初の経路から逸脱した場合にのみ経路再指定機能を実行する。このような経路再指定機能は、本質的に受動的であり、その遅い処理時間は、運転者にフラストレーションを感じさせ得る。従来のナビゲーションシステムの経路再指定機能と比較すると、インテリジェントナビゲーションシステムの経路指定機能ブロックは、自動車が当初の経路から離れることを余儀なくされる前に経路再指定機能を実行し得る。好適には、インテリジェントナビゲーションシステムの経路指定機能ブロックは、従来のナビゲーションシステムよりも、より予測的で能動的になり得る。
【0023】
操縦性状態に加えて、経路指定機能ブロックは、経路が、自動車が走行するのに時間効率がよく、且つ/又は、燃費がよいかを決定するため、道路状況を分析し得る。本明細書の記載において、道路状況は、自動車の初期位置と自動車が到達する予定の目的位置との間に存在する主要な高速道路と一般道路の交通状況及び/又は地形状態を含んでもよいが、これらに限られない。
【0024】
高速道路又は一般道路の交通状況は、交通量に関連する状況であってもよい。一例では、交通量(rate of flow of traffic)が制限速度のおよそ±5%の場合、その高速道路又は一般道路は良好な交通状況となり得る。別の例において、交通量が制限速度をおよそ20%下回る場合、その高速道路又は一般道路の交通状況は悪くなり得る。
【0025】
高速道路又は一般道路の地形状態は、その走行路面の質に関する状態となり得る。概して、自動車が最小のトルクで前進できる平滑な(smooth)走行路面の場合に、高速道路又は一般道路の地形状態は良好となり得る。つまり、地形状態が良好な走行路面を走行する場合に、自動車は磨耗が少なく、且つ/又は、燃料消費も少ない。一例では、実質的に平坦でよく舗装された高速道路は、良好な地形状態となり得る。他の例では、傾斜してでこぼこな一般道路は、悪い地形状態となり得る。
【0026】
当然のことながら、道路状況は、点数、パーセント、及び/又は、個別の等級(優良、良好、普通、不良、及び/又は、不適正)のいずれかを含むがこれらに限られない様々な形式で表現され得る。更に、道路状況は、1つ以上の高速道路及び/又は一般道路を含み得る経路に割り当てられるため、道路状況は、それぞれ高速道路又は一般道路のセグメントに関係付けられ得る、複数の道路状況の平均値又は重み付けされた平均値として計算され得る。
【0027】
経路指定機能ブロックは、自動車の遠隔で稼動する1つ以上のコンピュータサーバから、道路状況を受信してもよい。1つの実施形態において、例えば、経路指定機能ブロックは、遠隔のコンピュータセンター180によって部分的に運用され得るワイヤレスネットワーク186を介して、道路状況を受信してもよい。遠隔のコンピュータセンター180は、市街区101の交通状況及び地形状態に関する現在の交通情報及び/又は地形情報を記憶し、更新するコンピュータサーバ184を含んでもよい。別の実施形態では、例えば、経路指定機能ブロックは、第1の衛星リンク172を介して間接的に道路状況を受信してもよい。携帯電話の基地局(cell site tower)182が、第2の衛星リンク174を介して道路状況情報を衛星170に通信してもよい。衛星170は、これに応答して、道路状況情報を経路指定機能ブロックに中継してもよい。
【0028】
図1Aに例証されるように、経路指定機能ブロックは、第3の自動車146が第2の目的地148に到達するための初期経路を計算してもよい。第3の自動車246は、初期経路に従って、第1の一般道路151に入る前に、高速道路130の南に向かうセグメント131の第2の出口135への進行を指示されてもよい。
【0029】
経路指定機能ブロックは、第1の衛星リンク172及び/又はワイヤレスネットワーク186を介して道路状況情報を受信してもよい。道路状況情報の分析後、経路指定機能ブロックは、高速道路130の南に向かうセグメント131の第1の出口133と第2の出口135との間に交通事故141が発生していると判断してもよい。経路指定機能ブロックは、この判断に基づき、第3の自動車146のために第3の経路166などの新経路を計算し直してもよい。第3の自動車146は、第3の経路166に従って、交通事故141を回避するため、第1の出口133へ進行するよう案内されてもよい。第3の経路166で指定された全距離は初期経路よりもかなり長くなるかもしれないが、第3の経路166の全走行時間は、交通事故141を回避したことで時間が節約されたため、初期経路よりもはるかに短くなり得る。
【0030】
当然のことながら、経路再指定のプロセスは、経路指定機能ブロックが効率性指向のリアルタイムの経路を自動車に提供し得るように、繰り返し、反復して、周期的に、且つ/又は/応答可能に実行され得る。従来のナビゲーションシステムは、通常、単一のソースから取得した交通状況情報に基づいて経路再指定機能を実施する。このような経路再指定機能は、自動車の効率性に影響を与える可能性のある地形状態などのその他の要素を考慮できていないことがある。
【0031】
更に、交通状況情報が単一のソース(測位装置の製造者と関連したサービスプロバイダなど)から取得されるため、従来のナビゲーションシステムの経路再指定機能は、道路状況情報を提供し得る様々なサービスプロバイダを選択する柔軟性に欠けることがある。従来のナビゲーションシステムの経路再指定機能と比較すると、インテリジェントナビゲーションシステムの経路指定機能ブロックは、より包括的で柔軟性のある方法で経路再指定機能を実行し得る。
【0032】
経路指定機能ブロックが経路を計算した後、ナビゲーションタスク機能ブロックは計算された経路を一連のナビゲーションタスク(set of navigation task)に変換してもよい。ナビゲーションタスク機能ブロックは、まず、計算された経路を2つ以上の経路指定位置(routing positions)に分割してもよい。それから、ナビゲーションタスク機能ブロックは、2つの連続した経路指定位置間に1つ以上のナビゲーションタスクを決定又は割り当ててもよい。ナビゲーションタスク機能ブロックは、全ての連続した経路指定位置が少なくとも1つのナビゲーションタスクを割り当てられるまで、割り当てプロセスを繰り返してもよい。
【0033】
本明細書中で、各ナビゲーションタスクは、自動車を操縦するための高レベルの指示でもよい。ナビゲーションタスクは、自動車の一般的な動作を指揮するのに用いることができるという意味では、従来のナビゲーションシステムによって提供される指示と類似し得る。例えば、ナビゲーションタスクは、方向旋回(turn-bearing)ナビゲーションタスク、左折ナビゲーションタスク、車線追従ナビゲーションタスク、及び/又は、車線変更ナビゲーションタスクを含んでもよいが、これらに限られない。
【0034】
しかしながら、ナビゲーションタスクは機械指向であり、それぞれのナビゲーションタスクは1つ以上の機械によって実行される操縦性機能に変換できるため、従来のナビゲーションシステムが提供する指示とは異なっていてもよい。本明細書中で、操縦性機能は、自動車の動作を作動させる一連の低レベルの指示でもよい。例えば、操縦性機能は、アクセル、ブレーキ、ギアチェンジ、ステアリング制御、及び/又は、低速走行を含んでもよいが、これらに限られない。
【0035】
ナビゲーションタスク機能ブロックは、様々な入力ソースに基づいて、ナビゲーションタスクを一連の操縦性機能に変換してもよい。ある実施形態では、例えば、ナビゲーションタスク機能ブロックは、リアルタイムの交通状況及び地形状態に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。
【0036】
別の実施形態では、例えば、ナビゲーションタスク機能ブロックは、1つ以上のリアルタイムの操縦性状態に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。上述したように、自動車の操縦性状態には、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、及び/又は、自動車の位置する車線の車線境界、及び/又は、これらの組み合わせを含むことがあるが、これらに限られない。
【0037】
さらに別の実施形態では、例えば、ナビゲーションタスク機能ブロックは、1つ以上の予め定義された制限事項に従って、ナビゲーションタスクを幾つかの操縦性機能に変換してもよい。予め定義された制限事項には、時間制限、距離制限、速度制限、安全性の制限、及び/又は、処理中断制限を含んでもよいが、これらに限られない。
【0038】
操縦性機能は、自動車の周囲の状態により、繰り返し、反復して、周期的に、且つ/又は応答可能に更新されてもよい。こうして、ナビゲーションタスク機能ブロックは、各操縦性機能が実行される前及び実行中に、監視機能ブロックと相互作用(interact)してもよい。前述の機能ブロック間の作用関係を更に解説するため、第1の経路162、第2の経路164、及び、第3の経路166の例示的詳細を以下に説明する。
【0039】
第1の経路162について、ナビゲーションタスク機能ブロックは第1の経路162を、まず、5つの経路指定位置に分割してもよい。第1の経路指定位置は、
図1Aに示すように第1の自動車142の初期位置であってもよい。第2の経路指定位置は、北に向かうセグメント132と第1の出口134との間の接合点であってもよい。第3の経路指定位置は、第1の出口134と第2の一般道路152との間の接合点(junction)であってもよい。第4の経路指定位置は、第2の一般道路152と第1の目的地147との間の接合点であってもよい。第5の経路指定位置は、第1の目的地147であってもよい。
【0040】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、次に、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第1の経路指定位置と第2の経路指定位置との間にCHANGE_LANE_Rナビゲーションタスクを、第2の経路指定位置と第3の経路指定位置との間にFOLLOW_LANE_LナビゲーションタスクとTURN_Lナビゲーションタスクを、第3の経路指定位置と第4の経路指定位置との間にFOLLOW_LANE_Rナビゲーションタスクを、且つ、第4の経路指定位置と第5の経路指定位置との間にTURN_Rナビゲーションタスクを割り当ててもよい。
【0041】
CHANGE_LANE_Rナビゲーションタスクは、自動車に隣接する右車線に変更するように指示してもよい。FOLLOW_LANE_Lナビゲーションタスクは、自動車に左車線に追従するように指示してもよい。TURN_Lナビゲーションタスクは、自動車に次の交差点で左折するように指示してもよい。FOLLOW_LANE_Rナビゲーションタスクは、自動車に右車線に追従するように指示してもよい。TURN_Rナビゲーションタスクは、自動車に次の交差点で右折するように指示してもよい。
【0042】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び/又は、予め定義した制限事項に従って、ナビゲーションタスクのそれぞれを一連の操縦性機能に変換してもよい。CHANGE_LANE_Rナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第1の一連の操縦性状態が検出されるまで加速機能を呼び出し、第2の一連の操縦性状態が検出されている間、ステアリング機能を呼び出し、第2の経路指定位置に到達する前に減速機能を呼び出してもよい。
【0043】
第1の一連の操縦性状態は、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び/又は、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。第2の一連の操縦性状態は、車線境界の予め定義された脱線、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び/又は、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでもよい。
【0044】
FOLLOW_LANE_Lナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第1の交通信号灯191を検知する前に、車線追跡機能と共に一定速度機能を呼び出し、第1の交通信号灯191の交通信号灯状態が黄色又は赤と判断した場合、減速機能を呼び出してもよい。TURN_Lナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第1の交通信号灯191の交通信号灯状態が緑と判断した場合、加速機能とステアリング機能を実行させてもよい。
【0045】
第2の経路164について、ナビゲーションタスク機能ブロックは、まず、第2の経路164を6つの経路指定位置に分割してもよい。第1の経路指定位置は、
図1Aに示すように第2の自動車144の初期位置であってもよい。第2の経路指定位置は、北に向かうセグメント132と第2の出口136との間の接合点であってもよい。第3の経路指定位置は、第2の出口136と第3の一般道路153との間の接合点であってもよい。第4の経路指定位置は、第3の一般道路153と第4の一般道路154との間の接合点であってもよい。第5の経路指定位置は、第4の一般道路154と第1の目的地147との間の接合点であってもよい。第6の経路指定位置は、第1の目的地147であってもよい。
【0046】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第1の経路指定位置と第2の経路指定位置との間にCHANGE_LANE_Rナビゲーションタスクを、第2の経路指定位置と第3の経路指定位置との間にFOLLOW_LANE_Lナビゲーションタスク及びTURN_Lナビゲーションタスクを、第3の経路指定位置と第4の経路指定位置との間にFOLLOW_LANE_Lナビゲーションタスク及びTURN_Lナビゲーションタスクを、第4の経路指定位置と第5の経路指定位置との間にFOLLOW_LANE_Lナビゲーションタスクを、且つ、第5の経路指定位置と第6の経路指定位置との間にTURN_Lナビゲーションタスクを割り当ててもよい。
【0047】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び/又は、予め定義された制限事項に従って、それぞれのナビゲーションタスクを一連の操縦性機能に変換してもよい。CHANGE_LANE_Rナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックは、第1の一連の操縦性状態が検知されるまで加速機能を呼び出し、第2の一連の操縦性状態が検知されている間、ステアリング機能を呼び出し、第2の経路指定位置に到達する前に減速機能を呼び出してもよい。
【0048】
第1の一連の操縦性状態には、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び/又は、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。第2の一連の操縦性状態には、予め定義された車線境界の脱線、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対速度、及び/又は、第1の自動車142と右車線を走行する隣接する自動車との間の予め定義された相対距離を含んでいてもよい。
【0049】
右車線が2台の隣接する自動車に遮られているため、第1の一連の操縦性状態は適合しない(not be met)かもしれない。結果として、ナビゲーションタスク機能ブロックは、CHANGE_LANE_Rナビゲーションタスクの達成のため、一連の代替操縦性機能を呼び出してもよい。例えば、ナビゲーションタスク機能ブロックは、第2の自動車144を左車線に操縦するため、左ステアリング機能を呼び出し、第1の一連の操縦性状態が検知されるまで加速機能を呼び出し、第1の一連の操縦性状態を検知すると右ステアリング機能を呼び出し、第1の一連の操縦性状態が検知されるまでもう一度加速機能を呼び出し、且つ、第1の一連の操縦性状態を検知するともう一度右ステアリング機能を呼び出してもよく、且つ/又は、これらの組み合わせを呼び出してもよい。
【0050】
FOLLOW_LANE_Lナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックが、第2の交通信号灯192を検知する前に、車線追跡機能と共に一定速度機能を呼び出し、第1の交通信号灯192の交通信号灯状態が黄色又は赤と判断した場合に、減速機能を呼び出してもよい。TURN_Lナビゲーションタスクの変換では、例えば、ナビゲーションタスク機能ブロックが、第1の交通信号灯192の交通信号灯状態が緑と判断した場合に、加速機能とステアリング機能を呼び出してもよい。当然のことながら、その後のナビゲーションタスクは、第2の自動車144が第3の交通信号灯193の交通信号灯状態を確認し、応答するように、上述した例と同様の方法で変換できる。
【0051】
第3の経路166について、ナビゲーションタスク機能ブロックは、最初に第3の経路166を6つの経路指定位置に分割してもよい。第1の経路指定位置は、
図1Aに示すように第3の自動車146の初期位置でもよい。第2の経路指定位置は、南に向かうセグメント131と第1の出口133との間の接合点であってもよい。第3の経路指定位置は、第1の出口133と第2の一般道路152との間の接合点であってもよい。第4の経路指定位置は第2の一般道路152と第4の一般道路154との間の接合点であってもよい。第5の経路指定位置は、第4の一般道路154と第2の目的地148との間の接合点でもよい。第6の経路指定位置は、第1の目的地148であってもよい。
【0052】
ナビゲーションタスク機能ブロックが経路指定位置を決定した後、ナビゲーションタスク機能ブロックは、連続する一対の経路指定位置のそれぞれに少なくとも一つのナビゲーションタスクを割り当ててもよい。ナビゲーションタスク機能ブロックは、第1の経路指定位置と第2の経路指定位置との間にCHANGE_LANE_Rナビゲーションタスクを、第2の経路指定位置と第3の経路指定位置との間にFOLLOW_LANE_Rナビゲーションタスク及びTURN_Rナビゲーションタスクを、第3の経路指定位置と第4の経路指定位置との間にFOLLOW_LANE_Lナビゲーションタスク及びTURN_Lナビゲーションタスクを、第4の経路指定位置と第5の経路指定位置との間にFOLLOW_LANE_Lナビゲーションタスクを、且つ、第5の経路指定位置と第6の経路指定位置との間にTURN_Lナビゲーションタスクを割り当ててもよい。
【0053】
割り当てプロセスの後、ナビゲーションタスク機能ブロックは、現在の道路状況、操縦性状態、及び/又は、予め定義された制限事項に従って、それぞれのナビゲーションタスクを一連の操縦性機能に変換してもよい。ナビゲーションタスク変換プロセスは、上述した例と同様の方法で実行できる。従って、第3の自動車146は、第4の交通信号灯194と第5の交通信号灯195の交通信号灯状態を含み得る様々な操縦性状態を確認して、応答してもよい。
【0054】
上記操縦性機能が第1の自動車142によって実行されるとき、監視機能ブロックは様々な操縦性状態を検知し、検知された操縦性状態をナビゲーションタスク機能ブロックに送信してもよい。リアルタイムに検知された操縦性状態に基づいて、ナビゲーションタスク機能ブロックは、現在の操縦性機能を実行し続けるのが安全か否かを判断してもよい。例えば、ナビゲーションタスク機能ブロックは、隣接する物体の相対速度及び/又は相対距離、現在の交通信号灯状態、隣接する車線の合流、及び/又は、駐車場所の寸法を含むがこれに限られない自動車の周囲環境に基づいて、安全率を決定してもよい。安全率が予め定義された閾値を下回る、例えば90%などの場合、ナビゲーションタスク機能ブロックは安全率を増加させる代替操縦性機能を決定し、現在の操縦性機能を代替操縦性機能にスムーズに移行させてもよい。
【0055】
それぞれの各操縦性機能又はナビゲーションタスクが完了した後、測位機能ブロックは自動車の移動中の位置(transient location)を追跡してもよい。測位機能ブロックは、自動車がまだ計算された経路内にあるか否かを判断してもよい。例えば、測位機能ブロックは、移動中の位置と、先に計算された経路との間の相関(correlation)を計算又は判定してもよい。相関が予め定義された閾値を下回る、例えば90%などの場合、測位機能ブロックは、自動車の新しく検知された移動中の位置に基づいて、経路指定機能ブロックに更新された経路を計算又は決定するように要求してもよい。更新された経路が計算又は決定されると、ナビゲーションタスク機能ブロックはナビゲーションタスク割り当てプロセスと操縦性機能呼び出しプロセスを再度開始してもよい。上述のステップとプロセスは、目的地に到達するまで繰り返すか反復できる。
【0056】
当然のことながら、インテリジェントナビゲーションシステムの各機能ブロックは、運転者又は遠隔地から自動車を操作する第三者などの人の操作者によって、停止、休止、復帰、及び/又は、優先(overridden)することができる。インテリジェントナビゲーションシステムが休止又は優先された場合、自動車の操縦アクチュエータとの間に構築された接続を放棄してもよい。しかしながら、サービスの素早い復帰のためには、インテリジェントナビゲーションシステムはバックグラウンドで実行されていてもよい。
【0057】
ある実施形態では、例えば、経路指定機能タスクは、自動車の移動中の位置に基づいて、反復的、周期的、又は、応答可能に経路を更新してもよい。別の実施形態では、例えば、更新された経路に基づいて、ナビゲーションタスク機能ブロックが、監視機能ブロックと協働して、割り当てられたナビゲーションタスクと対応する操縦性機能とを更新してもよい。
【0058】
当然のことながら、上述の各機能ブロック(すなわち、測位機能ブロック、経路指定機能ブロック、ナビゲーションタスク機能ブロック、及び、監視機能ブロック)は、ハードウェアとソフトウェアの組み合わせによって実現され得る。また、当然のことながら、上述の機能ブロックは個別に、あるいは一体化して実現され得る。機能ブロックが個別に実装される場合、インテリジェントナビゲーションシステムは複数のプロセッサを含んでもよく、各プロセッサは一つの機能ブロックのアルゴリズムコードを実行する役割を担い得る。各プロセッサは、1つ以上の周辺モジュールに連結し、一つの装置を形成してもよい。第1の実施形態において、第1のプロセッサはGPS受信機に連結し、一つの測位装置を形成してもよい。第2の実施形態において、第2のプロセッサは道路状況データベースに連結し、経路指定装置を形成してもよい。第3の実施形態において、第3のプロセッサは車両操縦コントローラに連結し、ナビゲーションタスク装置を形成してもよい。第4の実施形態において、第4のプロセッサは様々な操縦性センサに連結し、監視装置を形成してもよい。
【0059】
機能ブロックが一体化して実現される場合、インテリジェントナビゲーションシステムは、4つの機能ブロック全てのアルゴリズムコードを実行するための一つのナビゲーションプロセッサを含んでいてもよい。ナビゲーションプロセッサは、測位装置、操縦性センサ、及び、道路状況情報データベースサーバなど、様々な周辺装置に連結していてもよい。更に、ナビゲーションプロセッサは自動車の一部でもよく、あるいは、ナビゲーションプロセッサは遠隔コンピュータサーバの一部でもよい。
【0060】
好適な実施形態において、インテリジェントナビゲーションシステムは、自動車内に設けられたオペレーションシステムのプラットフォーム内で実装され、変更され、且つ/又は、実行され得る。このようなオペレーションシステムのプラットフォームの一つに車両操縦アプリケーションインターフェースがあるが、詳細は
図1B、
図2〜
図16で説明される。
【0061】
図1Bは、本発明の実施形態による、車両操縦アプリケーション(VMA)インタフェースを搭載する自動車100の内部図を示す。概して、VMAインタフェースは1つ以上の車両操縦アプリケーション(VMA)の設置、更新、実行、及び/又は、除去に用いられ得る。VMAは一連のソフトウェア指示又はコードであってもよく、車両操縦装置によって実行されると、車両操縦アプリケーション装置に自動車の動作を制御する方法を実行させる。例えば、VMAはアダプティブクルーズコントロールアプリケーション、車線追従アプリケーション、車線変更アプリケーション、衝突回避アプリケーション、自動駐車アプリケーション、自律運転アプリケーション、及び/又は、遠隔駆動アプリケーションを含んでもよい。VMAが実行されると、自動車100は、より少ない人の介入で操作され得る。
【0062】
自動車100は、幾つかの車両操縦(VM)入力装置も含んでもよい。VMAが起動していない場合、又は、運転者が起動されたVMAを優先すると決めた場合、様々なVM入力装置は、運転者が自動車100の動作を制御することを可能としてもよい。ある実施形態では、例えば、VM入力装置は、自動車100を操縦するためのハンドル102、自動車100を加速するためのアクセルペダル(gas pedal)104、自動車100を減速するためのブレーキペダル106、及び、自動車100のギアをシフトするための変速装置108を含んでもよい。
【0063】
自動車100は、物理的媒体(physical medium)に記憶されたVMAを受信するために用いられ得るVMA入力装置120を有してもよい。ある実施形態では、例えば、VMA入力装置120は、ユニバーサルシリアルバス(USB)ドライブ123又はUSB出力ポートが付属した記憶装置(図示せず)の内容を読み取るためのUSBリーダ122、フラッシュメモリカード225の内容を読み取るためのフラッシュメモリカードリーダ124、コンパクトディスク(CD)127の内容を読み取るためのCDリーダ126を含んでもよい。
【0064】
自動車100は、運転者がVMAインタフェースとやりとり(interact)ができるように幾つかの操作者入力装置、及び/又は、操作者出力装置を含んでもよい。ある実施形態では、例えば、自動車100が接触感知式表示画面112を有していてもよく、VMAインタフェースによって生成されたVMAメッセージ113の表示、及び/又は、VMAインタフェースへのVMA入力114の受信に用いられてもよい。別の実施形態では、例えば、自動車100は一体型のマイクロホンスピーカ116を含み、VMAインタフェースが生成したオーディオ出力を伝えたり、VMAインタフェースへの音声命令を受信するのに用いられたりしてもよい。また別の実施形態では、自動車100は一連のセンサ118を含み、VMAインタフェースへの入力を受信するのに用いられてもよい。一連のセンサ118は、1つ以上のタッチセンサ、近接センサ、圧力センサ(compression sensor)、及び/又は、光センサを含んでよい。
【0065】
図2は、本発明の実施形態による、車両制御システム200のシステムブロック図を示す。概して、車両制御システム200は自動車100に組み込まれた電気機械システムであり、自動車100の1つ以上の機能を実行するために用いられ得る。ある実施形態では、車両制御システム200は、操縦、加速及び減速など、自動車100の動作に関連する機能を実行するのに用いられてもよい。別の実施形態では、車両制御システム200は、任意で、温度制御、ナビゲーション補助など、自動車100の動作に無関係の機能を実行するのに用いられてもよい。
【0066】
車両制御システム200は、入出力(I/O)ブロック201、車両操縦アプリケーション(VMA)インタフェース210、車両システム240、VMA装置270、ワイヤレスネットワーク装置280、及び、任意で周辺アプリケーション装置290を含んでもよい。I/Oブロック201は、運転者などの操作者との通信及び対話に用いられることがある。車両システム240は、車両制御システム200の動作関連の機能及び/又は動作に無関係の機能を実行してもよい。VMA装置270は、1つ以上のVMAを記憶し、実行するのに用いられることがある。VMAインタフェース210によって実行されると、VMAは、動作関連の機能を実行するために車両システム240を制御してもよい。補助アプリケーション装置290は、1つ以上の補助アプリケーションの記憶や実行に用いられてもよく、補助アプリケーションが実行されると、動作に無関係の機能を実行するために車両システム240を制御してもよい。ワイヤレスネットワーク装置280は、車両制御システム200を1つ以上のワイヤレスネットワークにワイヤレス接続するのに用いられてもよい。
【0067】
I/Oブロック201は、操作者サブブロック202、車両操縦入力サブブロック204、及び、VMA入力サブブロック206を有してもよい。操作者I/Oサブブロック202は、運転者にVMAインタフェース210との通信及び対話を可能にするI/O装置を含んでもよい。例えば、I/O装置は、
図1に示す一連のセンサ118、接触感知式表示画面112、及び/又は、一体型マイクロホンスピーカ116であってもよい。車両操縦入力サブブロック204は、運転者の車両システム240へのアクセスと制御を可能にし得る車両操縦入力装置を含んでいてもよい。例えば、車両操縦入力装置は、
図1に示すステアリング102、アクセルペダル104、ブレーキペダル106、及び、変速装置108を含んでもよい。VMA入力サブブロック206は、物理的記憶媒体からVMAを受信するためのVMA入力装置を含んでもよい。例えば、VMA入力装置は、
図1に示すUSBリーダ122、フラッシュメモリカードリーダ124、及びCDリーダ126であってもよい。
【0068】
VMAインタフェース210は、I/Oドライバ211、インタフェースプロセッサ220、インタフェースメモリ225、及び、診断プロセッサ230を含んでもよい。I/Oドライバ211は、フォーマットされた入力がインタフェースプロセッサ220によって処理され得るように、操作者I/Oサブブロック202、車両操縦入力サブブロック204、及び、VMA入力サブブロック206から受信した入力をフォーマットするのに用いられてもよい。
【0069】
VMAインタフェース210の内部では、インタフェースプロセッサ220が、I/Oドライバ211、インタフェースメモリ225、及び、診断プロセッサ230に連結していてもよい。VMAインタフェース210の外部では、インタフェースプロセッサ220が、車両システム240、VMA装置270、補助アプリケーション装置290、及び、ワイヤレスネットワーク装置280に連結していてもよい。ある実施形態では、インタフェースプロセッサ220がVMA装置270、補助アプリケーション装置290、及び/又は、ワイヤレスネットワーク装置280と、1つ以上の有線接続を構築してもよい。別の実施形態では、インタフェースプロセッサ220が、VMA装置270、補助アプリケーション装置290、及び/又は、ワイヤレスネットワーク装置280と、1つ以上のワイヤレス接続を構築していてもよい。
【0070】
インタフェースプロセッサ220は、1つ以上のVMAを受信し、VMA装置270にインストールするよう構成されていてもよい。インタフェースプロセッサ220は、操作者I/Oサブブロック202からインストール命令を受信すると、インストールプロセスを開始してもよい。インストールプロセスの開始後、インタフェースプロセッサ220はVMA入力ブロック206から、及び/又は、遠隔ネットワーク(図示せず)及び/又は遠隔サーバ(図示せず)から、ワイヤレスネットワーク装置280を介して、VMAを受信してもよい。インタフェースプロセッサ220はまず、新しく受信したVMAが特定の自動車に用いるのに適しているか否かを判断してもよい。インタフェースプロセッサ220は、受信したVMAの互換性を確認し、受信したVMAが工業規格に適合することを確保してもよい。
【0071】
インタフェースプロセッサ220は、様々な暗号化技術を用いて、受信したVMAの品質を検証してもよい。例えば、必要な品質テストに合格した後で、VMAは認証機関から認証を受けてもよい。認証機関は、自動車製造業者、VMA開発者、及び/又は、中立な第三者となり得る。中立な第三者は、自動車製造者及び/又はVMA開発者とは無関係の団体であってもよい。中立な第三者は、認証されたVMAに暗号データを組み込んでもよい。暗号データは、VMAの互換性情報、安全性機能、及び品質に関連し得る。インタフェースプロセッサ220は、暗号データを復号する復号キーを使用してもよい。復号キーは、中立な第三者によってインタフェースプロセッサ220に付与されてもよい。あるいは、インタフェースプロセッサ220は、ワイヤレスネットワーク装置280を介して遠隔ネットワーク及び/又は遠隔サーバから更新された復号キーを読み出してもよい。
【0072】
受信したVMAが検証プロセスに合格しない場合、インタフェースプロセッサ220はインストールプロセスを終了させてもよい。インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者に、VMAが特定の自動車と互換性がないため、あるいは、認証されていないためインストールできない旨を通知する。受信したVMAが検証プロセスに合格した場合、インタフェースプロセッサ220はインストールプロセスを継続し、VMA装置270に領域確認要求(cheek-space request)を送信してもよい。
【0073】
VMA装置270は、VMAプロセッサ272、VMAセンサ274、及び、VMAメモリ276を含んでもよい。VMAプロセッサ272は、インタフェースプロセッサ220に連結され、VMAメモリ276はVMAプロセッサ272に連結されてもよい。インタフェースプロセッサ220から領域確認要求を受信後、VMAプロセッサ272は、VMAメモリ276に利用可能な領域があるかを確認してもよい。VMAメモリ276に領域がない場合、VMAプロセッサ272は、新しく受信したVMAがインストールされないことを示すため、領域不十分信号をインタフェースプロセッサ220に送信してもよい。領域不十分信号を受信後、インタフェースプロセッサ220はインストールプロセスを終了し、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージによって、VMAメモリ276が十分な領域を持たないためVMAがインストールされない旨が操作者に報告されてもよい。
【0074】
一方、VMAメモリ276に、受信したVMAをインストールするのに十分な領域がある場合、VMAプロセッサ272は領域十分信号(sufficient-space signal)をインタフェースプロセッサ220に送信してもよい。領域十分信号に応答して、インタフェースプロセッサ220は、新しく受信したVMAをVMAプロセッサ272に送信してもよい。VMAプロセッサ272は、それに応答して、受信したVMAを登録し、登録したVMAをVMAメモリ276に記憶し、インストール完了信号をインタフェースプロセッサ220に送信してもよい。インストール完了信号を受信したら、インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者にインストールプロセスが完了したことを報告してもよい。
【0075】
インタフェースプロセッサ220は、VMAメモリ276に記憶され得る一つ以上のインストールされたVMAを更新、且つ/又は、修正するよう構成されていてもよい。インタフェースプロセッサ220は、周期的に、反復的に、繰り返して、且つ/又は、ランダムに、すでにインストールされたVMAに関連する更新情報を探索してもよい。例えば、インタフェースプロセッサ220は、1つ以上の遠隔ネットワーク及び/又は遠隔サーバの更新情報を探してもよい。他の例では、インタフェースプロセッサ220は、VMA入力サブブロック206によって読み出され得る記憶媒体に記憶された更新情報を検知してもよい。
【0076】
インタフェースプロセッサ220が更新された情報を特定すると、更新プロセスを開始してもよい。インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して通知メッセージを生成してもよい。通知メッセージは、1つ以上のインストールされたVMAの更新が可能であることを操作者に通知してもよい。更に、インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して更新要求を生成してもよい。更新要求は受容されてもよく、拒否されてもよい。操作者が更新要求を拒否した場合、更新プロセスは終了する。操作者が更新要求を受容した場合、I/Oサブブロック202は、インタフェースプロセッサ220によって受信され得る更新命令を生成してもよい。
【0077】
更新命令又は更新要求を受信すると、インタフェースプロセッサ220は更新内容(又は、修正内容)を読み出してもよい。例えば、インタフェースプロセッサ220は、ワイヤレスネットワーク装置280を介して、1つ以上の遠隔ネットワーク及び/又は遠隔サーバから更新内容を読み出してもよい。別の例では、インタフェースプロセッサ220は、VMA入力ブロック206を介して1つ以上の物理的記憶媒体から更新内容を読み出してもよい。
【0078】
更新内容を読み出すと、インタフェースプロセッサ220は、新しく読み出された更新内容が特定の自動車に用いられるのに適しているか否かを判断してもよい。インタフェースプロセッサ220は、更新内容の互換性を確認し(ascertain)、更新内容が工業規格に適合することを確定してもよい。インタフェースプロセッサ220は、様々な暗号化技術を用いて、更新内容の品質を確かめてもよい。例えば、インタフェースプロセッサ220は、インストールプロセスで実行したのと同様の検証プロセスを実行してもよい。
【0079】
受信した更新内容が検証プロセスに合格しない場合、インタフェースプロセッサ220は更新プロセスを終了させてもよい。インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、更新内容が特定の自動車に互換性がないため、あるいは、更新内容が未認証のため、更新プロセスが実行されないことを操作者に通知してもよい。更新内容が検証プロセスに合格した場合、インタフェースプロセッサ220は、インストールプロセスを継続し、領域確認要求をVMA装置270に送信してもよい。
【0080】
領域確認要求をインタフェースプロセッサ220から受信した後、VMAプロセッサ272は、VMAメモリ276の利用可能な領域を確認してもよい。VMAメモリ276に領域がない場合、VMAプロセッサ272は、更新内容がインストールされないことを意味する領域不十分信号をインタフェースプロセッサ220に送信してもよい。インストール領域不十分信号を受信後、インタフェースプロセッサ220は更新プロセスを終了し、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージによって、VMAメモリ276が十分な領域を持たないため更新内容がインストールされない旨が、操作者に報告されてもよい。
【0081】
一方、VMAメモリ276に更新内容のための十分な領域がある場合、VMAプロセッサ272は領域十分信号をインタフェースプロセッサ220に送信してもよい。領域十分信号に応答して、インタフェースプロセッサ220は、更新内容をVMAプロセッサ272に送信してもよい。VMAプロセッサ272は、これに応じて、更新予定のVMA(ターゲットVMAなど)を再登録し、更新内容をターゲットVMAに統合し、統合したVMAをVMAメモリ276に記憶し、更新完了信号をインタフェースプロセッサ220に送信してもよい。更新完了信号を受信したら、インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者に更新プロセスが完了したことを報告してもよい。
【0082】
インタフェースプロセッサ220は、1つ以上のインストールされたVMAをアンインストールし、削除し、且つ/又は除去するように構成されてもよい。VMAが問題なくインストールされ且つ/又は更新された後、操作者は、VMAメモリ276に記憶されているVMAのアンインストール、削除、及び/又は、除去をいつでも決定してよい。操作者I/Oサブブロック202を介して操作者からの要求を受信すると、インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得るVMAメニューを生成してもよい。操作者は、メニューからアンインストール機能を選択してもよい。アンインストール機能が呼び出された後、インタフェースプロセッサ220は、インストールされたVMAの一覧を操作者に提供してもよい。操作者は、次に、1つ以上のVMAをアンインストールする選択をし、その際に、操作者I/Oサブブロック202によってアンインストール命令が生成されてもよい。
【0083】
アンインストール命令を受信後、インタフェースプロセッサ220はシステムチェックを実行してもよい。システムチェックは、要求されたアンインストールが未選択のVMAを混乱させるか、又は、破壊するか否かを確かめてもよい。例えば、インタフェースプロセッサ220は、インタフェースメモリ225に記憶され得る未選択のVMAのパラメータが、アンインストール予定のVMAに依存するか、或いは、影響を受けるか否かを判断してもよい。別の例では、インタフェースプロセッサ220はVMAプロセッサ272にVMAの統合性チェックの実行を要求してもよい。これに応じて、VMAプロセッサ272は、選択したVMAをアンインストールすると未選択のVMAのコードが破壊されるか否かを判断してもよい。
【0084】
アンインストールプロセスが未選択のVMAを混乱させる、あるいは、破壊する可能性が高い場合、インタフェースプロセッサ220はアンインストールを拒否するか、あるいは、認証された団体からの承認又は修正キットを要求してもよい。インタフェースプロセッサ220がアンインストールを拒否した場合、操作者I/Oサブブロック202を介して中断メッセージが操作者に提示されてもよい。中断メッセージは、VMA開発者、自動車製造者、及び/又は、中立な第三者を含み得る認証された団体から、認証された承認及び/又は修正キットを取得するよう、操作者に要求してもよい。アンインストールプロセスが未選択のVMAを混乱又は破壊する可能性が低い場合、又は、アンインストールプロセスが承認され、且つ/又は、アンインストールプロセス用の修正キットが利用可能な場合、インタフェースプロセッサ220はシステムチェックを継続してもよい。
【0085】
システムチェックは、また、アンインストールが車両システム240の機能性に悪影響を及ぼさないかを確かめてもよい。例えば、インタフェースプロセッサ220は、機能性チェックを実行するよう診断プロセッサ230に要求してもよい。これに応じて、診断プロセッサ230は車両データロガー260とインタフェースメモリ225に記憶されたデータを分析してもよい。分析に基づいて、診断プロセッサ230は選択したVMAのアンインストールが、車両システム240の1つ以上の機能を混乱させる、除去する、又は、意図せず妨害するかを判断してもよい。
【0086】
アンインストールプロセスが、車両システム240の1つ以上の機能を混乱させる、除去する、又は意図せず妨害する可能性が高い場合、インタフェースプロセッサ220は、アンインストールを拒絶し、操作者I/Oサブブロック202を介して操作者に提示され得る中断メッセージを生成してもよい。中断メッセージは、アンインストールが実行されないことを操作者に報告し、機能性チェックのサマリを操作者に提供してもよい。アンインストールプロセスが、車両システム240の1つ以上の機能性を混乱させる、除去する、又は意図せず妨害する可能性が高い場合、インタフェースプロセッサ220はアンインストール信号をVMAプロセッサ272に送信してもよい。
【0087】
アンインストール信号に応答して、VMAプロセッサ272は選択したVMAの登録を解除し、且つ/又は、ターゲットVMAをVMAメモリ276から削除してもよい。VMAプロセッサ272は、選択したVMAが除去されると、アンインストール完了信号をインタフェースプロセッサ220に送信してもよい。インタフェースプロセッサ220は、インタフェースメモリ225から、アンインストールされたVMAに関連した登録レコード、実行レコード、及び/又は、パラメータを除去してもよい。アンインストール完了信号を受信すると、インタフェースプロセッサ220は、操作者I/Oサブブロック202を介して操作者に提示され得る出力メッセージを生成してもよい。出力メッセージは、操作者にアンインストールプロセスが完了したことを報告してもよい。
【0088】
VMAインタフェース210は、操作者がVMAを追加、修正及び/又は除去を行うのに都合のよいプラットフォームを提供してもよい。操作者は、予めインストールされたVMAに加えて、新しく開発され且つ認証されたVMAを様々な開発者から入手してもよい。例えば、操作者は、USBドライブ、CD、又は、フラッシュメモリカードに記憶された認証済みVMAを購入してもよい。別の例では、操作者は、携帯電話及び/又はラップトップコンピュータなどの携帯装置を介して認証済みVMAを購入してもよく、且つ、購入したVMAを携帯装置からインタフェースプロセッサ220に転送してもよい。別の例では、操作者がワイヤレスネットワーク装置280を介して1つ以上の遠隔ネットワークにアクセスしてもよく、オンラインストアで認証済みVMAを購入してもよい。
【0089】
ワイヤレスネットワーク装置280は、1つ以上の送受信機を含んでもよい。ある実施形態では、例えば、ワイヤレスネットワーク装置280は、専用狭域通信(DSRC)送受信機などの、狭域送受信機282を含んでもよい。別の実施形態では、例えば、ワイヤレスネットワーク装置280は、Bluetooth(登録商標)送受信機、赤外線(IR)送受信機、ラジオ周波数(RF)送受信機、及び/又は、IEEE802.11送受信機などの中域送受信機284を含んでいてもよい。また別の実施形態では、例えば、ワイヤレスネットワーク装置280は、汎欧州デジタル移動電話方式(GSM)送受信機、及び/又は、符号分割多重接続(CDMA)送受信機などの、広域送受信機286を含んでいてもよい。
【0090】
従って、VMAインタフェース210は、ピアツーピアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、公衆網、私設網、及び/又は、仮想私設網を含み得るがこれらに限られない、様々なネットワークにアクセスしてもよい。利点として、VMAインタフェース210によって、新しく開発されたVMAに互換性があり安全に使用できることを確保しながら、操作者は多種多様なVMAを選択するのに高い柔軟性が与えられ得る。更に、権限のある第三者の操作者が、ワイヤレスネットワーク装置280を介してインタフェースプロセッサ220に遠隔からアクセスしてもよい。このように、権限のある第三者の操作者が、車両制御システム200を遠隔から操作することがある。この特徴は、運転者が一時的に運転不能になった場合、あるいは、車両操縦入力サブブロック204が正常に機能しない場合に有益となり得る。
【0091】
VMAがインストールされた後、インタフェースプロセッサ220を用いて、インストールされたVMAを起動してもよい。インタフェースプロセッサ220は、操作者I/Oサブブロック202を介してVMA起動メニューを提示してもよい。操作者はVMA起動メニューから、起動する1つ以上のインストール済みVMAを選択してもよい。選択後、操作者I/Oサブブロック202は初期化信号(別名、起動信号)をインタフェースプロセッサ220に送信してもよい。初期化信号は様々なデータに組み込まれてもよい。例えば、初期化信号は選択したWMAを特定する識別子、及び/又は、選択されたWMAの動作の優先度を示す優先度コードと共に組み込まれてもよい(embedded with)。
【0092】
インタフェースプロセッサ220は初期化信号を処理し、それに応じて、VMAプロセッサ272に選択されたVMAを実行するよう命令してもよい。VMAプロセッサ272は、VMAメモリ276から選択されたVMAを検索し(locate)、ロードしてもよい。選択されたVMAの初期化中に、VMAプロセッサ272は車両データ要求信号をインタフェースプロセッサ220に送信してもよい。VMAは、初期化及び/又は補正のため、現在の車両データをパラメータとして利用してもよい。
【0093】
概して、車両データは自動車の物理的状態に関する情報を含み得る。例えば、車両データは各タイヤの回転速度、各タイヤの空気圧、ブレーキ流体の量、各ブレーキパッドの状態、各タイヤが受ける垂直抗力、各種照明装置の動作状態、ガソリンの量、及び/又は、前輪のそれぞれが受けるトルクに関する情報を含み得る。更に、車両データは、自動車の周囲の状態に関する情報を含み得る。例えば、車両データは、1つ以上の隣接する(前方、後方、左側、及び/又は、右側)自動車の相対速度、1つ以上の隣接する自動車の相対距離、近辺にある1つ以上の交通信号灯の状態、1つ以上の走行車線に対する自動車の位置、及び/又は、道路路面の摩擦力に関する情報を含んでいてもよい。
【0094】
様々なセンサによって生成された車両データは、その後、車両データロガー260に記憶されてもよい。様々なセンサが車両データロガー260に連結し、自動車の1つ以上の機械部品に隣接して配置されてもよい。ある実施形態では、例えば、角度センサ262が、自動車の前車軸243の近辺に設置されていてもよい。角度センサ262は、自動車の回転角度を検知するのに用いられてもよい。別の実施形態では、例えば、回転速度センサ264が、自動車の各車輪245の近辺に設置されてもよい。回転速度センサ264は、自動車の速度、加速、及び/又は、減速を検知するのに用いられてもよい。また別の実施形態では、光センサ266が、方向指示灯、前灯、制御灯、尾灯、後退灯、及び/又は、ハイビーム灯の、1つ以上の照明装置247の近辺に設置されてもよい。光センサ266は、照明装置247の動作状態を検知するために用いられてもよい。
【0095】
車両データ要求信号の処理後、インタフェースプロセッサ220は、車両データロガー260から車両データを取得してもよい。ある実施形態では、安全なアクセスを提供するために、診断プロセッサ230が車両データロガー260に連結されてもよい。このように、インタフェースプロセッサ220は、診断プロセッサ230を介して車両データロガー260にアクセスしてもよい。別の実施形態では、インタフェースプロセッサ220は、車両データロガー260に連結されてもよい。こうして、インタフェースプロセッサ220は、車両データロガー260から直接車両データを読み出してもよい。
【0096】
インタフェースプロセッサ220は、起動されたVMAが初期化及び/又は補正手続きを完了し得るように、読み出した車両データをVMAプロセッサ272に送信してもよい。初期化プロセス後、VMAプロセッサ272は、インタフェースプロセッサ220への接続要求信号を生成してもよい。インタフェースプロセッサ220は、接続要求を受け取ると、VMAプロセッサ272と車両システム240との間に接続を構築してもよい。
【0097】
ある実施形態では、車両システム240は、車両操縦コントローラ241、車両操縦コントローラ241によって制御される各種作動装置、各種作動装置によって操作される各種物理的構成要素、及び、車両データロガー260を有してもよい。
【0098】
物理的構成要素は、自動車の基本的な物理的機能を実行する役割を担っていてもよい。例えば、物理的構成要素は、自動車の回転角度を制御する前軸(front axle)243、自動車の速度を制御する四車輪245、且つ/又は、各種照明機能を行う照明装置247(ヘッドライト、尾灯、方向指示灯及び/又は後退灯)を含んでもよい。別の例では、物理的構成要素は、ブレーキパッド及び/又はトランスミッションギアを含んでもよい。
【0099】
作動装置は、車両操縦コントローラ241によって生成された1つ以上の制御信号を1つ以上の機械力、電気力、及び/又は、電気機械力に変換する役割を担ってもよい。例えば、作動装置は、ステアリング装置242、比例装置244、及び、車体装置246を含んでもよい。ステアリング装置242は、前軸243の操作に用いられ得る。比例装置244は、自動車の加速、減速、及び/又は、エネルギー消費を制御してもよい。つまり、比例装置244は、自動車のトランスミッションギア、ブレーキパッド、及び/又は、エンジンの操作に用いられ得る。車体装置246は、各種照明装置247の動作と自動車の動きを調和させるのに用いられてもよい。
【0100】
車両操縦コントローラ241は、各種作動装置に連結されていてもよい。車両操縦コントローラ241は、各種作動装置の動作を制御するための1つ以上の制御信号を生成する役割を担うことがある。制御信号の生成では、車両操縦コントローラ241は、VMAプロセッサ272から受信した指示をコンパイルし、処理し、且つ/又は、実行するように構成されていてもよい。
【0101】
車両操縦コントローラ241は、任意で、閉ループシステムの動作を監視し補正する負帰還を採用するサーボシステムのマスタデバイスであってもよい。例えば、車両操縦コントローラ241は、車両操縦コントローラ241が各種物理的構成要素の動作と状態の両方又はいずれかを監視するのに用いられ得る各種センサ(角度センサ262、回転速度センサ264、光センサ266の全て又はいずれか、など)に連結していてもよい。
【0102】
あるいは、車両操縦コントローラ241は、サーボ機構のスレーブデバイスであってもよい。車両操縦コントローラ241は、監視や補正機能は実行せず、VMAプロセッサ272から受信した指示を実施してもよい。代わりに、VMAプロセッサ272が車両操縦コントローラ241によって実施されるタスクを監視し、補正できるように、VMAプロセッサ272がマスタデバイスでもよい。
【0103】
実行されるVMAの形式によって、VMAプロセッサ272と車両システム240との間の接続は双方向、又は一方向であってもよい。接続が双方向の場合、VMAプロセッサ272は車両システム240に指示を送信し、車両システム240からフィードバック信号を受信してもよい。フィードバック信号は、車両操縦コントローラ241からの確認応答、車両操縦コントローラ241からの監視情報、及び、車両データロガー260からの車両データを含むがこれらに限られない情報に組み込まれてもよい。このように、VMAプロセッサ272と車両システム240との間の接続は、制御チャネルと情報チャネルを含んでもよい。接続が双方向の場合、VMAプロセッサ272は車両システム240に指示を送信し、車両操縦コントローラ241は、VMAプロセッサ272から要求を受信すると、VMAプロセッサ272にハンドシェイク信号を送信してもよい。このように、VMAプロセッサ272と車両システム240との間の接続は、制御チャネルのみを含んでもよい。
【0104】
更に、VMAプロセッサ272は、VMAセンサ274を介して操作者から操作入力を受信してもよい。VMAセンサ274は、VMA装置270への操作入力の受信を専用に行うため、車両操縦入力サブブロック204からは独立している。VMAセンサ274は、操作者の一つ以上の動きを感知するのに用いられてもよい。更に、VMAセンサ274は、自動車の操縦性に影響を与え得る1つ以上の外部状態を感知するのに用いられてもよい。例えば、障害回避アプリケーションで、接近してくる物体を検知するのにVMAセンサ274が用いられてもよい。VMAセンサ274は、制御スティック、タッチパッド、タッチセンサ、光センサ、近接センサ、イメージセンサ、測距センサ、熱センサの全て又はいずれかを含むことがあるが、これらに限られない。
【0105】
本発明の各種実施形態によると、起動されたVMAは、1つ以上の操作者の命令と1つ以上の予め定義されたイベントの両方又はいずれかによって、休止、優先、終了の全て又はそのいずれかがなされてもよい。操作者が車両操縦入力サブブロック204の1つ以上の車両操縦装置を制御した場合、又は、VMAセンサ274が感知信号を生成した場合、起動されたVMAは、休止、優先、終了の全て又はいずれかがなされてもよい。更に、操作者が、インタフェースプロセッサ220によって生成され、操作者I/Oサブブロック202によって操作者に提示され得るメニューから1つ以上のオプションを選択した場合、起動されたVMAは休止、優先、終了の全て又はいずれかがなされてもよい。
【0106】
更に、幾つかの予め定義されたイベントの一つがインタフェースプロセッサ220によって検知された場合、起動されたVMAは休止、優先、終了の全て又はいずれかがなされてもよい。予め定義されたイベントは、車両システム240の動作に負の影響を与えるイベントを含んでもよいが、これらに限られない。インタフェースプロセッサ220は、診断プロセッサ230を介して、又は、車両操縦コントローラ241を介して各種センサを監視して、所定のイベントを検知してもよい。例えば、インタフェースプロセッサ220は、車輪245の1つがブレーキを掛け損ねた場合に、予め定義されたイベントを検知してもよい。別の例では、インタフェースプロセッサ220は、前軸243が回転し損ねた場合に、予め定義されたイベントを検知してもよい。別の例では、インタフェースプロセッサ220は、比例装置244が車両操縦コントローラ241の制御信号に応答しない場合、予め定義されたイベントを検知してもよい。
【0107】
操作者I/Oサブブロック202及び車両操縦入力サブブロック204は、それぞれ割込み信号を生成してもよく、割込み信号は、インタフェースプロセッサ220によって受信され、処理されてもよい。インタフェースプロセッサ220は、割込み信号を受信し処理したとき、起動されたVMAの特性(nature)によって、VMAを休止又は優先してもよい。
【0108】
操作者I/Oサブブロック202、車両操縦入力サブブロック204、及び、診断プロセッサ230は、それぞれ終了信号を生成してもよい。インタフェースプロセッサ220は、終了信号を受信し処理すると、起動されたVMAを終了、又は中断してもよい。
【0109】
VMAが休止されると、インタフェースプロセッサ220は、VMAプロセッサ272にVMAの実行を停止するよう指示してもよい。インタフェースメモリ225は、停止されたVMAのパラメータを一時的に記憶してもよい。記憶されたパラメータは、VMAが復帰するときに読み出されてもよい。更に、車両操縦コントローラ241が車両操縦入力サブブロック204によって生成された信号によって制御され得るように、インタフェースプロセッサ220は、VMAプロセッサ272と車両操縦コントローラ241との間を一時的に接続不可能にしてもよい。VMAの休止中、操作者は自動車の操縦を制御できてもよい。停止されたVMAは、操作者I/Oサブブロック202によって提示されたメニューから復帰オプションを選択するなどの操作で、操作者によって復帰されてもよい。復帰オプションが選択された場合、I/Oサブブロック202は、復帰信号を生成してもよい。インタフェースプロセッサ220は、復帰信号を受信し処理すると、VMAプロセッサ272と車両操縦コントローラ241との間に接続を再構築してもよい。そして、インタフェースプロセッサ220は、VMAプロセッサ272に停止されたVMAの実行復帰を指示してもよい。
【0110】
VMAが優先された場合、操作者(運転者など)及びVMAは、共同で車両操縦コントローラ241を制御してもよいが、操作者が生成した命令はVMAプロセッサ272が生成した指示より優先されてもよい。インタフェースプロセッサ220は、VMAプロセッサ272と車両操縦コントローラ241との間を瞬間的に接続不可能にする一方で、VMAプロセッサ272に優先されたVMAの実行を継続させてもよい。例えば、操作者が自動車の動作の制御を試みているか否かを確かめるため、インタフェースプロセッサ220は車両操縦入力サブブロック204によって生成された信号を監視してもよい。車両操縦サブブロック204からの入力信号を検知すると、インタフェースプロセッサ220は、VMAプロセッサ272と車両操縦コントローラ241との間を接続不可能にしてもよい。従って、車両操縦コントローラ241は、VMAプロセッサ272によって生成される指示の代わりに入力信号を受信し、入力信号によって制御されてもよい。入力信号が検知されない場合、インタフェースプロセッサ220は、VMAプロセッサ272を車両操縦コントローラ241に再度接続させてもよい。
【0111】
VMAが終了される場合、インタフェースプロセッサ220は、VMAプロセッサ272にVMAの実行を終了するよう指示してもよい。インタフェースメモリ225は、VMAが終了する前に実行された指示を記憶してもよい。インタフェースメモリ225は、診断プロセッサ230に、車両データロガー260に記憶される車両データと共に、実行された指示も分析するように指示してもよい。診断プロセッサ230は、実行された指示を車両データと比較し、自動車の操作、VMAの品質、操作者の運転習慣の全て又はいずれかに関連し得る各種事項を特定してもよい。例えば、診断プロセッサ230は、作動装置と車両システム240の物理的構成要素が適正に機能しているか否かを判断してもよい。他の例では、診断プロセッサ230は、VMAがプログラミング上のエラーを含むか否かを判断してもよい。他の例では、診断プロセッサ230は、操作者が道路の状態変化に十分対応しているか否かを判断してもよい。
【0112】
診断プロセッサ230は、診断結果をインタフェースプロセッサ220に送信してもよい。インタフェースプロセッサ220は、これに応答して、操作者I/Oサブブロック202を介して操作者に提示し得る、操作者に理解しやすい診断サマリを生成してもよい。加えて、インタフェースプロセッサ220は、一つ以上のVMAの起動、休止、優先、終了の全て又はそのいずれかの最中に、1つ以上の操作者に理解しやすいメッセージを生成してもよい。従って、操作者にはVMAの学習と操作に役立つ情報が得られる。
【0113】
本発明の別の実施形態によると、車両システム240は、更に、補助コントローラ250及び補助装置ブロック252を含んでもよい。補助コントローラ250は、補助アプリケーション装置290から受信した指示の実行に用いられてもよい。補助アプリケーション装置290は、VMA装置270に類似していてもよい。例えば、補助アプリケーション装置290は、補助プロセッサ292及び補助メモリ296を含んでもよい。補助メモリ296は、補助プロセッサ292と連結していてもよく、1つ以上の補助アプリケーションの記憶に用いられてもよい。補助プロセッサ292は、インタフェースプロセッサ220と連結していてもよく、1つ以上の補助アプリケーションの実行に用いられてもよい。補助アプリケーションは、自動車製造者と第三者の開発者の両方又はいずれかによって開発されてもよい。補助アプリケーションは、ナビゲーションアプリケーション、車内環境制御アプリケーション、オーディオ及びビデオアプリケーション、WEB閲覧アプリケーション、エンターテインメントアプリケーションの全て又はいずれかを含んでいてもよい。
【0114】
補助アプリケーションの実行では、補助プロセッサ292が、補助コントローラ250に、補助装置ブロック252の1つ以上の補助装置を制御するための1つ以上の制御信号を生成するよう指示してもよい。補助装置は、空調装置、音楽プレーヤー、ビデオプレーヤー、ビデオゲームプロセッサ、全地球測位システム(GPS)の全て、又はいずれかを含んでいてもよい。ある実施形態では、インタフェースプロセッサ220は補助プロセッサ292と補助コントローラ250との間に通信チャネルを提供してもよい。別の実施形態では、補助プロセッサ292は、補助コントローラ250と直接連結していてもよい。
【0115】
図2では、インタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、補助プロセッサ292は、個別のプロセッサであることが示されるが、本発明の代替の実施形態によると、インタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、補助プロセッサ292は、合わせて一つのプロセッサを形成していてもよい。この一つのプロセッサは、VMAインタフェース210の一部でもよく、幾つかのモジュールに分割され、各モジュールがインタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、補助プロセッサ292の機能を実行するのに用いられてもよい。
【0116】
インタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、補助プロセッサ292のそれぞれは、データを受信し、受信したデータを処理し、処理したデータを出力することが可能ないかなるコンピューティングデバイスでもよい。インタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、補助プロセッサ292のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらの組み合わせを用いて実現されてもよい。インタフェースプロセッサ220は、Advanced RISC Machine(ARM)、コンピュータ、コントローラ、デジタルシグナルプロセッサ(DSP)、マイクロプロセッサ、回路、プロセッサチップ、又は、データの処理が可能なその他の装置、及び、これらの組み合わせでもよい。
【0117】
図2はインタフェースメモリ225、車両データロガー260、VMAメモリ276、及び、補助メモリ296が個別に実施されることを示すが、本発明の代替の実施形態によると、これらは一つのメモリ装置で実現できる。この一つのメモリ装置は、幾つかの領域に分割されてもよく、各領域がインタフェースプロセッサ220、診断プロセッサ230、VMAプロセッサ272、及び、補助プロセッサ292によって処理されるデータを記憶するのに用いられてもよい。
【0118】
インタフェースメモリ225、車両データロガー260、VMAメモリ276、及び、補助メモリ296のそれぞれは、各種ルーチン及びデータを記憶してもよい。「メモリ」という用語は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、リードオンリーメモリ(ROM)、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、DVD、ブルーレイディスク、及び、指示とデータの両方又はいずれかを記憶し、格納し、又は、運ぶことが可能なその他の各種メディアを含むが、これらに限られない。
【0119】
次に、自動車で使用されるプロセッサによって実行され得るインタフェースソフトウェアの1つ以上のアルゴリズムを説明する。概して、インタフェースソフトウェアは、プロセッサによって実行されると、1つ以上の車両操縦アプリケーション(VMA)のインストール、更新、アンインストール、起動、監視の全て又はそのいずれかを行うためのインタフェースをプロセッサに提供させることがある。従って、インタフェースソフトウェアは、
図2で説明するように、インタフェースプロセッサ220の1つ以上の機能を呼び出してもよい。
【0120】
図3は、本発明の実施形態による、インタフェースシステムソフトウェア300のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、インタフェースシステムソフトウェア300は、プロセッサに以下の方法のステップを実行させることがある。
【0121】
ステップ302で、プロセッサはインタフェースシステムの電源を入れてもよい。操作者の要求に応答して、プロセッサは、1つ以上のすでにインストールされているVMAを事前ロード、事前設定、又はリセットしてもよい。ステップ304で、プロセッサは、
図2で説明した車両システム240などの車両システムを診断してもよい。プロセッサは、車両データロガー260から車両データを読み出し、車両システムの物理的構成要素及び作動装置が適正に機能しているかを判断してもよい。診断の実行後、プロセッサは操作者に診断結果を表示してもよい。更に、プロセッサは、診断結果をインタフェースメモリ225のようなメモリに保存してもよく、且つ/又は、診断結果をワイヤレスネットワーク装置280のようなネットワーク装置を介して遠隔ネットワークに送信してもよい。
【0122】
ステップ306では、プロセッサはメインメニューを生成してもよく、メインメニューは
図2で説明した操作者I/Oサブブロック202のような出力装置を介して、操作者に提示されてもよい。操作者は、メインメニューによって、
図2で説明した補助アプリケーション装置290のような補助装置を操作できてもよい。更に、操作者は、メインメニューによって、
図2で説明したVMA装置270のようなVMA装置を操作できてもよい。
【0123】
図9に例示するように、メインメニューは、メインメニュー画面表示900に提示されてもよい。メインメニュー画面表示900は、タイトルメッセージ902、車両操縦アプリケーション(VMA)の対話型オプション904、及び、補助アプリケーションの対話型オプション906を含んでいてもよい。操作者は、メインメニュー画面表示900をタッチして、VMAの対話型オプション904、又は、補助アプリケーションの対話型オプション906を選択してもよい。
【0124】
ステップ308で、プロセッサは、操作者の選択を検知してもよい。ステップ310で、プロセッサは、補助装置が選択されたかを判定してもよい。例えば、操作者が補助アプリケーションの対話型オプション906を選択すると、補助選択信号が生成される。プロセッサは、補助選択信号を検知すると、補助装置が選択されたと判定し、ステップ312を実行してもよい。ステップ312で、プロセッサは、補助装置サブルーチンを実行してもよい。補助装置サブルーチンの完了後、プロセッサはステップ306に戻ってもよい。
【0125】
補助選択信号が検知されない場合、プロセッサは補助装置が選択されていないと判定し、ステップ320を実行してもよい。ステップ320で、プロセッサは、VMA装置が選択されたかを判定してもよい。例えば、操作者がVMAの対話型オプション904を選択すると、VMA装置選択信号が生成されてもよい。プロセッサは、VMA装置選択信号を検知すると、VMA装置が選択されたと判定し、ステップ322を実行してもよい。ステップ322で、プロセッサは、
図4で詳細に説明されるVMA装置サブルーチンを実行してもよい。VMA装置サブルーチンの完了後、プロセッサはステップ306に戻ってもよい。
【0126】
図3では判定ステップ310が判定ステップ320の前に実行されているが、本発明の様々な別の実施形態によると、判定ステップ320は判定ステップ310の前、又は、同時に実行されてもよい。
【0127】
図4は、本発明の実施形態による、VMA装置サブルーチン400のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、VMA装置サブルーチン400は、プロセッサに以下の方法のステップを実行させることがある。
【0128】
ステップ402で、プロセッサは、VMA装置を開始してもよい。例えば、
図2で説明したように、プロセッサは、パラメータを、インタフェースメモリ225からVMAプロセッサ272にロードしてもよい。ステップ404で、プロセッサは、VMAメニューを生成してもよい。概して、VMAメニューによって、操作者は1つ以上のVMAのインストール、更新、アンインストール、起動の全て又はいずれかができてもよい。
【0129】
図10に例示するように、VMAメニューは、VMAメニュー画面表示1000に提示されてもよい。VMAメニュー画面表示1000は、タイトルメッセージ1002、インストールの対話型オプション1004、更新の対話型オプション1006、アンインストールの対話型オプション1008、及び、起動の対話型オプション1010を含むことがある。
【0130】
操作者は、VMAメニュー画面表示1000をタッチすることで、インストールの対話型オプション1004、更新の対話型オプション1006、アンインストールの対話型オプション1008、及び、起動の対話型オプション1010のいずれかを選択してもよい。
【0131】
あるいは、
図11に例示されるように、VMAメニューは、代替VMAメニュー画面表示1100に提示されてもよい。代替VMAメニュー画面表示1100は、タイトルメッセージ1102、VMA一覧、幾つかのアクションアイコン、幾つかの対話型オプション欄、及び、戻る対話型オプション1110を含むことがある。VMAの一覧は、VMA_A1104などのすでにインストールされたVMAを含んでいてもよい。VMAの一覧は、VMA_B1106などの、検知されたがまだインストールされていないVMAも含んでいてもよい。ステップ404に入ると、プロセッサは、
図2に示されるVMA入力サブブロック206又はワイヤレスネットワーク装置280を介して、まだインストールされていないVMAを自動的に検知してもよい。
【0132】
幾つかのアクションアイコンは、情報アイコン1121、インストールアイコン1122、更新アイコン1123、アンインストールアイコン1124、起動(実行)アイコン1125の全て、又はいずれかを含んでいてもよい。幾つかの対話型オプション欄は、幾つかのアクションアイコンの下に配置されてもよい。各対話型オプション欄は、一覧中のVMAと関連付けられ、操作者は関連付けられたVMAに利用可能な各種アクションを選択することができてもよい。
【0133】
例えば、第1の対話型オプション欄1134は、VMA_A1104に関連付けられてもよい。VMA_A1104はすでにインストールされているため、操作者は、第1の対話型オプション欄1134で、情報アイコン1121、更新アイコン1123、アンインストールアイコン1124、起動アイコン1125の全て又はいずれかを選択することができてもよい。他の例では、第2の対話型オプション欄1136は、VMA_B1106に関連付けられてもよい。VMA_B1106は、まだインストールされていないため、操作者は、第2の対話型オプション欄1136で、情報アイコン1121、インストールアイコン1122、の両方又はいずれかのみを選択することができてもよい。また別の例では、第3の対話型オプション欄1136は、VMA_C1106に関連付けられてもよい。VMA_A1104は遠隔サーバを介してのみアクセス可能なため、操作者は、第3の対話型オプション欄1136で、情報アイコン1121と起動アイコン1125の両方又はいずれかのみを選択することができてもよい。
【0134】
操作者が対話型オプションのいずれかを選択すると、プロセッサは選択されたオプションに関連する機能を実行することがある。操作者が、戻るオプションを選択すると、プロセッサは一つ前のメインメニュー画面表示900に戻ってもよい。
【0135】
ステップ406で、プロセッサは、操作者の選択を検知してもよい。ステップ410で、プロセッサは、インストールプロセスが選択されたかを判定してもよい。例えば、操作者がインストールアイコン1122を選択した場合、インストール信号(命令)を生成してもよい。プロセッサは、インストール信号(命令)を検知すると、インストールプロセスが選択されたと判定し、ステップ412を実行してもよい。ステップ412で、プロセッサは
図5で詳細に説明されるインストールサブルーチンを実行してもよい。インストールサブルーチンの完了後、プロセッサはステップ450を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【0136】
インストール信号(命令)が検知されない場合、プロセッサはインストールプロセスが選択されていないと判定し、ステップ420を実行してもよい。ステップ420で、プロセッサは、更新プロセスが選択されたかを判定してもよい。例えば、操作者が更新アイコン1123を選択した場合、更新信号(命令)が生成されてもよい。プロセッサは、更新信号(命令)を検知すると、更新プロセスが選択されたと判定し、ステップ422を実行してもよい。ステップ422で、プロセッサは
図6で詳細に説明される更新サブルーチンを実行してもよい。更新サブルーチンの完了後、プロセッサはステップ450を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【0137】
更新信号(命令)が検知されない場合、プロセッサは更新プロセスが選択されていないと判定し、ステップ430を実行してもよい。ステップ430で、プロセッサは、アンインストールプロセスが選択されたかを判定してもよい。例えば、操作者がアンインストールアイコン1124を選択した場合、アンインストール信号(命令)が生成されてもよい。プロセッサは、アンインストール信号(命令)を検知すると、アンインストールプロセスが選択されたと判定し、ステップ432を実行してもよい。ステップ432で、プロセッサは、
図7で詳細に説明されるアンインストールサブルーチンを実行してもよい。アンインストールサブルーチンの完了後、プロセッサはステップ450を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【0138】
アンインストール信号(命令)が検知されない場合、プロセッサはアンインストールプロセスが選択されていないと判定し、ステップ440を実行してもよい。ステップ440で、プロセッサは、起動(実行)プロセスが選択されたかを判定してもよい。例えば、操作者が起動アイコン1125を選択した場合、起動信号(命令)が生成されてもよい。起動信号(命令)を検知すると、プロセッサは起動プロセスが選択されたと判定し、ステップ422を実行してもよい。ステップ422で、プロセッサは、
図8で詳細に説明される起動サブルーチンを実行してもよい。起動サブルーチンの完了後、プロセッサはステップ450を実行してもよく、これによってプロセッサはインタフェースシステムに戻ることがある。
【0139】
図4では、判定ステップ410、420、430、及び440が特定の順序で実行されているが、判定ステップ410、420、430、及び440は、各種代替の実施形態によると、並行して、又は他の順序で実行されてもよい。
【0140】
図5は、本発明の実施形態による、インストールサブルーチン500のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、インストールサブルーチン500は、プロセッサに以下の方法のステップを実行させることがある。
【0141】
ステップ502で、プロセッサは、VMAソースからVMAを受信することがある。VMAソースはVMA入力サブブロック206と、ワイヤレスネットワークの両方又はいずれかを含んでいてもよく、
図2に示すワイヤレスネットワーク装置280を介してアクセスできてもよい。ステップ504で、プロセッサが受信したVMAを検証してもよい。例えば、プロセッサは受信したVMAが認証済み且つ試験済み、又はそのいずれかであるかを確かめることがある。他の例では、プロセッサは、受信したVMAが車両システムの車両操縦コントローラと互換性があることを確保するための互換性テストを行ってもよい。
【0142】
ステップ512で、プロセッサは、受信したVMAが検証に合格するかを判定してもよい。受信したVMAが検証に失敗する場合、インストールプロセスは終了してもよい。そこで、ステップ514で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得るインストールエラーメッセージを生成してもよい。ステップ536で、プロセッサは、インストールサブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。一方、受信したVMAが検証に合格する場合、インストールプロセスはステップ520に進んでもよい。
【0143】
ステップ520で、プロセッサは、
図2に示されるVMAメモリ276などのVMAメモリの利用可能なメモリ領域を確認してもよい。ステップ522で、プロセッサは、VMAメモリが検証済みVMAを記憶するのに十分なメモリ領域があるかを判定してもよい。VMAメモリが十分なメモリ領域を持たない場合、インストールプロセスは終了することがある。このように、ステップ524で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得るメモリ不足メッセージを生成してもよい。ステップ536で、プロセッサは、インストールサブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。一方、VMAメモリに十分なメモリ領域がある場合、インストールプロセスはステップ530に進んでもよい。
【0144】
ステップ530で、プロセッサは、検証済みVMAをVMAメモリにインストールしてもよい。ステップ532で、インストールしたVMAを将来、特定し、検索し、読み出せるように、プロセッサはインストールしたVMAを登録してもよい。ステップ534で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得るインストール完了メッセージを生成してもよい。ステップ536で、プロセッサは、インストールサブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。
【0145】
ある実施形態では、プロセッサはインストールステップと登録ステップを行なってもよい。別の実施形態では、プロセッサは、VMAプロセッサ272などの二次プロセッサに、インストールステップと登録ステップを行うよう指示してもよい。従って、インストールステップと登録ステップが完了した際に、プロセッサは二次プロセッサから適宜インストール確認信号を受信してもよい。
【0146】
図6は、本発明の実施形態による、更新サブルーチン600のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、更新サブルーチン600は、プロセッサに以下の方法のステップを実行させてもよい。
【0147】
ステップ602で、プロセッサは、VMAソースから修正VMAを受信することがある。VMAソースはVMA入力サブブロック206と、
図2に示すワイヤレスネットワーク装置280を介してアクセスし得るワイヤレスネットワークの両方又はいずれかを含んでいてもよい。修正VMAは、現在インストールされているVMAを更新又はアップグレードするために使用できるパッチデータでもよい。あるいは、修正VMAは、現在インストールされているVMAの新しいバージョンでもよい。
【0148】
ステップ604で、プロセッサは、受信した修正VMAを検証してもよい。例えば、プロセッサは、受信した修正VMAが認証済み且つ試験済みか、又はそのいずれかであるかを確かめることがある。他の例では、プロセッサは、受信した修正VMAが車両システムの車両操縦コントローラと互換性があることを確保する互換性テストを行ってもよい。また他の例では、プロセッサは、VMAの修正が車両システムの全体的な安定性に与える影響を評価する、システムの安定性テストを行ってもよい。
【0149】
ステップ612で、プロセッサは、受信した修正VMAが検証に合格するかを判定してもよい。受信したVMAが検証に失敗した場合、更新プロセスは終了してもよい。そこで、ステップ614で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得る更新エラーメッセージを生成してもよい。ステップ636で、プロセッサは更新サブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。一方、受信した修正VMAが検証に合格した場合、更新プロセスはステップ620に進んでもよい。
【0150】
ステップ620で、プロセッサは、
図2に示されるVMAメモリ276などのVMAメモリの、利用可能なメモリ領域を確認してもよい。ステップ622で、プロセッサは、VMAメモリに検証済みの修正VMAを記憶するのに十分なメモリ領域があるかを判定してもよい。VMAメモリに十分なメモリ領域がない場合、更新プロセスは終了してもよい。そこで、ステップ624で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得るメモリ不足メッセージを生成してもよい。ステップ636で、プロセッサは、更新サブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。一方、VMAメモリに十分なメモリ領域がある場合、更新プロセスはステップ630に進んでもよい。
【0151】
ステップ630で、プロセッサは、検証された修正VMAでターゲットVMAを更新してもよい。ステップ632で、更新されたVMAを将来、特定し、検索し、読み出せるように、プロセッサは更新されたVMAを再登録してもよい。ステップ634で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得る更新完了メッセージを生成してもよい。ステップ636で、プロセッサは、更新サブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。
【0152】
ある実施形態では、プロセッサは更新ステップと再登録ステップを行ってもよい。別の実施形態では、プロセッサは、VMAプロセッサ272などの二次プロセッサに、更新ステップと再登録ステップを実行するよう指示してもよい。更新ステップと再登録ステップが完了した際に、プロセッサは、二次プロセッサから、適宜、更新確認信号を受信してもよい。
【0153】
図7は、本発明の実施形態による、アンインストールサブルーチン700のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、アンインストールサブルーチン700は、プロセッサに以下の方法のステップを実行させることがある。
【0154】
ステップ702で、プロセッサは、あるVMAのアンインストールの選択を受信することがある。この選択は、操作者I/Oサブブロック202を介して受信され、
図10と
図11に示すアンインストールの対話型オプションを提示してもよい。
【0155】
ステップ704で、プロセッサは、選択されたVMAのアンインストールがシステム全体の安定性に与える影響を分析してもよい。例えば、プロセッサは、アンインストールが、一つ以上の選択されていないVMAを破壊し得るかを評価してもよい。他の例では、プロセッサは、アンインストールが、一つ以上の既存のVMAの動作を混乱させ得るかを評価してもよい。また他の例では、プロセッサは、アンインストールが、車両システムの一つ以上の機能性を阻害、無効化、又は遅延させ得るかを評価してもよい。
【0156】
ステップ712で、プロセッサはターゲットVMAのアンインストール後に、システム全体が安定しているかを判定してもよい。プロセッサが、アンインストールがシステム全体を著しく不安定にすると判定した場合、プロセッサはアンインストールプロセスを終了させてもよい。そこで、ステップ714で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得る、アンインストールエラーメッセージを生成してもよい。ステップ726で、プロセッサは、アンインストールサブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。一方、プロセッサが、アンインストールが、システム全体を著しく不安定にしないと判定した場合、アンインストールプロセスはステップ720に進んでもよい。
【0157】
ステップ720で、プロセッサは、
図2に示すVMAメモリ276などのVMAメモリから、ターゲットVMAを除去してもよい。ステップ722で、プロセッサは、除去したVMAの登録を解除してもよい。このようにして、プロセッサは、アンインストールしたVMAによってこれまで占領されていたメモリ領域を再利用、又は、リサイクルしてもよい。ステップ724で、プロセッサは、
図2に示す操作者I/Oサブブロック202を介して操作者に提示し得るアンインストール完了メッセージを生成してもよい。ステップ726で、プロセッサは、更新サブルーチンを抜け出て、VMA装置サブルーチン400に戻ってもよい。
【0158】
ある実施形態では、プロセッサは除去ステップと登録解除ステップを行ってもよい。別の実施形態では、プロセッサは、VMAプロセッサ272などの二次プロセッサに、除去ステップと登録解除ステップを行うよう指示してもよい。除去ステップと登録解除ステップが完了した際に、プロセッサは、二次プロセッサから、適宜、アンインストール確認信号を受信してもよい。
【0159】
図8は、本発明の実施形態による、VMA起動サブルーチン800のアルゴリズムのフローチャートを示す。プロセッサによって実行されると、VMA起動サブルーチン800は、プロセッサに以下の方法のステップを実行させることがある。
【0160】
ステップ802で、プロセッサは、あるVMAの起動の選択を受信することがある。この選択は、操作者I/Oサブブロック202を介して受信され、
図10と
図11に示す起動の対話型オプションを提示してもよい。
【0161】
ステップ804で、プロセッサは、選択されたVMAを起動することがある。プロセッサは、選択されたVMAを、VMAメモリからVMAプロセッサ272のようなVMAプロセッサにロードしてもよい。VMAプロセッサは、選択されたVMAの指示コードを実行するのに用いられてもよい。プロセッサは、次に、選択されたVMAを開始するため、車両データロガー260から車両データを読み出してもよい。更に、プロセッサは、必要に応じて、選択されたVMAを開始するために、インタフェースメモリ225から事前設定された又は事前ロードされたパラメータを読み出してもよい。
【0162】
ステップ806で、プロセッサは、車両操縦コントローラ241などの車両操縦コントローラとVMAプロセッサとの間の接続を構築してもよい。起動されたVMAの要件により、接続は一方向と双方向の両方、又はいずれかであってもよい。接続が構築されると、VMAプロセッサと、VMAプロセッサで実行される起動されたVMAは、車両操縦コントローラにアクセスし、制御してもよい。このように、起動されたVMAは、人による介入は少なく、車両の動作を制御してもよい。プロセッサは、周期的に、応答して、反復的に、又はそのいずれかで、自動車の状態、操作、動作、相対位置の全て又はいずれかに関する更新された情報を含み得る車両データロガーから車両データを読み出してもよい。プロセッサは読み出した車両データをVMAプロセッサに送信してもよく、起動されたVMAは、車両操縦コントローラを制御し、車両操縦コントローラと通信する、又はそのいずれかを行う際のフィードバック情報として、この車両データを使用することがある。
【0163】
操作者は、起動したVMAをどの時点で休止、優先、又は、終了してもよい。VMA起動サブルーチン800は、起動されたVMAの実行中、プロセッサに、常に、周期的に、又は、反復的に、操作者の入力を検知させてもよい。例えば、ステップ812で、プロセッサは、割り込み信号が検知されたかを判定してもよい。概して、割り込み信号は、操作者が生成した命令であってもよく、起動されたVMAを全休止(休止など)又は部分的に休止(優先など)させる要求であってもよい。割込み信号は、操作者I/Oサブブロック202がナビゲーションアプリケーションなどの補助アプリケーションからの出力を伝達中に、操作者I/Oサブブロック202によって受信されてもよい。
【0164】
図12に例示するように、ナビゲーション出力1202と共に、VMAバー1204が、起動されたVMA画面表示1200に表示されてもよい。VMAが完全に起動したら、VMAバー1204は、アクティブ状態アイコン1212、全休止アイコン1214、部分休止アイコン1216、終了アイコン1218の全て、又はいずれかを表示してもよい。アクティブ状態アイコン1212は、VMA_Bが起動され、バックグラウンドで稼動中であることを示してもよい。操作者は、起動されたVMAを完全に休止する全休止アイコン1214を選択するか、起動されたVMAを部分的に休止する部分休止アイコン1216を選択してもよい。更に、操作者は起動されたVMAを終了する終了アイコン1218を選択してもよい。
【0165】
全休止アイコン1214又は部分休止アイコン1216のいずれかが選択される際、操作者I/Oサブブロック202によって割込み信号が生成されてもよい。割込み信号には、操作者が選択した休止の種類に関連した情報が埋め込まれていてもよい。あるいは、操作者が、
図1に示すハンドル102、アクセルペダル104、ブレーキペダル106、変速装置108の全て、又はいずれかなどの車両操縦入力装置の操作を開始したとき、割込み信号が生成されてもよい。操作の時間と頻度によって、割込み信号は、操作者が全休止を選択したか、部分休止を選択したかを示してもよい。
【0166】
割込み信号が検知された場合、VMA起動サブルーチン800はステップ814に進んでもよい。ステップ814で、プロセッサは、起動されたVMAを休止してもよく、VMAプロセッサと車両操縦コントローラとの間の接続を休止してもよい。プロセッサは、操作者が全休止を選択したか、部分休止を選択したかを判定するために、更に、割込み信号を処理してもよい。
【0167】
全休止が選択された場合、プロセッサはVMAからの指示の処理を停止し、VMAプロセッサと車両操縦コントローラとの間の接続を不可能にしてもよい。VMAが全休止しているときは、操作者が自動車の動作を制御してもよい。車両データロガーは、物理的構成要素の動作と作動装置の動作に関連した車両データを記録し続けてもよい。
【0168】
ある実施形態では、プロセッサは、操作者に、VMAが起動モードから全休止モードに移行又は移動したと通知してもよい。
図13に例示するように、ナビゲーション出力1202と共に、VMAバー1304が、全休止画面表示1300に表示されてもよい。VMAが全休止したら、VMAバー1304は、全休止状態アイコン1312、復帰アイコン1314、及び、終了アイコン1218を表示してもよい。操作者が自動車の動作を直接制御できるように、全休止状態アイコン1312は、VMA_Bが完全に休止していることを示してもよい。操作者は、停止されたVMAを復帰するために復帰アイコン1314、又は、停止されたVMAを終了するために終了アイコン1218を選択してもよい。
【0169】
一方、部分休止が選択された場合、プロセッサは、操作者の入力がVMAの指示を優先するのを許可してもよい。操作者が、1つ以上の車両操縦入力装置を操作する際に、プロセッサは、VMAプロセッサと車両操縦コントローラとの間の接続を不可能にしてもよい。このようにして、車両操縦コントローラは、VMAの指示の代わりに、操作者の入力に応答してもよい。車両データロガーは、物理的構成要素の動作と作動装置の動作に関連した車両データを記録し続けてもよい。これに応えて、プロセッサは、車両データロガーからの車両データをVMAプロセッサに送信し続けてもよい。このように、VMAプロセッサは、部分休止したVMAの指示を処理し続けてもよい。
【0170】
操作者が車両操縦入力装置の操作を完了するとすぐに、プロセッサは、VMAプロセッサに車両操縦コントローラの制御を回復させてもよい。操作者が1つ以上の車両操縦入力装置の操作を再開するまで、車両操縦コントローラは、部分休止したVMAからの指示に応答してもよい。
【0171】
ある実施形態では、プロセッサは、操作者に、VMAが起動モードから部分休止モードに移行した又は移動したと通知してもよい。
図14に例示するように、ナビゲーション出力1202と共に、VMAバー1404が、部分休止画面表示1400に表示されてもよい。VMAが部分休止したら、VMAバー1404は、部分休止状態アイコン1412、全休止アイコン1214、復帰アイコン1314、及び、終了アイコン1218を表示してもよい。自動車の動作制御の際に、操作者が部分休止したVMAと対話ができるように、部分休止ステータスアイコン1412は、VMA_Bが部分的に休止していることを示してもよい。操作者は、休止したVMAを復帰するために復帰アイコン1314、又は、休止したVMAを終了するために終了アイコン1218を選択してもよい。
【0172】
休止ステップが実行された後、プロセッサは、復帰信号が検知されたかをプロセッサが判定し得るステップ822を実行してもよい。操作者が復帰アイコン1314を選択した際に、復帰信号が生成されてもよい。復帰信号が検知されない場合、VMA起動サブルーチン800は、ステップ814に戻ってもよく、これによって、プロセッサはVMAの休止を継続してもよい。一方、復帰信号が検知されると、VMA起動サブルーチン800はステップ824に進んでもよい。ステップ824で、プロセッサは休止したVMAを復帰し、VMAプロセッサと車両操縦コントローラとの間の接続を復帰してもよい。その後、VMA起動サブルーチン800は、ステップ804に戻ってもよい。
【0173】
ステップ812を再度参照して、割込み信号が検知されない場合、VMA起動サブルーチン800はステップ832に進んでもよい。ステップ832で、プロセッサは、終了信号が検知されたかを判定してもよい。概して、操作者が
図12〜
図14に示される終了アイコン1218を選択した際に、終了信号が生成されてもよい。更に、センサが1つ以上の危急イベント(exigent events)を検知した際に、終了信号が生成されてもよい。危急イベントは、物理的構成要素の障害、作動装置の障害、車両操縦コントローラの障害の全て、又はいずれかを含んでもよいが、これらに限られない。更に、危急イベントは、大雪状態、豪雨状態、視界不良状態の全て、又はいずれかなどの外部状態の変化を含んでもよい。ある実施形態では、危急イベントは起動されたVMAによって予め定義されてもよい。別の実施形態では、危急イベントはインタフェースシステムソフトウェア300によって予め定義されてもよい。また別の実施形態では、危急イベントは操作者によって予め定義されてもよい。
【0174】
終了信号が検知されない場合、VMA起動サブルーチン800はステップ804に戻り、プロセッサは選択されたVMAを実行し続けてもよい。しかしながら、終了信号が検知された場合、VMA起動サブルーチン800は、ステップ834に進んでもよい。
【0175】
ステップ834で、プロセッサは、起動されたVMAを終了し、VMAプロセッサと車両操縦コントローラとの間の接続を終了してもよい。プロセッサは、終了したVMAのすでに実行された指示を記憶するため、VMA実行レコードを作成してもよい。VMA実行レコードはインタフェースメモリに記憶され、VMAの動作や運転事象(driving incidents)の1つ以上の原因の両方、又はいずれかの分析のために読み出されてもよい。1つ以上の運転事象は、脱線事象、スピード違反事象、前面衝突事象、追突事象、トラクション喪失事象、物理的構成要素の機能不全、作動装置の機能不全、車両操縦コントローラの機能不全の全て、又はいずれかを含んでいてもよいが、これらに限られない。
【0176】
ステップ836で、プロセッサは、車両データとVMA実行レコードに基づいてシステムの診断を行ってもよい。プロセッサは、VMA実行レコードのすでに実行された指示と、車両データとを照合し、同調させる、又はそのいずれかを行ってもよい。プロセッサは、適宜、1つ以上の運転事象を特定してもよい。プロセッサは、車両データの個別分析、VMA実行レコードと組み合わせた分析の両方、又はいずれかによって、特定した運転事象の1つ以上の原因を更に判断してもよい。加えて、プロセッサは、分析した結果を1つ以上の遠隔ネットワークを介して、各種代行機関に提出してもよい。各種代行機関は、それに応え、VMAの品質を向上させるために分析された結果を使用してもよい。
【0177】
本発明の別の実施形態によると、プロセッサはVMAの実行と同時に診断ステップを実行してもよい。プロセッサは、起動されたVMAのリアルタイムの動作と一緒に、物理的構成要素と作動装置のリアルタイムの状態を分析してもよい。プロセッサは、遠隔ネットワークを介して、リアルタイムの分析をエージェントに提出してもよい。リアルタイムの分析に基づいて、エージェントは、すぐに発生しそうな運転事象を予測してもよい。このように、エージェントは、操作者に警告メッセージを送り、起動したVMAを優先することで、又はそのいずれかによって、すぐに発生しそうな運転事象を回避する手助けをしてもよい。
【0178】
ステップ836の後、VMA起動サブルーチン800は完了してもよい。ステップ838で、プロセッサは、VMA起動サブルーチン800を抜け出て、VMA装置サブルーチン400に戻ってもよい。
【0179】
ある実施形態では、プロセッサは起動ステップ、休止ステップ、復帰ステップ、終了ステップ、及び、診断ステップを実行してもよい。別の実施形態では、プロセッサは、VMAプロセッサ272などの二次プロセッサに、起動、休止、復帰、そして終了ステップの実行を指示し、診断プロセッサ230などの三次プロセッサに診断ステップの実行を指示してもよい。従って、起動ステップ、休止ステップ、復帰ステップ、終了ステップ、診断ステップの全て、又はいずれかが完了すると、プロセッサは、二次及び三次プロセッサから各種確認信号を受信してもよい。
【0180】
再度
図2を参照して、本発明の各種実施形態によると、VMAインタフェース210は、VMA装置270へのアクセスを制限し、制御する、又はそのいずれかを行うために、1つ以上のロックモード含んでいてもよい。ロックモードの実行中、VMAインタフェース210は、権限のない操作者がいずれかのVMAをインストール、修正、アンインストールの全て、又はいずれかを行うのを防いでもよい。加えて、VMAインタフェース210は、権限のある操作者が有効化、無効化、起動、優先、終了の全て、又はいずれかをなし得るVMAの量あるいは種類を制限してもよい。
【0181】
例えば、VMAインタフェース210は、操作者Aに新しいVMAのインストールのみを許可し、操作者AにインストールされたVMAの更新又はアンインストールを許可しないことがある。別の例では、VMAインタフェース210は、操作者Bに第1のVMA(車線変更補助アプリケーションなど)には完全なアクセスを許すが、操作者Bが第2のVMA(衝突回避アプリケーションなど)を終了する権限は与えないことがある。また別の例では、VMAインタフェース210は、操作者Cに第1グループのVMAのみ(補助指向のVMAなど)の起動、終了の両方、又はいずれかを許可し、操作者Dに第2グループのVMAのみ(安全性指向のVMAなど)の起動、終了の両方、又はいずれかを許可してもよい。
【0182】
VMA装置270へのアクセスを制御し、制限する、又はそのいずれかを行う能力は、自動車が複数の操作者によって操作され得る状況で有益なことがある。ある実施形態では、VMAインタフェース210は、各操作者によってなされた変更を記録し続けてもよい。これら変更は、VMA装置270の内容と設定に影響を与えることがある。記録は、ローカルでインタフェースメモリ225に記憶されても、遠隔で、ネットワーク上の記憶媒体に記憶されてもよい。記憶されたレコードは、各操作者の運転習慣、起動されたVMAの動作、自動車の各種物理的構成要素の動作、の全て又はいずれかを分析するのに役立つかもしれない。診断プロセッサ230は、各操作者の運転イベントの配列を再現するために記録を使用してもよい。運転イベントの配列は、操作者の入力と、自動車の物理的構成要素によって伝えられた実際の出力とを関連付けたものでもよい。診断プロセッサ230は、各操作者の技術レベルを判断し、インストールされたVMAに関連する潜在的課題を特定する、又はそのいずれかを行うために、運転イベントの配列を使用してもよい。
【0183】
加えて、ロックモードによって、自動車の一次操作者は、1つ以上のグループの二次操作者の運転行動を監視し、制御する、又はそのいずれかを行ってもよい。状況によっては、一次操作者は、自動車の所有者兼管理者、又はそのいずれかで、二次操作者は、1つ以上のグループの賃借人兼運転者、又はそのいずれかかもしれない。一次操作者は、二次操作者の好みを無視した幾つかのVMAを強制的に有効化するために、ロックモードを使用してもよい。例えば、一次操作者は、衝突回避アプリケーションを強制的に有効にし、二次操作者が衝突回避アプリケーションの補助付きで車両を操作できるようにしてもよい。
【0184】
強制的に有効にされたVMAのおかげで、自動車の安全性能が向上し、一方で、自動車を損傷させるリスク又は二次操作者に怪我をさせるリスクが低減するかもしれない。この特徴はレンタカー産業にとって、特に有益かもしれない。レンタカー会社は、主として、レンタカーを様々な技術レベルの顧客に提供することがある。運転技術又は安全性意識の低い顧客は、レンタカーに損傷を追わせる可能性が高い。しかしながら、特定の顧客が優良運転者か否かを見極めるのは難しいことがある。
【0185】
レンタカーはレンタカー会社にとって主要な資産であり得るため、顧客に確実に安全で慎重な方法でレンタカーを操作してもらうことで、レンタカー会社はレンタカーを無傷な状態で保ちたいかもしれない。この目的を達成するために、レンタカー会社は、顧客に、車線変更補助アプリケーション及び衝突回避アプリケーションなどの、幾つかの安全性指向のVMAを使用するよう要求してもよい。あるいは、レンタカー会社は、顧客が自らを優良運転者と証明できる場合、又は、顧客が自動車に潜在的な損傷を与えるリスクをカバーする料金を支払う意思がある場合は、そのような要求を放棄してもよい。
【0186】
ロックモードは、他のエンティティにも同様に有益なことがある。例えば、親がロックモードを用いて、子の運転者用に幾つかの安全性指向のVMAを強制的に有効にしてもよい。別の例では、バス会社やトラック会社などの運輸会社が、従業員の運転者用に、幾つかの補助指向のVMAを強制的に有効にするためにロックモードを使用してもよい。
【0187】
ロックモードを開始するために、インタフェースプロセッサ220が操作者の真正性を検証してもよい。VMAロックモード1500の画面表示を示す
図15を参照すると、インタフェースプロセッサ220は、セキュリティロックコード1510を受け付けて、処理することで、各操作者を特定してもよい。セキュリティロックコード1510は、関係付けられた操作者の識別、及び、関係付けられた操作者が持ち得るアクセスレベルに関する情報と共に、暗号化されていてもよい。例えば、セキュリティロックコード1510は、第1コードセグメント1512と第2コードセグメント1514を持つことがある。第1コードセグメント1512は、操作者の識別を暗号化するのに用いられ、第2コードセグメント1514は操作者が持ち得るアクセスレベルの暗号化に用いられてもよい。
【0188】
セキュリティロックコード1510のセキュリティ機能を向上させるため、第1コードセグメント1512と第2コードセグメント1514の両方、又はいずれかを、常に、繰り返し、周期的に、反復的に、応答して、又はそのいずれかで、遠隔サーバから更新してもよい。更新された第1コードセグメント1512は、遠隔アクセスキーフォブ、携帯情報端末装置、携帯電話の全て、又はいずれかなどの個人通信装置を介して、関係付けられた操作者に送信されてもよい。
【0189】
第1コードセグメント1512と第2コードセグメント1514は互いに依存していてもよい。つまり、第1コードセグメント1512のコードシーケンスは、第2コードセグメント1514を復号する1つ以上のキーを含んでいてもよい。同様に、第2コードセグメント1514のコードシーケンスは、第1コードセグメント1512を復号する1つ以上のキーを含んでいてもよい。あるいは、第1コードセグメント1512と第2コードセグメント1514がそれぞれ独立して復号されるように、第1コードセグメント1512は第2コードセグメント1514から独立していてもよい。別の実施形態では、第1コードセグメント1512と第2コードセグメント1514は、一つのコードセグメントを形成するように、入り組み、組み合わせ、混ぜ合わされる、又はそのいずれかがなされてもよい。また別の実施形態では、第1コードセグメント1512と第2コードセグメント1514は、権限のある操作者に予め付与されてもよく、権限のある操作者によってのみ修正できる。
【0190】
代替VMAロックモード1600の画面表示を示す
図16を参照すると、インタフェースプロセッサ220が、パスワード1614と併せてユーザ識別文字列1612を受け付けて、処理することで各操作者を識別してもよい。ユーザ識別文字列1612は、特定の操作者に特有であってもよく、パスワード1614は特定の識別文字列1612に特有であってもよい。識別文字列1612は、インタフェースプロセッサ220、ローカルの管理者、遠隔の管理者の全て、又はいずれかによって操作者に予め付与されていてもよい。パスワード1614は、識別文字列1612の認証に用いられてもよい。パスワード1614は、遠隔のサーバによって更新され、反復して、周期的に、応答して、又はそのいずれかで操作者に伝達されてもよい。あるいは、パスワード1614は、操作者によって修正されてもよい。
【0191】
インタフェースプロセッサ220は、インタフェースメモリ225又は遠隔サーバに記憶され得る1つ以上のレコードを検索して、パスワード1614が有効かを判断してもよい。パスワードが有効な場合、インタフェースプロセッサ220は有効な操作者に与えられたアクセスレベルを決定してもよい。インタフェースプロセッサ220は有効な操作者のアクセスレベルの範囲で、変更を受け入れてもよい。インタフェースプロセッサ220は、有効な操作者のアクセスレベルの範囲外の変更は拒絶してもよい。
【0192】
VMAロックモード1500と代替VMAロックモード1600の両方において、インタフェースプロセッサ220は、VMAインタフェースがロックされた日時を記録し続けてもよい。例えば、VMAロックモード1500は、セキュリティロックコード日付1520とセキュリティロックコード時間1530を記録し続けてもよい。別の例では、代替ロックモード1600は、パスワード確認日1620とパスワード確認時間1630を記録し続けてもよい。診断プロセッサ230は、日時データを、各種有効化されたVMAと共に各種操作者の行動のタイムスタンプとして用いてもよい。そして、診断プロセッサ230は、タイムスタンプされた行動に基づいて、運転イベントを時間順に配列してもよい。
【0193】
次に、インテリジェントナビゲーションシステムと車両制御システム200の一体化について解説する。
図17は、本発明の実施形態による、インテリジェントナビゲーションシステム1700のブロック図を示す。インテリジェントナビゲーションシステム1700は、車両制御システム200、衛星1710、及び、コンピュータサーバ1722を組み入れてもよい。車両制御システム200のVMAセンサ274には、測位装置277と、操縦性センサ278が含まれていてもよい。測位装置277は、主として、
図1Aで説明した測位機能ブロックの役割を担っていてもよい。測位装置277は、衛星1710から、衛星信号1702を受信してもよい。衛星信号1702に基づいて、測位装置277は、自動車の位置を決定してもよい(初期位置、移動中の位置など)。
【0194】
測位装置277は、任意で、
図1Aで説明した経路指定機能ブロックの役割も担っていてもよい。これによって、測位装置277は、ワイヤレスネットワーク装置280及びクラウドネットワーク1720などのワイヤレスネットワークを介して、コンピュータデータベース1724に記憶され、更新される道路状況情報を受信してもよい。測位装置277は、自動車を初期位置から目的地までナビゲートするための経路を計算するのに、受信した道路状況情報を使用してもよい。更に、位置装置277は、1つ以上の検知した外部操縦状態1701又は内部操縦状態を用いて、計算した経路を更新してもよい。
【0195】
外部操縦状態1701は、自動車100の周囲状態に関連していてもよく、操縦性センサ278によって検知できる。内部操縦状態は、自動車100の操作状態に関連していてもよく、車両操縦コントローラ241によって操縦できる。本明細書において、明細書での制限においては、自動車の外部操縦性状態1707は、自動車100と周辺物体との間の相対距離、自動車100と周辺物体との間の相対速度、交通信号灯の出力状態、車線境界の全て、又はいずれかを含むことがあり、内部操縦性状態は、自動車100の燃料レベル、自動車100の速度、自動車100の馬力、自動車100のベアリング、自動車100のブレーキ状態の全て、又はいずれかを含むことがある。
【0196】
あるいは、経路指定機能は、インテリジェントナビゲーションアプリケーション(インテリジェントナビゲーションシステム1700のアルゴリズムコードなど)によって一体的に実行されてもよい。概して、インテリジェントナビゲーションアプリケーションは、
図1Aで説明されたナビゲーションタスク機能ブロックの機能内容を実施してもよい。特に、インテリジェントナビゲーションアプリケーションは、車両操縦アプリケーション(VMA)の一種でもよい。このように、インテリジェントナビゲーションアプリケーションは、VMAインタフェース210によってインストール及び修正されることが可能で、VMAインタフェース210によって構築された接続を介して、車両操縦コントローラ241を制御し、車両操縦コントローラ241に命令することができる。
【0197】
インテリジェントナビゲーションアプリケーションは、VMAプロセッサ272によってアクセスされ得るVMAメモリ276にインストールされてもよい。インテリジェントナビゲーションアプリケーションの実行に用いられる場合、VMAプロセッサ272は、ナビゲーションプロセッサと呼ばれることがある。あるいは、インテリジェントナビゲーションアプリケーションは、コンピュータサーバ1722によってアクセスされ得る遠隔のコンピュータデータベース1724に記憶されてもよい。インテリジェントナビゲーションアプリケーションの実行に使用される場合、コンピュータサーバ1722もまた、ナビゲーションプロセッサと呼ばれることがある。システムの構成によっては、インテリジェントナビゲーションアプリケーションは、VMAプロセッサ272が優位で実行されたり、コンピュータサーバ1722が優位で実行されたり、又は、VMAプロセッサ272とコンピュータサーバ1722によって共同で実行されることが可能である。
【0198】
第1の構成では、VMAプロセッサ272がマスタデバイスとして稼動し、コンピュータサーバ1722がスレーブデバイスとして稼動してもよい。このような構成では、VMAプロセッサ272が、インテリジェントナビゲーションアプリケーションの主要部分を実行する役割を担うことがある。VMAプロセッサ272は、インタフェースプロセッサ220に操縦性機能を出力してもよい。インタフェースプロセッサ220は、これに応答して、車線追跡VMA、車線変更補助VMA、衝突回避VMA、又は、自動駐車VMAなどの、1つ以上のサブタスクVMAを呼び出してもよい。加えて、インタフェースプロセッサ220は、操縦性機能のそれぞれを車両操縦コントローラ241によって実施可能な指示に直接コンパイルしてもよい。VMAプロセッサ272の計算機能を促進するために、コンピュータサーバ1722は、コンピュータデータベース1724に記憶された道路状況情報を分析し、分析した情報をVMAプロセッサ272に提供してもよい。
【0199】
第2の構成では、コンピュータサーバ1722がマスタデバイスとして稼動し、VMAプロセッサ272がスレーブデバイスとして稼動してもよい。このような構成では、コンピュータサーバ1722がインテリジェントナビゲーションアプリケーションの主要な部分を実行する役割を担ってもよい。コンピュータサーバ1722は、インタフェースプロセッサ220に操縦性機能を出力してもよい。インタフェースプロセッサ220は、これに応答して、車線追跡VMA、車線変更補助VMA、衝突回避VMA、又は自動駐車VMAなどの、1つ以上のサブタスクVMAを呼び出してもよい。加えて、インタフェースプロセッサ220は、操縦性機能のそれぞれを車両操縦コントローラ241によって実施可能な指示に直接コンパイルしてもよい。コンピュータサーバ1722の計算機能を促進するために、VMAプロセッサ272は操縦性状態を分析し、分析した情報をコンピュータサーバ1722に提供してもよい。
【0200】
第3の構成では、コンピュータサーバ1722とVMAプロセッサ272は、それぞれ、ピアデバイスとして稼動してもよい。コンピュータサーバ1722は、道路状況に依存するインテリジェントナビゲーションアプリケーションの一部分を実行する役割を担ってもよい。VMAプロセッサ272は、操縦性状態に依存するインテリジェントナビゲーションアプリケーションの一部分を実行する役割を担ってもよい。このような構成では、VMAプロセッサ272とコンピュータサーバ1722は、同時に変化する道路状況と操縦性状態に対処する全体的な応答時間を減少させるため、並行してデータを処理してもよい。コンピュータサーバ1722及びVMAプロセッサ272は、1つ以上の予め定義された制約事項に基づいて、これらの出力を比較し、一組の操縦性機能を選択してもよい。選択された操縦性機能は、インタフェースプロセッサ220に送信されてもよい。インタフェースプロセッサ220は、これに応答して、車線追跡VMA、車線変更補助VMA、衝突回避VMA、又は、自動駐車VMAなどの、1つ以上のサブタスクVMAを呼び出してもよい。加えて、インタフェースプロセッサ220は、操縦性機能のそれぞれを、車両操縦コントローラ241によって実施可能な指示に直接コンパイルしてもよい。
【0201】
VMAプロセッサ272とコンピュータサーバ1722は協力して稼動することもあるが、VMAプロセッサ272とコンピュータサーバ1722は、それぞれ独立して稼動してもよい。第1の代替構成では、VMAプロセッサ272はインテリジェントナビゲーションアプリケーションの全部分を実行する役割を担い、コンピュータサーバ1722は道路状況情報をコンピュータデータベース1724から読み出すダミー端末として機能してもよい。第2の代替構成では、コンピュータサーバ272はインテリジェントナビゲーションアプリケーションの全部分を実行する役割を担い、VMAプロセッサ272は操縦性状態情報を操縦性センサ278から伝達するダミー端末として機能してもよい。
【0202】
図18は、本発明の実施形態による、インテリジェントナビゲーションアプリケーション1800のアルゴリズムのフローチャートを示す。ナビゲーションプロセッサによって実行された場合、インテリジェントナビゲーションアプリケーション1800は、ナビゲーションプロセッサに以下の方法のステップを実行させてもよい。
【0203】
ステップ1802では、インテリジェントナビゲーションアプリケーションが起動されてもよい。構成により、インテリジェントナビゲーションアプリケーション1800は、VMAプロセッサ272、あるいは、コンピュータサーバ2722によって起動されてもよい。ステップ1804で、VMAプロセッサ272とコンピュータサーバ1722の両方又はいずれかでもよいナビゲーションプロセッサと、車両操縦コントローラ241との間に接続を構築してもよい。このような接続は、VMAインタフェース210によって提供されたプラットフォームを介して構築できる。結果、起動されたインテリジェントナビゲーションアプリケーション1800は、車両操縦コントローラ241を介して自動車100の動作を制御してもよい。
【0204】
ステップ1806では、1つ以上のユーザ定義の目的地が、ユーザI/Oサブブロック202を介して受信されてもよい。ステップ1808では、受信された目的地に対するユーザ定義の優先順位もまた受信されてもよい。ユーザ定義の優先順位は、ユーザが到着したい目的地の順位を明確にすることがある。
【0205】
ステップ1810で、自動車100の初期位置は、測位装置277などの測位装置によって生成された出力信号に基づいて決定されてもよい。ステップ1812では、自動車100を、ユーザ定義の優先順位に従って、初期位置からユーザ定義の目的地まで案内するための経路が計算されてもよい。計算された経路は、
図1Aで説明した道路状況と操縦性状態の両方又はいずれかを含み得る、予め定義された一組のパラメータに基づいて更新されてもよい。経路計算と経路更新が予測的で能動的に実行されるので、変化し続ける運転状態に、より的確に対応できることがある。
【0206】
ステップ1814では、計算された経路に基づいて1つ以上のナビゲーションタスクを決定することができる。
図19は、本発明の実施形態による、ナビゲーションタスク決定サブルーチン1900のアルゴリズムのフローチャートを示す。
【0207】
ステップ1902で、計算された経路中に、1つ以上の経路指定位置が定義されてもよい。経路指定位置の定義は、測位装置277によって個別に、あるいは、測位装置277とナビゲーションプロセッサによって共同してなされてもよい。
【0208】
ステップ1904で、2つ以上の経路指定位置の間の交通状況が分析されてもよい。ステップ1906で、2つ以上の経路指定位置の間の地形状態が分析されてもよい。ナビゲーションプロセッサは、コンピュータデータベース1724などの遠隔のデータベースから交通状況と地形状態を読み出してもよい。ナビゲーションプロセッサは、
図1Aで説明したナビゲーションタスク機能ブロックと同様の方法で、交通状況と地形状態の分析を行ってもよい。
【0209】
ステップ1908では、1つ以上の操縦性機能が、2つの経路指定位置の間で決定されてもよい。操縦性機能は、インテリジェントナビゲーションアプリケーション1800の中で定義されてもよい。加えて、操縦性機能は、1つ以上の他の予めインストールされたVMAの呼び出しを伴ってもよい。対応する交通状況と対応する地形状態に基づいて、操縦性機能を選択、付与してもよい。
【0210】
再度
図18を参照すると、インテリジェントナビゲーションアプリケーション1800は、1つ以上のナビゲーションタスクが決定された後でステップ1816に進んでもよい。ステップ1816では、現在のナビゲーションタスクが実行されてもよい。
図20は、本発明の実施形態による、ナビゲーションタスク実行サブルーチン2000のアルゴリズムのフローチャートを示す。
【0211】
ステップ2002では、現在のナビゲーションタスクが読み出されてもよい。特に、ナビゲーションプロセッサは、VMAメモリ276とコンピュータデータベース1724の両方又はいずれかから、操縦性機能を読み出してもよい。ナビゲーションプロセッサは、読み出した操縦性機能をインタフェースプロセッサ220に送信してもよい。これに応答して、インタフェースプロセッサ220は、操縦性機能を実行するために、操縦性機能をコンパイルするか、他のVMAを呼び出してもよい。読出しステップは、ナビゲーションタスク決定サブルーチン1900と同時に行われてもよい。あるいは、ナビゲーションタスク決定サブルーチン1900の後、読出しステップが行われてもよい。
【0212】
ステップ2004では、車両操縦コントローラ241がナビゲーションタスクの実行を指示されてもよい。この時点で、ナビゲーションタスクと、関連付けられた操縦性機能とが作動される。コンパイルされた操縦性機能に従って、自動車100は動作する。作動ステップは、ナビゲーションタスク決定サブルーチン1900と同時に行われてもよい。あるいは、ナビゲーションタスク決定サブルーチン1900の後、読出しステップが行われてもよい。アプリケーションによって動かされた車両制御は、人の操作者によって停止、休止、復帰、優先の全て、又はいずれかができる。作動されたナビゲーションタスクが停止、休止、優先の全て又はそのいずれかがなされた場合、インタフェースプロセッサ220は車両操縦コントローラ241から解放されてもよい。しかしながら、ナビゲーションプロセッサは背景で稼動し続け、インタフェースプロセッサ220は新しく読み出された操縦性機能を継続的にコンパイルしてもよい。
【0213】
ステップ2006では、1つ以上の操縦性状態が検知されてもよい。操縦性状態は、自動車の燃料レベル、自動車の速度、自動車の馬力、自動車のブレーキ状態、自動車のベアリング、自動車と周辺物体との間の相対距離、自動車と周辺物体との間の相対速度、交通信号灯の出力状態、又は、車線境界の少なくとも一つを含む。応答時間を改善するため、検知ステップはステップ2004と同時に実行されてもよい。
【0214】
ステップ2008では、現在のナビゲーションタスクが、検知した操縦性状態で継続できるかに関する判定が行われてもよい。ナビゲーションプロセッサは、検知された操縦性状態における、現在のナビゲーションタスク又はそれぞれの操縦性機能を遂行した場合の安全率を決定してもよい。そして、ナビゲーションプロセッサは、安全率を予め定義した閾値と比較してもよい。
【0215】
安全率が、予め定義した閾値を下回る場合、ナビゲーションプロセッサは現在のナビゲーションタスクが継続できないと判断し、サブルーチン2000はステップ2014に進んでもよい。ステップ2014では、現在検知されている操縦性状態で、ある代替ナビゲーションタスクが安全率を向上させると判断されるかもしれない。ステップ2016では、代替ナビゲーションタスクが現在のナビゲーションタスクに割り当てられてもよい。サブルーチン2000は、ステップ2102に戻ってもよい。その結果、車両操縦コントローラ241は、代替ナビゲーションタスクを作動できる。
【0216】
一方で、安全率が予め定義された閾値かそれを上回る場合、ナビゲーションプロセッサは現在のナビゲーションタスクが十分安全に継続されると判断してもよい。結果として、サブルーチン2000は、ステップ2010に進んでもよい。ステップ2010では、現在のナビゲーションタスクが完了したかの判定が行われてもよい。現在のナビゲーションタスクが完了していない場合、つまり、1つ以上の操縦性機能がまだ未作動の場合、サブルーチン2000はステップ2004に戻ってもよい。そうでない場合は、サブルーチン2000は、ステップ2012に進んでもよい。
【0217】
ステップ2012では、完了したナビゲーションタスクが記録されてもよく、現在のナビゲーションタスクを終了できる。サブルーチン2000は、完了したナビゲーションタスクの実施詳細を時間順に並べ、時間順の詳細をインタフェースメモリ225に記憶するよう、診断プロセッサ230に指示してもよい。完了したナビゲーションタスクの実施詳細は、実行した操縦性機能、操縦性機能のコンパイルされたバージョン、実行した各操縦性機能と関係付けられた検知された操縦性状態、実行した各操縦性機能と関係付けられた安全率の範囲、割り当てられた代替ナビゲーションタスクの数、の全て又はいずれかを含んでもよいが、これらに限られない。現在のナビゲーションタスクが終了した後、サブルーチン2000はインテリジェントナビゲーションアプリケーション1800に戻ってもよい。
【0218】
再度
図18を参照すると、現在のナビゲーションタスクの実行後、インテリジェントナビゲーションアプリケーション1800はステップ1818に進んでもよい。ステップ1818では、自動車100の移動中の位置が衛星1710と測位装置277によって検知されてもよい。
【0219】
ステップ1820では、移動中の位置が、計算された経路の中にあるかについて判定してもよい。ナビゲーションプロセッサは、移動中の位置と計算された経路との間の相関を計算してもよい。相関が予め定義した閾値を下回る場合、インテリジェントナビゲーションアプリケーション1800はステップ1812に戻り、更新された経路が計算されてもよい。そうでなければ、インテリジェントナビゲーションアプリケーション1800はステップ1822に進んでもよい。
【0220】
ステップ1822では、次の未作動ナビゲーションタスクが現在のナビゲーションタスクに割り当てられるように、現在のナビゲーションタスクが更新されてもよい。次に作動するナビゲーションタスクが一つもない場合は、このステップはスキップできる。
【0221】
ステップ1824では、全てのユーザ定義の目的地に到達したかの判定がなされてもよい。未到達の目的地がある場合、インテリジェントナビゲーションアプリケーション1800は、ステップ1816に戻り、現在のナビゲーションタスクが実行されてもよい。未到達の目的地がない場合は、インテリジェントナビゲーションアプリケーション1800は、ステップ1826に進み、インテリジェントナビゲーションアプリケーション1800が終了してもよい。
【0222】
本発明の好ましい実施形態を、例証として開示した。本明細書全体を通して採用された用語は、適宜、制限しない意味合いで読まれるべきである。当業者には、本明細書の内容の些細な修正が着想されるであろうが、本明細書で保証される本発明の範囲の境界線は、本明細書が貢献する技術分野の進歩の範囲内に合理的にある実施形態の全てを意図し、添付の特許請求の範囲とその同等発明の観点を除き、その範囲は制限されるべきではない。