運転シミュレーション装置、サーバ装置、及びプログラム
【課題】キーボードのキー操作で仮想の車の運転を滑らかに模擬することのできる運転シミュレーション装置を提供する。
【解決手段】サーバ装置(3)は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段(333)と、一定の更新周期で、所定キーの継続操作時間を更新する継続操作時間更新手段(323)と、更新周期で、予め設定された第1変換曲線に基づいて、所定キーの継続操作時間を運転操作の変化量に変換し、その変化量で仮想の車の運転操作状態を更新する運転操作状態更新手段(322)と、仮想の車の運転操作状態が更新される度に、その運転操作状態に基づいて仮想の車の挙動を表す動画データを生成して端末装置へ送信する動画送信手段(30)とを含み、端末装置(2)は、サーバ装置から動画データを受信する度に、その動画データを再生して表示装置に表示する動画再生手段(202)を含む。
【解決手段】サーバ装置(3)は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段(333)と、一定の更新周期で、所定キーの継続操作時間を更新する継続操作時間更新手段(323)と、更新周期で、予め設定された第1変換曲線に基づいて、所定キーの継続操作時間を運転操作の変化量に変換し、その変化量で仮想の車の運転操作状態を更新する運転操作状態更新手段(322)と、仮想の車の運転操作状態が更新される度に、その運転操作状態に基づいて仮想の車の挙動を表す動画データを生成して端末装置へ送信する動画送信手段(30)とを含み、端末装置(2)は、サーバ装置から動画データを受信する度に、その動画データを再生して表示装置に表示する動画再生手段(202)を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、運転シミュレーション装置、サーバ装置、及びプログラムに係り、詳しくはコンピュータの入力手段であるキーボードを用いて仮想の車の運転を制御する運転シミュレーション装置、運転シミュレーション装置を構成するサーバ装置、及び仮想の車の運転を制御するためのプログラムに関する。
【背景技術】
【0002】
従来、車の運転を模擬してプレイヤーが車を操作するドライビングゲームやドライビングシミュレーションが開発されている。このようなゲームやシミュレーションには、プレイヤーの操作を入力するための入力機器が用いられており、例えばジョイスティック(特許文献1)、感圧型のコントローラ(特許文献2)、ステアリングコントローラ等のアナログデバイスが用いられることがある。
アナログデバイスは、入力されたアナログ情報を8bit以上のデジタル情報に変換することができるため、例えばより滑らかなステアリング操作を実現することが可能となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−320738号公報
【特許文献2】特表2003−519545号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年では、ネットワークを介してドライビングシミュレーションを提供することが検討されている。ネットワークを介することの利点は、運転シミュレーションのソフトウェアをユーザ側のコンピュータにインストールしなくても、仮想の車の運転操作を模擬することができることである。しかしながらネットワークを介してこのような仮想の車を運転操作する場合には、ユーザが上述したようなアナログデバイスを必ずしも有しているわけではないため、ユーザが備えている入力機器に対応して仮想の車の運転を模擬する必要がある。
【0005】
運転シミュレーションを利用するユーザが備えている入力機器としては、例えばキーボード、マウス等が挙げられる。キーボードを入力機器として用いる場合、ステアリング、アクセル、ブレーキ等の操作に割り当てられた所定キーの操作から取得できる情報としては、所定キーが押されたか否か、という情報だけである。そのためキーボードのキー操作によって上述したアナログデバイスのような滑らかな運転操作を実現するには、様々な工夫が必要となる。また、スタンドアロンのパーソナルコンピュータ等に運転シミュレーションのソフトウェアをインストールし、キーボードで運転操作を行う場合にも同様の問題が発生する。
【0006】
本発明は、上述した課題を解決すべくなされたものであり、その目的とするところは、キーボードの所定キーの操作で仮想の車の運転操作を滑らかに模擬することのできる運転シミュレーション装置を提供することにある。
【課題を解決するための手段】
【0007】
上記の目的を達成するべく、請求項1の運転シミュレーション装置は、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、前記サーバ装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする。
【0008】
請求項2の運転シミュレーション装置は、請求項1において、前記第1変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【0009】
請求項3の運転シミュレーション装置は、請求項1または2において、前記サーバ装置は、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段をさらに含み、前記運転操作状態更新手段は、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換するための予め設定された第2変換曲線をさらに含み、前記更新周期で、前記第2変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新することを特徴とする。
【0010】
請求項4の運転シミュレーション装置は、請求項3において、前記第2変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【0011】
請求項5の運転シミュレーション装置は、請求項1乃至4のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする。
【0012】
請求項6の運転シミュレーション装置は、請求項1乃至5のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする。
【0013】
請求項7の運転シミュレーション装置は、キーボードと、表示装置と、制御装置と、を備え、前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、前記動画データを再生して前記表示装置に表示する動画再生手段と、を含むことを特徴とする。
【0014】
請求項8のサーバ装置は、仮想の車の運転状態を記憶する運転操作状態記憶手段と、端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を備える。
【0015】
請求項9のプログラムは、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、仮想の車の運転状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、として機能させる。
【0016】
請求項10のプログラムは、キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、仮想の車の運転操作状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、前記更新周期で、予め設定された第1の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、前記動画データを再生して前記表示装置に表示する動画再生手段、として機能させる。
【発明の効果】
【0017】
請求項1の運転シミュレーション装置によれば、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第1変換曲線に基づいて所定キーの継続操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続操作に対して一定の変化量で変化するのではなく、その所定キーの継続操作時間の長さに応じて異なる変化量で変化することになる。現実の車におけるドライバーの運転操作の操作速度(単位時間当たりの変化量)は、常に一定ではない。例えばステアリングの回転操作においてステアリングの回転速度は、回転操作の開始直後や停止直前は比較的遅い傾向となる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第1変換曲線を設定すれば、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。
【0018】
請求項2の運転シミュレーション装置によれば、第1変換曲線は、継続操作時間と運転操作の変化量との関係をロジスティック曲線で表している。
ロジスティック曲線は、当初は変化量が小さく、中途では変化量が大きくなり、その後変化量が小さくなる曲線であり、変曲点を中心に左右対称に表される。継続操作時間と運転操作の変化量との関係をロジスティック曲線で表すと、継続操作時間が短いと運転操作の変化量が小さく、継続操作時間が推移するにつれてこの変化量が大きくなり、その後再びこの変化量が小さくなる。従って例えば所定キー操作によるステアリングの回転操作は、ステアリングの回転速度が回転操作の開始直後や停止直前は比較的遅い傾向となるという現実の車におけるドライバーの運転操作に極めて近似することになる。それによってキーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。
【0019】
請求項3の運転シミュレーション装置によれば、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第2変換曲線に基づいて所定キーの継続非操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続非操作に対して一定の変化量で変化するのではなく、その所定キーの継続非操作時間の長さに応じて異なる変化量で変化することになる。例えば現実の車においては、車の運転状態が急激に変化しないように、ドライバーが回転させたステアリングをゆっくり中立位置へ戻す操作や踏み込んだアクセルペダルをゆっくり戻す操作等が必要になる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第2変換曲線を設定すれば、キーボードの所定キーの非操作で上記のような運転操作を模擬することが可能になる。それによって仮想の車の運転状態が急激に変化しないように滑らかに運転操作を行うことができる。
【0020】
請求項4の運転シミュレーション装置によれば、第2変換曲線は、継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表しているので、継続非操作時間が短いほど運転操作の変化量が小さくなる。このため、所定キーの非操作状態に対して仮想の車の運転操作が過敏に反応することを抑制することができ、より滑らかな運転操作を行うことができる。
【0021】
請求項5の運転シミュレーション装置によれば、ステアリングの操作において、ステアリングの舵角が中立位置を含む所定の範囲内にあるときに、ステアリングの変化量を低減する補正を行う。従って、中立位置付近でのステアリングの操作の変化が緩やかになり、ステアリングの遊びを再現することができ、仮想の車の挙動がふらついてしまうことを抑制することができる。
【0022】
請求項6の運転シミュレーション装置によれば、仮想の車の車速が高くなるに従って仮想の車のステアリングの変化量が減少するように、そのステアリングの変化量を補正するので、車速が速くなるほどステアリングの変化量が低減することになり、より現実に近い車の操作性を実現することができる。
【0023】
請求項7の運転シミュレーション装置によれば、請求項1の運転シミュレーション装置と同様に、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を再現することができる。
【0024】
請求項8のサーバ装置によれば、このサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【0025】
請求項9のプログラムによれば、このプログラムを実行可能なコンピュータを備えたサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【0026】
請求項10のプログラムによれば、このプログラムを実行可能なコンピュータを備えた運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【図面の簡単な説明】
【0027】
【図1】本発明の第1実施例に係る運転シミュレーション装置の概略図である。
【図2】表示装置に表示される運転シミュレーション画像の一例を示す概略図である。
【図3】第1実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【図4】操作キーを設定する設定画面の一例を示す概略図である。
【図5】(A)はステアリング操作に対応するキーが押下されている場合の変換曲線を設定する設定画面の一例を示す概略図、(B)はステアリング操作に対応するキーが離れている場合の変換曲線の一例を示すグラフである。
【図6】ステアリング操作の補正に用いる、操舵角補正係数とステアリングの舵角との関係を表すグラフの一例である。
【図7】ステアリング操作の補正に用いる、車速係数と補正係数との関係を表すグラフの一例である。
【図8】アクセル操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図9】ブレーキ操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図10−1】キーが操作された場合に変換曲線を選択する方法を示すフローチャートである。
【図10−2】キーが操作されていない場合に変換曲線を選択する方法を示すフローチャートである。
【図11】ステアリング操作に対応するキーが押下されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図12】ステアリング操作に対応するキーが離されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図13】アクセル操作に対応するキーが押下されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図14】アクセル操作に対応するキーが離されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図15】ブレーキ操作に対応するキーが押下されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図16】ブレーキ操作に対応するキーが離されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図17】第1実施例の変形例に係る運転シミュレーション装置の概略を示すブロック図である。
【図18】第1実施例の変形例に係るステアリングの操作を補正する方法を示すフローチャートである。
【図19】本発明の第2実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態について図面を参照しながら説明する。
<第1実施例>
図1は、本発明の第1実施例に係る運転シミュレーション装置の概略図である。図1に示すように、運転シミュレーション装置1は、複数の端末装置2とサーバ装置3とを備えている。各端末装置2とサーバ装置3とは、ネットワークNで接続されている。ここで、ネットワークNとは、インターネット、イントラネット等である。
【0029】
端末装置2は、サーバ装置3から送信される、3次元の仮想空間に仮想の車の運転状態を描画した動画が再生される表示装置10を備えており、3次元の仮想空間にある仮想の車は、ユーザがキーボード11の所定キーを操作することによって運転操作される。
図2は、表示装置10に表示される運転シミュレーション画像の一例を示している。図2に示すように、表示装置10には、ユーザが仮想の車の運転席から見た画像が表示される。この画像では、ステアリングH、バックミラーM、サイドミラーSが表示されており、仮想の車の前方の景色だけでなくバックミラーMやサイドミラーSに映る景色も変化させることで、より現実味のある運転シミュレーションを行うことができる。
【0030】
図3は、運転シミュレーション装置1の概略を示すブロック図である。運転シミュレーション装置1を構成する各端末装置2及びサーバ装置3について、図3に基づいてより詳細に説明する。
端末装置2は、さらに端末処理部20及び端末通信部21を備えている。端末処理部20は、キー操作検出部201、動画再生部(動画再生手段)202、及び画面表示部203を有している。キー操作検出部201では、キーボード11のいずれかのキーが操作されたことによる操作信号(以下、「キーイベント」という。)を検出して操作されたキーを判別する。動画再生部202は、端末通信部21でサーバ装置3から受信した動画データを表示装置10で再生する。動画の再生は、ストリーミングで行ってもよい。画面表示部203では、サーバ装置3から受信したユーザ設定画面等を表示装置10に表示する。
【0031】
端末通信部21は、ネットワークNを介してサーバ装置3と通信を行うものであり、例えば、キー操作検出部201で判別したキーイベントの送信や、サーバ装置3から送信される動画データの受信等を行う。
【0032】
次に、サーバ装置3について説明する。サーバ装置3は、サーバ通信部(動画送信手段)30、サーバ処理部31、及び記憶部33を備えている。ここで、サーバ処理部31、演算部32、記憶部33に示した各機能は、図示しないが記憶部33に記憶されたプログラムを図示しないCPUで実行することによって実現される。
サーバ通信部30は、ネットワークNを介して各端末装置2と通信を行うものであり、例えば、端末装置2からキーボード11で操作されたキーイベントの受信や、後述するサーバ処理部31で生成した動画データの送信等を行う。
【0033】
サーバ処理部31は、動画生成部311、画面生成部312、タイマ313、及び演算部32を有している。動画生成部311は、演算部32で処理された仮想の車の運転操作情報に基づいて、動画データを生成する。画面生成部312は、端末装置2を操作しているユーザが、仮想の車の運転操作に関する設定をサーバ装置3に要求した場合に、要求された設定画面を生成する。本実施例における運転操作の各種設定とは、詳細は後述するが、例えばステアリング、アクセル、ブレーキを操作するためのキーボード11のキーの設定や、ステアリング操作に要する時間等である。生成された設定画面は、ネットワークNを介して、設定要求を出した端末装置2へ画面データとして送信される。タイマ313は、所定の時間毎に演算部32へ所定時間が経過したことを通知する。
【0034】
演算部32は、変化量算出部321、運転状態更新部(運転操作状態更新手段)322、操作時間更新部(継続操作時間更新手段、継続非操作時間更新手段)323を含む。
変化量算出部321は、タイマ313から通知される度に、所定キーの操作の操作時間に対する仮想の車の運転操作における変化量を算出する。運転状態更新部322は、後述する記憶部33に記憶されている仮想の車の運転操作状態を、変化量算出部321で求めた変化量で更新する。操作時間更新部323は、運転操作に対応する所定キーが操作されている時間、または運転操作に対応するキーがユーザによって押下された後に離されてからの時間を積算し、後述する記憶部33の操作時間情報を更新する。
【0035】
記憶部33は、サーバ処理部31で仮想の車の運転状態を処理するために必要な各種情報を有しており、車種情報記憶部331、曲線情報記憶部332、運転操作情報記憶部(運転操作状態記憶手段)333、操作時間情報記憶部(継続操作時間記憶手段、継続非操作時間記憶手段)334、及びユーザ設定情報記憶部335を有している。
【0036】
車種情報記憶部331には、車の車種と、車種毎にステアリング、アクセル、ブレーキの操作特性等がそれぞれ登録されている。曲線情報記憶部332には、所定キーの操作に対応する車のステアリング、アクセル、及びブレーキの運転操作へ変換する変換曲線が登録されている。運転操作情報記憶部333には、演算部32で求められた車のステアリング、アクセル、及びブレーキの運転操作情報が登録されている。操作時間情報記憶部334には、キーボード11が操作されている継続時間を表す情報が保存されている。ユーザ設定情報記憶部335には、画面生成部312で生成された設定画面にユーザが設定した情報が記憶されている。
【0037】
画面生成部312で生成される各設定画面について、以下に説明する。なお、画面生成部312で生成される設定画面は、以下に説明するものに限られない。
図4に、ステアリング操作、アクセル、ブレーキにそれぞれ対応するキーボードのキーを設定する設定画面を示す。本実施例では、端末装置2のキーボード11の所定キーを操作することによって、ステアリング、アクセル、ブレーキを操作するものであり、各操作をすることで仮想の車のステアリング操作、速度変化、制動等の運転操作に反映される。各操作に対応するキーの設定について、以下に詳しく説明する。
【0038】
「Accelerator」に対応するテキストボックス414には、アクセル操作に割り当てるキーが設定される。図4に示すテキストボックス414には、アクセル操作のキーとして「Up」が設定されており、これはキーボード11の「↑」キーに相当する。「Brake」に対応するテキストボックス415には、ブレーキ操作に割り当てるキーが設定される。図4に示すテキストボックス415には、ブレーキ操作のキーとして「Down」が設定されており、これはキーボード11の「↓」キーに相当する。「Left Turn」に対応するテキストボックス416には、左方向へのステアリング操作に割り当てるキーが設定される。図4に示すテキストボックス416には、左方向のステアリング操作のキーとして「Left」が設定されており、これはキーボード11の「←」キーに相当する。「Right Turn」に対応するテキストボックス417には、右方向へのステアリング操作に割り当てるキーが設定される。図4に示すテキストボックス417には、右方向のステアリング操作のキーとして、「Right」が設定されており、これはキーボード11の「→」キーに相当する。このようなテキストボックス414〜417に設定される各キーは、ユーザが任意に設定することができる。
【0039】
図5(A)には、ステアリング操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図、図5(B)にはステアリング操作に対応するキーが押下された後、当該キーが離された場合に用いる変換曲線の一例を示すグラフをそれぞれ示す。
【0040】
図5(A)に示すように、ステアリング操作の設定画面には、「Key on」タブ、即ちステアリング操作に対応するキーが押下されている場合の変換曲線のグラフGon及びテーブルTonが表示されている。グラフGonは、横軸が時間(秒)、縦軸が操舵ゲインを表しており、テーブルTonには、グラフGonから求められた時間(Time)と操舵ゲイン(Gain)が設定されている。テーブルTonに表示されている時間及び操舵ゲインは、グラフGonに表示されているロジスティック曲線から求められた値である。グラフGonに点を追加する場合には、「Add new point」ボタンを押下するとテーブルTonに新たな行が追加され、追加された行の時間と操舵ゲインとに任意の値を設定することで、追加された点のデータがグラフGonに反映される。また、グラフGonから点を削除する場合には、テーブルTonの各行にある「×」ボタンを押下することで「×」ボタンが押下された行が削除されると共に、グラフGonにも反映される。
【0041】
図5(B)は、ステアリング操作に対応するキーが押下されていない場合の変換曲線のグラフGoffを表している。グラフGoffは、グラフGonをx軸の中間値、例えばx=0.5を対称軸として線対称で表したグラフである。グラフGoffについても、点の追加や削除の方法は上述したグラフGonと同様である。運転操作の変換曲線として用いているグラフGon、Goffは、ロジスティック曲線で表されているが、S字曲線であればこれに限られない。
【0042】
スピンボックスRtには、左方向の最大舵角から右方向の最大舵角までステアリングを操作するために要する時間が表示されている。ステアリングは構造上、回転できる範囲が定まっている。この範囲を「ロック・トゥ・ロック」という。このロック・トゥ・ロックを表すスピンボックスRtの値を変更することで、各ユーザのステアリング操作性に対応することができる。
【0043】
中立付近補正係数を表すスピンボックスFstは、ステアリングの舵角が0°付近、即ち中立付近にあるときのステアリングの操舵量を低減するための補正係数である。スピンボックスFstには任意の数値を入力することが可能であり、入力された数値によって中立付近におけるステアリングの操舵量の低減率が変化する。中立付近におけるステアリングの操舵量を補正して低減することによってステアリング操作における遊びを実現することができるので、仮想の車のふらつきを抑制することができる。詳しくは、図6に基づいて以下に説明する。
【0044】
図6は、ステアリングの舵角が0°から左方向または右方向の最大舵角までの間の所定率における舵角rを規定し、中立位置0°から最大舵角の所定率であるステアリング舵角rの範囲でロジスティック曲線を描いた補正曲線の一例を示すグラフである。図6に示すように、ステアリングの舵角が0°近傍の操舵角補正係数fstの変化が少ないのでステアリングの遊びを再現することができる。このように、ロジスティック曲線を用いてステアリングの舵角0°から舵角rまでを滑らかに遷移させるので、ステアリングの遊びを実現することができ、中立位置付近でのふらつきが抑制される。従って、ステアリング操作時の違和感を抑制することができる。
【0045】
車速補正係数を表すスピンボックスFspは、車速が速くなると単位時間当たりの車の移動量が増加するため、車速が速くなるにつれて車の操舵量を小さくする補正を行うための補正係数である。スピンボックスFspには任意の数値を入力することが可能であり、入力された数値によって車速に対する車の操舵量の変化特性を任意に設定することができる。詳しくは、図7に示す車速係数と補正係数との関係を示す補正曲線の一例を表すグラフに基づいて説明する。
【0046】
図7に示す車速係数vは、例えばv=0が時速0km/h、v=1が時速100km/h、v=2が時速200km/hをそれぞれ表している。図7に示すように、このグラフは車速係数に応じて3つの領域に分かれている。
【0047】
領域Iは、車速係数v=0〜1に相当する領域であり、ロジスティック曲線を用いている。領域Iの曲線は、ステアリングの操舵量を補正するために予め設定されたロジスティック曲線の数式を変形して求めた曲線を基準として、スピンボックスFspに設定された補正係数cで除算することで求められる。ロジスティック曲線の数式を変形して求めた曲線は、例えば以下の式(1)から求められる。
【0048】
【数1】
【0049】
上記式(1)で描かれる曲線を基準とし、スピンボックスFspに設定された補正係数cを用いて以下の式(2)及び式(3)から補正係数fspを求める。
s=9.0−c1.2 (2)
fsp=y/s (3)
車速係数v=0のときの補正係数fspが1となるように、上記式(3)で求められた補正係数fspを調整し、領域Iの補正係数fspとしている。
【0050】
領域IIの補正係数fspは、車速係数v=1における補正係数fspを基準として、スピンボックスFspに設定された補正係数cを用いて求めた一定の勾配で推移する。この勾配aは、以下の式(4)から求められる。
a=(c/10.0)2.5 (4)
【0051】
領域IIIの補正係数fspは、車速係数v=2の値で推移する。このように、図7に示すグラフを用いて、車速に応じてステアリングの操舵角の補正を行う。
【0052】
図8には、アクセル操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図を示す。図8に示すように、アクセル操作の設定画面には、アクセルの操作に対応するキーが押下されている場合のテーブルTa、グラフGaが表示される。グラフGaはロジスティック曲線で表され、横軸を時間、縦軸をゲインとして表される。テーブルTaには、グラフGaから求められた時間(Time)、ゲイン(Gain)が設定される。グラフGaへの点の追加、削除は、上述したステアリング操作の場合と同様である。
【0053】
図9は、ブレーキ操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図である。図9に示すように、ブレーキの制動の設定画面には、ブレーキの制動に対応するキーが押下されている場合のテーブルTb、グラフGbが表示される。グラフGbは、図8に示したアクセル操作の設定画面で表示されるグラフGaと同様に、ロジスティック曲線で表される。また、テーブルTbには、グラフGbから求められた時間及びゲインが設定される。グラフGbへの点の追加、削除は、上述したステアリング操作の場合と同様である。
このように、図5(A)、図8、図9に示した設定画面に設定された項目は、ユーザ設定情報記憶部335に設定情報として記憶される。
【0054】
次に、上述した構成の運転シミュレーション装置1の作用について説明する。まず、サーバ装置3の作用について、図10〜図13に示すフローチャートに基づいて以下に説明する。以下に述べる処理は、記憶部33に格納されているプログラムを実行することにより行われる。
【0055】
図10は、変換曲線の選択方法を示すフローチャートを示している。図10に示すフローチャートは、ユーザが端末装置2のキーボード11のキーを押下または離すことにより発生するキーイベントを、サーバ装置3のサーバ通信部30で受信することにより行われる。
【0056】
ステップS11では、操作時間情報記憶部334に記憶されている積算時間T、即ち後述するロジスティック曲線で表される変換曲線における積算時間Tに0を設定する。続くステップS12では、受信したキーイベントが、キーが押下されたことによるキーイベントか否かを判定する。当該判定結果が真(Yes)の場合にはステップS13へ進む。
【0057】
ステップS13では、受信したキーイベントから特定されるキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合には、ステアリング操作に対応するキーが押下されているとしてステップS14へ進む。ステップS14では、ステップS13で特定されたキーがステアリングを右方向へ操作するキーか否かを判定する。当該判定結果が真(Yes)の場合には、特定されたキーがステアリングを右方向へ回転操作するキーであるとしてステップS15へ進む。ステップS15では、後述する変化量dXを求めるときに用いる方向を表す変数directionに1を設定する。一方、上記ステップS14で偽(No)と判定された場合には、特定されたキーがステアリングを左方向へ回転操作するキーであると判定してステップS16へ進む。ステップS16では、方向を表す変数directionに−1を設定する。
【0058】
ステップS17では、キー押下に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS13で偽(No)と判定された場合、キーイベントから特定されるキーはステアリング操作に対応するキーではないとして、ステップS18へ進む。
【0059】
ステップS18では、キーイベントから特定されるキーがアクセル操作に対応するキーであるか否かを判定する。当該判定結果が真(Yes)の場合には、アクセル操作に対応するキーが押下されているとしてステップS19へ進む。ステップS19では、曲線情報記憶部332からアクセル操作に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS18で偽(No)と判定された場合、キーイベントから特定されるキーはアクセル操作に対応するキーではないとして、ステップS20へ進む。
【0060】
ステップS20では、キーイベントから特定されるキーがブレーキ操作に対応するキーであるか否かを判定する。当該判定結果が真(Yes)の場合には、ブレーキ操作に対応するキーが押下されているとしてステップS21へ進む。ステップS21では、曲線情報記憶部332からブレーキ操作に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS20で偽(No)と判定された場合には、何れのキーにも該当しないとして本処理を終了する。
【0061】
一方、上記ステップS12で偽(No)と判定された場合には、ユーザがキーを離すことにより生成されたキーリリースのキーイベントであるとして、ステップS22へ進む。ステップS22では、キーイベントから特定されたキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS23へ進む。ステップS23では、運転操作情報記憶部333に格納されているステアリングの位置currentXを取得し、ステアリングの位置currentXが正の値であるか否かを判定する。当該判定結果が真(Yes)の場合には、ステアリングが中立位置より右方向へ回転しているとしてステップS24へ進む。ステップS24では、後述する変化量dXを求めるときに用いる方向を表す変数directionに−1を設定する。一方、上記ステップS23の判定結果が偽(No)の場合には、ステアリングが中立位置より左方向へ回転しているとしてステップS25へ進む。ステップS25では、方向を表す変数directionに1を設定する。
【0062】
ステップS26では、ステアリング操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からステアリング操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。一方、ステップS22で偽(No)と判定された場合には、ステップS27へ進む。
【0063】
ステップS27では、キーイベントから特定されたキーがアクセル操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS28へ進む。ステップS28では、アクセル操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からアクセル操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。一方、ステップS27で偽(No)と判定された場合には、ステップS29へ進む。
【0064】
ステップS29では、キーイベントから特定されたキーがブレーキ操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS30へ進む。ステップS30では、ブレーキ操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からブレーキ操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。
【0065】
次に、ステアリング操作方法を図11に示すフローチャートに従って以下に説明する。図11は、上述したステップS13で特定されたキーがステアリング操作に対応する場合に行われる、ステアリング操作に対応するキーが押下されている場合のステアリング操作の方法を示すフローチャートである。本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。
【0066】
ステップS101では、サーバ通信部30を介して、ステアリング操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS102へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0067】
ステップS102では、今回計算する時間から前回計算したときの時間の差分である差分時間dTを求める。ステップS103では、ステップS102で求めた差分時間dT、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tから、上記ステップS17で選択された変換曲線における積算時間(継続操作時間)Tを求め、操作時間情報記憶部334に保存する。積算時間Tは、以下の式(5)から求められる。
T=T+dT (5)
【0068】
続くステップS104では、積算時間Tに対応するゲインGhを上記ステップS17で選択された変換曲線(第1変換曲線)から取得する。
ステップS105では、上記ステップS102で求めた差分時間dT及び上記ステップS104で取得したゲインGhから、変化量算出部321でステアリング操作における変化量dXを求める。ここで、dXは、以下に示す式(6)から求められる。
【0069】
dX=dT×G×Vmax×direction (6)
上記式(6)の変数directionは、上記ステップS15またはS16で設定された値を用いる。変化量dXを求めるときに、後述するステアリングの位置currentXに対して加算するのか、または減算するのかという符号を決めるために変数directionを用いる。上記ステップS13で特定されたキーがステアリングを右方向へ操作するキーであった場合、本ステップで求める変化量dXは上記ステップS15で設定された変数directionに従って正の値となる。一方、上記ステップS13で特定されたキーがステアリングを左方向へ操作するキーであった場合、本ステップで求める変化量dXは上記ステップS16で設定された変数directionに従って負の値となる。
【0070】
上記式(6)で変数Vmaxは、上述した図5(A)に示した設定画面で設定されるスピンボックスRtに設定された時間で、左方向の最大操舵角Amaxlから右方向の最大操舵角Amaxrまでステアリングを操作するときの移動速度、または右方向の最大操舵角Amaxrから左方向の最大操舵角Amaxlまでステアリングを操作するときの移動速度を表しており、以下の式(7)で求められる。
Vmax=(Amaxl−Amaxr)/Rt (7)
【0071】
なお、ステアリングの中立位置を0として左方向へ旋回する角度、即ち後述するステアリング位置currentXが負の値で表され、右方向へ旋回する角度、即ちステアリング位置currentXが正の値で表される。従って左方向の最大操舵角Amaxlがステアリング位置currentXの取り得る最小値となり、右方向の最大操舵角Amaxrがステアリング位置currentXの取り得る最大値となる。また、左方向の最大操舵角Amaxl及び右方向の最大操舵角Amaxrは、予め車種情報記憶部331に記憶されており、運転シミュレーションに用いる仮想の車の車種に応じて適宜設定すればよい。
【0072】
ステップS106では、運転操作情報記憶部333に記憶されている前回計算したステアリングの位置currentXと上記ステップS105で求められたステアリング位置の変化量dXから、運転状態更新部322で今回のキー操作に対応したステアリングの位置currentXを以下の式(8)から求める。
currentX=currentX+dX (8)
【0073】
ステップS107では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの右方向の最大操舵角Amaxrより大きいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS108へ進む。ステップS108では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの最大操舵角Amaxrより大きいとして、ステアリングの位置currentXにステアリングの最大操舵角Amaxrを設定する。
【0074】
一方、上記ステップS107で偽(No)と判定された場合には、ステップS109へ進む。ステップS109では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの左方向の最大操舵角Amaxlより小さいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS110へ進む。
【0075】
ステップS110では、記ステップS106で求められたステアリングの位置currentXが、ステアリングの最大操舵角Amaxlより小さいとして、ステアリングの位置currentXにステアリングの最大操舵角Amaxlを設定する。このように求められたステアリングの位置currentXを運転操作情報記憶部333へ格納する。
【0076】
次に、図12に示すフローチャートに基づいて以下に説明する。図12は、ステアリング操作に対応するキーが押下された後、離された場合のステアリング操作の方法を示すフローチャートである。本処理は、上述したステップS22でステアリング操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後に行われる。ステアリング操作に対応するキーが離されると、仮想の車のステアリングは中立位置に戻るように制御され、本フローチャートでこの制御を実現する。
【0077】
本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、ステップS124、S126については、図11に示したステップS104、S106と共通する処理であるので説明は省略し、異なる処理についてのみ以下に説明する。
【0078】
ステップS121では、演算部32が、サーバ通信部30にステアリング操作に対応する所定キーが押下されているか否かを判定する。当該判定結果が偽(No)の場合にはステップS122へ進み、当該判定結果が真(Yes)の場合には、ステアリング操作に対応するキーが押下されているので本処理を終了する。ステップS122では、前回計算した時刻から経過した時間dTを求める。
【0079】
続くステップS123では、上記ステップS122で求めた時間dT、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tから、上記ステップS26で選択された変換曲線における経過時間(継続非操作時間)Tを求める。そして、積算時間Tを操作時間情報記憶部334へ保存する。
【0080】
ステップS125では、上述した式(6)を用いて変化量dXを求める。本ステップで用いる変数directionは、上記ステップS24またはS25で設定された値を用いる。上記ステップS23で判定したステアリングの位置currentXが中立位置より右方向であると、ステアリングは左方向へ旋回して中立位置へ戻るので、本ステップで求める変化量dXは上記ステップ24で設定された変数directionに従って負の値となる。一方、上記ステップS23で判定したステアリングの位置currentXが中立位置より左方向であると、ステアリングは右方向へ旋回して中立位置へ戻るので、本ステップで求める変化量dXは上記ステップ25で設定された変数directionに従って正の値となる。
【0081】
ステップS127では、上述したステップS126で求めたステアリングの位置currentXに上記ステップS125で求めたステアリングの変化量dXを乗算した値が0より大きいか否かを判定する。本ステップは、左旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentXが中立位置を通過して右旋回に入ってしまっているか否か、或いは、右旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentXが中立位置を通過して左旋回に入ってしまっているか否かを判定する。
【0082】
詳しくは、左旋回されたステアリングの位置currentXは、上述したように負の値で表され、ステアリングの変化量dXは中立位置、即ち0に戻るために正の値で表される。同様に、右旋回されたステアリングの位置currentXは、上述したように正の値で表され、ステアリングの変化量dXは中立位置に戻るために負の値で表される。このように、左旋回または右旋回から中立位置に戻すまでの間、何れの場合でもステップS126で求められたステアリングの位置currentXとステップS125で求められた変化量dXとを乗算した値は負の値となる。
【0083】
一方、左旋回されたステアリングの位置currentXが変化量dXで中立位置に戻していったものの中立位置を通過して右旋回に入ってしまうと、上記ステップS126で求められたステアリングの位置currentXは正の値となる。同様に、右旋回されたステアリングの位置currentXを変化量dXで中立位置に戻していったものの中立位置を通過して左旋回に入ってしまうと、上記ステップS126で求められたステアリングの位置currentXは負の値となる。変化量dXの符号は上述した通りであり、何れの場合でも、ステップS126で求められたステアリングの位置currentXにステップS125で求められた変化量dXを乗算した値は正の値となる。従って、ステアリングの位置currentXにステアリングの変化量dXを乗算した値が0より大きいと、中立位置を通過して反対方向に旋回していると判定される。当該判定結果が真(Yes)の場合にはステップS128へ進み、偽(No)と判定された場合には、本処理を終了する。
【0084】
ステップS128では、ステアリングが中立位置を通過してしまったとして、ステアリングを中立位置、即ちステアリング舵角が0°となる位置へ戻すため、ステアリングの位置currentXに0を設定する。
このように、ロジスティック曲線を用いて、ステアリング操作に対応するキーの操作をステアリング操作として求めることによって、キーボード11を用いて仮想の車のステアリング操作を滑らかに模擬することができる。
【0085】
次に、アクセル操作について図13に示すフローチャートに基づいて以下に説明する。図13は、上述したステップS18で特定されたキーがアクセル操作に対応するキーであり、当該キーが押下されている場合のアクセル操作方法を示すフローチャートである。本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。
【0086】
ステップS201では、アクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS202へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0087】
ステップS202では、前回アクセル位置を計算した時間と今回計算する時間との差分時間dTaを求める。ステップS203では、ステップS202で求めた差分時間dTa、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Taから、上記ステップS19で選択された変換曲線における積算時間(継続操作時間)Taを求め、操作時間情報記憶部334に保存する。積算時間Taは、以下の式(9)から求められる。
Ta=Ta+dTa (9)
【0088】
続くステップS204では、積算時間Taに対応するゲインGaを上記ステップS19で選択された右肩上がりのロジスティック曲線で表される変換曲線から取得する。
ステップS205では、上記ステップS202で求めた差分時間dTa及び上記ステップS204で取得したゲインGaから、変化量算出部321でアクセル位置の変化量dXaを以下の式(10)から求める。
dXa=dTa×Ga×Vmax (10)
【0089】
上記式(10)で用いる変数Vmaxは、アクセルが閉じている状態からアクセルペダルが全開するまでに要する最短時間をTminとし、アクセル位置の範囲をvalveとすると、以下の式(11)から求められる。
Vmax=valve/Tmin (11)
なお、アクセルを全開するまでに要する最短時間は、車種情報記憶部331に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【0090】
ステップS206では、運転操作情報記憶部333に記憶されている前回計算したアクセル位置currentXaと上記ステップS205で求められたアクセル位置の変化量dXaから、運転状態更新部322で今回のアクセル位置currentXaを求める。アクセル位置currentXaは、以下の式(12)から求められる。
currentXa=currentXa+dXa (12)
【0091】
ステップS207では、上記ステップS206で求められたアクセル位置currentXaが、アナログデバイスとしてのアクセルペダルが全開した位置Pmaxより大きいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS208へ進む。ステップS208では、上記ステップS206で求められたアクセル位置currentXaが、アクセルが全開した位置よりも大きいとして、アクセル位置currentXaにアクセルが全開したときの位置Pmaxを設定する。なお、アクセルが全開したときの位置Pmaxは、0より大きい値である。このように求められたアクセル位置currentXaを運転操作情報記憶部333へ格納する。
【0092】
次に、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作について、図14に基づいて説明する。図14は、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作の方法を示すフローチャートである。本フローチャートは、上述したステップS27でアクセル操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図14に示すステップS224〜S226については、図13にて説明したステップS204〜S206と同様の処理であるので、共通箇所の説明は省略する。
【0093】
ステップS221では、演算部32が、サーバ通信部30にアクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽(No)の場合にはステップS222へ進む。ステップS222では、前回計算した時刻から経過した時間dTaを求め、操作時間情報記憶部334に保存する。
【0094】
ステップS223では、上記ステップS222で求めた差分時間dTa、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Taから、上記ステップS22で選択された右肩下がりのロジスティック曲線で表される変換曲線における積算時間(継続非操作時間)Taを求め、操作時間情報記憶部334に保存する。
【0095】
ステップS227では、ステップS226で求めたアクセル位置currentXaが最小値Pminより小さいか否かを判定する。本ステップでは、段階的に小さくなるアクセル位置currentXaが、アクセルが閉じている状態、即ちアクセル位置の最小値Pminより小さいか否かを判定する。
【0096】
上述したようにステップS226で求められるアクセル位置currentXaは、前回計算したアクセル位置currentXaより変化量dXaだけ小さくなる。この処理を繰り返していくとアクセル位置currentXaは、やがてアクセルが閉じているときの位置である最小値Pminを通過してしまう。従って本ステップで求められるアクセル位置currentXaが値が最小値Pminより大きい間は、アクセル位置currentXaを変化量dXaで戻していく。そしてアクセル位置currentXaが最小値Pminより小さくなると、アクセルの操作可能範囲Pmin〜Pmaxを下回っていると判定される。
【0097】
当該判定結果が真(Yes)の場合にはステップS228へ進み、偽(No)と判定された場合には、本処理を終了する。ステップS228では、アクセル位置が最小値Pminを通過してしまったとして、アクセル位置を最小値Pminへ戻すため、アクセル位置currentXaに最小位置Pminを設定する。
このように、アクセル操作に対応するキーをユーザが操作すると、ロジスティック曲線で表される変換曲線を用いてアクセル位置を段階的に変化させていくことにより、仮想の車の加速、減速を滑らかに模擬することができる。
【0098】
次に、ブレーキ操作について図15に示すフローチャートに基づいて以下に説明する。図15は、ブレーキ操作に対応するキーが押下されている場合のブレーキ操作方法を示すフローチャートである。本フローチャートは、上述したステップS21で特定されたキーに対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が所定の時間間隔で出力するタイマ通知によって行われる。
【0099】
ステップS301では、ブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS302へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0100】
ステップS302では、前回ブレーキ位置を計算した時間と今回の時間との差分時間dTsを求める。ステップS303では、ステップS302で求めた差分時間dTs、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tsから、上記ステップS21で選択された変換曲線における積算時間(継続操作時間)Tsを求め、操作時間情報記憶部334に保存する。積算時間Tsは、以下の式(13)から求められる。
Ts=Ts+dTs (13)
【0101】
続くステップS304では、上記ステップS21で選択された右肩上がりのロジスティック曲線で表される変換曲線から、積算時間Tsに対応するゲインGsを取得する。
ステップS305では、上記ステップS302で求めた差分時間dTs及び上記ステップS304で取得したゲインGsから、変化量算出部321でブレーキ位置の変化量dXsを以下の式(14)から求める。
dXs=dTs×Gs×Vmax (14)
【0102】
変数Vmaxは、上述した式(9)から求められる。なお、ブレーキが操作されていない状態から踏み込まれる位置までに要する最短時間をTminとし、ブレーキ位置の取り得る範囲をvalveとする。
ブレーキを踏み込むまでに要する最短時間は、車種情報記憶部331に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【0103】
ステップS306では、運転操作情報記憶部333に記憶されている前回計算したブレーキ位置currentXsと上記ステップS305で求められたブレーキ位置の変化量dXsから、運転状態更新部322で今回のブレーキ位置currentXsを以下の式(15)から求める。
currentXs=currentXs+dXs (15)
【0104】
ステップS307では、上記ステップS306で求められたブレーキ位置currentXsが、ブレーキが踏み込まれた位置Pmaxより大きいか否かを判定する。なお、ブレーキが踏み込まれた位置Pmaxは正の値である。当該判定結果が真(Yes)の場合にはステップS308へ進む。ステップS308では、上記ステップS306で求められたブレーキ位置currentXsが、ブレーキを踏み込んだ位置よりも大きいとして、ブレーキ位置currentXsにブレーキが踏み込まれたときの位置Pmaxを設定する。求められたブレーキ位置currentXsを運転操作情報記憶部333に格納する。
【0105】
次に、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作について、図16に基づいて説明する。図16は、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作の方法を示すフローチャートである。本フローチャートは、上述したステップS29でブレーキ操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図16に示すステップS324〜S326については、図15にて説明したステップS304〜S306と同様の処理であるので説明は省略する。
【0106】
ステップS321では、演算部32が、サーバ通信部30にブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽(No)の場合にはステップS322へ進む。ステップS322では、前回計算した時刻から経過した差分時間dTsを求める。
【0107】
ステップS323では、上記ステップS322で求めた差分時間dTs、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tsから、上記ステップS30で選択された右肩下がりのロジスティック曲線で表される変換曲線における経過時間(継続非操作時間)Tsを求め、操作時間情報記憶部334に保存する。
【0108】
ステップS327では、ステップS326で求めたブレーキ位置currentXsが、ブレーキ位置の最小値Pminより小さいか否かを判定する。本ステップは、段階的に小さくなるブレーキ位置currentXsが、ブレーキ位置の最小値Pminより小さいか否かを判定する。
【0109】
上述したようにステップS326で求められるブレーキ位置currentXsは、前回計算したブレーキ位置currentXsより変化量dXsだけ小さくなる。この処理を繰り返していくとブレーキ位置currentXsは、やがてブレーキが操作されていないときの位置である最小値Pminを通過してしまう。従って本ステップで求められる値が最小値Pminである間は、ブレーキ位置currentXsを変化量dXsで戻していく。そしてブレーキ位置currentXsが最小値Pminより小さくなるとブレーキの操作可能範囲Pmin〜Pmaxを下回っていると判定される。
【0110】
当該判定結果が真(Yes)の場合にはステップS328へ進み、偽(No)と判定された場合には、本処理を終了する。ステップS328では、ブレーキ位置が最小値Pminを通過してしまったとして、ブレーキ位置を最小値Pminへ戻すため、ブレーキ位置currentXsに最小値Pminを設定する。
【0111】
このように、ブレーキ操作に対応するキーをユーザが操作すると、キー操作に対応する変化量をロジスティック曲線で表される変換曲線から求めることで、ブレーキ位置を段階的に変化させることができ、滑らかなブレーキ操作を模擬することができる。
【0112】
動画生成部311は、上述したフローチャートにより求めたステアリングの位置、アクセル位置、ブレーキ位置の情報に基づいて動画を生成し、端末装置2へ送信する。この処理は、タイマ313から所定の周期で通知される毎に、操作されるキーに応じて行われる。ユーザは、動画再生部202で再生されて表示装置10に表示される動画を介して、ユーザの操作に応じた仮想の車の運転状態を見ることができる。
【0113】
ここで、仮想の車の運転状態を維持する場合について説明する。例として、ステアリングの位置を維持する場合には、ユーザは対応するキーを押下したり離したりする操作を繰り返す。これは、例えばステアリング操作に対応するキーを押下する積算時間T及び離してからの積算時間Tに対する各操作の位置の変化量dXはロジスティック曲線で求められ、積算時間Tが短いほど、変化量dXは小さい。従って、仮想の車のふらつきが抑制され、ユーザが運転操作に感じる違和感をなくすことができる。これは、アクセル操作、ブレーキ操作についても同様である。
【0114】
このように、本実施例では、仮想の車の運転操作、即ちステアリング操作、アクセル操作、ブレーキ操作にそれぞれ割り当てられたキーボード11の所定のキーをユーザが操作すると、演算部32で操作されたキーに対応する変換曲線を選択し、所定の更新周期で、当該変換曲線から各操作に応じた変化量を求め、当該変化量で前回求めた位置を更新して今回の位置を求める。
これにより、特定の操作用デバイスがなくても、キーボード11を用いて端末装置2から仮想の車の運転操作を行うことができる。
【0115】
<第1実施例の変形例>
上記第1実施例の変形例について以下に説明する。この変形例では、演算部32に、さらに位置補正部424を備えた点が異なっており、その他の構成については共通しているので説明を省略する。
【0116】
図17は、運転シミュレーション装置1の変形例の概略を示すブロック図である。演算部32は、さらに位置補正部(ステアリング中立位置補正手段、ステアリング変化量補正手段)324を備えている。位置補正部324は、運転状態更新部322で求められるステアリングの位置が中立位置付近にある場合に、ステアリングの変化量を低減する補正、及び車速に応じてステアリングの変化量を低減する補正をそれぞれ行うものである。
【0117】
図18は、図11または図12で求めたステアリングの位置currentXを補正する方法を示すフローチャートである。本フローチャートに示した手順は、図11のステップS110または図12のステップS128に続いて実行される手順である。以下に、図18に示すフローチャートに基づいて、詳しく説明する。
【0118】
ステップS131では、求めたステアリングの位置currentXが、中立位置から左方向または右方向における最大舵角に所定率を乗算して求めた舵角rより大きいか否かを判定する。当該判定結果が偽(No)の場合には、ステアリングの位置currentXが舵角r以下であるとしてステップS132へ進む。ステップS132では、位置補正部324で図6に示したような補正曲線を曲線情報記憶部332から取得し、ステアリングの位置currentXに対応する操舵角係数fstを求め、以下の式(16)でステアリングの位置currentXを補正する。
correctX=currentX×fst (16)
【0119】
一方、上記ステップS131で真(Yes)と判定された場合には、ステップS133へ進む。ステップS133では、仮想の車の車速に応じてステアリングの位置を補正する。本ステップで用いるステアリングの位置は、上記ステップS131から本ステップを行う場合にはcurrentX、上記ステップS132から本ステップを行う場合にはcorrectXであるが、本ステップではステアリングの位置をcurrentXとして説明する。位置補正部324では、操作情報記憶部333から仮想の車の車速を取得し、曲線情報記憶部332から図7に示したような補正曲線を取得する。取得した車速から車速係数vを求め、この補正曲線から車速係数vに対応する補正係数fspを求め、以下の式(17)でステアリングの位置を補正し、最終的なステアリングの位置finalXを求める。
finalX=currentX×fsp (17)
【0120】
このように、ステアリングの位置や車速に応じてステアリングの位置currentXを補正することによって、車両のふらつきを抑制したり車速に応じて仮想の車の移動量を変化させたりすることができる。従って、ユーザが行うステアリングの操作性を違和感なく再現することができる。なお、この変形例では、ステップS131のステアリングの位置が中立位置にある場合の補正から行っているが、ステップS133に示した車速に応じたステアリングの位置の補正から行うようにしてもよい。また、ステップS131、S132と、ステップS133とのいずれか一方の補正を行うようにしてもよい。
【0121】
<第2実施例>
次に、本発明に係る第2実施例について説明する。本実施例の運転シミュレーション装置は、端末装置のみの構成とした点が相違しており、その他の構成については共通しているので説明は省略する。
【0122】
図19は、本発明の第2実施例に係る運転シミュレーション装置51の概略構成図である。運転シミュレーション装置51は端末装置52からなる。端末装置52は、表示装置60、キーボード61、処理部71、演算部72、及び記憶部73を備えている。処理部71は、キー検出部711、動画再生部712、動画生成部713、画面生成部714、タイマ715、及び演算部72を含む。
【0123】
キー検出部711は、キーボード61のキー操作を検出し、演算部72へキー操作情報を出力する。演算部72は、タイマ715から所定の周期で信号が通知される度に、信号キー操作に応じて仮想の車の運転操作を処理する。動画生成部713は、演算部72で処理された仮想の車の運転操作情報に基づいて動画を生成する。動画再生部712は、動画生成部713で生成された動画を再生して表示装置60に表示する。画面生成部714は、ユーザの要求に応じ、記憶部73から取得した情報に基づいて、パラメータを設定する設定画面を生成して表示装置60に表示する。
【0124】
このように、本実施例では、キーボード61のキー操作に応じて、所定の周期で変換曲線に基づき演算部72で仮想の車の運転状態を求め、求めた運転状態を動画生成部713で生成し、表示装置60に表示させる。これにより、上記第1実施例と同様の効果を得ることができる。
【0125】
以上で実施形態の説明を終えるが、本発明は上述した実施形態に限定されるものではない。
例えば、上記第1実施例の変形例で述べたように、上記第2実施例でも上記第1実施例と同様にステアリングの位置補正を行うようにしてもよい。
【0126】
また、上記第1実施例では、ステアリングの操作に対応するキーを特定して設定した変数directionを用いて変数dXを求めたが、ステアリングの右方向への操作、左方向への操作にそれぞれ対応した変換曲線を予め準備し、その変換曲線を上述したステップS15、S16、S24、S25に代えて選択するようにしてもよい。
また、上記各実施例のステアリング操作、アクセル操作、ブレーキ操作を行うためのプログラムの処理を図10〜図16、図18にフローチャートで示したが、このプログラムを格納した記憶媒体も本発明の対象となり得る。
【符号の説明】
【0127】
1、51 運転シミュレーション装置
2、52 端末装置
3 サーバ装置
30 サーバ通信部(動画送信手段)
311、712 動画生成部
313、715 タイマ
322、722 運転状態更新部(運転操作状態更新手段)
323、723 操作時間更新部(継続操作時間更新手段、継続非操作時間更新手段)
333、733 操作情報記憶部(運転操作状態記憶手段)
334、734 操作時間情報記憶部(継続操作時間記憶手段、継続非操作時間記憶手段)
【技術分野】
【0001】
本発明は、運転シミュレーション装置、サーバ装置、及びプログラムに係り、詳しくはコンピュータの入力手段であるキーボードを用いて仮想の車の運転を制御する運転シミュレーション装置、運転シミュレーション装置を構成するサーバ装置、及び仮想の車の運転を制御するためのプログラムに関する。
【背景技術】
【0002】
従来、車の運転を模擬してプレイヤーが車を操作するドライビングゲームやドライビングシミュレーションが開発されている。このようなゲームやシミュレーションには、プレイヤーの操作を入力するための入力機器が用いられており、例えばジョイスティック(特許文献1)、感圧型のコントローラ(特許文献2)、ステアリングコントローラ等のアナログデバイスが用いられることがある。
アナログデバイスは、入力されたアナログ情報を8bit以上のデジタル情報に変換することができるため、例えばより滑らかなステアリング操作を実現することが可能となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−320738号公報
【特許文献2】特表2003−519545号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年では、ネットワークを介してドライビングシミュレーションを提供することが検討されている。ネットワークを介することの利点は、運転シミュレーションのソフトウェアをユーザ側のコンピュータにインストールしなくても、仮想の車の運転操作を模擬することができることである。しかしながらネットワークを介してこのような仮想の車を運転操作する場合には、ユーザが上述したようなアナログデバイスを必ずしも有しているわけではないため、ユーザが備えている入力機器に対応して仮想の車の運転を模擬する必要がある。
【0005】
運転シミュレーションを利用するユーザが備えている入力機器としては、例えばキーボード、マウス等が挙げられる。キーボードを入力機器として用いる場合、ステアリング、アクセル、ブレーキ等の操作に割り当てられた所定キーの操作から取得できる情報としては、所定キーが押されたか否か、という情報だけである。そのためキーボードのキー操作によって上述したアナログデバイスのような滑らかな運転操作を実現するには、様々な工夫が必要となる。また、スタンドアロンのパーソナルコンピュータ等に運転シミュレーションのソフトウェアをインストールし、キーボードで運転操作を行う場合にも同様の問題が発生する。
【0006】
本発明は、上述した課題を解決すべくなされたものであり、その目的とするところは、キーボードの所定キーの操作で仮想の車の運転操作を滑らかに模擬することのできる運転シミュレーション装置を提供することにある。
【課題を解決するための手段】
【0007】
上記の目的を達成するべく、請求項1の運転シミュレーション装置は、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、前記サーバ装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする。
【0008】
請求項2の運転シミュレーション装置は、請求項1において、前記第1変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【0009】
請求項3の運転シミュレーション装置は、請求項1または2において、前記サーバ装置は、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段をさらに含み、前記運転操作状態更新手段は、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換するための予め設定された第2変換曲線をさらに含み、前記更新周期で、前記第2変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新することを特徴とする。
【0010】
請求項4の運転シミュレーション装置は、請求項3において、前記第2変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【0011】
請求項5の運転シミュレーション装置は、請求項1乃至4のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする。
【0012】
請求項6の運転シミュレーション装置は、請求項1乃至5のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする。
【0013】
請求項7の運転シミュレーション装置は、キーボードと、表示装置と、制御装置と、を備え、前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、前記動画データを再生して前記表示装置に表示する動画再生手段と、を含むことを特徴とする。
【0014】
請求項8のサーバ装置は、仮想の車の運転状態を記憶する運転操作状態記憶手段と、端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、一定の更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を備える。
【0015】
請求項9のプログラムは、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、仮想の車の運転状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、として機能させる。
【0016】
請求項10のプログラムは、キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、仮想の車の運転操作状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、前記更新周期で、予め設定された第1の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、前記動画データを再生して前記表示装置に表示する動画再生手段、として機能させる。
【発明の効果】
【0017】
請求項1の運転シミュレーション装置によれば、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第1変換曲線に基づいて所定キーの継続操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続操作に対して一定の変化量で変化するのではなく、その所定キーの継続操作時間の長さに応じて異なる変化量で変化することになる。現実の車におけるドライバーの運転操作の操作速度(単位時間当たりの変化量)は、常に一定ではない。例えばステアリングの回転操作においてステアリングの回転速度は、回転操作の開始直後や停止直前は比較的遅い傾向となる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第1変換曲線を設定すれば、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。
【0018】
請求項2の運転シミュレーション装置によれば、第1変換曲線は、継続操作時間と運転操作の変化量との関係をロジスティック曲線で表している。
ロジスティック曲線は、当初は変化量が小さく、中途では変化量が大きくなり、その後変化量が小さくなる曲線であり、変曲点を中心に左右対称に表される。継続操作時間と運転操作の変化量との関係をロジスティック曲線で表すと、継続操作時間が短いと運転操作の変化量が小さく、継続操作時間が推移するにつれてこの変化量が大きくなり、その後再びこの変化量が小さくなる。従って例えば所定キー操作によるステアリングの回転操作は、ステアリングの回転速度が回転操作の開始直後や停止直前は比較的遅い傾向となるという現実の車におけるドライバーの運転操作に極めて近似することになる。それによってキーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。
【0019】
請求項3の運転シミュレーション装置によれば、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第2変換曲線に基づいて所定キーの継続非操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続非操作に対して一定の変化量で変化するのではなく、その所定キーの継続非操作時間の長さに応じて異なる変化量で変化することになる。例えば現実の車においては、車の運転状態が急激に変化しないように、ドライバーが回転させたステアリングをゆっくり中立位置へ戻す操作や踏み込んだアクセルペダルをゆっくり戻す操作等が必要になる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第2変換曲線を設定すれば、キーボードの所定キーの非操作で上記のような運転操作を模擬することが可能になる。それによって仮想の車の運転状態が急激に変化しないように滑らかに運転操作を行うことができる。
【0020】
請求項4の運転シミュレーション装置によれば、第2変換曲線は、継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表しているので、継続非操作時間が短いほど運転操作の変化量が小さくなる。このため、所定キーの非操作状態に対して仮想の車の運転操作が過敏に反応することを抑制することができ、より滑らかな運転操作を行うことができる。
【0021】
請求項5の運転シミュレーション装置によれば、ステアリングの操作において、ステアリングの舵角が中立位置を含む所定の範囲内にあるときに、ステアリングの変化量を低減する補正を行う。従って、中立位置付近でのステアリングの操作の変化が緩やかになり、ステアリングの遊びを再現することができ、仮想の車の挙動がふらついてしまうことを抑制することができる。
【0022】
請求項6の運転シミュレーション装置によれば、仮想の車の車速が高くなるに従って仮想の車のステアリングの変化量が減少するように、そのステアリングの変化量を補正するので、車速が速くなるほどステアリングの変化量が低減することになり、より現実に近い車の操作性を実現することができる。
【0023】
請求項7の運転シミュレーション装置によれば、請求項1の運転シミュレーション装置と同様に、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を再現することができる。
【0024】
請求項8のサーバ装置によれば、このサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【0025】
請求項9のプログラムによれば、このプログラムを実行可能なコンピュータを備えたサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【0026】
請求項10のプログラムによれば、このプログラムを実行可能なコンピュータを備えた運転シミュレーション装置において、前述した請求項1の運転シミュレーション装置と同様の作用効果が得られる。
【図面の簡単な説明】
【0027】
【図1】本発明の第1実施例に係る運転シミュレーション装置の概略図である。
【図2】表示装置に表示される運転シミュレーション画像の一例を示す概略図である。
【図3】第1実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【図4】操作キーを設定する設定画面の一例を示す概略図である。
【図5】(A)はステアリング操作に対応するキーが押下されている場合の変換曲線を設定する設定画面の一例を示す概略図、(B)はステアリング操作に対応するキーが離れている場合の変換曲線の一例を示すグラフである。
【図6】ステアリング操作の補正に用いる、操舵角補正係数とステアリングの舵角との関係を表すグラフの一例である。
【図7】ステアリング操作の補正に用いる、車速係数と補正係数との関係を表すグラフの一例である。
【図8】アクセル操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図9】ブレーキ操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図10−1】キーが操作された場合に変換曲線を選択する方法を示すフローチャートである。
【図10−2】キーが操作されていない場合に変換曲線を選択する方法を示すフローチャートである。
【図11】ステアリング操作に対応するキーが押下されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図12】ステアリング操作に対応するキーが離されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図13】アクセル操作に対応するキーが押下されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図14】アクセル操作に対応するキーが離されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図15】ブレーキ操作に対応するキーが押下されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図16】ブレーキ操作に対応するキーが離されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図17】第1実施例の変形例に係る運転シミュレーション装置の概略を示すブロック図である。
【図18】第1実施例の変形例に係るステアリングの操作を補正する方法を示すフローチャートである。
【図19】本発明の第2実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態について図面を参照しながら説明する。
<第1実施例>
図1は、本発明の第1実施例に係る運転シミュレーション装置の概略図である。図1に示すように、運転シミュレーション装置1は、複数の端末装置2とサーバ装置3とを備えている。各端末装置2とサーバ装置3とは、ネットワークNで接続されている。ここで、ネットワークNとは、インターネット、イントラネット等である。
【0029】
端末装置2は、サーバ装置3から送信される、3次元の仮想空間に仮想の車の運転状態を描画した動画が再生される表示装置10を備えており、3次元の仮想空間にある仮想の車は、ユーザがキーボード11の所定キーを操作することによって運転操作される。
図2は、表示装置10に表示される運転シミュレーション画像の一例を示している。図2に示すように、表示装置10には、ユーザが仮想の車の運転席から見た画像が表示される。この画像では、ステアリングH、バックミラーM、サイドミラーSが表示されており、仮想の車の前方の景色だけでなくバックミラーMやサイドミラーSに映る景色も変化させることで、より現実味のある運転シミュレーションを行うことができる。
【0030】
図3は、運転シミュレーション装置1の概略を示すブロック図である。運転シミュレーション装置1を構成する各端末装置2及びサーバ装置3について、図3に基づいてより詳細に説明する。
端末装置2は、さらに端末処理部20及び端末通信部21を備えている。端末処理部20は、キー操作検出部201、動画再生部(動画再生手段)202、及び画面表示部203を有している。キー操作検出部201では、キーボード11のいずれかのキーが操作されたことによる操作信号(以下、「キーイベント」という。)を検出して操作されたキーを判別する。動画再生部202は、端末通信部21でサーバ装置3から受信した動画データを表示装置10で再生する。動画の再生は、ストリーミングで行ってもよい。画面表示部203では、サーバ装置3から受信したユーザ設定画面等を表示装置10に表示する。
【0031】
端末通信部21は、ネットワークNを介してサーバ装置3と通信を行うものであり、例えば、キー操作検出部201で判別したキーイベントの送信や、サーバ装置3から送信される動画データの受信等を行う。
【0032】
次に、サーバ装置3について説明する。サーバ装置3は、サーバ通信部(動画送信手段)30、サーバ処理部31、及び記憶部33を備えている。ここで、サーバ処理部31、演算部32、記憶部33に示した各機能は、図示しないが記憶部33に記憶されたプログラムを図示しないCPUで実行することによって実現される。
サーバ通信部30は、ネットワークNを介して各端末装置2と通信を行うものであり、例えば、端末装置2からキーボード11で操作されたキーイベントの受信や、後述するサーバ処理部31で生成した動画データの送信等を行う。
【0033】
サーバ処理部31は、動画生成部311、画面生成部312、タイマ313、及び演算部32を有している。動画生成部311は、演算部32で処理された仮想の車の運転操作情報に基づいて、動画データを生成する。画面生成部312は、端末装置2を操作しているユーザが、仮想の車の運転操作に関する設定をサーバ装置3に要求した場合に、要求された設定画面を生成する。本実施例における運転操作の各種設定とは、詳細は後述するが、例えばステアリング、アクセル、ブレーキを操作するためのキーボード11のキーの設定や、ステアリング操作に要する時間等である。生成された設定画面は、ネットワークNを介して、設定要求を出した端末装置2へ画面データとして送信される。タイマ313は、所定の時間毎に演算部32へ所定時間が経過したことを通知する。
【0034】
演算部32は、変化量算出部321、運転状態更新部(運転操作状態更新手段)322、操作時間更新部(継続操作時間更新手段、継続非操作時間更新手段)323を含む。
変化量算出部321は、タイマ313から通知される度に、所定キーの操作の操作時間に対する仮想の車の運転操作における変化量を算出する。運転状態更新部322は、後述する記憶部33に記憶されている仮想の車の運転操作状態を、変化量算出部321で求めた変化量で更新する。操作時間更新部323は、運転操作に対応する所定キーが操作されている時間、または運転操作に対応するキーがユーザによって押下された後に離されてからの時間を積算し、後述する記憶部33の操作時間情報を更新する。
【0035】
記憶部33は、サーバ処理部31で仮想の車の運転状態を処理するために必要な各種情報を有しており、車種情報記憶部331、曲線情報記憶部332、運転操作情報記憶部(運転操作状態記憶手段)333、操作時間情報記憶部(継続操作時間記憶手段、継続非操作時間記憶手段)334、及びユーザ設定情報記憶部335を有している。
【0036】
車種情報記憶部331には、車の車種と、車種毎にステアリング、アクセル、ブレーキの操作特性等がそれぞれ登録されている。曲線情報記憶部332には、所定キーの操作に対応する車のステアリング、アクセル、及びブレーキの運転操作へ変換する変換曲線が登録されている。運転操作情報記憶部333には、演算部32で求められた車のステアリング、アクセル、及びブレーキの運転操作情報が登録されている。操作時間情報記憶部334には、キーボード11が操作されている継続時間を表す情報が保存されている。ユーザ設定情報記憶部335には、画面生成部312で生成された設定画面にユーザが設定した情報が記憶されている。
【0037】
画面生成部312で生成される各設定画面について、以下に説明する。なお、画面生成部312で生成される設定画面は、以下に説明するものに限られない。
図4に、ステアリング操作、アクセル、ブレーキにそれぞれ対応するキーボードのキーを設定する設定画面を示す。本実施例では、端末装置2のキーボード11の所定キーを操作することによって、ステアリング、アクセル、ブレーキを操作するものであり、各操作をすることで仮想の車のステアリング操作、速度変化、制動等の運転操作に反映される。各操作に対応するキーの設定について、以下に詳しく説明する。
【0038】
「Accelerator」に対応するテキストボックス414には、アクセル操作に割り当てるキーが設定される。図4に示すテキストボックス414には、アクセル操作のキーとして「Up」が設定されており、これはキーボード11の「↑」キーに相当する。「Brake」に対応するテキストボックス415には、ブレーキ操作に割り当てるキーが設定される。図4に示すテキストボックス415には、ブレーキ操作のキーとして「Down」が設定されており、これはキーボード11の「↓」キーに相当する。「Left Turn」に対応するテキストボックス416には、左方向へのステアリング操作に割り当てるキーが設定される。図4に示すテキストボックス416には、左方向のステアリング操作のキーとして「Left」が設定されており、これはキーボード11の「←」キーに相当する。「Right Turn」に対応するテキストボックス417には、右方向へのステアリング操作に割り当てるキーが設定される。図4に示すテキストボックス417には、右方向のステアリング操作のキーとして、「Right」が設定されており、これはキーボード11の「→」キーに相当する。このようなテキストボックス414〜417に設定される各キーは、ユーザが任意に設定することができる。
【0039】
図5(A)には、ステアリング操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図、図5(B)にはステアリング操作に対応するキーが押下された後、当該キーが離された場合に用いる変換曲線の一例を示すグラフをそれぞれ示す。
【0040】
図5(A)に示すように、ステアリング操作の設定画面には、「Key on」タブ、即ちステアリング操作に対応するキーが押下されている場合の変換曲線のグラフGon及びテーブルTonが表示されている。グラフGonは、横軸が時間(秒)、縦軸が操舵ゲインを表しており、テーブルTonには、グラフGonから求められた時間(Time)と操舵ゲイン(Gain)が設定されている。テーブルTonに表示されている時間及び操舵ゲインは、グラフGonに表示されているロジスティック曲線から求められた値である。グラフGonに点を追加する場合には、「Add new point」ボタンを押下するとテーブルTonに新たな行が追加され、追加された行の時間と操舵ゲインとに任意の値を設定することで、追加された点のデータがグラフGonに反映される。また、グラフGonから点を削除する場合には、テーブルTonの各行にある「×」ボタンを押下することで「×」ボタンが押下された行が削除されると共に、グラフGonにも反映される。
【0041】
図5(B)は、ステアリング操作に対応するキーが押下されていない場合の変換曲線のグラフGoffを表している。グラフGoffは、グラフGonをx軸の中間値、例えばx=0.5を対称軸として線対称で表したグラフである。グラフGoffについても、点の追加や削除の方法は上述したグラフGonと同様である。運転操作の変換曲線として用いているグラフGon、Goffは、ロジスティック曲線で表されているが、S字曲線であればこれに限られない。
【0042】
スピンボックスRtには、左方向の最大舵角から右方向の最大舵角までステアリングを操作するために要する時間が表示されている。ステアリングは構造上、回転できる範囲が定まっている。この範囲を「ロック・トゥ・ロック」という。このロック・トゥ・ロックを表すスピンボックスRtの値を変更することで、各ユーザのステアリング操作性に対応することができる。
【0043】
中立付近補正係数を表すスピンボックスFstは、ステアリングの舵角が0°付近、即ち中立付近にあるときのステアリングの操舵量を低減するための補正係数である。スピンボックスFstには任意の数値を入力することが可能であり、入力された数値によって中立付近におけるステアリングの操舵量の低減率が変化する。中立付近におけるステアリングの操舵量を補正して低減することによってステアリング操作における遊びを実現することができるので、仮想の車のふらつきを抑制することができる。詳しくは、図6に基づいて以下に説明する。
【0044】
図6は、ステアリングの舵角が0°から左方向または右方向の最大舵角までの間の所定率における舵角rを規定し、中立位置0°から最大舵角の所定率であるステアリング舵角rの範囲でロジスティック曲線を描いた補正曲線の一例を示すグラフである。図6に示すように、ステアリングの舵角が0°近傍の操舵角補正係数fstの変化が少ないのでステアリングの遊びを再現することができる。このように、ロジスティック曲線を用いてステアリングの舵角0°から舵角rまでを滑らかに遷移させるので、ステアリングの遊びを実現することができ、中立位置付近でのふらつきが抑制される。従って、ステアリング操作時の違和感を抑制することができる。
【0045】
車速補正係数を表すスピンボックスFspは、車速が速くなると単位時間当たりの車の移動量が増加するため、車速が速くなるにつれて車の操舵量を小さくする補正を行うための補正係数である。スピンボックスFspには任意の数値を入力することが可能であり、入力された数値によって車速に対する車の操舵量の変化特性を任意に設定することができる。詳しくは、図7に示す車速係数と補正係数との関係を示す補正曲線の一例を表すグラフに基づいて説明する。
【0046】
図7に示す車速係数vは、例えばv=0が時速0km/h、v=1が時速100km/h、v=2が時速200km/hをそれぞれ表している。図7に示すように、このグラフは車速係数に応じて3つの領域に分かれている。
【0047】
領域Iは、車速係数v=0〜1に相当する領域であり、ロジスティック曲線を用いている。領域Iの曲線は、ステアリングの操舵量を補正するために予め設定されたロジスティック曲線の数式を変形して求めた曲線を基準として、スピンボックスFspに設定された補正係数cで除算することで求められる。ロジスティック曲線の数式を変形して求めた曲線は、例えば以下の式(1)から求められる。
【0048】
【数1】
【0049】
上記式(1)で描かれる曲線を基準とし、スピンボックスFspに設定された補正係数cを用いて以下の式(2)及び式(3)から補正係数fspを求める。
s=9.0−c1.2 (2)
fsp=y/s (3)
車速係数v=0のときの補正係数fspが1となるように、上記式(3)で求められた補正係数fspを調整し、領域Iの補正係数fspとしている。
【0050】
領域IIの補正係数fspは、車速係数v=1における補正係数fspを基準として、スピンボックスFspに設定された補正係数cを用いて求めた一定の勾配で推移する。この勾配aは、以下の式(4)から求められる。
a=(c/10.0)2.5 (4)
【0051】
領域IIIの補正係数fspは、車速係数v=2の値で推移する。このように、図7に示すグラフを用いて、車速に応じてステアリングの操舵角の補正を行う。
【0052】
図8には、アクセル操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図を示す。図8に示すように、アクセル操作の設定画面には、アクセルの操作に対応するキーが押下されている場合のテーブルTa、グラフGaが表示される。グラフGaはロジスティック曲線で表され、横軸を時間、縦軸をゲインとして表される。テーブルTaには、グラフGaから求められた時間(Time)、ゲイン(Gain)が設定される。グラフGaへの点の追加、削除は、上述したステアリング操作の場合と同様である。
【0053】
図9は、ブレーキ操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図である。図9に示すように、ブレーキの制動の設定画面には、ブレーキの制動に対応するキーが押下されている場合のテーブルTb、グラフGbが表示される。グラフGbは、図8に示したアクセル操作の設定画面で表示されるグラフGaと同様に、ロジスティック曲線で表される。また、テーブルTbには、グラフGbから求められた時間及びゲインが設定される。グラフGbへの点の追加、削除は、上述したステアリング操作の場合と同様である。
このように、図5(A)、図8、図9に示した設定画面に設定された項目は、ユーザ設定情報記憶部335に設定情報として記憶される。
【0054】
次に、上述した構成の運転シミュレーション装置1の作用について説明する。まず、サーバ装置3の作用について、図10〜図13に示すフローチャートに基づいて以下に説明する。以下に述べる処理は、記憶部33に格納されているプログラムを実行することにより行われる。
【0055】
図10は、変換曲線の選択方法を示すフローチャートを示している。図10に示すフローチャートは、ユーザが端末装置2のキーボード11のキーを押下または離すことにより発生するキーイベントを、サーバ装置3のサーバ通信部30で受信することにより行われる。
【0056】
ステップS11では、操作時間情報記憶部334に記憶されている積算時間T、即ち後述するロジスティック曲線で表される変換曲線における積算時間Tに0を設定する。続くステップS12では、受信したキーイベントが、キーが押下されたことによるキーイベントか否かを判定する。当該判定結果が真(Yes)の場合にはステップS13へ進む。
【0057】
ステップS13では、受信したキーイベントから特定されるキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合には、ステアリング操作に対応するキーが押下されているとしてステップS14へ進む。ステップS14では、ステップS13で特定されたキーがステアリングを右方向へ操作するキーか否かを判定する。当該判定結果が真(Yes)の場合には、特定されたキーがステアリングを右方向へ回転操作するキーであるとしてステップS15へ進む。ステップS15では、後述する変化量dXを求めるときに用いる方向を表す変数directionに1を設定する。一方、上記ステップS14で偽(No)と判定された場合には、特定されたキーがステアリングを左方向へ回転操作するキーであると判定してステップS16へ進む。ステップS16では、方向を表す変数directionに−1を設定する。
【0058】
ステップS17では、キー押下に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS13で偽(No)と判定された場合、キーイベントから特定されるキーはステアリング操作に対応するキーではないとして、ステップS18へ進む。
【0059】
ステップS18では、キーイベントから特定されるキーがアクセル操作に対応するキーであるか否かを判定する。当該判定結果が真(Yes)の場合には、アクセル操作に対応するキーが押下されているとしてステップS19へ進む。ステップS19では、曲線情報記憶部332からアクセル操作に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS18で偽(No)と判定された場合、キーイベントから特定されるキーはアクセル操作に対応するキーではないとして、ステップS20へ進む。
【0060】
ステップS20では、キーイベントから特定されるキーがブレーキ操作に対応するキーであるか否かを判定する。当該判定結果が真(Yes)の場合には、ブレーキ操作に対応するキーが押下されているとしてステップS21へ進む。ステップS21では、曲線情報記憶部332からブレーキ操作に対応する変換曲線(第1変換曲線)を選択する。一方、上記ステップS20で偽(No)と判定された場合には、何れのキーにも該当しないとして本処理を終了する。
【0061】
一方、上記ステップS12で偽(No)と判定された場合には、ユーザがキーを離すことにより生成されたキーリリースのキーイベントであるとして、ステップS22へ進む。ステップS22では、キーイベントから特定されたキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS23へ進む。ステップS23では、運転操作情報記憶部333に格納されているステアリングの位置currentXを取得し、ステアリングの位置currentXが正の値であるか否かを判定する。当該判定結果が真(Yes)の場合には、ステアリングが中立位置より右方向へ回転しているとしてステップS24へ進む。ステップS24では、後述する変化量dXを求めるときに用いる方向を表す変数directionに−1を設定する。一方、上記ステップS23の判定結果が偽(No)の場合には、ステアリングが中立位置より左方向へ回転しているとしてステップS25へ進む。ステップS25では、方向を表す変数directionに1を設定する。
【0062】
ステップS26では、ステアリング操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からステアリング操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。一方、ステップS22で偽(No)と判定された場合には、ステップS27へ進む。
【0063】
ステップS27では、キーイベントから特定されたキーがアクセル操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS28へ進む。ステップS28では、アクセル操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からアクセル操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。一方、ステップS27で偽(No)と判定された場合には、ステップS29へ進む。
【0064】
ステップS29では、キーイベントから特定されたキーがブレーキ操作に対応するキーか否かを判定する。当該判定結果が真(Yes)の場合にはステップS30へ進む。ステップS30では、ブレーキ操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部332からブレーキ操作キーのキーリリースに対応する変換曲線(第2変換曲線)を選択する。
【0065】
次に、ステアリング操作方法を図11に示すフローチャートに従って以下に説明する。図11は、上述したステップS13で特定されたキーがステアリング操作に対応する場合に行われる、ステアリング操作に対応するキーが押下されている場合のステアリング操作の方法を示すフローチャートである。本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。
【0066】
ステップS101では、サーバ通信部30を介して、ステアリング操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS102へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0067】
ステップS102では、今回計算する時間から前回計算したときの時間の差分である差分時間dTを求める。ステップS103では、ステップS102で求めた差分時間dT、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tから、上記ステップS17で選択された変換曲線における積算時間(継続操作時間)Tを求め、操作時間情報記憶部334に保存する。積算時間Tは、以下の式(5)から求められる。
T=T+dT (5)
【0068】
続くステップS104では、積算時間Tに対応するゲインGhを上記ステップS17で選択された変換曲線(第1変換曲線)から取得する。
ステップS105では、上記ステップS102で求めた差分時間dT及び上記ステップS104で取得したゲインGhから、変化量算出部321でステアリング操作における変化量dXを求める。ここで、dXは、以下に示す式(6)から求められる。
【0069】
dX=dT×G×Vmax×direction (6)
上記式(6)の変数directionは、上記ステップS15またはS16で設定された値を用いる。変化量dXを求めるときに、後述するステアリングの位置currentXに対して加算するのか、または減算するのかという符号を決めるために変数directionを用いる。上記ステップS13で特定されたキーがステアリングを右方向へ操作するキーであった場合、本ステップで求める変化量dXは上記ステップS15で設定された変数directionに従って正の値となる。一方、上記ステップS13で特定されたキーがステアリングを左方向へ操作するキーであった場合、本ステップで求める変化量dXは上記ステップS16で設定された変数directionに従って負の値となる。
【0070】
上記式(6)で変数Vmaxは、上述した図5(A)に示した設定画面で設定されるスピンボックスRtに設定された時間で、左方向の最大操舵角Amaxlから右方向の最大操舵角Amaxrまでステアリングを操作するときの移動速度、または右方向の最大操舵角Amaxrから左方向の最大操舵角Amaxlまでステアリングを操作するときの移動速度を表しており、以下の式(7)で求められる。
Vmax=(Amaxl−Amaxr)/Rt (7)
【0071】
なお、ステアリングの中立位置を0として左方向へ旋回する角度、即ち後述するステアリング位置currentXが負の値で表され、右方向へ旋回する角度、即ちステアリング位置currentXが正の値で表される。従って左方向の最大操舵角Amaxlがステアリング位置currentXの取り得る最小値となり、右方向の最大操舵角Amaxrがステアリング位置currentXの取り得る最大値となる。また、左方向の最大操舵角Amaxl及び右方向の最大操舵角Amaxrは、予め車種情報記憶部331に記憶されており、運転シミュレーションに用いる仮想の車の車種に応じて適宜設定すればよい。
【0072】
ステップS106では、運転操作情報記憶部333に記憶されている前回計算したステアリングの位置currentXと上記ステップS105で求められたステアリング位置の変化量dXから、運転状態更新部322で今回のキー操作に対応したステアリングの位置currentXを以下の式(8)から求める。
currentX=currentX+dX (8)
【0073】
ステップS107では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの右方向の最大操舵角Amaxrより大きいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS108へ進む。ステップS108では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの最大操舵角Amaxrより大きいとして、ステアリングの位置currentXにステアリングの最大操舵角Amaxrを設定する。
【0074】
一方、上記ステップS107で偽(No)と判定された場合には、ステップS109へ進む。ステップS109では、上記ステップS106で求められたステアリングの位置currentXが、ステアリングの左方向の最大操舵角Amaxlより小さいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS110へ進む。
【0075】
ステップS110では、記ステップS106で求められたステアリングの位置currentXが、ステアリングの最大操舵角Amaxlより小さいとして、ステアリングの位置currentXにステアリングの最大操舵角Amaxlを設定する。このように求められたステアリングの位置currentXを運転操作情報記憶部333へ格納する。
【0076】
次に、図12に示すフローチャートに基づいて以下に説明する。図12は、ステアリング操作に対応するキーが押下された後、離された場合のステアリング操作の方法を示すフローチャートである。本処理は、上述したステップS22でステアリング操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後に行われる。ステアリング操作に対応するキーが離されると、仮想の車のステアリングは中立位置に戻るように制御され、本フローチャートでこの制御を実現する。
【0077】
本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、ステップS124、S126については、図11に示したステップS104、S106と共通する処理であるので説明は省略し、異なる処理についてのみ以下に説明する。
【0078】
ステップS121では、演算部32が、サーバ通信部30にステアリング操作に対応する所定キーが押下されているか否かを判定する。当該判定結果が偽(No)の場合にはステップS122へ進み、当該判定結果が真(Yes)の場合には、ステアリング操作に対応するキーが押下されているので本処理を終了する。ステップS122では、前回計算した時刻から経過した時間dTを求める。
【0079】
続くステップS123では、上記ステップS122で求めた時間dT、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tから、上記ステップS26で選択された変換曲線における経過時間(継続非操作時間)Tを求める。そして、積算時間Tを操作時間情報記憶部334へ保存する。
【0080】
ステップS125では、上述した式(6)を用いて変化量dXを求める。本ステップで用いる変数directionは、上記ステップS24またはS25で設定された値を用いる。上記ステップS23で判定したステアリングの位置currentXが中立位置より右方向であると、ステアリングは左方向へ旋回して中立位置へ戻るので、本ステップで求める変化量dXは上記ステップ24で設定された変数directionに従って負の値となる。一方、上記ステップS23で判定したステアリングの位置currentXが中立位置より左方向であると、ステアリングは右方向へ旋回して中立位置へ戻るので、本ステップで求める変化量dXは上記ステップ25で設定された変数directionに従って正の値となる。
【0081】
ステップS127では、上述したステップS126で求めたステアリングの位置currentXに上記ステップS125で求めたステアリングの変化量dXを乗算した値が0より大きいか否かを判定する。本ステップは、左旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentXが中立位置を通過して右旋回に入ってしまっているか否か、或いは、右旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentXが中立位置を通過して左旋回に入ってしまっているか否かを判定する。
【0082】
詳しくは、左旋回されたステアリングの位置currentXは、上述したように負の値で表され、ステアリングの変化量dXは中立位置、即ち0に戻るために正の値で表される。同様に、右旋回されたステアリングの位置currentXは、上述したように正の値で表され、ステアリングの変化量dXは中立位置に戻るために負の値で表される。このように、左旋回または右旋回から中立位置に戻すまでの間、何れの場合でもステップS126で求められたステアリングの位置currentXとステップS125で求められた変化量dXとを乗算した値は負の値となる。
【0083】
一方、左旋回されたステアリングの位置currentXが変化量dXで中立位置に戻していったものの中立位置を通過して右旋回に入ってしまうと、上記ステップS126で求められたステアリングの位置currentXは正の値となる。同様に、右旋回されたステアリングの位置currentXを変化量dXで中立位置に戻していったものの中立位置を通過して左旋回に入ってしまうと、上記ステップS126で求められたステアリングの位置currentXは負の値となる。変化量dXの符号は上述した通りであり、何れの場合でも、ステップS126で求められたステアリングの位置currentXにステップS125で求められた変化量dXを乗算した値は正の値となる。従って、ステアリングの位置currentXにステアリングの変化量dXを乗算した値が0より大きいと、中立位置を通過して反対方向に旋回していると判定される。当該判定結果が真(Yes)の場合にはステップS128へ進み、偽(No)と判定された場合には、本処理を終了する。
【0084】
ステップS128では、ステアリングが中立位置を通過してしまったとして、ステアリングを中立位置、即ちステアリング舵角が0°となる位置へ戻すため、ステアリングの位置currentXに0を設定する。
このように、ロジスティック曲線を用いて、ステアリング操作に対応するキーの操作をステアリング操作として求めることによって、キーボード11を用いて仮想の車のステアリング操作を滑らかに模擬することができる。
【0085】
次に、アクセル操作について図13に示すフローチャートに基づいて以下に説明する。図13は、上述したステップS18で特定されたキーがアクセル操作に対応するキーであり、当該キーが押下されている場合のアクセル操作方法を示すフローチャートである。本フローチャートは、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。
【0086】
ステップS201では、アクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS202へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0087】
ステップS202では、前回アクセル位置を計算した時間と今回計算する時間との差分時間dTaを求める。ステップS203では、ステップS202で求めた差分時間dTa、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Taから、上記ステップS19で選択された変換曲線における積算時間(継続操作時間)Taを求め、操作時間情報記憶部334に保存する。積算時間Taは、以下の式(9)から求められる。
Ta=Ta+dTa (9)
【0088】
続くステップS204では、積算時間Taに対応するゲインGaを上記ステップS19で選択された右肩上がりのロジスティック曲線で表される変換曲線から取得する。
ステップS205では、上記ステップS202で求めた差分時間dTa及び上記ステップS204で取得したゲインGaから、変化量算出部321でアクセル位置の変化量dXaを以下の式(10)から求める。
dXa=dTa×Ga×Vmax (10)
【0089】
上記式(10)で用いる変数Vmaxは、アクセルが閉じている状態からアクセルペダルが全開するまでに要する最短時間をTminとし、アクセル位置の範囲をvalveとすると、以下の式(11)から求められる。
Vmax=valve/Tmin (11)
なお、アクセルを全開するまでに要する最短時間は、車種情報記憶部331に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【0090】
ステップS206では、運転操作情報記憶部333に記憶されている前回計算したアクセル位置currentXaと上記ステップS205で求められたアクセル位置の変化量dXaから、運転状態更新部322で今回のアクセル位置currentXaを求める。アクセル位置currentXaは、以下の式(12)から求められる。
currentXa=currentXa+dXa (12)
【0091】
ステップS207では、上記ステップS206で求められたアクセル位置currentXaが、アナログデバイスとしてのアクセルペダルが全開した位置Pmaxより大きいか否かを判定する。当該判定結果が真(Yes)の場合にはステップS208へ進む。ステップS208では、上記ステップS206で求められたアクセル位置currentXaが、アクセルが全開した位置よりも大きいとして、アクセル位置currentXaにアクセルが全開したときの位置Pmaxを設定する。なお、アクセルが全開したときの位置Pmaxは、0より大きい値である。このように求められたアクセル位置currentXaを運転操作情報記憶部333へ格納する。
【0092】
次に、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作について、図14に基づいて説明する。図14は、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作の方法を示すフローチャートである。本フローチャートは、上述したステップS27でアクセル操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図14に示すステップS224〜S226については、図13にて説明したステップS204〜S206と同様の処理であるので、共通箇所の説明は省略する。
【0093】
ステップS221では、演算部32が、サーバ通信部30にアクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽(No)の場合にはステップS222へ進む。ステップS222では、前回計算した時刻から経過した時間dTaを求め、操作時間情報記憶部334に保存する。
【0094】
ステップS223では、上記ステップS222で求めた差分時間dTa、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Taから、上記ステップS22で選択された右肩下がりのロジスティック曲線で表される変換曲線における積算時間(継続非操作時間)Taを求め、操作時間情報記憶部334に保存する。
【0095】
ステップS227では、ステップS226で求めたアクセル位置currentXaが最小値Pminより小さいか否かを判定する。本ステップでは、段階的に小さくなるアクセル位置currentXaが、アクセルが閉じている状態、即ちアクセル位置の最小値Pminより小さいか否かを判定する。
【0096】
上述したようにステップS226で求められるアクセル位置currentXaは、前回計算したアクセル位置currentXaより変化量dXaだけ小さくなる。この処理を繰り返していくとアクセル位置currentXaは、やがてアクセルが閉じているときの位置である最小値Pminを通過してしまう。従って本ステップで求められるアクセル位置currentXaが値が最小値Pminより大きい間は、アクセル位置currentXaを変化量dXaで戻していく。そしてアクセル位置currentXaが最小値Pminより小さくなると、アクセルの操作可能範囲Pmin〜Pmaxを下回っていると判定される。
【0097】
当該判定結果が真(Yes)の場合にはステップS228へ進み、偽(No)と判定された場合には、本処理を終了する。ステップS228では、アクセル位置が最小値Pminを通過してしまったとして、アクセル位置を最小値Pminへ戻すため、アクセル位置currentXaに最小位置Pminを設定する。
このように、アクセル操作に対応するキーをユーザが操作すると、ロジスティック曲線で表される変換曲線を用いてアクセル位置を段階的に変化させていくことにより、仮想の車の加速、減速を滑らかに模擬することができる。
【0098】
次に、ブレーキ操作について図15に示すフローチャートに基づいて以下に説明する。図15は、ブレーキ操作に対応するキーが押下されている場合のブレーキ操作方法を示すフローチャートである。本フローチャートは、上述したステップS21で特定されたキーに対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が所定の時間間隔で出力するタイマ通知によって行われる。
【0099】
ステップS301では、ブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真(Yes)の場合にはステップS302へ進み、当該判定結果が偽(No)の場合には、本処理を終了する。
【0100】
ステップS302では、前回ブレーキ位置を計算した時間と今回の時間との差分時間dTsを求める。ステップS303では、ステップS302で求めた差分時間dTs、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tsから、上記ステップS21で選択された変換曲線における積算時間(継続操作時間)Tsを求め、操作時間情報記憶部334に保存する。積算時間Tsは、以下の式(13)から求められる。
Ts=Ts+dTs (13)
【0101】
続くステップS304では、上記ステップS21で選択された右肩上がりのロジスティック曲線で表される変換曲線から、積算時間Tsに対応するゲインGsを取得する。
ステップS305では、上記ステップS302で求めた差分時間dTs及び上記ステップS304で取得したゲインGsから、変化量算出部321でブレーキ位置の変化量dXsを以下の式(14)から求める。
dXs=dTs×Gs×Vmax (14)
【0102】
変数Vmaxは、上述した式(9)から求められる。なお、ブレーキが操作されていない状態から踏み込まれる位置までに要する最短時間をTminとし、ブレーキ位置の取り得る範囲をvalveとする。
ブレーキを踏み込むまでに要する最短時間は、車種情報記憶部331に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【0103】
ステップS306では、運転操作情報記憶部333に記憶されている前回計算したブレーキ位置currentXsと上記ステップS305で求められたブレーキ位置の変化量dXsから、運転状態更新部322で今回のブレーキ位置currentXsを以下の式(15)から求める。
currentXs=currentXs+dXs (15)
【0104】
ステップS307では、上記ステップS306で求められたブレーキ位置currentXsが、ブレーキが踏み込まれた位置Pmaxより大きいか否かを判定する。なお、ブレーキが踏み込まれた位置Pmaxは正の値である。当該判定結果が真(Yes)の場合にはステップS308へ進む。ステップS308では、上記ステップS306で求められたブレーキ位置currentXsが、ブレーキを踏み込んだ位置よりも大きいとして、ブレーキ位置currentXsにブレーキが踏み込まれたときの位置Pmaxを設定する。求められたブレーキ位置currentXsを運転操作情報記憶部333に格納する。
【0105】
次に、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作について、図16に基づいて説明する。図16は、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作の方法を示すフローチャートである。本フローチャートは、上述したステップS29でブレーキ操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部31にあるタイマ313が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図16に示すステップS324〜S326については、図15にて説明したステップS304〜S306と同様の処理であるので説明は省略する。
【0106】
ステップS321では、演算部32が、サーバ通信部30にブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽(No)の場合にはステップS322へ進む。ステップS322では、前回計算した時刻から経過した差分時間dTsを求める。
【0107】
ステップS323では、上記ステップS322で求めた差分時間dTs、及び操作時間情報記憶部334に保存されている前回計算したときの積算時間Tsから、上記ステップS30で選択された右肩下がりのロジスティック曲線で表される変換曲線における経過時間(継続非操作時間)Tsを求め、操作時間情報記憶部334に保存する。
【0108】
ステップS327では、ステップS326で求めたブレーキ位置currentXsが、ブレーキ位置の最小値Pminより小さいか否かを判定する。本ステップは、段階的に小さくなるブレーキ位置currentXsが、ブレーキ位置の最小値Pminより小さいか否かを判定する。
【0109】
上述したようにステップS326で求められるブレーキ位置currentXsは、前回計算したブレーキ位置currentXsより変化量dXsだけ小さくなる。この処理を繰り返していくとブレーキ位置currentXsは、やがてブレーキが操作されていないときの位置である最小値Pminを通過してしまう。従って本ステップで求められる値が最小値Pminである間は、ブレーキ位置currentXsを変化量dXsで戻していく。そしてブレーキ位置currentXsが最小値Pminより小さくなるとブレーキの操作可能範囲Pmin〜Pmaxを下回っていると判定される。
【0110】
当該判定結果が真(Yes)の場合にはステップS328へ進み、偽(No)と判定された場合には、本処理を終了する。ステップS328では、ブレーキ位置が最小値Pminを通過してしまったとして、ブレーキ位置を最小値Pminへ戻すため、ブレーキ位置currentXsに最小値Pminを設定する。
【0111】
このように、ブレーキ操作に対応するキーをユーザが操作すると、キー操作に対応する変化量をロジスティック曲線で表される変換曲線から求めることで、ブレーキ位置を段階的に変化させることができ、滑らかなブレーキ操作を模擬することができる。
【0112】
動画生成部311は、上述したフローチャートにより求めたステアリングの位置、アクセル位置、ブレーキ位置の情報に基づいて動画を生成し、端末装置2へ送信する。この処理は、タイマ313から所定の周期で通知される毎に、操作されるキーに応じて行われる。ユーザは、動画再生部202で再生されて表示装置10に表示される動画を介して、ユーザの操作に応じた仮想の車の運転状態を見ることができる。
【0113】
ここで、仮想の車の運転状態を維持する場合について説明する。例として、ステアリングの位置を維持する場合には、ユーザは対応するキーを押下したり離したりする操作を繰り返す。これは、例えばステアリング操作に対応するキーを押下する積算時間T及び離してからの積算時間Tに対する各操作の位置の変化量dXはロジスティック曲線で求められ、積算時間Tが短いほど、変化量dXは小さい。従って、仮想の車のふらつきが抑制され、ユーザが運転操作に感じる違和感をなくすことができる。これは、アクセル操作、ブレーキ操作についても同様である。
【0114】
このように、本実施例では、仮想の車の運転操作、即ちステアリング操作、アクセル操作、ブレーキ操作にそれぞれ割り当てられたキーボード11の所定のキーをユーザが操作すると、演算部32で操作されたキーに対応する変換曲線を選択し、所定の更新周期で、当該変換曲線から各操作に応じた変化量を求め、当該変化量で前回求めた位置を更新して今回の位置を求める。
これにより、特定の操作用デバイスがなくても、キーボード11を用いて端末装置2から仮想の車の運転操作を行うことができる。
【0115】
<第1実施例の変形例>
上記第1実施例の変形例について以下に説明する。この変形例では、演算部32に、さらに位置補正部424を備えた点が異なっており、その他の構成については共通しているので説明を省略する。
【0116】
図17は、運転シミュレーション装置1の変形例の概略を示すブロック図である。演算部32は、さらに位置補正部(ステアリング中立位置補正手段、ステアリング変化量補正手段)324を備えている。位置補正部324は、運転状態更新部322で求められるステアリングの位置が中立位置付近にある場合に、ステアリングの変化量を低減する補正、及び車速に応じてステアリングの変化量を低減する補正をそれぞれ行うものである。
【0117】
図18は、図11または図12で求めたステアリングの位置currentXを補正する方法を示すフローチャートである。本フローチャートに示した手順は、図11のステップS110または図12のステップS128に続いて実行される手順である。以下に、図18に示すフローチャートに基づいて、詳しく説明する。
【0118】
ステップS131では、求めたステアリングの位置currentXが、中立位置から左方向または右方向における最大舵角に所定率を乗算して求めた舵角rより大きいか否かを判定する。当該判定結果が偽(No)の場合には、ステアリングの位置currentXが舵角r以下であるとしてステップS132へ進む。ステップS132では、位置補正部324で図6に示したような補正曲線を曲線情報記憶部332から取得し、ステアリングの位置currentXに対応する操舵角係数fstを求め、以下の式(16)でステアリングの位置currentXを補正する。
correctX=currentX×fst (16)
【0119】
一方、上記ステップS131で真(Yes)と判定された場合には、ステップS133へ進む。ステップS133では、仮想の車の車速に応じてステアリングの位置を補正する。本ステップで用いるステアリングの位置は、上記ステップS131から本ステップを行う場合にはcurrentX、上記ステップS132から本ステップを行う場合にはcorrectXであるが、本ステップではステアリングの位置をcurrentXとして説明する。位置補正部324では、操作情報記憶部333から仮想の車の車速を取得し、曲線情報記憶部332から図7に示したような補正曲線を取得する。取得した車速から車速係数vを求め、この補正曲線から車速係数vに対応する補正係数fspを求め、以下の式(17)でステアリングの位置を補正し、最終的なステアリングの位置finalXを求める。
finalX=currentX×fsp (17)
【0120】
このように、ステアリングの位置や車速に応じてステアリングの位置currentXを補正することによって、車両のふらつきを抑制したり車速に応じて仮想の車の移動量を変化させたりすることができる。従って、ユーザが行うステアリングの操作性を違和感なく再現することができる。なお、この変形例では、ステップS131のステアリングの位置が中立位置にある場合の補正から行っているが、ステップS133に示した車速に応じたステアリングの位置の補正から行うようにしてもよい。また、ステップS131、S132と、ステップS133とのいずれか一方の補正を行うようにしてもよい。
【0121】
<第2実施例>
次に、本発明に係る第2実施例について説明する。本実施例の運転シミュレーション装置は、端末装置のみの構成とした点が相違しており、その他の構成については共通しているので説明は省略する。
【0122】
図19は、本発明の第2実施例に係る運転シミュレーション装置51の概略構成図である。運転シミュレーション装置51は端末装置52からなる。端末装置52は、表示装置60、キーボード61、処理部71、演算部72、及び記憶部73を備えている。処理部71は、キー検出部711、動画再生部712、動画生成部713、画面生成部714、タイマ715、及び演算部72を含む。
【0123】
キー検出部711は、キーボード61のキー操作を検出し、演算部72へキー操作情報を出力する。演算部72は、タイマ715から所定の周期で信号が通知される度に、信号キー操作に応じて仮想の車の運転操作を処理する。動画生成部713は、演算部72で処理された仮想の車の運転操作情報に基づいて動画を生成する。動画再生部712は、動画生成部713で生成された動画を再生して表示装置60に表示する。画面生成部714は、ユーザの要求に応じ、記憶部73から取得した情報に基づいて、パラメータを設定する設定画面を生成して表示装置60に表示する。
【0124】
このように、本実施例では、キーボード61のキー操作に応じて、所定の周期で変換曲線に基づき演算部72で仮想の車の運転状態を求め、求めた運転状態を動画生成部713で生成し、表示装置60に表示させる。これにより、上記第1実施例と同様の効果を得ることができる。
【0125】
以上で実施形態の説明を終えるが、本発明は上述した実施形態に限定されるものではない。
例えば、上記第1実施例の変形例で述べたように、上記第2実施例でも上記第1実施例と同様にステアリングの位置補正を行うようにしてもよい。
【0126】
また、上記第1実施例では、ステアリングの操作に対応するキーを特定して設定した変数directionを用いて変数dXを求めたが、ステアリングの右方向への操作、左方向への操作にそれぞれ対応した変換曲線を予め準備し、その変換曲線を上述したステップS15、S16、S24、S25に代えて選択するようにしてもよい。
また、上記各実施例のステアリング操作、アクセル操作、ブレーキ操作を行うためのプログラムの処理を図10〜図16、図18にフローチャートで示したが、このプログラムを格納した記憶媒体も本発明の対象となり得る。
【符号の説明】
【0127】
1、51 運転シミュレーション装置
2、52 端末装置
3 サーバ装置
30 サーバ通信部(動画送信手段)
311、712 動画生成部
313、715 タイマ
322、722 運転状態更新部(運転操作状態更新手段)
323、723 操作時間更新部(継続操作時間更新手段、継続非操作時間更新手段)
333、733 操作情報記憶部(運転操作状態記憶手段)
334、734 操作時間情報記憶部(継続操作時間記憶手段、継続非操作時間記憶手段)
【特許請求の範囲】
【請求項1】
キーボード、表示装置を含む端末装置と、
ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、
前記サーバ装置は、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、
前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする運転シミュレーション装置。
【請求項2】
前記第1変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項1に記載の運転シミュレーション装置。
【請求項3】
前記サーバ装置は、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段をさらに含み、
前記運転操作状態更新手段は、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換するための予め設定された第2変換曲線をさらに含み、前記更新周期で、前記第2変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新することを特徴とする請求項1または2に記載の運転シミュレーション装置。
【請求項4】
前記第2変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項3に記載の運転シミュレーション装置。
【請求項5】
前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする請求項1乃至4のいずれかに記載の運転シミュレーション装置。
【請求項6】
前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする請求項1乃至5のいずれかに記載の運転シミュレーション装置。
【請求項7】
キーボードと、
表示装置と、
制御装置と、を備え、
前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、
前記動画データを再生して前記表示装置に表示する動画再生手段と、
を含むことを特徴とする運転シミュレーション装置。
【請求項8】
仮想の車の運転状態を記憶する運転操作状態記憶手段と、
端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、
を備えるサーバ装置。
【請求項9】
キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、
仮想の車の運転状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、
として機能させるためのプログラム。
【請求項10】
キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
前記更新周期で、予め設定された第1の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、
前記動画データを再生して前記表示装置に表示する動画再生手段、
として機能させるためのプログラム。
【請求項1】
キーボード、表示装置を含む端末装置と、
ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、
前記サーバ装置は、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、
前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする運転シミュレーション装置。
【請求項2】
前記第1変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項1に記載の運転シミュレーション装置。
【請求項3】
前記サーバ装置は、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段をさらに含み、
前記運転操作状態更新手段は、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換するための予め設定された第2変換曲線をさらに含み、前記更新周期で、前記第2変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新することを特徴とする請求項1または2に記載の運転シミュレーション装置。
【請求項4】
前記第2変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項3に記載の運転シミュレーション装置。
【請求項5】
前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする請求項1乃至4のいずれかに記載の運転シミュレーション装置。
【請求項6】
前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする請求項1乃至5のいずれかに記載の運転シミュレーション装置。
【請求項7】
キーボードと、
表示装置と、
制御装置と、を備え、
前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、
前記動画データを再生して前記表示装置に表示する動画再生手段と、
を含むことを特徴とする運転シミュレーション装置。
【請求項8】
仮想の車の運転状態を記憶する運転操作状態記憶手段と、
端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
一定の更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、
を備えるサーバ装置。
【請求項9】
キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、
仮想の車の運転状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
前記更新周期で、予め設定された第1変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、
として機能させるためのプログラム。
【請求項10】
キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
前記更新周期で、予め設定された第1の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、
前記動画データを再生して前記表示装置に表示する動画再生手段、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図6】
【図7】
【図10−1】
【図10−2】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図4】
【図5】
【図8】
【図9】
【図2】
【図3】
【図6】
【図7】
【図10−1】
【図10−2】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図4】
【図5】
【図8】
【図9】
【公開番号】特開2013−4009(P2013−4009A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−137288(P2011−137288)
【出願日】平成23年6月21日(2011.6.21)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、経済産業省、産業技術研究開発委託事業(次世代高信頼・省エネ型IT基盤技術開発事業(クラウドコンピューティングによる合意形成支援仮想3次元空間の利用サービス))、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(506430325)株式会社フォーラムエイト (5)
【Fターム(参考)】
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願日】平成23年6月21日(2011.6.21)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、経済産業省、産業技術研究開発委託事業(次世代高信頼・省エネ型IT基盤技術開発事業(クラウドコンピューティングによる合意形成支援仮想3次元空間の利用サービス))、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(506430325)株式会社フォーラムエイト (5)
【Fターム(参考)】
[ Back to top ]