(57)【特許請求の範囲】
【請求項１】
プログラムされたコンピュータによって独立移動体の速度から従属移動体の速度を制御する移動体速度制御装置において、
前記独立移動体が同期開始地点を通過した時点から前記独立移動体が第１同期終了地点に向かって移動する積算距離と、前記独立移動体が前記同期開始地点を通過した時点から前記従属移動体が第２同期終了地点に向かって移動する積算距離との相対積算距離を求める第１の手段と、
前記独立移動体と前記従属移動体との相対速度を求める第２の手段と、
前記従属移動体の速度を、前記第１の手段にて求めた前記相対積算距離と、前記第２の手段にて求めた前記相対速度に基づき、フィードバック制御を用いて決定する第３の手段とを備え、
前記第３の手段は、前記独立移動体が前記同期開始地点を通過した時点から前記独立移動体が前記第１同期終了地点に到達する間において前記フィードバック制御を行うことを特徴とする移動体速度制御装置。
【請求項２】
請求項１記載の移動体速度制御装置において、
前記第３の手段は、前記独立移動体と前記従属移動体との前記相対積算距離が０となるように、前記従属移動体の速度をフィードバック制御を用いて決定することを特徴とする移動体速度制御装置。
【請求項３】
請求項１記載の移動体速度制御装置において、
前記第３の手段は、前記独立移動体と前記従属移動体との前記相対積算距離が０以外となるように、前記従属移動体の速度をフィードバック制御を用いて決定することを特徴とする移動体速度制御装置。
【請求項４】
請求項１〜３のいずれか１項に記載の移動体速度制御装置において、
前記第３の手段は、前記相対積算距離を制御変数とし、従属移動体の速度を操作変数とするＰＤ制御を行うことを特徴とする移動体速度制御装置。
【請求項５】
請求項４記載の移動体速度制御装置において、
前記第３の手段は、前記制御変数を予め定められた相対積算距離の設定値とするために、相対積算距離と設定値の偏差に対し比例制御と微分制御を行って、速度を決定する係数を求めるステップと、
予め定められた前記従属移動体の加速度と前記速度を決定する係数から加減速速度を求めるステップと、
前記従属移動体の速度と前記加減速速度から前記従属移動体の速度を求めるステップとを有することを特徴とする移動体速度制御装置。
【請求項６】
請求項１〜５のいずれか１項に記載の移動体速度制御装置において、
前記第２の手段は、前記独立移動体の速度と前記従属移動体の速度との差を求める手段であることを特徴とする移動体速度制御装置。
【請求項７】
請求項１〜６のいずれか１項に記載の移動体速度制御装置において、
前記第１の手段は、予め定められた前記独立移動体の走行距離と予め定められた前記従属移動体の走行距離から求まるスケールファクターを演算する手段と、
前記スケールファクターを用いて相対積算距離を求める手段とを有し、
前記第２の手段は、前記スケールファクターを用いて相対速度を求める手段を有することを特徴とする移動体速度制御装置。
【請求項８】
請求項１〜３のいずれか１項に記載の移動体速度制御装置において、
前記第３の手段は、前記相対積算距離を制御変数とし、従属移動体の速度を操作変数とするＰＩＤ制御であることを特徴とする移動体速度制御装置。
【請求項９】
請求項８記載の移動体速度制御装置において、
前記第１の手段、第２の手段及び第３の手段に加えて、
予め定められた単位時間における前記独立移動体の移動距離と、予め定められた単位時間における前記従属移動体の移動距離との相対移動距離を求める第４の手段を備えたことを特徴とする移動体速度制御装置。
【請求項１０】
請求項８又は９記載の移動体速度制御装置において、
前記第３の手段は、前記制御変数を予め定められた相対積算距離の設定値とするために、相対積算距離と設定値の偏差に対し比例制御、微分制御及び積分制御を行って、速度を決定する係数を求めるステップと、
予め定められた前記従属移動体の加速度と前記速度を決定する係数から加減速速度を求めるステップと、
前記従属移動体の速度と前記加減速速度から前記従属移動体の速度を求めるステップとを有することを特徴とする移動体速度制御装置。
【請求項１１】
請求項８〜１０のいずれか１項に記載の移動体速度制御装置において、
前記第２の手段は、前記独立移動体の速度と前記従属移動体の速度との差を求める手段であることを特徴とする移動体速度制御装置。
【請求項１２】
請求項９〜１１のいずれか１項に記載の移動体速度制御装置において、
前記第４の手段は、予め定められた単位時間における前記独立移動体の移動距離と予め定められた単位時間における前記従属移動体の積算距離との差を求める手段であることを特徴とする移動体速度制御装置。
【請求項１３】
請求項９〜１２のいずれか１項に記載の移動体速度制御装置において、
前記第１の手段は、予め定められた前記独立移動体の走行距離と予め定められた前記従属移動体の走行距離から求まるスケールファクターを演算する手段と、
前記スケールファクターを用いて前記相対積算距離を求める手段とを有し、
前記第２の手段は、前記スケールファクターを用いて前記相対速度を求める手段を有し、
前記第４の手段は、前記スケールファクターを用いて前記相対移動距離を求める手段を有することを特徴とする移動体速度制御装置。
【請求項１４】
入力装置に対する使用者の操作に基づいた入力情報と、仮想独立移動体と仮想従属移動体の模擬空間内の位置情報と、模擬的な背景情報をもとに、前記使用者に対して模擬視界を表示する手段を備える模擬運転装置において、
前記仮想独立移動体が同期開始地点を通過した時点から前記仮想独立移動体が第１同期終了地点に向かって移動した積算距離と、前記仮想独立移動体が前記同期開始地点を通過した時点から前記仮想従属移動体が第２同期終了地点に向かって移動した積算距離との相対積算距離を求める第１の手段と、
前記仮想独立移動体と前記仮想従属移動体との相対速度を求める第２の手段と、
前記仮想従属移動体の速度を、前記第１の手段にて求めた前記相対積算距離と、前記第２の手段にて求めた前記相対速度に基づき、フィードバック制御を用いて決定する第３の手段とを備えた移動体速度制御装置を有し、
前記第３の手段は、前記仮想独立移動体が前記同期開始地点を通過した時点から前記仮想独立移動体が前記第１同期終了地点に到達する間において前記フィードバック制御を行うことを特徴とする模擬運転装置。
【請求項１５】
請求項１４記載の模擬運転装置において、
前記仮想独立移動体と前記仮想従属移動体の表示処理を行う画像処理ブロックと、前記仮想従属移動体の速度を求める速度演算ブロックとを備え、
前記画像処理ブロックは、前記第１の手段を含み、
前記速度演算ブロックは、前記第２の手段及び前記第３の手段を有し、
前記速度演算ブロックは、前記画像処理ブロックから通知される少なくとも前記仮想独立移動体の速度情報に基づいて前記仮想従属移動体の速度を演算し、
前記画像処理ブロックは、前記速度演算ブロックから通知される速度情報に基づいて前記仮想独立移動体と前記仮想従属移動体の表示制御を行うことを特徴とする模擬運転装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、独立移動体と従属移動体とをフィードバック制御を用いて従属移動体の速度を制御する移動体速度制御装置と、該移動体速度制御装置を備えた模擬運転装置とに関する。
【０００２】
【従来の技術】
従来から、使用者が各種操作可能な模擬車両と、この模擬車両の走行状態に係る走行路を含む所望の映像を表示するＣＲＴ等を利用した表示器とを組み合わせた模擬運転装置が、遊技用として、あるいは運転教育用等として使用に供されている。
【０００３】
模擬運転装置は、使用者の訓練等に用いるため、ある地点で意図的に自車両と他車両を遭遇させて危険な場面を演出するという方法を有することは必要不可欠である。
【０００４】
そこで図３Ａに示すように、建造物の陰から車両が飛び出して、出会い頭の衝突を想定した演出や、図３Ｂに示すように、前方の路側帯に停車中の車両が急発進するという危険な場面などを演出する方法が考えられる。
【０００５】
この場合、使用者の操作内容は人により異なるため、遭遇地点で他車両を出現させるタイミングがずれてしまい、危険な場面を演出する効果が得られないことがあった。
【０００６】
そこで、特開平８−２４８８７１号公報には、自車両の移動距離に比例して他車両を移動させ、自車両に遭遇させる方法が記載されている。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記の特開平８−２４８８７１号公報に記載の方法では、自車両の移動距離を基にした単純な比例計算により、遭遇させる他車両を移動させるため、通過確認ラインの配置によっては他車両が不自然な動きとなる。
【０００８】
上記のように、車両の動きが不自然であれば、実際の道路状況における車両の動きと大きく異なることになり、使用者の運転訓練に使用するという目的は達成されない。また、車両の動きが自然であっても、遭遇のタイミングがずれると、危険な状況を演出することはできず、やはり使用者の運転訓練に使用するという目的は達成されない。
【０００９】
本発明は、この種の問題を解決するものであり、フィードバック制御を用いることで、独立移動体（例えば自車両）に遭遇させる従属移動体（例えば他車両）が実際の車両と同様に自然な動きとなることを可能とし、かつ、これらの移動体の遭遇タイミングをずれにくくすることができる移動体速度制御装置及び模擬運転装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
第１の本発明に係る移動体速度制御装置は、プログラムされたコンピュータによって独立移動体の速度から従属移動体の速度を制御する移動体速度制御装置において、前記独立移動体が同期開始地点を通過した時点から前記独立移動体が第１同期終了地点に向かって移動する積算距離と、前記独立移動体が前記同期開始地点を通過した時点から前記従属移動体が第２同期終了地点に向かって移動する積算距離との相対積算距離を求める第１の手段と、前記独立移動体と前記従属移動体との相対速度を求める第２の手段と、前記従属移動体の速度を、前記第１の手段にて求めた前記相対積算距離と、前記第２の手段にて求めた前記相対速度に基づき、フィードバック制御を用いて決定する第３の手段とを備え、前記第３の手段は、前記独立移動体が前記同期開始地点を通過した時点から前記独立移動体が前記第１同期終了地点に到達する間において前記フィードバック制御を行うことを特徴とする。
【００１１】
これにより、独立移動体と従属移動体の相対速度と、独立移動体と従属移動体の相対積算距離からフィードバック制御を用いて従属移動体の速度を決定することができる。つまり、この移動体速度制御装置を使用することで、独立移動体の移動距離の変化に対応して、従属移動体の速度や従属移動体の移動距離を制御することができる。
【００１２】
ここで、移動体とは、実体が存在する車両、鉄道、航空機、船舶、ロボットなどや、ＣＧ（Computer Graphics）上で表現される仮想的な車両、鉄道、航空機、船舶、ロボット、キャラクタなどをいう。
また、前記第３の手段は、前記独立移動体と前記従属移動体との前記相対積算距離が０となるように、前記従属移動体の速度をフィードバック制御を用いて決定するようにしてもよい。
また、前記第３の手段は、前記独立移動体と前記従属移動体との前記相対積算距離が０以外となるように、前記従属移動体の速度をフィードバック制御を用いて決定するようにしてもよい。
【００１３】
前記第３の手段としては、前記相対積算距離を制御変数とし、従属移動体の速度を操作変数とするＰＤ制御としてもよい。
【００１４】
この場合、前記第３の手段は、前記制御変数を予め定められた相対積算距離の設定値とするために、相対積算距離と設定値の偏差に対し比例制御と微分制御を行って、速度を決定する係数を求めるステップと、予め定められた前記従属移動体の加速度と前記速度を決定する係数から加減速速度を求めるステップと、前記従属移動体の速度と前記加減速速度から前記従属移動体の速度を求めるステップとを有するようにしてもよい。
【００１５】
また、前記第１の手段は、前記独立移動体の積算距離と前記従属移動体の積算距離との差を求めてもよく、前記第２の手段は、前記独立移動体の速度と前記従属移動体の速度との差を求めてもよい。
【００１６】
あるいは、前記第１の手段は、予め定められた前記独立移動体の走行距離と予め定められた前記従属移動体の走行距離から求まるスケールファクターを演算する手段と、前記スケールファクターを用いて相対積算距離を求める手段とを有し、前記第２の手段は、前記スケールファクターを用いて相対速度を求める手段を有するようにしてもよい。
【００１７】
即ち、それぞれの走行距離から求められたスケールファクターを用いて相対積算距離を求め、また、スケールファクターを用いることにより相対速度も実際の速度とは異なってくるため、スケールファクターを用いて相対速度を求める。
【００１８】
これにより、予め独立移動体と従属移動体の走行距離が定まっており、かつ、それぞれの走行距離が異なる場合において、見かけ上、走行距離を等しくしてフィードバック制御（この場合、ＰＤ制御）をすることができる。
【００１９】
一方、前記第３の手段としては、前記相対積算距離を制御変数とし、従属移動体の速度を操作変数とするＰＩＤ制御としてもよい。また、前記第１の手段、第２の手段及び第３の手段に加えて、予め定められた単位時間における前記独立移動体の移動距離と、予め定められた単位時間における前記従属移動体の移動距離との相対移動距離を求める第４の手段を備えてもよい。
【００２０】
この場合、前記第３の手段は、前記制御変数を予め定められた相対積算距離の設定値とするために、相対積算距離と設定値の偏差に対し比例制御と微分制御と積分制御を行って、速度を決定する係数を求めるステップと、予め定められた前記従属移動体の加速度と前記速度を決定する係数から加減速速度を求めるステップと、前記従属移動体の速度と前記加減速速度から前記従属移動体の速度を求めるステップとを有するようにしてもよい。
【００２１】
また、前記第１の手段において、前記独立移動体の積算距離と前記従属移動体の積算距離との差を求めてもよく、前記第２の手段において、前記独立移動体の速度と前記従属移動体の速度との差を求めてもよい。更に、前記第４の手段において、予め定められた単位時間における前記独立移動体の移動距離と予め定められた単位時間における前記従属移動体の積算距離との差を求めてもよい。
【００２２】
あるいは、前記第１の手段は、予め定められた前記独立移動体の走行距離と予め定められた前記従属移動体の走行距離から求まるスケールファクターを演算する手段と、前記スケールファクターを用いて前記相対積算距離を求める手段とを有し、前記第２の手段は、前記スケールファクターを用いて前記相対速度を求める手段を有し、前記第４の手段は、前記スケールファクターを用いて前記相対移動距離を求める手段を有するようにしてもよい。
【００２３】
これにより、予め独立移動体と従属移動体の走行距離が定まっており、かつ、それぞれの走行距離が異なる場合において、見かけ上、走行距離を等しくしてフィードバック制御（この場合、ＰＩＤ制御）をすることができる。
【００２４】
次に、第２の本発明に係る模擬運転装置は、入力装置に対する使用者の操作に基づいた入力情報と、仮想独立移動体と仮想従属移動体の模擬空間内の位置情報と、模擬的な背景情報をもとに、前記使用者に対して模擬視界を表示する手段を備える模擬運転装置において、前記仮想独立移動体が同期開始地点を通過した時点から前記仮想独立移動体が第１同期終了地点に向かって移動した積算距離と、前記仮想独立移動体が前記同期開始地点を通過した時点から前記仮想従属移動体が第２同期終了地点に向かって移動した積算距離との相対積算距離を求める第１の手段と、前記仮想独立移動体と前記仮想従属移動体との相対速度を求める第２の手段と、前記仮想従属移動体の速度を、前記第１の手段にて求めた前記相対積算距離と、前記第２の手段にて求めた前記相対速度に基づき、フィードバック制御を用いて決定する第３の手段とを備えた移動体速度制御装置を有し、前記第３の手段は、前記仮想独立移動体が前記同期開始地点を通過した時点から前記仮想独立移動体が前記第１同期終了地点に到達する間において前記フィードバック制御を行うことを特徴とする。
【００２５】
これにより、仮想独立移動体と仮想従属移動体の相対速度と、仮想独立移動体と仮想従属移動体の相対積算距離からフィードバック制御を用いて仮想従属移動体の速度を決定することができる。
【００２６】
例えば、仮想独立移動体（例えば自車両）に遭遇させる仮想従属移動体（例えば他車両）が実際の車両と同様に自然な動きとなることを可能とし、かつ、これらの移動体の遭遇タイミングをずれにくくすることができる。
【００２７】
その結果、例えばある地点で意図的に自車両と他車両を遭遇させて危険な場面を演出する際に、使用者に対して臨場感のある体験を享受させることができる。
【００２８】
ここでの仮想独立移動体及び仮想従属移動体とは、模擬空間内の独立移動体及び従属移動体を移動体速度制御装置で制御する場合、表示された模擬視界内には存在しない場合もあり得るため仮想という表現を用いた。
【００２９】
また、第２の本発明において、前記仮想独立移動体と前記仮想従属移動体の表示処理を行う画像処理ブロックと、前記仮想従属移動体の速度を求める速度演算ブロックとを備え、前記画像処理ブロックは、前記第１の手段を含み、前記速度演算ブロックは、前記第２の手段及び前記第３の手段を有し、前記速度演算ブロックは、前記画像処理ブロックから通知される少なくとも前記仮想独立移動体の速度情報に基づいて前記仮想従属移動体の速度を演算し、前記画像処理ブロックは、前記速度演算ブロックから通知される速度情報に基づいて前記仮想独立移動体と前記仮想従属移動体の表示制御を行うようにしてもよい。
【００３２】
【発明の実施の形態】
以下、本発明に係る移動体速度制御装置を有する模擬運転装置の実施の形態例（以下、単に実施の形態に係る模擬運転装置と記す）について図１〜図１４を参照しながら説明する。
【００３３】
まず、本実施の形態に係る模擬運転装置２は、図１に示すように、使用者２０が乗車され得る形状を有し、かつ、乗車した使用者２０の操作に基づく各種情報を出力する模擬車両４と、該模擬車両４からの出力情報に基づいて、使用者２０が乗車している模擬車両４に対応する仮想車両の模擬空間内での位置情報と、模擬的な背景情報をもとに、前記使用者２０に対して、模擬視界を表示するディスプレイボックス６と、模擬車両４及びディスプレイボックス６を管理・制御する制御回路２２とを有する。
【００３４】
前記ディスプレイボックス６には、使用者２０に対し模擬視界を表示するためのディスプレイ２４と、模擬車両４からの各種情報に基づいて模擬視界を構成する背景画像や仮想車両等のオブジェクトデータを保持し、制御回路２２からの情報に基づいて前記ディスプレイ２４に模擬視界を表示させるＣＧＩ発生装置（Computer generated Image）２６と、操縦操作や他車両などにより発生する音を使用者２０に伝えるためのスピーカユニット２８が備えられている。
【００３５】
模擬車両４には、図２に示すように、実車と同様に、ハンドルトルクセンサ３０、アクセル開度センサ３２、ブレーキ圧センサ（３４，３６）などの各種センサ群や、ライティングスイッチ３８、ウィンカースイッチ４０などの各種スイッチ群や、ピッチモータ４２、ステアリングモータ４４などの各種モータ群が設置されている。図２に、上述した各種センサ群、スイッチ群及びモータ群等の代表例を図示し、その説明を省略する。
【００３６】
一方、前記制御回路２２は、各種演算、判断及び制御等を行う中央処理装置としてのＣＰＵと、システムプログラム等が記憶される記憶手段としてのＲＯＭと、ワーク用等に使用される記憶手段としてのＲＡＭ等を有する。もちろん、各種センサ群やスイッチ群からの情報から、ディスプレイ２４に対する表示制御も行うようになっている。
【００３７】
制御回路２２から伝達される情報とは、基本的に模擬車両４の操縦操作に係わる現在位置データ、現在速度データ及び現在加速度データ等である。
【００３８】
ＣＧＩ発生装置２６は、制御回路２２からの前記各種データが例えばフレーム単位に入力されるに従って、予め記憶されている風景を含む走行路の映像情報を発生し、これによって、ディスプレイ２４には模擬視界が表示されることになる。
【００３９】
この模擬車両装置２において、実際にＰＤ制御で制御を行う実施の形態を図４を用いて説明し、次いで、ＰＤ制御を行うソフトウエアの一実施の形態を図５を用いて説明する。
【００４０】
図４は、想定する危険な場面を描いたものであり自車両５２と他車両５４が、出会い頭に衝突しそうな危険な場面を演出している。ここで、自車両５２とは仮想独立移動体の１つに対応し、他車両５４とは仮想従属移動体の１つに対応する。
【００４１】
まず、他車両５４には、予め最大の加速能力ａ（＞０）と減速能力ｄ（＞０）を定める。ここで、加速能力ａは予め定められた単位時間内で速度が増えた場合の速度変化の割合であり、減速能力ｄは前記単位時間で速度が減った場合の速度変化の割合の絶対値である。実際の車両には、加速能力と減速能力の限界があり、このように加速能力と減速能力を設定することにより、実際の車両により近い表現をすることが可能となる。
【００４２】
次に、自車両５２の同期開始地点６０から自車両同期終了地点６１までの自車両５２の移動距離をωmとし、他車両５４から他車両同期終了地点５９までの移動距離をωcとする。ただし、分かりやすくするため移動距離ωmとωcは等しいものとする。移動距離ωmとωcが異なる場合については後に説明する。また、ここでの同期とは、ＰＤ制御で車両を制御することをいう。
【００４３】
自車両５２が同期開始地点６０を通過すると、自車両５２が前記自車両同期開始地点６０から移動した積算距離と他車両５４が同期開始から移動した積算距離を求める。その値を自車両５２ではωmtとし、他車両５４ではωctとする。
【００４４】
また、そのとき自車両５２と他車両５４の速度を求める。その値を自車両５２ではＶmとし、他車両５４ではＶcとする。
【００４５】
このとき、ωmtとωctの差である相対積算距離をｄωtとする。
【００４６】
ｄωt＝ωmt−ωct                …（１）
この相対積算距離ｄωtはＰＤ制御における制御変数である。また今の場合、設定値を零とするため、ｄωtは偏差でもある。
【００４７】
また、ＶmとＶcの差である相対速度をｄＶとすると、ｄＶは相対積算距離ｄωtの微分要素となる。
【００４８】
ｄＶ＝Ｖm−Ｖc                    …（２）
これらｄωtとｄＶを用いて、制御変数を０とするための速度を決定する係数ｋを、比例ゲインＫpと比例係数Ｋdを用いて（３）式により求める。
【００４９】
ｋ＝ｄωt・Ｋp＋ｄＶ・Ｋd          …（３）
但し、ｋ＞１のときは、ｋ＝１とし、ｋ＜−１のときはｋ＝−１とする。
【００５０】
このｋを用いて、（４）式より他車両５４の加減速速度Ｖの値を求める。ここで加減速速度Ｖとは、次の単位時間での他車両５４の速度を決定するための値である。
【００５１】
Ｖ＝ｋ・ａ  （ｋ＞＝０）
Ｖ＝ｋ・ｄ  （ｋ＜０）              …（４）
この加減速速度Ｖを用いて、次の単位時間における他車両５４の速度ｖを次の（５）式ように制御する。
【００５２】
ｖ＝Ｖc＋Ｖ                      …（５）
このように他車両５４の速度を制御することにより、自車両５２と他車両５４の同時刻における移動距離を近づけることが可能となる。このことは、自車両５２と他車両５４を同時刻にそれぞれの遭遇地点へ移動させることが可能であることを意味しており、自車両遭遇地点５６と他車両遭遇地点５８で車両５２、５４を遭遇させ危険な状況を演出することが可能となる。
【００５３】
次にωmとωcが異なる場合、自車両５２の同期開始地点６０から自車両同期終了地点６１までの距離と、他車両５４から他車両同期終了地点５９までの距離が異なる場合、計算軸を次のように変換し上記手順を用いる。計算軸の変換は、（６）式によりスケールファクターｓを求める。
【００５４】
ｓ＝ωm／ωc                    …（６）
このｓを用いて、次の（７）式によりω’とＶ’を次のように求める。
【００５５】
ω’＝ωct・ｓ
Ｖ’＝Ｖc・ｓ                    …（７）
（７）式で求まったω’を（１）式のωctに代入し、Ｖ’を（２）式のＶcに代入することにより、（３）式と（４）式を用いて加減速速度Ｖが求まり、ωmとωcが等しい場合と同様の効果が得られる。
【００５６】
以上の手順において、比例ゲインＫpや比例係数Ｋdを変えることにより、制御応答の速さを変えたり、また、積分制御を追加してＰＩＤ制御で制御することにより、他車両を急加速や急ブレーキをする荒い運転をする車両にしたり、マイペース運転をする車両の表現が可能となり、実際の道路状況に近づけることが実現できる。
【００５７】
また、上記は制御変数である相対積算距離を０とする制御であったが、０以外の値を制御変数の設定値として定めると、自車両と他車両を設定された値の相対積算距離を保ちながら移動させることが可能である。例えば独立移動体である自車両を先行車両とし、従属移動体である他車両を後続車両というように自車両と他車両が縦に並んで走行する場合において、所望の相対積算距離に設定し、自車両の加速や減速に対して他車両の速度をフィードバック制御することにより、自車両と他車両は設定した相対積算距離を保ちながら走行することが可能となる。
【００５８】
次に、これらＰＤ制御を実現するためのソフトウエア処理について説明する。
【００５９】
図５は、上記ＰＤ制御を計算機で処理するためのソフトウエアブロック図であり、画像処理ブロック８０とタイマブロック８４とＰＤ制御ブロック８２を有する。ここでのブロック８０、８２、８４はスレッドの集合で、機能ごとに区分けされたソフトウエアにより実行される処理の一部を示す。またスレッドはメッセージを送受信する手段と、一定の処理を実行する機能を有する。また、これらのスレッドは例えばスレッド間メッセージやソケットを介するメッセージにより情報の受け渡しを行う。
【００６０】
次に、メッセージについて説明する。図６はメッセージフォーマットであり、このメッセージは送信元と送信先とメッセージ種別を有するヘッダと、複数のパラメータからなる。このパラメータの個数はメッセージ種別により異なる。
【００６１】
ヘッダ内の送信先はＯＳ（オペレーティングシステム）が、メッセージを各部へ振り分けるためのパラメータであり、ヘッダ内の送信元は、一般的に送信先がどこからのメッセージかを知るために用いられる。
【００６２】
また、メッセージ種別は、送信先がどの処理を行うかを判定するために用いられる。また、メモリを確保するという表現は、ＲＡＭに用意されたフリーメモリ領域の一部を確保する、という意味で用いる。
【００６３】
この確保したメモリは、ＯＳにより管理されており、メモリの解放をＯＳに指示することにより、このメモリ領域は解放される。さらに、この確保したメモリ領域は、確保されたときに、予め０で初期化されていることとする。
【００６４】
次に、図５〜図８を用いて各ブロックについて説明する。まず、画像処理ブロック８０は、画像表示装置に表示するために、模擬３次元空間内の背景や車両の位置を保持し、更新する手段と、画像表示装置へ画像を表示するための情報を送信する手段を有するブロックである。
【００６５】
ＰＤ制御で車両を制御する場合、自車両５２と他車両５４の現在の速度と車両ＩＤなどを有するＰＤ制御開始メッセージ６２をＰＤ制御ブロック８２へ送信する。また、ＰＤ制御開始メッセージ６２の送信と同時に、タイマブロック８４へ車両ＩＤとタイムアウト時間を有するタイマ開始メッセージ６４を送信する。
【００６６】
次に、画像処理ブロック８０は、タイムアウトメッセージ６６をタイマブロック８４より受信すると、現在の自車両５２の速度を有する速度通知メッセージ６８をＰＤ制御ブロック８２へ送信する。この速度通知メッセージ６８に対して、ＰＤ制御ブロック８２から送信される、制御する車両ＩＤとその車両の速度情報を有するＰＤ制御メッセージ７０を受信し、指定された車両ＩＤに対する車両の速度を制御する。
【００６７】
ＰＤ制御を終了する場合は、自車両５２と他車両５４の車両ＩＤを有するＰＤ制御終了メッセージ７２を、ＰＤ制御ブロック８２へ送信し、車両ＩＤを有するタイマ終了メッセージ７４をタイマブロック８４へ送信する。
【００６８】
次に、タイマブロック８４について説明する。タイマブロック８４は、時間を計測する手段と、車両ＩＤとタイムアウト時間などのタイマ構造体７６の構造を有するメモリを確保する手段を有するスレッドである。なお、時間を計測する手段はハードウェアからの割り込みによる。以下、タイマ構造体７６の構造を有するメモリのことを単にタイマ構造体とする。
【００６９】
タイマブロック８４は、画像処理ブロック８０より、車両ＩＤとタイムアウト時間を有するタイマ開始メッセージ６４を受信し、その指定されたタイムアウト時間ごとに、車両ＩＤを画像処理ブロック８０へタイムアウトメッセージ６６を送信する。このタイムアウトメッセージ６６は画像処理ブロック８０からの車両ＩＤを指定されたタイマ終了メッセージ７４により送信を終了する。
【００７０】
次に、ＰＤ制御ブロック８２について説明する。ＰＤ制御ブロック８２とは、前記ＰＤ制御の計算手段と、車両ＩＤとその車両の現在の速度、最大加減速度、積算距離などのＰＤ構造体７８の構造を有するメモリを確保する手段を有するスレッドであって、画像処理ブロック８０からのＰＤ制御開始メッセージ６２の受信により、ＰＤ制御開始メッセージ６２のパラメータから、車両ＩＤとその車両の現在の速度、最大加速度、最大減速度、単位時間などを保持する。以下、ＰＤ構造体７８の構造を有するメモリのことを単にＰＤ構造体とする。
【００７１】
ＰＤ制御ブロック８２は、速度通知メッセージ６８を受信すると、ＰＤ構造体７８と速度通知メッセージ６８の速度パラメータから、他車両５４の速度をＰＤ制御により計算し、画像表示部へ車両ＩＤとその車両の速度を有するＰＤ制御メッセージ７０を送信する。
【００７２】
次に、各ブロックの処理をシーケンス図を用いて説明する。シーケンス図とは、各ブロック間メッセージの流れを時系列で描いた図であり、図の下方向のメッセージほど時間的に後になることを示している。
【００７３】
図１０は、ＰＤ制御を実行する場合のシーケンス図であり、図１０中の矢印は該矢印が指すブロックへ、矢印の上に記載されたメッセージが送信されることを示している。また、図１０中、四角内に記載されたメッセージは、実行される処理概要を示している。
【００７４】
また、図１０における処理内容であるが、ＰＤ制御の開始とＰＤ制御による速度制御を２回行い、ＰＤ制御を終了している内容となっている。以下、詳細について説明する。
【００７５】
最初に、画像処理ブロック８０はＰＤ制御を実行するために、ＰＤ制御ブロック８２へＰＤ制御開始メッセージ６２と、タイマブロック８４へタイマ開始メッセージ６４を送信する。ＰＤ制御開始メッセージ６２を受信したＰＤ制御ブロック８２は、ＰＤ制御開始メッセージ６２内のパラメータを、ＰＤ構造体に確保し、そのメモリに保持する。
【００７６】
タイマ開始メッセージ６４を受信したタイマブロック８４は、タイマ開始メッセージ６４内のパラメータをタイマ構造体に保持してからタイマ計測を開始する。
【００７７】
タイマブロック８４は、タイマ計測により、タイムアウトになると画像処理ブロック８０へタイムアウトメッセージ６６を送信する。タイムアウトメッセージ６６を受信した画像処理部は、速度通知メッセージ６８をＰＤ制御ブロック８２へ送信する。
【００７８】
速度通知メッセージ６８を受信したＰＤ制御ブロック８２はＰＤ構造体７８を参照し、ＰＤ制御計算を実行し、求められた速度をＰＤ制御メッセージ７０で画像処理ブロック８０へ送信する。
【００７９】
ＰＤ制御メッセージ７０を受信した画像処理ブロック８０は、他車両５４の速度を、受信した速度にする。タイムアウトメッセージ６６から始まる一連の処理を、ＰＤ制御を終了するまで繰り返す。
【００８０】
ＰＤ処理を終了するには、画像処理ブロック８０が、タイマブロック８４にタイマ終了メッセージ７４と、ＰＤ制御ブロック８２にＰＤ制御終了メッセージ７２を送信する。タイマ終了メッセージ７４を受信したタイマブロック８４はタイマ計測を終了し、タイマ開始メッセージ６４受信時に確保したタイマ構造体を解放する。ＰＤ制御終了メッセージ７２を受信したＰＤ制御ブロック８２は、ＰＤ制御計算を終了し、タイマ開始メッセージ６４を受信時に確保したＰＤ構造体を解放する。
【００８１】
次に、それぞれのブロックによる処理の流れをフローチャートを参照しながら説明する。
【００８２】
まず、図１１に示されている画像処理ブロック８０のフローチャートについて説明する。画像処理ブロック８０が受信するメッセージは、タイムアウトメッセージ６６、ＰＤ制御メッセージ７０の２種類であり、送信するメッセージは、タイマ開始メッセージ６４、タイマ終了メッセージ７４、ＰＤ制御開始メッセージ６２、ＰＤ制御終了メッセージ７２の４種類である。
【００８３】
また、画像処理ブロック８０は、ＰＤ制御中であるか否かと、車両の走行位置がＰＤ制御区間であるか否かという４通りの状態を持つ。これらの状態はメッセージを受信しなかった場合に常に監視される。なおＰＤ制御区間とは、図４の同期開始地点６０から自車両同期終了地点６１までの区間を示す。
【００８４】
以下、４種類の受信メッセージごとに画像処理ブロック８０の処理について、説明する。まず、ステップＳ１００でタイムアウトメッセージ６６を受信した場合は、ＰＤ制御ブロック８２にＰＤ制御で求められる他車両５４の速度を計算させるため、自車両５２の速度データをステップＳ１０１でＰＤ制御ブロック８２へ送信し、処理を終了する。
【００８５】
前記ステップＳ１００において、ＰＤ制御メッセージ７０で受信した速度データは、他車両５４の速度データであり、ステップＳ１０２において、他車両５４の速度を受信した速度データで更新し、処理を終了する。
【００８６】
前記ステップＳ１００において、メッセージを受信しなかった場合は、ステップＳ１０３において、自車両５２がＰＤ制御区間に入っているかどうかの判定が行われる。この分岐の結果に関わらず、ステップＳ１０４において、ＰＤ制御中かどうかの判定が行われる。これらの判定により、４通りに分岐されるが、以下に示すように、そのうち２通りは、そのまま終了し、残りの２通りは処理が存在する。
【００８７】
処理が存在する分岐の１つの条件は、ＰＤ制御区間かつＰＤ非制御中の場合で、そのときはＰＤ制御を行わなければならないため、ステップＳ１０５において、ＰＤ制御ブロック８２へＰＤ制御開始メッセージ６２を送信し、タイマブロック８４へタイマ開始メッセージ６４を送信する。これにより、このスレッドの状態はＰＤ制御中に遷移する。
【００８８】
処理が存在する分岐のもう１つの条件は、ＰＤ非制御区間かつＰＤ制御中の場合で、そのときはＰＤ制御を終了しなければならないため、ステップＳ１０６においてＰＤ制御ブロック８２へＰＤ制御終了メッセージ７２を送信し、ステップＳ１０７において、タイマブロック８４へタイマ終了メッセージ７４を送信する。これにより、このスレッドの状態はＰＤ非制御中に遷移される。
【００８９】
次に、図１２に示されているＰＤ制御ブロック８２のフローチャートについて説明する。ＰＤ制御ブロック８２が受信するメッセージは、ＰＤ制御開始メッセージ６２、ＰＤ制御終了メッセージ７２、速度通知メッセージ６８の３種類であり、送信するメッセージは、ＰＤ制御メッセージ７０の１種類である。
【００９０】
ここで、ＰＤ制御ブロック８２の処理について、前記３種類の受信メッセージごとに説明すると、まず、ステップＳ１１０においてＰＤ制御開始メッセージ６２を受信した場合は、ステップＳ１１１においてＰＤ制御開始メッセージ６２内のデータをＰＤ構造体７８に保持して終了する。
【００９１】
一方、速度通知メッセージ６８を受信した場合は、ステップＳ１１２においてＰＤ制御計算部分の処理に入る。ＰＤ制御計算部分の処理は、まず、図１３のステップＳ１２０において、ＰＤ制御計算で一時的に使用される変数をスタック領域に確保する。スタック領域に確保することは、Ｃ言語でいうとローカル変数として宣言することである。
【００９２】
その後、ステップＳ１２１において、速度通知メッセージ６８の速度パラメータを、スタック領域の変数Ｖ0に代入した後、ステップＳ１２２において、自車両５２と他車両５４の移動積算距離の計算を行う。ここでの計算は、ＰＤ構造体７８に保持している積算距離ωmtとωctに、同じＰＤ構造体７８に保持している自車両５２と他車両５４の速度と単位時間から求まる距離を加えた値を再びωmtとωctに代入する処理である。
【００９３】
次に、ステップＳ１２３において、前記ステップＳ１２２で求められた、ωmtとωctの差を求めスタック領域の変数ｄωtに代入した後、次のステップＳ１２４において、ＰＤ構造体７８に保持されている、ＶmとＶcの差を求めスタック領域の変数ｄＶに代入する。
【００９４】
その後、ステップＳ１２５において、前記ＰＤ構造体７８に保持されているＫp、Ｋdと、前記ステップＳ１２３、ステップＳ１２４で求められたｄωtとｄＶから係数ｋの値を計算し、スタック領域の変数ｋに代入する。
【００９５】
次のステップＳ１２６の分岐は、ｋの絶対値を１以下にするための処理であり、ｋ＞１の時は、ｋ＝１とし、ｋ＜−１のときはｋ＝−１にする。
【００９６】
更に、ステップＳ１２７の分岐は、ｋの符号により、減速か加速かを判断し、Ｖの値を定める処理である。ｋが非負の時は、加速であり、Ｖにｋと最大加速能力ａの積を代入し、ｋが負の時は、減速であり、Ｖにｋと最大減速能力ｄの積を代入する。
【００９７】
そして、次のステップＳ１２８において、他車両５４の速度を決定する。新たな他車両５４の速度ｖは、ＰＤ構造体に保持されている他車両５４の速度ＶcにステップＳ１２７で求められたＶを加えることにより得られる。
【００９８】
その後、ステップＳ１２９において、前記ステップＳ１２８で求められた他車両５４の速度ｖをＰＤ制御メッセージ７０で画像処理ブロック８０へ送信し、次いで、ステップＳ１３０において、ＰＤ構造体７８の更新を行い、速度通知メッセージ６８で通知された自車両５２の速度とステップＳ１２８で求められた他車両５４の速度を更新し、ＰＤ制御計算部分の処理を終了する。
【００９９】
図１２に示すフローチャートの説明に戻り、前記ステップＳ１１０においてＰＤ制御終了メッセージ７２を受信した場合、ステップＳ１１３に進み、ＰＤ制御開始メッセージ６２受信時に確保したＰＤ構造体７８を解放して終了する。
【０１００】
次に、タイマブロック８４での処理について図１４のフローチャートを参照しながら説明する。
【０１０１】
タイマブロック８４が受信するメッセージは、タイマ開始メッセージ６４、タイマ終了メッセージ７４、ハードウェアからの割り込みによるメッセージの３種類であり、送信するメッセージは、タイムアウトメッセージ６６の１種類である。
【０１０２】
以下、３種類の受信メッセージごとにタイマブロック８４の処理についてを説明すると、まず、ステップＳ１４０でタイマ開始メッセージ６４を受信した場合、ステップＳ１４１においてタイマ開始メッセージ６４内のデータをタイマ構造体７６に保持して終了する。このタイマ構造体７６は、タイマ終了メッセージ７４を受信により、解放される。
【０１０３】
次に、前記ステップＳ１４０でハードウェアからの割り込みによるメッセージを受信した場合は、ステップＳ１４２において、タイマ構造体７６のカウンタ値をインクリメントし、次のステップＳ１４３において、前記カウンタ値とタイマ構造体７６のタイムアウト値とを比較し、カウント値がタイムアウト値以上である場合は、ステップＳ１４４において、画像処理ブロック８０へタイムアウトメッセージ６６を送信した後、ステップＳ１４５においてタイマ構造体のカウンタ値を０に初期化して終了する。一方、カウント値がタイムアウト値より小さい場合はそのまま終了する。
【０１０４】
次に、前記ステップＳ１４０でタイマ終了メッセージ７４を受信した場合は、ステップＳ１４６でタイマ開始メッセージ６４受信時に確保したタイマ構造体７６を解放し終了する。
【０１０５】
このように、本実施の形態に係る模擬運転装置２においては、ＰＤ制御やＰＩＤ制御で他車両を制御することにより、自車両の動きに合わせた他車両の自然な動きを表現することが可能となり、図４に示されているような危険な場面を演出することができる。
【０１０６】
なお、本発明に係る移動体速度制御装置及び模擬運転装置は、上述の実施の形態に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【０１０７】
【発明の効果】
上述のように、本発明に係る移動体速度制御装置及び模擬運転装置によれば、独立移動体（例えば自車両）に遭遇させる従属移動体（例えば他車両）が実際の車両と同様の自然な動きとなることを可能とし、かつ、これらの移動体の遭遇タイミングをずれにくくすることができる。
【図面の簡単な説明】
【図１】本実施の形態に係る模擬運転装置の側面図である。
【図２】図１に示す模擬運転装置の回路構成ブロック図である。
【図３】図３Ａは、出会い頭の衝突を演出する様子を描いた図であり、図３Ｂは、停車中の車両の急発進による衝突を演出する様子を描いた図である。
【図４】本実施の形態に係るＰＤ制御を説明するための図である。
【図５】ＰＤ制御を処理するためのソフトウエアブロック図である。
【図６】スレッド間メッセージフォーマットを示す図である。
【図７】ＰＤ制御開始、タイマ開始、タイムアウトのメッセージフォーマットを示す図である。
【図８】速度通知、ＰＤ制御、ＰＤ制御終了、タイマ終了のメッセージフォーマットを示す図である。
【図９】図９Ａは、タイマ構造体を示す説明図であり、図９Ｂは、ＰＤ構造体を示す説明図である。
【図１０】ＰＤ制御のシーケンス図である。
【図１１】画像処理ブロックのフローチャートである。
【図１２】ＰＤ制御ブロックのフローチャートである。
【図１３】ＰＤ制御のフローチャートである。
【図１４】タイマブロックのフローチャートである。
【符号の説明】
２…模擬運転装置                    ４…模擬車両
６…ディスプレイボックス            ２０…使用者
２２…制御回路                      ２４…ディスプレイ
５２…自車両                        ５４…他車両
５６…自車両遭遇地点                ５８…他車両遭遇地点
５９…他車両同期終了地点            ６０…同期開始地点
６１…自車両同期終了地点            ８０…画像処理ブロック
８２…ＰＤ制御ブロック              ８４…タイマブロック
【図１】
0003866932.tif 000002
【図２】
0003866932.tif 000003
【図３】
0003866932.tif 000004
【図４】
0003866932.tif 000005
【図５】
0003866932.tif 000006
【図６】
0003866932.tif 000007
【図７】
0003866932.tif 000008
【図８】
0003866932.tif 000009
【図９】
0003866932.tif 000010
【図１０】
0003866932.tif 000011
【図１１】
0003866932.tif 000012
【図１２】
0003866932.tif 000013
【図１３】
0003866932.tif 000014
【図１４】
0003866932.tif 000015