(57)【要約】      （修正有）【課題】重力を用いてハンドルの回転角を検出する場合に、車などのオブジェクトを適正に走行させること。【解決手段】制御システムは、ユーザにより操作され、重力を検出するセンサを含むコントローラを含み、前記検出された重力の向きに基づいて回転角を検出し（Ｓ１０６）、前記検出された回転角に基づいてオブジェクトの走行を制御し、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出し（Ｓ１０３）、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる（Ｓ１０９）。【選択図】図８
2020199066.tif 000002
【特許請求の範囲】
【請求項１】
ユーザにより操作され、重力を検出するセンサを含むコントローラと、
前記検出された重力の向きに基づいて回転角を検出する回転検出手段と、
前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段と、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段と、
を含み、
前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる、
制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記走行制御手段は、前記検出された回転角に基づいて前記オブジェクトの進行方向を制御し、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、前記オブジェクトを減速させる、
制御システム。
【請求項３】
請求項１または２に記載の制御システムにおいて、
前記コントローラはユーザの物理的な操作が入力される操作部をさらに含み、
前記走行制御手段は、前記操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させる、
制御システム。
【請求項４】
コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出するステップと、
前記検出された回転角に基づいてオブジェクトの走行を制御するステップと、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出するステップと、
前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させるステップと、
を含む走行制御方法。
【請求項５】
コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出する回転検出手段、
前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段、および、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段、
としてコンピュータを機能させ、
前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御システム、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
レースゲームのなかには、ハンドルタイプのコントローラを用いて車などのオブジェクトを走行させるものがある。このタイプのコントローラの多くは、所定の面内の回転を検出するために加速度センサを利用している。回転角は、加速度センサにより検出される重力の成分に基づいて検出される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ハンドルが倒され、ハンドルの回転面に対する法線の向きが鉛直方向に近づくと、回転角の検出に用いられる重力の成分が小さくなり、回転角を精度よく検出することが難しくなる。そのため、ハンドルを倒すとユーザがオブジェクトを操作することが難しくなる。
【０００４】
本発明は上記課題を鑑みてなされたものであって、その目的は、重力を用いてハンドルの回転角を検出する場合に、車などのオブジェクトを適正に走行させることが可能な技術を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明にかかる制御システムは、ユーザにより操作され、重力を検出するセンサを含むコントローラと、前記検出された重力の向きに基づいて回転角を検出する回転検出手段と、前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段と、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段と、を含む。前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる。
【０００６】
また、本発明にかかる制御方法は、コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出するステップと、前記検出された回転角に基づいてオブジェクトの走行を制御するステップと、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出するステップと、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させるステップと、を含む。
【０００７】
また、本発明にかかるプログラムは、コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出する回転検出手段、前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段、および、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段、
としてコンピュータを機能させ、前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる。
【０００８】
本発明によれば、重力を用いてハンドルの回転角を検出する場合に、車などのオブジェクトを適正に走行させることができる。
【０００９】
本発明の一形態では、前記走行制御手段は、前記検出された回転角に基づいて前記オブジェクトの進行方向を制御し、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、前記オブジェクトを減速させてよい。
【００１０】
本発明の一形態では、前記コントローラはユーザの物理的な操作が入力される操作部をさらに含み、前記走行制御手段は、前記操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させてよい。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態にかかる制御システムの一例を示す図である。
【図２】制御システムのハードウェア構成を示す図である。
【図３】コントローラの構成を説明する図である。
【図４】シートの一例を示す図である。
【図５】重力の検出によるステアリングの回転角の特定を説明する図である。
【図６】ステアリングの回転角の検出が難しいケースを説明する図である。
【図７】制御システムが実現する機能を示すブロック図である。
【図８】制御システムの処理の一例を示すフロー図である。
【図９】コントローラの回転面の傾きと角度閾値Ａ１，Ａ２との関係を説明する図である。
【発明を実施するための形態】
【００１２】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。本発明の実施形態では、ユーザの操作に応じて走行する移動デバイスがシートの上を走行する。
【００１３】
図１は、本発明の実施形態にかかる制御システムの一例を示す図である。本発明にかかる制御システムは、デバイス制御装置１０と、台車２０ａ，２０ｂと、コントローラ１７と、カートリッジ１８とを含む。台車２０ａ，２０ｂはカメラ２４を有する自走式の移動デバイスであり、どちらも同じ機能を有する。以下では特に区別する必要がない限り、これらの台車２０ａ，２０ｂを台車２０と記載する。デバイス制御装置１０は、無線を介して台車２０を制御する。デバイス制御装置１０は凹部３２を有し、台車２０が凹部３２にはめ込まれると、デバイス制御装置１０は台車２０を充電する。コントローラ１７はユーザによる操作を取得する入力装置であり、ケーブルによりデバイス制御装置１０に接続されている。カートリッジ１８は不揮発性メモリを内蔵する。
【００１４】
図２は、本発明の実施形態にかかる制御システムのハードウェア構成の一例を示す図である。デバイス制御装置１０は、プロセッサ１１、記憶部１２、通信部１３、入出力部１４を含む。台車２０は、プロセッサ２１、記憶部２２、通信部２３、カメラ２４、２つのモータ２５を含む。デバイス制御装置１０は、台車２０の制御に最適化された専用の装置であってもよいし、汎用的なコンピュータであってもよい。
【００１５】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作し、通信部１３、入出力部１４などを制御する。プロセッサ２１は、記憶部２２に格納されているプログラムに従って動作し、通信部２３、カメラ２４、モータ２５などを制御する。上記プログラムは、カートリッジ１８内のフラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるが、インターネット等のネットワークを介して提供されてもよい。
【００１６】
記憶部１２は、デバイス制御装置１０に内蔵されるＤＲＡＭおよび不揮発性メモリと、カートリッジ１８内の不揮発性メモリ等によって構成されている。記憶部２２は、ＤＲＡＭおよび不揮発性メモリ等によって構成されている。記憶部１２，２２は、上記プログラムを格納する。また、記憶部１２，２２は、プロセッサ１１，２１や通信部１３，２３等から入力される情報や演算結果を格納する。
【００１７】
通信部１３，２３は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部１３，２３は、例えばBluetooth(登録商標)プロトコルに従って互いに通信する機能を有する。通信部１３，２３は、プロセッサ１１，２１の制御に基づいて、他の装置から受信した情報をプロセッサ１１，２１や記憶部１２，２２に入力し、他の装置に情報を送信する。なお、通信部１３はＬＡＮなどのネットワークを介して他の装置と通信する機能を有してもよい。
【００１８】
入出力部１４は、コントローラ１７などの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部１４は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ１１や記憶部１２に入力する。また入出力部１４は、プロセッサ１１などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【００１９】
モータ２５は、プロセッサ２１により回転方向、回転量および回転速度が制御される、いわゆるサーボモータである。２つのモータ２５のそれぞれには、１つの車輪が割り当てられており、モータ２５は、割り当てられた車輪を駆動する。
【００２０】
カメラ２４は、台車２０の下方を撮影するように配置され、台車２０が置かれているシート４１（図４参照）に印刷されたパターンを撮影する。本実施形態では、シート４１には赤外線の周波数領域で認識されるパターンが印刷されており、カメラ２４は、その赤外線の画像を撮影する。
【００２１】
図３は、コントローラ１７の構成を説明する図である。コントローラ１７は、リング状の筐体を有し、加速度センサ３４と、リングの周方向およびの変位を検出する方向入力部３５と、ボタン３６，３７，３８，３９とを有する。方向入力部３５およびボタン３６，３７，３８，３９は、ユーザの直接的な操作を取得する操作部材である。方向入力部３５は、ジョグダイヤルとも呼ばれ、２次元方向の基準位置からの変位を検出する。加速度センサ３４は、３軸のセンサであり、３軸のそれぞれについて、コントローラ１７の動きにより生じる加速度と重力とが合成されたベクトルの成分を検出する。コントローラ１７は、ケーブル３３によりデバイス制御装置１０と接続されている。
【００２２】
図４は、台車２０が配置されるシート４１の一例を示す図である。シート４１には、ユーザが視認できる画像が印刷されており、さらに、カメラ２４により撮影可能なパターンが印刷されている。
【００２３】
図４の例では、シート４１には、ドーナツ状の走行可能領域４３が視認できるように印刷されている。走行可能領域４３は、台車２０の走行が可能な領域である。シート４１上には、所定の大きさ（例えば０．２ｍｍ角）の単位パターンがマトリクス状に並んでいる。単位パターンのそれぞれは、そのパターンが配置される位置の座標が符号化された画像である。
【００２４】
本実施形態にかかる制御システムでは、台車２０のカメラ２４がシート４１等に印刷された単位パターンを撮影し、台車２０またはデバイス制御装置１０がその単位パターンを復号して座標を取得する。これにより、台車２０のシート４１等の上における位置が認識される。また、台車２０またはデバイス制御装置１０は、カメラ２４により撮影された画像内にある単位パターンの向きを検出することにより、台車２０の向きも算出する。
【００２５】
図４には、シート４１上を走行する台車２０ａ，２０ｂが記載されている。台車２０ａ，２０ｂのうち少なくとも一方は、ユーザのコントローラ１７の操作に応じて走行する。
【００２６】
本実施形態では、ユーザのコントローラ１７の操作は、ステアリング操作と加減速操作とを含む。加減速操作は、ユーザによる操作部材の操作であり、コントローラ１７は、加減速操作として、方向入力部３５の移動、またはボタン３７，３８の押下を検出し、デバイス制御装置１０はそれらを取得する。
【００２７】
本実施形態におけるステアリング操作は、ユーザが環状のコントローラ１７をステアリングと見立てて回転させる操作である。デバイス制御装置１０は、その操作による現在のコントローラ１７の基準状態からの回転角φを検出する。ここでは、基準状態では、コントローラ１７のうちケーブル３３と接続される箇所が最も下側にある。
【００２８】
回転角φは、コントローラ１７の加速度センサ３４により検出されたベクトルの成分により算出される。例えば、コントローラ１７の動きにより生じる加速度が重力加速度に比べて十分に小さい場合は、検出されたベクトルの成分を重力の成分とみなして回転角を算出することができる。
【００２９】
図５は、重力の検出によるステアリングの回転角φの特定を説明する図である。コントローラ１７の環状の筐体は回転面にそって配置されており、図５の例では回転面は鉛直方向を向いているとする。ここでは、回転角の検出に用いられる加速度センサ３４の出力において、コントローラ１７に移動により検出される値を無視しても問題ないものとする。
【００３０】
本実施形態にかかるコントローラ１７に含まれる加速度センサ３４は、重力ｇのｘ軸方向の成分（成分ｇｘ）、ｙ軸方向の成分（成分ｇｙ）、ｚ軸方向の成分（成分ｇｚ）を検出する。ここで、ｘ軸、ｙ軸、ｚ軸は加速度センサ３４を基準としている。回転角φは、以下の式で求められる。
【００３１】
【数１】
2020199066.tif 000003
【００３２】
なお、ｘ軸方向の成分ｇｘおよびy軸方向の成分ｇｙの少なくとも一方の符号で場合分けをすることで、３６０度の回転角を検出することができる。また、回転面が鉛直でない場合は成分ｇｚが増えるが回転角と成分ｇｘ，ｇｙの関係は変わらない。したがって同じ手法で回転角を検出することができる。
【００３３】
加速度センサ３４は、コントローラ１７の中心（回転の中心に相当する）には配置されていないが、加速度センサ３４により検出される回転角φはコントローラ１７の回転角φと同じである。なお、回転角の算出手法は公知であるので詳細の説明は省略する。
【００３４】
このように加速度センサ３４により検出される重力に基づいて容易にコントローラ１７をステアリングと見立てた場合の回転角を算出することができる。一方、コントローラ１７の回転面の鉛直方向からの傾きによっては、回転角の検出が難しい場合がある。
【００３５】
図６は、ステアリングの回転角φの検出が難しいケースを説明する図である。図６のケースでは、回転面の鉛直方向からの傾きθが９０度に近いため、成分ｇｘ、成分ｇｙが非常に小さくなる。このような場合には加速度センサ３４の分解能に起因し、得られる回転角φの精度が大幅に低下する。
【００３６】
図７は、本発明の実施形態にかかる制御システムが実現する機能を示すブロック図である。以下では、制御システムの動作、および、傾きθに起因する回転角φの精度低下を抑える手法について説明する。
【００３７】
制御システムは、機能的に、重力取得部５１、回転検出部５２、傾斜検出部５３、指示取得部５４、走行制御部５６を含む。重力取得部５１、回転検出部５２、傾斜検出部５３、指示取得部５４は、主に、デバイス制御装置１０に含まれるプロセッサ１１が記憶部１２に格納されるプログラムを実行することにより実現される。また、走行制御部５６は、デバイス制御装置１０に含まれるプロセッサ１１が記憶部１２に格納されるプログラムを実行し、通信部１３を介して台車２０を制御することにより実現される。走行制御部５６の機能の一部は、台車２０に含まれるプロセッサ２１が記憶部２２に格納されるプログラムを実行し、通信部２３を介してデバイス制御装置１０とデータをやり取りし、カメラ２４やモータ２５を制御することにより実現されてもよい。
【００３８】
重力取得部５１は、コントローラ１７の加速度センサ３４により検出される重力を取得する。より厳密には、重力取得部５１は、その検出された重力のｘ軸方向の成分ｇｘ、ｙ軸方向の成分ｇｙおよびｚ軸方向の成分ｇｚを取得する。なお、重力取得部５１が取得する重力には、コントローラ１７の移動の加速度に起因する値の変動が含まれていてもよい。
【００３９】
回転検出部５２は、加速度センサ３４により検出され、重力取得部５１により取得された重力の向きに基づいて回転角φを検出する。
【００４０】
傾斜検出部５３は、検出された重力の向きと、コントローラ１７の回転面とがなす角（傾きθ）を示す情報を算出する。
【００４１】
指示取得部５４は、コントローラ１７の操作部材に対するユーザの操作であって、操作の対象となる台車２０の加減速の指示となる操作を取得する。
【００４２】
走行制御部５６は、検出された回転角φに基づいて、操作の対象となる台車２０の走行（具体的には進行方向）を制御する。また走行制御部５６は、傾きθが予め定められた閾値より大きい場合に、指示取得部５４が取得した加減速の指示にかかわらず操作の対象となる台車２０を減速させる。
【００４３】
図８は、制御システムの処理の一例を示すフロー図である。以下では図８のフロー図の説明をしつつ、各機能についてさらに説明する。
【００４４】
はじめに、指示取得部５４は、コントローラ１７の操作部材に対するユーザの操作に基づいて、ユーザの加減速の指示を取得する（ステップＳ１０１）。ユーザの加減速の操作は、方向入力部３５の移動やボタン３７，３８の押下などの操作である。指示取得部５４は、例えば、方向入力部３５が基準位置からある方向へずれている場合にそのずれの大きさを加速の指示として取得し、方向入力部３５が基準位置から反対方向へずれている場合にそのずれの大きさを減速の指示として取得する。指示取得部５４は、例えば、ボタン３７の押下を加速の指示として取得し、ボタン３８の押下を減速の指示として取得してもよい。
【００４５】
重力取得部５１は、コントローラ１７の加速度センサ３４が検出した重力を取得する（ステップＳ１０２）。より具体的には、重力取得部５１は、加速度センサ３４が検出した重力のベクトルを取得する。そのベクトルは、成分ｇｘ、成分ｇｙ、成分ｇｚを含む。
【００４６】
そして、傾斜検出部５３は、取得された重力に基づいて、コントローラ１７の回転面の傾きθを取得する（ステップＳ１０３）。より具体的には、傾斜検出部５３は、重力ｇの大きさと、z軸方向の成分ｇｚとに基づいて、傾きθを取得する。傾きθは例えば以下の式により算出される。
【００４７】
【数２】
2020199066.tif 000004
【００４８】
なお、傾斜検出部５３は、ｃｏｓの逆関数を用いて、傾きθを示す情報として、重力ｇのベクトルとz軸とがなす角、つまり（９０°‐θ）の値を取得してもよい。
【００４９】
傾きθが算出されると、傾斜検出部５３は、傾きθが角度閾値Ａ２より大きいか判定する（ステップＳ１０４）。傾きθが角度閾値Ａ２より大きい場合には（ステップＳ１０４のＹ）、走行制御部５６は、ユーザの操作の対象となる台車２０が後退するよう制御する（ステップＳ１０５）。この場合は回転角φの算出を行わない。なお走行制御部５６は、台車２０を後退させる代わりに停止させてもよい。
【００５０】
傾きθが角度閾値Ａ２以下の場合には（ステップＳ１０４のＹ）、回転検出部５２は、取得された重力に基づいて、回転角φを算出する（ステップＳ１０６）。回転検出部５２は、図５とともに説明した方法により回転角φを算出する。そして、傾斜検出部５３は、傾きθが角度閾値Ａ１以下か判定する（ステップＳ１０７）。傾きθが角度閾値Ａ１以下の場合には（ステップＳ１０７のＹ）、走行制御部５６は、算出された回転角φと取得された加減速の指示とに基づいて、ユーザの操作の対象となる台車２０の走行を制御する（ステップＳ１０８）。一方、傾きθが角度閾値Ａ１より大きい場合には（ステップＳ１０７のＮ）、台車２０の速度が減少するように台車２０の走行を制御する（ステップＳ１０９）。ここで、走行制御部５６は、算出された回転角φに応じた移動方向へ走行し、かつ速度が減少するように台車２０を制御してよい。走行制御部５６は、回転角φに応じた回転半径となるように台車２０の移動方向を制御する。走行制御部５６は、回転角φをパラメータとする連続的な関数により求められる回転半径で移動するように台車２０を制御してもよいし、走行制御部５６は、回転角φに基づいて、予め定められた複数の回転半径（例えば３つの回転半径）のうち１つを選択し、選択された回転半径で移動するよう制御してもよい。
【００５１】
図９は、コントローラ１７の回転面の傾きθと角度閾値Ａ１，Ａ２との関係を説明する図である。図９は、図８に示される処理が実行された場合の動作を説明している。傾きθが０以上Ａ１以下（図９の「Ｎｏｒｍａｌ」）の場合、回転角φの算出に何も問題がないため、算出された回転角φに応じた向きかつ加減速の指示に応じた速度で台車２０を走行させる。一方、傾きθがＡ１より大きくＡ２以下（図９の「Ｂｒａｋｅ」）の場合、算出される回転角φの精度の低下が生じるなどの問題が生じる。そこで、走行制御部５６が台車２０の速度を低下させ、操作しているユーザにコントローラ１７の傾きθを修正することを促す。傾きθがＡ２より大きい場合（図９のＲｅｖｅｒｓｅ）には、ユーザにさらに強く修正を促すため、走行制御部５６は、台車２０の後退や停止などといった、台車２０の走行にさらに強く介入する。
【００５２】
本実施形態にかかる制御システムでは、コントローラ１７の傾きθが大きくなり回転角φの検出に支障が生じる場合に、台車２０の走行に介入することで、そのコントローラ１７を操作するユーザに直観的に傾きθの修正を促すことができる。例えば複数のユーザが操作し、かつ音声や映像のメッセージで修正を促す場合には、修正の必要のないユーザがあやまってそのメッセージを受け取る恐れがある。本実施形態にかかる制御システムでは、問題のあるユーザが操作している台車２０の動作によって修正を促すため、他のユーザの誤解を招く恐れはなく、またディスプレイなどを用いなくてもユーザに修正を促すことができる。
【符号の説明】
【００５３】
１０  デバイス制御装置、１１，２１  プロセッサ、１２，２２  記憶部、１３，２３  通信部、１４  入出力部、１７  コントローラ、１８  カートリッジ、２０，２０ａ，２０ｂ  台車、２４  カメラ、２５  モータ、３２  凹部、３３  ケーブル、３４  加速度センサ、３５  方向入力部、３６，３７，３８，３９  ボタン、４１  シート、４３  走行可能領域、５１  重力取得部、５２  回転検出部、５３  傾斜検出部、５４  指示取得部、５６  走行制御部、Ａ１，Ａ２  角度閾値、θ  傾き、φ  回転角。
【図１】
2020199066.tif 000005
【図２】
2020199066.tif 000006
【図３】
2020199066.tif 000007
【図４】
2020199066.tif 000008
【図５】
2020199066.tif 000009
【図６】
2020199066.tif 000010
【図７】
2020199066.tif 000011
【図８】
2020199066.tif 000012
【図９】
2020199066.tif 000013