JP4929394B2 - ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置 - Google Patents

ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置 Download PDF

Info

Publication number
JP4929394B2
JP4929394B2 JP2010263969A JP2010263969A JP4929394B2 JP 4929394 B2 JP4929394 B2 JP 4929394B2 JP 2010263969 A JP2010263969 A JP 2010263969A JP 2010263969 A JP2010263969 A JP 2010263969A JP 4929394 B2 JP4929394 B2 JP 4929394B2
Authority
JP
Japan
Prior art keywords
force
command
user
host
host computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2010263969A
Other languages
English (en)
Other versions
JP2011065678A (ja
Inventor
ロゼンバーグ,ルイス,ビー.
ブラウン,アダム,シー.
レヴィン,マイク,ディー.
Original Assignee
イマージョン コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/534,791 external-priority patent/US5739811A/en
Application filed by イマージョン コーポレイション filed Critical イマージョン コーポレイション
Publication of JP2011065678A publication Critical patent/JP2011065678A/ja
Application granted granted Critical
Publication of JP4929394B2 publication Critical patent/JP4929394B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/28Output arrangements for video game devices responding to control signals received from the game device for affecting ambient conditions, e.g. for vibrating players' seats, activating scent dispensers or affecting temperature or light
    • A63F13/285Generating tactile feedback signals via the game input device, e.g. force feedback
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/004Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points
    • G01B5/008Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points using coordinate measuring machines
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B7/00Measuring arrangements characterised by the use of electric or magnetic techniques
    • G01B7/004Measuring arrangements characterised by the use of electric or magnetic techniques for measuring coordinates of points
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/4202Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine preparation of the programme medium using a drawing, a model
    • G05B19/4207Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine preparation of the programme medium using a drawing, a model in which a model is traced or scanned and corresponding data recorded
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05GCONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
    • G05G9/00Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
    • G05G9/02Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only
    • G05G9/04Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously
    • G05G9/047Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1006Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals having additional degrees of freedom
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1025Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1037Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted for converting control signals received from the game device into a haptic signal, e.g. using force feedback
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1043Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being characterized by constructional details
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8017Driving on land or water; Flying
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05GCONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
    • G05G9/00Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
    • G05G9/02Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only
    • G05G9/04Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously
    • G05G9/047Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks
    • G05G2009/04766Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks providing feel, e.g. indexing means, means to create counterforce
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05GCONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
    • G05G9/00Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
    • G05G9/02Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only
    • G05G9/04Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously
    • G05G9/047Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks
    • G05G2009/04777Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks with additional push or pull action on the handle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/014Force feedback applied to GUI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/015Force feedback applied to a joystick
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01HELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
    • H01H3/00Mechanisms for operating contacts
    • H01H2003/008Mechanisms for operating contacts with a haptic or a tactile feedback controlled by electrical means, e.g. a motor or magnetofriction

Description

本発明は、全般として、人間とコンピュータとの間のインタフェース装置に関し、特に、ユーザに対して力フィードバックを提供するコンピュータインタフェース装置に関する。
コンピュータシステムは、多くの異なる産業分野で、コンピュータ制御シミュレーションやゲームやその他のアプリケーションプログラムを実施するため広く用いられている。特に、このようなタイプのゲームやシミュレーションは、家庭消費者の量販市場では非常に一般的である。コンピュータシステムは、通常、ユーザに対して表示画面またはその他の視覚出力装置上に視覚環境を表示する。ユーザは、表示された環境と対話して、ゲームを行い、シミュレーションまたは「仮想現実(バーチャルリアリティ)」環境を体験することができ、あるいは画面上に描かれた事象または画像に影響を与えることができる。このようなユーザインタラクションは、表示された環境を制御するコンピュータシステムに接続されたジョイスティックや、「ジョイパッド」ボタン制御装置、マウス、トラックボール、スタイラスやタブレットなどのヒューマン−コンピュータインターフェース装置を用いて実施することができる。コンピュータは、ジョイスティックハンドルやマウス等の物体(オブジェクト)のユーザによる操作に応じてシミュレーションやゲームを更新し、表示画面、更に通常はオーデイオスピーカを用いてユーザに対するフィードバックを行う。
幾つかのインタフェース装置では、触覚(「ハプティック(haptic)」)フィードバックもユーザに与えられる。これは、より一般的には「力フィードバック」として知られている。このようなタイプのインタフェース装置は、インタフェース装置のオブジェクトを操作するユーザに対して肉体的な感覚を与えることができる。通常は、モータや他のアクチュエータがオブジェクトに結合され、制御コンピュータシステムに接続される。コンピュータシステムは、アクチュエータに制御信号を送ることにより、シミュレーション/ゲームイベントに関係してオブジェクトに力を与えることができ、コンピュータシステムは、ユーザがインタフェース装置のオブジェクトを握ったり触ったりするときに他の供給フィードバックと関連してユーザに肉体的感覚を与えることができる。このようにして、力フィードバックインタフェース装置は、ヒューマン−コンピュータインタラクションに対して全く新規な特徴を与えることができる。?
従来技術の力フィードバック入出力(I/O)装置は、最大の触覚忠実度を与えることに集中している。すなわち、触覚フィードバックのリアリズムが最適化されることが望まれていた。これは、力フィードバック装置の殆どが、量販消費者市場ではなく、極めて産業的な用途の特定のニーズに目標を定めているためである。このようなリアリズムを実現するために、小さなサイズと重量、複雑さが少ないこと、プログラミングの互換性、低いコスト、安全性などといった量販市場設計の関心事は、従来技術では犠牲にされている。その結果、通常の力フィードバックインタフェース装置は、精密部品と高価なアクチュエータを要求する複雑なロボット機構を含んでいる。
力フィードバックインターフェース装置に対する重要な関心事は、制御コンピュータとインタフェース装置との間の通信帯域幅である。現実に近い力フィードバックを与えるために、従来技術の複雑な装置は、通常、制御コンピュータがインタフェース装置への力フィードバック信号を迅速に更新することを可能にする高速通信エレクトロニクスを用いる。制御コンピュータがより迅速にインタフェース装置に対して信号を送受することができる程、所望の力をより正確かつ現実に近い状態でインターフェースオブジェクトに加えることができる。更に、高い帯域幅の通信インタフェースを用いると、力フィードバックを、映像画面上の画像などの他の供給フィードバックと、オブジェクトの移動、活性化ボタンなどのユーザ入力と、に正確に調和させることができる。例えば、ユーザはシミュレーションにおいて力フィードバックジョイスティックを握ると共に移動させて車の画像を制御し、画面上に表示された仮想的な凹凸面の上を運転することができる。制御コンピュータは、シミュレーションの設計者が意図した程度に現実に近い凹凸にその表面が感じられるように、十分迅速にジョイスティックのアクチュエータに制御信号を与えるべきである。制御信号が遅すぎるときは、現実に近い凹凸感を与えることが困難になる。また、制御コンピュータは、供給された力を画面上の視覚フィードバック、例えば車が最初に凹凸面に当たるときの画面上の動き、に正確に調和させる高い帯域幅の通信インタフェースを必要とする。この高い速度は、供給された力を、例えば特定の方向に車をステアリングするためのユーザからの入力に正確に調和させる場合にも、同様に必要となる。
問題は、従来の力フィードバックインタフェース装置が量販消費者市場に供給されるときに明らかとなる。殆どのホームコンピュータは、RS−232やRS−422インタフェースなどの組込み標準シリアル通信インタフェースを有しており、これは、力フィードバックインタフェース装置などの周辺装置をホストコンピュータに接続するために便利に用いることができる。更に、製造業者は、これらのシリアルインタフェースを用いる周辺装置を提供することを好む。これは、インタフェースカードなどの付加的なハードウェアをこのような周辺装置に取り付ける必要がないからである。従って、周辺装置の製造コストはかなり減らすことができる。しかし、これらの標準シリアル通信インタフェースは、通常、他の通信インタフェースに比べて極めて遅い(すなわち、低い帯域幅を有する)。
このため、制御コンピュータシステムによって、現実に近い正確な力フィードバックを、このようなシリアルインタフェースを介して接続された従来のインタフェース装置に与えることは困難になる。例えば、J.Kramerによる米国特許第5、184、319号は、ユーザの胴体部分に力を加える力フィードバック装置を開示している。しかし、このKramerの装置は、ホストコンピュータがアクチュエータを直接制御し、インタフェース装置からセンサデータを直接受信するという点で従来技術の典型的なものである。このような装置は、現実に近い力フィードバックを実現する低帯域幅通信インタフェースには適していない。
量販消費者市場における従来の力フィードバックインタフェースを用いた場合の他の問題は、異なるコンピュータで用いられたり同じコンピュータで異なる時刻に用いられる処理速度やコンピュータプラットフォームが多岐にわたることである。力フィードバックインタフェース装置によりユーザに与えられる力の感覚は、これらの異なるコンピュータが異なる速度で稼働するので、異なるコンピュータプラットフォームやマイクロプロセッサ上のユーザには異なって感じられる。例えば、100MHzコンピュータにより制御される力フィードバックは、これらの力が同じものを感じるようになされていても、制御信号を処理する速度が異なることに起因して、60MHzコンピュータにより制御される力フィードバックとは全く異なる。更に、一つのマイクロプロセッサの実行処理速度は、所定時間にわたって変動し、多数のユーザセッションにわたって一致しない力を与える可能性がある。例えば、マルチタスク動作は、マイクロプロセッサ上で動作する他のプログラムに依存して力フィードバック制御信号のマイクロプロセッサによる管理を変化または遅延させることがある。
更に、力フィードバック装置と通信するための標準化された言語または通信プロトコルは存在しない。ソフトウェアアプリケーションにおいてインタフェースに力フィードバックを与えることを望むソフトウェアの開発者は、一般に、開発者自身の特殊なコマンドおよび/または通信プロトコルを設定しなければならず、また力フィードバック制御命令を低水準で実施しなければならない。これは、力フィードバックインタフェース向けの特徴を含むソフトウェアアプリケーションの開発において不要な時間と費用を要求する。
従って、力フィードバックインタフェースおよび力フィードバック制御パラダイム(paradigm)に代わる、より現実に近く費用効果の大きいものが特定の用途に関して要望されている。
本発明は、ヒューマンコンピュータインタフェース装置を操作するユーザに対して力フィードバックを制御および提供することに関する。このインタフェース装置は、制御用ホストコンピュータに接続されており、このインタフェース装置に対してローカルな個別のマイクロプロセッサを有している。このローカルマイクロプロセッサは、インタフェース装置に対する力の高速制御を可能にし、これにより、ホストコンピュータとの遅い通信インタフェースを介して与えられた力のリアリズムと精度を高める。
より詳細に述べると、ユーザにより操作されるインタフェース装置を制御する本発明のシステムおよび方法は、入力制御信号を受信し、ホスト出力制御信号を供給するホストコンピュータシステムを含む。ホストコンピュータは、入力制御信号に応じてシミュレーションやビデオゲームプロセスなどのホストアプリケーションプロセスを更新する。インタフェース装置に対してローカルでホストコンピュータから分離したマイクロプロセッサは、ホスト出力制御信号を受信すると共にプロセッサ出力制御信号を供給する。アクチュエータは、プロセッサ出力制御信号を受信し、プロセッサ出力制御信号に従ってアクチュエータに結合されたユーザ操作オブジェクトに対する自由度に沿って力を与える。センサは自由度に沿ったオブジェクトの動きを検出し、このオブジェクトの位置と動きを表す情報を含む入力制御信号を出力する。好ましくは、センサは、入力制御信号をローカルプロセッサに出力し、ローカルプロセッサは、ホストコンピュータに入力制御信号を出力する。ユーザオブジェクトは、1以上の自由度でユーザが握って動かすものであることが好ましく、ジョイスティック、マウス、模擬医療器具、スタイラス、または他のオブジェクトのような物品が含まれていてもよい。
あるホスト制御態様では、ホストコンピュータは、入力制御信号中のセンサ情報を受信し、力の値を決定する。従って、ホスト出力制御信号は、マイクロプロセッサを介して直接アクチュエータに中継される決定済直接力コマンドである。第二の「反射(reflex)」態様では、ホストコンピュータは、監視モードでセンサ情報を受信し、力をユーザオブジェクトに印加する必要があるとき又は力を変更する必要があるときは常に、高水準力コマンドをマイクロプロセッサに出力する。マイクロプロセッサは、高水準ホストコマンドに従って、センサおよびタイミングデータを受信し、選択された反射プロセスに従ってアクチュエータに低水準力コマンドを出力する。この反射プロセスは、力方程式を用いるステップ、所定の力値の力プロファイルを記憶装置から読み取るステップ、またはその他のステップを含んでいてもよく、またこの反射プロセスは、センサデータ、タイミングデータ、ホストコマンドデータ、または他のデータに依存していてもよい。このようにして、プロセッサは、ホストコンピュータがユーザオブジェクトに印加される力のタイプを変更するまでホストコンピュータとは無関係に力を制御する「反射」を実施する。
アクチュエータにより与えられる力の大きさは、ホストコンピュータまたはローカルマイクロプロセッサにより決定される。この大きさは、特定の自由度におけるオブジェクトの位置、速度および/または加速を含むパラメータ、ならびにクロックからのタイミングデータにより決定することができる。このようにして、この力は、バネの力、制動力、または慣性力などの異なるタイプの力をシミュレートすることができる。
ホストコンピュータシステムにより更新されたアプリケーションプロセスは、好ましくは、アプリケーションソフトウェアを含んでいる。このアプリケーションソフトウェアは、シミュレーションソフトウェア、ゲームソフトウェア、科学ソフトウェアなどであってもよい。ホストコンピュータシステムは、表示画面などの視覚出力装置上に画像を表示し、画像および視覚事象を、オブジェクトを操作するユーザから入力された位置と動き、並びにオブジェクトに加えられた力に同期させることができる。また、ホストコンピュータは、好ましくは音声フィードバックのタイミングと大きさを力フィードバックに同期させることができる。本発明は、多くのコンピュータに含まれる標準シリアルインタフェースを用いてホストコンピュータシステムをローカルマイクロプロセッサとインタフェースすることができる。あるいは、パラレルインタフェースを用いたり、ホストコンピュータ上の異なるインタフェース、例えばゲームポート、と共にシリアルインタフェースを用いることもできる。クロックは、アクチュエータにより出力された力を部分的に決定するためアクセスすることができるホストコンピュータシステムまたはローカルプロセッサに結合されることが好ましい。
本発明は更に、ホストコンピュータとローカルマイクロプロセッサとの間の力コマンドに対するパラダイム(paradigm)を提供する。ホストコンピュータにより与えられる高水準ホストコマンドは、レート制御および/または位置制御コマンドであってもよく、コマンドパラメータ形式の情報を含んでいてもよい。ひとそろいの力に翻訳される比較的小さな一組のコマンドおよびコマンドパラメータを与えることにより、パラダイムは、演算の負担をホストコンピュータからローカルマイクロプロセッサに更にシフトさせる。ホストコマンドは、復元力や、振動力、質感力、障壁力、吸引/反発力の場、制動力、溝力、およびラケット−ボール力などの力をユーザオブジェクトに与えるコマンドを含んでいてもよい。通常のコマンドパラメータは、アクチュエータにより出力された力を制御する大きさパラメータ、持続時間パラメータ、方向パラメータ、スタイルパラメータ、およびボタンパラメータを含む。これは、ホストコンピュータシステム上で実施される力フィードバックソフトウェアの開発者による効率の良い使用のための高水準標準力フィードバックコマンドプロトコルを与える。
ローカルマイクロプロセッサの機能も、好適に実現される。コマンドプロセスは、ホストコンピュータからのホストコマンドを受信し、ホストコマンドおよび任意の包含コマンドパラメータを処理する。力パラメータはホストコマンドおよびパラメータから導出され、メモリに格納される。好ましくは、全てのホストコマンドは、適当なホストコマンドが受信されたときに更新される一組の力パラメータを伴っている。状態更新プロセスは、ユーザオブジェクトの動きを記述するセンサからのセンサデータを読み取り、適切であれば速度、加速度、または他の時間関連値を計算することもできる。力出力プロセスは、力パラメータおよびセンサデータに従って選択された反射プロセスを用いて力値を計算する。ある場合には、力値は、力パラメータの値およびセンサデータに依存する。力出力プロセスは、計算した力値をアクチュエータに送出することによりユーザオブジェクトに作用する力を出力する。更に、報告プロセスは、適切な場合には、センサデータをホストコンピュータシステムに報告する。好ましくは、複数個のホストコマンドを同時に有効にすることができ、ここで力値は、このような有効状態のホストコマンドの各々に対応する反射プロセスから加算される。更に、パラメータセットのパラメータページは、異なる力環境を選択できるように都合よくメモリに格納することができる。
本発明の制御システムおよび方法は、ホストコンピュータから分離されたインタフェース装置に対してローカルな別個のマイクロプロセッサを含んでいると都合がよい。このローカルマイクロプロセッサは、ホストコンピュータとは無関係にセンサ信号および出力力コマンド信号を読み取り、処理し、これによりホストコンピュータ上における膨大な処理時間を節約することができる。更に、低水準力フィードバックコマンドを処理するローカルプロセッサを使用することにより、ホストおよびインタフェース装置間にシリアル通信インタフェースまたは他の比較的狭い帯域幅の通信インタフェースを用いる場合に、より現実に近く正確な力フィードバックをユーザが操作するオブジェクトに与えることができるようになる。これは、このような低水準力信号は、通信インタフェースを介して送信する必要はないためである。絶対的なタイミング情報の観点で力フィードバックコマンドを生成する場合にクロックを使用すると、異なるホストコンピュータプラットフォームにわたって、また同じホストコンピュータ上の異なるセッションにおいて、ユーザが一致した力感覚を体験することができるようになる。種々の力を指令する特定の高水準ホストコマンドを使用すると、力フィードバックホストアプリケーションを容易に生成できるようになる。これらの改良を加えると、低コストの低帯域幅通信インタフェースを介して正確で現実に近い力フィードバックをコンピュータシステムが与えることができるようになり、従ってホームコンピュータシステムの量販市場に対して理想的である。
本発明の上記および他の利点は、本発明の以下の詳細な説明を読み、図面を参照することによって、当業者にとって明らかになる。
図1は、ホストコンピュータから力フィードバックインタフェース装置を制御する、本発明に係る制御システムのブロック図である。 図2は、本発明用の能動アクチュエータに制御信号を与えるアクチュエータインタフェースの概略図である。 図3は、本発明用の受動アクチュエータに制御信号を与えるアクチュエータインタフェースの概略図である。 図4は、力フィードバックインタフェース装置を制御する本発明の方法の第一の実施形態を示す流れ図である。 図5は、力フィードバック装置を制御する本発明の方法の第二の実施形態の流れ図である。 図6は、インタフェース装置のユーザオブジェクトに2自由度を与える閉ループファイブバーリンケージ機構の概略図である。 図7は、図6に示したリンケージ機構の好適な実施形態の斜視図である。 図8は、ユーザオブジェクトに対する機械的インタフェースのスロット付きヨークジョイスティックの斜視図である。 図9は、本発明のレート制御コマンドを要約する表である。 図10(a)〜(c)は、力プロファイルの復元を示す概略図である。 図11(a)〜(c)は、ばね力プロファイルの復元を示す概略図である。 図12は、ベクトル力を示す図である。 図13(a)〜(b)は、振動力プロファイルを示す図である。 図14は、本発明の位置制御コマンドを要約する表である。 図15は、溝力プロファイルを示す図である。 図16は、障壁力プロファイルを示す図である。 図17(a)〜17(i)は、本発明のラケットコマンドにより制御されるラケットボールインタラクションを示す図である。 図18は、力フィードバックインタフェース装置を力パラメータを含むホストコマンドにより制御する本発明のローカルマイクロプロセッサの実施を示すブロック図である。 図19は、図18のホスト通信バックグラウンドプロセスを示す流れ図である。 図20は、図18のコマンドプロセスを示す流れ図である。 図21は、図18の報告プロセスを示す流れ図である。 図22は、図18のアクチュエータ制御プロセスおよび力アルゴリズム計算を示す流れ図である。 図23は、本発明で用いた力パラメータおよび一連の力コマンドを示す図である。
図1は、ホストコンピュータシステムにより制御されるインタフェース装置用の本発明の一般的な制御システム10を示すブロック図である。制御システム10は、ホストコンピュータシステム12とインタフェース装置14を有する。
ホストコンピュータシステム12は、好ましくは、IBM互換パーソナルコンピュータやMacintoshパーソナルコンピュータなどのパーソナルコンピュータ、またはSUNワークステーションやSiliconGraphicsワークステーションなどのワークステーションである。例えば、ホストコンピュータシステムは、IBM PC ATスタンダードに従うMS−DOSまたはWindows動作システムの下で動作するパーソナルコンピュータである。この他に、ホストコンピュータ12は、テレビジョンセットに一般的に接続された種々のホームビデオゲームシステム、例えばNintendo、Sega、Sonyから市販されているシステム、の一つであってもよい。他の態様では、ホームコンピュータシスム12は、例えばユーザにインタラクティブテレビテレビジョン機能を与えるために使用できる「セットトップボックス」であってもよい。
本実施形態では、ホストコンピュータシステム12は、周辺装置およびインタフェース装置14を介して対話するホストアプリケーションプロセスを実施する。ホストアプリケーションプログラムは、例えば、ビデオゲーム、医療用シミュレーション、科学解析プログラム、もしくはオペレーティングシステム、または力フィードバックを利用する他のアプリケーションプログラムである。通常、このホストアプリケーションは、以下に述べるように、表示出力装置に表示される画像を提供し、および/または他のフィードバック、例えば音響信号、を提供する。
ホストコンピュータシステム12は、好ましくは、ホストマイクロプロセッサ16、ランダムアクセスメモリ(RAM)17、リードオンリーメモリ(ROM)19、クロック18、表示画面20、および音声出力装置21を有する。ホストマイクロプロセッサ16は、Intel、Motorola、または他の製造業者から市販されている一連のマイクロプロセッサを有する。マイクロプロセッサ16は、単一のマイクロプロセッサチップであってもよく、あるいは複数のプライマリプロセッサおよび/またはコプロセッサを含んでいてもよい。好ましくは、マイクロプロセッサは、当業者には周知のように、RAM17およびROM19から命令および他の必要なデータを取り出して格納する。本実施形態では、ホストコンピュータシステム12は、インタフェース装置14からバス24を介してセンサデータまたはセンサ信号を受信し、更に他の情報を受信する。マイクロプロセッサ16は、マイクロプロセッサ16とバス24との間に設けられた標準I/Oエレクトロニクスを用いてバス24からデータを受信し、更にI/Oエレクトロニクスを用いて他の周辺装置を制御する。ホストコンピュータシステム12は、更にバス24を介してインタフェース装置14に「力コマンド」を出力して、インタフェース装置に対する力フィードバックをもたらす。
クロック18は、マイクイロプロセッサ16およびコンピュータシステムの他の構成要素により用いられる電気信号にタイミングを与えるためにホストコンピュータシステム12が使用する標準的なクロック水晶または等価な構成要素である。クロック18は、続いて以下に示すように、本発明の制御プロセスにおいてホストコンピュータシステム12によりアクセスされる。
表示画面20は、適切なディスプレイドライバによりホストマイクロプロセッサ16に結合され、ホストコンピュータシステム12または他のコンピュータシステムにより生成される画像を表示するために使用される。表示画面20は、標準的な表示画面、またはCRT、3−Dゴーグル、もしくは他の視覚インタフェースとすることができる。本実施形態においては、表示画面20は、シミュレーション環境またはゲーム環境の画像を表示する。他の実施形態においては、他の画像が表示される。例えば、仮想バーチャルリアリティシミュレーションやゲームにおけるように、一人称的視野からの観点を記述する画像を表示することができる。或いは、オブジェクト、背景などの第三者的視野を表す画像を表示することもできる。ホストコンピュータ12およびインタフェース装置14のユーザ22は、表示画面20を見ることにより視覚フィードバックを受けることができる。
本明細書では、コンピュータ12は、コンピュータ「オブジェクト」または「エンティティ」を表示させるものを指す場合がある。これらのコンピュータオブジェクトは、物理的なオブジェクトではなく、当業者には周知のように、表示画面20上のコンピュータ12による画像として表示されるデータおよび/または手順の論理ソフトウェアユニット集合である。例えば、カーソルや第三者的視界の車は、画面を横切って移動できるプレーヤ制御コンピュータオブジェクトと考えることができる。航空機の表示された模擬コックピットも「オブジェクト」と考えることができ、あるいは模擬航空機をコンピュータ制御「エンティティ」と考えることができる。
スピーカなどの音声出力装置21は、当業者には周知のように、増幅器、フィルタ、および他の回路を介してホストマイクロプロセッサ16に結合されていることが好ましい。ホストプロセッサ16は、スピーカ21に信号を出力し、ホストアプリケーションプログラムの実施の間に「音声事象」が生じるときユーザ22に音響出力を与える。また、他の種類の周辺装置は、記憶装置(ハードディスクドライブ、CDROMドライブ、フロッピディスクドライブなど)、プリンタ、その他の入出力装置のようなホストプロセッサ16に結合されていてもよい。
インタフェース装置14は、双方向バス24によりホストコンピュータシステム12に結合されている。双方向バスは、ホストコンピュータシステム12とインタフェース装置との間のいずれかの方向に信号を送出する。本明細書では、用語「バス」は、ホストコンピュータ12およびマイクロプロセッサ26間などのインタフェースであって、一つ以上の接続線または他の接続部材を通常含み、以下に示すように多くの方法で実施することができるインタフェース、を一般的に指すように意図されている。好適な実施形態においては、バス24は、シリアル通信プロトコルに従ってデータを供給するシリアルインタフェースである。RS232シリアルインタフェースポートなどのホストコンピュータシステム12のインタフェースポートは、バス24をホストコンピュータシステム12に接続する。他の標準シリアル通信プロトコル、例えばRS−422、ユニバーサルシリアルバス(USB)、MIDI、または当業者に周知の他のプロトコル、をシリアルインタフェースおよびバス24で用いることも可能である。
例えば、USB規格は、高度のリアリズムを備える本発明において力フィードバック信号を供給することができる比較的高速のシリアルインタフェースを与える。USBはまた、周辺装置を駆動するより多くの電力のソースとなることもできる。USBにアクセスする各々の装置はホストコンピュータにより独自のUSBアドレスを割り当てられるので、これにより複数の装置が同じバスを共有することが可能になる。更に、USB規格は、微分データと共に符号化されるタイミングデータを含んでいる。USBは、本明細書の全体を通じて説明するように、本発明に対して有用な特徴を幾つか有している。
本発明の利点は、低帯域幅シリアル通信信号をインタフェース装置14とのインタフェースに用いることができ、これにより、多くのコンピュータの標準組込みシリアルインタフェースを直接使用することが可能になることである。この他に、ホストコンピュータシステム12のパラレルポートは、パラレルバス24に結合することができ、SCSIやPCパラレルプリンタバスなどの並列プロトコルを用いてインタフェース装置と通信を行うことができる。別の実施形態では、バス24は、例えば、プラグインカードおよびスロットまたはコンピュータシステム12の他のアクセスを用いてホストコンピュータシステム12のデータバスに直接接続することができる。例えば、IBMAT互換コンピュータでは、インタフェースカードは、ISA、EISA、VESAローカルバス、PCI、またはコンピュータのマザーボードに差し込まれる他の周知の標準インタフェースカードとして実装することができ、このインタフェースカードは、コンピュータの主データバスに接続された入力および出力ポートを提供することができる。
他の実施形態においては、ホストコンピュータシステム12とインタフェース装置14の間を連絡する追加バス25が設けられる。通信信号に対する速度要求は力フィードバック信号を出力するために比較的高いので、バス24と共に用いられる単一のシリアルインタフェースは、現実に近い力フィードバックが得られるほど十分に高い速度で信号をインタフェース装置との間で送受することができない。このような実施形態では、バス24をホストコンピュータ12の標準シリアルポートに結合し、追加バス25をホストコンピュータシステムの第2のポートに結合することができる。例えば、多くのコンピュータシステムは、シリアルRS−232ポートの他に、ジョイスティックまたは同様のゲームコントローラをコンピュータに接続するための「ゲーム」ポートを有している。2本のバス24および25を同時に用いてデータバス帯域幅を増加させることができる。例えば、マイクロプロセッサ26は、センサ信号を単方向バス25とゲームポートを介してホストコンピュータ12に送出することができ、一方ホストコンピュータ12は、力フィードバック信号をシリアルポートから単方向バス24を介してマイクロプロセッサ26に出力することができる。他の実施形態では、データフロー構成の他の組み合わせを実施することができる。
インタフェース装置14は、ローカルマイクロプロセッサ26、センサ28、アクチュエータ30、ユーザオブジェクト34、任意選択センサインタフェース36、任意選択アクチュエータインタフェース38、および他の任意選択入力装置39を有する。インタフェース装置14は、バス24上で標準プロトコルを介しての通信のために付加的な電子部品を有する。好適な実施形態では、多数のインタフェース装置14がバス24(または多数のバス24)を介して単一のホストコンピュータシステム12に結合されており、これにより多数のユーザがホストアプリケーションプログラム(例えば、マルチプレーヤゲームやシミュレーションにおけるもの)と同時にインタフェースすることができる。更に、当業者には周知のように、多数のプレーヤが、ネットワーク化ホストコンピュータ12を用いてホストアプリケーションプログラムにおいて多数のインタフェース装置14と対話することができる。
ローカルマイクロプロセッサ26はバス24に結合されており、インタフェース装置の他の構成要素との迅速な通信が可能になるようにインタフェース装置14のハウジング内に含まれていることが好ましい。プロセッサ26はインタフェース装置14に対して「ローカル」と考えられる。本明細書では、「ローカル」は、プロセッサ26がホストコンピュータシステム12における任意のプロセッサから分離されたマイクロプロセッサであることを意味する。好ましくは「ローカル」は、プロセッサ26がインタフェース装置14のセンサI/Oおよび力フィードバックに専用であり、インタフェース装置用のハウジング内やインタフェース装置14に密接に結合されたハウジング内のように、プロセッサ26がセンサ28およびアクチュエータ30に密接に結合されることも意味する。マイクロプロセッサ26には、コンピュータホスト16からのコマンドまたはリクエストを待機させ、コマンドまたはリクエストを復号し、更にコマンドまたはリクエストに従って入力および出力信号を処理/制御するソフトウェア命令を与えることができる。更にプロセッサ26は、センサ信号を読み取り、それらのセンサ信号、時間信号、およびホストコマンドに従って選択された反射プロセス(本明細書では「サブルーチン」または「力感覚プロセス」とも呼ばれる)から適切な力を計算することにより、ホストコンピュータ16とは独立に動作する。ローカルマイクロプロセッサ26としての使用に適したマイクロプロセッサとしては、例えばMotorola製のMC68HC711E9やMicrochip製のPIC16C74がある。マイクロプロセッサ26は、一つのマイクロプロセッサチップ、または複数のプロセッサチップおよび/またはコプロセッサチップを含んでいてもよい。他の実施形態においては、マイクロプロセッサ26はデジタル信号プロセッサ(DSP)チップを有していてもよい。RAMおよび/またはROMなどのローカルメモリ27は、好ましくはインタフェース装置14内のマイクロプロセッサ26に結合され、マイクロプロセッサ26に対する命令を格納し、一時データおよび他のデータを格納する。マイクロプロセッサ26は、センサ28から信号を受信し、バス24を介してホストコンピュータ12により与えられる命令に従ってインタフェース装置14のアクチュエータ30に信号を供給する。
更に、ローカルクロック29は、ホストコンピュータ12のシステムクロック18と同様に、タイミングデータを供給するようにマイクロプロセッサ26に結合されていてもよい。このタイミングデータは、例えばアクチュエータ30により出力される力(例えば、計算された速度または他の時間依存因子に依存する力)を計算するために必要となる場合がある。USB通信インタフェースを用いた他の実施形態では、マイクロプロセッサ26に対するタイミングデータをUSB信号から取り出すことができる。USBは、使用可能なデータストリームによって符号化されるクロック信号を有している。この他に、USBのIsochronous(ストリーム)モードは、標準データ転送速度からタイミング信号を引き出すことができる。USBは、使用可能なSample Clock、Bus Clock、およびService Clockも有している。
例えば、ある実施形態では、ホストコンピュータ12は、バス24を介して低水準力コマンドを供給することができる。これらのコマンドは、マイクロプロセッサ26がアクチュエータ30に直接供給する。この実施形態は、図4を参照して更に詳細に説明する。異なる実施形態では、ホストコンピュータシステム12は、バス24を介してマイクロプロセッサ26に高水準監視コマンドを供給することができ、マイクロプロセッサ26は、高水準コマンドに従ってセンサ28およびアクチュエータ30に対する低水準力制御(「反射(reflex)」)ループを管理する。この実施形態は、図5を参照して更に詳細に説明する。
マイクロプロセッサ26はまた、好ましくは、較正パラメータを格納する電気的に消去可能なプログラマブルROM(EEPROM)または他の記憶装置27へのアクセスを有している。この較正パラメータは、同じ製造プロセスから形成された異なるインタフェース装置の部品の異なる物理的特性、例えば物理的寸法、のわずかな製造ばらつきを補償することができる。この較正パラメータは、インタフェース装置14が販売される前に製造業者により決定および格納され、あるいは任意選択的にインタフェース装置のユーザがこれらのパラメータを決定することができる。これらの較正パラメータは、アクチュエータ30に対する入力センサ信号および/または出力力値を修正して、多数の製造済インタフェース装置14においてオブジェクト34にほぼ同じ範囲の力を与えるために、プロセッサ26により用いられる。較正パラメータの実施例は、当業者には周知である。
マイクロプロセッサ26はまた、インタフェース装置14に含まれる他の入力装置からコマンドを受信し、ホストコンピュータ12に適当な信号を与えて、入力情報が受信されていることおよび任意の情報が入力情報に含まれていることを示すことができる。例えば、インタフェース装置14上のボタン、スイッチ、ダイアル、もしくは他の入力制御装置、またはユーザオブジェクト34は、マイクロプロセッサ26に信号を供給することができる。
好適な実施形態では、センサ28、アクチュエータ30、およびマイクロプロセッサ26、および他の関連する電子部品は、ユーザオブジェクト34が直接または間接に結合されるインタフェース装置14用のハウジングに含まれている。
この他に、マイクロプロセッサ26および/またはインタフェース装置14の他の電子部品は、ユーザオブジェクト34、センサ28、およびアクチュエータ30から分離されたハウジング内に設置してもよい。更に、オブジェクト34に所望の自由度を与えるために、追加の機械構造がインタフェース装置14内に含まれていてもよい。このような機構の幾つかの実施形態は、図7〜図12を参照して説明する。
センサ28は、1以上の自由度に沿ってインタフェース装置14のユーザオブジェクト34の位置、動き、および/または他の特性を検出し、これらの特性を表す情報を含む信号をマイクロプロセッサ26に与える。ユーザオブジェクトの実施例および与えられた自由度内での動きの例は、図7および8を参照して後述する。通常、センサ28は、オブジェクト34を動かすことのできる各自由度に対して用意される。この他に、単一の複合センサを用いて多自由度における位置または動きを検出することができる。ここに示した幾つかの実施形態に適したセンサの例は、回転軸のまわりのオブジェクトの位置の変化を検出し、位置の変化を示すデジタル信号を供給するデジタル光学エンコーダである。このエンコーダは、例えば、回転自由度において二つの位相関連信号を生成することによりシャフトの回転に応答する。線形光学エンコーダは、直線自由度に沿うオブジェクト34の位置の変化を同様に検出し、また直線自由度での直線シャフトの運動に応じて二つの位相関連信号を生成することができる。相対的または絶対的センサのいずれかを用いることができる。例えば、相対的センサは単に相対的角度情報のみを与えるので、通常、相対的角度情報に対する基準位置を与える、ある形式の較正ステップを必要とする。本明細書に示すセンサは、主として相対的センサである。従って、システムの電源投入の後に、暗示較正ステップ(implied calibration step)が存在する。このステップでは、センサシャフトがインタフェース装置内の既知の位置に配置され、また、較正信号がシステムに供給されて上記の基準位置が与えられる。これ以降、センサにより与えられる全ての角度は、その基準位置を基準とするものである。この他に、基準位置を与えることができる既知のインデックスパルスを相対的センサに供給することもできる。このような較正方法は当業者には既知のものであり、従って本明細書では更に詳細な説明は行わない。適切な光学エンコーダは、ワシントン州バンクーバのU.S.Digital製の“Softpot”である。
センサ28は、光学センサインタフェース36に電気信号を供給する。このインタフェースは、マイクロプロセッサ26および/またはホストコンピュータシステム12により翻訳可能な信号にセンサ信号を変換するために用いることができる。例えば、センサインタフェース36は、センサ28から二つの位相関連信号を受信し、二つの信号を、双方向二進カウンタを駆動する他のクロック信号ペアに変換する。この二進カウンタの出力は符号化されたシャフトの角度位置を表す二進数としてマイクロプロセッサ26により受信される。このような回路または等価な回路は当業者には周知のものであり、例えばカリフォルニアのHewlettPackard製のQuadrature Chip LS7166は、上記の機能を果たすものである。各々のセンサ28には、自身のインタフェースが設けられていてもよく、或いは一つのセンサインタフェースが、複数のセンサからのデータを処理してもよい。例えば、センサインタフェースは、入力データを供給する各センサ28に専用の個別処理チップを有していてもよい。この他に、マイクロプロセッサ26は、個別センサインタフェース36を必要とすること無しにこれらのインタフェース機能を実現することもできる。位置値信号は、マイクロプロセッサ26が用いることができ、また、ホストコンピュータシステム12に送出される。ホストコンピュータシステム12は、ホストアプリケーションプログラムを更新し、力制御信号を適切なものとして送出する。例えば、ユーザがステアリングホイールオブジェクト34を動かすと、コンピュータシステム12は、この動きを示す位置信号および/または他の信号を受信し、表示されたユーザの視点を、あたかも車両の外を見て車両の向きを変えているかのように移動させることができる。他のインタフェース機構も適当な信号をホストコンピュータシステム12に供給するために用いることができる。他の実施形態では、センサ28からのセンサ信号をホストコンピュータシステム12に直接供給して、マイクロプロセッサ26をバイパスすることができる。また、センサインタフェース36は、インタフェースボードまたはカード上におけるように、ホストコンピュータシステム12内に含まれていてもよい。
この他に、センサ28の全てまたは幾つかについては、デジタルセンサの代わりにアナログセンサを用いることができる。例えば、オブジェクトの位置ではなくオブジェクト34に作用する力を測定するひずみケージを接続することができる。また、速度センサおよび/または加速度計を用いてオブジェクト34に加わる速度および加速度を直接測定することができる。アナログセンサは特定の自由度のユーザオブジェクトの位置/速度/加速度を表すアナログ信号を供給することができる。アナログ−デジタル変換器(ADC)は、アナログ信号をデジタル信号に変換することができ、このデジタル信号は、当業者には周知のように、マイクロプロセッサ26および/またはホストコンピュータシステム12により受信され、解読される。検出されたオブジェクト34の動きの分解能は、ADCの分解能により制限される。しかしながら、ノイズがアナログセンサからのオブジェクト34の小さな動きをマスクする場合が多く、これにより、本発明の幾つかの実施形態(以下で説明する)にとって重要な遊びが潜在的にマスクされることがある。
他のタイプのインタフェース回路36も使用することができる。例えば、各々のセンサに対して個別の処理チップを持つ電子インタフェースを用いることができる。このインタフェースは、マウスまたはスタイラスの位置を追跡することを可能にし、センサおよびアクチュエータを用いてスタイラスに力フィードバックを与える。センサインタフェース36は、センサ28からの角度信号の読み取り値をマイクロプロセッサ26に送出する前に前処理する角度決定チップを有する。例えば、データバスにチップイネーブルラインを加えると、角度決定チップのいずれかがマイクロプロセッサと通信できるようになる。角度決定チップのない構成に最適なのは、追加処理なしで角度を直接示す出力信号を有し、これによりマイクロプロセッサ26に対して要求する計算量を少なくし、従って前処理があっても計算量の少ないてすむ絶対センサを有する実施形態である。センサ28が、単に角度の変化のみを示し、角度の完全な決定のために追加の処理が必要となる相対センサのときは、角度決定チップが最も適している。
アクチュエータ30は、マイクロプロセッサ26から受信された信号に応じて、1以上の自由度に沿って一つ以上の方向にインタフェース装置内14のユーザオブジェクト34に力を送る。通常、アクチュエータ30は、力の送出が望まれる自由度の各々に対して用意される。アクチュエータ30は、能動アクチュエータと受動アクチュエータの二種類からなる。
能動アクチュエータには、線形電流制御モータ、ステッパモータ、空気圧/油圧能動アクチュエータ、および力を送ってオブジェクトを動かす他の種類のアクチュエータが含まれる。例えば、能動アクチュエータは、回転自由度において軸のまわりに回転シャフトを駆動させることができ、あるいは直線自由度に沿って直線シャフトを駆動させることができる。本発明の能動トランスジューサは、好ましくは双方向であり、これは、これらのトランスジューサが自由度のいずれかの方向に沿って力を選択的に送ることができることを意味している。例えば、DCサーボモータは、力制御信号を受信して、シャフト上に生成されるトルク(力出力)と方向を制御することができる。これらのモータは、シャフトの回転が短い時間帯の間に停止できるようにするブレーキを有していてもよい。印加電圧のパルス幅変調で制御されるステッパモータや、空気圧/油圧アクチュエータ、トルカ(torquer;角度範囲が制限されたモータ)、ボイスコイルアクチュエータなど、当業者に周知の他の種類の能動モータを用いることもできる。
アクチュエータ30については、受動アクチュエータも使用可能である。モータの代わりに、あるいはモータの他に、磁気粒子ブレーキ、摩擦ブレーキ、または空気圧/油圧受動アクチュエータを用いることができる。受動アクチュエータのみを含む他の好適な実施形態は、モータを含むものほどリアルではないが、受動アクチュエータは、ユーザが生成された力と争う必要がないことから、通常、ユーザに対してより安全である。受動アクチュエータは、通常、動きの程度に対して双方向の抵抗を与えることしかできない。インタフェース装置14に適切な磁気粒子ブレーキが、カリフォルニア州サンタモニカのForce Limited,Inc.から市販されている。
他の実施形態では、センサ28およびアクチュエータ30の全てまたは幾つかは、センサ/アクチュエータ対トランスジューサとして一体的に含まれていてもよい。光学エンコーダおよび電流制御モータの双方を含む本発明に適したトランスジューサは、Maxon製の20Wバスケット巻サーボモータである。
アクチュエータインタフェース38は、任意選択的にアクチュエータ30とマイクロプロセッサ26との間に接続可能である。インタフェース38は、マイクロプロセッサ26からの信号を、アクチュエータ30を駆動するのに適当な信号に変換する。インタフェース38は、電力増幅器、スイッチ、デジタル−アナログコントローラ(DAC)、および他の構成要素を有していてもよい。能動アクチュエータ用のアクチュエータインタフェースの例は、図2を参照して説明する。受動アクチュエータ用のアクチュエータインタフェースの例は、図3を参照して説明する。他の実施形態では、インタフェース38回路は、マイクロプロセッサ26内またはアクチュエータ30内に設けることができる。
他の入力装置39が任意選択的にインタフェース装置14に含まれていて、入力信号をマイクロプロセッサ26に送出するようになっていてもよい。このような入力装置は、ボタン、ダイアル、スイッチ、または他の機構を含むことができる。例えば、ユーザオブジェクト34がジョイスティックである実施形態では、他の入力装置として、例えばジョイスティックハンドルまたはベース上に設けられ、かつゲームまたはシミュレーションに対するユーザからの入力を補足するために用いられる一つ以上のボタンを挙げることができる。このような入力装置の動作は、当業者には周知である。
電源40が任意選択的にアクチュエータインタフェース38および/またはアクチュエータ30に結合されていて、電力を供給するようになっていてもよい。能動アクチュエータは、通常、個別の電源が駆動されることを要求する。電源40は、インタフェース装置14のハウジング内に含まれていてもよく、あるいは例えば電源コードにより接続された別個の構成要素として設けることができる。
この他に、USBまたは類似のプロトコルを用いたときは、インタフェース装置14は、USBから電力を引き出すことができ、従って電源40を必要とはしない。この実施形態は、受動アクチュエータ30を有する装置14に最適である。これは、受動アクチュエータが動作のための電源を殆ど必要としないからである。能動アクチュエータは、USBから得られるものよりも更に多くの電力を必要とする傾向があるが、この制限は多くの方法で克服できる。一つの方法は、インタフェース14がホストコンピュータ12に対する一つ以上の周辺装置に見えるようにインタフェース14を構成することである。例えば、ユーザオブジェクト34の所与の自由度の各々は、異なる周辺装置として構成することができ、自身の電力割当分を受け取ることができる。これは、ホスト12がインタフェース装置14により多くのパワーを割り当てることを可能にする。この他に、USBからの電力は、インタフェース装置14によって貯蔵および調整することができ、従ってアクチュエータ30を駆動するために必要なときに使用することができる。例えば、電力は所定時間にわたって蓄積された後、直ちに散逸され、ユーザオブジェクト34に対してジョルト力を与えることができる。例えば、コンデンサ回路がエネルギを蓄積し、十分な電力が蓄積されたときエネルギを散逸させる。マイクロプロセッサは、力の出力を調整して、蓄積されるべき電力に対して許容される時間を確保する必要がある。この電力蓄積態様は、インタフェース装置14の非USB形態でも使用することができ、これにより、より小さな電源40を使用することができるようになる。
安全性のために、安全スイッチ41がインタフェース装置に含まれていて、ユーザがアクチュエータ30を無効にして停止することを可能にする機構や、ユーザがアクチュエータ30を作動させなければならないようにする機構が設けられていることが好ましい。ある種のアクチュエータ、特にモータのような能動アクチュエータは、アクチュエータがユーザオブジェクト34を強い力で不意に移動させるときは、ユーザに対して安全性の問題を与える。更に、制御システム10に故障が生じると、ユーザはアクチュエータを素早く停止させてけがを避けようとする。このような選択肢を与えるため、安全スイッチ41がアクチュエータ30に結合される。好適な実施形態では、ユーザは、アクチュエータ30を作動させるインタフェース装置14の動作中、安全スイッチ41を絶えず作動させ、あるいは閉じていなければならない。任意の時点で、安全スイッチが停止すると(開かれると)、電源40からの電力は、安全スイッチが停止している限りアクチュエータ30に対して遮断される(或いは、アクチュエータが停止状態にされる)。安全スイッチの好適な実施形態は、例えば、ユーザオブジェクト34(ジョイスティックなど)の上、またはインタフェース装置14を収容するハウジングの都合のよい面上、に配置された光学スイッチである。ユーザが手または指で光学スイッチをカバーすると、スイッチのセンサは周囲の光の検出を阻止され、スイッチが閉じる。このため、アクチュエータ30は、ユーザがスイッチを覆っている限り機能する。他の実施形態では、他の種類の安全スイッチ41を設置してもよい。例えば、静電接点スイッチを用いて接触を検出したり、ボタンやトリガを押したり、異なる種類のセンサスイッチを使用することができる。
ユーザオブジェクト34は、ユーザが握ったり、或いはユーザが触ったり制御することの可能な装置または物品であって、インタフェース装置14に結合された装置または物品であることが好ましい。「握る」とは、ユーザがオブジェクトのグリップ部分を或る方法で、例えば手により、或いは障害者の場合は口を使って、開放自在にユーザの指先と係合させることを意味する。ユーザ22は、オブジェクトを所与の自由度に沿って操作および移動させて、ユーザが表示画面20上で見ているホストアプリケーションプログラムとインタフェースすることができる。オブジェクト34は、ジョイスティック、マウス、トラックボール、スタイラス、ステアリングホイール、医療機器(ラパロスコープ、カテーテルなど)、プールキュー、ハンドグリップ、ノブ、ボタン、その他の物品とすることができる。
図2は、インタフェース装置14の能動アクチュエータ30用のアクチュエータインタフェース38の例を示す概略図である。この例では、アクチュエータ30は、直線電流制御サーボモータである。アクチュエータインタフェース38は、DAC回路44および電力増幅回路46を有する。
DAC回路44は、マイクロプロセッサ26に結合され、好ましくはマイクロプロセッサ26から力値を表すデジタル信号を受信する。DAC48は、入力デジタル信号を電力増幅回路46に出力されるアナログ電圧に変換するのに適している。適切なDAC48は、National Semiconductor製のDAC1220などの並列DACであり、これは外部の一般的なオペアンプ50と共に動作するように設計されている。オペアンプ50は、例えば、その入力において、二進数に比例する0から−5ボルトの信号を出力する。オペアンプ52は、出力電圧を対称バイポーラ範囲に変換する反転加算増幅器である。オペアンプ52は、オペアンプ50の出力を反転し、その出力から2.5ボルトを減算することにより−2.5V〜+2.5Vの出力信号を生成する。この出力信号は、増幅回路46における電力増幅に適している。例えば、R1=200kW、R2=400kWである。
勿論、DAC回路44は、デジタル信号を所望のアナログ信号に変換するために用いることができる多くの可能な回路の一つの例として意図されている。
電力増幅回路46は、DAC回路44からアナログ低電力制御電圧を受け取り、アクチュエータ30を制御する電圧を増幅する。アクチュエータ30は、高電力電流制御サーボモータ30である。入力電圧は、増幅器54と幾つかの抵抗器とからなるトランスコンダクタンス段を制御する。このトランスコンダクタンス段は、モータ30を駆動する入力電圧に比例する出力電流を生成し、入力電圧源から微小な電流を引き出す。増幅器56、抵抗器、およびコンデンサCを含む第二の増幅段は、モータ30の第二端子57の電圧スイングを増強することにより付加的な電流容量を与える。電力増幅回路46に対する値の例は、R=10kW、R2=500W、R3=9.75kW、およびR4=1Wである。勿論、回路46は、能動アクチュエータ30を駆動する電圧を増幅するために用いることができる多くの可能な回路の一例として意図されている。
図3は、受動アクチュエータと共に使用できるアクチュエータインタフェース38′の例を示す概略図である。インタフェース38′は、アナログ電圧を用いて制御される受動アクチュエータ(ダンパ)、例えば流体制御受動ダンパと共に使用できる可変ソレノイドや磁気粒子ブレーキ、と共に使用するのに適している。インタフェース38′は、DAC回路44、増幅器60、トランジスタ62、および電圧プロテクタ64を有する。DAC回路44は、マイクロプロセッサ26に結合されており、ユーザオブジェクト34に印加されるべき抵抗性力値を表すデジタル信号をコンピュータシステムから受信する。DAC回路44は、このデジタル信号電圧をアナログ電圧に変換する。この電圧は、この後、増幅器60に出力される。適切なDACは、Maxim製のMAX530ACNGや、図2を参照して上記したDAC回路44である。増幅器60は、DAC44からのアナログ電圧を正の端子で受け取り、この電圧信号をアクチュエータ30により使用可能な範囲にスケーリングする。増幅器60は、演算増幅器などとして実施できる。トランジスタ62は、増幅器60の出力に結合され、好ましくは、増幅した出力電流をアクチュエータ30に供給する増幅器として動作する。抵抗器R1が増幅器60とトランジスタ62との間に結合され、また抵抗器R2が増幅器60とグラウンドとの間に結合される。例えば、抵抗器R1とR2はそれぞれ180kΩと120kΩの値を持ち、回路中に適切なバイアスを与える。電圧プロテクタ64はトランジスタ62のエミッタに結合され、誘導性負荷を用いたとき電圧スパイクからの保護を与える。この回路と共に用いられる適切な受動アクチュエータ30は、可変ソレノイドまたは磁気粒子ブレーキを有する。インタフェース装置で実施されるアクチュエータ30の各々に対して別個のDACと増幅器が用いられ、マイクロプロセッサ26および/またはホストコンピュータシステム12は各々の所与の自由度に対して個別に各々のアクチュエータを制御することができる。インタフェース38′は、コンピュータシステムをアクチュエータにインタフェースするために用いることができる多くの可能な回路の一例として意図されている。
他の実施形態では、オン/オフ信号は、例えば流体制御アクチュエータのオン/オフ弁を駆動するソレノイドに対してしか必要とされない可能性がある。このような実施形態では、例えばトランジスタが、そのベース端子においてマイクロプロセッサ26に電気的に結合され、オン/オフアクチュエータ30におけるソレノイドの作動を制御する電気スイッチとして動作する。TTL論理信号などの力信号がトランジスタを制御するために送出され、電流がソレノイドを流れてソレノイドを作動させオブジェクト43の自由な運動を可能にするか、あるいは電流が流れないようにしてソレノイドを停止状態にし運動に抵抗を与えるようにする。
図4は、本発明の力フィードバックインタフェース装置を制御する方法70の第1の実施形態を示す流れ図である。方法70は、「ホスト制御」態様に対するものである。この態様では、ホストコンピュータシステム12がマイクロプロセッサ26にダイレクト低水準力コマンドを与え、また、マイクロプロセッサがアクチュエータ30にこれらの力コマンドを直接与えてアクチュエータにより出力された力を制御する。
例えば、このホスト制御モードは、USB通信インタフェースを用いた実施形態に適している。データレートは十分高く、ホストが500Hz以上で通信することを可能にし、ユーザオブジェクト34に現実に近い力フィードバックを与える。USBのUSB Isochronous Data Transferモードは、必要な高いデータレートを与えるのに適している。
プロセスは72から始まる。ステップ74において、ホストコンピュータシステム1およびとインタフェース装置14は、例えばユーザ作動式電源スイッチによって電源投入される。ステップ74の後、プロセス70は二つの並列(同時)プロセスに分岐する。一方のプロセスはホストコンピュータシステム12上で実施され、他方のプロセスはローカルマイクロプロセッサ26上で実施される。これらの二つのプロセスは、ステップ74から、この同時性を示す異なる方向に分岐する。
ホストコンピュータシステムプロセスでは、ステップ76が先ず実施される。ステップ76では、アプリケーションプログラムが処理され、更新される。このアプリケーションは、シミュレーション、ビデオゲーム、科学プログラム、または他のプログラムとすることができる。画像がユーザのために出力表示画面20に表示され、音声フィードバックなどの他のフィードバックが与えられるようになっていてもよい。
二つの分岐はステップ76を出て、ホストコンピュータシステム12で同時に実行される二つのプロセスがあることを示している。一つのプロセスでは、ステップ78が実施される。このステップでは、センサデータがローカルマイクロプロセッサ26からホストコンピュータにより受信される。以下に示すように、マイクロプロセッサプロセスでは、ローカルプロセッサ26はセンサ28から信号を連続的に受信し、生データを処理し、処理したセンサデータをホストコンピュータ12に送出する。あるいは、ローカルプロセッサ26は、生データを直接ホストコンピュータシステム12に送出する。本明細書で用いる「センサデータ」は、1以上の自由度でオブジェクト34の動きを検出するセンサ28から得られた位置値、速度値、および/または加速度値を含んでいてもよい。更に、インタフェース装置14上のボタンがユーザにより作動させられているということを示す信号など、他の入力装置39から受信された他のデータもステップ78においてセンサデータとしてホストコンピュータシステム12により受信される。最後に、用語「センサデータ」は、以前に記録され、速度を計算するために保存された位置値などの値の履歴を含んでいてもよい。
センサデータがステップ78で読み出された後、プロセスはステップ76に戻る。ステップ76では、ホストコンピュータシステム12は、オブジェクト34のユーザによる操作およびステップ78で受信された他のユーザ入力に応じてアプリケーションプログラムを更新し、力が並列プロセスでオブジェクト34に加えられる必要があるかどうかを判断する。ステップ78は、ローカルプロセッサ26からデータを読み取る連続ループで実施される。
ステップ76からの第二の分岐は、オブジェクト34を操作するユーザに力フィードバックを与える力コマンドを決定するホストコンピュータのプロセスに関する。これらのコマンドは、本明細書では「低水準」力コマンドとして説明され、図5の実施形態で説明される「高水準」コマンドまたは監視力コマンドと区別される。低水準力コマンドは、特定の大きさの力をアクチュエータが出力するように指令する。例えば、低水準コマンドは、通常、大きさ力値、例えばアクチュエータが所望の大きさ値の力を加えることを命令する等価な信号、を含んでいる。低水準力コマンドはまた、アクチュエータが選択された方向に力を加えることができる場合に力の方向を示し、および/またはアクチュエータにより要求される他の低水準情報を示すことができる。
第二の分岐はステップ80で始まる。このステップでは、ホストコンピュータシステムが、ユーザオブジェクト34に加えられた力の変化が要求されているかどうかをチェックする。これは幾種類かの基準により判断される。これらの基準のうちの最も重要なものは、ステップ78で読み取られたセンサデータ、タイミングデータ、およびステップ76で更新されたアプリケーションプログラムの実施または「事象」である。ステップ78で読み取られたセンサデータは、ユーザがアプリケーションプログラムと対話している方法をホストコンピュータ12に通知する。ホストコンピュータシステム12は、所定時間にわたって検出されたオブジェクト34の位置から、いつ力をオブジェクトに印加すべきかを決定する。例えば、ホストコンピュータがビデオゲームアプリケーションを実施している場合は、ゲーム内でのコンピュータ生成オブジェクトの位置によって、力フィードバックの変化が求められているかどうかを判断することができる。ユーザが模擬レースカーを制御しているときは、ユーザオブジェクトジョイスティックの位置によって、レースカーが壁の中を移動しているかどうかが判断され、これにより、衝突力をジョイスティック上に生成すべきかどうかが判断される。更に、ユーザオブジェクトの速度および/または加速度は、オブジェクトに対する力の変化が必要かどうかに影響を与える。ユーザがゲームにおいてテニスラケットを制御しているときは、特定の自由度のユーザオブジェクトジョイスティックの速度によって、テニスボールが打たれたどうかが判断され、これにより、適当な力をジョイスティックに加えるべきかどうかが判断される。更に、インタフェース装置14においてボタンまたは他の制御装置をユーザが作動させるなどといった他の入力は、それらの制御装置が如何にプログラムされてアプリケーションプログラムに影響を与えるかに応じて、オブジェクト34に要求される力を変化させることができる。
力の変化が必要かどうかを判断するための他の基準には、アプリケーションプログラム中の事象が含まれる。例えば、ゲームアプリケーションプログラムは、ユーザオブジェクト34の位置データとは無関係に、ゲーム中の他のオブジェクトがユーザにより制御されたオブジェクトと衝突しようとしていることを(恐らくランダムに)判断することができる。従って、力は、衝撃をシミュレートするこの衝突事象に依存してユーザオブジェクトに加えられるべきである。力は、このような事象とステップ78で読み取られたセンサデータとの組み合わせに依存して、ユーザオブジェクト上に要求されるようになっていてもよい。アプリケーションプログラムにおける他のパラメータは、ホストコンピュータシステム12に接続されてアプリケーションプログラムにデータを入力する他の入力装置やユーザインタフェース装置などのユーザオブジェクトに対する力の変化が必要かどうかを決定する(他のインタフェース装置は直接接続してもよいし、ネットワークなどを介して遠隔的に接続してもよい)。
ステップ80において力の変化が現在のところ要求されていないときは、プロセスはステップ76に戻ってホストアプリケーションを更新し、ステップ80に戻って、力のこのような変化が要求されるまで再度チェックを行う。このような変化が要求されると、ステップ82が実施される。このステップでは、ホストコンピュータ12は、インタフェース装置14のアクチュエータ30に送出される適切な低水準力コマンドを決定する。この力コマンドは、選択された力感覚プロセス、センサデータ、ホストアプリケーション、およびクロック18に依存する。
この低水準力コマンドは、選択された力感覚プロセスから部分的に決定することができる。本明細書で用いられる「反射プロセス(reflex process)」または「力感覚プロセス(force sensationprocess)」(「サブルーチン」とも呼ばれる)は、ステップ78で読み出されたセンサデータやクロック18からのタイミングデータ等のような他のパラメータに依存する力コマンドを与える一組の命令である。本実施形態では、力感覚プロセスは、幾つかの異なるタイプのステップおよび/または命令を含む。あるタイプの命令は、ホストコンピュータ12がセンサおよびタイミングデータに基づいて力値を計算またはモデル化するために使用できる方程式を含む力アルゴリズムである。数タイプのアルゴリズムを用いることができる。例えば、力がオブジェクト34の位置と線形に(または非線形に)変化するアルゴリズムを用いて、ばねのような疑似力を与えることができる。力がオブジェクト34の速度と共に線形に変化するアルゴリズムを用いて、疑似制動力または他の力を与えることもできる。力がオブジェクト34の加速度と共に線形に(または非線形に)変化するアルゴリズムを用いて、例えば、質量に関する疑似慣性力を与えたり(線形変化の場合)、疑似重力引張力を与える(非線形変化の場合)ことができる。このような力を計算するために用いられる数タイプの疑似力およびアルゴリズムは、スタンフォード大学デザインリサーチセンターのLouis B.Rosenbergによる「仮想剛性面接触の知覚設計(PerceptualDesign of a Virtual Rigid surface contact)」(Reportnumber AL/CF-TR-1995-0029、1993年4月)に示されている。この文献は、参照文献として本明細書に組み込まれる。
ユーザオブジェクト34の速度および加速度に依存する力値に対して、速度および加速度は多様な方法で与えることができる。ステップ78でホストコンピュータ12により読み取られたセンサデータは、位置データ、速度データ、および加速度データを含んでいる。好適な実施形態では、速度および加速度データが予めマイクロプロセッサ26により計算され、次にホストコンピュータ12に与えられる。かくして、ホストコンピュータは、力値を計算するアルゴリズムにおいて直接速度および加速度データを用いることができる。他の実施形態では、ステップ78で読み取られたセンサデータは、位置データを含み、速度または加速度データは含まず、従ってホストコンピュータ12は位置データから速度および加速度を計算する必要がある。これは、過去の位置値を多数記録し、このような位置値の各々がシステムクロック18を用いて受信された時間を記録し、このようなデータから速度および/または加速度を計算することによって実現される。
例えば、減衰定数を乗じたユーザオブジェクトの速度に基づいて力を計算する運動方程式を用いて、ユーザオブジェクトに対する制動力を計算することができる。この種の方程式は、流体や同様の材料を通過する1自由度に沿ったオブジェクト34の運動をシミュレートすることができる。例えば、液体などの疑似材料を通過して動くときにオブジェクト34が遭遇する抵抗の度合を示す減衰定数を最初に選択することができる。ここで、大きな数ほど大きな抵抗を示す。例えば、水は、オイルまたはシロップより低い減衰定数を有する。ホストコンピュータは、ユーザオブジェクト34の(特定の自由度に沿った)前の位置を呼び戻し、ユーザオブジェクトの現在の位置を調べ、更に位置の差を計算する。差の符号(負または正)から、オブジェクト34の運動の方向も決定することができる。この後、位置の変化量を乗じた減衰定数に等しくなるように力が設定される。このアルゴリズムに基づいてアクチュエータを制御したコマンドが、ユーザオブジェクトの動きに比例した力を生成して、流体を通過する運動をシミュレートする。他の媒体における動き、例えば凹凸面や傾斜面の上での動きなどは、力を計算する異なる方法を用いて同様にシミュレートする事ができる。
力コマンドの決定は、システムクロック18からアクセスされたタイミングデータにより影響を受けると好適である。例えば、上記の制動力の例では、ユーザオブジェクト34の速度は、ユーザオブジェクトの位置の差を計算し、減衰定数を乗じることにより決定される。この計算はデータ点の間に一定の時間間隔を想定している。すなわち、オブジェクト34の位置データは、ホストコンピュータ12によって規則的な所定の時間間隔で受信されると仮定されている。しかし、このようなことは、異なるコンピュータプラットフォームの異なる処理速度や、単一ホストマイクロプロセッサ16での処理変動、例えばマルチタスク、に起因して、実際に生じることはない。従って、本発明では、ホストコンピュータは、好ましくはクロック12にアクセスして、最後の位置データが受信されてからどれだけの時間が実際に経過したかを求める。制動力の例では、ホストコンピュータは、位置の差を取得することができ、またそれをある時間尺度で除算してタイミングの差を考慮することができる。このように、ホストコンピュータは、ユーザに対する力および力感覚の変調にクロックのタイミングデータを用いることができる。タイミングデータは、本発明の力感覚プロセスや他のアルゴリズムで用いることができ、プラットフォームの種類やホストコンピュータ12で利用可能な処理時間にかかわらず、反復可能で一貫した力フィードバックを与えることができる。
力感覚プロセスには、他の命令が含まれていてもよい。例えば、所望の方向にのみ力を与えたり、他の特定の状況でのみ力を与えるような条件が含まれていてもよい。例えば、壁などの仮想の障害をシミュレートするためには、力は一方向(単方向)にのみ加えられるべきである。多くの受動アクチュエータの場合、双方向の抵抗力しか加えることができない。単方向の抵抗をシミューレートするために、仮想障害力感覚プロセスに条件が含まれていてもよい。仮想障害力感覚プロセスにおけるこのような条件の例は、図12を参照して説明する。また、ホストコンピュータ12(または図5の実施形態におけるマイクロプロセッサ26)が低水準コマンドまたは力値を出してユーザオブジェクト34に対してゼロ力を与える(すなわち、全ての力を取り除く)ことを指示する「ヌル」反射プロセスも使用することができる。
他のタイプの力感覚プロセスは、力をモデル化するアルゴリズムを用いないが、代わりに、予め計算され、またはサンプリングされ、更にメモリまたは他の記憶装置にデジタル化「力プロファイル」として格納されている力値を用いる。これらの力値は、上述したように方程式またはアルゴリズムを用いて予め生成され、あるいは力をサンプリングしてデジタル化することより与えられる。例えば、ユーザに特定の力感覚を与えるため、ホストコンピュータ12は、力感覚プロセスにより命令を受けて、RAM、ROM、ハードデイスクなどの特定の記憶装置から連続した力値を取り出すことができる。これらの力値は低レベレコマンドで直接アクチュエータに送られ、ホストコンピュータ12を必要とせずに特定の力を与えることができる。更に、既に格納された力値を他のパラメータに対して出力することができ、これにより、一組の格納力値から異なるタイプの力および力感覚を与えることができる。例えば、システムクロック18を用いると、格納された力値が、所望の力に依存して変化しうる特定の時間間隔に従って順次に出力されるようにすることができる。或いは、取り出された異なる力値が、ユーザオブジェクト34の現在の位置に応じて出力されるようにすることができる。
ホストコンピュータ12は、新たに選択された反射プロセスまたは予め選択された反射プロセスに従って、ステップ82において力コマンドを決定することができる。例えば、これが2回目以降のステップ82の反復である場合、ホストアプリケーションプログラムによって決定されたように、パラメータ(オブジェクト34の位置など)が許すのであれば、前回の反復におけるものと同じ反射プロセスを再度実施することができる。
ステップ82で決定された力コマンドは、他のパラメータをチェックする命令にも依存する。これらの命令は、上記の反射プロセス内に含まれていてもよいし、反射プロセス外に含まれていてもよい。このようなパラメータの一つは、実施されたホストアプリケーションプログラム(あったとして)により与えられる値である。このアプリケーションプログラムは、特定の力コマンドを出力する必要があること、あるいはこのアプリケーションプログラムまたは他の命令内で生じる事象に基づいて反射プロセスを実施する必要があることを判断することができる。力コマンドまたは力値は、センサデータとは独立にホストアプリケーションプログラムによって与えられる。また、ホストアプリケーションプログラムは、自身の特定の位置データ、速度データ、および/または加速度データを選択反射プロセスに与え、ユーザオブジェクト34の操作には基づかないがアプリケーションプログラム中の事象をシミュレートするために与えられる力を計算または提供することができる。このような事象には、ユーザ制御コンピュータ画像が仮想面または仮想構造に衝撃を与えるときに生じるような衝突事象が含まれる。更に、ホストコンピュータ12に接続された他の入力装置は、事象に影響を与え、従ってユーザオブジェクト34に加えられる力に影響を与える。例えば、単一のホストコンピュータに接続された複数のインタフェース装置14からのセンサデータは、ホストアプリケーションプログラムのコンピュータ制御画像/オブジェクトおよび事象に影響を与えることにより、他の接続インタフェース装置で感じられる力に影響を与えることができる。
また、ステップ82で決定された力コマンドは、ホストコンピュータ12への他の入力、例えばインタフェース装置14中(またはその外部)のボタンや他の入力装置の作動、に基づいていてもよい。例えば、特定のアプリケーションプログラムは、ユーザがジョイスティックのファイヤボタンを押すときは常にジョイスティックに力が加わることを要求する。
上記の反射プロセスおよび他のパラメータを用い、ユーザオブジェクト34を介してユーザに種々の触覚を与え、多様な触覚事象をシミュレートすることができる。例えば、一般的な触覚には、仮想的な減衰(上述したもの)、仮想障害、仮想質感が含まれる。仮想障害は、シミューレーション、ゲームなどにおける壁、障害、および他の単方向力をシミュレートするために与えられる。ユーザがコンピュータ画像をジョイスティックにより仮想障害に移動させると、ユーザは、彼または彼女がその方向にジョイスティックを移動させ続けるとき物理的抵抗を感じる。ユーザがオブジェクトを障害から離れるように動かすと、単方向力が除去される。このようにして、画面上に表示された仮想障害が物理的性質を持つという説得力のある感覚がユーザに与えられる。同様に、仮想質感が用いられ、表面状態や同様の質感をシミュレートすることができる。例えば、ユーザがジョイスティックまたは軸に沿う他のユーザオブジェクトを動かすと、ホストコンピュータは、迅速な一連のコマンドを送り、反射プロセスのように、1)その軸に沿って抵抗を加え、2)次に、その軸に沿った抵抗の印加を直ちに停止することを繰り返す。この頻度はジョイスティックハンドルの移動に基づいており、従って空間位置との相関を有している。このため、ユーザは、質感という物理的感覚を感じることができる。この質感は、格子の上でスティックを引きずる感覚と説明することができる。
次のステップ84では、ステップ82において決定された低水準力コマンドがバス24を介してマイクロプロセッサ26に出力される。この力コマンドは、通常、上記のパラメータに従って決定された力値を有する。この力コマンドは、マイクロプロセッサ26によって単にアクチュエータ30に中継される実際の力信号として出力されてもよいし、あるいはアクチュエータ30に送出される前にマイクロプロセッサ26によって適当な形式に変換されてもよい。更に、低水準力コマンドは、どのアクチュエータがこの力値を受け取ることになっているかをマイクロプロセッサ26に示す情報を含んでいることが好ましい(複数のアクチュエータがインタフェース装置14に含まれている場合)。次に、本プロセスはステップ76に戻り、ホストアプロケーションプロセスを処理/更新する。このプロセスはステップ80に続き、ステップ80では、ホストコンピュータは、異なる力コマンドを上記のパラメータにより決定されたものとして出力すべきかどうかをチェックする。もしそうなら、ステップ84で新しい力コマンドが決定され、出力される。力の変化が要求されないときは、マイクロプロセッサ26が前回の力コマンドをアクチュエータ30に出力し続けることができるので、ホストコンピュータ12は、他のコマンドを発することはない(この他に、ホストコンピュータ12は、力の変化が要求されてもコマンドを出力し続けるようになっていてもよい)。ステップ84における後続の力コマンド出力は、ステップ82のパラメータに応じて、同じ反射プロセスまたは異なる反射プロセスに従って決定することができる。
更に、ホストコンピュータ12は、好ましくは、任意の適切な視覚フィードバック、聴覚フィードバック、またはホストアプリケーションに関連する他のフィードバックを、ユーザオブジェクト34への力の印加に同期させる。例えば、ビデオゲームアプリケーションでは、表示画面20上でユーザと衝突するオブジェクトなどの視覚事象の立上りまたは開始は、これらの視覚事象に対応し、あるいはこれらの視覚事象を補足するユーザによって感じられる力の立上りまたは開始に同期される必要がある。視覚事象および力事象の立上りは、互いり約30ミリ秒(ms)以内に生じることが好ましい。この時間の長さは、同時のものとして事象を知覚する人間の知覚能力の一般的な限界である。視覚事象および力事象がこの範囲外で生じるときは、通常、事象間のタイムラグが知覚される。同様に、ホストアプリケーションにおける聴覚事象の立上りに対応する聴覚信号の出力は、これらの聴覚事象に対応/補足する出力力の立上りに同期して出力される。再び、これらの事象の立上りは、互いの約30ms以内に生じることが好ましい。例えば、ホストコンピュータシステム12は、スピーカ21からの爆発音を、シミュレーションにおけるその爆発からユーザによって感じられる力に時間的にできるだけ近接して出力することができる。好ましくは、この音の大きさは、ユーザオブジェクト34により印加された力の大きさに正比例(反比例とは逆)している。例えば、シミュレーションの間、遠い(仮想)距離における爆発の低い音は、ユーザオブジェクト34に小さな力を生じさせ、大きな「近い」爆発によって大きな音がスピーカから出力され、対応する大きな力がオブジェクト34に出力されるようになっていてもよい。
ローカルマイクロプロセッサ26は、ステップ74から分岐して上記のホストコンピュータプロセスと並列にステップ86から開始するプロセスを実施する。ステップ86では、インタフェース装置14が作動状態にされる。例えば、ホストコンピュータ12とインタフェース装置14との間に信号を送出することで、インタフェース装置が現在アクティブであることを知らせてもよい。ステップ86から、二つのプロセスが分岐して、ローカルプロセッサ26上で同時に実行される(マルチタスクする)二つのプロセスが存在することを示す。一つのプロセスでは、ステップ88が実施され、プロセッサ26がセンサ28から生データ(センサの読み取り値)を読み取る。このような生データは、好ましくは所与の自由度に沿ってユーザオブジェクトの位置を記述する位置の値を含んでいる。好適な実施形態では、センサ28は相対センサであり、この相対センサは、最後の位置が読み取られてからの位置の変化を記述する位置値を与える。プロセッサ26は指示された基準位置からの相対位置を測定することにより絶対位置を決定することができる。他の実施形態では、センサ28は、オブジェクト34の生の速度値および加速度値を与える速度センサおよび加速度計を有していてもよい。ステップ88で読み出された生データは、インタフェース装置14の作動ボタンや他の制御装置39からの入力など、他の入力を有していてもよい。
次のステップ90では、プロセッサ26は、適当であれば、受信された生データを処理してセンサデータにする。好適な実施形態では、この処理は二つのステップを含む。すなわち、生位置データからの速度値および/または加速度値を計算するステップ(速度および/または加速度が力を計算するのに必要とされるとき)と、計算された速度および加速度データを濾波するステップと、を含んでいる。速度値および加速度値は、ステップ88で受信された生位置データならびに格納された位置値および時間値から計算される。好ましくは、プロセッサ26は、一連の位置値と、位置値が受信された時点に対応する時間値と、を格納する。プロセッサ26は、自身のシステムクロックまたはローカルシステムクロック(図1には図示せず)を用いてタイミングデータを求める。速度と加速度は、当業者には周知のように、格納された位置データとタイミングデータを用いて計算される。次に、計算された速度値および/または加速度値を濾波して、データからノイズ、例えば速度計算においてオブジェクト34の位置の急速な変化から生じることのある大きなスパイク、を除去することができる。このように、本実施形態におけるセンサデータは、位置、速度、加速度、およびその他の入力データを含んでいる。他の実施形態では、プロセッサ26に電気的に結合されるがプロセッサ26から分離した回路が生データを受信し、速度および加速度を決定することができる。例えば、特定用途集積回路(ASIC)やディスクリートな論理回路は、カウンタなどを用いて速度と加速度を決定し、マイクロプロセッサ26上での処理時間を節約することができる。
この他に、ステップ90を省略し、プロセッサ26が生位置データ(および他の入力装置39からの他の入力データ)をホストコンピュータ12に供給するようになっていてもよい。これにより、ホストコンピュータ12が位置データから速度および加速度を濾波して計算することが必要となる。このように、プロセッサ26がこの処理を実行してホストコンピュータ12で行われる処理の量を減少させことが好適である。他の実施形態では、濾波がホストコンピュータ12で行われ、速度および加速度計算はプロセッサ26で行われる。更に、速度および/または加速度センサを用いて生の速度および加速度データを与える実施形態では、速度および/または加速度の計算は省略できる。ステップ90の後、ステップ91が実施される。このステップでは、プロセッサ26は、処理されたセンサデータをバス24を介してホストコンピュータ12に送出する。次に、プロセスはステップ88に戻り、生データを読み取る。ステップ88、90および91はこのように連続して実施され、現在のセンサデータをホストコンピュータシステム12に与える。
ステップ86からの第二の分岐は、アクチュエータ30を制御して、ホストコンピュータ12により計算された力をオブジェクト34に与えるプロセッサ26に関係する。第二の分岐はステップ92から開始し、このステップでは、低水準力コマンドがバス24を介してホストコンピュータ12から受信されたか否かをプロセッサ26がチェックする。受信されていない場合、プロセスはこのような力コマンドを連続的にチェックする。力コマンドが受信された場合は、ステップ94が実施される。このステップでは、プロセッサ26が低水準プロセッサ力コマンドを指定されたアクチュエータに出力し、出力力を所望の大きさ、方向などに設定する。この力コマンドは、ホストコンピュータからの受信低水準コマンドと同等であってもよいし、あるいは、プロセッサ26が任意選択的に力コマンドをアクチュエータ30により使用可能な適当な形態に変換してもよい(あるいは、アクチュエータインタフェース38がこのような変換を行ってもよい)。次に、プロセスはステップ92に戻り、ホストコンピュータ12からの他の力コマンドをチェックする。
図5は、本発明の力フィードバックインタフェース装置14を制御する方法100の第2の実施形態を示す流れ図である。方法100は「反射」形態に対するものである。この形態では、ホストコンピュータシステム12は、マイクリプロセッサ26に高水準監視力コマンド(「ホストコマンド」)しか与えず、マイクロプロセッサ26は、独立した「反射」として低水準力コマンド(力値)をアクチュエータ30に与えて、アクチュエータによる力出力を制御する。
図5のプロセスは、標準RS−232シリアルインタフェースなどの低速通信インタフェースに適している。しかしながら、図5の実施形態は、ローカルマイクロプロセッサがホストプロセッサ16からの計算負荷を解放するので、USBなどの高速通信インタフェースにも適している。更に、この実施形態は、直送コマンドプロトコルを与えることができる。その例は図9および14を参照して説明するが、これにより、ソフトウェア開発者がホストアプリケーションにおいて容易に力フィードバックを与えることが可能になる。この実施形態では、例えば、より遅いUSBの「割込みデータ転送」モードを用いることができる。
このプロセスは102から始まる。ステップ104では、ホストコンピュータシステム12とインタフェース装置14が、例えばユーザ作動電源スイッチによって電源投入される。ステップ104の後、プロセス100は二つの並列プロセスに分岐する。一方のプロセスはホストコンピュータシステム12で実施され、他方のプロセスはローカルマイクロプロセッサ26で実施される。
ホストコンピュータシステムプロセスでは、ステップ106が初めに実施され、そこでアプリケーションプログラムが処理される。このアプリケーションは、シミュレーション、ビデオゲーム、科学プログラム、または他のプログラムであってもよい。画像を出力表示画面20上に表示してもよく、また音声フィードバックなどの他のフィードバックを提供してもよい。
二つの分岐がステップ106を出て、ホストコンピュータシステム12上で同時に走る(マルチタスクなど)二つのプロセスが存在することを示している。一方のプロセスでは、ステップ108が実施される。このステップでは、ユーザオブジェクトからのセンサデータがローカルマイクロプロセッサ26からホストコンピュータによって受信される。図4のプロセスのステップ78と同様に、ホストコンピュータシステム12は、生データ(例えば位置データであり、速度または加速度データは含まない)か処理済センサデータ(位置、速度および/または加速度データ)のいずれかをマイクロプロセッサ26から受信する。更に、他の入力装置39から受信された任意の他のデータ、例えばインタフェース装置14のボタンがユーザによって押されていることを示す信号、も、ステップ108においてマイクロプロセッサ26からホストコンピュータシステム12によって受信することができる。
図4の前の実施形態とは異なり、ホストコンピュータは、ステップ108において受信されたセンサデータから力値を計算することはない。代わりに、ホストコンピュータ12は、センサデータを監視して、力のタイプの変更が必要となる時点を決定する。これは以下で更に詳細に説明される。勿論、ホストコンピュータ12は、ホストアプリケーションに対する入力としてセンサデータを用い、これに従ってホストアプリケーションを更新することも行う。
ステップ108でセンサデータが受信された後、プロセスはステップ106に戻る。このステップでは、ホストコンピュータシステム12は、オブジェクト34のユーザの操作およびステップ108で受信された他のユーザ入力に応じてアプリケーションプログラムを更新することができる。次に、ローカルプロセッサ26からセンサデータセットを受信する連続ループにおいてステップ108が再び実施される。ホストコンピュータはセンサデータに基づいて直接アクチュエータを制御する必要がないので、センサデータははるかに遅い速度で与えることができる。例えば、ホストコンピュータは、センサデータに応じて表示画面20上の画像とホストアプリケーションを更新するので、センサデータは、センサ信号から低水準力フィードバック信号を現実的に供給するのに必要な約500〜1000Hz(またはそれ以上)というはるかに高い速度に比べて、60〜70Hz(通常の表示画面のリフレッシュサイクル)で読み出すことしか必要としない。また、ホストコンピュータ12は、図4を参照して上記したものと同様に、視覚事象、音声事象および力事象に同期していることが好ましい。
ステップ106からの第二の分岐は、オブジェクト34を操作してユーザに力フィードバックを与える高水準力コマンド(「ホストコマンド」)を決定するホストコンピュータのプロセスに関係する。この第二分岐はステップ110で開始する。このステップでは、ホストコンピュータシステムが、ユーザオブジェクト34に加えられる力のタイプの変更が必要かどうかをチェックする。力の「タイプ」は、特定の反射プロセスにより生成された力感覚もしくはプロファイル、またはローカルマイクロプロセッサ26がホストコンピュータとは独立に実現することができる力値である。ホストコンピュータ12は、ステップ108においてホストコンピュータにより読み取られたセンサデータに依存し、またステップ106において更新されたアプリケーションプログラムの事象に依存して、力のタイプの変更が必要がどうかを判断する。図4を参照して説明したように、センサデータは、オブジェクトの現在の位置、速度、および/または加速度に基づいてオブジェクトに力を加えるべき時点をホストコンピュータに通知する。ユーザによるオブジェクト34の操作により、新しいタイプの力が必要となる場合がある。例えば、ユーザがビデオゲームにおいて仮想の泥のプール内で仮想レースカーを操作している場合、レースカーが泥の中で走行している限りは減衰タイプの力がオブジェクト34に印加されるべきである。このように、制動力がオブジェクトに連続的に印加される必要はあるが、力のタイプの変更は必要とされない。レースカーが泥のプールから抜けて移動すると、新しいタイプの力(すなわち、この場合では制動力の除去)が必要となる。アプリケーションプログラムの事象も、印加される力のタイプの変更を要求する。例えば、ユーザの車が泥を通って移動し、他の車がユーザの車に衝突するときは、新しいタイプの力(衝突力)がユーザオブジェクトに加えられるべきである。ステップ108で読み出されたセンサデータとアプリケーション事象との組み合わせに依存した力がユーザオブジェクトに必要とされる場合がある。また、他の入力、例えばインタフェース装置14のボタンや他の入力装置39をユーザが作動させること、により、オブジェクト34に対して必要とされる力のタイプを変えることがある。
力のタイプの変更がステップ110において現在必要でないときは、プロセスはステップ106に戻り、ホストアプリケーションを更新し、更にステップ110に戻って、このような力のタイプの変更が必要になるまでチェックを行う。このような変更が必要になると、ステップ112が実施される。このステップでは、ホストコンピュータ12が、マイクロプロセッサ26に送出する適当なホストコマンドを決定する。ホストコンピュータ12が利用可能なホストコマンドは、マイクロプロセッサ26により実施される関連反射プロセスにそれぞれ対応する。例えば、制動力、ばね力、重力引力、凹凸表面力、仮想障害力、および他の力を与えるホストコマンドをホストコンピュータ12が利用できるようにしてもよい。これらのホストコマンドは、オブジェクト34にこの所望の力を印加する特定のアクチュエータ30や自由度の指定も含んでいてもよい。これらのホストコマンドは、特定の反射プロセスにより生成される力を変える他のコマンドパラメータ情報を含んでいてもよい。例えば、所望の量の制動力を指示するホストコマンドに減衰定数が含まれていてもよい。また、ホストコマンドは、好ましくはプロセッサ26の反射動作を無効にし、低水準力値を有していてもよい。好適なコマンドプロトコルおよび一組のホストコマンドは、図9および図14を参照して詳細に説明される。次のステップ114では、ホストコンピュータは、バス24を介してマイクロプロセッサ26にホストコマンドを送出する。次に、このプロセスはステップ106に戻り、ホストアプリケーションを更新し、更にステップ110に戻り、力の他の変化が必要かどうかをチェックする。
ローカルマイクロプロセッサ26は、ステップ104から分岐して上記ホストコンピュータプロセスと並列にステップ116から開始するプロセスを実施する。ステップ116では、インタフェース14が作動状態にされる。例えば、ホストコンピュータ12とインタフェース装置14との間に信号を送ることで、インタフェース装置が現在アクティブであり、ホストコンピュータ12により指令を受けることができる状態になっていることを知らせてもよい。ステップ116から、二つのプロセスが分岐して、ローカルプロセッサ26上で同時に実行される(マルチタスクする)二つのプロセスが存在することを示す。一つのプロセスでは、ステップ118が実施され、プロセッサ26がセンサ28から生データを読み取る。図4のステップ88で述べたように、プロセッサ26は、センサ28から位置データを読み取り、速度または加速度データは読み取らないことが好ましい。他の実施形態では、センサ28は、オブジェクト34の速度値および加速度値を与える速度センサおよび加速度計を有していてもよい。ステップ118で読み出されたセンサデータは、インタフェース装置14の作動ボタンや他の制御装置39からの入力など、他の入力を有していてもよい。
次のステップ120では、プロセッサ26は、受信された生データを処理してセンサデータにする。図4のステップ90に示したように、この処理は、濾波された位置データから速度および加速度データを計算するステップと、速度および加速度データを濾波するステップと、からなる二つのステップを有していることが好ましい。プロセッサ26は、自身のローカルクロック21を使用して速度および加速度を計算するために必要なタイミングデータを求めることができる。更に、前の記録値、例えば位置値や速度値、の履歴を用いてセンサデータを計算することもできる。速度および/または加速度センサが用いられる実施形態では、速度および/または加速度の計算は省略される。次のステップ121では、プロセッサ26が処理済センサデータをホストコンピュータ12に送出し、また、プロセッサ26の第二の分岐プロセスに示されるように、力を計算するためのデータを格納する。次に、プロセスはステップ118に戻り、生データを読み取る。こうして、ステップ118、120および121が連続的に実施され、プロセッサ26およびホストコンピュータ12に現在のセンサデータが与えられる。
ステップ116からの第二の分岐は、「アクチュエータプロセス」に関する。このプロセスでは、プロセッサ26がアクチュエータ30を制御して、オブジェクト34に力を与える。第二の分岐はステップ122から開始する。このステップでは、プロセッサ26は、ホストコマンドがバス24を介してホストコンピュータ12から受信されているかどうかをチェックする。受信されている場合、プロセスはステップ124に続き、ホストコマンドに伴う反射プロセスが選択される。このような反射プロセスは、、マイクロプロセッサ26に対してローカルに、RAMやROMなど(あるいはEPROM、EEPROMなど)のメモリ27内に格納される。このようにマイクロプロセッサは、この反射プロセスからの制動力がオブジェクト34に加えられるべきことを高水準コマンドが示したときに、減衰反射プロセスを選択することができる。使用可能な反射プロセスは、図4を参照して上述したものと同様のものであることが好ましく、アルゴリズム、格納された力プロファイルや値、条件などを含んでいてもよい。一部の実施形態では、センサデータを読み取るステップ118、120、および121がマイクロプロセッサ用の反射プロセスに組み込まれていて、反射プロセスが選択されるとセンサデータがの読み出しだけが行われるようになっていてもよい。また、ホストコマンドは、幾つかの場合には、単にアクチュエータ30に送出されるべき力値を与える低水準力コマンドであってもよく(例えば図4の実施形態)、この場合、反射プロセスを選択する必要はない。
反射プロセスがステップ124で選択された後、或いは新しいホストコマンドがステップ122で受信されていない場合は、ステップ126が実施される。このステップでは、プロセッサ26は、プロセッサ低水準力コマンド(すなわち、力値)を決定する。この力値は、反射プロセスおよび反射プロセスにより要求される他の任意のデータ、ならびに関連ホストコマンドに含まれるコマンドパラメータから導出される。上記のように、必要なデータには、センサデータおよび/またはローカルクロック29からのタイミングデータが含まれていてもよい。このように、ステップ122で新しい高水準コマンドが受信されなかったときは、マイクロプロセッサ26は、ステップ126で前に使用していた同じ反射プロセスに従って力コマンドを決定する。更に、ホストコマンドは力コマンドを決定するのに必要な他のコマンドパラメータ情報を含んでいてもよい。例えば、ホストコマンドは、自由度に沿った力の方向を示してもよい。
ステップ128では、プロセッサ26は、決定したプロセッサ力コマンドをアクチュエータ30に出力し、この出力力を所望のレベルに設定する。力コマンドを送出する前に、プロセッサ26は、力コマンドを、アクチュエータ30により使用可能な適切な形態に任意選択的に変換することができ、あるいはアクチュエータインタフェース38がこのような変換を行うことができる。次に、プロセスはステップ122に戻り、他のホストコマンドがホストコンピュータ12から受信されているかをチェックする。
このようにして、マイクロプロセッサ26のアクチュエータプロセスは(ステップ118、120、122、124、126、および128)は、選択された反射プロセスおよび他のパラメータに従って、オブジェクト34に作用する力をホストコンピュータ12とは独立に提供するように動作する。反射プロセスは、マイクロプロセッサ26により読み取られた最近のセンサデータに基づいてプロセッサ力コマンドを決定する方法を決める。反射プロセスは、ユーザオブジェクト34の位置および他のパラメータに応じて力を印加する方法を示すので、プロセッサは、低水準力コマンドを発行し、ホストコンピュータを解放してホストアプリケーションを処理し、新しいタイプの力を出力する必要がある時点のみを決定することができる。これにより、ホストコンピュータ12とインタフェース装置14との間の通信速度が改善される。
更に、ホストコンピュータ12は、マイクロプロセッサ26の反射動作を無効にし、図4を参照して上述したように、計算された値や他の力値を直接与える能力を有している。例えば、ホストコマンドは、アクチュエータ30に送出すべき力値を単に示すことができる。このオーバライドモードは、反射プロセスとしても実施できる。例えば、マイクロプロセッサ26は、ホストコンピュータ12から受信された低水準力コマンドのアクチュエータ30への中継をマイクロプロセッサに命令する反射プロセスを選択することができる。
図6は、2以上の回転自由度をオブジェクト34に与えるジンバル機構140に結合されたユーザオブジェクト34の例の概略図である。ジンバル機構140は、インタフェース装置14に結合されていてもよく、あるいはインタフェース装置14の他の構成要素から個別にセンサ28およびアクチュエータ30がジンバル機構140取り付けられていてもよい。
ジンバル機構140は、接地面142によって支持することができる。この面は、例えばインタフェース装置14のハウジングの表面(部材144の一部として概略図示)とすることができる。ジンバル機構140は、接地部材144、延長部材146aおよび146b、ならびに中心部材148aおよひ148bを含む5部材リンケージである。接地部材144は、機構140に対して安定性を与える面またはベースに結合される。ジンバル機構140の部材は、軸受またはピボットを用いて回転自在に相互に結合されている。ここで、延長部材146は、回転自在に接地部材144に結合されていて軸線Aのまわりを回転することができ、中心部材148aは、回転自在に延長部材146aに結合されていて浮動軸線Dのまわりを回転することができ、延長部材146bは、回転自在に接地部材144に結合されていて軸線Bのまわりを回転することができ、中心部材148bは、延長部材146bに結合されていて浮動軸線Eのまわりを回転することができ、中心部材148aは、軸線DとEとが交わる中心点Pで回転自在に中心部材148bに結合されている。軸線DとEは、これらが軸線AやBのように一つの位置に固定されないという意味で「浮動」である。軸線AおよびBは、実質的に互いに直交している。
ジンバル機構140は、5個の部材の閉じた鎖として形成されている。一つの部材の各々の端部は、他の部材の端部に結合されている。5部材リンケージは、延長部材146a、中心部材148a、およひ中心部材148bが第1の自由度において軸線Aのまわりを回転できるように配置されている。また、このリンケージは、延長部材146b、中心部材148b、および中心部材148aが第2の自由度において軸線Bのまわりを回転できるように配置されている。
ユーザオブジェクト34は、直線状軸部材150に結合させることができる物理的物体であり、或いは直線状軸部材150をオブジェクト34の一部として考えることができる。直線状部材150は、軸線DとEの交差点Pにおいて中心部材148aおよび中心部材148bに結合される。直線状軸部材150は、軸線Dおよび軸線Eによって定められる面から延出するようにジンバル機構140に結合される。直線状軸部材150は、矢印線151として示したように、第1の回転自由度において延長部材146a、中心部材148a、および中心部材148bを回転させることにより軸線A(とE)のまわりを回転することができる。部材150はまた、矢印線152により示されるように、第2の回転自由度において延長部材50bおよび二つの中心部材を軸線Bを中心として回転させることにより、軸線B(とD)のまわりを回転することができる。他の実施形態では、直線状軸部材は、中心部材148aおよび148bの端部に並進自在に結合され、これにより浮動軸線Cに沿って直線的に動かすことができ、矢印153により示されるような第3の自由度を与える。勿論、軸線Cは、部材150がこれらの軸線のまわりを回転するのに伴って、軸線AおよびBの一方または双方のまわりを回転することができる。更に、幾つかの実施形態における直線状部材150は、矢印155により示されるように、軸線Cのまわりを回転して追加の自由度を与えることができる。プロセッサ26/ホストコンピュータ12がオブジェクト34の位置/運動を読み取り、上記の自由度で力を印加できるようにするために、これらの追加自由度もセンサおよびアクチュエータを与えることができる。
センサ28およびアクチュエータ30は、装置の部材間のリンク点でジンバル機構140に結合させることができ、上述のようにして入力および出力を与える。例えば、センサおよびアクチュエータを延長部材146aおよび146bに結合させることができる。
ユーザオブジェクト34は、機構140に結合される。ユーザオブジェクト44は、ジンバル機構140と直線状軸部材150により与えられる両自由度(または、3または4の全自由度)で動かすことができる。オブジェクト34が軸線Aのまわりを移動するのに伴って、浮動軸線がその位置を変え、オブジェクト34が軸線Bのまわりを移動するのに伴って、浮動軸線Eがその位置を変える。
図7は、ジンバル機構140およびインタフェース装置14の他の構成要素を含み、機械的入力および出力をホストコンピュータシステム12に与える装置160の特定の実施形態の斜視図である。装置160は、ジンバル機構140、センサ141およびアクチュエータ143を有している。ユーザオブジェクト34は、この実施形態ではグリップ部162を有するジョイスティックとして示されており、中心部材148aに結合されている。装置160は、図6を参照して説明したジンバル機構140とほぼ同じ方式で動作する。
ジンバル機構140は、テーブル面や同様の面などの接地面142上に装置160を支持する。ジンバル機構140の部材および継手(「軸受」)は、好ましくはアルミニウムなどの軽量、剛性な金属で形成されるが、他の金属、プラステイックなどの他の剛性材料から形成されていてもよい。ジンバル機構140は、研磨部材144、キャプスタン駆動機構164、延長部材146aおよび146b、中心駆動部材148a、および中心リンク部材148bを有する。研磨部材144は、ベース部材166と垂直支持部材168を有する。ベース部材166は、接地面142に結合されている。垂直支持部材168は、垂直部材168が互いに対してほぼ90度をなすようにベース部材166の外面の各々に結合される。
キャプスタン駆動機構164は、各垂直部材168に結合されていることが好ましい。キャプスタン駆動機構164は、摩擦やバックラッシをシステムに導入することなく機械的な利点を与えるために、ジンバル機構140内に含まれている。
延長部材146aは、キャプスタンドラム170にしっかりと結合され、キャプスタンドラム170の回転に従って軸Aのまわりを回転する。同様に、延長部材146bは、別のキャプスタンドラム170にしっかりと結合され、軸Bのまわりを回転できるようになっている。中心駆動部材148aは、延長部材146aに回転自在に結合され、中心リンク部材148bは、延長部材146bの端部に回転自在に結合されている。中心駆動部材148aおよび中心連結部材148bは、軸線Aと軸線Bの交差点Pである、ジンバル機構の回転の中心において相互に回転自在に結合されている。軸受172は、2つの中心部材148aおよび148bを交差点Pで連結させる。
ジンバル機構140は、回転の中心点P、またはその付近に配置されたオブジェクト34に2自由度を与える。点Pに位置するオブジェクトまたは点Pに結合されたオブジェクトは、軸線AおよびBのまわりを回転することができ、あるいはこれらの軸のまわりの回転運動の組合せを有することができる。他の実施形態では、オブジェクト34を、他の自由度、例えば軸線Cに沿った線形自由度や軸線Cのまわりの回転自由度、で回転させたり変換することができる。
装置160とマイクロプロセッサ26との間に入力信号および出力信号を提供するため、センサ141およびアクチュエータ143は、ジンバル機構140に結合されていることが好ましい。ここで説明する実施形態では、センサ141とアクチュエータ143とが、接地トランスジューサ174と同じハウジング内で結合される。トランスジューサ174aおよび174bは、光学エンコーダセンサ141およびアクティブ直流サーボモータ143を備えた双方向トランスジューサであることが好ましい。受動アクチュエータも使用することができる。各接地トランスジューサ174aのハウジングは、垂直支持部材168に連結されていることが好ましい。また、このハウジングは、力を付与するか、さもなければ軸線Aのまわりの第1回転自由度に影響を与えるアクチュエータ143と、オブジェクト34の位置を測定するか、さもなければ軸線Aのまわりの第1自由度によって影響を受けるセンサ141の双方を含んでいることが好ましい。アクチュエータの回転軸174aは、キャプスタン駆動機構164の滑車に連結され、第1自由度に沿って入出力を伝達する。接地トランスジューサ174bは、機能および動作が接地トランスジューサ174aと一致していることが好ましい。トランスジューサ174bは、他の垂直支持部材168に結合され、軸線Bのまわりの第2回転自由度に影響を与えるアクチュエータか、軸線Bのまわりの第2回転自由度より影響を受けるセンサとなる。
ここで説明する実施形態のトランスジューサ174aおよびトランスジューサ174bは、ユーザが取り扱うオブジェクト34に非常に低い量の慣性を与えるのに都合が良いように配置される。トランスジューサ174aおよびトランスジューサ174bは減結合され、これにより、これらのトランスジューサは両方とも、接地面142に結合された接地部材144に直接結合される。すなわち、この接地面は、ユーザが取り扱うオブジェクト34ではなく、トランスジューサの重量を支えている。トランスジューサ174aおよびトランスジューサ174bの重量と慣性は、ユーザが取り扱って動かすオブジェクト34にとっては実質上無視することができる。これにより、より現実に近いインタフェースが仮想現実システムに提供される。これは、コンピュータがトランスジューサを制御することで、これらの動きの程度内でユーザが感じる力の実質的にすべてを与えることができるからである。装置160は高帯域幅力フィードバックシステムであり、これにより、トランスジューサ174の制御のために高周波信号を使用することができ、これらの高周波信号が、高い精度、確度、信頼性でユーザオブジェクトに与えられるようになる。高い帯域幅のために、ユーザは、オブジェクト34を扱うときにコンプライアンスまたは「ムッシネス(mushiness)」をほとんど感じることがない。対照的に、典型的な従来の技術による多自由度インタフェース装置では、あるアクチュエータが、リンクおよびアクチュエータのシリアルチェーンにおいて別のアクチュエータの上に「乗る」。この低帯域幅装置を使用すると、ユーザは、オブジェクトを操作するときに、結合されたアクチュエータの慣性を感じることになる。
オブジェクト34は、図3では、ユーザが握るためのグリップ部分126を備えるジョイスティックとして示されている。ユーザは、ジョイスティックを軸線Aおよび軸線Bのまわりで動かすことができる。このような二つの自由度での動きは、プロセッサ26およびホストコンピュータシステム12により検出される。さまざまな触覚をシミュレートするためには、これらの二つ自由度で力を加えることができるようになっていることが好ましい。前述のように、他のオブジェクト34をジンバル機構140に任意選択的に結合することもできる。例えば、医療処置をシミュレーションするために、腹腔鏡ツールやカテーテルなどの医療機器を使用することができる。
図8は、インタフェース装置14と共に使用することができるオブジェクト34および支持機構180の異なる実施形態の斜視図である。機構180は、当業者に周知のジョイスティックコントローラと共に使用するためのスロット付きヨーク構成を含んでいる。機構180は、スロット付きヨーク182a、スロット付きヨーク182b、センサ184aおよび184b、軸受186aおよび186b、アクチュエータ188aおよび188b、ならびにジョイスティック34を有している。スロット付きヨーク182aは、ヨークの一方の端部がこのヨークを貫通して延びるシャフト189aにしっかりと結合されるとともに、センサ184aにしっかりと結合されている。スロット付きヨーク182aは、ヨークの他方の端部がシャフト189cにしっかりと結合されるとともに、軸受186aにしっかりと結合されている。スロット付きヨーク182aは軸Lのまわりを回転することができ、この動きはセンサ184aによって検出される。アクチュエータ188aは、能動または受動アクチュエータとすることができる。他の実施形態では、軸受186aは、センサ184aのような別のセンサとして実現される。
同様に、スロット付きヨーク182bは、一方の端部がシャフト189bおよびセンサ184bにしっかりと結合され、他方の端部がシャフト189dおよび軸受186bにしっかりと結合されている。ヨーク182bは、軸線Mのまわりを回転することができ、この動きはセンサ184bにより検出することができる。
オブジェクト34は、一方の端部192が接地面190に軸着されており、他方の端部194が、2自由度内で面190の上を通常4つの90度方向(および他の実施形態では更に別の方向)に動くことができるようになっている。ジョイスティック34は、ヨーク182aおよび182b内のスロット196および198をそれぞれ貫通して延びている。このため、ジョイスティック34が任意の方向で動かされるのに従って、ヨーク182aおよび182bはジョイスティックに追従し、軸線Lおよび軸線Mのまわりを回転する。センサ184a〜dはこの回転を検出するので、ジョイスティック34の動きを追跡することができる。アクチュエータ188aおよび188bを使用することにより、ユーザは、ジョイスティック34を扱うときに力フィードバックを体験できるようになる。この他に、他の種類のオブジェクト34をジョイスティックの代わりに使用したり、追加オブジェクトをジョイスティックに結合させることも可能である。さらに別の実施形態では、追加自由度をジョイスティック34に与えてもよい。例えば、ジョイスティックには、矢印193によって示されるように、軸線Kのまわりでの回転自由度を与えることができる。このような追加自由度のためのセンサおよび/またはアクチュエータが含まれていてもよい。
他の実施形態では、追加の力をジョイスティック34に与えるために、アクチュエータをシャフト189cおよび189dに結合させてもよい。アクチュエータ188aおよびシャフト189cに結合されたアクチュエータは、マイクロプロセッサ26またはホストコンピュータ12により同時に制御することができ、ベール182aに力をかけたり、ベイル182aから力を解放することができる。同様に、アクチュエータ188bおよびシャフト189dに結合されたアクチュエータも、同時に制御することができる。
インタフェース機器やトランスジューサの他の実施形態をインタフェース装置14内で用いて、ユーザオブジェクト34に機械的な入力/出力を与えることもできる。例えば、1〜3(または4以上の)の線形自由度をユーザオブジェクト34に与えるインタフェース機器を使用することができる。さらに、異なるリフレクトプロセスを実施するために、所定量の「遊び」を有する受動アクチュエータを設けることもできる。
図9は、図5の実施形態で使用することができる多数の好適なホストコマンドを示す図表300である。図5の実施形態では、ホストコンピュータ12が、ローカルマイクロプロセッサ26に高水準ホストコマンドを送る。このマイクロプロセッサは、ホストコマンドに従って、ローカルリフレクトプロセスまたはリフレクトプロセスを実施する。前述したように、バス24での低い通信速度(図1)によって、性能、具体的には力フィードバックの正確さやリアリズム、が妨げられる場合がある。ローカルマイクロプロセッサは、ホストコンピュータとは関係なくホストコマンドに基づいてリフレクトプロセスを実施できるため、バス24を介して伝達する必要のある信号が減少する。好ましくは、ホストプロセッサ16からローカルプロセッサ26へのホストコマンドの転送のために、通信言語、すなわち力フィードバックプロトコルを標準化する必要がある。理想的には、図5を参照して説明したように、このフォーマットが、図5のステップ114のように、高水準監督コマンド(ホストコマンド)のローカルプロセッサ26への効率的な伝送を可能にする。ひとそろいの力に変換される比較的小さな一組のコマンドおよびコマンドパラメータを与えることによって、このフォーマットは、計算の負担をホストコンピュータからローカルマイクロプロセッサ26に更に移行させる。さらに、ホストコンピュータ12用の力フィ ードバックアプリケーションソフトウェアのプログラマや開発者には、高水準で標準的、効率的な力フィードバックコマンドプロトコルが与えられる。
ある実施形態では、ホストコマンドは、アクチュエータ30を制御するために、マイクロプロセッサ26によって実現される多様な力モデルに対して総称的なコマンドパラメータを含むことが許されている。例えば、力の大きさおよび力の方向は、二つの総称コマンドパラメータである。力の持続期間、すなわち力モデル適用時間は、別の総称コマンドパラメータである。ボタンなどの他の入力装置39に対してコマンドパラメータを更に定義することが有利である場合もある。ボタンは、作動状態にされると、様々な力や力モデルをトリガすることができる。
好適な実施形態には、力フィードバックインタフェース装置14用の動作の二つの主要なモードまたは「制御パラダイム」が含まれる。すなわち、レート制御および位置制御が含まれている。これらのモードは、コマンドパラメータによってパラメータ化されるホストコマンド用の分類体系を暗黙に定義している。ユーザがアプリケーションと対話している間のレート制御と位置制御との差は、一般に、ユーザにとってわずかなものであるが、力フィードバック情報を表すときには差が大きくなる可能性がある。ある種の力フィードバックエンティティは両方の制御モードで実現することができるが、力フィードバックコマンドを2つのセットに分類することがプログラマ間の混乱を回避するために役立つ場合がある。これらのコマンドの一部は、レート制御コマンドまたは位置制御コマンドのどちらかとして使用することができる。
本発明に係る好適な力フィードバックコマンドを以下に説明する。レート制御力フィードバックコマンドをまず最初に説明し、その後に位置制御コマンドを説明する。もちろん、それ以外の力フィードバックコマンドも、以下のサンプル力フィードバックコマンドに加えて、または以下のサンプル力フィードバックコマンドの代わりに、構築することが可能である。
レート制御とは、1以上の与えられた自由度に沿ったユーザオブジェクト34の変位が、制御下のコンピュータシミュレートエンティティ、例えば、飛行機、レーシングカー、または他のシミュレート「プレーヤ」もしくはプレーヤ制御制御グラフィカルオブジェクト、の動きに抽象的にマップされるユーザオブジェクトマッピングを指す。オブジェクトの動きとシミュレートコンピュータエンティティの指令された動きとの間に直接的で物理的なマッピングが存在しないため、レート制御は、力フィードバックをより直感的でないものにする抽象作用である。それにもかかわらず、多くの興味深い力フィードバック感覚をレート制御パラダイム内で実現することができる。対照的に、位置制御は、ジョイスティックハンドルまたはユーザが操作可能な他のオブジェクトの変位がシミュレートコンピュータエンティティの変位を直接示すことにより、ジョイスティックの変位とコンピュータの変位との間に基本的な関係が存在するようなユーザオブジェクトマッピングを指す。このように、大部分のレート制御パラダイムは、ユーザオブジェクト(ジョイスティック)を指定された位置に安定に保持できる一方で、制御下のシミュレートエンティティは指令された所与の速度で動くのに対し、位置制御パラダイムは、ユーザオブジェクトが動いている場合に制御下のエンティティが動くことしか許さないという点で、両者は根本的に異なる。位置制御ホストコマンドは、図14を参照して以下で詳細に説明するが、レート制御コマンドは、図9を参照して現在説明されている。
例えば、一般的な形式のレート制御は、速度導出抽象化である。この抽象化では、ジョイスティックハンドルのようなユーザオブジェクトの変位が、シミュレーション環境において、シミュレートコンピュータエンティティ、例えば表示画面20に表示される乗り物やその他のグラフィカルオブジェクト、の速度を表す。ジョイスティックハンドルの元の位置からの移動が大きいほど、操縦される乗り物またはプレーヤ制御グラフィカルオブジェクトの速度も速くなる。このようなパラダイムは、宇宙船やレーシングカーの速度がジョイスティックの変位により表されるコンピュータゲームでは極めて一般的である。大部分のレート制御パラダイムと同様に、速度制御は、ジョイスティックを指定された位置に安定して保持する一方で、制御下のエンティティが指令された所与の速度で動くことを可能にする。コンピュータゲームで使用される一般的な他のレート制御パラダイムは、加速制御である。加速制御されたパラダイムは、当業者に「スラスト」制御と呼ばれる。速度制御は制御下のエンティティの速度を指示するが、スラスト制御は速度の変化率を指示する。スラスト制御下では、ジョイスティックを静止させ、ゼロ変位で中心に配置することができるが、指令を受けるコンピュータエンティティはそれでも動くことができる。
力フィードバック機構では、レート制御力フィードバックコマンドは、力フィードバックインタフェース装置14を介してシミュレート環境により制御される乗り物または他のシミュレートエンティティに作用する力にほぼ一致する。このような力は、乗り物中心力と呼ばれる。例えば、スラスト制御パラダイムでは、ユーザのシミュレートスピードボートが濃厚な泥の中に進入する場合があるが、ユーザは直接的に泥を感じることはないだろう。しかしながら、ユーザは、スピードボートのエンジンがボートの動きに抵抗する力に逆らって最大限に稼働していることは感じるであろう。これらの対抗力は、インタフェース装置14を介してユーザに伝えられる。シミュレート環境における他のシミュレート特性やオブジェクトは、プレーヤ制御シミュレートエンティティに影響を与えて、ユーザに出力される力に影響を及ぼす場合がある。
本明細書では、レート制御コマンドは「条件(condition)」および「オーバレイ(overlay)」に分けられる。但し、他の実施形態では、他の分類が使用される場合がある。条件は、シミュレート剛性、シミュレート制動、シミュレート慣性、シミュレート力が減少するデッドバンド、および物理モデルの機能を決める方向の制約を含むユーザオブジェクトについての基本的な物理モデルまたはバックグラウンド感覚を設定する。条件力を効率良く重ね合わせるために、複数の条件を単一のコマンド中で指定することができる。対照的に、オーバレイは、バックグラウンドでの条件に加えて付与される力である。条件力に加えて任意の数のオーバレイを提供できることが好ましい。一つの条件は、一つの条件コマンドまたは複数の条件コマンドによって指定することができる。
以下では、図表300に示されるような数タイプの力302について説明する。これらの力は、ホストコマンドに基づいてマイクロプロセッサ26により実現することができる。これらの力には、復元力(restoring force)、ばね復元(restoring spring)、ベクトル力(vector force)、振動(vibration)、緩慢粘着(sluggish stick)、ウォッブル(wobble)、不安定(unstable)、ボタン反射ジョルト(button reflex jolt)、およびラチェット力(ratchet force)が含まれる。復元力、ばね復元力、緩慢粘着力、および不安定力は、条件力と考えられる。ベクトル力、振動、ウォッブル、ボタン反射ジョルト、およびラチェット力は、オーバレイ力と考えられる。
図表300に示される力302は、ホストコンピュータ12によってマイクロプロセッサ26に与えられるホストコマンドを用いて実現することができる。図表300に示されるホストコマンドおよびその構文の例304が、各種の力302に対して示されている。ここで説明する実施形態では、ホストコマンド304が、コマンド部分306および複数のコマンドパラメータ308を含んでいることが好ましい。コマンド304は、ホストコンピュータ12がプロセッサ26に実現するように指示する力のタイプを示す。このコマンド部分は、プロセッサ26がメモリ27から検索して実施することの可能な対応反射プロセスを有していてもよい。このプロセスについては、以下に詳細に説明する。コマンド部分306は、他の実施形態では、事実上任意の形式で指定することができる。図表300では、コマンドは、コマンドが実現する力のタイプをプログラマまたはソフトウェア開発者が容易に認識できるように、通常、英語に近い高水準形式で与えられる。
コマンドパラメータ304は、ホストコンピュータ12によって与えられ、コマンド部分304により示される力のタイプをカスタマイズおよび/または修正する値またはインジケータである。これらのコマンドの多くは、大きさ、持続時間、または方向コマンドパラメータを使用する。頻繁に力の方向を修正するスタイルパラメータを含むコマンドもある。以下に詳細に説明されるように、他の特殊なコマンドパラメータは、特定の力に与えられる。
以下の好適なレート制御実施形態では、コマンドパラメータの大部分が同じ方法で異なる力を制御する。大きさパラメータ(magnitude parameter)は、アクチュエータ30により出力可能な最大の力に対応する最大の大きさのパーセンテージである。持続時間パラメータ(duration parameter)は、通常、特定の力モデルを印加するための時間間隔に一致する。しかしながら、これは、力モデルの印加時間を無限に伸ばすために、0や−1のような所定値に設定されることがある。このため、力モデルは、ホストコンピュータ12が新しいホストコマンドに新しい力を与えるか、クリアコマンドを送るまで、有効なままとなる。スタイルパラメータ(style parameter)は、力モデルを印加する方向および/または力モデルを印加する自由度を選択することができる。例えば、有効な方向は、通常、一般的なジョイスティックの2本の軸線のうちの1本、またはこの2本の組み合わせとして指定される1本の対角線を含んでいる。言うまでもなく、スタイルパラメータは、任意の自由度または自由度の組み合わせに沿って力の印加を指定することができる。この他に、別個の力コマンドが各自由度または力コマンドに使用される場合もある。スタイルパラメータは、以下に説明されるように、指令された特定の力モデルに応じて変化することができる。
図9には列挙されていないが、ここに記載される全てのタイプの力302は、追加のパラメータを有していたり、列挙されたパラメータに他の特性を組み込んでもよい。「デッドバンド(deadband)」パラメータは、力が小さいかあるいはゼロとなる領域のサイズを指定できる。力がある自由度に沿って双方向なのか単方向なのかを示すパラメータが含まれていてもよい。単方向の力は、正または負の向きのいずれを持つことができる。いくつかのホストコマンドでは、デッドバンドおよび双方向/単方向パラメータが、スタイルパラメータに含まれていてもよい。
サブクラス310は、力302のタイプの分類を示している。力302は、前述のように、条件またはオーバレイのどちらかとして示される。オーバレイコマンドの前に、条件コマンドを以下で説明する。
図10(a)〜(c)は、復元力に関して力対変位のプロファイルを示すグラフである。図10(a)のグラフ312における力は双方向であり、この場合、垂直軸の右側の力は、ある自由度に沿ってある方向に印可され、垂直軸の左側の力は、その自由度に沿って反対方向で印加される。図10(b)のグラフ314に示される力は、単方向である。好ましくは、力が単方向であるか双方向であるかは、例えば図8の図表300に示されるコマンド306のスタイルパラメータ308(および、単方向の場合、特定の方向を示すための正または負の向き)で指定される。さらに、復元力が印加される所望の自由度も、スタイルパラメータで指定されるのが好ましい。例えば、“X”パラメータは“X”自由度を示すが、“XY”パラメータは、XおよびY自由度の双方に沿った復元力(例えば、斜め復元力)を示すことができる。
ユーザオブジェクト34に印加される復元力34は、ある自由度に沿ってユーザオブジェクトの原点位置O(つまり「中立位置」)に向かって常に後ろを向いている。例えば、図7および図8に示されるように、ジョイスティックの原点位置が、ジョイスティックの中心位置となる場合がある。大きさコマンドパラメータによって指定される復元力の大きさは、ユーザオブジェクトの自由度に沿った範囲316では、いずれの方向でもほぼ一定のままとなる。最大の力の大きさFは、ジョルトや振動を復元感覚の上にオーバレイできるように(以下に説明)、選択された自由度での最大可能出力力の約75%に制限されていることが好ましい。オブジェクトは原点位置Oに向かって移動するので、印可される力は、ユーザオブジェクトが原点位置のまわりの局所領域R内に移動するまでは一定である。ユーザオブジェクトが局所領域Rにある場合、印可される力はゼロまたは小さな値に急速に低下する。このように、復元力プロファイルは、オブジェクトが範囲316内にあるときにユーザオブジェクトを原点位置に押し戻す一定の「復元感覚」を与える。その後、復元力は、オブジェクトが原点位置に近づき、原点位置に到達するに従って減少または消滅する。復元力の方向は、ローカルマイクロプロセッサ26によって自動的に制御することができる。
図10(c)では、印可される力が原点位置のまわりの拡大された領域318内でほぼゼロである点を除いて、復元力が図10(a)の力と同様に示されている。領域318は「デッドバンド」として知られており、力が印加される前に原点のまわりの短い距離だけオブジェクト34を動かす自由をユーザが持つことができるようにする。印加される復元力のためのデッドバンド318の指定は、例えば、別個のデッドバンドコマンドパラメータとして含まれる値、あるいは復元力ホストコマンドのスタイルパラメータ308の一部として含まれる値とすることができる。
復元力感覚は、レート制御パラダイムで、シミュレート車両をコントロールする間に壁やその他の障害物に衝突する状況に極めて好適に当てはめることができる。復元力は、動き方向の速度を指令することに対する抵抗を示している。ユーザオブジェクトが原点位置に戻されると、ユーザは動き方向の速度を指令しなくなるため、この力は低下する。逆方向に障害物がない場合には、復元力は単方向となる。
図11(a)〜11(c)は、ばね復元力についての力対変位のプロファイルを示すグラフである。図10(a)〜10(c)の復元力によって与えられるように一定の大きさをその正または負の変位にわたって維持するのではなく、ばね復元力は、ユーザオブジェクトの変位の感知可能な部分にわたって線形に変化し、オブジェクト34の原点位置Oからの距離に比例する。ユーザオブジェクトに加えられるばね復元力は、ある自由度に沿って中立位置に向かって常に後ろを向いている。図11(a)〜11(c)では、ばね復元力は、オブジェクト34の原点位置Oからの最大変位においてその最大値に達する。図11(a)のグラフ320は双方向のケースを示し、図11(b)のグラフ322は単方向のケースを示している。デッドバンドパラメータにより指定されるデッドバンドは、図11(c)のグラフ324に示されるように、原点位置のまわりに与えられる。
ばね復元力に関するパラメータは、例えば、前述の復元力に関するパラメータとほぼ同様であってもよい。あるいは、ばね復元力は、大きさパラメータの代わりに、オブジェクト34の所望の「剛性」を記述するばね定数パラメータ(spring coefficient parameter)を有していてもよい。ばね定数パラメータは、ユーザオブジェクトに作用する力を計算するための周知の方程式で使用することができる。この定数パラメータか大きさパラメータのいずれかを使用することができる。
緩慢力は、ユーザオブジェクト34に対する制動力であって、ユーザによって動かされるときのユーザオブジェクトの速度に比例する大きさを有する力を生じさせる。このタイプの制動力の例は、図4のステップ82を参照して前述した。緩慢力の「粘度」の度合いは、ホストコマンドにコマンドパラメータとして含まれる粘性減衰定数によって指定できる。緩慢粘着力は直接速度に依存するため、定数コマンドパラメータ(coefficient command parameter)は最大減衰定数のパーセンテージで表すことができ、前述のホストコマンドの大きさパラメータに代わる。緩慢ホストコマンドのスタイルコマンドパラメータは、単方向または双方向の表示だけではなく、緩慢力を加えるための指定自由度を含む場合がある。緩慢粘着力は、例えば、ユーザオブジェクトの動きに不完全に反応する非常に重い乗り物の制御をシミュレートするためのレート制御アプリケーションに特に適している。
不安定力は、倒立振り子スタイルの不安定性を生じさせる。この他に、不安定力は、負のばね定数(不安定または発散性のばね)を有するばねにモデル化される。力は、オブジェクトの原点位置から離れる方向でユーザオブジェクトに印加され、ユーザオブジェクトが原点位置からさらに遠く離れていくのに従って増加する。これにより、ユーザがオブジェクトを原点位置に運ぶことを困難にする力が生じる。不安定ホストコマンドのコマンドパラメータは、前述の復元力に類似したパラメータを含んでいてもよい。例えば、最大の「不安定性」度のパーセンテージを示すコマンドパラメータを与えることができる。ここで、不安定性は、最大出力力によって定義することができる。この力は、別の乗り物関連の感覚として使用することが可能であり、例えば、シミュレート乗り物誘導制御装置が損傷を受ける場合に、ばね復元力の代わりに用いられることがある。通常、不安定性によって、コンピュータゲームは非常にプレーが難しくなる。
他の実施形態では、条件力の特性を制御するための多数のパラメータとともにただ1つのホストコマンドを使用することで、前述の条件力を指令することができる。例えば、以下のようなホストコマンド
COND-X(K+,K-,DB,B+,B-,N-Offset,Sat+,Sat-,m)
を、ホストコンピュータ12からマイクロプロセッサ26に送ることができる。このコマンドは、ユーザオブジェクトのモデルの特定の物理的なパラメータを一つの自由度内で指定する。Kパラメータは、ある自由度に沿った二つの方向におけるユーザオブジェクトの変位の比例剛性を示す。DBパラメータは、最大許容デッドバンド距離のパーセンテージでデッドバンド範囲を示す。Bパラメータは、ある自由度に沿った二つの方向おけるユーザオブジェクトの速度に対する速度比例制動を示す。N_Offsetパラメータは、(Kパラメータにより定義される)ばねのモデル化中立位置からのオフセットとして指定することができる。Satパラメータは、ユーザオブジェクトの変位に対する最大(飽和)許容力値を示しており、例えば、可能な最大力の、あるパーセンテージで表される。mパラメータは、例えばユーザオブジェクトの重力または慣性力を計算するための物理モデルで利用することができるユーザオブジェクトのシミュレート質量を示す。上記の条件コマンドは、ユーザオブジェクト34の所与の自由度の各々に対して使用することができる。例えば、COND_Xは、x軸のまわりの自由度における条件力を提供することができる。このコマンドは、復元力、ばね復元力、緩慢力、および不安定力を、さまざまなコマンドパラメータを調整することにより実現することができる。
条件コマンドは、条件力に加えて又は条件力に「かぶせて」オーバレイコマンドが適用される間に、バックグラウンドで提供することができる。例えば、緩慢な制動力をユーザオブジェクトに対するバッグラウンド力として提供し、「ジョルト」オーバレイ力を緩慢力にかぶせて指令して、数秒間にわたってユーザオブジェクトに素早く断続的な動きを与えることができる。言うまでもなく、オーバレイ力は、他の力が印加されていないときに独占的に印加することも可能であるし、望む場合には、オーバレイ力が、過去に指令された他の力を取り消すこともできる。図9に示される例のオーバレイ力については、後述する。
図12は、ベクトル力モデルを示すグラフ326である。ベクトル力はオーバレイコマンドであるため、前述の条件力に加えて印加することができる。これは、方向コマンドパラメータ(direction command parameter)によって指定される指定方向でジョイスティックに印加される一般的な力である。方向コマンドパラメータは、例えば、2自由度インタフェース機器のXY平面内の角度として与えることができる。条件力コマンドの多くに関しては、ベクトル力の大きさは、大きさの最大値のパーセンテージで指定できる。図12は、2自由度を持つユーザオブジェクトのXY平面内の例示方向におけるベクトル力の2次元表現を示している。
図13(a)〜13(b)は、振動力に関する力対時間のプロファイルを示すグラフである。図13(a)は、双方向の振動力を示すグラフ328であるが、図13(b)は単方向の振動力を示すグラフ330である。図9に示される振動コマンドは、大きさ、周波数(frequency)、スタイル、方向、および持続時間コマンドパラメータを受け入れる。周波数パラメータは、最大周波数のパーセンテージとして実現でき、ある期間の時間間隔Tpに反比例している。方向コマンドパラメータは、図12を参照して前述したように、角度として実現することができる。スタイルパラメータは、振動力が単方向であるのか、双方向であるのかを示すことができる。さらに、デューティーサイクルパラメータは、他の実施形態で提供することができ、振動力が印加される期間のパーセンテージを示す。また、コマンドパラメータは、振動波形の「形状」またはプロファイルを時間軸で指定するために含まれていてもよく、この場合、所定の数の形状のなかから一つを選択することができる。例えば、この力は、正弦波力、鋸歯形力、方形波形力などとして指定することかできる。
ウォッブル力パラダイムは、ホストコンピュータ12によって指令することができる別のオーバレイ力である。この力は、ランダムな(あるいは、ユーザにとってランダムに見える)オフバランス力感覚をユーザオブジェクト上に生じさせる。例えば、この力は、損傷を受けた乗り物のふらついた操縦をシミュレートできる。大きさ、持続時間、およびスタイルコマンドパラメータは、前述のホストコマンドのパラメータと同様のものとすることができる。また、スタイルパラメータが、様々なタイプを含む所定のリストからウォッブル力のタイプを指定することもできる。ウォッブル力は、さまざまな方法を用いて実現できる。例えば、事前にプログラムされメモリに格納された「力プロファイル」は、ランダムに見える力感覚を生じさせるように実現することができる。あるいは、正弦波または他の関数に基づいて、あるいはランダムな結果に基づいて力を計算するために、方程式を使用することができる。
ジョルト力は、通常、ユーザオブジェクト上に出力される短く大きな力であり、例えば、ユーザにコンピュータ環境内のイベントやシミュレートオブジェクトを知らせるために使用することができる。ジョルト力は、有効なあらゆる条件力に加えて感じることができるオーバレイ力として使用することができる。典型的なパラメータは、ジョルト力の大きさ、ジョルトの持続時間、およびジョルトが加えられる方向または自由度(これは、角度または特定の自由度として指定することができる)を含んでいる。大きさコマンドパラメータは、(前述の)任意の他の条件力またはオーバレイ力の大きさに加えて、衝撃力の大きさを指定することが好ましい。つまり、この大きさは、定常状態の力を「超えた」差分大きさである。したがって、アクチュエータ30によって出力される実際の大きさは、衝撃力の大きさより大きくなることがある。
ボタン力は、実際の力ではないが、入力装置39がユーザにより作動されるときに、他の力をトリガするためのコマンドとして使用されることがある。例えば、多くのゲーム状況では、ホストコンピュータ12で押されたボタンを処理した後にホストコマンドから力を生成するより、インタフェース機器14上のボタンまたは他の入力装置39を押すことに対する直接的な反応として力をトリガする方が有利な場合がある。ボタンを押すことによりトリガされる他の力は、ボタンコマンドのコマンドパラメータとして指定できる。この他に、各種の力に対して特殊なボタンコマンドを与えることができる。
例えば、ボタンコマンドと共に使用する共通の力は、ジョルト力である。指定されたボタンが押されるたびにジョルト力が生じるように、BUTTON_JOLTなどの特定のコマンドを与えることができる。このコマンドには、ボタンコマンドパラメータおよびジョルトコマンドパラメータ(jolt command parameter)が含まれる。この他に、JOLTコマンドパラメータを有するボタンコマンドを実現することもできる。ボタンジョルトコマンドがマイクロプロセッサによって受信されると、マイクロプロセッサは、ボタンバックグラウンドプロセスを終了するように指令されるまでバックグラウンドプロセスとしてボタンチェックを実行することができる。このため、マイクロプロセッサ26が、ユーザがボタンを押したことをセンサデータから判断すると、出力される既存の力にジョルト力を重ねることができる。
ボタンコマンドは、その他の入力装置39が作動状態にされているときに力を出力するようにマイクロプロセッサ26をセットアップする。ボタンコマンドは(ボタンが押されたときに出力される所望の力に固有の任意のコマンドパラメータに加えて)、例えば、ボタンパラメータやオートファイア頻度パラメータを含む多くのコマンドパラメータを受け入れることができる。ボタンパラメータ(button parameter)は、ユーザが作動させたことをマイクロプロセッサ26がチェックする特定のボタンであって所望の力を与える特定のボタンを選択する。例えば、ジョイスティックが複数のボタンを備える場合があり、ソフトウェア開発者は、それらのボタンのなかのある特定のボタンが押されたときにだけ力を与えることを希望する場合がある。持続時間パラメータは、ボタンが押された後どのくらいの時間にわたってジョルトが持続するのかを決定することができる。「オートファイア」頻度パラメータ(autofire frequency parameter)は、ユーザがボタンを押し続ける場合に力を繰り返す頻度を指定する。例えば、ユーザがある特定のボタンを押し続ける場合、マイクロプロセッサは、ユーザが最初にボタンを押してから所定の時間間隔が経過すると、自動的にジョルト力を反復することができる。オートファイアパラメータは、オプションとして、特定のボタンに対してオートファイア機能が使用されているかどうか、および反復力が印加される前の希望の時間間隔、を指定することもできる。
図9の図表に示されていない他のレート制御コマンドも実現することができる。例えば、アクチュエータ30が受動アクチュエータである場合、ラチェットコマンドおよび適切なコマンドパラメータを送ることにより、「ラチェット」力を与えることができる。このコマンドは、例えば、ユーザが操縦する乗り物を所与の自由度に引っ張る障害物をシミュレートすることができる。このため、ユーザがジョイスティックをある方向で動かすときには力が印加され、それからユーザが反対方向にジョイスティックを動かすときには力が印加されず、ジョイスティックが最初の方向で動かされるときには再度、力が印加される。これは、ラチェット力など、任意の引戻し点における障害力をシミュレートする。このようなコマンドのスタイルパラメータは、固定された障害物またはラチェットスタイルの障害物を表すことができる。
以上で、レート制御コマンドおよび力モデルの説明を終わりにする。
図14は、図5の実施形態で使用できる多くの好ましい位置制御ホストコマンドを示す図表332である。ここで、「位置制御」とは、ジョイスティックハンドルまたは他のユーザオブジェクトの変位がコンピュータシミュレートエンティティまたはオブジェクトの変位を直接表すようなユーザオブジェクトのマッピングを指す。マッピングは、任意の縮尺率を有していたり、非線形であってもよいが、ユーザオブジェクト変位とコンピュータオブジェクトまたはコンピュータエンティティの変位との間の基本的な関係は存在しなければならない。位置制御マッピングの下では、コンピュータ制御エンティティは、ユーザオブジェクトが動いていなければ動かない。つまり、静的なユーザオブジェクトが、静的なコマンドをホストコンピュータ12からマイクロプロセッサ26に指示する。
位置制御は、従来のコンピュータには一般的なマッピングではないが、医療処置シミュレーションまたはグラフィカルユーザインタフェースのような他のアプリケーションでは使用されることがある。位置制御は、抽象的な制御パラダイムというよりはむしろ直接的で物理的なマッピングであるため、力フィードバックインタラクションの直感的かつ効果的な比喩である。言い換えれば、ユーザオブジェクトは、コンピュータ内で制御されているエンティティと同じ物理的な操作を経験するため、位置制御を使用すると、物理的なコンピュータシミュレーションを現実的な力フィードバック感覚作用として直接的に反映させることが可能になるのである。コンピュータ環境での位置制御の例としては、ピンポンゲームでのラケットの制御や、ウィンドウデスクトップ環境でのカーソルの制御を挙げることができる。
レート制御の乗り物中心の力とは対照的に、位置制御力フィードバックは、ユーザによって直接的に知覚される力にほぼ対応する。これが「ユーザ中心」の力である。例えば、表示画面20に表示され、ユーザによって直接制御されるラケットが、シミュレートされた濃厚な泥を通って動く場合がある。力フィードバックインタフェース装置14を介して、ユーザは、粘性溶液を通過する動きに結びついた変化する力を知覚するだろう。現実の物理的な状況に対応して、力はジョイスティック(および表示されたラケット)の動きの速度およびラケット面の向きに応じて変化する。
以下では、図表332に示される数タイプの位置制御力334を説明する。これらの力は、ホストコマンドに基づいてマイクロプロセッサ26により実現することができる。これらの力には、ベクトル(vector)、溝(groove)、ディボット(divot)、質感(texture)、障壁(barrier)、フィールド(field)、ラケット(paddle)、およびボタン反射ジョルト(button reflex jolt)が含まれる。これらの力に対応するホストコマンドの例336の多くは、レート制御パラダイムに関して説明されたように、大きさパラメータおよびスタイルパラメータを使用する。レート制御コマンドでの場合と同様に、同じ名称のコマンドパラメータは、一般的に異なるホストコマンドに対して同じプロパティを持つ。ただし、位置制御力の持続時間は通常ユーザオブジェクトの現在位置に応じて適用されるため、持続時間パラメータは、通常、レート制御コマンドの場合ほどには位置制御コマンドには使用されない。したがって、一般的には、位置制御力モデルは、ホストコンピュータ12が新しいホスト力コマンドまたはクリアコマンドを発行するまで有効のままである。他の実施形態では、持続時間パラメータを使用してもよい。
ここで説明する位置制御コマンド用の好ましいパラメータ決定は、図14にまとめられている。以下に列挙される全ての力は、デッドバンドパラメータのような補助的なコマンドパラメータを含むことができ、あるいは図14に列挙されるパラメータに他のプロパティを組み込むことができる。図9に示されるホストコマンドと同様に、ホストコマンド336は、コマンド部分338および多数のコマンドパラメータ340を含むことが好ましい。コマンド336は、ホストコンピュータ12がプロセッサ26に実現するように指示する力のタイプを示す。このコマンド部分は、プロセッサ26がメモリ27から検索して実施することができる対応リフレクトプロセスを含んでいてもよい。コマンド部分338は、他の実施形態では、事実上任意の形式で指定できる。
ベクトル力とは、大きさと方向を有する一般的な力である。ベクトル力の極表示については、図12を参照されたい。ほとんどの位置制御感覚は、ベクトル力コマンドおよび適切な命令およびプログラミング構造を使用して、プログラマ/開発者によって生成される。ホスト12またはマイクロプロセッサ26は、時間ではなくユーザオブジェクトの動きに基づいて力を終了または修正できるため、通常、持続時間パラメータは必要でない。
図15は、本発明の溝力に関する力対変位の関係を示すグラフ342である。溝力は、傾斜344によって示されるように、所与の自由度に沿った線形戻り止め感覚を与える。ユーザオブジェクトは、「溝」の中の粘着力を維持するための自由度に沿った復元力が存在する「溝」に捕らえられているように感じられる。この復元力溝は、ホストコマンドが受信されたときのユーザオブジェクトの現在位置に位置する中心溝位置Cを中心としている。この他に、中心溝位置の位置は、1以上の自由度に沿ったコマンドパラメータから指定できる。したがって、ユーザがユーザオブジェクトを溝の外に動かそうとすると、抵抗力が印加される。
大きさ(剛性)パラメータは、印加される力または抵抗の量を指定する。オプションとして、ユーザオブジェクトが距離Sで示される所与のスナップアウト距離だけ溝から逸れると溝力が止まる溝反射プロセス内では、「スナップアウト」機能を実現することができる。このため、マイクロプロセッサ26は、スナップ距離大きさを有する溝コマンドを受信する。マイクロプロセッサは、このスナップ距離外に移動するユーザオブジェクトを検出すると、溝力を止める。このスナップアウト機能は、力を止めるためにクリアコマンドを送るホストコンピュータ12によっても同様に好適に実現することができる。また、ユーザオブジェクトがデッドバンドコマンドパラメータで指定される中心溝位置C近くで自由に動くことができるようにするために、デッドバンドDBを設定することもできる。スタイルコマンドパラメータは、1以上の自由度に沿った溝の向き(例えば、水平、垂直、斜め)を示す。例えば、水平溝および垂直溝は、ウィンドウ内のスクロールバーに力を与える場合に有用である。グラフィカルユーザインタフェースでカーソルを動かすユーザは、カーソルおよびユーザオブジェクトをスクロールバーの中心に向かって動かす溝力を感じることができる。デッドバンドは、ユーザに、スクロールバー領域内でカーソルを動かすための空間を与える。スナップアウト距離は、カーソルがスクロールバー領域の外に移動した場合にカーソル/ユーザオブジェクトを力から解放するために使用することができる。
ディボットは、本質的には、2以上の自由度で復元力を与える二つ(または三つ以上)の直交溝である。これは、所与の自由度に沿って点戻り止めの感覚を与える。例えば、ディボットが2自由度で与えられる場合、ユーザオブジェクトは円形の窪みの中に捕えられたように感じられる。ユーザオブジェクトは、ユーザオブジェクトを保持するために双方の軸線に沿った復元力が存在する点に捕捉されている。溝力のスナップアウト機能は、ディボットに関しても実現することができる。さらに、溝のデッドバンド機能もディボットコマンドに提供することができる。
質感力は、図4を参照して前述したように、表面の特性をシミュレートする。質感とは、例えば棒を格子上で動かすときに感じられる力をシミュレートする(振動、時間変化力とは反対の)空間変化力である。その他のタイプの質感もシミュレートすることができる。ユーザオブジェクトは、質感力を感じるように動かされなければならない。つまり、格子の各「こぶ」は、その自由度において特定の位置を持つ。質感力は、ホストコマンドおよびコマンドパラメータを用いてプログラマ/開発者によって指定される複数の特性を備えている。これらのコマンドパラメータには、大きさ、グリット、およびスタイルが含まれることが好ましい。大きさは、格子の「こぶ」ごとにユーザオブジェクトに印加される力の量を指定する。グリットとは、基本的には、格子のこぶの各々の間の間隔である。スタイルコマンドパラメータは、質感の向きを指定することができる。例えば、スタイルは、水平格子、垂直格子、または斜行格子(またはこれらの格子の重ね合わせ)を指定することができる。さらに、スタイルパラメータは、質感がある自由度に沿って双方向または単方向のどちらで感じられるのかを指定することができる。この他に、質感力の「こぶ」の位置を制御するために補助的なコマンドパラメータを与えることもできる。例えば、こぶ間の距離がある距離にわたって指数的に変化、あるいは指定された公式に従って変化するようにこぶ感の距離を指示する情報が含まれていてもよい。この他に、質感間隔はランダムに変化してもよい。他の実施形態では、コマンドパラメータは、マイクロプロセッサ26がメモリから取り出すことができる複数の使用可能な標準質感パターンのなかの一つを指定することができる。
障壁力は、指令が出されると、ユーザオブジェクト空間内の任意の場所に配置される壁または他の障害物をシミュレートする。この障壁力については、図4を参照して上述した。ホストコマンドは、障壁の硬さ(印加される力の大きさ)、自由度に沿った障壁の位置(location)、および障壁のスナップ距離(snap distance)または厚さを指定することができる。希望する場合には、水平障壁と垂直障壁を別個のホストコマンドとして提供することができる。図16のグラフ346に示されるように、障壁力だけが有限の厚さを持っている。力は、ユーザオブジェクトが(B点を通り過ぎて)障壁に近づいてくるに従って、急激に大きくなる。スナップ貫通距離は、障壁がユーザによって感じられる領域のサイズを限定する。ユーザオブジェクトが障壁の中に入り込んでから、障壁の厚さを通り抜けると、障壁力は止められる。障壁力は、マイクロプロセッサがユーザオブジェクト34に最大の力を提供する硬い障害物として、または(大きさコマンドパラメータによって指定されるように)より小さな力の大きさが印加されるこぶや比較的柔らかい障壁として動作してもよい。障壁は、取り除かれるか、新しい位置に移動されない限り、長い時間にわたって残っていてもよい。また、自由度に沿って連続して複数の障壁を設けることもできる。
この他に、障壁力は、2つのコマンドパラメータ、すなわち硬さおよび位置、のみを有するホストコマンドを送ることによって与えることもできる。硬さパラメータは、抵抗力の高さまたは傾斜を指定できる。図16のグラフ348に示されるように、ユーザオブジェクトは、距離軸に沿って左から右に移動できる。ユーザオブジェクトは、B点で障壁に衝突すると抵抗力を感じる。ユーザオブジェクトがS点(スナップ距離)に移動すると、ユーザオブジェクトに対して力が反対方向に印加される(負の大きさの力)。この力は、ユーザオブジェクトが同じ方向で移動するのに伴って減少する。これは、ユーザオブジェクトがこぶの上に移動するまで力が抵抗的であり、なおかつオブジェクトがこぶの他方の側面を降りていくに従って力が補助力になるようなこぶや丘をシミュレートする。
力場(force field)タイプの力は、特定の位置を基準としてユーザオブジェクトを引き寄せ、あるいは跳ね返す。この力は、フィールドの大きさや力場の印加の基準となる特定のフィールド原点位置(origin position)などのコマンドパラメータによって定義することができる。引力場または斥力場を示すために、向き(sense)パラメータが含まれていてもよい。例えば、力場は、フィールド原点位置とユーザによって制御されるカーソルやグラフィックオブジェクトとの間の重力をシミュレートするための引力場となることがある。フィールド原点位置は重力質量または電荷と考えることができるが、引力は、特定の位置からの変位の逆2乗に依存する必要はない。例えば、力は変位の逆数に依存していてもよい。また、引力場は、ユーザオブジェクトがフィールド原点位置に移動されると、その位置にユーザオブジェクトを維持しようと努める。斥力場は、特定のフィールド原点位置からユーザオブジェクトを押し出すという点を除いて、同様に動作する。さらに、フィールド原点位置のまわりの特定の距離範囲に対する力場の効果を制限するために、追加のコマンドパラメータとして範囲を指定してもよい。
図17(a)〜17(i)は、「ボール」コンピュータオブジェクトまたは同様のオブジェクト352と相互作用する「ラケット(paddle)」コンピュータオブジェクト350の図である。これらのコンピュータオブジェクトは、ホストコンピュータ16によって表示画面20上に表示することができる。ボールとラケットとの間の力の相互作用は、後述のように、ホストコマンドを使用してソフトウェア開発者によって制御することができる。ここで説明する例では、ラケットオブジェクト350は、ラケットオブジェクト350の動きがユーザオブジェクト34の動きに直接マッピングされるように、位置制御パラダイムによってプレーヤにより制御される。他の実施形態では、ボールオブジェクト352または両オブジェクトがプレーヤによって制御されていてもよい。
図17(a)〜17(h)は、ボールオブジェクト352がラケットオブジェクトと衝突するときに、ラケットオブジェクト350が移動するボールオブジェクト352とどのように相互作用するのかを示している。図17(a)では、まず、ボール352がラケット350と衝突する。最初の力は、適切な方向でユーザオブジェクト34に印加されることが好ましい。図17(b)および図17(c)では、ボール352が、コンプライアンスのあるラケットまたは「スリング」に入り込んでいる。ボールのシミュレート速度、ラケットのシミュレートコンプライアンス、およびシミュレート重力の強度/方向に適したユーザオブジェクト34を介してボール352のシミュレート質量がユーザによって感じられることが好ましい。これらのパラメータは、適切なパラメータを有するホストコマンドを使用して設定できるようになっていることが好ましい。例えば、以下のホストコマンドを使用することができる。
PADDLE(B-mass,B-vel-x,B-vel-y,Gravity,Sense,Compliance-X,Compliance-Y)
ここで、コマンドパラメータB_massはボールのシミュレート質量を示し、B_vel_xとB_vel_yはボールの速度であり、gravityは重力の強さであり、senseは重力の方向であり、Compliance_XとCompliance_Yはラケットオブジェクト34のシミュレートコンプライアンスまたは剛性である。コンピュータ環境やオブジェクトの相互作用の他の物理的な側面を制御するために、他のパラメータが含まれていてもよい。
図17(d)では、ボールは、ラケット34の最大たわみ点に到達し、同じ方向に動くことはできなくなっている。図17(e)〜図17(g)に示されるように、ボールは、ラケットのコンプライアンスのために反対方向に押される。さらに、ユーザがユーザオブジェクト34に力を加えて、ボールを特定の方向に向かせ、ボールの動きをさらに加速させることが好ましい。これにより、ユーザは、精密な制御度を得ることができ、希望の方向にボールを向かわせる上で重要な技能を利用することが可能になる。このように、力フィードバックラケットは、ピンポンタイプや他の同様のビデオゲームの優れた構成要素である。さらに、ラケット350は、オプションとして、図17(h)に示されるように反対方向にたわむこともできる。
ボール352とラケット350との間で相互作用する力の概略モデルは、図17(i)に示されている。ばね定数Kによって示されるばね力は、ラケットの弾力性を示すために自由度XおよびYの双方に与えられる。ここで、gは重力の方向である。さらに、ボールがラケット350と接触すると、ボール352の速度を落とすように、減衰定数Bによって示される制動力が与えられる。ばね力および制動力は、1自由度で印加することもできる。
ラケット制御アルゴリズムとは、ボールがラケットを圧縮し、その後ラケットから離れる間の相互作用力をマイクロプロセッサ26が計算する動的アルゴリズムである。ラケットコマンドは、ボールがラケットに接触すると、ホストコンピュータ12により送られる。ラケットコマンドは、ホストが相互作用期間中に表示画面20上に表示されるグラフィックスを更新できるように、ホストコンピュータにボール位置を報告する。現在の好適な実施形態では、更新は、ホストに対して約60hZで行いさえすればよい。これは、大部分のディスプレイ20がその速度でしか表示を行えないからである。しかし、相互作用に現実に近い「感覚」を与えるためには、力は約500Hzまたはそれ以上で計算され、出力される必要がある。したがって、ローカルマイクロプロセッサは、迅速に力を計算する一方で、ときおりラケットのセンサ読取り値をより低い速度でホストに報告することができる。他のタイプのビデオゲームまたはシミュレーション相互作用も、高水準ホストコマンドで同様に指令することができる。以上で、位置制御パラダイムの説明を終わりにする。
さらに、ホストコンピュータがクリアコマンドを使用できるようになっていると好適である。このコマンドは、特定の自由度を指定するパラメータを含むことができ、指定された自由度における全ての力をホストコンピュータが削除できるようにする。これにより、プログラマが力を重畳することを望まない場合には、他の力が印加される前に力を除去できるようになる。
また、構成ホストコマンドが与えられていてもよい。このコマンドは、インタフェース装置14を最初にセットアップして、特定の通信パラメータを受信し、どの入力および出力が特定のアプリケーションに使用されるのかを指定することができる。例えば、ホストコンピュータは、ローカルマイクロプロセッサ26に命令を与えて特定の情報をホストコンピュータに報告させるとともに、情報を報告する頻度を指示することができる。例えば、ホストコンピュータ12は、マイクロプロセッサ26に命令を与えて、特定の自由度からの位置値、インタフェース装置14の特定のボタンからのボタン状態を報告させるとともに、ホストコンピュータに発生するエラーをどの程度まで報告するのかを指示することができる。製造時にインタフェース装置14に記憶された情報、例えばシリアル番号、型式番号、スタイル情報、較正パラメータおよび較正情報、センサデータの分解能、力制御の分解能、所与の自由度に沿った動きの範囲、を受信するために、ホストコンピュータ12によってインタフェース装置14に「リクエスト情報」コマンドを送ることもできる。この情報は、ホストコンピュータがローカルプロセッサ26に出力するコマンドを特定のタイプのインタフェース装置14に対して調整およびカスタマイズできるようにするために、ホストコンピュータにとって必要となる場合がある。USB通信インタフェースが使用される場合、ベンダ識別、装置クラス、電力管理情報など、そのインタフェースに必要なその他の情報が、リクエストコマンドに応じてホストに提供される。
さらに述べると、前述の力を重ね合わせることも可能である。ホストコンピユータは、過去のホストコマンドが依然として有効な間に新規のホストコマンドを送ることができる。これにより、ユーザオブジェクトに印加される力を、異なる制御コマンドに基づいて組み合わせることができる。マイクロプロセッサ26またはホストコンピュータは、相反する効果をもたらす一定のコマンド(例えば、復元力とばね復元力)が重ね合わされることを防ぐことができる。例えば、最新の送出済ホストコマンドは、過去のコマンドを、それらの過去のコマンドが新規コマンドと対立する場合に無視することができる。あるいは、対立するコマンドに優先順位を割り当てて、最高の優先順位を有するコマンドが他の対立するコマンドにオーバライドするようにしてもよい。
前述の高水準コマンドおよびコマンドパラメータは、本発明の力を実現するための例にすぎない。例えば、別個に説明されたコマンドパラメータを、異なる部分を持つ一つのパラメータにまとめることができる。また、複数のレート制御条件力を提供する条件コマンドの例で述べたように、本明細書に示される個々のコマンドをさまざまな方法で組み合わせたり、分離したりすることができる。
標準ジョイスティックのような1または2の直交自由度または球自由度を持つ一般的なインタフェース装置に加えて、他のインタフェース装置が3または4以上の自由度を備えていてもよい。第3の自由度がスティック自体に沿った軸のまわりである場合、当業者はそれを「スピン」または「ねじり」と呼ぶ。ユーザオブジェクトの各自由度は、自身に専用の高水準ホストコマンドを持つことができる。高水準ホストコマンドを各自由度に独立して関連づけることにより、考えられる多くの位置制御、レート制御およびその他の抽象マッピングの組み合わせを、インタフェース装置で実現することができる。
例えば、2自由度を有する一般的なジョイスティックの場合、コンピュータゲームは、ジョイスティックが宇宙船の飛行の制御できるようにすることができる。ジョイスティックハンドルの前後の動きは、宇宙船の加速を指示するスラスト制御を実施する。ジョイスティックの左右の動きは、宇宙船の軌道の角速度を指示するスラスト制御を実施する。この特定のスラスト方向パラダイムは、現在のゲームでは特に人気があるが、多くのばらつきがある。例えば、フライトシミュレータでは、ジョイスティックの前後の動きが飛行機のピッチを制御し、左右の動きが飛行機のロールを制御する場合がある。ドライビングゲームでは、スティックの前後の動きが車の加速に対するレート制御マッピングであり、左右の動きが道路の幅方向における車の位置に対する位置制御マッピングである場合がある。
また、複数の制御パラダイムを単一の自由度に混合することもできる。例えば、ジョイスティックが、ある自由度での原点からの小さな偏差に対する位置制御と同じ自由度での原点からの大きな偏差に対するレート制御とを備える場合がある。このような混合制御パラダイムを、ローカル位置/グローバルレート制御パラダイムと呼ぶことがある。
図18は、ホストコマンドおよびコマンドパラメータを処理してユーザオブジェクト34に力を出力する本発明の機能マイクロプロセッサ26のインプリメンテーション380の例を示すブロック図である。インプリメンテーション380は、メモリ27に格納された命令を使用するマイクロプロセッサ26上に設けられることが好ましい。マイクロプロセッサ上で操作を実行するプログラム命令の使用は、当業者にとっては周知であり、「コンピュータ読取り可能媒体」に記憶することができる。本明細書では、このような媒体には、一例として、RAMやROMなどのメモリ27、磁気ディスク、磁気テープ、CDROMのような光学読取り可能媒体、PCMCIAカードのような半導体メモリなどが含まれている。各々のケースで、媒体は、小型ディスク、ディスケット、カセットなどの携帯物の形を取ることもあれば、ハードディスクドライブのような比較的大きい、あるいは動かすことのできない物品の形を取ることもある。種々のサブプロセス382、384、386、387、および388は、力フィードバックインタフェース装置14の応答性を最適化するためにマイクロプロセッサ26上で並列で実行することが好ましい。これらのプロセスも、本明細書では「プロセッサ」と呼ぶ。好適な実施形態では、さまざまなパラメータおよびデータが、インプリメンテーション380のサブプロセスによって共用される。
インプリメンテーション380の以下の説明において、パラメータセットまたはパラメータページは、力の計算および印加の速度を高めるために記憶されていてもよい。本明細書では、パラメータセットは、パラメータページと同義であると考えられる。コマンドが受信されるとすぐにホストコマンドおよびコマンドパラメータ(および/または他のパラメータ)を読み取り、記憶し、適用するのではなく、力環境を定義するコマンドおよびパラメータの全部または一部を記憶し、メモリ27に記憶されたパラメータページに分類することができる。この力環境は、パラメータページから迅速に読み取られる特定の力を記述することができる。適切な力環境がホストコンピュータによって必要とされる場合、マイクロプロセッサは、メモリからパラメータページを検索することができる。この後、映像表示システムにおけるページスワッピングと同様に、インプリメンテーション380は、現在の力環境に対してアクティブページを使用し、構築中のコマンド/パラメータセットに対して「隠し」ページを使用することができる。さらに、予め設定または定義された力環境を検索することもできる。これらの環境は、インタフェース装置14に与えられる標準化された力環境であるか、あるいはホストコンピュータからインタフェース装置14にロードできる環境である。好ましい実施形態では、記憶されるパラメータページは、力パラメータおよび報告パラメータを含むことになる。これらのパラメータは、ホストコマンドおよびコマンドパラメータから引き出される内部マイクロプロセッサパラメータである。これらのパラメータについては、後述する。
ホスト通信・バックグラウンドプロセス382は、マイクロプロセッサ26とホストコンピュータ12との間の通信を維持する。ホスト通信・バックグラウンドプロセス382は、高水準ホストコマンドおよびコマンドパラメータをホスト12から受信し、このデータをコマンドプロセス384に送る。プロセス382は、後述される報告プロセス387からもセンサデータを受信する。プロセス382は、プロセス387から受信した情報をホスト12に中継する。本質的に、プロセス382は、マイクロプロセッサ26とホストコンピュータ12との間の通信「交換機」として動作する。プロセス382(またはプロセス384)は、マイクロプロセッサ26上の入力バッファを管理する。この入力バッファは、ホストコンピュータ12からの入コマンドおよびデータをバッファするために使用される。この入力バッファは、高い通信速度を有するUSBインタフェースやその他のインタフェースを含む実施形態で特に有用である。
コマンドプロセス384は、ホスト通信・バックグラウンドプロセス382を介して伝送されたホスト12からの入力高水準ホストコマンドおよびコマンドパラメータを処理する。この入力コマンドに基づいて、コマンドプロセス384は、報告パラメータおよび力フィードバック制御パラメータを処理する。このようなタイプのパラメータは、マイクロプロセッサ26の内部パラメータであり、ホストにより送られる高水準ホストコマンド内に含まれるコマンドパラメータ308と区別されなければならない。内部パラメータは、コマンドパラメータから引き出され、一部の例では、後述するようにコマンドパラメータと同一である場合がある。
報告パラメータは、ホストコンピュータ12に報告するデータおよび報告の速度をマイクロプロセッサ26に対して指定する内部パラメータである。報告パラメータは、例えば、特定の自由度に関してユーザオブジェクト34の位置または速度を報告すべきかどうかや、通信速度や、エラーを報告する方法を指定する。報告パラメータは、ホストコンピュータ12から受信された構成コマンドから引き出され、ステータス更新プロセス386および報告プロセス387に提供される。これにより、プロセス387は、どの情報をホストコンピュータ12に報告するのかを、ホスト通信・バックグラウンドプロセス382を介して知ることになる。
力フィードバック制御パラメータ(「力パラメータ」)は、コマンドプロセス384によって提供または更新され、力アルゴリズム計算・アクチュエータ制御プロセス388によって使用される内部パラメータである。この力パラメータは、受信済ホストコマンドに含まれるコマンドパラメータ308から引き出される。コマンドプロセス384は、他のプロセス388および386が最も最近の力パラメータにアクセスできるように、コマンドパラメータを調べ、内部力パラメータを更新する。このプロセス384により実現される力パラメータの提供/更新のプロセスは、図19を参照し後述する。
ステータス更新プロセス386は、コマンドプロセス384から報告パラメータを受信する。受信されたパラメータに基づいて、プロセス386は、センサ28およびクロック29を読み取り、センサ読取り履歴およびタイミング履歴を記憶する。プロセス386は、センサ位置データ、センサデータ履歴、タイミングデータ、またはこのデータの組み合わせから導出される値、例えば速度値や加速値、を計算することもできる。本明細書では、用語「センサデータ」は、センサから直接受信されるデータ(センサ読取り値)および/またはセンサ読取り値から導出される値を指しており、センサデータの履歴も含んでいる。「タイミングデータ」または「時間データ」は、ある期間を表す特定の値を指しており、タイミングデータの履歴も含んでいる。報告プロセス387は、プロセス386により提供され記憶されたデータを定期的に読み取る(あるいは、プロセス386がプロセス387に直接データを送出してもよい)。センサデータおよびタイミングデータは、アルゴリズム計算・アクチュエータ制御プロセス388にも「送出」される。本明細書中の用語「送出される(送られる)」または「受信される」は、別のプロセスが最終的に受信するデータを供給する一つのプロセスを指している。プロセス間でデータを送受するための実際のインプリメンテーションは、異なる環境では変化することがある。例えば、送出プロセスが算出データをメモリに記憶し、受信プロセスが独自の速度でメモリからデータを取り出してもよい。
報告プロセス387は、ステータス更新プロセス386からセンサデータを受信し、適切な時点に、あるいはホスト12からバックグラウンドプロセス382を介してリクエストを受信した時点で、このデータをホストコンピュータ12に報告する。この報告パラメータは、コマンドプロセス384によりプロセス387に送られる。さらに、一般的なステータスおよびエラー情報が、力計算プロセス388から報告プロセス387に送られる。報告プロセス387により実施されるプロセスは、図21を参照してさらに詳細に説明する。他の実施形態では、報告プロセス387は、例えば(「ストリーム」モードで)ホストにデータを通例の速度で報告する場合には、バックグラウンドプロセス382とマージされるようになっていてもよい。
力アルゴリズム計算・アクチュエータ制御プロセス388は、コマンドプロセス384およびステータス更新プロセス386からの力パラメータおよびセンサデータを使用して、ユーザオブジェクト34に印加される力を計算する。力パラメータは、詳細に上述したように、さまざまな力モデルを特徴付けるコマンドパラメータから導出される。プロセス388は、有効な全ての力モデルの影響を組み合わせることにより、アクチュエータ30に印加される合成力を計算する。
図18中のインプリメンテーション380内のプロセス382、384、386、387、および388は、マルチタスク環境を使用することなどによって、マイクロプロセッサ26上で並列に実行されることが好ましい。これらの全てのプロセスを順次に実行するのでは、ユーザオブジェクト34のユーザ操作に対する力フィードバック応答が極めて遅くなってしまう。
図18に示されるインプリメンテーション380は、マイクロプロセッサ26のさまざまなサブプロセスを理論的な区分に分割する方法の一例に過ぎない。他の実施形態では、他のさまざまなインプリメンテーションを設けて、ここで説明したマイクロプロセッサ26の機能の一部または全部を結合させたり、分離させることができる。
図19は、図18のコマンドプロセス382を詳細に示す流れ図である。このプロセスは、390から開始する。最初に、ホストコンピュータは、ステップ391でインタフェース装置14との通信リンクを確立する。これは、インタフェース装置が受信を待っている所定の信号または情報を送ることによって達成できる。この後、インタフェース装置は、コマンドを受信する準備が完了していることを示す応答信号を送ることができる。USB通信インタフェースが使用されている場合には、コマンドプロセス382は、USBアドレスをホストから要求することが好ましい。このUSBアドレスは、この後、プロセッサ382が受信して記憶する。この後データパケットがいつホストから送られても、コマンドプロセッサ384は、データパケットのアドレスをチェックし、そのアドレスを記憶されたアドレスと比較して、そのパケットがマイクロプロセッサ26用であるかどうかを判断することができる。
さらに、USBが実装されている場合、コマンドプロセッサ384は、USB通信プロトコル内でデータをチェックすることができ、報告プロセッサ387は、このプロトコル内でデータを送出することができる。このプロトコルは、当業者にとっては周知であるように、トークンパケットを含んでいる。トークンパケットの後にはデータパケットが続き、データパケットの後にはハンドシェークパケットが続く。ホストコマンドは、データパケット内で暗号化することができる。
次のステップ392では、特定のインタフェース装置に適した適切な力フィードバックコマンドがホストコンピュータによって与えられるように、ホストコンピュータ12が、インタフェース装置14の特徴を必要とする場合がある。これらの特徴としては、例えば、シリアル番号、型式番号、スタイル、ユーザオブジェクトの所与の自由度の数、較正パラメータ、およびインタフェース装置の報告速度を挙げることができる。ホストコンピュータ12からのこのような情報を求めるリクエスト、例えば「リクエスト情報」コマンド、を受信すると、マイクロプロセッサ26は、ステップ392でホストコンピュータ12に情報を送る。ホストコンピュータは、通常、電源投入時または力フィードバックの実施開始時にしか、これらの特徴を要求しない。
次のステップ394では、マイクロプロセッサ26は、ホストコンピュータ12から構成コマンドを受信し、適切な報告パラメータを設定する。前述のように、この報告パラメータは、センサ読取り値、センサ読取り値から計算された値、および/またはセンサ「履歴」(つまり、以前に記録または計算された多数のセンサ値)を含むセンサデータやクロック時間値のような情報が、ステータス更新プロセス386からホストコンピュータ12に送られるかどうかを判断することができる。このセンサデータには、センサエラーデータ、どのボタンがインタフェース装置上で押されたのかを記述するデータの履歴、ユーザオブジェクトの位置、速度、および/または加速度、どの自由度からのデータがホストコンピュータに報告されるのか、データは照会モードまたはストリームモードのどちらでホストコンピュータに報告されるのか、が含まれていてもよい。このような構成の選択肢により、プログラマは、ホストコンピュータがローカルマイクロプロセッサからどのデータを受信するのかを設定できるようになる。例えば、アプリケーションが、二つの所与の自由度のうちの一つだけでユーザオブジェクト位置データを必要とする場合には、マイクロプロセッサが未使用の自由度の情報をホストコンピュータに送るのは処理時間の無駄である。プログラマはホストコンピュータに必要なデータだけを送るように、構成コマンドを用いて報告パラメータを設定することができる。
次のステップ396では、プロセスは、ホストコマンドが受信されたかどうかをチェックする。受信されていない場合、ステップ396は、ホストコマンドが受信されるまで連続的にループする。この後、ステップ398が実施される。このステップでは、受信されたコマンドが構成コマンドであるかどうかをプロセスが判断する。構成コマンドは、前述のように、報告パラメータを設定する。コマンドが構成コマンドである場合は、ステップ400で、適切な報告パラメータが設定し、および/または報告パラメータをリセットして、インタフェース装置の動作中に新しい構成を与える。受信コマンドが構成コマンドではないとステップ398で判断された場合は、ステップ398は、インタフェース装置14の力フィードバック機能を制御する力コマンドを検出する。力コマンドには、上記のホストコマンド(例えば、図9や図14に示されるホストコマンド)が含まれる。これらのホストコマンドは、内部力パラメータに影響を与えるコマンドパラメータを提供する。
ステップ402では、力コマンドおよびコマンドパラメータが、力パラメータ、例えば力コマンドにより指定される特定の力パラダイムまたはモデルの実現に関連する力パラメータ、を設定する。プロセス388は、メモリ内のこのような力パラメータにアクセスし、図22を参照して説明するようにアクチュエータ30を用いて力を印加する。一例を挙げると、力コマンドおよび力パラメータは、インタフェース装置14上の特定のボタンを指定し、ジョルト力モデルを指定されたボタンの各々に割り当てる。この後、ユーザが指定されたボタンを押すと、押されたボタンに割り当てられたジョルトが、現在メモリ内にあるあらゆる力パラメータを用いて起動される。力パラメータの例は、図23を参照して後述する。力パラメータを設定した後、ステップ402では、別のホストコマンドの受信を待つために、制御がステップ396に戻る。
さらに、好ましい実施形態では、プロセス384は、ホストコンピュータ12からの「心拍」信号を所定の時間間隔の後に定期的にチェック/受信している。この信号は、ホストコンピュータが依然としてインタフェース装置14に接続されていること、およびホストが「OK」ステータスであること、を示すための安全性チェックとなる。心拍信号が時間間隔内に受信されない場合、インタフェース装置14は停止状態になって、ホストからの初期化コマンドを待機することができる。この「心拍」信号は、通常信号またはホストコマンドであってもよいし、他の信号が時間間隔内に送られない場合にホストコンピュータが送ることができる心拍信号として特に使用される信号であってもよい。信号がステップ396で受信された後、信号が特定の記憶場所で受信された時間をプロセス384が記憶するようになっていると好適である。プロセス388は、この時間を調べることで、時間間隔を超えたかどうかを判断することができる(これについては、後述する)。
図20は、図18のステータス更新プロセス386を説明する流れ図である。このプロセスは、ステップ410から開始する。ステップ412では、プロセス386は、コマンドプロセス384によって設定された報告パラメータおよび力パラメータを調べる。プロセス386は、コマンドプロセス384によって更新されたメモリ17内の報告パラメータおよび状態パラメータを調べる。報告パラメータと力パラメータの両方から、ステップ414は、どのセンサが読み取られるのかを決定する。力パラメータは、力を計算するためにプロセス388に必要なのはどのセンサデータであるかを判断する。例えば、力パラメータが、y軸のまわりではなくx軸のまわりで力を計算する必要があると判断する場合は、y軸センサからのセンサデータは力の計算には必要ない。報告パラメータは、どのセンサデータをホストコンピュータに報告するのかを決定した。したがって、報告パラメータは、y軸センサデータをホストコンピュータに送る必要がないことも指定することができる。これは、ホストコンピュータがその特定データを無視しているからである。このように、y軸データは力を計算するために使用されず、ホスト12によっても必要とされないため、マイクロプロセッサ26は、ステップ414で、y軸センサを読み取らないことを決定する。
ステップ416は、速度および/または加速度を常に計算するのかどうかを決定する。このステップの結果は、実現される実施形態に依存する。一部の実施形態では、速度/加速度データが力を計算するために必要なのかどうかや、速度/加速度データをホスト12に送る必要があるかどうかにかかわらず速度データおよび/または加速度データを常に計算するようになっていると、ステップがより単純になり、あまり処理時間を必要としなくなる場合がある。他の実施形態では、速度データ/加速データは、このようなデータが力値の計算に必要な場合や、ホスト12がこれらの値を必要とする場合にだけ計算してもよい。さらに別の実施形態では、特定のアプリケーションや他の判断要素に応じて、モード(「常に計算」または「必要なときだけ計算」)を設定してもよい。
速度および加速度を常に計算する実施形態では、ステップ418が実施される。このステップでは、センサ読取り値およびタイミングデータを用いて速度値および/または加速度値が計算される。例えば、記録された位置値および関連する時間間隔の履歴を用いて速度を計算することができる。次に、プロセスはステップ422に続く。このような実施形態を用いない場合は、ステップ420が、速度値および/または加速度値を適切な場合に計算する。プロセス386は、ステップ414と同様に、力パラメータおよび報告パラメータを調べて、速度値および/または加速度値を計算する必要があるかどうかを判断することができる。
ステップ418または420の後、ステップ422が実行される。このステップでは、センサ28、クロック29から読み出され、ステップ418または420で計算されたセンサデータおよびタイミングデータを、プロセス386がメモリ27内に格納する。このセンサデータおよびタイミングデータは、他の入力装置39に関するデータを含んでいてもよい。このようなデータとしては、例えば、ボタンが押されたかどうかに関するもの(センサデータの場合)や、ボタン反復またはボタン保持(「オートファイア」)機能が適切なときに作動できるように、インタフェース装置14上のボタンがどのくらいの時間押されていたのかに関するもの(タイミングデータの場合)を挙げることができる。上記のように、複数のプロセスが並列に実行(マルチタスキンダ)されているため、プロセス386は、マイクロプロセッサ26の処理時間を共用していることが好ましい。この場合、プロセス386は、マイクロプロセッサ26が利用可能になるまでステップ424で待機するか、あるいは故意に別の待機プロセスがマイクロプロセッサ26を使用できるようにしなければならないことがある。さらに、この待機ステップは、一致した時刻またはより遅い時刻に出力データをメモリ27に書き込んで、力計算プロセス388にメモリから出力データを読み取る上でより大きな柔軟性を与えるようにしなければならない場合がある。
図21は、データをホストコンピュータに報告する図18の報告プロセス387を説明する流れ図である。このプロセスは、ステップ430から始まる。ステップ432は、報告を照会モードで行うのか、あるいはストリームモードで行うのかを、コマンドプロセス384によって設定された報告パラメータによって指定されるように決定する。この説明では、照会モードは、ホストコンピュータからの情報を求めるリクエストに基づいた非同期報告方法を使用し、ストリームモードは、所定の時間間隔に基づいた同期報告方法を使用する。
照会報告モードでは、ステップ434が、報告を求めるリクエストがホストコンピュータ12から受信されたかどうかを判断する。リクエストは、報告プロセス387が直接受信してもよいし、あるいは、リクエストをコマンドプロセス384を介して報告プロセス387に中継してもよい。リクエストが受信されると、ステップ436は、図20のステップ422で記憶されるセンサデータおよびタイミングデータ、ならびにプロセス388からのエラー情報および力値をホストに報告(すなわち送出)する。送出されるデータは、構成コマンドにより指定される報告パラメータおよびホストから受信されるリクエストに依存する。例えば、ホスト12が特定の情報を要求することができる実施形態もある。その場合、プロセスは、ステップ432に戻り、照会モードまたはストリームモードが使用されているかどうかを判断する。このように、ここで説明する実施形態では、データ転送中の任意の時点でモードを切り替えることができる。他の実施形態では、一つの特定の報告モードが唯一の利用可能な選択枝である場合もある。この他に、両方のモードを使用することもできるが、インタフェース装置14の動作の開始時に一つモードが一度選択されてしまうと、そのモードを切り替えることはできない。
ストリーム報告モードでは、ステップ438は、報告期間が満了したかどうかを判断する。標準報告期間は、インタフェース装置およびホストコンピュータ12が最初にセットアップされるときに設定されるのが好ましい。期間が満了すると、ステップ440は、報告パラメータに従って、図20のステップ422で記憶されたデータを報告する。期間が満了していない場合は、プロセスはステップ432に戻って、再び報告モードを決定する。
図22は、図18の力アルゴリズム計算・アクチュエータ制御プロセス388を説明する流れ図である。このプロセスは、ステップ450から始まる。各自由度における全ての力は、ステップ450の前の電源投入時、またはホストコンピュータ12からのクリアコマンドの受信時にゼロに初期化される。この後、プロセス388は、ステップ450で開始し、ステップ452に進む。ステップ452では、力を印加しなければならない軸、すなわち自由度が選択される。本明細書では、「軸」は、インタフェース装置14によって与えられる自由度と同義である。2本の軸が印可される力を必要としている場合、ステップ452では、現在の反復で力が印加されなかった軸が選択されることが好ましい。例えば、力がx軸およびy軸のまわりで必要とされる場合であって、ループの前回の反復ではx軸の力が計算されて印加された場合は、y軸が選択されることが好ましい。さらに、選択された軸における合計力は、ステップ452でゼロに初期化される。
ステップ456は、力パラメータに従って選択された次の反射プロセスに応じて選択された軸における力を計算する。このステップには、適切な反射プロセスの選択、必要なセンサデータ、タイミングデータ、および他のデータの検索、ならびに選択された反射プロセスおよび検索されたデータを使用した力値の計算が含まれていることが好ましい。反射プロセスは、力パラメータを調べることによって選択される。力パラメータの現在の値は、現在有効なホストコマンドを反映する。複数のホストコマンド(反射プロセス)が同時に有効となる場合があるので、力を計算するために実行すべき反射プロセスの一つを決定するために、プロセス388によって力パラメータが調べられる。このように、プロセス388は、力パラメータを調べることにより、ホストコンピュータによってどのコマンドが送られたのかを判定し、どの反射プロセスをそれらのコマンドに従って実行すべきかを決定することができる。図5を参照して前述したように、反射プロセスには、プロセスステップや、方程式や、力プロファイルや、センサデータ、タイミングデータ、コマンドパラメータ、入力装置39からの他の入力データ、および/または他の関連情報から力を計算する命令のその他の組み合わせ、が含まれていてもよい。コマンドパラメータは、力パラメータ値に反映されている。したがって、プロセス388は、必要なセンサデータ、タイミングデータ、力パラメータ、および/または力値を計算するために選択された反射プロセスによって必要とされる他のデータを検索する。
ステップ458では、プロセス388は、ステップ456で計算された力値をステップ452で初期化された軸に対する合計力に加算する。他の実施形態では、プロセス388が、合計力値またはステップ458で計算される合計力の一部を制限することがある。例えば、プロセス388が、どの力値が条件力であり、どの力値がオーバレイ力であるかの軌跡を維持している場合、プロセス388は、条件力の総合計を、最大アクチュエータ力出力の所定のパーセンテージ、例えば最大出力の70%、に制限することができる。これにより、使用可能な力範囲の一部を、条件力の上に加えられることがあるオーバレイ力、例えばボタンジョルトや振動、に使用できるようになる。オーバレイ力を全ての条件力の合計の上に加えることができるように、この制限は、有効な全ての条件力が計算された後に実行されることが好ましい。他の実施形態では、他の力を制限してもよい。
次のステップ460では、プロセス388が、現在選択されている軸に関して別の反射プロセスを実行する必要があるかどうかを判断する。別の反射プロセスを実行する必要があるのは、力がまだ計算されず合計力に加算されていない追加ホストコマンドが有効な場合である。この場合、プロセスはステップ456に戻り、力パラメータをチェックし、別の反射プロセスを実行して力を計算し、その力を合計力に加算する。ステップ460で、選択された軸に関してそれ以上実行しなければならない反射プロセスがない場合は、合計力は、選択された軸上で有効な全ての力を表す。この後、選択された軸に関する合計力は、ステップ462でメモリ27に格納される。
ステップ464では、プロセス388が、別の軸(自由度)について合計力値を計算する必要があるかどうかを判断する。必要な場合は、他の軸に関して合計力が計算および記憶されるまで、ステップ452、456、458、460および462が他の軸に関して繰り返される。
ステップ464が、力を計算する必要のある軸(自由度)がないと判断すると、ステップ466は、各軸の合計力を制限することができる。上記で計算された軸の合計力は、インタフェース装置のハードウェア仕様、例えばアクチュエータ力出力、を上回ることがあるため、ステップ466は、合計力をハードウェアの設計範囲内になるように設定する。ステップ466は、前記で計算された合計力が、エラーフラグによって示されるように、ユーザにとって安全でない可能性がある場合に、その合計力を修正することもできる。例えば、好ましい実施形態では、以下のステップ468〜472で説明されるように、安全条件が違反されるとエラーフラグがセットされるようになっていてもよい。これにより、出力値はゼロになる。好ましい実施形態では、プロセス388は、このような安全条件の後に、滑らかに増大する力をユーザオブジェクト34に加える。これは、安全条件の前のレベルで力出力に突然ジャンプすると、ユーザにとって危険な場合があるためである。ステップ466では、プロセス388は、エラータイミング情報を調べることにより、どのくらい前にエラーフラグがセットされたのかチェックすることができ、増大する力の滑らかなランプ関数に従って合計力を求めることができる。
次のステップ468は、ステップ466の結果として生じる各軸での合計力に安全条件を適用する。安全条件は、例えば、図1に示されるような安全スイッチ41が作動するときや、ホストコンピュータ12によって特定のコマンドが送られたときに違反されることがある。安全条件が違反されると、アクチュエータ30に加わる力は、ステップ470でゼロに送られる。この後、ステップ472で違反を示すエラーフラグがセットされ、エラーが発生した時点に関するタイミング情報が書き込まれる。この後、プロセス388は、図20のステップ424と同様に、マイクロプロセッサ26が再び処理を行うための準備が完了するまで、ステップ474で待機する。
さらなる安全機能として、プロセス388は、メモリ27を調べ、ホストの「心拍」信号が要求された時間間隔内で受信されたかどうかを判断することが好ましい。最後の信号が許容される時間間隔の外で受信されたとプロセス388が判断した場合、プロセス388は、ホストが切断されたかエラーを起こしたと想定する。したがって、適切な初期化コマンドがホストから受信されるまで、アクチュエータ30への全ての電力は、安全対策として遮断される。
安全条件がステップ468で違反されない場合、各軸に関する合計力が適切なアクチュエータ30に信号で知らされ、対応する力がユーザオブジェクト34のそれらの軸に印可される。さらに、プロセス388は、あらゆるエラー情報および力値を報告プロセス387に送ることができる(エラー情報は、安全条件に関係なくプロセス387に送られる)。この報告プロセスは、上述のように、ホストにこれらのデータを送るかどうかを判断する。プロセス388は、この情報をメモリに書き込むことが好ましい。報告プロセス387は、このメモリからその情報を取り出すことができる。その後、プロセス388は、マイクロプロセッサ26が準備完了になるまでステップ474で待機する。ステップ474の後、プロセスはステップ452に戻り、力の計算および印加の新しい反復のなかで別の軸を選択する。
次に、インプリメンテーション380の応用例を図23を参照して説明する。この例では、SLUGGISHホストコマンドを送るホストコンピュータ12によって、緩慢力(sluggish force)がユーザオブジェクト34に加えられる。この後、SPRINGホストコマンドを使用するばね復元力が指令される。緩慢力モデルおよびばね復元力モデルの双方は、レート制御パラダイムのところで前述しており、図9にも列挙されている。
図23の力パラメータ480および482は、SLUGGISHコマンドおよびSPRINGコマンドの力パラメータを記憶するために使用されたメモリ27中の記憶場所を表す。マイクロプロセッサ26により実現される各コマンドについての力パラメータを記憶するために一組の記憶場所が同じように割り当てられることが好ましい。ホストコンピュータ12により送られる各ホストコマンド484から生じる力パラメータが示されている。緩慢力パラメータの記憶場所は、正負のXおよびY方向の速度成分に対する減衰定数(B)によりラベル付けされている。同様に、ばねテーブルの記憶場所は、正負のXおよびY軸のばね定数(K)およびXおよびY軸のデッドバンドサイズによりラベル付けされている。
3個のホストコマンド484が、図23に順次に示されている。すなわち、 SLUGGISH(50,X bi)
SLUGGISH(90,X(+)uni)
SPRING(65,X bi,85)
である。
2個のSLUGGISHコマンドパラメータ308は、減衰定数およびスタイルである。この定数は、最大減衰定数のパーセンテージであり、50%および90%となっている。第1のSLUGGISHコマンドのスタイルコマンドパラメータは、X軸上の双方向(bi-directional)の力を示す。第2のSLUGGISHコマンドのスタイルパラメータは、X軸の正の方向におけるX軸上の単方向(uni-directional)の力を示す。
3個のSPRTNG力フィードバックパラメータは、ばね定数、スタイル、およびデッドバンドである。ばね定数パラメータは、最大ばね定数の65%を示している。スタイルパラメータは、力がX軸上で双方向であることを示す。デッドバンドは、最大デッドバンドサイズの85%である。
図9に示されるように、コマンドが有効である時間の長さを設定するために、持続時間コマンドパラメータがホストコマンド484の各々に含まれていてもよい。ただし、この例では、コマンドが無限の持続時間を有するものと仮定されているため、持続時間コマンドパラメータは示されていない。コマンドは、例えば、ホストからのクリアコマンドにより取り消すことができる。この他に、図示のように、コマンドは、同じタイプの別のコマンドによって取消または変更することができる。
要求されたインタフェース装置情報が図19のステップ392でホスト12に送られると、ホスト通信・バックグラウンドプロセス382が、ステップ394またはステップ398のどちらかで構成コマンドを受信する。これらの構成コマンドにより適切な報告パラメータが設定される。これらの報告パラメータは、例えば、各許容自由度、他の入力装置39、位置/速度、照会/ストリームモードなどに応じたフラグとして、上記の装置からホストにデータを報告(および、適切な場合にはモードを選択)するかどうかを示すように実現されていてもよい。最大の効率を得るため、報告パラメータは、X軸に関してしかフラグがセットされない。これは、Y軸データが必要ないためである。ただし、Y軸センサデータは、他の理由でホストコンピュータによって必要とされることがあるため、Y軸センサデータは、依然としてフラグがセットされて、ホストに報告される場合がある。
この後、力パラメータ480および482は、図23に示されるように、SLUGGISHおよびSPRINGホストコマンドならびにこれらが含むコマンドパラメータに基づいて、図19のステップ402で設定される。コマンドSLUGGISH(50,Xbi)によりステップ402は、x軸定数Bx(+)およびBx(−)に対応する力パラメータ記憶場所486に「50」を書き込む。最初の緩慢コマンドが電源投入後インタフェース装置14によって受信される最初のコマンドであると想定されるため、他の全ての力パラメータの残りの記憶場所は全てゼロである。
他のプロセス386および388は、力パラメータ480および482(ならびに、他の反射プロセスに対する他の力パラメータ)を調べ、図20および図22に示されるように実施される。このように、状態更新プロセス386は、図20のステップ414でどのセンサが読み取られるのかを判断すると、力パラメータ480および482を調べ、どのコマンドが有効であるのかを判断する。ばね復元力の復元力パラメータ482のすべてがゼロであるため、ばね復元コマンドは有効ではない(プロセス386および388は、力パラメータのサブセットを見てコマンドが有効であるかどうかを判断することしか実際には必要でない)。しかしながら、力パラメータ480は、二つの値(“50”)を含むため有効である。したがって、x軸センサしか読み取る必要がない(ここでは、報告パラメータによって示されるように、ホストはy軸情報を必要としていないと想定している)。ステップ420(実施されている場合)では、プロセス386が、センサ読取り値(および/またはセンサ読取り値の履歴)およびタイミングデータを計算する。これは、緩慢コマンドが、力を計算するために速度値を必要とするからである(この例では、加速度は関係ない)。
プロセス388は、図22のステップ456で力パラメータ480および482をチェックする。X軸は、ステップ452で選択する唯一の関連軸である。力パラメータ482はすべてゼロであるため、プロセス388は、ばね復元反射プロセスを実行しないことを知っている。力パラメータ480が非ゼロ値を含んでいるため、緩慢反射プロセスは、実行される必要がある。ある例では、反射プロセスは、等式F=BVを含んでいる。ここで、Bは、記憶場所486aおよび486bに記憶された定数であり、Vは、状態更新プロセス386により計算される速度である。Fは、軸を中心としてアクチュエータ30により出力される合計力である。全ての使用可能なホストコマンドが力パラメータを有していることが好ましい。プロセス386および388は、この力パラメータを同じようにチェックして、どのコマンドが有効であるかを判断する。
図23に戻ると、第2コマンドSLUGGISH(90,X+ UNI)は、第1の緩慢コマンドの後にホストコンピュータ12によって送られる。この第2SLUGGISHコマンドは正のx軸において単方向であるため、Bx(+)力パラメータ用の第1記憶場所486aだけが、以前の値に上書きされた新しい定数「90」を有する。ばね復元力パラメータは、SLUGGISHコマンドによって変更されない。第1SLUGGISHコマンドを取り消す一つの方法は、全てのコマンドパラメータをゼロにする第2SLUGGISHコマンドを送ることである。
ステータス更新プロセス386は、第1SLUGGISHコマンドに対する場合と同様に、第2SLUGGISHコマンドに対しても動作する。力アルゴリズム計算・アクチュエータ制御プロセス388も、図22のステップ456で選択された緩慢反射プロセスが(50という定数に基づいた)負のx方向ではなく(90という定数に基づいた)正のx方向における速度に関して異なる緩慢力を計算するという点を除いて、同様に動作する。プロセス388は、ステータス更新プロセス386からのセンサ情報を使用して、ユーザがどの方向にユーザオブジェクトを動かしているのかを判断し、適切な定数を使用する。
図23に戻ると、ホスト12によって送られる第3のコマンドは、SPRINGコマンドSPRING(65,XBI,85)である。このため、図19のステップ402は、Kx(+)およびKx(−)に65を書き込み、DBxに85を書き込むことによって、ばね復元力パラメータ482を変更する。SLUGGISH力パラメータはSPRINGコマンドによる影響を受けないため、SLUGGISH力パラメータは、以前の値とともに有効のままでいる。プロセス388は、緩慢反射プロセスを実行し、力を計算してから、ばね復元反射プロセスを実行し、力を計算する。ばね復元反射プロセスは、例えば、等式F=kxにより実施することができる。ここで、kは、ばね定数であり、xは、原点位置を基準とするユーザオブジェクトの位置である。緩慢反射プロセスおよびばね反射プロセスからの二つの力は、ステップ458で加算されて一つになる。したがって、緩慢力モデルおよび復元力モデルは、図23のSPRINGコマンドの後に、ユーザオブジェクト34上で重ね合わされる。これにより、ユーザオブジェクト34上に粘性の感覚が生じ、同時にユーザオブジェクトの原点位置に向かって力が印加される。
より一般的に述べると、図23に示されない他のコマンドシーケンスのために、任意の数の力モデルを重ね合わせることが可能である。例えば、第1のSLUGGISHコマンドのすぐ後にSPRINGコマンドが続く場合、二つの力を重ね合わせることができる。
この他に、図23に示される三つのコマンドが、マイクロプロセッサ26によって受信され、SPRINGコマンドの後に示される全ての力パラメータがメモリ内のパラメータページとして記憶され、「力環境」を形成してもよい。この力環境がユーザオブジェクト34に適用されることが望まれる場合、力パラメータおよび報告パラメータのページがプロセス386および388によって検索され、処理される。これは、多数の異なるコマンドを同時に適用することが望まれるときに有効な場合がある。マイクロプロセッサは、各ホストコマンドが受信されたときにそのコマンドを適用することはないが、力環境に関する全ての所望の力パラメータを一度にメモリからロードする。
以上、幾つかの好適な実施形態の観点から本発明を説明してきたが、その変更、変形および置換は、明細書を読み、図面を参照すれば当業者にとって明らかとなる。例えば、多くの種類のアクチュエータおよびセンサを本発明に使用することができる。また、オブジェクト34に1以上の自由度を与えるために、多くの種類の機構を含めることができる。さらに、ローカルマイクロプロセッサにホストコンピュータを接続するために、種々のインタフェースを使用することができる。本発明によって、さまざまなタイプの力をユーザオブジェクトに伝達することができる。マイクロコンピュータ上で実行される多くの個々のプロセスで多様なタイプの力モデルを実現することができるが、本明細書には、そのなかの一部のみを記載した。さらに、ローカルマイクロプロセッサ上における反射プロセスの適用は、さまざまな方法で実現することができる。さらにまた、記載を明確にするために特定の専門用語を使用したが、これらの用語は本発明を限定するものではない。したがって、請求の範囲は、本発明の真の趣旨および範囲内に含まれる全ての変更、変形および置換を含むように意図されている。

Claims (11)

  1. グラフィック環境を実行するホストコンピュータと通信するコンピュータ周辺機器であって、
    少なくとも1つの自由度で可動に構成されるユーザ操作可能オブジェクトと、
    前記ユーザ操作可能オブジェクトの位置または動きを検出するように構成されるセンサと、
    少なくとも1つのアクチュエータと、
    複数の反射プロセスを記憶するように構成されるローカルメモリ装置と、
    前記アクチュエータ、前記センサ及び前記ローカルメモリ装置と通信するプロセッサであって、
    前記センサから、センサデータを含むセンサ信号を受信し、
    前記センサデータをホストコンピュータへ送信し、
    前記ホストコンピュータから、前記ホストコンピュータによって実行されるグラフィック環境におけるイベント又は相互作用に基づく高水準ホストコマンドを受信し、
    複数の前記反射プロセスのうちの一つと関連するコマンド識別子とコマンドパラメータとを含む高水準力コマンドに関連する反射プロセスを、複数の前記反射プロセスから選択し、
    前記アクチュエータに、触感を前記ユーザ操作可能オブジェクトに出力せしめるように構成されるアクチュエータ信号を前記反射プロセスに基づいて生成し、
    前記アクチュエータ信号を前記アクチュエータに送信する、
    ように構成される、
    前記プロセッサと、
    を備える、
    コンピュータ周辺機器。
  2. 前記コマンドパラメータは、力の大きさ、力の方向、力の持続時間又はデッドバンド領域の少なくとも一つを含む、請求項1記載のコンピュータ周辺機器。
  3. 前記高水準力コマンドは、複数のコマンドパラメータを含む、請求項1に記載のコンピュータ周辺機器。
  4. 前記コマンドパラメータは、前記触感のための最大力出力を指定する飽和パラメータを含む、請求項1に記載のコンピュータ周辺機器。
  5. 前記飽和パラメータは、前記ユーザ操作可能オブジェクトの変位に対する前記最大力出力を指定し、前記触感がばね力感覚である、請求項4記載のコンピュータ周辺機器。
  6. 前記高水準力コマンドは、複数のコマンドパラメータを含む、請求項1に記載のコンピュータ周辺機器。
  7. 前記触感が条件力感覚である、請求項1記載のコンピュータ周辺機器。
  8. 前記触感は、前記ユーザ操作可能オブジェクトに対して加えられ且つ前記ユーザ操作可能オブジェクトの障壁領域への動きに伴って直線的に増大する抵抗力を与える障壁触感である、請求項1記載のコンピュータ周辺機器。
  9. 前記ホストコマンドは、前記ユーザ操作可能オブジェクトが前記障壁領域内にあるときに前記ユーザ操作可能オブジェクトに対して加えられる抵抗力の大きさを示す硬さパラメータも含む、請求項8記載のコンピュータ周辺機器。
  10. 前記ホストコマンドは、前記ユーザ操作可能オブジェクトの前記自由度における前記障壁領域の位置を示す位置パラメータも含む、請求項8記載のコンピュータ周辺機器。
  11. 前記ユーザ操作可能オブジェクトが前記障壁領域を通って移動する直後に補助力が前記ユーザ操作可能オブジェクトに対して加えられる、請求項8記載のコンピュータ周辺機器。
JP2010263969A 1995-09-27 2010-11-26 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置 Expired - Lifetime JP4929394B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/534,791 1995-09-27
US08/534,791 US5739811A (en) 1993-07-16 1995-09-27 Method and apparatus for controlling human-computer interface systems providing force feedback
US08/566,282 US5734373A (en) 1993-07-16 1995-12-01 Method and apparatus for controlling force feedback interface systems utilizing a host computer
US08/566,282 1995-12-01

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009207107A Division JP4689747B2 (ja) 1995-09-27 2009-09-08 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置

Publications (2)

Publication Number Publication Date
JP2011065678A JP2011065678A (ja) 2011-03-31
JP4929394B2 true JP4929394B2 (ja) 2012-05-09

Family

ID=27064587

Family Applications (3)

Application Number Title Priority Date Filing Date
JP9513599A Pending JPH11514469A (ja) 1995-09-27 1996-09-25 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置
JP2009207107A Expired - Lifetime JP4689747B2 (ja) 1995-09-27 2009-09-08 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置
JP2010263969A Expired - Lifetime JP4929394B2 (ja) 1995-09-27 2010-11-26 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP9513599A Pending JPH11514469A (ja) 1995-09-27 1996-09-25 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置
JP2009207107A Expired - Lifetime JP4689747B2 (ja) 1995-09-27 2009-09-08 ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置

Country Status (6)

Country Link
US (5) US5734373A (ja)
EP (1) EP0852789B1 (ja)
JP (3) JPH11514469A (ja)
CA (1) CA2233136C (ja)
DE (1) DE69636703T2 (ja)
WO (1) WO1997012357A1 (ja)

Families Citing this family (542)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889670A (en) * 1991-10-24 1999-03-30 Immersion Corporation Method and apparatus for tactilely responsive user interface
US6131097A (en) * 1992-12-02 2000-10-10 Immersion Corporation Haptic authoring
US7345672B2 (en) * 1992-12-02 2008-03-18 Immersion Corporation Force feedback system and actuator power management
US5629594A (en) 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US6433771B1 (en) * 1992-12-02 2002-08-13 Cybernet Haptic Systems Corporation Haptic device attribute control
US6801008B1 (en) 1992-12-02 2004-10-05 Immersion Corporation Force feedback system and actuator power management
US5721566A (en) 1995-01-18 1998-02-24 Immersion Human Interface Corp. Method and apparatus for providing damping force feedback
US5734373A (en) 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US6057828A (en) * 1993-07-16 2000-05-02 Immersion Corporation Method and apparatus for providing force sensations in virtual environments in accordance with host software
US5739811A (en) * 1993-07-16 1998-04-14 Immersion Human Interface Corporation Method and apparatus for controlling human-computer interface systems providing force feedback
US5701140A (en) * 1993-07-16 1997-12-23 Immersion Human Interface Corp. Method and apparatus for providing a cursor control interface with force feedback
US5731804A (en) * 1995-01-18 1998-03-24 Immersion Human Interface Corp. Method and apparatus for providing high bandwidth, low noise mechanical I/O for computer systems
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
US6437771B1 (en) * 1995-01-18 2002-08-20 Immersion Corporation Force feedback device including flexure member between actuator and user object
US5625576A (en) 1993-10-01 1997-04-29 Massachusetts Institute Of Technology Force reflecting haptic interface
US5623582A (en) 1994-07-14 1997-04-22 Immersion Human Interface Corporation Computer interface or control input device for laparoscopic surgical instrument and other elongated mechanical objects
CN1135480C (zh) * 1994-07-19 2004-01-21 旭化成株式会社 假想现实感和远程现实感系统
DE69514926T2 (de) * 1994-08-18 2000-10-05 Interval Research Corp Eingabevorrichtung für video mit taktilem feedback, das von dem inhalt des videos abhängt
US6422941B1 (en) * 1994-09-21 2002-07-23 Craig Thorner Universal tactile feedback system for computer video games and simulations
US20030040361A1 (en) * 1994-09-21 2003-02-27 Craig Thorner Method and apparatus for generating tactile feedback via relatively low-burden and/or zero burden telemetry
US5642469A (en) * 1994-11-03 1997-06-24 University Of Washington Direct-drive manipulator for pen-based force display
US5666138A (en) 1994-11-22 1997-09-09 Culver; Craig F. Interface control
DE69623903T2 (de) 1995-05-10 2003-05-15 Nintendo Co Ltd Betätigungsvorrichtung mit analogem steuerknüppel
KR100258391B1 (ko) * 1995-05-10 2000-06-01 야마우치 히로시 아날로그 죠이스틱을 이용한 화상처리시스템
US6241611B1 (en) 1995-05-10 2001-06-05 Nintendo Co., Ltd. Function expansion device and operating device using the function expansion device
US20060206219A1 (en) * 1995-05-30 2006-09-14 Brown David W Motion control systems and methods
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US20100131081A1 (en) * 1995-05-30 2010-05-27 Brown David W Systems and methods for motion control
US7139843B1 (en) 1995-05-30 2006-11-21 Roy-G-Biv Corporation System and methods for generating and communicating motion data through a distributed network
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US5691897A (en) * 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
US5691898A (en) * 1995-09-27 1997-11-25 Immersion Human Interface Corp. Safe and low cost computer peripherals with force feedback for consumer applications
US6166723A (en) * 1995-11-17 2000-12-26 Immersion Corporation Mouse interface device providing force feedback
US6940486B2 (en) * 1995-08-03 2005-09-06 Vulcan Patents Llc Computerized interactor systems and methods for providing same
TW273519B (en) * 1995-09-12 1996-04-01 Konami Co Ltd Driving game machine
US5959613A (en) * 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
US5999168A (en) * 1995-09-27 1999-12-07 Immersion Corporation Haptic accelerator for force feedback computer peripherals
MX9704155A (es) * 1995-10-09 1997-09-30 Nintendo Co Ltd Sistema procesador de imagenes tridimensionales.
US6007428A (en) * 1995-10-09 1999-12-28 Nintendo Co., Ltd. Operation controlling device and video processing system used therewith
JP3544268B2 (ja) 1995-10-09 2004-07-21 任天堂株式会社 三次元画像処理装置およびそれを用いた画像処理方法
US6283857B1 (en) 1996-09-24 2001-09-04 Nintendo Co., Ltd. Three-dimensional image processing apparatus with enhanced automatic and user point of view control
JP3524247B2 (ja) 1995-10-09 2004-05-10 任天堂株式会社 ゲーム機およびそれを用いたゲーム機システム
US5754023A (en) 1995-10-26 1998-05-19 Cybernet Systems Corporation Gyro-stabilized platforms for force-feedback applications
DE19681169B3 (de) * 1995-11-10 2012-03-01 Nintendo Co., Ltd. Steuerhebeleinrichtung
US5825308A (en) 1996-11-26 1998-10-20 Immersion Human Interface Corporation Force feedback interface having isotonic and isometric functionality
US6639581B1 (en) 1995-11-17 2003-10-28 Immersion Corporation Flexure mechanism for interface device
US6704001B1 (en) 1995-11-17 2004-03-09 Immersion Corporation Force feedback device including actuator with moving magnet
US6100874A (en) * 1995-11-17 2000-08-08 Immersion Corporation Force feedback mouse interface
US6155926A (en) 1995-11-22 2000-12-05 Nintendo Co., Ltd. Video game system and method with enhanced three-dimensional character and background control
US6267673B1 (en) 1996-09-20 2001-07-31 Nintendo Co., Ltd. Video game system with state of next world dependent upon manner of entry from previous world via a portal
US6022274A (en) * 1995-11-22 2000-02-08 Nintendo Co., Ltd. Video game system using memory module
US6139433A (en) 1995-11-22 2000-10-31 Nintendo Co., Ltd. Video game system and method with enhanced three-dimensional character and background control due to environmental conditions
US6061004A (en) * 1995-11-26 2000-05-09 Immersion Corporation Providing force feedback using an interface device including an indexing function
EP0864145A4 (en) 1995-11-30 1998-12-16 Virtual Technologies Inc TACTILE FEEDBACK FOR HUMAN / MACHINE INTERFACE
US6169540B1 (en) 1995-12-01 2001-01-02 Immersion Corporation Method and apparatus for designing force sensations in force feedback applications
US8508469B1 (en) 1995-12-01 2013-08-13 Immersion Corporation Networked applications including haptic feedback
US7027032B2 (en) * 1995-12-01 2006-04-11 Immersion Corporation Designing force sensations for force feedback computer applications
US6147674A (en) * 1995-12-01 2000-11-14 Immersion Corporation Method and apparatus for designing force sensations in force feedback computer applications
US6219032B1 (en) 1995-12-01 2001-04-17 Immersion Corporation Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface
US5956484A (en) * 1995-12-13 1999-09-21 Immersion Corporation Method and apparatus for providing force feedback over a computer network
US6028593A (en) 1995-12-01 2000-02-22 Immersion Corporation Method and apparatus for providing simulated physical interactions within computer generated environments
US6300936B1 (en) 1997-11-14 2001-10-09 Immersion Corporation Force feedback system including multi-tasking graphical host environment and interface device
US6078308A (en) * 1995-12-13 2000-06-20 Immersion Corporation Graphical click surfaces for force feedback applications to provide user selection using cursor interaction with a trigger position within a boundary of a graphical object
US6161126A (en) * 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
SE519661C2 (sv) * 1996-02-23 2003-03-25 Immersion Corp Pekdon och förfarande för markering av grafiska detaljer på en display med sensorisk återkoppling vid påträffande av nämnda detalj
US6050718A (en) * 1996-03-28 2000-04-18 Immersion Corporation Method and apparatus for providing high bandwidth force feedback with improved actuator feel
US6111577A (en) * 1996-04-04 2000-08-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US7225404B1 (en) 1996-04-04 2007-05-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US6374255B1 (en) 1996-05-21 2002-04-16 Immersion Corporation Haptic authoring
JP2828953B2 (ja) * 1996-05-31 1998-11-25 コナミ株式会社 遊技機の手動操作装置
US5921780A (en) * 1996-06-28 1999-07-13 Myers; Nicole J. Racecar simulator and driver training system and method
US6125385A (en) * 1996-08-01 2000-09-26 Immersion Corporation Force feedback implementation in web pages
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
AU734153B2 (en) * 1996-08-09 2001-06-07 Konami Digital Entertainment Co., Ltd. A driving game machine and a storage medium for storing a driving game program
US6106301A (en) * 1996-09-04 2000-08-22 Ht Medical Systems, Inc. Interventional radiology interface apparatus and method
US6929481B1 (en) * 1996-09-04 2005-08-16 Immersion Medical, Inc. Interface device and method for interfacing instruments to medical procedure simulation systems
US7815436B2 (en) 1996-09-04 2010-10-19 Immersion Corporation Surgical simulation interface device and method
US6024576A (en) * 1996-09-06 2000-02-15 Immersion Corporation Hemispherical, high bandwidth mechanical interface for computer systems
US6241610B1 (en) 1996-09-20 2001-06-05 Nintendo Co., Ltd. Three-dimensional image processing system having dynamically changing character polygon number
US6244959B1 (en) 1996-09-24 2001-06-12 Nintendo Co., Ltd. Three-dimensional image processing system with enhanced character control
US6139434A (en) * 1996-09-24 2000-10-31 Nintendo Co., Ltd. Three-dimensional image processing apparatus with enhanced automatic and user point of view control
AU737919B2 (en) * 1996-10-11 2001-09-06 Sony Computer Entertainment Inc. Operating device for game machine
US6411276B1 (en) * 1996-11-13 2002-06-25 Immersion Corporation Hybrid control of haptic feedback for host computer and interface device
US6758755B2 (en) 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US8235821B2 (en) 1996-11-14 2012-08-07 Bally Gaming, Inc. Progressive controller and TCP/IP in gaming system
US20080227534A1 (en) * 1996-11-14 2008-09-18 Bally Gaming, Inc. Gaming system with savable game states
US6154201A (en) * 1996-11-26 2000-11-28 Immersion Corporation Control knob with multiple degrees of freedom and force feedback
US6686911B1 (en) 1996-11-26 2004-02-03 Immersion Corporation Control knob with control modes and force feedback
US6128006A (en) 1998-03-26 2000-10-03 Immersion Corporation Force feedback mouse wheel and other control wheels
US7489309B2 (en) * 1996-11-26 2009-02-10 Immersion Corporation Control knob with multiple degrees of freedom and force feedback
CA2278726C (en) * 1997-01-27 2004-08-31 Immersion Corporation Method and apparatus for providing high bandwidth, realistic force feedback including an improved actuator
US6996096B2 (en) * 1997-02-14 2006-02-07 Canon Kabushiki Kaisha Communication apparatus and a method of controlling a communication apparatus
US6954899B1 (en) 1997-04-14 2005-10-11 Novint Technologies, Inc. Human-computer interface including haptically controlled interactions
US20060053371A1 (en) * 1997-04-14 2006-03-09 Anderson Thomas G Navigation and viewing in a multidimensional space
US6020876A (en) 1997-04-14 2000-02-01 Immersion Corporation Force feedback interface with selective disturbance filter
US6641479B1 (en) 1997-04-24 2003-11-04 Sony Computer Entertainment, Inc. Control unit and system utilizing the control unit
JPH10295937A (ja) * 1997-04-24 1998-11-10 Sony Computer Entertainment:Kk ゲーム機用操作装置
US6262712B1 (en) * 1997-04-24 2001-07-17 Microsoft Corporation Handle sensor with fade-in
US6005551A (en) * 1997-04-25 1999-12-21 Microsoft Corporation Offline force effect rendering
US6285351B1 (en) 1997-04-25 2001-09-04 Immersion Corporation Designing force sensations for computer applications including sounds
US6292170B1 (en) 1997-04-25 2001-09-18 Immersion Corporation Designing compound force sensations for computer applications
JP3411584B2 (ja) * 1997-05-30 2003-06-03 日本碍子株式会社 表示装置
US6256047B1 (en) * 1997-06-04 2001-07-03 Konami Co., Ltd. Method of judging hits and computer-readable storage medium storing game data
JP3167963B2 (ja) * 1997-07-07 2001-05-21 コナミ株式会社 手動操作装置およびゲーム装置
JP3655438B2 (ja) 1997-07-17 2005-06-02 任天堂株式会社 ビデオゲームシステム
GB2363584B (en) * 1997-07-17 2002-02-20 Nintendo Co Ltd Video game system
US5958027A (en) * 1997-08-05 1999-09-28 Advanced Micro Devices, Inc. Method and system for optimizing the flow of isochronous data and clock rate information
US6292174B1 (en) 1997-08-23 2001-09-18 Immersion Corporation Enhanced cursor control using limited-workspace force feedback devices
US6252579B1 (en) 1997-08-23 2001-06-26 Immersion Corporation Interface device and method for providing enhanced cursor control with force feedback
TW389918B (en) * 1997-08-24 2000-05-11 Sony Computer Entertainment Inc Game apparatus, game machine manipulation device, game system and interactive communication method for game apparatus
US20010032278A1 (en) * 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US6020875A (en) * 1997-10-31 2000-02-01 Immersion Corporation High fidelity mechanical transmission system and interface device
US6104382A (en) * 1997-10-31 2000-08-15 Immersion Corporation Force feedback transmission mechanisms
US6281651B1 (en) 1997-11-03 2001-08-28 Immersion Corporation Haptic pointing devices
US6252583B1 (en) * 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
US6243078B1 (en) * 1998-06-23 2001-06-05 Immersion Corporation Pointing device with forced feedback button
US6088019A (en) * 1998-06-23 2000-07-11 Immersion Corporation Low cost force feedback device with actuator for non-primary axis
US6211861B1 (en) 1998-06-23 2001-04-03 Immersion Corporation Tactile mouse device
US8020095B2 (en) 1997-11-14 2011-09-13 Immersion Corporation Force feedback system including multi-tasking graphical host environment
US6448977B1 (en) 1997-11-14 2002-09-10 Immersion Corporation Textures and other spatial sensations for a relative haptic interface device
US6256011B1 (en) * 1997-12-03 2001-07-03 Immersion Corporation Multi-function control device with force feedback
US6191796B1 (en) 1998-01-21 2001-02-20 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment
US6437770B1 (en) 1998-01-26 2002-08-20 University Of Washington Flat-coil actuator having coil embedded in linkage
IL123073A0 (en) 1998-01-26 1998-09-24 Simbionix Ltd Endoscopic tutorial system
EP1051698B1 (en) * 1998-01-28 2018-01-17 Immersion Medical, Inc. Interface device and method for interfacing instruments to vascular access simulation systems
GB2349730B (en) * 1998-01-28 2003-04-09 Ht Medical Systems Inc Interface device and method for interfacing instruments to medical procedure simulation system
US6304091B1 (en) 1998-02-10 2001-10-16 Immersion Corporation Absolute position sensing by phase shift detection using a variable capacitor
US6878066B2 (en) * 1998-02-13 2005-04-12 Freedom Wave Llc Wireless game control units
JPH11239674A (ja) * 1998-02-26 1999-09-07 Namco Ltd ゲーム機用コントローラ
US6960217B2 (en) 2001-11-28 2005-11-01 Aptus Endosystems, Inc. Endovascular aneurysm repair system
US7491232B2 (en) 1998-09-18 2009-02-17 Aptus Endosystems, Inc. Catheter-based fastener implantation apparatus and methods with implantation force resolution
US8075570B2 (en) * 2001-11-28 2011-12-13 Aptus Endosystems, Inc. Intraluminal prosthesis attachment systems and methods
US20080055241A1 (en) * 1998-03-26 2008-03-06 Immersion Corporation Systems and Methods for Haptic Feedback Effects for Control Knobs
US6067077A (en) 1998-04-10 2000-05-23 Immersion Corporation Position sensing for force feedback devices
US6300938B1 (en) 1998-04-13 2001-10-09 Immersion Corporation Multiple-cylinder control device for computers and other electronic apparatus
GB2336433B (en) * 1998-04-14 2002-02-06 Mitutoyo Corp Touch signal probe
US6704683B1 (en) 1998-04-28 2004-03-09 Immersion Corporation Direct velocity estimation for encoders using nonlinear period measurement
GB2343499B (en) * 1998-06-23 2002-06-12 Immersion Corp Low cost force feedback devices
US6697043B1 (en) 1999-12-21 2004-02-24 Immersion Corporation Haptic interface device and actuator assembly providing linear haptic sensations
US6184868B1 (en) 1998-09-17 2001-02-06 Immersion Corp. Haptic feedback control devices
US6429846B2 (en) * 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6707443B2 (en) * 1998-06-23 2004-03-16 Immersion Corporation Haptic trackball device
US6552722B1 (en) 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US6421048B1 (en) * 1998-07-17 2002-07-16 Sensable Technologies, Inc. Systems and methods for interacting with virtual objects in a haptic virtual reality environment
US6417638B1 (en) 1998-07-17 2002-07-09 Sensable Technologies, Inc. Force reflecting haptic interface
US6985133B1 (en) 1998-07-17 2006-01-10 Sensable Technologies, Inc. Force reflecting haptic interface
US7038667B1 (en) 1998-10-26 2006-05-02 Immersion Corporation Mechanisms for control knobs and other interface devices
WO2000026891A1 (en) * 1998-11-04 2000-05-11 Immersion Corporation Force feedback device including actuator with moving magnet
US6339419B1 (en) * 1998-11-10 2002-01-15 Lord Corporation Magnetically-controllable, semi-active haptic interface system and apparatus
US6317119B1 (en) * 1998-11-13 2001-11-13 Creative Technology Ltd Speed-compensated joystick
US6650338B1 (en) 1998-11-24 2003-11-18 Interval Research Corporation Haptic interaction with video and image data
US6664666B2 (en) 1998-12-23 2003-12-16 Engineering Matters, Inc. Motor assembly allowing output in multiple degrees of freedom
US6320284B1 (en) 1998-12-23 2001-11-20 Engineering Matters, Inc. Motor assembly allowing output in multiple degrees of freedom
AU1884100A (en) * 1999-01-08 2000-07-24 Meritor Light Vehicle Systems (Uk) Limited A method of determining whether a movable component of an apparatus meets predetermined movement characteristics
US6781569B1 (en) 1999-06-11 2004-08-24 Immersion Corporation Hand controller
US7749089B1 (en) 1999-02-26 2010-07-06 Creative Kingdoms, Llc Multi-media interactive play system
US6404417B1 (en) * 1999-03-22 2002-06-11 Logitech Europe S.A. Direct drive rotational sensor adapted to withstand off-axis loading
US6999955B1 (en) * 1999-04-20 2006-02-14 Microsoft Corporation Systems and methods for estimating and integrating measures of human cognitive load into the behavior of computational applications and services
US7046229B1 (en) 1999-04-20 2006-05-16 Microsoft Corporation Computer input device providing absolute and relative positional information
US6424356B2 (en) * 1999-05-05 2002-07-23 Immersion Corporation Command of force sensations in a forceback system using force effect suites
US6762745B1 (en) * 1999-05-10 2004-07-13 Immersion Corporation Actuator control providing linear and continuous force output
US6903721B2 (en) * 1999-05-11 2005-06-07 Immersion Corporation Method and apparatus for compensating for position slip in interface devices
US7106888B1 (en) * 1999-05-25 2006-09-12 Silverbrook Research Pty Ltd Signature capture via interface surface
DE20022244U1 (de) * 1999-07-01 2001-11-08 Immersion Corp Steuerung vibrotaktiler Empfindungen für Haptische Rückkopplungsvorrichtungen
US8169402B2 (en) * 1999-07-01 2012-05-01 Immersion Corporation Vibrotactile haptic feedback devices
US7561142B2 (en) * 1999-07-01 2009-07-14 Immersion Corporation Vibrotactile haptic feedback devices
US6693622B1 (en) 1999-07-01 2004-02-17 Immersion Corporation Vibrotactile haptic feedback devices
US6337678B1 (en) 1999-07-21 2002-01-08 Tactiva Incorporated Force feedback computer input and output device with coordinated haptic elements
US6564168B1 (en) 1999-09-14 2003-05-13 Immersion Corporation High-resolution optical encoder with phased-array photodetectors
DE20080209U1 (de) * 1999-09-28 2001-08-09 Immersion Corp Steuerung von haptischen Empfindungen für Schnittstellenvorrichtungen mit Vibrotaktiler Rückkopplung
JP3847058B2 (ja) * 1999-10-04 2006-11-15 任天堂株式会社 ゲームシステム及びそれに用いられるゲーム情報記憶媒体
US6375572B1 (en) 1999-10-04 2002-04-23 Nintendo Co., Ltd. Portable game apparatus with acceleration sensor and information storage medium storing a game progam
US8032605B2 (en) * 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US20100131078A1 (en) * 1999-10-27 2010-05-27 Brown David W Event driven motion systems
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US6743104B1 (en) 1999-11-18 2004-06-01 Nintendo Co., Ltd. Portable game machine
US6693626B1 (en) 1999-12-07 2004-02-17 Immersion Corporation Haptic feedback using a keyboard device
US6822635B2 (en) 2000-01-19 2004-11-23 Immersion Corporation Haptic interface for laptop computers and other portable devices
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
US7878905B2 (en) 2000-02-22 2011-02-01 Creative Kingdoms, Llc Multi-layered interactive play experience
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US7965276B1 (en) * 2000-03-09 2011-06-21 Immersion Corporation Force output adjustment in force feedback devices based on user contact
US6616613B1 (en) * 2000-04-27 2003-09-09 Vitalsines International, Inc. Physiological signal monitoring system
DE10021369B4 (de) * 2000-05-02 2005-03-31 Mitterauer, Bernhard, Prof. Dr. Rechensystem, insbesondere zur Simulation der menschlichen Wahrnehmung durch Sinnesorgane
US6724400B1 (en) 2000-05-06 2004-04-20 Novint Technologies, Inc. Human-computer interface incorporating personal and application domains
US6833826B1 (en) 2000-05-06 2004-12-21 Novint Technologies, Inc. Human-computer interface
US6710764B1 (en) 2000-05-09 2004-03-23 Logitech Europe S.A. Method and system for processing force feedback effects generated at a host for playback at a physical interaction device
EP2385518A3 (en) 2000-05-24 2012-02-15 Immersion Medical, Inc. Haptic devices using electroactive polymers
US7159008B1 (en) 2000-06-30 2007-01-02 Immersion Corporation Chat interface with haptic feedback functionality
US6906697B2 (en) 2000-08-11 2005-06-14 Immersion Corporation Haptic sensations for tactile feedback interface devices
US7117136B1 (en) * 2000-08-18 2006-10-03 Linden Research, Inc. Input and feedback system
US7084854B1 (en) * 2000-09-28 2006-08-01 Immersion Corporation Actuator for providing tactile sensations and device for directional tactile sensations
US7182691B1 (en) 2000-09-28 2007-02-27 Immersion Corporation Directional inertial tactile feedback using rotating masses
WO2002027705A1 (en) 2000-09-28 2002-04-04 Immersion Corporation Directional tactile feedback for haptic feedback interface devices
US6995744B1 (en) 2000-09-28 2006-02-07 Immersion Corporation Device and assembly for providing linear tactile sensations
US6727924B1 (en) 2000-10-17 2004-04-27 Novint Technologies, Inc. Human-computer interface including efficient three-dimensional controls
US7066781B2 (en) * 2000-10-20 2006-06-27 Denise Chapman Weston Children's toy with wireless tag/transponder
AU2001295801A1 (en) * 2000-10-27 2002-05-06 Makex Limited Haptic input device
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
WO2002054184A2 (en) * 2001-01-04 2002-07-11 Roy-G-Biv Corporation Systems and methods for transmitting motion control data
US6958752B2 (en) 2001-01-08 2005-10-25 Sensable Technologies, Inc. Systems and methods for three-dimensional modeling
US6641480B2 (en) * 2001-01-29 2003-11-04 Microsoft Corporation Force feedback mechanism for gamepad device
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
WO2002071241A1 (en) * 2001-02-09 2002-09-12 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US9625905B2 (en) * 2001-03-30 2017-04-18 Immersion Corporation Haptic remote control for toys
US7202851B2 (en) * 2001-05-04 2007-04-10 Immersion Medical Inc. Haptic interface for palpation simulation
US20020171675A1 (en) * 2001-05-15 2002-11-21 International Business Machines Corporation Method and system for graphical user interface (GUI) widget having user-selectable mass
US6937033B2 (en) * 2001-06-27 2005-08-30 Immersion Corporation Position sensor with resistive element
US7056123B2 (en) * 2001-07-16 2006-06-06 Immersion Corporation Interface apparatus with cable-driven force feedback and grounded actuators
JP3958944B2 (ja) * 2001-07-17 2007-08-15 アルプス電気株式会社 多機能入力装置
US6728601B2 (en) * 2001-07-19 2004-04-27 International Business Machines Corporation Multiple host power control system and method
US8364342B2 (en) * 2001-07-31 2013-01-29 Immersion Corporation Control wheel with haptic feedback
DE10138537B4 (de) * 2001-08-06 2006-07-06 Siemens Ag Taktiles Feedback zur Darstellung von Gewebeelastizität
US20030069998A1 (en) * 2001-08-31 2003-04-10 Brown David W. Motion services protocol accessible through uniform resource locator (URL)
FR2829338B1 (fr) * 2001-09-03 2003-10-31 Schneider Automation Equipement d'automatisme equipe d'une liaison de type usb
EP1293950A1 (en) * 2001-09-18 2003-03-19 BRITISH TELECOMMUNICATIONS public limited company Haptic interface
US7225115B2 (en) * 2001-10-04 2007-05-29 Novint Technologies, Inc. Coordinating haptics with visual images in a human-computer interface
JP3920618B2 (ja) * 2001-10-18 2007-05-30 アルプス電気株式会社 力覚付与入力装置
EP1440414B1 (en) * 2001-10-30 2016-08-17 Immersion Corporation Methods and apparatus for providing haptic feedback in interacting with virtual pets
US20030210259A1 (en) * 2001-11-14 2003-11-13 Liu Alan V. Multi-tactile display haptic interface device
US7162306B2 (en) * 2001-11-19 2007-01-09 Medtronic Physio - Control Corp. Internal medical device communication bus
US20030095151A1 (en) * 2001-11-20 2003-05-22 Shackleford J. Barry Real-time interactive adjustment of control parameters for a genetic algorithm computer
US9320503B2 (en) 2001-11-28 2016-04-26 Medtronic Vascular, Inc. Devices, system, and methods for guiding an operative tool into an interior body region
US8231639B2 (en) 2001-11-28 2012-07-31 Aptus Endosystems, Inc. Systems and methods for attaching a prosthesis within a body lumen or hollow organ
US20070073389A1 (en) 2001-11-28 2007-03-29 Aptus Endosystems, Inc. Endovascular aneurysm devices, systems, and methods
US20050177180A1 (en) 2001-11-28 2005-08-11 Aptus Endosystems, Inc. Devices, systems, and methods for supporting tissue and/or structures within a hollow body organ
US20110087320A1 (en) * 2001-11-28 2011-04-14 Aptus Endosystems, Inc. Devices, Systems, and Methods for Prosthesis Delivery and Implantation, Including a Prosthesis Assembly
JP4785320B2 (ja) * 2002-01-31 2011-10-05 キヤノン株式会社 記憶装置
US6876248B2 (en) * 2002-02-14 2005-04-05 Rambus Inc. Signaling accommodation
US7333785B1 (en) * 2002-02-20 2008-02-19 Logitech Europe S.A. Power management for wireless peripheral device with force feedback
JP4263870B2 (ja) * 2002-03-11 2009-05-13 アルプス電気株式会社 ハプティックコントローラ
JP4061105B2 (ja) * 2002-03-29 2008-03-12 アルプス電気株式会社 力覚付与装置
US6904823B2 (en) 2002-04-03 2005-06-14 Immersion Corporation Haptic shifting devices
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US7369115B2 (en) * 2002-04-25 2008-05-06 Immersion Corporation Haptic devices having multiple operational modes including at least one resonant mode
US7161580B2 (en) * 2002-04-25 2007-01-09 Immersion Corporation Haptic feedback using rotary harmonic moving mass
US6671651B2 (en) 2002-04-26 2003-12-30 Sensable Technologies, Inc. 3-D selection and manipulation with a multiple dimension haptic interface
US7028415B2 (en) * 2002-04-30 2006-04-18 Alan Heinzen Canted manually loaded produce dryer
JP2003325972A (ja) 2002-05-17 2003-11-18 Nintendo Co Ltd 傾き操作に関連して音と画像を変化させるゲーム装置およびそのゲームプログラム
EP1376316A1 (en) * 2002-06-26 2004-01-02 BRITISH TELECOMMUNICATIONS public limited company Haptic communications
US6948948B2 (en) * 2002-07-30 2005-09-27 D&C Technology Co., Ltd. PC cartridge having enhanced front connecting structure
US7674184B2 (en) 2002-08-01 2010-03-09 Creative Kingdoms, Llc Interactive water attraction and quest game
US6990435B2 (en) * 2002-10-10 2006-01-24 Harmonic Drive Systems Inc. Tactile sensing method and system
JP2004139845A (ja) * 2002-10-17 2004-05-13 Alps Electric Co Ltd 力覚付与型入力装置
JP4314810B2 (ja) * 2002-11-18 2009-08-19 富士ゼロックス株式会社 触覚インタフェース装置
US20040113931A1 (en) * 2002-12-05 2004-06-17 Anderson Thomas G. Human-computer interfaces incorporating haptics and path-based interaction
US20060136630A1 (en) * 2002-12-08 2006-06-22 Immersion Corporation, A Delaware Corporation Methods and systems for providing haptic messaging to handheld communication devices
US7779166B2 (en) * 2002-12-08 2010-08-17 Immersion Corporation Using haptic effects to enhance information content in communications
US8059088B2 (en) * 2002-12-08 2011-11-15 Immersion Corporation Methods and systems for providing haptic messaging to handheld communication devices
US8830161B2 (en) * 2002-12-08 2014-09-09 Immersion Corporation Methods and systems for providing a virtual touch haptic effect to handheld communication devices
WO2004053644A2 (en) * 2002-12-08 2004-06-24 Immersion Corporation Using haptic effects to enhance information content in communications
US20060136631A1 (en) * 2002-12-08 2006-06-22 Immersion Corporation, A Delaware Corporation Methods and systems for providing haptic messaging to handheld communication devices
DE20300185U1 (de) * 2003-01-08 2003-04-10 Encer Inc Massagevorrichtung
US7522155B2 (en) 2003-01-16 2009-04-21 Panasonic Corporation Trackball device and vehicle incorporating the same
JP3579041B2 (ja) * 2003-03-13 2004-10-20 コナミ株式会社 ゲームシステム、ゲーム装置、ゲーム制御方法、ならびに、プログラム
US9446319B2 (en) 2003-03-25 2016-09-20 Mq Gaming, Llc Interactive gaming toy
FR2855282B1 (fr) * 2003-05-22 2006-01-27 Univ Lille Sciences Tech Dispositif et procede de commande d'un retour de force a appliquer a au moins une manette d'une interface motorisee
US20050001823A1 (en) * 2003-06-04 2005-01-06 Dort David Bogart Real motion detection sampling and recording for writing instruments and small tracking instruments using electrically active material with viscosity
GB2418475B (en) * 2003-06-09 2007-10-24 Immersion Corp Interactive gaming systems with haptic feedback
EP1632428A4 (en) * 2003-06-12 2010-08-25 Toyota Motor Co Ltd COAXIAL MOTORCYCLE
EP1658448A2 (en) 2003-08-29 2006-05-24 Engineered Support Systems, Inc. Electronically programmable actively damped sensor mount
GB0322489D0 (en) * 2003-09-25 2003-10-29 British Telecomm Haptics transmission systems
US20060064503A1 (en) * 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20070022194A1 (en) * 2003-09-25 2007-01-25 Brown David W Database event driven motion systems
GB0322875D0 (en) * 2003-09-30 2003-10-29 British Telecomm Haptics transmission systems
US7132928B2 (en) * 2003-10-01 2006-11-07 Perricone Nicholas V Threat detection system interface
JP4446712B2 (ja) * 2003-10-23 2010-04-07 アルプス電気株式会社 力覚付与型入力装置
US7096852B2 (en) 2003-10-30 2006-08-29 Immersion Corporation Haptic throttle devices and methods
US7382378B2 (en) 2003-10-30 2008-06-03 Sensable Technologies, Inc. Apparatus and methods for stenciling an image
US7411576B2 (en) * 2003-10-30 2008-08-12 Sensable Technologies, Inc. Force reflecting haptic interface
US7095418B2 (en) * 2003-10-30 2006-08-22 Sensable Technologies, Inc. Apparatus and methods for texture mapping
DE10350903A1 (de) * 2003-10-31 2005-06-09 Siemens Ag Intuitive und sichere Steuerung von Bedieneingaben in Softwarekomponenten
EP1690173A4 (en) * 2003-11-17 2010-04-21 Roy G Biv Corp COMMAND PROCESSING SYSTEMS AND METHODS
FR2862942B1 (fr) * 2003-12-01 2006-03-03 Messier Bugatti Procede de gestion d'une architecture de systeme de freinage pour aeronef equipe de freins a actionneurs electromecaniques, et architecture faisant application
US7348968B2 (en) * 2003-12-02 2008-03-25 Sony Corporation Wireless force feedback input device
FI118149B (fi) * 2003-12-05 2007-07-31 Elisa Oyj Menetelmä, järjestelmä, mittauslaite ja vastaanottolaite palautteen antamiseksi
KR20050054731A (ko) * 2003-12-05 2005-06-10 한국전자통신연구원 햅틱 시뮬레이션 시스템 및 그 시스템에서의 실시간 촉감지원 방법
US20060066569A1 (en) * 2003-12-08 2006-03-30 Immersion Corporation, A Delaware Corporation Methods and systems for providing haptic messaging to handheld communication devices
US7889209B2 (en) * 2003-12-10 2011-02-15 Sensable Technologies, Inc. Apparatus and methods for wrapping texture onto the surface of a virtual object
US7626589B2 (en) * 2003-12-10 2009-12-01 Sensable Technologies, Inc. Haptic graphical user interface for adjusting mapped texture
US7742036B2 (en) * 2003-12-22 2010-06-22 Immersion Corporation System and method for controlling haptic devices having multiple operational modes
US7149596B2 (en) * 2004-01-13 2006-12-12 Sensable Technologies, Inc. Apparatus and methods for modifying a model of an object to enforce compliance with a manufacturing constraint
US7283120B2 (en) 2004-01-16 2007-10-16 Immersion Corporation Method and apparatus for providing haptic feedback having a position-based component and a predetermined time-based component
US20050162402A1 (en) * 2004-01-27 2005-07-28 Watanachote Susornpol J. Methods of interacting with a computer using a finger(s) touch sensing input device with visual feedback
US20050174337A1 (en) * 2004-02-11 2005-08-11 Nielsen Paul S. Electronic handheld drawing and gaming system using television monitor
JP4408045B2 (ja) * 2004-02-17 2010-02-03 富士通コンポーネント株式会社 アクチュエータ
US7867141B2 (en) * 2004-07-21 2011-01-11 Panasonic Electric Works Co., Ltd. Physical activity measuring system
JP4473685B2 (ja) * 2004-09-01 2010-06-02 任天堂株式会社 ゲーム装置およびゲームプログラム
US20060073455A1 (en) * 2004-09-30 2006-04-06 Cardiac Pacemakers, Inc. Virtual reality based prototyping system for medical devices
JP4860625B2 (ja) * 2004-10-08 2012-01-25 イマージョン コーポレーション タッチ式入力装置におけるボタンおよびスクロール動作シミュレーション用の触覚フィードバック
US7139621B2 (en) * 2004-12-16 2006-11-21 Caterpillar Inc Floating deadband control
US7557796B2 (en) * 2004-12-22 2009-07-07 Delphi Technologies, Inc. Joystick sensor with two-dimensional image sensing
US7978173B2 (en) * 2005-01-14 2011-07-12 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Pointing device including a moveable puck with mechanical detents
US7542816B2 (en) * 2005-01-27 2009-06-02 Outland Research, Llc System, method and computer program product for automatically selecting, suggesting and playing music media files
US20070189544A1 (en) 2005-01-15 2007-08-16 Outland Research, Llc Ambient sound responsive media player
US20070156676A1 (en) * 2005-09-09 2007-07-05 Outland Research, Llc System, Method and Computer Program Product for Intelligent Groupwise Media Selection
US20060229058A1 (en) * 2005-10-29 2006-10-12 Outland Research Real-time person-to-person communication using geospatial addressing
US20060161621A1 (en) * 2005-01-15 2006-07-20 Outland Research, Llc System, method and computer program product for collaboration and synchronization of media content on a plurality of media players
US20070276870A1 (en) * 2005-01-27 2007-11-29 Outland Research, Llc Method and apparatus for intelligent media selection using age and/or gender
US20060184800A1 (en) * 2005-02-16 2006-08-17 Outland Research, Llc Method and apparatus for using age and/or gender recognition techniques to customize a user interface
US20070061314A1 (en) * 2005-02-01 2007-03-15 Outland Research, Llc Verbal web search with improved organization of documents based upon vocal gender analysis
US20080007517A9 (en) * 2005-02-23 2008-01-10 Northwestern University Electrical damping system
US20060206379A1 (en) * 2005-03-14 2006-09-14 Outland Research, Llc Methods and apparatus for improving the matching of relevant advertisements with particular users over the internet
US20060223637A1 (en) * 2005-03-31 2006-10-05 Outland Research, Llc Video game system combining gaming simulation with remote robot control and remote robot feedback
US20060223635A1 (en) * 2005-04-04 2006-10-05 Outland Research method and apparatus for an on-screen/off-screen first person gaming experience
US20060256008A1 (en) * 2005-05-13 2006-11-16 Outland Research, Llc Pointing interface for person-to-person information exchange
US20060236121A1 (en) * 2005-04-14 2006-10-19 Ibm Corporation Method and apparatus for highly secure communication
US20060236120A1 (en) * 2005-04-14 2006-10-19 Ibm Corporation Method and apparatus employing stress detection for highly secure communication
US20060241864A1 (en) * 2005-04-22 2006-10-26 Outland Research, Llc Method and apparatus for point-and-send data transfer within an ubiquitous computing environment
US20060277466A1 (en) * 2005-05-13 2006-12-07 Anderson Thomas G Bimodal user interaction with a simulated object
US20070150188A1 (en) * 2005-05-27 2007-06-28 Outland Research, Llc First-person video-based travel planning system
US7618413B2 (en) 2005-06-22 2009-11-17 Boston Scientific Scimed, Inc. Medical device control system
US20070027668A1 (en) * 2005-07-18 2007-02-01 Kenny Chen Signal simulator for generating a string of user input signals to stimulate redundant operation of a user input device of a computerized apparatus
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
US8313379B2 (en) * 2005-08-22 2012-11-20 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US8870655B2 (en) 2005-08-24 2014-10-28 Nintendo Co., Ltd. Wireless game controllers
JP4262726B2 (ja) 2005-08-24 2009-05-13 任天堂株式会社 ゲームコントローラおよびゲームシステム
US8308563B2 (en) 2005-08-30 2012-11-13 Nintendo Co., Ltd. Game system and storage medium having game program stored thereon
JP4899685B2 (ja) * 2005-09-02 2012-03-21 株式会社デンソー 手動操作システム
US8157651B2 (en) 2005-09-12 2012-04-17 Nintendo Co., Ltd. Information processing program
EP1924900A1 (en) * 2005-09-15 2008-05-28 Apple Inc. System and method for processing raw data of track pad device
US8176101B2 (en) 2006-02-07 2012-05-08 Google Inc. Collaborative rejection of media for physical establishments
US7917148B2 (en) * 2005-09-23 2011-03-29 Outland Research, Llc Social musical media rating system and method for localized establishments
US7518745B2 (en) * 2005-09-28 2009-04-14 Xerox Corporation Imaging system with haptic interface
US7577522B2 (en) 2005-12-05 2009-08-18 Outland Research, Llc Spatially associated personal reminder system and method
CN101466316B (zh) 2005-10-20 2012-06-27 阿普特斯内系统公司 包括使用固定件工具的用于修复物递送和植入的装置、系统和方法
WO2007047986A1 (en) * 2005-10-21 2007-04-26 Wisconsin Alumni Research Foundation Method and system for delivering nucleic acid into a target cell
US20070103437A1 (en) * 2005-10-26 2007-05-10 Outland Research, Llc Haptic metering for minimally invasive medical procedures
US20070135264A1 (en) * 2005-12-09 2007-06-14 Outland Research, Llc Portable exercise scripting and monitoring device
US20070145680A1 (en) * 2005-12-15 2007-06-28 Outland Research, Llc Shake Responsive Portable Computing Device for Simulating a Randomization Object Used In a Game Of Chance
US20070075127A1 (en) * 2005-12-21 2007-04-05 Outland Research, Llc Orientation-based power conservation for portable media devices
JP5204381B2 (ja) * 2006-05-01 2013-06-05 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
US20070188454A1 (en) * 2006-02-15 2007-08-16 Logitech Europe S.A. Magnetic ratchet for input device roller
US20070188453A1 (en) * 2006-02-15 2007-08-16 Logitech Europe S.A. Input device roller with hybrid magnetic ratchet system
CA2646390C (en) * 2006-02-17 2014-09-23 Oceaneering International, Inc. A multi-mode manipulator arm and drive system
JP4151982B2 (ja) 2006-03-10 2008-09-17 任天堂株式会社 動き判別装置および動き判別プログラム
US8780053B2 (en) * 2007-03-21 2014-07-15 Northwestern University Vibrating substrate for haptic interface
US8525778B2 (en) * 2007-03-21 2013-09-03 Northwestern University Haptic device with controlled traction forces
US8405618B2 (en) 2006-03-24 2013-03-26 Northwestern University Haptic device with indirect haptic feedback
US7760184B2 (en) * 2006-04-03 2010-07-20 Nokia Corporation Dual mode input device
US7603228B2 (en) * 2006-05-25 2009-10-13 Ford Global Technologies, Llc Haptic apparatus and coaching method for improving vehicle fuel economy
FI120133B (fi) * 2006-05-29 2009-07-15 Polar Electro Oy Rannelaite ja menetelmä liikeinformaation määrittämiseksi
DE102007016083A1 (de) * 2006-05-31 2007-12-06 Mizukawa, Suehiro, Settsu Verfahren und Vorrichtung zum Biegen eines Messerelements
JP5030482B2 (ja) 2006-06-20 2012-09-19 任天堂株式会社 ゲームプログラムおよびゲーム装置
KR100827150B1 (ko) 2006-07-10 2008-05-02 삼성전자주식회사 터치패드를 구비한 휴대 단말기의 구동 장치
US20080027694A1 (en) * 2006-07-12 2008-01-31 Yury Michael Gitman Heartbeat Simulation Method And Apparatus
US20080032870A1 (en) * 2006-08-02 2008-02-07 Shen Yi Wu Method and apparatus of counting steps for treadmill
GB2440753A (en) * 2006-08-04 2008-02-13 Univ Sussex Force sensor and programmable spring emulator
ATE515724T1 (de) * 2006-09-06 2011-07-15 Rotzler Gmbh & Co Kg Steuerungsvorrichtung mit einem bus zum betrieb einer maschine
US7750593B2 (en) * 2006-10-26 2010-07-06 Honeywell International Inc. Active human-machine interface system without a force sensor
US7759894B2 (en) * 2006-10-26 2010-07-20 Honeywell International Inc. Cogless motor driven active user interface haptic feedback system
US7624836B2 (en) * 2006-10-30 2009-12-01 Caterpillar Inc. Steering system having multiple strategies and variable deadzone
EP1930800A1 (en) * 2006-12-05 2008-06-11 Electronics and Telecommunications Research Institute Tactile and visual display device
US20080146416A1 (en) * 2006-12-13 2008-06-19 Motorola, Inc. Generation of user activity feedback
JP4690299B2 (ja) * 2006-12-14 2011-06-01 株式会社東海理化電機製作所 遠隔操作式入力装置
US8508039B1 (en) 2008-05-08 2013-08-13 Invensense, Inc. Wafer scale chip scale packaging of vertically integrated MEMS sensors with electronics
US7934423B2 (en) * 2007-12-10 2011-05-03 Invensense, Inc. Vertically integrated 3-axis MEMS angular accelerometer with integrated electronics
US20100071467A1 (en) * 2008-09-24 2010-03-25 Invensense Integrated multiaxis motion sensor
US8952832B2 (en) * 2008-01-18 2015-02-10 Invensense, Inc. Interfacing application programs and motion sensors of a device
US20090262074A1 (en) * 2007-01-05 2009-10-22 Invensense Inc. Controlling and accessing content using motion processing on mobile devices
US7796872B2 (en) * 2007-01-05 2010-09-14 Invensense, Inc. Method and apparatus for producing a sharp image from a handheld device containing a gyroscope
US8462109B2 (en) 2007-01-05 2013-06-11 Invensense, Inc. Controlling and accessing content using motion processing on mobile devices
US8250921B2 (en) * 2007-07-06 2012-08-28 Invensense, Inc. Integrated motion processing unit (MPU) with MEMS inertial sensing and embedded digital electronics
US20090265671A1 (en) * 2008-04-21 2009-10-22 Invensense Mobile devices with motion gesture recognition
US8141424B2 (en) 2008-09-12 2012-03-27 Invensense, Inc. Low inertia frame for detecting coriolis acceleration
US8047075B2 (en) 2007-06-21 2011-11-01 Invensense, Inc. Vertically integrated 3-axis MEMS accelerometer with electronics
US8020441B2 (en) * 2008-02-05 2011-09-20 Invensense, Inc. Dual mode sensing for vibratory gyroscope
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
US8144036B2 (en) 2007-02-08 2012-03-27 Lear Corporation Switch system
JP2010533006A (ja) * 2007-03-01 2010-10-21 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 仮想世界とコミュニケーションを取るためのシステムおよび方法
US20080215994A1 (en) * 2007-03-01 2008-09-04 Phil Harrison Virtual world avatar control, interactivity and communication interactive messaging
US8315652B2 (en) * 2007-05-18 2012-11-20 Immersion Corporation Haptically enabled messaging
US8108136B2 (en) * 2007-08-09 2012-01-31 Ford Global Technologies, Llc. Driver advisory system for fuel economy improvement of a hybrid electric vehicle
EP2195224A2 (en) * 2007-09-06 2010-06-16 Takata-Petri AG Steering wheel assembly for a motor vehicle
US9726088B2 (en) * 2007-10-30 2017-08-08 Ford Global Technologies, Llc System and method for obtaining an adjustable accelerator pedal response in a vehicle powertrain
JP2011515114A (ja) * 2007-11-13 2011-05-19 トロッター ホセ・ニコラス・ムザード 送風機付きビデオゲーム制御装置
US7486273B1 (en) * 2008-02-12 2009-02-03 Novint Technologies, Inc. Communications in a system comprising a computer and a haptic interface device
TW200937260A (en) * 2008-02-25 2009-09-01 J Touch Corp Capacitive stylus pen
US20090221196A1 (en) * 2008-02-29 2009-09-03 Blair Charles S Torsional control boat throttle system
CN101518690A (zh) * 2008-02-29 2009-09-02 鸿富锦精密工业(深圳)有限公司 力回馈装置
ATE499645T1 (de) 2008-04-24 2011-03-15 Research In Motion Ltd System und verfahren zur erzeugung eines rückmeldungssignals als antwort auf ein eingangssignal an eine elektronische vorrichtung
US9274601B2 (en) * 2008-04-24 2016-03-01 Blackberry Limited System and method for generating a feedback signal in response to an input signal provided to an electronic device
US20090295739A1 (en) * 2008-05-27 2009-12-03 Wes Albert Nagara Haptic tactile precision selection
US20100013613A1 (en) * 2008-07-08 2010-01-21 Jonathan Samuel Weston Haptic feedback projection system
US8159455B2 (en) * 2008-07-18 2012-04-17 Apple Inc. Methods and apparatus for processing combinations of kinematical inputs
RU2509587C2 (ru) * 2008-08-12 2014-03-20 Конинклейке Филипс Электроникс Н.В. Система детектирования движений
US9196169B2 (en) 2008-08-21 2015-11-24 Lincoln Global, Inc. Importing and analyzing external data using a virtual reality welding system
CA2740867C (en) 2008-10-16 2018-06-12 Aptus Endosystems, Inc. Devices, systems, and methods for endovascular staple and/or prosthesis delivery and implantation
US20100146395A1 (en) * 2008-12-08 2010-06-10 Gustavo De Los Reyes Method and System for Exploiting Interactions Via A Virtual Environment
US20100167820A1 (en) * 2008-12-29 2010-07-01 Houssam Barakat Human interface device
GB0900878D0 (en) 2009-01-20 2009-03-04 Renishaw Plc Method for optimising a measurement cycle
JP5413450B2 (ja) * 2009-02-17 2014-02-12 日本電気株式会社 触力覚提示装置、触力覚提示装置が適用された電子機器端末及び触力覚提示方法
US9746923B2 (en) 2009-03-12 2017-08-29 Immersion Corporation Systems and methods for providing features in a friction display wherein a haptic effect is configured to vary the coefficient of friction
US10007340B2 (en) * 2009-03-12 2018-06-26 Immersion Corporation Systems and methods for interfaces featuring surface-based haptic effects
US10564721B2 (en) * 2009-03-12 2020-02-18 Immersion Corporation Systems and methods for using multiple actuators to realize textures
US9927873B2 (en) * 2009-03-12 2018-03-27 Immersion Corporation Systems and methods for using textures in graphical user interface widgets
US9696803B2 (en) 2009-03-12 2017-07-04 Immersion Corporation Systems and methods for friction displays and additional haptic effects
US9874935B2 (en) 2009-03-12 2018-01-23 Immersion Corporation Systems and methods for a texture engine
US8698736B2 (en) * 2009-03-24 2014-04-15 Immersion Corporation Handheld computer interface with haptic feedback
US20100306825A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
US9568939B2 (en) 2009-06-01 2017-02-14 Enovation Controls, Llc Tactile feedback for joystick position/speed controls
US20100302017A1 (en) * 2009-06-01 2010-12-02 Econtrols, Inc. Tactile Feedback for Joystick Position/Speed Controls
US9773429B2 (en) 2009-07-08 2017-09-26 Lincoln Global, Inc. System and method for manual welder training
US20110006047A1 (en) * 2009-07-08 2011-01-13 Victor Matthew Penrod Method and system for monitoring and characterizing the creation of a manual weld
US9221117B2 (en) 2009-07-08 2015-12-29 Lincoln Global, Inc. System for characterizing manual welding operations
FR2950187B1 (fr) * 2009-09-17 2011-11-18 Centre Nat Rech Scient Procede de simulation de mouvements propres par retour haptique et dispositif mettant en oeuvre le procede
US8487759B2 (en) 2009-09-30 2013-07-16 Apple Inc. Self adapting haptic device
US8279052B2 (en) 2009-11-04 2012-10-02 Immersion Corporation Systems and methods for haptic confirmation of commands
WO2011062895A2 (en) * 2009-11-17 2011-05-26 Immersion Corporation Systems and methods for increasing haptic bandwidth in an electronic device
JP5587596B2 (ja) * 2009-12-14 2014-09-10 京セラ株式会社 触感呈示装置
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US20120194553A1 (en) * 2010-02-28 2012-08-02 Osterhout Group, Inc. Ar glasses with sensor and user action based control of external devices with feedback
WO2011106797A1 (en) 2010-02-28 2011-09-01 Osterhout Group, Inc. Projection triggering through an external marker in an augmented reality eyepiece
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US9759917B2 (en) 2010-02-28 2017-09-12 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered AR eyepiece interface to external devices
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
KR101640043B1 (ko) * 2010-04-14 2016-07-15 삼성전자주식회사 가상 세계 처리 장치 및 방법
US9132352B1 (en) 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
JP5841713B2 (ja) * 2010-07-27 2016-01-13 京セラ株式会社 触感呈示装置及び触感呈示装置の制御方法
JP5841714B2 (ja) * 2010-07-27 2016-01-13 京セラ株式会社 触感呈示装置及び触感呈示装置の制御方法
JP5032716B2 (ja) * 2010-08-31 2012-09-26 パナソニック株式会社 マスタースレーブロボットの制御装置及び制御方法、並びに、制御プログラム
US10013058B2 (en) 2010-09-21 2018-07-03 Apple Inc. Touch-based user interface with haptic feedback
EP2453428A1 (en) * 2010-11-12 2012-05-16 EADS Construcciones Aeronauticas, S.A. Simulation methods and systems for the control panels of complex systems
US10120446B2 (en) * 2010-11-19 2018-11-06 Apple Inc. Haptic input device
EP2652726B1 (en) * 2010-12-13 2019-11-20 Lincoln Global, Inc. Welding training system
US9921712B2 (en) 2010-12-29 2018-03-20 Mako Surgical Corp. System and method for providing substantially stable control of a surgical tool
US9119655B2 (en) 2012-08-03 2015-09-01 Stryker Corporation Surgical manipulator capable of controlling a surgical instrument in multiple modes
EP2529964B1 (en) 2011-03-24 2017-06-21 Aisin Takaoka Co., Ltd. Crash reinforcing member for vehicle
US8892162B2 (en) * 2011-04-25 2014-11-18 Apple Inc. Vibration sensing system and method for categorizing portable device context and modifying device operation
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8811720B2 (en) 2011-07-12 2014-08-19 Raytheon Company 3D visualization of light detection and ranging data
EP2737621B1 (en) * 2011-07-26 2021-09-01 Moog Inc. Electric motor clamping system
US9802364B2 (en) 2011-10-18 2017-10-31 3D Systems, Inc. Systems and methods for construction of an instruction set for three-dimensional printing of a user-customizableimage of a three-dimensional structure
US9582178B2 (en) 2011-11-07 2017-02-28 Immersion Corporation Systems and methods for multi-pressure interaction on touch-sensitive surfaces
US8894491B2 (en) * 2011-12-09 2014-11-25 Microsoft Corporation Multi-stage variable resistance trigger
US9389681B2 (en) * 2011-12-19 2016-07-12 Microsoft Technology Licensing, Llc Sensor fusion interface for multiple sensor input
JP2013222399A (ja) * 2012-04-18 2013-10-28 Sony Corp 操作方法、制御装置及びプログラム
WO2013170099A1 (en) * 2012-05-09 2013-11-14 Yknots Industries Llc Calibration of haptic feedback systems for input devices
CN103425064B (zh) * 2012-05-09 2017-12-22 布里斯托尔D/B/A远程自动化解决方案公司 通过过程控制设备显示信息的方法和装置
US20150109223A1 (en) 2012-06-12 2015-04-23 Apple Inc. Haptic electromagnetic actuator
US20160093233A1 (en) 2012-07-06 2016-03-31 Lincoln Global, Inc. System for characterizing manual welding operations on pipe and other curved structures
US9245428B2 (en) 2012-08-02 2016-01-26 Immersion Corporation Systems and methods for haptic remote control gaming
US9226796B2 (en) 2012-08-03 2016-01-05 Stryker Corporation Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path
US9820818B2 (en) 2012-08-03 2017-11-21 Stryker Corporation System and method for controlling a surgical manipulator based on implant parameters
KR102397265B1 (ko) 2012-08-03 2022-05-12 스트리커 코포레이션 로봇 수술을 위한 시스템 및 방법
US9056244B2 (en) 2012-09-12 2015-06-16 Wms Gaming Inc. Gaming apparatus incorporating targeted haptic feedback
US20160164976A1 (en) * 2012-09-24 2016-06-09 Suitable Technologies, Inc. Systems and methods for remote presence
US9178509B2 (en) 2012-09-28 2015-11-03 Apple Inc. Ultra low travel keyboard
TWI467467B (zh) * 2012-10-29 2015-01-01 Pixart Imaging Inc 畫面物件移動控制方法及裝置
US9330544B2 (en) * 2012-11-20 2016-05-03 Immersion Corporation System and method for simulated physical interactions with haptic effects
DE102012223007A1 (de) * 2012-12-13 2014-06-18 Hilti Aktiengesellschaft Handgeführtes oder halbstationäres Werkzeuggerät und Verfahren zum Betreiben eines derartigen Werkzeuggeräts
EP2951659B1 (en) 2013-01-30 2021-05-26 David Paul Smith Operator controlled electrical output signal device with variable feel and hold feedback and automated calibration and learnable performance optimization
KR20140115648A (ko) 2013-03-21 2014-10-01 삼성전자주식회사 햅틱 엔진을 이용하여 햅틱 효과를 제공하는 단말 장치 및 그 제어 방법
ITMI20130495A1 (it) * 2013-03-29 2014-09-30 Atlas Copco Blm Srl Dispositivo elettronico di controllo e comando per sensori
US10168766B2 (en) 2013-04-17 2019-01-01 Nokia Technologies Oy Method and apparatus for a textural representation of a guidance
WO2014190293A2 (en) * 2013-05-24 2014-11-27 New York University Haptic force-feedback for computing interfaces
US10120447B2 (en) 2013-06-24 2018-11-06 Northwestern University Haptic display with simultaneous sensing and actuation
WO2015020663A1 (en) 2013-08-08 2015-02-12 Honessa Development Laboratories Llc Sculpted waveforms with no or reduced unforced response
US20150072323A1 (en) 2013-09-11 2015-03-12 Lincoln Global, Inc. Learning management system for a real-time simulated virtual reality welding training environment
CN103433921B (zh) * 2013-09-11 2015-07-08 北京邮电大学 三自由度平动力反馈手控器
US9779592B1 (en) 2013-09-26 2017-10-03 Apple Inc. Geared haptic feedback element
CN105579928A (zh) 2013-09-27 2016-05-11 苹果公司 具有触觉致动器的带体
WO2015047343A1 (en) 2013-09-27 2015-04-02 Honessa Development Laboratories Llc Polarized magnetic actuators for haptic response
US10126817B2 (en) 2013-09-29 2018-11-13 Apple Inc. Devices and methods for creating haptic effects
US10236760B2 (en) 2013-09-30 2019-03-19 Apple Inc. Magnetic actuators for haptic response
US9317118B2 (en) 2013-10-22 2016-04-19 Apple Inc. Touch surface for simulating materials
US10083627B2 (en) 2013-11-05 2018-09-25 Lincoln Global, Inc. Virtual reality and real welding training system and method
US10276001B2 (en) 2013-12-10 2019-04-30 Apple Inc. Band attachment mechanism with haptic response
US20150242037A1 (en) 2014-01-13 2015-08-27 Apple Inc. Transparent force sensor with strain relief
US9501912B1 (en) 2014-01-27 2016-11-22 Apple Inc. Haptic feedback device with a rotating mass of variable eccentricity
US9836987B2 (en) 2014-02-14 2017-12-05 Lincoln Global, Inc. Virtual reality pipe welding simulator and setup
JP6201824B2 (ja) * 2014-03-05 2017-09-27 株式会社デンソー 操作装置
CN111966211A (zh) 2014-03-31 2020-11-20 索尼公司 触觉再现设备、触觉再现系统和触觉再现方法
AU2014391723B2 (en) 2014-04-21 2018-04-05 Apple Inc. Apportionment of forces for multi-touch input devices of electronic devices
WO2015185972A1 (en) 2014-06-02 2015-12-10 Lincoln Global, Inc. System and method for manual welder training
DE102015209639A1 (de) 2014-06-03 2015-12-03 Apple Inc. Linearer Aktuator
EP3194665B1 (en) * 2014-07-31 2019-12-25 CNH Industrial Italia S.p.A. Active force/vibration feedback control method and apparatus for a movable machine
US9838009B2 (en) 2014-08-27 2017-12-05 Continental Automotive Systems, Inc. Switch with user feedback
US10297119B1 (en) 2014-09-02 2019-05-21 Apple Inc. Feedback device in an electronic device
US9830782B2 (en) 2014-09-02 2017-11-28 Apple Inc. Haptic notifications
WO2016065469A1 (en) 2014-10-27 2016-05-06 Jesse Goodman System and method for monitoring aortic pulse wave velocity and blood pressure
US9798409B1 (en) 2015-03-04 2017-10-24 Apple Inc. Multi-force input device
US10353467B2 (en) * 2015-03-06 2019-07-16 Apple Inc. Calibration of haptic devices
US10613629B2 (en) 2015-03-27 2020-04-07 Chad Laurendeau System and method for force feedback interface devices
DE102015104927A1 (de) * 2015-03-31 2016-10-06 Inventus Engineering Gmbh Dämpfer zur Dämpfung einer Relativbewegung
AU2016100399B4 (en) 2015-04-17 2017-02-02 Apple Inc. Contracting and elongating materials for providing input and output for an electronic device
US9535501B1 (en) * 2015-06-29 2017-01-03 Apple Inc. Input with haptic feedback
US9921652B2 (en) * 2015-06-29 2018-03-20 Apple Inc. Input with haptic feedback
US10566888B2 (en) 2015-09-08 2020-02-18 Apple Inc. Linear actuators for use in electronic devices
US10806657B2 (en) * 2015-09-23 2020-10-20 Universitè Catholique De Louvain Rehabilitation system and method
US9971407B2 (en) 2015-09-30 2018-05-15 Apple Inc. Haptic feedback for rotary inputs
US10324530B2 (en) * 2015-12-14 2019-06-18 Facebook Technologies, Llc Haptic devices that simulate rigidity of virtual objects
US10503258B2 (en) 2016-03-04 2019-12-10 Apple Inc. Input mechanism with force and rotation inputs and haptic feedback
US10039080B2 (en) 2016-03-04 2018-07-31 Apple Inc. Situationally-aware alerts
US10850192B2 (en) 2016-03-04 2020-12-01 Sony Interactive Entertainment Inc. Control apparatus and control program
US10268272B2 (en) 2016-03-31 2019-04-23 Apple Inc. Dampening mechanical modes of a haptic actuator using a delay
US10881953B2 (en) 2016-07-21 2021-01-05 Sony Interactive Entertainment Inc. Operating device and control system
WO2018020778A1 (ja) * 2016-07-26 2018-02-01 株式会社ソニー・インタラクティブエンタテインメント 情報処理システム、操作デバイス、及び操作デバイスの制御方法
EP3493030B1 (en) 2016-07-26 2021-06-23 Sony Interactive Entertainment Inc. Operation device and operation device control method
EP3319066A1 (en) 2016-11-04 2018-05-09 Lincoln Global, Inc. Magnetic frequency selection for electromagnetic position tracking
WO2018112025A1 (en) 2016-12-16 2018-06-21 Mako Surgical Corp. Techniques for modifying tool operation in a surgical robotic system based on comparing actual and commanded states of the tool relative to a surgical site
US10275032B2 (en) 2016-12-22 2019-04-30 Immersion Corporation Pressure-sensitive suspension system for a haptic device
JP6613267B2 (ja) * 2017-06-02 2019-11-27 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
JP6837921B2 (ja) 2017-06-02 2021-03-03 任天堂株式会社 ゲームプログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6653293B2 (ja) 2017-06-05 2020-02-26 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
JP6701132B2 (ja) * 2017-07-12 2020-05-27 任天堂株式会社 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法
US10622538B2 (en) 2017-07-18 2020-04-14 Apple Inc. Techniques for providing a haptic output and sensing a haptic input using a piezoelectric body
US11173393B2 (en) 2017-09-29 2021-11-16 Sony Interactive Entertainment Inc. Operation device and control apparatus therefor
US11511185B2 (en) 2017-10-27 2022-11-29 Sony Interactive Entertainment Inc. Operation device
JP6887526B2 (ja) * 2017-11-30 2021-06-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理方法、及びプログラム
US10583359B2 (en) 2017-12-28 2020-03-10 Immersion Corporation Systems and methods for providing haptic effects related to touching and grasping a virtual object
US11523839B2 (en) * 2018-04-03 2022-12-13 Intuitive Surgical Operations, Inc. Systems and methods for grasp adjustment based on grasp properties
US11475792B2 (en) 2018-04-19 2022-10-18 Lincoln Global, Inc. Welding simulator with dual-user configuration
US11557223B2 (en) 2018-04-19 2023-01-17 Lincoln Global, Inc. Modular and reconfigurable chassis for simulated welding training
US20190324536A1 (en) 2018-04-20 2019-10-24 Immersion Corporation Haptic ring
US10579146B2 (en) * 2018-06-15 2020-03-03 Immersion Corporation Systems and methods for multi-level closed loop control of haptic effects
US10691211B2 (en) 2018-09-28 2020-06-23 Apple Inc. Button providing force sensing and/or haptic output
US10599223B1 (en) 2018-09-28 2020-03-24 Apple Inc. Button providing force sensing and/or haptic output
GB2587468A (en) * 2019-07-11 2021-03-31 Bae Systems Plc Force compensation method and device
JP2021018546A (ja) * 2019-07-18 2021-02-15 トヨタ自動車株式会社 車両用コミュニケーション装置および車両用コミュニケーションシステム
JP7360281B2 (ja) * 2019-09-10 2023-10-12 株式会社東海理化電機製作所 制御装置、制御方法、及びプログラム
JP7360282B2 (ja) * 2019-09-10 2023-10-12 株式会社東海理化電機製作所 制御装置、制御方法、及びプログラム
US11380470B2 (en) 2019-09-24 2022-07-05 Apple Inc. Methods to control force in reluctance actuators based on flux related parameters
WO2021090102A1 (en) * 2019-11-04 2021-05-14 Indian Institute Of Science System for operating joystick
US11960651B2 (en) * 2020-03-30 2024-04-16 Snap Inc. Gesture-based shared AR session creation
US20210326594A1 (en) * 2020-04-17 2021-10-21 James Patrick COSTELLO Computer-generated supplemental content for video
CN113760107B (zh) * 2020-06-04 2023-10-13 宏碁股份有限公司 触控笔、触控电子装置与触控系统
US11544343B1 (en) * 2020-10-16 2023-01-03 Splunk Inc. Codeless anchor generation for detectable features in an environment
FR3117224B1 (fr) * 2020-12-04 2023-05-05 Safran Electronics & Defense Procédé de commande d’un moteur d’une commande d’un aéronef, dispositif de commande et aéronef
CN112757273A (zh) * 2020-12-28 2021-05-07 广州一康医疗设备实业有限公司 一种机械臂轨迹编辑可视化方法、系统、装置及存储介质
US11771991B2 (en) * 2021-02-15 2023-10-03 Nintendo Co., Ltd. Non-transitory computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
US11814947B2 (en) 2021-07-01 2023-11-14 Halliburton Energy Services, Inc. Distributed diagnostics and control of a multi-unit pumping operation
US11809631B2 (en) 2021-09-21 2023-11-07 Apple Inc. Reluctance haptic engine for an electronic device
WO2023114427A1 (en) * 2021-12-17 2023-06-22 Intuitive Surgical Operations, Inc. Force-based control of a virtual object being displayed by a computer-assisted medical system
WO2023233624A1 (ja) * 2022-06-02 2023-12-07 株式会社ソニー・インタラクティブエンタテインメント 操作部材を駆動させる情報処理装置
WO2023242962A1 (ja) * 2022-06-14 2023-12-21 株式会社ソニー・インタラクティブエンタテインメント 操作デバイス、その制御方法、情報処理装置、及びプログラム

Family Cites Families (253)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2906179A (en) * 1957-01-28 1959-09-29 North American Aviation Inc Vector gage
US3157853A (en) 1957-12-06 1964-11-17 Hirsch Joseph Tactile communication system
GB958325A (en) 1962-07-08 1964-05-21 Communications Patents Ltd Improvements in or relating to ground-based flight training or simulating apparatus
US3157553A (en) 1962-10-31 1964-11-17 Bartmann & Bixer Inc Apparatus for cutting lengths of heatfusible fabric and sealing the cut edges thereof
US3490059A (en) * 1966-06-06 1970-01-13 Martin Marietta Corp Three axis mounting and torque sensing apparatus
US3497668A (en) 1966-08-25 1970-02-24 Joseph Hirsch Tactile control system
US3517446A (en) 1967-04-19 1970-06-30 Singer General Precision Vehicle trainer controls and control loading
US3531868A (en) * 1968-04-18 1970-10-06 Ford Motor Co Surface scanner for measuring the coordinates of points on a three-dimensional surface
US3903614A (en) 1970-03-27 1975-09-09 Singer Co Apparatus for simulating aircraft control loading
US3919691A (en) 1971-05-26 1975-11-11 Bell Telephone Labor Inc Tactile man-machine communication system
US3875488A (en) * 1973-02-15 1975-04-01 Raytheon Co Inertially stabilized gimbal platform
US3902687A (en) 1973-06-25 1975-09-02 Robert E Hightower Aircraft indicator system
US3890958A (en) * 1974-04-08 1975-06-24 Moog Automotive Inc Physiological diagnostic apparatus
US3944798A (en) * 1974-04-18 1976-03-16 Eaton-Leonard Corporation Method and apparatus for measuring direction
US4034894A (en) * 1975-02-28 1977-07-12 Agfa-Gevaert Aktiengesellschaft Film-sheet cassette
US4125800A (en) * 1975-09-02 1978-11-14 Contraves Gorez Corporation Power controller with a modular power output
US4131033A (en) 1977-02-18 1978-12-26 Rockwell International Corporation Push-pull and rotating knob
US4148014A (en) * 1977-04-06 1979-04-03 Texas Instruments Incorporated System with joystick to control velocity vector of a display cursor
US4160508A (en) 1977-08-19 1979-07-10 Nasa Controller arm for a remotely related slave arm
US4216467A (en) * 1977-12-22 1980-08-05 Westinghouse Electric Corp. Hand controller
US4236325A (en) 1978-12-26 1980-12-02 The Singer Company Simulator control loading inertia compensator
US4638798A (en) * 1980-09-10 1987-01-27 Shelden C Hunter Stereotactic method and apparatus for locating and treating or removing lesions
NL8006091A (nl) * 1980-11-07 1982-06-01 Fokker Bv Vluchtnabootser.
JPS57169643A (en) * 1981-04-13 1982-10-19 Yamato Scale Co Ltd Load cell for multiple components of force
US4599070A (en) 1981-07-29 1986-07-08 Control Interface Company Limited Aircraft simulator and simulated control system therefor
DE3382431D1 (de) 1982-01-22 1991-11-14 British Aerospace Steuerungsgeraet.
US4477973A (en) * 1982-07-14 1984-10-23 Micro Control Systems, Inc. Three dimensional graphics tablet
US4593470A (en) * 1982-07-14 1986-06-10 Micro Control Systems, Inc. Portable three dimensional graphics tablet
US4560983A (en) 1982-09-17 1985-12-24 Ampex Corporation Dynamically interactive responsive control device and system
US4477043A (en) * 1982-12-15 1984-10-16 The United States Of America As Represented By The Secretary Of The Air Force Biodynamic resistant control stick
US4538035A (en) 1983-02-11 1985-08-27 Pool Danny J Joystick occlusion gate control for video games
FR2545606B1 (fr) * 1983-05-06 1985-09-13 Hispano Suiza Sa Capteur de torseur de forces
US4604016A (en) 1983-08-03 1986-08-05 Joyce Stephen A Multi-dimensional force-torque hand controller having force feedback
GB2146776B (en) * 1983-09-16 1986-07-30 Ferranti Plc Accelerometer systems
US4550221A (en) * 1983-10-07 1985-10-29 Scott Mabusth Touch sensitive control device
JPS60170709A (ja) * 1984-02-16 1985-09-04 Toshiba Corp 形状測定装置
US4571834A (en) * 1984-02-17 1986-02-25 Orthotronics Limited Partnership Knee laxity evaluator and motion module/digitizer arrangement
US4581491A (en) 1984-05-04 1986-04-08 Research Corporation Wearable tactile sensory aid providing information on voice pitch and intonation patterns
US4688983A (en) * 1984-05-21 1987-08-25 Unimation Inc. Low cost robot
US4603284A (en) 1984-06-05 1986-07-29 Unimation, Inc. Control system for manipulator apparatus with resolved compliant motion control
US4676002A (en) * 1984-06-25 1987-06-30 Slocum Alexander H Mechanisms to determine position and orientation in space
JPS61105411A (ja) * 1984-10-29 1986-05-23 Mitsutoyo Mfg Co Ltd 多次元測定機の測定方法
US4654648A (en) * 1984-12-17 1987-03-31 Herrington Richard A Wireless cursor control system
US4782327A (en) 1985-01-02 1988-11-01 Victor B. Kley Computer control
US4632341A (en) * 1985-02-06 1986-12-30 The United States Of America As Represented By The Secretary Of The Air Force Stabilizing force feedback in bio-actuated control systems
JPH0537531Y2 (ja) 1985-06-11 1993-09-22
US5078152A (en) 1985-06-23 1992-01-07 Loredan Biomedical, Inc. Method for diagnosis and/or training of proprioceptor feedback capabilities in a muscle and joint system of a human patient
DE3523188A1 (de) * 1985-06-28 1987-01-08 Zeiss Carl Fa Steuerung fuer koordinatenmessgeraete
US4704909A (en) * 1985-07-22 1987-11-10 Grahn Allen R Multicomponent force-torque sensor
US4679331A (en) * 1985-08-26 1987-07-14 Ppg Industries, Inc. Apparatus and method for determining contour characteristics of a contoured article
US4713007A (en) 1985-10-11 1987-12-15 Alban Eugene P Aircraft controls simulator
US5275174B1 (en) 1985-10-30 1998-08-04 Jonathan A Cook Repetitive strain injury assessment
NL8503096A (nl) 1985-11-11 1987-06-01 Fokker Bv Simulator van mechanische eigenschappen van een besturingssysteem.
US4934694A (en) 1985-12-06 1990-06-19 Mcintosh James L Computer controlled exercise system
US5103404A (en) * 1985-12-06 1992-04-07 Tensor Development, Inc. Feedback for a manipulator
US4891764A (en) 1985-12-06 1990-01-02 Tensor Development Inc. Program controlled force measurement and control system
US4811608A (en) * 1985-12-18 1989-03-14 Spatial Systems Pty Limited Force and torque converter
US5591924A (en) 1985-12-18 1997-01-07 Spacetec Imc Corporation Force and torque converter
JPH085018B2 (ja) 1986-02-26 1996-01-24 株式会社日立製作所 遠隔マニピユレ−シヨン方法及び装置
US4787051A (en) * 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
JPS62194389U (ja) 1986-05-31 1987-12-10
US4803413A (en) * 1986-07-15 1989-02-07 Honeywell Inc. Magnetic isolating and pointing gimbal apparatus
US4791934A (en) * 1986-08-07 1988-12-20 Picker International, Inc. Computer tomography assisted stereotactic surgery system and method
US4945305A (en) * 1986-10-09 1990-07-31 Ascension Technology Corporation Device for quantitatively measuring the relative position and orientation of two bodies in the presence of metals utilizing direct current magnetic fields
US4849692A (en) * 1986-10-09 1989-07-18 Ascension Technology Corporation Device for quantitatively measuring the relative position and orientation of two bodies in the presence of metals utilizing direct current magnetic fields
NL8602624A (nl) 1986-10-20 1988-05-16 Oce Nederland Bv Invoerinrichting met taktiele terugkoppeling.
NL8602697A (nl) * 1986-10-27 1988-05-16 Huka Bv Developments Joystick.
US4795296A (en) 1986-11-17 1989-01-03 California Institute Of Technology Hand-held robot end effector controller having movement and force control
US4750487A (en) * 1986-11-24 1988-06-14 Zanetti Paul H Stereotactic frame
CA1299362C (en) * 1986-12-10 1992-04-28 Gregory James Mcdonald Coordinate measuring system
JPH0829509B2 (ja) 1986-12-12 1996-03-27 株式会社日立製作所 マニピユレ−タの制御装置
US4819195A (en) * 1987-01-20 1989-04-04 The Warner & Swasey Company Method for calibrating a coordinate measuring machine and the like and system therefor
US4945501A (en) * 1987-01-20 1990-07-31 The Warner & Swasey Company Method for determining position within the measuring volume of a coordinate measuring machine and the like and system therefor
US4800721A (en) * 1987-02-13 1989-01-31 Caterpillar Inc. Force feedback lever
US4839838A (en) * 1987-03-30 1989-06-13 Labiche Mitchell Spatial input apparatus
GB2204131B (en) * 1987-04-28 1991-04-17 Ibm Graphics input tablet
US4961138A (en) * 1987-05-01 1990-10-02 General Datacomm, Inc. System and apparatus for providing three dimensions of input into a host processor
IT1214292B (it) * 1987-05-05 1990-01-10 Garda Impianti Srl Apparecchiatura per la misura e/o il controllo della posizione edella orientazione di punti o zone caratteristiche di strutture, in particolare di scocche di autoveicoli.
US4868549A (en) 1987-05-18 1989-09-19 International Business Machines Corporation Feedback mouse
DE3717459A1 (de) * 1987-05-23 1988-12-01 Zeiss Carl Fa Handgefuehrtes koordinatenmessgeraet
US4896554A (en) 1987-11-03 1990-01-30 Culver Craig F Multifunction tactile manipulatable control
DE3740070A1 (de) * 1987-11-26 1989-06-08 Zeiss Carl Fa Dreh-schwenk-einrichtung fuer tastkoepfe von koordinatenmessgeraeten
GB8729638D0 (en) * 1987-12-19 1988-02-03 Renishaw Plc Mounting for surface sensing device
US4891784A (en) * 1988-01-08 1990-01-02 Hewlett-Packard Company High capacity tape drive transparently writes and reads large packets of blocked data between interblock gaps
JP2720970B2 (ja) * 1988-01-29 1998-03-04 日本ヒューレット・パッカード株式会社 測定器
US5251127A (en) * 1988-02-01 1993-10-05 Faro Medical Technologies Inc. Computer-aided surgery apparatus
SE461548B (sv) * 1988-02-18 1990-02-26 Johansson Ab C E Foerfarande och anordning foer bestaemning av och korrigering foer laegesfel vid maetning av en punkts laege eller vid positionering till en punkt med ett bestaemt laege
GB8803847D0 (en) * 1988-02-18 1988-03-16 Renishaw Plc Mounting for surface-sensing device
US4925312A (en) 1988-03-21 1990-05-15 Staubli International Ag Robot control system having adaptive feedforward torque control for improved accuracy
US5038089A (en) 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US4907970A (en) * 1988-03-30 1990-03-13 Grumman Aerospace Corporation Sidestick-type thrust control simulator
US4942545A (en) * 1988-06-06 1990-07-17 Combustion Engineering, Inc. Calibration of eddy current profilometry
NL8801653A (nl) 1988-06-29 1990-01-16 Stork Kwant Bv Besturingsstelsel.
US5050608A (en) * 1988-07-12 1991-09-24 Medirand, Inc. System for indicating a position to be operated in a patient's body
US5116180A (en) 1988-07-18 1992-05-26 Spar Aerospace Limited Human-in-the-loop machine control loop
US4962448A (en) 1988-09-30 1990-10-09 Demaio Joseph Virtual pivot handcontroller
EP0362626B1 (de) * 1988-10-03 1993-02-10 Firma Carl Zeiss Prüfkörper für Koordinatenmessgeräte
FR2638010B1 (fr) 1988-10-13 1991-01-18 Acroe Clavier retroactif modulaire et actionneur modulaire plat
US5007085A (en) * 1988-10-28 1991-04-09 International Business Machines Corporation Remotely sensed personal stylus
US4907973A (en) * 1988-11-14 1990-03-13 Hon David C Expert system simulator for modeling realistic internal environments and performance
US4930770A (en) 1988-12-01 1990-06-05 Baker Norman A Eccentrically loaded computerized positive/negative exercise machine
US5189806A (en) * 1988-12-19 1993-03-02 Renishaw Plc Method of and apparatus for scanning the surface of a workpiece
US5044956A (en) * 1989-01-12 1991-09-03 Atari Games Corporation Control device such as a steering wheel for video vehicle simulator with realistic feedback forces
US5116051A (en) * 1989-01-12 1992-05-26 Atari Games Corporation Strain gauge pressure-sensitive video game control
US4949119A (en) 1989-01-12 1990-08-14 Atari Games Corporation Gearshift for a vehicle simulator using computer controlled realistic real world forces
US5186695A (en) 1989-02-03 1993-02-16 Loredan Biomedical, Inc. Apparatus for controlled exercise and diagnosis of human performance
US5019761A (en) 1989-02-21 1991-05-28 Kraft Brett W Force feedback control for backhoe
JPH02220106A (ja) * 1989-02-22 1990-09-03 Okuma Mach Works Ltd 計測機能を有するデジタイズ制御装置
GB8904955D0 (en) * 1989-03-03 1989-04-12 Atomic Energy Authority Uk Multi-axis hand controller
US4983901A (en) 1989-04-21 1991-01-08 Allergan, Inc. Digital electronic foot control for medical apparatus and the like
JPH02290506A (ja) * 1989-04-28 1990-11-30 Mitsutoyo Corp 三次元測定機
US5184306A (en) * 1989-06-09 1993-02-02 Regents Of The University Of Minnesota Automated high-precision fabrication of objects of complex and unique geometry
US5076517A (en) 1989-08-14 1991-12-31 United Technologies Corporation Programmable, linear collective control system for a helicopter
JPH07104146B2 (ja) * 1989-08-29 1995-11-13 株式会社ミツトヨ 座標測定用プローブの回転テーブル倣い制御方法
US5139261A (en) * 1989-09-15 1992-08-18 Openiano Renato M Foot-actuated computer game controller serving as a joystick
US5182557A (en) * 1989-09-20 1993-01-26 Semborg Recrob, Corp. Motorized joystick
US4961038A (en) 1989-10-16 1990-10-02 General Electric Company Torque estimator for switched reluctance machines
US5209131A (en) * 1989-11-03 1993-05-11 Rank Taylor Hobson Metrology
US5126948A (en) * 1989-11-08 1992-06-30 Ltv Aerospace And Defense Company Digital position encoder and data optimizer
US5107080A (en) * 1989-12-01 1992-04-21 Massachusetts Institute Of Technology Multiple degree of freedom damped hand controls
US4983786A (en) * 1990-01-17 1991-01-08 The University Of British Columbia XY velocity controller
US5022407A (en) 1990-01-24 1991-06-11 Topical Testing, Inc. Apparatus for automated tactile testing
US5259894A (en) * 1990-01-26 1993-11-09 Sampson Richard K Method for solvent bonding non-porous materials to automatically create variable bond characteristics
US5072361A (en) * 1990-02-01 1991-12-10 Sarcos Group Force-reflective teleoperation control system
US5184319A (en) * 1990-02-02 1993-02-02 Kramer James F Force feedback and textures simulating interface device
US5113179A (en) 1990-03-16 1992-05-12 Advanced Gravis Computer Technology Ltd. Switch joystick
US5132672A (en) * 1990-03-27 1992-07-21 Apple Computer, Inc. Three degree of freedom graphic object controller
US5095303A (en) * 1990-03-27 1992-03-10 Apple Computer, Inc. Six degree of freedom graphic object controller
US5128671A (en) * 1990-04-12 1992-07-07 Ltv Aerospace And Defense Company Control device having multiple degrees of freedom
US5035242A (en) 1990-04-16 1991-07-30 David Franklin Method and apparatus for sound responsive tactile stimulation of deaf individuals
JPH0438507A (ja) * 1990-06-05 1992-02-07 Mitsui Eng & Shipbuild Co Ltd ジョイスティックコントロール装置
US5547382A (en) 1990-06-28 1996-08-20 Honda Giken Kogyo Kabushiki Kaisha Riding simulation system for motorcycles
US5197003A (en) 1990-08-01 1993-03-23 Atari Games Corporation Gearshift for a vehicle simulator having a solenoid for imposing a resistance force
US5251156A (en) * 1990-08-25 1993-10-05 Carl-Zeiss-Stiftung, Heidenheim/Brenz Method and apparatus for non-contact measurement of object surfaces
US5181181A (en) * 1990-09-27 1993-01-19 Triton Technologies, Inc. Computer apparatus input device for three-dimensional information
WO1992007350A1 (en) * 1990-10-15 1992-04-30 National Biomedical Research Foundation Three-dimensional cursor control device
US5142506A (en) * 1990-10-22 1992-08-25 Logitech, Inc. Ultrasonic position locating method and apparatus therefor
US5209661A (en) 1990-10-29 1993-05-11 Systems Control Technology, Inc. Motor control desired dynamic load of a simulating system and method
US5193963A (en) 1990-10-31 1993-03-16 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Force reflecting hand controller
JPH04195322A (ja) * 1990-11-28 1992-07-15 Mitsubishi Electric Corp マウス入力装置
NL194053C (nl) 1990-12-05 2001-05-03 Koninkl Philips Electronics Nv Inrichting met een rotatiesymmetrisch lichaam.
US5223776A (en) * 1990-12-31 1993-06-29 Honeywell Inc. Six-degree virtual pivot controller
US5204600A (en) 1991-02-06 1993-04-20 Hewlett-Packard Company Mechanical detent simulating system
US5098437A (en) 1991-02-13 1992-03-24 Pfizer Hospital Products Group, Inc. Acetabular cup positioning insert
US5142931A (en) * 1991-02-14 1992-09-01 Honeywell Inc. 3 degree of freedom hand controller
US5212473A (en) 1991-02-21 1993-05-18 Typeright Keyboard Corp. Membrane keyboard and method of using same
US5334027A (en) 1991-02-25 1994-08-02 Terry Wherlock Big game fish training and exercise device and method
US5354162A (en) * 1991-02-26 1994-10-11 Rutgers University Actuator system for providing force feedback to portable master support
US5143505A (en) * 1991-02-26 1992-09-01 Rutgers University Actuator system for providing force feedback to a dextrous master glove
US5240417A (en) 1991-03-14 1993-08-31 Atari Games Corporation System and method for bicycle riding simulation
US5203563A (en) 1991-03-21 1993-04-20 Atari Games Corporation Shaker control device
DE69212149D1 (de) 1991-03-21 1996-08-14 Atari Games Corp Fahrtsimulator mit überkreuzter netzwerkrückkoppelung
US5131844A (en) * 1991-04-08 1992-07-21 Foster-Miller, Inc. Contact digitizer, particularly for dental applications
GB9108497D0 (en) 1991-04-20 1991-06-05 Ind Limited W Human/computer interface
JPH06508222A (ja) * 1991-05-23 1994-09-14 アタリ ゲームズ コーポレーション モジュール式表示シミュレーター
US5146566A (en) 1991-05-29 1992-09-08 Ibm Corporation Input/output system for computer user interface using magnetic levitation
US5178012A (en) * 1991-05-31 1993-01-12 Rockwell International Corporation Twisting actuator accelerometer
US5279309A (en) 1991-06-13 1994-01-18 International Business Machines Corporation Signaling device and method for monitoring positions in a surgical operation
US5388992A (en) 1991-06-19 1995-02-14 Audiological Engineering Corporation Method and apparatus for tactile transduction of acoustic signals from television receivers
JP2514490B2 (ja) * 1991-07-05 1996-07-10 株式会社ダイヘン 産業用ロボットの連動手動操作による教示制御方法
US5185561A (en) * 1991-07-23 1993-02-09 Digital Equipment Corporation Torque motor as a tactile feedback device in a computer system
EP0526056B1 (en) * 1991-07-27 1996-01-31 Renishaw Transducer Systems Limited Calibration and measurement device
US5186629A (en) * 1991-08-22 1993-02-16 International Business Machines Corporation Virtual graphics display capable of presenting icons and windows to the blind computer user and method
US5235868A (en) 1991-10-02 1993-08-17 Culver Craig F Mechanism for generating control signals
US5262777A (en) * 1991-11-16 1993-11-16 Sri International Device for generating multidimensional input signals to a computer
US5889670A (en) 1991-10-24 1999-03-30 Immersion Corporation Method and apparatus for tactilely responsive user interface
US5220260A (en) * 1991-10-24 1993-06-15 Lex Computer And Management Corporation Actuator having electronically controllable tactile responsiveness
US5271290A (en) 1991-10-29 1993-12-21 United Kingdom Atomic Energy Authority Actuator assembly
WO1993010546A1 (de) * 1991-11-21 1993-05-27 Cherry Mikroschalter Gmbh Flacher tastschalter
US5228356A (en) * 1991-11-25 1993-07-20 Chuang Keh Shih K Variable effort joystick
US5309140A (en) 1991-11-26 1994-05-03 The United States Of America As Represented By The Secretary Of The Navy Feedback system for remotely operated vehicles
US5230623A (en) * 1991-12-10 1993-07-27 Radionics, Inc. Operating pointer with interactive computergraphics
GB9201214D0 (en) 1992-01-21 1992-03-11 Mcmahon Michael J Surgical retractors
DE4205875A1 (de) 1992-02-26 1993-09-02 Vdo Schindling Bedienvorrichtung
US5559432A (en) 1992-02-27 1996-09-24 Logue; Delmar L. Joystick generating a polar coordinates signal utilizing a rotating magnetic field within a hollow toroid core
CA2062147C (en) * 1992-03-02 1995-07-25 Kenji Hara Multi-axial joy stick device
US5589828A (en) 1992-03-05 1996-12-31 Armstrong; Brad A. 6 Degrees of freedom controller with capability of tactile feedback
JP3199130B2 (ja) 1992-03-31 2001-08-13 パイオニア株式会社 3次元座標入力装置
US5189355A (en) 1992-04-10 1993-02-23 Ampex Corporation Interactive rotary controller system with tactile feedback
JP2677315B2 (ja) 1992-04-27 1997-11-17 株式会社トミー 運転玩具
US5273418A (en) * 1992-04-29 1993-12-28 Nok Corporation Molding machine
US5366376A (en) 1992-05-22 1994-11-22 Atari Games Corporation Driver training system and method with performance data feedback
US5368484A (en) 1992-05-22 1994-11-29 Atari Games Corp. Vehicle simulator with realistic operating feedback
US5551701A (en) 1992-08-19 1996-09-03 Thrustmaster, Inc. Reconfigurable video game controller with graphical reconfiguration display
US5245320A (en) 1992-07-09 1993-09-14 Thrustmaster, Inc. Multiport game card with configurable address
US5296871A (en) 1992-07-27 1994-03-22 Paley W Bradford Three-dimensional mouse with tactile feedback
US5428748A (en) 1992-09-24 1995-06-27 National Semiconductor Corporation Method and apparatus for automatically configuring a computer peripheral
US5264768A (en) * 1992-10-06 1993-11-23 Honeywell, Inc. Active hand controller feedback loop
US5286203A (en) 1992-10-07 1994-02-15 Aai Microflite Simulation International Simulating horizontal stabilizer trimming in an aircraft
US5666473A (en) 1992-10-08 1997-09-09 Science & Technology Corporation & Unm Tactile computer aided sculpting device
US5790108A (en) * 1992-10-23 1998-08-04 University Of British Columbia Controller
US5397323A (en) 1992-10-30 1995-03-14 International Business Machines Corporation Remote center-of-motion robot for surgery
US5389865A (en) 1992-12-02 1995-02-14 Cybernet Systems Corporation Method and system for providing a tactile virtual reality and manipulator defining an interface device therefor
US5629594A (en) 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US5769640A (en) 1992-12-02 1998-06-23 Cybernet Systems Corporation Method and system for simulating medical procedures including virtual reality and control method and system for use therein
US5550562A (en) 1993-01-12 1996-08-27 Fujitsu Limited Data processing device that enables mouse-operated application programs to be operated from an operation pad, and an operation pad for use with the same
US5451924A (en) 1993-01-14 1995-09-19 Massachusetts Institute Of Technology Apparatus for providing sensory substitution of force feedback
EP0607580A1 (en) 1993-01-21 1994-07-27 International Business Machines Corporation Tactile feedback mechanism for cursor control
US5785630A (en) 1993-02-02 1998-07-28 Tectrix Fitness Equipment, Inc. Interactive exercise apparatus
US5402582A (en) 1993-02-23 1995-04-04 Faro Technologies Inc. Three dimensional coordinate measuring apparatus
US5412880A (en) 1993-02-23 1995-05-09 Faro Technologies Inc. Method of constructing a 3-dimensional map of a measurable quantity using three dimensional coordinate measuring apparatus
JP3259425B2 (ja) * 1993-04-09 2002-02-25 ヤマハ株式会社 パラメータ指示装置
JP3686686B2 (ja) * 1993-05-11 2005-08-24 松下電器産業株式会社 力覚呈示デバイス、データ入力装置、及びデータ入力デバイス装置
US5429140A (en) 1993-06-04 1995-07-04 Greenleaf Medical Systems, Inc. Integrated virtual reality rehabilitation system
US5405152A (en) 1993-06-08 1995-04-11 The Walt Disney Company Method and apparatus for an interactive video game with physical feedback
US5396266A (en) 1993-06-08 1995-03-07 Technical Research Associates, Inc. Kinesthetic feedback apparatus and method
US5351692A (en) * 1993-06-09 1994-10-04 Capistrano Labs Inc. Laparoscopic ultrasonic probe
US5513100A (en) 1993-06-10 1996-04-30 The University Of British Columbia Velocity controller with force feedback stiffness control
US5466213A (en) 1993-07-06 1995-11-14 Massachusetts Institute Of Technology Interactive robotic therapist
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
US6057828A (en) 1993-07-16 2000-05-02 Immersion Corporation Method and apparatus for providing force sensations in virtual environments in accordance with host software
US5734373A (en) 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US5739811A (en) 1993-07-16 1998-04-14 Immersion Human Interface Corporation Method and apparatus for controlling human-computer interface systems providing force feedback
US5721566A (en) 1995-01-18 1998-02-24 Immersion Human Interface Corp. Method and apparatus for providing damping force feedback
US5701140A (en) 1993-07-16 1997-12-23 Immersion Human Interface Corp. Method and apparatus for providing a cursor control interface with force feedback
US5767839A (en) 1995-01-18 1998-06-16 Immersion Human Interface Corporation Method and apparatus for providing passive force feedback to human-computer interface systems
US5625576A (en) 1993-10-01 1997-04-29 Massachusetts Institute Of Technology Force reflecting haptic interface
US5436640A (en) 1993-10-29 1995-07-25 Thrustmaster, Inc. Video game and simulator joystick controller with geared potentiometer actuation
US5384460A (en) 1993-11-03 1995-01-24 Silitek Corporation Encoder with a light emitting editing wheel
DE69423313T2 (de) 1993-12-20 2000-07-13 Seiko Epson Corp Elektronische Hinweisanordnung
JPH07111663B2 (ja) 1993-12-28 1995-11-29 コナミ株式会社 操作用フットペダル
US5577981A (en) 1994-01-19 1996-11-26 Jarvik; Robert Virtual reality exercise machine and computer controlled video system
WO1995020788A1 (en) 1994-01-27 1995-08-03 Exos, Inc. Intelligent remote multimode sense and display system utilizing haptic information compression
WO1995020787A1 (en) 1994-01-27 1995-08-03 Exos, Inc. Multimode feedback display technology
US5436542A (en) 1994-01-28 1995-07-25 Surgix, Inc. Telescopic camera mount with remotely controlled positioning
JPH07230356A (ja) * 1994-02-16 1995-08-29 Kokusai Electric Co Ltd マウス誤移動防止回路
US5482051A (en) 1994-03-10 1996-01-09 The University Of Akron Electromyographic virtual reality system
JP2665313B2 (ja) 1994-04-22 1997-10-22 国際電業株式会社 反力発生装置
US6004134A (en) 1994-05-19 1999-12-21 Exos, Inc. Interactive simulation including force feedback
JPH0880100A (ja) 1994-06-30 1996-03-22 Mitsubishi Electric Corp 誘導電動機の制御装置及びその制御方法
US5623582A (en) 1994-07-14 1997-04-22 Immersion Human Interface Corporation Computer interface or control input device for laparoscopic surgical instrument and other elongated mechanical objects
JPH0843872A (ja) * 1994-08-03 1996-02-16 Minolta Co Ltd 電気−機械変換素子を使用したレンズ駆動装置
JPH09505426A (ja) 1994-09-07 1997-05-27 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ ユーザがプログラムできる触覚のフィードバックを有する仮想作業領域
US6422941B1 (en) 1994-09-21 2002-07-23 Craig Thorner Universal tactile feedback system for computer video games and simulations
US5669818A (en) 1995-03-23 1997-09-23 Thorner; Craig Seat-based tactile sensation generator
US5570111A (en) 1994-10-03 1996-10-29 International Business Machines Corporation Graphical user interface cursor positioning device having a negative inertia transfer function
US5642469A (en) 1994-11-03 1997-06-24 University Of Washington Direct-drive manipulator for pen-based force display
US5766016A (en) 1994-11-14 1998-06-16 Georgia Tech Research Corporation Surgical simulator and method for simulating surgical procedure
US5666138A (en) 1994-11-22 1997-09-09 Culver; Craig F. Interface control
JP3236180B2 (ja) 1994-12-05 2001-12-10 日本電気株式会社 座標指示装置
US5882206A (en) 1995-03-29 1999-03-16 Gillio; Robert G. Virtual surgery system
US5736978A (en) 1995-05-26 1998-04-07 The United States Of America As Represented By The Secretary Of The Air Force Tactile graphics display
US5589854A (en) 1995-06-22 1996-12-31 Tsai; Ming-Chang Touching feedback device
US5771037A (en) 1995-07-24 1998-06-23 Altra Computer display cursor controller
DE19528457C2 (de) 1995-08-03 2001-03-08 Mannesmann Vdo Ag Bedieneinrichtung
US5724068A (en) 1995-09-07 1998-03-03 Microsoft Corporation Joystick with uniform center return force
MX9704155A (es) 1995-10-09 1997-09-30 Nintendo Co Ltd Sistema procesador de imagenes tridimensionales.
US5754023A (en) 1995-10-26 1998-05-19 Cybernet Systems Corporation Gyro-stabilized platforms for force-feedback applications
EP0864145A4 (en) 1995-11-30 1998-12-16 Virtual Technologies Inc TACTILE FEEDBACK FOR HUMAN / MACHINE INTERFACE
US6219032B1 (en) 1995-12-01 2001-04-17 Immersion Corporation Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface
US5857986A (en) 1996-05-24 1999-01-12 Moriyasu; Hiro Interactive vibrator for multimedia
US6128006A (en) 1998-03-26 2000-10-03 Immersion Corporation Force feedback mouse wheel and other control wheels
US6422041B1 (en) * 1999-08-16 2002-07-23 The Boc Group, Inc. Method of boosting a glass melting furnace using a roof mounted oxygen-fuel burner

Also Published As

Publication number Publication date
CA2233136C (en) 2012-01-31
CA2233136A1 (en) 1997-04-03
JP2010061667A (ja) 2010-03-18
JPH11514469A (ja) 1999-12-07
US20010030658A1 (en) 2001-10-18
US20030193475A1 (en) 2003-10-16
US6219033B1 (en) 2001-04-17
DE69636703T2 (de) 2007-09-13
DE69636703D1 (de) 2006-12-28
EP0852789A1 (en) 1998-07-15
US6982700B2 (en) 2006-01-03
US20060007184A1 (en) 2006-01-12
EP0852789B1 (en) 2006-11-15
JP4689747B2 (ja) 2011-05-25
US6580417B2 (en) 2003-06-17
JP2011065678A (ja) 2011-03-31
EP0852789A4 (en) 1998-12-09
WO1997012357A1 (en) 1997-04-03
US8077145B2 (en) 2011-12-13
US5734373A (en) 1998-03-31

Similar Documents

Publication Publication Date Title
JP4929394B2 (ja) ホストコンピュータを利用して力フィードバックインタフェースを制御する方法および装置
US6219032B1 (en) Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface
US6661403B1 (en) Method and apparatus for streaming force values to a force feedback device
US5739811A (en) Method and apparatus for controlling human-computer interface systems providing force feedback
WO1997012357A9 (en) Method and apparatus for controlling force feedback interface systems utilizing a host computer
US6750877B2 (en) Controlling haptic feedback for enhancing navigation in a graphical environment
EP0852770B1 (en) Safe and low cost computer peripherals with force feedback for consumer applications
CA2294128A1 (en) Method and apparatus for designing force sensations in force feedback computer applications
WO2002057885A2 (en) Controlling haptic feedback for enhancing navigation in a graphical environment

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120213

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term