DE69636703T2 - Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners - Google Patents

Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners Download PDF

Info

Publication number
DE69636703T2
DE69636703T2 DE69636703T DE69636703T DE69636703T2 DE 69636703 T2 DE69636703 T2 DE 69636703T2 DE 69636703 T DE69636703 T DE 69636703T DE 69636703 T DE69636703 T DE 69636703T DE 69636703 T2 DE69636703 T2 DE 69636703T2
Authority
DE
Germany
Prior art keywords
force
host
command
microprocessor
user
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
DE69636703T
Other languages
English (en)
Other versions
DE69636703D1 (de
Inventor
B. Louis Pleasanton ROSENBERG
C. Adam Sunnyvale BRAUN
D. Mike Sunnyvale LEVIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Immersion Corp
Original Assignee
Immersion Corp
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 Immersion Corp filed Critical Immersion Corp
Publication of DE69636703D1 publication Critical patent/DE69636703D1/de
Application granted granted Critical
Publication of DE69636703T2 publication Critical patent/DE69636703T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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

  • TECHNISCHER HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf Schnittstellenvorrichtungen zwischen Mensch und Computer und insbesondere auf Computer-Schnittstellenvorrichtungen, die eine Kraftrückkoppelung an den Benutzer bereitstellen.
  • Computersysteme werden verbreitet in vielen unterschiedlichen Industrien verwendet, um computergesteuerte Simulationen, Spiele und andere Anwendungsprogramme zu realisieren. Insbesondere sind diese Art Spiele und Simulationen auf dem Massenmarkt von Heimkonsumenten sehr beliebt. Ein Computersystem zeigt einem Benutzer eine visuelle Umgebung typischerweise auf einem Anzeigebildschirm oder anderen Bildausgabegerät an. Benutzer können mit der angezeigten Umgebung in Dialog treten, um ein Spiel zu spielen, eine Simulation oder "Virtuelle Realität"-Umgebung zu erleben oder auf dem Bildschirm veranschaulichte Geschehnisse oder Abbildungen andersartig zu beeinflussen. Ein derartiger Benutzerdialog kann durch die Verwendung einer Mensch/Computer-Schnittstellenvorrichtung realisiert werden, wie z. B. ein Joystick, eine "Joypad"[Steuerfeld]-Schaltflächen-Steuereinheit, eine Maus, eine Rollkugel, ein Stylus [schriftartiges Schreibgerät] und Tablett oder dergleichen, die an das Computersystem angeschlossen ist, das die angezeigte Umgebung steuert. Der Computer aktualisiert die Simulation oder das Spiel als Reaktion darauf, dass der Benutzer einen Gegenstand wie z. B. einen Joystick-Griff oder eine Maus betätigt, und liefert dem Benutzer unter Verwendung des Anzeigebildschirms und typischerweise der Lautsprecher eine Rückkopplung (Feedback).
  • Bei einigen Schnittstellenvorrichtungen wird dem Benutzer auch ein taktiles ("haptisches") Feedback geliefert, das allgemeiner als "Kraftrückkoppelung" bzw. "Force Feedback" bekannt ist. Diese Arten von Schnittstellenvorrichtungen können körperliche Empfindungen an den Benutzer liefern, der den Gegenstand der Schnittstellenvorrichtung betätigt. Typischerweise sind Motoren oder andere Aktuatoren an den Gegenstand gekoppelt und an das Steuerungscomputersystem angeschlossen. Das Computersystem kann Kräfte in Verbindung mit Simulations-/Spielereignissen auf dem Gegenstand bereitstellen, indem es Steuersignale an die Aktuatoren sendet. Auf diese Weise kann das Computersystem körperliche Empfindungen in Verbindung mit anderem gelieferten Feedback zu dem Benutzer transportieren, wenn der Benutzer den Gegenstand der Schnittstellenvorrichtung ergreift oder berührt. Kraftrückkoppelungsschnittstellenvorrichtungen bzw. Force-Feedback-Schnittstellenvorrichtungen können somit eine ganz neue Modalität für den Mensch/Computer-Dialog bereitstellen.
  • Force-Feedback-Ein-Ausgabe-(I/O-)Vorrichtungen des Standes der Technik haben sich auf die Bereitstellung maximaler haptischer Wiedergabetreue konzentriert, d. h. es war erwünscht, den Realismus der taktilen Rückkoppelung zu optimieren. Dies ist deshalb so, weil die meisten Kraftrückkoppelungsgeräte auf die speziellen Bedürfnisse hochindustrieller Anwendungen und nicht einen Massenverbrauchermarkt abgestellt waren. Zum Erlangen eines solchen Realismus wurden beim Stand der Technik Massenmarkt-Ausführungsinteressen wie geringe Größe und Gewicht, geringe Komplexität, Programmierkompatibilität, niedrige Kosten und Sicherheit geopfert. Als Folge schließen typische Force-Feedback-Schnittstellenvorrichtungen komplexe automatische Schaltwerke ein, die Präzisionskomponenten und teure Aktuatoren erfordern.
  • Eine wichtige Angelegenheit für eine Force-Feedback-Schnittstellenvorrichtung ist die Kommunikationsbandbreite zwischen dem Steuercomputer und der Schnittstellenvorrichtung. Zur Bereitstellung realistischer Kraftrückkoppelung verwenden die komplexen Geräte des Standes der Technik typischerweise Hochgeschwindigkeits-Kommunikationselektronik, die es dem Steuercomputer erlauben, Kraftrückkoppelungssignale schnell an die Schnittstellenvorrichtung zu aktualisieren. Je schneller der Steuercomputer Signale an die Schnittstellenvorrichtung senden und von ihr empfangen kann, desto genauer und realistischer können die gewünschten Kräfte an das Schnittstellenobjekt angelegt werden. Daneben kann die Kraftrückkoppelung bei Verwendung einer Datenübertragungsschnittstelle mit hoher Bandbreite präzise mit anderem zugeführten Feedback wie Abbildungen auf dem Bildschirm und mit Benutzereingaben wie Bewegung des Gegenstands, aktivierte Knöpfe etc. koordiniert werden. Zum Beispiel kann ein Benutzer in einer Simulation einen Force-Feedback-Joystick ergreifen und bewegen, um eine Abbildung eines Autos so zu steuern, dass es über eine virtuelle holperige Oberfläche fährt, die auf einem Bildschirm angezeigt wird. Der Steuercomputer sollte Steuersignale schnell genug an die Aktuatoren des Joysticks liefern, so dass sich die Oberfläche so realistisch holperig anfühlt, wie es der Designer der Simulation beabsichtigte. Wenn die Steuersignale zu langsam sind, ist es schwieriger, ein realistisches Gefühl von Holperigkeit bereitzustellen. Ferner benötigt der Steuercomputer eine Datenübertragungsschnittstelle mit hoher Bandbreite zur präzisen Koordinierung der zugeführten Kräfte mit der visuellen Rückkoppelung auf dem Bildschirm, wie den Moment auf dem Bildschirm, wenn das Auto zum ersten Mal mit der holperigen Oberfläche in Berührung kommt. Diese hohe Geschwindigkeit wird ebenfalls benötigt, um zugeführte Kräfte mit irgendeiner Eingabe von dem Benutzer präzise zu koordinieren, beispielsweise das Auto in bestimmte Richtungen zu lenken.
  • Ein Problem ist augenscheinlich, wenn Force-Feedback-Schnittstellenvorrichtungen des Standes der Technik für den Massenverbrauchermarkt vorgesehen sind. Die meisten Heimcomputer haben eine eingebaute serielle Standard-Datenübertragungsschnittstelle, wie z. B. eine RS-232- oder RS-422-Schnittstelle, die komfortabel verwendet werden kann, um periphere Geräte wie eine Force-Feedback-Schnittstellenvorrichtung an den Hauptrechner anzuschließen. Außerdem ziehen die Hersteller es vor, Peripheriegeräte bereitzustellen, die diese seriellen Schnittstellen verwenden, weil bei solchen peripheren Geräten keine zusätzliche Hardware wie Schnittstellenkarten vorgesehen sein muss. Die Herstellungskosten des Peripheriegerätes können auf diese Weise signifikant verringert werden. Diese seriellen Standard-Datenübertragungsschnittstellen sind jedoch typischerweise ziemlich langsam (d. h. haben eine niedrige Bandbreite) im Vergleich zu anderen Datenübertragungsschnittstellen. Somit wird es für ein Steuerungscomputersystem schwierig, eine realistische und genaue Kraftrückkoppelung an eine Schnittstellenvorrichtung des Standes der Technik zu liefern, die über eine derartige serielle Schnittstelle angeschlossen ist. Zum Beispiel beschreibt das US-Patent 5,184,319 von J. Kramer ein Kraftrückkoppelungsgerät, das Kräfte an Körperteile eines Benutzers anlegt. Das Kramer-Gerät ist jedoch insofern typisch für den Stand der Technik, als der Hauptrechner die Aktuatoren direkt steuert und die Messfühlerdaten direkt von der Schnittstellenvorrichtung erhält. Ein derartiges Gerät ist nicht dazu geeignet, dass eine Datenübertragungsschnittstelle mit niedriger Bandbreite eine realistische Kraftrückkoppelung erreicht.
  • Ein anderes Problem bei der Verwendung von Force-Feedback-Schnittstellenvorrichtungen des Standes der Technik auf dem Massenverbrauchermarkt ist die breite Vielfalt von Computer-Hardwarebasis und Verarbeitungsgeschwindigkeiten, die bei unterschiedlichen Computern und bei demselben Computer zu unterschiedlichen Zeiten verwendet werden. Die durch eine Force-Feedback-Schnittstellenvorrichtung an einen Benutzer gelieferten Kraftempfindungen können sich bei unterschiedlicher Computer-Hardwarebasis oder Mikroprozessoren unterschiedlich für einen Benutzer anfühlen, weil diese unterschiedlichen Computer mit unterschiedlichen Geschwindigkeiten laufen. Zum Beispiel kann die durch einen 100-MHz-Computer gesteuerte Kraftrückkoppelung aufgrund der unterschiedlichen Steuersignal-Verarbeitungsraten ganz anders sein als die durch einen 60-MHz-Computer gesteuerte Kraftrückkoppelung, obwohl diese Kräfte sich gleich anfühlen sollen. Außerdem kann die effektive Verarbeitungsgeschwindigkeit eines Mikroprozessors sich mit der Zeit verändern und über mehrfache Benutzersitzungen hinweg uneinheitliche Kräfte bereitstellen. Zum Beispiel kann Multitaskingbetrieb die Force-Feedback-Steuersignalverwaltung eines Mikroprozessors abhängig von anderen gerade auf dem Mikroprozessor laufenden Programmen verändern oder verzögern.
  • Aus US-A-5,397,865 ist beispielsweise eine Force-Feedback-Schnittstellenvorrichtung mit einem Digitalisierungstablett bekannt. Das Digitalisierungstablett und Anzeigesystem der US 5,397,865 ist so ausgelegt, dass ein Anwendungsziel hervorgehoben wird, wenn ein vom Benutzer bedienter Cursor nahe an einen Gegenstand herankommt. Daraufhin werden Kräfte zum Bewegen des Cursors auf einen Stylus ausgeübt, um den Benutzer zu drängen, die Stylusbewegung mit den Konturen des hervorgehobenen Anwendungsziels auszurichten. Des Weiteren offenbart EP-A-0 626 634 ein Force-Feedback-Dateneingabegerät, wobei eine Kraftempfindung an die Hand eines Benutzers abgegeben wird.
  • Außerdem gibt es keine standardisierte Sprache oder Kommunikationsprotokoll zur Kommunikation mit Kraftrückkoppelungsgeräten. Ein(e) Software-Entwickler(in), der (die) eine Kraftrückkoppelung an eine Schnittstelle in einer Software-Anwendung bereitstellen möchte, muss derzeit seine oder ihre eigenen spezialisierten Steuerbefehle und/oder Kommunikationsprotokolle erstellen und die Force-Feedback-Steuerungsbefehle auf einem niedrigen Niveau implementieren. Dies erfordert unnötig Zeit und Aufwand bei der Entwicklung von Software-Anwendungen, die Merkmale einschließen, die auf Kraftrückkoppelungsschnittstellen gerichtet sind.
  • Daher ist eine realistischere und kostenwirksamere Alternative zu Force-Feedback-Schnittstellen und Force-Feedback-Steuerparadigmen für bestimmte Anwendungen erwünscht.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist auf eine Schnittstellenvorrichtung gerichtet, wie in Anspruch 1 definiert, und auf ein Verfahren, wie in Anspruch 25 definiert.
  • Insbesondere schließt ein System und Verfahren der vorliegenden Erfindung zur Steuerung einer von einem Benutzer bedienten Schnittstellenvorrichtung ein Hauptrechnersystem (Host-Computersystem) zum Empfangen eines Eingangssteuersignals und Liefern eines Host-Ausgangssteuersignals ein. Der Hauptrechner aktualisiert einen Host-Anwendungsprozess, wie z. B. eine Simulation oder einen Videospielprozess, als Reaktion auf das Eingangssteuersignal. Ein örtlicher, vom Hauptrechner getrennter Mikroprozessor an der Schnittstellenvorrichtung empfängt das Host-Ausgangssteuersignal und liefert ein Prozessor-Ausgangssteuersignal. Ein Aktuator empfängt das Prozessor-Ausgangssteuersignal und liefert in Übereinstimmung mit dem Prozessor-Ausgangssteuersignal eine Kraft entlang einem Freiheitsgrad zu einem benutzerbetätigten Gegenstand, der an den Aktuator gekoppelt ist. Ein Messfühler erfasst die Bewegung des Gegenstands entlang dem Freiheitsgrad und gibt das Eingangssteuersignal aus, das die Position und Bewegung des Gegenstands darstellende Informationen enthält. Vorzugsweise gibt der Messfühler das Eingangssteuersignal an den örtlichen Prozessor aus, der das Eingangssteuersignal an den Hauptrechner ausgibt. Der Benutzergegenstand wird vorzugsweise vom Benutzer festgehalten und in einem oder mehr Freiheitsgraden bewegt und kann solche Gegenstände wie einen Joystick, eine Maus, die Nachbildung eines medizinischen Instrumentes, einen Stylus oder ein anderes Objekt einschließen.
  • In einer hostgesteuerten Ausführungsform empfängt der Hauptrechner Messfühlerinformationen im Eingangssteuersignal und bestimmt die Werte der Kräfte. Das Host-Ausgangssteuersignal ist somit der bestimmte direkte Kraftsteuerbefehl, der durch den Mikroprozessor direkt zum Aktuator übertragen wird. In einer zweiten "Spiegelungs"-Ausführungsform empfängt der Hauptrechner die Messfühlerinformationen in einem Kontrollmodus und gibt immer dann einen höheren Kraftsteuerbefehl an den Mikroprozessor aus, wenn gefordert wird, eine Kraft an den Benutzergegenstand anzulegen oder zu ändern. In Übereinstimmung mit dem höheren Host-Steuerbefehl liest der Mikroprozessor Messfühler- und Taktdaten und gibt gemäß einem ausgewählten Spiegelungsprozess niedere Kraftsteuerbefehle an den Aktuator aus. Der Spiegelungsprozess kann die Verwendung von Kraftgleichungen, das Lesen von Kraftprofilen vorbestimmter Kraftwerte aus einer Speichervorrichtung oder andere Schritte einschließen und von Messfühlerdaten, Taktdaten, Host-Steuerbefehldaten oder anderen Daten abhängig sein. Der Prozessor realisiert somit unabhängig vom Hauptrechner eine "Spiegelung" zu Steuerkräften, bis der Hauptrechner die an den Benutzergegenstand angelegte Kraftart wechselt.
  • Eine Größe der von dem Aktuator bereitgestellten Kraft wird durch den Hauptrechner oder den örtlichen Mikroprozessor bestimmt. Diese Größe kann ausgehend von Parametern bestimmt werden, zu denen die Position, Geschwindigkeit und/oder Beschleunigung des Gegenstands in bestimmten Freiheitsgraden sowie Taktdaten vom Taktgeber zählen. Die Kraft kann somit unterschiedliche Arten von Kräften simulieren, wie z. B. eine Federkraft, Dämpfungskraft oder Trägheitskraft.
  • Das durch das Hauptrechnersystem aktualisierte Anwendungsverfahren schließt vorzugsweise Anwendungssoftware ein, die Simulationssoftware, Spiele-Software, wissenschaftliche Software etc. sein kann. Das Hauptrechnersystem zeigt Abbildungen auf einem Bildausgabegerät wie einem Anzeigebildschirm an und synchronisiert die Abbildungen und visuellen Geschehnisse mit der von dem den Gegenstand manipulierenden Benutzer eingegebenen Position und Bewegung sowie an den Gegenstand angelegten Kräften. Der Hauptrechner synchronisiert vorzugsweise auch die zeitliche Regulierung und Größe von Tonrückkoppelung mit Kraftrückkoppelung. Die vorliegende Erfindung kann eine bei vielen Computern enthaltene serielle Standardschnittstelle verwenden, um das Hauptrechnersystem mit dem örtlichen Mikroprozessor zu verbinden. Alternativ kann eine Parallelschnittstelle oder eine in Verbindung mit einer anderen Schnittstelle am Hauptrechner verwendete serielle Schnittstelle, z. B. ein Gameport (Spiel-Schnittstelle), verwendet werden. Ein Taktgeber ist vorzugsweise an das Hauptrechnersystem oder den örtlichen Prozessor gekoppelt, auf den zugegriffen werden kann, um die von dem Aktuator abgegebene Kraft teilweise zu bestimmen.
  • Es ist auch ein Paradigma für Kraftsteuerbefehle zwischen dem Hauptrechner und dem örtlichen Mikroprozessor vorgesehen. Die von dem Hauptrechner gelieferten höheren Host-Steuerbefehle können Geschwindigkeits- und/oder Positionssteuerbefehle sein und Informationen in Form von Befehlsparametern einschließen. Durch Liefern einer relativ kleinen Menge von Befehlen und Befehlsparametern, die in eine Kräftepalette umgesetzt werden, verschiebt das Paradigma ferner die Rechenlast vom Hauptrechner zum örtlichen Mikroprozessor. Host-Steuerbefehle können Steuerbefehle zur Lieferung von Kräften an den Benutzergegenstand einschließen, wie z. B. Rückstellkräfte, Schwingungskräfte, Struktur- bzw. Texturkräfte, Sperrkräfte, Anziehungs-/Rückstoßkraftfelder, Dämpfungskräfte, Nutkräfte und eine Schläger/Ball-Kraft. Typische Befehlsparameter schließen einen Größenparameter, einen Dauerparameter, einen Richtungsparameter, einen Stilparameter und einen Schaltflächenparameter zum Steuern der durch den Aktuator abgegebenen Kraft ein. Dies stellt ein höheres Standard-Kraftrückkoppelung-Kommandoprotokoll zur effizienten Verwendung durch Entwickler von Force-Feedback-Software bereit, die auf dem Hauptrechnersystem implementiert werden soll.
  • Eine bevorzugte Implementierung der Funktionalität des örtlichen Mikroprozessors wird ebenfalls bereitgestellt. Ein Steuerbefehlsprozess erhält einen Host-Steuerbefehl vom Hauptrechner und verarbeitet den Host-Steuerbefehl und alle noch enthaltenen Befehlsparameter. Aus dem Host-Steuerbefehl und den Parametern werden Kraftparameter abgeleitet und im Arbeitsspeicher gespeichert. Vorzugsweise weist jeder Host-Steuerbefehl eine Reihe von damit verbundenen Kraftparametern auf, die zu aktualisieren sind, wenn der entsprechende Host-Steuerbefehl erhalten wird. Ein Statusaktualisierungsprozess liest Messfühlerdaten aus den Messfühlern aus, die eine Bewegung des Benutzergegenstands beschreiben, und kann im Bedarfsfall auch Geschwindigkeit, Beschleunigung oder andere zeitbezogene Werte berechnen. Ein Kraftausgabeprozess berechnet einen Kraftwert unter Verwendung eines in Übereinstimmung mit den Kraftparametern und den Messfühlerdaten ausgewählten Spiegelungsprozesses. In einigen Fällen kann der Kraftwert von den Werten der Kraftparameter und Messfühlerdaten abhängen. Der Kraftausgabeprozess gibt eine Kraft an den Benutzergegenstand aus, indem der berechnete Kraftwert zu den Aktuatoren gesendet wird. Daneben meldet ein Meldeprozess die Messfühlerdaten im Bedarfsfall an das Hauptrechnersystem. Vorzugsweise kann eine Vielzahl von Host-Steuerbefehlen gleichzeitig gültig sein, wobei ein Kraftwert aus einem Spiegelungsprozess summiert wird, der jedem solchem gültigen Host-Steuerbefehl entspricht. Ferner können Parameterseite(n) von Parametermengen bequem im Arbeitsspeicher gespeichert werden, um das Auswählen unterschiedlicher Kraftumgebungen zu erlauben.
  • Das Steuer-System und -Verfahren der vorliegenden Erfindung schließt einen getrennten Mikroprozessor örtlich an der Schnittstellenvorrichtung ein, der vom Hauptrechnersystem getrennt ist. Der örtliche Mikroprozessor kann unabhängig vom Hauptrechner Messfühlersignale lesen und verarbeiten sowie Kraftbefehlssignale ausgeben und auf diese Weise beträchtliche Verarbeitungszeit auf dem Hauptrechner sparen. Daneben erlaubt die Verwendung des örtlichen Prozessors zum Behandeln niederer Kraftrückkoppelungsbefehle die Lieferung realistischerer und genauerer Kraftrückkoppelung an einen von einem Benutzer manipulierten Gegenstand bei Verwendung einer seriellen oder anderen Datenübertragungsschnittstelle mit relativ niedriger Bandbreite zwischen dem Host und der Schnittstellenvorrichtung, weil solch niedrige Kraftsignale nicht über die Datenübertragungsschnittstelle übertragen werden müssen. Die Verwendung eines Taktgebers beim Generieren von Kraftrückkoppelungsbefehlen im Hinblick auf absolute Taktinformationen erlaubt ein übereinstimmendes Erleben von Kraftempfindungen durch Benutzer über unterschiedliche Hauptrechner-Plattformen hinweg und bei unterschiedlichen Sitzungen an demselben Hauptrechner. Die Verwendung spezieller höherer Host-Steuerbefehle zum Steuern vielfältiger Arten von Kräften erlaubt ein leichtes Anlegen von Force-Feedback-Hostanwendungen. Diese Verbesserungen erlauben einem Computersystem die Bereitstellung einer genauen und realistischen Kraftrückkoppelung über eine billige Datenübertragungsschnittstelle mit niedriger Bandbreite und sind somit ideal für den Massenmarkt von Heimcomputersystemen.
  • Diese und andere Vorteile der vorliegenden Erfindung werden Fachleuten auf diesem Gebiet beim Durchlesen der folgenden Beschreibung der Erfindung und beim Studium der einzelnen Figuren der Zeichnung klar werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Steuersystems in Übereinstimmung mit der vorliegenden Erfindung zur Steuerung einer Force-Feedback-Schnittstellenvorrichtung von einem Hauptrechner aus;
  • 2 ist ein schematisches Diagramm einer Aktuatorschnittstelle zur Bereitstellung von Steuersignalen an einen aktiven Aktuator für die vorliegende Erfindung;
  • 3 ist ein schematisches Diagramm einer Aktuatorschnittstelle zur Bereitstellung von Steuersignalen an einen passiven Aktuator für die vorliegende Erfindung;
  • 4 ist ein Ablaufdiagramm, das eine erste Ausführungsform eines Verfahrens der vorliegenden Erfindung zur Steuerung einer Force-Feedback-Schnittstellenvorrichtung darstellt;
  • 5 ist ein Ablaufdiagramm, das eine zweite Ausführungsform eines Verfahrens der vorliegenden Erfindung zur Steuerung einer Force-Feedback-Schnittstellenvorrichtung darstellt;
  • 6 ist ein schematisches Diagramm eines geschlossenen Regelsystems mit fünf Stangen zur Bereitstellung von zwei Freiheitsgraden an den Benutzergegenstand der Schnittstellenvorrichtung;
  • 7 ist eine perspektivische Ansicht einer bevorzugten Ausführungsform des in 6 gezeigten Gelenkmechanismus;
  • 8 ist eine perspektivische Ansicht einer Joystick-Ausführungsform mit geschlitztem Joch einer mechanischen Schnittstelle für den Benutzergegenstand;
  • 9 ist eine Tabelle, die Geschwindigkeitssteuerbefehle der vorliegenden Erfindung zusammenfasst;
  • 10a-c sind schematische Darstellungen von Rückstellkraftprofilen;
  • 11a-c sind schematische Darstellungen von Rückstellfederkraftprofilen;
  • 12 ist eine schematische Darstellung einer Vektorkraft;
  • 13a-b sind schematische Darstellungen von Vibrationskraftprofilen;
  • 14 ist eine Tabelle, die Positionssteuerbefehle der vorliegenden Erfindung zusammenfasst;
  • 15 ist eine schematische Darstellung eines Nutenkraftprofils;
  • 16 ist eine schematische Darstellung eines Sperrkraftprofils;
  • 17a-17i sind schematische Illustrationen einer durch einen Spielkonsolenbefehl der vorliegenden Erfindung gesteuerten Wechselwirkung zwischen Ball und Schläger;
  • 18 ist ein Blockdiagramm, das eine Implementierung des örtlichen Mikroprozessors der vorliegenden Erfindung zur Steuerung einer Force- Feedback-Schnittstellenvorrichtung mit Kraftparameter enthaltenden Host-Steuerbefehlen darstellt;
  • 19 ist ein Ablaufdiagramm, das einen Host-Kommunikation-Hintergrundprozess nach 18 darstellt;
  • 20 ist ein Ablaufdiagramm, das einen Steuerbefehlsprozess nach 18 darstellt;
  • 21 ist ein Ablaufdiagramm, das einen Meldeprozess nach 18 darstellt;
  • 22 ist ein Ablaufdiagramm, das die Kraftalgorithmusberechnung und den Aktuatorsteuerprozess von 18 darstellt; und
  • 23 ist eine schematische Darstellung von Kraftparametern und eine Folge von Kraftsteuerbefehlen, wie sie in der vorliegenden Erfindung verwendet werden.
  • BESTE ARTEN ZUR AUSFÜHRUNG DER ERFINDUNG
  • 1 ist ein Blockdiagramm, das ein generisches Steuersystem 10 der vorliegenden Erfindung für eine durch ein Hauptrechnersystem gesteuerte Schnittstellenvorrichtung darstellt. Das Steuersystem 10 schließt ein Hauptrechnersystem 12 und eine Schnittstellenvorrichtung 14 ein.
  • Das Hauptrechnersystem 12 ist vorzugsweise ein Personalcomputer, wie z. B. ein IBM-kompatibler Personalcomputer bzw. ein Macintosh oder ein Arbeitsplatzrechner, wie z. B. ein SUN oder Silicon Graphics Arbeitsplatzrechner. Das Hauptrechnersystem kann beispielsweise ein Personalcomputer sein, der unter dem Betriebssystem MS-DOS oder Windows in Übereinstimmung mit einem IBM-PC-AT-Standard arbeitet. Alternativ kann das Hauptrechnersystem 12 eines aus einer Vielfalt von Heimvideo-Spielsystemen sein, die üblicherweise an ein Fernsehgerät angeschlossen werden, wie z. B. Systeme, die von Nintendo, Sega oder Sony erhältlich sind. In anderen Ausführungsformen kann das Heimcomputersystem 12 ein "Aufsetzkasten" (Digitalempfänger) sein, der beispielsweise verwendet werden kann, um interaktive Fernsehfunktionen an Benutzer bereitzustellen.
  • In der beschriebenen Ausführungsform implementiert das Hauptrechnersystem 12 ein Host-Anwendungsprogramm, mit dem ein Benutzer 22 über Peripheriegeräte und die Schnittstellenvorrichtung 14 einen Dialog führt. Das Host-Anwendungsprogramm kann beispielsweise ein Videospiel, eine medizinische Simulation, ein wissenschaftliches Analyseprogramm oder sogar ein Betriebssystem oder anderes Anwendungsprogramm sein, das Kraftrückkoppelung verwendet. Typischerweise liefert die Host-Anwendung Bilder zur Anzeige auf einer Anzeige-Ausgabevorrichtung, wie unten beschrieben, und/oder anderes Feedback wie akustische Signale.
  • Das Hauptrechnersystem 12 weist vorzugsweise einen Host-Mikroprozessor 16, einen Direktzugriffsspeicher (RAM) 17, einen Festspeicher (ROM) 19, einen Taktgeber 18, einen Anzeigebildschirm 20 und eine Tonausgabevorrichtung 21 auf. Der Host-Mikroprozessor 16 kann eine Vielfalt verfügbarer Mikroprozessoren von Intel, Motorola oder anderen Herstellern einschließen. Der Mikroprozessor 16 kann ein einzelner Mikroprozessorchip sein oder mehrere Haupt- und/oder Coprozessoren einschließen. Der Mikroprozessor ruft vorzugsweise Befehle und andere erforderliche Daten aus dem RAM 17 und ROM 19 ab und speichert sie, wie Fachleuten auf diesem Gebiet hinlänglich bekannt ist. In der beschriebenen Ausführungsform kann das Hauptrechnersystem 12 über einen Bus 24 Messfühlerdaten oder ein Messfühlersignal von Messfühlern der Schnittstellenvorrichtung 14 und andere Informationen erhalten. Der Mikroprozessor 16 kann Daten vom Bus 24 unter Verwendung einer zwischen dem Mikroprozessor 16 und dem Bus 24 vorgesehenen Standard-Ein-Ausgabe-Elektronik erhalten und kann die Ein-Ausgabe-Elektronik auch zur Steuerung anderer Peripheriegeräte benutzen. Über den Bus 24 kann das Hauptrechnersystem 12 auch einen "Kraftsteuerbefehl" an die Schnittstellenvorrichtung 14 ausgeben, um eine Kraftrückkoppelung für die Schnittstellenvorrichtung zu bewirken.
  • Der Taktgeber 18 ist ein Standard-Taktkristall oder äquivalentes Bauteil, das vom Hauptrechnersystem 12 zur Bereitstellung der zeitlichen Regulierung für vom Mikroprozessor 16 und anderen Bauteilen des Computersystems verwendete elektrische Signale verwendet wird. Im Steuerprozess der vorliegenden Erfindung greift das Hauptrechnersystem 12 auf den Taktgeber 18 zu, wie anschließend beschrieben.
  • Der Anzeigebildschirm 20 ist durch geeignete Anzeigetreiber an den Host-Mikroprozessor 16 angeschlossen und kann verwendet werden, um von dem Hauptrechnersystem 12 oder anderen Computersystemen generierte Abbildungen anzuzeigen. Der Anzeigebildschirm 20 kann ein Standard-Anzeigebildschirm oder eine Bildröhre, eine 3-D-Brille oder irgendeine andere Bildschirm-Benutzeroberfläche sein. In einer beschriebenen Ausführungsform zeigt der Anzeigebildschirm 20 Abbildungen einer Simulation oder Spielumgebung. In anderen Ausführungsformen können andere Bilder dargestellt sein. Zum Beispiel können Abbildungen angezeigt werden, die einen Gesichtswinkel aus einer Perspektive einer ersten Person beschreiben wie in einer virtuellen Realitätssimulation oder einem Spiel. Oder es können Abbildungen angezeigt werden, die eine Perspektive einer dritten Person von Gegenständen, Hintergründen etc. darstellen. Durch Betrachten des Anzeigebildschirms 20 kann ein Benutzer 22 des Hauptrechners 12 und der Schnittstellenvorrichtung 14 eine visuelle Rückkoppelung erhalten.
  • Hierin kann der Computer 12 als Computer-"Objekte" oder -"Gebilde" darstellend bezeichnet werden. Diese Computerobjekte sind keine körperlichen Gegenstände, sondern Sammlungen von Daten und/oder Prozeduren einer logischen Software-Einheit, die vom Computer 12 als Abbildungen auf dem Anzeigebildschirm 20 dargestellt werden können, wie Fachleuten auf diesem Gebiet hinlänglich bekannt ist. Zum Beispiel könnten ein Positionsanzeiger (Cursor) oder eine Sicht eines Dritten auf ein Auto als spielergesteuerte Computerobjekte angesehen werden, die über den Bildschirm bewegt werden können. Eine vorgetäuschte Darstellung eines Cockpits eines Flugzeugs könnte ebenfalls als "Objekt" angesehen werden, oder das simulierte Flugzeug kann als computergesteuertes "Gebilde" angesehen werden.
  • Die Tonausgabevorrichtung 21, wie z. B. Lautsprecher, ist vorzugsweise über Verstärker, Filter und andere Fachleuten auf diesem Gebiet hinlänglich bekannte Schaltungen an den Host-Mikroprozessor 16 angeschlossen. Der Host-Prozessor 16 gibt Signale an die Lautsprecher 21 ab, um eine Tonausgabe an den Benutzer 22 zu liefern, wenn während der Ausführung des Host-Anwendungsprogramms ein "Tonereignis" stattfindet. Andere Arten von Peripheriegeräten können ebenfalls an den Host-Prozessor 16 angeschlossen sein, wie z. B. Speichervorrichtungen (Festplattenlaufwerk, CD-ROM-Laufwerk, Diskettenlaufwerk etc.), Drucker und andere Eingabe- und Ausgabegeräte.
  • Eine Schnittstellenvorrichtung 14 ist durch einen bidirektionalen Bus 24 mit dem Hauptrechnersystem 12 verbunden. Der bidirektionale Bus sendet Signale in beide Richtungen zwischen dem Hauptrechnersystem 12 und der Schnittstellenvorrichtung. Hierin soll sich der Ausdruck "Bus" generisch auf eine Schnittstelle beziehen, wie z. B. zwischen Hauptrechner 12 und Mikroprozessor 26, was typischerweise eine oder mehr Verbindungsleitungen oder andere Verbindungen einschließt und auf vielfältige Arten realisiert werden kann, wie unten beschrieben. In der bevorzugten Ausführungsform ist der Bus 24 ein serieller Schnittstellenbus, der Daten gemäß einem seriellen Kommunikationsprotokoll liefert. Ein Schnittstellenanschluss des Hauptrechnersystems 12, wie z. B. ein serieller RS232-Schnittstellenanschluss, verbindet den Bus 24 mit dem Hauptrechnersystem 12. Andere serielle Standard-Kommunikationsprotokolle können ebenfalls in der seriellen Schnittstelle und dem Bus 24 verwendet werden, wie z. B. RS-422, universeller serieller Bus (USB), MIDI oder andere Fachleuten auf diesem Gebiet hinlänglich bekannte Protokolle.
  • Zum Beispiel stellt der USB-Standard eine serielle Schnittstelle von relativ hoher Schnelligkeit bereit, die Kraftrückkoppelungssignale in der vorliegenden Erfindung mit einem hohen Realismusgrad bereitstellen kann. USB kann auch mehr Leistung zum Treiben der Peripheriegeräte beziehen. Da jedem Gerät, das auf den USB zugreift, vom Hauptrechner eine einzigartige USB-Adresse zugewiesen wird, erlaubt dies mehreren Geräten, sich denselben Bus zu teilen. Daneben schließt der USB-Standard Taktdaten ein, die zusammen mit unterschiedlichen Daten verschlüsselt werden. Der USB besitzt einige nützliche Merkmale für die vorliegende Erfindung, wie durch diese ganze Beschreibung hindurch beschrieben.
  • Ein Vorteil der vorliegenden Erfindung ist, dass zur Verbindung mit der Schnittstellenvorrichtung 14 serielle Übertragungssignale mit niedriger Bandbreite verwendet werden können und auf diese Weise die direkte Verwendung einer eingebauten seriellen Standard-Schnittstelle vieler Computer erlaubt. Alternativ kann ein Parallel-Anschluss des Hauptrechnersystems 12 an einen Parallelbus 24 gekoppelt sein und unter Verwendung eines Parallelprotokolls mit der Schnittstellenvorrichtung in Verbindung stehen, wie z. B. SCSI oder PC Paralleldruckerbus. In einer anderen Ausführungsform kann der Bus 24 direkt an einen Datenbus des Hauptrechnersystems 12 angeschlossen sein, beispielsweise unter Verwendung einer Steckkarte und eines Steckplatzes oder anderen Zuganges des Computersystems 12. Bei einem IBM-AT-kompatiblen Computer kann die Schnittstellenkarte beispielsweise als ISA, EISA, VESA-Lokalbus, PCI oder andere gut bekannte Standard-Schnittstellenkarte ausgeführt sein, die in die Hauptplatine des Computers eingesteckt wird und Eingangs- und Ausgangsanschlüsse bereitstellt, die an den Hauptdatenbus des Computers angeschlossen sind.
  • In einer anderen Ausführungsform kann ein zusätzlicher Bus 25 zur Verbindung zwischen dem Hauptrechnersystem 12 und der Schnittstellenvorrichtung 14 enthalten sein. Da die Geschwindigkeitsanforderung für Übertragungssignale zur Ausgabe von Kraftrückkoppelungssignalen relativ hoch ist, kann die mit dem Bus 24 verwendete einzelne serielle Schnittstelle eventuell keine Signale zu und von der Schnittstellenvorrichtung mit einer ausreichend hohen Rate zum Erzielen einer realistischen Kraftrückkoppelung bereitstellen. In einer derartigen Ausführungsform kann der Bus 24 an den seriellen Standardanschluss des Hauptrechners 12 angeschlossen sein, während ein zusätzlicher Bus 25 mit einem zweiten Anschluss des Hauptrechnersystems verbunden sein kann. Viele Computersysteme schließen beispielsweise zusätzlich zu einem seriellen RS-232-Anschluss einen "Gameport" (Spiel-Schnittstelle) zum Anschließen eines Joysticks oder einer ähnlichen Spielesteuereinheit an den Computer ein. Zur Bereitstellung einer erhöhten Datenbandbreite können die zwei Busse 24 und 25 gleichzeitig verwendet werden. Zum Beispiel kann der Mikroprozessor 26 Messfühlersignale über einen unidirektionalen Bus 25 und einen Gameport an den Hauptrechner 12 senden, während der Hauptrechner 12 Kraftrückkoppelungssignale von einem seriellen Anschluss über einen unidirektionalen Bus 24 an den Mikroprozessor 26 ausgeben kann. In anderen Ausführungsformen können andere Kombinationen von Datenflusskonfigurationen realisiert sein.
  • Die Schnittstellenvorrichtung 14 weist einen örtlichen Mikroprozessor 26, Messfühler 28, Aktuatoren 30, einen Benutzergegenstand 34, eine optionale Sensorschnittstelle 36, eine wahlweise Aktuatorschnittstelle 38 und andere wahlweise Eingabevorrichtungen 39 auf. Die Schnittstellenvorrichtung 14 kann auch zusätzliche elektronische Bauteile zum Kommunizieren über Standardprotokolle auf dem Bus 24 einschließen. In der bevorzugten Ausführungsform können Mehrfach-Schnittstellenvorrichtungen 14 über den Bus 24 (oder Mehrfachbusse 24) an ein einzelnes Hauptrechnersystem 12 gekoppelt sein, so dass sich mehrere Benutzer gleichzeitig mit dem Host-Anwendungsprogramm verbinden können (beispielsweise in einem Spiel oder einer Simulation für mehrere Spieler). Durch Verwendung vernetzter Hauptrechner 12 können sich außerdem mehrere Spieler in dem Host-Anwendungsprogramm mit Mehrfach-Schnittstellenvorrichtungen 14 verbinden, wie Fachleuten auf diesem Gebiet hinlänglich bekannt ist.
  • Der örtliche Mikroprozessor 26 ist an den Bus 24 angeschlossen und vorzugsweise in dem Gehäuse der Schnittstellenvorrichtung 14 enthalten, um eine schnelle Kommunikation mit anderen Komponenten der Schnittstellenvorrichtung zu erlauben. Der Prozessor 26 wird als "örtlich" zur Schnittstellenvorrichtung 14 angesehen, wobei "örtlich" sich hier darauf bezieht, dass der Prozessor 26 ein von allen anderen Prozessoren im Hauptrechnersystem 12 getrennter Mikroprozessor ist. "Örtlich" bezieht sich auch vorzugsweise darauf, dass der Prozessor 26 der Kraftrückkoppelung und Sensor-Ein-Ausgabe der Schnittstellenvorrichtung 14 dient und eng an die Messfühler 28 und Aktuatoren 30 gekoppelt ist, wie z. B. in dem Gehäuse für die Schnittstellenvorrichtung oder in einem Gehäuse, das eng an die Schnittstellenvorrichtung 14 angeschlossen ist. Der Mikroprozessor 26 kann mit Softwarebefehlen beliefert werden, um auf Steuerbefehle oder Anforderungen von dem Computer-Hauptrechner 16 zu warten; den Steuerbefehl oder die Anfrage zu entschlüsseln und Eingangs- und Ausgangssignale entsprechend dem Steuerbefehl oder der Anforderung zu verarbeiten/steuern. Darüber hinaus arbeitet der Prozessor 26 vorzugsweise unabhängig vom Hauptrechner 16, indem er Messfühlersignale liest und die entsprechenden Kräfte aus diesen Messfühlersignalen, Zeitsignalen und einem in Übereinstimmung mit einem Host-Steuerbefehl ausgewählten Spiegelungsprozess berechnet (hierin auch als "Unterroutine" oder "Kraftempfindungsprozess" bezeichnet). Geeignete Mikroprozessoren zur Verwendung als örtlicher Mikroprozessor 26 sind u. A. beispielsweise der MC68HC711E9 von Motorola und der PIC16C74 von Microchip. Der Mikroprozessor 26 kann einen Mikroprozessorchip oder Mehrfachprozessoren und/oder Coprozessorchips aufweisen. In anderen Ausführungsformen kann der Mikroprozessor 26 einen Digitalsignalprozessor-(DSP-)Chip aufweisen. An den Mikroprozessor 26 in der Schnittstellenvorrichtung 14 ist vorzugsweise ein örtlicher Arbeitsspeicher 27 wie RAM und/oder ROM angeschlossen, um Befehle für den Mikroprozessor 26 zu speichern und temporäre und andere Daten zu speichern. Der Mikroprozessor 26 kann Signale von den Messfühlern 28 empfangen und in Übereinstimmung mit vom Hauptrechner 12 über den Bus 24 gelieferten Befehlen Signale an die Aktuatoren 30 der Schnittstellenvorrichtung 14 bereitstellen.
  • Darüber hinaus kann ein interner Taktgeber 29 zur Lieferung von Taktdaten an den Mikroprozessor 26 angeschlossen sein, ähnlich wie der Systemtaktgeber 18 des Hauptrechners 12; die Taktdaten könnten zum Beispiel benötigt werden, um von den Aktuatoren 30 ausgegebene Kräfte zu berechnen (z. B. von berechneten Geschwindigkeiten oder anderen zeitabhängigen Faktoren abhängige Kräfte). In alternativen Ausführungsformen mit Verwendung der USB-Datenübertragungsschnittstelle können Taktdaten für den Mikroprozessor 26 aus dem USB-Signal abgerufen werden. Der USB weist ein mit dem Datenstrom verschlüsseltes Taktsignal auf, das verwendet werden kann. Alternativ kann der isochrone (Streaming-)Betrieb des USB zum Herleiten von Taktinformationen aus der Standard-Datenübertragungsrate verwendet werden. Der USB weist ferner einen Abtasttaktgeber, Bustaktgeber und Diensttaktgeber auf, die ebenfalls verwendet werden können.
  • Zum Beispiel kann der Hauptrechner 12 in einer Ausführungsform niedere Kraftsteuerbefehle über den Bus 24 bereitstellen, die der Mikroprozessor 26 direkt an die Aktuatoren 30 liefert. Diese Ausführungsform ist im Hinblick auf 4 in größerer Einzelheit beschrieben. In einer anderen Ausführungsform kann das Hauptrechnersystem 12 über den Bus 24 höhere Kontrollsteuerbefehle an den Mikroprozessor 26 liefern, und der Mikroprozessor 26 verwaltet die niederen Kraftsteuerungs-("Spiegelungs"-)Schleifen an die Messfühler 28 und Aktuatoren 30 in Übereinstimmung mit den höheren Steuerbefehlen. Diese Ausführungsform ist im Hinblick auf 5 in größerer Einzelheit beschrieben.
  • Der Mikroprozessor 26 hat vorzugsweise auch Zugriff auf einen elektrisch löschbaren programmierbaren ROM (EEPROM) oder eine andere Arbeitsspeichervorrichtung 27 zum Speichern von Kalibrierungsparametern. Die Kalibrierungsparameter können leichte Fertigungsabweichungen in verschiedenen physikalischen Eigenschaften, wie z. B. körperliche Abmessungen, der Komponenten von mit demselben Herstellungsverfahren gefertigten, verschiedenen Schnittstellenvorrichtungen ausgleichen. Die Kalibrierungsparameter können vom Hersteller vor dem Verkauf der Schnittstellenvorrichtung 14 bestimmt und gespeichert werden, oder die Parameter können wahlweise von einem Benutzer der Schnittstellenvorrichtung bestimmt werden. Die Kalibrierungsparameter werden vom Prozessor 26 verwendet, um die Eingangssensorsignale und/oder Ausgangskraftwerte an die Aktuatoren 30 zu modifizieren, um in etwa dieselbe Kräftespanne am Gegenstand 34 in einer großen Anzahl gefertigter Schnittstellenvorrichtungen 14 bereitzustellen. Die Implementierung von Kalibrierungsparametern ist Fachleuten auf diesem Gebiet gut bekannt.
  • Der Mikroprozessor 26 kann auch Steuerbefehle von irgendwelchen anderen in der Schnittstellenvorrichtung 14 enthaltenen Eingabevorrichtungen empfangen und liefert entsprechende Signale an den Hauptrechner 12, um anzuzeigen, dass die Eingabeinformationen erhalten wurden, sowie alle Informationen, die in der Eingabeinformation enthalten waren. Zum Beispiel können Knöpfe, Schalter, Wählscheiben oder andere Eingabesteuerungen an der Schnittstellenvorrichtung 14 oder dem Benutzergegenstand 34 Signale an den Mikroprozessor 26 liefern.
  • In der bevorzugten Ausführungsform sind die Messfühler 28, die Aktuatoren 30 und der Mikroprozessor 26 sowie andere spezifische elektronische Bauteile in einem Gehäuse für die Schnittstellenvorrichtung 14 enthalten, an das der Benutzergegenstand 34 direkt oder indirekt angeschlossen ist. Alternativ können der Mikroprozessor 26 und/oder andere elektronische Bauteile der Schnittstellenvorrichtung 14 in einem von dem Benutzergegenstand 34, den Messfühlern 28 und den Aktuatoren 30 getrennten Gehäuse vorgesehen sein. Ferner können zusätzliche mechanische Strukturen in der Schnittstellenvorrichtung 14 enthalten sein, um den Gegenstand 34 mit erwünschten Freiheitsgraden zu versehen. Einige Ausführungsformen solcher Mechanismen sind mit Bezug auf 7-12 beschrieben.
  • Die Messfühler 28 fühlen die Position, Bewegung und/oder andere Merkmale eines Benutzergegenstands 34 der Schnittstellenvorrichtung 14 längs einem oder mehr Freiheitsgraden ab und liefern Signale an den Mikroprozessor 26, die diese Merkmale darstellende Informationen enthalten. Beispiele von Ausführungsformen von Benutzergegenständen und Bewegung innerhalb vorgesehener Freiheitsgrade sind anschließend im Hinblick auf 7 und 8 beschrieben. Typischerweise ist ein Messfühler 28 für jeden Freiheitsgrad vorgesehen, entlang dem der Gegenstand 34 bewegt werden kann. Alternativ kann ein einzelner zusammengesetzter Messfühler zum Abfühlen der Position oder Bewegung in Mehrfach- Freiheitsgraden verwendet werden. Ein Beispiel der für einige hierin beschriebene Ausführungsformen geeigneten Messfühler sind digitale optische Codeumsetzer, die den Stellungswechsel eines Gegenstands um eine Drehachse abtasten und Digitalsignale zur Anzeige des Stellungswechsels liefern. Die Codiereinrichtung beispielsweise reagiert auf die Drehbewegung einer Achse mit der Erzeugung von zwei phasenbezogenen Signalen in dem Rotationsfreiheitsgrad. Auf ähnliche Weise tasten lineare optische Codeumsetzer den Stellungswechsel des Gegenstands 34 entlang einem linearen Freiheitsgrad ab und können die beiden phasenbezogenen Signale als Reaktion auf die Bewegung einer linearen Achse in dem linearen Freiheitsgrad erzeugen. Es können entweder relative oder absolute Messfühler verwendet werden. Zum Beispiel liefern relative Messfühler nur relative Winkelinformationen und erfordern somit gewöhnlich irgendeine Art von Kalibrierungsschritt, der eine Bezugsposition für die relative Winkelinformation liefert. Die hierin beschriebenen Messfühler sind vornehmlich relative Messfühler. Folglich gibt es einen implizierten Kalibrierungsschritt nach der Systemanschaltung, worin die Achse eines Messfühlers an einer bekannten Position in der Schnittstellenvorrichtung platziert und ein Kalibrierungssignal an das System geliefert wird, um die oben erwähnte Bezugsposition bereitzustellen. Alle von den Messfühlern gelieferten Winkel sind danach relativ zu dieser Bezugsposition. Alternativ kann ein bekannter Indeximpuls in dem relativen Messfühler vorgesehen sein, der eine Bezugsposition bereitstellen kann. Solche Kalibrierungsverfahren sind Fachleuten auf diesem Gebiet hinlänglich bekannt und werden daher hierin nicht mehr besonders detailliert erörtert. Ein geeigneter optischer Codeumsetzer ist der "Softpot" von U.S. Digital, Vancouver, Washington.
  • Die Messfühler 28 liefern ein elektrisches Signal an eine wahlweise Sensorschnittstelle 36, die dazu benutzt werden kann, Messfühlersignale in Signale umzusetzen, die von dem Mikroprozessor 26 und/oder Hauptrechnersystem 12 gedeutet werden können. Zum Beispiel erhält die Sensorschnittstelle 36 die zwei phasenbezogenen Signale von einem Messfühler 28 und wandelt die zwei Signale in ein anderes Paar Taktsignale um, die einen binären Vorwärts-Rückwärts-Zähler treiben. Der Ausgang des Binärzählers wird vom Mikroprozessor 26 als eine Binärzahl erhalten, welche die Winkelstellung der codierten Achse darstellt. Solche Schaltungen oder äquivalente Schaltungen sind Fachleuten auf diesem Gebiet hinlänglich bekannt; die oben beschriebenen Funktionen erfüllt zum Beispiel der Quadratur-Chip LS7166 von Hewlett Packard, Kalifornien. Jeder Messfühler 28 kann mit einer eigenen Sensorschnittstelle vorgesehen sein, oder eine Sensorschnittstelle kann die Daten von mehreren Messfühlern verarbeiten. Zum Beispiel kann eine Sensorschnittstelle einen separaten Verarbeitungschip für jeden Messfühler 28 einschließen, der Eingabedaten liefert.
  • Alternativ kann der Mikroprozessor 26 diese Schnittstellenfunktionen erfüllen, ohne dass es einer separaten Sensorschnittstelle 36 bedarf. Die Positionswertsignale können vom Mikroprozessor 26 verwendet werden und werden auch zum Hauptrechnersystem 12 gesendet, welches das Host-Anwendungsprogramm aktualisiert und Kraftsteuersignale sendet, soweit erforderlich. Wenn der Benutzer beispielsweise ein Lenkradobjekt 34 bewegt, empfängt das Computersystem 12 Positionssignale und/oder andere Signale zur Anzeige dieser Bewegung und kann einen dargestellten Gesichtswinkel des Benutzers wie beim Herausschauen aus einem Fahrzeug und Wenden des Fahrzeugs verschieben. Auch andere Schnittstellenmechanismen können zum Liefern eines entsprechenden Signals an das Hauptrechnersystem 12 verwendet werden. In alternativen Ausführungsformen können Messfühlersignale von den Messfühlern 28 unter Umgehung des Mikroprozessors 26 direkt an das Hauptrechnersystem 12 geliefert werden. Ferner kann die Sensorschnittstelle 36 im Hauptrechnersystem 12 enthalten sein, wie z. B. auf einer Schnittstellenplatine oder -karte.
  • Alternativ kann ein analoger Messfühler anstelle des digitalen Messfühlers für alle oder einige der Messfühler 28 verwendet werden. Zum Beispiel kann ein Dehnungsmessfühler angeschlossen sein, um Kräfte an dem Gegenstand 34 anstatt Positionen des Gegenstands zu messen. Ferner können Geschwindigkeitssensoren und/oder Beschleunigungsmesser zum direkten Messen von Geschwindigkeiten und Beschleunigungen am Gegenstand 34 verwendet werden. Analoge Messfühler können ein Analogsignal zur Darstellung der Position/Geschwindigkeit/Beschleunigung des Benutzergegenstands in einem bestimmten Freiheitsgrad bereitstellen. Ein Analog-Digital-Umsetzer (ADC) kann das Analogsignal in ein Digitalsignal umwandeln, das vom Mikroprozessor 26 und/oder Hauptrechnersystem 12 aufgenommen und ausgewertet wird, wie Fachleuten auf diesem Gebiet hinlänglich bekannt ist. Die Auflösung der erfassten Bewegung des Gegenstands 34 würde durch die Auflösung des ADC begrenzt. Jedoch kann eine Störung manchmal kleine Bewegungen des Gegenstands 34 vor einem analogen Messfühler verbergen, was möglicherweise das Spiel ausblenden kann, das bei einigen Ausführungsformen der vorliegenden Erfindung von Bedeutung ist (nachfolgend beschrieben).
  • Auch andere Arten von Schnittstellenschaltungen 36 können verwendet werden. Zum Beispiel kann für jeden Messfühler eine elektronische Schnittstelle mit einem getrennten Verarbeitungschip verwendet werden. Die Schnittstelle erlaubt die Verfolgung der Position der Maus oder des Stylus und liefert unter Verwendung der Messfühler und Aktuatoren die Kraftrückkoppelung an den Stylus. Die Sensorschnittstelle 36 kann Winkelbestimmungschips einschließen, um Winkelsignalablesungen von Messfühlern 28 vor dem Senden zum Mikroprozessor 26 vorzuverarbeiten. Zum Beispiel erlaubt ein Datenbus plus Chipaktivierungsleitungen jedem der Winkelbestimmungschips, mit dem Mikroprozessor zu kommunizieren. Eine Konfiguration ohne Winkelbestimmungschips ist äußerst geeignet in einer Ausführungsform mit absoluten Messfühlern, die Ausgangssignale zur direkten Anzeige der Winkel ohne weitere Verarbeitung aufweisen, wodurch sie weniger Rechenarbeit für den Mikroprozessor 26 und somit wenig bis keine Vorverarbeitung benötigen. Wenn die Messfühler 28 relative Messfühler sind, die nur die Veränderung an einem Winkel anzeigen und die Weiterverarbeitung zur vollständigen Bestimmung des Winkels erfordern, dann sind Winkelbestimmungschips geeigneter.
  • Unter Ansprechen auf die vom Mikroprozessor 26 erhaltenen Signale übertragen Aktuatoren 30 Kräfte in einer oder mehr Richtungen entlang einem oder mehr Freiheitsgraden an den Benutzergegenstand 34 der Schnittstellenvorrichtung 14. Typischerweise ist ein Aktuator 30 für jeden Freiheitsgrad vorgesehen, entlang dem die Übertragung von Kräften erwünscht ist. Die Aktuatoren 30 können zweierlei Typen umfassen: aktive Aktuatoren und passive Aktuatoren.
  • Zu den aktiven Aktuatoren gehören lineare Stromregelmotoren, Schrittmotoren, pneumatische/hydraulische aktive Aktuatoren und andere Arten von Aktuatoren, die eine Kraft übertragen, um ein Objekt zu bewegen. Zum Beispiel können aktive Aktuatoren eine selbst umdrehende Welle um eine Achse in einem Rotationsfreiheitsgrad antreiben, oder eine Linearspindel entlang einem linearen Freiheitsgrad antreiben. Aktive Wandler der vorliegenden Erfindung sind vorzugsweise zweiseitig wirkend, was bedeutet, dass sie Kraft selektiv entlang jeder Richtung eines Freiheitsgrads übertragen können. Zum Beispiel können Gleichstrom-Servomotoren Kraftsteuersignale aufnehmen, um die Richtung und das Drehmoment (Kraftausgabe) zu steuern, die an einer Welle erzeugt werden. Die Motoren können auch Bremsen einschließen, mit denen sich die Drehbewegung der Welle in einer kurzen Zeitspanne anhalten lässt. Andere Arten von aktiven Motoren können ebenfalls verwendet werden, wie z. B. ein mittels Impulsbreitenmodulation einer angelegten Spannung gesteuerter Schrittmotor, pneumatische/hydraulische Aktuatoren, ein Drehmomenterzeuger (Motor mit begrenztem Winkelbereich) oder ein Schwingspulenaktuator, die Fachleuten auf diesem Gebiet hinlänglich bekannt sind.
  • Als Aktuatoren 30 können auch passive Aktuatoren verwendet werden. Magnetpulverbremsen, Reibungsbremsen oder pneumatische/hydraulische passive Aktuatoren können zusätzlich zu einem Motor oder stattdessen verwendet werden, um einen Dämpfungswiderstand oder Reibung in einem Bewegungsgrad zu erzeugen. Eine alternative bevorzugte Ausführungsform, die nur passive Aktuatoren einschließt, ist vielleicht nicht so realistisch wie eine Ausführungsform mit Motoren; jedoch sind die passiven Aktuatoren von der Art her sicherer für einen Benutzer, weil der Benutzer nicht mit generierten Kräften zu kämpfen hat. Passive Aktuatoren können typischerweise nur zweiseitig wirkenden Widerstand an einen Bewegungsgrad liefern. Eine geeignete Magnetpulverbremse für die Schnittstellenvorrichtung 14 ist von Force Limited, Inc., Santa Monica, Kalifornien erhältlich.
  • In alternativen Ausführungsformen können alle oder einige der Messfühler 28 und Aktuatoren 30 zusammen als Messfühler/Aktuatorpaarwandler enthalten sein. Ein für die vorliegende Erfindung geeigneter Wandler, der sowohl einen optischen Codeumsetzer als auch einen stromgesteuerten Motor einschließt, ist ein 20-W-Korbdeckel-Servomotor, hergestellt von Maxon.
  • Die Aktuatorschnittstelle 38 kann wahlweise zwischen den Aktuatoren 30 und dem Mikroprozessor 26 angeschlossen sein. Die Schnittstelle 38 setzt Signale vom Mikroprozessor 26 in entsprechende Signale zum Antrieb der Aktuatoren 30 um. Die Schnittstelle 38 kann Leistungsverstärker, Schalter, Digital-Analog-Steuereinheiten (DACs) und andere Komponenten einschließen. Ein Beispiel einer Aktuatorschnittstelle für aktive Aktuatoren ist mit Bezug auf 2 beschrieben. Ein Beispiel einer Aktuatorschnittstelle für passive Aktuatoren ist mit Bezug auf 3 beschrieben. In alternativen Ausführungsformen kann eine Schaltungsanordnung der Schnittstelle 38 im Mikroprozessor 26 oder in den Aktuatoren 30 vorgesehen sein.
  • Inder Schnittstellenvorrichtung 14 können wahlweise auch andere Eingabevorrichtungen 39 enthalten sein und Eingabesignale zum Mikroprozessor 26 senden. Solche Eingabevorrichtungen können u. A. Knöpfe, Wählscheiben, Schalter oder andere Mechanismen sein. In Ausführungsformen, wo der Benutzergegenstand 34 z. B. ein Joystick ist, können andere Eingabevorrichtungen einen oder mehr Knöpfe aufweisen, die z. B. auf dem Joystick-Griff oder -Unterteil vorgesehen sind und dazu verwendet werden, die Eingabe vom Benutzer zu einem Spiel oder einer Simulation zu ergänzen. Die Betriebsweise solcher Eingabevorrichtungen ist Fachleuten auf diesem Gebiet hinlänglich bekannt.
  • An die Aktuatorschnittstelle 38 und/oder die Aktuatoren 30 kann wahlweise eine Stromversorgung 40 zur Bereitstellung elektrischer Leistung angeschlossen sein. Aktive Aktuatoren benötigen zum Antrieb typischerweise eine separate Leistungsquelle. Die Stromversorgung 40 kann im Gehäuse der Schnittstellenvorrichtung 14 enthalten sein oder als separates Bauteil vorgesehen und beispielsweise durch ein elektrisches Stromkabel angeschlossen sein.
  • Wenn USB oder ein ähnliches Kommunikationsprotokoll verwendet wird, kann die Schnittstellenvorrichtung 14 alternativ Leistung aus dem USB ziehen und auf diese Weise keinen Bedarf für die Stromversorgung 40 haben. Diese Ausführungsform ist äußerst geeignet für ein Gerät 14 mit passiven Aktuatoren 30, weil passive Aktuatoren zum Betrieb wenig Leistung brauchen. Aktive Aktuatoren neigen zu mehr Leistungsbedarf als vom USB herangezogen werden kann, aber diese Einschränkung kann auf mehrerlei Arten bezwungen werden. Ein Weg ist, die Schnittstelle 14 so zu konfigurieren, dass sie als mehr als ein Peripheriegerät zum Hauptrechner 12 auftritt; beispielsweise kann jeder vorgesehene Freiheitsgrad des Benutzergegenstands 34 als unterschiedliches Peripheriegerät konfiguriert sein und seine eigene Leistungszuteilung erhalten. Dies würde dem Host 12 erlauben, der Schnittstellenvorrichtung 14 mehr Leistung zuzuteilen. Alternativ kann Leistung vom USB von der Schnittstellenvorrichtung 14 gespeichert und geregelt werden und auf diese Weise im Bedarfsfall zum Antrieb der Aktuatoren 30 verwendet werden. Zum Beispiel kann Leistung mit der Zeit gespeichert und dann unmittelbar abgeleitet werden, um eine Rüttelstoßkraft an den Benutzergegenstand 34 bereitzustellen. Beispielsweise kann eine Kondensatorschaltung die Energie speichern und die Energie ableiten, wenn genug Leistung gespeichert ist. Eventuell muss der Mikroprozessor die Ausgabe von Kräften regeln, um sicherzustellen, dass Zeit zum Speichern von Leistung zugelassen wird. Diese Leistungsspeicherausführung kann auch in Ausführungsformen der Schnittstellenvorrichtung 14 ohne USB verwendet werden, um die Verwendung einer kleineren Stromversorgung 40 zu gestatten.
  • In der Schnittstellenvorrichtung ist vorzugsweise ein Sicherheitsschalter 41 enthalten, um aus Sicherheitsgründen ein Schaltwerk bereitzustellen, das es einem Benutzer erlaubt, die Aktuatoren 30 außer Kraft zu setzen und auszuschalten, oder von einem Benutzer verlangt, die Aktuatoren 30 einzuschalten. Bestimmte Arten von Aktuatoren, insbesondere aktive Aktuatoren wie Motoren, können ein Sicherheitsproblem für den Benutzer aufwerten, wenn die Aktuatoren den Benutzergegenstand 34 unvermittelt mit starker Kraft auf den Benutzer zu bewegen. Falls ein Fehler im Steuersystem 10 auftritt, kann der Benutzer zudem wünschen, die Aktuatoren schnell abzuschalten, um eine Verletzung zu vermeiden. Zur Bereitstellung dieser Option ist der Sicherheitsschalter 41 an die Aktuatoren 30 gekoppelt. In der bevorzugten Ausführungsform muss der Benutzer den Sicherheitsschalter 41 während des Betriebs der Schnittstellenvorrichtung 14 ständig betätigen oder schließen, um die Aktuatoren 30 zu aktivieren. Wenn der Sicherheitsschalter zu irgendeinem Zeitpunkt deaktiviert (geöffnet) wird, wird die Leistung von der Stromversorgung 40 zu den Aktuatoren 30 gekappt (oder die Aktuatoren andersartig deaktiviert), solange der Sicherheitsschalter deaktiviert ist. Eine bevorzugte Ausführungsform eines Sicherheitsschalters ist z. B. ein optisches Schütz, das am Benutzergegenstand 34 (z. B. Joystick) oder an einer geeigneten Oberfläche eines die Schnittstellenvorrichtung 14 umschließenden Gehäuses angeordnet ist. Wenn der Benutzer das optische Schütz mit einer Hand oder einem Finger abdeckt, wird der Messfühler des Schützes vor dem Abfühlen von Umgebungslicht gesperrt und der Schalter geschlossen. Die Aktuatoren 30 arbeiten demnach, solange der Benutzer das Schütz bedeckt. In anderen Ausführungsformen können andere Arten von Sicherheitsschaltern 41 vorgesehen sein. Zum Beispiel kann ein elektrostatischer Kontaktschalter verwendet werden, um einen Kontakt abzufühlen, ein Knopf oder Auslöser kann gedrückt werden oder eine andere Art Tastschalter verwendet werden.
  • Der Benutzergegenstand 34 ist vorzugsweise ein Gerät oder Teil, das ein Benutzer greifen oder andersartig berühren oder steuern kann, und das an die Schnittstellenvorrichtung 14 angeschlossen ist. Mit "greifen" ist gemeint, dass Benutzer ein Griffteil des Gegenstands in irgendeiner Form lösbar fassen können, z. B. mit der Hand, den Fingerspitzen oder, im Falle von Behinderten, sogar mit dem Mund. Der Benutzer 22 kann den Gegenstand entlang vorgesehener Freiheitsgrade betätigen und bewegen, um eine Verbindung mit dem Host-Anwendungsprogramm herzustellen, das der Benutzer gerade auf dem Bildschirm 20 betrachtet. Der Gegenstand 34 kann ein Joystick, eine Maus, eine Rollkugel, ein Stylus, ein Steuerrad, ein medizinisches Instrument (Laparoskop, Katheter etc.), Billard-Queue, Handgriff, Griffknopf, Knopf oder anderes Objekt sein.
  • 2 ist ein schematisches Diagramm, das ein Beispiel einer Aktuatorschnittstelle 38 für einen aktiven Aktuator 30 der Schnittstellenvorrichtung 14 darstellt. In diesem Beispiel ist der Aktuator 30 ein linearer stromgesteuerter Servomotor. Die Aktuatorschnittstelle 38 schließt eine DAC-Schaltung 44 und eine Leistungsverstärkerschaltung 46 ein.
  • Die DAC-Schaltung 44 ist an den Mikroprozessor 26 gekoppelt und empfängt vorzugsweise ein Digitalsignal, das für einen Kraftwert vom Mikroprozessor 26 steht. Ein DAC 48 ist zur Umwandlung eines Eingangsdigitalsignals in eine analoge Spannung geeignet, die an die Leistungsverstärkerschaltung 46 ausgegeben wird. Ein geeigneter DAC 48 ist ein paralleler Digital-Analog-Wandler wie der DAC1220, hergestellt von der Firma National Semiconductor, der zum Betrieb mit einem externen allgemeinen Rechenverstärker 50 konzipiert ist. Der Rechenverstärker 50 gibt beispielsweise ein Signal von 0 bis –5 V proportional zur Binärzahl an seinem Eingang aus. Ein Rechenverstärker 52 ist ein Umkehrsummierverstärker, der die Ausgangsspannung in einen symmetrischen, bipolaren Bereich umsetzt. Der Rechenverstärker 52 erzeugt ein Ausgangssignal zwischen –2,5 V und +2,5 V, indem er den Ausgangswert des Rechenverstärkers 50 umwandelt und 2,5 V von diesem Ausgangswert subtrahiert; dieses Ausgangssignal ist zur Leistungsverstärkung in der Verstärkerschaltung 46 geeignet. Als Beispiel beträgt R1 = 200 kW und R2 = 400 kW. Selbstverständlich ist die DAC-Schaltung 44 als ein Beispiel von vielen möglichen Schaltungen gedacht, die zum Umsetzen eines Digitalsignals in ein gewünschtes Analogsignal verwendet werden können.
  • Die Leistungsverstärkerschaltung 46 empfängt eine analoge niedrige Steuerspannung von der DAC-Schaltung 44 und verstärkt die Spannung, um Aktuatoren 30 zu steuern. Der Aktuator 30 kann ein stromgesteuerter Hochleistungs-Servomotor 30 sein. Die Eingangsspannung steuert eine Gegenwirkleitwert-Stufe, die sich aus einem Verstärker AMP 54 und einigen Widerständen zusammensetzt. Die Gegenwirkleitwert-Stufe erzeugt einen Ausgangsstrom proportional zur Eingangsspannung, um den Motor 30 anzutreiben und dabei sehr wenig Strom von dem Eingangsspannungslieferanten abzuziehen. Die zweite Verstärkerstufe, die einen Verstärker AMP 56, Widerstände und einen Kondensator C einschließt, liefert zusätzliche Strombelastbarkeit durch Verbessern der Spannungsschwankung des zweiten Anschlusses 57 des Motors 30. Als Beispielswerte für die Leistungsverstärkerschaltung 46 beträgt R = 10 kW, R2 = 500 W, R3 = 9,75 kW und R4 = 1 W. Selbstverständlich ist die Schaltung 46 als ein Beispiel von vielen möglichen Schaltungen gedacht, die zum Verstärken von Spannungen zum Antreiben der aktiven Aktuatoren 30 verwendet werden können.
  • 3 ist ein schematisches Diagramm, das ein Beispiel einer Aktuatorschnittstelle 38' darstellt, die in Verbindung mit passiven Aktuatoren verwendet werden kann. Die Schnittstelle 38' ist zur Verwendung mit passiven Aktuatoren (Dämpfern) geeignet, die mit einer analogen Spannung gesteuert werden, wie z. B. Magnetpulverbremsen oder ein variables Solenoid, das z. B. mit fluidgesteuerten passiven Dämpfern verwendet werden kann. Die Schnittstelle 38' schließt eine DAC-Schaltung 44, einen Verstärker AMP 60, einen Transistor 62 und einen Spannungsprotektor 64 ein. Die DAC-Schaltung 44 ist an den Mikroprozessor 26 gekoppelt und empfängt ein Digitalsignal von dem Computersystem, das für einen Widerstandskraftwert steht, der an den Benutzergegenstand 34 angelegt werden soll. Die DAC-Schaltung 44 wandelt die Digitalsignalspannungen in analoge Spannungen um, die dann an den Verstärker 60 ausgegeben werden. Ein geeigneter Digital-Analog-Wandler ist der von Maxim hergestellte MAX530ACNG oder die DAC-Schaltung 44, wie oben mit Bezug auf 2 beschrieben. Der Verstärker 60 empfängt die analoge Spannung vom DAC 44 an einem positiven Anschluss und skaliert das Spannungssignal auf einen Bereich, den der Aktuator 30 nutzen kann. Der Verstärker 60 kann als Operationsverstärker oder dergleichen realisiert sein. Der Transistor 62 ist an den Ausgang des Verstärkers 60 angeschlossen und arbeitet vorzugsweise als Verstärker, um einen erhöhten Ausgangsstrom an den Aktuator 30 bereitzustellen. Der Widerstand R1 ist zwischen den Verstärker 60 und den Emitter des Transistors 62 gekoppelt, und der Widerstand R2 ist zwischen den Verstärker 60 und Masse gekoppelt. Die Widerstände R1 und R2 können z. B. Werte von 180 kΩ bzw. 120 kΩ aufweisen und die geeignete Vorspannung in der Schaltung liefern. Der Spannungsprotektor 64 ist an den Emitter des Transistors 62 gekoppelt und stellt einen Schutz vor Spannungsspitzen bereit, wenn induktive Lasten verwendet werden. Geeignete passive Aktuatoren 30 zur Verwendung mit dieser Schaltung schließen variable Solenoide oder Magnetpulverbremsen ein. Für jeden in der Schnittstellenvorrichtung realisierten Aktuator 30 kann ein separater Digital-Analog-Wandler und Verstärker verwendet werden, so dass der Mikroprozessor 26 und/oder das Hauptrechnersystem 12 jeden Aktuator für jeden vorgesehenen Freiheitsgrad getrennt steuern können. Die Schnittstelle 38' ist als ein Beispiel von vielen möglichen Schaltungen gedacht, die zum Verbinden eines Computersystems mit Aktuatoren verwendet werden können.
  • In einer alternativen Ausführungsform könnte nur ein Ein/Aus-Signal benötigt werden, z. B. für ein Solenoid, das ein Ein/Aus-Ventil eines fluidgesteuerten Aktuators steuert. In einer derartigen Ausführungsform kann beispielsweise ein Transistor am Basisanschluss elektrisch an den Mikroprozessor 26 gekoppelt sein und als elektrischer Schalter zur Steuerung der Aktivierung eines Solenoids in dem Ein/Aus-Aktuator 30 dienen. Ein Kraftsignal wie ein TTL-Logiksignal kann gesendet werden, um den Transistor so zu steuern, dass er entweder Strom durch das Solenoid fließen lässt, um es anzuschalten und eine freie Bewegung des Gegenstands 43 zuzulassen, oder keinen Strom fließen lässt, um das Solenoid abzuschalten und der Bewegung Widerstand entgegenzusetzen.
  • 4 ist ein Ablaufdiagramm zur Darstellung einer ersten Ausführungsform eines Verfahrens 70 zum Steuern einer Force-Feedback-Schnittstellenvorrichtung der vorliegenden Erfindung. Das Verfahren 70 ist auf eine "host-gesteuerte" Ausführungsform gerichtet, in der das Hauptrechnersystem 12 direkte niedere Kraftsteuerbefehle an den Mikroprozessor 26 liefert und der Mikroprozessor diese Kraftsteuerbefehle direkt an Aktuatoren 30 liefert, um von den Aktuatoren abgegebene Kräfte zu steuern.
  • Zum Beispiel ist die hostgesteuerte Betriebsart für Ausführungsformen geeignet, die eine USB-Datenübertragungsschnittstelle verwenden. Die Datenraten sind ausreichend hoch, um dem Host eine Kommunikation bei 500 Hz oder mehr zu erlauben und eine realistische Kraftrückkoppelung an den Benutzergegenstand 34 bereitzustellen. Der isochrone USB-Datentransfermodus des USB ist zur Lieferung der erforderlichen hohen Datenrate geeignet.
  • Der Prozess beginnt bei 72. In Schritt 74 werden das Hauptrechnersystem 12 und die Schnittstellenvorrichtung 14 angeschaltet, beispielsweise dadurch, dass ein Benutzer die Netzschalter betätigt. Nach Schritt 74 verzweigt sich der Prozess 70 in zwei parallele (simultane) Abläufe. Ein Prozess wird auf dem Hauptrechnersystem 12 implementiert, und der andere Prozess wird am örtlichen Mikroprozessor 26 implementiert. Diese zwei Abläufe zweigen bei Schritt 74 in unterschiedlichen Richtungen ab, um diese Gleichzeitigkeit anzudeuten.
  • Im Hauptrechnersystem-Prozess wird zuerst Schritt 76 realisiert, in dem ein Anwendungsprogramm verarbeitet oder aktualisiert wird. Diese Anwendung kann eine Simulation, ein Videospiel, ein wissenschaftliches Programm oder anderes Programm sein. Abbildungen können einem Benutzer auf dem Ausgabebildschirm 20 angezeigt werden, und es können andere Rückkoppelungen präsentiert werden, wie z. B. Tonrückkoppelung.
  • Zwei Abzweige gehen vom Schritt 76 ab, um anzudeuten, dass zwei Prozesse gleichzeitig auf dem Hauptrechnersystem 12 ablaufen (Multitasking). In einem Prozess wird Schritt 78 implementiert, wo Messfühlerdaten vom örtlichen Mikroprozessor 26 vom Hauptrechner erhalten werden. Wie nachstehend im Mikroprozessorprozess näher ausgeführt, erhält der örtliche Prozessor 26 ständig Signale von den Messfühlern 28, verarbeitet die Rohdaten und sendet verarbeitete Messfühlerdaten zum Hauptrechner 12. Alternativ sendet der örtliche Prozessor 26 Rohdaten direkt zum Hauptrechnersystem 12. "Sensordaten", wie sie hierin auch genannt werden, können Positionswerte, Geschwindigkeitswerte und/oder Beschleunigungswerte einschließen, die von den Messfühlern 28 abgeleitet werden, welche die Bewegung des Gegenstands 34 in einem oder mehr Freiheitsgraden erfassen. Daneben können in Schritt 78 vom Hauptrechnersystem 12 auch irgendwelche anderen, von anderen Eingabevorrichtungen 39 erhaltenen Daten als Messfühlerdaten erhalten werden, wie z. B. Signale zur Anzeige, dass ein Knopf an der Schnittstellenvorrichtung 14 vom Benutzer betätigt wurde. Schließlich kann der Ausdruck "Sensordaten" auch eine Historie von Werten einschließen, wie z. B. zuvor aufgezeichnete und gespeicherte Positionswerte, um eine Geschwindigkeit zu berechnen.
  • Nach Lesen der Sensordaten in Schritt 78 kehrt der Prozess zu Schritt 76 zurück, wo das Host-Computersystem 12 das Anwendungsprogramm unter Ansprechen auf die Manipulationen des Gegenstands 34 durch den Benutzer und jede andere in Schritt 78 erhaltene Benutzereingabe aktualisieren sowie bestimmen kann, ob im Parallelprozess das Anlegen von Kräften an den Gegenstand 34 erforderlich ist. Der Schritt 78 ist in einer Dauerschleife des Ablesens von Daten vom örtlichen Prozessor 26 realisiert.
  • Der zweite Abzweig vom Schritt 76 ist mit dem Prozess der Bestimmung von Kraftsteuerbefehlen seitens des Hauptrechners befasst, der eine Kraftrückkoppelung an den Benutzer liefert, der den Gegenstand 34 manipuliert. Diese Steuerbefehle sind hierin als "niedere" Kraftsteuerbefehle beschrieben, im Unterschied zu den in der Ausführungsform gemäß 5 beschriebenen "höheren" oder Hauptsteuerprogramm-Kraftsteuerbefehlen. Ein niederer Kraftsteuerbefehl weist einen Aktuator an, eine Kraft von bestimmter Größe abzugeben. Zum Beispiel schließt der niedere Steuerbefehl typischerweise einen Größenkraftwert ein, z. B. (ein) äquivalente(s) Signal(e), um den Aktuator anzuweisen, eine Kraft mit einem gewünschten Größenwert anzulegen. Niedere Kraftsteuerbefehle können auch eine Kraftrichtung bezeichnen, wenn ein Aktuator Kraft in einer ausgewählten Richtung anlegen kann und/oder ander niedere Informationen, wie von einem Aktuator verlangt.
  • Der zweite Abzweig beginnt mit Schritt 80, in dem das Hauptrechnersystem prüft, ob eine Änderung der an den Benutzergegenstand 34 angelegten Kraft erforderlich ist. Dies kann durch einige Arten von Kriterien bestimmt werden, von denen die wichtigsten die vom Hauptrechner in Schritt 78 gelesenen Messfühlerdaten, Taktdaten und die Implementierung oder "Ereignisse" des in Schritt 76 aktualisierten Anwendungsprogramms sind. Die in Schritt 78 gelesenen Messfühlerdaten informieren den Hauptrechner 12, wie der Benutzer gerade mit dem Anwendungsprogramm in Dialog steht. Von der im Zeitablauf erfassten Position des Gegenstands 34 ausgehend kann das Hauptrechnersystem 12 bestimmen, wann Kräfte an den Gegenstand angelegt werden sollten. Wenn der Hauptrechner beispielsweise gerade eine Videospielanwendung implementiert, kann die Stellung eines computergenerierten Gegenstands innerhalb des Spiels bestimmen, ob eine Änderung der Kraftrückkoppelung verlangt wird. Wenn der Benutzer gerade einen simulierten Rennwagen steuert, bestimmt die Stellung des Benutzerobjekt-Joysticks, ob der Rennwagen sich gerade in eine Wand bewegt und somit, ob eine Kollisionskraft am Joystick generiert werden sollte. Außerdem können Geschwindigkeit und/oder Beschleunigung des Benutzergegenstands beeinflussen, ob eine Kraftänderung an dem Gegenstand erforderlich ist. Wenn der Benutzer in einem Spiel einen Tennisschläger führt, kann die Geschwindigkeit eines Benutzerobjekt-Joysticks in einem bestimmten Freiheitsgrad bestimmen, ob ein Tennisball geschlagen wird und somit, ob eine entsprechende Kraft an den Joystick angelegt werden sollte. Ferner kann eine andere Eingabe, wie z. B. wenn ein Benutzer Knöpfe oder andere Steuerungen an der Schnittstellenvorrichtung 14 betätigt, die am Gegenstand 34 benötigten Kräfte abhängig davon ändern, wie diese Steuerungen programmiert worden sind, um das Anwendungsprogramm zu beeinflussen.
  • Andere Kriterien zur Bestimmung, ob eine Kraftänderung benötigt wird, sind Ereignisse im Anwendungsprogramm. Zum Beispiel kann ein Spielanwendungsprogramm (vielleicht wahllos) bestimmen, dass ein anderer Gegenstand in dem Spiel mit einem durch den Benutzer gesteuerten Gegenstand kollidieren wird, ungeachtet der Positionsdaten des Benutzergegenstands 34. Somit sollten abhängig von diesem Kollisionsereignis Kräfte an den Benutzergegenstand angelegt werden, um einen Aufprall zu simulieren. Abhängig von einer Kombination eines solchen Ereignisses und den in Schritt 78 abgelesenen Messfühlerdaten können Kräfte an dem Benutzergegenstand erforderlich sein. Andere Parameter in dem Anwendungsprogramm können bestimmen, ob eine Kraftänderung an den Benutzergegenstand erforderlich ist, wie z. B. andere Eingabevorrichtungen oder Benutzer-Schnittstellenvorrichtungen, die an das Hauptrechnersystem 12 angeschlossen sind und Daten in das Anwendungsprogramm eingeben (andere Schnittstellenvorrichtungen können direkt angeschlossen, durch ein Netzwerk fernverbunden sein etc.).
  • Wenn in Schritt 80 derzeit keine Kraftänderung erforderlich ist, dann kehrt der Prozess zu Schritt 76 zurück, um die Host-Anwendung zu aktualisieren und zur erneuten Prüfung zu Schritt 80 zurückzukehren, bis eine solche Kraftänderung erforderlich ist. Wenn eine derartige Änderung erforderlich ist, wird Schritt 82 implementiert, in dem der Hauptrechner 12 bestimmt, dass entsprechende niedere Kraftsteuerbefehle an die Aktuatoren 30 der Schnittstellenvorrichtung 14 gesendet werden, wobei diese Kraftsteuerbefehle von einem ausgewählten Kraftempfindungsprozess, Messfühlerdaten, der Host-Anwendung und dem Taktgeber 18 abhängen.
  • Die niederen Kraftsteuerbefehle können teilweise aus einem ausgewählten Kraftempfindungsprozess heraus bestimmt werden. Ein "Spiegelungsprozess" oder "Kraftempfindungsprozess" (auch "Unterroutine" genannt), wie er hierin bezeichnet wird, ist ein Reihe von Befehlen zur Bereitstellung von Kraftsteuerbefehlen abhängig von anderen Parametern, wie z. B. in Schritt 78 abgelesene Messfühlerdaten und Taktdaten vom Taktgeber 18. In der beschriebenen Ausführungsform können Kraftempfindungsprozesse mehrere unterschiedliche Arten von Schritten und/oder Befehlen einschließen. Eine Befehlsart ist ein Kraftalgorithmus, der eine Gleichung einschließt, die der Hauptrechner 12 zum Berechnen oder Modellieren eines Kraftwertes basierend auf Messfühler- und Taktdaten verwenden kann. Es können mehrere Arten von Algorithmen verwendet werden. Beispielsweise können Algorithmen verwendet werden, in denen sich die Kraft linear (oder nicht linear) zur Position des Gegenstands 34 verändert, um eine simulierte Kraft wie die einer Feder bereitzustellen. Algorithmen, in denen sich die Kraft linear (oder nicht linear) zur Geschwindigkeit des Gegenstands 34 verändert, können ebenfalls verwendet werden, um eine simulierte Dämpfungskraft oder andere Kräfte bereitzustellen. Algorithmen, in denen sich die Kraft linear (oder nicht linear) zur Beschleunigung des Gegenstands 34 verändert, können ebenfalls verwendet werden, um beispielsweise eine simulierte Trägheitskraft an einer Masse (zur linearen Veränderung) oder einen vorgetäuschten Gravitationszug (zur nicht linearen Veränderung) bereitzustellen. Einige Arten simulierter Kräfte und die zur Berechnung solcher Kräfte verwendeten Algorithmen sind in "Perceptual Design of a Virtual Rigid Surface Contact" von Louis B. Rosenberg, Center for Design Research, Stanford University, Report Nr. AL/CF-TR-1995-0029, April 1993 beschrieben, der durch Querverweis hierin aufgenommen wird.
  • Für Kraftwerte, die von der Geschwindigkeit und Beschleunigung des Benutzergegenstands 34 abhängen, können Geschwindigkeit und Beschleunigung in einer Reihe von unterschiedlichen Arten vorgesehen sein. Die in Schritt 78 vom Hauptrechner 12 abgelesenen Messfühlerdaten können Positionsdaten, Geschwindigkeitsdaten und Beschleunigungsdaten einschließen. In einer bevorzugten Ausführungsform wurden die Geschwindigkeits- und Beschleunigungsdaten zuvor vom Mikroprozessor 26 berechnet und dann zum Hauptrechner 12 geliefert. Auf diese Weise kann der Hauptrechner die Geschwindigkeits- und Beschleunigungsdaten direkt in einem Algorithmus verwenden, um einen Kraftwert zu berechnen. In einer alternativen Ausführungsform enthalten die in Schritt 78 abgelesenen Messfühlerdaten Positionsdaten und keine Geschwindigkeits- oder Beschleunigungsdaten, so dass der Hauptrechner 12 Geschwindigkeit und Beschleunigung aus den Positionsdaten errechnen muss. Dies kann dadurch bewerkstelligt werden, dass eine Reihe von vergangenen Positionswerten aufgezeichnet wird, unter Verwendung des Systemtaktgebers 18 die Zeit aufgezeichnet wird, wann jeder derartige Positionswert erhalten wurde, und aus diesen Daten eine Geschwindigkeit und/oder Beschleunigung errechnet wird.
  • Zum Beispiel kann eine kinematische Gleichung verwendet werden, die basierend auf der Geschwindigkeit des Benutzergegenstands multipliziert mit einer Dämpfungskonstante eine Kraft zur Bestimmung einer Dämpfungskraft an dem Benutzergegenstand berechnet. Diese Art von Gleichung kann die Bewegung des Gegenstands 34 entlang einem Freiheitsgrad durch ein Fluid oder einen ähnlichen Stoff nachahmen. Beispielsweise kann zuerst eine Dämpfungskonstante ausgewählt werden, die den Widerstandsgrad anzeigt, den der Gegenstand 34 bei der Bewegung durch einen simulierten Stoff wie eine Flüssigkeit erfährt, wobei eine größere Zahl einen größeren Widerstand andeutet. Wasser hätte z. B. eine niedrigere Dämpfungskonstante als Öl oder Sirup. Der Hauptrechner ruft die vorherige Position des Benutzergegenstands 34 (entlang einem bestimmten Freiheitsgrad) ab, untersucht die derzeitige Position des Benutzergegenstands und berechnet die Positionsdifferenz. Auch aus dem Vorzeichen (negativ oder positiv) der Differenz kann die Richtung der Bewegung des Gegenstands 34 bestimmt werden. Die Kraft wird dann mit der Dämpfungskonstante multipliziert mit dem Stellungswechsel gleichgesetzt. Steuerbefehle, die einen Aktuator basierend auf diesem Algorithmus steuerten, würden eine Kraft proportional zur Bewegung des Benutzergegenstands erzeugen, um die Bewegung durch ein Fluid vorzutäuschen. Die Bewegung in anderen Medien, wie z. B. auf einer holperigen Oberfläche, einer schiefen Ebene etc., kann unter Verwendung unterschiedlicher Methoden zur Berechnung der Kraft auf ähnliche Weise simuliert werden.
  • Die Bestimmung von Kraftsteuerbefehlen wird vorzugsweise durch Taktdaten beeinflusst, auf die vom Systemtaktgeber 18 aus zugegriffen wird. Zum Beispiel wird in dem oben beschriebenen Dämpfungskraftbeispiel die Geschwindigkeit des Benutzergegenstands 34 durch Berechnen der Differenz aus den Positionen des Benutzergegenstands und Multiplizieren mit der Dämpfungskonstante bestimmt. Diese Kalkulation nimmt einen festen Zeitabstand zwischen Datenpunkten an, d. h. es wird angenommen, dass die Positionsdaten des Gegenstands 34 vom Hauptrechner 12 in regelmäßigen, vorbestimmten Zeitabständen erhalten werden. Jedoch geschieht dies aufgrund anderer Verarbeitungsgeschwindigkeiten unterschiedlicher Computer-Plattformen oder Verarbeitungsabweichungen auf einem einzelnen Host-Mikroprozessor 16, wie z. B. aufgrund Multitaskingbetrieb, eventuell nicht wirklich. Daher greift der Hauptrechner in der vorliegenden Erfindung vorzugsweise auf den Taktgeber 12 zu, um zu bestimmen, wie viel Zeit tatsächlich verstrichen ist, seit die letzten Positionsdaten erhalten wurden. In dem Dämpfungskraftbeispiel könnte der Hauptrechner die Positionsdifferenz nehmen und sie durch ein Zeitmaß teilen, um die Differenzen bei der Zeitsteuerung zu berücksichtigen. Auf diese Weise kann der Hauptrechner die Taktdaten des Taktgebers bei der Modulation von Kräften und Kraftempfindungen an den Benutzer verwenden. Taktdaten können in anderen Algorithmen und Kraftempfindungsprozessen der vorliegenden Erfindung verwendet werden, um eine wiederholbare und übereinstimmende Kraftrückkoppelung ungeachtet der Art der Plattform oder verfügbaren Verarbeitungszeit auf dem Hauptrechner 12 bereitzustellen.
  • Auch andere Befehle können in einem Kraftempfindungsprozess enthalten sein. Zum Beispiel können Bedingungen enthalten sein, um nur in gewünschten Richtungen oder unter anderen bestimmten Umständen Kräfte zu liefern. Um beispielsweise ein virtuelles Hindernis wie eine Wand vorzutäuschen, sollten Kräfte nur in einer Richtung (eindirektional) angelegt werden. Bei vielen passiven Aktuatoren können nur zweiseitig wirkende Widerstandskräfte angelegt werden. Zum Simulieren von Widerständen in nur einer Richtung können Bedingungen für ein virtuelles Hindernis in dem Kraftempfindungsprozess eingeschlossen sein. Ein Beispiel solcher Bedingungen in einem Kraftempfindungsprozess für ein virtuelles Hindernis ist im Hinblick auf 12 beschrieben. Ferner kann ein "Null"-Spiegelungsprozess verfügbar sein, der den Hauptrechner 12 (oder Mikroprozessor 26 in der Ausführungsform gemäß 5) anweist, einen niederen Steuerbefehl oder Kraftwerte auszugeben, um Nullkräfte am Benutzergegenstand 34 bereitzustellen (d. h. alle Kräfte zu entfernen).
  • Eine andere Kraftempfindungsprozessart verwendet keine Algorithmen zum Modellieren einer Kraft, sondern benutzt stattdessen Kraftwerte, die zuvor berechnet oder abgetastet und als digitalisiertes "Kraftprofil" im Arbeitsspeicher oder einer anderen Speichervorrichtung gespeichert wurden. Diese Kraftwerte können zuvor unter Verwendung einer Gleichung oder eines Algorithmus generiert worden sein, wie oben beschrieben, oder durch Abtast- und Digitalisierungskräfte bereitgestellt werden. Um beispielsweise eine bestimmte Kraftempfindung an den Benutzer bereitzustellen, kann der Hauptrechner 12 durch einen Kraftempfindungsprozess angewiesen werden, aufeinanderfolgende Kraftwerte aus einer bestimmten Speichervorrichtung wie RAM, ROM, Festplatte etc. abzurufen. Diese Kraftwerte können in einem niederen Steuerbefehl direkt an einen Aktuator gesendet werden, um bestimmte Kräfte zu liefern, ohne dass der Hauptrechner 12 die Kraftwerte berechnen muss. Daneben können zuvor gespeicherte Kraftwerte hinsichtlich anderer Parameter ausgegeben werden, um unterschiedliche Arten von Kräften und Kraftempfindungen aus einer Reihe von gespeicherten Kraftwerten bereitzustellen. Zum Beispiel können die gespeicherten Kraftwerte unter Verwendung des Systemtaktgebers 18 gemäß einem bestimmten Zeitabstand in Folge ausgegeben werden, der abhängig von der gewünschten Kraft variieren kann. Oder es können andere abgefragte Kraftwerte abhängig von der derzeitigen Position des Benutzergegenstands 34 ausgegeben werden.
  • In Schritt 82 kann der Hauptrechner 12 einen Kraftsteuerbefehl gemäß einem neu gewählten Spiegelungsprozess oder einem zuvor ausgewählten Spiegelungsprozess bestimmen. Wenn dies z. B. eine zweite oder spätere Iteration des Schritts 82 ist, kann wieder derselbe Spiegelungsprozess wie in der vorigen Iteration implementiert werden, falls die Parameter (wie die Position des Gegenstands 34) dies zulassen, wie vom Host-Anwendungsprogramm bestimmt.
  • Der in Schritt 82 bestimmte Kraftsteuerbefehl kann auch von Befehlen abhängen, die für andere Parameter stehen. Diese Befehle können innerhalb oder außerhalb des oben beschriebenen Spiegelungsprozesses enthalten sein. Ein solcher Parameter sind Werte, die von dem implementierten Host-Anwendungsprogramm bereitgestellt werden (falls vorhanden). Das Anwendungsprogramm kann bestimmen, dass basierend auf innerhalb des Anwendungsprogramms stattfindenden Ereignissen oder anderen Befehlen ein bestimmter Kraftsteuerbefehl ausgegeben oder Spiegelungsprozess implementiert werden sollte. Kraft- Steuerbefehle oder -Werte können vom Host-Anwendungsprogramm unabhängig von Messfühlerdaten bereitgestellt werden. Ferner kann das Host-Anwendungsprogramm seine eigenen bestimmten Positions-, Geschwindigkeits- und/oder Beschleunigungsdaten einem ausgewählten Spiegelungsprozess zur Verfügung stellen, um eine Kraft zu berechnen oder bereitzustellen, die nicht auf der Manipulation des Benutzergegenstands 34 basiert, sondern vorgesehen ist, um ein Ereignis in dem Anwendungsprogramm vorzutäuschen. Solche Ereignisse können Kollisionsereignisse einschließen, wie sie vorkommen, wenn eine benutzergesteuerte Computerabbildung auf einer virtuellen Oberfläche oder Textur auftrifft. Auch andere an den Hauptrechner 12 angeschlossene Eingabevorrichtungen können Geschehnisse und daher die an den Benutzergegenstand 34 angelegten Kräfte beeinflussen. Zum Beispiel können die Messfühlerdaten von an einen einzelnen Hauptrechner angeschlossenen Mehrfach-Schnittstellenvorrichtungen 14 die an anderen angeschlossenen Schnittstellenvorrichtungen gefühlten Kräfte durch Beeinflussen der Ereignisse und computergesteuerten Abbildungen/Objekte des Host-Anwendungsprogramms beeinflussen.
  • Ferner können die in Schritt 82 bestimmten Kraftsteuerbefehle auf anderen Eingaben in den Hauptrechner 12 basieren, wie z. B. Betätigungen von Knöpfen oder anderen Eingabevorrichtungen in (oder außerhalb) der Schnittstellenvorrichtung 14. Beispielsweise könnte ein bestimmtes Anwendungsprogramm erfordern, dass immer dann eine Kraft an einen Joystick angelegt wird, wenn ein Benutzer einen Schießknopf an dem Joystick drückt.
  • Die oben beschriebenen Spiegelungsprozesse und andere Parameter können verwendet werden, um dem Benutzer über den Benutzergegenstand 34 eine Vielfalt von haptischen Empfindungen zu liefern, um viele unterschiedliche Arten von taktilen Ereignissen zu simulieren. Zum Beispiel können typische haptische Empfindungen eine virtuelle Dämpfung (oben beschrieben), ein virtuelles Hindernis und eine virtuelle Textur bzw. Struktur einschließen. Virtuelle Hindernisse sind zur Vortäuschung von Wänden, Hindernissen und anderen einseitig wirkenden Kräften in einer Simulation, einem Spiel etc. vorgesehen. Wenn ein Benutzer eine Computerabbildung mit einem Joystick in ein virtuelles Hindernis hineinbewegt, dann spürt der Benutzer einen körperlichen Widerstand, wenn er den Joystick in dieser Richtung weiterbewegt. Wenn der Benutzer den Gegenstand von dem Hindernis wegbewegt, wird die einseitig wirkende Kraft aufgehoben. Auf diese Weise wird dem Benutzer ein überzeugender Sinneseindruck gegeben, dass das auf dem Bildschirm angezeigte virtuelle Hindernis physikalische Eigenschaften hat. Auf ähnliche Weise können virtuelle Texturen zur Nachahmung einer Oberflächenbedingung oder ähnlichen Struktur verwendet werden. Wenn der Benutzer beispielsweise einen Joystick oder anderen Benutzergegenstand entlang einer Achse bewegt, sendet der Hauptrechner eine rasche Folge von Steuerbefehlen, um repetitiv
    • 1) Widerstand entlang dieser Achse anzulegen, und
    • 2) dann unmittelbar keinen Widerstand entlang dieser Achse anzulegen, wie gemäß einem Spiegelungsprozess. Diese Frequenz basiert auf dem Schwenkbereich des Joystick-Griffs und ist demnach mit der räumlichen Stellung korreliert. Auf diese Weise verspürt der Benutzer ein körperliches Strukturgefühl, was als das Gefühl beschrieben werden kann, wie wenn ein Stock über ein Gitter gezogen wird.
  • Im nächsten Schritt 84 wird ein in Schritt 82 bestimmter niederer Kraftsteuerbefehl über den Bus 24 an den Mikroprozessor 26 ausgegeben. Dieser Kraftsteuerbefehl schließt typischerweise einen Kraftwert ein, der in Übereinstimmung mit den oben beschriebenen Parametern bestimmt wurde. Der Kraftsteuerbefehl kann als tatsächliches Kraftsignal ausgegeben werden, das vom Mikroprozessor 26 bloß zu einem Aktuator 30 übertragen wird; oder der Kraftsteuerbefehl kann vor dem Senden zum Aktuator 30 vom Mikroprozessor 26 in eine passende Form umgewandelt werden. Daneben schließt der niedere Kraftsteuerbefehl vorzugsweise Informationen ein, die dem Mikroprozessor 26 anzeigen, welche Aktuatoren diesen Kraftwert erhalten sollen (falls Mehrfach-Aktuatoren an der Schnittstellenvorrichtung 14 enthalten sind). Dann geht der Prozess zu Schritt 76 zurück, um das Host-Anwendungsprogramm zu verarbeiten/aktualisieren. Der Prozess geht weiter zu Schritt 80, wo der Hauptrechner prüft, ob ein anderer Kraftsteuerbefehl als durch die oben beschriebenen Parameter bestimmt ausgegeben werden sollte. Falls dies so ist, wird ein neuer Kraftsteuerbefehl bestimmt und in Schritt 84 ausgegeben. Falls kein Kraftwechsel erforderlich ist, gibt der Hauptrechner 12 keinen Steuerbefehl mehr aus, weil der Mikroprozessor 26 weiterhin den vorigen Kraftsteuerbefehl an die Aktuatoren 30 ausgeben kann (alternativ kann der Hauptrechner 12 weiterhin Steuerbefehle ausgeben, selbst wenn kein Kraftwechsel erforderlich ist). Nachfolgende, in Schritt 84 ausgegebene Kraftsteuerbefehle können abhängig von den Parametern von Schritt 82 in Übereinstimmung mit demselben Spiegelungsprozess oder einem anderen Spiegelungsprozess bestimmt werden.
  • Außerdem synchronisiert der Hauptrechner 12 vorzugsweise jede für die Host-Anwendung spezifische, geeignete visuelle Rückkoppelung, auditorische Rückkoppelung oder andere Rückkoppelung mit der Anlegung von Kräften am Benutzergegenstand 34. Zum Beispiel sollte in einer Videospielanwendung der Beginn oder Anfang visueller Ereignisse, wie z. B. ein mit dem Benutzer zusammenstoßender Gegenstand auf dem Anzeigebildschirm 20, mit dem Beginn oder Anfang von durch den Benutzer gefühlten Kräften synchronisiert werden, die diesen visuellen Ereignissen entsprechen oder sie komplementieren. Der Beginn visueller Geschehnisse und Kraftereignisse findet vorzugsweise innerhalb von ca. 30 Millisekunden (ms) voneinander statt. Diese Zeitspanne ist die typische Grenze der menschlichen Wahrnehmungsfähigkeit, um die Ereignisse als simultan zu erkennen. Wenn die Bild- und Kraftereignisse außerhalb dieser Spanne stattfinden, dann kann gewöhnlich eine zeitliche Verzögerung zwischen den Ereignissen wahrgenommen werden. Auf ähnliche Weise wird die Ausgabe akustischer Signale, die dem Beginn auditorischer Ereignisse in der Host-Anwendung entsprechen, vorzugsweise mit dem Beginn von Abgabekräften synchronisiert ausgegeben, die diesen auditorischen Ereignissen entsprechen/sie komplementieren. Wieder findet der Beginn dieser Ereignisse vorzugsweise innerhalb von ca. 30 ms voneinander statt. Zum Beispiel kann das Hauptrechnersystem 12 Geräusche einer Explosion aus den Lautsprechern 21 so zeitnah wie möglich zu den Kräften ausgeben, die der Benutzer bei dieser Explosion in einer Simulation fühlt. Vorzugsweise steht die Stärke des Geräusches in direktem (im Gegensatz zum umgekehrten) Verhältnis zur Größe der an den Benutzergegenstand 34 angelegten Kräfte. Zum Beispiel kann während einer Simulation ein schwaches Geräusch einer Explosion in weiter (virtueller) Entfernung eine kleine Kraft am Benutzergegenstand 34 bewirken, während eine große "nahe" Explosion die Ausgabe eines lauten Geräusches durch die Lautsprecher und eine entsprechend große auszugebende Kraft am Gegenstand 34 bewirken könnte.
  • Der örtliche Mikroprozessor 26 realisiert den von Schritt 74 abzweigenden und mit Schritt 86 beginnenden Prozess parallel zu dem oben beschriebenen Hauptrechnerprozess. In Schritt 86 wird die Schnittstellenvorrichtung 14 aktiviert. Zum Beispiel können Signale zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung 14 gesendet werden, um zu bestätigen, dass die Schnittstellenvorrichtung nun aktiv ist. Von Schritt 86 zweigen zwei Abläufe ab, um anzudeuten, dass zwei Abläufe gleichzeitig auf dem örtlichen Prozessor 26 laufen (Multitaskingbetrieb). In einem Prozess wird Schritt 88 implementiert, in dem der Prozessor 26 Rohdaten (Messfühlerablesungen) von den Messfühlern 28 abliest. Solche Rohdaten schließen vorzugsweise Positionswerte zur Beschreibung der Position des Benutzergegenstands entlang vorgesehenen Freiheitsgraden ein. In der bevorzugten Ausführungsform sind die Messfühler 28 relative Messfühler, die Positionswerte zur Beschreibung des Stellungswechsels seit der letzten abgelesenen Position bereitstellen. Der Prozessor 26 kann die absolute Position durch Messen der relativen Position ausgehend von einer ausgewählten Bezugsposition bestimmen. In alternativen Ausführungsformen können Messfühler 28 Geschwindigkeitssensoren und Beschleunigungsmesser zur Bereitstellung der Ausgangsgeschwindigkeit und Beschleunigungswerte des Gegenstands einschließen.
  • Die in Schritt 88 abgelesenen Rohdaten können auch andere Eingaben einschließen, wie z. B. von einem betätigten Knopf oder einer anderen Steuerung 39 der Schnittstellenvorrichtung 14.
  • Im nächsten Schritt 90 verarbeitet der Prozessor 26 die erhaltenen Rohdaten ggf. in Messfühlerdaten. In der bevorzugten Ausführungsform schließt diese Verarbeitung zwei Schritte ein: Berechnen von Geschwindigkeits- und/oder Beschleunigungswerten ausgehend von Ausgangspositionsdaten (falls Geschwindigkeit und/oder Beschleunigung zur Berechnung von Kräften benötigt werden) und Filtern der berechneten Geschwindigkeits- und Beschleunigungsdaten. Die Geschwindigkeits- und Beschleunigungswerte werden ausgehend von in Schritt 88 erhaltenen Ausgangspositionsdaten und gespeicherten Positions- und Zeitwerten berechnet. Vorzugsweise speichert der Prozessor 26 eine Reihe von Positionswerten und Zeitwerten entsprechend dem Zeitpunkt des Erhalts der Positionswerte. Der Prozessor 26 kann seinen eigenen oder einen örtlichen Systemtaktgeber (in 1 nicht gezeigt) zur Bestimmung der Taktdaten verwenden. Geschwindigkeit und Beschleunigung können unter Verwendung der gespeicherten Positionsdaten und Taktdaten berechnet werden, wie es Fachleuten auf diesem Gebiet hinlänglich bekannt ist. Die berechneten Geschwindigkeits- und/oder Beschleunigungswerte können dann gefiltert werden, um Störungen aus den Daten zu entfernen, wie z. B. große Spitzen, die zu Geschwindigkeitskalkulationen von schnellen Stellungswechseln des Gegenstands 34 führen können. Somit schließen die Messfühlerdaten in der beschriebenen Ausführungsform Positions-, Geschwindigkeits-, Beschleunigungs- und andere Eingabedaten ein. In einer alternativen Ausführungsform kann eine Schaltung, die elektrisch an den Prozessor 26 gekoppelt, aber von ihm abgetrennt ist, die Rohdaten empfangen und Geschwindigkeit und Beschleunigung bestimmen. Zum Beispiel kann eine anwendungspezifische integrierte Schaltung (ASIC) oder diskrete Logikschaltung Zähler oder dergleichen zum Bestimmen der Geschwindigkeit und Beschleunigung verwenden, um Verarbeitungszeit am Mikroprozessor 26 zu sparen.
  • Alternativ kann Schritt 90 weggelassen werden, und der Prozessor 26 kann Ausgangspositionsdaten an den Hauptrechner 12 (und andere Eingabedaten von anderen Eingabevorrichtungen 39) liefern. Dies würde erforderlich machen, dass der Hauptrechner 12 die Geschwindigkeit und Beschleunigung aus den Positionsdaten filtert und berechnet. Demzufolge wird bevorzugt, dass der Prozessor 26 diese Verarbeitung durchführt, um den auf dem Hauptrechner 12 durchgeführten Verarbeitungsumfang zu verringern. In anderen Ausführungsformen kann das Filtern auf dem Hauptrechner 12 durchgeführt werden, während die Geschwindigkeits- und Beschleunigungskalkulation auf dem Prozessor 26 durchgeführt werden kann. Ferner kann in Ausführungsformen, wo Geschwindigkeits- und/oder Beschleunigungsmessfühler zur Bereitstellung von Ausgangsgeschwindigkeits- und Beschleunigungsdaten verwendet werden, die Kalkulation von Geschwindigkeit und/oder Beschleunigung weggelassen werden. Nach dem Schritt 90 wird Schritt 91 realisiert, in dem der Prozessor 26 die verarbeiteten Messfühlerdaten über den Bus 24 zum Hauptrechner 12 sendet. Dann kehrt der Prozess zu Schritt 88 zurück, um Rohdaten auszulesen. Die Schritte 88, 90 und 91 werden demnach kontinuierlich realisiert, um dem Hauptrechnersystem 12 aktuelle Messfühlerdaten zur Verfügung zu stellen.
  • Der zweite Abzweig vom Schritt 86 ist mit dem Prozessor 26 befasst, der die Aktuatoren 30 steuert, um vom Hauptrechner 12 berechnete Kräfte an den Gegenstand 34 zu liefern. Der zweite Abzweig beginnt mit Schritt 92, in dem der Prozessor 26 prüft, ob ein niederer Kraftsteuerbefehl vom Hauptrechner 12 über den Bus 24 erhalten wurde. Falls nicht, sucht der Prozess ständig nach einem solchen Kraftbefehl. Wenn ein Kraftsteuerbefehl erhalten wurde, wird Schritt 94 implementiert, in dem der Prozessor 26 einen niederen Prozessor-Kaftsteuerbefehl an die ausgewählten Aktuatoren ausgibt, um die Ausgabekraft auf die gewünschte Größe, Richtung etc. zu setzen. Dieser Kraftsteuerbefehl kann äquivalent zu dem erhaltenen niederen Steuerbefehl vom Hauptrechner sein, oder der Prozessor 26 kann den Kraftsteuerbefehl wahlweise in eine entsprechende Form umwandeln, die durch den Aktuator 30 nutzbar ist (oder die Aktuatorschnittstelle 38 kann eine solche Umwandlung durchführen). Der Prozess geht dann zu Schritt 92 zurück, um nach einem weiteren Kraftsteuerbefehl vom Hauptrechner 12 zu suchen.
  • 5 ist ein Ablaufdiagramm zur Darstellung einer zweiten Ausführungsform eines Verfahrens 100 zum Steuern der Force-Feedback-Schnittstellenvorrichtung 14 der vorliegenden Erfindung. Das Verfahren 100 ist auf eine "Spiegelungs"-Ausführungsform gerichtet, in der das Hauptrechnersystem 12 nur höhere Hauptsteuerprogramm-Kraftsteuerbefehle ("Host-Steuerbefehle") an den Mikroprozessor 26 liefert, während der Mikroprozessor niedere Kraftsteuerbefehle (Kraftwerte) unabhängig bestimmt und als unabhängige "Spiegelung" an die Aktuatoren 30 liefert, um von den Aktuatoren ausgegebene Kräfte zu steuern.
  • Der Prozess gemäß 5 ist für langsame Datenübertragungsschnittstellen wie eine serielle Standardschnittstelle RS-232 geeignet. Die Ausführungsform gemäß 5 ist jedoch auch für schnelle Datenübertragungsschnittstellen wie USB geeignet, weil der örtliche Mikroprozessor dem Host-Prozessor 16 Rechenlast abnimmt. Daneben kann diese Ausführungsform ein unkompliziertes Kommandoprotokoll bereitstellen, wovon ein Beispiel im Hinblick auf 9 und 14 beschrieben ist und das es Software-Entwicklern erlaubt, die Kraftrückkoppelung in einer Host-Anwendung leicht bereitzustellen. In dieser Ausführungsform kann z. B. der langsamere "Unterbrechungsdatentransfer"-Modus von USB verwendet werden.
  • Der Prozess beginnt bei 102. In Schritt 104 werden das Hauptrechnersystem 12 und die Schnittstellenvorrichtung 14 angeschaltet, z. B. dadurch, dass ein Benutzer die Netzschalter betätigt. Nach dem Schritt 104 verzweigt sich der Prozess 100 in zwei Parallelprozesse. Ein Prozess wird auf dem Hauptrechnersystem 12 implementiert, und der andere Prozess wird auf dem örtlichen Mikroprozessor 26 implementiert.
  • In dem Hauptrechnersystem-Prozess wird zuerst Schritt 106 implementiert, in dem ein Anwendungsprogramm verarbeitet wird. Diese Anwendung kann eine Simulation, ein Videospiel, ein wissenschaftliches Programm oder anderes Programm sein. Für einen Benutzer können Bilder auf dem Ausgabebildschirm 20 angezeigt und eine andere Rückkoppelung präsentiert werden, wie z. B. Tonrückkoppelung.
  • Zwei Abzweige gehen von Schritt 106 weg, um anzudeuten, dass es zwei gleichzeitig laufende Prozesse (Multitaskingbetrieb etc.) auf dem Hauptrechnersystem 12 gibt. In einem der Prozesse wird Schritt 108 implementiert, wo vom Benutzergegenstand aus gehende Messfühlerdaten vom örtlichen Mikroprozessor 26 durch den Hauptrechner erhalten werden. Ähnlich wie in Schritt 78 des Prozesses gemäß 4 erhält das Hauptrechnersystem 12 entweder Rohdaten (z. B. Positionsdaten und keine Geschwindigkeits- oder Beschleunigungsdaten) oder verarbeitete Messfühlerdaten (Positions-, Geschwindigkeits- und/oder Beschleunigungsdaten) vom Mikroprozessor 26. Daneben können in Schritt 108 beliebige andere, von anderen Eingabevorrichtungen 39 erhaltene Daten vom Mikroprozessor 26 auch vom Hauptrechnersystem 12 erhalten werden, wie Signale zur Anzeige, dass ein Knopf an der Schnittstellenvorrichtung 14 vom Benutzer gedrückt wurde.
  • Anders als bei der vorigen Ausführungsform gemäß 4 berechnet der Hauptrechner in Schritt 108 keine Kraftwerte aus den erhaltenen Messfühlerdaten. Vielmehr überwacht der Hauptrechner 12 die Messfühlerdaten, um zu bestimmen, wann ein Wechsel der Kraftart erforderlich ist. Dies ist nachstehend in größerer Einzelheit beschrieben. Selbstverständlich verwendet der Hauptrechner 12 die Messfühlerdaten auch als Eingabe für die Host-Anwendung, um die Host-Anwendung entsprechend zu aktualisieren.
  • Nach dem Erhalt von Messfühlerdaten in Schritt 108 kehrt der Prozess zu Schritt 106 zurück, wo das Hauptrechnersystem 12 das Anwendungsprogramm als Reaktion auf die Betätigung des Gegenstands 34 durch den Benutzer und jede andere in Schritt 108 erhaltene Benutzer eingabe aktualisieren kann. In einer Dauerschleife des Empfangens von Messfühlerdatenmengen vom örtlichen Prozessor 26 wird dann wieder Schritt 108 implementiert. Da der Hauptrechner die Aktuatoren nicht direkt basierend auf Messfühlerdaten steuern muss, können die Messfühlerdaten mit einer viel geringeren Geschwindigkeit bereitgestellt werden. Da der Hauptrechner z. B. die Host-Anwendung und Abbildungen auf dem Anzeigebildschirm 20 als Reaktion auf Messfühlerdaten aktualisiert, brauchen die Messfühlerdaten nur bei 60-70 Hz ausgelesen werden (der Auffrischzyklus eines typischen Anzeigebildschirms), im Vergleich zu der viel höheren Rate von ca. 500-1000 Hz (oder größer) die benötigt wird, um niedere Kraftrückkoppelungssignale von Messfühlersignalen realistisch bereitzustellen. Der Hauptrechner 12 synchronisiert vorzugsweise auch Bild-, Ton- und Kraftereignisse auf ähnliche Weise wie oben mit Bezug auf 4 beschrieben.
  • Der zweite Abzweig vom Schritt 106 ist mit dem Prozess befasst, wo der Hauptrechner höhere Kraftsteuerbefehle ("Host-Steuerbefehle") bestimmt, um eine Kraftrückkoppelung an den Benutzer beim Manipulieren des Gegenstands 34 zu bestimmen. Der zweite Abzweig beginnt mit Schritt 110, in dem das Hauptrechnersystem prüft, ob ein Wechsel der an den Benutzergegenstand 34 angelegten Kraftart erforderlich ist. Die Kraft-"Art" ist ein Kraftgefühl oder -profil, das durch einen bestimmten Spiegelungsprozess oder Kraftwert erzeugt wird, den der örtliche Mikroprozessor 26 unabhängig vom Hauptrechner implementieren kann. Der Hauptrechner 12 bestimmt abhängig von den vom Hauptrechner in Schritt 108 abgelesenen Sensordaten und abhängig von den in Schritt 106 des Anwendungsprogramms aktualisierten Geschehnissen, ob ein Wechsel der Kraftart erforderlich ist. Wie mit Bezug auf 4 erläutert, informieren die Messfühlerdaten den Hauptrechner basierend auf der derzeitigen Stellung des Gegenstands, seiner Geschwindigkeit und/oder Beschleunigung, wenn Kräfte an den Gegenstand angelegt werden sollten. Die Manipulationen des Benutzers des Gegenstands 34 können bewirkt haben, dass eine neue Kraftart benötigt wird. Wenn der Benutzer z. B. in einem Videospiel einen virtuellen Rennwagen innerhalb einer virtuellen Schlammmasse bewegt, sollte eine Dämpfungskraftart an den Gegenstand 34 angelegt werden, solange der Rennwagen sich innerhalb des Schlamms bewegt. Somit müssen ständig Dämpfungskräfte an den Gegenstand angelegt werden, aber es ist keine Änderung der Kraftart erforderlich. Wenn sich der Rennwagen aus der Schlammmasse herausbewegt, wird eine neue Kraftart (d. h. in diesem Fall eine Aufhebung der Dämpfungskraft) benötigt. Die Geschehnisse des Anwendungsprogramms erfordern eventuell auch einen Wechsel der angelegten Kraftart. Wenn das Auto des Benutzers z. B. gerade durch Schlamm fährt und ein anderes Auto in den Wagen des Benutzers hineinfährt, dann sollte eine neue Kraftart (Kollisionskraft) an den Benutzergegenstand angelegt werden. Die Kräfte können abhängig von einer Kombination eines Anwendungsereignisses und der in Schritt 108 abgelesenen Messfühlerdaten am Benutzergegenstand erforderlich sein. Ferner können andere Eingaben, wie wenn ein Benutzer Knöpfe oder andere Eingabevorrichtungen 39 an der Schnittstellenvorrichtung 14 betätigt, die am Gegenstand 34 benötigte Art von Kräften verändern.
  • Falls in Schritt 110 derzeit keine Änderung der Kraftart erforderlich ist, dann kehrt der Prozess zu Schritt 106 zurück, um die Host-Anwendung zu aktualisieren und zu Schritt 110 zurückzukehren, um erneut zu suchen, bis eine solche Änderung der Kraftart erforderlich ist. Wenn eine derartige Änderung erforderlich ist, wird Schritt 112 realisiert, in dem der Hauptrechner 12 einen entsprechenden Host-Steuerbefehl zum Senden an den Mikroprozessor 26 bestimmt. Die für den Hauptrechner 12 verfügbaren Host-Steuerbefehle können jeweils einem zugehörigen Spiegelungsprozess entsprechen, der vom Mikroprozessor 26 realisiert wird. Zum Beispiel können dem Hauptrechner 12 Host-Steuerbefehle zur Bereitstellung einer Dämpfungskraft, einer Federkraft, eines Gravitationszugs, einer Holperflächenkraft, einer Kraft eines virtuellen Hindernisses und anderer Kräfte zur Verfügung stehen. Diese Host-Steuerbefehle können auch eine Benennung der bestimmten Aktuatoren 30 oder Freiheitsgrade einschließen, die diese gewünschte Kraft an den Gegenstand 34 anlegen sollen. Die Host-Steuerbefehle können auch andere Befehlsparameterinformationen einschließen, welche die durch einen bestimmten Spiegelungsprozess erzeugte Kraft variieren könnten. Zum Beispiel kann in einem Host-Steuerbefehl eine Dämpfungskonstante zum Bezeichnen einer gewünschten Dämpfungskraftmenge enthalten sein. Der Host-Steuerbefehl kann den Spiegelungsbetrieb des Prozessors 26 vorzugsweise auch aufheben und niedere Kraftwerte einschließen. Ein bevorzugtes Kommandoprotokoll und eine detaillierte Beschreibung einer Reihe von Host-Steuerbefehlen sind nachstehend im Hinblick auf 9 und 14 in größerer Einzelheit beschrieben. Im nächsten Schritt 114 sendet der Hauptrechner den Host-Steuerbefehl über den Bus 24 zum Mikroprozessor 26. Dann kehrt der Prozess zu Schritt 106 zurück, um die Host-Anwendung zu aktualisieren und zum Schritt 110 zurückzukehren, um zu prüfen, ob noch eine Kraftänderung erforderlich ist.
  • Der örtliche Mikroprozessor 26 implementiert den von Schritt 104 abzweigenden und mit Schritt 116 beginnenden Prozess parallel zu dem oben beschriebenen Hauptrechnerprozess. In Schritt 116 wird die Schnittstellenvorrichtung 14 aktiviert. Zum Beispiel können Signale zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung 14 gesendet werden, um zu bestätigen, dass die Schnittstellenvorrichtung nun aktiv ist und Befehle vom Hauptrechner 12 entgegennehmen kann. Von Schritt 116 zweigen zwei Abläufe ab, um anzudeuten, dass zwei Prozesse gleichzeitig auf dem örtlichen Prozessor 26 ablaufen (Multitaskingbetrieb). In einem Prozess wird Schritt 118 implementiert, in dem der Prozessor 26 Rohdaten von den Messfühlern 28 abliest. Wie in Schritt 88 von 4 beschrieben, liest der Prozessor 26 vorzugsweise Positionsdaten und keine Geschwindigkeits- oder Beschleunigungsdaten von den Messfühlern 28 ab. In alternativen Ausführungsformen können die Messfühler 28 Geschwindigkeitssensoren und Beschleunigungsmesser einschließen, um Geschwindigkeits- und Beschleunigungswerte des Gegenstands 34 zu liefern. Die in Schritt 118 abgelesenen Messfühlerdaten können auch eine andere Eingabe einschließen, wie z. B. von einem betätigten Knopf oder einer anderen Steuerung der Schnittstellenvorrichtung 14.
  • Im nächsten Schritt 120 verarbeitet der Prozessor 26 die erhaltenen Rohdaten zu Messfühlerdaten. Wie in Schritt 90 von 4 beschrieben, schließt diese Verarbeitung vorzugsweise die zwei Schritte Berechnen von Geschwindigkeits- und Beschleunigungsdaten aus den gefilterten Positionsdaten und Filtern der Geschwindigkeits- und Beschleunigungsdaten ein. Zur Bestimmung der Taktdaten, die zum Berechnen der Geschwindigkeit und Beschleunigung benötigt werden, kann der Prozessor 26 seinen eigenen internen Taktgeber 21 verwenden. Daneben kann zur Berechnung von Messfühlerdaten eine Historie vorheriger aufgezeichneter Werte, wie z. B. Positions- oder Geschwindigkeitswerte, verwendet werden. In Ausführungsformen, wo Geschwindigkeits- und/oder Beschleunigungsmessfühler verwendet werden, ist die Kalkulation der Geschwindigkeit und/oder Beschleunigung weggelassen. Im nächsten Schritt 121 sendet der Prozessor 26 die verarbeiteten Messfühlerdaten zum Hauptrechner 12 und speichert auch die Daten zum Berechnen von Kräften, wie im zweiten Zweigprozess des Prozessors 26 beschrieben. Dann kehrt der Prozess zu Schritt 118 zurück, um Rohdaten zu ablesen. So werden die Schritte 118, 120 und 121 kontinuierlich ausgeführt, um aktuelle Messfühlerdaten an den Prozessor 26 und den Hauptrechner 12 zu liefern.
  • Der zweite Abzweig von Schritt 116 ist mit einem "Aktuatorprozess" befasst, in dem der Prozessor 26 die Aktuatoren 30 zur Bereitstellung von Kräften an den Gegenstand 34 steuert. Der zweite Abzweig beginnt mit Schritt 122, in dem der Prozessor 26 prüft, ob über den Bus 24 ein Host-Steuerbefehl vom Hauptrechner 12 erhalten wurde. Falls ja, fährt der Prozess mit Schritt 124 fort, wo ein mit dem Host-Steuerbefehl verbundener Spiegelungsprozess ausgewählt wird. Solche Spiegelungsprozesse können örtlich zum Mikroprozessor 26 gespeichert sein, z. B. in einem Arbeitsspeicher 27 wie dem RAM oder ROM (oder EPROM, EEPROM etc.). Auf diese Weise könnte der Mikroprozessor einen Dämpfungsspiegelungsprozess auswählen, falls der höhere Steuerbefehl angeben würde, dass die Dämpfungskraft aus diesem Spiegelungsprozess an den Gegenstand 34 angelegt werden sollte. Die verfügbaren Spiegelungsprozesse ähneln vorzugsweise den oben mit Bezug auf
  • 4 beschriebenen und können Algorithmen, gespeicherte Kraftprofile oder -werte, Bedingungen etc. einschließen. In einigen Ausführungsformen können die Schritte 118, 120 und 121 zum Ablesen von Messfühlerdaten mit in die Spiegelungsprozesse für den Mikroprozessor aufgenommen sein, so dass die Messfühlerdaten nur abgelesen werden, sobald ein Spiegelungsprozess ausgewählt wurde. Ferner kann der Host-Steuerbefehl in einigen Fällen einfach ein niederer Kraftsteuerbefehl sein, der einen an einen Aktuator 30 zu sendenden Kraftwert bereitstellt (wie in der Ausführungsform gemäß 4), in welchem Fall kein Spiegelungsprozess ausgewählt werden braucht.
  • Nach dem Auswählen eines Spiegelungsprozesses in Schritt 124 oder wenn in Schritt 122 kein neuer Host-Steuerbefehl erhalten wurde, wird dann Schritt 126 implementiert, in dem der Prozessor 26 einen niederen Prozessor-Kraftsteuerbefehl (d. h. Kraftwert) bestimmt. Der Kraftwert wird aus dem Spiegelungsprozess und möglichen anderen vom Spiegelungsprozess benötigten Daten sowie in relevanten Host-Steuerbefehlen enthaltenen Befehlsparametern abgeleitet. Wie oben erläutert, können die benötigten Daten Messfühlerdaten und/oder Taktdaten vom internen Taktgeber 29 einschließen. Wenn somit in Schritt 122 kein neuer höherer Steuerbefehl erhalten wurde, dann bestimmt der Mikroprozessor 26 einen Kraftbefehl gemäß demselben Spiegelungsprozess, den er zuvor in Schritt 126 verwendete. Daneben kann der Host-Steuerbefehl andere zur Bestimmung eines Kraftbefehls benötigte Befehlsparameterinformationen einschließen. Zum Beispiel kann der Host-Steuerbefehl die Richtung einer Kraft entlang einem Freiheitsgrad angeben.
  • In Schritt 128 gibt der Prozessor 26 den bestimmten Prozessor-Kraftsteuerbefehl an die Aktuatoren 30 aus, um die Ausgabekraft auf den gewünschten Pegel zu setzen. Vor Aussenden des Kraftsteuerbefehls kann der Prozessor 26 den Kraftsteuerbefehl wahlweise in eine geeignete Form umwandeln, die der Aktuator 30 verwenden kann, oder die Aktuatorschnittstelle 38 kann eine derartige Umwandlung durchführen. Dann kehrt der Prozess zu Schritt 122 zurück, um zu prüfen, ob ein weiterer Host-Steuerbefehl vom Hauptrechner 12 erhalten wurde.
  • Der Aktuatorprozess des Mikroprozessors 26 (Schritte 118, 120, 122, 124, 126 und 128) arbeitet somit zum Liefern von Kräften an den Gegenstand 34 unabhängig vom Hauptrechner 12 gemäß einem ausgewählten Spiegelungsprozess und anderen Parametern. Der Spiegelungsprozess bestimmt basierend. auf den jüngsten vom Mikroprozessor 26 ausgelesenen Messfühlerdaten, wie der Prozessor-Kraftsteuerbefehl zu bestimmen ist. Da ein Spiegelungsprozess abhängig von der Position und anderen Parametern des Benutzergegenstands 34 angibt, wie Kräfte angelegt werden sollten, kann der Prozessor niedere Kraftsteuerbefehle ausgeben, was den Hauptrechner frei macht, die Host-Anwendung zu verarbeiten und nur zu bestimmen, wann eine neue Kraftart ausgegeben werden muss. Dies verbessert die Datenübertragungsraten zwischen Hauptrechner 12 und Schnittstellenvorrichtung 14 erheblich.
  • Daneben besitzt der Hauptrechner 12 vorzugsweise die Fähigkeit, den Spiegelungsbetrieb des Mikroprozessors 26 außer Kraft zu setzen und berechnete oder andere Kraftwerte direkt bereitzustellen, wie oben mit Bezug auf 4 beschrieben. Zum Beispiel kann der Host-Steuerbefehl einfach einen an einen Aktuator 30 zu sendenden Kraftwert angeben. Dieser Übersteuerungsmodus kann auch als Spiegelungsprozess realisiert sein. Zum Beispiel kann der Mikroprozessor 26 einen Spiegelungsprozess auswählen, der ihn anweist, vom Hauptrechner 12 erhaltene niedere Kraftsteuerbefehle zu einem Aktuator 30 zu übertragen.
  • 6 ist ein schematisches Diagramm eines Beispiels eines Benutzergegenstands 34, der an einen Tragrahmenmechanismus 140 gekoppelt ist, um dem Gegenstand 34 zwei oder mehr Rotationsfreiheitsgrade zur Verfügung zu stellen. Der Tragrahmenmechanismus 140 kann an die Schnittstellenvorrichtung 14 angeschlossen oder getrennt von den anderen Komponenten der Schnittstellenvorrichtung 14 mit Messfühlern 28 und Aktuatoren 30 versehen sein.
  • Der Tragrahmenmechanismus 140 kann durch eine Stützfläche 142 gelagert sein, die beispielsweise eine Oberfläche des Gehäuses der Schnittstellenvorrichtung 14 sein kann (schematisch als Teil des Elementes 144 gezeigt). Der Tragrahmenmechanismus 140 ist vorzugsweise eine fünfteilige Verbindung, die ein Grundelement 144, Ansatzelemente 146a und 146b sowie Zentralelemente 148a und 148b umfasst. Das Grundelement 144 ist an ein Unterteil oder eine Fläche angekuppelt, die dem Mechanismus 140 Stabilität liefert. Die Elemente des Tragrahmenmechanismus 140 sind durch die Verwendung von Lagern oder Schwenkachsen drehbar miteinander verbunden, wobei das Ansatzelement 146a drehbar mit dem Grundelement 144 verbunden ist und um eine Achse A rotieren kann, das Zentralelement 148a drehbar mit dem Ansatzelement 146a verbunden ist und um eine Momentanachse D rotieren kann, das Ansatzelement 146b drehbar mit dem Grundelement 144 verbunden ist und um eine Achse B rotieren kann, das Zentralelement 148b drehbar mit dem Ansatzelement 146b verbunden ist und um eine Momentanachse E rotieren kann, und das Zentralelement 148a an einem Mittelpunkt P am Schnittpunkt der Achsen D und E drehbar mit dem Zentralelement 148b verbunden ist. Die Achsen D und E sind "momentan" in dem Sinn, dass sie nicht an einer Position festgelegt sind wie die Achsen A und B. Die Achsen A und B sind weitgehend beiderseits lotrecht.
  • Der Tragrahmenmechanismus 140 ist als fünfgliedrige geschlossene Kette ausgebildet. Jedes Ende eines Elementes ist mit dem Ende eines anderen Elementes verbunden. Die fünfteilige Verbindung ist so angeordnet, dass das Ansatzelement 146a, das Zentralelement 148a und das Zentralelement 148b in einem ersten Freiheitsgrad um die Achse A gedreht werden können. Die Verbindung ist ferner so angeordnet, dass das Ansatzelement 146b, das Zentralelement 148b und das Zentralelement 148a in einem zweiten Freiheitsgrad um die Achse B gedreht werden können.
  • Der Benutzergegenstand 34 ist ein körperlicher Gegenstand, der mit einem linearen Achsenelement 150 verbunden sein kann, oder das lineare Achsenelement 150 kann als Teil des Gegenstands 34 angesehen werden. Das lineare Element 150 ist am Kreuzungspunkt P der Achsen D und E mit dem Zentralelement 148a und dem Zentralelement 148b verbunden. Das lineare Achsenelement 150 ist so mit dem Tragrahmenmechanismus 140 verbunden, dass es sich aus der durch die Achse D und die Achse E definierten Ebene herauserstreckt. Das lineare Achsenelement 150 kann durch Drehen des Ansatzelementes 146a, Zentralelementes 148a und Zentralelementes 148b in einem ersten Drehfreiheitsgrad um die Achse A (und E) gedreht werden, gezeigt als Pfeillinie 151. Das Element 150 kann ferner durch Drehen des Ansatzelementes 146b und der zwei Zentralelemente um die Achse B in einem zweiten Drehfreiheitsgrad um die Achse B (und D) gedreht werden, gezeigt durch eine Pfeillinie 152. In alternativen Ausführungsformen ist das lineare Achsenelement ferner umsetzbar mit den Enden der Zentralelemente 148a und 148b verbunden und kann auf diese Weise linear entlang der Momentanachse C verschoben werden, wodurch ein dritter Freiheitsgrad bereitgestellt wird, wie durch Pfeile 153 gezeigt. Die Achse C kann selbstverständlich um eine oder beide Achsen A und B gedreht werden, wenn das Element 150 um diese Achsen gedreht wird. Daneben kann das lineare Achsenelement 150 in einigen Ausführungsformen um die Achse C gedreht werden, wie durch einen Pfeil 155 angedeutet, um einen zusätzlichen Freiheitsgrad bereitzustellen. Diese zusätzlichen Freiheitsgrade können auch mit Messfühlern und Aktuatoren vorgesehen sein, um dem Prozessor 26/Hauptrechner 12 zu erlauben, die Stellung/Bewegung des Gegenstands 34 abzulesen und Kräfte in diesen Freiheitsgraden anzulegen.
  • Die Messfühler 28 und Aktuatoren 30 können an den Verbindungspunkten zwischen den Elementen der Vorrichtung an den Tragrahmenmechanismus 140 gekoppelt sein und eine Ein- und Ausgabe liefern, wie oben beschrieben. Die Messfühler und Aktuatoren können beispielsweise mit den Ansatzelementen 146a und 146b verbunden sein.
  • Der Benutzergegenstand 34 ist mit dem Mechanismus 140 verbunden. Der Benutzer gegenstand 34 kann in beide (oder alle drei oder vier) durch den Tragrahmenmechanismus 140 und das lineare Achsenelement 150 vorgesehenen Freiheitsgrade bewegt werden. Wenn der Gegenstand 34 um die Achse A bewegt wird, verändert die Momentanachse D ihre Position, und wenn der Gegenstand 34 um die Achse B bewegt wird, verändert die Momentanachse E ihre Position.
  • 7 ist eine perspektivische Ansicht einer speziellen Ausführungsform einer Vorrichtung 160 mit dem Tragrahmenmechanismus 140 und anderen Bauteilen der Schnittstellenvorrichtung 14 zur Bereitstellung der mechanischen Eingabe und Ausgabe an das Hauptrechnersystem 12. Die Vorrichtung 160 beinhaltet den Tragrahmenmechanismus 140, Messfühler 141 und Aktuatoren 143. Der Benutzergegenstand 34 ist in dieser Ausführungsform als Joystick mit einem Griffteil 126 gezeigt und ist mit dem Zentralelement 148a verbunden. Die Vorrichtung 160 funktioniert auf weitgehend dieselbe Weise wie der mit Bezug auf 6 beschriebene Tragrahmenmechanismus 140.
  • Der Tragrahmenmechanismus 140 sorgt für die Lagerung der Vorrichtung 160 auf der Stützfläche 142, wie z. B. einer Tischoberseite oder ähnlichen Oberfläche. Die Elemente und Kardangelenke ("Lager") des Tragrahmenmechanismus 140 sind vorzugsweise aus einem leichten, starren, steifen Metall wie Aluminium, können aber auch aus anderen starren Materialien wie anderen Metallen, Kunststoff etc. sein. Der Tragrahmenmechanismus 140 schließt das Grundelement 144, Magnetbandantriebe 164, die Ansatzelemente 146a und 146b, das zentrale Antriebselement 148a und das zentrale Verbindungselement 148b ein. Das Grundelement 144 weist ein Unterteil 166 und vertikale Tragelemente 168 auf. Das Unterteil 166 ist an die Stützfläche 142 angekuppelt. An jede dieser Außenflächen des Unterteils 166 ist ein vertikales Tragelement 168 angekuppelt, so dass die vertikalen Elemente 168 in einer weitgehend 90°-Beziehung zueinander stehen.
  • An jedes vertikale Element 168 ist vorzugsweise ein Magnetbandantrieb 164 angekuppelt. Die Magnetbandantriebe 164 sind in dem Tragrahmenmechanismus 140 enthalten, um einen mechanischen Vorteil bereitzustellen, ohne Reibung und Spiel in das System einzubringen.
  • Das Ansatzelement 146a ist starr an einen Spillwindenbogen 170 angekuppelt und wird bei Rotieren des Spillwindenbogens 170 um die Achse A gedreht. In ähnlicher Weise ist das Ansatzelement 146b starr an den anderen Spillwindenbogen 170 angekuppelt und kann um die Achse B gedreht werden. Das zentrale Antriebselement 148a ist drehbar mit dem Ansatzelement 146a verbunden, und das zentrale Verbindungselement 148b ist drehbar mit einem Ende des Ansatzelementes 146b verbunden. Das zentrale Antriebselement 148a und das zentrale Verbindungselement 148b sind am Drehpol des Tragrahmenmechanismus drehbar miteinander verbunden, welches der Kreuzungspunkt P der Achsen A und B ist. Ein Lager 172 verbindet die beiden Zentralelemente 148a und 148b am Schnittpunkt P miteinander.
  • Der Tragrahmenmechanismus 140 stellt einem am oder nahe am Rotationsmittelpunkt P positionierten Gegenstand 34 zwei Freiheitsgrade zur Verfügung. Ein Gegenstand am Punkt P oder damit verbundener Gegenstand kann um die Achse A sowie B gedreht werden oder eine Kombination der Rotationsbewegung um diese Achsen aufweisen. In alternativen Ausführungsformen kann der Gegenstand 34 auch in anderen Freiheitsgraden gedreht oder verschoben werden, z. B. einem linearen Freiheitsgrad entlang der Achse C oder einem Rotationsfreiheitsgrad um die Achse C.
  • Die Messfühler 141 und Aktuatoren 143 sind vorzugsweise mit dem Tragrahmenmechanismus 140 verbunden, um Ein- und Ausgangssignale zwischen der Vorrichtung 160 und dem Mikroprozessor 26 bereitzustellen. In der beschriebenen Ausführungsform sind die Messfühler 141 und die Aktuatoren 143 in demselben Gehäuse als Basiswandler 174 kombiniert. Die Wandler 174a und 174b sind vorzugsweise zweiseitig wirkende Wandler mit optischen Codeumsetzersensoren 141 und aktiven Gleichstrom-Servomotoren 143. Passive Aktuatoren können ebenfalls verwendet werden. Das Gehäuse jedes Basiswandlers 174a ist vorzugsweise an ein vertikales Tragelement 168 angekuppelt und beinhaltet vorzugsweise sowohl einen Aktuator 143, um den ersten Drehfreiheitsgrad um die Achse A mit Kraft zu versorgen oder andersartig zu beeinflussen, als auch einen Messfühler 141, um die Position des Gegenstands 34 in dem ersten Freiheitsgrad um die Achse A oder die andersartige Beeinflussung davon zu messen. Eine selbst umdrehende Welle des Aktuators 174a ist mit einer Seilscheibe des Magnetbandantriebs 164 verbunden, um die Ein- und Ausgabe entlang dem ersten Freiheitsgrad zu übertragen. Der Basiswandler 174b entspricht in Funktion und Betriebsweise vorzugsweise dem Basiswandler 174a. Der Wandler 174b ist mit dem anderen vertikalen Tragelement 168 verbunden und ist ein Aktuator/Messfühler, der den zweiten Drehfreiheitsgrad um die Achse B beeinflusst oder davon beeinflusst wird.
  • Die Wandler 174a und 174b der beschriebenen Ausführungsform sind vorteilhafterweise so angeordnet, dass sie eine sehr geringe Trägheitsgröße an den Benutzer liefern, der den Gegenstand 34 gebraucht. Der Wandler 174a und der Wandler 174b sind entkoppelt, was bedeutet, dass die Wandler beide direkt mit dem Grundelement 144 verbunden sind, das mit der Bodenfläche 142 verbunden ist, d. h. die Bodenfläche trägt das Gewicht der Wandler, nicht der den Gegenstand 34 gebrauchende Benutzer. Gewicht und Trägheit der Wandler 174a und 174b sind demnach für einen den Gegenstand 34 handhabenden und bewegenden Benutzer weitgehend vernachlässigbar. Dies stellt eine realistischere Anschlussstelle für ein Virtuelle-Realität-System bereit, da der Computer die Wandler so steuern kann, dass sie weitgehend alle vom Benutzer in diesen Bewegungsgraden gespürten Kräfte bereitstellen können. Die Vorrichtung 160 ist ein Kraftrückkoppelungssystem mit großer Bandbreite, was bedeutet, dass zur Steuerung der Wandler 174 Hochfrequenzsignale verwendet werden können und diese Hochfrequenzsignale dann mit hoher Präzision, Genauigkeit und Verlässlichkeit an den Benutzergegenstand angelegt werden. Aufgrund der großen Bandbreite fühlt der Benutzer eine sehr geringe Nachgiebigkeit oder "Schwammigkeit" im Umgang mit dem Gegenstand 34. In typischen Anordnungen von Schnittstellen mit vielen Freiheitsgraden des Standes der Technik, "reitet" dagegen in einer fortlaufenden Kette von Bindegliedern und Aktuatoren ein Aktuator auf einem anderen Aktuator. Diese Anordnung mit geringer Bandbreite bewirkt, dass der Benutzer die Trägheit angeschlossener Aktuatoren bei der Handhabung eines Gegenstands fühlt.
  • Der Gegenstand 34 ist in 3 als Joystick mit einem Griffteil 126 gezeigt, das der Benutzer greifen kann. Ein Benutzer kann den Joystick um die Achsen A und B bewegen. Die Bewegungen in diesen zwei Freiheitsgraden werden von dem Prozessor 26 und dem Hauptrechnersystem 12 erfasst. Kräfte können vorzugsweise in den zwei Freiheitsgraden angelegt werden, um verschiedene haptische Empfindungen nachzuahmen. Wahlweise können andere Gegenstände 34 an den Tragrahmenmechanismus 140 angekuppelt sein, wie oben beschrieben. Beispielsweise können medizinische Instrumente wie laparoskopische Instrumente oder Katheter verwendet werden, um medizinische Prozeduren zu simulieren.
  • 8 ist eine perspektivische Ansicht einer unterschiedlichen Ausführungsform des Gegenstands 34 und Tragmechanismus 180, der in Verbindung mit der Schnittstellenvorrichtung 14 verwendet werden kann. Der Mechanismus 180 schließt eine geschlitzte Jochanordnung zur Verwendung mit Steuerknüppel-Steuereinheiten ein, die Fachleuten auf diesem Gebiet gut bekannt sind. Der Mechanismus 180 schließt ein geschlitztes Joch 182a, ein geschlitztes Joch 182b, Messfühler 184a und 184b, Lager 186a und 186b, Aktuatoren 188a und 188b und einen Joystick 34 ein. Das geschlitzte Joch 182a ist starr mit einer Welle 189a verbunden, die sich an einem Ende des Jochs durch den Messfühler 184a hindurch erstreckt und starr damit verbunden ist. Ähnlich ist das geschlitzte Joch 182a am anderen Ende des Jochs mit einer Welle 189c und dem Lager 186a verbunden. Das geschlitzte Joch 182a ist um eine Achse L drehbar, und diese Bewegung wird vom Messfühler 184a erfasst. Der Aktuator 188a kann ein aktiver oder passiver Aktuator sein. In alternativen Ausführungsformen kann das Lager 186a als noch ein Messfühler wie der Messfühler 184a realisiert sein.
  • In ähnlicher Weise ist das geschlitzte Joch 182b an einem Ende starr mit einer Welle 189b und dem Messfühler 184b und am anderen Ende mit einer Welle 189d und dem Lager 186b verbunden. Das Joch 182b kann um eine Achse M gedreht werden, und diese Bewegung kann vom Messfühler 184b erfasst werden.
  • Der Gegenstand 34 ist ein Steuerknüppel, der an einem Ende 192 schwenkbar an einer Bodenfläche 190 gelagert ist, so dass das andere Ende 194 sich typischerweise in zwei Freiheitsgraden in vier 90°-Richtungen über der Fläche 190 bewegen kann (und zusätzliche Richtungen in anderen Ausführungsformen). Der Steuerknüppel 34 erstreckt sich durch Schlitze 196 und 198 im Joch 182a bzw. 182b. Wenn demzufolge der Steuerknüppel 34 in einer beliebigen Richtung bewegt wird, folgen die Joche 182a und 182b dem Steuerknüppel und drehen sich um die Achsen L und M. Messfühler 184a-d erfassen diese Drehbewegung und können so die Bewegung des Steuerknüppels 34 verfolgen. Die Aktuatoren 188a und 188b lassen den Benutzer die Kraftrückkoppelung bei der Handhabung des Steuerknüppels 34 erleben. Alternativ können andere Arten von Gegenständen 34 anstelle des Steuerknüppels verwendet werden oder zusätzliche Gegenstände mit dem Steuerknüppel verbunden sein. In wieder anderen Ausführungsformen können zusätzliche Freiheitsgrade am Steuerknüppel 34 vorgesehen sein. Beispielsweise kann der Steuerknüppel mit einem Rotationsfreiheitsgrad um eine Achse K versehen sein, wie durch einen Pfeil 193 angedeutet. Auch Messfühler und/oder Aktuatoren können für solche zusätzlichen Freiheitsgrade enthalten sein.
  • In alternativen Ausführungsformen können Aktuatoren mit den Wellen 189e und 189d verbunden sein, um zusätzliche Kraft an den Steuerknüppel 34 bereitzustellen. Der Aktuator 188a und ein mit der Welle 189c verbundener Aktuator können gleichzeitig durch den Mikroprozessor 26 oder Hauptrechner 12 gesteuert werden, um Kraft an den Bügel 182a anzulegen oder davon wegzunehmen. Auf ähnliche Weise können der Aktuator 188b und ein mit der Welle 189d verbundener Aktuator gleichzeitig gesteuert werden.
  • In der Schnittstellenvorrichtung 14 können auch andere Ausführungsformen von Schnittstellenvorrichtungen und Wandlern zur Bereitstellung einer mechanischen Eingabel Ausgabe für den Benutzergegenstand 34 verwendet werden. Zum Beispiel können Schnittstellenvorrichtungen verwendet werden, die dem Benutzergegenstand 34 einen bis drei (oder mehr) lineare Freiheitsgrade zur Verfügung stellen. Daneben können passive Aktuatoren mit einem gewissen "Spiel" vorgesehen sein, um unterschiedliche Spiegelungsprozesse zu implementieren.
  • 9 ist eine Tabelle 300, die eine Reihe von bevorzugten Host-Steuerbefehlen zeigt, die in der Ausführungsform gemäß 5 verwendet werden können, wo der Hauptrechner 12 höhere Host-Steuerbefehle zum örtlichen Mikroprozessor 26 sendet, der örtliche Spiegelungsprozesse oder Spiegelungsprozesse in Übereinstimmung mit den Host-Steuerbefehlen implementiert. Wie zuvor erörtert, können niedrige Datenübertragungsraten auf dem Bus 24 (1) die Leistungsfähigkeit, insbesondere die Genauigkeit und den Realismus der Kraftrückkoppelung behindern. Der örtliche Mikroprozessor kann auf Host-Steuerbefehlen basierende Spiegelungsprozesse unabhängig vom Hauptrechner realisieren, wodurch weniger Signale über den Bus 24 übertragen werden müssen. Vorzugsweise sollte eine Kommunikationssprache bzw. ein Kraftrückkoppelungsprotokoll zur Übertragung von Host-Steuerbefehlen vom Host-Prozessor 16 zum örtlichen Prozessor 26 standardisiert sein. Wie mit Bezug auf 5 erörtert, wird das Format Idealerweise die wirksame Übertragung höherer Kontrollsteuerbefehle (Host-Steuerbefehle) zum örtlichen Prozessor 26 gestatten, wie in Schritt 114 von 5. Durch die Bereitstellung einer relativ kleinen Menge von Befehlen und Befehlsparametern, die in eine Kräftepalette übersetzt werden, verlagert das Format die Rechenlast weiter vom Hauptrechner auf den örtlichen Mikroprozessor 26. Zudem steht einem Programmierer oder Entwickler von Kraftrückkoppelung-Anwendungssoftware für den Hauptrechner 12 ein effizientes höheres Standard-Kraftrückkoppelung-Kommandoprotokoll zur Verfügung.
  • In einer Ausführungsform darf der Host-Steuerbefehl generische Befehlsparameter für eine breite Vielfalt von Kraftmustern einschließen, die vom Mikroprozessor 26 zur Steuerung der Aktuatoren 30 implementiert wurden. Kraftgröße und Kraftrichtung sind z. B. zwei generische Befehlsparameter. Kraftdauer oder Kraftmuster-Anwendungszeit ist ein anderer generischer Befehlsparameter. Es kann auch vorteilhaft sein, noch einen Befehlsparameter für eine andere Eingabevorrichtung 39 zu definieren, wie z. B. einen Knopf. Bei Betätigung kann der Knopf unterschiedliche Kräfte oder Kraftmodelle auslösen.
  • Eine bevorzugte Ausführungsform enthält zwei Primärbetriebsarten oder Operations-"Steuerparadigmen" für die Force-Feedback-Schnittstellenvorrichtung 14: Verhältnissteuerung und Positionssteuerung. Diese Betriebsarten schließen ein Klassifizierungsschema für Host-Steuerbefehle ein, die durch die Befehlsparameter parametrisiert sind. Obwohl der Unterschied zwischen Verhältnissteuerung und Positionssteuerung für den Benutzer während der Interaktion mit einer Anwendung allgemein subtil ist, kann der Unterschied bei der Darstellung von Kraftrückkoppelungsinformationen profund sein. Obwohl bestimmte Kraftrückkoppelungsgebilde unter beiden Steuermodi realisiert werden können, kann die Einteilung der Kraftrückkoppelungsbefehle in zwei Gruppen helfen, Verwirrung bei Programmierern zu vermeiden. Einige der Steuerbefehle können entweder als Verhältnissteuerungs- oder Positionssteuerbefehle verwendet werden.
  • Beispielhafte Kraftrückkoppelungsbefehle in Übereinstimmung mit der vorliegenden Erfindung werden nachstehend noch beschrieben. Die Verhältnissteuerung-Kraftrückkoppelungsbefehle werden zuerst erörtert, gefolgt von den Positionssteuerbefehlen. Selbstverständlich können andere Kraftrückkoppelungsbefehle zusätzlich oder als Alternativen zu den folgenden Muster-Kraftrückkoppelungsbefehlen erstellt werden.
  • Verhältnissteuerung bezieht sich auf eine Benutzergegenstandsabbildung, bei der die Verschiebung des Benutzergegenstands 34 entlang einem oder mehr vorgesehenen Freiheitsgraden zur Bewegung eines kontrollierten computersimulierten Gebildes, wie z. B. ein Flugzeug, Rennwagen oder anderer nachgeahmter "Spieler" oder spielergesteuertes Grafikobjekt, abstrakt abgebildet wird. Verhältnissteuerung ist eine Abstraktion, welche die Kraftrückkoppelung weniger intuitiv macht, weil es keine direkte physische Abbildung zwischen Objektbewegung und befehlsgesteuerter Bewegung des simulierten Computergebildes gibt. Nichtsdestoweniger können viele interessante Kraftrückkoppelungsempfindungen innerhalb Verhältnissteuerparadigmen realisiert werden. Dagegen bezieht sich Positionssteuerung auf eine Benutzergegenstandsabbildung, bei der die Verlagerung des Joystick-Griffs oder anderen benutzermanipulierbaren Gegenstands direkt die Versetzung eines simulierten Computergebildes diktiert, so dass die fundamentale Beziehung zwischen Joystick-Verlagerungen und Computer-Versetzungen vorhanden ist. Somit sind die meisten Verhältnissteuerparadigmen insofern grundlegend verschieden von der Positionssteuerung, als der Benutzergegenstand (Joystick) in einer gegebenen Stellung ruhig gehalten werden kann, aber das kontrollierte Simulationsgebilde mit einer gegebenen befehlsgesteuerten Geschwindigkeit in Bewegung ist, während das Positionssteuerungsparadigma das kontrollierte Gebilde nur in Bewegung sein lässt, wenn der Benutzergegenstand in Bewegung ist. Host-Steuerbefehle zur Positionssteuerung sind weiter unten im Hinblick auf 14 in größerer Einzelheit beschrieben, während Verhältnissteuerbefehle gleich mit Bezug auf 9 beschrieben werden.
  • Eine allgemeine Form der Verhältnissteuerung ist beispielsweise eine geschwindigkeitsabgeleitete Abstraktion, in der die Verlagerung des Benutzergegenstands, wie z. B. eines Joystick-Griffs, eine Geschwindigkeit des simulierten Computergebildes, wie z. B. eines auf dem Anzeigebildschirm 20 angezeigten Fahrzeugs oder anderen Grafikobjektes in einer simulierten Umgebung diktiert. Je weiter der Joystick-Griff von der Ausgangsstellung wegbewegt wird, desto höher wird die Geschwindigkeit des gesteuerten Fahrzeugs oder spielergesteuerten Grafikobjektes. Solche Steuerparadigmen sind sehr beliebt in Computerspielen, wo die Geschwindigkeit eines Raumflugkörpers oder Rennwagens durch die Verlagerung des Joysticks diktiert wird. Wie die meisten Verhältnissteuerparadigmen erlaubt die Geschwindigkeitssteuerung, den Joystick ruhig in einer gegebenen Stellung zu halten, während das kontrollierte Gebilde mit einer gegebenen befehlsgesteuerten Geschwindigkeit in Bewegung ist. Andere übliche Verhältnissteuerparadigmen, die in Computerspielen verwendet werden, sind beschleunigungsgesteuert. Ein beschleunigungsgesteuertes Paradigma wird von Fachleuten auf diesem Gebiet als "Schub"-Steuerung bezeichnet. Während die Geschwindigkeitssteuerung das Tempo des kontrollierten Gebildes diktiert, diktiert die Schubsteuerung die Tempoänderungsgeschwindigkeit. Unter Schubsteuerung kann der Joystick still und mit Nullversetzung zentriert sein und das befehlsgesteuerte Computergebilde dennoch in Bewegung sein.
  • In Kraftrückkoppelungsschemata entsprechen Verhältnissteuerung-Kraftrückkoppelungsbefehle grob Kräften, die auf ein Fahrzeug oder anderes durch die simulierte Umgebung über die Force-Feedback-Schnittstellenvorrichtung 14 gesteuertes simuliertes Gebilde ausgeübt würden. Solche Kräfte werden als fahrzeugzentrische Kräfte bezeichnet. Zum Beispiel kann sich in einem Schubsteuerungsparadigma das simulierte Speedboot eines Benutzers in dicken Schlamm hineinbewegen, aber der Benutzer würde den Schlamm nicht direkt spüren. Der Benutzer würde jedoch die Anstrengung des Speedbootmotors gegenüber einer der Bootsbewegung entgegenwirkenden Kraft fühlen. Diese Gegenkräfte werden über die Schnittstellenvorrichtung 14 zum Benutzer übertragen. Auch andere simulierte Eigenschaften oder Gegenstände in der simulierten Umgebung können eine Wirkung auf das spielergesteuerte simulierte Gebilde haben und auf diese Weise die zum Benutzer abgegebenen Kräfte beeinflussen.
  • Die Verhältnissteuerbefehle sind hierin in "Bedingungen" und "Überlagerungen" unterteilt, obwohl in alternativen Ausführungsformen auch andere Klassifizierungen verwendet werden können. Bedingungen legen ein physikalisches Grundmodell oder Hintergrundempfindungen über den Benutzergegenstand fest, darunter simulierte Steifigkeit, simulierte Dämpfung, simulierte Trägheiten, Totzonenbereiche, wo simulierte Kräfte sich abschwächen, und Richtungszwänge, welche die Funktionalität des physikalischen Modells diktieren. Mehrfachbedingungen können in einem einzigen Steuerbefehl spezifiziert sein, um Bedingungskräfte wirksam zu überlagern. Überlagerungen sind dagegen Kräfte, die zusätzlich zu den Bedingungen im Hintergrund angelegt werden können. Vorzugsweise kann jede beliebige Anzahl von Überlagerungen zusätzlich zu Bedingungskräften vorgesehen sein. Eine Bedingung kann durch einen Bedingungsbefehl oder durch Mehrfachbedingungsbefehle spezifiziert sein.
  • Es werden nun Beschreibungen für einige Arten von Kräften 302 mit Bezug auf Tabelle 300 bereitgestellt, die ausgehend von Host-Steuerbefehlen vom Mikroprozessor 26 implementiert werden können. Zu diesen Kräften gehören Rückstellkraft, Rückstellfeder, Vektorkraft, Vibration, Steuerhebelträgheit, Taumeln, Unstetigkeit, Schaltflächenrückstoß und Sperrkraft. Rückstellkraft, Rückstellfeder, Steuerhebelträgheit und instabile Kräfte werden als Bedingungskräfte angesehen. Vektorkraft, Schwingung, Taumeln, Schaltflächenrückstoß und Sperrkräfte werden als Überlagerungskräfte angesehen.
  • Die in Tabelle 300 gezeigten Kräfte 302 können mit Host-Steuerbefehlen realisiert werden, die vom Hauptrechner 12 zum Mikroprozessor 26 geliefert werden. Beispiele 304 von Host-Steuerbefehlen und ihre Syntax sind in Tabelle 300 für jede Art von Kraft 302 gezeigt. In der beschriebenen Ausführungsform schließen die Host-Steuerbefehle 304 vorzugsweise einen Befehlsteil 306 und eine Reihe von Befehlsparametern 308 ein. Die Steuerbefehle 304 geben die Kraftart an, mit deren Realisierung der Hauptrechner 12 den Prozessor 26 beauftragt. Dieser Befehlsteil kann einen entsprechenden Spiegelungsprozess aufweisen, den der Prozessor 26 aus dem Arbeitsspeicher 27 abrufen und implementieren kann; dieser Prozess ist nachstehend in größerer Einzelheit beschrieben. Die Befehlsteile 306 können in praktisch jeder Form in anderen Ausführungsformen spezifiziert sein; in Tabelle 300 wird ein Steuerbefehl typischerweise in einer höheren Form, fast schon in normaler Sprache [Englisch], bereitgestellt, so dass die Kraftart, die der Steuerbefehl implementiert, von einem Programmierer oder Software-Entwickler leicht erkannt werden kann.
  • Die Befehlsparameter 304 sind Werte oder Indikatoren, die vom Hauptrechner 12 bereitgestellt werden und die im Befehlsteil 304 angegebene Kraftart anpassen und/oder modifizieren. Viele der Steuerbefehle verwenden Größen-, Dauer- oder Richtungsbefehlsparameter. Einige Steuerbefehle schließen einen Stilparameter ein, der oft eine Richtung der Kraft modifiziert. Andere bestimmte Befehlsparameter sind für spezielle Kräfte vorgesehen, wie nachstehend im Einzelnen beschrieben.
  • Bei den folgenden bevorzugten Verhältnissteuerungsausführungen steuern die meisten Befehlsparameter unterschiedliche Kräfte auf dieselbe Art. Der Größenparameter ist ein Prozentsatz einer Höchstgröße entsprechend einer Höchstkraft, welche die Aktuatoren 30 auszugeben imstande sind. Der Dauerparameter entspricht gewöhnlich einem Zeitintervall zum Anlegen des bestimmten Kraftmusters. Er ist jedoch manchmal auf einen vorbestimmten Wert wie 0 oder –1 eingestellt, um die Anwendungszeit des Kraftmusters unbegrenzt zu verlängern. Das Kraftmuster bliebe auf diese Weise gültig, bis der Hauptrechner 12 einen neuen Host-Steuerbefehl mit einer neuen Kraft liefert oder einen Löschbefehl sendet. Der Stilparameter kann eine Richtung auswählen, in der das Kraftmuster anzulegen ist und/oder einen Freiheitsgrad auswählen, entlang dem das Kraftmuster anzulegen ist. Zum Beispiel beinhalten gültige Richtungen gewöhnlich eine der zwei Achsen eines normalen Joysticks oder eine als Kombination aus den beiden bestimmte Diagonale. Selbstverständlich könnte der Stilparameter die Kraftanlegung entlang jedem Freiheitsgrad oder jeder Kombination von Freiheitsgraden bestimmen. Alternativ könnten getrennte Kraftsteuerbefehle für jeden Freiheits- oder Kraftsteuerbefehlsgrad verwendet werden. Der Stilparameter kann abhängig von dem bestimmten befehlsgesteuerten Kraftmuster variieren, wie unten beschrieben.
  • Obwohl nicht in 9 aufgelistet, können alle beschriebenen Arten von Kräften 302 zusätzliche Parameter aufweisen oder andere Eigenschaften in die aufgelisteten Parameter integrieren. Ein "Totzonen"-Parameter könnte eine Größe einer Region spezifizieren, wo eine Kraft klein oder null wäre. Es kann ein Parameter enthalten sein, der angibt, ob eine Kraft zweiseitig oder einseitig entlang einem Freiheitsgrad wirkt. Es sei darauf hingewiesen, dass einseitig gerichtete Kräfte entweder eine positive oder negative Richtung haben können. Bei einigen Host-Steuerbefehlen können der Totzonen- und zweiseitig/einseitig wirkende Parameter im Stilparameter enthalten sein.
  • Eine Unterklasse 310 gibt eine Klassifizierung der Arten von Kräften 302 an. Die Kräfte 302 sind entweder als Bedingungen oder Überlagerungen gezeigt, wie oben erläutert. Die Bedingungsbefehle sind nachstehend vor den Überlagerungsbefehlen beschrieben.
  • 10a-c sind Diagramme zur Darstellung der Kraft/Versetzung-Profile für eine Rückstellkraft. Die Kraft im Diagramm 312 der 10a ist zweiseitig wirkend, wobei die Kraft auf der rechten Seite der Vertikalachse in einer Richtung entlang einem Freiheitsgrad angelegt ist und die Kraft auf der linken Seite der Vertikalachse in der entgegengesetzten Richtung entlang diesem Freiheitsgrad angelegt ist. Die im Diagramm 314 der 10b gezeigte Kraft ist unidirektional. Ob die Kraft einseitig oder zweiseitig gerichtet ist, wird vorzugsweise z. B. mit dem Stilparameter 308 des in Tabelle 300 der 8 gezeigten Steuerbefehls 306 spezifiziert (und bei einseitiger Richtung eine positive oder negative Richtung zur Angabe der bestimmten Richtung). Daneben sind in dem Stilparameter vorzugsweise auch die gewünschten Freiheitsgrade spezifiziert, entlang denen die Rückstellkraft angelegt werden soll. Zum Beispiel könnte ein "X"-Parameter den "X"-Freiheitsgrad angeben, während ein "XY"-Parameter eine Rückstellkraft sowohl entlang dem X- als auch dem Y-Freiheitsgrad angeben kann (z. B. eine diagonale Rückstellkraft).
  • Eine an den Benutzergegenstand 34 angelegte Rückstellkraft zeigt immer entlang einem Freiheitsgrad zurück zu einer Nullpunktstellung O (oder "neutralen Stellung") des Benutzergegenstands. Beispielsweise kann die Nullpunktstellung für einen Joystick die Mittelstellung des Joysticks sein, wie in 7 und 8 gezeigt. Die Größe der Rückstellkraft, spezifiziert durch den Größenbefehlsparameter, bleibt für den Bereich 316 entlang dem Freiheitsgrad des Benutzergegenstands in beiden Richtungen allgemein konstant. Die maximale Kraftgröße F ist vorzugsweise auf ca. 75 % der größtmöglichen Ausgabekraft in dem ausgewählten Freiheitsgrad begrenzt, so dass Stöße und Schwingungen auf das Rückstellungsgefühl aufgelegt werden können (nachstehend beschrieben). Wenn der Gegenstand auf die Nullpunktstellung O zubewegt wird, ist die angelegte Kraft konstant, bis der Benutzergegenstand innerhalb einer eingegrenzten Region R um die Nullpunktstellung bewegt wird. Wenn der Benutzergegenstand in der eingegrenzten Region R ist, fällt die angelegte Kraft rasch auf Null oder einen kleinen Wert. Auf diese Weise liefert das Rückstellkraftprofil ein konstantes "Rückstellungsgefühl", das den Benutzergegenstand zur Nullpunktstellung zurückdrängt, wenn der Gegenstand im Bereich 316 ist. Diese Rückstellkraft vermindert sich dann oder verschwindet, wenn sich der Gegenstand der Nullpunktstellung nähert und sie erreicht. Die Richtung der Rückstellkraft kann durch den örtlichen Mikroprozessor 26 automatisch gesteuert sein.
  • In 10c ist die Rückstellkraft auf ähnliche Weise gezeigt wie die Kraft in 10a, außer dass die angelegte Kraft in einer erweiterten Region 318 um die Nullpunktstellung ungefähr null beträgt. Die Region 318 ist als "Totzone" bekannt und erlaubt dem Benutzer eine gewisse Freiheit, den Gegenstand 34 um einen kurzen Abstand um den Nullpunkt zu bewegen, bevor Kräfte angelegt werden. Die Beschreibung der Totzone 318 für eine angelegte Rückstellkraft kann ein Wert sein, der z. B. als separater Totzonen-Befehlsparameter oder alternativ als Teil des Stilparameters 308 des Rückstellkraft-Host-Steuerbefehls enthalten ist.
  • In einem Verhältnissteuerungsparadigma kann eine Rückstellkraftempfindung beim Steuern eines simulierten Fahrzeugs sehr geschickt auf die Einschlagsituation in eine Wand oder irgendein anderes Hindernis angelegt werden. Die Rückstellkraft gibt einen Widerstand gegen das Anweisen einer Geschwindigkeit in einer Bewegungsrichtung an. Diese Kraft fällt vollständig ab, wenn der Benutzergegenstand auf die Nullpunktstellung zurückgesetzt wird, weil der Benutzer keine Geschwindigkeit in der Bewegungsrichtung mehr anweist. Wenn in der Umkehrrichtung kein Hindernis vorhanden ist, wäre die Rückstellkraft einseitig gerichtet.
  • 11a-11c sind Diagramme zur Darstellung von Kraft/Versetzung-Profilen für eine Rückstellfederkraft. Anstatt eine konstante Größe über ihre positive oder negative Versetzung aufrechtzuerhalten, wie durch die Rückstellkraft gemäß 10a-10c vorgesehen, variiert eine Rückstellfederkraft über einen spürbaren Bereich der Versetzung des Benutzergegenstands linear und ist proportional zum Abstand des Gegenstands 34 von der Nullpunktstellung O. Eine an den Benutzergegenstand angelegte Rückstellfederkraft zeigt immer entlang einem Freiheitsgrad zurück auf die neutrale Stellung. In 11a-11c erreicht die Rückstellfederkraft ihr Maximum bei der maximalen Versetzung des Gegenstands 34 aus der Nullpunktstellung O. Das Diagramm 320 gemäß 11a zeigt den zweiseitigen Fall, und das Diagramm 322 gemäß 11b zeigt den einseitigen Fall. Eine durch einen Totzonenparameter spezifizierte Totzone ist um die Nullpunktstellung vorgesehen, wie im Diagramm 324 gemäß 11c gezeigt.
  • Die Parameter für die Rückstellfederkraft können z. B. weitgehend den Parametern für die Rückstellkraft ähneln, wie oben beschrieben. Alternativ kann die Rückstellfederkraft anstelle eines Größenparameters einen Federkoeffizientparameter aufweisen, um eine gewünschte "Steifigkeit" des Gegenstands 34 zu beschreiben. Der Federkoeffizientparameter kann in hinlänglich bekannten Gleichungen zum Berechnen der Kraft am Benutzergegenstand verwendet werden. Es kann entweder der Koeffizient- oder der Größenparameter verwendet werden.
  • Die träge Kraft erzeugt am Benutzergegenstand 34 eine Dämpfungskraft mit einer Größe proportional zur Geschwindigkeit des Benutzergegenstands, wenn er vom Benutzer bewegt wird. Ein Beispiel dieser Art Dämpfungskraft ist oben hinsichtlich Schritt 82 gemäß 4 beschrieben. Der Grad der "Viskosität" der trägen Kraft kann durch einen als Befehlsparameter im Host-Steuerbefehl enthaltenen Flüssigkeitsdämpfungskoeffizienten spezifiziert sein. Da die träge Steuerhebelkraft direkt von der Geschwindigkeit abhängt, kann der Koeffizientbefehlsparameter als Prozentsatz eines Höchstdämpfungskoeffizienten ausgedrückt werden und ersetzt den Größenparameter zuvor erörterter Host-Steuerbefehle. Der Stilbefehlsparameter für den trägen Host-Steuerbefehl kann die spezifizierten Freiheitsgrade zum Anlegen der trägen Kraft sowie ein Kennzeichen der Einseitigkeit oder Zweiseitigkeit einschließen. Die träge Steuerhebelkraft ist besonders für Verhältnissteuerungsanwendungen geeignet, um die Steuerung beispielsweise eines sehr schweren Fahrzeugs zu simulieren, das schlecht auf die Bewegung des Benutzergegenstands anspricht.
  • Die unstete Kraft erzeugt eine Instabilität im Stil eines umgekehrten Pendels. Alternativ ist die unstete Kraft auf einer Feder mit negativer Federkonstante abgebildet (eine instabile oder divergierende Feder). Eine Kraft ist in einer Richtung weg von der Nullpunktstellung des Gegenstands an den Benutzergegenstand angelegt und wird erhöht, wenn der Benutzergegenstand weiter von der Nullpunktstellung wegbewegt wird. Dies erzeugt eine Kraft, die es dem Benutzer erschwert, den Gegenstand in die Nullpunktstellung zu bringen. Die Befehlsparameter für einen unsteten Host-Steuerbefehl können ähnliche Parameter wie die oben beschriebenen Rückstellkräfte einschließen; z. B. kann ein Befehlsparameter vorgesehen sein, der den Prozentsatz des Höchstgrades der "Instabilität" angeben kann, wobei die Instabilität bezogen auf eine Höchstausgabekraft definiert sein kann. Diese Kraft kann als noch eine fahrzeugbezogene Empfindung verwendet werden und könnte eine Rückstellfederkraft ersetzen, z. B. wenn eine simulierte Fahrzeuglenkungssteuerung defekt ist. Die Instabilität würde ein Computerspiel typischerweise sehr schwer spielbar machen.
  • In alternativen Ausführungsformen können die oben beschriebenen Bedingungskräfte unter Verwendung nur eines Host-Steuerbefehls mit einer Reihe von Parametern befehlsgesteuert sein, um die Merkmale der Bedingungskräfte zu steuern. Zum Beispiel kann ein Host-Steuerbefehl wie z. B. COND_X(K+, K–, DB, B+, B–, N_Offset, Sat+, Sat–, m)vom Hauptrechner 12 zum Mikroprozessor 26 gesendet werden. Dieser Steuerbefehl spezifiziert bestimmte körperliche Parameter eines Modells des Benutzergegenstands in einem Freiheitsgrad. Die Parameter K geben eine proportionale Steifigkeit für Versetzungen des Benutzergegenstands in zwei Richtungen entlang einem Freiheitsgrad an. Der Parameter DB gibt den Totzonenbereich als Prozentsatz eines maximal zulässigen Totzonenabstands an. Die Parameter B geben eine geschwindigkeitsproportionale Dämpfung für die Geschwindigkeit des Benutzergegenstands in zwei Richtungen entlang einem Freiheitsgrad an. Der Parameter N offset kann als Abweichung von der modellierten neutralen Stellung der Federn (definiert durch die Parameter K) spezifiziert werden. Die Sat-Parameter geben den höchsten zulässigen Kraftwert (Sättigung) für Versetzungen des Benutzergegenstands an, ausgedrückt beispielsweise als Prozentsatz der größtmöglichen Kraft. Der Parameter m gibt eine simulierte Masse des Benutzergegenstands an, die in dem physikalischen Modell beispielsweise zum Berechnen der Gravitations- oder Trägheitskräfte am Benutzergegenstand verwendet werden kann. Für jeden vorgesehenen Freiheitsgrad des Benutzergegenstands 34 kann ein Bedingungsbefehl verwendet werden, wie oben vorgesehen; z. B. kann COND_X die Bedingungskräfte in dem Freiheitsgrad um die x-Achse bereitstellen. Der Steuerbefehl kann die Rückstellkraft, Rückstellfederkraft, träge Kraft und unstete Kraft durch Einstellen der verschiedenen Befehlsparameter implementieren.
  • Die Bedingungsbefehle können im Hintergrund vorgesehen sein, während Überlagerungs befehle zusätzlich zu oder "über" den Bedingungskräften angelegt werden. Zum Beispiel kann als Hintergrundkraft für den Benutzergegenstand eine träge Dämpfungskraft vorgesehen sein und eine "Ruck"-Überlagerungskraft über die träge Kraft angewiesen werden, um für ein paar Sekunden eine schnelle, ruckartige Bewegung am Benutzergegenstand bereitzustellen. Selbstverständlich können Überlagerungskräfte auch ausschließlich angelegt werden, wenn gerade keine anderen Kräfte angelegt werden, oder können auf Wunsch andere, zuvor angewiesene Kräfte löschen. Die in 9 gezeigten Beispielsüberlagerungskräfte sind nachstehend beschrieben.
  • 12 ist ein Diagramm 326 zur Darstellung eines Vektorkraftmusters. Eine Vektorkraft ist ein Überlagerungsbefehl und kann somit zusätzlich zu den oben beschriebenen Bedingungskräften angelegt werden. Sie ist eine allgemeine Kraft, die in einer durch einen Richtungsbefehlsparameter spezifizierten gegebenen Richtung an den Joystick angelegt wird. Der Richtungsbefehlsparameter kann z. B. für eine Schnittstellenvorrichtung mit zwei Freiheitsgraden als Winkel in der x/y-Ebene vorgesehen sein. Wie bei vielen der Bedingungskraftbefehle kann die Größe der Vektorkraft als Prozentsatz einer Höchstgröße spezifiziert sein. 12 zeigt eine zweidimensionale Darstellung der Vektorkraft in einer Beispielsrichtung in der x/y-Ebene eines Benutzergegenstands mit zwei Freiheitsgraden.
  • 13a-13b sind Diagramme zur Darstellung der Kraft/Zeit-Profile für eine Schwingungskraft. 13a ist ein Diagramm 328, das eine zweiseitig gerichtete Schwingungskraft zeigt, während 13b ein Diagramm 330 ist, das eine einseitig gerichtete Schwingungskraft zeigt. Der in 9 gezeigte Schwingungsbefehl nimmt Größen-, Frequenz-, Stil-, Richtungs- und Dauer-Befehlsparameter an. Der Frequenzparameter kann als Prozentsatz einer Höchstfrequenz realisiert sein und ist umgekehrt proportional zu einem Zeitabstand einer Zeitspanne TP. Der Richtungsbefehlsparameter kann als Winkel realisiert sein, wie oben mit Bezug auf 12 beschrieben. Der Stilparameter kann angeben, ob die Schwingungskraft einseitig oder zweiseitig gerichtet ist. Daneben kann in alternativen Ausführungsformen ein Einschaltdauerparameter vorgesehen sein, der den Prozentsatz einer Zeitspanne angibt, über welche die Schwingungskraft angelegt wird. Ferner kann ein Befehlsparameter zur Bezeichnung der "Gestalt" oder des Profils der Schwingungswellenform in der Zeitachse enthalten sein, wobei eine aus einer vorbestimmten Anzahl von Gestaltungen ausgewählt werden kann. Zum Beispiel könnte die Kraft als sinusförmige Kraft, sägezahnförmige Kraft, Rechteckwellenformkraft etc. spezifiziert sein.
  • Ein Taumelkraftparadigma ist noch eine Überlagerungskraft, die der Hauptrechner 12 steuern kann. Diese Kraft erzeugt eine zufällige (oder für den Benutzer scheinbar zufällige), unausgeglichene Kraftempfindung am Benutzergegenstand. Zum Beispiel kann damit eine unberechenbare Steuerung für ein beschädigtes Fahrzeug simuliert werden. Größen-, Dauer- und Stilbefehlsparameter können ähnlich sein wie die Parameter für die obigen Host-Steuerbefehle. Der Stilparameter könnte auch eine Taumelkraftart aus einer vorbestimmten Liste unterschiedlicher Typen spezifizieren. Die Taumelkraft kann unter Verwendung vielfältiger Verfahren realisiert werden. Zum Beispiel kann ein im Arbeitsspeicher gespeichertes, vorprogrammiertes "Kraftprofil" implementiert werden, um eine Kraftempfindung zu bewirken, die zufällig erscheint. Oder es kann eine Gleichung verwendet werden, um eine Kraft basierend auf einer Sinuswelle oder anderen Funktion oder einem zufälligen Ergebnis zu berechnen.
  • Die Rüttelstoßkraft ist typischerweise eine kurze Kraft von hoher Stärke, die am Benutzergegenstand ausgegeben wird, und kann z. B. verwendet werden, um den Benutzer von einem Ereignis oder simulierten Objekt in der Computerumgebung in Kenntnis zu setzen. Die Rüttelstoßkraft kann als Überlagerungskraft verwendet werden, die zusätzlich zu allen gültigen Bedingungskräften gefühlt wird. Zu den typischen Parametern zählen die Größe der Kraft des Rucks, die Dauer des Rucks und Richtung(en) oder Grad(e) der Freiheit, in welcher der Ruck angelegt ist, was als Winkel oder bestimmte Freiheitsgrade spezifiziert sein kann. Der Größenbefehlsparameter spezifiziert vorzugsweise die Größe der Rüttelstoßkraft zusätzlich zu (über) jeder anderen Bedingungs- oder Überlagerungskraftgröße, d. h., die Größe ist eine veränderliche Größe "über" den festen Zustandskräften. Auf diese Weise kann die tatsächlich von den Aktuatoren 30 ausgegebene Stärke größer sein als die Rüttelstoßkraftgröße.
  • Die Schaltflächenkraft ist keine tatsächliche Kraft, sondern kann als Steuerbefehl verwendet werden, um andere Kräfte auszulösen, wenn eine Eingabevorrichtung 39 vom Benutzer betätigt wird. In vielen Spielsituationen kann es z. B. vorteilhaft sein, lieber eine Kraft als direkte Antwort auf das Drücken eines Knopfes oder einer anderen Eingabevorrichtung 39 an der Schnittstellenvorrichtung 14 auszulösen, als die Kraft nach Verarbeiten des gedrückten Knopfes auf dem Hauptrechner 12 von einem Host-Steuerbefehl aus zu erzeugen. Die anderen durch das Drücken des Knopfes ausgelösten Kräfte können als Befehlsparameter in dem Schaltflächenbefehl spezifiziert sein; alternativ kann für jede Kraftart ein spezieller Schaltflächenbefehl vorgesehen sein.
  • Zum Beispiel ist eine allgemeine Kraft zur Verwendung in Verbindung mit einem Schaltflächenbefehl die Rüttelstoßkraft. Ein spezieller Steuerbefehl, z. B. KNOPF_RUCK, kann vorgesehen sein, um immer dann eine Rüttelstoßkraft zu bewirken, wenn ein bestimmter Knopf gedrückt wird, und dieser Steuerbefehl schließt Schaltflächen- und Ruck-Befehlsparameter ein. Alternativ kann ein Schaltflächenbefehl mit einem RUCK-Befehlsparameter realisiert sein. Wenn der Knopf-Ruck-Steuerbefehl vom Mikroprozessor 26 erhalten wird, kann der Mikroprozessor eine Schaltflächenprüfung als Hintergrundprozess laufen lassen, bis der Steuerbefehl kommt, den Schaltflächen-Hintergrundprozess zu beenden. Wenn der Mikroprozessor 26 aus den Messfühlerdaten bestimmt, dass der Benutzer einen Knopf gedrückt hat, können somit alle vorhandenen Kräfte, die ausgegeben werden, mit der Rüttelstoßkraft überlagert werden.
  • Der Schaltflächenbefehl bereitet den Mikroprozessor 26 darauf vor, eine Kraft auszugeben, wenn die andere Eingabevorrichtung 39 aktiviert ist. Der Schaltflächenbefehl kann eine Reihe von Befehlsparametern annehmen, darunter z. B. Knopf- und Automatikfeuer-Frequenzparameter (zusätzlich zu irgendwelchen speziellen Befehlsparametern der gewünschten auszugebenden Kraft, wenn der Knopf gedrückt wird). Der Schaltflächenparameter wählt den/die bestimmten Knopf/Knöpfe aus, bei denen der Mikroprozessor 26 dann die Betätigung durch den Benutzer prüft, und welche die gewünschten Kräfte liefern. Zum Beispiel kann ein Joystick vielerlei Knöpfe aufweisen, und der Software-Entwickler möchte vielleicht nur dann eine Kraft bereitstellen, wenn ein bestimmter dieser Knöpfe gedrückt wird. Ein Dauerparameter kann bestimmen, wie lange der Ruck nach Drücken des Knopfes dauert. Der "Automatikfeuer"-Frequenzparameter bezeichnet die Frequenz einer Wiederholungskraft, wenn der Benutzer einen Knopf gedrückt hält. Wenn der Benutzer z. B. einen bestimmten Knopf gedrückt hält, kann der Mikroprozessor eine Rüttelstoßkraft automatisch wiederholen, wenn ein vorbestimmter Zeitabstand vergangen ist, nachdem der Benutzer den Knopf zum ersten Mal gedrückt hat. Der Automatikfeuerparameter kann auch wahlweise bestimmen, ob das Automatikfeuermerkmal gerade für einen bestimmten Knopf und den gewünschten Zeitabstand verwendet wird, bevor die Wiederholungskräfte angelegt werden.
  • Andere nicht in der Tabelle von 9 gezeigte Verhältnissteuerbefehle können ebenfalls realisiert sein. Wenn die Aktuatoren 30 z. B. passive Aktuatoren sind, kann eine "Sperrklinken"-Kraft vorgesehen werden, indem ein Sperrbefehl und entsprechende Befehlsparameter gesendet werden. Dieser Steuerbefehl kann ein Hindernis vortäuschen, das z. B. bewirkt, dass ein benutzergesteuertes Fahrzeug in einem gegebenen Freiheitsgrad belastet wird. Auf diese Weise kann eine Kraft angelegt werden, wenn der Benutzer den Joystick in eine Richtung bewegt, dann wird keine Kraft angelegt, wenn der Benutzer den Joystick in die entgegengesetzte Richtung bewegt, und wieder Kraft angelegt, wenn der Joystick in die ursprüngliche Richtung bewegt wird. Dies simuliert eine Hinderniskraft wie eine Sperrklinke an irgendeinem Rückzugspunkt. Die Stilparameter für einen solchen Steuerbefehl können ein festes Hindernis oder ein Hindernis in Art einer Sperrklinke angeben.
  • Dies schließt die Beschreibung von Verhältnissteuerbefehlen und Kraftmustern ab.
  • 14 ist eine Tabelle 332, die eine Reihe von bevorzugten Host -Steuerbefehlen zur Positionssteuerung zeigt, die in der Ausführungsform gemäß 5 verwendet werden können. "Positionssteuerung" bezieht sich dabei auf eine Abbildung eines Benutzergegenstands, bei der die Versetzung des Joystick-Griffs oder anderen Benutzergegenstands direkt die Versetzung eines computersimulierten Gebildes oder Gegenstands diktiert. Die Abbildung kann einen beliebigen Einteilungsfaktor aufweisen oder sogar nichtlinear sein, aber die Grundbeziehung zwischen Benutzergegenstandsversetzungen und Computer-Objekt- oder -Gebildeversetzungen sollte vorhanden sein. Unter einer Positionssteuerungsabbildung bewegt sich das computergesteuerte Gebilde nicht, außer der Benutzergegenstand ist in Bewegung; ein statischer Benutzergegenstand diktiert dem Mikroprozessor 26 vom Hauptrechner 12 ausgehende Statiksteuerbefehle.
  • Positionssteuerung ist keine gängige Abbildung für herkömmliche Computerspiele, kann aber in anderen Anwendungen, wie z. B. medizinische Verfahren, Simulationen oder grafische Benutzeroberflächen, verwendet werden. Die Positionssteuerung ist eine intuitive und effektive Metapher für Kraftrückkoppelung-Wechselwirkungen, weil sie mehr eine direkte physische Abbildung als ein abstraktes Steuerparadigma ist. Mit anderen Worten, weil der Benutzergegenstand dieselben körperlichen Manipulationen erfährt wie das gerade im Computer gesteuerte Gebilde, ermöglicht die Positionssteuerung, körperliche Computersimulationen direkt als realistische Kraftrückkoppelungsempfindungen zu reflektieren. Beispiele der Positionssteuerung in Computerumgebungen könnten die Steuerung eines Schlägers in einem pingpongartigen Spiel oder die Steuerung eines Cursors in einer Windows-Desktopumgebung sein.
  • In Gegenüberstellung zu den fahrzeugzentrischen Kräften der Verhältnissteuerung entspricht die Positionssteuerung-Kraftrückkoppelung grob Kräften, die direkt vom Benutzer wahrgenommen würden. Diese sind "benutzerzentrische" Kräfte. Zum Beispiel könnte sich eine auf dem Bildschirm 20 angezeigte und direkt von einem Benutzer gesteuerte Schaufel durch nachgeahmten dicken Schlamm bewegen. Über die Force-Feedback-Schnittstellenvorrichtung 14 würde der Benutzer die mit der Bewegung durch eine viskose Lösung verbundene veränderliche Kraft wahrnehmen. Entsprechend der realistischen körperlichen Situation variiert die Kraft mit der Bewegungsgeschwindigkeit des Joysticks (und der angezeigten Schaufel) und Ausrichtung der Schaufelvorderseite.
  • Mit Bezug auf Tabelle 332 werden nun Beschreibungen für einige Arten von Positionssteuerkräften 334 bereitgestellt, die ausgehend von Host-Steuerbefehlen vom Mikroprozessor 26 implementiert werden können. Zu diesen Kräften gehören Vektor, Nut, Divot, Textur, Sperre, Feld, Schläger und Knopfrückstoß. Viele der Beispiele 336 von diesen Kräften entsprechenden Host-Steuerbefehlen verwenden Größen- und Stilparameter, wie mit Bezug auf die Verhältnissteuerparadigmen erörtert. Wie bei den Verhältnissteuerbefehlen haben Befehlsparameter desselben Namens allgemein dieselben Eigenschaften bei unterschiedlichen Host-Steuerbefehlen. Der Dauerparameter wird typischerweise jedoch nicht so sehr für Positionssteuerbefehle wie für Verhältnissteuerbefehle verwendet, weil die Dauer der Positionssteuerkräfte typischerweise abhängig von der momentanen Position des Benutzergegenstands angelegt wird. Die Positionssteuerung-Kraftmuster bleiben somit allgemein gültig, bis der Hauptrechner 12 einen neuen Host-Kraftsteuerbefehl oder einen Löschbefehl ausgibt. In alternativen Ausführungsformen kann ein Dauerparameter verwendet werden.
  • Bevorzugte Parametrisierungen für beschriebene Positionssteuerbefehle sind in 14 zusammengefasst. Alle nachstehend aufgelisteten Kräfte können zusätzliche Befehlsparameter wie Totzonenparameter einschließen oder andere Eigenschaften in die in 14 aufgelisteten Parameter mit aufnehmen. Ähnlich den in 9 gezeigten Host-Steuerbefehlen schließen die Host-Steuerbefehle 336 vorzugsweise einen Befehlsteil 338 und eine Reihe von Befehlsparametern 340 ein. Die Steuerbefehle 336 geben die Kraftart an, zu deren Implementierung der Hauptrechner 12 den Prozessor 26 beauftragt. Dieser Befehlsteil kann einen entsprechenden Spiegelungsprozess aufweisen, den der Prozessor 26 aus dem Arbeitsspeicher 27 abrufen und implementieren kann. Die Befehlsteile 338 können in praktisch jeder Form auch in anderen Ausführungsformen spezifiziert sein.
  • Eine Vektorkraft ist eine allgemeine Kraft mit einer Größe und einer Richtung. Für eine polare Darstellung der Vektorkraft sei auf 12 verwiesen. Die meisten Positionssteuergefühle werden vom Programmierer/Entwickler unter Verwendung eines Vektorkraftbefehls und entsprechender Befehle und Programmierkonstrukte generiert. Ein Dauerparameter wird typischerweise nicht benötigt, weil der Host 12 oder Mikroprozessor 26 die Kraft basierend auf Benutzerobjektbewegungen, nicht Zeit, beenden oder modifizieren kann.
  • 15 ist ein Diagramm 342, das eine Kraft/Versetzung-Beziehung für eine Nutkraft der vorliegenden Erfindung zeigt. Die Nutkraft stellt ein lineares Sperrgefühl entlang einem gegebenen Freiheitsgrad bereit, gezeigt durch Rampen 344. Der Benutzergegenstand fühlt sich an, wie in einer "Nut" gefangen, wobei eine Rückstellkraft entlang dem Freiheitsgrad vorhanden ist, um den Steuerhebel in der Nut zu halten. Diese Rückstellkraftnut ist um eine Mittelnutanordnung C zentriert, die sich am aktuellen Lageort des Benutzergegenstands beim Erhalt des Host-Steuerbefehls befindet. Alternativ kann der Lageort der Mittelnutanordnung ausgehend von einem Befehlsparameter entlang einem oder mehr Freiheitsgraden spezifiziert sein. Wenn der Benutzer versucht, den Benutzergegenstand aus der Nut herauszubewegen, wird somit eine Widerstandskraft angelegt.
  • Der Größen-(Steifigkeits-)Parameter spezifiziert die angelegte Größe der Kraft oder des Widerstands. Wahlweise kann ein "Ausreiß"-Merkmal in dem Nutspiegelungsprozess realisiert sein, wobei die Spurkräfte sich abschalten, wenn der Benutzergegenstand um eine gegebene Ausreißstrecke von der Nut abweicht, wie als Distanz S gezeigt. Auf diese Weise würde der Mikroprozessor 26 einen Nutbefehl mit einer Raststreckengröße erhalten. Wenn der Mikroprozessor erfasst, dass sich der Benutzergegenstand außerhalb dieser Raststrecke bewegt, schaltet er die Spurkräfte ab. Dieses Ausreißmerkmal kann gleich gut dadurch realisiert werden, dass der Hauptrechner 12 einen Löschbefehl zum Abschalten der Kräfte sendet. Ferner kann auch eine Totzone DB vorgesehen sein, um dem Benutzergegenstand eine freie Bewegung nahe der Mittelnutstellung C zu erlauben, spezifiziert mit einem Totzonen-Befehlsparameter. Ein Stilbefehlsparameter gibt die Ausrichtung der Nut entlang einem oder mehr Freiheitsgraden an (z. B. horizontal, vertikal, diagonal). Horizontale und vertikale Nuten können beispielsweise nützlich sein, um Kräfte für Rollbalken in Fenstern bereitzustellen. Ein Benutzer, der einen Cursor in einer grafischen Benutzeroberfläche bewegt, kann Spurkräfte fühlen, die den Cursor und den Benutzergegenstand zur Mitte des Rollbalkens bewegen. Die Totzone gibt dem Benutzer Raum zur Bewegung des Cursors innerhalb der Rollbalkenregion. Die Ausreißstrecke kann verwendet werden, um den Cursor/Benutzergegenstand von Kräften zu befreien, sobald der Cursor aus der Rollbalkenregion herausbewegt wird.
  • Ein Divot besteht im Wesentlichen aus zwei (oder mehr) orthogonalen Nuten, die Rückstellkräfte in mehr als einem Freiheitsgrad bereitstellen. Dies liefert das Gefühl einer Punktsperre entlang einem gegebenen Freiheitsgrad. Wenn das Divot z. B. in zwei Freiheitsgraden vorgesehen ist, dann fühlt sich der Benutzergegenstand an, als ob er in einer ringförmigen Vertiefung gefangen ist. Der Benutzergegenstand ist an einem Punkt gefangen, wo eine Rückstellkraft entlang beiden Achsen vorhanden ist, um den Benutzergegenstand an dem Punkt zu halten. Das Ausreißmerkmal der Nutkraft kann auch für das Divot realisiert sein. Außerdem kann das Totzonen-Merkmal der Nut für den Divotbefehl vorgesehen sein.
  • Eine Texturkraft ahmt eine Oberflächeneigenschaft nach, wie oben mit Bezug auf 4 beschrieben. Eine Textur ist eine räumlich veränderliche Kraft (im Gegensatz zur Schwingung eine zeitveränderliche Kraft), welche die Kraft nachahmt, die zu spüren ist, wenn beispielsweise ein Stock über ein Gitter bewegt wird. Auch andere Arten von Texturen können simuliert werden. Der Benutzergegenstand muss bewegt werden, um die Texturkräfte zu spüren, d. h., jeder "Höcker" des Gitters hat eine bestimmte Position in dem Freiheitsgrad. Die Texturkraft weist mehrere Merkmale auf, die von einem Programmierer/Entwickler unter Verwendung von Host-Steuerbefehl und Befehlsparametern spezifiziert werden können. Diese Befehlsparameter schließen vorzugsweise eine Größe, eine Körnung und eine Ausführung ein. Die Größe spezifiziert die an jedem "Höcker" des Gitters an den Benutzergegenstand angelegte Kraftgröße. Die Körnung ist grundsätzlich der jeweilige Abstand zwischen den Gitterhöckern. Der Stilbefehlsparameter kann eine Ausrichtung der Textur spezifizieren. Die Ausführung kann z. B. ein horizontales Gitter, ein vertikales Gitter oder ein diagonales Gitter (oder eine Überlagerung dieser Gitter) spezifizieren. Des Weiteren kann der Stilparameter festlegen, ob die Textur zweiseitig oder einseitig entlang einem Freiheitsgrad gefühlt wird. Alternativ können zusätzliche Befehlsparameter zur Steuerung der Position der "Höcker" der Texturkraft vorgesehen sein. Zum Beispiel können Informationen enthalten sein, um den Abstand zwischen Höckern zu beauftragen, sich über eine Distanz exponentiell zu verändern oder sich gemäß einer bestimmten Formel zu verändern. Alternativ könnte sich der Texturabstand zufällig verändern. In wieder anderen Ausführungsformen können die Befehlsparameter eines von mehreren verfügbaren Standardtexturmustern spezifizieren, die der Mikroprozessor 26 aus dem Arbeitsspeicher abrufen kann.
  • Bei Erteilung eines Steuerbefehls simuliert eine Sperrkraft eine Wand oder ein anderes an einer Stelle im Benutzerobjektraum platziertes Hindernis und ist oben mit Bezug auf 4 beschrieben. Der Host-Steuerbefehl kann die Härte der Sperre (Größe der angelegten Kraft), den Lageort der Sperre entlang dem Freiheitsgrad und die Raststrecke oder Dicke der Sperre bestimmen. Horizontale Sperren und vertikale Sperren können auf Wunsch als getrennte Host-Steuerbefehle vorgesehen sein. Wie im Diagramm 346 der 16 angedeutet, weist eine Sperrkraft nur eine begrenzte Stärke auf. Die Kraft steigt steil an, wenn der Benutzergegenstand weiter in die Sperre hineinbewegt wird (am Punkt B vorbei). Der Durchbrechabstand definiert die Größe der Region, wo die Sperre vom Benutzer gefühlt wird. Wenn der Benutzergegenstand in eine Sperre hinein- und dann über die Dicke der Sperre hinausbewegt wird, wird die Sperrkraft abgeschaltet. Die Sperrkraft kann als hartes Hindernis wirken, wo der Mikroprozessor die maximale Kraftgröße an den Benutzer gegenstand 34 liefert, oder als Höcker oder weichere Sperre wirken, wo eine kleinere Kraftgröße angelegt wird (wie durch den Größenbefehlsparameter spezifiziert). Die Sperre kann für einen längeren Zeitraum verbleiben, wenn sie nicht aufgehoben oder zu einem neuen Lageort bewegt wird. Ferner können Mehrfachsperren nacheinander entlang einem Freiheitsgrad vorgesehen sein.
  • Alternativ kann die Sperrkraft durch Senden eines Host-Steuerbefehls mit nur zwei Befehlsparametern, Härte und Lageort, bereitgestellt sein. Der Härteparameter kann Höhe und Abfall der Widerstandskraft bestimmen. Wie im Diagramm 348 der 16 gezeigt, kann der Benutzergegenstand sich entlang der Distanzachse von links nach rechts bewegen. Der Benutzergegenstand fühlt eine Widerstandskraft, wenn er an die Sperre am Punkt B stößt. Nachdem der Benutzergegenstand zum Punkt S bewegt worden ist (die Rastdistanz), wird die Kraft in der entgegengesetzten Richtung an den Benutzergegenstand angelegt (eine Kraft mit negativer Größe), die abnimmt, wenn der Benutzergegenstand in derselben Richtung bewegt wird. Dies täuscht einen Höcker oder Hügel vor, wo die Kraft resistiv ist, bis der Benutzergegenstand zur Spitze des Höckers bewegt wird, wo die Kraft zu einer Hilfskraft wird, wenn der Gegenstand auf der anderen Seite des Höckers herunterbewegt wird.
  • Eine kraftfeldartige Kraft zieht den Benutzergegenstand hinsichtlich einer bestimmten Position an oder stößt ihn ab. Diese Kraft kann durch Befehlsparameter, wie z. B. eine Feldgröße und die bestimmte Feld-Nullpunktstellung definiert sein, hinsichtlich derer das Kraftfeld angelegt wird. Zur Anzeige eines Anziehungsfeldes oder eines Abstoßungsfeldes kann ein Richtungsparameter enthalten sein. Zum Beispiel kann das Kraftfeld ein Anziehungsfeld sein, um eine Schwerkraft zwischen der Feld-Nullpunktstellung und einem benutzergesteuerten Cursor oder Grafikobjekt zu simulieren. Obwohl die Feld-Nullpunktstellung als Gravitationsmasse oder elektrische Ladung angesehen werden kann, muss die Anziehungskraft nicht vom Umkehrquadrat der Versetzung aus der bestimmten Position abhängen; zum Beispiel kann die Kraft von einer Umkehrfunktion der Versetzung abhängen. Das Anziehungskraftfeld versucht auch, den Benutzergegenstand an der Feld-Nullpunktstellung zu halten, sobald der Benutzergegenstand in diese Stellung bewegt worden ist. Ein Abstoßungsfeld funktioniert auf ähnliche Weise, nur dass es den Benutzergegenstand von einer bestimmten Feld-Nullpunktstellung wegdrängt. Daneben können Bereiche als zusätzliche Befehlsparameter bestimmt werden, um die Wirkung eines Kraftfeldes auf einen bestimmten Distanzbereich um die Feld-Nullpunktstellung zu begrenzen.
  • 17a-17i sind schematische Illustrationen eines "Schläger"-Computerobjektes 350, das in Wechselwirkung zu einem "Ball"-Computerobjekt oder einem ähnlichen Gegenstand 352 steht. Diese Computerobjekte können vom Hauptrechner 16 auf dem Anzeigebildschirm 20 angezeigt werden. Die Kraftwechselwirkungen zwischen dem Ball und dem Schläger können von einem Software-Entwickler unter Verwendung eines Host-Steuerbefehls gesteuert werden, wie nachstehend erläutert. In dem beschriebenen Beispiel wird das Schlagobjekt 350 von einem Spieler durch ein Positionssteuerungsparadigma derart gesteuert, dass die Bewegung des Schlagobjektes 350 direkt auf die Bewegung des Benutzergegenstands 34 abgebildet wird. In alternativen Ausführungsformen können das Ballobjekt 352 oder beide Gegenstände durch Spieler gesteuert werden.
  • 17a-17h zeigen, wie das Schlagobjekt 350 und ein bewegliches Ballobjekt 352 aufeinander einwirken, wenn das Ballobjekt 352 auf das Schlagobjekt prallt. In 17a trifft der Ball 352 erstmals auf dem Schläger 350 auf. Vorzugsweise wird eine Initialkraft in der entsprechenden Richtung an den Benutzergegenstand 34 angelegt. In 17b und 17c bewegt sich der Ball 352 gerade in den nachgiebigen Schläger bzw. die "Schleuder" hinein. Vorzugsweise wird vom Benutzer über den Benutzergegenstand 34 eine vorgetäuschte Masse des Balles 352 gefühlt, die der simulierten Geschwindigkeit des Balles, der simulierten Nachgiebigkeit des Schlägers und der Festigkeit/Richtung der simulierten Schwerkraft entspricht. Diese Parameter können vorzugsweise unter Verwendung eines Host-Steuerbefehls mit den entsprechenden Parametern festgelegt werden. Zum Beispiel kann der folgende Host-Steuerbefehl verwendet werden:
  • SCHLÄGER
    • (B_mass, B_vel_x, B_vel_y, Schwerkraft, Sinn, Nachgiebigkeit_X, Nachgiebigkeit_Y), wobei der Befehlsparameter B_mass die simulierte Masse des Balles angibt, B_vel_x und B_vel_y die Geschwindigkeit des Balles sind, Schwerkraft die Schwerkraftintensität ist, Sinn die Schwerkraftrichtung ist, und Nachgiebigkeit_X und Nachgiebigkeit_Y die simulierte Nachgiebigkeit oder Steifigkeit des Schlagobjekts 34 sind. Andere Parameter zur Steuerung anderer physikalischer Aspekte der Computerumgebung und Wechselwirkung von Gegenständen können ebenfalls enthalten sein.
  • In 17d hat der Ball einen Punkt höchster Flexibilität des Schlägers 34 erreicht und kann sich nicht mehr in derselben Richtung weiterbewegen. Wie in 17e bis einschließlich 17g gezeigt, wird der Ball aufgrund der Nachgiebigkeit des Schlägers in die entgegengesetzte Richtung getrieben. Zusätzlich kann der Benutzer vorzugsweise Kraft auf den Benutzergegenstand 34 ausüben, um den Ball in eine bestimmte Richtung zu lenken und der Bewegung des Balles noch mehr Geschwindigkeit zu geben. Dies ermöglicht dem Benutzer einen feinen Steuergrad und ermöglicht einen beträchtlichen Einsatz von Geschicklichkeit beim Lenken des Balles in eine gewünschte Richtung. Der Kraftrückkoppelungsschläger ist somit eine verbesserte Komponente für "pingpong"-artige und andere ähnliche Videospiele. Zusätzlich kann sich der Schläger 350 wahlweise auch in die entgegengesetzte Richtung biegen, wie in 17h gezeigt.
  • Ein schematisches Modell der zwischen dem Ball 352 und dem Schläger 350 wirkenden Kräfte ist in 17i gezeigt. Eine durch die Federkonstante K angedeutete Federkraft ist in beiden Freiheitsgraden X und Y vorgesehen, um das Federungsvermögen des Schlägers 350 anzudeuten; g ist eine Schwerkraftrichtung. Daneben ist auch eine durch die Dämpfungskonstante B angedeutete Dämpfungskraft vorgesehen, um den Ball 352 abzubremsen, sobald er den Schläger 350 berührt. Feder- und Dämpfungskraft können auch in einem Freiheitsgrad angelegt werden.
  • Der Schlägersteueralgorithmus ist ein dynamischer Algorithmus, in dem der Mikroprozessor 26 Wechselwirkungskräfte berechnet, während ein Ball den Schläger zusammendrückt und sich dann vom Schläger löst. Der Schlägerbefehl wird vom Hauptrechner 12 gesendet, wenn der Ball den Schläger berührt. Der Schlägerbefehl meldet den Lageort des Balles an den Hauptrechner, so dass der Host die auf dem Anzeigebildschirm 20 angezeigte Grafik während der Interaktionszeit aktualisieren kann. In derzeit bevorzugten Ausführungsformen brauchen die Aktualisierungen nur mit ca. 60 Hz an den Host geliefert werden, weil die meisten Bildschirme 20 nur mit dieser Rate anzeigen können. Die Kräfte sollten jedoch mit ca. 500 Hz oder mehr berechnet und ausgegeben werden, um ein realistisches "Gefühl" für die Wechselwirkung bereitzustellen. Auf diese Weise kann der örtliche Mikroprozessor die Kräfte schnell berechnen und dabei dem Host gelegentlich die Messfühlerablesungen des Schlägers mit einer langsameren Geschwindigkeit mitteilen. Auch andere Arten von Videospiel- oder Simulationsdialogen können auf ähnliche Weise mit einem höheren Host-Steuerbefehl befehlsgesteuert sein. Dies schließt die Beschreibung von Positionssteuerparadigmen ab.
  • Daneben steht dem Host-Computer vorzugsweise ein Löschbefehl zur Verfügung. Dieser Steuerbefehl kann einen Parameter einschließen, der bestimmte Freiheitsgrade spezifiziert und dem Hauptrechner erlaubt, alle Kräfte in den spezifizierten Freiheitsgraden zu löschen. Dies erlaubt die Aufhebung von Kräften, bevor andere Kräfte angelegt werden, falls der Programmierer die Kräfte nicht überlagern möchte.
  • Ferner kann ein Konfigurations-Host-Steuerbefehl vorgesehen sein. Dieser Steuerbefehl kann die Erstinstallation der Schnittstellenvorrichtung 14 vornehmen, um bestimmte Kommunikationsparameter zu erhalten und festzulegen, welche Ein- und Ausgabe dann für eine bestimmte Anwendung verwendet wird; z. B. kann der Hauptrechner den örtlichen Mikroprozessor 26 anweisen, spezifische Informationen an den Hauptrechner zu berichten und wie oft die Informationen zu berichten sind. Zum Beispiel kann der Hauptrechner 12 den Mikroprozessor 26 anweisen, Positionswerte von bestimmten Freiheitsgraden zu berichten, Knopfzustände von bestimmten Knöpfen der Schnittstellenvorrichtung 14 zu berichten und in welchem Maße er Fehler berichten soll, die am Hauptrechner vorkommen. Ein "Informationsanforderungs"-Befehl kann auch vom Hauptrechner 12 zur Schnittstellenvorrichtung 14 gesendet werden, um auf der Schnittstellenvorrichtung 14 zum Zeitpunkt der Herstellung gespeicherte Informationen zu erhalten, wie z. B. Seriennummer, Modellnummer, Typinformation, Kalibrierungsparameter und -informationen, Auflösung von Messfühlerdaten, Auflösung der Kraftsteuerung, Bewegungsbereich entlang vorgesehener Freiheitsgrade etc. Diese Informationen können für den Hauptrechner notwendig sein, damit die Steuerbefehle, die er an den örtlichen Prozessor 26 ausgibt, auf den besonderen Typ der Schnittstellenvorrichtung 14 eingestellt und kundenspezifisch angepasst werden können. Wenn die USB-Datenübertragungsschnittstelle verwendet wird, können andere für diese Schnittstelle notwendige Informationen auf einen Anforderungsbefehl hin an den Host geliefert werden, wie z. B. Verkäuferidentifikation, Geräteklasse und Leistungsmanagementinformationen.
  • Außerdem können die oben beschriebenen Kräfte überlagert werden. Der Hauptrechner kann einen neuen Host-Steuerbefehl senden, während ein vorhergehender Host-Steuerbefehl noch in Kraft ist. Dies ermöglicht die Kombination von an den Benutzergegenstand angelegten Kräften von unterschiedlichen Steuerbefehlen. Der Mikroprozessor 26 oder Hauptrechner kann verhindern, dass bestimmte Steuerbefehle, die widersprüchliche Wirkungen haben, überlagert werden (wie z. B. eine Rückstellkraft und eine Rückstellfeder). Zum Beispiel kann der jüngste gesendete Host-Steuerbefehl vorhergehende Steuerbefehle außer Kraft setzen, wenn diese vorhergehenden Steuerbefehle mit dem neuen Steuerbefehl kollidieren. Oder den widersprechenden Befehlen können Prioritäten zugewiesen werden, und der Steuerbefehl mit der höchsten Priorität hebt die anderen widersprechenden Befehle auf.
  • Es sei darauf hingewiesen, dass die oben beschriebenen höheren Host-Steuerbefehle und Befehlsparameter lediglich Beispiele für die Realisierung der Kräfte der vorliegenden Erfindung sind. Zum Beispiel können Befehlsparameter, die getrennt beschrieben sind, zu Einzelparametern mit unterschiedlichen Abschnitten kombiniert werden. Ferner können die verschiedenen gezeigten Steuerbefehle auf unterschiedliche Arten kombiniert oder getrennt werden, wie oben mit dem Beispiel des Bedingungsbefehls zur Bereitstellung von Mehrfach-Verhältnissteuerung-Bedingungskräften gezeigt.
  • Neben allgemeinen Schnittstellenvorrichtungen mit einem oder zwei rechteckigen oder kugelförmigen Freiheitsgraden, wie z. B. Standard-Joysticks, können andere Schnittstellenvorrichtungen mit drei oder mehr Freiheitsgraden vorgesehen sein. Wenn der dritte Freiheitsgrad um eine Achse entlang dem Steuerhebel selbst verläuft, nennen Fachleute auf diesem Gebiet dies "Spin" oder "Drall." Jedem Freiheitsgrad eines Benutzergegenstands kann sein eigener höherer Host-Steuerbefehl fest zugeordnet sein. Durch unabhängiges Zuordnen höherer Host-Steuerbefehle zu jedem Freiheitsgrad können viele mögliche Kombinationen aus Positionssteuerung, Verhältnissteuerung und anderen abstrakten Abbildungen mit Schnittstellenvorrichtungen realisiert werden.
  • Zum Beispiel könnte ein Computerspiel bei einem normalen Joystick mit zwei Freiheitsgraden dem Joystick die Flugsteuerung eines Raumflugkörpers ermöglichen. Die Vor/zurück-Bewegung des Joystick-Griffs könnte die Schubsteuerung implementieren, um eine Beschleunigung des Raumflugkörpers zu diktieren. Die Links/rechts-Bewegung des Joysticks könnte die Richtungssteuerung implementieren, um eine Winkelgeschwindigkeit der Flugbahn des Raumflugkörpers zu diktieren. Dieses bestimmte Schubrichtungsparadigma ist in aktuellen Spielen besonders beliebt, aber es gibt viele Variationen. Zum Beispiel könnte die Vor/zurück-Bewegung des Joysticks in einem Flugsimulator den Neigungswinkel eines Flugzeugs steuern, während die Links/rechts-Bewegung das Schlingern des Flugzeugs steuern könnte. In einem Fahrspiel könnte die Vor/zurück-Bewegung des Steuerhebels eine Verhältnissteuerungsabbildung auf eine Beschleunigung des Wagens sein, während die Links/rechts-Bewegung eine Positionssteuerungsabbildung auf einen Lageort des Autos über eine Straßenbreite sein könnte.
  • Mehrfach-Steuerparadigmen können auch in einem einzigen Freiheitsgrad gemischt sein. Zum Beispiel kann ein Joystick eine Positionssteuerung für kleine Abweichungen vom Nullpunkt in einem Freiheitsgrad und eine Verhältnissteuerung für große Abweichungen vom Nullpunkt in demselben Freiheitsgrad aufweisen. So ein gemischtes Steuerparadigma kann als Steuerungsparadigma für örtliche Position/globales Verhältnis bezeichnet werden.
  • 18 ist ein Blockdiagramm, das ein Beispiel einer Implementierung 380 des funktionalen Mikroprozessors 26 der vorliegenden Erfindung zur Verarbeitung der Host-Steuerbefehle und Befehlsparameter zum Ausgeben von Kräften an den Benutzergegenstand 34 darstellt. Die Implementierung 380 ist vorzugsweise unter Verwendung von im Arbeitsspeicher 27 gespeicherten Befehlen auf dem Mikroprozessor 26 vorgesehen. Die Verwendung von Programmbefehlen zur Durchführung von Operationen auf einem Mikroprozessor ist Fachleuten auf diesem Gebiet gut bekannt und kann auf einem "computerlesbaren Medium" gespeichert sein. Hierin schließt ein solches Medium beispielsweise den Speicher 27 wie RAM und ROM, Magnetplatten, Magnetband, optisch lesbare Medien wie CD-ROMs, Halbleiterspeicher wie PCMCIA-Steckkarten etc. ein. In jedem Fall kann das Medium die Form einer portablen Einheit annehmen, wie z. B. eine kleine Magnetplatte, Diskette, Cassette etc., oder es kann die Form einer im Verhältnis größeren oder immobilen Einheit annehmen, wie z. B. ein Festplattenlaufwerk. Vorzugsweise laufen verschiedene Unterprozesse 382, 384, 386, 387 und 388 parallel auf dem Mikroprozessor 26, um die Ansprechbarkeit der Force-Feedback-Schnittstellenvorrichtung 14 zu optimieren. Diese Prozesse werden hierin auch als "Prozessoren" bezeichnet. In einer bevorzugten Ausführungsform werden verschiedene Parameter und Daten von den Unterprozessen der Implementierung 380 gemeinsam benutzt.
  • Durch die ganze folgende Erörterung der Implementierung 380 hindurch können Parametermengen oder Parameterseiten gespeichert sein, um die Berechnung und Anlegung von Kräften zu beschleunigen. Dabei werden Parametermengen als synonym mit Parameterseiten angesehen. Anstatt Host-Steuerbefehle und Befehlsparameter (und/oder andere Parameter) zu lesen, speichern und anzuwenden, sobald der Steuerbefehl erhalten wird, können alle oder einige der Steuerbefehle und Parameter, die eine Kraftumgebung definieren, in im Arbeitsspeicher 27 gespeicherte Parameterseiten gespeichert und eingeordnet werden. Diese Kraftumgebung kann bestimmte Kräfte beschreiben, die schnell von der Parameterseite abgelesen werden können. Wenn die entsprechende Kraftumgebung vom Hauptrechner benötigt wird, kann der Mikroprozessor die Parameterseite aus dem Arbeitsspeicher abrufen. Wie bei der Seitenüberlagerung in Bildanzeigesystemen könnte die Implementierung 380 dann aktive Seiten für eine aktuelle Kraftumgebung und "verborgene" Seiten für Steuerbefehl-/Parametermengen im Aufbauzustand verwenden. Daneben können voreingestellte oder festgelegte Kraftumgebungen abgerufen werden, die standardisierte Kraftumgebungen sind, die mit der Schnittstellenvorrichtung 14 vorgesehen sind oder vom Hauptrechner auf die Schnittstellenvorrichtung 14 geladen werden können. In der bevorzugten Ausführungsform würde eine gespeicherte Parameterseite Kraftparameter und Reportparameter einschließen, die interne Mikroprozessorparameter sind, die aus dem Host-Steuerbefehl und Befehlsparametern abgeleitet werden und nachstehend erörtert werden.
  • Ein Host-Kommunikations- und -Hintergrundprozess 382 erhält die Kommunikation zwischen dem Mikroprozessor 26 und dem Hauptrechner 12 aufrecht. Der Host-Kommunikations- und -Hintergrundprozess 382 empfängt höhere Host-Steuerbefehle und Befehlsparameter vom Host 12 und sendet diese Daten zu einem Steuerbefehlsprozess 384. Der Prozess 382 erhält ferner Messfühlerdaten von einem nachstehend beschriebenen Meldeprozess 387. Der Prozess 382 überträgt vom Prozess 387 erhaltene Informationen direkt zum Host 12. Im Wesentlichen fungiert der Prozess 382 als Kommunikations-"Schalttafel" zwischen dem Mikroprozessor 26 und dem Hauptrechner 12. Vorzugsweise verwaltet der Prozess 382 (oder Prozess 384) einen Eingabepuffer am Mikroprozessor 26, der zum Puffern eingehender Steuerbefehle und Daten vom Hauptrechner 12 verwendet wird. Der Eingabepuffer ist insbesondere in Ausführungsformen nützlich, welche die USB-Schnittstelle und andere Schnittstellen mit hohen Kommunikationsraten enthalten.
  • Der Steuerbefehlsprozess 384 verarbeitet vom Host 12 eingehende und über den Host-Kommunikations- und -Hintergrundprozess 382 übertragene höhere Host-Steuerbefehle und Befehlsparameter. Basierend auf den eingehenden Steuerbefehlen setzt der Steuerbefehlsprozess 384 Reportparameter und Kraftrückkoppelung-Steuerparameter. Diese Arten von Parametern sind interne Parameter des Mikroprozessors 26 und von den Befehlsparametern 308 zu unterscheiden, die in einem vom Host gesendeten höheren Host-Steuerbefehl enthalten sind. Die internen Parameter werden aus den Befehlsparametern abgeleitet und können in einigen Fällen mit den Befehlsparametern identisch sein, wie nachstehend erläutert.
  • Die Reportparameter sind interne Parameter, die dem Mikroprozessor 26 verdeutlichen, welche bestimmten Daten und mit welcher Rate dem Hauptrechner 12 zu melden sind. Die Reportparameter können z. B. genau angeben, ob Positionen oder Geschwindigkeiten des Benutzergegenstands 34 für bestimmte Freiheitsgrade zu melden sind, eine Datenübertragungsgeschwindigkeit spezifizieren, oder ob und auf welche Weise Fehler gemeldet werden. Die Reportparameter werden aus den vom Hauptrechner 12 erhaltenen Konfigurationsbefehlen abgeleitet und zum Statusaktualisierungsprozess 386 und Meldeprozess 387 geliefert, so dass der Prozess 387 weiß, welche Informationen dem Hauptrechner 12 über den Host-Kommunikations- und -Hintergrundprozess 382 mitzuteilen sind.
  • Kraftrückkoppelung-Steuerparameter ("Kraftparameter") sind interne Parameter, die durch den Steuerbefehlsprozess 384 bereitgestellt oder aktualisiert werden und vom Kraftalgorithmusberechnungs- und Aktuatorsteuerprozess 388 verwendet werden. Die Kraftparameter werden aus den Befehlsparametern 308 abgeleitet, die in dem erhaltenen Host-Steuerbefehl enthalten sind. Der Steuerbefehlsprozess 384 prüft die Befehlsparameter und aktualisiert die internen Kraftparameter, so dass die anderen Prozesse 388 und 386 auf die jüngsten Kraftparameter zugreifen können. Dieser durch den Prozess 384 implementierte Prozess des Bereitstellens/Aktualisierens von Kraftparametern ist nachstehend mit Bezug auf 19 beschrieben.
  • Der Statusaktualisierungsprozess 386 empfängt Reportparameter vom Steuerbefehlsprozess 384. Basierend auf den erhaltenen Parametern liest der Prozess 386 die Messfühler 28 und den Taktgeber 29 ab und speichert Sensorablesungshistorien und Takthistorien. Abgeleitet aus Sensorpositionsdaten kann der Prozess 386 auch Werte wie Geschwindigkeit oder Beschleunigungswerte, die Sensordatenhistorien, Taktdaten oder Kombinationen aus diesen Daten berechnen. Hierbei bezieht sich der Ausdruck "Sensordaten" bzw. "Messfühlerdaten" sowohl auf direkt von den Messfühlern erhaltene Daten (Messfühlerablesungen) als auch/oder von den Messfühlerablesungen, einschließlich der Historien von Messfühlerdaten, abgeleitete Werte. "Taktdaten" oder "Zeitdaten" bezieht sich auf spezifische Werte, die für eine Zeitspanne stehen, einschließlich der Historien von Taktdaten. Regelmäßig wiederkehrend liest der Meldeprozess 387 gelieferte und vom Prozess 386 gespeicherte Daten (oder der Prozess 386 könnte die Daten direkt zum Prozess 387 senden). Die Messfühler- und Taktdaten werden auch zu einem Kraftalgorithmusberechnungs- und Aktuatorsteuerprozess 388"gesendet". Der Ausdruck "gesendet" oder "empfangen" bezieht sich hierin auf einen Prozess, der Daten liefert, die ein anderer Prozess am Ende empfängt. Die tatsächliche Implementierung zum Senden und Empfangen von Daten zwischen Prozessen kann in unterschiedlichen Ausführungsformen variieren. Zum Beispiel kann der Sendeprozess berechnete Daten im Arbeitsspeicher speichern, und der Empfangsprozess kann die Daten mit seiner eigenen Rate aus dem Arbeitsspeicher abrufen.
  • Der Meldeprozess 387 empfängt Messfühlerdaten vom Statusaktualisierungsprozess 386 und meldet diese Daten dem Hauptrechner 12 zu passenden Zeiten oder auf den Erhalt einer Anfrage vom Host 12 über den Hintergrundprozess 382. Reportparameter werden dem Prozess 387 vom Steuerbefehlsprozess 384 gesendet. Daneben können allgemeine Status- und Fehlerinformationen vom Kraftberechnungsprozess 388 zum Meldeprozess 387 gesendet werden. Der vom Meldeprozess 387 ausgeführte Prozess ist im Hinblick auf 21 in größerer Einzelheit beschrieben. In alternativen Ausführungsformen kann der Meldeprozess 387 mit dem Hintergrundprozess 382 vermischt sein, beispielsweise wenn dem Host Daten mit einer regelmäßigen Rate gemeldet werden (im "Streaming"-Betrieb).
  • Der Kraftalgorithmusberechnungs- und Aktuatorsteuerprozess 388 verwendet Kraftparameter und Messfühlerdaten von dem Steuerbefehlsprozess 384 und dem Statusaktualisierungsprozess 386 zur Berechnung von an den Benutzergegenstand 34 anzulegenden Kräften. Die Kraftparameter werden von Befehlsparametern abgeleitet, die verschiedene Kraftmuster kennzeichnen, wie oben im Einzelnen beschrieben. Der Prozess 388 berechnet eine resultierende Kraft zum Anlegen an die Aktuatoren 30, indem er die Wirkungen aller in Kraft befindlichen Kraftmuster kombiniert.
  • Es sei besonders betont, dass die Prozesse 382, 384, 386, 387 und 388 innerhalb der Implementierung 380 in 18 vorzugsweise parallel auf dem Mikroprozessor 26 laufen, z. B. unter Verwendung einer Multitaskingbetriebsumgebung. Würden alle diese Prozesse sequenziell ablaufen, würde dies die Kraftrückkoppelungsreaktion auf die Benutzermanipulation des Benutzergegenstands 34 dramatisch verlangsamen.
  • Die in 18 gezeigte Implementierung 380 ist als Beispiel für eine Art gedacht, die verschiedenen Unterprozesse des Mikroprozessors 26 in logische Abteilungen zu unterteilen. In anderen Ausführungsformen können verschiedene andere Implementierungen vorgesehen sein, um einige oder alle der beschriebenen Funktionen des Mikroprozessors 26 zu verbinden oder zu trennen.
  • 19 ist ein Ablaufdiagramm, das den Steuerbefehlsprozess 382 gemäß 18 in größerer Einzelheit darstellt, und beginnt bei 390. Zuerst wird der Hauptrechner in Schritt 391 eine Datenübertragungsverbindung mit der Schnittstellenvorrichtung 14 erstellen. Dies kann durch Senden eines vorbestimmten Signals oder einer Information erreicht werden, auf deren Erhalt die Schnittstellenvorrichtung wartet. Die Schnittstellenvorrichtung kann dann ein Antwortsignal senden, um darauf hinzuweisen, dass sie zum Empfang von Befehlen bereit ist. Wenn die USB-Datenübertragungsschnittstelle verwendet wird, fordert der Steuerbefehlsprozess 382 vorzugsweise eine USB-Adresse vom Host an, die der Prozessor 382 dann empfängt und speichert. Immer wenn dann ein Datenpaket von dem Host gesendet wird, kann die Kommandodatei 384 die Adresse des Datenpakets überprüfen und sie mit der gespeicherten Adresse vergleichen, um zu bestimmen, ob das Paket für den Mikroprozessor 26 bestimmt ist.
  • Wenn der USB realisiert wird, kann die Kommandodatei 384 außerdem das USB-Kommunikationsprotokoll auf Daten überprüfen, und der Meldeprozessor 387 kann die Daten in diesem Protokoll aussenden. Dieses Protokoll schließt ein Token-Paket [Ringnetz-Sendezeichenpaket] ein, gefolgt von einem Datenpaket, dem ein Handshake-Paket [Quittungspaket] folgt, wie Fachleuten auf diesem Gebiet hinlänglich bekannt ist. Die Host-Steuerbefehle können in den Datenpaketen chiffriert sein.
  • Im nächsten Schritt 392 kann der Hauptrechner 12 die Merkmale der Schnittstellen vorrichtung 14 anfordern, so dass entsprechende Kraftrückkoppelungsbefehle, die für die bestimmte Schnittstellenvorrichtung geeignet sind, vom Hauptrechner bereitgestellt werden können. Zu diesen Merkmalen können z. B. die Seriennummer, die Modellnummer, der Typ, die Anzahl der vorgesehenen Freiheitsgrade des Benutzergegenstands 34, die Kalibrierungsparameter und die Melderate der Schnittstellenvorrichtung gehören. Nach dem Erhalt einer Anfrage für solche Informationen vom Hauptrechner 12, wie z. B. einem "Informationsanforderungs"-Steuerbefehl, sendet der Mikroprozessor 26 in Schritt 392 die Informationen zum Hauptrechner 12. Der Hauptrechner würde diese Merkmale normalerweise nur beim Anschalten oder zu Beginn der Kraftrückkoppelungsimplementierung anfordern.
  • Im nächsten Schritt 394 empfängt der Mikroprozessor 26 Konfigurationsbefehle vom Hauptrechner 12 und setzt entsprechende Reportparameter. Wie oben erwähnt, können die Reportparameter bestimmen, ob solche Informationen als Messfühlerdaten, was Messfühlerablesungen, aus Messfühlerablesungen berechnete Werte und/oder Messfühler-"Historien" (d. h. eine Reihe von zuvor aufgezeichneten oder berechneten Messfühlerwerten) einschließt, oder Taktgeber-Zeitwerte vom Statusaktualisierungsprozess 386 zum Hauptrechner 12 gesendet werden. Die Messfühlerdaten können einschließen: Sensorfehlerdaten, Historien von Daten, die beschreiben, welche Knöpfe an der Schnittstellenvorrichtung gedrückt wurden, Positionen, Geschwindigkeiten und/oder Beschleunigungen des Benutzergegenstands, Daten, von denen Freiheitsgrade an den Hauptrechner gemeldet werden, und ob dem Hauptrechner Daten in einem Anfrage- oder Streaming-Betrieb gemeldet werden. Diese Konfigurationsoptionen erlauben dem Programmierer vorzubereiten, welche Daten der Hauptrechner von dem örtlichen Mikroprozessor erhalten wird. Wenn z. B. eine Anwendung Positionsdaten des Benutzergegenstands in nur einem von zwei vorgesehenen Freiheitsgraden erfordert, dann ist es eine Verschwendung von Verarbeitungszeit für den Mikroprozessor, Informationen über den ungenutzten Freiheitsgrad an den Hauptrechner zu senden. Der Programmierer kann Reportparameter mit Konfigurationsbefehlen setzen, um nur die notwendigen Daten zum Hauptrechner zu senden.
  • Im nächsten Schritt 396 überprüft der Prozess, ob ein Host-Steuerbefehl erhalten wurde. Falls nicht, durchläuft der Schritt 396 kontinuierlich eine Schleife, bis ein Host-Steuerbefehl erhalten wird. Danach wird Schritt 398 implementiert, in dem der Prozess bestimmt, ob der/die erhaltene/n Steuerbefehl/e ein Konfigurationsbefehl ist/sind. Ein Konfigurationsbefehl setzt die Reportparameter, wie oben beschrieben. Wenn der Steuerbefehl ein Konfigurationsbefehl ist, setzt Schritt 400 entsprechende Reportparameter und/oder setzt den Reportparameter zurück, um während des Betriebs der Schnittstellenvorrichtung eine neue Konfiguration bereitzustellen. Wenn Schritt 398 bestimmt, dass der erhaltene Steuerbefehl kein Konfigurationsbefehl ist, dann hat Schritt 398 einen Kraftbefehl erfasst, der die Kraftrückkoppelungsfunktionalität der Schnittstellenvorrichtung 14 steuert. Zu den Kraftsteuerbefehlen gehören auch diejenigen Host-Steuerbefehle, die Befehlsparameter liefern, welche die internen Kraftparameter beeinflussen (z. B. die in 9 und 14 gezeigten Host-Steuerbefehle).
  • In Schritt 402 setzen die Kraftsteuerbefehle und Befehlsparameter Kraftparameter, wie z. B. diejenigen, die spezifisch für die Realisierung eines durch den Kraftsteuerbefehl spezifizierten, bestimmten Kraftparadigmas oder -modells sind. Der Prozess 388 greift auf diese Kraftparameter im Arbeitsspeicher zu, um unter Verwendung der Aktuatoren 30 Kräfte anzulegen, wie mit Bezug auf 22 beschrieben. Als Beispiel können Kraftsteuerbefehl und Kraftparameter bestimmte Knöpfe an der Schnittstellenvorrichtung 14 auswählen und jedem ausgewählten Knopf ein Stoßkraftmuster zuweisen. Wenn ein Benutzer dann einen ausgewählten Knopf drückt, würde wiederum der dem gedrückten Knopf zugewiesene Ruck unter Verwendung der derzeit im Arbeitsspeicher befindlichen Kraftparameter aktiviert, egal welche dies sind. Ein Beispiel der Kraftparameter ist nachstehend mit Bezug auf 23 beschrieben. Nach Setzen der Kraftparameter überträgt Schritt 402 dann die Steuerung wieder zurück zu Schritt 396, um auf den Erhalt eines anderen Host-Steuerbefehls zu warten.
  • Daneben sucht/empfängt der Prozess 384 in der bevorzugten Ausführungsform nach einem vorbestimmten Zeitabstand auch regelmäßig ein "Herzschlag"-Signal vom Hauptrechner 12. Dieses Signal wäre eine Sicherheitsüberprüfung zur Anzeige, dass der Hauptrechner noch an die Schnittstellenvorrichtung 14 angeschlossen ist und dass der Host einen "OK"-Status hat. Falls kein Herzschlagsignal innerhalb des Zeitintervalls erhalten wird, kann die Schnittstellenvorrichtung 14 abschalten und auf einen Initialisierungsbefehl vom Host warten. Das "Herzschlag"-Signal kann ein normales Signal oder ein Host-Steuerbefehl sein oder ein spezifisch als Herzschlagsignal verwendetes Signal sein, das der Hauptrechner senden kann, wenn innerhalb des Zeitabstands keine anderen Signale gesendet worden sind. Nachdem ein Signal in Schritt 396 erhalten worden ist, speichert der Prozess 384 vorzugsweise den Zeitpunkt, zu dem das Signal an einer bestimmten Speicherstelle erhalten wurde. Der Prozess 388 kann diese Zeit prüfen, um zu bestimmen, ob das Intervall überschritten wurde (nachstehend beschrieben).
  • 20 ist ein Ablaufdiagramm, das den Statusaktualisierungsprozess 386 gemäß 18 beginnend bei einem Schritt 410 darstellt. In Schritt 412 prüft der Prozess 386 vom Steuerbefehlsprozess 384 gesetzte Report- und Kraftparameter. Vorzugsweise prüft der Prozess 386 die Report- und Statusparameter im Arbeitsspeicher 17, die durch den Steuerbefehlsprozess 384 aktualisiert worden sind. Sowohl vom Report- als auch vom Kraftparameter ausgehend bestimmt Schritt 414, welche Messfühler dann abgelesen werden. Die Kraftparameter bestimmen, welche Messfühlerdaten notwendig sind, damit der Prozess 388 eine Kraft berechnen kann. Wenn die Kraftparameter beispielsweise bestimmen, dass eine Kraft um die x-Achse und nicht die y-Achse berechnet werden muss, dann werden die Messfühlerdaten von den y-Achsen-Messfühlern zur Kräfteberechnung nicht benötigt. Die Reportparameter bestimmen, welche Messfühlerdaten dem Hauptrechner gemeldet werden sollen. Somit können die Reportparameter auch bestimmen, dass y-Achsen-Messfühlerdaten nicht zum Hauptrechner gesendet werden müssen, weil der Hauptrechner diese bestimmten Daten ignoriert. Da die y-Achsen-Daten somit weder zur Berechnung einer Kraft verwendet noch vom Host 12 benötigt werden, bestimmt der Mikroprozessor 26 in Schritt 414, die y-Achsen-Messfühler nicht abzulesen.
  • Schritt 416 bestimmt, ob Geschwindigkeit und/oder Beschleunigung immer berechnet werden. Das Ergebnis dieses Schritts hängt von der bestimmten Ausführungsform ab, die realisiert ist. In manchen Ausführungsformen kann es einfacher sein und weniger Verarbeitungszeit erfordern, wenn Geschwindigkeits- und/oder Beschleunigungsdaten immer berechnet werden, ungeachtet dessen, ob die Geschwindigkeits-/Beschleunigungsdaten benötigt werden, um Kräfte zu berechnen oder zum Host 12 gesendet zu werden. In anderen Ausführungsformen können die Geschwindigkeits-/Beschleunigungsdaten nur berechnet werden, wenn solche Daten zum Berechnen von Kraftwerten notwendig sind oder der Host 12 diese Werte benötigt. In wieder anderen Ausführungsformen kann der Modus ("immer berechnen" oder "nur im Bedarfsfall berechnen") abhängig von der bestimmten Anwendung oder anderen Rahmenbedingung festgelegt sein.
  • In einer Ausführungsform, bei der Geschwindigkeit und Beschleunigung immer berechnet werden, wird Schritt 418 ausgeführt, in dem die Geschwindigkeits- und/oder Beschleunigungswerte unter Verwendung von Messfühlerablesungen und Taktdaten berechnet werden. Zum Beispiel kann eine Historie aufgezeichneter Positionswerte und zugehöriger Zeitabstände zur Kalkulation der Geschwindigkeit verwendet werden. Danach geht der Prozess weiter zu Schritt 422. Falls keine solche Ausführungsform verwendet wird, dann berechnet Schritt 420 die Geschwindigkeits- und/oder Beschleunigungswerte nur, falls zweckdienlich. Der Prozess 386 kann die Kraftparameter und Reportparameter auf ähnliche Weise wie in Schritt 414 prüfen, um zu bestimmen, ob Geschwindigkeits- und/oder Beschleunigungswerte berechnet werden sollten.
  • Nach Schritt 418 oder 420 wird Schritt 422 durchgeführt, in dem der Prozess 386 die von den Messfühlern 28, dem Taktgeber 29 und in Schritt 418 oder 420 berechneten Messfühlerdaten und Taktdaten im Arbeitsspeicher 27 speichert. Die Messfühlerdaten und Taktdaten können auch Daten einschließen, die zu anderen Eingabevorrichtungen 39 gehören, z. B. ob ein Knopf gedrückt worden ist (Messfühlerdaten) und wie lange ein Knopf an der Schnittstellenvorrichtung 14 gedrückt worden ist (Taktdaten), so dass zur richtigen Zeit ein Knopfwiederholungs- oder Knopfhalte-("Automatikfeuer"-)Merkmal aktiviert werden kann. Wie oben erwähnt, teilt sich der Prozess 386 vorzugsweise die Verarbeitungszeit mit dem Mikroprozessor 26, weil mehrere Prozesse parallel ablaufen (Multitaskbetrieb). In diesem Fall kann der Prozess 386 bei Schritt 424 warten müssen, bis der Mikroprozessor 26 verfügbar ist, oder einem anderen wartenden Prozess absichtlich erlauben, den Mikroprozessor 26 zu benutzen. Daneben kann der Warteschritt erforderlich sein, um Ausgabedaten in einer übereinstimmenden oder langsameren Zeit in den Arbeitsspeicher 27 zu schreiben, um dem Kraftberechnungsprozess 388 eine größere Flexibilität beim Lesen der Ausgabedaten von dem Arbeitsspeicher zu ermöglichen.
  • 21 ist ein Ablaufdiagramm, das den Meldeprozess 387 gemäß 18 zum Melden von Daten an den Hauptrechner beginnend bei einem Schritt 430 darstellt. Schritt 432 bestimmt, ob der Meldevorgang im Abfrage- oder Streaming-Betrieb erfolgt, wie durch die vom Steuerbefehlsprozess 384 gesetzten Reportparameter spezifiziert. In dieser Erörterung verwendet der Abfragebetrieb ein asynchrones Berichtsverfahren basierend auf Informationsanforderungen vom Hauptrechner, und der Streaming-Betrieb verwendet ein synchrones Berichtsverfahren basierend auf vorbestimmten Zeitabständen.
  • Im Frageberichtsmodus bestimmt Schritt 434, ob eine Anfrage für einen Report vom Hauptrechner 12 erhalten wurde. Die Anforderung kann direkt vom Meldeprozess 387 erhalten werden, oder die Anforderung kann alternativ über den Steuerbefehlsprozess 384 zum Meldeprozess 387 übertragen werden. Wenn die Anforderung erhalten wird, meldet Schritt 436 (d. h. er sendet aus) dem Host in Schritt 422 in 20 gespeicherte Messfühlerdaten und Taktdaten sowie Fehlerinformationen und Kraftwerte vom Prozess 388. Die bestimmten ausgesendeten Daten hängen von den durch die Konfigurationsbefehle spezifizierten Reportparametern und die vom Host erhaltene Anforderung ab. Zum Beispiel kann der Host 12 in einigen Ausführungsformen in der Lage sein, bestimmte Informationen anzufordern. Der Prozess kehrt dann zu Schritt 432 zurück, um zu bestimmen, ob gerade der Abfrage- oder der Streaming-Betrieb verwendet wird. So können in der beschriebenen Ausführungsform die Betriebsarten während der Datenübertragung jederzeit umgeschaltet werden. In alternativen Ausführungsformen kann ein bestimmter Reportmodus die einzig verfügbare Option sein. Alternativ können beide Betriebsarten verfügbar sein, aber sobald ein Modus zu Beginn des Betriebs der Schnittstellenvorrichtung 14 ausgewählt wird, dieser Modus nicht mehr umgeschaltet werden.
  • Im Streamerreportmodus bestimmt Schritt 438, ob die Reportzeitspanne abgelaufen ist. Vorzugsweise wird eine Standard-Reportzeitspanne festgelegt, wenn die Schnittstellenvorrichtung und der Hauptrechner 12 zum ersten Mal installiert werden. Wenn die Zeitspanne abgelaufen ist, meldet Schritt 440 in Übereinstimmung mit den Reportparametern in Schritt 422 in 20 gespeicherte Daten. Falls die Zeit nicht abgelaufen ist, kehrt der Prozess zu Schritt 432 zurück, um den Reportmodus erneut zu bestimmen.
  • 22 ist ein Ablaufdiagramm, das den Kraftalgorithmusberechnungs- und Aktuatorsteuerprozess 388 gemäß 18 beginnend bei einem Schritt 450 darstellt. Vorzugsweise werden alle Kräfte in jedem Freiheitsgrad vor dem Schritt 450 beim Anschalten oder bei Erhalt eines Löschbefehls vom Hauptrechner 12 auf Null initialisiert. Danach würde der Prozess 388 bei 450 beginnen und mit Schritt 452 fortfahren. In Schritt 452 wird eine Achse oder ein Freiheitsgrad ausgewählt, für welche eine Kraft angelegt werden soll. Hierin ist "Achse" gleichbedeutend mit einem durch die Schnittstellenvorrichtung 14 bereitgestellten Freiheitsgrad. Falls zwei Achsen der Anlegung von Kräften bedürfen, wird in Schritt 452 vorzugsweise eine Achse ausgewählt, an die in der aktuellen Iteration keine Kraft angelegt worden ist. Wenn z. B. Kräfte um die x- und die y-Achse benötigt werden und die Kraft an der x-Achse in der vorigen Iteration der Schleife gerade erst berechnet und angelegt wurde, dann wird vorzugsweise die y-Achse ausgewählt. Außerdem wird in Schritt 452 eine Gesamtkraft in der ausgewählten Achse auf Null initialisiert.
  • Schritt 456 berechnet eine Kraft in der ausgewählten Achse gemäß dem nächsten Spiegelungsprozess, der in Übereinstimmung mit den Kraftparametern ausgewählt wird. Dieser Schritt beinhaltet vorzugsweise das Auswählen eines entsprechenden Spiegelungsprozesses, Abrufen der notwendigen Messfühlerdaten, Taktdaten und anderen Daten sowie Berechnen eines Kraftwertes unter Verwendung des ausgewählten Spiegelungsprozesses und der wiedergewonnenen Daten. Der Spiegelungsprozess wird durch Prüfen der Kraftparameter ausgewählt. Die aktuellen Werte der Kraftparameter spiegeln die derzeit in Kraft befindlichen Host-Steuerbefehle wider. Da Mehrfach-Host-Steuerbefehle (Spiegelungsprozesse) gleichzeitig in Kraft sein können, werden die Kraftparameter durch den Prozess 388 geprüft, um einen der Spiegelungsprozesse zum Ausführen der Berechnung einer Kraft zu bestimmen. Auf diese Weise kann der Prozess 388 die Kraftparameter prüfen, um zu bestimmen, welche Steuerbefehle vom Hauptrechner gesendet wurden, und zu bestimmen, welcher Spiegelungsprozess in Übereinstimmung mit diesen Steuerbefehlen ausgeführt werden soll. Wie oben mit Bezug auf 5 beschrieben, kann der Spiegelungsprozess Prozessschritte, Gleichungen, Kraftprofile oder andere Kombinationen von Befehlen einschließen, um eine Kraft aus Messfühlerdaten, Taktdaten, Befehlsparametern, anderen Eingabedaten von Eingabevorrichtungen 39 und/oder anderen spezifischen Informationen zu berechnen. Die Befehlsparameter werden in den Kraftparameterwerten reflektiert. Der Prozess 388 gewinnt somit die erforderlichen Messfühlerdaten, Taktdaten, Kraftparameter und/oder anderen Daten wieder, die von dem ausgewählten Spiegelungsprozess zum Berechnen eines Kraftwertes benötigt werden.
  • In Schritt 458 addiert der Prozess 388 den in Schritt 456 berechneten Kraftwert zu der in Schritt 452 initialisierten Gesamtkraft für die Achse. In alternativen Ausführungsformen kann der Prozess 388 den Gesamtkraftwert oder einen Teil des in Schritt 458 berechneten Gesamtkraftwertes begrenzen. Wenn der Prozess 388 beispielsweise verfolgt, welche Kraftwerte Bedingungskräfte sind und welche Kraftwerte Überlagerungskräfte sind, kann der Prozess 388 die Gesamtsumme der Bedingungskräfte auf einen vorbestimmten Prozentsatz der maximalen Aktuatorkraftausgabe begrenzen, wie z. B. 70 % der Höchstausgabe. Dies erlaubt die Verwendung eines gewissen Teils des Kraftbereichs für Überlagerungskräfte wie Schaltflächenstöße, Erschütterungen etc., die auf die Bedingungskräfte draufgelegt werden können. Diese Begrenzung wird vorzugsweise nach der Berechnung aller in Kraft befindlichen Bedingungskräfte durchgeführt, so dass Auflagekräfte über die Summe aller Bedingungskräfte angelegt werden können. In alternativen Ausführungsformen können andere Kräfte begrenzt sein.
  • Im nächsten Schritt 460 bestimmt der Prozess 388, ob noch ein Spiegelungsprozess für die aktuell ausgewählte Achse ausgeführt werden muss. Dies würde zutreffen, falls zusätzliche Host-Steuerbefehle in Kraft sind, für die noch keine Kräfte berechnet und zur Gesamtkraft addiert worden sind. Falls dies so ist, geht der Prozess zu Schritt 456 zurück, um die Kraftparameter zu überprüfen, einen anderen Spiegelungsprozess zum Berechnen einer Kraft auszuführen und diese Kraft zur Gesamtkraft hinzuzufügen. Falls in Schritt 460 keine Spiegelungsprozesse mehr für die ausgewählte Achse auszuführen sind, repräsentiert dann die Gesamtkraft alle Kräfte, die an der ausgewählten Achse gültig sind. Die Gesamtkraft für die ausgewählte Achse wird dann in Schritt 462 im Arbeitsspeicher 27 gespeichert.
  • In Schritt 464 bestimmt der Prozess 388, ob ein Gesamtkraftwert für eine weitere Achse (Freiheitsgrad) berechnet werden muss. Falls ja, werden die Schritte 452, 456, 458, 460 und 462 für andere Achsen wiederholt, bis die Gesamtkräfte für die anderen Achsen berechnet und gespeichert sind.
  • Falls Schritt 464 bestimmt, dass für keine Achsen (Freiheitsgrade) mehr Kräfte berechnet werden müssen, kann Schritt 466 die Gesamtkraft an jeder Achse begrenzen. Da die oben berechnete Gesamtkraft an einer Achse die Hardware-Beschreibungen der Schnittstellenvorrichtung überschreiten kann, wie z. B. die Aktuatorkraftausgabe, legt Schritt 466 die Gesamtkraft so fest, dass sie innerhalb des Gestaltungsspielraums der Hardware liegt. Schritt 466 kann auch die oben berechnete Gesamtkraft modifizieren, wenn sie unsicher für den Benutzer sein kann, wie durch einen Fehlermerker angedeutet. Zum Beispiel kann in der bevorzugten Ausführungsform ein Fehlermerker gesetzt werden, wenn eine Sicherheitsbedingung verletzt wird, wie nachstehend in den Schritten 468-472 beschrieben. Dies bewirkt, dass die Ausgabekraft Null ist. In der bevorzugten Ausführungsform legt der Prozess 388 nach einer derartigen Sicherheitsbedingung eine sanft ansteigende Kraft an den Benutzergegenstand 34 an, da ein abrupter Sprung in der Kraftausgabe auf dem Pegel vor der Sicherheitsbedingung für den Benutzer gefährlich sein kann. In Schritt 466 kann der Prozess 388 überprüfen, wie lange vorher der Fehlermerker gesetzt wurde, indem er die Fehlertaktinformationen prüft, und kann die Gesamtkraft in Übereinstimmung mit einer glatten Rampenfunktion von ansteigender Kraft begrenzen.
  • Der nächste Schritt 468 legt aus Schritt 466 resultierende Sicherheitsbedingungen an die Gesamtkraft an jeder Achse an. Die Sicherheitsbedingungen können verletzt werden, wenn z. B. der Sicherheitsschalter 41, wie in 1 gezeigt, betätigt wird oder wenn ein spezieller Steuerbefehl vom Hauptrechner 12 gesendet wird. Wenn die Sicherheitsbedingungen verletzt werden, werden die Kräfte an den Aktuatoren 30 in Schritt 470 auf Null gesetzt. In Schritt 472 wird dann der Fehlermerker zur Anzeige der Verletzung gesetzt und die Taktinformation bezüglich des zeitlichen Auftretens des Fehlers geschrieben. In Schritt 474 wartet der Prozess 388 dann, bis der Mikroprozessor 26 erneut bereit ist fortzufahren, ähnlich wie Schritt 424 gemäß 20.
  • Als zusätzliches Sicherheitsmerkmal prüft der Prozess 388 vorzugsweise den Arbeitsspeicher 27, um zu bestimmen, ob das "Herzschlag"-Signal des Hauptrechners innerhalb des geforderten Zeitabstands erhalten wurde. Wenn der Prozess 388 bestimmt, dass das letzte Signal außerhalb des zulässigen Intervalls empfangen wurde, dann nimmt der Prozess 388 an, dass der Host ausgeschaltet worden ist oder einen Fehler aufgewiesen hat. Daher wird als Sicherheitsmaßnahme sämtliche Leistung an die Aktuatoren 30 abgeschaltet, bis ein entsprechender Initialisierungsbefehl vom Host erhalten wird.
  • Wenn die Sicherheitsbedingungen in Schritt 468 nicht verletzt sind, wird die Gesamtkraft für jede Achse an die entsprechenden Aktuatoren 30 signalisiert, um entsprechende Kräfte an diese Achsen des Benutzergegenstands 34 anzulegen. Daneben kann der Prozess 388 alle ausgegebenen Fehlerinformationen und Kraftwerte an den Meldeprozess 387 senden, der bestimmt, ob die Daten zum Host gesendet werden sollen, wie oben beschrieben (Fehlerinformationen werden ungeachtet der Sicherheitsbedingungen zum Prozess 387 gesendet). Vorzugsweise schreibt der Prozess 388 diese Informationen in den Arbeitsspeicher, wo der Meldeprozessor 387 sie abrufen kann. Anschließend wartet der Prozess 388 bei Schritt 474, bis der Mikroprozessor 26 fertig ist. Nach dem Schritt 474 geht der Prozess zu Schritt 452 zurück, um eine andere Achse in einer neuen Kraftberechnungs- und -anlegungsiteration auszuwählen.
  • Eine illustrative Anwendung der Implementierung 380 wird nun mit Bezug auf 23 beschrieben. In diesem Beispiel wird eine träge Kraft an den Benutzergegenstand 34 angelegt, indem der Hauptrechner 12 einen Host-Steuerbefehl TRÄGE sendet. Daraufhin wird unter Verwendung eines Host-Steuerbefehls FEDER eine Rückstellfederkraft angewiesen. Sowohl das träge als auch das Rückstellfeder-Kraftmuster wurden weiter oben unter Verhältnissteuerparadigmen erörtert und sind in 9 aufgelistet.
  • Die Kraftparameter 480 und 482 in 23 stellen Speicherstellen im Arbeitsspeicher 27 dar, die zum Speichern der Kraftparameter für die Steuerbefehle TRÄGE und FEDER verwendet werden. Vorzugsweise ist eine Reihe von Speicherstellen auf ähnliche Weise zugewiesen, um Kraftparameter für jeden vom Mikroprozessor 26 implementierten Steuerbefehl zu speichern. Es sind die aus jedem vom Hauptrechner 12 gesendeten Host-Steuerbefehl 484 resultierenden Kraftparameter gezeigt. Die Speicherstellen der trägen Kraftparameter sind durch Dämpfungskoeffizienten (B) für Geschwindigkeitskomponenten in der positiven und der negativen X- und Y-Richtung markiert. Auf ähnliche Weise sind die Feder-Tabellenspeicherstellen durch Federkoeffizienten (K) in der positiven und der negativen x- und y-Achse und den Totzonenbereichgrößen in der x- und der y-Achse markiert.
  • Drei Host-Steuerbefehle 484 sind in 23 sequenziell dargestellt:
    • TRÄGE (50, X, BI)
    • TRÄGE (90, X(+), UNI)
    • FEDER (65, X BI, 85)
  • Die zwei TRÄGE-Befehlsparameter 308 sind Dämpfungskoeffizient und Stil. Der Koeffizient ist ein Prozentsatz eines Höchstdämpfungskoeffizienten: 50 % und 90 %. Der Stilbefehlsparameter in dem ersten TRÄGE-Befehl gibt eine zweiseitig wirkende Kraft auf der x-Achse an. Der Stilparameter in dem zweiten TRÄGE-Befehl gibt eine einseitig wirkende Kraft auf der x-Achse in der positiven Richtung auf dieser Achse an.
  • Die drei FEDER-Kraft-Feedback-Parameter sind Federkoeffizient, Stil und Totzone. Der Federkoeffizientparameter gibt 65 % eines maximalen Federkoeffizienten an. Der Stilparameter gibt an, dass die Kraft zweiseitig in der x-Achse wirkt. Die Totzone beträgt 85 % einer maximalen Totzonengröße.
  • Auch ein Dauer-Befehlsparameter kann für jeden der Host-Steuerbefehle 484, wie in 9 gezeigt, enthalten sein, um die Zeitdauer zu liefern, die der Steuerbefehl in Kraft sein wird. Im vorliegenden Beispiel wird jedoch angenommen, dass die Steuerbefehle von unbegrenzter Dauer sind, und somit ist kein Dauer-Befehlsparameter gezeigt. Die Steuerbefehle können z. B. durch einen Löschbefehl vom Host aufgehoben werden. Wie gezeigt, können die Steuerbefehle alternativ durch einen anderen Steuerbefehl derselben Art aufgehoben oder geändert werden.
  • Nachdem die angeforderte Schnittstellenvorrichtungsinformation in Schritt 392 in 19 zum Host 12 gesendet wird, erhält der Host-Kommunikations- und -Hintergrundprozess 382 entweder in Schritt 394 oder Schritt 398 Konfigurationsbefehle. Diese Konfigurationsbefehle veranlassen das Setzen entsprechender Reportparameter. Diese Reportparameter können beispielsweise als Flags [Kennzeichnungen] realisiert werden, die jedem erlaubten Freiheitsgrad, der anderen Eingabevorrichtung 39, Position/Geschwindigkeit, Abfrage/Streaming-Betrieb etc. entsprechen, um anzugeben, ob die Daten von diesen Vorrichtungen dem Host gemeldet werden sollen (und ggf. Modi ausgewählt werden sollen). Für maximale Wirksamkeit würden die Reportparameter nur Flags für die x-Achse gesetzt haben, weil y-Achsen-Daten nicht erforderlich sind. Die y-Achsen-Messfühlerdaten könnten jedoch aus anderen Gründen vom Hauptrechner benötigt werden, und könnten somit immer noch Flags gesetzt haben und somit dem Host gemeldet werden.
  • Danach werden in Schritt 402 der 19 die Kraftparameter 480 und 482 basierend auf den Host-Steuerbefehlen TRÄGE und FEDER und den Befehlsparametern gesetzt, die sie enthalten, wie in 23 gezeigt. Der Steuerbefehl TRÄGE (50, X BI) bewirkt, dass der Schritt 402 "50" in die Kraftparameter-Speicherstellen 486 schreibt, die den x-Achsen-Koeffizienten Bx(+) und Bx(–) entsprechen. Alle übrigen Speicherstellen aller anderen Kraftparameter sind null, weil angenommen wird, dass der erste TRÄGE-Befehl der erste Steuerbefehl ist, der nach dem Einschalten von der Schnittstellenvorrichtung 14 erhalten wurde.
  • Die anderen Prozesse 386 und 388 prüfen die Kraftparameter 480 und 482 (sowie andere Kraftparameter für andere Spiegelungsprozesse) und werden implementiert, wie in 20 und 22 gezeigt. Wenn somit der Statusaktualisierungsprozess 386 bestimmt, welche Messfühler in Schritt 414 gemäß 20 gelesen werden sollen, prüft er die Kraftparameter 480 und 482, um zu ermitteln, welche Steuerbefehle in Kraft sind. Da alle Rückstellkraftparameter 482 für die Rückstellfederkraft null sind, ist kein Rückstellfederbefehl in Kraft (Prozess 386 und 388 brauchen tatsächlich nur auf eine Teilmenge der Kraftparameter schauen, um zu bestimmen, ob der Steuerbefehl in Kraft ist). Die Kraftparameter 480 enthalten jedoch zwei Werte ("50") und sind somit in Kraft. Somit brauchen nur die x-Achsen-Messfühler abgelesen werden (unter der Annahme, dass der Host keine y-Achsen-Informationen braucht, wie durch die Reportparameter angedeutet). In Schritt 420 (falls implementiert) würde der Prozess 386 die Geschwindigkeit aus den Messfühlerablesungen (und/oder einer Historie von Messfühlerablesungen) und Taktdaten berechnen, weil der Träge-Befehl einen Geschwindigkeitswert benötigt, um eine Kraft zu berechnen (Beschleunigungen sind in dem vorhandenen Beispiel irrelevant).
  • Der Prozess 388 würde die Kraftparameter 480 und 482 in Schritt 456 der 22 überprüfen. Die x-Achse ist in Schritt 452 die einzig relevante Achse der Wahl. Da die Kraftparameter 482 sämtlich null sind, kann der Prozess 388 keinen Rückstellfeder-Spiegelungsprozess ausführen. Da die Kraftparameter 480 Nicht-null-Werte enthalten, sollte ein Träge-Spiegelungsprozess ausgeführt werden. In einem Beispiel würde der Spiegelungsprozess die Gleichung F = BV einschließen, wobei B der an den Speicherstellen 486a und 486b gespeicherte Koeffizient und V die durch den Statusaktualisierungsprozess 386 berechnete Geschwindigkeit ist. F ist die Gesamtkraft, die von den Aktuatoren 30 um die Achse ausgegeben würde. Vorzugsweise weisen alle verfügbaren Host-Steuerbefehle Kraftparameter auf, welche die Prozesse 386 und 388 auf ähnliche Weise überprüfen würden, um zu ermitteln, welche Steuerbefehle in Kraft sind.
  • Unter erneuter Bezugnahme auf 23 wird nach dem ersten Träge-Befehl der zweite Steuerbefehl TRÄGE (90, X(+) UNI) vom Hauptrechner 12 gesendet. Da der zweite TRÄGE-Befehl in der positiven x-Achse unidirektional ist, wird nur bei der ersten Speicherstelle 486a für den Kraftparameter Bx(+) der neue Koeffizient "90" über den vorigen Wert geschrieben. Die Rückstellfeder-Kraftparameter werden durch die TRÄGE-Befehle nicht verändert. Ein Weg, den ersten TRÄGE-Befehl aufzuheben, wäre, einen zweiten TRÄGE-Befehl mit allen Befehlsparametern gleich null zu senden.
  • Der Statusaktualisierungsprozess 386 würde für den zweiten TRÄGE-Befehl auf ähnliche Weise funktionieren wie beim ersten TRÄGE-Befehl. Der Kraftalgorithmusberechnungs- und Aktuatorsteuerprozess 388 würde ebenfalls auf ähnliche Weise funktionieren, außer dass der in Schritt 456 der 22 ausgewählte Träge-Spiegelungsprozess für Geschwindigkeiten in der positiven x-Richtung (basierend auf einem Koeffizienten von 90) eine andere träge Kraft berechnen würde als in der negativen x-Richtung (basierend auf einem Koeffizienten von 50). Der Prozess 388 würde die Messfühlerinformationen vom Statusaktualisierungsprozess 386 verwenden, um zu bestimmen, in welcher Richtung der Benutzer den Benutzergegenstand gerade bewegte, und den entsprechenden Koeffizienten einsetzen.
  • Unter erneuter Bezugnahme auf 23 ist der dritte vom Host 12 gesendete Steuerbefehl der Federsteuerbefehl FEDER (65, X BI, 85). Schritt 402 gemäß 19 ändert somit die Rückstellfeder-Kraftparameter 482 durch Schreiben von 65 für Kx(+) und Kx(–) und 85 für DBx. Die TRÄGE-Kraftparameter werden durch den FEDER-Befehl nicht beeinflusst und bleiben daher mit den vorigen Werten in Kraft. Der Prozess 388 würde den Träge-Spiegelungsprozess ausführen und eine Kraft berechnen, dann den Rückstellfeder-Spiegelungsprozess ausführen und eine Kraft berechnen. Der Rückstellfeder-Spiegelungsprozess könnte z. B. durch die Gleichung F = kx realisiert werden, wobei k die Federkonstante ist und x die Position des Benutzergegenstands hinsichtlich der Nullpunktstellung ist. Die zwei Kräfte aus dem Träge- und dem Feder-Spiegelungsprozess würden bei Schritt 458 zusammengezählt. Daher werden das Träge- und das Rückstellfeder-Kraftmuster nach dem FEDER-Befehl in 23 auf dem Benutzergegenstand 34 überlagert. Dies würde eine zähe Griffigkeit an dem Benutzergegenstand 34 erzeugen und gleichzeitig eine Kraft in Richtung der Nullpunktstellung des Benutzergegenstands anlegen.
  • Allgemeiner können für andere, in 23 nicht gezeigte Befehlsfolgen, beliebige Anzahlen von Kraftmustern überlagert werden. Zum Beispiel könnten zwei Kräfte übereinandergelegt werden, wenn auf den ersten TRÄGE-Befehl unmittelbar der FEDER-Befehl folgen würde.
  • Alternativ können die drei in 23 gezeigten Steuerbefehle durch den Mikroprozessor 26 erhalten werden, und alle nach dem FEDER-Befehl gezeigten Kraftparameter können als eine Parameterseite im Arbeitsspeicher gespeichert werden, um eine "Kraftumgebung" zu bilden. Wenn das Anlegen dieser Kraftumgebung an den Benutzergegenstand 34 gewünscht würde, würde die Seite der Kraftparameter und Reportparameter aufgerufen und durch die Prozesse 386 und 388 verarbeitet. Dies kann nützlich sein, wenn es erwünscht ist, viele unterschiedliche Steuerbefehle gleichzeitig anzuwenden: Der Mikroprozessor würde nicht jeden Host-Steuerbefehl anwenden, wie er erhalten wurde, sondern würde alle gewünschten Kraftparameter für eine Kraftumgebung auf einmal aus dem Arbeitsspeicher laden.
  • Zwar ist diese Erfindung bezogen auf mehrere bevorzugte Ausführungsformen beschrieben worden, es wird jedoch erwartet, dass diesbezügliche Änderungen, Modifikationen und Vertauschungen für Fachleute auf diesem Gebiet beim Lesen der Beschreibung und Studieren der Zeichnungen offensichtlich werden. Beispielsweise können in der vorliegenden Erfindung viele mögliche Arten von Aktuatoren und Messfühlern verwendet werden. Ferner können viele Arten von Mechanismen enthalten sein, um dem Gegenstand 34 einen oder mehr Freiheitsgrade zur Verfügung zu stellen. Außerdem können unterschiedliche Arten von Schnittstellen verwendet werden, um den Hauptrechner mit dem örtlichen Mikroprozessor zu verbinden. Mit der vorliegenden Erfindung können vielerlei verschiedene Arten von Kräften zu einem Benutzergegenstand übertragen werden. Viele unterschiedliche Arten von Kraftmustern können in vielen verschiedenen, auf dem Mikroprozessor laufenden Prozessen realisiert werden, von denen hier nur einige beschrieben sind. Daneben kann die Anwendung von Spiegelungsprozessen auf einem örtlichen Mikroprozessor auf vielfältige Arten realisiert werden. Des Weiteren ist die bestimmte Terminologie zum Zwecke der darstellerischen Klarheit verwendet worden und nicht zur Einschränkung der vorliegenden Erfindung. Daher sollen die folgenden beiliegenden Ansprüche alle solchen Veränderungen, Modifikationen und Vertauschungen einschließen, die unter den Schutzbereich der vorliegenden Erfindung fallen.

Claims (29)

  1. Schnittstellenvorrichtung (14) zur Verwendung mit einem eine Grafikumgebung anzeigenden Hauptrechner (12), der die Grafikumgebung als Reaktion auf Benutzermanipulation der Schnittstellenvorrichtung (14) aktualisiert und Kraftrückkoppelungsempfindungen als Reaktion auf die Manipulation und in Koordinierung mit Geschehnissen in der Grafikumgebung unter Verwendung der Schnittstellenvorrichtung steuert, wobei die Schnittstellenvorrichtung umfasst: – eine Manipulationsvorrichtung (34); – eine Halterungsapparatur, welche die Manipulationsvorrichtung (34) hinsichtlich eines Nullpunktes abstützt und dabei der Manipulationsvorrichtung eine Bewegung in einer Vielzahl von Freiheitsgraden hinsichtlich des Nullpunktes erlaubt; – einen Aktuator (30), der an die Manipulationsvorrichtung gekoppelt und so konfiguriert ist, dass er als Reaktion auf Steuerbefehle von dem Hauptrechner und in Koordinierung mit der Grafikumgebung eine Kraftrückkoppelung entlang wenigstens einem der Freiheitsgrade an die Manipulationsvorrichtung bereitstellt; – einen Messfühler (28), der so konfiguriert ist, dass er ein auf eine Bewegung der Manipulationsvorrichtung (34) entlang wenigstens dem mit der Kraftrückkoppelung verbundenen Freiheitsgrad ansprechendes und damit übereinstimmendes Ortsangabesignal abgibt; – einen Schalter (41), der so konfiguriert ist, dass er ein Zustandssignal abgibt, das den Zustand des Schalters darstellt; – einen örtlichen Mikroprozessor (26), der von dem Hauptrechner getrennt und durch eine Datenübertragungsschnittstelle an den Hauptrechner gekoppelt ist sowie an den Aktuator (30) und den Messfühler (28) gekoppelt ist, wobei der örtliche Mikroprozessor so konfiguriert ist, dass er einen örtlichen Prozess parallel zur Host-Ausführung der Grafikumgebung ausführt, wobei der örtliche Prozess in einem an den örtlichen Mikroprozessor (26) gekoppelten örtlichen Arbeitsspeicher (27) gespeichert ist, wobei der örtliche Prozess – den Aktuator (30) als Reaktion auf wenigstens einen von dem Hauptrechner erhaltenen decodierten Steuerbefehl steuert, – eine Darstellung des Ortsangabesignals an den Hauptrechner berichtet, wobei der Hauptrechner so konfiguriert ist, dass er die parallele Ausführung der Grafikumgebung als Reaktion auf die Darstellung des Ortsangabesignals aktualisiert, und – das Zustandssignal überwacht, wobei der Hauptrechner so konfiguriert ist, dass er die Grafikumgebung als Reaktion auf den Schalterzustand aktualisiert, wobei der Host-Steuerbefehl unter Verwendung eines Kraftrückkoppelung-Kommandoprotokolls zu dem örtlichen Mikroprozessor (26) überfragen wird; und – eine Befehlsroutine, die in dem örtlichen Arbeitsspeicher (27) gespeichert ist, wobei die Befehlsroutine als Reaktion auf den erhaltenen Host-Steuerbefehl durch den örtlichen Prozess ausgeführt wird, wobei der Host-Steuerbefehl die Ausführung einer Kraftroutine basierend auf dem erhaltenen Host-Steuerbefehl bewirkt und die Kraftroutine so gestaltet ist, dass sie den Aktuator (30) veranlasst, eine Kraftrückkoppelung zu erzeugen.
  2. Schnittstellenvorrichtung nach Anspruch 1, wobei wenigstens ein Befehlsparameter einen Größenparameter einschließt, der eine Größe der durch den Aktuator (30) abzugebenden Kraft bestimmt.
  3. Schnittstellenvorrichtung nach Anspruch 2, wobei der Größenparameter als ein Prozentsatz der Höchstkraftleistung der Schnittstellenvorrichtung (14) dargestellt ist.
  4. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei wenigstens ein Befehlsparameter wenigstens eines davon einschließt: einen Dauerparameter, der bestimmt, wie lange die von dem Aktuator (30) abgegebene Kraft wirksam ist, einen Richtungsparameter, der die Richtung bestimmt und Freiheitsgrade der von dem Aktuator (30) abgegebenen Kraft.
  5. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, die ferner einen für den Mikroprozessor (26) zugänglichen internen Taktgeber (29) umfasst, um ein in dem örtlichen Prozess verwendetes Taktsignal an den Mikroprozessor (26) bereitzustellen, wobei die Steuerung des Aktuators (30) in Übereinstimmung mit von dem internen Taktgeber (29) abgeleiteten Taktdaten durchgeführt wird.
  6. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei wenigstens ein Befehlsparameter eine Totzonenregion in dem Bewegungsbereich der Manipulationsvorrichtung (34) definiert, wobei von der Ausführung einer bestimmten Kraftroutine herrührende Kräfte annähernd auf Null reduziert werden müssen, wenn die Manipulationsvorrichtung (34) innerhalb der Totzonenregion ist.
  7. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei wenigstens ein Befehlsparameter wenigstens eines davon definiert: die Frequenz eines periodischen Signals, das zum Modulieren der von dem Aktuator (30) abgegebenen Kräfte in Übereinstimmung mit einer bestimmten Kraftroutine verwendet wird, die Form des periodischen Signals, wenigstens einen Freiheitsgrad, in dem eine bestimmte Kraftroutine anzulegen ist, und einen Kraftsättigungspegel für den Host-Steuerbefehl.
  8. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei als Reaktion auf Mehrfach-Host-Steuerbefehle gleichzeitig Mehrfach-Kraftroutinen unter Verwendung von Multitaskingbetrieb auf dem Mikroprozessor (26) ausgeführt werden.
  9. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei wenigstens ein zur Steuerung des Aktuators (30) herangezogener Leistungsanteil von dem universellen seriellen Bus abgezogen wird.
  10. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei die Host-Steuerbefehle in wenigstens zwei Befehlsgruppen bereitgestellt sind, die Hintergrundbedingungen und überlagerte Wirkungen einschließen, wobei die Hintergrundbedingungen körperliche Kraftmerkmale der Schnittstellenvorrichtung (14) einschließlich Steifigkeits- und Dämpfungskräften einschließen, die abgegeben werden, wenn der Benutzer die Manipulationsvorrichtung (34) bewegt, und wobei die überlagerten Wirkungen zeitveränderliche Empfindungen einschließen, wobei die zeitveränderlichen Empfindungen Erschütterungen einschließen.
  11. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der wenigstens eine Befehlsparameter eines davon definiert: eine Steifigkeit eines von dem Benutzer gefühlten vorgetäuschten Federwiderstands, wenn die Manipulationsvorrichtung (34) in eine spezifizierte Richtung bzw. Freiheitsgrad bewegt wird, und eine Dämpfung eines von dem Aktuator (30) abgegebenen Rücktriebwiderstands, wenn die Manipulationsvorrichtung mit einer Geschwindigkeit entlang einer Richtung bzw. Freiheitsgrad bewegt wird.
  12. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Schaltflächenspiegelungsprozess einschließt, wobei der Mikroprozessor (26) die Kraftabgabe von dem Aktuator (30) als Reaktion auf einen vom Benutzer manuell geänderten Zustand des in der Schnittstellenvorrichtung (14) enthaltenen benutzerverstellbaren Schalters (41) steuert, wobei wenigstens ein Parameter einen Schaltflächenparameter einschließt, der den an den Mikroprozessor gekoppelten benutzerverstellbaren Schalter (41) auswählt und eine Größe, Richtung und Dauer einer von dem Aktuator (30) abgegebenen Kraft bestimmt, wenn der benutzerverstellbare Schalterzustand von dem Benutzer geändert wird.
  13. Schnittstellenvorrichtung nach Anspruch 12, die ferner wenigstens einen zusätzlichen benutzerverstellbaren Schalter umfasst, wobei der örtliche Prozess Mehrfach-Schaltflächenspiegelungsprozesse einschließt, so dass der Mikroprozessor (26) die Kraftabgabe von dem Aktuator als Reaktion auf die Einstellung eines ersten Schalters durch einen Benutzer gemäß einem ersten Prozess steuert, und wobei der Mikroprozessor die Kraftabgabe von dem Aktuator als Reaktion auf die Einstellung eines zweiten Schalters durch den Benutzer gemäß einem anderen Prozess steuert, wobei vorbestimmte Beziehungen zwischen jedem der Schalter und den zugehörigen Mikroprozessor-Steuerprozessen von den Host-Steuerbefehlen abgeleitet und in dem zum Mikroprozessor (26) örtlichen Arbeitsspeicher (27) gespeichert sind.
  14. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Nutprozess einschließt, wobei Aktuatoren (30) durch den örtlichen Mikroprozessor (26) gesteuert werden, so dass die Manipulationsvorrichtung (34) innerhalb einer vorgetäuschten Nut positioniert wird, wobei der Nutprozess bewirkt, dass die von den Aktuatoren (30) abgegebene Kraft den Benutzermanipulationen entgegensteht, die bewirken, dass sich die Manipulationsvorrichtung (34) aus den Begrenzungen der Nut herausbewegt, wobei der Nutprozess mit einem Host-Steuerbefehl verbunden ist, der einen Befehlsparameter einschließt, der eine Abmessung der vorgetäuschten Nut spezifiziert.
  15. Schnittstellenvorrichtung nach Anspruch 14, wobei der Nutprozess mit einem Host-Steuerbefehl verbunden ist, der einen Befehlsparameter für eine Ausreißstrecke einschließt, wobei die Ausreißstrecke eine Eindringtiefe in eine Begrenzung der Nut darstellt, so dass der Nutprozess bei Überschreiten der Ausreißstrecke seitens der Manipulationsvorrichtung (34) bewirkt, dass die von den Aktuatoren (30) abgegebene Kraft verringert wird, wodurch sich die Manipulationsvorrichtung (34) mit weniger Widerstand über die Begrenzung hinausbewegen kann und für den Benutzer eine Gefühlsempfindung der Herausbewegung aus der vorgetäuschten Nut erzeugt.
  16. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Sperrprozess einschließt, wobei die Aktuatoren (30) durch den Gerätemikroprozessor so gesteuert werden, dass sie eine Kraft abgeben, die den Benutzermanipulationen der Manipulationsvorrichtung (34) entgegensteht, die bewirken, dass sich die Manipulationsvorrichtung (34) an einem definierten Lageort der Sperre vorbeibewegt, wobei der Sperrprozess mit einem Host-Steuerbefehl verbunden ist, der Befehlsparameter einschließt, die eine Härtegröße der Sperre und einen Lageort der Sperre innerhalb der Grafikumgebung spezifizieren.
  17. Schnittstellenvorrichtung nach Anspruch 16, wobei der Sperrprozess mit einem Host-Steuerbefehl verbunden ist, der einen Befehlsparameter einschließt, der eine Eindring tiefe spezifiziert, wobei die Eindringtiefe eine Distanz an dem Lageort der Sperre vorbei definiert, so dass der Sperrprozess bei Überschreiten der Distanz durch die Manipulationsvorrichtung (34) die Kraftabgabe von den Aktuatoren verringert und dadurch der Manipulationsvorrichtung (34) erlaubt, sich mit weniger Widerstand an der Sperre vorbeizubewegen, und eine Gefühlsempfindung des Durchbrechens der vorgetäuschten Sperre für den Benutzer erzeugt.
  18. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Strukturprozess einschließt, wobei der Aktuator durch den örtlichen Mikroprozessor (26) gesteuert wird, um eine räumlich wechselnde Gefühlsempfindung zu erzeugen, wenn die Manipulationsvorrichtung (34) im Raum bewegt wird, wobei der Strukturprozess mit einem Host-Steuerbefehl verbunden ist, der Befehlsparameter einschließt, die eine Kraftgröße der Struktur und eine Raumwechselgeschwindigkeit der Struktur spezifizieren.
  19. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Abstoßungsfeldprozess einschließt, wobei der Aktuator (30) durch den örtlichen Mikroprozessor (26) gesteuert wird, um eine Kraft-Rückstoßbewegung der Manipulationsvorrichtung (34) zu einem in der Grafikumgebung gelegenen ausgewählten Feldnullpunkt hin abzugeben, wobei der Abstoßungsfeldprozess mit einem Host-Steuerbefehl verbunden ist, der wenigstens einen Befehlsparameter einschließt, der wenigstens eine Größe des Rückstoßes und einen Lageort des Feldnullpunktes spezifiziert.
  20. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Anziehungsfeldprozess einschließt, wobei der Aktuator (30) durch den örtlichen Mikroprozessor (26) gesteuert wird, um eine Kraftanziehungsbewegung der Manipulationsvorrichtung (34) zu einem in der Grafikumgebung gelegenen ausgewählten Feldnullpunkt hin abzugeben, wobei der Anziehungsfeldprozess mit einem Host-Steuerbefehl verbunden ist, der wenigstens einen Befehlsparameter einschließt, der eine Größe des Feldes und einen Lageort des Feldnullpunktes spezifiziert.
  21. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der örtliche Prozess einen Gegenstandskollisionsprozess einschließt, wobei der Aktuator (30) durch den örtlichen Mikroprozessor (26) gesteuert wird, um ein Gefühl einer Kollision zwischen einem Zufallsobjekt und einem Willfährigkeitsobjekt mit einem durch die Bewegung der Manipulationsvorrichtung (34) gesteuerten Lageort vorzutäuschen, und das Willfährigkeitsobjekt ein elastisches Schlagobjekt ist, wobei der Aktuator (30) durch den örtlichen Mikroprozessor (26) gesteuert wird, um das Gefühl einer dynamischen Wechselwirkung zwischen dem Zufallsobjekt und dem benutzergesteuerten Willfährigkeitsobjekt vorzutäuschen.
  22. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der Gegenstandskollisionsprozess ein Schlagprozess ist und das Zufallsobjekt ein Ballobjekt ist, wobei der Schlagprozess mit einem Host-Steuerbefehl verbunden ist, der wenigstens einen Befehlsparameter von denen einschließt, welche die Nachgiebigkeit des elastischen Schlagobjektes und eine Masse des Ballobjektes darstellen.
  23. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, wobei der Host-Steuerbefehl den Mikroprozessor (26) anweist, einen Schwingungsreflexprozess zum Bereitstellen von Schwingungskräften an der Manipulationsvorrichtung (34) auszuwählen, wobei der Host-Steuerbefehl Befehlsparameter zum Steuern einer Frequenz und einer Größe der Schwingungskräfte einschließt.
  24. Schnittstellenvorrichtung nach einem der vorhergehenden Ansprüche, die ferner in dem örtlichen Arbeitsspeicher (27) gespeicherte Kalibrierungsparameter umfasst, um die Kraft übereinstimmend mit Abgabekräften einer Vielzahl von anderen Kraftrückkoppelung-Schnittstellenvorrichtungen (14) einzustellen, die von einem Herstellungsverfahren herrührende Abweichungen in den Festigkeitseigenschaften aufweisen.
  25. Verfahren zur Schnittstellenverbindung der Bewegung eines Gegenstands mit einem Hauptrechnersystem, wobei das Verfahren die Schritte umfasst: – Bereitstellen einer Manipulationsvorrichtung (34); – Abtasten von Positionen der Manipulationsvorrichtung entlang einem Freiheitsgrad mit einem Messfühler (28) und Erzeugen von elektrischen Messfühlersignalen daraus; – Überwachen des Zustands eines Schalters (41), der zum Abgeben eines Zustandssignals konfiguriert ist; – Abgeben einer Kraft an die Manipulationsvorrichtung (34) durch Steuern eines an die Manipulationsvorrichtung (34) gekoppelten Aktuators (30) unter Verwendung eines von dem Hauptrechnersystem (12) getrennten und geeigneten Mikroprozessors (26) zum Ausführen eines örtlichen Prozesses parallel zur Host-Ausführung einer Grafikumgebung, wobei der Mikroprozessor (26) die Wiedergewinnung eines Kraftprofils einschließlich eines digitalen Kraftwertes aus einer Speichervorrichtung (27) veranlasst und die wiedergewonnenen Kraftwerte zum Abgeben einer entsprechenden Kraftrückkoppelung an den Aktuator (30) abgibt, wobei die gespeicherten digitalen Kraftwerte auf dem Zustandssignal des Schalters (41) basieren.
  26. Verfahren nach Anspruch 25, worin der Schritt Abgeben einer Kraft an der Manipulationsvorrichtung (34) ferner die Verwendung des Mikroprozessors (26) zum Bereitstellen der elektrischen Messfühlersignale an das Hauptrechnersystem (12), Empfangen von Host-Steuerbefehlen von dem Hauptrechnersystem (12) und Abgeben von Kraftsteuerbefehlen an den Aktuator (30) einschließt, wobei in einem der von dem Hauptrechner erhaltenen Host-Steuerbefehle ein Zeitparameter enthalten ist.
  27. Verfahren nach Anspruch 26, worin der Mikroprozessor (26) das Kraftprofil wiedergewinnt und die wiedergewonnenen Kraftwerte an den Aktuator (30) abgibt, wobei das Kraftprofil in der zum Mikroprozessor (26) örtlichen Speichervorrichtung (27) gespeichert wird.
  28. Verfahren nach einem der Ansprüche 26 bis 27, worin der Zeitabstand des Zeitparameters unter Verwendung von durch einen Systemtaktgeber (29) bereitgestellten Taktinformationen realisiert wird und worin der Zeitparameter derart variabel ist, dass eine Länge des Zeitabstands zwischen den Kräften verändert werden kann, um unterschiedliche Kraftempfindungen an einen Benutzer bereitzustellen, der in Körperkontakt mit der Manipulationsvorrichtung (34) ist.
  29. Verfahren nach einem der Ansprüche 25 bis 28, worin die gespeicherten digitalen Kraftwerte basierend auf den eine Position der Manipulationsvorrichtung (34) beschreibenden elektrischen Messfühlersignalen auch an den Aktuator (30) abgegeben werden.
DE69636703T 1995-09-27 1996-09-25 Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners Expired - Lifetime DE69636703T2 (de)

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
DE69636703D1 DE69636703D1 (de) 2006-12-28
DE69636703T2 true DE69636703T2 (de) 2007-09-13

Family

ID=27064587

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69636703T Expired - Lifetime DE69636703T2 (de) 1995-09-27 1996-09-25 Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners

Country Status (6)

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

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
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
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
US6801008B1 (en) 1992-12-02 2004-10-05 Immersion Corporation Force feedback system and actuator power management
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
US5701140A (en) 1993-07-16 1997-12-23 Immersion Human Interface Corp. Method and apparatus for providing a cursor control interface with force feedback
US6437771B1 (en) * 1995-01-18 2002-08-20 Immersion Corporation Force feedback device including flexure member between actuator and user object
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
US5739811A (en) * 1993-07-16 1998-04-14 Immersion Human Interface Corporation Method and apparatus for controlling human-computer interface systems providing 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
US5721566A (en) 1995-01-18 1998-02-24 Immersion Human Interface Corp. Method and apparatus for providing damping force feedback
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
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
EP0775961B1 (de) * 1994-07-19 2001-10-17 Asahi Kasei Kabushiki Kaisha System für virtuelle realität und für entfernte realität
WO1996006392A1 (en) * 1994-08-18 1996-02-29 Interval Research Corporation Content-based haptic input device for video
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
WO1996036060A1 (fr) * 1995-05-10 1996-11-14 Nintendo Co., Ltd. Dispositif de commande avec manette de jeu analogique
US5963196A (en) * 1995-05-10 1999-10-05 Nintendo Co., Ltd. Image processing system utilizing analog joystick
US6241611B1 (en) 1995-05-10 2001-06-05 Nintendo Co., Ltd. Function expansion device and operating device using the function expansion device
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US20100131081A1 (en) * 1995-05-30 2010-05-27 Brown David W Systems and methods for motion control
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US20020156872A1 (en) * 2001-01-04 2002-10-24 Brown David W. Systems and methods for transmitting motion control data
US5691897A (en) 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
US20060206219A1 (en) * 1995-05-30 2006-09-14 Brown David W Motion control systems and methods
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
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
JP2667656B2 (ja) * 1995-09-12 1997-10-27 コナミ株式会社 ドライビングゲーム機
US5999168A (en) * 1995-09-27 1999-12-07 Immersion Corporation Haptic accelerator for force feedback computer peripherals
US5959613A (en) * 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
AU734018B2 (en) * 1995-10-09 2001-05-31 Nintendo Co., Ltd. Three-dimension image processing system
US6007428A (en) 1995-10-09 1999-12-28 Nintendo Co., Ltd. Operation controlling device and video processing system used therewith
JP3524247B2 (ja) 1995-10-09 2004-05-10 任天堂株式会社 ゲーム機およびそれを用いたゲーム機システム
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
US5754023A (en) 1995-10-26 1998-05-19 Cybernet Systems Corporation Gyro-stabilized platforms for force-feedback applications
US6002351A (en) * 1995-11-10 1999-12-14 Nintendo Co., Ltd. Joystick 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
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
US6022274A (en) 1995-11-22 2000-02-08 Nintendo Co., Ltd. Video game system using memory module
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
US6155926A (en) 1995-11-22 2000-12-05 Nintendo Co., Ltd. Video game system and method with enhanced three-dimensional character and background control
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
JP2000501033A (ja) 1995-11-30 2000-02-02 ヴァーチャル テクノロジーズ インコーポレイテッド 触覚をフィードバックする人間/機械インターフェース
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
US6147674A (en) * 1995-12-01 2000-11-14 Immersion Corporation Method and apparatus for designing force sensations in force feedback computer applications
US6028593A (en) 1995-12-01 2000-02-22 Immersion Corporation Method and apparatus for providing simulated physical interactions within computer generated environments
US7027032B2 (en) * 1995-12-01 2006-04-11 Immersion Corporation Designing force sensations for force feedback computer applications
US5956484A (en) * 1995-12-13 1999-09-21 Immersion Corporation Method and apparatus for providing force feedback over a computer network
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
US6300936B1 (en) 1997-11-14 2001-10-09 Immersion Corporation Force feedback system including multi-tasking graphical host environment and interface device
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
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
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
US7815436B2 (en) 1996-09-04 2010-10-19 Immersion Corporation Surgical simulation interface device 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
WO1998010387A2 (en) * 1996-09-04 1998-03-12 Ht Medical Systems, Inc. Interventional radiology interface apparatus 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
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
US6244959B1 (en) 1996-09-24 2001-06-12 Nintendo Co., Ltd. Three-dimensional image processing system with enhanced character control
WO1998016285A1 (fr) 1996-10-11 1998-04-23 Sony Computer Entertainment Inc. Dispositif d'actionnement de machines de jeu
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
US20080227538A1 (en) * 1996-11-14 2008-09-18 Bally Gaming Inc. Game prize controller and system
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
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
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
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
US6954899B1 (en) 1997-04-14 2005-10-11 Novint Technologies, Inc. Human-computer interface including haptically controlled interactions
US6262712B1 (en) * 1997-04-24 2001-07-17 Microsoft Corporation Handle sensor with fade-in
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 ゲーム機用操作装置
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
US6104382A (en) * 1997-10-31 2000-08-15 Immersion Corporation Force feedback transmission mechanisms
US6020875A (en) * 1997-10-31 2000-02-01 Immersion Corporation High fidelity mechanical transmission system and interface device
US6281651B1 (en) 1997-11-03 2001-08-28 Immersion Corporation Haptic pointing devices
US6088019A (en) * 1998-06-23 2000-07-11 Immersion Corporation Low cost force feedback device with actuator for non-primary axis
US6448977B1 (en) 1997-11-14 2002-09-10 Immersion Corporation Textures and other spatial sensations for a relative haptic interface device
US8020095B2 (en) 1997-11-14 2011-09-13 Immersion Corporation Force feedback system including multi-tasking graphical host environment
US6243078B1 (en) * 1998-06-23 2001-06-05 Immersion Corporation Pointing device with forced feedback button
US6211861B1 (en) 1998-06-23 2001-04-03 Immersion Corporation Tactile mouse device
US6252583B1 (en) 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
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
IL123073A0 (en) 1998-01-26 1998-09-24 Simbionix Ltd Endoscopic tutorial system
US6437770B1 (en) 1998-01-26 2002-08-20 University Of Washington Flat-coil actuator having coil embedded in linkage
EP1103041B1 (de) * 1998-01-28 2016-03-23 Immersion Medical, Inc. Instrumentenschnittstelle und simulationsmethode für medizinische verfahren
EP1051698B1 (de) 1998-01-28 2018-01-17 Immersion Medical, Inc. Schnittstelle für simulator für vaskuläre vorrichtung
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 ゲーム機用コントローラ
US8075570B2 (en) * 2001-11-28 2011-12-13 Aptus Endosystems, Inc. Intraluminal prosthesis attachment systems and methods
US7491232B2 (en) 1998-09-18 2009-02-17 Aptus Endosystems, Inc. Catheter-based fastener implantation apparatus and methods with implantation force resolution
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
US6429846B2 (en) * 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6184868B1 (en) 1998-09-17 2001-02-06 Immersion Corp. Haptic feedback control devices
US6697043B1 (en) 1999-12-21 2004-02-24 Immersion Corporation Haptic interface device and actuator assembly providing linear haptic sensations
US6707443B2 (en) 1998-06-23 2004-03-16 Immersion Corporation Haptic trackball device
GB2343499B (en) * 1998-06-23 2002-06-12 Immersion Corp Low cost force feedback devices
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
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
US7038667B1 (en) 1998-10-26 2006-05-02 Immersion Corporation Mechanisms for control knobs and other interface devices
GB2347990B (en) * 1998-11-04 2003-05-14 Immersion Corp 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
US6320284B1 (en) 1998-12-23 2001-11-20 Engineering Matters, Inc. Motor assembly allowing output in multiple degrees of freedom
US6664666B2 (en) * 1998-12-23 2003-12-16 Engineering Matters, Inc. Motor assembly allowing output in multiple degrees of freedom
WO2000040940A1 (en) * 1999-01-08 2000-07-13 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
US7456820B1 (en) * 1999-05-25 2008-11-25 Silverbrook Research Pty Ltd Hand drawing capture via interface surface
US6693622B1 (en) 1999-07-01 2004-02-17 Immersion Corporation Vibrotactile haptic feedback devices
US8169402B2 (en) * 1999-07-01 2012-05-01 Immersion Corporation Vibrotactile haptic feedback devices
DE20022244U1 (de) * 1999-07-01 2001-11-08 Immersion Corp Steuerung vibrotaktiler Empfindungen für Haptische Rückkopplungsvorrichtungen
US7561142B2 (en) * 1999-07-01 2009-07-14 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
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
JP3847058B2 (ja) 1999-10-04 2006-11-15 任天堂株式会社 ゲームシステム及びそれに用いられるゲーム情報記憶媒体
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
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US7878905B2 (en) 2000-02-22 2011-02-01 Creative Kingdoms, Llc Multi-layered interactive play experience
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
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
US7196688B2 (en) 2000-05-24 2007-03-27 Immersion Corporation 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
US6995744B1 (en) 2000-09-28 2006-02-07 Immersion Corporation Device and assembly for providing linear tactile sensations
CN100375993C (zh) * 2000-09-28 2008-03-19 伊默逊股份有限公司 用于触觉反馈接口设备的有方向触觉反馈
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
EP1364338A2 (de) 2000-10-27 2003-11-26 Makex Limited Eingabevorrichtung mit taktiler rückkopplung
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
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
US7031798B2 (en) * 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
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 (de) * 2001-09-18 2003-03-19 BRITISH TELECOMMUNICATIONS public limited company Schnittstelle mit Kraftrückführung
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 (de) * 2001-10-30 2016-08-17 Immersion Corporation Verfahren und vorrichtungen zur bereitstellung von haptischer rückkopplung bei der interaktion mit virtuellen haustieren
JP2005509903A (ja) * 2001-11-14 2005-04-14 ヘンリー エム ジャクソン ファウンデーション マルチ触覚ディスプレイハプティックインタフェース装置
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
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
EP1448117B1 (de) 2001-11-28 2013-05-22 Aptus Endosystems, Inc. Endovaskuläres system zum ausbessern eines aneurysmas
US20070073389A1 (en) 2001-11-28 2007-03-29 Aptus Endosystems, Inc. Endovascular aneurysm devices, systems, and methods
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
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
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
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 (de) * 2002-06-26 2004-01-02 BRITISH TELECOMMUNICATIONS public limited company Haptische Kommunikation
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
US8830161B2 (en) * 2002-12-08 2014-09-09 Immersion Corporation Methods and systems for providing a virtual touch haptic effect to handheld communication devices
US20060136631A1 (en) * 2002-12-08 2006-06-22 Immersion Corporation, A Delaware Corporation Methods and systems for providing haptic messaging to handheld communication devices
US8059088B2 (en) * 2002-12-08 2011-11-15 Immersion 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
AU2003293449A1 (en) * 2002-12-08 2004-06-30 Immersion Corporation Methods and systems for providing a virtual touch haptic effect to handheld communication devices
US20060136630A1 (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
WO2004110854A1 (ja) * 2003-06-12 2004-12-23 Sony Corporation 同軸二輪車
EP1658448A2 (de) 2003-08-29 2006-05-24 Engineered Support Systems, Inc. Elektronisch programmierbare aktiv gedämpfte sensorhalterung
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20050132104A1 (en) * 2003-11-17 2005-06-16 Brown David W. Command processing systems and methods
GB0322489D0 (en) * 2003-09-25 2003-10-29 British Telecomm Haptics transmission systems
US20070022194A1 (en) * 2003-09-25 2007-01-25 Brown David W Database event driven motion systems
US20060064503A1 (en) * 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
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 アルプス電気株式会社 力覚付与型入力装置
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
US7382378B2 (en) * 2003-10-30 2008-06-03 Sensable Technologies, Inc. Apparatus and methods for stenciling an image
US7096852B2 (en) 2003-10-30 2006-08-29 Immersion Corporation Haptic throttle devices and methods
DE10350903A1 (de) * 2003-10-31 2005-06-09 Siemens Ag Intuitive und sichere Steuerung von Bedieneingaben in Softwarekomponenten
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
US7626589B2 (en) * 2003-12-10 2009-12-01 Sensable Technologies, Inc. Haptic graphical user interface for adjusting mapped texture
US7889209B2 (en) 2003-12-10 2011-02-15 Sensable Technologies, Inc. Apparatus and methods for wrapping texture onto the surface of a virtual object
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
US8232969B2 (en) * 2004-10-08 2012-07-31 Immersion Corporation Haptic feedback for button and scrolling action simulation in touch input devices
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
US20060229058A1 (en) * 2005-10-29 2006-10-12 Outland Research Real-time person-to-person communication using geospatial addressing
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
US20070156676A1 (en) * 2005-09-09 2007-07-05 Outland Research, Llc System, Method and Computer Program Product for Intelligent Groupwise Media Selection
US20070189544A1 (en) 2005-01-15 2007-08-16 Outland Research, Llc Ambient sound responsive media player
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
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
US20070276870A1 (en) * 2005-01-27 2007-11-29 Outland Research, Llc Method and apparatus for intelligent media selection using age and/or gender
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
US20060256008A1 (en) * 2005-05-13 2006-11-16 Outland Research, Llc Pointing interface for person-to-person information exchange
US20060223635A1 (en) * 2005-04-04 2006-10-05 Outland Research method and apparatus for an on-screen/off-screen first person gaming experience
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
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US8313379B2 (en) * 2005-08-22 2012-11-20 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
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 (de) * 2005-09-15 2008-05-28 Apple Inc. System und verfahren zur verarbeitung von rohdaten einer trackpadvorrichtung
US7917148B2 (en) * 2005-09-23 2011-03-29 Outland Research, Llc Social musical media rating system and method for localized establishments
US8176101B2 (en) 2006-02-07 2012-05-08 Google Inc. Collaborative rejection of media for physical 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 阿普特斯内系统公司 包括使用固定件工具的用于修复物递送和植入的装置、系统和方法
US8187883B2 (en) * 2005-10-21 2012-05-29 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
US7466099B2 (en) * 2006-02-17 2008-12-16 Oceaneering International, Inc. 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
EP1898280B1 (de) * 2006-09-06 2011-07-06 Rotzler GmbH + Co. KG Steuerungsvorrichtung mit einem Bus zum Betrieb einer Maschine
US7759894B2 (en) * 2006-10-26 2010-07-20 Honeywell International Inc. Cogless motor driven active user interface haptic feedback system
US7750593B2 (en) * 2006-10-26 2010-07-06 Honeywell International Inc. Active human-machine interface system without a force sensor
US7624836B2 (en) * 2006-10-30 2009-12-01 Caterpillar Inc. Steering system having multiple strategies and variable deadzone
EP1930800A1 (de) * 2006-12-05 2008-06-11 Electronics and Telecommunications Research Institute Taktile und visuelle Anzeigevorrichtung
US20080146416A1 (en) * 2006-12-13 2008-06-19 Motorola, Inc. Generation of user activity feedback
JP4690299B2 (ja) * 2006-12-14 2011-06-01 株式会社東海理化電機製作所 遠隔操作式入力装置
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
US8250921B2 (en) * 2007-07-06 2012-08-28 Invensense, Inc. Integrated motion processing unit (MPU) with MEMS inertial sensing and embedded digital electronics
US7934423B2 (en) 2007-12-10 2011-05-03 Invensense, Inc. Vertically integrated 3-axis MEMS angular accelerometer with integrated electronics
US8047075B2 (en) 2007-06-21 2011-11-01 Invensense, Inc. Vertically integrated 3-axis MEMS accelerometer with electronics
US20090265671A1 (en) * 2008-04-21 2009-10-22 Invensense Mobile devices with motion gesture recognition
US8462109B2 (en) * 2007-01-05 2013-06-11 Invensense, Inc. Controlling and accessing content using motion processing on mobile devices
US8952832B2 (en) 2008-01-18 2015-02-10 Invensense, Inc. Interfacing application programs and motion sensors of a device
US8508039B1 (en) 2008-05-08 2013-08-13 Invensense, Inc. Wafer scale chip scale packaging of vertically integrated MEMS sensors with electronics
US8020441B2 (en) * 2008-02-05 2011-09-20 Invensense, Inc. Dual mode sensing for vibratory gyroscope
US8141424B2 (en) 2008-09-12 2012-03-27 Invensense, Inc. Low inertia frame for detecting coriolis acceleration
US20090262074A1 (en) * 2007-01-05 2009-10-22 Invensense Inc. Controlling and accessing content using motion processing on mobile devices
US20100071467A1 (en) * 2008-09-24 2010-03-25 Invensense Integrated multiaxis motion sensor
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
US8144036B2 (en) 2007-02-08 2012-03-27 Lear Corporation Switch system
EP2132650A4 (de) * 2007-03-01 2010-10-27 Sony Comp Entertainment Us System und verfahren zur kommunikation mit einer virtuellen welt
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
CN101821149A (zh) * 2007-09-06 2010-09-01 高田-彼得里公开股份有限公司 用于机动车辆的方向盘组件
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
CN101854985A (zh) * 2007-11-13 2010-10-06 阿圭雷·若热·克里斯蒂安·多诺索 具有风扇的视频游戏控制器
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 鸿富锦精密工业(深圳)有限公司 力回馈装置
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
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
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
KR101625360B1 (ko) * 2008-08-12 2016-05-30 코닌클리케 필립스 엔.브이. 모션 검출 시스템
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
US9874935B2 (en) * 2009-03-12 2018-01-23 Immersion Corporation Systems and methods for a texture engine
US10564721B2 (en) * 2009-03-12 2020-02-18 Immersion Corporation Systems and methods for using multiple actuators to realize textures
US10007340B2 (en) 2009-03-12 2018-06-26 Immersion Corporation Systems and methods for interfaces featuring surface-based haptic effects
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
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
US20100302017A1 (en) * 2009-06-01 2010-12-02 Econtrols, Inc. Tactile Feedback for Joystick Position/Speed Controls
US9568939B2 (en) 2009-06-01 2017-02-14 Enovation Controls, Llc Tactile feedback for joystick position/speed controls
US9221117B2 (en) 2009-07-08 2015-12-29 Lincoln Global, Inc. System for characterizing manual welding operations
US20110006047A1 (en) * 2009-07-08 2011-01-13 Victor Matthew Penrod Method and system for monitoring and characterizing the creation of a manual weld
US9773429B2 (en) 2009-07-08 2017-09-26 Lincoln Global, Inc. System and method for manual welder training
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
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
JP2013521576A (ja) 2010-02-28 2013-06-10 オスターハウト グループ インコーポレイテッド 対話式ヘッド取付け型アイピース上での地域広告コンテンツ
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
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
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
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
JP5841714B2 (ja) * 2010-07-27 2016-01-13 京セラ株式会社 触感呈示装置及び触感呈示装置の制御方法
JP5841713B2 (ja) * 2010-07-27 2016-01-13 京セラ株式会社 触感呈示装置及び触感呈示装置の制御方法
CN102686366B (zh) 2010-08-31 2015-02-25 松下电器产业株式会社 主从机器人的控制装置及主从机器人的控制装置的控制方法
US10013058B2 (en) 2010-09-21 2018-07-03 Apple Inc. Touch-based user interface with haptic feedback
EP2453428A1 (de) * 2010-11-12 2012-05-16 EADS Construcciones Aeronauticas, S.A. Simulationsverfahren und -systeme für die Steuertafeln von komplexen Systemen
US10120446B2 (en) * 2010-11-19 2018-11-06 Apple Inc. Haptic input device
ES2767882T3 (es) * 2010-12-13 2020-06-18 Lincoln Global Inc Sistema de aprendizaje de soldeo
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
WO2012127544A1 (ja) 2011-03-24 2012-09-27 アイシン高丘株式会社 車輌用衝突補強材
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
WO2013015791A1 (en) * 2011-07-26 2013-01-31 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 操作方法、制御装置及びプログラム
US10108265B2 (en) * 2012-05-09 2018-10-23 Apple Inc. Calibration of haptic feedback systems for input devices
CN203324713U (zh) * 2012-05-09 2013-12-04 布里斯托尔D/B/A远程自动化解决方案公司 通过过程控制设备显示信息的装置
WO2013188307A2 (en) 2012-06-12 2013-12-19 Yknots Industries Llc 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
US9820818B2 (en) 2012-08-03 2017-11-21 Stryker Corporation System and method for controlling a surgical manipulator based on implant parameters
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
CN112932672A (zh) 2012-08-03 2021-06-11 史赛克公司 用于机器人外科手术的系统和方法
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
US9323283B2 (en) * 2013-01-30 2016-04-26 Prince Industries, Inc. 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
US9652040B2 (en) 2013-08-08 2017-05-16 Apple Inc. Sculpted waveforms with no or reduced unforced response
CN103433921B (zh) * 2013-09-11 2015-07-08 北京邮电大学 三自由度平动力反馈手控器
US20150072323A1 (en) 2013-09-11 2015-03-12 Lincoln Global, Inc. Learning management system for a real-time simulated virtual reality welding training environment
US9779592B1 (en) 2013-09-26 2017-10-03 Apple Inc. Geared haptic feedback element
US9928950B2 (en) 2013-09-27 2018-03-27 Apple Inc. Polarized magnetic actuators for haptic response
US9886093B2 (en) 2013-09-27 2018-02-06 Apple Inc. Band with haptic actuators
WO2015047364A1 (en) 2013-09-29 2015-04-02 Pearl Capital Developments Llc Devices and methods for creating haptic effects
CN105683865B (zh) 2013-09-30 2018-11-09 苹果公司 用于触觉响应的磁性致动器
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
WO2015088491A1 (en) 2013-12-10 2015-06-18 Bodhi Technology Ventures Llc 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 株式会社デンソー 操作装置
EP3611597B1 (de) * 2014-03-31 2023-06-07 Sony Group Corporation Vorrichtung zur präsentation von taktiler erfassung, signalerzeugungsvorrichtung, system zur präsentation von taktiler erfassung und verfahren zur präsentation von taktiler erfassung
AU2014391723B2 (en) 2014-04-21 2018-04-05 Apple Inc. Apportionment of forces for multi-touch input devices of electronic devices
CN106233358A (zh) 2014-06-02 2016-12-14 林肯环球股份有限公司 用于人工焊工培训的系统和方法
DE102015209639A1 (de) 2014-06-03 2015-12-03 Apple Inc. Linearer Aktuator
WO2016019091A1 (en) * 2014-07-31 2016-02-04 Cnh Industrial America Llc 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
WO2016036671A2 (en) 2014-09-02 2016-03-10 Apple Inc. Haptic notifications
US10297119B1 (en) 2014-09-02 2019-05-21 Apple Inc. Feedback device in an electronic device
JP6669950B2 (ja) 2014-10-27 2020-03-18 バイタル サイネス インターナショナル インコーポレイテッドVital Sines International Inc. 大動脈の脈波速度および血圧を監視するためのシステムおよび方法
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
US9921652B2 (en) * 2015-06-29 2018-03-20 Apple Inc. Input with haptic feedback
US9535501B1 (en) * 2015-06-29 2017-01-03 Apple Inc. Input with haptic feedback
WO2017044618A1 (en) 2015-09-08 2017-03-16 Apple Inc. Linear actuators for use in electronic devices
CA2999413C (en) * 2015-09-23 2022-07-19 Universite 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
JP6625726B2 (ja) 2016-03-04 2019-12-25 株式会社ソニー・インタラクティブエンタテインメント 制御装置及び制御プログラム
US10039080B2 (en) 2016-03-04 2018-07-31 Apple Inc. Situationally-aware alerts
WO2017152139A1 (en) 2016-03-04 2017-09-08 Apple Inc. Input with haptic feedback
US10268272B2 (en) 2016-03-31 2019-04-23 Apple Inc. Dampening mechanical modes of a haptic actuator using a delay
JP6626576B2 (ja) 2016-07-21 2019-12-25 株式会社ソニー・インタラクティブエンタテインメント 操作デバイス、及び制御システム
CN109478099B (zh) 2016-07-26 2022-03-01 索尼互动娱乐股份有限公司 操作装置及操作装置的控制方法
EP3493029B1 (de) * 2016-07-26 2020-07-22 Sony Interactive Entertainment Inc. Informationsverarbeitungssystem, betriebsvorrichtung und verfahren zur steuerung der betriebsvorrichtung
EP3319066A1 (de) 2016-11-04 2018-05-09 Lincoln Global, Inc. Magnetische frequenzwahl für elektromagnetische positionsverfolgung
US11202682B2 (en) 2016-12-16 2021-12-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
WO2019064518A1 (ja) 2017-09-29 2019-04-04 株式会社ソニー・インタラクティブエンタテインメント 操作デバイス、及びその制御装置
WO2019082386A1 (ja) 2017-10-27 2019-05-02 株式会社ソニー・インタラクティブエンタテインメント 操作デバイス
WO2019107207A1 (ja) 2017-11-30 2019-06-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理方法、及びプログラム
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
WO2021005328A1 (en) * 2019-07-11 2021-01-14 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
US20210303075A1 (en) * 2020-03-30 2021-09-30 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 (de) 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.
US5103404A (en) * 1985-12-06 1992-04-07 Tensor Development, Inc. Feedback for a manipulator
US4934694A (en) 1985-12-06 1990-06-19 Mcintosh James L Computer controlled exercise system
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 (de) 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
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
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
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 株式会社日立製作所 マニピユレ−タの制御装置
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
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
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
GB8803847D0 (en) * 1988-02-18 1988-03-16 Renishaw Plc Mounting for surface-sensing device
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
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
US4949119A (en) 1989-01-12 1990-08-14 Atari Games Corporation Gearshift for a vehicle simulator using computer controlled realistic real world forces
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
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
WO1992016922A1 (en) 1991-03-21 1992-10-01 Atari Games Corporation Vehicle simulator including cross-network feedback
US5203563A (en) 1991-03-21 1993-04-20 Atari Games Corporation Shaker control device
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
WO1992021117A1 (en) * 1991-05-23 1992-11-26 Atari Games Corporation Modular display simulator
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 (de) * 1991-07-27 1996-01-31 Renishaw Transducer Systems Limited Kalibrier- und Messgerät
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
US5220260A (en) 1991-10-24 1993-06-15 Lex Computer And Management Corporation Actuator having electronically controllable tactile responsiveness
US5889670A (en) 1991-10-24 1999-03-30 Immersion Corporation Method and apparatus for tactilely responsive user interface
US5271290A (en) 1991-10-29 1993-12-21 United Kingdom Atomic Energy Authority Actuator assembly
JPH08504050A (ja) * 1991-11-21 1996-04-30 チェリー・ミクロシャルター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング 平形キースイッチ
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
US5245320A (en) 1992-07-09 1993-09-14 Thrustmaster, Inc. Multiport game card with configurable address
US5551701A (en) 1992-08-19 1996-09-03 Thrustmaster, Inc. Reconfigurable video game controller with graphical reconfiguration display
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
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
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
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 (de) 1993-01-21 1994-07-27 International Business Machines Corporation Taktiler Rückführungsmechanismus für Zeigersteuerung
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
US5396266A (en) 1993-06-08 1995-03-07 Technical Research Associates, Inc. Kinesthetic feedback apparatus and method
US5405152A (en) 1993-06-08 1995-04-11 The Walt Disney Company Method and apparatus for an interactive video game with physical feedback
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
US5739811A (en) 1993-07-16 1998-04-14 Immersion Human Interface Corporation Method and apparatus for controlling human-computer interface systems providing force feedback
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
US5701140A (en) 1993-07-16 1997-12-23 Immersion Human Interface Corp. Method and apparatus for providing a cursor control interface with 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
US5721566A (en) 1995-01-18 1998-02-24 Immersion Human Interface Corp. Method and apparatus for providing damping force feedback
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
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
EP0660258B1 (de) 1993-12-20 2000-03-08 Seiko Epson Corporation 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 電気−機械変換素子を使用したレンズ駆動装置
WO1996007965A2 (en) 1994-09-07 1996-03-14 Philips Electronics N.V. Virtual workspace with user-programmable tactile feedback
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
AU734018B2 (en) 1995-10-09 2001-05-31 Nintendo Co., Ltd. Three-dimension image processing system
US5754023A (en) 1995-10-26 1998-05-19 Cybernet Systems Corporation Gyro-stabilized platforms for force-feedback applications
JP2000501033A (ja) 1995-11-30 2000-02-02 ヴァーチャル テクノロジーズ インコーポレイテッド 触覚をフィードバックする人間/機械インターフェース
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
US20010030658A1 (en) 2001-10-18
US5734373A (en) 1998-03-31
US6580417B2 (en) 2003-06-17
US6982700B2 (en) 2006-01-03
JP2010061667A (ja) 2010-03-18
US20060007184A1 (en) 2006-01-12
JP4689747B2 (ja) 2011-05-25
JP2011065678A (ja) 2011-03-31
EP0852789A1 (de) 1998-07-15
DE69636703D1 (de) 2006-12-28
US20030193475A1 (en) 2003-10-16
JP4929394B2 (ja) 2012-05-09
JPH11514469A (ja) 1999-12-07
US8077145B2 (en) 2011-12-13
EP0852789A4 (de) 1998-12-09
WO1997012357A1 (en) 1997-04-03
US6219033B1 (en) 2001-04-17
EP0852789B1 (de) 2006-11-15
CA2233136A1 (en) 1997-04-03
CA2233136C (en) 2012-01-31

Similar Documents

Publication Publication Date Title
DE69636703T2 (de) Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners
DE69635902T2 (de) Verfahren und einrichtung zur kraftrückkopplung für eine graphische benutzerschnittstelle
DE10004372B4 (de) Gestaltung von Kraftempfindungen für Computeranwendungen mit Geräuschen
US5959613A (en) Method and apparatus for shaping force signals for a force feedback device
DE10122385B4 (de) Verfahren und System zum Verarbeiten von Kraftrückkopplungseffekt-Befehlen sowie Computerprogrammprodukt
US7843424B2 (en) Method and apparatus for designing force sensations in force feedback computer applications
US5721566A (en) Method and apparatus for providing damping force feedback
EP0995152B1 (de) Verfahren und vorrichtung zum entwickeln von systemen zum fühlen der betätigungskraft in computeranwendungen mit kraftrückmeldung
WO1997012357A9 (en) Method and apparatus for controlling force feedback interface systems utilizing a host computer
US6518951B1 (en) Multiperson tactual virtual environment

Legal Events

Date Code Title Description
8364 No opposition during term of opposition