特許第6947779号(P6947779)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許6947779制御システム、制御方法、およびプログラム
<>
  • 特許6947779-制御システム、制御方法、およびプログラム 図000004
  • 特許6947779-制御システム、制御方法、およびプログラム 図000005
  • 特許6947779-制御システム、制御方法、およびプログラム 図000006
  • 特許6947779-制御システム、制御方法、およびプログラム 図000007
  • 特許6947779-制御システム、制御方法、およびプログラム 図000008
  • 特許6947779-制御システム、制御方法、およびプログラム 図000009
  • 特許6947779-制御システム、制御方法、およびプログラム 図000010
  • 特許6947779-制御システム、制御方法、およびプログラム 図000011
  • 特許6947779-制御システム、制御方法、およびプログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6947779
(24)【登録日】2021年9月21日
(45)【発行日】2021年10月13日
(54)【発明の名称】制御システム、制御方法、およびプログラム
(51)【国際特許分類】
   A63H 17/42 20060101AFI20210930BHJP
   A63H 30/04 20060101ALI20210930BHJP
   A63H 30/02 20060101ALI20210930BHJP
   A63F 13/211 20140101ALI20210930BHJP
【FI】
   A63H17/42
   A63H30/04 A
   A63H30/02 A
   A63F13/211
【請求項の数】4
【全頁数】12
(21)【出願番号】特願2019-107858(P2019-107858)
(22)【出願日】2019年6月10日
(65)【公開番号】特開2020-199066(P2020-199066A)
(43)【公開日】2020年12月17日
【審査請求日】2020年1月24日
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】小番 芳範
【審査官】 赤坂 祐樹
(56)【参考文献】
【文献】 特開2008−011980(JP,A)
【文献】 特開2002−224444(JP,A)
【文献】 特開2013−078374(JP,A)
【文献】 米国特許出願公開第2011/0053691(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63H 17/42、30/00−30/04
A63F 13/00−13/98、9/24
(57)【特許請求の範囲】
【請求項1】
ユーザにより操作され、重力を検出するセンサを含むコントローラと、
前記検出された重力の向きに基づいて回転角を検出する回転検出手段と、
前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段と、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段と、
を含み、
前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させ、
前記コントローラはユーザの物理的な操作が入力される操作部をさらに含み、
前記走行制御手段は、前記操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させる、
制御システム。
【請求項2】
請求項1に記載の制御システムにおいて、
前記走行制御手段は、前記検出された回転角に基づいて前記オブジェクトの進行方向を制御し、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、前記オブジェクトを減速させる、
制御システム。
【請求項3】
コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出するステップと、
前記検出された回転角に基づいてオブジェクトの走行を制御するステップと、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出するステップと、
前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させるステップと、
前記コントローラに含まれユーザの物理的な操作が入力される操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させるステップと、
を含む走行制御方法。
【請求項4】
コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出する回転検出手段、
前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段、および、
前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段、
としてコンピュータを機能させ、
前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させ、
前記走行制御手段は、前記コントローラに含まれユーザの物理的な操作が入力される操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させる、
プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は制御システム、制御方法、およびプログラムに関する。
【背景技術】
【0002】
レースゲームのなかには、ハンドルタイプのコントローラを用いて車などのオブジェクトを走行させるものがある。このタイプのコントローラの多くは、所定の面内の回転を検出するために加速度センサを利用している。回転角は、加速度センサにより検出される重力の成分に基づいて検出される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ハンドルが倒され、ハンドルの回転面に対する法線の向きが鉛直方向に近づくと、回転角の検出に用いられる重力の成分が小さくなり、回転角を精度よく検出することが難しくなる。そのため、ハンドルを倒すとユーザがオブジェクトを操作することが難しくなる。
【0004】
本発明は上記課題を鑑みてなされたものであって、その目的は、重力を用いてハンドルの回転角を検出する場合に、車などのオブジェクトを適正に走行させることが可能な技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明にかかる制御システムは、ユーザにより操作され、重力を検出するセンサを含むコントローラと、前記検出された重力の向きに基づいて回転角を検出する回転検出手段と、前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段と、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段と、を含む。前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる。
【0006】
また、本発明にかかる制御方法は、コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出するステップと、前記検出された回転角に基づいてオブジェクトの走行を制御するステップと、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出するステップと、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させるステップと、を含む。
【0007】
また、本発明にかかるプログラムは、コントローラに含まれるセンサにより検出された重力の向きに基づいて回転角を検出する回転検出手段、前記検出された回転角に基づいてオブジェクトの走行を制御する走行制御手段、および、前記検出された重力の向きと、予め定められた前記コントローラの回転面とがなす角を示す情報を算出する角度算出手段、
としてコンピュータを機能させ、前記走行制御手段は、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、オブジェクトを減速させる。
【0008】
本発明によれば、重力を用いてハンドルの回転角を検出する場合に、車などのオブジェクトを適正に走行させることができる。
【0009】
本発明の一形態では、前記走行制御手段は、前記検出された回転角に基づいて前記オブジェクトの進行方向を制御し、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に、前記オブジェクトを減速させてよい。
【0010】
本発明の一形態では、前記コントローラはユーザの物理的な操作が入力される操作部をさらに含み、前記走行制御手段は、前記操作部の入力に基づいて前記オブジェクトを加速または減速させ、前記重力の向きと前記回転面とがなす角が所定の閾値より大きい場合に前記操作部の入力に関わらず前記オブジェクトを減速させてよい。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態にかかる制御システムの一例を示す図である。
図2】制御システムのハードウェア構成を示す図である。
図3】コントローラの構成を説明する図である。
図4】シートの一例を示す図である。
図5】重力の検出によるステアリングの回転角の特定を説明する図である。
図6】ステアリングの回転角の検出が難しいケースを説明する図である。
図7】制御システムが実現する機能を示すブロック図である。
図8】制御システムの処理の一例を示すフロー図である。
図9】コントローラの回転面の傾きと角度閾値A1,A2との関係を説明する図である。
【発明を実施するための形態】
【0012】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。本発明の実施形態では、ユーザの操作に応じて走行する移動デバイスがシートの上を走行する。
【0013】
図1は、本発明の実施形態にかかる制御システムの一例を示す図である。本発明にかかる制御システムは、デバイス制御装置10と、台車20a,20bと、コントローラ17と、カートリッジ18とを含む。台車20a,20bはカメラ24を有する自走式の移動デバイスであり、どちらも同じ機能を有する。以下では特に区別する必要がない限り、これらの台車20a,20bを台車20と記載する。デバイス制御装置10は、無線を介して台車20を制御する。デバイス制御装置10は凹部32を有し、台車20が凹部32にはめ込まれると、デバイス制御装置10は台車20を充電する。コントローラ17はユーザによる操作を取得する入力装置であり、ケーブルによりデバイス制御装置10に接続されている。カートリッジ18は不揮発性メモリを内蔵する。
【0014】
図2は、本発明の実施形態にかかる制御システムのハードウェア構成の一例を示す図である。デバイス制御装置10は、プロセッサ11、記憶部12、通信部13、入出力部14を含む。台車20は、プロセッサ21、記憶部22、通信部23、カメラ24、2つのモータ25を含む。デバイス制御装置10は、台車20の制御に最適化された専用の装置であってもよいし、汎用的なコンピュータであってもよい。
【0015】
プロセッサ11は、記憶部12に格納されているプログラムに従って動作し、通信部13、入出力部14などを制御する。プロセッサ21は、記憶部22に格納されているプログラムに従って動作し、通信部23、カメラ24、モータ25などを制御する。上記プログラムは、カートリッジ18内のフラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるが、インターネット等のネットワークを介して提供されてもよい。
【0016】
記憶部12は、デバイス制御装置10に内蔵されるDRAMおよび不揮発性メモリと、カートリッジ18内の不揮発性メモリ等によって構成されている。記憶部22は、DRAMおよび不揮発性メモリ等によって構成されている。記憶部12,22は、上記プログラムを格納する。また、記憶部12,22は、プロセッサ11,21や通信部13,23等から入力される情報や演算結果を格納する。
【0017】
通信部13,23は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部13,23は、例えばBluetooth(登録商標)プロトコルに従って互いに通信する機能を有する。通信部13,23は、プロセッサ11,21の制御に基づいて、他の装置から受信した情報をプロセッサ11,21や記憶部12,22に入力し、他の装置に情報を送信する。なお、通信部13はLANなどのネットワークを介して他の装置と通信する機能を有してもよい。
【0018】
入出力部14は、コントローラ17などの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部14は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ11や記憶部12に入力する。また入出力部14は、プロセッサ11などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【0019】
モータ25は、プロセッサ21により回転方向、回転量および回転速度が制御される、いわゆるサーボモータである。2つのモータ25のそれぞれには、1つの車輪が割り当てられており、モータ25は、割り当てられた車輪を駆動する。
【0020】
カメラ24は、台車20の下方を撮影するように配置され、台車20が置かれているシート41(図4参照)に印刷されたパターンを撮影する。本実施形態では、シート41には赤外線の周波数領域で認識されるパターンが印刷されており、カメラ24は、その赤外線の画像を撮影する。
【0021】
図3は、コントローラ17の構成を説明する図である。コントローラ17は、リング状の筐体を有し、加速度センサ34と、リングの周方向およびの変位を検出する方向入力部35と、ボタン36,37,38,39とを有する。方向入力部35およびボタン36,37,38,39は、ユーザの直接的な操作を取得する操作部材である。方向入力部35は、ジョグダイヤルとも呼ばれ、2次元方向の基準位置からの変位を検出する。加速度センサ34は、3軸のセンサであり、3軸のそれぞれについて、コントローラ17の動きにより生じる加速度と重力とが合成されたベクトルの成分を検出する。コントローラ17は、ケーブル33によりデバイス制御装置10と接続されている。
【0022】
図4は、台車20が配置されるシート41の一例を示す図である。シート41には、ユーザが視認できる画像が印刷されており、さらに、カメラ24により撮影可能なパターンが印刷されている。
【0023】
図4の例では、シート41には、ドーナツ状の走行可能領域43が視認できるように印刷されている。走行可能領域43は、台車20の走行が可能な領域である。シート41上には、所定の大きさ(例えば0.2mm角)の単位パターンがマトリクス状に並んでいる。単位パターンのそれぞれは、そのパターンが配置される位置の座標が符号化された画像である。
【0024】
本実施形態にかかる制御システムでは、台車20のカメラ24がシート41等に印刷された単位パターンを撮影し、台車20またはデバイス制御装置10がその単位パターンを復号して座標を取得する。これにより、台車20のシート41等の上における位置が認識される。また、台車20またはデバイス制御装置10は、カメラ24により撮影された画像内にある単位パターンの向きを検出することにより、台車20の向きも算出する。
【0025】
図4には、シート41上を走行する台車20a,20bが記載されている。台車20a,20bのうち少なくとも一方は、ユーザのコントローラ17の操作に応じて走行する。
【0026】
本実施形態では、ユーザのコントローラ17の操作は、ステアリング操作と加減速操作とを含む。加減速操作は、ユーザによる操作部材の操作であり、コントローラ17は、加減速操作として、方向入力部35の移動、またはボタン37,38の押下を検出し、デバイス制御装置10はそれらを取得する。
【0027】
本実施形態におけるステアリング操作は、ユーザが環状のコントローラ17をステアリングと見立てて回転させる操作である。デバイス制御装置10は、その操作による現在のコントローラ17の基準状態からの回転角φを検出する。ここでは、基準状態では、コントローラ17のうちケーブル33と接続される箇所が最も下側にある。
【0028】
回転角φは、コントローラ17の加速度センサ34により検出されたベクトルの成分により算出される。例えば、コントローラ17の動きにより生じる加速度が重力加速度に比べて十分に小さい場合は、検出されたベクトルの成分を重力の成分とみなして回転角を算出することができる。
【0029】
図5は、重力の検出によるステアリングの回転角φの特定を説明する図である。コントローラ17の環状の筐体は回転面にそって配置されており、図5の例では回転面は鉛直方向を向いているとする。ここでは、回転角の検出に用いられる加速度センサ34の出力において、コントローラ17に移動により検出される値を無視しても問題ないものとする。
【0030】
本実施形態にかかるコントローラ17に含まれる加速度センサ34は、重力gのx軸方向の成分(成分gx)、y軸方向の成分(成分gy)、z軸方向の成分(成分gz)を検出する。ここで、x軸、y軸、z軸は加速度センサ34を基準としている。回転角φは、以下の式で求められる。
【0031】
【数1】
【0032】
なお、x軸方向の成分gxおよびy軸方向の成分gyの少なくとも一方の符号で場合分けをすることで、360度の回転角を検出することができる。また、回転面が鉛直でない場合は成分gzが増えるが回転角と成分gx,gyの関係は変わらない。したがって同じ手法で回転角を検出することができる。
【0033】
加速度センサ34は、コントローラ17の中心(回転の中心に相当する)には配置されていないが、加速度センサ34により検出される回転角φはコントローラ17の回転角φと同じである。なお、回転角の算出手法は公知であるので詳細の説明は省略する。
【0034】
このように加速度センサ34により検出される重力に基づいて容易にコントローラ17をステアリングと見立てた場合の回転角を算出することができる。一方、コントローラ17の回転面の鉛直方向からの傾きによっては、回転角の検出が難しい場合がある。
【0035】
図6は、ステアリングの回転角φの検出が難しいケースを説明する図である。図6のケースでは、回転面の鉛直方向からの傾きθが90度に近いため、成分gx、成分gyが非常に小さくなる。このような場合には加速度センサ34の分解能に起因し、得られる回転角φの精度が大幅に低下する。
【0036】
図7は、本発明の実施形態にかかる制御システムが実現する機能を示すブロック図である。以下では、制御システムの動作、および、傾きθに起因する回転角φの精度低下を抑える手法について説明する。
【0037】
制御システムは、機能的に、重力取得部51、回転検出部52、傾斜検出部53、指示取得部54、走行制御部56を含む。重力取得部51、回転検出部52、傾斜検出部53、指示取得部54は、主に、デバイス制御装置10に含まれるプロセッサ11が記憶部12に格納されるプログラムを実行することにより実現される。また、走行制御部56は、デバイス制御装置10に含まれるプロセッサ11が記憶部12に格納されるプログラムを実行し、通信部13を介して台車20を制御することにより実現される。走行制御部56の機能の一部は、台車20に含まれるプロセッサ21が記憶部22に格納されるプログラムを実行し、通信部23を介してデバイス制御装置10とデータをやり取りし、カメラ24やモータ25を制御することにより実現されてもよい。
【0038】
重力取得部51は、コントローラ17の加速度センサ34により検出される重力を取得する。より厳密には、重力取得部51は、その検出された重力のx軸方向の成分gx、y軸方向の成分gyおよびz軸方向の成分gzを取得する。なお、重力取得部51が取得する重力には、コントローラ17の移動の加速度に起因する値の変動が含まれていてもよい。
【0039】
回転検出部52は、加速度センサ34により検出され、重力取得部51により取得された重力の向きに基づいて回転角φを検出する。
【0040】
傾斜検出部53は、検出された重力の向きと、コントローラ17の回転面とがなす角(傾きθ)を示す情報を算出する。
【0041】
指示取得部54は、コントローラ17の操作部材に対するユーザの操作であって、操作の対象となる台車20の加減速の指示となる操作を取得する。
【0042】
走行制御部56は、検出された回転角φに基づいて、操作の対象となる台車20の走行(具体的には進行方向)を制御する。また走行制御部56は、傾きθが予め定められた閾値より大きい場合に、指示取得部54が取得した加減速の指示にかかわらず操作の対象となる台車20を減速させる。
【0043】
図8は、制御システムの処理の一例を示すフロー図である。以下では図8のフロー図の説明をしつつ、各機能についてさらに説明する。
【0044】
はじめに、指示取得部54は、コントローラ17の操作部材に対するユーザの操作に基づいて、ユーザの加減速の指示を取得する(ステップS101)。ユーザの加減速の操作は、方向入力部35の移動やボタン37,38の押下などの操作である。指示取得部54は、例えば、方向入力部35が基準位置からある方向へずれている場合にそのずれの大きさを加速の指示として取得し、方向入力部35が基準位置から反対方向へずれている場合にそのずれの大きさを減速の指示として取得する。指示取得部54は、例えば、ボタン37の押下を加速の指示として取得し、ボタン38の押下を減速の指示として取得してもよい。
【0045】
重力取得部51は、コントローラ17の加速度センサ34が検出した重力を取得する(ステップS102)。より具体的には、重力取得部51は、加速度センサ34が検出した重力のベクトルを取得する。そのベクトルは、成分gx、成分gy、成分gzを含む。
【0046】
そして、傾斜検出部53は、取得された重力に基づいて、コントローラ17の回転面の傾きθを取得する(ステップS103)。より具体的には、傾斜検出部53は、重力gの大きさと、z軸方向の成分gzとに基づいて、傾きθを取得する。傾きθは例えば以下の式により算出される。
【0047】
【数2】
【0048】
なお、傾斜検出部53は、cosの逆関数を用いて、傾きθを示す情報として、重力gのベクトルとz軸とがなす角、つまり(90°‐θ)の値を取得してもよい。
【0049】
傾きθが算出されると、傾斜検出部53は、傾きθが角度閾値A2より大きいか判定する(ステップS104)。傾きθが角度閾値A2より大きい場合には(ステップS104のY)、走行制御部56は、ユーザの操作の対象となる台車20が後退するよう制御する(ステップS105)。この場合は回転角φの算出を行わない。なお走行制御部56は、台車20を後退させる代わりに停止させてもよい。
【0050】
傾きθが角度閾値A2以下の場合には(ステップS104のY)、回転検出部52は、取得された重力に基づいて、回転角φを算出する(ステップS106)。回転検出部52は、図5とともに説明した方法により回転角φを算出する。そして、傾斜検出部53は、傾きθが角度閾値A1以下か判定する(ステップS107)。傾きθが角度閾値A1以下の場合には(ステップS107のY)、走行制御部56は、算出された回転角φと取得された加減速の指示とに基づいて、ユーザの操作の対象となる台車20の走行を制御する(ステップS108)。一方、傾きθが角度閾値A1より大きい場合には(ステップS107のN)、台車20の速度が減少するように台車20の走行を制御する(ステップS109)。ここで、走行制御部56は、算出された回転角φに応じた移動方向へ走行し、かつ速度が減少するように台車20を制御してよい。走行制御部56は、回転角φに応じた回転半径となるように台車20の移動方向を制御する。走行制御部56は、回転角φをパラメータとする連続的な関数により求められる回転半径で移動するように台車20を制御してもよいし、走行制御部56は、回転角φに基づいて、予め定められた複数の回転半径(例えば3つの回転半径)のうち1つを選択し、選択された回転半径で移動するよう制御してもよい。
【0051】
図9は、コントローラ17の回転面の傾きθと角度閾値A1,A2との関係を説明する図である。図9は、図8に示される処理が実行された場合の動作を説明している。傾きθが0以上A1以下(図9の「Normal」)の場合、回転角φの算出に何も問題がないため、算出された回転角φに応じた向きかつ加減速の指示に応じた速度で台車20を走行させる。一方、傾きθがA1より大きくA2以下(図9の「Brake」)の場合、算出される回転角φの精度の低下が生じるなどの問題が生じる。そこで、走行制御部56が台車20の速度を低下させ、操作しているユーザにコントローラ17の傾きθを修正することを促す。傾きθがA2より大きい場合(図9のReverse)には、ユーザにさらに強く修正を促すため、走行制御部56は、台車20の後退や停止などといった、台車20の走行にさらに強く介入する。
【0052】
本実施形態にかかる制御システムでは、コントローラ17の傾きθが大きくなり回転角φの検出に支障が生じる場合に、台車20の走行に介入することで、そのコントローラ17を操作するユーザに直観的に傾きθの修正を促すことができる。例えば複数のユーザが操作し、かつ音声や映像のメッセージで修正を促す場合には、修正の必要のないユーザがあやまってそのメッセージを受け取る恐れがある。本実施形態にかかる制御システムでは、問題のあるユーザが操作している台車20の動作によって修正を促すため、他のユーザの誤解を招く恐れはなく、またディスプレイなどを用いなくてもユーザに修正を促すことができる。
【符号の説明】
【0053】
10 デバイス制御装置、11,21 プロセッサ、12,22 記憶部、13,23 通信部、14 入出力部、17 コントローラ、18 カートリッジ、20,20a,20b 台車、24 カメラ、25 モータ、32 凹部、33 ケーブル、34 加速度センサ、35 方向入力部、36,37,38,39 ボタン、41 シート、43 走行可能領域、51 重力取得部、52 回転検出部、53 傾斜検出部、54 指示取得部、56 走行制御部、A1,A2 角度閾値、θ 傾き、φ 回転角。

図1
図2
図3
図4
図5
図6
図7
図8
図9