(57)【要約】【課題】本発明は、人間とコンピュータ間のインターフェイス装置の制御技術に関するものであり、特に、振動体感フィードバック装置の振動体感刺激効果の制御を提供する。【解決手段】ホストコンピュータから振動体感インターフェイス装置を制御する方法であって、前記の振動体感インターフェイス装置を操作するユーザへの振動体感インターフェイス装置で出力する所望の体感効果を決定する工程と、それぞれ独立した振動量や振動数の情報を前記の振動体感インターフェイス装置に入力する工程とから成り、その情報に基づいた周期制御信号により、前記の振動体感インターフェイス装置の回転モータを駆動して、質量体を一方向に回転させ、その質量体の回転が、前記制御信号のデューティサイクルで決められる振動量や制御信号の周波数で決められる振動数である所望の振動量や振動数の振動をユーザに対して出力される振動体感インターフェイス装置の制御方法。【選択図】図４
2010165383.tif 000002
【特許請求の範囲】
【請求項１】
体感インターフェイス装置で運動感覚性体感効果を出力させる方法であって、
ユーザが操作する運動感覚性体感フィードバック装置の少なくとも１つの操作自由度で作用力を出力できるような運動感覚性体感効果を示すコマンドを入力する工程と、
前記運動感覚性体感効果をマッピング処理して、振動体感インターフェイス装置に接触するユーザに振動体感効果を出力させる振動体感効果に変える工程と、
前記振動体感インターフェイス装置から前記振動体感効果を出力させる工程と、
を含む運動感覚性体感効果の出力方法。
【請求項２】
前記運動感覚性体感効果が、特定の振幅と周波数をもつ周期性効果であって、前記マッピング処理された振動体感効果が、同等の振動量と振動数をもつ振動である、
請求項１記載の出力方法。
【請求項３】
前記マッピング処理された振動が、各振動周期の一期間に出力されるアクチュエータへの制御信号を使って指示される、
請求項２記載の出力方法。
【請求項４】
前記運動感覚性体感効果が非周期性効果であって、前記マッピング処理された振動体感効果が、前記運動感覚性体感効果の振幅に基づいた振動量をもつ振動である、
請求項１記載の出力方法。
【請求項５】
前記運動感覚性体感効果がバネ効果であって、前記マッピング処理された振動体感効果が、前記バネ効果が所定の閾値以上の振幅値をもつ場合に出力される振動である、
請求項１記載の出力方法。
【請求項６】
前記運動感覚性体感効果がダンパー効果であって、前記マッピング処理された振動体感効果が低振動数の振動である、
請求項１記載の出力方法。
【請求項７】
前記運動感覚性体感効果がベクトル作用力効果であって、前記マッピング処理された振動体感効果が、前記ベクトル作用力効果が所定の第１閾値以下の振幅値をもつ場合には前記振動体感インターフェイス装置の小型モータを使って出力される振動であり、前記ベクトル作用力効果がその第１閾値以上の振幅値をもつ場合には前記振動体感インターフェイス装置の大型モータを使って出力される振動であり、前記ベクトル作用力効果が所定の第２閾値以上の振幅値をもつ場合には前記小型モータと大型モータの両方を使って出力する振動である、
請求項１記載の出力方法。
【請求項８】
ホストコンピュータに接続され、ユーザに振動体感刺激を与えるための体感フィードバック装置であって、
前記ユーザが接触するハウジングと、
前記ハウジングに接続され、その質量体が回転できるよう、そのアクチュエータ自身の回転軸上にオフセット取り付けされた偏心質量体を備えたアクチュエータと、
制御信号を入力し、前記アクチュエータを駆動して回転軸を中心に前記質量体を回転させる、前記アクチュエータを一方向に駆動できる回路と、
前記質量体がその障害部材に衝突した後、前記回路で駆動する方向と反対の方向に質量体を移動できるよう、前記質量体が完全に一回転するのを防止する障害部材と、
を備え、
前記制御信号、および、少なくとも部分的に、前記質量体を前記障害部材に衝突させることにより、前記ハウジング内に振動を発生させて、かつ、前記制御信号により、振動の振動量と振動数とをそれぞれ独立して調整可能である、
体感フィードバック装置。
【請求項９】
前記障害部材が、前記質量体の移動経路に配備された堅固停止部材である、
請求項８記載の体感フィードバック装置。
【請求項１０】
前記障害部材が、前記質量体の反対方向移動においてエネルギーを増加させるコンプライアンスをもつバネ部材である、
請求項８記載の体感フィードバック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間とコンピュータ間のインターフェイス装置の制御技術に関するものであり、特に、振動体感フィードバック装置の振動体感刺激効果の制御に関する。
【背景技術】
【０００２】
コンピュータ装置は、ゲームなどの娯楽活動に広く使用されている。現在、人気の高い任天堂の「ニンテンドー６４」、ソニーの「プレイステイション」、セガの「ドリームキャスト（登録商標）」などのゲーム用コンピュータ装置には、家庭用テレビに接続するためのゲーム用コンソールが備わっている。これらゲーム用コンピュータ装置には、ウィンドウズ（登録商標）ＰＣ、マッキントッシュなどのパソコンも含まれる。また、任天堂の「ゲームボーイ」や、パームコンピュータ社の「パームパイロット」などの個人向け携帯情報端末、またノートパソコンなどのポータブルコンピュータ装置も、多くの場合娯楽目的で使用されている。
【０００３】
これらのコンピュータ装置のユーザは、一般的にホストコンピュータ（例えば、ゲーム用コンソール）に接続するインターフェイス機器を使用することで、ゲーム、またはその他のアプリケーションプログラムと相互動作可能になる。このようなインターフェイス装置としては、ジョイスティック、ゲームパッド、マウス、トラックボール、入力ペン、運転ハンドルなどがある。ユーザが、ジョイスティック、ハンドル、マウス、ボタンやその他のユーザ操作器（操縦桿）を動かすとホストコンピュータが感知して、ホストコンピュータに表示された画面を操作できる。最近では、インターフェイス装置上のホストコンピュータおよび／またはマイクロプロセッサが１つまたはそれ以上のモータを制御して、ユーザ側に作用力を出力するような、インターフェイス装置内での体感フィードバック処理が利用できるようになった。これらの作用力は、ユーザがゲーム体験やインターフェイスタスクをさらに実感できるよう、画面上の動作や対象物と相関関係にある。ここでいう「体感フィードバック」という表現は、体感（または振動体感）フィードバック処理（ユーザの皮膚へ伝達される作用力）と、筋感覚（力）フィードバック処理（操縦桿の自由操作の度合いで付与される作用力）との両方を意味する。
【０００４】
ゲーム用コンソール市場において、これらの端末器は一般的に低コストで大量生産される。そのため、体感フィードバックインターフェイス装置はより単純な構造体でなくてはならず、その形態にも限界があった。現在使用されているフォースフィードバック可能な「ゲームパッド」コントローラ（または、ゲームパッド用のアドオンハードウェア）は、ソニーの「デュアルショック（登録商標）」、任天堂の「ランブルパック（登録商標）」、セガの「ジャンプパック」などの市販ゲーム用コンソールで作動するゲームと接続可能である。これらの装置は、１つまたはそれ以上のモータを採用してコントローラのハウジング部を振動させ、ゲームの進行と相互作動に関連した振動をユーザに出力する振動体感フィードバックコントローラである。一般的には、偏心型回転質量体（ＥＲＭ）モータ、つまり、ページャモータを使ってコントローラ上に振動を発生させ、それをユーザへ伝達する。この種類のモータは、そのモータ主軸に質量体が回転軸オフセット取り付けされているため、主軸が回転すると質量体によりモータおよびゲームパッドのハウジング部が前後に揺動する。
【０００５】
例として、「デュアルショック」コントローラと同類のゲームパッドコントローラ１０を図１に示す。コントローラ１０には、ユーザの方向入力用のｄ−パッド１２、ボタン入力用のボタン１４、方向入力用の１つ以上のジョイスティック１６が備わっている。また、コントローラ１０には、図３で以下に説明するような、コントローラのハウジング部と一体化した１つ以上のモータが搭載されている。ユーザは、コントローラの操作中両方のグリップ１１をにぎることで、コントローラのハウジング部を通して振動を感じることができる。また別の構造で、任天堂のゲームパッドコントローラやランブルパックアドオンに類似したコントローラ２０を図２に示す。この構造では、コントローラ１０と同様の方向入力手段とボタン入力手段が、ゲームパッドコントローラ２２に備わっているが、振動体感フィードバックのためのモータは搭載されていない。そこで、１つ以上のモータを有するアドオンユニット２４をコントローラ２２のインターフェイスポート２６に接続することで、コントローラ２２のハウジング部へ振動体感フィードバックさせることが可能になる。
【０００６】
前記のコントローラ１０の断面図を、図３に示す。コントローラ１０では、２つの個別ＥＲＭモータを採用している。コントローラの片方のグリップ２６内には、その回転主軸に連結し、小型質量体３０を備えた小回転モータ２８が搭載されており、もう一方のグリップ３２内には、大型質量体３６を備えた大型回転モータ３４が搭載されている。モータ２８と３４はともに、一般的に単一トランジスタの電圧モード増幅器により駆動する。各モータを一方向へ一定速度で作動すれば、それぞれ連結する質量体が回転することになる。大型モータ３４は、ユーザに対して、大きな振動量、つまり低周波を発生させるために、また、小型モータ２８は、小さな振動量、つまり高周波を伝達するために駆動される。現状のデュアルショック仕様では、大型モータ３４には８ビットの電圧変数が与えられているため、出力振動量は可変値である。小型モータ２８の電圧は、オンかオフに設定されているので、出力振動量は一定値である。一般的に、コントローラのモータ２８と３４が同時に駆動することはないが、ある種のゲームにおいては、いずれのモータを作動させるかをユーザが決定できる。大型モータの速度は可変であって、一般的にはゲームプログラムから大型モータにＤＣコマンドを送り、各コマンドごとにモータから２５５種の振動例（例えば、２５５通りの異なる振動数）を出力させることが可能である。ホストコンソールユニットの各ゲームでは、ゲームイベントに振動体感フィードバックを相関させるコマンドつまり信号をコントローラに与えることにより、モータのオン・オフ制御が可能となる。
【０００７】
任天堂とセガのシステムで使用する「ランブルパック」と「ジャンプパック」の体感アドオンユニットでは、ＥＲＭと類似するモータを採用しているが、現状では振動出力に単一モータを使用している。例をあげると、「ランブルパック」のモータは単純にオン動作（最高値または、設定周波数で）とオフ動作だけであって、振動数は可変でない。「ジャンプパック」ではアナログ値を使用して、振動量を可変で制御している。また、「マッドキャッツデュアル作用力レーシングウィール」などの別のコントローラは、エキサイティングなゲーム用コンソールに適しており、ＥＲＭモータを使用するのと同様の振動体感フィードバックを提供できるハンドヘルドコントローラである。
【０００８】
従来技術による振動体感コントローラの問題点の１つは、出力振動数が振動量と密接に関連していることである。例えば、「デュアルショック」のコントローラでは、可能な複数振動作用の１つを出力した場合、その振動量と振動数が強く連携しているため、個別には変更できない。特定の振動数（質量体回転速度）が指示される場合、その振動数は振動量と相関関係があるため、ユーザに伝達されても、変動は不可能である。このため、これらの装置における出力体感フィードバックの範囲はかなり制限されてしまう。つまり、高振動量と高振動数、または、低振動数と低振動量のみ出力が可能であって、これらのパラメータを個別に変化させる機能はもたないのである。
【０００９】
ゲーム用コンソールの振動体感コントローラは、ＰＣなどのパソコン用の高性能なフォースフィードバック装置に比べて構造的に単純であるにもかかわらず、コンソール利用ゲームにおける体感フィードバックは、やはりユーザにとっては効果的で楽しいものである。さらに、操作具の作用軸に作用力を付与するような自動車ハンドルや飛行シュミレーション用ジョイスティックといった、コンソールの振動体感装置は、他の高性能な筋感覚性パソコン用のフォースフィードバック装置に比べて大幅に安価である。これらのコンソール用振動体感装置をパソコンに接続できれば、インターフェイス機器に高額なコストをかけずに体感フィードバックを楽しみたいというコンピュータユーザに対して、魅力的な選択技を提供できるのである。しかしながら、パソコンで使用する従来のフォースフィードバック制御法では、振動体感フィードバックを制御することが難しいという問題点がある。例えば、パソコン上で有効であるほとんどの体感フィードバックは、イマージョン社の「イマージョンプロトコル」とマイクロソフト社の「ダイレクトＸ」を使用しており、これによってゲームは、個別の振動数パラメータや振動量パラメータを使って振動力を制御できる。しかしながら、従来のゲームパッド振動体感装置と制御方法では、振動数と振動量を個別に制御することができない。さらに、従来のコンピュータプロトコルでは、ゲームにおいて振動だけでなくベクトル作用力、スプリング作用力、ダンピング作用力、テクスチャ作用力、またその他の作用力を含む、ゲームパッドコントローラやその他の振動体感コントローラでは未知である多様なフォースフィードバック効果を出力させることは不可能である。そこで必要なのは、もっと多様な振動体感出力を可能にするような振動体感フィードバック制御方法であり、また、振動体感コントローラを、さらに高性能な筋感覚性フォースフィードバック装置へ上記効果を出力するようなアプリケーションプログラムと互換性をもたせることである。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、コンピュータに接続された振動体感フィードバック装置により運動感覚性作用力刺激をマッピング処理して振動体感刺激に変えることを目的としている。回転質量体を一方向に駆動し、その結果たる振動の振動量と振動数をそれぞれ別途に制御するような体感フィードバック装置から、高度な振動体感を出力させることが可能となる。その他の運動感覚性効果もマッピング処理により、振動やモータ制御方法に変換できる。
【課題を解決するための手段】
【００１１】
特に、本発明の態様の１つは、ホストコンピュータからゲームパッドやマウスなどの振動体感インターフェイス装置を制御する点である。その振動体感インターフェイス装置によりユーザへ出力される所望の体感効果を決定するために、それぞれ独立した振動量や振動数を示す情報が振動体感インターフェイス装置に入力される。その効果情報に基づいた周期制御信号により、振動体感装置の回転モータを駆動して質量体を回転させて、質量体の回転からユーザに出力される振動量と振動数をもつ振動を発生させるのである。振動量は、制御信号のデューティサイクルで決まり、振動数は、制御信号の周波数で決まる。実施例の１つでは、制御信号がオンとオフの動作だけで、各振動周期のオン期間に信号がオンになり振動量が決められる。前記の情報には、装置動作用の少なくとも１個のパラメータと高位コマンドが含まれている。または、情報が制御信号とほぼ等価であっても構わない。制御信号により、モータが一方向へのみ駆動される。
【００１２】
本発明の別の態様として、ホストコンピュータに接続された体感フィードバック装置に振動を与える方法は、回転可能な質量体を備えた、体感ファイードバック装置のアクチュエータを準備する工程と、制御信号を作成するための情報を体感フィードバック装置に入力する工程とから成る。制御信号によりアクチュエータを駆動制御して、質量の回転から装置を振動させるため質量体を回転軸を中心に回転させるのであって、その振動の振動量と振動数は制御信号を調整することによりそれぞれ別途に調整可能である。なお、振動量は、制御信号のデューティサイクルに基づいて決定され、振動数は、制御信号の周波数に基づいて決定される。そして制御信号は、各振動周期の所定時点に供与されるのある。制御信号のオン期間は、振動周期のパーセントで、または、各振動周期の所定の時間長で示すことが可能である。振動が出力される前に質量体を回転開始するような開始制御信号をアクチュエータに送る方法も、質量体の回転を確実にするのに利用できる。また、同様の特徴を備えた体感フェイードバック装置をも開示してある。実施例によっては、質量体を双方向に回転移動させても構わない。
【００１３】
本発明のさらなる別の態様として、振動体感インターフェイス装置で運動感覚性効果を出力させる方法は、ユーザが操作する運動感覚性体感フィードバック装置の少なくとも１つの操作の自由度において作用力を出力させるような運動感覚性体感効果を示すコマンドを入力する工程からなる。運動感覚性効果は、マッピング処理により、振動体感装置に接触するユーザに出力される振動体感作用力を発生する振動体感効果に変換される。振動体感効果は、振動体感インターフェイス装置により出力される。運動感覚性体感効果は、所定の振幅値と周波数をもつ周期性効果であってもよいが、その場合、マッピング処理された振動体感効果は等価な振動量と振動数をもつ振動となる。運動感覚性体感効果がバネ効果、ダンパー効果、障害効果、ベクトル効果などの非周期性効果である場合、マッピング処理された振動体感効果は非周期性効果の振幅値に基づいた振動量の振動となる。
【００１４】
さらに、本発明による特徴的な方法は、振動体感インターフェイス装置でより高度な作用力効果を出力させる方法である。また、本発明の振動体感フェードバック装置は、制御信号のデューティサイクルと周波数を利用した偏心回転質量体モータによる振動出力の振動量や振動数をそれぞれ独立して制御および指定でき、低価格の単方向の増幅器や制御回路を利用している。運動感覚性作用力をマッピング処理して振動体感効果に変換する技術により、振動体感装置の体感効果を制御できる運動感覚性フォースフィードバック装置を制御するためのソフトが実現可能である。それゆえ、刺激的なコンピュータソフトの高度な体感フィードバック効果を体験するのに、より安価な振動体感装置をユーザに選択させることができるのである。
【００１５】
本発明の上記およびその他の特徴は、以下の本発明の説明の熟読や複数の図面の査定から、当業者には明白となろう。
【図面の簡単な説明】
【００１６】
【図１】本発明で利用可能なゲームパッド式振動体感インターフェイス装置の斜視図である。
【図２】本発明で利用可能なゲームパッド式振動体感インターフェイス装置の斜視図である。
【図３】図１のゲームパッド装置の内部を上から見た図である。
【図４】本発明の使用に適した振動体感インターフェイス装置のブロック図である。
【図５】本発明における制御信号とその結果得られる出力振動を示すグラフである。
【図６】図５の変更例である本発明の制御信号とその結果得られる出力振動を示すグラフである。
【図７】異なる周波数の制御信号と、その結果得られる振動を示すグラフである。
【図８】異なる周波数の制御信号と、その結果得られる振動を示すグラフである。
【図９】異なる周波数の制御信号と、その結果得られる振動を示すグラフである。
【図１０】図１０（Ａ）及び（Ｂ）は、運動感覚性バネ作用力、および、運動感覚性バネ作用力からマッピング処理された振動体感を示す作用力グラフ図である。
【発明を実施するための形態】
【００１７】
本出願では、振動体感コントローラによる振動体感フィードバックの出力強化技術に加えて、体感フィードバックゲームパッドなどの高性能の作用力効果を利用した振動体感インターフェイスコントローラの制御技術について説明する。ここでは、その装置のユーザへ振動を出力するコントローラ、つまり、インターフェイス装置を、「振動体感装置」または、「振動体感フィードバック装置」という表現で示しており、これらの装置には、ゲームパッド、ハンドヘルド式操縦ハンドル、フィッシングコントローラ、ジョイスティック、マウス、トラックボール、アダルトデバイス、グリップ、リモートコントローラ、ハンドヘルド式ゲーム装置、平面スクリーン、入力ペンなどがあげられる。対称的に、「運動感覚性装置」または、それに相似する表現は、その装置の主軸に沿った力、つまり、装置の操作具の動きの自由度に応じた作用力を付与する装置を指す。
【００１８】
図４は、本発明に採用するのに適当な、体感システム１００を示したブロック図である。システム１００には、ホストコンピュータ１０２と振動体感装置１０４が備わっている。
【００１９】
ホストコンピュータ１０２は、多様な演算装置や電子装置から選択できる。好ましい一実施例においては、コンピュータ１０２として、ＰＣ互換性コンピュータ、マッキントッシュパソコン、または、任天堂やセガ、ソニー、マイクロソフト社のゲームコンソール装置といったパソコンやゲームコンソール、または、ワークステーションを使用している。また別の実施例として、ホストコンピュータ１０２に、例えば双方向テレビ機能をユーザに提供するための「セットトップボックス」を採用してもかまわない。「ネットワークコンピュータ」や「インターネットコンピュータ」といった、インターネットやワールドワイドウェブに使用する標準的な接続やプロトコルを使ってユーザを地域的、または海外ネットワークと情報交換可能にするような装置でもよい。いくつかの実施例では、ハンドヘルド型ビデオゲームユニットや、ポータブルコンピュータ、アーケードゲーム機などの、ユーザが持ったり接触したりするインターフェイス装置や操作装置といったケース、つまり同じハウジング部内に、ホストコンピュータ１０２を設置している。ホストコンピュータには、ホストマイクロプロセッサ、随時書き込み読み出しメモリ（ＲＡＭ）、読み込み専用メモリ（ＲＯＭ）、入出力（Ｉ／Ｏ）回路、音響出力装置、その他当業者にとっては周知であるコンピュータ部品が装備されていることが好ましい。また、記憶装置（ハードディスクドライブ、ＣＤＲＯＭドライブ、フロッピー（登録商標）ディスクドライブなど）、プリンタ、その他の入出力装置などの周辺機器も、ホストコンピュータ１０２に接続可能である。
【００２０】
表示装置１０６は、コンピュータ１０２に接続されているか、その一部を形成していることが好ましく、この装置によりゲーム環境、オペレーティングシステムのアプリケーション、シュミレーション等のグラフィック環境の画像が表示される。表示装置１０６には、ＬＣＤディスプレイ、ＬＥＤディスプレイ、ＣＲＴディスプレイや、平面パネルスクリーン、ディスプレイゴーグルといった多様な種類のうち、どの装置を採用してもかまわない。
【００２１】
ホストコンピュータ１０２は、必要に応じて、インターフェイス装置１０４とその他の周辺機器を介してユーザが相互作用できるような、ホストアプリケーションプログラムを実行することが好ましい。例えば、このホストアプリケーションプログラムは、ビデオゲーム、ワードプロセッサ、またはスプレッドシート、ＨＴＭＬまたはＶＲＭＬ命令を実行するウェブページやブラウザ、科学分析プログラム、バーチャルリアリティトレーニング用プログラムまたはアプリケーション、またはその他、装置１０４の入力を利用して体感フィードバックコマンドを装置１０４へ出力する（或いは、ホスト上のＡＰＩやドライバプログラムなどの異なるレイヤーがこの命令を出力してもよい）ようなアプリケーションプログラムであって構わない。このホストプログラムでは、装置１０４の電子とセンサから受信する入力信号をチェックし、作用力値および／またはコマンドを装置１０４の作用力出力部へ出力する。これらのシュミレーションソフトウェアとコンピュータの入出力（Ｉ／Ｏ）装置を接続させるのに適当なソフトウェアドライバは、カリフォルニア州サンホセにあるイマージョンコーポレーションが提供している。
【００２２】
プログラムにおける数層の異なるレイヤーを、ホストコンピュータ１０２で実行することができる。例えば、アプリケーションレイヤーでは、ゲームプログラムやワードプロセッサなどの１つ以上のアプリケーションプログラムの実行が可能である。また、アプリケーションプログラミングインターフェイス（ＡＰＩ）レイヤー（例えば、マイクロソフト社のウィンドウズ（登録商標）で使用されている）や別のドライバレイヤーなどの数層のサブレイヤーも使用可能である。アプリケーションプログラムは作用力を直接命令でき、ドライバプログラムはアプリケーションプログラム内の相互作用をモニタして、設定条件が合えば体感効果を命令することができる。ある一実施例では、体感フィードバックドライバプログラムが運動感覚コマンドをアプリケーションプログラムから受け取り、そのコマンドを体感コマンドにマッピング変換して効果を出力する。その後、必要な情報がインターフェイス装置１０４に伝送される。
【００２３】
振動体感装置１０４は、二方向バス１０８によってホストコンピュータ１０２と接続している。この二方向バスは、ホストコンピュータ１０２とインターフェイス装置間の、いずれの方向にも信号を伝送することができる。例として、バス１０８は、ＲＳ２３２シリアルインターフェイス、ＲＳ‐４２２ユニバーサルシリアルバス（ＵＢＳ）、ＭＩＤＩ、または当業者には周知であるその他のプロトコルであって構わないし、または、並行バスやワイヤレスリンクでもよい。例えば、標準ＵＳＢでは、装置１０４のアクチュエータにも電力供給が可能な、比較的高速度のインターフェイスを提供できる。
【００２４】
振動体感装置１０４は、多くの実施例においてローカルマイクロプロセッサ１１０を内蔵している。ローカルマイクロプロセッサ１１０は、装置内の個別の部品間の通信効率を高めるために、任意で装置１０４のハウジング部に装備しても構わない。プロセッサ１１０は、装置１０４のローカルプロセッサと考えられる。ここでの「ローカル」とは、プロセッサ１１０がホストコンピュータ１０２内のどのプロセッサからも隔離されたマイクロプロセッサであることを意味する。また、「ローカル」は、装置１０４の体感フィードバックとセンサＩ／Ｏ専用のプロセッサ１１０も指す。マイクロプロセッサ１１０は、ソフトウェアの命令によって、ホスト１０２からのコマンドまたは要求の入力を待機し、そのコマンドまたは要求を復号化または一次停止し、そのコマンドまたは要求に応じた入出力信号を処理／制御するよう設定できる。いくつかの実施例では、プロセッサ１１０は、センサ信号を読み取り、そのセンサ信号、時間信号、および、高位ホストコマンドに応じて選択された記憶またはリレー処理された命令から所定の作用力を算出することにより、ホストコンピュータ１０２から独立して作動することが可能である。ローカルマイクロプロセッサ１１０としての使用に適したマイクロプロセッサには、ＰＣなどのパソコンで使用されている現在バージョンの「イマージョンタッチセンス」プロセッサのような、より高性能のフォースフィードバックプロセッサだけでなく、モトローラ社のＭＣ６８ＨＣ７１１Ｅ９、マイクロチップ社のＰＩＣＩ６Ｃ７４、インテル社の８２９３０ＡＸなどがある。マイクロプロセッサ１１０は、１個のマイクロプロセッサチップ、複数のプロセッサおよび／またはプロセッサ、および／またはデジタル信号プロセッサ（ＤＳＰ）機能を備えている。本発明で説明される制御技術は、例えば、ローカルマイクロプロセッサのブロック１１０に、マイクロプロセッサに加えエンコーダ処理回路、通信回路、ＰＷＭ回路などの関連部品を備えた「イマージョンタッチセンスプロセッサ」のファームウェアで実行可能である。偏心型回転質量体（ＥＲＭ）モータで実行できる、さらに高度な周期効果や刺激効果（イマージョンプロトコルで作成される）を出力する様々な技術は、マイクロプロセッサ１１０のファームウェアで提供できる。
【００２５】
マイクロプロセッサ１１０は、センサ１１２から信号を受け取り、バス１０８を介してホストコンピュータ１０２から出されたインストラクションに従って、アクチュエータ１２０と１２２に信号を伝送する。マイクロプロセッサ１１０は、ここで「制御信号」として定義される信号１１１を発信する。実施例の１つでは、この制御信号は、プロセッサ１１０のファームウェアで作成され、アクチュエータのインターフェイス１２４へ送られるＰＷＭ信号である。各モータごとに１つの制御信号があるのが好ましく、説明した実施例では２つの制御信号が入力される。ここで使う表現「オン期間」とは、この制御信号が高位に変わった後継続して高位である制御信号の期間をいう。後で更に詳しく説明するが、この制御信号によってアクチュエータのドライブ信号が作成される。
【００２６】
ローカル制御の一実施例では、ホストコンピュータ１０２が、バス１０８を介して高位の監督コマンドをマイクロプロセッサ１１０に伝送する。マイクロプロセッサ１１０がこのコマンドを復号化し、ホストコンピュータ１０２から独立して高位コマンドに応じて、アクチュエータとセンサーへの低位の作用力制御ループとを管理する。このオペレーションについては、本出願書に参照として付随された、米国特許第５，７３９，８１１号と第５，７３４，３７３号に詳細に記載されている。前記のホスト制御ループにおいて、作用力コマンドは、ホストコンピュータからマイクロプロセッサ１１０へ出力され、作用力、つまり、一定の特性をもつ作用力刺激を出力するようマイクロプロセッサに指示する。ローカルマイクロプロセッサ１１０は、１つ以上の自由度におけるマウスの位置を示す位置データなどのデータをホストコンピュータへ伝達する。このデータは、また、装置１０４内のボタンスイッチまたは別の部品の状態も示す。ホストコンピュータは、このデータを使って実行プログラムを更新する。ローカル制御ループでは、マイクロプロセッサからアクチュエータへ、アクチュエータ信号が伝送され、センサ１１２とその他の入力装置からマイクロプロセッサ１１０へ、センサ信号が伝送される。マイクロプロセッサ１１０は、入力されたセンサ信号を記憶した指示に従って処理することで、適当な出力アクチュエータ制御信号を決定できる。このマイクロプロセッサでは、出力作用力のローカル決定において、ホストコンピュータへセンサ信号から引き出した位置データを伝送するだけでなく、センサ信号を使用しても構わない。
【００２７】
また別の実施例では、マイクロプロセッサ１１０と同様の機能を提供するために、装置１０４に他のハードウェアをローカル的に設置している。例えば、固定論理と一体化したハードウェア型機器を使用して、アクチュエータに信号を送り、センサ１１２からセンサ信号を受信し、所定のシーケンス、アルゴリズム、または工程にしたがって体感信号を入力することが可能である。ハードウェアで所望機能の論理を実行する技術は、当業者にとっては公知のものである。このようなハードウェアは、本発明による装置のようにあまり複雑でないフォースフィードバック装置にも適用できる。
【００２８】
また別の、ホストコントロールによる実施例では、ホストコンピュータ１０２が、バス１０８を通してマイクロプロセッサ１１０か、（マイクロプロセッサ１１０がない場合）別の回路を介してアクチュエータに直接伝送する低位作用力コマンドを付与できる。ホストコンピュータ１０２は、このように装置１０４が送受信する全信号を制御し、処理する。例えば、ホストコンピュータが、アクチュエータ１２０か１２２が出力する作用力を直接制御し、センサ１１２と入力装置１２６からのセンサ信号を直接受信するのである。この実施例では、装置１０４では、複雑なローカルマイクロプロセッサ１１０、または、別の処理回路が必要ないので、フォースフィードバック装置のコストをさらに低減することが可能である。このホスト１０２はまた、本出願に付随の米国特許第５，９５９，６１３号に記載のように、アクチュエータに伝送される作用力値を伝送することもできる。
【００２９】
最も単純なホストコントロールの実施例では、ホストから装置へ伝送される信号は、予め設定された周波数と振幅値でアクチュエータをパルス処理するかどうかを示すシングルビットの信号であってもよい。さらに複雑な実施例では、ホストからの信号に、所望のパルス値を決定する振幅値、および／または、周波数を内包することが可能である。ローカルプロセッサを使用して、ある時間分だけ作用する所望の作用力値を示す簡単なコマンドをホストから受信するので、前記のマイクロプロセッサは、そのコマンドに基づいた所定の期間に作用力値を出力できる。前記のホストコマンドは、米国特許第５，９５９，６１３号に開示のように、作用力を形成するための「エンビロープ」を特定し、作用力出力時に付与することもできる。さらに、米国特許第５，９５９，６１３号で記載されているとおり、作用力値（振動量など）をリアルタイムで装置から出力できるよう、ホストコンピュータから出力される。上述した複数の方法を合成して、単一装置１０４に使用することも可能である。
【００３０】
ＲＡＭおよび／またはＲＯＭなどのローカルメモリを、装置１０４のマイクロプロセッサ１１０に接続して、マイクロプロセッサ１１０のコマンドまたはその他のデータを一時的に記憶させることが可能である。たとえば、マイクロプロセッサから出力可能であって記憶された作用力値のシーケンスや、アプリケーションプログラム、または別の条件で進行中のイベントに基づいて出力される作用力値のルックアップテーブルなどの作用力特性もメモリに記憶できる。さらに、アクチュエータで作用力出力（例えば、時間依存要素による作用力）を演算する場合に必要なタイミングデータを得るために、ローカルクロックをマイクロプロセッサ１１０に接続してもよい。ＵＳＢ通信インターフェイスを使用する実施例では、マイクロプロセッサ１１０のタイミングデータをＵＳＢ信号で補うことが可能である。
【００３１】
センサー１１２は、装置１０４の操作具１１４の位置や動作を検知して、その位置や動作を示す情報を含む信号を、マイクロプロセッサ１１０（またはホスト１０２）に伝送する。いくつかの実施例において、この操作具はゲームパッドのコントローラに付属の小型ジョイスティックであり、ホストコンピュータにコントロール入力するようユーザが双方向回転、または、直線で自由に操作できるものである。また別の実施例では、前記の操作具として、４つ以上の方向でホストコンピュータに入力できる方向パッドを使用している。その他、前記の操作具は、回転ダイル、リニアスライダー、ハンドル、フィンガーレセプタクル、シリンダ、などの制御部材であっても構わない。また、マウスや、３−Ｄ空間におけるゲームパッドの位置を検知するその他のコントローラのように、操作具がその装置自体のハウジング部を構成していてもよい。ジョイステックや、その他の操作具の位置を検知するのに適したセンサには、当業者には周知の、回転ボールやシリンダに摩擦結合したデジタル光学エンコーダがある。メカニカルスイッチ、線形光学エンコーダ、ポテンションメータ、光学センサ、速度センサ、加速センサ、張力ゲージ、その他のセンサも使用可能であり、相対センサでも絶対センサでも構わない。当業者には周知のように、光学センサインターフェイス１１６では、センサ信号を、マイクロプロセッサ１１０および／またはホストコンピュータ１０２で読み取り可能な信号に変換する。
【００３２】
アクチュエータ１２０と１２２では、マイクロプロセッサ１１０および／またはホストコンピュータ１０２からの信号、またはコマンドに応じて、装置１０４のユーザへ作用力を伝達する。記載の一実施例では、２個のアクチュエータ、小型アクチュエータ１２０と大型アクチュエータ１２２、を配備している。この好ましい実施例では、これらのアクチュエータに、モータの回転主軸に取り付けられた偏心質量体をもつ回転モータの偏心型回転質量体（ＥＲＭ）ＤＣモータを採用している。モータが回転すると、回転する質量体からの慣性力がモータのハウジング部またはハウジング部に接続された部品に振動が発生して、ハウジング部を把持または接触するユーザに振動体感刺激を伝達するのである。アクチュエータ１２０と１２２はこのようにして、「情報伝達」つまり「効果」の振動体感作用力を提供するのである。小型モータ１２０は高振動数で低振動量の作用力を、大型モータ１２２は低振動数で高振動量の作用力を出力する。
【００３３】
また別の実施例では、同一サイズまたは異なるサイズの１個または２個以上のアクチュエータにより、装置１０４のユーザへ振動体感刺激や作用力を伝達している。この場合、偏心型質量体を一方向へ回転させるような、ボイスコイルアクチュエータ、可動磁石アクチュエータ、水力または空動アクチュエータ、トルク型、ブラシ式または非ブラシ式モータなど、多種類のアクチュエータの使用が可能である。さらに、追加アクチュエータを採用して、操作具１１４に運動感覚性フォースフィードバックを付与することもできる。
【００３４】
マイクロプロセッサ１１０からの信号を、アクチュエータの駆動に適した信号に変換するために、アクチュエータ１２０と１２２とマイクロプロセッサ１１０との間に、アクチュエータインターフェイス１２４を任意で接続してもよい。インターフェイス１２４には、電力増幅器、スイッチ、デジタルアナログコントローラ（ＤＡＣ）、アナログデジタルコントローラ（ＡＤＣ）、その他当業者には周知の部品が装備されている。例えば、ある一実施例では、アクチュエータ１２０と１２２に、入手が簡単な単方向駆動のＥＲＭモータを採用している。モータ駆動用のアクチュエータインターフェイス１２４に使用される単指向性電圧モードの増幅器は、低価格の機器である。
【００３５】
また、別の入力装置１１８も装置１０４に内蔵されており、ユーザが操作すると、入力信号をマイクロプロセッサ１１０、またはホスト１０２へ伝送する。これらの入力装置としては、ボタン、ダイアル、スイッチ、スクロールハンドル、その他の制御器や機器があげられる。電力供給部１２０も、任意で装置１０４に内蔵、または接続可能であり、アクチュエータへ電力を供給するため、アクチュエータインターフェイス１２４および／またはアクチュエータ１２０と１２２に接続できる。別のさらに好ましい方法として、ＵＳＢやその他を使用したバス１０８から電力を入力する方法もある。また、入力された電力を装置１０４で蓄電し制御して、アクチュエータ１２０と１２２の駆動必要時や補充目的に使用することもできる。ＵＳＢの電力供給容量に制約があるため、最高の作用力を安定供給するには、マウス装置内に蓄電装置が必要になる（付随の米国特許第５，９２９，６０７を参照）。つまり、電力はコンデンサ、つまりバッテリに長時間蓄電され、振動体感を出力するため直ちに給電されるのである。また別の方法として、この技術をワイヤレス装置１０４に採用し、バッテリの電力を振動体感アクチュエータの駆動に使用することも可能である。
【００３６】
以下に述べる本発明の多様な制御特性のために、図１〜３に示すような従来のコンソールゲームパッドのインターフェイス装置を、インターフェイス装置１０４として利用が可能である。また別の実施例では、インターフェイス装置でより高性能な振動体感を制御して出力できるよう、従来のゲームパッドコントローラに、より高性能なローカルマイクロプロセッサを搭載している。例えば、プレイステイションコンソール用のソニーのデュアルショックと互換性のある製品を、イマージョンタッチレスプロセッサと互換性のあるマイクロプロセッサで使用できるように修正して、モータとエレクトロニクスは従来のまま使用することも可能である。しかしながら、本発明の振動体感コントローラが必要とする部品は、従来技術の標準的なコンソール機器からは得られないので、必要であれば、またはより優れた振動体感出力を提供するには、特定の部品を使用すればよい。例として、デュアルショック用コントローラでは、特別なプレイステイション用バスと知財プロトコルを使用しており、ＰＣ規格ではユニバーサルシリアルバス（ＵＳＢ）かシリアルプロトコルを使用し、「ダイレクトＸ」／「イマージョン」と互換性をもたせている。マイクロソフト社の「ダイレクトＸ」は、ＰＣ上で動作されるウィンドウズ（登録商標）のオペレーションシステムにおける一連の条件と体感効果を提供する。マッキントッシュやその他のコンピュータやシステムなどでは、これらのプラットフォームを使用するために、また別の標準プロトコルとインターフェイスが採用される。その他の実施例においては、ユーザへ振動を出力する振動体感インターフェイス装置を、ゲームパッド、ハンドヘルド式または卓上設置式ハンドル、フィッシング型コントローラ、ジョイステック、マウス、トラックボール、アダルト装置、グリップ、リモートコントロール、ハンドヘルド式ゲーム装置、平面スクリーン、入力ペンなどの振動体感制御機器と併用している。
【００３７】
駆動方法
上述したＥＲＭモータは安価であるので、量産用体感フィードバック装置への使用に適している。しかしながら、後述するようにＥＲＭモータの振動体感を出力するには、異なる方法で動作させても構わない。いくつかの実施例では、所望される振動体感の種類に応じて、単一の装置で２つ以上の駆動方法を採用している。
【００３８】
単指向性の増幅器やその他の部品は、より高性能な部品に比べてコストが低くて済むので、モータを一方向に駆動させるのが好ましい駆動方法である。しかしながら、別の双方向性の実施例では、（スピーカのように双方向性の）高調波駆動をＥＲＭモータに採用して、作用力機能制御信号を用いて独立可変の振幅値における正確な周波数を作成する。この双方向性の実施例では、モータの偏心型質量体は双方向の振り子運動で作動されるため、完全な一回転を行う必要がない。必要電力量が実質的に増加するような駆動方法では、一般的に低振動量の振動体感を出力するが、通常、単指向性の実施例よりも高価なドライバ回路を必要とするため、より繊細に制御された振動体感を提供することができる。
【００３９】
しかしながら、今まで説明してきたように、コストや必要電力量を増加させることなく、高調波駆動で発生させるものと同様の振動体感を発生させる別の方法もある。第１の方法は、ＥＲＭモータを回転動作で駆動させるのに単指向性の増幅器を使用して、振動の振動数を実現するために回転方向を変換するかわりに質量体にパルスを与える。第２の方法は、ＥＲＭモータを振り子（双方向性）運動で駆動させるのに単指向性の増幅器を使用するものである。しかしこの場合、（当業者には周知のように、モータのバックＥＭＦ値よりも小さな電圧を供給することでモータ速度は減速するが）モータは一方向にのみ駆動されるので、質量体は重力によって逆方向に移動し、増幅器の代わりにリターントルクが与えられるのである。この２つの駆動方式は、後述する制御方法で利用されている。この場合、指示された振動量が質量体を完全に回転できないほど低かった場合、振り子運動が起こる。例えば、ローカルマイクロプロセッサ１１０（または、その他のコントローラ）に伝送されるパラメータにより、ＥＲＭ回転か振り子運動かが決定されるのである。
【００４０】
第３の駆動方法では、ストップ部および／またはスプリングのような干渉部材を採用して、回転質量体の往復運動を確実にしている。ストップ部は、ＥＲＭモータの経路に設置され、ＥＲＭモータの完全回転を阻止する。このため、ストップ部をもつＥＲＭモータの衝撃によって、振動が装置のハウジング部へ伝達される。この時、ストップ部とＥＲＭとの間にスプリング素材も加えるか、または、代替として設置してもよい。ＥＲＭモータが（フォーム、ゴム、コイルバネ、ソフト材、その他の弾力があって柔軟な素材でできた）バネに当たると、ＥＲＭモータはバネの弾力性によって、バネが無い場合より大きな作用力で後退する。アクチュエータの作用力は、所望の振動量を付与すると同時にバネ作用力に対向できるよう、力学的に調整可能である。アクチュエータの作用力が取り除かれると、前記のバネによりシステムが再度付勢される。その結果、低価格で単指向性の増幅器が、質量体を双方向に回転させることが可能なのである。
【００４１】
振動体感効果と運動感覚作用力効果のマッピング処理
本発明で説明した問題の焦点は、運動感覚性体感効果を振動体感効果へと変換する方法である。多くの周知の運動感覚効果が、現在使用されている装置で実現できる。例えば、イマージョン社の「イマージョンスタジオ」は、開発者が多様な体感刺激、主にスプリング作用力、ダンピング作用力、障害作用力などの運動感覚効果をデザインできるソフトウェアツールである。振動体感装置が、運転ハンドルやフォースフィードバック用ジョイスティック（ロギテック社の「ウイングマンフォースフィードバック」など）の運動感覚性体感に使用されるアプリケーションプログラムや、その他のソフトウェア、または、運動感覚性フォースフィードバック用マウス（ロギテック社の「ウイングマンフォースフィードバックマウス」など）と併用される場合、問題が生じる。振動体感装置の多くは、装置の操作具の動きに抵抗する、またはそれを補佐する作用力を出力しないため、修正なしで出力した場合、バネ効果、ダンパー効果、障害効果などの運動感覚効果の多くは、振動体感装置内に実現手段をもたないことになる。
【００４２】
本発明においては、特定の振動体感効果が、特定の運動感覚作用力効果と「同等」になるように設計されるマッピング処理を施すことで、振動体感装置により運動感覚効果を出力することが可能になる。いくつかの運動感覚効果はほぼ直接に振動などの振動体感効果へマッピング変換できるが、それ以外の運動感覚効果は、振動体感装置が操作具に指向性作用力を出力できないため、本来の効果から大きく外れた形態で近似されてしまう。例えば、ダイレクトＸの衝突効果は、ユーザが操作可能な対象の動きの特定方向で付与されるベクトル作用力として実行されてしまう。しかしながら、振動体感装置によっては、特定の方向に作用力を出力できないので、ベクトル作用力が別の振動体感刺激として近似されてしまう。
【００４３】
振動体感効果と運動感覚効果におけるマッピング処理は、一般的な目的または特別な目的で実行可能である。例えば、ある振動体感効果を、運動感覚効果が運動感覚装置で出力されるような環境やアプリケーション全部において、ベクトル運動感覚効果で置換できるよう設計することができる。また、異なる振動体感効果をマッピング処理して、運動感覚効果が利用される特定のコンテキストやアプリケーションに基づいた運動感覚効果へ変換してもよい。例として、レーシングゲームの運動感覚ベクトル作用力を近似動作させるのに、第１の振動体感効果を使ったり、ファイティングゲーム、またはファイティングシュミレーションゲームの筋感覚ベクトル作用力を近似動作させるのに、第２の異なる振動体感効果を利用することも可能である。多くの場合これらの技法では、振動体感効果が特定のアプリケーションで最もリアルに変換されるため、アプリケーションを使う方法からよりリアルな感覚を提供できる。
【００４４】
運動感覚作用力効果は、周期性効果および非周期性効果に分類される。振動などの周期性効果を、最初に説明する。というのも、これらの周期性効果は運動感覚分野から振動体感分野へと非常に簡単に変換できるからであって、非周期性効果のマッピング処理については後で説明する。
【００４５】
一実施例として、アプリケーションプログラムがホストコンピュータで作動する時、プログラムによりアプリケーションプログラムで使用されるコントローラ装置のタイプを検知して、装置にとって適切な一連の効果を選択する。振動体感装置を使用する場合は、振動体感効果のマッピング処理が採用され、運動感覚装置を使用する場合は、標準の運動感覚効果が出力される。別の方法としては、（ゲームなどの）アプリケーションプログラムが接続された装置について全く無知であるため（または、装置のタイプに関しては認識するが、説明するようなマッピング処理には無知である）、ホストコンピュータで動作する低位のドライバおよび／または装置のローカルマイクロプロセッサ／ファームウェアで、マッピング処理を実行する。例えば、ホスト上で動作する振動体感特定ドライバが、必要に応じて、出力するコマンドを評価して、振動体感コマンドへマッピング変換するので、装置でマッピング操作する必要はない。さらに別の方法（または追加方法）として、ローカルマイクロプロセッサにルックアップテーブルか別のデータを装備させて、特定の運動感覚作用力効果を振動体感効果へとマッピング処理し、モータを適正に制御してもかまわない。
【００４６】
振動体感効果を運動感覚作用力へ変換する１つ以上のマッピング処理は、（いかなる実施例においても）作用力効果が命令されるアプリケーションか環境に基づいて随意に採用すればよい。例えば、ゲームで発生する衝突のための運動感覚ベクトル作用力が出力された場合、同様の振動作用力が適用できる。しかしながら、このベクトル作用力を、カーブを曲がるさいの運転ハンドル上のダイナミックバネ戻りターンをシュミレートするのに使用する場合には、振動作用力は不適当であって、出力命令を受けない可能性もある。
【００４７】
特定の運動感覚作用力を使用するようなアプリケーションまたは環境を決定するには、別の方法を採用してもよい。例えば、一実施例として、コマンドプロトコルには、「衝撃」、「カーブ」、「スピンアウト」といったコマンド目的を示す１つ以上のパラメータを備える。ホストプロセッサ（またはローカルマイクロプロセッサ）の振動体感ドライバは、出力を制御する記憶指令に基づいた作用力を出力するかどうかを決定するため、前記の目的パラメータを調べる。しかしながらこれらの実施例では、従来のプロトコルの修正が必要となるため、その他の方法が好ましい。
【００４８】
一例として、例えば、振動体感装置で使用する一連の作用力効果は、体感効果をプログラムするときに開発者が利用可能で、かつ、マッピング処理がドライバで使用可能となるようユーザによりコンピュータにインストールするため利用できる。体感効果の一連の振動体感は、ドライビングゲーム、飛行シュミレーション、ファイティングゲーム、ワープロ、インターネットブラウザ、ＤＶＤインターフェイスなどのアプリケーションの広い分野向けに設定できるものである。その他の方法としては、一連のマッピング処理が、特定ゲームなどの１つのアプリケーションプログラム専用でも構わない。ユーザが、これらのアプリケーションの１つに体感フィードバック効果をもたせようとする場合、ユーザはそのアプリケーションの一連の効果を獲得して、それらをオペレーションシステムにロードするか、または、それら効果を振動体感ドライバ（または、ローカルマイクロプロセッサ）で使用できるようにする。または、アプリケーションプログラム自体でマッピング処理を実行することもでき、それら効果をアプリケーションプログラムで利用可能にしてもよい。それゆえ、全ての自動車ドライビングゲーム（または特定のドライビングゲーム）における一連の効果は、振動体感効果をマッピング処理して、ゲームのドライブ環境に適した効果的な運動感覚作用力へと変換されるのである。マッピング処理される前の一連の振動体感効果は、ウェブサイトからダウンロードするか、アプリケーションプログラムから取り込むなど、中央プロバイダ、または開発者から入手できる。
【００４９】
さらには、一連のマッピング処理には、「コントロールパネル」で提供される振動量全部の設定も含まれる。例えば、コントロールパネルドライバはホストコンピュータに内蔵されているので、特定の作用力刺激の振動量全部（または、全作用力刺激の総ゲイン値）はユーザにより所望のレベルに調節可能となる。振動体感効果のための一連のマップ処理には、この種のアプリケーションプログラムへの振動体感効果を最大限にするための、コントロールパネルの設定作業も含まれる。たとえば、運転ゲームのマッピング処理では、バネ作用力を低い値に設定し、振動の振動量を大きくする。
【００５０】
別の実施例では、振動体感装置が使用されるとき、振動体感範囲へ直接に変換されない運動感覚効果全部を、装置（または体感ドライバー）が無視できるようなっている。このため、全てのバネ作用力、ダンパー作用力、アトラクション作用力、障害作用力の全部が無視されるので、主に揺れと振動のみを出力できる。しかしながら、障害作用力などいくつかの運動感覚作用力は、効果的にシュミレートまたは振動により模倣できるので、実施例やアプリケーションに応じて無視する運動感覚作用力の種類を変更できる。
【００５１】
実施例における制約
振動体感ゲームパッド装置でのダイレクトＸ／イマージョンの運動感覚性効果を最高に表現できる制御技術を提供する場合、実施例におけるコスト面での制約を考慮すれば、振動体感装置の低い製造コストでの単純化が可能である。たとえば、ストック偏心型質量体モータを採用すれば、これらモータの市販入手性を最大限に利用できる。この場合のモータドライバーは、従来の振動体感装置の最も一般的なモータ動作法である単一方向駆動でなければならない。さらに、単指向性の電圧モード増幅器は、運動感覚性装置で採用されている高性能の電流モード増幅器と比較して格段に安価であり、また、単一のトランジスタで製造できる。ほとんどの実施例において、トルク制御はそれほど重要ではないので、電流モード増幅器を使う必要はない。さらに、回転する質量体の位置を検出するセンサーも高価であるため、従来のゲームパッド式振動体感コントローラなどと同様に、価格の点から除外可能である。製品には、イマージョン社の「イマージョンタッチセンスプロセッサ」や同程度のマイクロプロセッサを採用できる。アクチュエータの出力には電力制約がないほうが好ましく、通信バスからの電力で装置作動には十分である（例えば、ＵＳＢバスの利用）。
【００５２】
前記のインターフェイス装置の大部分の実施例においては、大型の電力供給部の利用を避け、および/または、バッテリーなどの限定の電力源の寿命を延ばすため、最小の電力消費性の装置が望ましい。例えば、最大で５Ｖで０．５ＡのＵＳＢ（ユニバーサルシリアルバス）の電力特性に合うゲームパッド式振動体感装置が適当であり、全電力をＵＳＢから入力可能である。その他の対策も、可能であって、例えば、２個のモータを備えた装置の場合、各モータの電力消費を定量化する。別の例では、電力消費量を整合させるため、２個のモータの一方をシステムから取り除く必要がある。２個のモータが異なる大きさの場合、小型のほうを取り外して、大きいほうを使って、振動量や振動数をそれぞれ独立して制御して３５Ｈｚ前後に設定する。３５Ｈｚを越えると、振動数変動が許容範囲外になってしまう恐れがある。大きいほうのモータを取り除いた場合、小型モータで全周波数帯域をカバーさせるが、その帯域では所望の振動量を得られない恐れがある。
【００５３】
２個またはそれ以上の数のモータ用の十分な電力が得られる場合には、ピーク電力を下げるための別の対策を考慮する。前述の方法においては、各周期が開始のさい同時に両モータが駆動される。しかしながら、片方のモータの位相をオフセットさせて、別ののモータのオン期間が完了するまでパルス入力されないよう設定し、２個のモータを同時に駆動するのを避け、ピーク電力を低かさせることも可能である。注意すべきなのは、２個のモータの位相を１８０度オフセットさせないことであり、そうでないと、ユーザに出力される振動が所望の振動数の２倍程度に感じられる結果となる。好ましくは、一方のモータを他方のモータの１周期におけるオン期間の最大値でオフセットするのがよい（下記参照）。その後、（ローカルマイクロプロセッサで動作するような）ダイナミックアルゴリズムにて電力をモニターし、第１のモータが十分な電力余量を残す場合には両方のモータを駆動するのである。電力を削減する最終対策は、制御信号のオン期間を延ばす代わりに制御信号の振幅値を下げることである。この方法では、モータに同量のエネルギーを付与するが、振動の振動量や衝撃度を低下させてしまう恐れがある。
【００５４】
周期性効果の制御
周期性効果とは、周期波形に同調させて制御するフォースフィードバック効果をいう。例えば、振動が、正弦波や矩形波などの波形で所定の振動数（周期）や振動量の振動を出力する基本的な周期性効果となる。この効果は、ユーザの操作の速度や位置または出力の方向などのデータを必要としない。単一の無指向の揺動が、各振動周期または振動周期の１部として出力される。
【００５５】
周期性効果を考える場合、周期性効果の振動数や振動量をいかにしてそれぞれ独立に変動させ、（それに限定されるものではないが）ＥＲＭモータなどの１つの自由度だけで駆動するアクチュエータで表現できるという問題が起こる。
【００５６】
ほとんどの標準ゲームパッド式振動体感装置では、両方が強固に連動している固定の振幅値と周波数でＥＲＭモータを回転させている。例えば、高周波数の振動では必然的に高振動量となり、低周波数の振動では必然的に低振動数となる。本発明の制御方法では、単一自由度（ＤＯＦ）の無指向駆動回転式アクチュエータの振動量と振動数とをそれぞれ独立に変動させることが可能である。その方法により、減衰する正弦波形や重畳波形などの複雑な振動をＥＲＭモータで作成できるため、本方法は重要である。従来装置でのＥＲＭモータは、その速度にほぼ線形に連動した振動量をもつ。特別のクラッチ、回路、機械部品を使わずに、（マイクロプロセッサ１１０またはその他の制御装置で実行可能な）前述の３つの制御方法を利用する本発明では、ＥＲＭモータを使ってある振動量において幅のある振動数を実現できる。ただし、ここで説明する制御方法は、回転モータのみ応用可能ではなく、磁石モータ、ソレノイドアクチュエータ、ボイスコイルアクチュエータも含む、回転式やリニア式のどのようなタイプの単一ＤＯＦ式アクチュエータにも適用できる。
【００５７】
本発明の制御方法では、振動数コマンド、振動量コマンド、（正弦波、矩形波、三角波などの）関数が、パラメータつまり入力データとして装置に入力される。そして、ＰＣで使われる「イマージョン/ダイレクトＸ」プロトコルにて、振動量パラメータ、振動数パラメータ、関数パラメータ、（必要なら別のパラメータ）などで振動を制御するのである。それゆえ、運動感覚性装置と振動体感装置間の直接マッピング処理が本発明では可能となり、つまり、マッピング工程が必要でなく、従来の周期性効果を直接に運動感覚性装置つまり振動体感装置に指示できるのである。
【００５８】
図５に、その一例の時間と振動量のグラフ１５０が図示されている。周波数が５Ｈｚで振幅値が５０％の正弦波１５２が、装置から出力される所望の振動として示されている（ただし、本図および以下の図では入力出力信号の１秒単位のみを示す）。本発明の制御方法では、波形の各周期の（およその）始点を決め、制御信号１５４を周期の所定の期間だけ高位つまりオンにする。それ以外の期間では、制御信号１５４は低位つまりオフとなる。それゆえ、周期制御信号は（指示された）所望の周波数に基づいた振動数をもつ。制御信号１５４にてアクチュエータを周期毎に１回パルス動作させることにより、所望の振動数の振動がユーザに伝達される。制御信号を高位に立ち上げるのは、図示のように周期の始点でもよいし、周期内の別の時点でも構わない。
【００５９】
周期性効果の振動量は、制御信号のデューティサイクル、つまり、制御信号１５４の各周期の期間（周期のオン期間）を調整することで決定できる。制御信号１５４は、オンでもオフでもよいが、その信号がオンである周期の時間長は振動量コマンドつまり振動量パラメータで決められる。図５では、振動量５０％の正弦波が要求されている。本発明によれば、この要求振動量から、２５０ｍｓ毎に長さが１５ｍｓの制御信号１５４が作成される。比較として、同じ周波数の１００％振幅波形が図６に図示されており、グラフ１５４と同様のグラフが１６０で示されている。制御信号１６４は、振動数コマンドに変動がないので、制御信号１５４と同じ間隔で立ち上がっている。しかし、制御信号１６４は長さが２倍であるので、振動量が２倍の振動をユーザに付与する。制御信号が長くなると、アクチュエータの加速も長くなる。本例では、ＥＲＭモータの角速度が大きくなり、作用力が角速度の平方に比例するため、ユーザの手側により大きな作用力が伝わる。好ましくは、質量体の回転を止めずに、回転の開始時にのみ静止摩擦を克服すればよい。制御信号のオン状態が長すぎると、回転する質量体が複数回転してしまい固有（共鳴）振動数に到達する。その時点で、ユーザには指示された振動数ではなくシステム固有振動数が伝達されてしまう。
【００６０】
それゆえ、本発明では、１）制御信号のオン状態の頻度を振動数コマンドに直接依存させ、２）制御信号のオン期間の長さを振動量コマンドに関連させている。制御信号のオン期間の決定は、異なる方法で実行できる。ここでは２つの方法を述べる。第１に、オン期間は「周期パーセント」で示す。制御信号が各周期で固定パーセントでオンになる場合、振動数が増えるにつれ、周期あたりのオン期間が短くなる。そして、制御信号のオン回数が増える。その結果、制御信号は振動数に関係なく毎秒同じ時間だけ費やすことになる。この方法による長所は、振動数が増えても、一定の電力がアクチュエータに供給されるため、出力される振動量はその振動数範囲において変動しないことである。ただし、オン期間が短くなると、質量体の一方向への回転がとまり、短い駆動時間や重力のため双方向移動を開始し、制御信号がオフになるたびに質量体は反対方向に移動することになる。しかし、これによりユーザへの出力振動に悪い影響を与えることはなく、質量体が完全に一方向に回転したり、双方向移動を行う動作に関係なく、所望の振動数や振動量の振動出力が可能となる。
【００６１】
図７と８の図は、異なる制御信号とその結果の振動の正弦波を示すグラフ１７０と１８０である。図７では、正弦波１７２の周波数が５Ｈｚで振幅値は１００％である。図８では、正弦波１８２の周波数が１０Ｈｚで振幅値が１００％である。図７の制御信号１７４は、各周期にほぼ４０ｍｓだけオンとなり、図８の制御信号１８４は、各周期にほぼ２０ｍｓだけオンとなる。図７と８の両制御信号を比べると、１秒あたりのオン期間は両方とも一定であるが、周波数は変動しており、振動数コマンドが２倍になると、制御信号の周期毎のオン期間が半分となるが、１秒あたりのオン期間は同じで変わらないことが明らかである。
【００６２】
この所望の振動を指示する「周期パーセント」法の問題点は、多くの事例において周波数が低い場合にうまく作用しないことである。低周波数（例えば、ソニーのデュアルショックゲームパッドの大型ＥＲＭモータで２Ｈｚ未満の場合）、一度に大きな電力がアクチュエータに供給される。例えば、図９のグラフ１９０では、正弦波１９２の１秒の期間中に、低振動数（１Ｈｚ）で振動量１００％の振動が作成されるが、１秒の間に１周期しか振動してない。制御信号１９４は、周期始点で立ち上げられて１２５ｍｓ継続している。
【００６３】
図８のグラフ１８０と図９のグラフ１９０の両方とも、同じ１秒あたりの時間長分だけ制御信号が高位に変わる。しかしながら、図９では、１秒間の電力が周期始点から連続して１２５ｍｓ入力される。そのオン期間の間、制御信号が高位の間に回転アクチュエータは数回回転するので、１２５ｍｓの振動（パルス）出力は指示振動数ではなくアクチュエータの回転速度の周波数でユーザに伝達される。それゆえ、装置からの振動出力は、指示された（低い）周波数に対応しない。この問題は、図８に示す振動においては顕著ではなく、制御信号１８４のオン期間が複数期間に分割されているからである。
【００６４】
本発明の第２の方法では、その低周波数における問題を解決しており、ほとんどの振動装置の振動出力に適切な方法となっている。第２の方法は、周期パーセントではなく、周期あたりの最大固定時間長で制御信号を高位に立ち上げる。そのため、所定周波数における１００％振幅値のオン期間は同じとなる。１００％未満の指示振幅値のオン期間では、１００％以下の指示振幅値に比例して低くなる。これにより、周期あたり最大のオン期間が効果的に設定でき、アクチュエータが連続オン期間で複数回転するくらいの長時間にわたりオンとなるのが防止される。アクチュエータの複数回転が認められる場合（事例では２，３回以上）には、指示周波数（１０Ｈｚ未満）ではなくアクチュエータの回転速度に基づいた高い周波数（モータにより２５Ｈｚ程度）がユーザに伝達されることになり、前記の問題をクリアできる。実施例によっては、特定のモータで低い周波数にて振幅値１００％が望まれる場合があるが、各周期につき１パルス以上（２，３回転）の振動をユーザに与えるような回転数で質量体を回転駆動させるオン期間と等価であり、オン期間は経験的に決定できる。第２の方法の欠点は、周波数が増えるにつれて、それぞれのオン期間の間隔が接近して、最終的には、アクチュエータが１周期より長い期間オン状態になる。この点で、制御信号が常にオンとなるため、質量体は連続して回転し、振動数や振動量をそれぞれ独立して可変できない。
【００６５】
前記の振幅値を制御信号のオン期間にマッピング変換する２つの方法は、周波数帯域の異なる部分でも可能なので、両方法のそれぞれの欠点を解消するため、本発明の好ましい実施例の１つでは両方法を組み合わせ、つまり、合成させている。その組み合わせ方法では、指示周波数が所定の合成閾値より低い場合は第２の方法を利用し、指示周波数が合成閾値より高い場合は第１方法を利用するのである。制御信号の振幅値が可変である場合も、合成は有効である。最初に、合成閾値をシステムのダイナミック値に基づいて選択する。合成周波数は、オン期間が最大長となる周波数であるため、その周波数で振幅値１００％に対応するオン期間に周期あたり１振動パルス（質量体回転２回より小さい）を付与できるよう合成周波数を選定する。例えば、上記のような大型モータ／質量体の組み合わせの場合、合成周波数閾値を１０Ｈｚに選定する。１０Ｈｚ以上の指示周波数では、第１の方法（周期パーセント）を使って制御信号のオン期間を算出し、指示周波数が１０Ｈｚ以下のときは、第２の方法（周期固定時間）を使用する。別の例では、別の閾値を利用できる。２つの方法を合成するには、両方法の最大振幅値が合成周波数閾値に整合するよう、つまり、両方法間の遷移がスムーズとなるようスケールを決定する。例えば、１０Ｈｚでの制御信号オン期間を２５ｍｓにすると、１０Ｈｚで１００％振幅値の振動が出力できる。指示周波数が１０Ｈｚ以下から合成周波数値に近似すると、「周期パーセント」法をスケール化して、１０Ｈｚで２５ｍｓのオン期間を算定する。そのスケール処理は、１０Ｈｚ以上の周波数の方法にも適用可能である。所望の効果を得るためには、合成周波数域における擬似帯域通過フィルター、または、合成閾値の両側でのローパス／ハイパス組み合わせフィルターなどの高度な合成法を利用してもよい。
【００６６】
振動数から独立して振動量を指示する第３の方法では、制御信号に２つのレベルをもたせる代わりに、所要振動量に比例する制御信号の振幅値を可変にする。これにより、前述の第１方法と第２方法の一方または両方の単独または組み合わせて実行できる。例えば、振幅値が可変である別の波形を制御信号（正弦波、三角波など）として利用する。制御信号の振幅値を可変にする効果的な方法として、前述のように制御信号のオン期間中にパルス幅変調（ＰＷＭ）を行うか、その他の技術を使ってオン期間の制御信号デューティサイクルを可変にする方法がある。しかしながら、ＰＷＭ法は、装置の価格を押し上げる別途のＰＷＭ装置が必要となる。ＰＷＭ法に代わって、ＰＷＭ装置を利用せずにアクチュエータに制御信号を供与するローカルマイクロプロセッサを使うビットバング法を利用して第１と第２の方法を実行することも可能である。そのような直接制御は、最新式のフォースフィードバックを利用するさいには実行不能であるが、振動体感フィードバック装置では実現可能である。ビットバング法では、制御信号振幅値を直接に制御することはできないが、ＰＷＭ装置の必要がなくなり、プロセッサやインターフェイス装置のコストを下げることが可能となる。
【００６７】
前記の振動の振動量や振動数をそれぞれ独立して可変にする方法は、単一または複数のアクチュエータに同時に適用可能である。アクチュエータが複数の場合、モータ／質量体の組み合わせを共同作用させて、全振動帯域を可能にする。このことは、オーディオ用スピーカのウーファとツイータの組み合わせと同じである。例えば、ソニーのデュアルショックゲームパッドは２個のモータを備えるため、本発明の方法を利用すれば、１００Ｈｚのダイナミックレンジが達成できる。一例として、大型モータ／質量体の組み合わせにおいて、合成閾値が１０Ｈｚの所定周波数帯域で両方の制御方法を利用できる。小型モータ／質量体の組み合わせでは、第２の方法（周期固定時間）のみを使って、（第２方法では、オン期間が周波数低下に伴って短くなることがないので）増加周波数で小型モータに電力供給するのである。そのため、大型モータの大きな振幅値振動が小型モータの高周波数の低振動を打ち消す傾向が排除できる。しかも、フィルターを利用すれば、一定周波数帯域での大型モータと小型モータのバランスを適切値にできる。
【００６８】
５Ｖを使う例においては、小型モータの出力は小さく、ユーザが振動を感じえないくらいである。そこで、装置の最大許容周波数を２５Ｈｚに設定して、適当なスケール化を行うことにより、周波数のダイナミックレンジを２５Ｈｚ程度に狭くする。これにより、大型モータを使って振動効果全部を実行できるため、小型モータが必要なくなる。５Ｖバッテリーを採用すれば、小型ＥＲＭモータをより適度なサイズに変更でき、大きな振動が出力できる。
【００６９】
別の例として、上記の方法ではなく、より単純な制御方法で、周期性効果を得ることも可能である。指示振動量を無視して、振動数コマンドのみを利用する。例えば、２個モータ式の振動体感装置では、所定の閾値周波数を使って、出力振動にどのモータを利用するかを決定する。１５Ｈｚを越える振動の場合、小型モータ/質量体を回転駆動させる。小型モータ/質量体は、指示振動数に比例する周波数で駆動する、または、所定の周波数で回転させる。この効果は、ドライブゲームでの自動車のエンジンのイベントとして利用できる。１５Ｈｚ以下の振動の場合、大型モータ/質量体を所定の周波数、または、指示振動数に比例する周波数（指示振動数をスケール化して大型モータの帯域の周波数値にする）で回転駆動させる。この効果は、ゲームにおけるでこぼこの地面の移動や衝突に利用できる。
【００７０】
振動体感装置の非周期性効果の制御
上記の方法は、ＥＲＭモータで周期性作用力効果を出力するのに使われている。その他、いくつかの状態効果を含む非周期性の運動感覚効果をマッピング処理して、振動体感装置で出力できる振動体感効果に変換するのにも利用できる。
【００７１】
非周期性効果は、非同期の振動量パラメータ、それ以外のパラメータ、それらパラメータの組み合わせに基づいて決定することができる。非周期性効果は、周期性効果のように簡単に振動体感効果にマッピング変換することができない。例えば、ベクトル作用力は、所定の時間長に所定方向に出力される非周期性効果である。一般的に振動体感装置は所定方向に作用力を出力できないため、ベクトル作用力を振動体感作用力刺激にマッピング変換する処理は周期性効果ほど直接的にはできない。
【００７２】
非周期性の運動感覚効果のいくつかは、条件である。「条件」とは、振動や揺動などの開ループ効果とは逆の、より高度な運動感覚性フォースフィードバック装置にて出力される閉ループフォースフィードバック効果である。条件効果は、その出力サイズを決定する際、（運転ハンドル、ジョイスティック、マウスなどの）ユーザ操作具の位置データおよび/または速度データ（および／または加速データ）を必要とする。例えば、バネ条件効果は、ユーザ操作具の現在位置に依存し、ダンパー条件効果は、ユーザ操作具の現在速度に依存するのである。
【００７３】
多くの場合、操作具を移動させてその自由度内で作用力を発生させるようなフォースフィードバック（運動感覚性）装置に対して、それら条件は応用できる。単一の振動体感フィードバック装置で表現する場合、それら条件は変換自在である。
【００７４】
一例として、条件を無視すると、アプリケーションプログラムで条件作用力の出力をコマンド指示する場合、振動体感装置のローカルマイクロプロセッサ（または、ホストコンピュータのドライバーやその他プログラム）がそのコマンドを無視するので、作用力が出力されない。しかしながら、別の例では、条件はマッピング処理されて振動体感刺激に変換され、条件作用力効果を近似する、または、イベントを特定する少なくともいくつかのフォースフィードバックをユーザに体験させることができる。非周期性作用力効果のマッピング処理の例を、以下に説明する。
【００７５】
ベクトル作用力
ベクトル作用力は、操作具の１つまたは複数の自由度において所定の方向へ作用力を付与する運動感覚性作用力効果である。例えば、レースや運転ゲームでは、自動車が壁や他の自動車などの障害物に衝突したときに運転ハンドルの回転に衝突刺激、操作具を動かすときのシフト刺激、自動車が制御不能になったときのスピン刺激などを出力するのにベクトル作用力が使われている。ベクトル作用力の大きさは、イベントや他の要素の衝撃度によって異なる。
【００７６】
ほとんどの振動体感装置において、一般的に指向性作用力は出力されず、振動や揺動を使って近似する必要がある。けれども、振動体感装置からの揺動や振動出力は、ベクトル作用力と同じである。好ましくは、振動は高振動数で高振動量の出力であり、例えば、１秒間に１Ｈｚの周波数を与えて単一の揺動を出力させて１つの振動を発生させる。別の例では、振動体感装置では所定のベクトル作用力のコマンドが無視される。例えば、ドライブゲームにおいて、低振動量のベクトル作用力は、振動体感効果で簡単に模倣できないごく小さな駆動力を出力するのによく利用されるため、振動体感装置で無視されることがある。２個のモータを備える振動体感ゲームパッド装置では、大型モータを回転させてベクトル作用力に応じた振動を発生させるか、または、両方のモータを回転させる。
【００７７】
別の好ましい実施例として、ベクトル作用力を直接に振動へとマッピング変換し、結果たる振動の振動量がベクトル作用力の振幅値に比例する。振動量は、周期性作用力に関して上記で説明した方法を使って独立して制御するのが好ましい。振動量は、ベクトル作用力コマンドの振動量パラメータに比例するか、または、それを基に決定される。振動の振動数は、所定値である一定周波数であって、例えば、固定周波数を装置が出力できる最大振動数にすることが可能である。別の実施例として、ベクトル作用力の振動数をユーザが選択可能にしても構わない。
【００７８】
ベクトル作用力を振動に変換する別の方法では、ベクトル作用力振動量をモータコマンドに直接にマッピング変換し、つまり、デューティサイクルで示すベクトル作用力の振動量をコマンドとして利用してモータを回転させるもので、５０％振幅値を５０％のディーティサイクルモータコマンドとする。これにより、作用力のパルスをベクトル作用力の代替に使用できる。別の例では、運動感覚性ベクトル作用力振動量コマンドを全帯域のモータ振幅値コマンドにマッピング変換する代わり、ベクトル作用力振動量をモータ振幅値コマンド範囲の上半分にマッピング変換することも可能である。そのため、つねに質量体の全回転させるような高い振動量を出力させることができ、出力応答をより線形にすることが可能となる。また別の例では、振幅値コマンド範囲の下部分を使って、高調波質量体移動を可能にしている。
【００７９】
もっと簡単な例では、要求される振動量の振幅値閾値を使って、複数のモータを備えた装置のベクトル作用力を近似する時点や方法を決定する。例えば、第１の閾値は振幅値が７５％（出力できる最大振動量の７５％）のとき与えられる。小型モータと大型モータを備えた装置では、ベクトル作用力が０％より７５％の間のとき、大型モータを駆動制御して、指示ベクトル作用力振幅値に比例する振動量の振動（１揺動）を出力させる。指示ベクトル作用力の振動量が最大１００％の７６％である場合、大型モータと小型モータの両方を駆動して、最大振動量の振動力を発生させる。注意してもらいたいのは、前述のような閾値を前記方法に併用することにより、所定閾値内での振動の振動量と振動数とをそれぞれ独立して制御することである。そのような合成方法は、説明するあらゆる種類の作用力効果に応用できる。
【００８０】
ベクトル作用力へのマッピング処理も、（実施例として）アプリケーションコマンドつまり目標コマンドに基づいて選択的に適用可能である。例えば、ゲームで発生する衝突のためベクトル作用力が出力されるような場合、等価な振動力を利用できる。しかし、ベクトル作用力が運転ターン時にハンドルを戻すダイナミックバネをシミュレートするのに使われる場合は、振動力は適用できない。
【００８１】
別の振動体感装置では、指向性作用力を出力することも可能である。例えば、回転または移動する質量体を回転制御して、質量体の自由度の所定方向に指向性作用力を近似できる。複数のモータを備える装置では、互いに同相となるようモータを制御して、所定方向の作用力を発生させることができる。別の例として、ベクトル作用力の方向または近似の方向に作用力を出力させる場合、ベクトル作用力を振動体感装置での指向性作用力となるようマッピング変換することも可能である。
【００８２】
バネ作用力
バネ作用力は、演算式Ｆ＝ｋＸに基づく状態であって、出力Ｆは、ｋが定数で、所定自由度でのユーザ操作具の現在位置Ｘに基づくものであることを示している。例えば、運転ゲームにおいて、バネ作用力は運転ハンドルを中央位置に戻すため使われ、その中央位置からの、かつ、中央位置に向かう方向へのハンドルの回転量に比例する振動量の作用力をユーザが感知することになる。
【００８３】
バネ運動感覚作用力を振動作用力効果にマッピング変換するとき、異なる方法が適用できる。一例として、バネ作用力は振動や揺動で模倣できないため、振動体感装置でバネコマンドが無視される場合がある。例えば、一定の自由度でユーザの操作具を中央位置に戻す場合、その環境下では振動や揺動はユーザに注目を向けさせないため、バネ作用力はしばしば無視されてしまう。
【００８４】
別の例、つまり別の環境では、振動作用力がバネ作用力として出力される。例えば、自動車の運転中にターンをすると、中央位置戻りバネ作用力により運転ハンドルを中央位置へ戻されるよう動作する。この効果を運動感覚装置でシミュレートするために、バネ作用力を出力させるのである。振動体感装置では、振動が出力される。
【００８５】
図１０（Ａ）と１０（Ｂ）に、その例を示す。図１０（Ａ）は、運動感覚性のフォースフィードバック装置での一般的なバネ作用力出力を示すグラフであり、原点ＯからＸ軸に沿った操作具の移動により、その移動量につれて増える振動量をもつ動きに抵抗するバネ作用力を出力させている。図１０（Ｂ）は、振動体感効果へマッピング変換する例を示す。７５％などの所定のバネコマンド振幅値閾値より大きい振動が出力されるが、その振動数は固定値（またはユーザ選択値）である。それゆえ、高振動量バネコマンドだけで振動を出力する。ゲームパッドのジョイスティックなどの操作具を備える振動体感装置では、図１０（Ａ）のバネ作用力の７５％またはそれ以上の振動量に応じた操作具位置（Ｘ軸）でのみ振動が出力される。閾値よりも大きなコマンド振動量では、図に示すように、バネ振動量コマンドに比例した段階率にて振動量が最大値まで増加している。この効果は、自動車の高速ターンにおける運転ハンドルのブレやユレをシミュレートするのに利用できるので、バネ作用力効果を直接シミュレートせず、異なる効果をバネ作用力効果の代替として出力する。別の例では、（ユーザ操作具の位置によって異なる）バネコマンドの振動量から振動が出力される。
【００８６】
バネ効果（または、ダンパー効果など）は、小型モータなどの１個のモータで前述のようにベクトル作用力として出力できる。これは、ジョイスティック位置をフィードバックできるため、ゲームをするユーザにとっては都合がよいが、興味を示さないユーザもいる。そこで、条件作用力をＥＲＭ駆動振動体感コントローラで出力する場合には、ホストコンピュータのアプリケーションレイヤまたはソフトウェアレイヤで提供されるプロフィラプログラムにて、停止させたり変更させたりできる選択をユーザに与えるのが好ましい。
【００８７】
障害作用力
壁などの障害も、バネ作用力を使って位置制御アプリケーションのフォースフィードバックでシミュレートできる。振動体感アプリケーションにおいて、壁やその他の障害の出現は、揺動つまり低周波数振動を使ってシミュレートする。好ましくは、最初に壁との衝突が発生したとき、最大振動量に近い作用力を出力する。最初の衝突の後、ユーザが制御するグラフィック上物体（カーソル、自動車など）が壁との接触を継続する場合には、振動も継続させる。または、前述した周期効果の方法を使って振動を実質的にゼロ振動量まで低下させる。そのような制御方法は、振動の振動量を徐々に低下させるなどの、周期波形に応用されるエンビロープと共同作用できる。アタックパラメータやフェードパラメータを使う周期性効果利用は、米国特許第５，９５９，６１３に詳細に記述されている。
【００８８】
ダンパー作用力
ダンパー作用力は、一般的に演算式Ｆ＝Ｂｖで示す条件作用力であって、作用力Ｆは、所定の自由度でのユーザ操作具の現在速度ｖとダンパー定数Ｂで表すことができる。この作用力は、移動するときにユーザ作用具に抵抗力をかけるもので、移動速度が早いほど大きな抵抗力が出力される。例えば、運転ゲームでは、制御される自動車がオイルや水たまりに突っ込むと運転ハンドルにダンパー作用力が出力されて、液体内でのハンドル操作の減衰をシミュレートするものである。
【００８９】
振動体感装置では、ダンパー作用力は高周波数振動にマッピング変換される。例えば、２個モータ駆動装置では、小型モータ／質量体を制御して、運転ゲームのユーザに対して地面の変化を示すときなど、わずかな角回転つまり低振動量を出力する。これにより、自動車が液体に突っ込んだときなどの「ぬかるみ状態」の振動効果をシミュレートすることができる。別の例として、制御対象物（自動車やカーソル）の現在速度に比例、または、小型ジョイスティックなどのユーザ操作具の現在速度に比例する振動量の振動に、ダンパー作用力をマッピング変換することも可能である。振動体感の振動量は、周期性効果で説明した方法で実現できる。別の例では、振動体感装置でダンパー作用力が無視される。例えば、ダンパー作用力がゲーム中のユーザに大きな規制を与えるような場合、振動による制御制限を避けるため、振動出力を止めるのがよい。
【００９０】
別のタイプの運動感覚性作用力効果も、前述したのと同様の方法で振動体感効果にマッピング変換できる。例えば、摩擦作用力は、制御するグラフィック上物体の速度、つまり、ユーザの操作対象物の速度と相関関係のある振動量をもつ高周波数振動を使ってマッピング処理する。テキスチャ作用力は、特定の位置で揺動を発生する特徴をもつテキスチャ面における操作具の移動に基づいた揺動、衝撃、その他作用力をユーザに与えるものである。そのようなテキスチャ作用力は、ユーザがテキスチャ面と接触する率にほぼ対応した周波数のＥＲＭモータからの出力振動によりシミュレートできる。
【００９１】
簡単にいえば、振動体感装置をアプリケーション全特性の作用力コマンドに対応させるため、運動感覚性効果と振動体感効果間のマッピング処理を行うのである。単指向性回転する簡単なＥＲＭモータで周期性効果を出力させるため、振動量と振動数をそれぞれ独立して可変できる新規の方法を説明する。別のマッピング処理でも、運動感覚性効果を振動体感効果に変えられる。１つの解決方法は、低価格の振動体感装置で少なくとも１つの集合の運動感覚性作用力を出力させることである。条件効果や運動感覚作用力効果は、効果性が低く、全部の低価格振動体感装置で実現できるものではないが、多くの運動感覚性フィードバック装置で簡単に出力可能であるため、多様な製品を市場に提供できる。そのため、ユーザは、体感フィードバックインターフェイス装置にどれくらいお金を費やすかによって、必要とする体感フィードアック機能性や洗練性を選択することができるのである。
【００９２】
ＥＲＭモータを使う一定作用力効果
図４に示すハードウェアトポロジーは、上記で説明した全部の制御装置に適用できる。一例として、モータの位置に関するホストコンピュータやローカルマイクロプロセッサへのセンサーフィードバックがなく、つまり、システムが開ループの場合がある。上記の制御方法は、モータ位置に関するフィードバックの必要がない。コントローラへモータ位置を知らせる特定のセンサーを必要としないため、開ループシステムによりインターフェイス装置が低価格になる。
【００９３】
しかしながら、フィードバック制御ループを閉にするセンサーがないと、信頼性に問題が起こる。例えば、ＥＲＭモータが必要なとき確実に回転していることを判断するのが困難となる恐れがある。振動量／振動数の組み合わせをコマンド出力して、モータを始動させるが、実際には、モータがすでに回転している場合にのみモータを回転させる。また、ユーザがインターフェイス装置や操作具をゆすったり、叩いたり、傾けたりすると、モータが回転しない。または、ユーザがインターフェイス装置を、重力がＥＲＭ要素以下となるような特定の姿勢で把持する場合にだけ、モータを回転させる。このため、同じコマンドの作用力効果でも、コントローラ、ＥＲＭモータ、その他の条件などによってユーザは異なる体感を経験する。多くのアプリケーションで、そのような状態は不都合であり、装置がどのように把持されようとどのような位置にあろうと、アプリケーションプログラムや別のコントローラでコマンド制御される場合は常に作用力効果が一定でなければならない。
【００９４】
質量体が必要なときに確実に回転させて一定の作用力を供与するための方法は、システムダイナミック特性をモデル化することである。この方法では、フィードバックセンサーを必要とせず、物理的システムのモデルを予め作成して、ＥＲＭモータの状態を予測するのに利用するのである。予測情報は、ＥＲＭモータが始動し連続運転するさい、ＥＲＭ特性を上げるのに使う。もっと簡単に実行できる方法は、モータを始動するコマンド作用力刺激の開始周期に最大振幅値でモータを回転させるよう制御することである。これにより、インターフェイス装置の姿勢からＥＲＭモータが大きな重力に対向して駆動する状況などの不都合な場合であっても、モータの動作を一定に維持できる。そのような不都合な場合、ＥＲＭモータをひとたび駆動すると、ＥＲＭモータは強制的に回転させられて、指示された効果がより容易く出力できる。好ましくは、最大回転値の開始周期が、前述の周期性作用力効果用の「固定期間」方法により行われるのがよい。振動の第１周期の後、所定の振動量と振動数を示すコマンドパラメータに戻る（振動数が低い場合、「固定期間」方法の利用を継続する）。本実施例ではセンサーやフィードバックループの必要がないので、装置の価格を下げられる。
【００９５】
別の例では、モータが中断しており、回転続行が必要な場合、モータの電圧を測定し、ローカルプロセッサのＡ／Ｄ変換器にフィードバックさせる。この信号は、モータが停止しているかどうかを示すものである。フィードバックループは、製品コストを増加させることなく、電力要求を満たす支援を行う。
【００９６】
またフィードバックセンサーを使用することなく所望の動作を確実にする別の方法として、振動数/振動量の全範囲におけるモータ動作を予め定量しておいて、動作中にカウンタをモニターする方法もある。体感効果によりモータが全回転しカウンタが「最大値」（カウンタの最大カウント値）以下のときは、カウンタをカウントアップさせて要求される制御信号を出力する。体感効果がモータ動作を必要としないが（経験的に判断する）、カウンタが０以上で、モータ回転を希望するような場合、カウンタをカウントダウンさせて、要求される制御信号を出力する。体感効果が（振動量と振動数をもつ）モータ駆動が要求されるが、回転を開始するための開始エネルギー値に到達しない状態で、カウンターが「最大値」以下の場合には、カウンタをカウントアップする。要求される制御信号は出力されないが、最大振幅値制御信号が出力される。体感効果が同じ状態でカウンタが「最大値」である場合、要求される制御信号が出力されるのである。
【００９７】
最後に、別の例として、低価格仕様をゆるめて、モータの位置および／または回転を検出するセンサーを装備する。センサーのもっとも重要な利用法は、アクチュエータのフィードバックループを閉にして、確実にアクチュエータを適切動作（振動または回転）させることである。モータ主軸上に取りつけた１/４エンコーダをセンサー代わりに利用できるが、その価格や高度機能性は本適用例には過ぎるものである。別の例として、簡単なブール式センサー、ＥＲＭモータでブロックするＩＲセンサー、鋼鉄製や金属製のＥＲＭモータに磁束をかけるホール効果センサーなども利用可能である。これら簡単なセンサーでも、質量体がフル回転しているかどうかをローカルマイクロプロセッサに通知できる。
【００９８】
例えば、センサーを、上死点つまり質量体の移動最高位置に配備する場合、重力はその位置点に達するまでの最大反対作用力となる。これにより、ＥＲＭモータが上死点を越えて移動し、大きな振り子振動ではなく完全な１回転を行った場合に、ＥＲＭモータがセンサーを作動させることができる。周期性効果が出力される前に、センサー位置を測定し記録する。ＥＲＭモータの慣性やコマンド効果の周波数によって決まる固定時間長が経過した後、センサー出力が点検されて、ＥＲＭモータの経路をトグルつまり検出したかどうか判断する。ＥＲＭモータが時間内に上死点を通過しない場合には、アクチュエータ作用力を周期性コマンドで決めた量を超えて増加させる。
【００９９】
質量体が最小振幅値で振動（回転の逆）しているのを確認するのに、ブール式センサーが利用できるが、前述のような方法で測定するか、または、下死点に取りつける。ＥＲＭモータがそれが振れ戻る前にセンサーがトグルされるよう十分に振動する場合、振動が最小振幅値であることが確認できる。エンコーダを使う場合、エンコーダの解像度が高くてＥＲＭモータを多くの位置で検出できるため、振動出力を保証し確実にするための制御が一層高度化される。位置コントローラを使えば、ＥＲＭモータがその要求どおり完全回転していること、または、（ＥＲＭモータが上死点を越えないよう制御される場合）振動の振動量は正確であることが確認できる。
【０１００】
フィードバック用エンコーダを使う場合、開ループの制御信号オン期間を制御する代わりに振動量を送信する速度制御（軌跡）を実行する。それゆえ、エンコーダでモータ速度を検出し、コマンド速度であるかどうかを判断する。検出された速度はコマンド制御器にフィードバックされて、制御器により所望のモータ速度にするための制御が行われる。
【０１０１】
多くの実施例において、モータバスが高電圧で駆動される場合には、上記のような質量体回転セーフガードを配備する必要がない。例えば、ＥＲＭモータがすでに回転しているが回転が上下しないようＥＲＭ回転を可能にするような振動数／振動量範囲を、決定することができる。５Ｖなどのようにモータ電圧が低いと、範囲が広がり、回転セーフガードに対する要求が増加する。セーフガード対策の１つとして、周期性効果の第１周期内の周知期間（例えば３０ｍｓ）に回転する質量体に開始「キック」つまりパルス衝撃を与える方法がある。これにより、作用力コマンドが回転要求した場合にのみ質量体が回転し、それ以外では、質量体はその上死点を越えて回転せずに、振り子運動を行うことになる。この方法は簡単だけれど、モータの位置がどこでも、または、すでに回転していても、各周期コマンドに所定の反復度性を追加することが可能となる。開始パルスはユーザに感知されることが少なく、ＥＲＭモータを加速させて迅速に速度を上げることができる。本方法の欠点は、増加するエンベロープをもつような効果においては、開始時の振動量や振動数が低すぎたり、開始キックの振動量および/または振動数が高すぎて、所望の効果を出力できくなってしまうことである。開始キックが早過ぎると、作用力効果が出力される前にＥＲＭモータが静止状態になってしまう。
【０１０２】
本発明は、上記のいくつかの実施例で説明したが、さまざまな変更や修正が可能なのも、説明内容の熟読や図面の審査から当業者には明白であろう。例えば、ゲームパッド、遠隔コントローラ、ジョイスティック、マウス、運転ハンドル、操縦桿、その他の操作具や装置を含む多様なタイプの振動体感装置を、本発明の制御方法を使ってプレイすることも可能である。さらに、上記の用語も本発明を記述説明するため利用したもので、本発明を制限するものではない。それゆえ、発明の請求項には、本発明の精神や範囲を逸脱することなくさまざまの変更、置換、等価も含まれているものとする。
【図１】
2010165383.tif 000003
【図２】
2010165383.tif 000004
【図３】
2010165383.tif 000005
【図４】
2010165383.tif 000006
【図５】
2010165383.tif 000007
【図６】
2010165383.tif 000008
【図７】
2010165383.tif 000009
【図８】
2010165383.tif 000010
【図９】
2010165383.tif 000011
【図１０】
2010165383.tif 000012