添付の図面を参照しながら様々な態様が詳細に説明される。可能な場合はいつでも、同じかまたは同様の部分を指すために、図面全体にわたって同じ参照番号が使用される。特定の例および実施形態に対してなされる言及は例示目的であり、様々な態様または特許請求の範囲を限定するものではない。
様々な実施形態は、自律車両のステアリングおよび速度制御を対象とする、乗客による車両制御ジェスチャを認識するために半自律車両のプロセッサによって実行される方法を提供する。プロセッサは、乗客から受け取られた車両制御ジェスチャを正規化するための複数の乗客プロファイルから乗客プロファイルを選択してもよい。プロセッサは、乗客によって実行された、検出された車両制御ジェスチャに乗客プロファイルを適用すること、または誰に適用されてもよい一般化されたパラメータを使用することによって、車両アクションを決定してもよく、検出された車両制御ジェスチャが、車両が実行するのに安全であることを確認してもよい。プロセッサは、車両制御ジェスチャを行うときに乗客によって使用される強調にかかわらず、安全な車両コマンドを安全な方式で実行してもよい。
様々な実施形態は、半自律車両を制御するために、乗客によって行われるジェスチャを認識するように構成される車両システムを含む。車両システムは、乗客によって行われる車両制御ジェスチャとしていくつかの乗客動作(すなわち、ジェスチャ)を認識するために、1つまたは複数のカメラを含むセンサおよびセンサ処理能力(たとえば、動き処理および/または画像処理)を含んでもよい。たとえば、車両乗員が、その人の手を空中で左から右にスワイプすること、車輪を右に転回させるようなふりをすること、車両の右側に向かって指し示すこと、および/または既定の他の手信号/動きを与えることは、右に転回するための車両制御ジェスチャとして指定および認識されてもよい。センサ処理能力が、指定の車両制御ジェスチャを認識すると、車両アクションを表す、認識されたその車両制御ジェスチャの変換が、車両の動作を制御するために車両制御ユニットによって処理されてもよい。
車両制御ジェスチャを認識するプロセスは、乗客入力の履歴的記録を考慮に入れてもよい。履歴的記録は、モデルジェスチャからの首尾一貫した偏移を含む、所与の車両制御ジェスチャを乗客が実際にはどのように実行するのかという特性を反映する、1つまたは複数の乗客プロファイルのための基礎として働いてもよい。各乗客プロファイルは、車両内の1つもしくは複数の特定の座席(たとえば、従来の運転席)に関連する特定の乗客に固有であってもよく、または任意の乗客および/もしくは任意の着座位置に対して一般化されてもよい。乗客プロファイルは、検出されたジェスチャが乗客の典型的なまたは事前の入力と一致することを確認するために使用されてもよい。また、乗客プロファイルは、有効な入力をより良好に認識し、誤ったジェスチャ検出の可能性を低減するために使用されてもよい。
本明細書で使用する「乗客」という用語は、車両の1人または複数の運転手および1人または複数の他の乗員を含んでもよい、車両の、特に半自律車両の乗員を指す。
本明細書で使用する「乗客プロファイル」という用語は、複数の車両制御ジェスチャまたは1つの特定の車両制御ジェスチャを1人または複数の乗客が行うやり方の顕著な特徴を反映する、データのセットを指す。
本明細書で使用する「ジェスチャ」という用語は、考えまたは意味を表現するために身体の一部、特に手および/または腕を使用する、動きまたはポーズを指す。より詳細には、「車両制御ジェスチャ」という用語は、半自律車両または自律車両の1つまたは複数のアクションを制御するように構成される動きまたはポーズを指す。
本明細書で使用する「安全な」または「安全性」という用語は同義的に使用され、危険から保護されるかまたは著しく危険にさらされない条件/環境を指す。様々な実施形態では、1人または複数の乗客、車両、および/または車両の部分への損害または損傷が、しきい値よりも小さい発生確率を有するとき、条件/環境は安全と見なされてもよい。車両を操作することは常にあるレベルのリスクを伴う場合があるが、所定の低レベルのリスク(すなわち、安全性しきい値)は安全(すなわち、許容できる)と見なされてもよい。加えて、プロセッサは、2つ以上の物(たとえば、乗客、車両、および/または車両の部分)への損害または損傷、ならびにそれらの物への2つ以上のタイプの損害または損傷の、別個の発生確率を計算してもよい。また、それらの物の各々に対するリスクの計算に、同じかまたは異なる安全性しきい値が適用されてもよい。
本明細書で使用する「コンピューティングデバイス」という用語は、少なくともプロセッサ、通信システム、およびコンタクトデータベースを用いて構成されるメモリが装備された、電子デバイスを指す。たとえば、コンピューティングデバイスは、セルラー電話、スマートフォン、ポータブルコンピューティングデバイス、個人用または可搬型のマルチメディアプレーヤ、ラップトップコンピュータ、タブレットコンピュータ、2イン1ラップトップ/テーブルコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応セルラー電話、スマートウォッチを含むウェアラブルデバイス、エンターテインメントデバイス(たとえば、ワイヤレスゲームコントローラ、音楽プレーヤおよびビデオプレーヤ、衛星ラジオなど)、ならびにメモリ、ワイヤレス通信コンポーネント、およびプログラマブルプロセッサを含む、類似の電子デバイスのうちの、いずれか1つまたはすべてを含んでもよい。様々な実施形態では、コンピューティングデバイスは、メモリおよび/または記憶装置とともに構成されてもよい。追加として、様々な例示的な実施形態の中で参照されるコンピューティングデバイスは、ワイヤレス通信ネットワークと通信するように構成されるネットワークトランシーバおよびアンテナなどの、様々な実施形態を実施する有線またはワイヤレスの通信能力に結合されてもよく、またはそれらを含んでもよい。
「システムオンチップ」(SOC)という用語は、本明細書では、一般に、限定はしないが、1つまたは複数のプロセッサ、メモリ、および通信インターフェースを含む、相互接続された電子回路のセットを指すために使用される。SOCは、汎用プロセッサ、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、加速型処理ユニット(APU)、サブシステムプロセッサ、補助プロセッサ、シングルコアプロセッサ、およびマルチコアプロセッサなどの様々な異なるタイプのプロセッサおよびプロセッサコアを含んでもよい。SOCは、フィールドプログラマブルゲートアレイ(FPGA)、コンフィギュレーションアンドステータスレジスタ(CSR)、特定用途向け集積回路(ASIC)、他のプログラマブル論理デバイス、個別ゲート論理、トランジスタ論理、レジスタ、性能監視ハードウェア、ウォッチドッグハードウェア、カウンタ、および時間基準などの、他のハードウェアおよびハードウェアの組合せをさらに具現してもよい。SOCは、半導体材料(たとえば、シリコンなど)の単一の断片などの同じ基板上に集積回路(IC)のコンポーネントが存在するように構成されるICであってもよい。
自動車、およびトラック、バスなどの自律車両および半自律車両は、道路上で現実になりつつある。また、自律車両および半自律車両は、通常、車両を取り囲む環境についての情報を収集する、カメラ、レーダー、およびライダーを含む複数のセンサを含む。たとえば、収集されるそのような情報は、車両が、道路を認識すること、回避すべき物体を識別すること、ならびに他の車両の移動および将来の位置を追跡することを可能にして、部分的または完全に自律的なナビゲーションを可能にしてもよい。様々な実施形態によれば、従来のステアリングホイール、ジョイスティック、または類似の直接の機械制御装置を使用せずに、乗客が車両のアクションを制御するための車両制御ジェスチャを検出するために、そのようなセンサの使用が車両の内側に拡張されてもよい。
様々な実施形態は、ジェスチャ検出システムを含む様々な半自律車両内で実施されてもよく、ジェスチャ検出システムのうちの例示的な車両ジェスチャ検出システム50が図1Aおよび図1Bに示される。図1Aおよび図1Bを参照すると、車両ジェスチャ検出システム50は、車両100の制御ユニット140に結合されかつ/またはそれとともに機能する、1つまたは複数のセンサ101、プロファイルデータベース142、およびジェスチャ認識エンジン144を含んでもよい。車両ジェスチャ検出システム50は、車両100内で乗客11、12によって実行される既定のジェスチャ61、62を検出するように構成されてもよい。
ジェスチャを使用することによって、1人または複数の乗客は、ステアリングホイールまたは他の機械コントローラに物理的に触れる必要なく車両100のプロセッサに制御入力を提供してもよい。センサ101は、乗客によって実行される動きおよび/またはポーズの画像または他の特性をキャプチャするように構成されてもよい、動きセンサ、近接度センサ、カメラ、マイクロフォン、衝撃センサ、レーダー、ライダー、衛星地理測位システムレシーバ、タイヤ空気圧センサなどを含んでもよい。動きおよび/またはポーズは、1つまたは複数の車両制御ジェスチャに関連する既定のジェスチャと、車両制御に関連しない他の動きまたはポーズの両方を含む、すべての動きおよび/またはポーズを含んでもよい。このようにして、センサ101は、動きまたはポーズのタイプの間を区別する必要がないが、キャプチャされた画像または他の特性に関するデータをそこで分析するためにジェスチャ認識エンジン144に伝えてもよい。
プロファイルデータベース142は、特定の乗客、乗客のグループ、および/または車両100内の特定の座席の中の乗客に対して、車両制御ジェスチャを正規化するようにカスタマイズされた複数の乗客プロファイルを保持してもよい。プロファイルデータベース142は、複数の乗客プロファイルのうちの1つまたは複数に関するデータをそこで分析するためにジェスチャ認識エンジン144に伝えるように構成されてもよい。
乗客プロファイルは、特定の人物が、ジェスチャおよび/またはその人物が使用するために選定している特定のジェスチャをどのように行うのかに関係するデータを、含んでもよい。したがって、プロファイルデータベース142は、異なる人間に対して指定される異なる乗客プロファイルを含んでもよい。特定の各人物は、乗客からの入力、またはセンサ101を通じた乗客の識別の認識に基づいて、識別されてもよい。このようにして、乗客からの入力は、識別情報および/または個人化された乗客プロファイルを提供してもよく、そうした乗客プロファイルは、プロファイルデータベース142の中で追加または更新されてもよい。乗客からの入力は、車両100、乗客のパーソナルコンピューティングデバイス(たとえば、スマートフォン)、および/または別の入力デバイスに関連するユーザインターフェースから取られてもよい。したがって、乗客プロファイルは、乗客の識別に基づいて選択されてもよく、かつ/または独自の個人に固有であってもよい。また、乗客プロファイルは、乗客から以前に受け取られた入力をトレーニングすることから、識別された乗客にカスタマイズされてもよい。さらに、2つ以上の乗客プロファイルが単一の独自の個人に関連付けられてもよい。したがって、人物は、彼らのムード(たとえば、疲れている、動揺している、興奮しているなど)、時刻、および/または他の基準に適合すべき、特定の乗客プロファイルを選択してもよい。
追加または代替として、複数の乗客プロファイルが、車両内の1つまたは複数の特定の座席の中の乗客に対して車両制御ジェスチャを正規化するようにカスタマイズされてもよい。たとえば、指定の「運転席」の中に座っている任意の個人に対して1つの乗客プロファイルが指定されてもよく、他の座席の中に座っている任意の個人に対して1つまたは複数の他の乗客プロファイルが指定されてもよい。さらなる代替形態として、彼らが誰であるのかまたは彼らがどこに座るのかにかかわらず、すべての乗客に対して1つの乗客プロファイルが指定されてもよい。同様に、プロファイルデータベース142は、乗客が識別されない場合またはカスタマイズされた乗客プロファイルがその乗客に対してセットアップされていない場合の使用のために、1つまたは複数のデフォルトの乗客プロファイルを保持してもよい。
いくつかの実装形態では、ジェスチャ認識エンジン144は、センサ101によってキャプチャされた動きおよび/またはポーズが車両制御に関連する既定のジェスチャに整合するかどうかを判定するために、ニューラルネットワーク処理および/または人工知能方法を使用してもよい。加えて、ジェスチャ認識エンジン144は、センサ101によってキャプチャされた動きおよび/またはポーズによってどの車両アクションが意図されたのかを決定するために、プロファイルデータベース142から受信される乗客プロファイルからのデータを使用してもよい。したがって、センサ101によってキャプチャされた動きまたはポーズおよびプロファイルデータベース142から伝えられた乗客プロファイルを考慮に入れて、ジェスチャ認識エンジン144は、指定の車両アクションを実施する方法で制御ユニット140が車両100を操作するための命令またはデータを、制御ユニット140に伝えてもよい。様々な実装形態では、任意の車両アクションを開始する前に、制御ユニット140は、指定の車両アクションが車両100および乗員(たとえば、乗客11、12)にとって安全であることを保証してもよい。
いくつかの車両アクションは、加速度、減速度、および車線変更などの、変化の量または大きさが変わる場合がある。いくつかの実装形態では、キャプチャされた動きおよび/またはポーズを車両制御に関連する既定のジェスチャに整合させることに加えて、ジェスチャ認識エンジン144はまた、意図される車両制御入力を解釈するために、キャプチャされた動きの測定可能なパラメータ(たとえば、角度、距離など)をアセスメントしてもよい。説明しやすいように、回転の角度または度合い、ジェスチャの距離または範囲、ジェスチャの動きの速度、ジェスチャ中の加速度、および観測されるジェスチャの測定可能な他のパラメータは、本明細書ではキャプチャされる動きの「程度」と呼ばれる。ジェスチャ認識エンジン144は、ジェスチャを行う人物によって意図される車両移動の大きさを決定するために、キャプチャされた動きの程度を解釈してもよい。たとえば、乗客は、スワイプの方向に車線を、ただし1車線だけ変更するためのコマンドを伝えるために、15度のアーチをなして空中を通じてその人の手をスワイプすることができる。45度以上に広がる類似のスワイプは、スワイプの方向に2車線を変更するためのコマンドを意味してもよい。このようにして、キャプチャされる動きおよび/またはポーズの程度は、得られる車両アクションの量または大きさに対応してもよい。いくつかの実施形態では、ジェスチャ認識エンジン144によって考慮に入れられる、キャプチャされる動きおよび/またはポーズの程度は、アクションのタイプによって変わる場合がある。たとえば、車両転回のためのジェスチャにおける程度(たとえば、動きの度合いまたは量)は、車両に停止または減速させるジェスチャに対する動きの度合いまたは量とは異なってもよい。
いくつかの実施形態では、車両制御ジェスチャとしての乗客動作の解釈、特に、意図される車両アクションまたはコマンドを決定するための、検出されたジェスチャの程度の解釈は、乗客ごとに変わってもよく、乗客プロファイルまたは履歴データの中にセーブされてもよく、データをトレーニングするなどの際に反映されてもよい。たとえば、ジェスチャの程度は、個人のサイズとともに変わる場合がある。また、より表現的であるかまたはジェスチャを誇張することがある人もいれば、小さいジェスチャを行うことがある人もいるので、ジェスチャの程度は個性とともに変わる場合がある。
いくつかの実施形態では、乗客ジェスチャに対応する車両方向転換または速度変更の量は、キャプチャされた動きの程度に線形または非線形に依存する場合がある。たとえば、指、手、または腕の5度の動きは、車両に1車線変更を行わせてもよく(すなわち、1車線変更に対応してもよく)、15度の動きは、(すなわち、これはより急激な操縦であるので)2車線変更に対応してもよく、60度の動きは、(すなわち、なお一層急激な)3車線変更に対応してもよい。
いくつかの実施形態では、キャプチャされた動きの決定される程度は、車両方向転換または速度変更の対応するコマンドを決定する目的のために上限が定められてもよい(すなわち、最大の度合い、距離、または速度を越えて拡大するようには解釈されなくてもよい)。いくつかの実施形態では、常に、いくつかの環境では、またはいくつかのタイプのジェスチャに対してのみ、そのような上限または最大が解釈に課される。たとえば、5度、10度、および15度の動きは、それぞれ、1車線変更、2車線変更、および3車線変更に対応してもよいが、ジェスチャ認識エンジン144は、車線変更ジェスチャが15度の動きに上限が定められる場合、20度の転回が4車線変更を示すと解釈しなくてもよい。
キャプチャされる動きおよび/またはポーズの程度が考慮に入れられる、いくつかの実施形態では、測定された動きは、特定のジェスチャにとって適切な特定の程度増分に(下に/上に)丸められてもよい。たとえば、5度の手の動きが1車線変更に関連付けられ、かつ10度の手の動きが2車線変更に関連付けられる場合、7度の手の動きは1車線変更のみに関連付けられてもよい。いくつかの実施形態では、1車線変更または2車線変更のうちの安全な方の選択肢が選択される。代替または追加として、乗客は、7度の手の動きが1.5車線変更として解釈されるべきであることを示すことなどの、部分的な車線変更(すなわち、そのため、車両が2車線にまたがる結果となる)が意図されるという、いくつかの追加の表示を提供してもよい。
いくつかの実施形態では、代替としてまたは動きジェスチャに加えてのいずれかで、動き以外の乗客入力がジェスチャ認識エンジン144によって車両制御ジェスチャとして解釈されてもよい。たとえば、ジェスチャ認識エンジン144は、(限定はしないが)音声コマンド、任意のタッチ敏感表面上での(たとえば、ステアリングホイール、タッチスクリーン、アームレスト、シートベルトなどの上での)タッチ制御、および/またはコマンドを入力することを希望するどの乗客にも渡すことが可能な、モバイルデバイスアプリ、ゲームパッドコントローラ、着脱式ステアリングホイール、または他のリモートコントローラ上での入力などのリモートコントローラ入力を認識してもよい。
いくつかの実施形態では、ジェスチャまたは他のコマンドは、(たとえば、無線モジュール172を介して)車両の外側の当事者から受け取られてもよい。したがって、ジェスチャ認識エンジン144は、車両を制御するためにそのようなリモートコマンドを認識してもよい。代替として、デバイス(たとえば、ワイヤレス通信デバイス190)は、車両を制御するためのジェスチャまたはコマンドを認識し、次いで、対応するコマンドを実行のために車両へ送信するために、ジェスチャ認識エンジン144を用いて構成されてもよい。たとえば、(車両から遠隔にいる)車両所有者が、車両に車線を変更させる、速度を変更させるなどのための、ジェスチャまたはコマンドを提供することができる。別の例として、乗客は、(たとえば、窮屈な空間の中に駐車しながら異なる視界を与えるために)着脱式ステアリングホイール(または、他の入力デバイス)を有する車両から出て車両の外側から車両を制御してもよい。
いくつかの実施形態では、乗客は、対応する一連の操縦を車両が実行するための車両制御ジェスチャの系列を実行してもよい。いくつかの実施形態では、ジェスチャ認識エンジン144は、ジェスチャが認識されていることを(たとえば、音、光、振動などを用いて)示してもよく、乗客は、1つのジェスチャが認識応答または実行されるのを待ってから、次のジェスチャを実行してもよい。いくつかの実施形態では、ジェスチャ認識エンジン144または制御ユニット140は、一連の操縦をそれらが提示された順序で車両に実行させてもよい。代替として、ジェスチャ認識エンジン144または制御ユニット140は、各操縦が行うのに安全になると、または(たとえば、プロンプトに続いて)さらなる乗客入力を受け取った後、車両に各操縦を実行させてもよい。追加として、またはさらなる代替として、車両アクションを実行する前に、車両アクションが実行するのに安全でなくなる場合、ジェスチャ認識エンジン144は、一連のアクションのうちの1つなどの車両アクションを実行する前に、ユーザにプロンプトしてもよい。たとえば、乗客が、減速し、次いで、転回を行うように設定された、一連の車両制御ジェスチャを実行する場合、車両制御ユニット140は、減速した後に車両が転回を行うことを妨げられる場合、転回を実行しなくてもよい。
図1Aおよび図1Bを参照すると、それぞれ、第1の車両制御ジェスチャ61を実行するものとして第1の乗客11が図示され、第2の車両制御ジェスチャ62を実行するものとして第2の乗客12が図示される。第1の車両制御ジェスチャ61は、第1の乗客11が、アーチ形角度の動きに従って、手のひらを開いた手を空中で左から右に移動またはスワイプすることを伴う。この事例では、センサ101は、左から右への30度(30°)スワイプ(すなわち、「30°右スワイプ」)を検出する。第2の車両制御ジェスチャ62は、第2の乗客12が、アーチ形角度の動きに従って、指が指し示している手を空中で左から右に移動またはスワイプすることを伴う。開いた手を使用するとともに30度だけの角度を横断して広がる第1の車両制御ジェスチャ61とは対照的に、第2の車両制御ジェスチャ62は、90度の角度を横断して広がる指し示す指を伴う部分的に閉じた手を使用する。しかしながら、ジェスチャ認識エンジン144は、第1の乗客プロファイルAおよび第2の乗客プロファイルBを使用して第1の車両制御ジェスチャ61および第2の車両制御ジェスチャ62の各々を正規化した後、車両が車線を右に変更することを乗客11、12の両方が希望すると決定してもよい。したがって、どちらの場合にも、ジェスチャ認識エンジン144は、車線を右車線に変更するように、同じ車両アクションを制御ユニット140に出力してもよい。
ジェスチャ認識エンジン144は、認識されたジェスチャ61、62に関連する車両アクションを実施するように車両100を操作するために、多くの異なるタイプおよび度合いの車両アクションを制御ユニット140に出力してもよい。
様々な実施形態が様々な車両内で実施されてもよく、様々な車両のうちの例示的な車両100が図2Aおよび図2Bに示される。図2Aおよび図2Bを参照すると、車両100は、制御ユニット140および複数のセンサを含んでもよい。図2Aおよび図2Bでは、概して図1に関して説明した複数のセンサが別個に説明される。具体的には、複数のセンサは、占有センサ102、104、106、108、110(たとえば、動きおよび/または近接度センサ)、カメラ112、114、マイクロフォン116、118、衝撃センサ120、レーダー122、ライダー124、衛星地理測位システムレシーバ126、タイヤ空気圧センサ128を含んでもよい。車両の中または上に配設される複数のセンサ102~128は、車両ジェスチャ検出ならびに/または自律的および半自律的なナビゲーションおよび制御、衝突回避、位置決定、車両制御ジェスチャ検出などの様々な目的のために使用されてもよく、同じく車両100の中または車両100の近くの物体および人間に関するセンサデータを提供する。センサ102~128は、車両100の内側および外側の環境についての入力を受信すること、ならびにナビゲーション制御および衝突回避のために有用な、様々な情報を検出することが可能な多種多様なセンサのうちの1つまたは複数を含んでもよい。センサ102~128の各々は、制御ユニット140と、かつ互いに、有線通信またはワイヤレス通信していてもよい。具体的には、センサ102~128は、他の光センサ、写真感光センサ、および/または動きセンサを含むかまたはそれらからなる、1つまたは複数のカメラ112、114を含んでもよい。センサ102~128は、レーダー122、ライダー124、IRセンサ、および超音波センサなどの、他のタイプの物体検出および測距センサをさらに含んでもよい。センサ102~128は、タイヤ空気圧センサ128、湿度センサ、温度センサ、衛星地理測位システムレシーバ126、加速度計、振動センサ、ジャイロスコープ、重力計、衝撃センサ120、フォースメーター、ストレスメーター、ひずみセンサ、マイクロフォン116、118、動きおよび/または近接度センサを含んでもよい占有センサ102、104、106、108、110、ならびに様々な環境センサをさらに含んでもよい。
車両制御ユニット140は、様々な実施形態に従って、1人または複数の乗客11、12、13による車両制御ジェスチャから解釈された車両アクション、および乗客プロファイルに基づいて、車両100を操作するように構成されてもよい。追加として、制御ユニット140は、1つまたは複数の乗客プロファイルに対するデフォルト設定を有してもよい。たとえば、現在ロードされている乗客プロファイルに基づいて、デフォルト設定は、多少スムーズに、多少効率的に、多少迅速に、多少緩やかになどで、車両を動作させてもよい。たとえば、制御ユニット140が乗客を認識しない(すなわち、乗客プロファイルが整合しない)とき、デフォルト設定に従ってもよい。代替として、制御ユニット140が乗客を認識しないとき、たとえばその人物のアクション(たとえば、ジェスチャ/ポーズ)に基づいて、知られていないその人物に対して新たなプロファイルが作成されてもよい。
車両制御ユニット140は、様々なセンサ、特にカメラ112、114、マイクロフォン116、118、占有センサ102、104、106、108、110から受信される情報を使用して様々な実施形態を実行するように、プロセッサ実行可能命令を用いて構成されてもよい。いくつかの実施形態では、制御ユニット140は、レーダー122、ライダー124、および/または他のセンサから取得されてもよい距離および相対位置(たとえば、相対的な方位角)を使用して、カメラ画像の処理を補ってもよい。制御ユニット140は、様々な実施形態を使用して決定された他の車両および/または乗客からの車両制御ジェスチャに関する情報を使用して自律モードまたは半自律モードで動作するとき、車両100の方向、制動、速度、加速度/減速度などを制御するようにさらに構成されてもよい。
図3は、様々な実施形態を実施するのに適したコンポーネントおよびサポートシステムのシステム300を示すコンポーネントブロック図である。図1A~図3を参照すると、車両100は制御ユニット140を含んでよく、制御ユニット140は、車両100の動作を制御するために使用される様々な回路およびデバイスを含んでもよい。図3に示す例では、制御ユニット140は、プロセッサ164、メモリ166、入力モジュール168、出力モジュール170、および無線モジュール172を含む。制御ユニット140は、車両100の運転制御コンポーネント154、ナビゲーションコンポーネント156、および1つまたは複数のセンサ101に結合されてもよく、それらを制御するように構成されてもよい。
本明細書で使用する「コンポーネント」、「システム」、「ユニット」、「モジュール」などの用語は、限定はしないが、特定の動作または機能を実行するように構成される、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連エンティティを含む。たとえば、コンポーネントは、限定はしないが、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、通信デバイス上で実行中のアプリケーションと通信デバイスの両方が、コンポーネントと呼ばれることがある。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在してもよく、コンポーネントは、1つのプロセッサもしくはコア上で局所化されてもよく、かつ/または2つ以上のプロセッサもしくはコアの間で分散されてもよい。加えて、これらのコンポーネントは、様々な命令および/またはデータ構造を記憶した様々な非一時的コンピュータ可読媒体から実行してもよい。コンポーネントは、ローカルプロセスおよび/またはリモートプロセス、関数またはプロシージャ呼出し、電子信号、データパケット、メモリ読取り/書込み、ならびに知られている他のコンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって、通信してもよい。
制御ユニット140は、車両制御ジェスチャおよび/またはその代替案を決定するように、かつ様々な実施形態の動作を含む、車両100の操縦、ナビゲーション、および/または他の動作を制御するように、プロセッサ実行可能命令を用いて構成されてもよい、プロセッサ164を含んでもよい。プロセッサ164は、メモリ166に結合されてもよい。制御ユニット140は、入力モジュール168、出力モジュール170、および無線モジュール172を含んでもよい。
無線モジュール172は、ワイヤレス通信のために構成されてもよい。無線モジュール172は、信号182(たとえば、操縦を制御するためのコマンド信号、ナビゲーション設備からの信号など)を通信ネットワーク180と交換してもよい。無線モジュール172は、プロセッサ164および/またはナビゲーションコンポーネント156に信号182を提供してもよい。いくつかの実施形態では、無線モジュール172は、車両100がワイヤレス通信リンク187を通じてワイヤレス通信デバイス190と通信することを可能にしてもよい。ワイヤレス通信リンク187は、双方向または単方向の通信リンクであってもよい。ワイヤレス通信リンク187は、1つまたは複数の通信プロトコルを使用してもよい。いくつかの実施形態では、無線モジュール172は、車両100がワイヤレス通信リンク192を通じて別の車両と通信することを可能にしてもよい。ワイヤレス通信リンク192は、双方向または単方向の通信リンクであってもよく、ワイヤレス通信リンク192は、1つまたは複数の通信プロトコルを使用してもよい。
入力モジュール168は、1つまたは複数の車両センサ101からセンサデータを、かつ運転制御コンポーネント154およびナビゲーションコンポーネント156を含む他のコンポーネントから電子信号を受信してもよい。運転制御コンポーネント154、ナビゲーションコンポーネント156、およびセンサ101を含む、車両100の様々なコンポーネントと通信するか、またはそれらをアクティブ化するために、出力モジュール170が使用されてもよい。
制御ユニット140は、(限定はしないが)エンジン、モーター、スロットル、方向づけ要素、飛行制御要素、制動または減速要素などの、車両の操縦およびナビゲーションに関係する、車両100の物理要素を制御するために、運転制御コンポーネント154に結合されてもよい。運転制御コンポーネント154は、同じくまたは代替として、(限定はしないが)環境制御(たとえば、空調および暖房)、外部照明および/または内部照明、(情報を表示するための表示スクリーンまたは他のデバイスを含んでもよい)内部情報ディスプレイおよび/または外部情報ディスプレイ、安全性デバイス(たとえば、触覚デバイス、音響警報など)、ならびに他の類似のデバイスを含む、車両の他のデバイスを制御するコンポーネントを含んでもよい。
制御ユニット140は、ナビゲーションコンポーネント156に結合されてもよく、ナビゲーションコンポーネント156からデータを受信してもよく、車両100の現在の位置および向きを決定するために、そのようなデータを使用するように構成されてもよい。様々な実施形態では、ナビゲーションコンポーネント156は、車両100が全地球ナビゲーション衛星システム(GNSS)信号を使用してその現在位置を決定することを可能にするGNSSレシーバシステム(たとえば、1つまたは複数の全地球測位システム(GPS)レシーバ)を含んでよく、またはそれに結合されてもよい。代替または追加として、ナビゲーションコンポーネント156は、Wi-Fiアクセスポイント、セルラーネットワークサイト、無線局、リモートコンピューティングデバイス、他の車両などの無線ノードから、ナビゲーションビーコンまたは他の信号を受信するための、無線ナビゲーションレシーバを含んでもよい。運転制御コンポーネント154の制御を通じて、プロセッサ164は、ナビゲートおよび操縦するように車両100を制御してもよい。プロセッサ164および/またはナビゲーションコンポーネント156は、操縦を制御するためのコマンドを受信し、ナビゲーションにおいて有用なデータを受信し、リアルタイム位置報告を提供し、かつ他のデータをアセスメントするために、セルラーデータ通信ネットワーク180とのワイヤレス接続信号182を使用してネットワーク186(たとえば、インターネット)上でサーバ184と通信するように構成されてもよい。制御ユニット140は、様々なデータをプロセッサ164に提供するように構成されてもよい1つまたは複数のセンサ101に結合されてもよい。
別個のコンポーネントを含むものとして制御ユニット140が説明されるが、いくつかの実施形態では、コンポーネントの一部または全部(たとえば、プロセッサ164、メモリ166、入力モジュール168、出力モジュール170、および無線モジュール172)は、システムオンチップ(SOC)処理デバイスなどの単一のデバイスまたはモジュールの中で統合されてもよい。そのようなSOC処理デバイスは、車両における使用のために構成されてもよく、車両の中にインストールされると様々な実施形態の動作を実行するように、プロセッサ164の中で実行するプロセッサ実行可能命令を用いるなどして構成されてもよい。
図4Aは、車両(たとえば、100)内で利用されてもよい、車両管理システム400内のサブシステム、計算要素、コンピューティングデバイス、またはコンピューティングユニットの一例を示す。図1A~図4Aを参照すると、いくつかの実施形態では、車両管理システム400内の様々な計算要素、コンピューティングデバイス、またはコンピューティングユニットは、データおよびコマンドを互いに通信する(たとえば、図4Aの中の矢印によって示される)相互接続されたコンピューティングデバイスのシステム(すなわち、サブシステム)内に実装されてもよい。他の実施形態では、車両管理システム400内の様々な計算要素、コンピューティングデバイス、またはコンピューティングユニットは、別個のスレッド、プロセス、アルゴリズム、または計算要素などの単一のコンピューティングデバイス内に実装されてもよい。したがって、図4Aに示す各サブシステム/計算要素はまた、一般に、本明細書では車両管理システム400を構成する計算「スタック」内の「レイヤ」と呼ばれる。しかしながら、様々な実施形態について説明する際のレイヤおよびスタックという用語の使用は、対応する機能性が単一の自律(または、半自律)車両管理システムコンピューティングデバイス内に実装されることを暗示または必要とするものではないが、そのことは可能な実施形態である。むしろ、「レイヤ」という用語の使用は、1つまたは複数のコンピューティングデバイスおよびサブシステムと計算要素との組合せの中で実行する、独立したプロセッサ、計算要素(たとえば、スレッド、アルゴリズム、サブルーチンなど)を有するサブシステムを包含することを意図する。
様々な実施形態では、車両管理システム400は、レーダー知覚レイヤ402、カメラ知覚レイヤ404、測位エンジンレイヤ406、地図融合および調停レイヤ408、ルートプランニングレイヤ410、センサ融合および道路世界モデル(RWM:road world model)管理レイヤ412、運行プランニングおよび制御レイヤ414、ならびに挙動プランニングおよび予測レイヤ416を含んでもよい。レイヤ402~416は、車両管理システム400の1つの例示的な構成におけるいくつかのレイヤの例にすぎない。様々な実施形態に一致する他の構成では、(限定はしないが)他の知覚センサのための追加のレイヤ(たとえば、カメラ知覚レイヤなど)、プランニングおよび/もしくは制御のための追加のレイヤ、モデリングのための追加のレイヤなどの、1つまたは複数の他のレイヤが含まれてもよく、かつ/またはレイヤ402~416のうちのいくつかが車両管理システム400から除外されてもよい。
レイヤ402~416の各々は、図4Aの中の矢印によって図示したように、データ、計算結果、およびコマンドを交換してもよい。さらに、車両管理システム400は、センサ(たとえば、レーダー、ライダー、カメラ、慣性測定ユニット(IMU:inertial measurement unit)など)、ナビゲーションシステム(たとえば、GPSレシーバ、IMUなど)、車両ネットワーク(たとえば、コントローラエリアネットワーク(CAN)バス)、およびメモリの中のデータベース(たとえば、デジタル地図データ)からのデータを受信および処理してもよい。車両管理システム400は、車両方向、スロットル、およびブレーキ制御と直接インターフェースする、システム、サブシステム、またはコンピューティングデバイスであるドライブバイワイヤ(DBW:drive-by-wire)システム/制御ユニット420に、車両制御コマンドまたは信号を出力してもよい。図4Aに示す車両管理システム400およびDBWシステム/制御ユニット420の構成は例示的な構成にすぎず、様々な実施形態において車両管理システムおよび他の車両コンポーネントの他の構成が使用されてもよい。一例として、図4Aに示す車両管理システム400およびDBWシステム/制御ユニット420の構成は、自律動作または半自律動作のために構成される車両の中で使用されてもよいが、非自律車両では異なる構成が使用されてもよい。
レーダー知覚レイヤ402は、レーダー(たとえば、122)および/またはライダー(たとえば、124)などの1つまたは複数の検出および測距センサからデータを受信してもよい。レーダー知覚レイヤ402は、そのデータを処理して車両100の近傍内で他の車両および物体のロケーションを認識および決定してもよい。いくつかの実装形態では、レーダー知覚レイヤ402は、物体および車両を認識するためにニューラルネットワーク処理および人工知能方法の使用を含んでもよい。レーダー知覚レイヤ402は、そのような情報をセンサ融合およびRWM管理レイヤ412に渡してもよい。
カメラ知覚レイヤ404は、カメラ(たとえば、112、114)などの1つまたは複数のカメラからデータを受信してもよく、そのデータを処理して車両制御ジェスチャを検出してもよく、また車両100の近傍内の他の車両および物体のロケーションを認識および決定してもよい。いくつかの実装形態では、カメラ知覚レイヤ404は、物体および車両を認識するためのニューラルネットワーク処理および人工知能方法の使用を含んでよく、そのような情報をセンサ融合およびRWM管理レイヤ412に渡してもよい。
測位エンジンレイヤ406は、様々なセンサからデータを受信してもよく、そのデータを処理して車両100の位置を決定してもよい。様々なセンサは、限定はしないが、GPSセンサ、IMU、および/またはCANバスを介して接続された他のセンサを含んでもよい。測位エンジンレイヤ406はまた、カメラ(たとえば、112、114)などの1つもしくは複数のカメラ、および/またはレーダー(たとえば、122)、ライダー(たとえば、124)などの、任意の他の利用可能なセンサからの入力を利用してもよい。
地図融合および調停レイヤ408は、高精細(HD)地図データベース内のデータにアクセスしてもよく、測位エンジンレイヤ406から受信される出力を受信してもよく、そのデータを処理して、通行車線内でのロケーション、市街地図内での位置などの、地図内での車両の位置をさらに決定してもよい。HD地図データベースはメモリ(たとえば、メモリ166)の中に記憶されてもよい。たとえば、地図融合および調停レイヤ408は、GPSからの緯度情報および経度情報を、HD地図データベースの中に含まれる道路の地上地図内でのロケーションに変換してもよい。GPS位置決定は誤差を含み、そのため、地図融合および調停レイヤ408は、GPS座標とHD地図データとの間の調停に基づいて、道路内での車両の最良推測ロケーションを決定するように機能してもよい。たとえば、GPS座標は、HD地図の中の2車線道路の中央の近くに車両を配置することがあるが、地図融合および調停レイヤ408は、進行方向に一致する進行車線に車両が位置合わせされる可能性が最も高いことを、進行方向から決定してもよい。地図融合および調停レイヤ408は、地図ベースのロケーション情報をセンサ融合およびRWM管理レイヤ412に渡してもよい。
ルートプランニングレイヤ410は、特定の目的地まで車両によって追従されるべきルートをプランニングするために、HD地図、および操作者または配車係からの入力を利用してもよい。ルートプランニングレイヤ410は、地図ベースのロケーション情報をセンサ融合およびRWM管理レイヤ412に渡してもよい。しかしながら、センサ融合およびRWM管理レイヤ412などの他のレイヤによる従来の地図の使用は必要とされない。たとえば、知覚データが受信されるとき、他のスタックは、局所的な地図の車線、境界、および概念を構築して、提供された地図を用いずに知覚データのみに基づいて車両を操作および/または制御してもよい。
センサ融合およびRWM管理レイヤ412は、レーダー知覚レイヤ402、カメラ知覚レイヤ404、地図融合および調停レイヤ408、ならびにルートプランニングレイヤ410によって生み出されるデータおよび出力を受信してもよく、そのような入力の一部または全部を使用して、道路、道路上の他の車両、および車両の近傍内の他の物体に対して、車両のロケーションおよび状態を推定または改善してもよい。たとえば、センサ融合およびRWM管理レイヤ412は、カメラ知覚レイヤ404からの影像データを地図融合および調停レイヤ408からの調停済みの地図ロケーション情報と組み合わせて、通行車線内での車両の決定される位置を改善してもよい。
別の例として、センサ融合およびRWM管理レイヤ412は、カメラ知覚レイヤ404からの物体認識および影像データをレーダー知覚レイヤ402からの物体検出および測距データと組み合わせて、車両の近傍にある他の車両および物体の相対位置を決定および改善してもよい。別の例として、センサ融合およびRWM管理レイヤ412は、他の車両位置および進行方向に関する情報を(CANバスを介するなどして)車両間(V2V)通信から受信してもよく、その情報をレーダー知覚レイヤ402およびカメラ知覚レイヤ404からの情報と組み合わせて他の車両のロケーションおよび運行を改善してもよい。センサ融合およびRWM管理レイヤ412は、車両の改善されたロケーションおよび状態情報、ならびに車両の近傍にある他の車両および物体の改善されたロケーションおよび状態情報を、運行プランニングおよび制御レイヤ414ならびに/または挙動プランニングおよび予測レイヤ416に出力してもよい。
さらなる例として、センサ融合およびRWM管理レイヤ412は、速度、車線、進行方向、または他のナビゲーション要素を変更するように車両を導く動的交通制御命令を使用してもよく、その情報を他の受信情報と組み合わせて、改善されたロケーションおよび状態情報を決定してもよい。センサ融合およびRWM管理レイヤ412は、車両の改善されたロケーションおよび状態情報、ならびに車両の近傍にある他の車両および物体の改善されたロケーションおよび状態情報を、運行プランニングおよび制御レイヤ414、挙動プランニングおよび予測レイヤ416に、かつ/またはC-V2X接続、他のワイヤレス接続などを通じるようなワイヤレス通信を介して、データサーバ、他の車両などの、車両から遠隔のデバイスに、出力してもよい。
またさらなる例として、センサ融合およびRWM管理レイヤ412は、レーダー知覚レイヤ402、カメラ知覚レイヤ404、他の知覚レイヤなどからの知覚データなどの、様々なセンサからの知覚データ、および/または1つもしくは複数のセンサ自体からのデータを監視して、車両センサデータの中の条件を分析してもよい。センサ融合およびRWM管理レイヤ412は、センサ実測値がしきい値にあるのか、しきい値を超えるのか、またはしきい値未満であるのか、いくつかのタイプのセンサ測定が行われたことなどの、センサデータの中の条件を検出するように構成されてもよく、挙動プランニングおよび予測レイヤ416に、かつ/またはC-V2X接続、他のワイヤレス接続などを通じるようなワイヤレス通信を介して、データサーバ、他の車両などの、車両から遠隔のデバイスに提供される、車両の改善されたロケーションおよび状態情報の一部として、センサデータを出力してもよい。
改善されたロケーションおよび状態情報は、車両仕様(たとえば、サイズ、重量、色、車載センサタイプなど)、車両位置、速度、加速度、進行方向、姿勢、向き、目的地、燃料/電力レベル、および他の状態情報、車両緊急ステータス(たとえば、車両が緊急車両であるか、または緊急時に私的な個人であるか)、車両制約(たとえば、重い/広い荷重、転回制約、高占有車両(HOV:high occupancy vehicle)認可など)、車両の能力(たとえば、全輪駆動、4輪駆動、スノータイヤ、チェーン、サポートされる接続タイプ、車載センサ動作ステータス、車載センサ分解能レベルなど)、機器問題(たとえば、低タイヤ空気圧、弱いブレーキ、センサ機能停止など)、所有者/操作者の進行選好(たとえば、好ましい車線、道路、ルート、および/または目的地、通行料またはハイウェイを回避すべき選好、最速ルートを求める選好など)、センサデータをデータ機関サーバ(たとえば、184)に提供するための許可、ならびに/または所有者/操作者の識別情報などの、車両ならびに車両所有者および/または車両操作者に関連する車両デスクリプタを含んでもよい。
自律車両管理システム400の挙動プランニングおよび予測レイヤ416は、センサ融合およびRWM管理レイヤ412から出力された、車両の改善されたロケーションおよび状態情報、ならびに他の車両および物体のロケーションおよび状態情報を使用して、他の車両および/または物体の将来の挙動を予測してもよい。たとえば、挙動プランニングおよび予測レイヤ416は、そのような情報を使用して、それ自体の車両位置および速度ならびに他の車両の位置および速度に基づいて、車両の近傍にある他の車両の将来の相対位置を予測してもよい。そのような予測は、ホストおよび他の車両が道路に追従するにつれて、相対的な車両位置の変化を予期するために、HD地図およびルートプランニングからの情報を考慮に入れてもよい。挙動プランニングおよび予測レイヤ416は、他の車両および物体の挙動およびロケーション予測を、運行プランニングおよび制御レイヤ414に出力してもよい。
追加として、挙動プランニングおよび予測レイヤ416は、ロケーション予測と組み合わせて物体挙動を使用してプランニングしてもよく、車両の運行を制御するための制御信号を生成してもよい。たとえば、ルートプランニング情報、道路情報の中の改善されたロケーション、ならびに他の車両の相対ロケーションおよび運行に基づいて、挙動プランニングおよび予測レイヤ416は、他の車両からの最小間隔を維持もしくは達成すること、および/または転回もしくは出口に対して準備することなどのために、車両が車線を変更し加速する必要があることを決定してもよい。その結果、挙動プランニングおよび予測レイヤ416は、そのような車線変更および加速を実現するために必要なそのような様々なパラメータと一緒に、運行プランニングおよび制御レイヤ414ならびにDBWシステム/制御ユニット420に指令されるべき、車輪に対するステアリング角、およびスロットル設定の変更を、計算するかまたは別のやり方で決定してもよい。このような1つのパラメータは、算出されたステアリングホイール指令角であってもよい。
運行プランニングおよび制御レイヤ414は、センサ融合およびRWM管理レイヤ412から出力されたデータおよび情報、ならびに挙動プランニングおよび予測レイヤ416からの他の車両および物体の挙動ならびにロケーション予測を受信してもよい。運行プランニングおよび制御レイヤ414は、プランニングし車両の運行を制御するための制御信号を生成するために、またそのような制御信号が車両に対する安全性要件を満たすことを検証するために、この情報(のうちの少なくともいくつか)を使用してもよい。たとえば、ルートプランニング情報、道路情報の中の改善されたロケーション、ならびに他の車両の相対ロケーションおよび運行に基づいて、運行プランニングおよび制御レイヤ414は、様々な制御コマンドまたは命令を検証してもよく、それをDBWシステム/制御ユニット420に渡してもよい。
DBWシステム/制御ユニット420は、運行プランニングおよび制御レイヤ414からコマンドまたは命令を受信してもよく、そのような情報を車両の車輪角度、ブレーキ、およびスロットルを制御するための機械的な制御信号に変換してもよい。たとえば、DBWシステム/制御ユニット420は、対応する制御信号をステアリングホイールコントローラへ送信することによって、算出されたステアリングホイール指令角に応答してもよい。
様々な実施形態では、車両管理システム400は、車両および乗員の安全性に影響を及ぼすことがある、様々なコマンド、様々なレイヤのプランニングまたは他の決定の、安全性検査または監督を実行する機能を含んでもよい。そのような安全性検査または監督機能は、専用のレイヤ内に実装されてもよく、または様々なレイヤの間で分散されるとともに機能の一部として含められてもよい。
いくつかの実施形態では、様々な安全性パラメータがメモリの中に記憶されてもよく、安全性検査または監督機能は、決定された値(たとえば、近くの車両までの相対間隔、道路中心線からの距離など)を、対応する安全性パラメータと比較してもよく、安全性パラメータが違反されるかまたは違反されることになる場合、警報またはコマンドを発行してもよい。たとえば、挙動プランニングおよび予測レイヤ416の中の(または、別個のレイヤの中の)安全性または監督機能は、(センサ融合およびRWM管理レイヤ412によって規定されるような)別の車両とその車両との間の現在または将来の分離距離を(たとえば、センサ融合およびRWM管理レイヤ412によって改善された世界モデルに基づいて)決定してもよく、その分離距離を、メモリの中に記憶された安全分離距離パラメータと比較してもよく、現在のまたは予測される分離距離が安全分離距離パラメータに違反する場合、加速、減速、または転回するための命令を運行プランニングおよび制御レイヤ414に発行してもよい。別の例として、運行プランニングおよび制御レイヤ414(または、別個のレイヤ)の中の安全性または監督機能は、決定または指令されたステアリングホイール指令角を、安全車輪角度限度またはパラメータと比較してもよく、指令された角度が安全車輪角度限度を超過することに応答してオーバーライド(override)コマンドおよび/または警報を発行してもよい。
様々な実装形態によれば、メモリの中に記憶されるいくつかの安全性パラメータは、最大車両速度のような静的(すなわち、経時的に不変)であってもよい。たとえば、120mph(または、製造業者、車両所有者などによって設定されてもよい、いくつかの他の値)を越える車両を操作することは危険と見なされてもよく、したがって、車両(たとえば、ジェスチャ認識エンジン144および/または制御ユニット140)は、速度に関係する最大安全性パラメータを強いることになる。自律車両を用いると、120mphを超過する速度で動作することは依然として安全であってもよく、したがって、もっと大きい値が使用されることが可能である。代替として、いくつかの安全性パラメータ(たとえば、最大速度)は動的であってもよく、ロケーション、運転条件(たとえば、交通量)、および/または外部入力(たとえば、インテリジェント輸送システムからの信号)に応じて変化してもよい。たとえば、最大速度は、過密エリアまたはより制限された道路の中で運転(すなわち、都市で運転)するための1つの値、およびさほど密集していないエリアまたは多くの車線を有する道路の中で運転(すなわち、ハイウェイで運転)するための別の値を有してもよい。物体(たとえば、他の車両)、人間、生き物、または他の要素への近接度などの他の安全性パラメータが使用されてもよい。加えて、メモリの中に記憶される他の安全性パラメータは、車両状態情報および/または環境条件に基づいてパラメータが継続的または周期的に決定または更新されるという点で動的であってもよい。安全性パラメータの非限定的な例は、最大速度、最小速度、最大減速度(たとえば、制動速度)、最大加速度、および最大車輪角度限度を含んでもよい。これらのうちのいずれかまたはすべては、乗員、道路、および/または気象条件と相関関係があってもよい。たとえば、乗員が眠っているか、酔っているか、または注意をそらしている(たとえば、読んでいる、前方に顔を向けていない/前方を見ていないなど)場合、その乗員は、適切なコマンドを与える可能性が低い場合があり、かつ/または、たとえば乗員が油断しておらず注意をそらしていない他の時間と比較して、車両を正しくナビゲートできない場合がある。
図4Bは、車両(たとえば、100)内で利用されてもよい、車両管理システム450内のサブシステム、計算要素、コンピューティングデバイス、またはコンピューティングユニットの一例を示す。図1A~図4Bを参照すると、いくつかの実施形態では、車両管理システム400のレイヤ402、404、406、408、410、412、および416は、図4Aを参照しながら説明したレイヤと類似であってもよい。車両管理システム450が、様々なデータまたは命令をDBWシステム/制御ユニット420ではなく車両安全性および衝突回避システム452に渡すことがあることを除いて、車両管理システム450は車両管理システム400と同様に動作してもよい。たとえば、図4Bに示す車両管理システム450ならびに車両安全性および衝突回避システム452の構成は、非自律車両、半自律車両、または完全自律車両の中で使用されてもよい。加えて、車両管理システム450ならびに/または車両安全性および衝突回避システム452の機能が減らされてもよく、または無効にされてもよい(たとえば、オフにされてもよい)。
様々な実施形態では、挙動プランニングおよび予測レイヤ416ならびに/またはセンサ融合およびRWM管理レイヤ412は、車両安全性および衝突回避システム452にデータを出力してもよい。たとえば、センサ融合およびRWM管理レイヤ412は、車両安全性および衝突回避システム452に提供される、車両100の改善されたロケーションおよび状態情報の一部として、センサデータを出力してもよい。車両安全性および衝突回避システム452は、車両100の改善されたロケーションおよび状態情報を使用して、車両100および/または車両100の乗員に対する安全性決定を行ってもよい。別の例として、挙動プランニングおよび予測レイヤ416は、他の車両の運行に関係する挙動モデルおよび/または予測を車両安全性および衝突回避システム452に出力してもよい。車両安全性および衝突回避システム452は、他の車両の運行に関係する挙動モデルおよび/または予測を使用して、車両100および/または車両100の乗員(たとえば、11、12、13)に対する安全性決定を行ってもよい。
様々な実施形態では、車両安全性および衝突回避システム452は、車両および乗員の安全性に影響を及ぼすことがある、様々なコマンド、様々なレイヤのプランニングまたは他の決定、ならびに人間の運転手アクションおよび/または車両制御ジェスチャの、安全性検査または監督を実行する機能を含んでもよい。いくつかの実施形態では、様々な安全性パラメータは、メモリの中に記憶されてもよく、車両安全性および衝突回避システム452は、決定された値(たとえば、近くの車両までの相対間隔、道路中心線からの距離など)を、対応する安全性パラメータと比較してもよく、安全性パラメータが違反されるかまたは違反されることになる場合、警報、コマンド、または安全な代替車両アクションを発行してもよい。
たとえば、車両安全性および衝突回避システム452は、(センサ融合およびRWM管理レイヤ412によって規定されるような)別の車両とその車両との間の現在または将来の分離距離を(たとえば、センサ融合およびRWM管理レイヤ412によって改善された道路世界モデルに基づいて)決定してもよく、その分離距離を、メモリの中に記憶された安全分離距離パラメータと比較してもよく、現在のまたは予測される分離距離が安全分離距離パラメータに違反する場合、加速、減速、または転回するために、命令を発行してもよく、かつ/または安全な代替車両アクションを運転手に提案してもよい。別の例として、車両安全性および衝突回避システム452は、(たとえば、第1の乗客によって実行された、検出された第1の車両制御ジェスチャに第1の乗客プロファイルを適用することによって)決定された第1の車両アクションを、安全車両アクション限度またはパラメータと比較してもよく、提案された車両アクションが安全車両アクション限度またはパラメータを超過することに応答して、オーバーライドコマンドおよび/または警報を発行してもよい。
図5は、車両において様々な実施形態を実施するのに適した処理デバイスシステムオンチップ(SOC)500の例示的なSOCアーキテクチャを示す。図1A~図5を参照すると、処理デバイスSOC500は、デジタル信号プロセッサ(DSP)503、モデムプロセッサ504、画像および物体認識プロセッサ506、モバイルディスプレイプロセッサ507、アプリケーションプロセッサ508、ならびにリソースおよび電力管理(RPM:resource and power management)プロセッサ517などの、いくつかの異種プロセッサを含んでもよい。処理デバイスSOC500はまた、異種プロセッサ503、504、506、507、508、517のうちの1つまたは複数に接続された1つまたは複数のコプロセッサ510(たとえば、ベクトルコプロセッサ)を含んでもよい。プロセッサの各々は、1つまたは複数のコアおよび独立/内部クロックを含んでもよい。各プロセッサ/コアは、他のプロセッサ/コアから独立した動作を実行してもよい。たとえば、処理デバイスSOC500は、第1のタイプのオペレーティングシステム(たとえば、FreeBSD、LINUX、OS Xなど)を実行するプロセッサ、および第2のタイプのオペレーティングシステム(たとえば、Microsoft Windows)を実行するプロセッサを含んでもよい。いくつかの実施形態では、アプリケーションプロセッサ508は、SOC500のメインプロセッサ、中央処理ユニット(CPU)、マイクロプロセッサユニット(MPU)、算術論理ユニット(ALU)、グラフィックス処理ユニット(GPU)などであってもよい。
処理デバイスSOC500は、センサデータ、アナログデジタル変換、ワイヤレスデータ送信を管理するための、かつウェブブラウザにおけるレンダリングのために符号化オーディオおよびビデオ信号を処理することなどの他の特殊な動作を実行するための、アナログ回路およびカスタム回路514を含んでもよい。処理デバイスSOC500は、プロセッサ、およびコンピューティングデバイス上で実行中のソフトウェアクライアント(たとえば、ウェブブラウザ)をサポートするために使用される、電圧レギュレータ、発振器、位相ロックループ、周辺ブリッジ、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、および他の類似のコンポーネントなどの、システムコンポーネントおよびリソース516をさらに含んでもよい。
処理デバイスSOC500はまた、1つまたは複数のカメラ(たとえば、101、112、114、プライマリカメラ、ウェブカム、3Dカメラなど)、カメラファームウェアからのビデオディスプレイデータ、画像処理、ビデオ前処理、ビデオフロントエンド(VFE:video front-end)、インラインJPEG、高精細ビデオコーデックなどの動作を含み、提供し、制御し、かつ/または管理する、カメラ作動および管理(CAM:camera actuation and management)505のための専用回路を含む。CAM505は、独立した処理ユニットであってもよく、かつ/または独立クロックもしくは内部クロックを含んでもよい。
いくつかの実施形態では、画像および物体認識プロセッサ506は、様々な実施形態に関与する画像処理および物体認識分析を実行するように構成される、プロセッサ実行可能命令および/または専用ハードウェアを用いて構成されてもよい。たとえば、画像および物体認識プロセッサ506は、車両制御ジェスチャ、他の車両を認識および/または識別し、かつ説明するようなカメラ知覚レイヤ404の機能を別のやり方で実行するために、カメラ(たとえば、136)からCAM505を介して受信された画像を処理する動作を実行するように構成されてもよい。いくつかの実施形態では、プロセッサ506は、レーダーデータまたはライダーデータを処理し、説明するようなレーダー知覚レイヤ402の機能を実行するように構成されてもよい。
システムコンポーネントおよびリソース516、アナログ回路およびカスタム回路514、ならびに/またはCAM505は、カメラ136、レーダー122、ライダー124、電子ディスプレイ、ワイヤレス通信デバイス、外部メモリチップなどの周辺デバイスとインターフェースするための回路を含んでもよい。プロセッサ503、504、506、507、508は、再構成可能な論理ゲートのアレイを含んでよく、かつ/またはバスアーキテクチャ(たとえば、CoreConnect、AMBAなど)を実装してもよい、相互接続/バスモジュール524を介して、1つまたは複数のメモリ素子512、システムコンポーネントおよびリソース516、アナログ回路およびカスタム回路514、CAM505、ならびにRPMプロセッサ517に相互接続されてもよい。通信は、高性能ネットワークオンチップ(NoC)などの高度な相互接続部によって提供されてもよい。
処理デバイスSOC500は、クロック518および電圧レギュレータ520などの、SOCの外部のリソースと通信するための入力/出力モジュール(図示せず)をさらに含んでもよい。SOCの外部のリソース(たとえば、クロック518、電圧レギュレータ520)は、内部SOCプロセッサ/コア(たとえば、DSP503、モデムプロセッサ504、画像および物体認識プロセッサ506、MDP、アプリケーションプロセッサ508など)のうちの2つ以上によって共有されてもよい。
いくつかの実施形態では、処理デバイスSOC500は、車両(たとえば、100)における使用のために制御ユニット(たとえば、140)の中に含まれてもよい。制御ユニットは、説明したように、通信ネットワーク(たとえば、180)、インターネット、および/またはネットワークサーバ(たとえば、184)との通信用の通信リンクを含んでもよい。
処理デバイスSOC500はまた、動きセンサ(たとえば、IMUの加速度計およびジャイロスコープ)を含むセンサからセンサデータを収集するのに適している追加のハードウェアおよび/またはソフトウェアコンポーネント、ユーザインターフェース要素(たとえば、入力ボタン、タッチスクリーンディスプレイなど)、マイクロフォンアレイ、物理条件(たとえば、ロケーション、方向、運行、向き、振動、圧力など)を監視するためのセンサ、カメラ、コンパス、GPSレシーバ、通信回路(たとえば、Bluetooth(登録商標)、WLAN、WiFiなど)、ならびに現代の電子デバイスのよく知られている他のコンポーネントを含んでもよい。
図6は、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両(たとえば、100)を共同的に操作するために構成されるシステム600を示すコンポーネントブロック図を示す。いくつかの実施形態では、システム600は、1つまたは複数の車両コンピューティングシステム602および1つまたは複数の他の車両コンピューティングシステムを含んでよく、他の車両コンピューティングシステム604はワイヤレスネットワークを介して通信する。図1A~図6を参照すると、車両コンピューティングシステム602は、車両(たとえば、100)のプロセッサ(たとえば、164)、処理デバイス(たとえば、500)、および/または制御ユニット(たとえば、140)(「プロセッサ」と様々に呼ばれる)を含んでもよい。他の車両コンピューティングシステム604は、車両(たとえば、100)のプロセッサ(たとえば、164)、処理デバイス(たとえば、500)、および/または制御ユニット(たとえば、140)(「プロセッサ」と様々に呼ばれる)を含んでもよい。
車両コンピューティングシステム602は、機械実行可能命令606によって構成されてもよい。機械実行可能命令606は、1つまたは複数の命令モジュールを含んでもよい。命令モジュールは、コンピュータプログラムモジュールを含んでもよい。命令モジュールは、(限定はしないが)乗客識別モジュール607、乗客プロファイル決定モジュール608、車両制御ジェスチャ決定モジュール610、車両アクション決定モジュール612、乗客プロファイル受信モジュール616、車両アクション安全性決定モジュール618、代替車両アクション決定モジュール620、遅延期間アセスメントモジュール622、異常操作決定モジュール624、追加表示決定モジュール626、異常操作安全性アセスメントモジュール628、車両操作モジュール629、および/または他の命令モジュールのうちの1つまたは複数を含んでもよい。
乗客識別モジュール607は、乗客(すなわち、車両の1人または複数の乗員)を識別するように構成されてもよい。いくつかの実施形態では、乗客識別モジュール607は、(限定はしないが)車両の中の乗客の位置、乗客による入力、または乗客の認識のうちの少なくとも1つに基づいて乗客を識別するように構成されてもよい。たとえば、乗客による入力および/または乗客の認識は、彼らのポータブルコンピューティングデバイス(たとえば、スマートフォン)を通じて乗員から、または(限定はしないが)バイオセンサおよび/もしくは顔認識システムを使用するようなセンサ(たとえば、101)を使用する識別から、決定されてもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635、他の車両コンピューティングシステム604、外部リソース630、1つまたは複数のセンサ(たとえば、101)およびプロファイルデータベース(たとえば、142)を使用して、乗客または乗客が着座しているロケーションを識別してもよい。
乗客プロファイル決定モジュール608は、乗客によって実行された、認識されたジェスチャに適用されるべき1つまたは複数のプロファイルを決定するように構成されてもよい。適切な乗客プロファイルの決定は、実行可能な車両アクションへの変換のために乗客ジェスチャをより効果的に正規化する。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635、プロファイルデータベース(たとえば、142)、および乗客識別情報を使用して、どの乗客プロファイルを使用すべきかを現在の条件に基づいて決定してもよい。プロファイルデータベースおよび/または乗客プロファイル決定モジュール608は、指定の個人に対する乗客プロファイルを含む複数の乗客プロファイルを保持してもよい。所与の制御ジェスチャを行う個人が、異なる速度で、異なる角度を通じて、かつ動きの違いを伴って、彼らの指、手、および/または腕を動かす場合があるので、複数の乗客プロファイルの一部または全部は車両制御ジェスチャを異なって正規化してもよい。したがって、第2の乗客プロファイルは、第1の乗客プロファイルとは異なって車両制御ジェスチャを正規化してもよい。いくつかの実装形態は、乗客プロファイル決定モジュール608を採用しなくてもよく、もっと直接的に所定の乗客プロファイルを適用してもよい。代替として、乗客プロファイル決定モジュール608の使用は、必要または要望に応じて選択的にオンまたはオフにされてもよく、そのことは手作業でまたは環境/条件に基づいて自動的に決められてもよい。
様々な実施形態によれば、2人以上の乗客が車両を占有する環境において、乗客プロファイル決定モジュール608はまた、運転手として指定されるべきであると見なされる1人または複数の乗客を決定するように構成されてもよく、したがって、指定の運転手からの車両制御ジェスチャだけを受諾する。このようにして、乗客プロファイル決定モジュール608は、運転手であるものと指定されない1人または複数の乗客からのジェスチャを無視してもよい。さらなる実施形態では、2人以上の運転手が運転手として指定される場合(たとえば、見習い運転手の状況または運転手教育適用例では)、乗客プロファイル決定モジュール608は、競合する車両制御ジェスチャが検出される場合には、運転手の間の階層を決定する方法を有してもよい。センサ(たとえば、101)を使用して、乗客プロファイル決定モジュール608は、車両が複数の乗員を有することを決定してもよく、同じく誰がまたはどの乗員が担当するのか(すなわち、指定の運転手)を決定してもよい。いくつかの実施形態では、オーバーライドが受け取られない限り、伝統的に運転席であるもの(または、車両の事前設定された他のロケーション)を占有する乗客が指定の運転手としてデフォルトで選択されてもよい。代替として、両方のフロントシート乗員が、(彼らは道路の良好な視界を有する傾向があるので)指定の運転手であってもよい。特定の実施形態では、そのような場合、運転席乗客からの車両制御ジェスチャは、他のフロントシート乗客からの車両制御ジェスチャをオーバーライドしてもよい。
いくつかの実施形態では、指定の運転手は、乗員からの(たとえば、車両の中への関連するモバイルデバイスまたは直接入力からの)入力の後に選ばれてもよい。いくつかの実施形態では、指定の運転手についての入力はまた、乗客識別モジュール607を通じるような、乗員から自動的に受け取られてもよい。いくつかの実施形態では、識別を通じて指定の運転手を決定するとき、乗客プロファイル決定モジュール608は、自動的に階層を適用してもよい。たとえば、所有者、最も一般的な運転手、または直近に指定された運転手が、指定の運転手として最高の優先度を有してもよい。同様に、階層的なリストがプログラムまたはユーザ定義されてもよい(たとえば、父親>母親>最年長の子供、または父親および母親>最年長の子供)。他の実施形態では、階層がなくてもよく、車両制御ジェスチャは、すべてまたは一部の乗員から受諾される。
指定の運転手がいるか、またはコマンドを受信するための階層が乗員の間にある、いくつかの実装形態では、指定されない運転手または階層がより低い乗員は、限定はしないが、非ナビゲーションコマンド、および/または車両もしくは乗員の安全性を危うくしないコマンド(たとえば、キャビン温度、娯楽システムボリュームを制御すること)などの、選択された車両制御ジェスチャを入力することが許容されてもよい。代替として、指定されない運転手または階層がより低い乗員からの車両制御ジェスチャは受諾されてもよいが、より大きい安全性パラメータ(たとえば、車両間に必要とされるもっと長い距離、もっと低い最大速度など)が採用されるか、または車両の入力においてもっと小さい値(たとえば、1車線変更のみに限定すること、5mphの増分のみに速度を上げること/下げることなど)を伴う。たとえば、そのようなコマンドは、安全であることになり、そのような乗員にもっと安全と感じさせる場合があるが、すべての他の車両操縦制御が認識されない場合があるので、車両制御ジェスチャ決定モジュール610は、車両の速度を下げることまたは車両分離距離を大きくすることに限定される、「バックシート運転手」からのジェスチャを認識してもよい。したがって、指定されない運転手または階層がより低い乗員は、指定の運転手または優先度がより高い指定の運転手と比較して、より少ない程度の制御が許容されてもよい。
いくつかの実施形態では、指定されない運転手または階層がより低い乗員の認識されたジェスチャにおける限定は、いくつかの環境ではオーバーライドされてもよい。いくつかの実施形態では、車両制御ジェスチャ決定モジュール610は、指定の運転手が不適格になる環境に対応するような、オーバーライドジェスチャ、または指定されない運転手によるジェスチャが認識および実施されるべきである環境を、認識してもよい。たとえば、指定の運転手が眠りに落ちているかまたは前かがみになっており(見たところ気を失っており)、かつ認識される車両制御ジェスチャを別の乗客が行っていることを、車両制御ジェスチャ決定モジュール610が検出する場合、車両はそのようなジェスチャを実施してもよい。
いくつかの実施形態では、指定の運転手の間の優先度、または新たな指定の運転手の選択は、自動的などの、トリガイベントに応答して行われてもよい。そのようなトリガイベントの非限定的な一例は、疲労、注意散漫、酩酊などに起因するような、1つもしくは複数のセンサによる、かつ/または車両制御システムによる、現在の指定の運転手(または、優先度が最も高い指定の運転手)の挙動の変化の検出であってもよい。たとえば、指定の運転手の目を追跡するカメラシステムが、疲労からのまぶたの垂れ下がり、すなわち、運転手が注意散漫により道路を見ていないか、または指定の運転手の目が酩酊によりゆっくり動いていることを、検出する場合がある。そのようなトリガイベントの別の非限定的な例は、現在の指定の運転手(または、優先度が最も高い指定の運転手)、他の乗員、またはワイヤレス通信リンクによって受信される遠隔の当事者(たとえば、車両の所有者)によるコマンド(たとえば、言葉によるコマンド、またはコマンドジェスチャ)の検出であってもよい。したがって、乗客プロファイル決定モジュール608は、現在の指定の運転手または車両制御ジェスチャを提供する他の乗客が、適切または適時に車両制御ジェスチャを与えるためのその個人の能力を悪化させる場合がある、挙動の変化を呈しているかどうかを、(たとえば、自動的に)アセスメントおよび決定するように構成されてもよい。乗客プロファイル決定モジュール608は、カメラ、アルコールセンサ、動き検出器などのセンサ(たとえば、101)からの入力を受信してもよく、乗客動作パターン認識を適用して乗客の悪化のレベルを決定してもよい。指定の運転手(または、優先度が最も高い指定の運転手)が悪化しているという、乗客プロファイル決定モジュール608による検出に応答して、乗客プロファイル決定モジュール608は、新たな指定の運転手を選択するか、または指定の運転手の優先度を変更するように、構成されてもよい。
いくつかの実施形態では、指定の運転手(または、優先度が最も高い指定の運転手)が悪化しているという、乗客プロファイル決定モジュール608による検出に応答して、その悪化した指定の運転手は、依然としていくらかの度合いの制御が与えられてもよい。たとえば、悪化した指定の運転手は、非ナビゲーションコマンドおよび/または車両もしくは乗員の安全性を危うくしないコマンド(たとえば、キャビン温度、娯楽システムボリュームを制御すること)を提供することだけに制限されてもよい。代替として、悪化した指定の運転手は、もっと少ない車両制御またはもっと少ない度合いの車両制御(たとえば、速度、速度の変更、1つの継続的な操縦の中で変更されてもよい車線の数を限定することなど)に限定されてもよい。追加または代替として、悪化した指定の運転手は、ナビゲーションコマンドおよび/または制御を提供することを許容されてもよく、ただし悪化したと見なされない運転手のために使用される安全性しきい値よりも高くてもよい安全性しきい値を、彼らが満たす場合だけである。たとえば、悪化した指定の運転手は、空いているハイウェイ上で2車線の車線変更を行うことを許容されてもよいが、混雑したハイウェイ上で同じ操縦を導くことを許容されない場合がある。
車両制御ジェスチャ決定モジュール610は、いつ乗客(たとえば、11、12、13)が、車両ジェスチャ検出システム(たとえば、50)にとって認識可能な方法で車両制御ジェスチャを実行するのかを決定するように構成されてもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635、1つまたは複数のセンサ(たとえば、101)、およびジェスチャ認識エンジン(たとえば、144)を使用して、1人または複数の乗客が車両(たとえば、100)を操作するための車両制御ジェスチャを実行したことがあるかどうかを判定してもよい。乗客が1つまたは複数の車両制御ジェスチャを実行したことがあることを、車両制御ジェスチャ決定モジュール610が検出すると、1つまたは複数の車両制御ジェスチャについての情報が、制御ユニット(たとえば、140)に転送されてもよい。
車両アクション決定モジュール612は、1つまたは複数のどの車両アクションが、検出された車両制御ジェスチャに関連するのかを決定するように、構成されてもよい。車両アクション決定モジュール612はまた、検出された車両制御ジェスチャが、車両および/もしくは乗客にとって安全でなく、またはいくつかの点で異常な、アクションに関連するとき、代替車両アクションを決定するように構成されてもよい。非限定的な例として、車両アクション決定モジュール612は、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)、電子記憶装置635、および車両管理システム(たとえば、400、450)を使用して、車両アクションを決定してもよい。
乗客プロファイル受信モジュール616は、乗客プロファイルを受信および記憶するように構成されてもよい。乗客プロファイル受信モジュール616は、入力をトレーニングすることから乗客にカスタマイズされている乗客プロファイルを受信してもよい。追加または代替として、乗客プロファイル受信モジュール616は、車両ユーザインターフェースを通じた、またはそのようなデータを提供する別のコンピューティングデバイスからの、入力データとして乗客プロファイルを受信してもよい。たとえば、乗客はトレーニングプロトコルに従ってもよく、ここで、乗客がジェスチャを実践および/または実行し、乗客動作が記録および分析されて、その乗客に対する乗客プロファイルを生成する。さらなる例として、リモートコンピューティングデバイスが、車両制御ジェスチャへの適用のために、1つまたは複数の乗客プロファイルを乗客プロファイル受信モジュール616に提供してもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635、1つまたは複数のセンサ(たとえば、101)、および乗客プロファイルを受信するための入力デバイスを使用してもよい。
車両アクション安全性決定モジュール618は、検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全であるかどうかを判定するように、構成されてもよい。安全性の決定は、車両または乗客への損害または損傷がないことを保証してもよい。通常、車両にとって安全なものは乗客にとっても安全であり、逆も同様である(すなわち、車両安全性へのリスクのレベルは、乗客安全性へのリスクのレベルに等しいかまたはそれを近似する)が、おそらく常にそうとは限らない。たとえば、極めて急速な減速は、乗客にむち打ちを引き起こすことがあるが、車両は無損害を維持する場合がある。したがって、何が安全であるのかは、一般に、乗客の安全性を優先させる。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635および車両管理システム(たとえば、400、450)を使用して、様々な車両アクションの安全性を決定またはアセスメントしてもよい。
いくつかの実装形態では、代替車両アクション決定モジュール620は、受け取られた車両制御ジェスチャに関連する、第1の車両アクションのもっと安全な代替策であってもよい、1つまたは複数の代替車両アクション(たとえば、速度を変更すること、異なる車線に変更することなど)を決定するように構成されてもよい。代替車両アクション決定モジュール620は、第1の車両アクションは車両が実行するのに安全でないという判定に応答して、使用されてもよい。別の実施形態では、決定された代替車両アクションは、車両および/または乗客への損害をもたらす、第1の車両アクションと比較して少なくともいくつかのしきい値量だけ低い、決定された確率を有してもよい。たとえば、第1の車両アクションは、車両が別の車両の後ろで進行しつつあるような車線に車線を変更することを伴うことがある。その第1の車両アクションは比較的安全であってもよいが、車線変更から間もなく先頭の位置の中の車両がそのブレーキを踏み込むことがある(すなわち、比較的小さい)統計的な可能性がある場合がある(すなわち、安全性への第1のレベルのリスク)。一方、代替車両アクションは、先頭の位置の中の車両を最初に追い越してから車線を変更することを含んでよく、そのことはその先導車両の前方の開かれた道路に起因して、車両が事故に関与するようになるもっと低い統計的な可能性に関連付けられてもよい(すなわち、安全性への第1のレベルのリスクよりも低い、安全性への第2のレベルのリスク)。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635および車両管理システム(たとえば、400、450)を使用して、代替車両アクションを決定してもよい。
遅延期間アセスメントモジュール622は、妥当な遅延期間が、本来なら安全でない車両アクションを、車両が実行するのに十分に安全にさせることがあるかどうかを、決定するように構成されてもよい。たとえば、第1の車両制御ジェスチャは、別の車両がその車線内で極めて近接して進行することに起因して安全でない車線変更を行うように、車両を導く場合がある。遅延期間アセスメントモジュール622は、他の車両が異なる速度で進行しているので、車線変更を開始する前の最大5秒の遅延が、本来なら安全でない操縦を安全な操縦に変化させてもよいことを、決定してもよい。さらなる実施形態では、遅延期間の終了において、移動が依然として安全でない場合、遅延期間アセスメントモジュール622は、追加の遅延期間が、本来なら安全でない車両アクションを、車両が実行するのに十分に安全にさせることがあるかどうかを、再び決定してもよい。代替として、車両は、移動を実行すべきでなくかつ/またはユーザからのさらなる入力を求めるべきであるという判定を、ユーザ(運転手)に通知してもよい。
様々な実施形態では、遅延期間アセスメントモジュール622によって考慮に入れられてもよい遅延期間の持続時間を限定するために、(限定はしないが)5~10秒のような最大遅延しきい値が使用されてもよい。最大遅延しきい値は、乗客、車両所有者、および/または製造業者によって設定および/または変更されてもよい。加えて、最大遅延しきい値は、乗客ごとに異なってもよい(すなわち、乗客プロファイルに関連付けられてもよい)。代替として、最大遅延しきい値は、すべての乗客に対して普遍的であってもよい。さらなる代替形態として、個々の乗客は異なる最大遅延しきい値を有してもよいが、車両はまた、個々の最大遅延しきい値が超過しなくてもよい究極の最大遅延しきい値を有してもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635および車両管理システム(たとえば、400、450)を使用して、様々な車両アクションを実行するための遅延期間を決定またはアセスメントしてもよい。
異常操作決定モジュール624は、車両制御ジェスチャに関連する車両アクションが異常車両操作を含むかどうかを判定するように構成されてもよい。異常操作は、車両によって一般に実行されるアクションよりも著しく極端な1つまたは複数の急なアクションなどの、(たとえば、過去における同じ車両の動作、他の車両または類似の車両、類似の環境(たとえば、ロケーション、時刻/年、気象条件など)のもとでの車両と比較して)車両によって習慣的または一般に実行されない車両操作を含んでもよい。車両アクションが異常と見なされるかどうかは、その車両アクションが以前に実行されたことがあるかどうか、ならびに車両アクションの速度、加速度/減速度、度合い、および程度に依存してもよい。以前に実行されたことがあるが、まさに同じ速度、度合い、および/または程度ではない、車両アクションの場合には、プロセッサは、その車両アクションを異常にさせる、かつて超過したしきい値を使用してもよい。
加えて、車両アクションが異常と見なされるかどうかは、現在の環境に依存してもよい。たとえば、ハイウェイ上での右への1車線変更は、中央車線からは異常でなくてもよいが、右側ランド(right-hand land)から(すなわち、ハイウェイの路肩上に車両を導くこと)は、異常操作決定モジュール624によって異常として評価されてもよい。同様に、(限定はしないが)ロケーション、気象条件、時刻/年、照明などの他の環境が、異常操作決定モジュール624によって考慮に入れられてもよい。
異常操作決定モジュール624による決定は、乗客プロファイルからの履歴的記録、および/または指定された条件のもとでの通常/異常車両アクションの知識ベース(すなわち、予期される規範)に基づいてもよい。場合によっては、車両制御ジェスチャに関連する車両アクションが異常操作であるという、異常操作決定モジュール624による決定は、誤った入力を示すことがある。誤った入力は、たとえば正しく実行されなかったか、または(たとえば、身振りで話すことまたはくしゃみなどの)車両制御ジェスチャであるものと意図されなかった、乗客ジェスチャから生じる場合がある。同様に、規制薬物の影響のもとにいるかまたは注意をそらしている乗客は、不正確に、不適切に、かつ/または不注意に車両制御ジェスチャを実行する場合がある。車両制御ジェスチャが異常(すなわち、誤った入力またはそれ以外)であるという判定は、その車両制御ジェスチャに従うべきかどうか、または代替車両アクションを決定すべきかどうかをアセスメントするとき、車両アクション決定モジュール612に伝えられてもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635および車両管理システム(たとえば、400、450)を使用して、車両アクションが異常と見なされるかどうかを判定またはアセスメントしてもよい。
様々な実施形態では、追加表示決定モジュール626は、乗客が異常操作と一緒に追加の表示を実行したことがあるかどうかを検出するように構成されてもよい。いくつかの実施形態では、追加の表示は、異常操作に関連する車両制御ジェスチャと一緒に(たとえば、異常操作の前に、異常操作中に、または異常操作の後に)乗客によって実行されている場合がある。追加の表示は、異常操作のいくつかの(たとえば、異常操作の前/後の2~3秒以内の)ウィンドウ内で実行されてもよい。いくつかの実施形態では、追加の表示は、異常操作に関連するプロンプトに応答して実行されてもよい(たとえば、確認または明確化を要求する異常操作を車両が運転手に通知する)。
追加の表示は、異常車両制御ジェスチャを実行したことがある乗客が、異常操作を実行するのを本当に意図したことを示唆してもよい。たとえば、追加の表示は、誇張されたジェスチャ、反復されたジェスチャ、通常よりも急速に実行されたジェスチャ、または検出された車両制御ジェスチャと一緒に(たとえば、同時に)受け取られた非視覚入力(たとえば、音声)のうちの、少なくとも1つを含んでもよい。
いくつかの実施形態では、受け取られた車両制御ジェスチャが異常であるという、異常操作決定モジュール624による決定に応答して、システムは、確認または明確化を乗客に促してもよく、追加の表示として受け取られる、ユーザによる応答(たとえば、音声コマンドのジェスチャ)が、車両制御ジェスチャを確認または明確化してもよい。乗客へのプロンプトは、単純であってもよく(たとえば、チャイムまたは短い一続きの音)、または追加の表示が必要とされることを乗客に知らせる、より詳細なフィードバック(たとえば、言葉によるフィードバック)を含んでもよい。言葉によるフィードバックまたは別個の音の系列は、受け取られた車両制御ジェスチャが異常車両操作をもたらし、したがって、確認が必要とされることを、そのように乗客に知らせてもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635、1つまたは複数のセンサ(たとえば、101)、およびジェスチャ認識エンジン(たとえば、144)を使用して、車両制御ジェスチャに関連する追加の表示を乗客が実行したことがあるかどうかを判定してもよい。
いくつかの実施形態では、異常操作が意図されることをユーザが確認するときでさえ、車両操作モジュール629は、(たとえば、異常操作を実施することが安全性しきい値を超過する場合)さほど極端でないバージョンの異常操作を実施するように車両を操作してもよい。さほど極端でないバージョンの異常操作は、より少ない度合いの操縦(たとえば、2または3車線変更ではなく1車線変更、25mphではなく5mphだけ速度を上げることなど)を伴ってもよい。いくつかの実施形態では、異常操作があまりに極端である(すなわち、安全性しきい値を超過する)場合、異常操作は無視されてもよく、乗客には異常操作が安全でないことが知らされてもよい。たとえば、車両制御システムは、異常操作が無視されていることを言葉によって説明してもよい。
異常操作安全性アセスメントモジュール628は、異常操作決定モジュール624によって検出された任意の異常車両操作が、車両または乗員にとって安全であるかどうかを判定するように構成されてもよい。非限定的な例として、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)は、電子記憶装置635および車両管理システム(たとえば、400、450)を使用して、車両アクションが異常と見なされるかどうかを判定またはアセスメントしてもよい。
車両操作モジュール629は、特定の車両アクションが車両および乗員にとって安全であるという判定に応答するなどして、車両アクションを実施するように車両を操作するように構成されてもよい。車両操作モジュール629はまた、必要に応じて代替および/または他の車両アクションを実施するように車両を操作してもよい。たとえば、車両操作モジュール629は、第2の車両アクションが利用可能であるという判定に応答して、第2の車両アクションを実施するように車両を操作してもよい。同様に、車両操作モジュール629は、検出された第1の車両制御ジェスチャに関連する第1の車両アクションは判定された遅延期間の後に車両が実行するのに安全であるという判定に応答して、判定された遅延期間の後に第1の車両アクションを実施するように車両を操作してもよい。さらに、車両操作モジュール629は、異常車両操作が車両または乗員にとって安全でない(not safe)(すなわち、安全でない(unsafe))という判定に応答して、第1の車両アクションのもっと安全な代替策である第2の車両アクションを実施するように車両を操作してもよい。このようにして、車両操作モジュール629は、代替車両アクション決定モジュール620によって決定された代替車両アクションを実施してもよい。非限定的な例として、車両操作モジュール629は、処理デバイス(たとえば、500)のプロセッサ(たとえば、164)、電子記憶装置635、および車両管理システム(たとえば、400、450)を使用して、車両を操作(たとえば、車両アクションを実行)してもよい。
様々な実施形態によれば、車両操作モジュール629は、自律的に車両アクションを実施してもよい。したがって、実施される車両アクションは乗客入力から(すなわち、受け取られた車両制御ジェスチャから)生じるが、車両操作モジュール629は、車両が自律モードの外に来ることなく車両を安全に操作するための必要な機能を実行してもよい。いくつかの環境下では、車両操作モジュール629は、受け取られた1つまたは複数の車両制御ジェスチャに、より密に関連する車両アクションよりも安全であるものと決定された、1つまたは複数の代替車両アクションを実施してもよい。
いくつかの実施形態では、車両コンピューティングシステム602、他の車両コンピューティングシステム604は、V2Vワイヤレス通信リンクなどのワイヤレスネットワーク(たとえば、180)を介して互いに通信してもよい。追加として、車両コンピューティングシステム602および他の車両コンピューティングシステム604は、外部リソース630へのアクセスを提供するワイヤレス通信ネットワークに接続されてもよい。たとえば、そのような電子通信リンクは、少なくとも部分的には、インターネットおよび/または他のネットワークなどのネットワークを介して確立されてもよい。このことが限定的であることを意図しないこと、および本開示の範囲が、車両コンピューティングシステム602、他の車両コンピューティングシステム604、および/または外部リソース630がいくつかの他の通信媒体を介して動作可能にリンクされてもよい実施形態を含むことが、諒解されよう。
他の車両コンピューティングシステム604はまた、機械実行可能命令606によって構成されるコンピュータプログラムモジュールを実行するように構成される1つまたは複数のプロセッサを含んでもよい。機械実行可能命令606は、乗客プロファイル決定モジュール608、車両制御ジェスチャ決定モジュール610、車両アクション決定モジュール612、乗客識別モジュール607、乗客プロファイル受信モジュール616、車両アクション安全性決定モジュール618、代替車両アクション決定モジュール620、遅延期間アセスメントモジュール622、異常操作決定モジュール624、追加表示決定モジュール626、異常操作安全性アセスメントモジュール628、車両操作モジュール629、および/または説明するような第1の車両の車両コンピューティングシステム602と類似の他の命令モジュールのうちの1つまたは複数を含んでもよい、1つまたは複数の命令モジュールを含んでもよい。
外部リソース630は、システム600、システム600に参加する外部エンティティ、および/または他のリソースの外側の、情報のソースを含んでもよい。たとえば、外部リソース630は、地図データリソース、ハイウェイ情報(たとえば、交通量、工事など)システム、天気予報サービスなどを含んでもよい。いくつかの実施形態では、本明細書で外部リソース630にあるとされる機能性の一部または全部は、システム600の中に含まれるリソースによって提供されてもよい。
車両コンピューティングシステム602は、電子記憶装置635、1つもしくは複数のプロセッサ164、および/または他のコンポーネントを含んでもよい。車両コンピューティングシステム602は、ネットワークおよび/または他の車両コンピューティングシステムとの情報の交換を可能にするための通信回線またはポートを含んでもよい。図6における車両コンピューティングシステム602の例示は、限定的であることを意図しない。車両コンピューティングシステム602は、本明細書で車両コンピューティングシステム602にあるとされる機能性を提供するために一緒に動作する、複数のハードウェア、ソフトウェア、および/またはファームウェアコンポーネントを含んでもよい。たとえば、車両コンピューティングシステム602は、車両コンピューティングシステム602として一緒に動作する、車両コンピューティングシステムのクラウドによって実施されてもよい。
電子記憶装置635は、情報を電子的に記憶する非一時的記憶媒体を備えてもよい。電子記憶装置635の電子記憶媒体は、車両コンピューティングシステム602と一体に設けられる(すなわち、実質的に取り外し不可能な)システムストレージ、および/または、たとえばポート(たとえば、ユニバーサルシリアルバス(USB)ポート、ファイアワイヤポートなど)もしくはドライブ(たとえば、ディスクドライブなど)を介して、車両コンピューティングシステム602に取り外し可能に接続可能なリムーバブルストレージのうちの、一方または両方を含んでもよい。電子記憶装置635は、光学的に読取り可能な記憶媒体(たとえば、光ディスクなど)、磁気的に読取り可能な記憶媒体(たとえば、磁気テープ、磁気ハードドライブ、フロッピードライブなど)、電荷ベースの記憶媒体(たとえば、EEPROM、RAMなど)、ソリッドステート記憶媒体(たとえば、フラッシュドライブなど)、および/または電子的に読取り可能な他の記憶媒体のうちの1つまたは複数を含んでもよい。電子記憶装置635は、ソフトウェアアルゴリズム、プロセッサ164によって決定される情報、車両コンピューティングシステム602から受信される情報、他の車両コンピューティングシステム604から受信される情報、および/または車両コンピューティングシステム602が本明細書で説明するように機能することを可能にする他の情報を記憶してもよい。
プロセッサ164は、車両コンピューティングシステム602の中で情報処理能力を提供するように構成されてもよい。したがって、プロセッサ164は、デジタルプロセッサ、アナログプロセッサ、情報を処理するように設計されたデジタル回路、情報を処理するように設計されたアナログ回路、ステートマシン、および/または情報を電子的に処理するための他のメカニズムのうちの1つまたは複数を含んでもよい。プロセッサ164は単一のエンティティとして図6に示されるが、このことは例示のためにすぎない。いくつかの実施形態では、プロセッサ164は複数の処理ユニットを含んでもよい。これらの処理ユニットは、同じデバイス内に物理的に位置してもよく、またはプロセッサ164は、協調して動作する複数のデバイスの処理機能性を表してもよい。プロセッサ164は、モジュール608、607、610、612、616、618、620、622、624、626、628、および/もしくは629、ならびに/または他のモジュールを実行するように構成されてもよい。プロセッサ164は、ソフトウェア、ハードウェア、ファームウェア、ソフトウェア、ハードウェア、および/もしくはファームウェアのいくつかの組合せ、ならびに/またはプロセッサ164上に処理能力を構成するための他のメカニズムによって、モジュール608、607、610、612、616、618、620、622、624、626、628、および/もしくは629、ならびに/または他のモジュールを実行するように構成されてもよい。本明細書で使用する「モジュール」という用語は、モジュールにあるとされる機能性を実行する任意のコンポーネントまたはコンポーネントのセットを指してもよい。これは、プロセッサ可読命令の実行中の1つまたは複数の物理プロセッサ、プロセッサ可読命令、回路、ハードウェア、記憶媒体、または任意の他のコンポーネントを含んでもよい。
モジュール608、607、610、612、616、618、620、622、624、626、628、および/または629が、単一の処理ユニット内に実装されるものとして図6に示されるが、プロセッサ164が複数の処理ユニットを含む実施形態では、モジュール608、607、610、612、616、618、620、622、624、626、628、および/または629のうちの1つまたは複数が、他のモジュールから遠隔に実装されてもよいことを諒解されたい。以下で説明する、様々なモジュール608、607、610、612、616、618、620、622、624、626、628、および/または629によって提供される機能性の説明は例示目的であり、モジュール608、607、610、612、616、618、620、622、624、626、628、および/または629のうちのいずれかが、説明するよりも多数または少数の機能性を提供してもよいので、限定的であることを意図しない。たとえば、モジュール608、607、610、612、616、618、620、622、624、626、628、および/または629のうちの1つまたは複数が除去されてもよく、その機能性の一部または全部が、モジュール608、607、610、612、616、618、620、622、624、626、628、および/または629のうちの他のモジュールによって提供されてもよい。別の例として、プロセッサ164は、以下でモジュール608、607、610、612、616、618、620、622、624、626、628、および/または629のうちの1つにあるとされる機能性の一部または全部を実行してもよい、1つまたは複数の追加のモジュールを実行するように構成されてもよい。
図7A、図7B、および/または図7Cは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための、それぞれ、方法700、703、および705の動作を示す。図1A~図7Cを参照すると、方法700、703、および705は、車両(たとえば、100)のプロセッサ(たとえば、164)、処理デバイス(たとえば、500)、および/または制御ユニット(たとえば、140)(「プロセッサ」と様々に呼ばれる)の中で実施されてもよい。いくつかの実施形態では、方法700、703、および705は、車両管理システム(たとえば、400、450)などの車両管理システムスタック内の1つまたは複数のレイヤによって実行されてもよい。いくつかの実施形態では、方法700、703、および705は、車両管理システムなどの車両制御システムスタックから独立して、ただしそれと連携して、プロセッサによって実行されてもよい。たとえば、方法700、703、および705は、車両管理システムからの/内のデータおよびコマンドを監視し、かつ説明するようにアクションを取るとともにデータを記憶するように構成される、スタンドアロンソフトウェアモジュールとして、または専用ハードウェア内に、実装されてもよい。
図7Aは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法700を示す。
ブロック702において、車両プロセッサは、第1の乗客によって実行された、検出された第1の車両制御ジェスチャに第1の乗客プロファイルを適用することによって、第1の車両アクションを決定してもよい。第1の乗客プロファイルは、第1の乗客から受け取られる車両制御ジェスチャを正規化するための複数の乗客プロファイルから選択されてもよい。たとえば、プロセッサは、開いた手のひらを乗客が前方に保持する形態をなす車両制御ジェスチャ(すなわち、止まるための表示)を検出してもよい。現在の乗客に割り当てられた乗客プロファイルを適用した後、プロセッサは、このジェスチャが、車両が停止に移るように乗客が希望することを意味すると決定してもよい。いくつかの実施形態では、ブロック702の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)および電子記憶装置(たとえば、635)に結合される、プロセッサ(たとえば、164)を含んでもよい。ブロック702において決定を行うために、プロセッサは、車両アクション決定モジュール(たとえば、612)を使用してもよい。
ブロック704において、車両プロセッサは、第1の車両アクションが車両および乗員にとって安全であるという判定に応答して、第1の車両アクションを実施するように車両を操作してもよい。たとえば、プロセッサは、車両を停止に移らせてもよい。いくつかの実施形態では、ブロック704の動作を実行するための手段は、電子記憶装置(たとえば、635)および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。ブロック704において決定を行うために、プロセッサは、車両操作モジュール(たとえば、629)を使用してもよい。
いくつかの実施形態では、プロセッサは、乗客による車両制御ジェスチャに基づいて車両を周期的または継続的に操作するように、ブロック702および704における動作を反復してもよい。
図7Bは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法703を示す。
ブロック706において、第1の車両のプロセッサは、車両の中の第1の乗客の位置、第1の乗客による入力、または第1の乗客の認識のうちの少なくとも1つに基づいて第1の乗客を識別してもよい。たとえば、プロセッサは、前方左座席に着座しているものとして乗客を認識してもよく、乗客プロファイルもしくは少なくとも識別情報を乗客から受け取ってもよく、または顔認識ソフトウェアが車載イメージングを使用して乗客を認識してもよい。いくつかの実施形態では、ブロック706の動作を実行するための手段は、電子記憶装置(たとえば、635)および乗客識別モジュール(たとえば、607)に結合される、プロセッサ(たとえば、164)を含んでもよい。
ブロック708において、プロセッサは、第1の乗客の識別に基づいて第1の乗客プロファイルを選択してもよい。たとえば、プロセッサは、車両が出発したときに乗客によって提示される識別カードに基づいて、現在の乗員に固有の乗客プロファイルを選択してもよい。いくつかの実施形態では、ブロック708の動作を実行するための手段は、電子記憶装置(たとえば、635)および乗客プロファイル決定モジュール(たとえば、608)に結合される、プロセッサ(たとえば、164)を含んでもよい。方法703の中のブロック708における動作に続いて、プロセッサは、説明したような方法700のブロック702の動作を実行してもよい。
いくつかの実施形態では、プロセッサは、必要に応じて繰り返してまたは継続的に乗客プロファイルを選択するために、ブロック706および708における動作のうちのいずれかまたはすべてを反復してもよい。
図7Cは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法705を示す。
ブロック710において、プロセッサは、車両制御ジェスチャへの適用のために第1の乗客プロファイルをリモートコンピューティングデバイスから受信することを含む動作を実行してもよい。たとえば、プロセッサは、無線モジュール(たとえば、172)または入力モジュール(たとえば、168)を通じて受信されるデータとして第1の乗客プロファイルを受信してもよい。いくつかの実施形態では、ブロック710の動作を実行するための手段は、電子記憶装置(たとえば、635)および乗客プロファイル受信モジュール(たとえば、616)に結合される、プロセッサ(たとえば、164)を含んでもよい。方法705の中のブロック710における動作に続いて、プロセッサは、説明したような方法700のブロック702の動作を実行してもよい。
いくつかの実施形態では、プロセッサは、乗客プロファイルまたは乗客プロファイルへの更新を繰り返してまたは継続的に受信するために、ブロック710における動作を反復してもよい。
さらなる実施形態は、検出および認識された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全であるかどうかを判定することと、第1の車両アクションは車両が実行するのに安全でないという判定に応答して、第1の車両アクションのもっと安全な代替策である第2の車両アクションが、車両が実行するために利用可能であるかどうかを判定することと、第2の車両アクションが利用可能であるという判定に応答して、第2の車両アクションを実施するように車両を操作することとを含む、方法およびデバイスを含む。
いくつかの実施形態では、車両のプロセッサは、検出された第1の車両制御ジェスチャに関連する第1の車両アクションは判定された遅延期間の後に車両が実行するのに安全であるかどうかを判定してもよい。また、プロセッサは、第1の車両アクションまたは代替の第2の車両アクションは判定された遅延期間の後に車両が実行するのに安全であるという判定に応答して、判定された遅延期間の後に第1の車両アクションまたは代替の第2の車両アクションを実施するように車両を操作してもよい。
いくつかの実施形態では、車両のプロセッサは、第1の車両アクションが異常車両操作を含むかどうかを判定してもよい。いくつかの実施形態では、プロセッサは、第1の車両アクションが異常車両操作を含むという判定に応答して、検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むかどうかを判定してもよく、第1の車両アクションを実施するように車両を操作することは、検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むという判定にさらに応答する。いくつかの実施形態では、追加の表示は、誇張されたジェスチャ、反復されたジェスチャ、通常よりも急速に実行されたジェスチャ、または検出された第1の車両制御ジェスチャと一緒に(たとえば、同時に)受け取られた非視覚入力(たとえば、音声)のうちの、少なくとも1つを含んでもよい。いくつかの実施形態では、プロセッサは、第1の車両アクションが車両または乗員にとって安全でないという判定、および検出された第1の車両制御ジェスチャが、第1の乗客によって急激な車両操作が意図されるという追加の表示を含むという判定に応答して、第1の車両アクションを実施するように車両を操作してもよい。
図8Aおよび図8Bは、様々な実施形態による、2つの他の車両804、806に接近しつつある車両100のプロセッサ、およびプロセッサが乗客の車両制御ジェスチャをオーバーライドする、例示的な状況800、801を示す。図1A~図8Bを参照すると、3つの車両804、806、100は、すべて道路802上で同じ方向に進行している。道路802は、たまたま3車線道路である。第3の車両100は、様々な実施形態による半自律車両であってもよい。様々な実施形態の方法およびシステムは、舗装され明瞭にマークされた道路であるか否かにかかわらず、任意の経路に適用されてもよい。
図8Aを参照すると、2つの先導車両804、806は衝突しており、第3の車両100が中央車線における衝突に接近するとき、中央車線および右車線(すなわち、図8に示す向きでの中央および一番右端の車線)を遮断する。様々な実施形態によれば、第3の車両100のプロセッサは、乗客13(たとえば、図2Bの中のリアシート乗客13)によって実行された車両制御ジェスチャ808を検出している。乗客13はリアシートにいるが、いくつかの実施形態では、プロセッサは、車両100内の任意の座席における乗客からの車両制御ジェスチャを認識および受諾してもよい。たとえば、乗客13によって実行される車両制御ジェスチャ808に対応する第1の車両アクション810を決定するために、(必ずしもそうではないが)包括的な後部着座乗客プロファイルがプロセッサによって適用されてもよい。たとえば、リアシート乗客13が視界を限定していることがあり、さらには部分的に視界を妨害していることがあるので、包括的な後部着座乗客プロファイルは、そのタイプの乗客からのコマンドを、より疑いなくオーバーライドしてもよい。この事例では、第1の車両アクション810は、衝突によって遮断される右側車線の中に第3の車両100をステアリングすることになる。
図8Aにおける図示の状況では、第3の車両100のプロセッサは、検出された第1の車両制御ジェスチャ808に関連する第1の車両アクション810は車両100が実行するのに安全であるかどうかを判定してもよい。第1の車両アクション810が、第3の車両100も衝突に巻き込まれることにつながることになるか、または衝撃を回避するために第3の車両100を極めて急に停止に移らなければならなくさせることになるかのいずれかであることを、考慮に入れる。この状況では、プロセッサは、乗客13によって示される第1の車両アクション810が車両100および/または乗客にとって安全でないことを結論付けてもよい。第1の車両アクション810は車両100が実行するのに安全でないという判定に応答して、プロセッサは、第1の車両アクション810のもっと安全な代替策である第2の車両アクション820を決定してもよい。図示の例では、第2の車両アクション820は、第3の車両100が左側車線の中にステアリングすることを伴い、そのことが事故を回避する。
いくつかの実施形態によれば、第3の車両100のプロセッサは、第1の車両アクション810が異常車両操作を含むかどうかを判定してもよい。図示の例では、第1の車両アクション810は車両が極めて急に止まるように減速すること(すなわち、異常な操縦)を必要とすることになるが、プロセッサは、その車両アクションを安全に実行できる場合はそうしてもよい。たとえば、一番右端の車線に変更することに加えて、車両は、わずかにまたは全体に右の路肩に移動する必要がある場合があるが、依然として第2の先導車両806の後ろで停止に移ることができる。代替として、車両は、第2の車両アクション820を自動的に実行してもよく、次いで、2つの先導車両804、806の前方の右のランドの中で停止に移ってもよい。したがって、突然の危険な停止をもたらすことになる、第1の車両制御ジェスチャ808を実行することを乗客13が言おうとしたという追加の表示を、乗客13が提供したかどうかにかかわらず、プロセッサは、異常車両操作が車両100または乗客13にとって安全でないという判定に応答して、第1の車両アクション810のもっと安全な代替策である第2の車両アクション820を実施するように第3の車両100を操作してもよい。加えて、プロセッサは、そのような急ブレーキタイプの操縦が、ハザードランプをオンにすること、シートベルトをロックすること、ヘッドライト設定を変更すること、娯楽システムボリュームを下げることなどの、追加の車両アクションを必要とすることを決定してもよく、プロセッサはそのことを自動的に実行してもよい。
図8Bは、第2の先導車両806が第1の先導車両804のすぐ後ろを運転して(すなわち、2つの先導車両804、806の速度を考慮すると、危険なほど近い近接度Pで運転して)、2つの先導車両804、806が両方とも一番右端の車線の中を進行している状況を示す。一方、第3の車両100は、中央車線の中で2つの先導車両に接近しつつあり、第3の車両100のプロセッサは、乗客13(たとえば、図2Bの中のリアシート乗客13)によって実行された車両制御ジェスチャ808を検出している。いくつかの実施形態では、車両制御ジェスチャ決定モジュール610を実行するプロセッサは、(たとえば、指定の運転手および/または他の乗客に対して乗客プロファイルが利用可能でない場合)乗客プロファイルを使用しないことがあるが、むしろ乗客13によって実行された車両制御ジェスチャ808に対応する第3の車両アクション830を決定するために、車両制御ジェスチャを正規化するための包括的な設定を使用する。代替として、車両制御ジェスチャ決定モジュール610を実行するプロセッサは、デフォルトの乗客プロファイル、または指定の運転手もしくは車両制御ジェスチャを提供する他の乗客に対して事前選択されたプロファイルを使用してもよい。この事例では、第3の車両アクション830は、第2の先導車両806の後ろに近接して第3の車両100を右側車線の中にステアリングすることになる。
図8Bに示す状況では、第3の車両100のプロセッサは、検出された第1の車両制御ジェスチャ808に関連する第3の車両アクション830は第3の車両100が実行するのに安全であるかどうかを判定してもよい。第3の車両アクション830が、第3の車両100が第2の先導車両806の後ろに近接して後続することにつながることになり、その結果、第1の先導車両804または第2の先導車両806が急に止まったなら、第3の車両100が衝突を回避できない場合があることを、考慮に入れる。この状況では、プロセッサは、乗客13によって示される第3の車両アクション830が第3の車両100および/または乗客にとって安全でないことを結論付けてもよい。第3の車両アクション830は第3の車両100が実行するのに安全でないという判定に応答して、プロセッサは、第3の車両アクション830のもっと安全な代替策である第4の車両アクション840を決定してもよい。図示の例では、第4の車両アクション840は、車両100が2つの先導車両804、806を安全に追い越した後まで、第3の車両100が第3の車両アクション830に関連する車線変更操縦を遅らせる(たとえば、10秒の遅延)ことを伴う。このようにして、第3の車両100のプロセッサは、この点について安全性しきい値未満であってもよい、第3の車両アクション830に関連する第1のレベルの安全性を決定してもよい。それに応じて、第3の車両100のプロセッサは、車線変更操縦を実行する前の追加の遅延が、第3の車両アクションよりも安全であることになるだけでなく、安全性しきい値を超える第2のレベルの安全性にも関連することになるかどうかを、決定してもよい。図示の例では、プロセッサは、第3の車両アクション830と類似の第4の車両アクション840を決定してもよいが、第3の車両100が2つの先導車両804、806を追い越すような遅延を含めてもよい。
いくつかの実装形態では、図8Bにおける第3の車両アクション830が安全でない場合があることをプロセッサが決定した後、プロセッサは乗客13に入力を促してもよい(たとえば、「右車線の中の前方の車両を通過してから車線を変更することが、より安全であるはずです。前方の車両を通過してから車線を変更する方を選びますか?」と言う、乗客への言葉による問合せ)。それに応答して、乗客13は入力(たとえば、言葉による応答または別の車両制御ジェスチャ)を提供してもよく、そうした入力は(たとえば、追加表示決定モジュール626を使用して)プロセッサによって解釈されてもよい。したがって、乗客13は、提案された第4の車両アクション840に合意するか、反対するとともに第3の車両アクション830が望まれるという追加の表示(たとえば、断固として車両制御ジェスチャ808を反復すること)を提供するか、または別の入力(たとえば、新たな車両制御ジェスチャ、または単に第3の車両アクション830を取り消すこと)を提供する、入力を提供してもよい。
いくつかの実装形態では、図8Bにおいて第3の車両アクション830が安全でないことを決定することに加えて、車両は、元の車両制御ジェスチャ808が意図したことを達成する、(単に遅延を追加することとは)異なる操縦を実行してもよい。たとえば、プロセッサは、先導車両804、806のうちの一方または両方が不規則に運転している(たとえば、車線の中で急ハンドルをきる)こと、または不確かに安全な中央ランドの中で継続した進行を行ういくつかの他の条件を検出してもよい。したがって、第4の車両アクション840のような遅延アクションを示唆するだけでなく、プロセッサは、第5の車両アクション850(すなわち、代替車両アクション)に関する入力を乗客13に促してもよく、または第5の車両アクション850を自動的に実行してもよい。たとえば、第5の車両アクション850は、左端車線に車線を変更(かつ場合によっては、速度を一時的に増加)してから2つの先導車両を追い越し、次いで、右端車線に車線を変更すること(および場合によっては、元の速度または他の速度に戻してから他の車両を通過すること)を伴ってもよく、したがって、元の車両制御ジェスチャ808が意図したことを、ただしもっと安全なやり方で達成する操縦を依然として実行する。またしても、乗客13は、第5の車両アクション850を確認し、元の制御ジェスチャ808を取り消し、別の入力を提供などする、(たとえば、追加表示決定モジュール626を使用して)プロセッサによって解釈されてもよい入力(たとえば、言葉による応答または別の車両制御ジェスチャ)を提供してもよい。さらなる代替形態として、プロセッサは、初期車両制御ジェスチャが安全でないことを決定した後、乗客入力(たとえば、追加の表示)を待つ必要がなく、元の制御ジェスチャ808に適合することおよび車両を安全に操作することに近づく、利用可能な最も安全な車両アクションを実行してもよい。
図9A、図9B、図9C、および図9Dは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための、それぞれ、方法900、903、905、および907の動作を示す。図1A~図9Dを参照すると、方法900、903、905、および907は、車両(たとえば、100)のプロセッサ(たとえば、164)、処理デバイス(たとえば、500)、および/または制御ユニット(たとえば、140)(「プロセッサ」と様々に呼ばれる)の中で実施されてもよい。いくつかの実施形態では、方法900、903、905、および907は、車両管理システム(たとえば、400、450)などの車両管理システムスタック内の1つまたは複数のレイヤによって実行されてもよい。いくつかの実施形態では、方法900、903、905、および907は、車両管理システムなどの車両制御システムスタックから独立して、ただしそれと連携して、プロセッサによって実行されてもよい。たとえば、方法900、903、905、および907は、車両管理システムからの/内のデータおよびコマンドを監視し、かつ説明するようにアクションを取るとともにデータを記憶するように構成される、スタンドアロンソフトウェアモジュールとして、または専用ハードウェア内に実装されてもよい。
図9Aは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法900を示す。
方法900のいくつかの実装形態では、決定ブロック902における決定は、(方法700に関して説明したように)ブロック702における動作に後続してもよい。しかしながら、方法900の代替実装形態では、決定ブロック902における決定は、代替ブロック901における動作に後続してもよい。
代替ブロック901において、車両プロセッサは、第1の乗客によって実行された、検出された第1の車両制御ジェスチャから第1の車両アクションを決定してもよい。たとえば、プロセッサは、乗客が彼らの指/手を彼らの顔を越えて上で、かつ下に戻して再び繰り返しぐるぐる回す形態をなす車両制御ジェスチャ(すなわち、加速するための表示)、または他のジェスチャもしくは入力を検出してもよい。そのような動きを認識するための知識ベースを使用して、プロセッサは、このジェスチャが、車両が加速することを乗客が希望することを意味すると決定してもよい。いくつかの実施形態では、代替ブロック901の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)および電子記憶装置(たとえば、635)に結合される、プロセッサ(たとえば、164)を含んでもよい。代替ブロック901において決定を行うために、プロセッサは、車両アクション決定モジュール(たとえば、612)を使用してもよい。
(方法700に関して説明したように)ブロック702における動作に後続する決定ブロック902において、車両プロセッサは、検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全であるかどうかを判定してもよい。たとえば、図8に関して上記で説明したように、プロセッサは、危険な、安全でない、かつ/または極めて異常な車両制御ジェスチャを検出してもよい。乗客が着座するリアシートに割り当てられた乗客プロファイルを適用した後、プロセッサは、このジェスチャが、車両が急停止に移ることを乗客が希望することを意味すると決定してもよい。いくつかの実施形態では、決定ブロック902の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。決定ブロック902において決定を行うために、プロセッサは、車両アクション安全性決定モジュール(たとえば、618)を使用してもよい。
検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全であるという、プロセッサによる決定に応答して(すなわち、決定ブロック902="Yes")、プロセッサは、方法700に関して上記で説明したようにブロック704における動作に続いてもよい。
検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全でないという、プロセッサによる決定に応答して(すなわち、決定ブロック902="No")、プロセッサは、ブロック908において、車両が実行すべき、第1の車両アクションのもっと安全な代替策である第2の車両アクションを決定してもよい。いくつかの実施形態では、決定ブロック902の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および車両アクション安全性決定モジュール(たとえば、618)に結合されるプロセッサ(たとえば、164)を含んでもよい。
ブロック908において、車両プロセッサは、車両が実行すべき、第1の車両アクションのもっと安全な代替策である第2の車両アクションを決定してもよい。たとえば、プロセッサは、代替の車両アクションを決定してもよい。いくつかの実施形態では、ブロック908の動作を実行するための手段は、電子記憶装置(たとえば、635)および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。ブロック908において決定を行うために、プロセッサは、代替車両アクション決定モジュール(たとえば、620)を使用してもよい。
ブロック910において、車両プロセッサは、第2の車両アクションが第1の車両アクションのもっと安全な代替策であるという判定に応答して、第2の車両アクションを実施するように車両を操作してもよい。たとえば、プロセッサは、第1の車両アクションが危険でありかつ/または衝突を引き起こす可能性があることを決定してもよい。いくつかの実施形態では、ブロック910の動作を実行するための手段は、電子記憶装置(たとえば、635)および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。ブロック910において決定を行うために、プロセッサは、車両操作モジュール(たとえば、629)を使用してもよい。
いくつかの実施形態では、プロセッサは、乗客による車両制御ジェスチャに基づいて車両を周期的または継続的に操作するように、決定ブロック902ならびにブロック908および910における動作を反復してもよい。
図9Bは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法903を示す。
検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全でないという、プロセッサによる決定に応答して(すなわち、決定ブロック902="No")、決定ブロック904において、車両プロセッサは、検出された第1の車両制御ジェスチャに関連する第1の車両アクションは判定された遅延期間の後に車両が実行するのに安全であるかどうかを判定してもよい。たとえば、図8に関して上記で説明したように、車両が右側車線の中に直ちにステアリングすることになった場合、そのことは危険であることになるが、2つの先導車両(804、806)が2つの左車線または一番左の車線の中に位置を変える場合、短い遅延(たとえば、ブレーキをポンピングする1秒または2秒)の後に右側ランドの中にステアリングすることが最も安全なルートである場合がある。したがって、プロセッサは、方法900の決定ブロック902において行われた決定を遅延期間が変化させる場合があるかどうかを判定してもよい。いくつかの実施形態では、決定ブロック904の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。決定ブロック904において決定を行うために、プロセッサは、遅延期間アセスメントモジュール(たとえば、622)を使用してもよい。
検出された第1の車両制御ジェスチャ(たとえば、63)に関連する第1の車両アクションは判定された遅延期間の後に車両が実行するのに安全であるという、プロセッサによる決定に応答して(すなわち、決定ブロック904="Yes")、ブロック906において、プロセッサは、判定された遅延期間の後に第1の車両アクションを実施するように車両を操作してもよい。
検出された第1の車両制御ジェスチャに関連する第1の車両アクションは車両が実行するのに安全でないという、プロセッサによる決定に応答して(すなわち、決定ブロック902="No")、プロセッサは、説明したような方法900のブロック908における動作に続いてもよい。いくつかの実施形態では、決定ブロック904の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、車両アクション安全性決定モジュール(たとえば、618)、および遅延期間アセスメントモジュール622に結合される、プロセッサ(たとえば、164)を含んでもよい。
いくつかの実施形態では、プロセッサは、必要に応じて車両をどのように操作すべきかを繰り返してまたは継続的に決定するために、決定ブロック904およびブロック906における動作のうちのいずれかまたはすべてを反復してもよい。
図9Cは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法905を示す。
説明したように、方法700のブロック702または方法900の代替ブロック901における動作に続いて、決定ブロック912において、車両プロセッサは、第1の車両アクションが異常車両操作を含むかどうかを判定してもよい。たとえば、第1の車両アクションが、以前にまったく実行されておらず不規則かつ/または危険である操縦を含む場合、プロセッサは、操縦が異常であることを結論付けてもよい。したがって、プロセッサは、方法905の決定ブロック912において、第1の車両アクションが異常車両操作を含むことをアセスメントおよび決定してもよい。いくつかの実施形態では、決定ブロック912の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。決定ブロック912において決定を行うために、プロセッサは、異常操作安全性アセスメントモジュール(たとえば、628)を使用してもよい。
第1の車両アクションが異常車両操作を含まないという、プロセッサによる決定に応答して(すなわち、決定ブロック912="No")、説明したような方法700のブロック704において、プロセッサは、第1の車両アクションを実施するように車両を操作してもよい。
第1の車両アクションが異常車両操作を含むという、プロセッサによる決定に応答して(すなわち、決定ブロック912="Yes")、決定ブロック914において、プロセッサは、検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むかどうかを判定してもよい。
いくつかの実施形態では、決定ブロック912の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および追加表示決定モジュール(たとえば、626)に結合される、プロセッサ(たとえば、164)を含んでもよい。
決定ブロック914において、車両プロセッサは、検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むかどうかを判定してもよい。たとえば、乗客は、ジェスチャを誇張することがあり、ジェスチャを反復することがあり、通常よりも急速にジェスチャを実行することがあり、または検出された第1の車両制御ジェスチャと一緒に受け取られる非視覚入力(たとえば、音声入力)を提供することがある。
検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むという、プロセッサによる決定に応答して(すなわち、決定ブロック914="Yes")、説明したような方法700のブロック704において、プロセッサは、第1の車両アクションを実施するように車両を操作してもよい。
検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含まないという、プロセッサによる決定に応答して(すなわち、決定ブロック914="No")、ブロック916において、プロセッサは、追加の表示を乗客(たとえば、第1の乗客)に促してもよい。
ブロック916において、1人または複数の乗客は、検出された第1の車両制御ジェスチャが意図されていたかまたは現在意図されているという追加の表示を促されてもよい(たとえば、音、光、振動など)。追加表示決定モジュール626に関して説明したように、乗客へのプロンプトは、必要とされる追加の表示のタイプについて乗客に知らせるか、またはさもなければそうしたタイプに対応する、詳細を含んでもよい。いくつかの実装形態では、プロセッサは、検出された第1の車両制御ジェスチャを行った乗客からの応答を処理するだけでもよい。代替として、プロセッサは、任意の指定の運転手からの、または任意の乗客からの、応答を受諾してもよい。応答するための時間を乗客に与えるために、ブロック908において、追加の表示を求めるプロンプトは、プロセッサが進み代替アクションを決定する前に応答するための割り当てられた時間を、乗客または少なくとも検出された第1の車両制御ジェスチャを行っている乗客に与えてもよい。たとえば、割り当てられた時間は3~5秒であってもよい。いくつかの実施形態では、その時間の長さは現在の環境に依存してもよい。たとえば、車両が高速度で進行しているとき、プロセッサは、追加の表示を伴わずにアクションを取る前の、車両が低速度で進行しているときよりも短い時間量だけ待ってもよい。同様に、どのくらい長くプロセッサが1人または複数の乗客からの追加の表示を待つべきであるのかを決定する際に、ロケーション、気象条件、時刻/年、照明などの他の環境が考慮に入れられてもよい。ブロック916の動作を乗客に促すための手段は、プロセッサ(たとえば、164)、(たとえば、車両娯楽システムを通じた)スピーカー、他の車両コンピューティングシステム604、外部リソース(たとえば、630)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および追加表示決定モジュール(たとえば、626)を含んでもよい。
割り当てられた時間中に(すなわち、割り当てられた時間の満了の前に)、決定ブロック918において、プロセッサは、追加の表示が受信されるかどうかを判定してもよい。決定ブロック918の動作を実行するための手段は、プロセッサ(たとえば、164)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および追加表示決定モジュール(たとえば、626)を含んでもよい。
割り当てられた時間中に追加の表示を受信したことに応答して(すなわち、決定ブロック918="Yes")、プロセッサは、説明したような方法700のブロック704において、第1の車両アクションを実施するように車両を操作してもよい。
割り当てられた時間中に追加の表示を受信しなかったことに応答して(すなわち、決定ブロック918="No")、プロセッサは、説明したような方法900のブロック908における動作に続いてもよい。
いくつかの実施形態では、決定ブロック914の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および異常操作安全性アセスメントモジュール(たとえば、628)に結合される、プロセッサ(たとえば、164)を含んでもよい。
いくつかの実施形態では、プロセッサは、必要に応じてどのように車両を操作すべきかを繰り返してまたは継続的に決定するために、決定ブロック912および914における動作のうちのいずれかまたはすべてを反復してもよい。
図9Dは、様々な実施形態による、乗客による車両制御ジェスチャに基づいて車両を操作するための方法907を示す。
検出された第1の車両制御ジェスチャが、第1の乗客によって異常車両操作が意図されるという追加の表示を含むという判定に応答して(すなわち、決定ブロック914="Yes")、決定ブロック920において、車両プロセッサは、異常車両操作が車両または乗員にとって安全であるかどうかを判定してもよい。たとえば、異常車両操作が意図的であったという表示を乗客が与えたにもかかわらず、異常車両操作が安全でない場合、プロセッサは、車両が動作を実行するのを拒絶または防止してもよい。したがって、プロセッサは、方法907の決定ブロック920において、車両および乗員に対して異常車両操作がどのくらい安全であるのかをアセスメントおよび決定してもよい。いくつかの実施形態では、決定ブロック920の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、および車両管理システム(たとえば、400、450)に結合される、プロセッサ(たとえば、164)を含んでもよい。決定ブロック920において決定を行うために、プロセッサは、異常操作安全性アセスメントモジュール(たとえば、628)を使用してもよい。
異常車両操作が安全でないという、プロセッサによる決定に応答して(すなわち、決定ブロック920="No")、方法700に関して上記で説明したように、ブロック908において、プロセッサは、車両が実行すべき、第1の車両アクションのもっと安全な代替策である第2の車両アクションを決定してもよい。
異常車両操作が安全であるという、プロセッサによる決定に応答して(すなわち、決定ブロック920="Yes")、ブロック922において、プロセッサは、第1の車両アクションを実施するように車両を操作してもよい。
いくつかの実施形態では、決定ブロック922の動作を実行するための手段は、1つまたは複数のセンサ(たとえば、101)、電子記憶装置(たとえば、635)、車両管理システム(たとえば、400、450)、および異常操作安全性アセスメントモジュール(たとえば、628)に結合される、プロセッサ(たとえば、164)を含んでもよい。
いくつかの実施形態では、プロセッサは、必要に応じて車両をどのように操作すべきかを繰り返してまたは継続的に決定するために、決定ブロック920およびブロック922における動作のうちのいずれかまたはすべてを反復してもよい。
上記の方法の説明およびプロセスフロー図は、例示的な例として提供されるにすぎず、様々な実施形態のブロックが、提示された順序で実行されなければならないことを必要とするかまたは暗示するものではない。当業者によって諒解されるように、上記の実施形態におけるブロックの順序は、任意の順序で実行されてもよい。「その後」、「次いで」、「次に」などの語は、ブロックの順序を限定するものではなく、これらの語は方法の説明を通じて読者を導くために使用されるにすぎない。さらに、たとえば冠詞"a"、"an"、または"the"を使用する、単数形での請求項の要素へのいかなる言及も、その要素を単数形に限定するものとして解釈すべきではない。
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムブロックは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよい。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびブロックが、上記では概してそれらの機能性に関して説明されている。そのような機能性がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能性を特定の適用例ごとに様々な方法で実装してもよいが、そのような実施形態決定は、様々な実施形態の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
本明細書で開示する実施形態に関して説明した様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェアコンポーネント、または本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて、実装または実行されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、通信デバイスの組合せ、たとえばDSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。代替として、いくつかのブロックまたは方法は、所与の機能に固有の回路によって実行されてもよい。
様々な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。本明細書で開示する方法またはアルゴリズムの動作は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に常駐してもよいプロセッサ実行可能ソフトウェアモジュールの中で具現されてもよい。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされてもよい任意の記憶媒体であってもよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用されてもよく、かつコンピュータによってアクセスされてもよい、任意の他の媒体を含んでもよい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲内に含まれる。追加として、方法またはアルゴリズムの動作は、コンピュータプログラム製品の中に組み込まれてもよい非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令のうちの1つ、またはその任意の組合せもしくはセットとして存在してもよい。
開示する実施形態の前述の説明は、任意の当業者が本実施形態を作成または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義する一般原理は、本実施形態の範囲から逸脱することなく他の実施形態に適用されてもよい。したがって、様々な実施形態は、本明細書に示す実施形態に限定されることを意図せず、以下の特許請求の範囲ならびに本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。