(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0009】
本発明の実施の形態の一例に係る操作デバイス10は、無線または有線にて家庭用ゲーム機等の主装置20に接続される。そしてこの操作デバイス10は、ユーザから受け入れた指示操作の内容を主装置20に出力する。また操作デバイス10は、主装置20から入力される指示を受け入れて、各部の制御を行う。この操作デバイス10の詳しい動作は後に述べる。
【0010】
また本実施の形態の例では、操作デバイス10は、ユーザの左手または右手のどちらかに装着されるものとして設定される。この操作デバイス10の一例は、
図1,
図2に例示するようなものである。
図1は操作デバイス10を正面側から見た斜視図であり、
図2は操作デバイス10を背面側から見た斜視図である。
【0011】
操作デバイス10は、ユーザにより把持される把持部21と、操作部22とを含む。把持部21は、実質的に多角形柱状をなす。また操作部22が、この把持部21から連続して形成されている。
図1,2の例では、操作部22は、正面側にセンサ部221と、ボタン操作部222とを含む。また操作部22は、操作デバイス10の背面側に、指センサ223と、本発明の可動部に対応するロッキングボタン224とを備える。またこの操作デバイス10は、本体内部に、
図3に例示するように、回路部100を含む。この回路部100は、制御部11と、記憶部12と、インタフェース部13と、通信部14と、電源部15とを含んで構成される。
【0012】
この制御部11は、マイクロコンピュータ等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。この制御部11の動作については後述する。記憶部12は、メモリデバイスであり、制御部11によって実行されるプログラムを保持する。またこの記憶部12は制御部11のワークメモリとしても動作する。
【0013】
インタフェース部13は、操作部22の各部に接続され、センサ部221や、ボタン操作部222等から入力されるユーザの指示を表す信号等、各種の信号を受け入れて制御部11に出力する。またこのインタフェース部13は、制御部11から入力される指示を、操作部22の各部に出力する。
【0014】
通信部14は、例えばブルートゥース(登録商標)等の無線通信インタフェース、またはUSBや有線LAN等の有線通信インタフェース等を含む。この通信部14は、主装置20に接続され、主装置20との間で種々の信号を授受する。電源部15は、二次電池等の電源を含み、操作デバイス10の各部に電力を供給している。この電源部15の二次電池は操作デバイス10に外部から電源が供給されるときに充電されてもよい。この充電制御等の方法については広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
【0015】
本実施の形態では、この操作デバイス10の左側面または右側面のいずれか一方側に固定具が固定される。この固定具は例えば可撓性あるベルトを環状としたものである。この例の操作デバイス10を操作するユーザは、固定具にユーザ自身の人差指から小指までを通し、操作デバイス10の本体をユーザの親指の付根に当接させた位置に固定して用いる。
図1,2の例では、操作デバイス10の右側面側がユーザの手の平に押付けられて操作デバイス10が固定された状態が示されている。
【0016】
またこの操作デバイス10の大きさは、固定具に指を通して操作デバイス10を装着したユーザが、自然に操作デバイス10を把持したときに、ユーザの親指末節が操作デバイス10の正面側のボタン操作部222に到達する程度の大きさとする。つまり本実施の形態では、ロッキングボタン224を含む、操作部22の少なくとも一部のボタン等が、把持部21を把持したときに、ユーザの指が到達する範囲に配される。
【0017】
すなわち、操作デバイス10を装着したユーザが、自然に操作デバイス10を把持したときには、当該ユーザの人差指は操作デバイス10のロッキングボタン224に触れる位置となり、ユーザは把持部21を手の平と、中指、薬指、小指とで握りこむようになる。もっとも、この状態からユーザが手を開いても、固定具により操作デバイス10がユーザの手に固定されるので、操作デバイス10が落下することはない。
【0018】
ロッキングボタン224は、本発明の可動部に相当し、操作デバイス10の背面側に突出した第1の位置と、操作デバイス10の本体側へ押し込まれた第2の位置との間で移動可能なボタンである。このロッキングボタン224は、ユーザの人差指等で第2の位置に向って押し込み操作され、またユーザが指を放せば、第1の位置に復帰するよう付勢されている。
【0019】
本実施の形態の操作デバイス10は、このロッキングボタン224により、ユーザの指に触力覚を提示することで、ユーザが仮想的に手にした仮想対象物の質感を表現する。具体的には、このロッキングボタン224の回転軸にモータを取付け、ユーザがロッキングボタン224を押込む力に対して抵抗する反力であって、提示しようとする仮想対象物の硬さに応じた大きさの反力を、当該モータのトルクによって発生させる。もっともこの場合、ユーザがロッキングボタン224に加える押込みの力の大きさに対応して、幅広い範囲に亘ってリニアにトルクを出力できるモータ等の駆動要素が必要となり、小型なモータでは実現することが困難である。そこで本発明の実施の形態の一例では、反力を直接与える代わりに、ロッキングボタン224の可動範囲を変化させることで、ユーザが仮想的に手にした仮想対象物の質感を表現する。
【0020】
具体的に、この例の本実施の形態では、このロッキングボタン224は、
図4に例示するように、ボタンカバー224bと、ボタンカバー支持部30と、押込み時にユーザが加えた力の大きさを検出する力センサ31と、ロッキングボタン224の可動範囲を、指示された範囲に規制する規制部32とを備えている。この規制部32は、例えば駆動手段としてのモータ321と、その制御回路322と、当該駆動手段により駆動される規制部材であるアーム323とを含んで構成される。
図4では、ボタンカバー224bの一部と、操作デバイス10の本体側の一部、そして、ボタンカバー支持部30の一部とが破断して示されている。
【0021】
力センサ31は、ロッキングボタン224のユーザの指が触れる側に設けられており、ユーザの指がロッキングボタン224に加えた力の大きさを所定のタイミングごとに繰返し検出して出力する。具体的にこの力センサ31は、ひずみセンサ等を用いた公知のものを採用できる。また、上記タイミングは例えば40Hzないし1kHz程度の周期としてもよい。
【0022】
ボタンカバー224bは、本発明の可動部材に相当し、ユーザの指によって押圧される面を有している。ボタンカバー支持部30は、操作デバイス10の本体側に固定されたヒンジを有し、このヒンジ周りの所定の角度範囲(上記第1の位置と第2の位置との間)で回転可能な状態にボタンカバー224bを支持する。またこのボタンカバー支持部30は、ボタンカバー224bを第1の位置に向って、バネ等の弾性体により付勢している。これよりユーザが押圧しない状態では、ボタンカバー224bは第1の位置に移動する。本実施の形態のこの例では、この弾性体が本発明の付勢手段を実現する。
【0023】
このボタンカバー224bは、操作デバイス10の背面側に突出した第1の位置と、操作デバイス10の本体側へ押し込まれた第2の位置との間であって、後に述べるアーム323に当接する位置(当接位置と呼ぶ)まで押込み可能となる。そこでユーザが操作デバイス10本体を握る動作を行うとともに、ボタンカバー224bを人差指で押圧すると、当接位置まではボタンカバー224bは、特段の抵抗力を感じさせることなく(ボタンカバー支持部30の付勢力のみに抵抗するだけで)移動する。そして当接位置でアーム323に当接することで、当接位置まで押し込んだところで硬いものに触れたという触力覚がユーザに対して提示される。
【0024】
この当接位置からさらにユーザが力を入れて握る動作を行い、それによりボタンカバー224bの押圧力を強めたときに、アーム323を操作デバイス10の本体側に後退させるようモータ321を回転させると、ユーザに対して、あたかも握る力によって対象物が変形したかのような触力覚を提示できる。この際、モータ321の回転速度をユーザによるボタンカバー224bの押圧力に応じて変化させることで硬さの相違も併せて提示できる。
【0025】
規制部32のモータ321は、サーボモータまたはステッピングモータ等、回転角度を制御可能なモータである。このモータ321はギアヘッドが一体化されたいわゆるギアードモータであってもよい。このモータ321は、制御回路322から入力される電流により回転動作する。
【0026】
モータ321の制御回路322は、制御部11から入力されるトルク制御値τに応じた大きさの電流をモータ321に供給する。モータ321はこの電流に応じたトルクで、アーム323の先端(ボタンカバー224bに当接する部分)をボタンカバー224b側へ移動させる方向へ回転する。そしてこのトルクとユーザのボタンカバー224bの押圧力(アーム323によりモータ321の回転方向とは逆方向の回転力として伝達される)とが相殺し、押圧力がトルクに勝っている分の速度でボタンカバー224bが第2の位置に向って移動することとなる。また押圧力とトルクとがつり合えば、その時点の位置でボタンカバー224bが動かない状態となる。
【0027】
またこの制御回路322は、制御部11からトルク制御値τに代えて回転角度θの入力を受けてもよい。ここで角度θは、アーム323の先端(ボタンカバー224bに当接する部分)の可動範囲のうち、ボタンカバー224bの初期位置(力が加えられていない状態のボタンカバー224bの位置)から最も離れた位置にあるときの角度を「0」とし、ボタンカバー224bの初期位置に近接する方向を角度の正の方向とする。この例の場合制御回路322は、当該入力された回転角度θまでモータ321を回転制御して、アーム323の先端をボタンカバー224b側へ移動させる方向へ角度θに相当する角度だけ回転する。なお、モータを定められた回転角度まで回転して停止させる制御については広く知られているので、ここでの詳しい説明は省略する。
【0028】
アーム323は、本発明の規制部材に相当し、モータ321の回転軸に取付けられ、モータ321の回転角度θに応じて、ボタンカバー224bの移動可能範囲を規制する。具体的に本実施の形態の例では、アーム323は、
図4に例示するように、ボタンカバー224bの裏側、つまり操作デバイス10の本体側(ボタンカバー224bの移動軌跡上)に配され、アーム部材323aと、円板状のアーム部本体323cとを有している。
図4の例では、円板状のアーム部本体323cの中心がモータ321の回転軸に固定される。そしてアーム部材323aはこのアーム部本体323cと一体的に構成されて、このアーム部本体323cからその円周接線方向に突出する凸部となっている。
【0029】
この
図4の例のアーム323によれば、モータ321の回転角度に応じてアーム部材323aの先端(当接部)の位置が、ボタンカバー224bの移動可能範囲内で移動する。これによりボタンカバー224bはアーム部材323aの当接部に当接する当接位置まで移動可能となる。すなわち本実施の形態のこの例では、制御部11,制御回路322及びモータ321が協働して、規制部材移動手段を実現している。
【0030】
図5は、
図4の例のアーム323と、ボタンカバー224bとの関係を概念的に示した図である。
図5に概念的に示すように、アーム323はアーム部材323aの長手方向(突出方向)とボタンカバー224bの移動方向とのなす角度が鈍角(90度以上)であれば、ボタンカバー224bの移動範囲を規制することがなく、第1の位置(
図5(A)のX)と、第2の位置(
図5(A)のY)との間で自由に(ボタンカバー支持部30の付勢力のみに抵抗するだけで)移動可能となっている。
【0031】
一方、アーム323がモータ321により回転角度θだけ回動し、アーム部材323aの長手方向(突出方向)とボタンカバー224bの移動方向とのなす角度φが鋭角(90度未満)となったときには、アーム部材323aの先端がボタンカバー224bの移動軌跡内に位置することとなる。そして当該なす角φが「0」に近くなるほど、アーム部材323aとボタンカバー224bとの当接位置(
図5(B)のY′の位置)が、ボタンカバー224bの第1の位置(
図5(B)のX)に近接する。これより、ボタンカバー224bの押込み可能量(可動範囲)が規制される。
【0032】
なお、この規制部32は
図4に例示したようなモータ321及びアーム323の例に限られず、ボタンカバー224bの移動範囲を指定された範囲に規制できるものであれば、例えば駆動手段としてのリニアアクチュエータと、当該駆動手段によって移動される規制部材としてのソレノイドのように、ボタンカバー224bの移動方向に直線的に移動し、その一端側がボタンカバー224bと当接してボタンカバー224bの移動範囲を規制するものであってもよい。
【0033】
次に本実施の形態の例に係る制御部11の動作について説明する。本実施の形態では、この制御部11は、機能的には、
図6に例示するように、操作伝達部51と、押圧力情報受入部52と、設定受入部53と、規制量決定部54と、指示部55とを含んで構成される。
【0034】
操作伝達部51は、操作デバイス10の操作部22においてユーザが行った操作の内容を表す信号の入力を受けて、この信号を、通信部14を介して主装置20へ送出する。
【0035】
押圧力情報受入部52は、力センサ31が検出した、ユーザの指がロッキングボタン224に加えた力の大きさの情報の入力を、インタフェース部13を介して受け入れて、規制量決定部54に出力する。
【0036】
設定受入部53は、通信部14を介して主装置20から、提示するべき仮想対象物の硬さの情報の入力を受け入れる。この情報は、例えば表現可能な硬さを数値として表したものでよい。設定受入部53は、受け入れた情報を設定情報として、規制量決定部54に出力する
【0037】
規制量決定部54は、押圧力情報受入部52から入力される情報と、設定受入部53から入力される設定情報とを用いて、可動部であるロッキングボタン224の移動可能範囲の規制量を決定し、指示部55に出力する。具体的にこの規制量決定部54は、設定受入部53から入力される設定情報(提示する硬さを表す情報)に基づいて、ユーザがロッキングボタン224に対して加えた力の大きさFに対するモータ321へ出力するトルク制御値τの比の値(r=τ/F)を決定する。そして規制量決定部54は、押圧力情報受入部52から入力される、ユーザがロッキングボタン224に対して加えた力の大きさの情報Fと、上記決定した比の値rとに基づいて、出力するべきトルク制御値τを求める。そして規制量決定部54は、このトルク制御値τを、規制量の情報として指示部55に出力する。
【0038】
指示部55は、規制量決定部54から入力される規制量の情報であるトルク制御値τを、モータ321の制御回路322に出力する。これによりモータ321が回転し、それによりアーム323が回転して、ロッキングボタン224の移動可能範囲を規制する。
【0039】
[規制量決定部が規制量の情報として回転角度を出力する場合]
また、規制量決定部54は、規制量の情報として、トルク制御値τに代えて回転角度θを出力してもよい。この例では、規制量決定部54は、設定受入部53から入力される設定情報を用いて、ユーザがロッキングボタン224に対して加えた力の大きさFに対するモータ321の回転角度θの単位時間(例えば力Fを測定する周期)あたりの変動速度vの比の値r′=v/Fを決定する。そして規制量決定部54は、押圧力情報受入部52から入力される、ユーザがロッキングボタン224に対して加えた力の大きさの情報Fと、上記決定した比の値r′とに基づいて、単位時間あたりの変動速度vを求める。そして規制量決定部54は、モータ321の現在の回転角度θpに、変動速度vを加えて出力するべき回転角度θを得る。
【0040】
あるいは、別の例として、規制量決定部54は、設定受入部53から入力される設定情報を用いて変動速度vの値を用いずに、ユーザがロッキングボタン224に対して加えた力の大きさFに対するモータ321の回転角度θの比の値r″=θ/Fを決定する。そして規制量決定部54は、押圧力情報受入部52から入力される、ユーザがロッキングボタン224に対して加えた力の大きさの情報Fと、上記決定した比の値r″とに基づいて、出力するべき回転角度θを得る。
【0041】
そして規制量決定部54は、ここで得られた回転角度の情報θを、規制量の情報として指示部55に出力する。
【0042】
この例では、指示部55は、規制量決定部54から入力される規制量の情報である回転角度θを、モータ321の制御回路322に出力する。そして制御回路322がこの回転角度θまでモータ321を回転し、それによりアーム323が回転して、ロッキングボタン224の移動可能範囲における当接位置が変動する。
【0043】
なお、これらの制御における比の値r,r′は、それぞれを用いてモータ321を制御するときに、当該モータ321の回転動作によってロッキングボタン224を押し戻す力fが、ユーザの加えた力Fを超えないように設定されてもよいし、当該モータ321の回転動作によってロッキングボタン224を押し戻す力fが、ユーザの加えた力Fを等しくなるように、または超えるように設定されてもよい。
【0044】
[動作]
本実施の形態の操作デバイス10は基本的に以上の構成を備えており、次のように動作する。この操作デバイス10は、
図7に例示するように、家庭用ゲーム機等の主装置20から提示するべき仮想対象物の硬さの情報の入力を、設定情報として受け入れる(S1)。操作デバイス10は、この設定情報に基づいてユーザがロッキングボタン224に対して加えた力の大きさFに対するモータ321へ出力するトルク制御値τの比の値(r=τ/F)を決定する(S2)。
【0045】
その後、操作デバイス10の力センサ31が、ユーザの指がロッキングボタン224に加えた力の大きさを、例えば1kHzの周期で繰り返し検出する(S3)。操作デバイス10は、力センサ31によりユーザの指がロッキングボタン224に加えた力の大きさFを検出するごとに、この検出した力の大きさFと、先に決定した比の値rとを用いて、出力するべきトルク制御値τを演算する(S4)。
【0046】
操作デバイス10は、このトルク制御値τに応じた大きさの電流をモータ321に供給する(S5)。本実施の形態では、このモータ321の制御が、操作デバイス10内の各部により(つまり主装置20との通信を行うことなく)、力センサ31による、ロッキングボタン224に加えられた力の大きさの検出のタイミングごとに行われ、例えば割り込みなど終了の指示が別途主装置20側から入力されるなど所定のタイミングが到来するまで以上の処理を繰り返す。
【0047】
この制御により、モータ321は供給された電流に応じたトルクで回転するようになり、アーム323の先端(当接する部分)がボタンカバー224b側へ移動する。これにより、
図8に示すように、当該トルクとユーザのボタンカバー224bの押圧力とが相殺し、押圧力がトルクに勝っている分の速度でボタンカバー224bが第2の位置に向って移動することとなる。なお
図8では、横軸に時間、縦軸にトルク制御値τを示しており、第1,第3の部分(T1,T3)ではユーザが押圧力を徐々に大きくしており、これに合わせてトルク制御値τが上昇している状態が示されている。また、第2の部分(T2)ではユーザが略一定の押圧力でボタンカバー224bを押圧しており、トルク制御値τが一定となっている状態が示されている。
【0048】
[消費電力の低減例]
また、ここまでの説明における操作デバイス10では、
図8に示したように、ユーザがボタンカバー224bを押圧している間は、対応したトルク制御値τ(または対応した回転角度θ)によりモータ321が制御されているため、モータ321には対応した電流が供給され続ける状態となり、消費電力が大きくなることがある。
【0049】
そこで本実施の形態の一例では、制御部11が、規制量の情報としてのトルク制御値τまたは回転角度θの時間変化を調べ、この時間変化が所定の範囲内にあるときに、規制量の情報であるトルク制御値τまたは回転角度θを補正し、当該補正された規制量の情報により、可動部であるボタンカバー224bの移動可能範囲を規制するよう規制部32に指示することとしてもよい(第1の電力低減の制御)。
【0050】
具体的に、この例の変形例1の制御を行う制御部11では、規制量決定部54が、まず、押圧力情報受入部52から入力される情報と、設定受入部53から入力される設定情報とを用いて、可動部であるロッキングボタン224の移動可能範囲の規制量を決定する。このとき規制量決定部54は、過去所定時間(例えば2秒間)に決定した規制量を記憶部12に蓄積して記憶する。
【0051】
そして規制量決定部54は、記憶している、過去所定時間(例えば2秒間)に決定した規制量の最大値と最小値との差を求め、当該差が予め定めたしきい値を下回るか否かを判断する。ここで、当該差が予め定めたしきい値を下回っていれば、規制量決定部54は、規制量の時間変化が所定の範囲内にあると判断して、直前に決定した規制量の情報を補正する。
【0052】
この補正は、例えば次のように行う。規制量決定部54は、規制量の時間変化が所定の範囲内にあると判断した時点からの経過時間tを計時する(この経過時間tは例えば定期的なタイミングでインクリメントされるカウンタの値でよい)。そして規制量決定部54は、規制量であるトルク制御値τや回転角度θを、経過時間tに応じて低減補正する。一例として、トルク制御値τに対する、補正したトルク制御値τ′を、
τ′=τ×exp[-αt]
と定める。ここでαは正のパラメータ定数であり、予め定めておく。またexp[]は、指数関数を表す。そして規制量決定部54は、ここで補正したトルク制御値τ′を指示部55に出力する。
【0053】
また回転角度θを用いて制御を行う場合も同様に、決定した回転角度θに対する、補正した回転角度θ′を例えば、θ′=θ×exp[-αt]と定め、補正した回転角度θ′を指示部55に出力すればよい。
【0054】
なお、規制量決定部54は、記憶している、過去所定時間(例えば2秒間)に決定した規制量の最大値と最小値との差が予め定めたしきい値を下回らない場合は、規制量の時間変化が所定の範囲内にないと判断する。規制量決定部54は、この場合は、直前に決定した規制量であるトルク制御値τや回転角度θを指示部55にそのまま出力する。なお、この場合に規制量決定部54は、規制量の時間変化が所定の範囲内にあると判断した時点からの経過時間tを計時中であれば、当該計時を中断してtの値を「0」にリセットしておく。
【0055】
この例によると、
図9に例示するようにユーザが押圧力を徐々に大きくしている期間T1では、操作デバイス10は、これに合わせてトルク制御値τ等を上昇させる。その後、ユーザが略一定の押圧力でボタンカバー224bを押圧している状態が所定の時間(例えば2秒)以上続くと(期間T2)、この期間は一定のトルク制御値τで制御を行うが、その後、トルク制御値τを低減補正する(期間T3)。またユーザが押圧力を徐々に大きくし始めると(期間T4)、操作デバイス10は、これに合わせてトルク制御値τ等を上昇させる。この制御によれば、
図8に例示した制御の結果に比べ、トルクの時間積分量が低減され、消費電力も低減される。
【0056】
なお、この例では期間T3の間、ユーザには、押圧力を変えていないのに、ロッキングボタン224が押込まれていく触力覚が提示されることとなる。このような触力覚が不適切な場合には、期間T3の間、トルク制御値τを時間経過に応じて低減していけばよい。このようにすれば、ロッキングボタン224が押込まれていく感覚をあまり与えることがない。
【0057】
また電力低減の方法はここで説明したものに限られない。制御部11は、規制量の情報としてのトルク制御値τまたは回転角度θの時間変化が所定の範囲内にあるときに、規制量の情報であるトルク制御値τまたは回転角度θを補正することに代えて、決定した規制量の時間変化に基づき、可動部であるロッキングボタン224の移動可能範囲を規制するよう規制部32に指示することとしてもよい(第2の電力低減の制御)。
【0058】
この制御を行う例では、制御部11では、規制量決定部54が、まず、押圧力情報受入部52から入力される情報と、設定受入部53から入力される設定情報とを用いて、可動部であるロッキングボタン224の移動可能範囲の規制量を決定する。このとき規制量決定部54は、前回決定した規制量と、今回決定した規制量とを記憶部12に記憶する。
【0059】
そして規制量決定部54は、記憶している、前回の規制量と、今回の規制量との差(時間変化)を求め、当該差が予め定めたしきい値を上回るか否かを判断する。ここで、当該差が予め定めたしきい値を上回っていれば、規制量決定部54は、今回決定した規制量であるトルク制御値τや回転角度θを指示部55にそのまま出力する。
【0060】
また、規制量決定部54は、上記差(規制量の時間変化)が予め定めたしきい値を上回っていなければ、規制量決定部54は、規制量であるトルク制御値τまたは回転角度θを所定値β(例えば「0」)まで変化させるよう制御する。この補正は、例えば次のように行う。規制量決定部54は、規制量の時間変化が予め定めたしきい値を上回っていないと判断した時点からの経過時間tを計時する(この経過時間tは例えば定期的なタイミングでインクリメントされるカウンタの値でよい)。そして規制量決定部54は、規制量であるトルク制御値τや回転角度θを、経過時間tに応じて補正する。一例として、トルク制御値τに対する、補正したトルク制御値τ′を、
τ′=τ×exp[-αt]+β
と定める。ここでαは正のパラメータ定数であり予め定めておく。またβは、変化後の設定値であり例えば「0」などとして予め定めておく。またexp[]は、指数関数を表す。そして規制量決定部54は、ここで補正したトルク制御値τ′を指示部55に出力する。
【0061】
また回転角度θを用いて制御を行う場合も同様に、決定した回転角度θに対する、補正した回転角度θ′を例えば、θ′=θ×exp[-αt]+βと定め、補正した回転角度θ′を指示部55に出力すればよい。
【0062】
この例によると、
図10に例示するようにユーザが押圧力を徐々に大きくしている期間T1では、操作デバイス10は、これに合わせてトルク制御値τ等を上昇させる。その後、ユーザが略一定の押圧力でボタンカバー224bを押圧している状態となると、トルク制御値τを例えば「0」となるまで所定時間の間に変化させる(期間T2)。その後、ユーザが略一定の押圧力でボタンカバー224bを押圧している状態が続く間は、予め定められた値(例えば「0」)のトルク制御値τによりモータ321を制御し続ける(なおトルク制御値τが「0」であればモータ321は停止した状態となる)。その後、またユーザが押圧力を徐々に大きくし始めると(期間T3)、操作デバイス10は、これに合わせてトルク制御値τ等を上昇させる。この制御によれば、
図8,
図9に例示した制御の結果に比べ、トルクの時間積分量が低減され、消費電力も低減される。
【0063】
なお、この例では期間T2の間、ユーザには、押圧力を変えていないのに、ロッキングボタン224が第2の位置まで押込まれていく触力覚が提示されることとなる。ここでもこのような触力覚が不適切な場合には、期間T2の間、トルク制御値τを時間経過に応じて低減していけばよい。このようにすれば、ロッキングボタン224が押込まれていく感覚をあまり与えることがない。
【0064】
さらに制御部11は、決定した規制量の時間変化が所定の範囲内にあるときに当該規制量を補正し、当該補正された規制量だけ可動部の移動可能範囲を規制するよう規制部32に指示する第1の動作(第1の電力低減の制御)と、決定した規制量の時間変化に基づき、可動部の移動可能範囲を規制するよう規制部32に指示する第2の動作(第2の電力低減の制御)と、のいずれの動作を行うかを、予め定めた条件に基づいて決定し当該決定の結果に基づいてこれら第1、第2の動作のいずれかの動作を行うこととしてもよい。
【0065】
ここで上記予め定めた条件は、主装置20からの指示(すなわちユーザの設定等)によるものとしてもよい。また、制御部11は、電源部15の供給可能電力(電池残量等)に基づく条件により、これら第1、第2の動作のいずれの動作を行うかを、定めてもよい。この例では例えば、電池残量が十分である間は第1、第2の動作のいずれも行わない(決定した規制量での制御を行う)が、電池残量が第1のしきい値を下回り、第2のしきい値(第1のしきい値より小さい値とする)を上回っている状態となると第1の動作を行うこととし、さらに電池残量が第2のしきい値も下回る状態となると第2の動作を行うこととしてもよい。このような例によると、電池残量に応じて消費電力をより低減した制御が行われることとなる。
【0066】
なお、ここで述べた消費電力の低減例は、必ずしも力センサ31が検出した力Fに基づいてトルク制御値τまたは回転角度θが決められる場合に限られず、なんらかの方法でトルク制御値τまたは回転角度θが決められて制御されるものであれば、どのような制御についても適用可能である。
【0067】
例えば、力センサ31を用いることなく、ユーザの指の押圧力によるアーム323の角度変化の情報に基づき、モータ321のトルク制御を行い、ボタンカバー224b(ロッキングボタン224)の硬さを制御することとしてもよい。
【0068】
この場合は、例えば一般的に用いられるPD制御等の制御方法で、Pゲインの値を変化させ、硬さの感覚を変化させる。この例の場合も、消費電力低減のためには、以下のような制御を行うことが好適である。
【0069】
すなわち、
図8に例示した時系列変化のように、指でボタンカバー224bを押し込み、一旦指を止めて、更に奥(第2の方向)へボタンカバー224bを押し込むような場合に、通常のPD制御を行うと、
図8に例示したようにモータのトルク値が変化する。この場合、
図8のT2の期間に連続的にトルクが出力されることにより、比較的大きな電力が消費される。
【0070】
そこで、前述したような方法で、出力トルクの値を
図9および
図10に例示した態様に補正することで、電力低減が可能となる。なお、この場合に、通常のPD制御を継続した場合、出力トルクの補正によってトルクが減少し、アーム323がさらに押し込まれたことによって生じる角度の変化によって更に出力トルクが変化してしまうため、目的であるトルクの抑制および消費電力の低減の効果が適切に得られない。そこで、上述のように、出力トルクの補正を行った際のアーム323の角度の変化に対しては、通常のPD制御を適用しない処理を行う。
【0071】
あるいは、PD制御を用いるのではなく、ゲームアプリケーション等のアプリケーションプログラムの指示により、直接的に、モータ321のトルク値をコントローラに対して指定させることとしてもよい。この場合、例えばゲームアプリケーション内での「ものを掴む」等の現象に対応させた硬さ表現を行うことも考えられる。この例の場合であっても、
図9および
図10に例示したトルク補正は有効であるが、上記のようなトルク補正によるアームおよびボタンカバーの角度変化については、ゲームアプリケーション側の処理には反映させない(ゲームアプリケーション側には補正結果に対応する処理を行わせないよう制御する)こととする。
【0072】
[変形例]
また、ここまでの例では、ボタンカバー224bとアーム323とは連動しないものとして説明していたが、これらボタンカバー224bとアーム323とは互いに連結されて連動するように構成されていてもよい。
【0073】
この例でも、アーム323はモータ321の回転軸に取付けられ、モータ321の回転角度θrに応じて、ボタンカバー224bの移動可能範囲を規制する。そしてモータ321は、制御部11から入力されるトルク制御値τに応じた大きさの電流をモータ321に供給する制御回路322から電流供給を受けて回転動作する。
【0074】
本実施の形態のこの例では、モータ321の回転角度θがθ0のとき、アーム323に連結されたボタンカバー224bが第1の位置に移動し、モータ321の回転角度θがθ1(θ0≠θ1)のとき、ボタンカバー224bが第2の位置に移動するものとする。
【0075】
そしてこの例では、制御回路322は、制御部11からトルク制御値τが入力されている間は、当該トルク制御値τに応じた大きさの電流をモータ321に供給する。また、制御部11からトルク制御値τが入力されていない間は、モータ321の回転角度θrが、θ0に等しいか否かを判断し、等しくなければ回転角度θ0に向けてモータ321を回転制御するべく、モータ321に対して予め定めた大きさの電流を供給する。ここで供給する電流量は、ボタンカバー224bとアーム323とが互いに連結されていない例において、ボタンカバー224bが押圧されていないときに、ボタンカバー224bを第1の位置に移動させる付勢力に相当する力でボタンカバー224bを移動させる程度の力が提示される程度の電流量として実験的に定めればよい。すなわち、この例では、この制御回路322の動作により、付勢手段が実現されることとなる。