本発明の実施形態において、前記運転シミュレーション装置は、前記サブタスクシナリオと、当該サブタスクシナリオの負荷との対応関係が予め記録された対応関係記録部をさらに備え、前記運転者負荷量を減少させるべく、前記サブタスクシナリオの変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の低いサブタスクシナリオに変更し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の高いサブタスクシナリオに変更する態様とするのが好ましい。この態様によれば、運転者負荷量を減少させるべく、サブタスクシナリオの変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、負荷の低いサブタスクシナリオに変更するので、運転者が受けている運転者負荷量を減少させることができる。また、運転者負荷量を増加させるべく、サブタスクシナリオの変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、負荷の高いサブタスクシナリオに変更するので、運転者が受けている運転者負荷量を増加させることができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記サブタスクシナリオ内に規定された前記運転者が受けるべき負荷の度合いを表すパラメータと、当該パラメータの負荷との対応関係が予め記録された対応関係記録部をさらに備え、前記運転者負荷量を減少させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の低いパラメータに変更し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の高いパラメータに変更する態様とするのが好ましい。この態様によれば、運転者負荷量を減少させるべく、サブタスクシナリオの実行状況の変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、負荷の低いパラメータに変更するので、運転者が受けている運転者負荷量を減少させることができる。また、運転者負荷量を増加させるべく、サブタスクシナリオの実行状況の変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、負荷の高いパラメータに変更するので、運転者が受けている運転者負荷量を増加させることができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記運転者負荷量を減少させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、現在実行中のサブタスクシナリオを停止し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、新たなサブタスクシナリオの実行を開始する態様とするのが好ましい。この態様によれば、運転者負荷量を減少させるべく、サブタスクシナリオの実行状況の変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、現在実行中のサブタスクシナリオを停止するので、運転者が受けている運転者負荷量を減少させることができる。また、運転者負荷量を増加させるべく、サブタスクシナリオの実行状況の変更の指示が負荷量制御部からあった場合には、シナリオ実行部は、新たなサブタスクシナリオの実行を開始するので、運転者が受けている運転者負荷量を増加させることができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記運転者の居眠りの前兆を検出する居眠り検出装置にアクセス可能であって、前記目標負荷記録部には、互いに異なる目標負荷量となる複数の目標負荷情報が予め記録されており、前記運転シミュレーション装置は、前記居眠り検出装置により運転者の居眠りの前兆が検出された場合には、当該運転者の居眠りの前兆が検出されない場合と比較して、目標負荷量が低くなるように、前記目標負荷記録部に記録された複数の目標負荷情報の中から一の目標負荷情報を選択する目標負荷選択部をさらに備える態様とするのが好ましい。この態様によれば、運転者の居眠りの前兆が検出された場合には、目標負荷量が低くなるように、複数の目標負荷情報の中から一の目標負荷情報を選択することができる。これにより、運転者の意識が回復して安全な状態に誘導してしまうことを回避することができる。この結果、事故の発生確率が高い危険な状況を作り出すことができる。
本発明の実施形態において、前記運転者負荷量算出部は、前記運転者による運転操作に関する運転操作情報を、前記シミュレーション管理部から取得し、取得した運転操作情報と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する態様とするのが好ましい。この態様によれば、運転者による運転操作に応じて、運転者が受けている運転者負荷量を算出することができる。
本発明の実施形態において、前記運転者負荷量算出部は、前記仮想道路交通環境を示す道路交通情報を、前記シミュレーション管理部から取得し、取得した道路交通情報と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する態様とするのが好ましい。この態様によれば、仮想道路交通環境に応じて、運転者が受けている運転者負荷量を算出することができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記運転者の生体反応を検出する生体反応検出装置にアクセス可能であって、前記運転者負荷量算出部は、前記生体反応検出装置により検出された運転者の生体反応と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する態様とするのが好ましい。この態様によれば、運転者の生体反応に応じて、運転者が受けている運転者負荷量を算出することができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記シナリオ実行部によるサブタスクシナリオの実行に従って前記運転者がサブタスクを行った場合における当該サブタスクの実行結果を検出する実行結果検出部をさらに備え、前記運転者負荷量算出部は、前記実行結果検出部により検出されたサブタスクの実行結果と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する態様とするのが好ましい。この態様によれば、運転者がサブタスクを行った場合における当該サブタスクの実行結果に応じて、運転者が受けている運転者負荷量を算出することができる。
本発明の実施形態において、前記基準情報記録部には、互いに異なる基準となる複数の負荷基準情報が予め記録されており、前記運転シミュレーション装置は、前記運転者による運転操作の特徴、前記運転者の生体反応の特徴、または前記運転者がサブタスクを行った場合における当該サブタスクの実行結果の特徴を示す運転者属性情報を記録する属性情報記録部と、前記属性情報記録部に記録された運転者属性情報に基づいて、前記基準情報記録部に記録された複数の負荷基準情報の中から一の負荷基準情報を選択する基準情報選択部とをさらに備える態様とするのが好ましい。この態様によれば、運転者属性情報に基づいて、複数の負荷基準情報の中から一の負荷基準情報を選択するので、運転者負荷量算出部は、選択した負荷基準情報に基づいて、運転者負荷量を算出することができる。
本発明の実施形態において、前記運転シミュレーション装置は、前記運転者による運転操作、前記運転者の生体反応、または前記運転者がサブタスクを行った場合における当該サブタスクの実行結果に基づいて、前記属性情報記録部に記録された運転者属性情報を更新する属性情報更新部をさらに備える態様とするのが好ましい。この態様によれば、属性情報記録部に記録された運転者属性情報を最新の状態に更新することができる。
以下、本発明のより具体的な実施形態について図面を参照しながら詳細に説明する。
[実施の形態1]
図1は、本実施形態に係る運転シミュレーション装置1の概略構成を示すブロック図である。図1に示す運転シミュレーション装置1は、入力装置2、表示装置3、および出力装置4に接続されている。ここで、本実施形態に係る運転シミュレーション装置1は、例えば、運転者に事故を擬似体験させるための運転訓練用として用いられる。また、本実施形態に係る運転シミュレーション装置1は、例えば、事故を防止するために運転者に対して様々な情報提供や警告等を行う運転支援装置を評価するための実験環境を提供する研究用としても用いられる。入力装置2は、実車同様に備えられたハンドル、アクセルペダル、ブレーキペダル、シフトレバー、ウインカー、エンジンキー等から構成される。表示装置3は、プロジェクタ、液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ、CRTディスプレイ等から構成される。出力装置4は、スピーカ、ヘッドフォン等から構成される。
運転シミュレーション装置1は、シミュレーション管理部11、操作入力部12、映像出力部13、および音声出力部14を備えている。ここで、上記のシミュレーション管理部11、操作入力部12、映像出力部13、および音声出力部14の各機能は、コンピュータが備えるCPU等の演算装置が所定のプログラムを実行することによって実現される。したがって、上記の各機能をコンピュータで実現するためのプログラムまたはそれを記録した記録媒体も本発明の一実施態様である。
シミュレーション管理部11は、仮想道路交通環境と、運転者による運転操作に従って仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現する。なお、本実施形態においては、仮想移動体は、仮想空間内の自動車であるが、これに限定されず、例えば、三輪車、バイク、電車、船、飛行機等の任意の移動体であってもよい。ここで、仮想道路交通環境には、仮想道路と、仮想移動体の障害となり得る1または複数の仮想障害体(例えば、三輪車、自動車、バイク、自転車、歩行者等)とを含む。
操作入力部12は、入力装置2を介して、仮想空間内の仮想移動体に対する運転操作を受け付ける。操作入力部12が受け付けた運転操作に従って、シミュレーション管理部11は、仮想移動体の挙動を決定する。また、シミュレーション管理部11は、運転シミュレーション装置1の図示しないメモリに予め記録された制御プログラムに従って、仮想空間内の仮想障害体の挙動を決定する。シミュレーション管理部11は、決定した仮想移動体の挙動および決定した仮想障害体の挙動を含む仮想空間の映像を、表示装置3に表示させるように、映像出力部13に対して指示する。また、シミュレーション管理部11は、仮想空間内で発生した音声を出力装置4から出力させるように、音声出力部14に対して指示する。
映像出力部(出力部)13は、シミュレーション管理部11からの指示に従って、仮想移動体の挙動および仮想障害体の挙動を含む仮想空間の映像を、表示装置3に表示させる。音声出力部(出力部)14は、シミュレーション管理部11からの指示に従って、仮想空間内で発生した音声を出力装置4から出力させる。例えば、仮想空間内で発生した音は、仮想移動体のエンジン音、ロードノイズ、風切り音等である。
また、運転シミュレーション装置1は、運転中に、運転者に対して、運転操作以外の動作(サブタスク)を行わせるための機能を有している。すなわち、運転中に、運転者に対してサブタスクを行わせることにより、運転者は、運転操作に対する集中力が阻害される。運転操作に対する集中力が阻害されるので、運転者による認知ミス、判断ミスが起こり易くなる。この結果、事故の発生する確率が高くなる。このため、運転シミュレーション装置1は、シナリオ記録部15、シナリオ実行部16、基準情報記録部17、運転者負荷量算出部18、目標負荷記録部19、負荷量制御部20、および対応関係記録部21をさらに備えている。
ここで、上記のシナリオ実行部16、運転者負荷量算出部18、および負荷量制御部20の各機能は、コンピュータが備えるCPU等の演算装置が所定のプログラムを実行することによって実現される。したがって、上記の各機能をコンピュータで実現するためのプログラムまたはそれを記録した記録媒体も本発明の一実施態様である。また、シナリオ記録部15、基準情報記録部17、目標負荷記録部19、および対応関係記録部21は、コンピュータの内蔵記憶装置またはこのコンピュータからアクセス可能な記憶装置によって具現化される。なお、以下で説明する実施の形態2〜8の各部材についても、これと同様である。
シナリオ記録部15には、サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録される。なお、サブタスクは、運転者による運転操作(メインタスク)以外の動作をいう。例えば、サブタスクには、運転者がある暗算を行う暗算タスク、運転者がある情報を暗記する暗記タスク、運転者がある操作を行う操作タスク等がある。本実施形態においては、シナリオ記録部15には、暗算タスクを運転者に対して行わせるためのサブタスクシナリオと、暗記タスクを運転者に対して行わせるためのサブタスクシナリオと、操作タスクを運転者に対して行わせるためのサブタスクシナリオとが予め記録されている。ここで、サブタスクシナリオは、例えば、VoiceXML(Voice Extensible Markup Language)、XML(Extensible Markup Language)、あるいはHTML(Hyper Text Markup Language)等の言語で記述されている。
なお、上記では、サブタスクとして、暗算タスク、暗記タスク、および操作タスクの例について説明したが、これに限定されない。例えば、サブタスクには、暗算タスク、暗記タスク、および操作タスク以外に、運転者がある対話を行う対話タスク、運転者がある音を聞く視聴タスク、運転者がある画像を注視する注視タスク等がある。すなわち、サブタスクは、運転者による運転操作以外の動作であれば、特に限定されない。このため、シナリオ記録部15に記録されるサブタスクシナリオも、運転者による運転操作以外の動作を行わせるためのシナリオであれば、特に限定されない。
シナリオ実行部16は、シナリオ記録部15に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、サブタスクシナリオに従ったサブタスク実行指示を、音声出力部14を介して運転者へ出力させる。すなわち、シナリオ実行部16は、サブタスクシナリオを実行することにより、サブタスクシナリオに従ったサブタスク実行指示をシミュレーション管理部11へ出力する。シミュレーション管理部11は、音声出力部14を介して、出力装置4から運転者に対するサブタスク実行指示を音声により出力する。これにより、運転者は、出力装置4から出力された音声によるサブタスク実行指示に従って、サブタスクを行うことができる。ここで、サブタスクシナリオが暗算タスクのサブタスクシナリオであれば、運転者は、出力装置4から出力された音声によるサブタスク実行指示に従って、例えば、1桁の数同士の加算(暗算)を行うことができる。また、サブタスクシナリオが暗記タスクのサブタスクシナリオであれば、運転者は、出力装置4から出力された音声によるサブタスク実行指示に従って、例えば、7つの数字を順に暗記することができる。さらに、サブタスクシナリオが操作タスクのサブタスクシナリオであれば、運転者は、出力装置4から出力された音声によるサブタスク実行指示に従って、当該指示のあった操作ボタンを操作することができる。
なお、上記では、シナリオ実行部16は、サブタスクシナリオを実行することにより、サブタスクシナリオに従ったサブタスク実行指示を、音声出力部14を介して運転者へ出力させる例について説明したが、これに限定されない。例えば、シナリオ実行部16は、サブタスクシナリオを実行することにより、サブタスクシナリオに従ったサブタスク実行指示を、映像出力部13を介して運転者へ出力させるようにしてもよい。この場合、シミュレーション管理部11は、映像出力部13を介して、表示装置3から運転者に対するサブタスク実行指示を映像により出力する。
基準情報記録部17には、運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録される。図2は、本実施形態に係る基準情報記録部17に記録された負荷基準情報の一例を示す図である。すなわち、本実施形態に係る基準情報記録部17は、負荷基準情報を負荷基準テーブル170として記録する。図2に示すように、負荷基準テーブル170には、ふらつき回数Nの範囲と、運転者負荷量とが記録されている。ここで、ふらつき回数Nは、運転者によるハンドル操作がふらついた回数を示す。なお、運転者によるハンドル操作のふらつきについては後述する。ここで、図2に示す例では、「レベル1」が最も運転者負荷量が低く、「レベル3」が最も運転者負荷量が高い。つまり、基準情報記録部17には、ふらつき回数Nが大きくなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブル170が記録されている。
なお、上記では、基準情報記録部17には、テーブル構造の負荷基準テーブル170が記録されている例について説明したが、これに限定されない。すなわち、基準情報記録部17に記録されるデータのデータ構造として、テーブル構造に限定されるものではなく、任意である。また、負荷基準テーブル170の内容についても、あくまで一例であって、これに限定されるものではない。例えば、本実施形態では、運転者負荷量は、レベルにて表しているが、当該レベルに代えて、数値で表してもよい。すなわち、本明細書において、各種記録部に記録されるべきデータのデータ構造については、特に限定されるものではなく、任意である。また、各種記録部に記録されるべきデータの内容についても、あくまで一例を示すものであって、特に限定されるものではない。
運転者負荷量算出部18は、運転者が現在受けている運転者負荷量を算出する。具体的には、運転者負荷量算出部18は、まず、運転者による運転操作に関する運転操作情報を、シミュレーション管理部11から取得する。ここで、本実施形態においては、運転操作情報は、運転者によるハンドル操作に関するハンドル操作情報である。運転者負荷量算出部18は、取得したハンドル操作情報に基づいて、運転者によるハンドル操作がふらついたか否かを判定する。
具体的には、運転者負荷量算出部18は、取得したハンドル操作情報に基づいて、ハンドルの角速度ωを算出する。なお、角速度ωは、ラジアン毎秒(rad/s)にて表される。運転者負荷量算出部18は、算出したハンドルの角速度ωが閾値以上であるか否かを判定する。なお、当該閾値は、運転シミュレーション装置1の図示しないメモリに予め記録されている。ここで、運転者負荷量算出部18は、算出したハンドルの角速度ωが閾値以上であると判定すれば、運転者によるハンドル操作がふらついたと判定する。運転者負荷量算出部18は、運転者によるハンドル操作がふらついたと判定すれば、ハンドル操作がふらついたことを回数記録部18aへ記録する。これにより、回数記録部18aには、運転者によるハンドル操作がふらついたふらつき回数の累計が記録されることになる。
運転者負荷量算出部18は、回数記録部18aを参照することにより、現在時刻から過去の一定時間までの間に、運転者によるハンドル操作がふらついたふらつき回数Nを算出する。運転者負荷量算出部18は、算出したふらつき回数Nが、ふらつき回数Nの範囲のうちどの範囲に含まれるかを判定する。運転者負荷量算出部16は、算出したふらつき回数Nが含まれるふらつき回数Nの範囲に対応する運転者負荷量を、負荷基準テーブル170から読み出す。例えば、算出したふらつき回数Nが「8」であれば、運転者負荷量算出部18は、算出したふらつき回数「8」が含まれるふらつき回数Nの範囲「N<10」に対応する運転者負荷量「レベル1」を、負荷基準テーブル170から読み出す。すなわち、運転者負荷量算出部18は、運転者が受けている運転者負荷量が「レベル1」であると算出する。運転者負荷量算出部18は、算出した運転者負荷量を、負荷量制御部20へ出力する。
目標負荷記録部19には、運転者が受けるべき目標負荷量を示す目標負荷情報が記録される。本実施形態においては、目標負荷記録部19には、目標負荷情報として、レベル1〜3の3段階のうちいずれかの段階の目標負荷量が記録されている。すなわち、目標負荷記録部19には、目標負荷情報として、運転シミュレーション装置1の管理者によって、現実にはあり得ない程の負荷の高いサブタスクを運転者に対して行わせないように、現実性を考慮した上で目標負荷量が記録される。なお、目標負荷記録部19に記録される目標負荷情報は、運転シミュレーション装置1の管理者によって任意に更新することが可能である。
負荷量制御部20は、まず、目標負荷記録部19に記録された目標負荷情報を読み出す。負荷量制御部20は、運転者負荷量算出部18から出力された運転者負荷量と、読み出した目標負荷情報が示す目標負荷量とを比較する。比較の結果、運転者負荷量が目標負荷量よりも大きい場合には、負荷量制御部20は、運転者負荷量が減少するように、シナリオ実行部16に対して指示する。すなわち、負荷量制御部20は、運転者負荷量が現実にはあり得ない程大きければ、運転者負荷量が減少するように、シナリオ実行部16に対して指示する。例えば、目標負荷量が「レベル2」、運転者負荷量が「レベル3」であった場合に、負荷量制御部20は、運転者負荷量「レベル3」が減少するように、シナリオ実行部16に対して指示する。
また、運転者負荷量が目標負荷量よりも小さい場合には、負荷量制御部20は、運転者負荷量が増加するように、シナリオ実行部16に対して指示する。すなわち、負荷量制御部20は、運転者負荷量が事故あるいは事故寸前の状態を誘発するのに不十分であれば、運転者負荷量が増加するように、シナリオ実行部16に対して指示する。例えば、目標負荷量が「レベル2」、運転者負荷量が「レベル1」であった場合に、負荷量制御部20は、運転者負荷量「レベル1」が増加するように、シナリオ実行部16に対して指示する。なお、運転者負荷量と目標負荷量とが同一(同じレベル)であった場合には、負荷量制御部20は、シナリオ実行部16に対して何も指示しない。
対応関係記録部21には、サブタスクシナリオと、当該サブタスクシナリオの負荷との対応関係が予め記録される。図3は、本実施形態に係る対応関係記録部21に記録された対応関係の一例を示す図である。すなわち、本実施形態に係る対応関係記録部21には、対応関係を対応関係テーブル210として記録する。図3に示すように、対応関係テーブル210には、サブタスクシナリオと、当該サブタスクシナリオの負荷とが記録されている。つまり、本実施形態に係る対応関係テーブル210は、暗算タスクのサブタスクシナリオが運転者にとって最も負荷が高く、操作タスクのサブタスクシナリオが運転者にとって最も負荷が低いことを表している。
運転者負荷量が減少するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の低いサブタスクシナリオに変更する。例えば、現在実行中のサブタスクシナリオが暗記タスクのサブタスクシナリオであった場合には、シナリオ実行部16は、対応関係テーブル210を参照することにより、暗記タスクのサブタスクシナリオから操作タスクのサブタスクシナリオへ変更する。すなわち、シナリオ実行部16は、変更した操作タスクのサブタスクシナリオをシナリオ記録部15から読み出し、読み出した操作タスクのサブタスクシナリオを新たに実行する。
また、運転者負荷量が増加するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の高いサブタスクシナリオに変更する。例えば、現在実行中のサブタスクシナリオが操作タスクのサブタスクシナリオであった場合には、シナリオ実行部16は、対応関係テーブル210を参照することにより、操作タスクのサブタスクシナリオから暗記タスクのサブタスクシナリオまたは暗算タスクのサブタスクシナリオへ変更する。すなわち、シナリオ実行部16は、変更した暗記タスクのサブタスクシナリオまたは変更した暗算タスクのサブタスクシナリオをシナリオ記録部15から読み出し、読み出した暗記タスクのサブタスクシナリオまたは読み出した暗算タスクのサブタスクシナリオを新たに実行する。
なお、シナリオ実行部16によるサブタスクシナリオの変更タイミングについては、任意である。
次に、上記の構成に係る運転シミュレーション装置1の動作について、図4および図5を参照しながら説明する。
図4は、本実施形態に係る運転シミュレーション装置1の全体動作の一例を示すフローチャートである。図4に示すように、運転者負荷量算出部18は、運転者が現在受けている運転者負荷量を算出する(Op1)。
ここで、Op1における運転者負荷量算出部18による運転者負荷量の算出処理の一例について、図5を参照しながら説明する。
図5は、本実施形態に係る運転者負荷量算出部18による運転者負荷量の算出処理の一例を示すフローチャートである。図5に示すように、運転者負荷量算出部18は、まず、運転者による運転操作に関する運転操作情報を、シミュレーション管理部11から取得する(Op11)。ここで、本実施形態においては、運転操作情報は、運転者によるハンドル操作に関するハンドル操作情報である。運転者負荷量算出部18は、Op11にて取得されたハンドル操作情報に基づいて、ハンドルの角速度ωを算出する(Op12)。運転者負荷量算出部18は、Op12にて算出されたハンドルの角速度ωが閾値以上であるか否かを判定する(Op13)。
運転者負荷量算出部18は、Op12にて算出されたハンドルの角速度ωが閾値以上であると判定すれば(Op13にてYES)、ハンドル操作がふらついたことを回数記録部18aへ記録する(Op14)。これにより、回数記録部18aには、運転者によるハンドル操作がふらついたふらつき回数の累計が記録されることになる。一方、運転者負荷量算出部18は、Op12にて算出されたハンドルの角速度ωが閾値以上でないと判定すれば(Op13にてNO)、Op11へ戻る。
そして、運転者負荷量算出部18は、回数記録部18aを参照することにより、現在時刻から過去の一定時間の間に、運転者によるハンドル操作がふらついたふらつき回数Nを算出する(Op15)。運転者負荷量算出部18は、Op15にて算出されたふらつき回数Nが含まれるふらつき回数Nの範囲に対応する運転者負荷量を、基準情報記録部17から読み出す(Op16)。これにより、運転者負荷量算出部18により運転者負荷量が算出される。
図4に戻り、負荷量制御部20は、目標負荷記録部19に記録された目標負荷情報を読み出す(Op2)。負荷量制御部20は、Op1にて算出された運転者負荷量と、Op2にて読み出された目標負荷情報が示す目標負荷量とを比較することにより、運転者負荷量と目標負荷量とが同一であるか否かを判定する(Op3)。負荷量制御部20は、運転者負荷量と目標負荷量とが同一であると判定すれば(Op3にてYES)、図4の処理を終了する。一方、負荷量制御部20は、運転者負荷量と目標負荷量とが同一でないと判定すれば(Op3にてNO)、運転者負荷量が目標負荷量よりも大きいか否かを判定する(Op4)。
負荷量制御部20は、運転者負荷量が目標負荷量よりも大きいと判定すれば(Op4にてYES)、運転者負荷量が減少するように、シナリオ実行部16に対して指示する(Op5)。一方、負荷量制御部20は、運転者負荷量が目標負荷量よりも小さいと判定すれば(Op4にてNO)、運転者負荷量が増加するように、シナリオ実行部16に対して指示する(Op6)。
ここで、Op5の指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の低いサブタスクシナリオに変更する(Op7)。一方、Op6の指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の高いサブタスクシナリオに変更する(Op8)。
このように、運転シミュレーション装置1は、図4に示すOp1〜Op8までの処理を、所定時間毎に繰り返す。本実施形態においては、運転シミュレーション装置1は、図4に示すOp1〜Op8までの処理を、1秒毎に繰り返す。つまり、本実施形態に係る運転シミュレーション装置1は、運転者が受けている運転者負荷量が目標負荷量に近づくように、常に制御している。
以上のように、本実施形態に係る運転シミュレーション装置1によれば、運転者負荷量算出部18は、基準情報記録部17に記録された負荷基準情報と、運転者による運転操作に関する運転操作情報とに基づいて、運転者が受けている運転者負荷量を算出する。目標負荷記録部19には、運転者が受けるべき目標負荷量を示す目標負荷情報が予め記録される。ここで、負荷量制御部20は、運転者負荷量が目標負荷量よりも大きい場合には当該運転者負荷量を減少させるべく、サブタスクシナリオの変更をシナリオ実行部16に対して指示する。すなわち、負荷量制御部20は、運転者負荷量が現実にはあり得ない程大きければ、当該運転者負荷量を減少させるべく、サブタスクシナリオの変更をシナリオ実行部16に対して指示する。これにより、運転者が受けている運転者負荷量を減少させることができる。また、負荷量制御部20は、運転者負荷量が目標負荷量よりも小さい場合には当該運転者負荷量を増加させるべく、サブタスクシナリオの変更をシナリオ実行部16に対して指示する。すなわち、負荷量制御部20は、運転者負荷量が事故あるいは事故寸前の状態を誘発するのに不十分であれば、当該運転者負荷量を増加させるべく、サブタスクシナリオの変更をシナリオ実行部16に対して指示する。これにより、運転者が受けている運転者負荷量を増加させることができる。この結果、本実施形態に係る運転シミュレーション装置1は、現実性を考慮しつつ、事故の発生確率が高い危険な状況を作り出すことができる。
なお、上述した実施形態は、本発明の実施形態の一具体例を示すものであり、種々の変形が可能である。以下、いくつかの主な変形例を示す。
[変形例1]
上述の実施形態では、負荷量制御部20から指示があった場合に、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを変更する例について説明した。これに対して、変形例1では、負荷量制御部20から指示があった場合に、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオ内に規定されたパラメータを変更する例について説明する。
なお、変形例1では、シナリオ実行部16は、暗算タスクのサブタスクシナリオを実行しているものとする。
対応関係記録部21には、図3に示す対応関係テーブル210の代わりに、図6に示す対応関係テーブル211が記録されている。図6に示すように、対応関係テーブル211には、暗算タスクのサブタスクシナリオ内に規定されたパラメータと、当該パラメータの負荷とが記録されている。なお、サブタスクシナリオ内に規定されたパラメータは、運転者が受けるべき負荷の度合いを表すパラメータである。例えば、図6では、サブタスクシナリオ内のパラメータとして、運転者が任意の数同士の加算を行う際の当該数の桁数が規定されている。なお、これに限らず、例えば、運転者が暗記を行う際の暗記量や、運転者がある操作を行う際の操作回数等がサブタスクシナリオ内のパラメータとして規定されていてもよい。つまり、本実施形態に係る対応関係テーブル211は、暗算タスクのサブタスクシナリオにおいて、3桁の数同士の加算が運転者にとって最も負荷が高く、1桁の数同士の加算が運転者にとって最も負荷が低いことを表している。
運転者負荷量が減少するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の低いパラメータに変更する。例えば、現在実行中の暗算タスクのサブタスクシナリオが運転者に2桁の数同士の加算を行わせるサブタスクシナリオであった場合、シナリオ実行部16は、対応関係テーブル211を参照することにより、2桁の数同士の加算から1桁の数同士の加算になるように、パラメータを変更する。すなわち、シナリオ実行部16は、パラメータを変更した暗算タスクのサブタスクシナリオを新たに実行する。
また、運転者負荷量が増加するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の高いパラメータに変更する。例えば、現在実行中の暗算タスクのサブタスクシナリオが運転者に1桁の数同士の加算を行わせるサブタスクシナリオであった場合、シナリオ実行部16は、対応関係テーブル211を参照することにより、1桁の数同士の加算から2桁の数同士の加算になるように、パラメータを変更する。すなわち、シナリオ実行部16は、パラメータを変更した暗算タスクのサブタスクシナリオを新たに実行する。
以上のように、変形例1によれば、運転者負荷量が減少するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、負荷の低いパラメータに変更するので、運転者が受けている運転者負荷量を減少させることができる。また、運転者負荷量が増加するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、負荷の高いパラメータに変更するので、運転者が受けている運転者負荷量を増加させることができる。
[変形例2]
上述の実施形態では、負荷量制御部20から指示があった場合に、シナリオ実行部16は、対応関係記録部21を参照することにより、現在実行中のサブタスクシナリオを変更する例について説明した。これに対して、変形例2では、負荷量制御部20から指示があった場合に、シナリオ実行部16は、現在実行中のサブタスクシナリオを停止し、あるいは新たなサブタスクシナリオの実行を開始する例について説明する。
すなわち、運転者負荷量が減少するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、現在実行中のサブタスクシナリオを停止する。つまり、現在実行中のサブタスクシナリオが1つであった場合には、シナリオ実行部16は、当該1つのサブタスクシナリオを停止する。また、現在実行中のサブタスクシナリオが複数であった場合には、シナリオ実行部16は、当該複数のサブタスクシナリオのうち任意の一つのサブタスクシナリオを停止する。また、運転者負荷量が増加するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、新たなサブタスクシナリオをシナリオ記録部15から読み出し、読み出したサブタスクシナリオを実行する。
なお、変形例2においては、負荷量制御部20から指示があった場合に、シナリオ実行部16は、現在実行中のサブタスクシナリオを停止し、あるいは新たなサブタスクシナリオの実行を開始するので、図1に示す対応関係記録部21は備えなくともよい。
以上のように、変形例2によれば、運転者負荷量が減少するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、現在実行中のサブタスクシナリオを停止するので、運転者が受けている運転者負荷量を減少させることができる。また、運転者負荷量が増加するように、負荷量制御部20から指示があった場合には、シナリオ実行部16は、新たなサブタスクシナリオの実行を開始するので、運転者が受けている運転者負荷量を増加させることができる。
[変形例3]
上述の実施形態では、運転者負荷量算出部18は、運転者によるハンドル操作に関するハンドル操作情報を、シミュレーション管理部11から取得する例について説明したが、これに限定されない。例えば、運転者負荷量算出部18は、運転者によるアクセル操作あるいはブレーキ操作に関するペダル操作情報を、シミュレーション管理部11から取得してもよい。この場合、運転者負荷量算出部18は、取得したペダル操作情報に基づいて、運転者がアクセルペダルからブレーキペダルへ踏み替えた踏み替え回数を算出する。運転者負荷量算出部18は、算出した踏み替え回数に対応する運転者負荷量を、基準情報記録部17から読み出す。このため、基準情報記録部17には、踏み替え回数が大きくなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブルが記録されている。これにより、運転者負荷量算出部18は、踏み替え回数に基づいて、運転者が受けている運転者負荷量を算出することができる。なお、運転者負荷量算出部18は、踏み替え回数の代わりに、アクセルペダルの操作量、あるいはブレーキペダルの操作量に基づいて、運転者負荷量を算出してもよい。
また、例えば、運転者負荷量算出部18は、運転者によるウインカー操作に関するウインカー操作情報を、シミュレーション管理部11から取得してもよい。この場合、運転者負荷量算出部18は、取得したウインカー操作情報に基づいて、運転者が現在ウインカー操作を行っているか否かを判定する。運転者が現在ウインカー操作を行っていると判定すれば、運転者負荷量算出部18は、運転者がウインカー操作を行っていない場合と比較して、運転者負荷量が増加するように、運転者負荷量を算出する。また、運転者が現在ウインカー操作を行っていないと判定すれば、運転者負荷量算出部18は、運転者がウインカー操作を行っている場合と比較して、運転者負荷量が減少するように、運転者負荷量を算出する。これにより、運転者負荷量算出部18は、ウインカー操作に基づいて、運転者が受けている運転者負荷量を算出することができる。
[実施の形態2]
図7は、本実施形態に係る運転シミュレーション装置1aの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1aは、図1に示す基準情報記録部17および運転者負荷量算出部18の代わりに、基準情報記録部22および運転者負荷量算出部23を備えている。なお、図7において、図1と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
基準情報記録部22には、図1に示す基準情報記録部17と同様に、運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録される。図8は、本実施形態に係る基準情報記録部22に記録された負荷基準情報の一例を示す図である。すなわち、本実施形態に係る基準情報記録部22は、複数の負荷基準情報を負荷基準テーブル220,221としてそれぞれ記録する。
図8に示すように、負荷基準テーブル220には、衝突余裕時間TTCの範囲と、運転者負荷量とが記録されている。ここで、衝突余裕時間TTC(Time To Collision)は、仮想移動体が、当該仮想移動体の直前を走る車両(以下、「前走車両」と称する)に衝突するまでの余裕時間を示す。つまり、基準情報記録部22には、衝突余裕時間TTCが短くなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブル220が記録されている。なお、本実施形態においては、衝突余裕時間TTCを秒単位にて表す。
また、負荷基準テーブル221には、交差点到達時間TCの範囲と、運転者負荷量とが記録されている。ここで、交差点到達時間TCは、仮想移動体が、当該仮想移動体の走行方向にある直近の交差点に到達するまでの時間を示す。つまり、基準情報記録部22には、交差点到達時間TCが短くなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブル221が記録されている。なお、本実施形態においては、交差点到達時間TCを秒単位にて表す。
運転者負荷量算出部23は、図1に示す運転者負荷量算出部18と同様に、運転者が現在受けている運転者負荷量を算出する。具体的には、運転者負荷量算出部23は、まず、仮想移動体の仮想道路交通環境を示す道路交通情報を、シミュレーション管理部11から取得する。
ここで、運転者負荷量算出部23は、まず、取得した道路交通情報に基づいて、前走車両が存在するか否かを判定する。運転者負荷量算出部23は、前走車両が存在すると判定すれば、前走車両に対する衝突余裕時間TTCを算出する。なお、衝突余裕時間TTCは、仮想移動体と前走車両との間の距離(車間距離)を、前走車両に対する相対速度で除した値にて算出される。運転者負荷量算出部23は、算出した衝突余裕時間TTCが、衝突余裕時間TTCの範囲のうちどの範囲に含まれるかを判定する。運転者負荷量算出部23は、算出した衝突余裕時間TTCが含まれる衝突余裕時間TTCの範囲に対応する運転者負荷量を、負荷基準テーブル220から読み出す。例えば、算出した衝突余裕時間TTCが「7」(秒)であれば、運転者負荷量算出部23は、算出した衝突余裕時間「7」が含まれる衝突余裕時間TTCの範囲「4<TTC」に対応する運転者負荷量「レベル1」を、負荷基準テーブル220から読み出す。すなわち、運転者負荷量算出部23は、運転者が受けている運転者負荷量が「レベル1」であると算出する。
一方、運転者負荷量算出部23は、前走車両が存在しないと判定すれば、交差点到達時間TCを算出する。なお、交差点到達時間TCは、仮想移動体と交差点との間の距離を、仮想移動体の現在速度で除した値にて算出される。運転者負荷量算出部23は、算出した交差点到達時間TCが、交差点到達時間TCの範囲のうちどの範囲に含まれるかを判定する。運転者負荷量算出部23は、算出した交差点到達時間TCが含まれる交差点到達時間TCの範囲に対応する運転者負荷量を、負荷基準テーブル221から読み出す。例えば、算出した交差点到達時間TCが「25」(秒)であれば、運転者負荷量算出部23は、算出した交差点到達時間「25」が含まれる交差点到達時間TCの範囲「10<TC」に対応する運転者負荷量「レベル1」を、負荷基準テーブル221から読み出す。すなわち、運転者負荷量算出部23は、運転者が受けている運転者負荷量が「レベル1」であると算出する。
次に、上記の構成に係る運転者負荷量算出部23の動作について、図9を参照しながら説明する。
図9は、本実施形態に係る運転者負荷量算出部23による運転者負荷量の算出処理の一例を示すフローチャートである。図9に示すように、運転者負荷量算出部23は、まず、仮想移動体の仮想道路交通環境を示す道路交通情報を、シミュレーション管理部11から取得する(Op21)。運転者負荷量算出部23は、Op21にて取得された道路交通情報に基づいて、前走車両が存在するか否かを判定する(Op22)。
運転者負荷量算出部23は、前走車両が存在すると判定すれば(Op22にてYES)、前走車両に対する衝突余裕時間TTCを算出する(Op23)。運転者負荷量算出部23は、Op23にて算出された衝突余裕時間TTCが含まれる衝突余裕時間TTCの範囲に対応する運転者負荷量を、負荷基準テーブル220から読み出す(Op24)。これにより、運転者負荷量算出部23により運転者負荷量が算出される。
一方、運転者負荷量算出部23は、前走車両が存在しないと判定すれば(Op22にてNO)、交差点到達時間TCを算出する(Op25)。運転者負荷量算出部23は、Op25にて算出された交差点到達時間TCが含まれる交差点到達時間TCの範囲に対応する運転者負荷量を、負荷基準テーブル221から読み出す(Op26)。これにより、運転者負荷量算出部23により運転者負荷量が算出される。
以上のように、本実施形態に係る運転シミュレーション装置1aによれば、仮想道路交通環境に応じて、運転者が受けている運転者負荷量を算出することができる。
なお、本実施形態においては、運転者負荷量算出部23は、取得した道路交通情報に基づいて、衝突余裕時間TTCまたは交差点到達時間TCを算出し、算出した衝突余裕時間TTCまたは交差点到達時間TCに基づいて、運転者負荷量を算出する例について説明したが、これに限定されない。例えば、運転者負荷量算出部23は、取得した道路交通情報に基づいて、仮想移動体の周囲の混雑状況を検出し、検出した混雑状況に基づいて、運転者負荷量を算出してもよい。具体的には、運転者負荷量算出部23は、取得した道路交通情報に基づいて、仮想移動体の周囲(例えば、仮想移動体から半径20m以内)に存在する仮想障害体の数を算出する。運転者負荷量算出部23は、算出した仮想障害体の数に対応する運転者負荷量を、基準情報記録部22から読み出す。このため、基準情報記録部22には、仮想障害体の数が大きくなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブルが記録されている。これにより、運転者負荷量算出部23は、仮想移動体の周囲の混雑状況に基づいて、運転者が受けている運転者負荷量を算出することができる。なお、運転者負荷量算出部23は、仮想移動体の周囲の混雑状況の代わりに、仮想移動体の走行状況、仮想移動体が走行する仮想道路の道路幅、あるいは仮想道路の道路種別(一車線か二車線か等)に基づいて、運転者負荷量を算出してもよい。
[実施の形態3]
図10は、本実施形態に係る運転シミュレーション装置1bの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1bは、脈拍検出装置5にさらに接続されている。つまり、本実施形態に係る運転シミュレーション装置1bは、脈拍検出装置5にアクセス可能である。ここで、脈拍検出装置(生体反応検出装置)5は、運転者の脈拍数を検出する装置である。すなわち、人間の心臓が血液を送り出す際に、動脈に脈拍が生じるので、脈拍検出装置5は、この動脈に生じた脈拍の回数を検出する。本実施形態においては、脈拍検出装置5は、運転者の一分間の脈拍数を検出する。このため、脈拍検出装置5は、例えば、運転者の腕に装着されている。
また、本実施形態に係る運転シミュレーション装置1bは、図1に示す運転シミュレーション装置1に加えて、脈拍数取得部24を備えている。さらに、本実施形態に係る運転シミュレーション装置1bは、図1に示す基準情報記録部17および運転者負荷量算出部18の代わりに、基準情報記録部25および運転者負荷量算出部26を備えている。なお、図10において、図1と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
脈拍数取得部24は、運転者の一分間の脈拍数を示す脈拍数情報を、脈拍検出装置5から取得する。脈拍数取得部24は、取得した脈拍数情報を、運転者負荷量算出部26へ出力する。
基準情報記録部25には、図1に示す基準情報記録部17と同様に、運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録される。図11は、本実施形態に係る基準情報記録部25に記録された負荷基準情報の一例を示す図である。すなわち、本実施形態に係る基準情報記録部25は、負荷基準情報を負荷基準テーブル250として記録する。図11に示すように、負荷基準テーブル250には、脈拍数Pの範囲と、運転者負荷量とが記録されている。ここで、脈拍数Pは、運転者の一分間の脈拍数を示す。つまり、基準情報記録部25には、脈拍数Pが大きくなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブル250が記録されている。
運転者負荷量算出部26は、図1に示す運転者負荷量算出部18と同様に、運転者が現在受けている運転者負荷量を算出する。具体的には、運転者負荷量算出部26は、脈拍数取得部24から出力された脈拍数情報が示す脈拍数Pが、脈拍数Pの範囲のうちどの範囲に含まれるかを判定する。運転者負荷量算出部26は、脈拍数取得部24から出力された脈拍数情報が示す脈拍数Pが含まれる脈拍数Pの範囲に対応する運転者負荷量を、負荷基準テーブル250から読み出す。例えば、脈拍数取得部24から出力された脈拍数情報が示す脈拍数Pが「75」であれば、運転者負荷量算出部26は、当該脈拍数「75」が含まれる脈拍数Pの範囲「P<80」に対応する運転者負荷量「レベル1」を、負荷基準テーブル250から読み出す。すなわち、運転者負荷量算出部26は、運転者が受けている運転者負荷量が「レベル1」であると算出する。
次に、上記の構成に係る脈拍数取得部24および運転者負荷量算出部26の動作について、図12を参照しながら説明する。
図12は、本実施形態に係る脈拍数取得部24および運転者負荷量算出部26による処理の一例を示すフローチャートである。図12に示すように、脈拍数取得部24は、運転者の一分間の脈拍数を示す脈拍数情報を、脈拍検出装置5から取得する(Op31)。運転者負荷量算出部26は、Op31にて取得された脈拍数情報が示す脈拍数Pが含まれる脈拍数Pの範囲に対応する運転者負荷量を、負荷基準テーブル250から読み出す(Op32)。これにより、運転者負荷量算出部26により運転者負荷量が算出される。
以上のように、本実施形態に係る運転シミュレーション装置1bによれば、運転者の生体反応(脈拍数)に応じて、運転者が受けている運転者負荷量を算出することができる。
なお、本実施形態においては、運転者負荷量算出部26は、運転者の脈拍数に基づいて、運転者負荷量を算出する例について説明したが、これに限定されない。例えば、運転者負荷量算出部26は、運転者の発汗、呼吸数、視線移動、血圧、脳活動等、運転者の任意の生体反応に基づいて、運転者負荷量を算出してもよい。ここで、運転者の発汗に基づいて運転者負荷量を算出する場合、図1に示す脈拍検出装置5の代わりに、発汗検出装置が設けられる。発汗検出装置は、例えば、運転者の手のひらに装着することにより、手のひらに現れる精神性の発汗を検出する。つまり、運転者負荷量算出部26は、運転者の発汗が多い程、運転者負荷量が増加するように、運転者負荷量を算出する。また、運転者の呼吸数に基づいて運転者負荷量を算出する場合、図1に示す脈拍検出装置5の代わりに、呼吸数検出装置が設けられる。呼吸数検出装置は、例えば、運転者の胸部および腹部に装着することにより、運転者の呼吸数を検出する。つまり、運転者負荷量算出部26は、運転者の呼吸数が多い程、運転者負荷量が増加するように、運転者負荷量を算出する。
また、運転者の視線移動に基づいて運転者負荷量を算出する場合、図1に示す脈拍検出装置5の代わりに、画像認識装置が設けられる。画像認識装置は、例えば、運転者の顔の画像認識を行うことにより、運転者の視線移動を検出する。つまり、運転者負荷量算出部26は、運転者の視線移動が多い程、運転者負荷量が増加するように、運転者負荷量を算出する。また、運転者の血圧に基づいて運転者負荷量を算出する場合、図1に示す脈拍検出装置5の代わりに、血圧検出装置が設けられる。血圧検出装置は、運転者の血圧を検出する。つまり、運転者負荷量算出部26は、運転者の血圧が高い程、運転者負荷量が増加するように、運転者負荷量を算出する。さらに、運転者の脳活動に基づいて運転者負荷量を算出する場合、図1に示す脈拍検出装置5の代わりに、脳波検出装置が設けられる。脳波検出装置は、運転者の脳波を検出する。つまり、運転者負荷量算出部26は、運転者の脳波が正常時とは異なる脳波を示していれば、運転者負荷量が増加するように、運転者負荷量を算出する。
[実施の形態4]
図13は、本実施形態に係る運転シミュレーション装置1cの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1cは、図1に示す運転シミュレーション装置1に加えて、実行結果検出部27を備えている。また、本実施形態に係る運転シミュレーション装置1cは、図1に示す基準情報記録部17および運転者負荷量算出部18の代わりに、基準情報記録部28および運転者負荷量算出部29を備えている。なお、図13において、図1と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
実行結果検出部27は、シナリオ実行部16によるサブタスクシナリオの実行に従って運転者がサブタスクを行った場合における当該サブタスクの実行結果を検出する。ここで、本実施形態においては、実行結果検出部27は、シナリオ実行部16による暗算タスクのサブタスクシナリオの実行に従って運転者が暗算タスクを行った場合における当該暗算タスクの実行結果を検出したものとする。なお、暗算タスクの実行結果以外に、暗記タスク、操作タスク等のその他のサブタスクの実行結果を検出してもよいことは勿論である。
具体的には、実行結果検出部27は、出力装置4から出力された音声によるサブタスク実行指示が示す問題に対する回答を、運転者から受け付ける。本実施形態においては、出題された問題は、1桁の任意の数同士の加算であるものとする。すなわち、運転者が回答を発声することにより、実行結果検出部27は、当該回答を受け付ける。このため、実行結果検出部27は、運転者の発声を認識する音声認識機能を有している。
実行結果検出部27は、出力装置4から出力された音声によるサブタスク実行指示が示す問題が出題された時刻から、当該問題に対する回答を受け付けた時刻までの反応時間Trを算出する。なお、本実施形態においては、反応時間Trは秒単位にて表される。また、実行結果検出部27は、受け付けた回答が正解であるか否かを判定する。ここで、実行結果検出部27は、受け付けた回答が正解であると判定すれば、算出した反応時間Trを評価値Eとする。また、実行結果検出部27は、受け付けた回答が不正解であると判定すれば、算出した反応時間Trにペナルティαを加算した値を評価値Eとする。実行結果検出部27は、算出した評価値Eを、評価値記録部27aへ記録する。これにより、評価値記録部27aには、運転者の評価値の累計が記録されることになる。
実行結果検出部27は、評価値記録部27aを参照することにより、現在時刻から過去の一定時間までの間の運転者の評価値の累計(以下、「評価累計値」と称する)ESを算出する。実行結果検出部27は、算出した評価累計値ESを、運転者負荷量算出部29へ出力する。
基準情報記録部28には、図1に示す基準情報記録部17と同様に、運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録される。図14は、本実施形態に係る基準情報記録部28に記録された負荷基準情報の一例を示す図である。すなわち、本実施形態に係る基準情報記録部28は、負荷基準情報を負荷基準テーブル280として記録する。図14に示すように、負荷基準テーブル280には、評価累計値ESの範囲と、運転者負荷量とが記録されている。つまり、基準情報記録部28には、評価累計値ESが大きくなる程、運転者負荷量の段階(レベル)が増加するように、負荷基準テーブル280が記録されている。
運転者負荷量算出部29は、図1に示す運転者負荷量算出部18と同様に、運転者が現在受けている運転者負荷量を算出する。具体的には、運転者負荷量算出部29は、実行結果検出部27から出力された評価累計値ESが、評価累計値ESの範囲のうちどの範囲に含まれるかを判定する。運転者負荷量算出部29は、実行結果検出部27から出力された評価累計値ESが含まれる評価累計値ESの範囲に対応する運転者負荷量を、負荷基準テーブル280から読み出す。例えば、実行結果検出部27から出力された評価累計値ESが「34」であれば、運転者負荷量算出部29は、当該評価累計値「34」が含まれる評価累計値ESの範囲「ES<50」に対応する運転者負荷量「レベル1」を、負荷基準テーブル280から読み出す。すなわち、運転者負荷量算出部29は、運転者が受けている運転者負荷量が「レベル1」であると算出する。
次に、上記の構成に係る実行結果検出部27および運転者負荷量算出部29の動作について、図15を参照しながら説明する。
図15は、本実施形態に係る実行結果検出部27および運転者負荷量算出部29による処理の一例を示すフローチャートである。図15に示すように、実行結果検出部27は、出力装置4から出力された音声によるサブタスク実行指示が示す問題に対する回答を、運転者から受け付ける(Op41)。実行結果検出部27は、出力装置4から出力された音声によるサブタスク実行指示が示す問題が出題された時刻から、Op41にて回答を受け付けた時刻までの反応時間Trを算出する(Op42)。そして、実行結果検出部27は、Op41にて受け付けた回答が正解であるか否かを判定する(Op43)。
実行結果検出部27は、Op41にて受け付けた回答が正解であると判定すれば(Op43にてYES)、Op42にて算出された反応時間Trを評価値Eとする(Op44)。一方、実行結果検出部27は、Op41にて受け付けた回答が不正解であると判定すれば(Op43にてNO)、Op42にて算出された反応時間Trにペナルティαを加算した値を評価値Eとする(Op45)。実行結果検出部27は、Op44またはOp45にて算出された評価値Eを、評価値記録部27aへ記録する(Op46)。これにより、評価値記録部27aには、運転者の評価値の累計が記録されることになる。
そして、実行結果検出部27は、評価値記録部27aを参照することにより、評価累計値ESを算出する(Op47)。運転者負荷量算出部29は、Op47にて算出された評価累計値ESが含まれる評価累計値ESの範囲に対応する運転者負荷量を、負荷基準テーブル280から読み出す(Op48)。これにより、運転者負荷量算出部29により運転者負荷量が算出される。
以上のように、本実施形態に係る運転シミュレーション装置1cによれば、運転者がサブタスクを行った場合における当該サブタスクの実行結果に応じて、運転者が受けている運転者負荷量を算出することができる。
[実施の形態5]
図16は、本実施形態に係る運転シミュレーション装置1dの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1dは、図1に示す目標負荷記録部19および負荷量制御部20の代わりに、条件情報記録部30およびシナリオ制御部31を備えている。また、本実施形態に係る運転シミュレーション装置1dは、図1に示すシナリオ実行部16の代わりに、シナリオ実行部32を備えている。ここで、本実施形態に係る運転シミュレーション装置1dは、図1に示す対応関係記録部21を備えていない。なお、図16において、図1と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
条件情報記録部30には、運転者負荷量の経時的変化によって定められる、サブタスクシナリオの実行の開始条件と停止条件とを示す条件情報が予め記録される。図17は、本実施形態に係る条件情報記録部30に記録された条件情報の一例を示す図である。すなわち、本実施形態に係る条件情報記録部30は、条件情報を開始条件テーブル300および停止条件テーブル301として記録する。つまり、本実施形態に係る条件情報記録部30には、運転者負荷量が2レベル上昇した場合、あるいはレベル1の運転者負荷量が10分間継続した場合に、シナリオ実行部32がサブタスクシナリオの実行を開始するように、開始条件テーブル300が記録されている。また、本実施形態に係る条件情報記録部30には、同じレベルの運転者負荷量が15分間継続した場合に、シナリオ実行部32がサブタスクシナリオの実行を停止するように、停止条件テーブル301が記録されている。
シナリオ制御部31は、サブタスクシナリオの実行が停止されている間に運転者負荷量の変化が開始条件に合致した場合は、当該サブタスクシナリオの実行を開始するように、シナリオ実行部32に対して指示する。
例えば、サブタスクシナリオの実行が停止されている間に、運転者負荷量算出部18から出力された運転者負荷量の変化が、レベル1からレベル3のように、2レベル上昇したことを示していれば、シナリオ制御部31は、当該運転者負荷量の変化が開始条件に合致したと判定する。この場合、シナリオ制御部31は、サブタスクシナリオの実行を開始するように、シナリオ実行部32に対して指示する。すなわち、運転者負荷量が2レベル上昇すれば、運転者が運転操作に対して集中すべき状況が発生したといえる。つまり、運転操作に集中すべき状況が発生したときに、運転者に対してサブタスクを行わせることで、運転者は、運転操作に対する集中力が阻害される。運転操作に対する集中力が阻害されるので、運転者による認知ミス、判断ミスが起こり易くなる。この結果、事故の発生確率が高い危険な状況を作り出すことができる。
また、例えば、サブタスクシナリオの実行が停止されている間に、運転者負荷量算出部18から出力された運転者負荷量の変化が、レベル1の状態を10分間継続していることを示していれば、シナリオ制御部31は、当該運転者負荷量の変化が開始条件に合致したと判定する。この場合、シナリオ制御部31は、サブタスクシナリオの実行を開始するように、シナリオ実行部32に対して指示する。すなわち、レベル1の状態が10分間継続していれば、運転者は、運転操作に対して集中力が低下しており、漫然に運転操作を行っている可能性が高い。つまり、運転操作に対して集中力が低下しているときに、運転者に対してサブタスクを行わせることで、運転者は、運転操作に対する集中力がさらに低下することになる。このため、運転者による認知ミス、判断ミスが起こり易くなる。この結果、事故の発生確率が高い危険な状況を作り出すことができる。
また、シナリオ制御部31は、サブタスクシナリオの実行中に運転者負荷量の変化が停止条件に合致した場合は、当該サブタスクシナリオの実行を停止するように、シナリオ実行部32に対して指示する。
例えば、サブタスクシナリオの実行中に、運転者負荷量算出部18から出力された運転者負荷量の変化が、同じレベルを15分間継続していることを示していれば、シナリオ制御部31は、当該運転者負荷量の変化が停止条件に合致したと判定する。この場合、シナリオ制御部31は、サブタスクシナリオの実行を停止するように、シナリオ実行部32に対して指示する。すなわち、運転者負荷量が同じレベルを15分間継続していれば、運転者は、現在行っているサブタスクに対して慣れてしまった可能性が高い。運転者がサブタスクに慣れてしまうと、運転者による認知ミス、判断ミスが起こり難くなる。この結果、事故の発生確率が高い危険な状況が作り出せない。このため、このような場合には、シナリオ制御部31は、サブタスクシナリオの実行を停止するように、シナリオ実行部32に対して指示する。
サブタスクシナリオの実行を開始するように、シナリオ制御部31から指示があった場合には、シナリオ実行部32は、当該サブタスクシナリオの実行を開始する。すなわち、シナリオ実行部32は、シナリオ制御部31から指示のあったサブタスクシナリオをシナリオ記録部15から読み出し、読み出したサブタスクシナリオを実行する。また、サブタスクシナリオの実行を停止するように、シナリオ制御部31から指示があった場合には、シナリオ実行部32は、当該サブタスクシナリオの実行を停止する。
次に、上記の構成に係る運転シミュレーション装置1dの動作について、図18を参照しながら説明する。
図18は、本実施形態に係る運転シミュレーション装置1dの全体動作の一例を示すフローチャートである。図18に示すように、運転者負荷量算出部18は、運転者が現在受けている運転者負荷量を算出する(Op51)。本実施形態においては、運転者負荷量算出部18は、実施の形態1にて説明したように、運転者による運転操作に関する運転操作情報に基づいて、運転者負荷量を算出する。但し、これに限定されるものではなく、運転者負荷量算出部18は、実施の形態2にて説明した道路交通情報、実施の形態3にて説明した生体情報、実施の形態4にて説明したサブタスクの実行結果に基づいて、運転者負荷量を算出してもよい。
シナリオ制御部31は、条件情報記録部30に記録された条件情報を読み出す(Op52)。そして、シナリオ制御部31は、シナリオ実行部32を監視することにより、サブタスクシナリオが実行中であるか否かを判定する(Op53)。シナリオ制御部31は、サブタスクシナリオが実行中であると判定すれば(Op53にてYES)、Op51にて算出された運転者負荷量の変化が停止条件に合致するか否かを判定する(Op54)。一方、シナリオ制御部31は、サブタスクシナリオが実行中でないと判定すれば(Op53にてNO)、Op51にて算出された運転者負荷量の変化が開始条件に合致するか否かを判定する(Op55)。
Op54において、シナリオ制御部31は、Op51にて算出された運転者負荷量の変化が停止条件に合致すると判定すれば(Op54にてYES)、サブタスクシナリオの実行を停止するように、シナリオ実行部32に対して指示する(Op56)。そして、シナリオ実行部32は、サブタスクシナリオの実行を停止する(Op57)。一方、シナリオ制御部31は、Op51にて算出された運転者負荷量の変化が停止条件に合致しないと判定すれば(Op54にてNO)、図18の処理を終了する。
Op55において、シナリオ制御部31は、Op51にて算出された運転者負荷量の変化が開始条件に合致すると判定すれば(Op55にてYES)、サブタスクシナリオの実行を開始するように、シナリオ実行部32に対して指示する(Op58)。そして、シナリオ実行部32は、サブタスクシナリオの実行を開始する(Op59)。一方、シナリオ制御部31は、Op51にて算出された運転者負荷量の変化が開始条件に合致しないと判定すれば(Op55にてNO)、図18の処理を終了する。
このように、運転シミュレーション装置1dは、図18に示すOp51〜Op59までの処理を、所定時間毎に繰り返す。本実施形態においては、運転シミュレーション装置1dは、図18に示すOp51〜Op59までの処理を、1秒毎に繰り返す。つまり、本実施形態に係る運転シミュレーション装置1dは、運転者が受けている運転者負荷量の変化が、開始条件に合致しているのかあるいは停止条件に合致しているのかを常時判定し、開始条件に合致していればサブタスクシナリオの実行を開始し、停止条件に合致していればサブタスクシナリオの実行を停止する。
以上のように、本実施形態に係る運転シミュレーション装置1dによれば、シナリオ制御部31は、サブタスクシナリオの実行が停止されている間に運転者負荷量の変化が前記開始条件に合致した場合は、当該サブタスクシナリオの実行を開始するように、シナリオ実行部32に対して指示する。また、シナリオ制御部31は、サブタスクシナリオの実行中に運転者負荷量の変化が停止条件に合致した場合は、当該サブタスクシナリオの実行を停止するように、シナリオ実行部32に対して指示する。この結果、本実施形態に係る運転シミュレーション装置1dは、現実性を考慮しつつ、事故の発生確率が高い危険な状況を作り出すことができる。
[実施の形態6]
実施の形態1〜4では、運転操作情報、道路交通情報、生体情報、またはサブタスクの実行結果に基づいて、運転者が受けている運転者負荷量を算出する例について説明した。しかしながら、運転操作情報、道路交通情報、生体情報、またはサブタスクの実行結果が同一であっても、運転者が受ける負荷は、運転者各々によって異なる。例えば、普段から前走車両との衝突余裕時間TTCが短め(例えば、衝突余裕時間TTCの平均値が2秒)の運転者Aと、普段から前走車両との衝突余裕時間TTCが長め(例えば、衝突余裕時間TTCの平均値が4秒)の運転者Bとが存在している場合を考える。この場合、衝突余裕時間TTCが2秒の状況においては、運転者Aにとっては負荷が高くないが、運転者Bにとっては負荷が高い。このため、運転者各々に応じた負荷基準情報に基づいて、運転者負荷量を算出することが好ましい。したがって、本実施形態では、運転者属性情報に基づいて、複数の負荷基準情報の中から一の負荷基準情報を選択し、選択した負荷基準情報に基づいて、運転者負荷量を算出する例について説明する。なお、以下では、図10に示す運転シミュレーション装置1bに適用する例について説明するが、図1に示す運転シミュレーション装置1、図7に示す運転シミュレーション装置1a、図13に示す運転シミュレーション装置1c、および図16に示す運転シミュレーション装置1dにも適用できることは勿論である。
図19は、本実施形態に係る運転シミュレーション装置1eの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1eは、図10に示す基準情報記録部25の代わりに、基準情報記録部33を備えている。また、本実施形態に係る運転シミュレーション装置1eは、図10に示す運転シミュレーション装置1bに加えて、属性情報記録部34、および基準情報選択部35を備えている。なお、図19において、図10と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
基準情報記録部33には、互いに異なる基準となる複数の負荷基準情報が予め記録される。図20は、本実施形態に係る基準情報記録部33に記録された負荷基準情報の一例を示す図である。すなわち、本実施形態に係る基準情報記録部33は、複数の負荷基準情報を負荷基準テーブル330,331,332・・・としてそれぞれ記録する。つまり、基準情報記録部33には、互いに異なる基準となるように、複数の負荷基準テーブル330,331,332・・・がそれぞれ記録されている。
属性情報記録部34は、運転者による運転操作の特徴、運転者の生体反応の特徴、または運転者がサブタスクを行った場合における当該サブタスクの実行結果の特徴を示す運転者属性情報を記録する。図21は、本実施形態に係る属性情報記録部34に記録された運転者属性情報の一例を示す図である。すなわち、本実施形態に係る属性情報記録部34は、運転者属性情報を運転者属性テーブル340として記録する。図21に示すように、運転者属性テーブル340には、運転者属性情報の項目と、当該運転者属性情報とが記録されている。
すなわち、本実施形態に係る運転者属性テーブル340には、運転者による運転操作の特徴として、衝突余裕時間TTCの平均値「2秒」、およびブレーキ開始タイミングの平均値「停止線まで10秒」が記録されている。また、本実施形態に係る運転者属性テーブル340には、運転者の生体反応の特徴として、安静時の脈拍数「80回/1分間」、および負荷による脈拍変動の大きさ「小」が記録されている。さらに、本実施形態に係る運転者属性テーブル340には、運転者がサブタスクを行った場合における当該サブタスクの実行結果の特徴として、暗記タスクのサブタスクシナリオ「大」、暗算タスクのサブタスクシナリオ「中」、および操作タスクのサブタスクシナリオ「小」が記録されている。つまり、暗記タスクのサブタスクシナリオが運転者にとって最も負荷が高く、操作タスクのサブタスクシナリオが運転者にとって最も負荷が低いことを表している。
なお、本実施形態に係る対応関係記録部21には、運転者属性テーブル340に記録された、暗記タスクのサブタスクシナリオ「大」、暗算タスクのサブタスクシナリオ「中」、および操作タスクのサブタスクシナリオ「小」と同じデータが記録される。
また、運転者属性情報は、運転者等によって属性情報記録部34に予め記録される。例えば、運転者が自身の生体反応を測定し、あるいは運転者が自身の運転操作に関するアンケートに回答すること等により、運転者属性情報を生成し、生成した運転者属性情報を、属性情報記録部34へ記録する。
基準情報選択部35は、属性情報記録部34に記録された運転者属性情報に基づいて、基準情報記録部33に記録された複数の負荷基準情報の中から一の負荷基準情報を選択する。本実施形態においては、基準情報選択部35は、まず、安静時の脈拍数「80回/1分間」、および負荷による脈拍変動の大きさ「小」を、運転者属性テーブル340から読み出す。そして、基準情報選択部35は、読み出した安静時の脈拍数「80回/1分間」が、レベル1の運転者負荷量の境界条件になる負荷基準テーブルを選択する。すなわち、基準情報選択部35は、負荷基準テーブル330〜332の中から負荷基準テーブル330,331を選択する。また、基準情報選択部35は、負荷による脈拍変動の大きさに基づいて、脈拍数Pの範囲における境界条件の間隔を決定する。本実施形態においては、負荷による脈拍変動の大きさが小さいので、基準情報選択部35は、選択した負荷基準テーブル330,331の中から、境界条件の間隔が最も狭い負荷基準テーブル330を選択する。
運転者負荷量算出部26は、基準情報選択部35により選択された負荷基準テーブル330と、脈拍数取得部24から出力された脈拍数情報とに基づいて、運転者が現在受けている運転者負荷量を算出する。
次に、上記の構成に係る基準情報選択部35の動作について、図22を参照しながら説明する。
図22は、本実施形態に係る基準情報選択部35による負荷基準情報の選択処理の一例を示すフローチャートである。図22に示すように、基準情報選択部35は、まず、負荷基準情報の選択モードになっているか否かを判定する(Op61)。ここで、本実施形態においては、運転者が、入力装置2を介して指示することにより、負荷基準情報の選択モードにすることが可能である。なお、属性情報記録部34に記録された運転者属性情報が更新される度に自動的に負荷基準情報の選択モードとなるようにしてもよい。基準情報選択部35は、負荷基準情報の選択モードになっていると判定すれば(Op61にてYES)、属性情報記録部34に記録された運転者属性情報を読み出す(Op62)。一方、基準情報選択部35は、負荷基準情報の選択モードになっていないと判定すれば(Op61にてNO)、図22の処理を終了する。
そして、基準情報選択部35は、Op62にて読み出された運転者属性情報に基づいて、基準情報記録部33に記録された複数の負荷基準情報の中から一の負荷基準情報を選択する(Op63)。
以上のように、本実施形態に係る運転シミュレーション装置1eによれば、運転者属性情報に基づいて、複数の負荷基準情報の中から一の負荷基準情報を選択するので、運転者負荷量算出部26は、選択した負荷基準情報に基づいて、運転者負荷量を算出することができる。
[実施の形態7]
実施の形態6では、運転者属性情報に基づいて、複数の負荷基準情報の中から一の負荷基準情報を選択し、選択した負荷基準情報に基づいて、運転者負荷量を算出する例について説明した。しかしながら、運転者属性情報は、時間の経過や状況によって変化する可能性がある。このため、属性情報記録部34に記録される運転者属性情報は、時間の経過や状況に応じて、常に最新の状態となるように更新することが好ましい。したがって、本実施形態では、運転者による運転操作、運転者の生体反応、または運転者がサブタスクを行った場合における当該サブタスクの実行結果に基づいて、属性情報記録部34に記録される運転者属性情報を更新する例について説明する。
図23は、本実施形態に係る運転シミュレーション装置1fの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1fは、図19に示す運転シミュレーション装置1eに加えて、属性情報更新部36を備えている。なお、図23において、図19と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
属性情報更新部36は、運転操作情報または道路交通情報を、シミュレーション管理部11から取得し、取得した運転操作情報または道路交通情報に基づいて、属性情報記録部34に記録された運転者属性情報を更新する。例えば、属性情報更新部36は、道路交通情報に基づいて、ある区間における衝突余裕時間TTCを複数算出する。そして、属性情報更新部36は、複数算出した衝突余裕時間TTCの平均値を算出する。ここでは、属性情報更新部36は、衝突余裕時間TTCの平均値「5秒」を算出したものとする。属性情報更新部36は、属性情報記録部34に記録された衝突余裕時間TTCの平均値「2秒」(図21参照)を、算出した衝突余裕時間TTCの平均値「5秒」へ更新する。
また、属性情報更新部36は、運転者の一分間の脈拍数を示す脈拍数情報を、脈拍数取得部24から取得し、取得した脈拍数情報に基づいて、属性情報記録部34に記録された運転者属性情報を更新する。例えば、属性情報更新部36は、脈拍数情報に基づいて、運転中に運転者があるサブタスクを行っている場合の、当該運転者の一分間の脈拍数を算出する。属性情報更新部36は、算出した脈拍数に基づいて、負荷による脈拍変動の大きさがどのくらいの変化を示しているのかを判定する。ここでは、負荷による脈拍変動の大きさが大きな変化を示しているものとする。この場合、属性情報更新部36は、属性情報記録部34に記録された負荷による脈拍変動の大きさ「小」(図21参照)を、判定した負荷による脈拍変動の大きさ「大」へ更新する。
さらに、属性情報更新部36は、運転者がサブタスクを行った場合における当該運転者が受けている運転者負荷量を、運転者負荷量算出部26から取得し、取得した運転者負荷量に基づいて、属性情報記録部34に記録された運転者属性情報を更新する。例えば、属性情報更新部36は、サブタスクシナリオ毎に運転者負荷量を算出し、サブタスクシナリオ毎に運転者負荷量の平均値を算出する。属性情報更新部36は、算出した運転者負荷量の平均値が大きい順からサブタスクシナリオを並べていく。ここでは、属性情報更新部36は、操作タスクのサブタスクシナリオ、暗記タスクのサブタスクシナリオ、暗算タスクのサブタスクシナリオの順に並べたものとする。この場合、属性情報更新部36は、属性情報記録部34に記録された、暗記タスクのサブタスクシナリオ「大」、暗算タスクのサブタスクシナリオ「中」、および操作タスクのサブタスクシナリオ「小」(図21参照)を、操作タスクのサブタスクシナリオ「大」、暗記タスクのサブタスクシナリオ「中」、および暗算タスクのサブタスクシナリオ「小」へ更新する。
次に、上記の構成に係る属性情報更新部36の動作について、図24を参照しながら説明する。
図24は、本実施形態に係る属性情報更新部36による運転者属性情報の更新処理の一例を示すフローチャートである。図24に示すように、属性情報更新部36は、まず、運転者属性情報の更新モードになっているか否かを判定する(Op71)。ここで、本実施形態においては、運転者が、入力装置2を介して指示することにより、運転者属性情報の更新モードにすることが可能である。なお、運転者が入力装置2を介して指示することなく、定期的に、運転者属性情報の更新モードとなるようにしてもよい。属性情報更新部36は、運転者属性情報の更新モードになっていると判定すれば(Op71にてYES)、運転操作情報、道路交通情報、脈拍数情報、または運転者負荷量を取得する(Op72)。一方、属性情報更新部36は、運転者属性情報の更新モードになっていないと判定すれば(Op71にてNO)、図24の処理を終了する。
そして、属性情報更新部36は、Op72にて取得された運転操作情報、道路交通情報、脈拍数情報、または運転者負荷量に基づいて、属性情報記録部34に記録された運転者属性情報を更新する(Op73)。これにより、属性情報記録部34に記録される運転者属性情報は、最新の状態に更新される。
以上のように、本実施形態に係る運転シミュレーション装置1fによれば、属性情報記録部34に記録された運転者属性情報を最新の状態に更新することができる。
[実施の形態8]
実施の形態1では、運転者負荷量と目標負荷量とを比較することにより、実行すべきサブタスクシナリオを決定する例について説明した。しかしながら、事故の発生する危険な状況を再現するために、運転者に与えるべき負荷は、運転者の状態に応じて変えることが好ましい。例えば、運転者の意識がはっきりしている場合には、運転者に与えるべき負荷を高めることで、事故あるいは事故寸前の状態を誘発することが可能である。これに対して、運転者の意識がはっきりしていない場合、すなわち、運転者が居眠りをしようとしている場合には、運転者に与えるべき負荷を高くすると、運転者の意識が回復して逆に安全な状態に誘導してしまう可能性が高い。このため、運転者が居眠りをしようとしているか否かに応じて、目標負荷量を動的に変更することが好ましい。したがって、本実施形態では、運転者の居眠りの前兆が検出されたか否かに応じて、複数の目標負荷情報の中から一の目標負荷情報を選択する例について説明する。なお、以下では、図1に示す運転シミュレーション装置1に適用する例について説明するが、図7に示す運転シミュレーション装置1a、図10に示す運転シミュレーション装置1b、図13に示す運転シミュレーション装置1c、図19に示す運転シミュレーション装置1e、図23に示す運転シミュレーション装置1fにも適用できることは勿論である。
図25は、本実施形態に係る運転シミュレーション装置1gの概略構成を示すブロック図である。すなわち、本実施形態に係る運転シミュレーション装置1gは、居眠り検出装置6にさらに接続されている。つまり、本実施形態に係る運転シミュレーション装置1gは、居眠り検出装置6にアクセス可能である。ここで、居眠り検出装置6は、運転者の居眠りの前兆を検出する装置である。居眠り検出装置6は、例えば、画像認識装置または脈拍検出装置である。居眠り検出装置6が画像認識装置である場合、運転者の瞬きの回数の変化を検出することによって、運転者の居眠りの前兆を検出する。また、居眠り検出装置6が脈拍検出装置である場合、運転者の脈拍の揺らぎ等を検出することによって、居眠りの前兆を検出する。
また、本実施形態に係る運転シミュレーション装置1gは、図1に示す目標負荷記録部19の代わりに、目標負荷記録部37を備えている。さらに、本実施形態に係る運転シミュレーション装置1gは、図1に示す運転シミュレーション装置1に加えて、目標負荷選択部38を備えている。なお、図25において、図1と同様の機能を有する構成については、同じ参照符号を付記し、その詳細な説明を省略する。
目標負荷記録部37には、互いに異なる目標負荷量となる複数の目標負荷情報が予め記録される。本実施形態においては、目標負荷記録部37には、レベル1の目標負荷量を示す目標負荷情報と、レベル2の目標負荷量を示す目標負荷情報と、レベル3の目標負荷量を示す目標負荷情報とが記録されている。
目標負荷選択部38は、居眠り検出装置6により運転者の居眠りの前兆が検出された場合には、当該運転者の居眠りの前兆が検出されない場合と比較して、目標負荷量が低くなるように、目標負荷記録部37に記録された複数の目標負荷情報の中から一の目標負荷情報を選択する。例えば、居眠り検出装置6により運転者の居眠りの前兆が検出された場合には、目標負荷選択部38は、複数の目標負荷情報の中からレベル1の目標負荷量を示す目標負荷情報を選択する。一方、居眠り検出装置6により運転者の居眠りの前兆が検出されない場合には、目標負荷選択部38は、複数の目標負荷情報の中からレベル2の目標負荷量を示す目標負荷情報を選択する。
負荷量制御部20は、運転者負荷量算出部18から出力された運転者負荷量と、目標負荷選択部38により選択された目標負荷情報が示す目標負荷量とを比較する。比較の結果、運転者負荷量が目標負荷量よりも大きい場合には、負荷量制御部20は、運転者負荷量が減少するように、シナリオ実行部16に対して指示する。また、運転者負荷量が目標負荷量よりも小さい場合には、負荷量制御部20は、運転者負荷量が増加するように、シナリオ実行部16に対して指示する。
次に、上記の構成に係る目標負荷選択部38の動作について、図26を参照しながら説明する。
図26は、本実施形態に係る目標負荷選択部38による目標負荷情報の選択処理の一例を示すフローチャートである。図26に示すように、目標負荷選択部38は、居眠り検出装置6により運転者の居眠りの前兆が検出されたか否かを判定する(Op81)。目標負荷選択部38は、居眠り検出装置6により運転者の居眠りの前兆が検出されたと判定すれば(Op81にてYES)、目標負荷量が低くなるように、目標負荷記録部37に記録された複数の目標負荷情報の中から一の目標負荷情報を選択する(Op82)。一方、目標負荷選択部38は、居眠り検出装置6により運転者の居眠りの前兆が検出されていないと判定すれば(Op81にてNO)。目標負荷量が高くなるように、目標負荷記録部37に記録された複数の目標負荷情報の中から一の目標負荷情報を選択する(Op83)。
以上のように、本実施形態に係る運転シミュレーション装置1gによれば、運転者の居眠りの前兆が検出された場合には、目標負荷量が低くなるように、複数の目標負荷情報の中から一の目標負荷情報を選択することができる。これにより、運転者の意識が回復して安全な状態に誘導してしまうことを回避することができる。この結果、事故の発生確率が高い危険な状況を作り出すことができる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部を備える運転シミュレーション装置において、
前記運転者に対して指示を与えるための出力部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力部を介して運転者へ出力させるシナリオ実行部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出部と、
前記運転者が受けるべき目標負荷量を示す目標負荷情報を記録する目標負荷記録部と、
前記運転者負荷量が前記目標負荷量よりも大きい場合には当該運転者負荷量を減少させ、前記運転者負荷量が前記目標負荷量よりも小さい場合には当該運転者負荷量を増加させるべく、前記サブタスクシナリオの変更または前記サブタスクシナリオの実行状況の変更を前記シナリオ実行部に対して指示する負荷量制御部とを備える、運転シミュレーション装置。
(付記2)
前記運転シミュレーション装置は、前記サブタスクシナリオと、当該サブタスクシナリオの負荷との対応関係が予め記録された対応関係記録部をさらに備え、
前記運転者負荷量を減少させるべく、前記サブタスクシナリオの変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の低いサブタスクシナリオに変更し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオを、当該サブタスクシナリオよりも負荷の高いサブタスクシナリオに変更する、付記1に記載の運転シミュレーション装置。
(付記3)
前記運転シミュレーション装置は、前記サブタスクシナリオ内に規定された前記運転者が受けるべき負荷の度合いを表すパラメータと、当該パラメータの負荷との対応関係が予め記録された対応関係記録部をさらに備え、
前記運転者負荷量を減少させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の低いパラメータに変更し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、前記対応関係記録部を参照することにより、現在実行中のサブタスクシナリオ内のパラメータを、当該パラメータよりも負荷の高いパラメータに変更する、付記1に記載の運転シミュレーション装置。
(付記4)
前記運転者負荷量を減少させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、現在実行中のサブタスクシナリオを停止し、前記運転者負荷量を増加させるべく、前記サブタスクシナリオの実行状況の変更の指示が前記負荷量制御部からあった場合には、前記シナリオ実行部は、新たなサブタスクシナリオの実行を開始する、付記1に記載の運転シミュレーション装置。
(付記5)
前記運転シミュレーション装置は、前記運転者の居眠りの前兆を検出する居眠り検出装置にアクセス可能であって、
前記目標負荷記録部には、互いに異なる目標負荷量となる複数の目標負荷情報が予め記録されており、
前記運転シミュレーション装置は、前記居眠り検出装置により運転者の居眠りの前兆が検出された場合には、当該運転者の居眠りの前兆が検出されない場合と比較して、目標負荷量が低くなるように、前記目標負荷記録部に記録された複数の目標負荷情報の中から一の目標負荷情報を選択する目標負荷選択部をさらに備える、付記1〜4のいずれか一項に記載の運転シミュレーション装置。
(付記6)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部を備える運転シミュレーション装置において、
前記運転者に対して指示を与えるための出力部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力部を介して運転者へ出力させるシナリオ実行部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出部と、
前記運転者負荷量の経時的変化によって定められる、前記サブタスクシナリオの実行の開始条件と停止条件とを示す条件情報が予め記録された条件情報記録部と、
前記サブタスクシナリオの実行が停止されている間に前記運転者負荷量の変化が前記開始条件に合致した場合は、当該サブタスクシナリオの実行を開始するように、前記シナリオ実行部に対して指示し、前記サブタスクシナリオの実行中に前記運転者負荷量の変化が前記停止条件に合致した場合は、当該サブタスクシナリオの実行を停止するように、前記シナリオ実行部に対して指示するシナリオ制御部とを備える、運転シミュレーション装置。
(付記7)
前記運転者負荷量算出部は、前記運転者による運転操作に関する運転操作情報を、前記シミュレーション管理部から取得し、取得した運転操作情報と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する、付記1〜6のいずれか一項に記載の運転シミュレーション装置。
(付記8)
前記運転者負荷量算出部は、前記仮想道路交通環境を示す道路交通情報を、前記シミュレーション管理部から取得し、取得した道路交通情報と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する、付記1〜6のいずれか一項に記載の運転シミュレーション装置。
(付記9)
前記運転シミュレーション装置は、前記運転者の生体反応を検出する生体反応検出装置にアクセス可能であって、
前記運転者負荷量算出部は、前記生体反応検出装置により検出された運転者の生体反応と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する、付記1〜6のいずれか一項に記載の運転シミュレーション装置。
(付記10)
前記運転シミュレーション装置は、前記シナリオ実行部によるサブタスクシナリオの実行に従って前記運転者がサブタスクを行った場合における当該サブタスクの実行結果を検出する実行結果検出部をさらに備え、
前記運転者負荷量算出部は、前記実行結果検出部により検出されたサブタスクの実行結果と、前記基準情報記録部に記録された負荷基準情報とに基づいて、前記運転者が受けている運転者負荷量を算出する、付記1〜6のいずれか一項に記載の運転シミュレーション装置。
(付記11)
前記基準情報記録部には、互いに異なる基準となる複数の負荷基準情報が予め記録されており、
前記運転シミュレーション装置は、
前記運転者による運転操作の特徴、前記運転者の生体反応の特徴、または前記運転者がサブタスクを行った場合における当該サブタスクの実行結果の特徴を示す運転者属性情報を記録する属性情報記録部と、
前記属性情報記録部に記録された運転者属性情報に基づいて、前記基準情報記録部に記録された複数の負荷基準情報の中から一の負荷基準情報を選択する基準情報選択部とをさらに備える、付記1〜10のいずれか一項に記載の運転シミュレーション装置。
(付記12)
前記運転シミュレーション装置は、前記運転者による運転操作、前記運転者の生体反応、または前記運転者がサブタスクを行った場合における当該サブタスクの実行結果に基づいて、前記属性情報記録部に記録された運転者属性情報を更新する属性情報更新部をさらに備える、付記11に記載の運転シミュレーション装置。
(付記13)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記運転者が受けるべき目標負荷量を示す目標負荷情報を記録する目標負荷記録部とを備えたコンピュータが処理を実行する運転シミュレーション方法であって、
前記コンピュータが備える出力部が、前記運転者に対して指示を与えるための出力工程と、
前記コンピュータが備えるシナリオ実行部が、前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力工程を介して運転者へ出力させるシナリオ実行工程と、
前記コンピュータが備える運転者負荷量算出部が、前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出工程と、
前記コンピュータが備える負荷量制御部が、前記運転者負荷量が前記目標負荷量よりも大きい場合には当該運転者負荷量を減少させ、前記運転者負荷量が前記目標負荷量よりも小さい場合には当該運転者負荷量を増加させるべく、前記サブタスクシナリオの変更または前記サブタスクシナリオの実行状況の変更を前記シナリオ実行工程に対して指示する負荷量制御工程とを含む、運転シミュレーション方法。
(付記14)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記運転者負荷量の経時的変化によって定められる、前記サブタスクシナリオの実行の開始条件と停止条件とを示す条件情報が予め記録された条件情報記録部とを備えたコンピュータが処理を実行する運転シミュレーション方法であって、
前記コンピュータが備える出力部が、前記運転者に対して指示を与えるための出力工程と、
前記コンピュータが備えるシナリオ実行部が、前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力工程を介して運転者へ出力させるシナリオ実行工程と、
前記コンピュータが備える運転者負荷量算出部が、前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出工程と、
前記コンピュータが備えるシナリオ制御部が、前記サブタスクシナリオの実行が停止されている間に前記運転者負荷量の変化が前記開始条件に合致した場合は、当該サブタスクシナリオの実行を開始するように、前記シナリオ実行工程に対して指示し、前記サブタスクシナリオの実行中に前記運転者負荷量の変化が前記停止条件に合致した場合は、当該サブタスクシナリオの実行を停止するように、前記シナリオ実行工程に対して指示するシナリオ制御工程とを含む、運転シミュレーション方法。
(付記15)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記運転者が受けるべき目標負荷量を示す目標負荷情報を記録する目標負荷記録部とを備えたコンピュータに処理を実行させるプログラムであって、
前記運転者に対して指示を与えるための出力処理と、
前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力処理を介して運転者へ出力させるシナリオ実行処理と、
前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出処理と、
前記運転者負荷量が前記目標負荷量よりも大きい場合には当該運転者負荷量を減少させ、前記運転者負荷量が前記目標負荷量よりも小さい場合には当該運転者負荷量を増加させるべく、前記サブタスクシナリオの変更または前記サブタスクシナリオの実行状況の変更を前記シナリオ実行処理に対して指示する負荷量制御処理とを前記コンピュータに実行させる、プログラム。
(付記16)
仮想道路交通環境と、運転者による運転操作に従って前記仮想道路交通環境内を走行可能な仮想移動体とを含む仮想空間を実現するシミュレーション管理部と、
前記運転者による運転操作以外の動作をサブタスクとするとき、当該サブタスクを運転者に対して行わせるためのサブタスクシナリオが予め記録されたシナリオ記録部と、
前記運転者が受けている運転者負荷量を算出するための基準となる負荷基準情報が予め記録された基準情報記録部と、
前記運転者負荷量の経時的変化によって定められる、前記サブタスクシナリオの実行の開始条件と停止条件とを示す条件情報が予め記録された条件情報記録部とを備えたコンピュータに処理を実行させるプログラムであって、
前記運転者に対して指示を与えるための出力処理と、
前記シナリオ記録部に記録されたサブタスクシナリオを読み出し、読み出したサブタスクシナリオを実行することにより、前記サブタスクシナリオに従ったサブタスク実行指示を、前記出力処理を介して運転者へ出力させるシナリオ実行処理と、
前記基準情報記録部に記録された負荷基準情報と、前記仮想移動体の状況または前記運転者の状況とに基づいて、前記運転者が受けている運転者負荷量を算出する運転者負荷量算出処理と、
前記サブタスクシナリオの実行が停止されている間に前記運転者負荷量の変化が前記開始条件に合致した場合は、当該サブタスクシナリオの実行を開始するように、前記シナリオ実行処理に対して指示し、前記サブタスクシナリオの実行中に前記運転者負荷量の変化が前記停止条件に合致した場合は、当該サブタスクシナリオの実行を停止するように、前記シナリオ実行処理に対して指示するシナリオ制御処理とを前記コンピュータに実行させる、プログラム。