(57)【要約】  ユーザの操作等により実際のオブジェクトを移動させる場合に、そのオブジェクトに関する物理的な現象に対応すること。  制御システムは、座標を示す画像が配置されるシート上を移動する装置であって、前記シートの一部を撮影するカメラを有する移動装置を含む。制御システムは、前記ユーザの操作を取得し、前記ユーザの操作に応じて前記移動装置が走行するよう制御し（Ｓ１０６）、前記移動装置に含まれるカメラが撮影した画像に基づいて前記移動装置の位置を検出し（Ｓ１０１）、前記位置検出手段による位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定し（Ｓ１０２，Ｓ１０５）、前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順（Ｓ１０３，Ｓ１１０，Ｓ１１１）を実行する。
2020250809.tif 000002
【特許請求の範囲】
【請求項１】
座標を示す画像が配置されるシート上を移動する装置であって、前記シートの一部を撮影するカメラを有する移動装置と、
前記ユーザの操作を取得する操作取得手段と、
前記ユーザの操作に応じて前記移動装置が走行するよう制御する走行制御手段と、
前記移動装置に含まれるカメラが撮影した画像に基づいて前記移動装置の位置を検出する位置検出手段と、
前記位置検出手段による位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定する判定手段と、
前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行する実行手段と、
を含む制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記判定手段は、前記位置検出手段により検出された位置に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定する、
制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記移動装置は、前記移動装置が他の物体と衝突したか否かを検出するセンサをさらに含み、
前記判定手段は、前記センサの出力に基づいて、前記移動装置が他の物体と衝突したか否かを判定し、
前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、かつ、前記移動装置が他の物体と衝突したと判定された場合に、予め定められた手順を実行する、
制御システム。
【請求項４】
請求項３に記載の制御システムにおいて、
前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、かつ、前記移動装置が他の物体と衝突したと判定された場合に、前記移動装置を回転させ、前記移動装置が回転した後に、前記移動装置の向きがシート上の所定の方向範囲の内にあるように制御する、
制御システム。
【請求項５】
請求項３または４に記載の制御システムにおいて、
前記シートの一部を撮影するカメラを有する他の移動装置をさらに含み、
前記位置検出手段は、前記他の移動装置に含まれるカメラが撮影した画像に基づいて前記他の移動装置の位置を検出する、
制御システム。
【請求項６】
請求項５に記載の制御システムにおいて、
前記判定手段は、前記ユーザにより操作される移動装置の位置と、前記他の移動装置の位置とに基づいて、前記移動装置と前記他の移動装置とが近接するか否かを判定し、
前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、前記移動装置が他の物体と衝突したと判定され、かつ、前記移動装置と前記他の移動装置とが近接すると判定された場合に、第１の手順を実行し、前記移動装置が前記推定される移動をしないと判定され、前記移動装置が他の物体と衝突したと判定され、かつ、前記移動装置と前記他の移動装置とが近接しないと判定された場合に、前記第１の手順と異なる第２の手順を実行する、
制御システム。
【請求項７】
請求項５または６に記載の制御システムにおいて、
前記判定手段は、前記位置検出手段による前記他の移動装置の他の位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定し、
前記実行手段は、前記他の移動装置が前記推定される移動をしたと判定された場合に、前記ユーザにより操作される移動装置の位置と、前記他の移動装置の位置との近さに基づいて前記他の移動装置を移動させる、
制御システム。
【請求項８】
請求項１に記載の制御システムにおいて、
前記判定手段は、前記位置検出手段により前記移動装置の位置が検出されたか否かを判定し、
前記実行手段は、前記位置検出手段により前記移動装置の位置が検出されない場合に、前記ユーザに前記移動装置を前記シート上に配置させる指示メッセージを出力し、前記位置検出手段により最後に検出された前記移動装置の位置に基づいて前記シート上の復帰範囲を算出し、
前記実行手段は、前記指示メッセージを出力した後に、前記位置検出手段により検出される前記移動装置の位置が前記復帰範囲にない場合に、エラーメッセージを出力する、
制御システム。
【請求項９】
請求項８に記載の制御システムにおいて、
前記シート上には、複数の領域が印刷され、
前記実行手段は、前記位置検出手段により最後に検出された前記移動装置の位置に基づいて前記複数の領域のうちいずれかを復帰範囲として選択し、前記選択された復帰範囲を示す指示メッセージを出力する、
制御システム。
【請求項１０】
前記ユーザの操作を取得するステップと、
前記ユーザの操作に応じて、座標を示す画像が配置されるシートの一部を撮影するカメラを有する移動装置が前記シート上を走行するよう制御するステップと、
前記移動装置に含まれるカメラが撮影した画像に基づいて前記移動装置の位置を検出するステップと、
前記移動装置の位置の前記検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定するステップと、
前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行するステップと、
を含む制御方法。
【請求項１１】
前記ユーザの操作を取得する操作取得手段、
前記ユーザの操作に応じて、座標を示す画像が配置されるシートの一部を撮影するカメラを有する移動装置が前記シート上を走行するよう制御する走行制御手段、
前記移動装置に含まれるカメラが撮影した画像に基づく前記移動装置の位置の検出を制御する位置検出制御手段、
前記位置検出制御手段による位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定する判定手段、および、
前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行する実行手段、
としてコンピュータを機能させるためのプログラム。
【請求項１２】
座標を示す画像が配置されるシート上を走行する装置であって、それぞれが前記シートの一部を撮影するカメラを有する第１の装置および第２の装置と、
前記ユーザの操作を取得する操作取得手段と、
前記ユーザの操作に応じて前記第１の装置が走行するよう制御する第１の走行制御手段と、
前記第１の装置に含まれるカメラが撮影した画像に基づいて前記第１の装置の位置を検出し、前記第２の装置に含まれるカメラが撮影した画像に基づいて前記第２の装置の位置を検出する位置検出手段と、
前記位置検出手段により検出される、前記第１の装置の位置および前記第２の装置の位置に基づいて、前記第２の装置の移動先を決定し、前記決定された移動先に基づいて前記第２の装置の走行を制御する第２の走行制御手段と、
を含む制御システム。
【請求項１３】
請求項１２に記載の制御システムにおいて、
前記第２の装置は他の物体との衝突を検出するセンサをさらに含み、
前記第２の走行制御手段は、前記センサの信号にさらに基づいて第２の装置の走行を制御する、
制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御システム、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
例えばレースゲームのように、クルマや障害物などのオブジェクトの画像が出力され、ユーザがその画像をみて自分のオブジェクトを操作するゲームがある。ユーザが操作するオブジェクトと他のオブジェクトおよび障害物との衝突などの相互作用の有無は、プログラムによって仮想的に検出され、その検出結果は画像や音声の出力に反映される。【０００３】
特許文献１には、マット上をユーザが操作する自走デバイスが走行することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１８／０２５４６７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願発明者らは、モータのような駆動機構を含む移動装置を、ユーザの操作に基づいて移動させるゲーム、および、ユーザが操作する装置の他にプログラムにより移動する移動装置を設け、互いに競争するゲームを作成している。実物の装置を移動させる場合、実際の物理的現象を考慮する必要がある。物理的現象は、例えば、プログラムにより移動する装置およびユーザの操作する装人がその装置を別の場所に置きなおす、または転倒させることや、障害物やプログラムにより移動する他のオブジェクトとの衝突など、外部要因に起因する現象や、その移動装置の物理的な移動を含む。駆動機構の制御のみで移動装置を正確に制御することは困難なため、プログラムにより移動する移動装置およびユーザの操作する移動装置の物理的な位置関係を検出することも容易ではない。これらの物理的な現象により、ゲームとして適切な制御を行うことが難しかった。【０００６】
本発明は上記課題を鑑みてなされたものであり、その目的は、ユーザの操作等により実際のオブジェクトを移動させる場合に、物理的な現象に対応することが可能な技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明にかかる制御システムは、座標を示す画像が配置されるシート上を移動する装置であって、前記シートの一部を撮影するカメラを有する移動装置と、前記ユーザの操作を取得する操作取得手段と、前記ユーザの操作に応じて前記移動装置が走行するよう制御する走行制御手段と、前記移動装置に含まれるカメラが撮影した画像に基づいて前記移動装置の位置を検出する位置検出手段と、前記位置検出手段による位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定する判定手段と、前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行する実行手段と、を含む。【０００８】
また、本発明にかかる制御方法は、前記ユーザの操作を取得するステップと、前記ユーザの操作に応じて、座標を示す画像が配置されるシートの一部を撮影するカメラを有する移動装置が前記シート上を走行するよう制御するステップと、前記移動装置に含まれるカメラが撮影した画像に基づいて前記移動装置の位置を検出するステップと、前記移動装置の位置の前記検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定するステップと、前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行するステップと、を含む。【０００９】
また、本発明にかかるプログラムは、前記ユーザの操作を取得する操作取得手段、前記ユーザの操作に応じて、座標を示す画像が配置されるシートの一部を撮影するカメラを有する移動装置が前記シート上を走行するよう制御する走行制御手段、前記移動装置に含まれるカメラが撮影した画像に基づく前記移動装置の位置の検出を制御する位置検出制御手段、前記位置検出制御手段による位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定する判定手段、および、前記移動装置が前記推定される移動をしないと判定された場合に、予め定められた手順を実行する実行手段、としてコンピュータを機能させる。【００１０】
本発明の一形態では、前記判定手段は、前記位置検出手段により検出された位置に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定してもよい。【００１１】
本発明の一形態では、前記移動装置は、前記移動装置が他の物体と衝突したか否かを検出するセンサをさらに含み、前記判定手段は、前記センサの出力に基づいて、前記移動装置が他の物体と衝突したか否かを判定し、前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、かつ、前記移動装置が他の物体と衝突したと判定された場合に、予め定められた手順を実行してもよい。【００１２】
本発明の一形態では、前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、かつ、前記移動装置が他の物体と衝突したと判定された場合に、前記移動装置を回転させ、前記移動装置が回転した後に、前記移動装置の向きがシート上の所定の方向範囲の内にあるように制御してもよい。【００１３】
本発明の一形態では、前記シートの一部を撮影するカメラを有する他の移動装置をさらに含み、前記位置検出手段は、前記他の移動装置に含まれるカメラが撮影した画像に基づいて前記他の移動装置の位置を検出してもよい。【００１４】
本発明の一形態では、前記判定手段は、前記ユーザにより操作される移動装置の位置と、前記他の移動装置の位置とに基づいて、前記移動装置と前記他の移動装置とが近接するか否かを判定し、前記実行手段は、前記移動装置が前記推定される移動をしないと判定され、前記移動装置が他の物体と衝突したと判定され、かつ、前記移動装置と前記他の移動装置とが近接すると判定された場合に、第１の手順を実行し、前記移動装置が前記推定される移動をしないと判定され、前記移動装置が他の物体と衝突したと判定され、かつ、前記移動装置と前記他の移動装置とが近接しないと判定された場合に、前記第１の手順と異なる第２の手順を実行してもよい。【００１５】
本発明の一形態では、前記判定手段は、前記位置検出手段による前記他の移動装置の他の位置の検出に基づいて、前記移動装置が前記ユーザの操作に基づいて推定される移動をしたか否かを判定し、前記実行手段は、前記他の移動装置が前記推定される移動をしたと判定された場合に、前記ユーザにより操作される移動装置の位置と、前記他の移動装置の位置との近さに基づいて前記他の移動装置を移動させてもよい。【００１６】
本発明の一形態では、前記判定手段は、前記位置検出手段により前記移動装置の位置が検出されたか否かを判定し、前記実行手段は、前記位置検出手段により前記移動装置の位置が検出されない場合に、前記ユーザに前記移動装置を前記シート上に配置させる指示メッセージを出力し、前記位置検出手段により最後に検出された前記移動装置の位置に基づいて前記シート上の復帰範囲を算出し、前記実行手段は、前記指示メッセージを出力した後に、前記位置検出手段により検出される前記移動装置の位置が前記復帰範囲にない場合に、エラーメッセージを出力してもよい。【００１７】
本発明の一形態では、前記シート上には、複数の復帰範囲が印刷され、前記実行手段は、前記位置検出手段により最後に検出された前記移動装置の位置に基づいて前記複数の復帰範囲から復帰範囲を選択し、前記選択された復帰範囲を示す指示メッセージを出力してもよい。【００１８】
また、本発明にかかる他の制御システムは、座標を示す画像が配置されるシート上を走行する装置であって、それぞれが前記シートの一部を撮影するカメラを有する第１の装置および第２の装置と、前記ユーザの操作を取得する操作取得手段と、前記ユーザの操作に応じて前記第１の装置が走行するよう制御する第１の走行制御手段と、前記第１の装置に含まれるカメラが撮影した画像に基づいて前記第１の装置の位置を検出し、前記第２の装置に含まれるカメラが撮影した画像に基づいて前記第２の装置の位置を検出する位置検出手段と、前記位置検出手段により検出される、前記第１の装置の位置および前記第２の装置の位置に基づいて、前記第２の装置の移動先を決定し、前記決定された移動先に基づいて前記第２の装置の走行を制御する第２の走行制御手段と、を含む。【００１９】
本発明の一形態では、前記第２の装置は他の物体との衝突を検出するセンサをさらに含み、前記第２の走行制御手段は、前記センサの信号にさらに基づいて第２の装置の走行を制御してもよい。【００２０】
本発明によれば、ユーザの操作等により実際のオブジェクトを移動させる場合に、物理的な現象に対応することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態にかかる制御システムの一例を示す図である。
【図２】制御システムのハードウェア構成を示す図である。
【図３】台車の一例を示す図である。
【図４】シートの一例を示す図である。
【図５】制御システムが実現する機能を示すブロック図である。
【図６】制御システムの処理の一例を示すフロー図である。
【図７】復帰処理の一例を示すフロー図である。
【図８】被操作車の通常の走行制御処理の一例を示すフロー図である。
【図９】被制御車の通常の走行制御処理の一例を示すフロー図である。
【図１０】被制御車の制御を説明する図である。
【図１１】被制御車の走行予定経路と被操作車との関係の一例を示す図である。
【図１２】被制御車の走行予定経路と被操作車との関係の他の一例を示す図である。
【図１３】第１の衝突処理におけるスピン動作を説明する図である。
【図１４】第１の衝突処理の一例を示すフロー図である。
【図１５】シートの他の一例を示す図である
【発明を実施するための形態】
【００２２】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。本発明の実施形態では、ユーザの操作に応じて走行する移動デバイスがシートの上を走行する。
【００２３】
図１は、本発明の実施形態にかかる制御システムの一例を示す図である。本発明にかかる制御システムは、デバイス制御装置１０と、台車２０ａ，２０ｂと、コントローラ１７と、カートリッジ１８とを含む。台車２０ａ，２０ｂはカメラ２４を有する自走式の移動デバイスであり、どちらも同じ機能を有する。以下では特に区別する必要がない限り、これらの台車２０ａ，２０ｂを台車２０と記載する。デバイス制御装置１０は、無線を介して台車２０を制御する。デバイス制御装置１０は凹部３２を有し、台車２０が凹部３２にはめ込まれると、デバイス制御装置１０は台車２０を充電する。コントローラ１７はユーザによる操作を取得する入力装置であり、ケーブルによりデバイス制御装置１０に接続されている。カートリッジ１８は不揮発性メモリを内蔵する。
【００２４】
図２は、本発明の実施形態にかかる制御システムのハードウェア構成の一例を示す図である。デバイス制御装置１０は、プロセッサ１１、記憶部１２、通信部１３、入出力部１４を含む。台車２０は、プロセッサ２１、記憶部２２、通信部２３、カメラ２４、２つのモータ２５、加速度センサ２６を含む。デバイス制御装置１０は、台車２０の制御に最適化された専用の装置であってもよいし、汎用的なコンピュータであってもよい。
【００２５】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作し、通信部１３、入出力部１４などを制御する。プロセッサ２１は、記憶部２２に格納されているプログラムに従って動作し、通信部２３、カメラ２４、モータ２５などを制御する。上記プログラムは、カートリッジ１８内のフラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるが、インターネット等のネットワークを介して提供されてもよい。
【００２６】
記憶部１２は、デバイス制御装置１０に内蔵されるＤＲＡＭおよび不揮発性メモリと、カートリッジ１８内の不揮発性メモリ等によって構成されている。記憶部２２は、ＤＲＡＭおよび不揮発性メモリ等によって構成されている。記憶部１２，２２は、上記プログラムを格納する。また、記憶部１２，２２は、プロセッサ１１，２１や通信部１３，２３等から入力される情報や演算結果を格納する。
【００２７】
通信部１３，２３は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部１３，２３は、例えばBluetooth(登録商標)プロトコルに従って互いに通信する機能を有する。通信部１３，２３は、プロセッサ１１，２１の制御に基づいて、他の装置から受信した情報をプロセッサ１１，２１や記憶部１２，２２に入力し、他の装置に情報を送信する。なお、通信部１３はＬＡＮなどのネットワークを介して他の装置と通信する機能を有してもよい。
【００２８】
入出力部１４は、コントローラ１７などの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部１４は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ１１や記憶部１２に入力する。また入出力部１４は、プロセッサ１１などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【００２９】
モータ２５は、プロセッサ２１により回転方向、回転量および回転速度が制御される、いわゆるサーボモータである。２つのモータ２５のそれぞれには、１つの車輪２５４が割り当てられており、モータ２５は、割り当てられた車輪２５４を駆動する。
【００３０】
カメラ２４は、台車２０の下方を撮影するように配置され、台車２０が置かれているシート３１（図４参照）に印刷されたパターンを撮影する。本実施形態では、シート３１には赤外線の周波数領域で認識されるパターンが印刷されており、カメラ２４は、その赤外線の画像を撮影する。
【００３１】
加速度センサ２６は、台車２０にかかる加速度を計測する。加速度センサ２６は計測された加速度の値を出力する。なお、加速度センサ２６はジャイロセンサと一体であってもよい。
【００３２】
図３は、台車２０の一例を示す図である。図３は、台車２０を下からみた図である。台車２０は、電源スイッチ２５０、スイッチ２２２、２つの車輪２５４をさらに含む。
【００３３】
図４は、台車２０が配置されるシート３１の一例を示す図である。シート３１には、ユーザが視認できる画像が印刷されており、さらに、カメラ２４により撮影可能なパターンが印刷されている。
【００３４】
図４の例では、シート３１には、ドーナツ状の走行可能領域３５と、禁止領域３６と、エリア符号３７とが視認できるように印刷されている。走行可能領域３５は、台車２０の走行が可能な領域である。禁止領域３６は、シート３１上の領域のうち走行可能領域３５でない領域であり、制御システムによりこの領域を台車２０が走行しないように制御される。走行可能領域３５は図４の破線により複数の部分領域に分割されており、そのそれぞれの分割領域にはその分割領域を特定するエリア符号３７が印刷されている。図４には、シート３１上を走行する被操作車２０ｃおよび被制御車２０ｄが記載されている。被操作車２０ｃは、ユーザのステアリング操作および加減速操作に応じて走行する台車２０である。被制御車２０ｄは、現在の位置および被操作車２０ｃの位置に基づいてプログラムにより制御される台車である。
【００３５】
シート３１等に印刷されるパターンについてより詳細に説明する。シート３１上には、所定の大きさ（例えば０．２ｍｍ角）の単位パターンがマトリクス状に並んでいる。単位パターンのそれぞれは、そのパターンが配置される位置の座標が符号化された画像である。シート３１には、符号化された座標が表現することが可能な座標空間のうち、シート３１の大きさに対応する領域が割り当てられている。
【００３６】
本実施形態にかかる制御システムでは、台車２０のカメラ２４がシート３１等に印刷された単位パターンを撮影し、台車２０またはデバイス制御装置１０がその単位パターンを復号して座標を取得する。これにより、台車２０のシート３１等の上における位置が認識される。また、台車２０またはデバイス制御装置１０は、カメラ２４により撮影された画像内にある単位パターンの向きを検出することにより、台車２０の向きも算出する。
【００３７】
この制御システムでは、シート３１等に印刷されるパターンを利用することにより、ステレオカメラなどの他のデバイスを用いることなくシート３１等の上における台車２０の位置を高精度に認識することができる。
【００３８】
以下では、この制御システムの動作について説明する。図５は、制御システムが実現する機能を示すブロック図である。制御システムは、機能的に、操作取得部５１、走行制御部５２、位置検出部５３、動作判定部５４、動作処理部５５を含む。操作取得部５１、走行制御部５２、位置検出部５３、動作判定部５４、動作処理部５５は、主に、デバイス制御装置１０に含まれるプロセッサ１１が記憶部１２に格納されるプログラムを実行し、通信部１３を介して台車２０を制御することにより実現される。また、位置検出部５３および走行制御部５２などの機能の一部は、台車２０に含まれるプロセッサ２１が記憶部２２に格納されるプログラムを実行し、通信部２３を介してデバイス制御装置１０とデータをやり取りし、カメラ２４やモータ２５を制御することにより実現される。
【００３９】
操作取得部５１は、コントローラ１７から入出力部１４を介してユーザの操作を取得する。取得されるユーザの操作は、例えば、コントローラの傾き、ボタンの押下の有無、ジョグダイヤルの位置である。操作取得部５１は、これらの操作を、例えば、台車に対するステアリング操作、アクセル操作およびブレーキ操作として取得する。
【００４０】
走行制御部５２は、ユーザの操作に応じて、被操作車２０ｃが走行するよう制御する。被操作車２０ｃは台車２０のうちいずれかであり、走行制御部５２は、ユーザのステアリング操作に相当するユーザの操作に応じて被操作車２０ｃの走行する向きを変え、アクセル操作およびブレーキ操作に相当するユーザの操作に応じて走行速度を加減速する。
【００４１】
位置検出部５３は、台車２０のカメラ２４により撮影された画像から、座標が符号化されたパターンを認識する。位置検出部５３は、そのパターンが示す座標から、その台車２０の位置する座標（位置）と向きとを検出する。また、デバイス制御装置１０に含まれるプロセッサ１１は、位置検出部５３の機能の一部を実現するアプリケーションプログラムの実行により、撮影された画像に基づいて座標（位置）と向きを検出するように制御し、検出に成功した場合には、検出された座標（位置）と向きとを取得し記憶部１２に格納する。なお、画像に基づく位置および向きの検出は、台車２０により行われてもよいし、デバイス制御装置１０に含まれるプロセッサが記憶部１２に記憶されるファームウェアを実行することにより行われてもよい。
【００４２】
動作判定部５４は、位置検出部５３による位置の検出に基づいて、台車２０が走行制御部５２の制御から推定される移動をしたか否かを判定する。これは、被操作車２０ｃの場合、動作判定部５４がユーザの操作に基づいて推定される移動をしたか否かを判定することと等価である。より具体的には、動作判定部５４は、位置検出部５３により検出された位置に基づいて、台車２０が走行制御部５２の制御から推定される移動をしたか否かを判定し、また、動作判定部５４は、位置検出部５３により台車２０の位置が検出されたか否かを判定する。
【００４３】
動作処理部５５は、台車２０が推定される移動をしないと判定された場合に、予め定められた手順を実行する。
【００４４】
以下ではこの制御システムが実行する処理についてより詳細に説明する。図６は、制御システムの処理の一例を示すフロー図である。図６に示される処理は、複数の台車２０のそれぞれについて定期的に繰り返し実行される。以下では、処理の対象となる台車２０を自車と記載する。
【００４５】
はじめに、位置検出部５３は、カメラ２４により撮影された画像に基づいて、現在の自車の座標（位置）および向きの検出を実行する（ステップＳ１０１）。また、位置検出部５３は、上記検出に成功した場合には検出された位置および向きを取得する。
【００４６】
そして、動作判定部５４は、上記の検出の実行において、画像に基づいて自車の位置が検出できたか否かを判定する（ステップＳ１０２）。画像に基づいて自車の位置が検出できない場合には（ステップＳ１０２のＮ）、自車が人の手でつまみ出された、コース外に転落した、または、転倒したケースであるため、動作処理部５５は自車をシート３１上（望ましくは走行可能領域３５）へ復帰させるための復帰処理を実行する（ステップＳ１０３）。
【００４７】
ここで復帰処理の詳細について説明する。図７は、復帰処理の一例を示すフロー図である。動作処理部５５は、はじめに、カメラ２４により取得された画像から、最後に検出された座標（前回の座標）を取得する（ステップＳ２０１）。次に、最後に検出された座標に基づいて復帰領域を特定する（ステップＳ２０２）。特定される復帰領域は、台車２０を復帰させる領域であり、例えば図４において走行可能領域３５が分割された部分領域のうち１つであってよく、動作処理部５５は、最後に検出された座標を含む部分領域を復帰領域として特定してよい。なお、動作処理部５５は、最後に検出された座標を中心とする半径ｒの円形の領域を復帰領域として特定してもよい。
【００４８】
復帰領域が特定されると、動作処理部５５は特定された復帰領域を示す情報を含むメッセージ音声を出力する（ステップＳ２０３）。特定された復帰領域を示す情報は、例えば、復帰領域として特定された部分領域に印刷されるエリア符号３７であってよい。なお、メッセージは復帰領域を示す情報を含まなくてもよい。
【００４９】
そして、動作処理部５５は、位置検出部５３が自車のカメラ２４の画像から座標を検出するまで待機する（ステップＳ２０４）。位置検出部５３が座標を検出したら、動作処理部５５は、検出された座標が特定された復帰領域の内にあるか判定する（ステップＳ２０５）。検出された座標が特定された復帰領域の内にある場合には（ステップＳ２０５のＹ）、復帰できたとして処理を終了し、図６に示される処理を再び開始する。一方、検出された座標が特定された復帰領域の内にない場合には（ステップＳ２０５のＮ）、不正が行われた、または戻す場所を間違えた可能性が高いため、動作処理部５５はエラーメッセージを音声などで出力する（ステップＳ２０６）。
【００５０】
復帰領域を示す情報がメッセージとして出力されることで、ユーザは容易に台車２０を正しい領域に配置してレースを再開することが可能になる。
【００５１】
以下では図６のステップＳ１０２以降の処理を説明する。画像に基づいて自車の位置が検出できた場合には（ステップＳ１０２のＮ）、動作判定部５４は、前回の処理の際に取得された座標と、直近の走行制御部５２による自車の移動の制御とに基づいて、異常がない場合に自車が存在する座標の範囲を推定する（ステップＳ１０４）。そして動作判定部５４は、位置検出部５３により検出された座標が、推定された座標範囲の内にあるか否か判定する（ステップＳ１０５）。
【００５２】
検出された座標が、推定された座標範囲の内にある場合には（ステップＳ１０５のＹ）、自車は外部要因による移動の支障が生じていないため、走行制御部５２は通常の走行制御処理を実行する（ステップＳ１０６）。通常の走行制御処理については後述する。
【００５３】
検出された座標が、推定された座標範囲の外にある場合には（ステップＳ１０５のＹ）、動作判定部５４はさらに外部要因を分析するため以下の処理を実行する。はじめに、動作判定部５４は、自車に内蔵される加速度センサ２６の出力（加速度ベクトル）を取得する（ステップＳ１０７）。そして、動作判定部５４は加速度センサ２６より取得された加速度ベクトルの大きさが所定の閾値より大きいか否かに基づいて加速度センサ２６の出力が自車と他の物体との衝突の発生を示すか否かを判定する（ステップＳ１０８）。なお、加速度ベクトルのうち鉛直方向を除く方向の成分の大きさに基づいて衝突の発生が判定されてもよい。
【００５４】
加速度センサ２６の出力が自車と他の物体との衝突の発生を示さない場合（ステップＳ１０６のＮ）、走行制御部５２は通常の走行制御を実行する（ステップＳ１０６）。一方、加速度センサ２６の出力が自車と他の物体との衝突の発生を示す場合（ステップＳ１０６のＹ）には、動作判定部５４はさらに他の台車との衝突であるか否かを判定する（ステップＳ１０９）。自車と他の台車２０との衝突であるか否かは、単に自車と他の台車２０とが近接する（これらの間の距離が距離閾値より小さい）か否かに基づいて判定されてもよいし、さらに他の台車２０の移動ベクトルが自車に近づく方向を向いているかに基づいて判定されてもよい。
【００５５】
他の台車２０との衝突であると判定された場合には（ステップＳ１０９のＹ）、動作処理部５５は第１の衝突処理を実行し（ステップＳ１１０）、他の台車２０との衝突でないと判定された場合には（ステップＳ１０９のＮ）、動作処理部５５は第２の衝突処理を実行する（ステップＳ１１１）。第１の衝突処理および第２の衝突処理の詳細については後述する。
【００５６】
なお、動作判定部５４は、ステップＳ１０４およびＳ１０５の処理と異なる方法で、自車が推定される移動をしたか判定してもよい。例えば、動作判定部５４は、直近の走行制御部５２による自車の移動の制御に基づいて推定移動ベクトルを算出し、現在の座標と前回の処理の際に取得された座標とから実体移動ベクトルを算出し、さらに、推定移動ベクトルと実体移動ベクトルの差が許容範囲内にあるか否かを判定してもよい。また、動作判定部５４は、前回の処理の際に取得された座標と、直近の走行制御部５２による自車の移動の制御とに基づいて、異常がない場合に自車が存在する座標を推定し、動作判定部５４は推定された座標と検出された現在の座標との差が許容範囲内にあるか否かを判定してもよい。
【００５７】
次に、通常の走行制御処理について説明する。通常の走行制御処理は、ユーザ操作により走行する被操作車２０ｃとプログラム制御の被制御車２０ｄとで互いに異なる。
【００５８】
図８は、被操作車２０ｃの通常の走行制御処理の一例を示すフロー図である。自車が被操作車２０ｃである場合には、操作取得部５１はユーザの操作（ステアリング操作および加減速操作）を取得し（ステップＳ３０１）、走行制御部５２は、取得されたユーザの操作に基づいて、被操作車２０ｃの移動速度および移動方向を決定し、その決定された移動速度および移動方向で走行するように被操作車２０ｃのモータを制御する（ステップＳ３０２）。自車が被操作車２０ｃである場合には、ユーザの操作により移動速度および移動方向が決定されるので、図６のステップＳ１０４で推定される自車の移動（ここでは座標範囲）は、ユーザの操作に基づくものとなる。
【００５９】
図９は、被制御車２０ｄの通常の走行制御処理の一例を示すフロー図である。自車が被制御車２０ｄである場合には、はじめに、走行制御部５２は自車の座標を取得する（ステップＳ３５１）。この座標は、ステップＳ１０１で検出された座標であってよい。次に、走行制御部５２は、自車からみてコースの前方にあるマーカ４２（図１０参照）のうち１つを選択する（ステップＳ３５２）。
【００６０】
図１０は、被制御車２０ｄの走行の制御を説明する図である。シート３１上の走行可能領域３５を走行する被制御車２０ｄの標準的なルートは、予め定められており、図１０では基準線４１として仮想的に記載されている。またそのルートは、そのルート上に配置された仮想的な複数のマーカ４２により定義されている。マーカ４２は、実際には記憶部１２に、点の座標の情報として記憶されている。基準線４１は、複数のマーカ４２を順に結んだ線である。マーカ４２は、被制御車２０ｄの走行の際の目標点であり、理想的な環境では被制御車２０ｄは複数のマーカ４２を順に通過するように制御される。なお、ステップＳ３５１において選択されるマーカ４２は、被制御車２０ｄに最も近い所定数（例えば３つ）のマーカ４２のうち最も前方にあるマーカ４２であってもよいし、自車からマーカ４２へ延びるベクトルの向き（第１の向き）とそのマーカ４２とその前方かつ隣のマーカ４２とを結ぶ向き（第２の向き）とを求め、その第１の向きと第２の向きとがなす角が所定の値より小さくなりかつ自車からマーカ４２へ延びるベクトルが禁止領域３６を通過しないようにマーカ４２を選択してもよい。
【００６１】
マーカ４２が選択されると、走行制御部５２は、自車と他の台車２０（例えば被操作車２０ｃ）との距離が制御閾値以下か否かを判定する（ステップＳ３５３）。距離が制御閾値より大きい場合には（ステップＳ３５３のＮ）、選択されたマーカを目標点として設定する（ステップＳ３５４）。
【００６２】
一方、距離が制御閾値以下の場合には（ステップＳ３５３のＮ）、他の台車２０がコースの後方に位置するか否かを判定する（ステップＳ３５６）。コースの後方に位置するか否かは、例えば、自車に最も近いマーカ４２からその前方のマーカへ延びるベクトルと、自車から他の台車２０へ延びるベクトルとがなす角の絶対値が所定の値（例えば９０度より大きく１８０度より小さい定数）より大きいか否かで判定されてもよい。
【００６３】
他の台車２０がコースの後方に位置する場合には（ステップＳ３５６のＮ）、走行制御部５２は、他の台車２０の走行を邪魔するように目標点４４を決定する（ステップＳ３５７）。
【００６４】
図１１は、被制御車２０ｄの走行予定経路と被操作車２０ｃとの関係の一例を示す図である。被制御車２０ｄは自車に対応し、被操作車２０ｃは他の台車２０に対応する。ステップＳ３５７では、例えば、走行制御部５２は、他の台車２０の検出された座標の変化に基づいて現在の移動ベクトルを算出し、その移動ベクトルから他の台車２０の移動経路を予測する。そして、予測された移動経路に近づき、かつ選択されたマーカ４２からの距離が閾値より小さい点を目標点４４として決定する。目標点４４の決定により走行経路４３も決定される。
【００６５】
また、他の台車２０がコースの後方に位置しない場合には（ステップＳ３５６のＮ）、走行制御部５２は、自車が他の台車２０を避けるように目標点４４を決定する（ステップＳ３５９）。
【００６６】
図１２は、被制御車２０ｄの走行予定経路と被操作車２０ｃとの関係の他の一例を示す図である。ステップＳ３５９では、例えば、走行制御部５２は、他の台車２０の現在の移動ベクトルを算出し、その移動ベクトルから他の台車２０の移動経路を予測する。そして、予測された移動経路から所定の距離を有し、かつ選択されたマーカ４２からの距離が閾値より小さい点を目標点４４として決定する。
【００６７】
なお、ステップＳ３５７においても、走行制御部５２は、自車が他の台車２０を避けるように目標点４４を決定してもよい。ステップＳ３５７およびＳ３５９の動作は、被制御車２０ｄの特性として、ユーザの指示により変更されてもよい。
【００６８】
目標点４４が設定または決定されると、走行制御部５２は、自車が目標点４４へ向かうように自車のモータを制御する（ステップＳ３６０）。
【００６９】
このように、自車（被制御車２０ｄ）および他の台車２０（被操作車２０ｃ）について、シート３１を撮影することで検出される座標を取得し、その座標に基づいて被制御車２０ｄの移動を制御することにより、画像として出力される仮想的な車を制御する代わりに実在する台車２０を走行させる場合であっても、容易に位置関係を検出し、複数の台車２０の位置関係に応じた複雑な制御をすることが可能になる。
【００７０】
次に、第１の衝突処理について説明する。図１４は、第１の衝突処理におけるスピン動作を説明する図である。本実施形態では、衝突があったと判定された場合に、台車２０にその衝突をより誇張させた動作をさせる。第１の衝突処理においては、動作処理部５５は、誇張された動作として経路７５に示されるようなスピン動作（回転）をするよう台車２０を制御する。ここで、スピン動作のあとの台車の向き７３がユーザの方を向く（方向範囲Ｄｒの外にある）と、ユーザが混乱してしまい反対向きの操作をする場合がある。なお、方向範囲Ｄｒはシート３１を基準として設定されており、衝突前の台車２０の向きとは関係ない。本実施形態では、動作処理部５５はこの現象を防ぐために第１のスピン動作と第２のスピン動作とを切り替えている。以下ではこの動作の制御の詳細について説明する。
【００７１】
図１３は、第１の衝突処理の一例を示すフロー図である。はじめに、動作処理部５５は、自車のシート３１上の現在の向きを取得する（ステップＳ４０１）。この向きは、ステップＳ１０１において検出されたものであってよい。
【００７２】
そして、動作処理部５５は第１のスピン動作をした後の自車の向きを推定する（ステップＳ４０２）。動作処理部５５は、予めスピン動作による向きの変化量を記憶部１２に記憶しておき、現在の向きにその変化量を加えることで自車の向きを推定してよい。
【００７３】
そして、推定された向きが方向範囲Ｄｒの内にある場合には（ステップＳ４０３のＹ）、動作処理部５５は第１のスピン動作を実行する（ステップＳ４０４）。なお、この場合、台車２０は第１のスピン動作でユーザの方を向かない可能性が高い。
【００７４】
一方、推定された向きが方向範囲Ｄｒの外にある場合には（ステップＳ４０３のＮ）、動作の後に向きが方向範囲Ｄｒの内になる第２のスピン動作を実行する（ステップＳ４０５）。ここで、第１のスピン動作および第２のスピン動作は互いに回転量が異なっている。第１のスピン動作および第２のスピン動作の間の回転量の差は、（３６０度−Ｄｒ）以上である。
【００７５】
ステップＳ４０２，Ｓ４０３においてスピン動作の後の向きを推定しているが、他の方法でこの判定を行ってもよい。例えば、予めスピン動作による変化量を方向範囲Ｄｒに加えた判定用の方向範囲を記憶部１２に記憶させ、現在の向きが判定用の方向範囲の内にあるか否かを判定することでこの判定を行ってもよい。
【００７６】
なお、動作処理部５５は、さらに衝突の向きと進行方向との関係が所定の条件を満たす場合には、第１のスピン動作および第２のスピン動作の代わりに、第３のスピン動作および第４のスピン動作を実行するように制御してもよい。
【００７７】
第１のスピン動作または第２のスピン動作が実行されると、動作処理部５５は、動作後の位置が走行可能領域３５の内にあるか判定する（ステップＳ４０６）。その位置が走行可能領域内にない場合には（ステップＳ４０６のＮ）、自車を走行可能領域３５内の箇所へ移動させる（ステップＳ４０７）。
【００７８】
第２の衝突処理は、第１の衝突処理と比べ、スピン動作が異なる動作となり、出力される音声が異なる。処理そのものの違いは軽微であるので処理手順の説明は省略する。
【００７９】
これまでに説明したように、台車２０のカメラ２４による座標の検出や、これまでの台車のモータの制御等から推定される台車の移動に基づいて、物理的な外部要因により台車２０に何らかの事象が生じたかを判定し、その事象に応じたアクションを取ることが可能になる。さらに加速度センサによる衝突の検出などにより、より細かなアクションを取ることができ、物理的な車を走行させるゲームをより適切に制御できる。
【００８０】
なお、シート３１は、その少なくとも一部が迷路のように格子で分割されていてもよい。図１５は、シート３１の他の一例を示す図である。図１５に記載のシート３１の一部では、格子状に分割された領域を結合するように走行可能領域３５、禁止領域３６が設定されている。走行可能領域３５がこのような形状であっても、本実施形態に記載の処理または類似の処理により台車２０の動作を制御することが可能である。
【図１】
2020250809.tif 000003
【図２】
2020250809.tif 000004
【図３】
2020250809.tif 000005
【図４】
2020250809.tif 000006
【図５】
2020250809.tif 000007
【図６】
2020250809.tif 000008
【図７】
2020250809.tif 000009
【図８】
2020250809.tif 000010
【図９】
2020250809.tif 000011
【図１０】
2020250809.tif 000012
【図１１】
2020250809.tif 000013
【図１２】
2020250809.tif 000014
【図１３】
2020250809.tif 000015
【図１４】
2020250809.tif 000016
【図１５】
2020250809.tif 000017
【国際調査報告】
2020250809.tif 000018
2020250809.tif 000019
2020250809.tif 000020
2020250809.tif 000021
2020250809.tif 000022
2020250809.tif 000023