(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとの、アイソメトリックインタラクション及びアイソトニックインタラクションを許容するインタフェース装置であって、前記インタフェース装置は、
グランドに対して少なくとも２自由度で、動くことのできる操作可能オブジェクトと、
前記２自由度での、前記操作可能オブジェクトの位置と動きを検知するように作動するセンサと、
前記操作可能オブジェクトに結合されて、インプット力に基づいて加えられるアウトプット力を、前記操作可能オブジェクトの少なくとも１自由度で加えるために作動するアクチュエータと、
前記インタフェース装置のアイソトニックインタラクションモードとアイソメトリックインタラクションモードとのうち、何れか一方を選択するためのモードセレクタと、を備え、
前記アイソトニックモードにあるときには、前記センサは、前記２自由度での前記操作可能オブジェクトの位置に基づき、前記ホストコンピュータに入力を提供し、
前記アイソメトリックモードにあるときには、前記センサは、前記インプット力に対応する、前記操作可能オブジェクトに加えられたリストアリング力に基づき、前記ホストコンピュータに、入力を提供し、
前記アクチュエータにより発生され前記インプット力に基づいて加えられた前記アウトプット力とは反対向きの少なくとも１方向の、前記センサにより検知された前記操作可能オブジェクトの前記動きに基づいて、リストアリング力が、測定される、インタフェース装置。
【請求項２】
前記リストアリング力は、局所的に定められた原点からの、前記操作可能オブジェクトの測定されたずれに基づき検知される、
請求の範囲１に記載のインタフェース装置。
【請求項３】
前記モードセレクタが、前記操作可能オブジェクトに設けられたボタンを含む、
請求の範囲１に記載のインタフェース装置。
【請求項４】
前記モードセレクタは、ユーザ制御グラフィカルオブジェクトとは別のグラフィカルオブジェクトとの間のインタラクションに基づいてアイソメトリックモードを選択し、前記グラフィカルオブジェクトは、前記ホストコンピュータの表示装置上に表示され、前記インタラクションが、前記別のグラフィカルオブジェクトの表面に、前記ユーザ制御グラフィカルオブジェクトを動かすことを含み、
前記ユーザ制御グラフィカルオブジェクトの動作は、前記操作可能オブジェクトによる操作に基づくものである、
請求の範囲１に記載のインタフェース装置。
【請求項５】
前記アイソメトリック機能が、表示されたウインドウ内でのドキュメントスクローリングを制御することを含む、
請求の範囲１に記載のインタフェース装置。
【請求項６】
前記アイソメトリック機能が、表示された値を調整することを含む、
請求の範囲１に記載のインタフェース装置。
【請求項７】
前記アクチュエータが、前記アイソトニックモードで前記オブジェクトに力を加える、
請求の範囲１に記載のインタフェース装置。
【請求項８】
安全スイッチが開かれているとき、前記アクチュエータからの前記アウトプット力を不活動にするための前記安全スイッチを更に備え、
前記安全スイッチは、ユーザが前記操作可能オブジェクトから自らの指の重量を取り除くときに開くコンタクトスイッチである、
請求の範囲１に記載のインタフェース装置。
【請求項９】
前記操作可能オブジェクトが、複数の部材を有するリンクにより、前記アクチュエータに結合される、
請求の範囲１に記載のインタフェース装置。
【請求項１０】
グラフィカル環境を表示するホストコンピュータに結合された力フィードバックインタフェース装置のアイソメトリック制御を可能にするための方法であって、
センサからセンサ信号を受け取るステップであって、前記センサ信号が、ある自由度での操作可能オブジェクトの動きが派生する情報を含むステップと、
アクチュエータを用いて、前記自由度での前記操作可能オブジェクトの前記動きの向きとは反対の向きに出力される抵抗を発生させるステップと、
前記ホストコンピュータに、前記抵抗に対する前記操作可能オブジェクトのずれの程度を通知するステップであって、前記ずれが、前記抵抗が初めに加えられたとき、前記操作可能オブジェクトの参照位置に関連しているステップと、
前記抵抗に加えて、前記グラフィカル環境で発生するイベントをベースに、前記操作可能オブジェクトに出力されるオーバレイ力を引き起こすステップと、を含む方法。
【請求項１１】
前記力フィードバックインタフェース装置は、前記アイソメトリック制御を提供しない場合にアイソトニック制御を提供するように構成され、前記アイソトニック制御のもと、前記自由度での操作可能オブジェクトの位置の表現が前記ホストコンピュータに送られる請求の範囲１０記載の方法。
【請求項１２】
アイソメトリック制御が提供されることを示す信号は、前記操作可能オブジェクトのボタンからの信号である請求の範囲１１記載の方法。
【請求項１３】
アイソメトリック制御が提供されることを示す信号が、前記アイソメトリック制御が提供されることを決定した前記ホストコンピュータから前記力フィードバックインタフェース装置に送られる信号であることを示す請求の範囲１１記載の方法。
【請求項１４】
前記ホストコンピュータが、前記グラフィカル環境でスクローリング、パニング又はズーミング機能を制御するために前記ずれを使用する請求の範囲１０記載の方法。
【請求項１５】
前記グラフィカル環境で発生する前記イベントが、特定の方向にスクロールされ、パニングされ又はズーミングされた表示されたイメージへのリミットに到達することを含む請求の範囲１４記載の方法。
【請求項１６】
前記操作可能オブジェクトへの前記抵抗の大きさが、少なくとも部分的に、前記ずれをベースに操作される前記ホストコンピュータに表示されたイメージ又はファイルのサイズに依存する請求の範囲１０記載の方法。
【請求項１７】
力フィードバックインタフェース装置から、グラフィカル環境を表示するホストコンピュータに入力を提供する力フィードバックインタフェース装置であって、
少なくとも一自由度で移動可能な操作可能オブジェクトであって、前記自由度での前記操作可能オブジェクトの位置が、前記グラフィカル環境でユーザ制御されたグラフィカルオブジェクトの対応する位置を決定するオブジェクトと、
前記操作可能オブジェクトにインプット力が加えられたときに該インプット力に対向する抵抗力を、前記自由度で前記操作可能オブジェクトに加えるとともに、前記抵抗力に加えて、前記グラフィカル環境内で生じるイベントに基づいて、前記操作可能オブジェクトに出力されるオーバーレイ力を加えるために前記操作可能オブジェクトに結合されたアクチュエータと、
前記操作可能オブジェクトを前記自由度で感知するために作動するセンサと、
前記ホストコンピュータから分離し、前記力フィードバックインタフェース装置のインデキシングモードを選択するために作動するモードセレクタであって、前記モードセレクタが、前記ホストコンピュータに出力されるべき信号を引き起こし、前記信号が、前記ホストコンピュータに、前記インデキシングモードがアクティブかどうかを示し、前記インデキシングモードがアクティブの場合、前記ホストコンピュータが、前記自由度での前記操作可能オブジェクトの前記位置をベースに前記グラフィカル環境で前記ユーザ制御グラフィカルオブジェクトの位置をアップデートせず、前記アクチュエータによる前記力の適用が、前記インデキシングモードがアクティブのときにできなくなるモードセレクタと、
を備える装置。
【請求項１８】
前記操作可能オブジェクトの前記位置が、前記ホストコンピュータに報告され、前記インデキシングモードがインアクティブの場合に前記グラフィカルオブジェクトの前記位置をアップデートし、前記インデキシングモードがアクティブの場合は、前記操作可能オブジェクトの前記位置が前記ホストコンピュータに報告されない請求の範囲１７記載の力フィードバックインタフェース装置。
【請求項１９】
前記モードセレクタが、前記ホストコンピュータと分離したマイクロプロセッサを含む、請求の範囲１７記載の力フィードバックインタフェース装置。
【請求項２０】
前記モードセレクタが、前記インデキシングモードを選択するために構成され、ユーザによる選択の可能なスイッチを含む、請求の範囲１７記載の力フィードバックインタフェース装置。
【請求項２１】
前記スイッチの作動が、前記操作可能オブジェクトの、前記操作可能オブジェクトの下に位置する平面から離れる方向への移動を引き起こす請求の範囲２０記載の力フィードバックインタフェース装置。
【請求項２２】
前記操作可能オブジェクトが移動可能な２自由度によって画成される平面とほぼ垂直な方向に前記操作可能オブジェクトを移動することによって、前記インデキシングモードが選択されるように、前記モードセレクタが構成される請求の範囲１７記載の装置。
【請求項２３】
安全スイッチが開かれると、前記アクチュエータに結合されるとともに、前記アクチュエータが前記力を前記操作可能オブジェクトに出力することを防止するために作動する安全スイッチを備え、
前記モードセレクタが単一のインプット装置として前記安全スイッチと一体形成されている請求の範囲１７記載の装置。
【発明の詳細な説明】
発明の分野
本発明は、一般的に、人間がコンピュータ装置とインタフェースすることを可能にするためのインタフェース装置に関し、より詳細には、ユーザがコンピュータ装置への入力を提供することを可能にするとともに、ユーザへの力フィードバックを提供するコンピュータインタフェース装置に関する。
発明の背景
コンピュータ装置は、ワード処理、データ管理、シミュレーション、ゲーム、及びその他のタスクのような、多くのアプリケーションを実行するように、異なる業界の多くで広範に使用されている。コンピュータ装置は典型的には、ユーザに表示画面又は他の視覚出力装置上にビジュアル環境を表示する。ユーザは、表示される環境と会話して、コンピュータ上で機能を実行し、ゲームを行い、シミュレーション又は「バーチャルリアリティ（仮想現実）」環境を体験し、コンピュータ支援設計（ＣＡＤ）装置を使用し、あるいは、その他画面に描かれるイベント又は画像に手を加えることができる。
特に一般的なビジュアル環境の１つは、グラフィカルユーザインタフェース（ＧＵＩ）である。ＧＵＩは、コンピュータ上に実装されるプログラムあるいはオペレーティング装置の種々のグラフィカルメタファ（象徴）を描写する視覚画像を提示する。一般的なＧＵＩには、Microsoft CorporationからのWindows（商標）オペレーティング装置、及びApple Computer, Inc.からのSystem 7.5オペレーティング装置が含まれる。このインタフェースは、入力インタフェース装置を使用することによりオペレーティング装置及びアプリケーションプログラムの機能をユーザがグラフィカルに選択し、操作することを可能にする。ユーザは、普通は、カーソルやポインタのような、ユーザ制御グラフィカルオブジェクトを、コンピュータ画面にわたって、他の表示されたグラフィカルオブジェクト上に、又は予め定められた画面領域に動かしてから、コマンドを入力して所与の選択又は操作を実行させる。オブジェクト又は領域（「ターゲット」）は、例えば、アイコン、ウィンドウ、プルダウンメニュー、ボタン、スクローリングバーを含むことができる。現在、殆どのＧＵＩは、コンピュータ画面に表示されるので２次元であるが、２次元の画面上に、シミュレーションされた三次元環境を提示する三次元（３−Ｄ）ＧＵＩも提供できる。
カーソルのようなユーザ制御グラフィカルオブジェクトを提供できる他のプログラム又は環境は、グラフィカルな「ウェブページ」、又はインターネットのWorld Wide Web上に提供される他の環境、ＣＡＤプログラム、ビデオゲーム、バーチャルリアリティシミュレーション等、を含む。グラフィカルコンピュータ環境の幾つかでは、ユーザはグラフィカル環境の３−Ｄ「光景（ビュー）」を制御する入力を提供することができる、即ち、ユーザ制御グラフィカル「オブジェクト」は、ビデオ画面に表示されるビューと考えることができる。ユーザは、あたかもカメラを動かしてそれを通して見ているように、インタフェース装置を操作してビューを動かすことができる。このタイプのグラフィカル操作は、ＣＡＤ又は３−Ｄバーチャルリアリティアプリケーションでは一般的である。
コンピュータ環境とのユーザインタラクション及び操作は、表示環境を制御するコンピュータ装置に接続されている様々なヒューマン−コンピュータインタフェース装置の何れかを使用して達成される。大部分の装置では、コンピュータは、マウス、ジョイスティック等のようなインタフェース装置に含まれるユーザの操作可能な物理的オブジェクト（「ユーザオブジェクト」）のユーザの操作に応答して環境を更新する。コンピュータは、表示画面及び典型的にはオーディオスピーカを利用してユーザにフィードバックを提供する。
現在、ユーザがコンピュータ環境と会話して操作することを可能にするのに異なる感知モードと異なるマップ化を使用する２つのタイプのインタフェース装置がある。即ち、アイソトニック（等張性isotonic）感知装置とアイソメトリック（等長性isometric）感知装置である。アイソトニック感知は、物理的空間の中で、予め定められた自由度で物理的ユーザオブジェクトの運動を利用して、コンピュータへの入力を提供する。例えば、マウスはアイソトニックコントローラで、ＧＵＩ内のカーソルを制御するために使用されることが多い。マウスは、マウスパッド又は他の表面の平面を２自由度で動かされることができ、カーソルは、画面上でマウスの動きに直接応答し動かされる。ジョイスティックはアイソトニックコントローラの別の例であり、そこでの物理的空間での回転又は直線の自由度でスティックの動きが感知され、コンピュータに入力される。他のアイソトニックインタフェース装置は、トラックボール、スタイラス、タブレット、ステアリングホィール（ハンドル）等である。
対照的に、アイソメトリック感知は、物理的空間でのユーザオブジェクトの動きではなく、ユーザオブジェクト上のユーザの力又は圧力を利用する。ユーザがインタフェース装置に及ぼす力の大きさと方向が感知され、コンピュータ環境の操作とインタラクションに使用されるべくコンピュータに入力される。例えば、Space-Tecの“Space Ball″及び、Logitecの“Magellan″は同じアイソメトリックコントローラである。Space Ballは、ボールと装着面との間に設けた圧力センサを持つ球体である。ユーザが球体に触れると、センサは、触れることにより発生された力の方向と大きさを検出する。理想的なアイソメトリック感知では、ユーザの圧力に反応するユーザオブジェクトの変形は感知されない。しかし、ユーザが感知するユーザオブジェクトの少量の変形又は動きがあれば、その感知は「弾性」制御と呼ぶことができる。多くの場合、ユーザオブジェクトの少量の変形により力の大きさが測定されるので、アイソメトリックコントローラは、実際には弾性コントローラである。ユーザにより加えられた圧力の程度ついていくらかの直感的なフィードバックが提供されるので、ユーザによっては、この少量の変形を好む。多くの場合、弾性コントローラは、純粋のアイソメトリックコントローラの誤差よりもコンピュータオブジェクトの操作で生ずる誤差の方が少量であることが判明した。
人間工学研究（human factors research）では、アイソトニックコントローラは位置制御タスクに優れ、他方アイソメトリックコントローラはレート制御タスクを伴う使用のためにはより直感的であることを示している。「位置制御」は、ユーザ制御グラフィカルオブジェクトによるユーザオブジェクトの位置の直接マッピングに関連する。例えば、カーソルはマウスが動かされる距離に対応する距離を動かされるので、ＧＵＩのカーソルは、位置制御の下でマウスにより制御される。対照的に、「レート制御」は、グラフィカルオブジェクトへのユーザオブジェクトの間接的、つまり観念的なマッピングに関連する。例えば、スクローリング及びズーミングは、マウスの位置には直接的に関係しないので、ＧＵＩのウィンドウでのテキストのスクローリング又はウィンドウでの大きな画像へのズーミングは、レート制御タスクである。同様に、シミュレートされる乗り物の制御速度はレート制御パラダイムに適している。
ＧＵＩ及びその他のグラフィカル環境内でのマウスとトラックボールのようなアイソトニックコントローラの現行使用での問題は、単一のコンピュータ環境で、位置制御とレート制御の両方が必要とされる点である。例えば、上記のように、ＧＵＩは、ターゲット取込み、即ち、カーソルをアイコン、ボタン、メニュー項目、テキスト等に動かすような多くの位置制御タスクを含む。マウスのようなアイソトニックコントローラはこのタイプのインタラクションには理想的である。しかし、テキストのスクローリング、ズーミング、ビューのパニング／回転、又はサイジングのような他のＧＵＩインタラクションには、レート制御インタフェースがより好適である。アイソトニックコントローラを使用して簡単なレート制御インタラクションを提供するには、幾つかのグラフィカルメタファが発明されてきた。例えば、位置制御インタフェースでは、スライダが表示され、このスライダは、マウスを使用して動かされテキストのスクローリングを可能にすることができ、又はアイコンを選択してズーミングが可能になる。しかし、これらのグラフィカルメタファは、特に、アイソメトリックコントローラ又は弾性コントローラを使用する際のレート制御タスクの容易さに鑑み、面倒なことが多い。事実、スクローリング及びズーミングのようなレート制御タスクに対するニーズが高いユーザは、コンピュータ環境とのインタラクションで使用の容易さを最大にするように、マウスのようなアイソトニックコントローラとSpace Ballのようなアイソメトリックコントローラの両方を同時に使用できる。しかし、コンピュータインタラクションに２つの異なるコントローラを使用することは、ユーザにとって面倒であり不便である。
加えて、既存のアイソメトリックコントローラは、それらが単なる入力装置であり、ユーザにアクティブな力フィードバックを提供することができない点で限定的である。このように、アイソトメトリックコントローラを操作するとき、ジョイスティックのようなアイソトニックコントローラの操作時に提供されることのできる力フィードバックをユーザは経験することができない。従って、在来のアイソメトリックコントローラを使用する場合、グラフィカル環境でのタスク実行においてユーザは、潜在的に価値があり興味ある力情報と支援を欠いている。
レート制御タスクで使用できる追加コントロールモードを持つアイソトニックコントローラの市販例が幾つかある。１つの例は、Immersion CorporationのSoft Mouseであり、数年前から入手可能である。これは追加の親指ホイールを備える、標準のマウスコントローラで、ズーム機能を制御するために回転可能である。別の例は、これから出てくるMicrosotf（商標）のIntellimouseであり、指ホイールを持ち、スクロール機能を制御するために回転できる標準マウスコントローラである。この両方とも、統合化に劣る多重モードコントローラの例である。というのは、追加モードは標準コントローラへの単なるアドオン付加だからである。例えば、付加のアドオンセンサは、標準マウスセンサからは独立して、親指ホイールを追跡するのに使用される。また、各モードに対し異なる指の動作を必要とし、例えば、マウスを動かして１つのモードを制御し、ホイールを回して別のモードを制御する。そして、アイソメトリックコントローラと同様に、これらのタイプのコントローラは、入力専用コントローラであり、コンピュータ制御された出力の力をユーザに提供することはできない。
必要なのは、統合された多重モードコントローラであり、同一センサと同一指の動作を用いて多重制御モードを実行することである。加えて、使用の容易さを提供するために、モード間の切替えにはシームレスな方法が望ましい。最後に、利用可能なモードの全てで、コンピュータ制御されたアクチュエータにより提供される力フィードバックを有する多重モード装置が、コンピュータ環境でのユーザのインタラクションに必要とされる。
発明の開示
本発明は、ホストコンピュータシステムへのアイソトニック及びアイソメトリック両方の入力をユーザが提供することを可能にする、力フィードバックインタフェースに関する。アイソトニック入力及び力フィードバックは、カーソル又は他のグラフィカルオブジェクトを位置決めするというような位置制御タスクのために提供される一方、アイソメトリック入力は、レート制御タスクを容易に実行するために提供される。
より詳細には、本発明は、ユーザからホストコンピュータシステムにアイソトニック及びアイソメトリック入力を提供するためのインタフェース装置を含む。インタフェース装置は、ユーザが接触して物理的空間で動かせる、ユーザ操作可能な物理的オブジェクトを含む。好ましい実施形態では、物理的オブジェクトは、平面作業空間内で動かすことができるパック又はマウスである。センサは物理的空間での物理的オブジェクトの動きを検出し、好ましくは、アクチュエータがアウトプット力を物理的オブジェクトに加える。モードセレクタが設けられ、インタフェース装置のアイソトニック制御モード及びアイソメトリック制御モードを選択する。アイソトニックモードは、物理的空間グラウンドに対する物理的オブジェクトの位置に基づき、ホストコンピュータシステムに入力を提供する。アイソメトリックモードは、同一グラウンドに対する同一の物理的オブジェクトにユーザにより加えられるインプット力に基づきホストコンピュータシステムに入力を提供し、ここで、インプット力はセンサにより検出される動きに基づき決定される。アイソメトリックモードでは、ユーザにより加えられるインプット力は、好ましくはアクチュエータにより加えられるアウトプット力に対向し、好ましくは、物理的空間で局所的に定義される、原点からの物理的オブジェクトの測定された偏りに基づき検出される。
同様に、本発明の方法は、グライフィカルユーザインタフェース（ＧＵＩ）のようなグラフィカル環境を表示するホストコンピュータシステムに接続される単一インタフェース装置を使用して、ユーザからのアイソトニック及びアイソメトリック入力を提供する。インタフェース装置のための選択された制御モードが受付けられ、そこでの制御モードは、アイソトニック制御モードかアイソメトリック制御モードの何れかである。インタフェース装置がアイソトニックモードにある場合、アイソトニック入力がホストコンピュータに提供され、そこで、アイソトニック入力は、ホストコンピュータにより使用されて提供された自由度で、ユーザ操作物理的オブジェクトの位置に対応させるためにグラフィカル環境でのユーザ制御（カーソルのような）グラフィカルオブジェクトの位置を更新する。アイソメトリックモードがアクティブでないとき、インタフェース装置はアイソトニックモードにあることが好ましい。好ましくは、力感覚（force sensations）は、グラフィカル環境でのユーザ制御グラフィカルオブジェクトのインタラクションに基づきアイソトニックモードで物理的オブジェクトに加えられる、ここで、力感覚は、グラフィカルオブジェクトとのインタラクションに基づきユーザを支援し、及び／又はそれを知らせる。カーソルの所在とユーザからのコマンドジェスチャにより示されるプログラム機能が実行されることができる。
インタフェース装置がアイソメトリックモードにある場合、アイソメトリック入力がホストコンピュータに提供される、ここで、アイソメトリック入力はホストコンピュータに使用される。ユーザにより物理的オブジェクトに加えられる入力の力に基づきグラフィカル環境のアイソメトリック機能を制御する。好ましい実施形態では、インタフェース装置のアイソメトリックモードと係合するよう指示が受け取られる。局所原点は、提供された自由度で物理的オブジェクトの現在位置に関連して定められる。局所原点からの物理的オブジェクトの変位が決められ、ここで、この変位はユーザの入力を示し、変位に抗して抵抗力が物理的オブジェクトに加えられる。好ましくは、この抵抗力は復帰させる力であり、局所原点からの変位の大きさに比例する大きさで局所原点に向かう方向を持つ。決定された変位は、ホストコンピュータにより実装されるアプリケーションプログラム又はオペレーティング装置のアイソメトリック機能を制御するために使用される。アイソメトリック機能は、表示文書のスクローリング、表示ビューのパニング、あるいは表示ビューのズーミングのようなタスクを含むことができる。アイソメトリックモードでのオプションとして、ホストコンピュータは、物理的オブジェクトの変位に対応するユーザ制御グラフィカルオブジェクトの動きを表示することもできる。
一実施形態で、制御モードは、物理的オブジェクトに設けた物理的ボタンのような入力装置を動作させるユーザにより選択されることができる。代替として、制御モードは、カーソルのようなユーザ制御グラフィカルオブジェクトと、グラフィカル環境でホストコンピュータが表示する別のグラフィカルオブジェクトとの間のインタラクションに基づき選択されることができる。このインタラクションは、別のグラフィカルオブジェクトの「アイソメトリック表面」でユーザ制御グラフィカルオブジェクトを動かすことを含め得る。本発明のインデキシング機能は、ユーザがユーザ制御グラフィカルオブジェクトと物理的オブジェクトとの間の上記アイソトニックモードでのマッピングを無効にすることにより、物理的オブジェクトの位置と表示画面上でのカーソルの所在との間のオフセットを変更できるようにする。例えば、ユーザが自らの指の重量を物理的オブジェクトから外したときに、物理的オブジェクトへの出力の力を働かせなくするように、安全スイッチが含まれてもよい。一実施形態では、安全スイッチとインデキシング機能が同じスイッチに統合されている。既述の実施形態では、ホストプロセッサとは別の局所マイクロプロセッサが、インタフェース装置に結合され、ホストコンピュータにかかる計算負荷を解放するよう力の感知と出力の局所制御を提供することができる。ボイスコイルアクチュエータ又はモータをアクチュエータとしてしてもよく、複数の部材を持つリンク機構を含めることができる。
幾つかの実施形態では、アイソメトリックモードで物理的オブジェクトに加わるリストアリング（restoring）力にオーバーレイ（overlay）力が加えられる。このオーバーレイ力は、文書スクローリングのページ替え、又は制御範囲の制限のようなグラフィカル環境でのイベントを前記ユーザに示すジョルト力(jolt force)又は振動感知(vibration sensation)であることができる。
本発明の方法と装置は、アイソトニック及びアイソメトリック両方の感知機能を単一のインタフェース装置で有利に提供する。これは、グラフィカルコンピュータ環境でアイソトニックの位置制御タスク及びアイソメトリックのレート制御タスクを効率よく実行するよう、ユーザが制御モードを好都合に切替えることを可能にする。アイソトニックモードでの力は、アイソトニックタスクでユーザを支援し又はユーザに通知し、アイソメトリックモードでのオーバーレイ力の提供は、従来のアイソメトリック入力装置では不可能であった追加の情報をユーザに提示することを可能にする。本発明の安全スイッチとインデキシングの特徴は、マウスのような力フィードバックインタフェースが容易に実行され、操作されることを可能にする。
本発明のこれらの、そして他の利点は、以下の本発明の仕様を熟読し、図面の図の幾つかを研究することにより当業者に明らかになるであろう。
【図面の簡単な説明】
図１は、ホストコンピュータにアイソトニック及びアイソメトリック入力を提供する、本発明のインタフェース装置の一実施形態の透視図である。
図２は、図１のインタフェース装置に使用される機械的リンクの実施形態の透視図である。
図３ａ−ｂは、図１のインタフェース装置で使用されるボイスコイルアクチュエータを有する実施形態の、それぞれ上面図と側面図である。
図４ａは、図１のインタフェース装置で使用されるボイスコイルアクチュエータを有する第２の実施形態である。
図４ｂは、図４ａ及び図４ｃの実施形態に適したリニアボイスコイルアクチュエータの断面図である。
図４ｃは、図１のインタフェース装置で使用されるボイスコイルアクチュエータを有する第３の実施形態である。
図５は、本発明の力フィードバックインタフェース装置を制御する、図１の装置のブロック図である。
図６ａは、図１のインタフェース装置で使用されるパックインタフェースオブジェクトの透視図である。
図６ｂは、安全スイッチを示す、図６ａのパックの側面図である。
図６ｃは、図６ａのパックを使用する、本発明のインデキ機能の説明図である。
図７ａ−ｄは、図１のインタフェース装置で使用されるインタフェースオブジェクトの代替実施形態の透視図である。
図８は、本発明のグラフィカルユーザインタフェース（ＧＵＩ）を示すとともに、アイソトニックモードで、ユーザ制御カーソルと力とのインタラクションを示す表示画面の説明図である。
図９は、図８のＧＵＩで使用されるターゲットと、関連する力の説明図である。
図１０は、本発明のアイソメトリック入力を提供するためのアイソメトリックオブジェクトを示す表示画面の説明図である。
図１０ａ−１０ｂは、図１０のアイソメトリックオブジェクトの縮小の説明図である。
図１１ａ−ｂは、本発明のアイソメトリック入力により制御可能なズーミング機能を示す表示画面の説明図である。
図１２は、インタフェース装置によりアイソトニック及びアイソメトリック力フィードバックを供給するための、本発明の方法を説明するフロー線図である。
図１３は、本発明のインタフェース装置のアイソトニックモードを実行するための、図１２のステップを説明するフロー線図である。
図１４は、アイソトニックモードでユーザオブジェクトに力を与えるための、図１３のステップを説明するフロー線図である。
図１５は、本発明のインタフェース装置のアイソメトリックモードを実行するための、図１２のステップを説明するフロー線図である。
図１５ａ−ｃは、アイソメトリックモードでの入力及び出力の力の視覚表示の説明図である。
図１６は、アイソメトリックモードでユーザオブジェクトに力を与えるための、図１５のステップを説明するフロー線図である。
図１６ａは、リストアリング力プロフィルの図である。、
図１６ｂは、アイソメトリックモードでユーザオブジェクトに与えられる力の概略図である。
好ましい実施形態の説明
図１は、コンピュータオブジェクト及び環境と会話するために、ホストコンピュータにアイソトニック及びアイソメトリック入力を提供する能力のある、本発明の力フィードバックインタフェース装置１０［訳註、番号が図に示されていない］の透視図である。インタフェース装置１０は、ユーザ操作可能オブジェクト１２、機械的インタフェース１４、電子的インタフェース１６、及びホストコンピュータ１８を含む。
本発明に関連して用いられるユーザ操作可能オブジェクト１２（「ユーザオブジェクト（user object）」、「物理的オブジェクト（physical object）」、又は「マニプランダム（manipulandum）」）は、好ましくはユーザにより把持され、つまり握られて、操作される。「把持する」とは、ユーザが、手により、その指先を使って、又は、ハンディキャップのある人の場合は口を使うような方法でオブジェクトの一部と解放可能に係合できることを意味する。例えば、画像は、そのような操作に応答して、コンピュータ装置１８の表示画面２０上で表示、及び／又は修正される。図解されたインタフェース装置１０は、ユーザ操作可能オブジェクト（また本明細書中では「ウイジェット（道具）widget」としても知られる）としてのマウスオブジェクト又は「パック」２２を含む。パック２２は、ユーザの指又は手で気持よくオブジェクトをつかみ、物理的空間で提供された自由度でそれを動かすことができるように、形作られている。例えば、ユーザは、コンピュータ１８により提供されるグラフィカル環境で、コンピュータが生成するカーソル又は他の画像のようなグラフィカルオブジェクトの動きに対応させてパック２２を動かすことができる。ユーザ操作可能オブジェクト１２が動かされ得る使用可能な自由度は、以下に記載の機械的インタフェース１４から決定される。加えて、パック２２は、好ましくは、１個以上のボタンを含み、ユーザがコンピュータ装置に追加のコマンドを提供することを可能にする。パック２２は、図６ａに関してより詳細に説明される。
ユーザ操作可能オブジェクト１２の多く他のタイプが本発明の方法と装置とともに使用できることが理解されるであろう。本発明は、多自由度を伴うヒューマン／コンピュータインタフェースを提供するのが望ましい任意の機械的オブジェクトとともに使用されることができる。そのようなオブジェクトには、スタイラス、ジョイスティック、球形状、立方形状、又は他の形状のグリップ、ねじ廻し、ステアリングホィール／コントロール装置、プールキュー、カテーテルのような医療器具などがある。スタイラスのような、他のオブジェクトの幾つかは、後に、図７ａ−ｄに関連して詳細に説明される。
機械的インタフェース装置１４は、シミュレーション又はゲーム環境を実装する、ホストコンピュータ１８と、ユーザが操作可能オブジェクト１２との間の機械的入力と出力をインタフェースする。機械的インタフェース１４は、多自由度をオブジェクト１２に提供する。つまり、代替実施形態ではもっと多くの又はもっと少ない自由度を提供できるし、回転自由度も提供できるとはいえ、好ましい実施形態ではリニアで平面の２自由度をオブジェクトに提供する。多くの用途に対し、パック１４、図１に実施形態として点線２６で示した非常に狭い領域面積内で動かす必要があるだけである。このことは、物理的空間でパック１４を単に短い距離だけ動かすにより、カーソルのようなグラフィカルオブジェクトは、画面２０の全長又は全巾にわたって動かすことができるからである。この局面を以下詳細に検討する。
好ましい実施形態では、ユーザは、従来のマウスとほとんど同様に、平坦な作業空間でオブジェクト１２を操作し、オブジェクト１２の位置は、機械的インタフェース１４の位置センサが解釈するのに適した形に変換される。センサは、平面空間でオブジェクト１２の動きを追跡して、電子的インタフェース１６に適切な電子信号を提供する。電子的インタフェース１６は次に、ホストコンピュータ１８に位置情報を提供する。加えて、ホストコンピュータ１８及び／又は電子的インタフェース１６は、力フィードバック情報を、機械的インタフェース１４に結合されたアクチュエータに提供し、アクチュエータは、与えられた又は希望の自由度でオブジェクト１２に力を提供するために機械的装置の部材上に力を生成する。ユーザは、オブジェクト１２上に生成された力を、ジョルト、バネ、テクスチャ、「バリヤ」力、及びそれらの類似するもの等、力感知の現実的シミュレーションとして体験する。例えば、コンピュータ画面２０上に剛性面が生成され、ユーザにより制御されるコンピュータオブジェクトがこの面に衝突するとき、コンピュータ１８は、力フィードバック信号を、電子的インタフェース１６と機械装置１４に送って、オブジェクト１２上に衝突力を生成するだろう。機械的インタフェース１４の幾つかの実施形態が、図２、３ａ−ｂ、及び４ａ−ｂに関して詳細に示されている。
電子的インタフェース１６は、インタフェース装置１０の構成要素であり、機械的装置１４をホストコンピュータ１８に結合する。電子的インタフェース１６は機械的装置１４のハウジング内に含めることができ、又は代替として、電子的インタフェース１６はホストコンピュータ１８に含めることができる。さもなければ、電子的インタフェース１６全体又は一部分を、図１に示すようにハウジング自体を持つ別体ユニットとして提供することもできる。より詳細には、電子的インタフェース１６は、以下に説明するように、ホストコンピュータから独立して力フィードバックを制御するため、ホストコンピュータ１８内の何れのマイクロプロセッサからも独立した局所マイクロプロセッサを含むとともに、機械的装置１４及びホストコンピュータ１８が使用可能な適当な形に電気信号を変換するセンサとアクチュエータのインタフェースを含む。インタフェース１６の適切な実施形態は、図５を参照して詳細に説明される。
電子的インタフェース１６は、バス１５を介して機械的インタフェース装置１４に結合され（又は、装置１４のハウジング内に含まれてもよい）、バス１７を介してコンピュータ１８に結合される（又は、適切なインタフェースを使用してコンピュータバスに直に接続されてもよい）。他の実施形態では、信号が、ワイヤレス送信／受信により、インタフェース１６とコンピュータ１８に、及びそこから送られることができる。本発明の好ましい実施形態では、インタフェース１６は、コンピュータ１８の入力／出力（Ｉ／Ｏ）装置の役を果たす。インタフェース１６は、機械的インタフェース１４又はオブジェクト１２に関連付けられた他の入力装置又は制御装置から入力を受け取ることもでき、これらの入力をコンピュータ１８に中継する。例えば、ユーザオブジェクト１２上のボタンを作動させる、ユーザにより送られるコマンドは、コマンドを実行するように、又はコンピュータ１８が機械的装置１４にコマンドを出力するようにさせるために、インタフェース１６を介してコンピュータ１８に中継することができる。そのような入力装置は、図５に関してより詳細に説明される。
ホストコンピュータ１８は、好ましくは、ＩＢＭ−ＰＣ互換コンピュータ、又はMacintoshパソコン、又は、Sun又はSilicon Graphicsのワークステーション等のパソコン又はワークステーションである。例えば、コンピュータ１８は、ＩＢＭ ＰＣ ＡＴ標準に適合するWindows（商標）又はＭＳ−ＤＯＳオペレーティング装置下で動作できる。代替として、ホストコンピュータ１８は、任天堂、セガ、又はソニーから入手可能な装置等、テレビセットに共通して接続される種々の家庭用ビデオゲーム装置のうちの１つであり得る。他の実施形態では、ホームコンピュータ装置１８は、例えば、ユーザに会話可能なテレビ機能を提供するのに使用できる「セットトップボックス」、又は、インターネット及びWorld Wide Webのために使用されるような標準のコネクションとプロトコルを使用して、ユーザが局所又はグローバルネットワークと会話をできるようにする。「ネットワーク」又は「インターネット」コンピュータであり得る。好ましくは、ホストコンピュータは、ホストマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、入力／出力（Ｉ／Ｏ）回路、及び、当業者にはよく知られたコンピュータの他の構成要素を含む。
ホストコンピュータ１８は、好ましくは、機械的インタフェース装置１４及び適切であれば他の周辺機器経由してユーザが会話中のホストアプリケーションプログラムを実装する。例えば、ホストアプリケーションプログラムは、ユーザオブジェクト１２の入力、及びオブジェクト１２への出力の力フィードバックを利用する、医療シミュレーション、ビデオゲーム、ウェブページ、科学分析プログラム、又はその他のアプリケーションプログラムであり得る。本明細書中では、単純化のために、Windows（商標），ＭＳ−ＤＯＳ，ＭａｃＯＳ，Unixその他のオペレーティング装置も、「アプリケーションプログラム」と称する。好ましい、実施形態では、アプリケーションプログラムは、グラフィカルユーザインタフェース（ＧＵＩ）を利用して、ユーザにオプションを提示し、ユーザから入力を受け取る。本明細書中で、コンピュータ１８は「グラフィカルオブジェクト」又は「コンピュータオブジェクト」を表示するものとして述べる。これらのオブジェクトは物理的オブジェクトではなく、当業者にはよく知られるように、コンピュータ１８により表示画面２０上で画像として表示され得るデータ及び／又は手順の論理ソフトウエアユニットの集合である。表示されるカーソル又は航空機のシミュレーションコックピットは「オブジェクト」と考えてもよいだろう。ホストアプリケーションプログラムは、電子的インタフェース１６及び機械的インタフェース１４のセンサから受け取られた入力信号、及び、ユーザオブジェクト１２への力に変換されるアウトプット力の値とコマンドをチェックする。そのようなシミュレーションソフトウエアをコンピュータの入力／出力（Ｉ／Ｏ）装置とインタフェースするのに適したソフトウエアドライバは、カリフォルニアのサンノゼにあるImmersion Human Interface Corporationから入手可能である。
表示装置２０はホストコンピュータ１８に含まれることができ、標準の表示画面（ＬＣＤ，ＣＲＴ等）、３−Ｄゴーグル、又はその他のビジュアル出力装置であってよい。普通は、ホストアプリケーションは、表示装置２０上に表示されるべき画像及び／又はオーディオの信号のような他のフィードバックを提供する。例えば、表示画面２０はＧＵＩからの画像を表示できる。動いている第１人物の観点を表す画像を、バーチャルリアリティゲームのように表示できる。さもなければ、オブジェクト遠近法による第３人物を表す画像を表示できる。代替として、医療シミュレーションのようなシミュレーションからの画像、例えば、組織の画像、及びオブジェクト１２が組織等の中を動く描写を表示することができる。
インタフェース装置１０の動作には２つの主要な「制御パラダイム（control paradigms）」がある。即ち、位置制御とレート制御である。位置制御は、物理的空間でのユーザオブジェクトの変位がグラフィカルオブジェクトの変位に直接つながる、ユーザオブジェクト１２のマッピングに関連する。マッピングは任意の尺度比であることができ、又は、非線形であってもよいが、ユーザオブジェクトの変位とグラフィカルオブジェクトの変位との間の基本的な関係がなければならない。位置制御マッピングで、ユーザオブジェクトが動かない限りコンピュータオブジェクトは動かない。位置制御は、従来のコンピュータゲーム用に普及したマッピングではないが、グラフィカルユーザインタフェース（ＧＵＩ）又は医療用プロシージャシミュレーションのような他のアプリケーションでは普及している。位置制御力フィードバックは、ユーザにより直接感知されるであろう力におおまかには対応する、即ち「ユーザ中心」の力である。
レート制御は、１つ又はそれ以上の与えられた自由度に沿う、ユーザオブジェクト１２の変位が、制御の下でコンピュータシミュレーションされるオブジェクトの運動に観念的にマッピングされるユーザオブジェクトのマッピングに関連する。物理的オブジェクトの運動とコンピュータオブジェクトの運動の間には直接的な物理的マッピング方法はない。このように、ユーザオブジェクトは所定位置で動かずに保持され得るが、制御されるコンピュータオブジェクトは命令された又は与えられた速度で運動しており、他方、位置制御パラダイムは、ユーザオブジェクトが運動状態にある場合だけ、制御されるコンピュータオブジェクトは運動状態にあることが許容されるという点で、ほとんどのレート制御パラダイムは、位置制御とは基本的に異なる。例えば、レート制御の一般的な形は、ユーザオブジェクトの変位が、表示画面２０に表示される乗り物又は他のグラフィカルオブジェクトのようなコンピュータオブジェクトの速度につながる速度導出抽象化である。ユーザオブジェクトが原点から大きく移動するほど、制御されるグラフィカルオブジェクトの速度は大きくなる。そのような制御パラダイムはコンピュータゲームでは非常に普及しており、宇宙船又はレースカーの速度（又は加速度、例えば推力）は、例えば、ジョイスティックの変位により指示される。力フィードバックスキームでは、レート制御力は、乗り物又は他のシミュレーションされる実体に加えられるので、「乗り物」中心力と命名できる。
図１に示すように、ホストコンピュータは、表示画面２０に表示される自らの「ホストフレーム」２６を持つことができる。対照的に、ユーザオブジェクト１２は、ユーザオブジェクト１２が動かされる自らの「局所フレーム」２８を持つ。位置制御パラダイムでは、カーソルのような、ユーザに制御されるグラフィカルオブジェクトのホストフレーム２６内での位置は、ユーザオブジェクト１２の、局所フレーム２８内での位置に対応する。ホストフレーム内でのオブジェクトと局所フレーム内でのオブジェクトの間のオフセットは、図６ｃで以下説明するように、ユーザにより変更されることが好ましい。
本発明の幾つかの実施形態では、パック２２は接地されたパッド２４上又は類似の表面上を動かされることができる。幾つかの実施形態では、パックは機械的構造に結合されている（図３及び４）か、あるいは機械的装置１４によりパッドとグラウンドの上方に懸垂されている（図２）ので、パック１２は、パッド２４又はグラウンド３１に接触することはない。このように、パッドは、ユーザに、パックの作業空間、即ち、装置１４によりパックが動くことが可能である領域を示す参照として使用されることができる。パッドはまた、ユーザの手又はユーザの手の一部を載せる面としても使用できる。代替実施形態では、パック２２は、パッド２４の表面、又はグラウンド３１に接触して、パックの追加支持を提供するとともに、機械的装置１４に働く応力を解放する。そのような実施形態では、ホイール、ローラ、又は他の装置をパック上に使用して、パックと接触された表面との間の摩擦を最小にするのが好ましい。
本発明（以下に記載）のアイソトニックモードにおいて、例えばＧＵＩのようなグラフィカルコンピュータ環境中で表示されるカーソル等の、コンピュータによって生成されるグラフィカルオブジェクトを制御するためにパック２２が使用される。ユーザは、ＧＵＩでグラフィカルオブジェクトにカーソルを移動させたり、他のタスクを実行するために、マウスのような２Ｄ平面作業空間においてパックを移動させることができる。バーチャルリアリティテレビゲームのような他のグラフィカル環境において、ユーザは、パック２２を操作することによりバーチャル環境の中でコンピュータプレーヤあるいは乗り物を制御することができる。コンピュータ装置は、ユーザがパックを移動させるとともに、センサでパックの位置を追跡する。またコンピュータ装置は、例えばユーザが、ウィンドウのエッジやバーチャル壁などのような、生成された表面に対してグラフィカルオブジェクトを移動させるとき、パックに力フィードバックを提供してもよい。これにより、パックとグラフィカルオブジェクトが現実の面に接触しているようにユーザに思わせ、感じさせる。本発明のアイソメトリックモードでパック２２を使用するとき、アイソメトリックのあるいは弾力性のある入力を提供するため、ユーザが利用可能なパック上で、ユーザはリストアリング力あるいは、ばね力を感じる。
図２は、本発明に従って機械的な入出力を提供するための機械的装置１４の第一実施形態の透視図である。装置１４は、機械的リンク３０、及び図２の実施形態では好ましくは、装置１４に結合されたパック２２あるいはマウスのようなオブジェクトであるユーザ操作可能オブジェクト１２を含む。
機械的リンク３０は、オブジェクト１２のためのサポートを提供し、テーブル上あるいは他のサポートのような設置面３１にオブジェクトを結合する。設置部材３６は、設置面３１に結合又は載置されている。リンク３０は、上記実施形態において、設置部材３６、設置部材３６に連結するベース部材３８ａ、ベース部材３８ａに連結する中央部材４０ａ、設置部材３６に連結するベース部材３８ｂ、及びベース部材３８ｂに連結する中央部材４０ｂを含む、５部材（つまり５節）リンクである。別実施形態では、これより少ないあるいは多い数のリンク部材が使用されてもよい。
リンク３０の部材は、回転軸受あるいはピボットの使用を介して相互に回転可能に連結され、ベース部材３８ａは軸受（図示せず）により設置部材３６に回転可能に連結されて、軸Ａ（キャプスタン駆動機構は、以下検討するようにベース部材と設置部材との間で連結される）のまわりに回転できる。中央部材４０ａは、軸受４４ａによりベース部材３８ａに回転可能に連結されてフローティング軸Ｂのまわりに回転可能であり、ベース部材３８ｂは、軸受（図示せず）により設置部材３６に回転可能に連結されて軸Ａのまわりに回転可能であり、中央部材４０ｂは、軸受４４ｂによりベース部材３８ｂに回転可能に連結されてフローティング軸Ｃのまわりに回転可能であり、中央部材４０ｂは、中央部材４０ｂと中央部材４０ａがフローティング軸Ｄのまわりに互いに相対的に回転できるよう、軸受４６により中央部材４０ｂに回転可能に連結される。上記実施形態において、中央部材４０ｂは、その端部が中央部材４０ａの中央部に連結されており、オブジェクト１２は中央部材４０ａの端部に連結されている。代替実施形態において、中央部材４０ｂの端部は、平行リンク円の部材４０ａの端部に連結されることができる。
オブジェクト１２がパック２２である場合、パックが軸Ｅのまわりに回転し、平面作業空間でユーザがいくらかのフレキシブルな動きを行えるように、回転軸受はパック２２を中央部材４０ａに連結させるのが好ましい。代替実施形態において、軸Ｅ周りの運動はセンサによって検出してもよい。更に別の実施形態において、アクチュエータを使用して軸Ｅ周りに力を提供できる。
軸Ｂ、Ｃ、及びＤは、軸Ａのように、設置面３１に対して１つの位置には固定されないという意味では、“フローティング”である。好ましくは、軸Ｂ、Ｃ、及びＤは、すべて、実質的に互いに平行である。代替実施形態において、ベース部材３８ａと３８ｂは、異なる場所で設置部材３６に連結されることができるので、２つの設置軸が提供でき、そのまわりを各部材が回動する。
リンク３０は、５部材閉ループチェーンとして形成される。各チェーン部材は、チェーンの２個の別部材と連結される。５部材リンクは、部材がユーザオブジェクト１２に２自由度を提供するよう、それぞれの軸のまわりに回転できるよう編成され、即ちパック２２が、図２に示されるように、X及びｙ軸で定義されるX−ｙ面で定義された平面作業空間内を動かされることができる。このように、ユーザオブジェクト１２が平面内を移動可能であるので、リンク３０は“平面”５部材リンクである。
キャプスタン駆動機構４８は、電気機械的トランスデューサ５１とユーザオブジェクト１２との間の力と運動を伝達するために提供される。キャプスタン駆動機構４８ａ及び４８ｂは、装置に対して実質的な摩擦とバックラッシュをもたらすことなく、アクチュエータにより生成される力に関して機械的なアドバンテージを既存する。キャプスタン駆動機構４８ａは、設置部材３６とベース部材３８ａとの間で連結され、設置に関係する軸Ａのまわりの力をベース部材３８ａに加えるように作動するのが好ましい。第２のキャプスタン駆動機構４８ｂは、設置部材３６とベース部材３８ｂの間で連結され、設置に関係する軸Ａ周りの力をベース部材３８ｂに加えるよう作動するのが好ましい。各キャプスタン４８ａ及び４８ｂは、軸Ａ周りに相互に回転する設置部材３６に回転可能に連結して、ベース部材３８ａ及び３８ｂに堅固に連結されるドラム５０をそれぞれ含んでいる。キャプスタンドラムは、軸Ａ周りをともに回転するよう、並んで配置される。各キャプスタン機構４８ａ及び４８ｂは、トランスデューサ５１に連結されるドライブプーリ５３も含み、ドライブプーリは、フレキシブルケーブル５５によってドラム５０に連結される。アイドルプーリ５７はケーブルの取り回しに使用され、ケーブル把持力を増強させる。例えば、ケーブル５５はアイドルプーリ５７の周りやドライブプーリ５３の周り、及び他のアイドルプーリ５７の周りを取り回され得る。代替として、他のタイプの機構、もしくは機構を持たないタイプを、キャプスタン機構に代わって使用してもよい。別の実施形態において、ユーザオブジェクト１２はまた、設置部材３６と、ベース部材３８ａ及び３８ｂとの間で連結される回転キャリッジを使用して、追加の空間自由度で動かされてもよい。
トランスデューサ５１は、リンク３０にも連結されており、センサ及び／又はアクチュエータを含んでもよい。トランスデューサ５１はセンサ５２を含むことができる。センサ５２は、与えられた自由度でオブジェクト１２の回転位置／移動を集合的に検出する。センサ５２ａは、軸Ａ周りの、ベース部材３８ａの移動を検出し、センサ５２ｂは、軸Ａ周りの、ベース部材３８ｂの動きを検出する。軸Ａ周りにのこれらの位置により、リンク３０の部材の長さのような既知の定数を用いて、そして、よく知られた整合変換を用いてオブジェクト１２の位置決定が可能となる。
トランスデューサ５１はまた、空間内、例えばユーザオブジェクト２（又はそれ以上の）自由度で、力をオブジェクト１２に伝達するための接面アクチュエータ５４を含むのが好ましい。アクチュエータ５４ａのトランスデューサのハウジングは、設置部材３６に堅固に結合されており、アクチュエータは、好ましくはキャプスタン駆動機構４８ａを介して、軸Ａ周りに、ベース部材３８ａに回転力を伝達する。同様に、アクチュエータ５４ｂは設置部材４６に堅固に結合され、キャプスタン駆動機構４８ｂを介して軸Ａ周りに、ベース部材３６ｂに回転力を伝達する。これらの軸Ａ周りの回転力の組合せにより、リンク３０の部材の回転相互作用を通して、リンク３０により提供される、平面作業空間内のあらゆる方向で力が伝達できる。アクチュエータのハウジングは、同一設置部材３６又は３１に連結されるのが好ましい。多くのタイプのアクチュエータが、図５を参照してで説明するように使用できる。
ユーザ操作可能オブジェクト（もしくは“ユーザオブジェクト”）１２は機械的インタフェース１４に結合され、リンク３０により与えられる自由度ともし実装されていれば付加的な自由度とで移動されてもよい。ユーザオブジェクト１２の一実施形態は、図１と２に示されるようなパック２２である。
追加及び／又は別の機構を用いて、ユーザオブジェクト１２に所望自由度を提供することができる。例えば幾つかの実施形態において、パック２２（あるいは他のユーザオブジェクト１２）と中央部材４０ａの間に軸受を設けることにより、中央部材４０ａを通って延びる軸Ｅ周りにパックが回転できるようにしてもよい。この自由度は、所望であれば検出及び／又は作動されることができる。他の実施形態において、フローティングシンバル機構は、オブジェクト１２に付加的な自由度を与えるために、ユーザオブジェクト１２とリンク３０との間に含まれることができる。オプションとして、付加的なトランスデューサが、オブジェクト１２の、与えられた、又は付加された自由度で、機械的インタフェース１４に追加されることができる。
図３ａは、機械的装置１４とユーザオブジェクト１２を含むインタフェース装置の第２実施形態７０の上面図であり、図３ｂはその側面図であり、電磁ボイスコイルアクチュエータが、ユーザオブジェクトに力を供給するために使用されている。「インタフェース装置７０は、ユーザが平面作業空間内でオブジェクト１２をX軸、Ｙ軸、あるいは両軸（対角移動）に沿って変換できるよう、ユーザオブジェクト１２に対して２つの直線方向自由度を与える。装置７０は、ユーザオブジェクト１２と、ボイスコイルアクチュエータ７４ａと７４ｂとガイド８０を含むボード７２とを含む。
オブジェクト１２はボード７２に堅固に連結されている。前述の実施形態において、ボード７２は、例えば回路基板であり、以下に説明するような導電材料を用いてエッチングされていてもよい。ボードは、他の実施形態において、他の種類の材料かつ形状を用いて実施されてもよい。ボード７２は、X−Ｙ面に実質的に平行な面に位置して浮いており、即ち、ボード７２は着地されていない。従って、ボード７２は、矢印７８ａ及び７８ｂで示すように、軸X及び／又は軸Ｙに沿って変換されてもよく、オブジェクト１２は、同じ方向に変換され、従ってオブジェクト１２に直線方向自由度を与える。ボード７２は、矢印７８で示すように、ボード７２を実質的にX−Ｙ面に平行な面に保持し、その面で回路基板に変換させる役割を持つガイド８０によりガイドされるのが好ましい。ガイド８０は、図示の通り円筒部材であるが、代替実施形態においては様々な形状を有していてもよい。ボード７２は、一方の延在部分８２ａを他の延在部分８２ｂから９０度で有する実質的に直角背向で提供される。代替実施形態では、ボード７２は他の形状で提供され得る。
ボイスコイルアクチュエータ７４ａ及び７４ｂは、一方のアクチュエータ７４ａが８２ａ部に備えられ、他方のアクチュエータ７４ｂが８２ｂ部に備えられるように、ボード７２上に配置される。アクチュエータ７４ａのワイヤコイル８４ａは、ボード７２の８２ａ部に接続される。ワイヤコイル８４ａは、少なくとも２つのループを含み、公知の技術を用いてプリント回路基板トレースとしてボード７２上にエッチングされるのが好ましい。備えられるコイル８４ａのループ数は、少なくても多くてもよい。端子８６ａは、電子的インタフェース１６のアクチュエータドライバ（以下に記載）に接続されるので、コンピュータ１８（又は図５の局所マイクロプロセッサ）は、ワイヤコイル８４ａ内の電流の方向及び／又は大きさを制御できる。
ボイスコイルアクチュエータ７４ａはまた、４個の磁石９０を含み、接面されるのが好ましい磁石アセンブリ８８ａを含む。代替として、それぞれ２極性を有する２個の磁石が、含まれてもよい。各磁石は、磁石の両端に極（北Ｎ又は南Ｓ）を有する。磁石９０の対極同士は、図３ｂに示す通り、コイル８４ａが、コイルの各面上で反対の極の間に位置するよう互いに向き合っている。代替実施形態では、磁石９０は、コイル８４ａの片側に備えられ、他の磁石９０が、磁束戻り通路を提供する同一形状の金属片であってもよい。小さな間隙量が、磁石表面とコイル８４ａとの間に備えられるのが好ましい。磁束ガイドは、随意に当業者にとって周知であるように磁束を磁石９０の一端から他端に移動させるよう磁束ガイドが含むことができる。
磁石９０からの磁界は、力を生じるようコイル８４ａに電流が流れるときに、ワイヤコイル８４ａから生じる磁界と互いに影響し合う。コイル８４ａとボード７２は、磁石９０の間に位置し、従って対向する磁石の磁界によって影響を受ける。電流Ｉが電気的接続８６ａを介してコイル８４ａを通って流れる際、磁界が電流とコイル８４ａの構成から生じる。次いで、コイルからの磁界は、磁石９０によって生じた磁界と互いに影響して、軸Ｙに沿った力を生じる。力の大きさ又は強さは、コイルに印加される電流の大きさやコイルの巻数、磁石の磁界の強さに依存する。力の方向は、コイル内の電流の方向に依存する。所望の電流の大きさと方向を印加することにより、ボード７２に力が作用され、それによって軸Ｙに沿った直線方向自由度においてユーザオブジェクト１２に力が作用する。従ってボイスコイルアクチュエータは、ＤＣモータやブレーキ等の他のアクチュエータに対する代用として備えられてもよい。ボイスコイルアクチュエータは、力が作用することを望まれる機械的装置の各自由度のために備えられてもよい。
このように、磁石９０からの磁界は、矢印７８ｂで示されるように、軸Ｙと平行な方向においてボード７２に直線方向の力を生じるようコイル８４ａに電流が流れる場合、ワイヤコイル８４ａから生じた磁界と互いに影響し合う。ボード７２とワイヤコイル８４ａは、コイル８４ａが移動された側の磁石９０の下から抜け出るまで、軸Ｙと平行に移動される。例えば、ボード７２は、点線９１で示した限界まで移動され得る。物理的なストップをボード７２の端部に位置決めして、移動限界を与えてもよい
ボイスコイルアクチュエータ７４ａはまた、軸Ｙに沿ってユーザがユーザオブジェクト１２を移動させる際に軸Ｙに沿ったボード７２の速度を検出するための、及び／又は、直線方向自由度でのユーザオブジェクト１２の位置と、その速度からの別の値とを導出するためのセンサとして使用することができる。磁石９０の磁界内での軸Ｙに沿ったコイル８４ａの動きは、コイル８４ａに対して電圧を誘起し、この電圧が検出される。この電圧は、軸Ｙに沿ったコイルとボード７２の速度に比例する。この導出された速度から、ボード７２の加速度あるいは位置が、例えばクロック（以下に記載）からの、タイミング情報を使用することで導出される。代替として、コイル８４ａに類似し、適切な巻数を有する１個以上の付加的なコイルが、上記のような位置、速度、加速度を導出するための電圧を検出するためだけにボード７２上に配置されてもよい。
他の実施形態では、ボイスコイルアクチュエータは、ノイズを受け易いアナログ検出値を生じ、そのようなノイズのフィルタは、普通は高価なコンポーネントを要求するため、低コストインタフェース装置においてオブジェクト１２の位置、動き等を検出するために、独立したディジタルセンサが使用されてもよい。例えば、側面効果フォトダイオードセンサ９２が使用され得る。センサ９２は、エネルギービーム９６が接地エミッタ９８から放射されるX−Ｙ面に平行な面上に位置する矩形検出器９４を含むことができる。ボード７２の位置、つまりオブジェクト１２の位置は、検出器でのビーム９６の配置により決定できる。代替としてボード７２と摩擦的に結合されるローラに連結された回転シャフトを有する光学エンコーダのような、別のタイプのセンサが使用されてもよい。
代替として、付加的なコイルも、アクチュエータ７４ａが異なる大きさの力を供給するために備えることができる。例えば、コイル８４ａは、多数の独立したワイヤの「２次コイル」を含むことができる。端子セットは、それぞれ異なる２次コイルに含まれる。各２次コイルは、ボード７２上で異なる巻数を備えることができ、従って、定電流Ｉが２次コイルに流されるとき、異なる磁界と、それによる異なる大きさの力を発生することができる。この機構はまた、スイッチのオンオフを使用する装置にも適用できる。
ボイスコイルアクチュエータ７４ｂは、アクチュエータ７４ａと同様の動作をする。電流はコイル８４ｂを通って流れて、矢印７８ｂで示されるように、軸Xと平行な方向にボード７２を変換する磁力を誘起する。これにより、力は軸Xに沿った直線方向自由度でユーザオブジェクト１２に作用する。独立したセンサ９２が、軸Xと軸Ｙに沿った、オブジェクト１２の動きについても備えられか、又は単一センサ９２が、両方の自由度での動きを検出するのに使用されてもよい。
ボイスコイルアクチュエータ７４ａ及び７４ｂは、幾つかの有利な点を有する。１つは、限界移動範囲が、マグネチックアセンブリ８８の長さによってオブジェクト１２の特定自由度に関して定義されることである。また、出力トルクが入力コイル電流の一次関数であるため、ボイスコイルアクチュエータの制御は、他のアクチュエータよりもより容易である。加えて、ボイスコイルアクチュエータは、他のタイプのモータが行うような機械的あるいは電気的な変換を必要としないため、ボイスコイルアクチュエータは、長い寿命、少ないメンテナンス、静かな動作を有する。アクチュエーションは、摩擦がなく、結果的にユーザにとって、触感がより忠実で、よりスムーズな感触をもたらす。ボイスコイルアクチュエータの部品は、安価に製造でき、容易に利用でき、結果的に現実的な力のフィードバックを提供する低コストな方法となる。
図３ａ及び３ｂの詳細な例はまた、幾つかの有利な点を有する。１つは、コイル８４ａと８４ｂが、ボード７２上に直接エッチングされ得ることであり、これにより独立したワイヤの巻回作業時間を回避できる。加えて、インタフェース１６の他の電子コンポーネントはもちろんのこと、ボイスコイルドライバチップも、直接ボード７２に接続され、アクチュエータ制御のためにボード上の配線で相互接続され、簡潔で低コストな製造方法を提供する。
代替実施形態では、軸X及びＹに沿ったボード７２の直動移動はボールジョイントやペンデュラム、あるいは他の機構を用いるユーザオブジェクト１２のために２つの回転方向自由度に変換され得る。たわみも、X及びＹ方向においてのみで動いて、X−Ｙ面での「ねじり」なしでボード７２を抑えるような望まれない自由度での動きを妨げるために使用されてもよい。
図４ａは、２つの直線方向自由度がユーザオブジェクト１２に提供され、リニアボイスコイルアクチュエータ１０２ａ及び１０２ｂが、ユーザオブジェクトに力を適用するのに使用される、インタフェース装置１００の斜視図である。コンピュータ１８（図示せず）は、所望の電流を印加するようボイスコイルアクチュエータに接続されてもよい。
図４ｂに、リニアボイスコイルアクチュエータ１０２ａ又は１０２ｂの実施形態の側面図を示す。リニアボイスコイルアクチュエータ１０２ａは、接面アクチュエータであり、円筒磁束ハウジング１０４ａ及びコイルヘッド１０６ａを含む。ハウジング１０４ａは、鉄製あるいは他の鉄系金属製であってもよく、ハウジングの内部長に沿って配置され、放射状に磁化された放射状分極の管状磁石１０８（代替として多数の小さな磁石でできていてもよい）を含む。加えて、ハウジング１０４ａのコア部分１１０ａは、コイルヘッド１０６ａの中心を通ってハウジング１０４ａの中心に延長してもよい。コイルヘッド１０６ａは、コイルヘッドの周りを巻回された、図３ａのコイル８４ａに類似するコイル１１２ａを含む。オプションコイル支持部１１４ａは、周囲をコイル１１２ａで巻回するために提供される。コイルヘッド１０６ａは、上記と同様に電流がコイル２７８ａを通って流れるときに、矢印１１６で示される直線方向自由度に沿ってハウジング１０４ａ内を移動する。コイルヘッド１０６ａの方向は、印加される電流の方向に依存する。加えて、リニアボイスコイルアクチュエータは、上記の速度検出によって直線方向自由度に沿ってコイルヘッド１０６ａの位置を検出するのに使用することができる。代替として、独立したリニアモーションセンサが、オブジェクト１２又は他の部材に連結されてもよい。
図４ａに戻って参照すると、コイルヘッド１０６ａは、シャフト１２０ａの第１の端部に連結され、シャフト１２０ａの第２の端部は、結合部材１２２ａの第１端部に連結されている。ロータリージョイント１２４ａは、シャフト１２０ａを結合部材１２２と連結させ、結合部材１２２ａをフローティング軸Ｚ1について回転できるようにしている。結合部材１２２ａの第２端は、回転軸Ｚ3を提供するロータリージョイント１２６により結合部材１２２ｂの第２端に回転可能に連結される。ユーザオブジェクト１２は結合部材１２２ｂ（あるいは１２２ａ）に連結されている。リニアボイスコイルアクチュエータ１０２ｂは、図４ｂに示すように、アクチュエータ１０２ａと等しいコンポーネントを有している。ロータリージョイント１２４ｂは、シャフト１２０ｂを結合部材１２２ｂと連結させ、結合部材１２２ｂがフローティング軸Ｚ2について回転できるようにしている。
オブジェクト１２は、ユーザによって、線形軸X又は線形軸Ｙに沿って、又はこれらの軸の組合せに沿って変換され得る。オブジェクト１２が、軸Xに沿って移動すると、コイルヘッド１０６ａ、シャフト１２０ａ、及び結合部材１２２ａは、図３ａに示す通り、軸Xに沿って相応に移動され、同じ位置関係を保持する。しかしながら、結合部材１２２ｂは、結合部材１２２ａの移動に従って、フローティング軸Ｚ2及びフローティング軸Ｚ3について回転する。同様に、オブジェクト１２が軸Ｙに沿って移動すると、コイルヘッド１０６ｂ、シャフト１２０ｂ、及び結合部材１２２ｂは、図３ａに示すように相応に移動され、相対的な位置を保持する一方で、１２２ａが結合部材１２２ｂの移動に従ってフローティング軸Ｚ1とＺ3について結合部材回転する。オブジェクト１２が軸X及びＹ両方に沿って同時に移動される（例えば、オブジェクト１２が対角に移動される）と、両結合部材１２２ａと１２２ｂは、それぞれの軸について回転する。
図４ｃは、図４ａに示すインタフェース装置１００の代替実施形態１００’の略図である。図４ｃでは、図３ａに示したような２個のリニアボイスコイルアクチュエータ１０２ａ及び１０２ｂは、オブジェクト１２に対する２つの直線方向自由度において力を作用し位置を検出するために含まれる。アクチュエータ１０２ａ及び１０２ｂは、図４ａのものと本質的に類似している。図４ａのように、コイルヘッド１０６ａ及び１０６ｂは、それぞれ、ハウジング１０４ａ及び１０４ｂ内において矢印１１６で示される直線方向自由度に沿って変換する。電流は、コンピュータ１８（あるいはマイクロプロセッサ）によって印加されて、コイルヘッドに力を作用させたり、速度を検出する。
シャフト１２０ａ’は、フレキシブル部材１３０ａに連結される。フレキシブル部材１３０ａ及び１３０ｂは、樹脂、ゴム、金属等の弾力性材料で作られ、１つの自由度において曲げることができるのが好ましい。フレキシブル部材１３０ａ及び１３０ｂは、棒が曲がる次元では幅狭で、棒が曲がらない次元では幅広になっている。シャフト１２０ａ’は、部材１３０ａをコイルヘッド１０６ａと連結する堅固な部材である。フレキシブル部材１３０ａは、その他端でオブジェクト部材１３２と堅固に連結される。部材１３２は、オブジェクト１２の一部あるいはオブジェクト１２の支持用のプラットフォーム、あるいは他のベースである。シャフト１２０ｂ’は、部材１３２及び、同様の方法でフレキシブル部材１３０ｂを介してオブジェクト１２に連結されている。
オブジェクト４４は、直線軸Xあるいは直線軸Ｙに沿ってユーザによって移動され得る。フレキシブル部材１３０ａ及び１３０ｂは、オブジェクトが移動されるのに応じて適切にたわむ（曲がる）。例えば、オブジェクト１２及び部材１３２が軸Xに沿って移動される場合、移動の方向がフレキシブル部材１３０ａの縦軸（と実質的に平行）に下方に向けられるため、フレキシブル部材１３０ａを曲げることはできない。しかし、ハウジング１０４ｂがオブジェクト１２に関連して接地されているため、フレキシブル部材１３０ｂは、オブジェクト１２の変換を許可するよう（軸Xに沿ったオブジェクトの方向に依存して）アクチュエータ１０２ａに向かって、あるいは、離れる方向に曲がる。同様に、オブジェクト１２が他の直線方向自由度において軸Ｙに沿って変換される場合、フレキシブル部材１３０ｂは曲がらずに、フレキシブル部材１３０ａは、オブジェクト１２の変換を許可するようアクチュエータ１０２ｂに向かって、あるいは、離れる方向に曲がる。オブジェクト１２が両軸X及びＹに沿って同時に移動される（即ちオブジェクト１２が対角に移動される）と、両フレキシブル部材１３０ａ及び１３０ｂは、移動に連動して曲がる。
図５は、本発明で用いるのに適した電子的インタフェース１６とホストコンピュータ１８を示す線図である。インタフェース装置１０は、ホストコンピュータ１８、電子的インタフェース１６、機械的装置１４、及びユーザオブジェクト１２を含む。電子的インタフェース１６、機械的装置１４、及びユーザオブジェクト１２はまた、ホストに接続される“フォースフィードバックインタフェース装置”１３を集合的に見なしたものである。
図１に関して説明した通り、コンピュータ１８は、パーソナルコンピュータ、ワークステーション、テレビゲームコンソール、あるいは他の電算あるいは表示装置であってもよい。ホストコンピュータシステム１８は、ホストマイクロプロセッサ１８０、ランダムアクセスメモリ（ＲＡＭ）１８２、リードオンリメモリ（ＲＯＭ）１８４、入出力（Ｉ／Ｏ）回路部１８６、クロック１８８、表示装置２０、及びオーディオ出力装置１９０を共通に含む。ホストマイクロプロセッサ１８０は、Ｉｎｔｅｌ、ＡＭＤ、Ｍｏｔｏｒｏｌａ、あるいは他のメーカから市販されている様々なマイクロプロセッサを含むことができる。マイクロプロセッサ１８０は、単一のマイクロプロセッサチップであってもよく、あるいは複数の一次及び／又はコプロセッサを含むことができる。マイクロプロセッサは、当業者にとって周知のようなＲＡＭ１８２及びＲＯＭ１８４からの命令及び他の必要なデータを取り出し蓄積するのが好ましい。前述の実施形態では、ホストコンピュータシステム１８は、装置１４のセンサからバス１９２を介してセンサデータあるいはセンサ信号を受信し、他の情報も受信することができる。マイクロプロセッサ１８０は、Ｉ／Ｏ回路１８６を使用してバス１９２からデータを受信することができ、他の周辺装置を制御するためにＩ／Ｏ回路を使用することができる。ホストコンピュータシステム１８はまた、バス１９２を介してインタフェース装置１３にコマンドを出力して、インタフェース装置１０に関して力のフィードバックを発生することができる。
クロック１８８は、ホストコンピュータ１８によって使用される標準クロッククリスタル、あるいは同等のコンポーネントであって、ホストマイクロプロセッサ１８０及びコンピュータ装置１８の他のコンポーネントにより使用される電気信号にタイミングを与える。クロック１８８は、本発明の制御方法において、ホストコンピュータ１８によってアクセスされて、力あるいは位置を決定する、例えば、位置の値から速度あるいは加速度を計算するのに必要となる、タイミング情報を提供する。
表示装置２０を、図１に関して説明する。スピーカ等のオーディオ出力装置１９０は、当業者にとって周知のアンプ、フィルタ、及び他の回路を介してホストマイクロプロセッサ１８０に接続することができる。ホストプロセッサ１８０は、ホストアプリケーションプログラム実行中に“オーディオイベント”が発生した場合、ユーザにサウンド出力を提供するため、スピーカ１９０に信号を出力する。記憶装置（ハードディスク装置、ＣＤ−ＲＯＭ装置、フロッピディスク装置等）、プリンタ、及び他の入出力装置のような、他のタイプの周辺機器もホストプロセッサ１８０に接続することができる。
電子的インタフェース１６は、双方向バス１９２によってホストコンピュータシステム１８に接続されている。双方向バスは、ホストコンピュータシステム１８とインタフェース装置１３との間でいずれの方向にも信号を送信する。バス１９２は、シリアル通信プロトコルに従ってデータを提供するシリアルインタフェースバス、パラレルプロトコルを使用するパラレルバス、あるいは他のタイプのバスでもよい。ＲＳ２３２シリアルインタフェースポートのようなホストコンピュータシステム１８のインタフェースポートは、バス１９２をホストコンピュータシステム１８に接続する。別の実施形態では、付加バス１９４が、ホストコンピュータシステム１８とインタフェース装置１３間で通信するために含まれる。バス１９４は、２組のバス１９２及び１９４が増加したデータ帯域を提供するため同時に使用されるよう、“ゲームポート”のようなホストコンピュータシステムの第２ポートに接続される。
本発明で使用される１つの好ましいシリアルインタフェースは、ユニバーサルシリアルバス（ＵＳＢ）である。ＵＳＢ規格は、高度のリアリズムで本発明の力のフィードバック信号を提供できる比較的高速なシリアルインタフェースを提供する。ＵＳＢはまた、本発明のアクチュエータや他の装置を駆動する電源を供給できる。ＵＳＢにアクセスする各装置は、ホストコンピュータによりユニークなＵＳＢアドレスを割り当てられ、これによって複数の装置が同じバスを共有できる。加えて、ＵＳＢ規格は、差分データとともにコード化されるタイミングデータを含む。
電子的インタフェース１６は、局所マイクロプロセッサ２００、局所クロック２０２、局所メモリ２０４、センサインタフェース２０６、及びアクチュエータインタフェース２０８を含んでいる。インタフェース１６はまた、バス１９２及び１９４上での標準プロトコルによる通信用に付加的な電子コンポーネントを含んでもよい。様々な実施形態では、電子的インタフェース１６は、機械的装置１４の中、ホストコンピュータ１８の中、あるいはそれ自身独立したハウジングの中に含まれることができる。インタフェース１６の異なるコンポーネントは、望まれる場合、装置１４やホストコンピュータ１８の中に含まれてもよい。
局所マイクロプロセッサ２００はバス１９２に接続されるのが好ましく、インタフェース装置の他のコンポーネントと即座に通信できるよう機械的装置１４に密接に結合されていてもよい。プロセッサ２００は、インタフェース装置１３に対して「局所」であると考えられ、ここで「局所」とは、プロセッサ２００が、ホストコンピュータ１８内の、他のプロセッサ１８０とは独立したマイクロプロセッサであることを意味する。「局所」とはまた、プロセッサ２００が、力のフィードバックとインタフェース装置１０のセンサＩ／Ｏに特定されていること、及び装置１４のハウジング内部の、あるいは装置１４に密接に結合したハウジングの中にあるような、機械的装置１４のセンサ及びアクチュエータに密接に結合していることを意味する。マイクロプロセッサ２００は、コンピュータホスト１８からのコマンドあるいはリクエストを待ち、コマンドあるいはリクエストを分析、デコードし、コマンドやリクエストに応じて入出力信号を操作、制御する、ソフトウェア命令を与えることができる。加えて、プロセッサ２００は、センサ信号を読むこと、及び、それらセンサの信号、時間信号、ホストコマンドに従って選択される力の処理、及びアクチュエータへの適切な制御信号の出力とから適切な力を計算することにより、ホストコンピュータ１８とは無関係に動作する。局所マイクロプロセッサ２００として使用するのに適したマイクロプロセッサは、例えば、Ｍｏｔｏｒｏｌａ製のＭＣ６８ＨＣ７１１Ｅ９、Ｍｉｃｒｏｃｈｉｐ製のＰＩＣ１６Ｃ７４を含む。マイクロプロセッサ２００は、１個のマイクロプロセッサチップ、あるいは複数のプロセッサ及び／又はコプロセッサチップを含むことができる。他の実施形態では、マイクロプロセッサ２００は、ディジタルシグナルプロセッサ（ＤＳＰ）機能を有してもよい。
例えば、マイクロプロセッサ２００を利用する１つのホスト制御の実施形態では、ホストコンピュータ１８は、バス１９２を介して低レベルの力のコマンドを与えることができ、マイクロプロセッサ２００はアクチュエータに直接伝送する。異なる局所制御の実施形態では、ホストコンピュータシステム１８は、バス１９２を介してマイクロプロセッサ２００に高レベルの管理コマンドを与え、マイクロプロセッサ２００は、高レベルコマンドに従って、及びホストコンピュータ１８とは無関係に、センサ及びアクチュエータに対する低レベルの力制御ループを管理する。局所制御の実施形態では、マイクロプロセッサ２００は、局所メモリに記憶されるような、そして演算命令、公式、力の大きさ、あるいは他のデータを含む、“力の処理”の命令に続く適切な出力アクチュエータ信号を決定するために、入力されたセンサ信号を処理できる。力の処理は、振動、手触り、衝撃、さらには表示されたオブジェクト間での擬似作用のような、明瞭な力の感覚を命令することができる。マイクロプロセッサ２００により使用されるセンサ信号はまた、ホストアプリケーションプログラムを更新し、力制御信号を適切に出力するホストコンピュータシステム１８に報告される。例えば、ユーザがパック２２を移動すれば、コンピュータ装置１８は、この移動を示す位置及び／又は他の信号を受信し、それに応じて、表示のカーソルを動かすことができる。代替実施形態では、局所マイクロプロセッサ２００は、インタフェース装置１０には全く含まれず、ホストコンピュータ１８は、インタフェース１６と機械的装置１４を往き来するすべての信号を直接制御し、処理する。
局所クロック２０２は、ホストコンピュータ１８の装置クロック１８８に類似するタイミングデータを供給するためにマイクロプロセッサ２００に接続され、タイミングデータは、例えばアクチュエータ３０によって出力される力（例えば、計算された速度に依存する力、又は他の時間に依存する要因）を計算するために必要とされる。ＵＳＢ通信インタフェースを使用する代替実施形態では、マイクロプロセッサ２００に関するタイミングデータは、ＵＳＢインタフェースから取り込むことができる。
ＲＡＭ及び／又はＲＯＭ等の局所メモリ２０４は、マイクロプロセッサ２００に関する命令を記憶するため、そして一時的な記憶及び他のデータを記憶するためインタフェース１６中のマイクロプロセッサ２００に接続されるのが好ましい。
マイクロプロセッサ２６は、ＥＥＰＲＯＭのような局所メモリ２０４に、較正パラメータを蓄積してもよい。メモリ２０４は、（図１２で説明される）現在の制御モードと現在のアイソメトリック原点位置を含む、力フィードバック装置の状態を蓄積するために使われてもよい。
センサインタフェース２０６は、センサ信号を、マイクロプロセッサ２００及び／又はホストコンピュータシステム１８によって解釈され得る信号に変換する電子的インタフェース１６に、任意に含められてもよい。例えば、センサインタフェース２０６は、エンコーダのようなデジタルセンサから信号を受け取ることができ、そしてシャフト又は機械的装置１４の構成要素の位置を表すデジタルバイナリ数に信号を変換する。センサインタフェース２０６中のアナログ／デジタルコンバータ（ＡＤＣ）は、受信したアナログ信号を、マイクロプロセッサ２００及び／又はホストコンピュータ１８用のデジタル信号に変換できる。そのような回路又は等価な回路は、当業者にはよく知られている。代替として、マイクロプロセッサ２００は、別々のセンサインタフェース２０６の必要もなく、これらのインタフェース機能を実行することができる。あるいは、マイクロプロセッサ２００とセンサインタフェース２０６をバイパスして、センサからのセンサ信号がホストコンピュータシステム１８に直接的提供されることができる。他のタイプのインタフェース回路構成２０６も使用可能である。
アクチュエータインタフェース２０８は、装置１４のアクチュエータとマイクロプロセッサ２００との間を任意に連結することができる。インタフェース２０８は、マイクロプロセッサ２００からの信号を、アクチュエータをド駆動するのに適した信号に変換する。インタフェース２０８は、パワーアンプとスイッチ、デジタル／アナログコントローラ（ＤＡＣ）、及び他の構成要素を含むことができる。そのようなインタフェースは、当業者にはよく知られている。代替実施形態として、インタフェース２０８の回路構成は、マイクロプロセッサ２００の内部に、あるいはアクチュエータ内に設けることができる。
電源２１０は、電力を与えるために、アクチュエータインタフェース２０８及び／又はアクチュエータ２２２に任意に接続することができる。能動アクチュエータは、一般的には駆動用の分離した電力源を必要とする。電源２１０はインタフェース１６、又は装置１４のハウジング内に含まれることができ、又は、例えば電力コードで接続されて、分離した構成要素として設けることができる。代わりに、もしＵＳＢか、類似した通信プロトコルが使われるならば、アクチュエータと他の構成要素は、ＵＳＢからパワーを得ることができ、従って電源２１０を（最低限しか）必要としない。この実施形態は、受動的な、又は他のアクチュエータを作動させるわずかパワーしか必要としない装置１４に最も好適である。能動アクチュエータはＵＳＢから得ることができるより多くのパワーを必要とする傾向があるが、この制約は多くの方法で克服することができる。１つの方法は、インタフェース１６と装置１４とを、ホストコンピュータ１８に至る２つ以上の周辺機器として現れるように構成することである。即ち、例えば、ユーザオブジェクト１２の与えられたそれぞれの自由度が、１つの異なる周辺機器として構成されて、自らの割り当てパワーを受け取ることができる。代替として、ＵＳＢからのパワーは、インタフェース１６又は装置１４により蓄積されて、調整されることができ、従って、アクチュエータ２２２を駆動するのに必要なときに使用される。例えば、パワーは、時間の経過にわたり蓄積されることができ、ユーザオブジェクト１２にジョルト力を与えるために直ちに消散されることができる。コンデンサ回路は、例えば、エネルギーを蓄積できて、十分なエネルギーが蓄積された場合にエネルギーを消散することができる。このパワー蓄積実施形態は、非ＵＳＢ実施形態で使用して、より小型の電源２１０を使用することを可能にする。
機械的装置１４は、電子的インタフェース１６に結合され、この電子的インタフェースは、センサ２２０、アクチュエータ２２２、及びメカニズム２２４を含む。センサ２２０は、１つ又はそれ以上の自由度に沿ってユーザオブジェクト１２の位置、運動、及び／又は他の特性を検知し、それらの特徴を表す情報を含む信号を、マイクロプロセッサ２００に提供する。普通は、１つのセンサ２２０が各自由度ごとに備えられ、その自由度に沿ってオブジェクト１２が動かされるが、さもなければ、単体の複合センサを複数の自由度用に使用されることもできる。ここに記載の実施形態に適するセンサの実施形態は、デジタル式ロータリ光エンコーダであり、回転軸周りのオブジェクトの位置変化を検出し、位置変化を示すデジタル信号を提供する。リニア光エンコーダは、直線自由度に沿うオブジェクト３４の位置変化を同じように検出できる。適切な光エンコーダは、ワシントンのU.S. Digital of Vancouverの“Softpot”である。代替として、ポテンショメータのようなアナログセンサを使用できる。また、物体からの磁界を検出するためのPolhemus（磁気）センサ、あるいはエミッタ／ディテクタ対を持つ側方効果（lateral effect）フォトダイオード、のような非接触センサを、機械的装置１４に対し異なる場所で使用することも可能である。加えて、オブジェクト１２の速度を計測するための速度センサ（例えばタコメータ）、及び／又はオブジェクト１２の加速度を計測するための加速度センサ（例えばアクセロメータ）を使用できる。更に、相対センサ又は絶対センサの何れでも使用できる。
アクチュエータ２２２は、マイクロプロセッサ２００及び／又はホストコンピュータ１８により出力された信号に応答して、１つ又はそれ以上の自由度に沿う１つ又はそれ以上の方向で、ユーザオブジェクト１２に力を伝達する。即ち、それらは「コンピュータ制御」である。普通は、アクチュエータ２２２は、各自由度ごとに備えられ、その自由度に沿って力が伝達されることが望まれる。アクチュエータには、２種類のタイプ、即ち能動アクチュエータと受動アクチュエータを含むことができる。能動アクチュエータは、リニア電流制御モータ、ステッパーモータ、空／油圧能動モータ、トルク装置（角方向制限範囲を持つ）、図３と４を参照して説明されたボイスコイルアクチュエータ、及びオブジェクトに力を伝達する他のタイプのアクチュエータを含んでいる。受動アクチュエータは、磁性粉ブレーキ、摩擦ブレーキ、空／油圧受動アクチュエータのようなアクチュエータ２２２用に使用することができ、或る程度の運動で減衰抵抗又は摩擦を発生する。更に他の実施形態において、受動（又は「粘性」）ダンパーエレメントを、装置１４の軸受に設けて、装置からエネルギーを除去することができ、機械装置の動的安定性を高める更に、ボイスコイル実施形態においては、多重ワイヤコイルを設けることができ、そこではいくらかのコイルを用いて、バックＥＭＦ（back EMF）と減衰力を与えることができる。幾つかの実施形態において、センサ２２０とアクチュエータ２２２のすべて、又はそのいくらかは、センサ／アクチュエータ対トランスデューサとして、一緒に包含されることができる
メカニズム２２４は、図２−４で先に説明されたもの、又は他のタイプのメカニズムを含んだ、幾つかのタイプのメカニズムのうちの１つであることができる。ユーザオブジェクト１２は、パック、ジョイスティック、又は、先に説明されたメカニズム２２０に結合されたものであり得る。
他の入力デバイス２２８は任意でインタフェース装置１０に含めることができ、信号をマイクロプロセッサ２００及び／又はホストコンピュータ１８に送る。このような入力装置は、パック２２上のボタン１４０のような、ボタンを含み、ユーザから、ＧＵＩ、ゲーム、シミュレーション等への入力を補完するために使用される。
安全、つまり「デッドマン」スイッチ２１２が、好ましくはインタフェース装置内に含まれてメカニズムを設け、安全性の理由で、ユーザがアクチュエータ２２２に乗ってこれを非アクチベート化することを可能にするか、あるいはユーザにアクチュエータをアクチベート化することを要求する。特定のタイプのアクチュエータ、特にはモータのような能動アクチュエータは、強い力でユーザに抗してユーザオブジェクト１２を不意に動かす場合、ユーザに対する安全性の問題が生ずる。更に、装置１０に故障が生じた場合、ユーザは傷害を回避するために、アクチュエータをすばやく非アクチベート化するのを望むことがある。このオプションを備えるために、安全スイッチ２１２がアクチュエータ２２２に結合される。好ましい実施形態において、ユーザは、ユーザオブジェクト１２を操作する間は、アクチュエータ２２２をアクチベート化するために、安全スイッチ２１２を連続してアクチベート化、つまり閉じなければならない。いずれにしても、安全スイッチが非アクチベート化される（閉じられる）場合は、電源２１０からアクチュエータ２２２に至るパワーは、安全スイッチが非アクチベート化されない限り遮断される（さもなければ、アクチュエータが非アクチベート化される）。例えば、安全スイッチの一実施形態は、ユーザオブジェクト１２上に配置された、又は装置１４を囲むハウジングの都合のよい面に配置された機械的又は光学的なスイッチである。例えば、ユーザが手又は指で光学的安全スイッチをカバーすると、スイッチのセンサが検出光をブロックして、スイッチは閉じる。このように、アクチュエータ２２２は、ユーザがスイッチをカバーする限り機能を果たすことになる。他のタイプの安全スイッチ２１２も使用でき、静電接触スイッチなども、ユーザの接触を検知するために使用できる。好ましい安全スイッチは、図６ｂを参照して説明する。安全スイッチは、図５に示すように、アクチュエータインタフェース２０８とアクチュエータ２２２との間に設けられることができる。さもなければ、スイッチは別の場所であってもよい。幾つかの実施形態では、安全スイッチの状態はマイクロプロセッサ２００に与えられ、アウトプット力の更なる制御を提供する。更に、安全スイッチの状態は、ホスト１８に送られることができ、ホストは、安全スイッチが開であれば、力フィードバックコマンドの送信を止めるように選択することができる。更なる別の実施形態において、入力装置としてインタフェースをなお更に作動させることを望む場合、ユーザが、インタフェース装置１３のアウトプット力を切ることができるように、第２のスイッチを設けることができる。そのような副次スイッチが力を切ったとき、ホスト１８は、力フィードバックコマンドを送信する必要はない。
インタフェース装置１０の幾つかの実施形態では、複数の機械的装置１４及び／又は電子的インタフェース１６がバス１９２（又は多重バス１９２）を介して単一のホストコンピュータシステムに結合されることができるので、複数のユーザが同時に、ホストアプリケーションプログラム（例えば、複数プレイヤーのゲームやシミュレーション）とインタフェースを取ることができる。更に、当業者にはよく知られているように、ネットワークホストコンピュータを用いて複数のインタフェース装置１０と、ホストアプリケーションプログラムで複数のプレイヤーが会話できる。
図６ａは、ユーザオブジェクト１２として、本発明とともに使用するのに適するパック２２の透視図である。パック２２は、ユーザがパックを操作する際に、ユーザの指及び／又は手に気持ち良くはまるように形作られることができる。例えば、パック２２は、コンピュータ装置に情報を入力するために使用される標準的なマウスに酷似する形を取ることができる。このパックは、小型のノブから、ユーザの指用のくぼみを有するグリップに至るまで、異なる実施形態で種々の形状を取ることができる。
マウスに類似して、パック２２は、ユーザの指の容易な到達範囲にあるボタン２５０のような別の入力装置２２８を含むことができる。追加のボタン２５０は、パック２２の上面に含まれていてもよく、あるいはボタン２５０ａのように、追加された機能のために、パック２２の側面に含まれていてもよい。例えば、ボタン２５０ａは、以下に説明するような、本発明のアイソトニックモードとアイソメトリックモードを選択するために好都合に私用されてもよい。ボタン２５０は、ユーザが、与えられた自由度でのパック２２の位置に係わりなく、コマンドを入力することを可能にする。例えばＧＵＩで、一旦、カーソルがパック又はマウスの位置を利用して画面上の所望のエリア又はオブジェクトに案内されたら、オプションを選ぶためにボタンが共用される。一実施形態において、ユーザは自らの指を、ボタン２５０に載せ、残りの指をパック２２の側面に置いて、機械的装置１４により生起される力に抗してパック２２を操作する。更に、ユーザの指２５２は、パック２２を移動させるとともにボタン２５０を押す一方、手のひら２５４は、パッド２４のようなグラウンド面に固定されるか、載せたままである。（図１参照）指は、アウトプット力に対して、手全体より敏感なので、インタフェース装置１３から指に出力される力の大きさはより小さくすることができ、手全体に加えられるより大きな力と同等の力感知を達成できる（ジョイスティックも同様）。このように、力が少なくてすむアクチュエータと、より少ない力消費は、ユーザが指単独でパック２２を操作するときに必要とされる。
図６ｂに示すように、パック２２は、安全スイッチ２１２（デッドマンスイッチとしても知られている）を含んでもよい。この安全スイッチは、パックが使用されていないとき、及び/又は、ユーザがアウトプット力の非アクチベート化を望むとき、パックにかかる、発生されたどのような力も非アクチベート化するのが好ましい。先に説明されたように、安全スイッチは種々の方法で実装されることができる。図５ｂで、安全スイッチ２１２を実装する好ましい方法は、手の重さの安全スイッチ２６０である。実装されているように、ユーザは、アクチュエータ２２２が、力を出力可能になる前に、スイッチをアクチベート化するか、あるいは閉じなければならない。これは、ユーザオブジェクト１２が不意に動くことを防止し、ユーザがユーザオブジェクトを制御していないときにユーザに衝突することを防止する、安全上の特徴である。
安全スイッチ２６０を含むパック２２′は、変換可能なグリップ部２６２、ベース２６４、スプリング２６６、及びスイッチコンタクト２６８を含む。グリップ部２６２は、上記パック２２のような形であるが、他のタイプのユーザオブジェクト１２と置き換えルことができる。グリップ部２６２は、好ましくは延長部材２７０又は他の類似ガイド上のベース２６４の範囲距離ｄ内で軸Ｈに沿って動かされることができる。距離ｄは、好ましくは比較的小さく、例えば１ｍｍであり、明瞭にするために図６ｂでは誇張されている。予荷重を与えられたスプリング２６６は、好ましくは、矢印２７２で示す方向でベース２４から離されて、グリップ部２６２に重量がかからないときの「開」位置まで強制される。好ましくは、部材２７０のトップ部に、又はグリップ部２６２のボトム部に結合された止め部材（図示せず）ベース２６４からグリップ部がベース２６４から脱着されるのを防止する。ベース２６４の方向でのグリップ部２６２の動きの制限が、グリップ部とベースとの物理的係合により与えられる。
スイッチコンタクト２６８が、ベース２６４と、パック２２′のグリップ部２６２との間に設けられる。コンタクト２６８は、バスを介して、コンタクトが接触しているときにモニターできる、ホストコンピュータ１８又はマイクロプロセッサ２００に接続される。グリップ部２６２が開位置にあるときコンタクト２６８は、離れていて、両者間を電流は流れることができず、従って、電流もしくは電力は、電源からアクチュエータへ流れることができない。代替として、コンタクト２６８は、マイクロプロセッサ２００、あるいは別の選択要素に接続が可能であり、この選択要素は、コンタクトの開状態を検出することができ、開状態が検出されたとき安全ディスエーブル信号によりアクチュエータ２２２を非アクチベート化できる。このように、アクチュエータ２２２は、ユーザがグリップ部２６２とインタフェース装置１３との制御をしていないとき、力を出力することを防止する。
ユーザがグリップ部２６２を把持しているとき、ユーザの手の重さが、グリップ部２６２を下げさせてベース２６４に係合させる。スイッチコンタクト２６８は、この係合により接続し、両者間に電流が流れるのを許容する。コンタクト２６８は、アクチュエータから電源に至る回路を完成させ、それに従い、パワーが、電源からアクチュエータへ流れることを許容される。代替として、マイクロプロセッサ２００は、閉じたコンタクト条件を検出して、アクチュエータ２２２に安全ディスエーブル信号の送信を中断する。これは、アクチュエータ２２２が、ホストコンピュータ１８及びマイクロプロセッサ２００により、常時は、制御されてアクチベート化されることを可能にする。ユーザが指からグリップ部を離すと、スプリング２６６が、グリップ部２６２を、ベース２６４から強制的に離し、これが、コンタクト２６８を離して、アクチュエータを非アクチベート化する。
手の重さの安全スイッチは、他のタイプの案全スイッチを上回る幾つかの利点を有する。ユーザは、単純に自らの指又は手を、普通の気持ち良いやり方で、パック２２′上に載せ、ユーザの手の重さにより安全スイッチをアクチベート化したままにする。このように、ユーザは、パックの特定の場所にある厄介な配置のスイッチをカバーしたり、押したりする必要がない。
代替実施形態において、他のタイプの安全スイッチを使用してもよい。例えば、ボタン２５０に類似する機械的なボタンの安全スイッチを設けて、ユーザの手の重さがパックを加圧するとき、電気的接触が成される。ユーザオブジェクトの動作中にユーザが接触又はカバーする、コンタクトスイッチ、光検出器、及び他のタイプのスイッチを設けてことができるが、ユーザは、ユーザオブジェクト又は装置のハウジングの特定エリアを接触し続けるか、カバーし続けなければならないので、より厄介な可能性がある。手の重さの安全スイッチ２６２を使用して、異なるタイプの安全スイッチを補完することができる。
図６ｃは、本発明のインデキシングの特徴を図解する図である。パック２２は、ユーザが、ホストコンピュータにより表示される、ユーザオブジェクト１２と、カーソルのようなユーザ制御グラフィカルオブジェクトとの位置間のオフセットを改めて定めることを可能にする「インデキシングモード」を有するのが好ましい。インデキシングは、マウスのような、伝統的な位置制御インタフェースに固有に備わっている。例えば、ＧＵＩにおいて、マウスの位置は、ＧＵＩ内のカーソルの位置を制御する。使用可能な物理的空間の限度、マウスパッドの限度等、マウスの動きが限度に達することが時々ある。そのような状況でユーザは、通常、接触面からマウスを引き上げて、別の位置にマウスを置いて、もっと広い場所でマウスを動かせるようにする。マウスが接触面から外れている間は、カーソルを制御するための入力は何ら提供されない。
本発明のパック２２は、与えられた平面作業空間で、動きに対する同じような限度を有する。この限度を、機械的装置１４により示すことができる。即ち、例えば、図３のライン９１で示される限度、あるいは、図２のリンク３０又は図３と４のボイスコイルアクチュエータにより提供される限度である。そのような限度は、パック２２が、破線で示された四角形（幾つかの実施形態では円形）内の作業空間２７２を有するように、図６ｃに破線で示したライン２７０として示される。好ましい実施形態において、表示画面の全長と全幅にわたりカーソルを動かすのに必要な作業空間は非常に小さいことが判明したので、作業空間２７２は小さい（例えば、１″X １″）。それにもかかわらず、パック２２の動きの限度は、２７０は、ユーザが限度を越えてパックを動かしたい状況でいっぱいになるだろう。例えば、制御されたカーソルが、画面の右側にある所望の場所まで完全に動かす前に、パック２２は、右側限度２７０に達する。別の状況では、パック２２をもっとよい位置に位置決めし直す場合のように、ホストコンピュータ１８のグラフィカル環境へどのような入力も提供することなく、パック２２の位置決めし直しをユーザが望むことがあるかもしれない。
限度２７０を越える動きを許容するために、インデキシングが実行される。これは、ユーザが、制御されたグラフィカルオブジェクトを動かすことなく、又は何れの他の入力も，ホストコンピュータへ提供することなく、パック２２を位置決めし直すことを可能にする。パックは伝統的なマウスのように表面を転がらないので、パックは、簡単にピックアップして位置決めし直せない。本発明において、インデキシング入力装置２２８を介して達成される。そのような入力装置は、１つ又はそれ以上のボタン、スイッチ、圧力センサ、光センサ、接触センサ、音声認識ハードウェア、あるいは他の入力装置を含むことができる。例えば、ユーザが押すこことのできる特別なインデキシングボタン設けることができる。即ち、そのようなボタンは、伝統的なボタン２５０又は２５０ａ、あるいは手の重さのスイッチ２６０であり得る。インデキシングボタンが下に保持されている限り、ユーザオブジェクト１２はインデキシングモードにあって、制御されたグラフィカルオブジェクト動かすことなく（アイソトニックモードの場合）、そして実行される何れのアイソメトリック機能もアクチベート化せずに、影響を及ぼすことなく（アイソメトリックモードの場合）、動かされることができる。ボタンが開放されて、非インデキシングモードが持続するとき、カーソルの位置は、ユーザオブジェクトの位置により再び制御される（アイソトニック及びアイソメトリックの両モードとも、非インデキシングモードだけで機能するのが好ましい。）。代替として、ユーザは、ボタン２５０又は他の入力装置の一回押しでインデキシングモードと非インデキシングモードとをトグル止めするかもしれない。こうして、ユーザは、入力することなく、平面作業空間内の所望位置にパック２２（又は他のオブジェクト１２）を動かせる。
好ましい一実施形態においては、インデキシングが実行されているとき、安全上の理由で、ユーザオブジェクトにどのようなアウトプット力も働かないようにするのが普通は望ましいので、安全スイッチ２１２の機能とインデキシングモードは、１つの入力装置内に統合される。好ましくは、図６ｂに示した手で持てる重さの安全スイッチ２６０が、安全スイッチ及びインデキシングスイッチの両方として使用されることができる。例えば、ユーザが自らの指をパック２２に載せると、スイッチ２６０が閉じて、アクチュエータへのパワーが許容されるとともに、パックに力が出力されることが許容される。また、このことは、カーソルとパックの位置が直接的にマッピングされるように、非インデキシングモードがアクティブになることを許容する。ユーザがパックをリミット２７０まで移動させた場合、ユーザは、例えば指を上げてパックから離すことにより、パックに加える重量を軽減する。そうすることがスイッチ２６０を開き、それによりアクチュエータへのパワーをディスイネーブル化して、インデキシングモードに係合する。カーソルが画面上でその旧位置に固定されたままである間、ユーザはサイドモーションを使ってもうひとつの位置までパック２２を移動させることができる。パックがその新しい所望場所にあるとき、ユーザは常時自らの指をパック上に載せ、それによりスイッチ２６０を閉じる。これは、アクチュエータ２２２を不作動とするために別の安全スイッチを設ける必要もなく、安全にインデキシングが実行されることを可能にする。
インデキシングモードはホストコンピュータ１８により直接的に実行される。代替として、局所マイクロプロセッサ２００を含むこれらの実施形態においては、局所プロセッサによりインデキシングが実行される。例えば、局所プロセッサ２００は、インデキシングモードがアクティブであるのは何時か、を決めることができ、そのようなモードがアクティブである間、ユーザオブジェクト１２の位置をホストコンピュータ１８に単純に報告することはできない。非インデキシングモードがアクティブである場合、プロセッサ２００は、ユーザオブジェクトの位置をホストに報告するのを再開することになろう。ホストは、インデキシングが何時実行されるかについては全く知らないであろう。従ってそれの計算負荷は軽減する。
図７ａは、ユーザオブジェクト１２の代替実施形態の斜視図である。オブジェクト１２は、スタイラス受けユーザオブジェクト２７４として図示されていて、先に提示された実施形態のような、機械的装置のどの実施形態にも結合されることができる。スタイラス受けユーザオブジェクト２７４は、スタイラス穴２７８を含む、好ましくは平坦で小型のオブジェクトであるスタイラス受け部材２７６を含む。部材２７６は、例えば、図２に示された機械的装置１４の実施形態の部材４０ａに結合されてもよく、あるいは部材２７６は、図３ａの実施形態のボード７２、又は図４ａ−ｃの実施形態の部材１３２に結合してもよい（又は置き換えてもよい）。図７ｂに示すように、スタイラス２８０又は類似する、尖端を持つ部品をユーザが穴２７８内に挿入することができる。次いで、ユーザは、矢印２８２で示されて提供される自由度に沿ってスタイラス２８０を移動することができ、それに従って部材２７６を同一方向へ移動させる。代替として、スタイラス２８０を部材２７６に永続的に結合することができる。
図７ａ−ｂの実施形態は、書き込みインタフェースで使用されることができ、そこではユーザがそのインタフェースを使用して、入力されたワードをコンピュータ装置に書き込むか、あるいは、ポインティングインタフェースにおいてカーソルのようなコンピュータ実装オブジェクトを指示して移動させる。本実施形態において、部材２７６は単独で「ユーザオブジェクト」１２と考えることができる。代替として、スタイラス２８０が部材２７６に永続的に固定されている実施形態においては特に、スタイラス２８０と部材２７６は集合的にユーザオブジェクト１２と考えることができる。他の実施形態において、部材２７６は機械的装置１４からの脱着が可能なので、互換性のある別のユーザオブジェクト１２を特別な用途に合わされるようにして使用することが可能となる。
図７ｃは、中に指を受け入れるユーザオブジェクト２８４が備えられている、ユーザオブジェクト１２の代替実施形態の斜視図である。この実施形態では、指受け入れ部材２８６がくぼみを含む。部材２８６は、図７ａの部材２８６と同じように装置１４に結合してもよい。図７ｄに示すように、ユーザは、自らの指をくぼみに入れ、それにより、矢印２９０で示されて提供される自由度で部材２８６を移動することができる。くぼみ２８８は、ユーザの指が移動すると、その指が部材２８６をグリップして離れないようにすることができる。他の実施形態では、くぼみ２８８以外の、又はそれに付加される特徴が指受け部材に設けられて、ユーザの指がオブジェクトから離れないようにすることができる。例えば、１つ又はそれ以上のバンプ、穴、あるいはその他の突起を設けることができる。また、手全体や足等のような、ユーザの別の指あるいは外肢で受けることもできる。図７ｃ−ｄのユーザオブジェクトを使用して、ユーザがコンピュータ生成オブジェクトを容易で自然な方式で動かしたり、指示したり、操作することが可能になる。
図８は、コンピュータ装置１８により実装されるアプリケーションプログラム及び／又はオペレーティング装置とのインタフェースを行うために使用されるグラフィカルユーザインタフェース（ＧＵＩ）３００を表示する表示画面２０の図解である。本発明の好ましい実施形態は、アイソトニックモードで力フィードバック技術を実行して、グラフィカルユーザインタフェースを、身体的知覚により潤色する（embellish）。インタフェース１６と装置１４（又は類似する力フィードバック装置）との間の交信により、標準の視覚的及び聴覚的な情報をユーザに提供するだけでなく、物理的な力も提供する。これらの物理的な力を慎重に設計して、少なくとも２つの方法で手動の動作を高めることができる。第１に、物理的な力を使って、表示画面２０上に描写されたＧＵＩの空間的な「光景（landscape）」に対するユーザの知覚的な理解を高める触覚キューを、ユーザオブジェクト１２上に設けることができる。第２に、ＧＵＩ３００の範囲内で、画面２０上に表示される所与のターゲットのところで、ユーザがカーソルを獲得してそれを維持することを実際に支援する、物理的な拘束又は助けとなるバイアスを提供するために、コンピュータで生成される力を使用することができる。
本明細書中で、望ましい場所、又は表示されたオブジェクトにカーソルを行かせるために、物理的ユーザオブジェクト１２を身体的に操作することにより、画面２０上に表示されたカーソルを動かす、ユーザの手動タスクは、「ターゲッティング」アクティビティとして説明される。本明細書中で呼称される「ターゲット（複数）」とは、ＧＵＩ３００中の定義された領域のことであり、そこに１つ又はそれ以上の力が関連付けられたカーソルをユーザが動かすことができて、ＧＵＩ３００のグラフィカルオブジェクトと関連付けられるのが普通である。このようなターゲットは、例えば、アイコン、プルダウンメニュー項目、及びボタンのようなグラフィカルオブジェクトと関連付けることができる。ターゲットは、それの関連グラフィカルオブジェクトの正確な寸法として定義されるとともに、通常は、ターゲットがグラフィカルオブジェクトに対して定常的空間位置を持つように、それの関連グラフィカルオブジェクトに重ねられて「取り付けられる」。ＧＵＩコンテキスト中で、「グラフィカルオブジェクト」とは、ユーザがカーソルを用いて選択し、画像の表示、アプリケーションプログラムの実行、又は別のコンピュータ機能の実行等、アプリケーションプログラム又はオペレーティングシシテムの機能を実行できる表示画面上に現れるそれらの画像である。単純化のために用語「ターゲット」は、ターゲットが関連付けられたグラフィカルオブジェクト全体を指す。このようにして、アイコン又はウィンドウ自体は、本明細書では「ターゲット」を指すことが多い。しかし、もっと一般的には、ターゲットは、そのターゲットに関連付けられたグラフィカルオブジェクトの正確な寸法に追随する必要はない。例えば、ターゲットは、関連グラフィカルオブジェクトの、正確な表示面積として定義されることができ、さもなければグラフィカルオブジェクトの単に一部として定義することができる。このターゲットは、その関連するグラフィカルオブジェクトとは異なるサイズ及び／又は形状とすることもできる。ＧＵＩ３００のスクリーン全体、又はバックグラウンドユーザオブジェクト１２に働く力を提供できる「ターゲット」と考えることもできる。更に、単一のオブジェクトがそれに関連する多重のターゲットを持つこともできる。
望ましいターゲットにカーソルを動かすとき、ユーザは、ボタンを押したり、トリガーをスクイーズしたり、さもなければ、コマンドを提供してターゲットに関連する特定の（アイソトニック）プログラム機能を実行する、というような物理的アクションに関連する「コマンドジェスチャ」を提供しつつ、獲得されたターゲットのところでカーソルを維持するのが普通である。コマンドジェスチャは、図５に示すような他の入力装置から提供することもできる。例えば、カーソルをアイコン上に置いた状態で、マウス上に配置された物理的ボタンを「クリック（押す）」することにより、そのアイコンに関連するアプリケーションプログラムを実行させることが可能である。同様に、カーソルをウィンドウの一部に置いた状態で、クリックボタンを押すことにより、ユーザが、ユーザオブジェクトを動かすことにより、画面上でウィンドウを移動、つまり「ドラッグ」することを可能にする。コマンドジェスチャは、力を修正するために使用することができ、あるいは本発明における他の機能のために使用してもよい。あるいは、コマンドジェスチャは、インタフェース装置の物理的オブジェクトを、指定された自由度の範囲内で操作することにより、及び／又は画面上に表示されたグラフィカルオブジェクトを用いて提供されることもできる。他の実施形態において、画面上のグラフィカルオブジェクトは、ユーザにより操作されるときに、コマンドジェスチャを提供することができる。例えば、ユーザオブジェクト１２に働くスプリング力は、カーソルを用いてグラフィカルボタンを押すことに関連付けられて、機械的ボタンの感じを与えることができる。
以下の検討は、相互に関連する特定の階層レベル内に含まれるＧＵＩターゲットのコンセプトに基づいて進める。第２ターゲットに含まれるか、グループ化される第１ターゲットは、第２ターゲットの「子（child）」と見なされ、第２ターゲットよりも、階層内で下位に位置する。例えば、表示画面２０は２つのウィンドウを表示できる。ウィンドウは同一の階層レベルに位置すると考えられるのが普通である。というのは、ウィンドウは、別のウィンドウの中でグループ化されないのが普通だからである。或るウィンドウより高いレベルのウィンドウ内にグループ化されたそのウィンドウは、グループ化するウィンドウよりも、階層内で低いレベルにあると考えられる。ウィンドウに含まれるアイコンは、そのウィンドウ内にグループ化されて関連付けられるので、それらをグループ化するウィンドウよりも低い階層レベルにある子である。
ＧＵＩは、ユーザが、コンピュータ装置１８上で実行される、オペレーティング装置又はアプリケーションプログラムにより実装される種々の機能にアクセスすることを許容する。これら機能は、限定はされないが、普通は、周辺の入／出力機能（ディスク又は他の周辺機器へのデータ書き込み又は読み出し等）、アプリケーションプログラムと、オペレーティング装置からは独立した他のプログラムとを選択して実行すること、メモリ内のプログラムとデータを選択又は管理すること、視聴／表示機能（ウィンドウ内でドキュメントをスクロールすること、画面内でカーソル又はアイコンを表示及び／又は動かすこと、ウィンドウを表示又は動かすこと、メニューリストを表示すること、及び選択すること等）、及びコンピュータ装置１８により実装される他の機能、を含む。検討を分かり易くするために、ワードプロセッサ、スプレッドシート、ＣＡＤプログラム、ビデオゲーム、ウェブページ、及び他のアプリケーションも、Windows（商標）、ＭａｃＯＳ（商標）、及びUnix等のオペレーティング装置の機能と同様に、「プログラム機能」という用語に包含する。典型的には、アプリケーションプログラムはそのような機能を利用してユーザとインタフェースをとる。つまり、例えば、ワードプロセッサは、オペレーティング装置（又は、オペレーティング装置からＧＵＩが独立していれば、そのＧＵＩ）のウィンドウ機能を実装して表示画面上のウィンドウ内にテキストファイルを表示する。
更に、他のタイプのインタフェースがＧＵＩのものに類似していて、本発明のアイソトニック及びアイソメトリックモードとともに使用することができる。例えば、ワードプロセッサは、オペレーティング装置（又は、オペレーティング装置からＧＵＩが独立していれば、そのＧＵＩ）のウィンドウ機能を実装して、表示画面上のウィンドウ内にテキストファイルを表示する。
ＧＵＩ３００はプログラム命令を使用して、ホストコンピュータ１８とプロセッサ２０上に実装されるのが好ましい。ホストコンピュータ及びマイクロプロセッサにより機能とオペレーション実行するためにプログラム命令を使用することは、当業者にはよく知られていて、「コンピュータ可読媒体」上に蓄積されることができる。本明細書において、このような媒体には、ホストコンピュータ１８、メモリ２０４、磁気ディスク、磁気テープ、ＣＤＲＯＭのような光学的可読媒体、ＰＣＭＣＩＡのような半導体メモリ等、に結合されるＲＡＭとＲＯＭのようなメモリ例として含まれる。それぞれの場合、媒体は、小型ディスク、ディスケット、カセット等、可搬品の形をとり、さもなければハードディスクのような比較してより大きな、つまり動かせない形態をとる。
オブジェクト３５６ｂは同様びアイソメトリック面３５８ｅを備え、アイソメトリック入力を提供する。オブジェクト３５６ａと３５６ｂは、方向性のアイソメトリック入力を単純化するために、図１０に示すように互いに近接して設けられる。例えば、ユーザは、面３５８ｃと面３５８ｅの間でカーソル３０６を容易に動かして文書３５２のスクロール方向を制御する。他のアイソメトリックオブジェクトとして、アイソメトリック面３５８は（９０度でない）別の角度で提供され、又は他の望ましい構成で提供されることができる。
他の実施形態では、アイソメトリック入力は、例えば、ウィンドウでテキストカーソルを制御し、ウィンドウ内で光景をズーミングし（図１１ａ−ｂ参照）、ウィンドウ内で光景をパニングする等、異なる方法でウィンドウ３５２、又は別の関連グラフィカルオブジェクトに加えられることができる。幾つかの実施形態では、代替として、そのようなアイソメトリック入力を使用して、画面２０の光景全体がパニング又はスクロールされ得る。
同様な実施形態では、アイソメトリック入力は、カーソル３０６と画面２０に表示される。典型的にはアイソメトリックではないグラフィカルオブジェクトとのインタラクションにより提供され得る。例えば、カーソル３０６はウィンドウ３５０の端３６２に向かって動かされ、文書３５２を適切な方向にスクロールする。例えば、カーソルがウィンドウの内側からウィンドウの端に向かって動かされるとき、対向する力がカーソルをウィンドウから外れるのを防ぐであろう。ユーザは対向する力に抗してユーザオブジェクト１２を押す。即ち、ユーザが強く押せば押す程、それだけ早く文書３５２はスクロールされる。再度であるが、カーソルは、好ましくはアイソトニックモードにおいて、表示画面２０上では動かされず、従ってカーソルは依然ウィンドウの端に現れている。代替として、図１５で説明したようにカーソルを動かすことができる。同様にアイソメトリック面は、画面２０の背景端、ウィンドウ、メニューバー、ドロップダウンメニュー、アイコン、画面の端、スライダ、ボタン、クローズボックス、など、又は画面に表示されるグラフィカルオブジェクトの全てとして実現されるかもしれない。代替として、所定の面のアイソメトリック機能は、速度又はカーソル３０６の他の特性だけに依存して作動されるかもしれない。例えば、ユーザは、あるときは、ウィンドウの端をアイソメトリック面であって欲しいかもしれないし、別のときには、アイソメトリックでない面であって欲しいかもしれない。カーソル３０６が（例えば、予め決められた限界速度以下で）ゆっくり動かされるとき、カーソルはウィンドウの端を、対向力を持つアイソメトリック面として役立てるであろう。カーソル３０６が、標準のアイソトニックモードにおいて、ユーザの通常の速度で、かなり早く動かされると、アイソメトリックモードはエンターされず、ウィンドウの面は触覚的には透明として扱われるか、又はアイソトニック力と関連付けられ、カーソルはウィンドウから「脱出」又は通り過ぎることができる。
図８において、表示画面２０は、Microsoft Windows.オペレーティング装置、Macintoshオペレーティング装置、X−Windows In Univ、又は、ＧＵＩを組込んでいるその他、任意の利用可能なオペレーティング装置により実行されることができるＧＵＩ３００を表示する。図示の例では、プログラムマネージャウィンドウ３０１は、ウィンドウ３０１によってグループ化される種々のアイコン３０２を含んでいて、ウィンドウ３０１は、ここでは「メイン」、「スタートアップ」、及び「ツールズ」というラベルを付けられているが、他の、つまり異なるアイコンをウィンドウ３０１内でグループ化してもよい。ユーザオブジェクト１２を介してユーザにより制御されるカーソルなど、ユーザ制御グラフィカルオブジェクト３０６を用いてメニューヘッディングターゲット３０５を選ぶことによって、プルダウンメニューを表示できる、幾つかのＧＵＩの実施形態において、メニューバー３０４がウィンドウ３０１に含められてもよい。以下の説明において、用語「ユーザ制御グラフィカルオブジェクト」と「カーソル」とは、互換性をもって用いることとする。
本発明は、ＧＵＩ３００の環境内の、カーソル３０６の場所、速度、加速度、それらの値の１つ又はそれ以上の履歴、及び／又は他の特性に基づき（又は、ユーザオブジェクト１２の位置、速度などに基づき）ユーザオブジェクト１２を介して、ユーザに力フィードバックを与える。ＧＵＩ内の他の「イベント」も力を与える。幾つかの異なるタイプの力又は「力感覚」をユーザオブジェクト１２に適用することができる。これらの「力感覚」は、一方向への単一の大きさの力であったり、あるいは相互作用又は例えば表面状態（texture）、減衰力、バリヤなど、感触を発生させる一連の力であったりすることができる。上記の用語「力」と「力感覚」とは、ここでは互換性をもって用いることとする。
図８に示す好ましい一実施形態において、力フィードバックは、力モデルを用いるウィンドウ３０１などのターゲットとカーソルとの間の距離に依存する。この距離は、ウィンドウ３０１内の１つ又はそれ以上の点から、又はそれの周辺から測定することができる。図８に示すように、ウィンドウ３０１は、ＧＵＩ３００内に表示された最高レベルのターゲットであると考えられる（実際には、以下に説明るように、ＧＵＩ３００の画面の全面積を最高レベルのターゲットであると考えることが好ましい）。アイコン３０２とメニューバー３０４は、階層内ではより低いレベルを有する。あるいは、もし、例えば、アイコン３０２がウィンドウ３０１の外部に配置され、「デスクトップ」上、即ち何れか特定のウィンドウのグループに入っていないと考えられるならば、アイコン３０２とメニューバー３０４とは同一階層レベルであることができる。
図８と図９の検討において、位置制御パラダイムはＧＵＩ３００とインタフェース装置１０とによって実行され、また、アイソトニックモードがアクティブであると仮定する（図１２参照）。例えば、カーソル３０６の位置は、ユーザオブジェクトの、与えられた自由度でユーザオブジェクト１２の位置に直に関連している（ユーザオブジェクト１２が動く距離は、カーソル３０６が画面２０上で動く距離に等しくないかもしれないが、それは普通、所定機能によって関連づけられている）。ここでカーソル３０６の位置を説明する場合、与えられた自由度内でのユーザオブジェクトの位置は、カーソル位置にほぼ関連していると見なす。ここで、力がカーソル３０６に「影響を及ぼしている」とか「加えられている」とかいった場合、これらの力はアクチュエータ２２２によって実際にユーザオブジェクト１２に加えられていると見なすべきである。即ち、ユーザオブジェクトが物理的空間内で動かされる場合、今度は、表示画面上のカーソル３０６の位置を動かす。本発明のアイソメトリックモードを用いた場合、図１０と１２で説明するように、アイソメトリック制御を用いて、ＧＵＩ３００においてレート制御パラダイムを用いることができる。
好ましい実施形態において、ＧＵＩ３００環境のために用いられる種々の力を与えるため、高レベルのホストコマンドを用いることができる。マイクロプロセッサ２００を用いる局所制御モードは、ユーザオブジェクトに加えられる力の反応時間を増加させる助けになることができ、このことは、現実的で正確な力フィードバックを発生する場合に重要である。例えば、力とこれらグラフィカルオブジェクトのタイプとに関連する、ＧＵＩ内に表示されたすべてのグラフィカルオブジェクトのレイアウトを記述するデータである「空間的表現」（spatial representation）を、ホストコンピュータ１８がマイクロプロセッサ２００に送るのに便利であろう。マイクロプロセッサは、そのような空間的表現をメモリ２４に保存することができる。更に、マイクロプロセッサ２００には、ホストコンピュータから独立して、センサの読みをチェックし、カーソルとターゲットの位置を判定し、そして出力としての力を決めるために必要な命令又はデータを与えておくことができる。ホストは、マイクロプロセッサと力トプロセスとを相互に関連づけるため、プロセッサ２００とホスト１８との間で適切な低速ハンドシェーキング信号を交信可能であるとき、（画像表示などの）プログラム機能を実行できるだろう。また、メモリ２０４は、特殊タイプのグラフィカルオブジェクトと関連付けるべきマイクロプロセッサ２００に関して予め定められた力感覚を保存することができる。
上記実施形態において、カーソル３０６をターゲットに向けて又はその周りで動かすユーザの能力に影響を及ぼしそれを高めるために、ウィンドウ３０１、アイコン３０２、及びメニューヘッディング３０５などのターゲットは、それらに関連付けられた力フィールドを持つ。例えば、アイコン３０２は、それらに関連付けられた吸引力持つことができる。この吸引力は、各アイコン３０２内の所望の点Ｉが発生源であり、この点はアイコンの中心位置に置くことができる。あるいは、点Ｉは、アイコンの周辺部のような、アイコン３０２の別のエリアに置くこともできる。同様に、ウィンドウ３０１も、それに関連付けられるとともに、ウィンドウ３０１内の、中心にあってもよい点Ｗを発生源とする吸引力を持つことが好ましい。点Ｉと点Ｗは、「フィールド原点」（field origin point）と考えられる。あるいは、力フィールドは、画面上に示されない点又は領域を発生源とすることができる。これらの吸引力は、カーソルがターゲットの外部に位置するときカーソル３０６に影響を及ぼすので、「外力」（external forces）として知られている。ターゲットの外力と内力とを、図９を参照して詳述する。別の実施形態において、フィールド原点が、点である必要はなく、ターゲットの境界によって画成される領域内にあるとき、カーソルが或る次元で自由に動かされることができるような領域、又は画成された他のエリアであることができる。
ウィンドウ３０１とアイコン３０２とに関連付けられた吸引力は、ユーザオブジェクト１２とカーソル３０６の動きに影響を及ぼすよう、ユーザオブジェクト１２に加えられる。従って、ウィンドウ３０１に関連付けられた吸引力は、ユーザオブジェクトを動かすか、偏向させるように、ユーザオブジェクト１２に適当な力を加えるべくホストコンピュータ１８が装置１４のアクチュエータ２２２に命令を出すようにする。力は、カーソル３０６がそれに対応してウィンドウ３０１のフィールド原点Ｗに向かう方向でバイアスを受けるように、ユーザオブジェクト１２に方向を持って加えられる。注目すべき点は、ユーザオブジェクト１２への力は、実際にはユーザオブジェクト１２を適当な方向に動かす必要がないということである。即ち、例えば、受動アクチュエータを用いる場合、ユーザオブジェクトはアクチュエータによって物理的に動かされることはない。この場合、ユーザオブジェクト１２がユーザによって、適当な方向により容易に動かされ、点Ｗから離れる他の方向、あるいはその接線方向の他の方向に動いているとき、阻止されるか、抵抗を感じるように、抵抗力を加えることができる。カーソル３０６を点Ｗに向けて移動又は偏向させるようにユーザオブジェクト１２に加えられる吸引力は、図８に点線３０７で表わされる。この力は、好ましい実施形態においては尖端点Ｔである、カーソル３０６の単一基準点に関して加えることが好ましい。代替実施形態においては、この基準点は、カーソル３０６上の中心又は他の場所、あるいは他のユーザ制御グラフィカルオブジェクト、又はカーソルの外部に置くことができる。吸引力は、例えば、重力をシミュレートするため、フィールド原点Ｉ又はＷと、カーソル先端Ｔとの間の関係式１／Ｒ又は１／Ｒ２を用いて計算することができる。
反撥力フィールドも、フィールド原点に関連付けることができる。例えば、カーソル３０６がＧＵＩ３００内の画面上で特定の領域又はターゲットの方向に動いたり、接近したりすることを阻止したいかもしれない。これらの領域は、カーソル３０６で選択されることが望まれないデータを表示しているかもしれない。もしウィンドウ３０１がそのようなターゲットの１つであれば、例えば、線３０７で表わされた方向と反対方向の反撥フィールドを、ウィンドウ３０１と関連付けることができ、フィールド原点Ｗを源とすることができる。この力は、オブジェクト１２とカーソル３０６をターゲットから離れる方向に動かし、ユーザがカーソル３０６をターゲット上に、より動かし難くする。
好ましい実施形態において、カーソル３０６の位置が、どのフィールド力がカーソル３０６とユーザオブジェクト１２に影響を及ぼすであろうかを決定する。図９で説明したように、ターゲットは、カーソル３０６との関連において、内力と外力とに関連づけられることが好ましい。吸引力は外力であり、従って、カーソル３０６がターゲットの外側位置にあるときだけ、ユーザオブジェクト１２とカーソル３０６に影響を及ぼすことが好ましい。好ましい実施形態において、カーソル３０６の外部にある最高レベルターゲットの外力だけが、カーソル３０６とオブジェクト１２とに影響を及ぼす。従って図８において、アイコン３０２とメニューヘッディング３０５が階層内の低レベルにあるので、ウィンドウ３０１の吸引力のみがカーソル３０６とユーザオブジェクト１２に影響を及ぼす。カーソル３０６がウィンドウ３０１内にあれば、アイコン３０２とメニューヘッディング３０５の吸引フィールドのみがカーソル３０６とユーザオブジェクト１２に影響を及ぼす。そして吸引力３０７は除去されることが好ましい。代替実施形態において、種々のターゲットからの力は、種々のやり方で組み合わされるか、又は排除される。
別の実施形態（図示せず）において、表示画面２０上に複数のウィンドウ３０１を表示できる。３つのウィンドウはすべて同一階層レベルにあるので、カーソル３０６が３つのウィンドウすべての周辺部の外側にあるとき、カーソル３０６とユーザオブジェクト１２とは、各ウィンドウからひとつづつ、３つの外部吸引力の組合せによる影響を受ける。これらの力の大きさは、各ターゲットとカーソルの点Ｔとの距離の逆数などである式に依存する。これらの吸引力をベクトルとして合計することにより、合力方向に、合力の大きさを持った合計吸引合力を提供することができる（図示せず）。複数のターゲットからの力のベクトルを組み合わせるのに、他の方法を用いることもできる。代替実施形態において、カーソル３０６に（カーソルがすべてのウィンドウの外にある場合）、より大きな力を及ぼすため、より少ないターゲットを持つウィンドウよりも多くのターゲットを持つウィンドウが望まれる場合、そのような効果が実行できる。他の実施形態において、ターゲットに関連付けられる力の大きさ又は方向は、ターゲットの特性次第で異なる可能性があり、あるいは、ソフトウェアプログラマによって、所望の大きさになるように命令され得る。
図９は、表示されたターゲットの図解であり、ターゲットに関連付けられた内力と外力の概念を説明する。ここで言う「外力」とは、カーソル３０６がそのターゲットの内側に位置するとき、即ちターゲットの周辺部の外側に位置するとき、カーソル３０６に影響を及ぼすターゲットに関連付けられた力のことである。これに対して、「内力」とは、カーソル３０６がターゲットの内側にあるとき、即ちターゲットの周辺部の内側にあるとき、カーソル３０６に影響を及ぼすターゲットに関連する力である。各ターゲットは、それに割り当てられる外力と内力とを持つことが好ましい。もちろん、１つのターゲットに関連付けられる内力及び／又は外力は、これらの力を効果的に除去するゼロと、指定することができる。
ターゲット３２０は、それに関連する外力が割り当てられる外部ターゲット領域３２２を含む。外部領域３２２は、ターゲット内のターゲットポイントＰから外力が有効であるターゲットの外側の領域限界まで画成される。領域を画成するためのターゲットポイントＰは、上記のフィールド原点と同じ点であることができる。カーソル３０６が１つのターゲットの外部領域３２２内にあれば、そのターゲットに関連する外力は有効である。カーソル３０６が外部領域の外側にある場合、その外力は有効でない。外部領域は、ターゲット３２０の外周３２６から、あるいはターゲット３２０の内周３２８から、そのような内外周が実装されていれば、画成することができる。吸引力、反撥力、表面状態（texture）、又は他の力と、力のモデルとは、外力としてターゲットに割り当てることができる。カーソル３０６が複数ターゲットの外側の点にあるとき、カーソル３０６にかかる合力は、各ターゲットに関連する外力の合計である。あるいは、外力は、外力の大きさ、及び／又は方向の間の相違又は他の関係に基づいて組み合わせることができる。他の実施形態において、グラフィカルオブジェクトに「グルーブ（groove）」外力を与えることができる。それらのグループ（みぞ）は、水平及び垂直方向に置くことができ、ターゲットの中心で交差する。グルーブは、ＧＵＩ３００内に表示されない（即ち、グルーブは感じられるが見えない）ことが好ましい。カーソル３０６がグルーブ内に動かされると、更にそこから脱出する動きに抵抗する抵抗力が加えられるが、グルーブの長手方向には自由に動くことができる。
あるターゲットに関連付けられた内力は、カーソルがターゲットの外周の内側にあるときだけ、カーソルに影響を及ぼす。内部ターゲット領域は、デッド領域３３０とキャプチャ（捕獲）領域３３２とを含むことができる。デッド領域３３０は、ターゲット３２０の最も内側の中心領域として定義され、内周３２８に拡大する。デッド領域において、カーソル３０６に加えられる、デッド領域に関連付けられる力（「デッド領域力」）は、この領域内でカーソルが実質的に自由に動ける（また、ターゲット３２０内に含まれる任意のターゲットの任意の外力が有効である）ように、ゼロであることが好ましい。あるいは、特定の力又は力のモデルをデッド領域３３０に関連付けることができる。
キャプチャ領域３３２は、ターゲット３２０の周囲近傍に設けるのが好ましい。キャプチャ領域３３２に関連する力は、カーソルがキャプチャ領域内にあるか、又はそれを貫通して動かされるとき、カーソル３０６に加えられる。センサのサンプリングレートが遅すぎてキャプチャ領域内のカーソル３０６を検出できない場合、カーソルの経路の判定と、キャプチャ力をユーザオブジェクト１２に加えるべきか否かの判定のため、センサの読みの履歴をチェックすることができる。好ましい実施形態において、カーソルがターゲット３２０から出るか、ターゲット３２０に入るかによって、２つの異なる力がカーソル３０６に影響を及ぼすことができる。カーソルがデッド領域３３０から外部領域３３２に動かされるとき、「エクシットキャプチャ力」がユーザオブジェクト１２に加えられる。例えば、エクシットキャプチャ力は、内周３２８に位置する「スナップオーバー」力又はバリヤであることができ、これは、図９でスプリング３３４によりシンボル的に示した、バネ力を含むことが好ましい。このバネ力は、カーソル３０６の退出方向に対するバネ抵抗を発生するが、この抵抗は、デッド領域３３０に向かう方向で小さな抵抗力として始まり、カーソルが外周３２６に接近移動させられるにつれて増加する。このバリヤ力は、カーソルがターゲット３２０から容易に「逃走」できないようにしている。他の実施形態において、他の力、例えばダンピング（緩衝）力を代用することができる。更に、ゼロデッド領域力とバリヤエクシットキャプチャ力とを与えることによって、ユーザはカーソルをターゲットの内部領域内で動かし、ターゲットの形を「感じる」ことができ、このことによって、グラフィックオブジェクトの知覚が増大する。カーソル３０６が外周３２６を越えて動かされるとエクシットキャプチャ力が無くなるように、ターゲット３２０の外周３２６がバリヤのスナップ距離（又は幅）を画成することが好ましい。
カーソル３０６がターゲット３０２に入ると、ユーザオブジェクト１２に「エントリキャプチャ力」が加えられる。エントリキャプチャ力は、エクシットキャプチャ力と同じバネ力であって、同じ方向でデッド領域３３０に向いていることが好ましい。このようにすれば、カーソル３０６が初めてキャプチャ領域に入ると、バネ力が直ちにユーザオブジェクト／カーソルをデッド領域の方に押し始める。カーソルの位置がデッド領域に近いほど、加えられるバネ力は小さい。幾つかの実施形態において、過剰な吸引力によってカーソル３０６がターゲット３２０を越えて動かない（飛び過ぎしない）ように、エントリバネ力の大きさを、所定の値に制限又は相殺することができる。あるいは、エクシット力とは異なるエントリ力を加えることができる。そのような実施形態においては、エクシット力とエントリ力のどちらを与えるべきか分かるように、カーソル３０６の運動方向が明確にされねばならない。
操作力フィードバックインタフェース装置１３がアイソトニックモードで作動しているとき、他の力を加えることもできる。例えば、ユーザが特定タイプのターゲットに関してグラフィカルオブジェクトを操作していて、特定条件が充たされているとき、「慣性」力を加えることができる。例えば、ユーザがポインタ３０６をデッド領域３３０内に動かし、ユーザオブジェクト上のボタンを押して保持し、カーソル３０６を用いてグラフィカルオブジェクト（及び関連オブジェクト３２０）を画面２０を横切って動かす、即ち「ドラッグ」するとき、ユーザオブジェクトに慣性力を加えることができる。ドラッグされるターゲット３２０は、ユーザオブジェクト１２に加えられる慣性力の大きさに影響を及ぼす疑似「質量」を持つ。幾つかの実施形態において、慣性力は、疑似質量の外に、あるいはその代わりに、カーソル３０６の速度及び／又は加速度の影響を受けることがある。慣性力の大きさに影響を及ぼす他の要因、例えば重力も、疑似化することができる。あるいは、保存スペース（例えばバイト単位の）の面で、それが関連するプログラム又はファイルがどの程度大きいかに、アイコンの質量を関連付けることができる。このようにして、力フィードバックは、ターゲットに関する情報を直接ユーザに関連付けることができる。更に、ダンピング（緩衝）力及び／又は摩擦力を、慣性力の代わりに、又はそれの追加として与えることができる。例えば、各グラフィカルオブジェクトに疑似ダンピング係数又は摩擦係数を割り当てることができる。そのような摩擦は、摩擦係数が「ペンサイズ」に基づくＣＡＤプログラムにおけるフリーハンド製図において便利である。表面状態（texture）力はグラフィカルオブジェクトがドラッグされるときにも加えられる。更に、疑似質量をターゲットの吸引重力等、外力の計算に用いる場合、その質量をターゲットの慣性力の計算にも用いることができる。
また、グラフィックオブジェクトの慣性力を、他のグラフィックオブジェクト及びターゲットとの衝突又は他の相互作用にも適用することができる。例えば、ポインタ３０６がアイコンをドラッグしていて、アイコンがウィンドウのエッジにぶつかる場合、ユーザオブジェクト１２には衝突力が働く。この衝突力は、アイコン／カーソルが動かされる速度／方向、アイコン及び／又はカーソルの疑似質量、及びアイコン／カーソルとエッジとの何らかの疑似適合に基づいている。また、ＧＵＩ内の特定のエッジ、オブジェクト、又は領域を、「通過」オブジェクトとして、又はカーソルをオブジェクトに入り込ませない「固体」オブジェクトとして指定することもできる。
力、関連するグラフィカルオブジェクト、及び機能、の他の実施形態として、カーソル３０６がある領域に入るとき、オブジェクトが画面を横切ってドラッグされた後リリースされたとき、カーソルがウィンドウに入った、又はウィンドウを刺激したとき、又はウィンドウが開かれたとき又は閉じられたとき、力ジョルト（force jolts力のゆさぶり）又は「バンプ」（bumps衝撃）を与えることを含む。テキスト文書においては、これらのバンプは、カーソルが、ワード間、ライン間、文字間、パラグラフ間、ページの区切り間で動くとき与えられることができる。力は、ＧＵＩ内のボタンが押されたとき、即ち、画面「内へ」また逆に外へ動かされたとき、及び／又はコマンドジェスチャが与えられたとき、関連付けられることができる。「スナップトゥー」（snap toひっかかり）力は、表面内の引っかかりをシミュレートし、このようにして１つの点への小さな吸引力を与える。このことは、メニュー項目又はＣＡＤプログラム内のひっかかりグリッド線、又は直角又は４５度方向への運動制限に有益である。
更に他の力として、動かされる前のターゲットの位置に関連付けられたバネ力がある。例えば、ユーザがアイコン、テキストの選択、又はプルダウンメニューをドラッグするときに、バーチャルスプリングが、アイコンの現在位置と元の位置との間で吸引されるように、シミュレートされる。そのようなバネ力又は他のタイプの力を、グラフィックオブジェクトが元のサイズと現在のサイズとの間でリサイズ（サイズ変更）されるとき、与えることができる。例えば、ウィンドウがより大きなサイズにドラッグされる場合、ユーザオブジェクトに「ストレッチング」ばね力が加えられ、ウィンドウがより小さなサイズにドラッグされる場合、「圧縮」ばね力が加えられる。そのような特徴をグラフィカルオブジェクトに伸展又は他の操作が行われる場合、ＣＡＤプログラムに与えることができる。
上記の概念と好ましい実施形態は、ＧＵＩに現れる他のグラフィックオブジェクトにも適用可能である。例えば、プルダウンメニュー（「ファイル」プルダウンメニューなど）及びメニュー内のメニュー項目は、ユーザのメニュー項目選択を助けるため、内力と外力を与えることができる。
同様に、ユーザのスライダ操作を助けるため、ガイドとスライダの「親指」（thumb）を外力と内力に関連付けるように、スクロールバー又は「スライダ」を、力に関連付けることができる。ＧＵＩ３００内の「ポップアップウィンドウ」とパネルにも同様に力を与えることができ、その場合、ポップアップウィンドウ内のボタンは、それらに関連付けられた外力と内力を持つことができる。ボタンに関連付けられた力は、ユーザがカーソル３０６を用いてボタンを選択した後、「オフ」にすることができる。
同様なアイソメトリック力フィードバックを、非ＧＵＩグラフィック環境にも与えることができる点に注目すべきである。例えば、三次元（３−Ｄ）ビデオゲームにおいて、ユーザがカーソルを土牢の壁上で動かすと、壁の表面状態力を感じることができる。又は、カーソルを用いて選んだタンクを、ユーザが小さな歩兵に比較して動かすと、カーソルはタンクに関連する大きな慣性力を持つことができる。
図１０は、本発明のアイソメトリック機能性とグラフィカルユーザインタフェース（ＧＵＩ）を表示する表示画面の略図である。本発明は、ユーザがアイソメトリック入力を与えるインタフェース装置１３用のアイソメトリックモードを提供する。
アイソメトリックモードで、ユーザはユーザオブジェクト１２の動きを用いて、予め定められた自由度の物理的空間で、入力を与えることができる。例えばマウスは、表示画面上でカーソル位置を制御するのにしばしば用いられる伝統的なアイソメトリックコントローラである。図８と９とを参照して説明した力は、グラフィカルオブジェクトを制御するアイソメトリック方法に用いると便利である。これに対して、アイソメトリック検知モードは、空間を横切るユーザオブジェクトの動きではなく、ユーザオブジェクト上へのユーザの力を利用する。ユーザがユーザオブジェクト上に加える力の大きさと方向は、コンピュータに入力され、グラフィック環境の操作と対話（相互作用）に用いられる。
グラフィック環境における特定の機能又はタスクは、レート制御タスクなどのアイソトニック入力よりもアイソメトリック入力にはるかに適している。例えば、ウィンドウ３５０はテキスト文書３５２を含む。ウィンドウ３５０に現在は表示されていないテキストは、文書３５２を上下にスクロールすることによって見ることができる。これは伝統的にスライダ３５４を用いて行われている。しかし、アイソメトリック装置を用いれば、ユーザオブジェクト上の所望の方向に圧力又は力を加えるだけで、スクロールを制御することができる。テキストをスクロールする速度を制御するため、所望の大きさの加圧力を意のままに与えることができる。
本発明は、同一インタフェース装置で、アイソトニック機能性を提供するアイソメトリック機能性を提供する。一実施形態において、ボタンなどの入力装置を選ぶことによって、アイソメトリック方法をエンターする（enter）することができる。一旦このモードがエンターされると、アクチュエータ２２２によってユーザオブジェクト上に反力が加えられ、ユーザオブジェクト上のユーザの加圧力は、例えば文書３５２のスクロール操作をコントロールするために、ホストコンピュータへのアイソメトリック（又はエラスティック、柔軟性）入力として与えられる。この実施形態を、図１２を参照して詳細に説明する。
別の実施形態において、カーソルなど、制御されるグラフィカルオブジェクトと他のグラフィカルオブジェクトとの間のインタラクションによって、アイソメトリック入力が可能になる。図１０において、ＧＵＩ３００におけるホストコンピュータ１８によって、グラフィカル「アイソメトリックオブジェクト」３５６ａと３５６ｂとが表示画面２０上に表示されている。この実施形態では、オブジェクト３５６ａと３５６ｂとをウィンドウ３５０に関連付けているので、ウィンドウ３５０の近くに表示することができる。オブジェクト３５６ａは、アイソメトリック表面３５８ａ−ｄとバリヤ３５０を持つ、ほぼ長方形のオブジェクトとして示されている。ユーザはカーソル３０６の先端Ｔを表面３５８ａ−ｄのいずれかに向けて動かして、アイソメトリック入力を与えることができる。アイソメトリック表面３５８は、それらに関連する抵抗力又は反力を持っているので、ユーザは、ユーザオブジェクト１２上で、あたかもカーソル３０６が表面３５８から抵抗を受けているかのような感触を受ける。反力はコンピュータ制御されるアクチュエータ２２２によって発生させられ、アイソメトリック表面を貫通するためには、ユーザは反力に打ち勝たなければならないので、本発明のアイソメトリックモードを可能にしている。表面３５８への貫通が入力をコントロールする。ユーザオブジェクトの位置が検知されるが、この位置は、ユーザからの加圧力の大きさと方向とを意味し、従ってアイソメトリック機能性を可能にする。表面３５８に向かう動きの方向がアイソメトリック入力の方向を示すことが望ましい。
この例において、オブジェクト３５８ａを用いたアイソメトリック入力は、関連するウィンドウに直接加えられる。従って、ユーザがカーソル３０６を表面３５８ａに向けて動かすと、文書はスクロールダウンされる。幾つかの実施形態において、カーソルは表示画面２０上に表示され、ユーザがユーザオブジェクトを対応する方向に動かすと、表面３５８へと移動する。例えば、図１０ａに示すカーソルは、最初、アイソメトリックオブジェクト３５６ｃの表面３５８に係わっている。図１０ｂにおいて、ユーザがカーソルをオブジェクト３５６ｃ内へと動かしたので、表面３５８はカーソル３０６とともに動き、オブジェクト３５６ｃが縮小する。表面の元の位置は破線３５９で示されている。他の実施形態において、表示画面とユーザオブジェクトとの間の分岐は、オブジェクト１２が動かされてもカーソルは表面３５８に対して固定されているように示されている。そのような実施形態を、図１５でに詳しく説明する。
カーソル３０６が、ある表面３５８から切り離されると、アイソメトリックモードがインタフェース装置１０によって再開され、ユーザオブジェクトの位置は、スクリーン２０上のカーソル３０６の位置を直接コントロールする。カーソル３０６を表面３５８に対して保持し、カーソルが表面３５８から「滑り」落ちないように、バリヤ３６０を任意にオブジェクト３５６ａ内に含めることができる。例えば、ユーザオブジェクトをそれらとは反対の方向で停止又は減速させるため、バリヤ３６０が、それらに関連付けられた反力を持つことができる。これによって、ユーザが不注意にもカーソルを表面３５８に沿って遠くまで動かし過ぎたとき、アイソメトリックモードをユーザが不本意に刺激しないようにすることができる。
図１１ａ−ｂは、ＣＡＤプログラムのアイソメトリック制御のズーム機能を示す表示画面２０の概略説明である。図１１ａはＣＡＤプログラムにより表示されるグラフィカルオブジェクトとして立方体３７０を示す。立方体３７０は、立方体の形状を変更する、又は他の特性を改変する所望の操作をされることができる。典型的には、アイソトニック入力は、立方体３７０を動かし、伸ばし、コピーし、又は他の操作を行う、最も自然で効率的な入力である。
ユーザは、更に詳細を見るために立方体３７０の画像でズーミングを望むかもしれない。好ましい実施形態で、これは、アイソメトリック入力を提供することにより、好都合に果たされることができる。図１１ｂは立方体３７０の一部分のズーミングされた光景を示し、ここで、図１１ａの点線ボックス３７２は、ズーミングされた光景の範囲を示す。この例では、図１１ａの光景から図１１ｂの光景にズーミングするのに、ユーザはパック２２上のボタン状の入力装置を押し続ける。これは、コンピュータが生成する抵抗力を、アクチュエータ制御の結果としてパックのあらゆる方向に加えることになる。ユーザは、この力に対向して上方向にパックを動かし拡大ズーミングを行う。ユーザがボタンを放せば、カーソル３０６の通常のアイソトニック操作が可能になる。
別の実施形態では、カーソル３０６をズーム機能の制御に使用することができる。図１１ａには、ズーミング拡大アイソメトリックオブジェクト３７４及びズーミング縮小アイソメトリックオブジェクト３７６が表示されている。カーソル３０６は、適切なオブジェクト３７４又は３７６の面に向かって動かされることができ、ＣＡＤプログラムに付随するズーム機能を命令する。
本発明はまた、パック２２に作用する抵抗性アイソメトリック力に、コンピュータ生成の追加の力が重畳されることを許容する。例えば、ユーザが最大ズーム倍率に達すると、小さなジョルトがユーザオブジェクト１２に加えられて、ユーザにこの状態を通知することができる。オーバーレイ力については、図１６に関して詳細に説明される。
図１２は、本発明のアイソトニック−アイソメトリック力フィードバックインタフェース装置を実施するための方法４００を説明する流れ図である。本明細書に開示される方法は、ホストコンピュータ１８及び／又はプロセッサ２００上、ホスト１８及び／又はプロセッサ２００に含まれるハードウェア上、又はソフトウェアとハードウェアの組合せ上で実施されるソフトウェア（例えばプログラム命令）を用いて実施される。プロセスは４０２で開始され、ステップ４０４で装置が初期化される。初期化は、多数のステップでできた形をとり、それらのステップには、適用可能な周辺機器をパワーアップするステップ、ユーザオブジェクトを較正するステップ、センサとアクチュエータを初期化する機械的装置１４、及びインタフェース１６の特定パラメータをホストコンピュータ１８に受信させるステップ、及びその逆のステップが含まれる。更に、このステップは、力をマッピングするステップ、又はコンピュータ環境内でのグラフィカルオブジェクト、例えば表示されたＧＵＩ内のグラフィカルオブジェクトに力を関連付けるステップを含む。例えば、図９に関して説明されている内部と外部のターゲット力は、予め決められた好み、デフォルトセッティング等に従って、特定のターゲットに関連付けられている。マッピングは、１つ又はそれ以上の力モデルと範囲サイズ／形状等とを、外部と内部の領域の各タイプのグラフィカルオブジェクトに割り当てるステップを含むのが一般的である。またグラフィカルオブジェクトに割り当てられる力の範囲、大きさ、及びモデルは、異なる力環境を提供するために、プロセッサ２００又はホストコンピュータ１８により「パラメータページ」としてメモリ２７に保存される。
ステップ４０６で、ユーザオブジェクト１２の位置は、ホストコンピュータ１８及び／又はマイクロプロセッサ２００により読取られる。好ましい実施形態では、ホストコンピュータがグラフィカル環境を実現していて、ステップ４１０で正確な表示を提供するためにユーザオブジェクトの位置を知る必要があるので、ホストコンピュータはステップ４０６でこの位置を読取る。ホストコンピュータ１８は、センサ２２０／インタフェース２０６から直接、又はセンサ２２０から位置情報を受信したマイクロプロセッサ２００から、この位置情報を受信できる。
ステップ４０８で、インタフェース装置１０のモードが決定される。本発明においてユーザは、本明細書で「制御モード」と称するアイソトニックモード又はアイソメトリックモードの何れかにより装置に入力を提供できる。インタフェース装置は、アイソトニック／アイソメトリック検知を実施し、またアイソトニック力フィードバック（アイソトニックモードで）又はアイソメトリック力フィードバック（イアイソメトリックモードで）の何れかとして力フィードバックを提供することも可能である。アイソトニックモードによりユーザは、所定自由度で物理的空間でのユーザオブジェク１２の動きを用いて入力を提供できる。例えば、マウスは、カーソル制御に多用される伝統的なアイソトニックコントローラである。ジョイスティックは、回転自由度又は線形自由度でのスティックの移動が検出され、またコンピュータに入力されるアイソトニックコントローラのもう１つの実施形態である。他のアイソトニックインタフェース装置は、トラックボール、スタイラス／タブレット、ステアリングホィール等を含む。対照的に、アイソメトリック検出モードは、空間でのユーザオブジェクトの移動よりもむしろユーザオブジェクトに対するユーザの力、つまり圧力を利用する。ユーザがインタフェース装置に加える力の大きさと方向は、検出されてコンピュータに入力され、コンピュータ環境の操作とインタラクションに用いられる。例えばセンサ球体のようなアイソメトリックコントローラは、ユーザのタッチによる入力を検出するためのコントローラの表面に重畳された圧力センサを含む。ＧＵＩ環境に関する好ましい実施形態では、デフォルトモードがアイソトニックモードになっているので、ユーザはユーザオブジェクト１２を動かすことにより同様にマウスに入力を提供できる。ユーザは、次に望むときにアイソメトリックモードを選択できる。
理想的なアイソメトリックインタラクションでは、ユーザの圧力に応答するユーザオブジェクトの知覚的な振れはない。しかしユーザオブジェクトでの少量の振れ又は移動がユーザにより認められた場合、検出は「弾性」制御と称される。一部のユーザは、ユーザにより加えられる圧力の度合いに関して或る直感的なフィードバックを提供する弾性制御による小さな振れを好む。多くの場合、弾性コントローラは、コンピュータオブジェクトのユーザ操作では、純粋アイソメトリックコントローラよりも小さなエラーを引き起こすことが分かっている。本明細書で、「アイソメトリック」という用語は、弾性制御を含むように意図されている。本発明の好ましいアイソメトリック実施形態では、ユーザオブジェクトの移動が小さいことから、実際的に弾性コントローラになる。
ステップ４０８での本発明における現在のモードの決定は、種々の方法で実現される。ボタンモード制御の実施形態では、モードは、別個の入力装置、例えばユーザオブジェクト上に提供されているボタン２５０を用いてユーザにより選択される。例えば、ユーザは、モードボタンを一度押してアイソメトリックモードに変更し、次にボタンをもう一度押して、モードをアイソトニックモードに切替えることができる。代替として、ユーザは、ボタンを抑えたままにして特定モード（例えばアイソメトリックモード）に留まる必要もあろう。また、他の入力装置又は自由度は、モード切替え、即ちモードの１つに関連付けられよう。例えば、第３の自由度又はそれよりも高い自由度でのユーザオブジェクト１２の動きを用いてモードを切替えられるか、又は１つのモードで、例えばアイソメトリックモードで排他的に入力を提供できよう。
好ましいグラフィカルモード制御の実施形態では、モードは、ホストコンピュータ１８により実施されるグラフィカルオブジェクト又は他のイベントのインタラクションにより「シームレス」に選択される。例えば、上の図１０は、ＧＵＩ３００でのホストコンピュータ１８により表示画面２０上に表示されるグラフィカル「アイソメトリックオブジェクト」３５６を示している。ユーザは、オブジェクト３５６の表面３５８ａ−ｅに対してカーソル３０６を移動することによりアイソメトリックモードに切替えることができる。アイソメトリック表面をカーソルに係合させると、力フィードバックは、係合が行われてアイソメトリックモードがアクティブになったことをユーザに示す。表面３５８に対する移動の方向は、アイソメトリック入力の方向を示すのが好ましい。これは、下記の、図１５のステップ４２６に関してより詳細に説明されている。オブジェクト３５６ａにバリヤ３６０をオプションとして含めることによりカーソル３０６を表面３５８に対して保持し、表面３５８からのカーソルのスリップオフを阻止できる。バリヤは、抵抗力又はバリヤ力で表わされ、従ってユーザがユーザオブジェクトの望まない方向に移動すること、及びアイソメトリックモードから不意に出ることを防止する、つまり妨げる。代替として、バリヤ３６０を用いないで、プロセッサ２００又はホストコンピュータ１８は、カーソルがアイソメトリック表面に係合しているいるとき、望まない自由度によるセンサデータを無視する、即ち図１５に関して説明されているように、選択された自由度で視覚的／物理的二分化を提供するように、命令される。例えば、カーソル３０６がアイソメトリック表面３５８ｄに係合されているとき、インタフェース装置１３は、左右の動きだけに応答し、上下の動きを無視することによりアイソメトリック機能に対するユーザによる制御が容易になる。カーソル３０６がアイソメトリック表面３５８に係合されていないとき、アイソトニックモードはアクティブである。この実施形態では、アイソメトリックモードがボタン選択など、何らかの追加コマンドの実行を必要とせずにユーザによりシームレスに選択され、従って装置１２での何らかの追加的ハードウェアを使用する必要がなくなことに注意されたい。また、上記のように、制御モードは、ウィンドウ、メニューバー、ドロップダウンメニュー、アイコン、スクリーンのエッジ等、画面２０上に表示される正規のグラフィカルオブジェクトを用いて選択される。
図１０に説明されているように、標準ＧＵＩオブジェクトのエッジ又は他の機能は、アイソメトリック表面として用いられる。一実施形態において、制御モードは、カーソル３０６の速度又は他の特徴により、カーソルが表面又は機能に接触したとき選択される。例えば、カーソル３０６が、表面に係合されたとき、予め決められた速度のしきい値を上回って移動する場合、アイソトニックモードは、アクティブになる。カーソルがしきい値速度を下回って移動している場合、表面又は機能に係合されたときにアイソメトリックモードがアクティブになる。カーソルの加速を同様に利用することによりモード制御が可能になろう。
代替の実施形態では、グラフィカルオブジェクトを他の方法により操作することにより、アイソトニックモードとアイソメトリックモード間の選択を提供できる。例えば、正方形又は矩形の輪郭が表示されることが可能であり、カーソル３０６により、ボタンから、又は入力スナップオーバー、バリヤ、又は上述と同じようなキャプチャ力を用いて、コマンドを入力すると正方形に入ることが許容される。一度カーソルが正方形に入ると、アイソメトリックモードが活動化さることにより何らかの自由度によりユーザオブジェクト１２を用いる入力は、アイソメトリック入力になる。
モードがアイソトニックモードに現在選択されている、又は既に選択されていた場合、プロセスは引き続きステップ４１０に進み、そこでアイソトニック入力と力フィードバックが実施さる。このステップは、図１３に関してより詳細に説明されている。次にプロセスは、ステップ４０６に戻り、ユーザオブジェクトの現在位置を読取る。モードがアイソメトリックモードになるように現在選択されている、又は既に選択さている場合、次にプロセスは引き続きステップ４１２に進み、そこでアイソメトリック入力と力フィードバックが実施される。これは、図１５に関してより詳細に説明されている。適用可能な実施形態では、局所マイクロプロセッサ２００は、フラグ、制御信号等を用いてアクティブの制御モードに関する情報をホストコンピュータ１８に提供する。プロセスは、次にステップ４０６に戻り、オブジェクトの現在位置を読取る。プロセスは、ホストコンピュータ１８又は他の条件により中断されなければ、同様のやり方でループする。
図１３は、図１２のステップ４１０を説明している流れ図であり、図では力フィードバックインタフェースのアイソトニックモードが実施される。プロセスは、４２０で開始され、ステップ４２２で表示は、ユーザオブジェクトの位置に従って更新される。好ましいＧＵＩの実施形態では、位置制御パラダイムがアイソトニックモードで用いられる、即ち表示画面２０上のカーソル３０６の位置は、オブジェクトの平面作業空間内でのユーザオブジェクト１２の位置と直接的に相関関係が保たれる。従って、ユーザオブジェクトの位置は、表示画面上のカーソル３０６の表示されている位置を指し示す。ユーザオブジェクトの読取り値は、画面２０上の座標に変換され、カーソルは、ユーザオブジェクトの位置に従って適切な場所に移動される。ユーザオブジェクト位置のセンサ読取り値に非整数値を含めることができるので、センサ読取り値は画面上の座標に関連する整数値に変換されることにより、カーソル位置を更新できる。しかし力を（下記のステップ４２８のように）計算するとき、最初の非整数センサ読取り値は、これらの値が必要な正確度を含めることができることから、使用可能である。
代替実施形態において、表示は、ユーザオブジェクト１２の、位置と運動の特徴に応答して他の方法により更新することができよう。例えば、ホストコンピュータ１８により実施される一部のアプリケーションプログラムは、二次元の平面入力を用いることにより、インタフェース又はプログラムの他の局面、例えば画面のパニング、制御されるオブジェクトの回転、ユーザ制御プレーヤーの移動、乗り物又はシミュレーションされた三次元バーチャル空間を介するビューポイント等を制御できよう。また、ユーザオブジェクトの速度又は加速度が算出されて、入力値として使用される。他の実施形態では、メカニズム１４により、ユーザオブジェクトに対して３つ以上の自由度が可能になり、従ってオブジェクトとプログラム機能を制御するための他の方法が可能になろう。
ステップ４２４で、プロセスは、カーソルが位置する一番下の階層のターゲットを決定する。図８と９の検討で述べられたように、ターゲットに割り当てられた階層は、アイソメトリックモードでカーソル３０６に対して効力を持つ力に影響を及ぼすことがある。既知のバイナリーツリー階層法又は集合論的階層法により、カーソル３０６は、それがターゲットの周囲内に位置しているかどうか、またそのターゲットがそのカーソルをも含む他の子ターゲットを含むかどうかをチェックされる。ホスト１８又はプロセッサ２００は、カーソル３０６が同じ階層レベルの２つのターゲットが重なり合う領域内にあるかどうかを決定できる。これが起こるのは、例えば同じ（一番下の）階層レベルの２つのアイコン又はウィンドウが画面の同じ部分に偶然に表示さる場合である。カーソル３０６が重なり合う領域内にある場合、画面２０上に（「ボトム」ターゲットよりも上に）表示されるオブジェクトを持つ「トップ」ターゲットが選択される。他の実施形態では、ターゲット階層は、力の決定に用いられず、例えば、吸引力又は他の力がグラフィカルオブジェクトに割り当てられていない場合、このようなケースではステップ４２４が省略される。
ステップ４２６で、プロセスは、ユーザオブジェクト１２に力を更に与えると見られる何らかのイベント又は条件を決定する。このようなイベントは、カーソル３０６が境界を越えてグラフィカルオブジェクトまで移動するときに加えられるバリヤ力、グラフィカルオブジェクトをドラッグするときの、くぼみ又はバンプ力、テクスチャ力、慣性力、緩衝力、及び／又は摩擦力、カーソルが或る境界に入ったときの衝突力、グラフィカルオブジェクトをサイジングする、又は移動するときのばね力、ジョルト、又は、カーソル３０６又は他の制御されているグラフィカルオブジェクトの位置に関連する他の力、を含むことができる。このようなイベントは、アプリケーションプログラムの性格により、例えばビデオゲームでランダムに決められた小惑星がプレーヤーにより制御される宇宙船を攻撃するようなとき、ユーザオブジェクト／カーソルの位置に対して独立に発生する。
代替実施形態では、アイソトニックモードでのユーザオブジェクトには力は加えられない。例えば、力が加わらない正規のマウスのようなアイソトニックモードではユーザはパック２２を用いる。インタフェース装置のアイソメトリック機能性を与えるには、ユーザオブジェクト１２に力が単独に加えられる。
ステップ４２８で、適切な力は、ステップ４２４の決定されているターゲット及びステップ４２６で決定された何らかの他の適用イベントに基づいて決定される。寄与する力は結合され、結合された全体の力はアクチュエータ２２２を用いてユーザオブジェクト１２に加えられる。ステップ４２８後、ステップ４３０が実行され、プロセスは、ユーザがアプリケーション又はオペレーテイング装置でのアイソトニックプログラム機能を選択したか、又は指令したかどうかをチェックする。もしそうならステップ４３２で所望のアイソトニック機能が実施される。「アイソトニック機能」は、アイソトニックモードがアクティブであるとき、インタフェース装置１３により選択可能な何らかのプログラム機能を意味する。このような機能は、画面上の特定場所までカーソルを移動するようなターゲットを決める活動に関連して、ボタン等からコマンドジェスチュアを用いて指令されることが多い。例えばグラフィカルオブジェクトのサイジング、移動、表示、又は再移動、アイコン選択時のアプリケーションプログラムの初期化／実行、ドロップダウンメニューの表示、ドロップダウンメニュー内のメニューアイテムの選択から得られる機能、グラフィカルボタンの選択時の情報の表示、等である。一部のプログラム機能は、テキストがアイソトニックスライダの使用又はアイソメトリック入力によりスクロールされるといった何れかのモードで機能が選択される場合、アイソトニック機能とアイソメトリック機能の両者になる。アイソトニック機能が選択された場合、あるいは選択されたアイソトニック機能が実施された後、プロセスは図１２のステップ４０２に戻りユーザオブジェクトの現在位置を読取る。
図１４は、図１３のステップ４２８を説明する流れ図であり、図では、カーソル位置、及びカーソルが位置するターゲット並びに何らかの決定されたイベントに基づいて適切な力がユーザオブジェクトに加えられる。プロセスは４４０で開始される。ステップ４２４でカーソルが位置する一番下の階層レベルのターゲットを決定した後、ステップ４４２は、カーソル３０６を含むターゲット（「最低ターゲット」）のための内力を計算する。内力は、適切なパラメータ、例えば大きさ、期間、係数、センサ、タイミングデータが与えられると、力プロセスのような力モデル又は機能を用いて算出される。
ステップ４４６で、全体の力の値は、ステップ４４２で、計算された最低ターゲットの内力に初期化される。従って、カーソルが位置する一番下の階層の内力だけ（より高いレベルのターゲットでない）がユーザオブジェクトに加えられる全体の力に含まれる。実施形態としてアイコンのみを含むウィンドウ内のカーソル３０６を検討する。カーソル３０６がアイコンのターゲットにない場合、ウィンドウ自体がカーソル３０６の存在する一番下の階層ターゲットであり、従ってウィンドウに関する内部ターゲット力だけが計算される。カーソルがアイコン内に移動された場合、そのアイコンからの内力だけが全体の力に含まれ、ウィンドウの内力は無視される。
ステップ４４８は、力がユーザオブジェクトに及ぶ一番下のターゲットの子ターゲットを決定する。これらの「外部」の子は、カーソルが位置する一番下のターゲットに含まれるが、これらの外部の子はカーソルの外側にある、つまりカーソルは、外部の子の何れにも位置しない。従って、外部の子の外力はカーソル３０６とユーザオブジェクト１２に及ぶ。外部の子に含まれる何れのターゲットも、力として追加されないのが望ましい。カーソルがＧＵＩ３００の「デスクトップ」ターゲット又はバックグラウンドターゲット内にある場合、外部の子は画面上の次に高いレベルのターゲットになる。
ステップ４５０で、プロセスは、外部の子の何らかの外力が全体の力に結合されているかどうかを決定する。もしそうなら、ステップ４５２は、以前に訪れたことのない子を選択してその子に関する外力を計算する。この子からの外力は、カーソル３０６が子の外部範囲内にない場合に限り計算される。カーソルが外部範囲から外れている場合、外力はゼロにセットされる。カーソルが外部範囲内にない場合、これによりプロセス時間が節約される。代わりに、外部範囲外の領域に特定の力が割り当てられた場合、その力が計算される。外力は、外部に割り当てられた特定の力のモデルに従って計算される。
ステップ４５４は、ユーザオブジェクト１２に加えられる全体の力に、ステップ４５２の子からの外力を加えることにより全体の力を計算する。以前の全体の力と外力の方向及び大きさは、結果として得られた全体の力の方向と大きさを決定するときに考慮される点に注意されたい。例えば、以前の全体の力が左方向の５の大きさであり、また外力が右方向の８の大きさである場合、ステップ４５４の合計は、結果として右方向の３の大きさの全体の力になろう。次にプロセスはステップ４５０に戻り、もう１つの訪れたことのない外部の子についてチェックし、全体の力に外力を加える。ステップ４５２−４５４は、全ての外部の子からの外部の力の寄与分が全体の力に結合されるまで繰り返される。
外部の子の全体の力が全体の力に加えられた後、ステップ４５０の負の結果から、プロセスは、ユーザオブジェクトに加えられた力に及ぼすであろうコマンドジェスチャがユーザにより入力されているかどうかをチェックする。これは、図１３のステップ４２６で決定されているものである。例えば、このような事態が起こるのは、上記慣性力が実施された場合であろう。この力が加わるのは、ユーザがボタンを押したままでいる、又は同様の入力を提供してアイコン又はウィンドウをドラッグした場合だろう。このような入力が受信されると、次に全体の力は、コマントジェスチャ及び特定の条件、即ちカーソル位置ないしは他の要素（例えばカーソルの速度、ドラッグされたアイコンの質量、シミュレーションされた重力等）に従って調整される。全体の力の「調節」は、追加される力の大きさに依存して全体の力の大きさを増減すること、及び／又は方向を変更することである。
次のステップ４６２で、又はステップ４５８の負の結果になった後、プロセスは、図１３のステップ４２６で決定されたもう１つの条件又はイベントがユーザオブジェクトに与える有効な力に影響を及ぼすかどうか、をチェックする。このような条件又はイベントは、例えばカーソル３０６がＧＵＩ３００の「ソリッド」グラフィカルオブジェクトに衝突して、衝突力を発生させた場合だろう。条件が存在する場合、次に全体の力は、ステップ４６４で適切に調整される。ステップ４６４の後、又はステップ４６２の負の結果の後、全体の力は、前記のように、アクチュエータ２２２を用いてステップ４５６でユーザオブジェクト１２に加えられる。プロセスは、次にステップ４６６で完了する。代替実施形態において、ステップ４５８−４６４は、プロセス４２４の他のステージ、例えばステップ４４２の前に実行される。
図１５は、図１２のステップ４１２を説明する流れ図であり、図では力フィードバックインタフェースのアイソメトリックモードが実施される。プロセスは、４８０で開始され、ステップ４８２で局所原点が定義される。
ボタンモード制御の実施形態では、アイソメトリックモードがアクティブになっているとき、ボタン又は他の入力装置が制御を行う。グラフィカルオブジェクトモード制御の実施形態では、アイソメトリックモードがアクティブであるとき、グラフィカルオブジェクトのインタラクションが制御を行う。両実施形態では、局所原点は、アイソメトリックモードに入ったときのユーザオブジェクトの現在位置として定義される。従って、装置で制御される実施形態では、局所原点は、ボタンが押されたときのユーザオブジェクトの位置である。グラフィカルオブジェクトの実施形態では、局所原点は、カーソルがアイソメトリックモードを起動する表面又は他の機能に「接触」したときの、ユーザオブジェクト（及び該当すればカーソルも）の位置である。例えば、図１０の局所原点は、先端Ｔと同じ地点であり、表面３５８に対してカーソルを移動したときの局所原点の位置を示す。局所原点は、アイソトニックモードからアイソメトリックモードに入る毎に新たに設定されるのが望ましい。
好ましい実施形態では、局所マイクロプロセッサは、ホストコンピュータ１８が局所原点を知らないでいる間に、局所原点を記録するとともに追跡する。これによりホストコンピュータからプロセッサ２００に至る計算負担の部分的オフロードが可能になる。代わりに、ホストコンピュータは、局所プロセッサ２００に加えて、又はこれを用いないで局所原点を記録するとともに追跡できる。
次のステップ４８４で、ユーザオブジェクトの位置は、図１２のステップ４０６と同様に検出される。しかし、この実施形態に依存して、ホストコンピュータ１８又は局所マイクロプロセッサ２００の何れかがセンサの読取りを実行する。好ましい一実施形態では、マイクロプロセッサ２００はセンサを読取り、以下説明されるように、ＧＵＩに関してホストコンピュータ１８が操作することにより適切な値にセンサデータを変換する。
ステップ４８６で、プロセスは、ステップ４８２に定義されている局所原点からのユーザオブジェクト１２の現在位置のずれ（変位）の大きさ及び／又は方向を決定する。一部の実施形態では、イソメトリック入力が方向に依存して機能を制御する場合、ずれの大きさと方向の双方が必要になろう。例えば、ウィンドウ内のテキストのスクロール方向がアイソメトリックモードで制御されつつある場合、可能な方向は、上方（例えば、パック２２をユーザから離れる方向に移動する）及び下方（例えば、パック２２をユーザ寄りに移動する）となろう。従って、方向を読取ることによりテキストが上方スクロールかそれとも下方スクロールかを決定する。他の実施形態では、方向は必要でないだろう。例えば、拡大ズーミングが一方向だけで（即ち拡大するために）実施される場合、ずれの方向は必要なく、ズーミングの大きさだけが必要である。殆どのグラフィカルオブジェクトの実施形態では、カーソル３０６がアイソメトリック表面又は他のオブジェクト、例えば図１０の表面３５８に対して移動しているかどうかを決定するために方向は必要である。
ずれデータ（即ち大きさと方向）は、局所マイクロプロセッサ２００により決定され、ホストコンピュータ１８に報告されるのが好ましい。即ち、局所マイクロプロセッサは、ずれを決定するためにステップ４８２の局所原点を追跡する。殆どの実施形態で、ホスト１８は、アイソトニックデータではなくアイソメトリックデータとしてこのようなずれデータを認識しなければならないのが一般的である。例えば、入力データは、カーソル位置よりもむしろ「入力される力」に関連するとしてホストにより解釈されるのが望ましい。ホスト１８が制御モードの状態を知らないでいる場合、ずれデータは、入力データのパケット内で又は別個のデータの何れかとして局所プロセッサからホストに提供されたフラグ又は他の制御信号を用いて、アイソメトリックデータ又はアイソトニックデータの何れかとして識別される。代わりに、ホストは、制御モードを追跡できるので、ユーザオブジェクト１２の位置データのホストコンピュータへの直接の報告がマイクロコンピュータ２００に対して可能になり、ホストは、モード、局所原点、及びずれデータを決定できる。他の実施形態でもホストコンピュータは、局所マイクロプロセッサを用いないで、モード及び／又は力を直接扱うことにより、ホストは現在のモードとずれデータの適用方法を自動的に知る。
ステップ４８８では、ステップ４８６において決定されたずれを用いて、１つ以上の所望のアイソメトリック機能を制御する。本明細書で称する「アイソメトリック機能」は、アイソメトリック入力に関連付けられたアプリケーションプログラム、オペレーティング装置、又はＧＵＩのプログラム機能であり、アイソメトリックモードで指令される。例えば、ウィンドウでのテキストのスクローリング、画面２０上でのビューのパニング、画面２０上のビューのズーミングイン又はズーミングアウト、画面２０上でのページの「フリッピング」、及び他の比率制御タスクは、アイソメトリック入力により容易に制御可能な全ての機能である。また他のプログラム機能は、アイソメトリックモードにおいて、例えばメニューでのカーソルの下方移動、ビデオゲーム又はＣＡＤプログラムでのピッチロールヨーの方向（例えばこれらの方向への乗り物、銃、プレーヤー、又はオブジェクトの移動）に関する特定入力の提供により制御され、プログラム又は機能の実行を開始し、あるいは画面全域での、又は三次元バーチャル環境での、制御されたオブジェクの変換も可能である。アイソメトリック機能は、実行中のプログラム又はオペレーティング装置内のホストコンピュータ１８により実施されるのが好ましい。
アイソメトリック機能は、決定されたずれの大きさ及び／又は方向を用いて制御されるのが好ましい。ずれの大きさ（又は距離）は、所望制御の程度又は割合を示す。例えば、大きさは、機能の表示又は実行の速度と割合、例えばウィンドウによるテキストスクローリングの速度、ビューのパニング速度、又はズームイン機能に関連付けられることが多い。また大きさは、或る機能が実施されるかどうかを制御することが可能であり、例えば特定機能は、予め定めた最小しきい値の大きさが、ユーザにより入力されているときに限り実施される。
本明細書で、大きさは、ユーザからの入力された力の示度として用いられるのが好ましい。ずれの大きさは、（ステップ４９０に説明されているように）アクチュエータ２２２により生成された力を復帰する出力に抗してユーザが加えるインプット力の大きさを示す。ずれが大きくなればなるほど、アウトプット力に抗するためにユーザが加えている力又は圧力はそれだけ大きくなる。従って、ずれの大きさは、先行技術のアイソメトリック検出装置の圧力センサを用いるユーザからの力の測定に類似する、ユーザによりユーザオブジェクトに加えられる入力された力の量の優れた示度である。しかし、本発明におけるずれは、位置センサ２２０により測定されるのが望ましく、位置センサ２２０は、先行技術のアイソメトリック検出装置により検出される圧力又は力を測定するよりも、むしろ物理的空間でのユーザオブジェクトの位置を測定する。このような位置センサを用いることの１つの利点は、アイソトニック検出とアイソメトリック検出の双方に同じセンサを使用できることである。代わりの実施形態では、ユーザから入力された力は、力センサ、例えば本発明では歪み計により直接測定される。
物理的空間でのユーザオブジェクトの感知されたずれがあるので、本発明のアイソメトリックモードは、純粋なアイソメトリックコントローラに物理的空間でのずれがないことから、より正確には「弾性モード」と呼んだほうがよさそうである。しかし、アイソメトリックという用語は、純粋なアイソメトリック実施形態と弾性実施形態の双方に広く用いられており、本明細書でそのように用いられている。
ずれの方向は、アイソメトリック機能の実施にも有用である。方向は、画面２０でのビューのパニングのような機能に直接適用することが可能である。例えば、変位が左方向の場合、ビューは左にパニングされる。同様に、ずれの方向により決められたようにに、テキストは上下に（及び左右に）スクロールされ、ズーミングはズームイン又はズームアウトになる。オブジェクト又はビューポイントのロール、ヨー又はピッチを制御するとき、ずれの方向は、特定の軸周りの回転運動の方向を制御できる。
多くのアイソメトリック機能の制御では、ずれの大きさと方向が用いられる。例えば、大きさは、テキストのスクロール速度又はズーミング速度を制御し、一方、方向はテキストのスクロール方向又はズーミング方向を制御する。代わりに、機能の制御に大きさのみを用いることができる。例えば、ボタン＃１がズームインアイソメトリックモードを制御することにより、ずれの大きさは、ズーミング速度を制御するか、ユーザオブジェクトはどのような方向にも移動され、ビューをズームインする。ボタン＃２によりずれの方向に関係なく、ズームアウトアイソメトリックモードの制御が同様に可能になろう。また実施形態では、方向のみを用いてアイソメトリック機能を制御する。例えば、ずれの大きさと無関係に、テキストは、スクロールしてように過ぎるか、あるいはビューは予め定めた一定速度でズームインが可能になろう。方向は、カーソル方向に依存し、（例えば表面３５８に対して）起動されることが多いので、グラフィカルオブジェクトの実施形態では必要になることが多い。
アイソメトリックテキストスクローリング機能の一実施形態が図１０に示されている。表面３５８ｃは、上方スクローリングの制御に用いられるのが好ましく、また表面３５８ａ又は３５８ｅを用いて下方スクローリングを制御する。オブジェクト３５６ａと３５６ｂの他の表面３５８は、指示されている方向でのスクローリングを制御できる。
ステップ４９０でプロセスは、ずれ及び／又は方向に基づくユーザオブジェクトに、局所原点から抵抗力を加える。アクチュエータ２２２は、ユーザオブジェクト１２に力を加えるために用いられるのが好ましい。本明細書では、「抵抗力」とは、ユーザによりユーザオブジェクトの動きに抗する力のことであり、能動的な力又は受動的な力になる。好ましい実施形態では、ステップ４８８に関して説明されているように、能動的なリストアリング力は、前記実施形態に用いられてアイソメトリックモードでのユーザオブジェクトの移動に対する抵抗又は妨害の感触を与える。これにより、伝統的なアイソメトリックコントローラと同じように、ユーザは、ユーザオブジェクがあたかも「保持されている」かのような感触を得ることが可能になり、またユーザは、特定方向にユーザオブジェクトに加えられる入力された力、ＧＵＩ又はアプリケーションプログラムの所望アイソメトリック機能を制御していることを、感知できるようになる。ステップ４９０は、図１６に関してより詳細に説明されている。
オプションのステップ４９２で、表示画面２０又は他の表示装置上のカーソル３０６の表示（又は他のユーザにより制御されるグラフィカルオブジェクト）は、実施形態に適用可能な場合、ステップ４８４で感知されたユーザオブジェクトの位置に従って更新される。ステップ４９２を適用して、アイソメトリックでの表示を更新するかどうかは、経験された力と感知された視覚映像との間のインタラクションのプログラマ又はユーザの所望効果に依存する。
方法４１２の一実施形態では、ステップ４９２により示されているように、表示は、位置制御パラダイムでのユーザオブジェクトのずれに従って正規のやり方で更新される。即ち、ユーザがアイソメトリックモードでユーザオブジェクトを移動するとき、カーソル３０６のような制御されているグラフィカルオブジェクトは、ユーザがあたかもアイソメトリックモードになっているかのように、ユーザオブジェクトに従って画面２０上で或る距離だけ移動される。従って、ユーザは、ユーザオブジェクトがアイソメトリックモードで移動されることを物理的にも視覚的にも感知する。グラフィカルモード制御の実施形態では、この更新された表示は、種々の方法で実施される。例えば、カーソル３０６は、図１０に示されているように、表面３５８ａに対して移動される。表面３５８ａの方向に移動しているカーソルが表示されるとき、表面３５８ａは、カーソルが表面を「押している」かのように、カーソルを用いて移動される。表面３５８のみが移動可能になるので、カーソルは、より狭い幅になるまでオブジェクト３５６ａを「圧縮」する。代わりに、全体のオブジェクト３５６ａは、カーソルを用いて移動が可能だろう。他の実施形態では、表面３５８ａは、画面上の固定場所に留まることができるが、一方カーソルは表面３５８と３５６の「全域に」移動する。
ずれのビジュアル表示は、アイソメトリックモードでユーザにより入力されつつある「力」（実際上は変位）の大きさを、ユーザに表示するのに有用である。例えば、ユーザは、カーソルが表面３５８ａに対して移動されているときのずれを見ることができるので、入力の大きさを表示することになる。幾つかのケースでは、グラフィカル情報が提供されることにより、入力された力の大きさの、ユーザによる決定を助ける。例えば、ルーラーのようなラインのグラフィカルスケールが表面３５８の１つの側面に表示される。カーソル３０６が移動して（固定位置に留まる）表面３５８を過ぎると、カーソル先端Ｔはラインスケールに関して見ることができるので、入力の大きさを正確に決定できる。このようなラインスケールは、スペクトルのようなカラーバーとして提供できよう。代わりに、カーソルの一部だけを視覚的に移動されることができる。例えば、カーソルの先端は非移動表面３５８に対して固定位置に留めることができるが、一方でカーソルの残りの部分は先端を過ぎて表面３５８を越えた領域まで延びるが、ここでは延びたときのカーソルの延び及び／又は薄さの量は大きさを示す。
ずれのビジュアル表示は、上述のようにグラフィカルモード制御の実施形態に一番適用し易いが、ボタンモード制御の実施形態にも適用されよう。図１５ａは、ボタンモード制御の実施形態のアイソメトリックモードで表示されるアイソメトリックインジケータ４９３のビジュアル映像の一実施形態の概略図による説明である。例えば、アイソメトリックモードがボタン又は他の装置を押して入力されるとき、画像４９３は、表示画面２０上のカーソル３０６の位置の中心に表示される。インジケータ４９３は、アイソメトリックモードで許容される大きさ又はずれの限度を示す固定フレーム４９５を含む。フレーム４９５内部の中心に位置するのは、フレーム４９５に関してユーザオブジェクトの現在位置を示すユーザオブジェクトエレメント４９６である。センターエレメント４９９は、ユーザオブジェクトの中心位置を示すが、一方矢印エレメント４９７は、中心エレメントから４つの９０度方向に延びる（矢印４９７は、他の実施形態では省略できる）。スプリング４９８は、各矢印エレメント４９７とフレーム４９５間に提供され、ユーザオブジェクトに関してアクチュエータにより出力されつつある力の量を視覚的に示す。
図１５ｂは、アイソメトリックインジケータ４９３の一実施形態を示し、図ではエレメント４９６の全体がユーザオブジェクト１２の移動に従って、表示画面２０上を移動される。図１５ｂでは、ユーザオブジェクトは、右に移動されており、またエレメント４９６はこれに対応する距離だけ右に移動されている。ユーザオブジェクト１２に関してユーザにより触覚された復帰ばね力の量を示すために、スプリング４９８ａは、エレメント４９６とフレーム４９５間に圧縮されて表示されている。エレメント４９６の反対側にあるスプリング４９８ｂは、ストレッチドアウトで示されている。スプリング４９８ｃと４９８ｄは、エレメント４９６とともに移動される、又はあたかもフレーム４９５に取り付けられているかのようにストレッチされる／曲げられる、かの何れかである。図１５ｃは、もうひとつの実施形態を示しており、図では矢印４９７のみがユーザオブジェクト１２に従って移動されて、適切なスプリング４９７を圧縮し、一方センターエレメント４９９はフレーム４９５に関して固定位置に留まる。
再び図１５に関し、方法４１２の他の考えられる実施形態では、ステップ４９２を省略することにより表示画面２０（又は他の表示）は、ユーザオブジェクトの移動に従って更新されることはない。これにより触覚されるものとユーザによりビジュアルに知覚されるものとの間の二分化、即ちユーザオブジェクトの位置と制御されたグラフィカルオブジェクトとの間のマッピングの中断が生じる。そのアプリケーションによりアイソトニックモードに関する二分化が説明され、この二分化は本発明のアイソトニックモードで実施される。またこの二分化は、本発明のアイソメトリックモードでも提供されるので有利である。例えば、カーソル３０６が表面３５８に対して移動されるとき、アイソメトリックモードがアクティブになる。ユーザは、次に表面３５８の全域にその方向に対応する方向に、ユーザオブジェクト１２を引き続き移動する。しかしカーソルのビジュアル表示は更新されないのでカーソル３０６は、ずれの大きさとは無関係に、リジッド固定表面３５８に対して固定されて表示される。ユーザは、ユーザオブジェクトの移動を体験するが、ユーザは画面上でこの移動を視覚的には体験しない。
物理的体験と視覚的体験間のこの二分化を利用することにより、ユーザが純粋なアイソメトリックコントローラを動作しているという錯覚を提供する。即ち物理的空間でのユーザオブジェクトの移動は起こっていない。ユーザは、視覚的にに感知できるものに大いに影響されるので、小さなずれが対応する視覚的なな構成要素を持たなければ、物理的空間での手や他の身体の一部の小さなずれに気づかないことが多い。ユーザは、ユーザオブジェクトを操作しているとき、位置制御の関係を受け入れており、ユーザオブジェクトの何らかの動きにより、対応する視覚的な動きが生じることを期待する。視覚的な動きが起こらないとき、ユーザは、人間は小さな動きに対する肉体的敏感さよりも視覚的敏感さのほうが顕著であるため、物理的動きは起こらなかったと決め込むことが多い。ボタンモード制御の好ましい実施形態は、同様に、ユーザオブジェクトの位置に従うどのような視覚的更新（又はインジケータ）も提供しない。
好ましい実施形態で、ステップ４９２は、例えばアイソメトリックモードがアクティブであるユーザオブジェクト１２の幾つかの方向及び／又は自由度に限り省略される。例えば、カーソル３０６が左に移動されてアイソメトリック表面に入っている場合、次にイソメトリックモードがアクティブになり、ステップ４９２は、その表面への左方向の移動に限り省略される。他の移動方向、例えば右、上方、下方は、アイソトニックモードになっており、通常は表示画面上で更新される。ボタンモード制御の実施形態では、一部の方向又は自由度は、画面上で更新されるが、他の方向や自由度は更新されない。アイソトニックモードが、同様に、例えばユーザがバーチャル壁に対してカーソル３０６を移動している場合、壁に沿った移動方向又は壁から遠ざかる移動方向（壁に向かう運動方向ではない）に限り、画面上で更新さるように、一部の方向又は自由度に視覚的／物理的二分化が用意されている。
ユーザは、アイソメトリックモードで自分の入力した「力」の大きさの視覚的表示をなおも望むと考えられるので、他のグラフィカル表示が提供される。例えば、表示画面の別個の領域でのインジケータにより、インプット力又はずれの大きさを示す数値又はバーグラフを表示できる。又は、カラーの提供、例えば紫は小さな大きさを、赤は最大の大きさを示す、といったことも同様に可能である。代わりに、大きさを示す音色のピッチのような聴覚用情報も提供できる。又はこれらの大きさのインジケータは、ステップ４９２で表示を更新する非二分化の実施形態においても提供される。
本発明の局所マイクロプロセッサ２００の使用は、ホストコンピュータ１８上の計算負担を低減するために、後者の二分化の実施形態に合わせることができれば理想的である。局所マイクロプロセッサ２００が用いられない場合、ホストコンピュータは、ユーザオブジェクトとカーソルの位置を直接追跡することになり、またアイソメトリックモードでのユーザオブジェクトとカーソル間のマッピングを何時中断するかを決定する必要がある。しかし、局所マイクロプロセッサ２００を用いることにより、二分化がホストに意識されることなく、ホストへの位置データを「クリッピング」することにより、これらのタスクの一部をプロセスできる。例えば、カーソル３０６がアイソメトリックに感知可能なオブジェクトに対して移動されたとき、ホストは、X方向にリストアリング力を提供するために、X＿ＷＡＬＬのような簡単なコマンドをマイクロプロセッサ２００に提供できる。局所マイクロプロセッサは、次にリストアリング力を実施し、アイソメトリックモードがアクティブであることを決定する。ユーザオブジェクトがオブジェクトに向かう移動に対応する方向にユーザにより移動されるとき、局所プロセッサは、ステップ４８４でこの移動を示すセンサデータを受信する。しかし、局所プロセッサは、アイソメトリックモードがアクティブであることを知っているので、局所プロセッサは、このデータを「クリッピング」する、即ちこのセンサデータをホストに報告しない。ホストコンピュータの観点から、ユーザオブジェクトの移動は検出されず、従ってカーソル３０６は画面上で移動されないほうがよい。ホストコンピュータは、二分化が動作しているとき、ユーザオブジェクト移動データを受信しないので、視覚的／物理的二分化を追跡するには及ばない。
ステップ４９４で、プロセスは、アイソメトリックＪモードが依然としてアクティブであることをチェックする。アイソメトリックモードは、ユーザが特定の実施形態で実施されるモード切替装置又はプロセスを、起動又は選択する場合、未だアクティブにはなっていないだろう。例えば、ユーザはモードボタンを押し続けるか、又はモードトグルボタンをクリックすることになる。又はユーザはアイソメトリック表面３５８から遠ざかる方向に、カーソル３０６を移動するといったことができよう。アイソメトリックモードが依然としてアクティブである場合、プロセスはステップ４８４に戻ってユーザオブジェクトの現在位置を感知する。
ステップ４８８、４９０、４９２は、各ステップが実行されるステップ４８６のずれデータだけを必要とするので、互いに独立に実行されることに注意されたい。従って、ステップ４８８、４９０、４９２は、何らかの所望の順序又は好みの順序でほぼ同時に実行される。
図１６は、図１５のステップ４９０を説明する流れ図であり、図では出力された抵抗力がユーザオブジェクト１２に加えられる。プロセスはステップ５００で開始され、ステップ５０２ではリストアリング力が、ステップ４８６で検出されるずれ及び何らかの他の適用可能な条件に基づいて決定される。説明されている実施形態で、リストアリング力はユーザオブジェクトに加えられる。リストアリング力は、線形の、力と変位との関係５１６であり、図１６ａに示されている。オブジェクトが局所原点Ｏから移動されて離れるほど、リストアリング力は、その大きさが増加し、局所原点からのユーザオブジェクトのずれに抗する方向に加えられる。リストアリング力は、あたかも強いスプリングがユーザオブジェクトの変位に抗するかのような感触をユーザに与えるので、「スプリングリターン（ばねの戻り）」として説明できる。リストアリング力は、ユーザオブジェクトを局所原点Ｏに向けて強制する、即ち「復帰させる」戻り感覚を提供する。説明されている実施形態では、リストアリング力は、フックの法則を用いてモデル化され、ここで、Ｆは変位又はずれｄに比例し、以下の関係になる、
Ｆ＝ｋ＊ｄ            （１）
ただし、ｄは、軸沿いのずれ又は自由度（−ｄは＋ｄの反対方向を示す）であり、ｋは、力の大きさを定義するばね定数である。他の実施形態では、ばねリストアリング力は、式（１）の線形剛性というより指数剛性、又は他の関係を用いてモデル化される。また図１６ａに説明されているように、飽和領域５１８が提供されるが、ここでは力の大きさは、ユーザオブジェクトが特定距離Ｄを越えて移動されるとき一定に留まるのが一般的である。正及び／又は負の飽和領域は各自由度に関して規定される。幾つかの実施形態では、飽和力の大きさは、選択された自由度での最大可能アウトプット力の予め定めた百分率に制限されるので、オーバーレイ力はリストアリング力の飽和の上に重畳される。
例えば、図１６ｂは、上述のボタンモード制御（カーソルなし）の実施形態でのユーザオブジェクト１２に加わる力を説明する概略図である。一度モードボタンが押され、押された状態が保持されると、アイソメトリックモードがアクティブになる。ユーザオブジェク１２は、次にスプリング結線図５２０で示されている局所原点Ｏと四方リストアリング力が提供される。従って、ボタンがユーザにより保持され、またアイソメトリックモードがアクティブになっている限り、ユーザオブジェクトはシミュレーションされたスプリング５２０により、原点の位置Ｏの方向へ強制的に進められる。他の実施形態では、アイソメトリックモードは、ボタンクリックにより切替えられるので、ボタンはアイソメトリックモードを保持するために保持されることを必要としない。また異なる数のスプリング５２０をシミュレーションすることが可能であり、例えばリストアリング力は上下方向にのみ加えられる。グラフィカルオブジェクトの実施形態では、一般的に１つのスプリング５２０は、カーソル３０６の移動先である表面３５８に垂直に備えられる。図１６ｂのダイヤグラムは、２自由度のユーザオブジェクトを仮定する。ダイヤグラムは、例えば３自由度の実施形態でのスプリングの「多次元立方体」、１自由度の実施形態でのスプリングのライン等である。
また他の特徴又は条件は、リストアリング力の大きさ及び／又は方向に影響を及ぼす。例えば、リストアリング力Ｆの大きさは、２つの利用可能なアイソメトリックモードで用いられる。アイソメトリックモード＃１が、パック２２上のボタン＃１を押すことによりアクティブになる場合、大きなｋを用いてＦを計算することになり、従ってユーザに大きなリストアリング力を提供する。大きな回復力は、より短い距離ｄでユーザの動きにより強く対向し、従ってテキストのスクロール速度のようなアイソメトリック機能に対して粗いレベルの制御を提供する。これとは対照的に、アイソメトリックモード＃２がパック２２上のボタン＃２によりアクティブになっている場合、より小さなｋが用いられ、従ってより小さなリストアリング力とアイソメトリック機能に対するより繊細なレベルの制御を提供する。
グラフィカルモード制御の実施形態では、カーソルにより合わされる別のグラフィカルオブジェクト又は表面に関してｋを変化させることができる。例えば、１つのグラフィカルオブジェクトの表面３５８は、大きなｋと粗いアイソメトリック入力に関連付けられ、また別のオブジェクトの表面３５８はより小さなｋと繊細なアイソメトリック入力に関連付けられよう。代わりに、テキストのスクローリングのようなアイソメトリック機能に関連するグラフィカルオブジェクト又はボタンは、１つのｋを持ち、一方、画面２０上でのビューのパニングやズーミングのような異なるアイソメトリック機能に関連するグラフィカルオブジェクト又はボタンは異なるｋを持つ。他の実施形態では、ｋは異なる特徴又は条件に依存して変化させることができよう。例えば、ｋは制御されたドキュメント（例えばバイト表示の）のサイズに比例するので、大きなドキュメントがより高いｋに関連付けられ、ユーザはテキストのより大きなスクロール速度を容易に制御できるようなる。同様に、より小さなサイズのドキュメントは、より小さなｋに関連付けられ、ユーザはスクロール速度をより繊細に制御できる。またビュー画面での細部レベル、即ちズームレベルは、パニングｋを決定し、例えば画面に表示されるビューが大きなズームアウトであり、細部がほとんど示されない場合、より大きなｋを用いてパニングレートを更に粗くすることができる。接近ズームアウトで、より細部を示す場合、小さなｋを用いてパニングレートをより繊細にすることができる。
他の実施形態では、異なる関係又は公式を用いてリストアリング力（又は所望ならリストアリング力ではなく別のタイプの力）の大きさを決定できる。例えば、異なるタイプのオブジェクト、アイソメトリック機能、又はモードに関してスプリング力の代わりに、又はスプリング力に加えて緩衝力を用いることができよう。更なる効果及び／又は慣性力に関して、式（１）のリストアリング力に摩擦力を加えることができよう。
またステップ４８６で述べられているように、ずれの方向を用いて大きさの異なるリストアリング力を提供することができよう。例えば、異なる方向についてｋを変えることが可能であり、例えば自由度について＋ｋを−ｋと、異ならせることができるので、パック２２は押戻すよりも前進させる方が一層困難である。またずれの方向は、リストアリング力を加えるかどうかを決定できる。例えば、図１０に示されている第２のグラフィカルオブジェクト実施形態では、リストアリング力は、ずれの方向が表面３５８の方向であるときだけに加えられる。ずれの方向が表面３５８から遠ざかる方向の場合、リストアリング力は、アイソメトリックモードを用いないで、カーソルを「アイソメトリック表面」寄りに移動するため、加えられない。幾つかのボタンの実施形態では、ずれの方向は、リストアリング力を加えるかどうかに影響を及ぼさないだろう。また代わりの実施形態では、ずれの方向は、リストアリング力の大きさに影響を及ぼす。例えば、ずれの方向が矢印４９６で示されているように図１０の表面３５８にほぼ垂直な場合、式（１）に基づく最大リストアリング力を加えることができる。しかし、ずれの方向が表面３５８に角度的に入射方向になっている場合、式（１）により計算されたリストアリング力の大きさＦの小部分を加えることができよう。
リストアリング力がステップ５０２で決定されると、ステップ５０４が実施され、プロセスは１つ以上のオーバーレイ力が、決定されているリストアリング力に関連するかどうかをチェックする。オーバーレイ力は、「効果」としても知られており、リストアリング力に加えてユーザオブジェクトに加えられる力であり、ユーザに情報を提供するために、又は他の或る効果を提供するために用いられる。オーバーレイ力は、ジョルト、バイブレーション、ウォッブルのような力感覚を含んでもよい。
例えば、グラフィカル表面３５８は、上記のように、テキストドキュメントのスクローリングを制御するためにリストアリング力を提供できる。スクローリングに関連付けられたリストアリング力は、バックグラウンド「条件」であり、特定のタイプの情報がウィンドウ内でスクロールして過ぎるとき、重畳ジョルト「効果」も含むことができる。例えば、ドキュメント３５２のページ区切り５１８（図１０を参照すること）がスクロールして過ぎるとき、触覚手段を介してユーザにこのページ区切りを指示するためにリストアリング力にジョルトを重畳することができる。ドキュメントが速くスクロールして過ぎればするほど、ユーザオブジェクトに加わるジョルトはそれだけ速くなる。同様に、移動の限界地点で、例えばビューが完全にズーミングされるときなどで、重畳ジョルトを提供することができよう。従って、ユーザは、ユーザの視覚と結合されたこれらの力キューの使用により、アイソメトリック機能の進行をより容易に追跡することができる。また異なる状況に関してこのようなジョルトの大きさを変化させることができる。例えば、スクロールするウィンドウでドキュメントの終わりにきたとき、ドキュメントの終わりを指示するためにページ区切りジョルトに比べてより大きなジョルトを出力できる。他の実施形態では、バイブレーション重畳を用いてスクロール、パニング又はズーミングの機能の速度を表すことができる。例えば、ドキュメントがより速くスクロールして過ぎるなら、バイブレーションの振動数はそれだけ高くなる。他のバイブレーション又はジョルトは、位置に関連付けられる。即ちカーソルがライン又はオブジェクト上を移動するとき、ジョルト、テクスチャ等が出力される。幾つかの機能、オブジェクト等は、それらに関連する２つ以上のオーバーレイ力、例えばジョルトとバイブレーションの双方を持つことができる。
１つ以上の重畳は、アイソメトリックモードの特定リストアリング力に関連付けられる。例えば、オーバーレイ力は、テキストスクロール機能に関してだけリストアリング力に関連付けられ、例えばパニングやズーム機能には関しない。同様に、ズーム機能は、リストアリング力に関連するテクスチャオーバーレイ力又はバイブレーションオーバーレイ力を持つ。
決められたリストアリング力が関連付けられたオーバーレイ力を持つ場合、プロセスは、引き続きステップ５０６に進み、プロセスは、現在の条件がオーバーレイ力の適用を指示しているかどうかをチェックする。ページ区切りがスクロールして過ぎたときにジョルトを提供する上記実施形態では、このステップは、ページ区切りがジョルトを加えることを命じる位置に現在あるかどうかをチェックする。例えば、ドキュメントがスクロールしているウィンドウ３５０のトップ（又はセンター）に、ページ区切り５１８が到達したときジョルトを加えた場合、このステップは、ページ区切りがウィンドウのトップにあるかどうかをチェックする。あるいは、ユーザオブジェクトのずれの度合いをユーザに指示するために、カーソル３０６が表面３５８近くに表示されるグラデーションのラインを越えて移動するとき、テクスチャ力又はジョルト力が加えられよう。一部の重畳、例えばスクロール速度に比例するバイブレーションは、アイソメトリックモードで常に加えられるのだが、条件に特有ではない。
現在の条件がオーバーレイ力を示唆しない場合、プロセスは引き続きステップ５０８に進み、そこで全体の力は、ステップ５０２で決定されたリストアリング力に等しくなるように設定される。プロセスは、次に下記のように、引き続きステップ５１２に進む。条件がオーバーレイ力を加えることを現に指示している場合、ステップ５１０で、プロセスは、ステップ５０２で決定されたリストアリング力に適用できるオーバーレイ力を加えるが、ここでは、結果として得られた力が全体の力に等しい。プロセスは次に引き続きステップ５１２に進む。
ステップ５１２で全体の力は、アクチュエータ２２２を用いて適切な条件のユーザオブジェクト１２に出力され、また適切な大きさを持っている。ユーザは、出力された力に含まれる何らかのオーバーレイ力に結合された動きに対する抵抗としてリストアリング力を体験する。プロセスは、次にステップ５１４で完了する。
本発明は、幾つかの好ましい実施形態に関して説明されているが、発明の部分的変更、置換及び同等物の存在することは、本明細書を読み、また図面を調べれば、当業者には明らかになるであろう。例えば、コンピュータの表示画面に現れる異なるグラフィカルオブジェクト又は領域に従って、ユーザオブジェクト１２に多くの子となるタイプの力を加えることができる。また、ＧＵＩでの多種多様なグラフィカルオブジェクトが特定のアイソトニック／アイソメトリック力に関連付けられ、また多くの他のタイプのコンピュータ環境やグラフィカル環境が本明細書に開示されているアイソトニック／アイソメトリック機能性を利用できる。加えて、ユーザに力を伝達するために、ジョイスティック、マウス、トラックボール、スタイラス、又は他のオブジェクトのような多くのタイプのユーザオブジェクトやメカニズムを提供できる。更に、説明を明確にする目的で特定の用語を用いたが、本発明を制限するものではない。従って、付帯する特許請求の範囲は、本発明の真の精神及び範囲に該当する全てのこのような部分的変更、置換及び同等物を含むことが意図されている。
【図１】
0003753744.tif 000002
【図２】
0003753744.tif 000003
【図３ａ】
0003753744.tif 000004
【図３ｂ】
0003753744.tif 000005
【図４ａ】
0003753744.tif 000006
【図４ｂ】
0003753744.tif 000007
【図４ｃ】
0003753744.tif 000008
【図５】
0003753744.tif 000009
【図６ａ】
0003753744.tif 000010
【図６ｂ】
0003753744.tif 000011
【図６ｃ】
0003753744.tif 000012
【図７ａ】
0003753744.tif 000013
【図７ｂ】
0003753744.tif 000014
【図７ｃ】
0003753744.tif 000015
【図７ｄ】
0003753744.tif 000016
【図８】
0003753744.tif 000017
【図９】
0003753744.tif 000018
【図１０】
0003753744.tif 000019
【図１１ａ】
0003753744.tif 000020
【図１１ｂ】
0003753744.tif 000021
【図１２】
0003753744.tif 000022
【図１３】
0003753744.tif 000023
【図１４】
0003753744.tif 000024
【図１５】
0003753744.tif 000025
【図１５ａ】
0003753744.tif 000026
【図１５ｂ】
0003753744.tif 000027
【図１５ｃ】
0003753744.tif 000028
【図１６】
0003753744.tif 000029
【図１６ａ】
0003753744.tif 000030
【図１６ｂ】
0003753744.tif 000031