DE69627046T2 - Sichere und preisgünstige Rechner-Peripheriegeräte mit Kraftrückkoppelung für Konsumanwendungen - Google Patents

Sichere und preisgünstige Rechner-Peripheriegeräte mit Kraftrückkoppelung für Konsumanwendungen

Info

Publication number
DE69627046T2
DE69627046T2 DE69627046T DE69627046T DE69627046T2 DE 69627046 T2 DE69627046 T2 DE 69627046T2 DE 69627046 T DE69627046 T DE 69627046T DE 69627046 T DE69627046 T DE 69627046T DE 69627046 T2 DE69627046 T2 DE 69627046T2
Authority
DE
Germany
Prior art keywords
force
user
microprocessor
host
interface device
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
DE69627046T
Other languages
English (en)
Other versions
DE69627046D1 (de
Inventor
Adam C Braun
Louis B Rosenberg
Bruce M Schena
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 DE69627046D1 publication Critical patent/DE69627046D1/de
Application granted granted Critical
Publication of DE69627046T2 publication Critical patent/DE69627046T2/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/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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
    • 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/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
    • 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/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
    • A63F2300/1031Features 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 using a wireless connection, e.g. Bluetooth, infrared connections
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im allgemeinen Schnittstellenvorrichtungen zwischen Menschen und Computern und insbesondere Computer-Schnittstellenvorrichtungen, die eine Kraftrückkopplung für den Benutzer vorsehen.
  • Computersysteme werden in vielen verschiedenen Industrien in großem Umfang verwendet, um computergesteuerte Simulationen, Spiele und andere Anwendungsprogramme zu implementieren. Insbesondere sind diese Arten von Spielen und Simulationen auf dem Massenmarkt von Heimanwendern sehr beliebt. Ein Computersystem zeigt typischerweise einem Benutzer eine visuelle Umgebung auf einem Bildschirm oder einer anderen visuellen Ausgabevorrichtung an. Benutzer können mit der angezeigten Umgebung in Dialog treten, um ein Spiel zu spielen, eine Simulation oder eine Umgebung einer "virtuellen Realität" zu erleben, oder anderweitig auf dem Bildschirm abgebildete Ereignisse oder Bilder zu beeinflussen. Ein solcher Benutzerdialog kann durch die Verwendung einer Mensch-Computer-Schnittstellenvorrichtung, wie z. B. eines Steuerhebels, einer "Steuerpult"- Tastensteuereinheit, einer Maus, einer Rollkugel, eines Stifts und Tabletts, Fuß- oder Handpedalen oder dergleichen, die mit dem Computersystem verbunden ist, welches die angezeigte Umgebung steuert, implementiert werden. Der Computer aktualisiert das Spiel oder die Simulation als Reaktion auf die Benutzerbedienung eines bewegten Objekts, wie z. B. eines Steuerhebelgriffs oder einer Maus, und sieht für den Benutzer, der den Bildschirm und typischerweise Lautsprecher verwendet, eine Rückkopplung vor.
  • Bei einigen Schnittstellenvorrichtungen ist für den Benutzer auch eine taktile (z. B. Berührungs-) Rückkopplung vorgesehen, die allgemeiner als "Kraftrückkopplung" bekannt ist. Diese Arten von Schnittstellenvorrichtungen können für den Benutzer, der das physische Objekt der Schnittstellenvorrichtung bedient, physische Empfindungen vorsehen. Typischerweise sind Motoren oder andere Stellglieder mit dem Schnittstellenobjekt gekoppelt und sind mit dem Steuercomputersystem verbunden. Das Computersystem empfängt Sensorsignale von der Schnittstellenvorrichtung und sendet geeignete Kraftrückkopolungs-Steuersignale zu den Stellgliedern der Schnittstellenvorrichtung in Verbindung mit Simulations-/Spielereignissen. Die Stellglieder sehen dann Kräfte auf dem Schnittstellenobjekt vor. Das Computersystem kann somit physische Empfindungen in Verbindung mit einer anderen visuellen und akustischen Rückkopplung zum Benutzer übertragen, wenn der Benutzer das Objekt der Schnittstellenvorrichtung ergreift oder berührt. Kraftrückkopplungs-Schnittstellenvorrichtungen können eine ganz neue Modalität für den Mensch-Computer-Dialog vorsehen.
  • Kraftrückkopplungs-Eingabe/Ausgabe-(E/A)-Vorrichtungen des Standes der Technik haben sich auf die Bereitstellung einer maximalen taktilen Wiedergabetreue konzentriert, d. h. es war erwünscht, dass der Realismus der taktilen Rückkopplung optimiert wird. Dies liegt daran, dass die meisten Kraftrückkopplungsvorrichtungen auf die speziellen Bedürfnisse von stark industriellen oder wissenschaftlichen Anwendungen und nicht auf einen Massenanwendermarkt ausgerichtet waren. Um einen solchen Realismus zu erreichen, wurden Entwurfserwägungen, die für den Massenmarkt nützlich sind, wie z. B. geringe Größe und geringes Gewicht, geringe Komplexität, Programmierkompatibilität, geringe Kosten, und Sicherheit, im Stand der Technik geopfert. Folglich umfassen typische Kraftrückkopplungs-Schnittstellenvorrichtungen komplexe Robotermechanismen, die genaue, sperrige und teure Komponenten benötigen, welche für Anwendungen signifikante Leistungsanforderungen aufweisen und schwierig zu programmieren sind.
  • Außerdem verwenden die Kraftrückkopplungsvorrichtungen des Standes der Technik typischerweise einen Hauptrechner, um eine Steuerschleife um das System zu schließen, um Empfindungen zu erzeugen und die Sicherheit und Stabilität durch eine direkte Hauptrechnersteuerung aufrechtzuerhalten. Fig. 1 stellt ein Blockdiagramm eines Steuersystems 2 mit einer typischen von einem Hauptrechner gesteuerten Schleife dar. Ein vom Benutzer bedientes Objekt 3, wie z. B. ein Steuerhebel oder ein ähnliches Objekt, wird von einem Benutzer bewegt, um mit einem Hauptrechner 4 mit einer Anzeigevorrichtung 5 in Verbindung zu treten. Sensoren 6 erfassen die Position des Benutzerobjekts in vorgesehenen Freiheitsgraden und können auch Tasten oder andere Steuerungen aufweisen, die Benutzerhandlungen, wie z. B. das Drücken einer Taste, erfassen. Die Sensordaten, einschließlich Positions- und Tastendaten, werden über einen bidirektionalen Datenübertragungsbus 7, der typischerweise mit einer in den Hauptrechner eingesteckten Schnittstellenkarte verbunden ist, zum Hauptrechner 4 gesandt. Um die Steuerschleife zu schließen, sendet der Hauptrechner 4 Kraftbefehle über den Bus 7 zu den Stellgliedern 8, und die Stellglieder geben Kräfte auf dem Objekt 3 an den Benutzer aus. Die Funktionen des Lesens der Sensordaten und des Ausgebens von Kraftwerten zu den Stellgliedern. 7 kann für den Hauptrechnerprozessor eine Belastung darstellen, welche die Leistung des Hauptrechners bei anderen Hauptrechneraufgaben und der Anwendungsausführung beeinträchtigt.
  • Kraftrückkopplungs-Schnittstellenvorrichtungen müssen für den Massenmarkt unbedingt kostengünstige Vorrichtungen sein, die einfach herzustellen sind, so dass die Vorrichtung auf den aggressiven Heimcomputer- und Heimvideospiel-Märkten mit hoher Absatzmenge im Preis wettbewerbsfähig ist.
  • US-A-3 978 392 offenbart eine allgemeine Leistungsschaltung zum Starten eines Kraftfahrzeugs, von Schweißmaschinen mit Betriebszyklen und Alarmlampen, -glocken und -hupen. In US-A-3978392 wird kein Vorschlag zum Liefern von Leistung zu einem Stellglied in einer Kraftrückkopplungs- Schnittstellenvorrichtung und auch nicht für die Probleme, die mit einer solchen Vorrichtung verbunden sind, gemacht. In EP-A-0626534 ist eine Kraftrückkopplungs- Eingabevorrichtung ohne irgendeine Verwendung einer Leistungsspeichervorrichtung offenbart. Eine Kraftrückkopplungs-Eingabevorrichtung ist eine typische, für die die zu erfindende Schaltung verwendet werden kann.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung richtet sich auf Implementierungen einer Mensch/Computer- Schnittstellenvorrichtung zum Steuern und Vorsehen einer Kraftrückkopplung für einen Benutzer. Implementierungen werden bereitgestellt, um die Kosten bei der Herstellung einer Schnittstellenvorrichtung zu senken und um die Vorrichtung für den Verbrauchermarkt von Computer- und Videospielanwendern mit hoher Absatzmenge sicher zu machen.
  • Eine Schaltung der vorliegenden Erfindung, wie in Anspruch 1 definiert, zum Speichern von Leistung in einer Kraftrückkopplungs-Schnittstellenvorrichtung, die einen Benutzer mit einem Hauptrechnersystem verbindet, umfasst einen Kondensator zum Speichern von Leistung, die durch ein in die Schaltung eingegebenes Signal geliefert wird. Eine Abtastvorrichtung, die mit dem Kondensator gekoppelt ist, stellt fest, wann der Kondensator voll aufgeladen ist, durch Überwachen des Eingangssignals, um festzustellen, wann der Kondensator voll aufgeladen ist. Eine Steuervorrichtung liefert ein Steuersignal zu einem Treiber und einem Stellglied, so dass das Stellglied eine Kraft auf ein Benutzerobjekt der Schnittstellenvorrichtung aufbringen kann. Die gespeicherte Leistung vom Kondensator wird zum Stellglied geliefert, wenn die Kraft aufgebracht wird. Ein Strombegrenzer begrenzt den Strom des Eingangssignals und liefert den begrenzten Strom zum Kondensator. Das Eingangsspannungssignal kann von einem Spielanschluss- Schnittstellenbus, der mit dem Hauptrechnersystem gekoppelt ist, oder von einer Leistungsversorgung, die in der Schnittstellenvorrichtung enthalten ist, empfangen werden.
  • Die Schnittstellenvorrichtung der vorliegenden Erfindung umfasst verschiedene kostengünstige Komponenten, die sich zur Bereitstellung einer genauen Kraftrückkopplung für den Heimanwendermarkt mit hoher Absatzmenge und ähnliche Märkte eignen. Die Verwendung der parallelen Kombination eines seriellen Busses und eines Spielanschlussbusses, die mit zwei Anschlüssen des Hauptrechnersystems gekoppelt sind, ermöglicht, dass ein Bus zum Senden von Signalen zum Hauptrechner und der andere Bus zum Empfangen von Kraftbefehlen vom Hauptrechner verwendet wird, was somit ein sehr kostengünstiges System mit einer realistischen Kraftrückkopplung bereitstellt. Der lokale Vorrichtungsmikroprozessor verarbeitet Befehle unabhängig vom Hauptrechner, was folglich eine bedeutende Verarbeitungszeit im Hauptrechner einspart. Andere kostengünstige Ausführungsbeispiele benötigen keine oder minimale Kraftbefehle vom Hauptrechner, was ermöglicht, dass eine einfache Kraftrückkopplung für die Benutzer vorgesehen wird. Die Leistungsschaltung der vorliegenden Erfindung ermöglicht, dass kleinere Leistungsversorgungen verwendet werden, oder beseitigt den Bedarf für eine Leistungsversorgung.
  • Diese und weitere Vorteile der vorliegenden Erfindung werden nach lesen der folgenden Beschreibung der Erfindung und einer Studie der verschiedenen Figuren der Zeichnung für Fachleute ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines Steuersystems des Standes der Technik für eine Kraftrückkopplungs- Schnittstellenvorrichtung;
  • Fig. 2 ist ein Blockdiagramm eines erfindungsgemäßen Steuersystems zum Steuern einer Kraftrückkopplungs- Schnittstellenvorrichtung von einem Hauptrechner;
  • Fig. 3 und 3a-b sind schematische Diagramme eines kostengünstigen Ausführungsbeispiels der Kraftrückkopplungs-Schnittstellenvorrichtung von Fig. 2;
  • Fig. 4a-4f sind Blockdiagramme von alternativen kostengünstigen "Rückstoß"-Ausführungsbeispielen der Schnittstellenvorrichtung von Fig. 2;
  • Fig. 5 und 5a-c sind schematische Diagramme eines alternativen kostengünstigen Ausführungsbeispiels der Schnittstellenvorrichtung von Fig. 2 ohne lokalen Mikroprozessor;
  • Fig. 6 ist ein Blockdiagramm einer Leistungsschaltung der vorliegenden Erfindung zur Verwendung bei einer Kraftrückkopplungs-Schnittstellenvorrichtung;
  • Fig. 7 ist sein Ablaufdiagramm, das ein Ausführungsbeispiel eines Verfahrens der vorliegenden Erfindung zum Steuern einer Kraftrückkopplungs-Schnittstellenvorrichtung darstellt;
  • Fig. 8 ist ein schematisches Diagramm eines Gestängemechanismus mit fünf Stangen zur Bereitstellung von mehreren Freiheitsgraden für das Benutzerobjekt der Schnittstellenvorrichtung;
  • Fig. 9 ist ein schematisches Diagramm einer Schaltung für einen Berührungsplatten-Schutzschalter der vorliegenden Erfindung;
  • Fig. 9a ist eine perspektivische Ansicht eines Beispiels eines Steuerhebels mit dem Berührungsplatten-Schutzschalter von Fig. 9;
  • Fig. 10 ist eine graphische Darstellung eines Handgewichts-Schutzschalters der vorliegenden Erfindung;
  • Fig. 11 ist eine graphische Darstellung eines Lösesteuerhebel-Sicherheitsmerkmals der vorliegenden Erfindung; und
  • Fig. 11a-11d sind graphische Darstellungen der Funktion des Steuerhebels von Fig. 9.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Fig. 2 ist ein Blockdiagramm, das ein herstellerkompatibles Steuersystem 10 der vorliegenden Erfindung für eine Kraftrückkopplungs- Schnittstellenvorrichtung, die von einem Hauptrechnersystem gesteuert wird, darstellt. Das Steuersystem 10 umfasst ein Hauptrechnersystem 12 und eine Schnittstellenvorrichtung 14 (oder "Kraftrückkopplungs-Peripheriegerät").
  • Das Hauptrechnersystem 12 ("Hauptrechner") ist vorzugsweise ein Personalcomputer, wie z. B. ein IBM-kompatibler oder Macintosh-Personalcomputer, oder ein Arbeitsplatzrechner, wie z. B. ein SUN oder Silicon Graphics Arbeitsplatzrechner. Das Hauptrechnersystem kann beispielsweise ein Personalcomputer sein, der unter dem MS-DOS- oder Windows- Betriebssystem entsprechend einem IBM PC AT Standard arbeitet. Alternativ kann das Hauptrechnersystem 12 eines von einer Vielfalt von Heimvideospielsystemen sein, die gewöhnlich mit einem Fernsehgerät verbunden werden, wie z. B. Systeme, die von Nintendo, Sega oder Sony erhältlich sind. Bei anderen Ausführungsbeispielen kann das Heimcomputersystem 12 ein anwendungsspezifischerer "Gerätesatz" oder "Internetcomputer" sein, die beispielsweise verwendet werden können, um für Benutzer interaktives Fernsehen oder Informationsfunktionen bereitzustellen.
  • Bei dem beschriebenen Ausführungsbeispiel implementiert das Hauptrechnersystem 12 ein Hauptrechner-Anwendungsprogramm, mit dem ein Benutzer 22 über Peripheriegeräte und die Schnittstellenvorrichtung 14 in Dialog tritt. Das Hauptrechner-Anwendungsprogramm kann beispielsweise ein Videospiel, eine medizinische Simulation, ein wissenschaftliches Analyseprogramm oder sogar ein Betriebssystem oder ein anderes Anwendungsprogramm sein, das eine Kraftrückkopplung verwendet. Typischerweise liefert die Hauptrechneranwendung auf einer Anzeigeausgabevorrichtung anzuzeigende Bilder, wie nachstehend beschrieben, und/oder eine andere Rückkopplung, wie z. B. Tonsignale.
  • Das Hauptrechnersystem 12 umfasst vorzugsweise einen Hauptrechner-Mikroprozessor 16, einen Direktzugriffsspeicher (RAM) 17, einen Festwertspeicher (ROM) 19, eine Eingabe/Ausgabe (E/A)-Elektronik 21, einen Takt 18, einen Bildschirm 20 und eine Tonausgabevorrichtung 21. Der Hauptrechner-Mikroprozessor 16 kann eine Vielfalt von erhältlichen Mikroprozessoren von Intel, Motorola, Advanced Micro Devices oder anderen Herstellern umfassen. Der Mikroprozessor 16 kann ein einzelner Mikroprozessorchip sein oder kann mehrere Primär- und/oder Coprozessoren umfassen. Der Mikroprozessor ruft vorzugsweise Befehle und andere notwendige Daten aus dem RAM 17 und ROM 19 ab und speichert diese, wie es Fachleuten gut bekannt ist. Bei dem beschriebenen Ausführungsbeispiel kann das Hauptrechnersystem 12 Sensordaten oder ein Sensorsignal über einen Bus 24 von den Sensoren der Schnittstellenvorrichtung 14 und andere Informationen empfangen. Der Hauptrechner-Mikroprozessor 16 kann Daten auf dem Bus 24 unter Verwendung der E/A-Elektronik 21 empfangen oder übertragen und kann die E/A-Elektronik zur Steuerung von anderen Peripheriegeräten verwenden. Das Hauptrechnersystem 12 kann über den Bus 24 auch einen "Kraftbefehl" zur Schnittstellenvorrichtung 14 ausgeben, um durch die Schnittstellenvorrichtung eine Kraftrückkopplung zu veranlassen.
  • Der Takt 18 ist ein Standard-Taktkristall oder eine äquivalente Komponente, die vom Hauptrechnersystem 12 verwendet wird, um eine Zeitsteuerung für elektrische Signale, die vom Mikroprozessor 16 und anderen Komponenten des Computersystems verwendet werden, zu liefern. Auf den Takt 18 wird vom Hauptrechnersystem 12 in dem Steuerprozess der vorliegenden Erfindung wie anschließend beschrieben zugegriffen.
  • Der Bildschirm 20 ist mit dem Hauptrechner-Mikroprozessor 16 durch geeignete Anzeigetreiber gekoppelt und kann verwendet werden, um Bilder anzuzeigen, die vom Hauptrechnersystem 12 oder anderen Computersystemen erzeugt werden. Der Bildschirm 20 kann ein Standardbildschirm oder eine Kathodenstrahlröhre, eine 3-D-Brille oder irgendeine andere visuelle Schnittstelle sein. Bei einem beschriebenen Ausführungsbeispiel zeigt der Bildschirm 20 Bilder einer Simulations- oder Spielumgebung an. Bei anderen Ausführungsbeispielen können andere Bilder angezeigt werden. Beispielsweise können Bilder angezeigt werden, die einen Blickpunkt von einer Perspektive einer ersten Person beschreiben, wie bei einer Simulation einer virtuellen Realität oder einem Spiel. Oder Bilder, die eine Perspektive einer dritten Person von Objekten, Hintergründen usw. beschreiben, können angezeigt werden. Ein Benutzer 22 des Hauptrechners 12 und der Schnittstellenvorrichtung 14 kann durch Betrachten des Bildschirms 20 eine visuelle Rückkopplung erhalten.
  • Hierin kann der Computer 12 als Computer-"Objekte" oder -"Subjekte" anzeigend bezeichnet werden. Diese Computerobjekte sind keine physischen Objekte, sondern sind logische Softwareeinheitssammlungen von Daten und/oder Prozeduren, die vom Computer 12 auf dem Bildschirm 20 als Bilder angezeigt werden können, wie es Fachleuten gut bekannt ist. Beispielsweise könnte ein Cursor oder ein Blick einer dritten Person auf ein Auto als vom Spieler gesteuerte Computerobjekte betrachtet werden, die über den Bildschirm bewegt werden können. Ein angezeigtes, simuliertes Cockpit eines Flugzeugs könnte ebenfalls als. "Objekt" betrachtet werden, oder das simulierte Flugzeug kann als computergesteuertes "Subjekt" betrachtet werden.
  • Die Tonausgabevorrichtung 21, wie z. B. Lautsprecher, ist vorzugsweise mit dem Hauptrechner-Mikroprozessor 16 über Verstärker, Filter und andere Schaltkreise, die Fachleuten gut bekannt sind, gekoppelt. Der Hauptrechner-Prozessor 16 gibt an die Lautsprecher 21 Signale aus, um eine Tonausgabe an den Benutzer 22 zu liefern, wenn während der Implementierung des Hauptrechner-Anwendungsprogramms ein "Tonereignis" auftritt. Andere Arten von Peripheriegeräten können auch mit dem Hauptrechner-Prozessor 16 gekoppelt sein, wie z. B. Speichervorrichtungen (Festplattenlaufwerk, CD-ROM-Laufwerk, Diskettenlaufwerk usw.), Drucker und andere Eingabe- und Ausgabevorrichtungen.
  • Eine Schnittstellenvorrichtung 14 ist mit dem Hauptrechnersystem 12 durch einen Schnittstellenbus 24 gekoppelt. Der Bus 24 sendet Signale in eine oder beide Richtungen zwischen dem Hauptrechnersystem 12 und der Schnittstellenvorrichtung. Hierin soll sich der Begriff "Bus" als Oberbegriff auf irgendeine Schnittstellen-, Anschluss- oder Datenübertragungsverbindung beziehen, wie z. B. zwischen dem Hauptrechner 12 und einem Peripheriegerät, wie z. B. der Schnittstellenvorrichtung 14, die typischerweise ein oder mehrere Anschlussdrähte, Leitungen, Kabel oder andere Verbindungen aufweist, und die auf verschiedene Arten implementiert werden kann. Bei dem bevorzugten Ausführungsbeispiel ist der Bus 24 ein serieller Schnittstellenbus, der gemäß einem seriellen Übertragungsprotokoll Daten liefert. Ein Schnittstellenanschluss des Hauptrechnersystems 12, wie z. B. ein serieller RS-232-Schnittstellenanachluss, verbindet dei Bus 24 mit dem Hauptrechnersystem 12. Andere serielle Standard-Übertragungsprotokolle können ebenfalls für die serielle Schnittstelle und den Bus 24 verwendet werden, wie z. B. RS-422, ein universeller serieller Bus (USB), MIDI, systemspezifische Anschlüsse an einem Spielsystem von Sega, Sony usw., oder andere Protokolle oder Standards, die Fachleuten gut bekannt sind.
  • Der USB-Standard stellt beispielsweise eine serielle Schnittstelle mit relativ hoher Geschwindigkeit bereit, die bei der vorliegenden Erfindung Kraftrückkopplungssignale mit einem hohen Realitätsgrad liefern kann. Der USB kann auch mehr Leistung zum Antreiben der Peripheriegeräte liefern. Da jeder Vorrichtung, die auf den USB zugreift, vom Hauptrechner eine eindeutige USB-Adresse zugeordnet wird, ermöglicht dies, dass sich mehrere Geräte denselben Bus teilen. Außerdem umfasst der USB-Standard Zeitsteuerdaten, die zusammen mit differentiellen Daten codiert werden. Der USB weist verschiedene nützliche Merkmale für die vorliegende Erfindung auf, wie durchweg in dieser Beschreibung beschrieben wird.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, dass serielle Übertragungssignale mit geringer Bandbreite verwendet werden können, um mit der Schnittstellenvorrichtung 14 in Verbindung zu stehen, was folglich ermöglicht, dass eine eingebaute serielle Standardschnittstelle von vielen Computern direkt verwendet wird. Alternativ kann ein paralleler Anschluss des Hauptrechnersystems 12 mit einem parallelen Bus 24 gekoppelt sein und mit der Schnittstellenvorrichtung unter Verwendung eines parallelen Protokolls, wie z. B. SCSI oder eines PC-Paralleldruckerbusses, im Dialogverkehr stehen. Bei einem anderen Ausführungsbeispiel kann der Bus 24 direkt mit einem Datenbus des Hauptrechnersystems 12 unter Verwendung von beispielsweise einer Steckschnittstellenkarte und einem Einbauplatz oder einem anderen Zugang des Computersystems 12 verbunden werden. In einem IBM AT-kompatiblen Computer kann die Schnittstellenkarte beispielsweise als ISA, EISA, lokaler VESA-Bus, PCI oder eine andere gut bekannte Standard- Schnittstellenkarte implementiert werden, die sich in die Rückwandleiterplatine des Computers einstecken lässt und Eingangs- und Ausgangsanschlüsse zum Verbinden des Hauptdatenbusses des Computers mit dem Bus 24 vorsieht.
  • Bei einem anderen Ausführungsbeispiel kann ein zusätzlicher Bus 25 eingeschlossen sein, um zwischen dem Hauptrechnersystem 12 und der Schnittstellenvorrichtung 14 eine Verbindung herzustellen. Da die Geschwindigkeitsanforderung für Übertragungssignale zum Ausgeben von Kraftrückkopplungssignalen relativ hoch ist, kann die mit dem Bus 24 verwendete einzelne serielle Schnittstelle keine Signale mit einer ausreichend hohen Geschwindigkeit zu und von der Schnittstellenvorrichtung liefern, um Eine realistische Kraftrückkopplung zu erreichen. Bei einem solchen Ausführungsbeispiel kann der Bus 24 mit dem seriellen Standardanschluss des Hauptrechners 12 gekoppelt sein, während ein zusätzlicher Bus 25 mit einem zweiten Anschluss des Hauptrechnersystems gekoppelt sein kann. Beispielsweise umfassen viele Computersysteme zusätzlich zu einem seriellen RS-232- Anschluss einen "Spielanschluss", um einen Steuerhebel oder eine ähnliche Spielsteuereinheit mit dem Computer zu verbinden. Die zwei Busse 24 und 25 können simultan verwendet werden, um eine erhöhte Datenbandbreite bereitzustellen. Der Mikroprozessor 26 kann beispielsweise über einen Spielanschlussbus 25 Sensorsignale zum Hauptrechner 12 senden, während der Hauptrechner 12 über einen unidirektionalen Bus 24 Kraftrückkopplungssignale von einem seriellen Anschluss zum Mikroprozessor 26 ausgeben kann. Ein solches Ausführungsbeispiel wird nachstehend mit Bezug auf Fig. 3 ausführlicher beschrieben. Andere Kombinationen von Datenflusskonfigurationen und Bussen können in anderen Ausführungsbeispielen implementiert werden. Der Spielanschlussbus 25 kann beispielsweise bei einigen Ausführungsbeispielen (wie in Fig. 3) von den Sensoren 28 (als Bus 25a dargestellt) oder von der Sensorschnittstelle 36 (als Bus 25b dargestellt) direkt mit dem Spielanschluss des Hauptrechners 12 verbunden sein.
  • Ein weiteres wichtiges Merkmal, das bei dem Kraftrückkoplungs-Steuersystem 10 erwünscht ist, ist eine Übertragungsleitung zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung 14, die eine Benutzersicherheit beinhaltet. 17a auf dem Benutzerobjekt 34 durch die Stellglieder 30 Kräfte erzeugt werden (wie nachstehend erläutert), kann die Schnittstellenvorrichtung möglicherweise eine gewisse Gefahr für einen Benutzer darstellen, wenn die Busse 24 und/oder 25 während des Betriebs abgetrennt werden. Wenn die Steuerung der Kraftrückkopplung vom Hauptrechner einmal gesperrt ist, können die erzeugten Kräfte unvorhersehbar werden. Somit ist es erwünscht, dass die Stellglieder 30 deaktiviert werden, wenn die Busse 24 und/oder 25 während des Betriebs abgetrennt werden. Bei der vorliegenden Erfindung kann dieses Merkmal durch Festlegen von einer der Leitungen des Busses 24 und/oder einer der Leitungen des Busses 25 als "Lebensleitung" implementiert werden. Der Mikroprozessor liest periodisch die Lebensleitungssignale, um zu prüfen, ob die Busse noch angeschlossen sind. Wenn die Vorrichtung abgekoppelt wird, erfasst der Mikroprozessor kein Signal und betrachtet den Zustand als "getrennt". Wenn kein Signal erfasst wird, dann sendet der Mikroprozessor automatisch ein Deaktivierungssignal zu den Stellgliedern. Ebenso kann der Hauptrechner bei einigen Ausführungsbeispielen periodisch ein aus dem Mikroprozessor auf einem der Busse 24 oder 25 ausgegebenes Lebensleitungssignal prüfen. Wenn kein solches Signal erfasst wird, kann der Hauptrechner auf dem anderen Bus 24 oder 25 (wenn noch angeschlossen) einen Stellglied-Deaktivierungsbefehl ausgeben. Bei Ausführungsbeispielen ohne Mikroprozessor 26 (siehe nachstehend) kann die Lebensleitung mit einem Schutzschalter 41 gekoppelt sein. Für eine RS-232-, RS-422- oder Spielanschlussschnittstelle kann eine der Steuerleitungen im Schnittstellenbus als Lebensleitung verwendet werden. Wenn eine USB-Schnittstelle verwendet wird, kann das dem USB-Standard innewohnende "Anschluss- Trenn"-Merkmal zweckmäßigerweise für die Lebensleitung verwendet werden.
  • Es sollte beachtet werden, dass der Bus 24 und der Bus 25 entweder als unidirektionaler Bus oder als bidirektionaler Bus vorgesehen sein können. Bei dem Ausführungsbeispiel mit beiden Bussen 24 und 25 können sie beide unidirektionale Busse sein, die für die beschriebenen Ausführungsbeispiele verschiedene Vorteile aufweisen. Dies ermöglicht, dass die volle Bandbreite jedes Busses für eine Richtung zur Datenübertragung verwendet wird, was bewirkt, dass die Datenübertragungsraten im Vergleich zur normalen bidirektionalen Verwendung von jedem Bus verdoppelt werden. Außerdem kann das Datenübertragungsprotokoll für jeden Bus beim unidirektionalen Betrieb vereinfacht werden. Außerdem kann die Software eines unidirektionalen Treibers im Hauptrechner einfacher sein und weniger Prozessorzeit benötigen als die Software für die bidirektionale Übertragung.
  • Bei noch einem weiteren Ausführungsbeispiel können Signale, die zwischen dem Hauptrechnersystem 12 und der Schnittstellenvorrichtung 14 laufen, unter Verwendung einer drahtlosen Übertragung gesandt und empfangen werden. Beispielsweise kann eine Antenne in sowohl der Schnittstellenvorrichtung 14 als auch im Hauptrechner 12 enthalten sein, um elektromagnetische Signale, wie z. B. Funksignale, Infrarotsignale oder Mikrowellensignale, zu senden und zu empfangen. Bei einem solchen Ausführungsbeispiel kann ein "Bus" 24 oder 25 konzeptionell ein Übertragungs-/Empfangsmedium oder einen Übertragungs-/Empfangskanal, wie z. B. die Luft, umfassen.
  • Die Schnittstellenvorrichtung 14 ist für den Hauptrechner 12 ein Peripheriegerät, das einen lokalen Mikroprozessor 26, Sensoren 28, Stellglieder 30, ein Benutzerobjekt 34, eine wahlweise Sensorschnittstelle 36, eine wahlweise Stellgliedschnittstelle 38 und andere wahlweise Eingabevorrichtungen 39 umfasst. Die Schnittstellenvorrichtung 14 kann auch zusätzliche elektronische Komponenten zur Datenübertragung über Standardprotokolle auf dem Bus 24 enthalten. Beispielsweise könnte ein separater universeller asynchroner Empfänger/Sender (UART) oder ein Pegelumsetzer enthalten sein, um Signale auf dem Bus 24 zu empfangen/umzuwandeln; oder solche Komponenten können im Mikroprozessor 26 enthalten sein. Das Ausführungsbeispiel von Fig. 2 sieht eine Steuerschleife zwischen dem Mikroprozessor 26, den Stellgliedern 30, dem Benutzerobjekt 34 und den Sensoren 28 (die zum Mikroprozessor 26 zurückgeführt sind) vor. Anders als bei dem in Fig. 1 gezeigten Ausführungsbeispiel des Standes der Technik ist der Hauptrechner 12 nicht in der Steuerschleife enthalten, was folglich den Hauptrechner von vielen Routineaufgaben befreit und ermöglicht, dass er die Hauptrechnerprozessorzeit anderen Aufgaben zuordnet. Der Mikroprozessor 26 kann vom Hauptrechner Befehle hoher Ebene empfangen und die Routineaufgaben der Steuerschleife in Reflexprozessen bearbeiten, wie nachstehend erörtert.
  • Bei dem bevorzugten Ausführungsbeispiel können mehrere Schnittstellenvorrichtungen 14 über den Bus 24 (oder mehrere Busse 24) mit einem einzelnen Hauptrechnersystem 12 gekoppelt sein, so dass mehrere Benutzer simultan mit dem Hauptrechner-Anwendungsprogramm eine Verbindung herstellen können (beispielsweise bei einem Spiel für mehrere Spieler oder einer Simulation). Außerdem können mehrere Spieler im Hauptrechner-Anwendungsprogramm unter Verwendung von vernetzten Hauptrechnern 12 mit mehreren Schnittstellenvorrichtungen 14 im Dialog stehen, wie Fachleuten gut bekannt ist.
  • Der lokale Mikroprozessor 26 (oder "Vorrichtungsmikroprozessor") ist mit dem Bus 24 gekoppelt und ist vorzugsweise innerhalb des Gehäuses der Schnittstellenvorrichtung 14 enthalten, um eine schnelle Kommunikation mit anderen Komponenten der Schnittstellenvorrichtung zu ermöglichen. Der Prozessor 26 wird als zur Schnittstellenvorrichtung 14 "lokal" betrachtet und ist ein von jeglichen Mikroprozessoren im Hauptrechnersystem 12 separater Mikroprozessor. Der lokale Prozessor 26 teilt sich beispielsweise nicht einen Datenbus, Adressbus und/oder Speicher mit dem (den) Hauptrechner-Prozessor(en) 16. "Lokal" bezieht sich vorzugsweise auch auf einen Prozessor 26, der für die Kraftrückkopplung und Sensor-E/A der Schnittstellenvorrichtung 14 reserviert ist und mit den Sensoren 28 und den Stellgliedern 30 eng gekoppelt ist, wie z. B. innerhalb des Gehäuses für die Schnittstellenvorrichtung oder in einem Gehäuse, das eng mit der Schnittstellenvorrichtung 14 gekoppelt ist. Der Mikroprozessor 26 wird mit Softwarebefehlen versorgt, um dem Prozessor zu befehlen, auf Befehle oder Aufforderungen vom Hauptrechner 16 zu warten, die Befehle oder Aufforderungen zu decodieren und/oder zu analysieren, Daten und Auswahlroutinen zu bearbeiten und Eingangs- und Ausgangssignale gemäß den Befehlen oder Aufforderungen zu verarbeiten/steuern. Außerdem arbeitet der Prozessor 26 vorzugsweise unabhängig vom Hauptrechner 16 durch Lesen von Sensorsignalen und Berechnen von geeigneten Kräften aus diesen Sensorsignalen, Zeitsignalen und einer "Kraftroutine", die gemäß einem Hauptrechnerbefehl ausgewählt wird, wie mit Bezug auf Fig. 7 beschrieben. Geeignete Mikroprozessoren zur Verwendung als lokaler Mikroprozessor 26 umfassen beispielsweise den MC68HC711E9 von Motorola und den PIC16C74 von Microchip; andere gut bekannte Arten von Mikroprozessoren können ebenfalls verwendet werden. Der Mikroprozessor 26 kann einen Mikroprozessorchip oder mehrere Prozessoren und/oder Coprozessorchips umfassen. Bei anderen Ausführungsbeispielen kann der Mikroprozessor 26 einen Digitalsignalprozessor (DSP)-Chip enthalten. Der lokale Speicher 27, wie z. B. ein RAM und/oder ROM (EPROM, EEPROM, usw.), ist vorzugsweise mit dem Mikroprozessor 26 in der Schnittstellenvorrichtung 14 gekoppelt, um Befehle für den Mikroprozessor 26 zu speichern und temporäre und andere Daten zu speichern. Der Mikroprozessor 26 kann Signale von den Sensoren 28 empfangen und Signale zu den Stellgliedern 30 der Schnittstellenvorrichtung 14 gemäß den vom Hauptrechner 12 über den Bus 24 gelieferten Befehlen liefern.
  • Außerdem kann ein lokaler Takt 29 mit dem Mikroprozessor 26 gekoppelt sein, um Zeitsteuerdaten zu liefern, ähnlich dem Systemtakt 18 des Hauptrechners 12; die Zeitsteuerdaten könnten beispielsweise erforderlich sein, um von den Stellgliedern 30 ausgegebene Kräfte zu berechnen (z. B. Kräfte, die von berechneten Geschwindigkeiten oder anderen zeitabhängigen Faktoren abhängen). Bei anderen Ausführungsbeispielen, die die USB- Übertragungsschnittstelle verwenden, können Zeitsteuerdaten für den Mikroprozessor 26 aus dem USB-Signal wiedergewonnen werden. Der USB weist ein Taktsignal auf, das mit dem Datenstrom codiert wird und verwendet werden kann. Alternativ kann die isochrone (Strom-) Betriebsart des USB verwendet werden, um Zeitsteuerinformationen aus der Standard-Datenübertragungsrate abzuleiten. Der USB weist auch einen Abtasttakt, Bustakt und Diensttakt auf, die ebenfalls verwendet werden können.
  • Bei dem bevorzugten "Reflex"-Ausführungsbeispiel liefert das Hauptrechnersystem 12 beispielsweise Überwachungsbefehle hoher Ebene über den Bus 24 zum Mikroprozessor 26 und der Mikroprozessor 26 verwaltet Kraftsteuerungs- ("Reflex"-) Schleifen niedriger Ebene für die Sensoren 28 und Stellglieder 30 gemäß Kraftroutinen, die durch die Befehle hoher Ebene ausgewählt werden. Bei einem anderen Ausführungsbeispiel kann der Hauptrechner 12 Kraftbefehle niedriger Ebene über den Bus 24 liefern, die der Mikroprozessor 26 direkt zu den Stellgliedern 30 überträgt. Diese Ausführungsbeispiele werden mit Bezug auf das Verfahren von Fig. 7 ausführlicher beschrieben.
  • Der Mikroprozessor 26 hat vorzugsweise auch Zugriff auf einen elektrisch löschbaren, programmierbaren ROM (EEPROM) oder eine andere Speichervorrichtung 27 zum Speichern von Kalibrierungsparametern. Die Kalibrierungsparameter können geringfügige Fertigungsschwankungen in verschiedenen physikalischen Eigenschaften der Komponenten von verschiedenen Schnittstellenvorrichtungen, die durch dasselbe Fertigungsverfahren hergestellt werden, wie z. B. physikalische Maße, kompensieren. Die Kalibrierungsparameter können vom Hersteller festgelegt und gespeichert werden, bevor die Schnittstellenvorrichtung 14 verkauft wird, oder wahlweise können die Parameter von einem Benutzer der Schnittstellenvorrichtung festgelegt werden. Die Kalibrierungsparameter werden vom Prozessor 26 verwendet, um die Eingangssensorsignale und/oder Ausgangskraftwerte für die Stellglieder 30 zu modifizieren, um ungefähr denselben Bereich von Kräften auf dem Objekt 34 in einer großen Anzahl von hergestellten Schnittstellenvorrichtungen 14 vorzusehen. Die Implementierung der Kalibrierungsparameter ist Fachleuten gut bekannt.
  • Der Mikroprozessor 26 kann auch Befehle von irgendwelchen anderen Eingabevorrichtungen empfangen, die in der Schnittstellenvorrichtung 14 enthalten sind, und liefert geeignete Signale zum Hauptrechner 12, um anzuzeigen, dass die Eingangsinformation empfangen wurde, und kann irgendwelche Informationen, die in der Eingangsinformation enthalten sind, senden. Beispielsweise können Tasten, Schalter, Ziffernscheiben oder andere Eingabesteuerungen auf der Schnittstellenvorrichtung 14 oder dem Benutzerobjekt 34 Signale zum Mikroprozessor 26 liefern. Die Eingangsinformation könnte direkt vom Mikroprozessor zum Hauptrechner gesandt werden, oder sie kann verarbeitet oder mit anderen Daten, die zum Hauptrechner gesandt werden, kombiniert werden.
  • Bei dem bevorzugten Ausführungsbeispiel sind die Sensoren 28, die Stellglieder 30 und der Mikroprozessor 26 und andere zugehörige elektronische Komponenten in einem Gehäuse für die Schnittstellenvorrichtung 14 enthalten, mit dem das Benutzerobjekt 34 direkt oder indirekt gekoppelt ist. Alternativ kann der Mikroprozessor 26 und/oder andere elektronische Komponenten der Schnittstellenvorrichtung 14 in einem vom Benutzerobjekt 34, den Sensoren 28 und den Stellgliedern 30 separaten Gehäuse vorgesehen sein. Zusätzliche mechanische Strukturen können Ebenfalls in der Schnittstellenvorrichtung 14 enthalten sein, um das Objekt 34 mit den gewünschten Freiheitsgraden zu versehen. Ein Beispiel eines solchen Mechanismus wird mit. Bezug auf Fig. 8 beschrieben.
  • Die Sensoren 28 stellen die Position, Bewegung und/oder andere Eigenschaften eines Benutzerobjekts 34 der Schnittstellenvorrichtung 14 entlang von einem oder mehreren Freiheitsgraden fest und liefern Signale zum Mikroprozessor 26, einschließlich Informationen, die diese Eigenschaften darstellen. Ein Beispiel eines Ausführungsbeispiels eines Benutzerobjekts und einer Bewegung innerhalb vorgesehener Freiheitsgrade wird anschließend mit Bezug auf Fig. 8 beschrieben. Typischerweise ist ein Sensor 28 für jeden Freiheitsgrad, entlang den das Objekt 34 bewegt werden kann, vorgesehen. Alternativ kann ein einzelner Verbundsensor verwendet werden, um eine Position oder Bewegung in mehreren Freiheitsgraden festzustellen. Ein Beispiel von Sensoren, die für verschiedene hierin beschriebene Ausführungsbeispiele geeignet sind, sind digitale optische Codierer, die die Positionsänderung eines Objekts um eine Drehachse erfassen und digitale Signale liefern, die die Positionsänderung anzeigen. Der Codierer reagiert beispielsweise auf die Drehung einer Welle durch Erzeugen von zwei in Phasenbeziehung stehenden Signalen in dem Drehfreiheitsgrad. Lineare optische Codierer erfassen ebenso die Positionsänderung des Objekts 346 entlang eines linearen Freiheitsgrades und können die zwei in Phasenbeziehung stehenden Signale als Reaktion auf die Bewegung einer linearen Welle in dem linearen Freiheitsgrad erzeugen. Es können entweder relative oder absolute Sensoren verwendet werden. Relative Sensoren liefern beispielsweise nur eine relative Winkelinformation und benötigen somit gewöhnlich eine gewisse Form Kalibrierungsschritt, der eine Bezugsposition für die relative Winkelinformation vorsieht. Die hierin beschriebenen Sensoren sind hauptsächlich relative Sensoren. Folglich gibt es einen implizierten Kalibrierungsschritt nach dem Systemeinschalten, wobei eine Sensorwelle in einer bekannten Position innerhalb der Schnittstellenvorrichtung angeordnet wird und ein Kalibrierungssignal zum System geliefert wird, um die vorstehend erwähnte Bezugsposition vorzusehen. Alle von den Sensoren gelieferten Winkel sind anschließend relativ zu dieser Bezugsposition. Alternativ kann ein bekannter Indeximpuls in dem relativen Sensor vorgesehen werden, der eine Bezugsposition vorsehen kann. Solche Kalibrierungsverfahren sind Fachleuten gut bekannt und werden hierin folglich nicht ausführlicher erörtert. Ein geeigneter optischer Codierer ist der "Softpot" von U.S. Digital in Vancouver, Washington.
  • Die Sensoren 28 liefern ein elektrisches Signal zu einer wahlweisen Sensorschnittstelle 36, die verwendet werden kann, um Sensorsignale in Signale umzuwandeln, die vom Mikroprozessor 26 und/oder vom Hauptrechnersystem 12 interpretiert werden können. Die Sensorschnittstelle 36 empfängt beispielsweise die zwei in Phasenbeziehung stehenden Signale von einem Sensor 28 und wandelt die zwei Signale in ein anderes Paar von Taktsignalen um, die einen bidirektionalen Binärzähler ansteuern. Das Ausgangssignal des Binärzählers wird vom Mikroprozessor 26 als Binärzahl empfangen, welche die Winkelposition der codierten Welle darstellt. Solche Schaltungen oder äquivalente Schaltungen sind Fachleuten gut bekannt; beispielsweise erfüllt der Quadrature Chip LS7166 von Hewlett Packard, Kalifornien, die vorstehend beschriebenen Funktionen. Jeder Sensor 28 kann mit seiner eigenen Sensorschnittstelle versehen sein, oder eine Sensorschnittstelle kann Daten von mehreren Sensoren verarbeiten. Alternativ kann der Mikroprozessor 26 diese Schnittstellenfunktionen ohne den Bedarf für eine separate Sensorschnittstelle 36 erfüllen. Die Positionswertsignale können vom Mikroprozessor 26 verwendet werden und werden auch zum Hauptrechnersystem 12 gesandt, welches das Hauptrechner-Anwendungsprogramm aktualisiert und entsprechend Kraftsteuersignale sendet. Wenn der Benutzer beispielsweise ein Lenkradobjekt 34 bewegt, empfängt das Computersystem 12 Positions- und/oder andere Signale, die diese Bewegung anzeigen, und kann einen angezeigten Blickpunkt des Benutzers bewegen, als ob er aus einem Fahrzeug hinausblickt und das Fahrzeug dreht. Andere Schnittstellenmechanismen können ebenfalls verwendet werden, um ein geeignetes Signal zum Hauptrechnersystem 12 zu liefern. Bei alternativen Ausführungsbeispielen können Sensorsignale von den Sensoren 28 direkt zum Hauptrechnersystem 12 geliefert werden, wobei der Mikroprozessor 26 umgangen wird. Die Sensorschnittstelle 36 kann auch innerhalb des Hauptrechnersystems 12 enthalten sein, wie z. B. auf einer Schnittstellenplatine oder -karte.
  • Alternativ kann ein analoger Sensor, wie z. B. ein Potentiometer, anstelle des digitalen Sensors für alle oder einige der Sensoren 28 verwendet werden. Ein Dehnungsmesser kann beispielsweise angeschlossen sein, um Kräfte auf dem Objekt 34 anstelle von Positionen des Objekts zu messen. Auch Geschwindigkeitssensoren und/oder Beschleunigungsmesser können verwendet werden, um Geschwindigkeiten und Beschleunigungen auf dem Objekt 34 direkt zu messen. Analoge Sensoren können ein analoges Signal liefern, das die Position/Geschwindigkeit/Beschleunigung des Benutzerobjekts in einem speziellen Freiheitsgrad darstellt. Ein Analog- Digital-Wandler (ADC) kann das analoge Signal in ein digitales Signal umwandeln, das vom Mikroprozessor 26 und/oder Hauptrechnersystem 12 empfangen und interpretiert wird, wie Fachleuten gut bekannt ist. Die Auflösung der erfassten Bewegung des Objekts 34 wäre durch die Auflösung des ADC begrenzt.
  • Andere Arten von Schnittstellenschaltkreisen 36 können ebenfalls verwendet werden. Die Schnittstelle ermöglicht, dass die Position der Maus oder des Stifts verfolgt wird, und sieht unter Verwendung von Sensoren und Stellgliedern eine Kraftrückkopplung für den Stift vor. Die Sensorschnittstelle 36 kann Winkelermittlungschips enthalten, um Winkelsignale, die von den Sensoren 28 gelesen werden, vorzuverarbeiten, bevor sie zum Mikroprozessor 26 gesandt werden. Ein Datenbus plus Chipfreigabeleitungen ermöglichen beispielsweise, dass irgendwelche der Winkelermittlungschips mit dem Mikroprozessor kommunizieren. Eine Konfiguration ohne Winkelermittlungschips ist bei einem Ausführungsbeispiel mit absoluten Sensoren am besten anwendbar, welche Ausgangssignale aufweisen, die die Winkel ohne irgendeine Weiterverarbeitung direkt anzeigen, wodurch weniger Berechnung für den Mikroprozessor 26 und somit wenig, wenn überhaupt, Vorverarbeitung erforderlich ist. Wenn die Sensoren 28 relative Sensoren sind, die nur die Änderung eines Winkels anzeigen und die für eine vollständige Ermittlung des Winkels eine Weiterverarbeitung erfordern, dann sind Winkelermittlungschips geeigneter.
  • Die Stellglieder 30 übertragen Kräfte auf das Benutzerobjekt 34 der Schnittstellenvorrichtung 14 in einer oder mehreren Richtungen entlang von einem oder mehreren Freiheitsgraden als Reaktion auf vom Mikroprozessor 26 empfangene Signale. Typischerweise ist ein Stellglied 30 für jeden Freiheitsgrad vorgesehen, entlang den es erwünscht ist, Kräfte zu übertragen. Die Stellglieder 30 können zwei Arten umfassen: aktive Stellglieder und passive Stellglieder.
  • Aktive Stellglieder umfassen lineare Stromsteuermotoren, Schrittmotoren, pneumatische/hydraulische aktive Stellglieder, Schwingspulen und andere Arten von Stellgliedern, die eine Kraft zum Bewegen eines Objekts übertragen. Aktive Stellglieder können beispielsweise eine Drehwelle um eine Achse in einem Drehfreiheitsgrad antreiben oder eine lineare Welle entlang eines linearen Freiheitsgrades antreiben. Aktive Übertrager der vorliegenden Erfindung sind vorzugsweise bidirektional, was bedeutet, dass sie selektiv eine Kraft entlang beider Richtungen eines Freiheitsgrades übertragen können. Gleichstrom-Servomotoren können beispielsweise Kraftsteuersignale empfangen, um die Richtung und das Drehmoment (Kraftausgabe) zu steuern, das auf einer Welle erzeugt wird. Die Motoren können auch Bremsen enthalten, die es ermöglichen, dass die Drehung der Welle in einer kurzen Zeitspanne gestoppt wird. Andere Arten von aktiven Motoren können ebenfalls verwendet werden, wie z. B. ein Schrittmotor, der mit einer Impulsbreitenmodulation einer angelegten Spannung gesteuert wird, pneumatische/hydraulische Stellglieder, ein Drehmomentmotor (Motor mit begrenztem Winkelbereich) oder ein Schwingspulen-Stellglied, die Fachleuten gut bekannt sind.
  • Passive Stellglieder können ebenfalls für die Stellglieder 30 verwendet werden. Magnetteilchenbremsen, Reibungsbremsen oder pneumatische/hydraulische passive Stellglieder können zusätzlich zu oder anstelle von einem Motor verwendet werden, um einen Dämpfungswiderstand oder eine Reibung in einem Bewegungsgrad zu erzeugen. Ein alternatives bevorzugtes Ausführungsbeispiel, das nur passive Stellglieder umfasst, kann nicht so realistisch sein wie ein Ausführungsbeispiel mit Motoren; die passiven Stellglieder sind jedoch typischerweise sicherer für einen Benutzer, da der Benutzer nicht gegen erzeugte Kräfte ankämpfen muss. Passive Stellglieder können typischerweise nur einen bidirektionalen Widerstand für einen Bewegungsgrad vorsehen. Eine geeignete Magnetteilchenbremse für die Schnittstellenvorrichtung 14 ist von Force Limited, Inc., in Santa Monica, Kalifornien, erhältlich.
  • Bei alternativen Ausführungsbeispielen können alle oder einige der Sensoren 28 und Stellglieder 30 zusammen als Sensor/Stellglied-Paar-Übertrager enthalten sein. Ein geeigneter Übertrager für die vorliegende Erfindung mit sowohl einem optischen Codierer als auch einem stromgesteuerten Motor ist ein Servomotor mit Korbwicklung mit 20 W, der von Maxon hergestellt wird.
  • Die Stellgliedschnittstelle 38 kann wahlweise zwischen den Stellgliedern 30 und dem Mikroprozessor 26 angeschlossen werden. Die Schnittstelle 38 wandelt Signale vom Mikroprozessor 26 in Signale um, die zum Ansteuern der Stellglieder 30 geeignet sind. Die Schnittstelle 38 kann Leistungsverstärker, Schalter, Digital-Analog- Steuereinheiten (DACs) und andere Komponenten umfassen. Bei alternativen Ausführungsbeispielen kann die Schaltung der Schnittstelle 38 innerhalb des Mikroprozessors 26 oder in den Stellgliedern 30 vorgesehen sein.
  • Andere Eingabevorrichtungen 39 können wahlweise in der Schnittstellenvorrichtung 14 enthalten sein und Eingabesignale zum Mikroprozessor 26 senden. Solche Eingabevorrichtungen können Tasten, Ziffernscheiben, Schalter oder andere Mechanismen umfassen. Bei Ausführungsbeispielen, wo das Benutzerobjekt 34 ein Steuerhebel ist, können andere Eingabevorrichtungen beispielsweise eine oder mehrere Tasten aufweisen, die beispielsweise am Steuerhebelgriff oder -sockel vorgesehen sind und verwendet werden, um die Eingabe vom Benutzer zu einem Spiel oder einer Simulation zu ergänzen. Die Funktion solcher Eingabevorrichtungen ist Fachleuten gut bekannt.
  • Die Leistungsversorgung 40 kann wahlweise mit einer Stellgliedschnittstelle 38 und/oder Stellgliedern 30 gekoppelt sein, um elektrische Leistung zu liefern. Aktive Stellglieder benötigen zum Antrieb typischerweise eine separate Leistungsquelle. Die Leistungsversorgung 40 kann innerhalb des Gehäuses der Schnittstellenvorrichtung 14 enthalten sein oder kann als separate Komponente, beispielsweise durch ein elektrisches Stromkabel angeschlossen, vorgesehen sein.
  • Wenn die USB-Schnittstelle, der Spielanschluss oder eine ähnliche Übertragungsschnittstelle verwendet wird, kann die Schnittstellenvorrichtung 14 alternativ vom Bus 24 und/oder 25 Leistung entnehmen und somit keinen Bedarf für eine Leistungsversorgung 40 aufweisen. Dieses Ausführungsbeispiel ist am besten auf eine Vorrichtung 14 mit passiven Stellgliedern 30 anwendbar, da passive Stellglieder wenig Leistung zum Betrieb benötigen. Aktive Stellglieder benötigen beispielsweise gewöhnlich mehr Leistung als vom USB entnommen werden kann, aber diese Einschränkung kann auf mehrere Arten beseitigt werden. Eine Möglichkeit besteht darin, die Schnittstelle 14 so zu konfigurieren, dass sie als mehr als ein Peripheriegerät für den Hauptrechner 12 erscheint; beispielsweise kann jeder vorgesehene Freiheitsgrad des Benutzerobjekts 34 als anderes Peripheriegerät konfiguriert werden und seine eigene Leistungszuordnung erhalten. Dies würde ermöglichen, dass der Hauptrechner 12 der Schnittstellenvorrichtung 14 mehr Leistung zuordnet. Alternativ kann die Leistung vom Bus 24 und/oder 25 durch die Schnittstellenvorrichtung 14 gespeichert und geregelt werden und somit verwendet werden, wenn sie benötigt wird, um die Stellglieder 30 anzutreiben. Beispielsweise kann die Leistung über die Zeit gespeichert werden und dann unmittelbar verbraucht werden, um eine Ruckkraft auf das Benutzerobjekt 34 aufzubringen. Eine Kondensatorschaltung kann beispielsweise die Energie speichern und die Energie verteilen, wenn genügend Leistung gespeichert wurde. Der Mikroprozessor kann die Ausgabe von Kräften regulieren müssen, um zu gewährleisten, dass Zeit für die Leistungsspeicherung zur Verfügung gestellt wird. Dieses Ausführungsbeispiel mit Leistungsspeicherung kann auch in Ausführungsbeispielen der Schnittstellenvorrichtung 14 ohne USB verwendet werden, um zu ermöglichen, dass eine kleinere Leistungsversorgung 40 verwendet wird. Ein Ausführungsbeispiel mit Leistungsspeicherschaltung wird mit Bezug auf Fig. 6 ausführlicher beschrieben.
  • Aus Sicherheitsgründen ist vorzugsweise ein Schutzschalter 41 in der Schnittstellenvorrichtung enthalten, um einen Mechanismus vorzusehen, um einen Benutzer die Stellglieder 30 ausschalten und deaktivieren zu lassen, oder von einem Benutzer zu verlangen, die Stellglieder 30 zu aktivieren. Bestimmte Arten von Stellgliedern, insbesondere aktive Stellglieder, wie z. B. Motoren, können für den Benutzer ein Sicherheitsproblem darstellen, wenn die Stellglieder das Benutzerobjekt 34 unerwartet mit einer starken Kraft gegen den Benutzer bewegen. Wenn ein Ausfall im Steuersystem 10 auftritt, kann der Benutzer außerdem wünschen, die Stellglieder schnell zu deaktivieren, um jegliche Verletzung zu vermeiden. Um diese Option bereitzustellen, ist ein Schutzschalter 41 mit den Stellgliedern 30 gekoppelt. Bei dem bevorzugten Ausführungsbeispiel muss der Benutzer den Schutzschalter 41 während des Betriebs der Schnittstellenvorrichtung 14 ständig aktivieren oder schließen, um die Stellglieder 30 zu aktivieren. Wenn zu irgendeiner Zeit der Schutzschalter deaktiviert (geöffnet) wird, wird der Strom von der Leistungsversorgung 40 zu den Stellgliedern. 30 unterbrochen (oder die Stellglieder werden anderweitig deaktiviert), solange der Schutzschalter offen ist.
  • Ein bevorzugtes Ausführungsbeispiel des Schutzschalters ist beispielsweise ein optischer Schalter, der sich auf dem Benutzerobjekt 34 (wie z. B. einem Steuerhebel) oder auf einer zweckmäßigen Oberfläche eines Gehäuses, das die Schnittstellenvorrichtung 14 umschließt, befindet. Wenn der Benutzer den optischen Schalter mit einer Hand oder einem Finger bedeckt, wird der Sensor des Schalters an der Erfassung von Licht gehindert und der Schalter wird geschlossen. Die Stellglieder 30 wirken somit, solange der Benutzer den Schalter bedeckt. Ein solcher optischer Schalter kann einen Umgebungslichtdetektor umfassen, der einfach feststellt, wenn erfasstes Umgebungslicht vom Benutzer blockiert wurde, wenn der Benutzer den Detektor mit einer Hand bedeckt. Alternativ kann ein Strahler/Detektor-Paar in einer kleinen Vertiefung auf der Schnittstellenvorrichtung 14 vorgesehen sein. Der Strahler sendet eine spezielle Art elektromagnetischer Strahlung, wie z. B. Infrarotlicht, aus der Schnittstellenvorrichtung in den Außenraum aus. Wenn der Benutzer den in der Vertiefung angeordneten Strahler/Detektor bedeckt, wird die ausgesandte Strahlung von der Hand oder dem Finger des Benutzers reflektiert, so dass der Detektor die Strahlung erfasst und die Motoren aktiviert. Solche optischen Schalter sind Fachleuten gut bekannt. Andere Arten von Schutzschaltern 41 können bei anderen Ausführungsbeispielen vorgesehen sein. Beispielsweise kann ein elektrostatischer Kontaktschalter verwendet werden, um einen Kontakt mit dem Benutzer festzustellen, eine Taste oder ein Auslöser kann gedrückt werden, oder eine andere Art Sensor oder Schalter kann verwendet werden. Weitere Ausführungsbeispiele von Schutzschaltern der vorliegenden Erfindung werden mit Bezug auf die Fig. 9 und 10 beschrieben.
  • Bei dem bevorzugten Ausführungsbeispiel ist zusätzlich eine "Sicherheitsanstiegsroutine" enthalten, die der Mikroprozessor 26 implementiert, wenn der Schutzschalter 41 geöffnet und geschlossen wird. Wenn der Schutzschalter 41 geöffnet wird, werden die von den Stellgliedern 30 ausgegebenen Kräfte sofort auf Null abgesenkt. Wenn jedoch der Schutzschalter dann vom Benutzer geschlossen wird, springen die Ausgangskräfte auf dieselbe Größe zurück, auf der diese Kräfte lagen, bevor der Schutzschalter geöffnet wurde. Diese sofortige Erhöhung der Größe der Kräfte erzeugt für den Benutzer eine gefährliche Bedingung. Um diesem Effekt entgegenzuwirken, greift der Mikroprozessor vorzugsweise auf eine Sicherheitsanstiegsroutine im Speicher 27 zu, die dem Mikroprozessor befiehlt, die Größe der Kräfte über ein vordefiniertes Zeitintervall, nachdem der Schutzschalter geschlossen wurde, langsam zu erhöhen. Nach dem vordefinierten Zeitintervall (z. B. 3 Sekunden) werden die Kräfte mit voller Größe ausgegeben, die vorgesehen wurde, bevor der Schalter geöffnet wurde.
  • Das Benutzerobjekt 34 ist vorzugsweise eine Vorrichtung oder ein Gegenstand, der von einem Benutzer ergriffen oder anderweitig berührt oder gesteuert werden kann und der mit der Schnittstellenvorrichtung 14 gekoppelt ist. Mit "Greifen" ist gemeint, dass Benutzer mit einem Griffteil des Objekts in einer gewissen Weise, wie z. B. mit der Hand, mit ihren Fingerspitzen oder sogar oral im Fall von behinderten Personen, lösbar in Eingriff stehen können. Der Benutzer 22 kann das Objekt entlang vorgesehener Freiheitsgrade bedienen und bewegen, um mit dem Hauptrechner-Anwendungsprogramm, das der Benutzer auf dem Bildschirm 20 betrachtet, eine Verbindung herzustellen. Das Objekt 34 kann ein Steuerhebel, eine Maus, eine Rollkugel, ein Stift, ein Lenkrad, ein Hand/Fuß-Pedal, ein medizinisches Instrument (Laparoskop, Katheter usw.), ein Poolbillardqueue, ein Handgriff, ein Knopf, eine Taste oder ein anderer Gegenstand sein.
  • Fig. 3, die in den Fig. 3a und 3b einzeln dargestellt ist, ist ein schematisches Diagramm eines Beispiels eines speziellen Ausführungsbeispiels 50 der Schnittstellenvorrichtung 14. Der lokale Mikroprozessor 26 ist in diesem Beispiel ein PIC16C74, der von Microchip erhältlich ist und 14 Adressleitungen und 8 Datenleitungen aufweist. Dieser Mikroprozessor umfasst eine interne Architektur, die den Speicher in zwei Partitionen teilt und schnelle Programmausführungen ermöglicht, und somit für eine Kraftrückkopplungsverarbeitung mit hoher Geschwindigkeit gut geeignet ist. Dieses Ausführungsbeispiel umfasst vorzugsweise einen lokalen Speicher 27, wie z. B. einen ROM, ebenso wie einen lokalen Takt 29 auf der Platine des Mikroprozessors.
  • Wie mit Bezug auf Fig. 2 erläutert, soll die Schnittstellenvorrichtung 50 unter Verwendung von sowohl einer seriellen Schnittstelle, wie z. B. einer RS-232- Schnittstelle, als auch einer zweiten Schnittstelle 25, die bei dem beschriebenen Ausführungsbeispiel eine Spielanschluss-Schnittstelle ist, wie sie typischerweise in einem IBM-kompatiblen Personalcomputer (PC) anzutreffen ist, mit dem Hauptrechner 12 im Dialogverkehr stehen.
  • Die Sensoren 28 werden verwendet, um die Position des Benutzerobjekts 34 in vorgesehenen Freiheitsgraden festzustellen. Bei dem beschriebenen Ausführungsbeispiel sind die Sensoren 28 Potentiometer 52, wobei jedes Potentiometer mit einer Welle gekoppelt ist, die sich in einem Freiheitsgrad dreht, wenn das Benutzerobjekt 34 gedreht wird. Jedes Potentiometer gibt ein analoges Spannungssignal ("Sensorsignal") im Verhältnis zur Position des Benutzerobjekts in dem gemessenen Freiheitsgrad aus. Die Potentiometer 52 werden mit einem Signal von fünf Volt gespeist, welches auf einer Stromleitung 53 der Spielanschluss-Schnittstelle geliefert wird (mit Bezug auf eine Erdleitung 53a der Spielanschluss-Schnittstelle, und wobei Kondensatoren C1 und C2 zum Filtern des Signals verwendet werden, wie Fachleuten gut bekannt ist). Die Potentiometer geben ihre Sensorsignale auf dem Spielanschluss-Schnittstellenbus 25 aus. Jedes Potentiometer kann einen Trimmermechanismus umfassen, um eine Umorientierung bezüglich des Benutzerobjekts 34 zu ermöglichen, und ermöglicht, dass das Benutzerobjekt, wenn es verwendet wird, neu kalibriert wird, wie Fachleuten gut bekannt ist. Bei diesem Ausführungsbeispiel werden analoge Potentiometer verwendet, da die Standard-Spielanschluss- Schnittstelle diese Art Sensor benötigt. Andere Arten von Sensoren, wie z. B. digitale Drehcodierer, können für die Sensoren 28 in anderen Ausführungsbeispielen unter Verwendung einer anderen Art Schnittstellenbus 25 verwendet werden.
  • Bei alternativen Ausführungsbeispielen können digitale Schalter oder Kontakte anstelle der analogen Potentiometer 52 verwendet werden. Einige Arten von Steuerhebeln, die von Videospielsystemen oder Computern verwendet werden, sind beispielsweise "digitale Steuerhebel", die digitale Signale entsprechend einer Position oder Richtung des Steuerhebels liefern. Solche digitalen Signale beschreiben typischerweise keine Position des Steuerhebels innerhalb eines Dreh- oder linearen Freiheitsgrades wie es "analoge Steuerhebel" tun, sondern beschreiben statt dessen einfache Richtungen, wie z. B. "nach oben", "nach links" oder "diagonal nach oben links". Kontaktschalter können beispielsweise an vier Positionen (oben, unten, links, rechts) um einen Steuerhebel angeordnet werden, um acht mögliche Richtungen zu erfassen (jene vier Richtungen und die vier diagonalen Zwischenrichtungen). Wenn der Steuerhebel in eine dieser Richtungen bewegt wird, wird (werden) der (die) entsprechende(n) Kontaktschalter geschlossen und ein entsprechendes Signal wird ausgegeben, "Steuerpulte" und ähnlich Steuereinheiten für Videospiele verwenden typischerweise diese Anordnung. Für das beschriebene und weitere Ausführungsbeispiele der vorliegenden Erfindung kann ein solcher digitaler Steuerhebel eingeschlossen sein, um digitale Darstellungen der Richtung des Steuerhebels zum Hauptrechner 12 zu senden, während die Stellglieder 30 in vorgesehenen Freiheitsgraden Kräfte auf dem Steuerhebel vorsehen können.
  • Der Spielanschluss-Schnittstellenbus 25 wird zum Senden von Sensordaten, die die Position des Benutzerobjekts 34 in vorgesehenen Freiheitsgraden beschreiben, zum Hauptrechner verwendet. Die Potentiometer 52 können beispielsweise die Position eines Steuerhebels innerhalb des Links/Rechts- Freiheitsgrades und innerhalb des Vorwärts/Rückwärts- Freiheitsgrades erfassen. Diese Information wird für die Spielanschluss-Schnittstelle dargestellt und durch eine RC- Schaltung, die sich typischerweise im Hauptrechnersystem 12 befindet und mit dem Spielanschluss verwendet wird, in digitale Signale umgewandelt, wie Fachleuten gut bekannt ist. Die digitalen Signale werden seriell über den Bus 25 übertragen, der mit dem Standard-Spielanschluss des Hauptrechners 12 verbunden ist. In dieser Hinsicht arbeitet die Schnittstellenvorrichtung 50 als typischer Steuerhebel des Standes der Technik beim Melden der Position des Steuerhebels direkt zum Hauptrechner. Der Hauptrechner kann dann einen Prozess, wie z. B. ein Spiel, als Reaktion auf die empfangene Positionsinformation aktualisieren. Die Schnittstellenvorrichtung 50 kann somit vorteilhaft mit irgendeiner verfügbaren Software und Hardware, die mit einem Standard-Steuerhebel kompatibel ist, verwendet werden.
  • Bei dem vorliegenden Ausführungsbeispiel werden die Sensordaten vorzugsweise über den Spielanschluss- Schnittstellenbus 25 direkt zum Hauptrechner 12 gesandt, ohne dass sie zum Mikroprozessor 26 gesandt werden. Dies liegt daran, dass die Spielanschluss-Schnittstelle die analogen Signale unter Verwendung der RC-Schaltung zu digitalen Signalen verarbeitet, was verhindert, dass andere Komponenten, wie z. B. der Mikroprozessor 26, auch die Potentiometerdaten lesen. Bei einigen Ausführungsbeispielen kann der Mikroprozessor Sensorleseinformation benötigen, um Kraftbefehle zu den Stellgliedern zu liefern; bei einem solchen Ausführungsbeispiel kann ein zweiter Satz von Sensoren verwendet werden, wie nachstehend beschrieben.
  • Das vorliegende Ausführungsbeispiel umfasst auch einen zweiten Schnittstellenbus 24, der zwischen den Hauptrechner 12 und die Schnittstellenvorrichtung 50 gekoppelt ist, welche vorzugsweise als serielle RS-232-, RS-442- oder ähnliche Schnittstelle implementiert ist. Bei dem beschriebenen Ausführungsbeispiel wird dieser Schnittstellenbus ausschließlich zum Liefern von Kraftrückkopplungsbefehlen vom Hauptrechner zur Schnittstellenvorrichtung 50 verwendet. Ein RS-232- Pegelumsetzer 54 setzt Signale auf die geeigneten Spannungspegel zur Übertragung und zum Empfang um. Der Hauptrechner 12 sendet serielle Befehle von seinem seriellen Standardanschluss auf der Leitung RxD der RS-232- Schnittstelle aus. Der Umsetzer 54 empfängt diese Befehle und setzt sie auf den erforderlichen Logikpegel (z. B. 5 Volt) um und liefert die Befehle zum Mikroprozessor 26. Der Mikroprozessor steuert die Motoren 66 als Reaktion auf die empfangenen Befehle. Die TxD-Leitung der RS-232- Schnittstelle des Pegelumsetzers muss nicht mit dem Hauptrechner verbunden sein.
  • Alternativ kann die TxD-Leitung bei einigen Ausführungsbeispielen zwischen die Schnittstellenvorrichtung 50 und den Hauptrechner 12 geschaltet sein, um Schnittstellenvorrichtungs- Produktinformationen und andere erforderliche Informationen von der Schnittstellenvorrichtung zum Hauptrechner zu liefern. Solche Produktinformationen können die Seriennummer, die Versionsnummer der Vorrichtung 50, die Versionsnummer der Firmware des Mikroprozessors/lokalen Speichers, das Ausgabedatum der Firmware und/oder Vorrichtung 50, die Modellnummer, Hauptrechnerbefehle, die mit der Vorrichtung 50 kompatibel sind, die Anzahl der Achsen oder Freiheitsgrade des Benutzerobjekts 34, die verfügbar sind, und deren Beschreibung, die Auflösung der Sensoren oder Stellglieder und/oder Urheberrechtsinformationen umfassen. Diese Informationen können im ROM oder in einem anderen Speicher 27 in der Schnittstellenvorrichtung 50 gespeichert sein. Auch Zustandsinformationen und Sensordaten von den Sensoren 28 können auf dieser TxD-Leitung geliefert werden, wenn beispielsweise der Spielanschlussbus 25 abgetrennt wird oder nicht verwendet wird.
  • Da die gesamte Bandbreite der seriellen RS-232- Schnittstelle zum Empfangen von Kraftrückkopplungsbefehlen vom Hauptrechner verwendet wird, kann eine größere Übertragungsrate für Kraftsignale implementiert werden und ein größerer Grad an Realismus und Steuerung kann in den auf das Benutzerobjekt ausgegebenen Kräften vorgesehen werden. Außerdem wird der Spielanschluss wie in Standardsteuerhebeln implementiert, die keine Kraftrückkopplung vorsehen. Die Schnittstellenvorrichtung 50 kann somit mit irgendeinem Computer mit einem Spielanschluss verbunden werden und kann als Steuerhebel ohne Kraftrückkopplung mit irgendeiner Software, die mit Steuerhebeln ohne Kraftrückkopplung kompatibel ist, funktionieren. Wenn im Hauptrechner 12 eine Software zur Verfügung steht, um Kraftrückkopplungsbefehle zu implementieren, kann die Schnittstellenvorrichtung 50 auch diese Funktionalität ausnutzen. Dies ist insofern wichtig, dass die Schnittstellenvorrichtung mit den derzeit erhältlichen Softwareanwendungen kompatibel ist und mit neuer Kraftrückkopplungssoftware kompatibel ist, wenn diese Software eingeführt wird. Dies stellt eine marktfähigere Schnittstellenvorrichtung bereit als ein reiner Kraftrückkopplungs-Steuerhebel, bis die Kraftrückkopplungssoftware breiter verfügbar ist.
  • Das vorliegende Ausführungsbeispiel umfasst vorzugsweise auch ein Übertragungsleitungs-Sicherheitsmerkmal, wie mit Bezug auf Fig. 2 beschrieben. Um zu ermöglichen, dass der Mikroprozessor 26 leicht den Zustand der Verbindung des seriellen Busses 24 überwacht, ist eine der Leitungen des Busses 24 mit dem Mikroprozessor gekoppelt. Bei dem beschriebener. Ausführungsbeispiel ist die DTR-Leitung 51 der RS-232-Schnittstelle (über einen Pegelumsetzer 54) mit einem digitalen Eingang (B6) des Mikroprozessors gekoppelt. Der PIC-Mikroprozessor des beschriebenen Ausführungsbeispiels umfasst einen universalen asynchronen Empfänger/Sender (UART) auf dem Chip selbst. Der Mikroprozessor prüft auf einen niedrigen Logikzustand auf der DTR-Leitung, um zu bestätigen, dass der serielle Bus 24 angeschlossen ist. Wenn die DTR-Leitung einen hohen Logikzustand überträgt, wird angenommen, dass der serielle Bus/das serielle Kabel nicht angeschlossen ist, und der Mikroprozessor sendet auf der Leitung 60 ein Sperrsignal zu den Motoren 68. Der Hauptrechner 12 kann auch den Zustand des Signals auf der DTR-Leitung steuern, um die Motoren auf Wunsch in ähnlicher Weise zu sperren. Bei anderen ähnlichen Ausführungsbeispielen könnte ein UART als separate Komponente vorgesehen sein. Bei anderen Ausführungsbeispielen kann der Hauptrechner periodisch ein Signal zum Mikroprozessor aussenden und der Mikroprozessor kann dieses Signal überprüfen, um zu gewährleisten, dass die Verbindung des Busses noch intakt ist. Der Bus 25 wird bei dem beschriebenen Ausführungsbeispiel nicht geprüft, kann jedoch bei anderen Ausführungsbeispielen überwacht werden.
  • Bei anderen Ausführungsbeispielen können andere Arten von Schnittstellen als serielle Schnittstellen, die als Busse 24 und/oder 25 verwendet werden sollen, implementiert werden. Videospielkonsolen, wie z. B. die Sega Saturn oder die Sony PlayStation, weisen beispielsweise keinen seriellen Anschluss oder Spielanschluss auf, wie vorstehend beschrieben, sondern weisen statt dessen einen Steueranschluss mit einer parallelen Schnittstelle auf. Eine serielle Schnittstelle kann jedoch unter Verwendung der Eingangs- und Ausgangsleitungen des parallelen Anschlusses emuliert werden. Die Steuersignalleitungen "nach oben", "nach unten", "nach links" und "nach rechts" der Sega Saturn können beispielsweise als Leitungen verwendet werden, die die Sensordaten (wie z. B. von einem digitalen Codierer oder Potentiometer) und Tastendaten codieren und diese Daten zum Hauptrechner senden, und die Ausgangsleitungen TH, TR und TL von der Sega Saturn können verwendet wenden, um die Hauptrechnerbefehle für den Mikroprozessor 26 zu codieren, was folglich eine Zweiweg- Kommunikation zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung vorsieht. Ein serielles Protokoll kann verwendet werden, wobei eine Ausgangsleitung (z. B. TH) anstelle der vorstehend beschriebenen TxD-Leitung verwendet wird. Eine andere Leitung (z. B. TR) kann anstelle der DTR- Leitung verwendet werden. Man beachte, dass die Potentiometerdaten bei einem solchen Ausführungsbeispiel vom Mikroprozessor 26 gelesen, verarbeitet und zum Hauptrechner gesandt werden würden. Außerdem können die Strom- und Erdleitungen von einem Videospielkonsolen- Anschluss ähnlich der Stromleitung 53 einer RS-232- Schnittstelle verwendet werden.
  • Bedientasten 56 sind als weitere Eingabevorrichtungen 39 enthalten, wie in Fig. 2 gezeigt. Die Tasten 56 umfassen Schalter und ein Eingangssignal von 5 Volt von der Spielanschluss-Schnittstelle, wie Fachleuten gut bekannt ist. Vierzehn Tasten sind als im Ausführungsbeispiel 50 verfügbar angegeben, aber bei anderen Ausführungsbeispielen kann eine andere Anzahl von Tasten oder andere Arten von Schaltern, Knöpfen oder Steuerungen enthalten sein. Die Tasteneingabesignale werden in Datenanschlüsse D0-D7 des Mikroprozessors 26 auf dem Bus 57 eingespeist. Der Mikroprozessor 26 gibt die digitalen Tastensignale auf den Leitungen 55 des Spielanschluss-Schnittstellenbusses 25 aus.
  • Thermistoren 58 sind mit dem Mikroprozessor 26 gekoppelt und fühlen die Temperatur der Motoren 68 ab. Die Thermistoren wandeln eine abgefühlte Temperatur in ein elektrisches Signal um, wie Fachleuten gut bekannt ist. Thermistoren, wie z. B. RL2006-1600-103-Dl, die von Keystone Thermometrics erhältlich sind, können beispielsweise verwendet werden. Der Mikroprozessor 26 liest die Temperatursignale auf den Bussen 59, um festzustellen, ob sich die Motoren überhitzen. Der Mikroprozessor kann die Motoren unter Verwendung des EN-Signals 60 deaktivieren, wenn eine Überhitzungsbedingung festgestellt wird (und kann die Übertemperatur-LED 62 aktivieren, um den Benutzer über die Überhitzungsbedingung zu informieren). Andere Arten von Temperaturfühlkomponenten können bei anderen Ausführungsbeispielen verwendet werden. Beispielsweise kann eine die Temperatur abfühlende integrierte Schaltung verwendet werden. Bei noch weiteren Ausführungsbeispielen kann die Temperatur der Motoren unter Verwendung von anderen Komponenten oder Schritten abgefühlt oder ermittelt werden. Der Spannungsabfall über den Motorwicklungen kann beispielsweise durch einen Analog-Digital-Wandler (ADC) gemessen werden, der beispielsweise im Mikroprozessor 26 enthalten sein kann. Der Spannungsabfall über den Motorwicklungen ist typischerweise ein zuverlässiger Indikator der Temperatur des Wicklungsmaterials, so dass die Temperatur durch die Menge des Spannungsabfalls ermittelt werden kann. Alternativ kann eine Softwareabschätzung der Motortemperatur durch den Mikroprozessor 26 durchgeführt werden. Der Mikroprozessor kann einen laufenden Mittelwert der Menge an Strom, der zu den Motoren 68 gesandt wird, über die Zeit verfolgen. Die thermischen Eigenschaften der Motoren werden vom Speicher oder in der Software zum Mikroprozessor geliefert und die Software im Mikroprozessor kann somit die Temperatur der Motoren zu irgendeiner gewünschten Zeit abschätzen. Dies ist eine kostengünstige Lösung zur Bereitstellung eines Überhitzungsschutzes, da keine zusätzlichen Hardwarekomponenten erforderlich sind, sie kann jedoch in einigen Situationen aufgrund von Schwankungen der Umgebungslufttemperatur und anderen Faktoren, die das thermische Ansprechen der Motoren 68 ohne Wissen des Mikroprozessors verändern können, nicht zuverlässig sein.
  • Sekundäre Potentiometer 62 sind wahlweise zusätzliche Sensoren, die enthalten sind, um Sensordaten zum Mikroprozessor 26 zu liefern, welche die Position des Benutzerobjekts 34 beschreiben. Wie vorstehend erläutert, erfordert die Standard-Spielanschluss-Schnittstelle, dass die Sensordaten direkt von den Potentiometern 52 zum Hauptrechner 12 gesandt werden und dass der Mikroprozessor 26 die Sensorsignale nicht lesen kann. Der Mikroprozessor 26 kann jedoch dennoch die Sensordaten benötigen, um Kraftwerte zu berechnen oder ansonsten die zu den Stellgliedern 30 gesandten Steuersignale festzulegen. Die sekundären Potentiometer 62 können unabhängig von den Potentiometern 52 Sensordaten zum Mikroprozessor liefern, so dass der Mikroprozessor die erforderlichen Daten empfängt. Die sekundären Potentiometer können analoge Potentiometer, Drehcodierer oder andere Arten von Sensoren ähnlich den Sensoren 28 sein. Diese Potentiometer können beispielsweise mit derselben Drehwelle (nicht dargestellt) gekoppelt sein wie die Potentiometer 52. Der Mikroprozessor 26 empfängt die Sensorsignale von den sekundären Potentiometern 62 auf den Bussen 63.
  • Das 5-Volt-Signal von der Leitung 53 der Spielanschluss- Schnittstelle wird verwendet, um die Bedientasten 56, die LEDs auf der Vorrichtung 50, die Potentiometer 52 und 62 und andere Logikkomponenten der Schnittstellenvorrichtung 50 zu speisen. Die Spielanschluss-Stromleitung 53 wird vorzugsweise anstelle eines Stromsignals von der Schnittstelle 24 verwendet, da die Spielanschluss- Schnittstelle immer verwendet wird, wenn die Schnittstellenvorrichtung 14 angeschlossen ist, während die Schnittstelle 24 für Nicht-Kraftrückkopplungs-Verwendungen der Schnittstellenvorrichtung 50 abgetrennt werden kann. Die anderen Komponenten, wie z. B. die Motoren 68, werden durch die Leistungsversorgungsabteilung gespeist, wie nachstehend erläutert. Bei alternativen Ausführungsbeispielen können Stromleitungen von anderen Schnittstellen verwendet werden.
  • Die Leistungsversorgungsabteilung 64 ist vorzugsweise ein separater Leistungsabschnitt der Schnittstellenvorrichtung 50, der die Stellglieder 30 der Schnittstellenvorrichtung antreibt. Die Leistungsversorgungsabteilung 64 umfasst die Stellglieder 30 und eine Leistungsschaltung 66. Die Stellglieder 30 sind bei dem beschriebenen Ausführungsbeispiel vorzugsweise zwei Motoren 68, wie z. B. 24 V Motoren, die von Mabuchi, Japan, erhältlich sind, wobei jeder Motor verwendet wird, um Kräfte entlang eines Freiheitsgrades des Benutzerobjekts 34 vorzusehen. Ein Steuerhebel weist typischerweise zwei Freiheitsgrade auf, vorwärts/rückwärts und links/rechts. Wenn zusätzliche Freiheitsgrade in der Schnittstellenvorrichtung 50 enthalten sind, dann können zusätzliche Motoren entsprechend hinzugefügt werden. Der Mikroprozessor 16 liefert zwei Signale zu jedem Motor: ein Richtungssignal (DIR) 70 und ein Impulsbreitenmodulationssignal (PWM) 72. Das Richtungssignal befiehlt dem Motor 68, eine Kraft entlang einer der zwei Richtungen innerhalb seines Freiheitsgrades vorzusehen. Das PWM-Signal steuert die Größe der Kraft durch Liefern eines Signals mit einer konstanten Frequenz (z. B. 10 kHz) und einem variierenden Tastgrad. Ein hoher Tastgrad stellt Kräfte mit großer Größe bereit und umgekehrt. Das DIR- und das PWM-Signal aus dem Mikroprozessor 26 werden in Treiberverstärker 74 eingespeist, die als Teil der Stellgliedschnittstelle 38 betrachtet werden können. Die Verstärker 74 weisen Eingangssignale von 24 Volt von einer Leistungsversorgung 40 von 24 Volt auf und liefern die Steuersignale vom Mikroprozessor zum Antreiben der Motoren 68 mit dem geeigneten Hochstrompegel.
  • Der Mikroprozessor gibt auf der Leitung 60 ein Freigabesignal aus, das ermöglicht, dass die Motoren 68 aktiviert werden und Kräfte auf das Benutzerobjekt 34 ausgeben. Ein Schutz- oder "Totmann"-Schalter 41 ist ebenfalls im Ausführungsbeispiel 50 enthalten, um den Benutzer steuern zu lassen, wann die Motoren Kräfte ausgeben können. Der Schalter 41, wie mit Bezug auf Fig. 2 beschrieben, muss vom Benutzer geschlossen werden, damit die Motoren 68 aktiviert werden. Ein 5-Volt-Signal von der Spielanschluss-Schnittstelle wird auf der Leitung 78 in ein NICHT-ODER-Gatter 70 eingespeist, wenn der Schutzschalter 41 offen ist. Wenn der Schutzschalter geschlossen wird, geht das 5-Volt-Signal auf Erde und ein niedriges Freigabesignal wird zum NICHT-ODER-Gatter 70 geliefert. Das Ausgangssignal des NICHT-ODER-Gatters wird als Freigabeeingangssignal zu den Treiberverstärkern 74 geliefert. Wenn entweder der Schutzschalter 41 geschlossen ist oder wenn ein Freigabesignal vom Mikroprozessor 26 auf der Leitung ü0 gesandt wird, werden somit die Motoren 68 aktiviert und geben gemäß den Steuersignalen auf den Leitungen 70 und 72 Kräfte aus. Das 5-Volt-Signal auf der Leitung 78 wird vorzugsweise auch in den Mikroprozessor 26 eingespeist, so dass der Mikroprozessor den Zustand des Schutzschalters überwachen kann. Der Schutzschalter 41 kann eine Vorrichtung sein, wie mit Bezug auf Fig. 2 beschrieben, oder kann ein Schutzschalter der vorliegenden Erfindung sein, der mit Bezug auf die Fig. 9 und 10 beschrieben wird. Vorzugsweise wird die "Aktiv"-LED 76 beleuchtet, wenn die Motoren aktiviert sind, so dass der Benutzer weiß, wann die Motoren eine Kraft ausüben.
  • Die Leistungsschaltung 66 ist ebenfalls vorzugsweise in der Leistungsversorgungsabteilung 60 enthalten und wird verwendet, um das 24-Volt-Ausgangssignal aus der Leistungsversorgung 40 in ein 5-Volt-Signal umzuwandeln, das in verschiedenen Komponenten der Leistungsversorgungsabteilung 64, wie z. B. den Treiberverstärkern 74, verwendet wird. Die Leistungsversorgung 40 ist vorzugsweise mit einer Standard- Wechselstrom-Wandsteckdose verbunden.
  • Die Leistungsversorgungsabteilung 60 ermöglicht, dass der Kraftrückkopplungsteil der Schnittstellenvorrichtung 50 abgetrennt wird und unabhängig von den anderen Komponenten in der Vorrichtung verwendet wird. Wenn die Schnittstellenvorrichtung 50 als Standard-Steuerhebel verwendet wird und nur mit der Spielanschluss-Schnittstelle des Hauptrechners 12 verbunden ist, dann wird folglich das 5-Volt-Signal aus dem Spielanschluss verwendet, während die Leistungsversorgungsabteilung nicht verwendet wird, und die Leistungsversorgung 40 von 12 Volt muss nicht in eine Wechselstrom-Wandsteckdose eingesteckt werden. Die Leistungsversorgung 40 von 12 Volt wird in eine Wandsteckdose eingesteckt, wenn die Kraftrückkopplung in der Vorrichtung 50 implementiert werden soll.
  • Bei einem alternativen Ausführungsbeispiel der Schnittstellenvorrichtung 50 muss der Mikroprozessor 26 nicht enthalten sein und kann durch eine festverdrahtete Logik ersetzt sein. Die Motoren 68 können direkt vom Hauptrechner 12 unter Verwendung von Befehlen niedriger oder hoher Ebene gesteuert werden, wie nachstehend mit Bezug auf Fig. 7 beschrieben. Wie bei dem vorstehend beschriebenen Ausführungsbeispiel sendet der Spielanschluss-Schnittstellenbus 25 nur Sensorsignale zum Hauptrechner und der serielle Schnittstellenbus 24 sendet nur Hauptrechnerbefehle zur Schnittstellenvorrichtung. Der Hauptrechner kann Kraftwerte berechnen und die Befehle niedriger Ebene zur Schnittstellenvorrichtung senden. Ein Pegelumsetzer und ein Schieberegister können beispielsweise verwendet werden, um die seriellen Befehle einzulesen und die Befehle zu einer auf einem anwenderprogrammierbaren Logikfeld (FPGA) vorgesehenen Logik zu liefern, die verwendet werden kann, um Kraftwerte an die Stellglieder auszugeben, wie durch die Befehle niedriger Ebene vom Hauptrechner befohlen (wie mit Bezug auf Fig. 7 beschrieben). Da der serielle Anschlussschnittstellenbus 24 ausschließlich verwendet wird, um Hauptrechnerbefehle niedriger Ebene zu den Stellgliedern zu senden, kann eine größere Bandbreite und eine realistischere Kraftrückkopplung bereitgestellt werden. Bei einem noch einfacheren Ausführungsbeispiel müssen die Logik und das Schieberegister nicht verwendet werden und die serielle Schnittstelle kann als einfache parallele Bitleitungen verwendet werden, um hohe und niedrige Logiksignale zur Steuerung der Stellglieder 30 zu liefern. Dieses Ausführungsbeispiel wird mit Bezug auf die Fig. 4a-4f ausführlicher beschrieben.
  • Bei einem anderen Ausführungsbeispiel kann die Schnittstellenvorrichtung 50 (oder bei anderen hierin offenbarten Ausführungsbeispielen von Schnittstellenvorrichtungen) erweiterbar gemacht werden, damit sie auf andere Weise gesteuert wird. Die Schnittstellenvorrichtung 50 kann beispielsweise mit einem separaten "Zugangsanschluss" versehen werden, der mit sowohl den Sensoren 28 als auch den Stellgliedern 30 verbunden ist. Wenn der Benutzer wünscht, dass der Hauptrechner 12 die Schnittstellenvorrichtung direkt steuert, kann ein paralleler Bus zwischen den Zugangsanschluss und den Hauptrechner geschaltet werden (z. B. kann eine Schnittstellenkarte in den Hauptrechner eingesteckt werden), so dass der Hauptrechner direkt Sensorsignale empfängt und so dass die Hauptrechnerbefehle direkt zu den Stellgliedern 30 oder zur Stellgliedschnittstelle 38 geliefert werden. Vorzugsweise kann der Benutzer einen Schalter an der Schnittstellenvorrichtung anwählen, um die Übertragungsleitungen von einer normalen Mikroprozessorsteuerung zur direkten Hauptrechnersteuerung über den Zugangsanschluss umzuschalten (der Mikroprozessor kann deaktiviert werden, wenn die direkte Hauptrechnersteuerung verwendet wird). Dies würde ermöglichen, dass der Hauptrechner eine realistische, direkte Kraftrückkopplung für den Benutzer vorsieht, würde aber dem Hauptrechner eine größere Verarbeitungslast auferlegen.
  • Fig. 4a ist ein Blockdiagramm eines alternativen "Rückstoß"-Ausführungsbeispiels 80 des Kraftrückkopplungs- Steuersystems 10 von Fig. 2. In dem Rückstoß-Steuersystem 80 ist kein Lokaler Vorrichtungsmikroprozessor 26 erforderlich, um eine Kraftrückkopplung vorzusehen, und der Hauptrechner sendet keine Signale oder nur minimale Signale zur Schnittstellenvorrichtung 14. Das Rückstoß- Ausführungsbeispiel ist somit eine "Reflex"- Schnittstellenvorrichtung, indem Kräfte auf das Benutzerobjekt 34 unabhängig vom Hauptrechner 12 ausgegeben werden, und diese Kräfte hängen nur von lokalen Steuerereignissen (z. B. einem Drücken einer Taste durch den Benutzer) ab. Der Reflexprozess umfasst die Ausgabe einer Kraft, wenn eine Taste gedrückt wird, ohne Datenübertragung vom Hauptrechner.
  • Die Position des Benutzerobjekts 34 wird durch Sensoren 28 festgestellt und die Sensoren senden Positions- oder andere zugehörige Signale zum Hauptrechner 12. Die Steuerschleife umfasst Tasten oder andere Eingabevorrichtungen 39, die Handlungen des Benutzers feststellen, wie z. B. wenn der Benutzer eine der Tasten drückt. Die Tasten. 39 liefern Eingabesignale zu einem Rückstoßreflex-Steuerblock 82, der eine "festverdrahtete" Logik oder andere Komponenten anstelle eines Mikroprozessors ist. Der Steuerblock 82 sendet Aktivierungssignale zum Motor (oder einer anderen Art Stellglied) 30, der Kräfte auf das Benutzerobjekt 34 ausgibt, um die Schleife zu schließen. Bei alternativen Ausführungsbeispielen, die mit Bezug auf die Fig. 4c-4f offenbart werden, kann der Hauptrechner 12 zusätzlich einfache Freigabesignale auf der Leitung 81 zum Steuerblock 82 oder Aktivierungssignale auf der Leitung 83 zum Stellglied 30 liefern, um eine realistischere Kraftrückkopplung vorzusehen. Da der Hauptrechner nicht in der Hauptsteuerschleife enthalten ist, kann der Hauptrechner eine minimale Verarbeitungszeit zur Steuerung der Kraftrückkopplung verwenden und kann andere Aufgaben effizienter verarbeiten, wie z. B. das Anzeigen von Bildern auf der Anzeigevorrichtung 20 und andere Prozesse. Außerdem vereinfacht das Fehlen eines Mikroprozessors 26 die Schnittstellenvorrichtung 14 und verringert deren Kosten, wie nachstehend erörtert.
  • Fig. 4b ist ein schematisches Diagramm eines ersten "Rückstoß"-Ausführungsbeispiels 80 von Fig. 4a. Die Schnittstellenvorrichtung 80 umfasst einen Steuerhebel 84 oder ein ähnliches Benutzerobjekt 34, das mit Sensoren 28 gekoppelt ist (oder anderweitig durch diese abgetastet wird). Die Sensoren 28 liefern Signale, die die Position des Steuerhebels in den vorgesehenen Freiheitsgraden anzeigen. Beispielsweise sind die Sensoren 28 vorzugsweise analoge Potentiometer 86 ähnlich jenen, die mit Bezug auf Fig. 3 beschrieben wurden. Der Steuerhebel 84 weist vorzugsweise auch eine oder mehrere Tasten 88 auf, die darauf angeordnet sind, ähnlich den mit Bezug auf Fig. 3 beschriebenen Tasten 56. Tasten oder andere Steuerungen können auch auf einem Gehäuse oder Sockel der Schnittstellenvorrichtung 14 zusätzlich zu oder anstelle von den Tasten auf dem Steuerhebel vorgesehen sein.
  • Die Sensordaten von den Sensoren 28 werden vorzugsweise auf dem Spielanschluss-Schnittstellenbus 25 zum Hauptrechner 12 ausgegeben. Beispielsweise werden vorzugsweise analoge Potentiometer verwendet und die Sensordaten werden in Übereinstimmung mit dem Spielanschluss- Schnittstellenstandard in eine digitale Form umgewandelt.
  • Bei dem beschriebenen Ausführungsbeispiel wird eine Kraftrückkopplung vorgesehen, wenn der Benutzer Eingabevorrichtungen, wie z. B. Tasten 88, aktiviert. Wenn beispielsweise die Taste #1 auf der Schnittstellenvorrichtung 80 vom Benutzer gedrückt wird, wird das Signal von der Taste #1 über die Spielanschlussschnittstelle 25 mit den anderen Tastendaten zum Hauptrechner 12 gesandt. Die Daten der Taste #1 werden auch zu einem Zeitgeber/Impulsgenerator 90, der in der Schnittstellenvorrichtung 80 enthalten ist, gesandt. Wenn der Zeitgeber/Impulsgenerator 90 das Signal der Taste #2 empfängt, gibt er auf der Leitung 92 ein Motorsteuersignal aus.
  • Die Leitung 92 ist mit der Stellglied-Schnittstelle 38 gekoppelt, die bei dem vorliegenden Ausführungsbeispiel einen Transistor 94 aufweist, der zum Verstärken des Motorsteuersignals verwendet wird. Die Stellglied- Schnittstelle 38 ist mit dem Motor 96 gekoppelt, um ein geeignetes Signal zum Antreiben des Motors zu liefern. Der Motor 96 liefert eine Kraft in einem speziellen Freiheitsgrad zum Benutzerobjekt 34. Ein Satz eines Motors 96 und einer Stellglied-Schnittstelle 38 kann für jeden Freiheitsgrad vorgesehen sein, in dem sich das Benutzerobjekt bewegen kann. Alternativ können weniger Motoren 96 enthalten sein, wenn erwünscht ist, dass die Kraft nur in ausgewählten Freiheitsgraden vorgesehen wird.
  • Die Leistungsversorgung 92 speist den Motor 96 und kann beispielsweise mit einer Standard-Wechselstrom- Wandsteckdose verbunden sein. Zwei Schalter 41 und 98 aktivieren oder deaktivieren den Motor 96 durch Anschließen oder Trennen des Stroms zum Motor. Der Schutzschalter 41 ist ähnlich dem bezüglich Fig. 3 beschriebenen Schutzschalter und wird geschlossen, wenn der Benutzer einen Schalter auf der Schnittstellenvorrichtung 80 drückt oder anderweitig schließt. Der Schalter 98 ist ein "Rückstoßaktivierungs"-Schalter", der auf dem Äußeren der Schnittstellenvorrichtung angeordnet ist und vom Benutzer geschlossen oder geöffnet werden kann. Wenn er geschlossen ist, isa die vom Motor 96 vorgesehene Kraftrückkopplung wirksam, und wenn er offen ist, ist die Kraftrückkopplung abgeschaltet. Dies ermöglicht, dass der Benutzer die Kraftrückkopplung einschaltet, wenn der Benutzer es für zweckmäßig hält, Kräfte an den Steuerhebel als Reaktion auf einen Tastendruck auszugeben. Der Benutzer kann die Kraftrückkopplung ausschalten, wenn er es wünscht und/oder wenn es ungeeignet ist zu veranlassen, dass Kräfte ausgegeben werden, wenn eine Taste gedrückt wird.
  • Das vorliegende Ausführungsbeispiel ist zur Verwendung als kostengünstige "Rückstoß"-Kraftrückkopplungs- Schnittstellenvorrichtung vorgesehen, die keinen lokalen Mikroprozessor 26 benötigt und nicht erfordert, dass der Hauptrechner 12 Kraftrückkopplungssignale sendet, um Kräfte auf dem Benutzerobjekt 34 vorzusehen. Vielmehr wird die Kraftrückkopplung ausgelöst, sobald der Benutzer eine entsprechende Steuerung aktiviert, wie z. B. eine Schießtaste 88 auf einem Steuerhebel. Somit ist die "Rückstoß"-Kraftrückkopplung ein unabhängiger "Reflexprozess". Obwohl der Hauptrechner keine Signale oder Befehle zum Auslösen der Kraftrückkopplung sendet, können die Kräfte bei diesem Ausführungsbeispiel dennoch Kraftereignisse realistisch darstellen. Der Hauptrechner kann beispielsweise eine Simulation oder ein Videospiel ablaufen lassen, bei dem der Benutzer eine Schusswaffe steuert. Die Vom Motor 96 ausgegebene Kraft kann ausgelöst werden, wenn der Benutzer eine Taste drückt, um die Schusswaffe abzufeuern, und kann einen Ruck oder eine ähnlich Kraft vorsehen, um den Rückstoß der Schusswaffe zu simulieren. Bei vielen derartigen Spielen feuert ein Tastendruck immer die gesteuerte Schusswaffe in dem Spiel ab. Die Kräfte simulieren somit genau eine Rückstoßkraft, wenn während eines Spiels eine Schusswaffe abgefeuert wird, eine Zentrifugalkraft, wenn Triebwerke in einem simulierten Flugzeug oder Raumfahrzeug aktiviert werden, eine Schwingungskraft für eine bestimmte Handlung oder eine andere Kraft bei der Ausführung irgendeiner anderen Handlung wähnend einer Simulation oder eines Spiels. Die Kräfte können in einer vorbestimmten oder willkürlichen Richtung(en) vorgesehen werden.
  • Dieses Ausführungsbeispiel ermöglicht, dass in jeder Software, die mit einem Standardsteuerhebel oder einem anderen mit einem Standard-Spielanschluss verbundenen Peripheriegerät kompatibel ist, eine Kraftrückkopplung für einen Benutzer bereitgestellt wird. Es ist keine spezielle Kraftsteuer-Software für den Hauptrechner erforderlich, da der Hauptrechner bei diesem Ausführungsbeispiel keine Kraftbefehle an die Schnittstellenvorrichtung ausgibt. Die Taste #1 ist beispielsweise direkt mit dem Zeitgeber/Impulsgenerator 90 verdrahtet, der den Motor 96 aktiviert, wenn die Taste #1 gedrückt wird. Bei einem Ausführungsbeispiel kann der Zeitgeber/Impulsgenerator einen einzelnen Kraftruck erzeugen, während eine Taste gedrückt wird. Alternativ kann der Impulsgenerator 90 veranlassen, dass der Motor 96 eine Kraftruckserie mit einer vorbestimmten Frequenz für die Zeitdauer ausgibt, die der Benutzer die Taste ständig drückt.
  • Wenn dem Benutzer während eines Spiels die Munition ausgeht oder er anderweitig nicht imstande ist, eine mit einer Kraftrückkopplung verbundene Handlung auszuführen, dann kann der Benutzer den Rückstoßschalter 98 öffnen, um den Motor zu deaktivieren. Dies ermöglicht, dass die Kraftrückkopplung bequem gesperrt wird, wenn sie für das Spiel oder die Simulation nicht zweckmäßig ist. Außerdem kann der Benutzer den Rückstoßschalter 98 öffnen, wenn der Benutzer nicht wünscht, als Reaktion auf Tastendrücke Kräfte zu spüren. Der Benutzer kann auch den Schutzschalter 41 öffnen, um die Kraftrückkopplung zu sperren (wenn nicht der Handgewichts-Schutzschalter von Fig. 9 verwendet wird, bei dem es nicht möglich wäre, dass der Benutzer den Steuerhebel bedient, ohne den Schutzschalter zu schließen). Andere Tasten auf der Schnittstellenvorrichtung 80 können ebenfalls mit einzelnen Motoren und Zeitgebern/Generatoren in ähnlicher Weise verbunden sein, oder mehrere Tasten können mit einem Motor und Zeitgeber/Generator verbunden sein. Verschiedene Motoren können eingestellt werden, um verschiedene Kraftempfindungen in Abhängigkeit von der speziellen Taste, die der Benutzer drückt, zu liefern, z. B. kann ein Motor eine Schusswaffen-Rückstoßkraft auf dem Benutzerobjekt vorsehen, ein anderer Motor kann eine Schwingungskraft eines Fahrzeugs vorsehen, usw. Viele Kombinationen von Tasten- oder anderen Steuerungsaktivierungen und verschiedene Motorkräfte können bereitgestellt werden.
  • Fig. 4c ist ein schematisches Diagramm eines zweiten Ausführungsbeispiels 100 der "Rückstoß"- Schnittstellenvorrichtung von Fig. 4a. Die Schnittstellenvorrichtung 100 ist funktionaler als die Schnittstellenvorrichtung 80, da einfache Logikzustände vom Hauptrechner 12 als Steuersignal gesandt werden können, um die Kraftrückkopplung an der Schnittstellenvorrichtung 100 freizugeben oder zu sperren, um die Korrelation der Kraftrückkopplung mit vom Hauptrechner implementierten Spiel- oder Simulationsereignissen zu unterstützen. Die Potentiometer 86, die Tasten 88, der Motor 96, die Motorschnittstelle 94 und die Schalter 41 und 98 sind ähnlich den mit Bezug auf Fig. 4b beschriebenen äquivalenten Komponenten.
  • Wie hierin bezeichnet, beziehen sich die Begriffe "aktivieren" oder "deaktivieren", die auf die Stellglieder oder Reflexprozesse angewendet werden, auf die direkte Bewirkung, dass die Stellglieder eine Kraft ausgeben oder entfernen. Ein Aktivierungssignal bewirkt beispielsweise, dass das Stellglied eine Kraft ausgibt, wenn das Stellglied das Aktivierungssignal empfängt, und ein Deaktivierungssignal schaltet das Stellglied aus und/oder entfernt Ausgangskräfte (unter der Annahme, dass keine anderen Sperrsignale wirksam sind). Im Gegensatz dazu beziehen sich die Begriffe "freigeben" und "sperren" auf entweder das Zulassen oder nicht Zulassen, dass die Motoren durch andere Aktivierungs- oder Deaktivierungssignale gesteuert werden. Wenn beispielsweise ein Sperrsignal zur Stellgliedschnittstelle gesandt wurde, oder wenn die Stellglieder durch Öffnen des Rückstoßschalters 98 und Unterbrechen des Stroms gesperrt werden, gibt das Stellglied keine Kräfte aus, wenn ein Aktivierungssignal empfangen wird (oder zu irgendeiner anderen Zeit). Wenn ein Freigabesignal gesandt wird, können die Stellglieder Kräfte ausgeben, wenn ein Aktivierungssignal empfangen wird, und entfernen alle Kräfte, wenn ein Deaktivierungssignal empfangen wird. Ein Stellglied kann Kräfte ausgeben, wenn alle Freigabesignale auf "Freigabe" gesetzt sind und wenn ein Aktivierungssignal empfangen wird. Außerdem werden die Reflexprozesse hierin auch als "freigegeben" oder "gesperrt" bezeichnet, wobei gemeint ist, dass der Prozess der Ausgabe von Kräften als Reaktion auf lokale Ereignisse entweder wirksam (freigegeben) oder nicht wirksam (gesperrt) ist. Ein Rückstoßreflexprozess, der gesperrt ist, bedeutet beispielsweise, dass der Prozess der Ausgabe von Kräften als Reaktion auf den Benutzer, der eine Taste drückt, nicht: wirksam ist.
  • Die Schnittstellenvorrichtung 100 umfasst einen Auswahlblock 102, der mit einer Steuersignalleitung 104 von einer Taste auf der Schnittstellenvorrichtung gekoppelt ist. Außerdem ist eine Hauptrechnerleitung 106 (oder mehrere Hauptrechnerleitungen in alternativen Ausführungsbeispielen) mit dem Auswahlblock 102 von einem parallelen Bus 105, der mit dem Hauptrechner 12 verbunden ist, gekoppelt. Die Hauptrechnerleitung 106 wird vom Hauptrechner verwendet, um den Motor 96 freizugeben oder zu sperren. Bei dem beschriebenen Ausführungsbeispiel ist die Leitung 106 mit einem seriellen Anschluss des Hauptrechners 12 verbunden, der bei dem vorliegenden Ausführungsbeispiel als paralleler Anschluss verwendet wird. Ein RS-232- Anschluss des Hauptrechners kann beispielsweise mit dem parallelen Bus 105 gekoppelt sein. Die DTR-Leitung der RS- 232-Schnittstelle kann als parallele Leitung verwendet werden, die ein Signal mit niedrigem oder hohem Pegel überträgt. Diese DTR-Leitung wäre die Hauptrechnerleitung 106, die zum Freigeben oder Sperren der Stellglieder verwendet wird. Andere Leitungen der RS-232-Schnittstelle könnten ebenfalls verwendet werden. Das vorliegende Ausführungsbeispiel behandelt somit die serielle RS-232- Schnittstelle als parallele Schnittstelle und benötigt keinen UART oder andere seriellen Unterstützungschips, was folglich die Kosten der Vorrichtung 100 signifikant verringert. Bei alternativen Ausführungsbeispielen können andere Schnittstellen verwendet werden. Ein paralleler Bus 105 kann beispielsweise mit einem parallelen Standardanschluss des Hauptrechners 12 gekoppelt sein.
  • Der Auswahlblock 102 gibt ein Impulssignal auf der Steuerleitung 108 aus, um den Motor 96 zu aktivieren, wenn die Taste ein Aktivierungssignal auf der Leitung 104 sendet und wenn der Hauptrechner ein Freigabesignal auf der Leitung 106 sendet. Wenn eines dieser Signale nicht auf einem hohen zustand (oder äquivalent) liegt, kann der Motor nicht aktiviert werden. Der Auswahlblock 102 kann auf mehrere mögliche Arten implementiert werden. Fig. 4d stellt beispielsweise ein Funktionsdiagramm dar, in dem die Tastenleitung 104, die Hauptrechnerleitung 106 und eine Leitung von einem Takt-/Impulsgenerator 90 Eingänge in ein UND-Gatter 110 sind und das Ausgangssignal des UND-Gatters 110 als Steuersignal auf der Leitung 108 zur Motorschnittstelle 94 geliefert wird. Fig. 4e stellt ein alternatives Diagramm dar, in dem die Tastenleitung 104 in einen getriggerten Impulsgenerator 90 eingeführt wird, welcher einer. Impuls (oder Impulse) ausgibt, wenn ein Signal empfangen wird, das anzeigt, dass eine Taste vom Benutzer gedrückt wurde. Das Ausgangssignal des getriggerten Impulsgenerators 90 und die Freigabeleitung 106 vom Hauptrechner 12 werden in ein UND-Gatter 110 eingeführt, das das Steuersignal auf der Leitung 108 zum Motor 94 ausgibt, wenn beide Eingangssignale auf einem hohen Pegel liegen.
  • Die Freigabeleitung 106 vom Hauptrechner kann als direkte Leitung von einem seriellen oder anderen Anschluss des Hauptrechners oder als Mehrleitungsbus 105 mit mehr Informationen implementiert werden. Der Bus 105 kann beispielsweise separate Leitungen für einen Takt, Daten und ein Löschsignal enthalten, die in einen Zwischenspeicher vom Hauptrechner 12 eingespeist werden, und das Ausgangssignal des Zwischenspeichers kann als Leitung 106 mit dem Auswahlblock gekoppelt werden. Der Zwischenspeicher würde das Freigabesignal liefern, wenn sich das Taktsignal auf einen hohen Zustand ändert, was somit ermöglicht, dass der Hauptrechner steuert, wann das Freigabesignal gesandt wird, unter Verwendung einer synchronen Datenübertragung.
  • Die Schnittstellenvorrichtung 100 ist insofern ähnlich der Rückstoß-Schnittstellenvorrichtung von Fig. 4b, dass, wenn ein Benutzer eine festgelegte Taste drückt, durch den Motor 96 eine Kraftrückkopplung auf das Benutzerobjekt 34 aufgebracht wird. Die Vorrichtung 100 umfasst jedoch auch eine Freigabeleitung 106 vom Hauptrechner, welche ermöglicht, dass der Hauptrechner festlegt, wann der Motor aktiviert werden kann. Die Freigabeleitung 106 ermöglicht nicht, dass der Hauptrechner gewünschte Kräfte befiehlt, sondern ermöglicht nur, dass der Hauptrechner auswählt, wann der Benutzer die Kraft durch Drücken einer Taste aktivieren kann (was somit den Reflexprozess freigibt/sperrt).
  • Die Freigabeleitung 106 ermöglicht, dass der Softwareprozess, der im Hauptrechner abläuft, besser mit der Kraftrückkopplung koordiniert wird. Wenn beispielsweise dem Benutzerspieler bei einem Videospiel die Munition für eine gesteuerte Schusswaffe ausgeht, kann der Hauptrechner ein Sperrsignal zum Auswahlblock 102 senden, das den Motor 96 ungeachtet des Zustands der Taste 88 sofort deaktiviert. Wenn der Benutzerspieler sich in einer Situation befindet, in der eine Kraftrückkopplung aufgebracht werden kann, beispielsweise wenn der Benutzer in einem Spiel mehr Munition aufnimmt, kann der Hauptrechner ebenso ein Freigabesignal auf der Leitung 106 senden, das den Motor eine Kraft ausgeben lässt, wenn der Benutzer die Taste 88 anwählt. Dies ist eine Verbesserung bei der Koordinierung von Kräften mit einer Hauptrechneranwendung gegenüber dem Ausführungsbeispiel von Fig. 4b, da bei diesem Ausführungsbeispiel ein Benutzer die Stellglieder mit dem Rückstoßschalter 98 manuell sperren musste. Diese Konfiguration ist fast so kostengünstig und einfach wie das Ausführungsbeispiel von Fig. 4b, obwohl es einen größeren Grad an Realismus und Koordination der Kraftrückkopplung mit einer anderen visuellen und akustischen Rückkopplung im Hauptrechner 12 ermöglicht. Nur eine einzelne Leitung 106 ist erforderlich, damit der Hauptrechner die Kraftrückkopplung gemäß Spiel- oder Simulationsereignissen deaktivieren kann. Der Benutzer kann auch ähnlich dem Ausführungsbeispiel von Fig. 4b den Schalter 94 "Rückstoß aktiv" öffnen oder schließen, um den Motor freizugeben oder zu sperren.
  • Fig. 4f ist ein drittes Ausführungsbeispiel 114 der Rückstoß-Schnittstellenvorrichtung von Fig. 4a, bei der entweder ein Tastendruck oder ein Steuersignal vom Hauptrechner bewirken kann, dass eine Kraftrückkopplung auf das Benutzerobjekt 34 ausgegeben wird. Die Schnittstellenvorrichtung 114 umfasst einen Steuerhebel 84, Potentiometer 86, Tasten 88, einen Motor 96, eine Motorschnittstelle 94 und Schalter 41 und 98, die ähnlich den mit Bezug auf Fig. 4b beschriebenen äquivalenten Komponenten sind. Die Vorrichtung 114 umfasst auch einen Auswahlblock 102, in den Leitungen 104 und 106 eingeführt werden und der im wesentlichen ähnlich dem bei Fig. 4c beschriebenen Auswahlblock 102 ist.
  • Die Schnittstellenvorrichtung 114 umfasst zusätzlich ein ODER-Gatter 116 oder das funktionale Äquivalent. Das ODER- Gatter 116 weist zwei Eingangsleitungen auf, eine Leitung 118 vom Auswahlblock 102 und eine separate Aktivierungsleitung 120 vom parallelen Bus 105, welcher mit dem Hauptrechner gekoppelt ist. Das Ausgangssignal des ODER-Gatters 116 wird in die Motorschnittstelle 94 eingekoppelt. Das ODER-Gatter ermöglicht, dass der Hauptrechner den Motor 96 unter Verwendung eines Aktivierungssignals auf der Aktivierungsleitung 120 ungeachtet dessen, ob ein Benutzer irgendwelche Tasten drückt, aktiviert. Diese Aktivierung des Motors 96 ist einfach das Ein- oder Ausschalten des Motors unter Verwendung des Impulsgenerators 90, d. h. der Impulsgenerator sendet ein vorbestimmtes PWM-Signal oder einen anderen Befehl zum Stellglied aus, um eine vorbestimmte Kraftempfindung, wie z. B. eine Schwingung, einen Ruck usw., zu implementieren. Der Hauptrechner sendet vorzugsweise nicht tatsächliche Kraftwerte oder steuert die Kräfte des Motors 96 direkt und kann somit die Größe der Ausgangskräfte nicht ändern. Der Bus 105 kann eine parallele Standardanschlussschnittstelle vom Hauptrechner sein oder der Bus kann ein serieller Anschluss sein, der verwendet wird, um serielle Signale zu übertragen, wie vorstehend erläutert.
  • Der Hauptrechner sendet das Aktivierungssignal, um die Kraftrückkopplung mit Ereignissen zu koordinieren, die innerhalb eines computerimplementierten Prozesses oder Anwendungsprogramms auftreten. Wenn beispielsweise eine Explosion ein Fahrzeug erschüttert, das der Benutzer in einem Videospiel oder einer Simulation steuert, kann der Hauptrechner der Schnittstellenvorrichtung 114 signalisieren, eine Kraftrückkopplung auf das Benutzerobjekt 34 auszugeben, ohne Rücksicht auf die Tasten, die der Benutzer drückt. Dies fügt eine weitere Funktionalität gegenüber dem Ausführungsbeispiel 100 von Fig. 4c hinzu, bei dem der Hauptrechner nur die Kraftrückkopplung freigeben oder sperren konnte und sie nicht aktivieren konnte; bei diesem Ausführungsbeispiel konnten Kräfte, die durch Explosionen oder andere Ereignisse ausgelöst wurden, welche dem Benutzer passieren, nicht bereitgestellt werden. Die Schnittstellenvorrichtung 114 stellt somit einen noch größeren Realismus bei der Kraftrückkopplung als die Ausführungsbeispiele der Fig. 4b und 4c und eine Koordination mit dem im Hauptrechner 12 implementierten Prozess bereit, da der Hauptrechner die Stellglieder auf zwei Arten steuern kann: entweder Freigeben oder Sperren der Sperrglieder unter Verwendung der Steuerleitung 104, wobei er jedoch den Benutzer die Kraftrückkopplung mit einer Taste auslösen lässt; oder durch unabhängiges Auslösen der Kraftrückkopplung ungeachtet des Zustands der Taste. Trotz der hinzugefügten Funktionalität bleibt die Schnittstellenvorrichtung 110 kostengünstig und einfach, wobei nur eine kleine Anzahl von Leitungen vom Hauptrechner zum Steuern der Kraftrückkopplung erforderlich ist und kein lokaler Mikroprozessor 26 erforderlich ist. Der Nachteil der Ausführungsbeispiele 100 und 114 besteht darin, dass eine spezielle Software erforderlich ist, damit der Hauptrechner 12 Freigabe- und Aktivierungsbefehle an die Schnittstellenvorrichtung 14 ausgibt.
  • Bei alternativen Ausführungsbeispielen können zusätzliche Leitungen des Busses 105 für eine zusätzliche Funktionalität verwendet werden. Eine weitere Leitung, wie z. B. die CTS-Leitung einer RS-232-Schnittstelle (die normalerweise für Bestätigungssignale in einer seriellen Schnittstelle verwendet wird, aber hierin als Leitung in einer parallelen Schnittstelle verwendet wird), kann beispielsweise als "Achsenauswahlleitung" verwendet werden, um spezielle Achsen oder Freiheitsgrade auszuwählen, in denen die Kraft aufgebracht werden soll. Ein Signal mit hohem Pegel auf der Achsenauswahlleitung könnte anzeigen, dass Kräfte sowohl in der Vorwärts/Rückwärts- als auch der Links/Rechts-Achse eines Steuerhebels (d. h. zwei Motoren) aufgebracht werden sollen, während ein Signal mit niedrigem Pegel anzeigen könnte, dass nur ein Motor für die Links/Rechts-Achse aktiviert werden soll. Ebenso kann eine zusätzliche Leitung (oder Leitungen) im Bus 105 verwendet werden, um zu ermöglichen, dass der Hauptrechner eine Richtung der Kräfte in einem speziellen Freiheitsgrad befiehlt. Zusätzliche Leitungen können ebenfalls verwendet werden, um andere Motorausgabekonfigurationen auszuwählen. Die Vorrichtung 114 kann auch eine zusätzliche Leitung im parallelen Bus 105 enthalten, die als Freigabeleitung 104 von Fig. 4c verwendet werden soll. Beispielsweise kann in der RS-232-Schnittstelle die DTR-Leitung als Freigabeleitung 104 verwendet werden und die TxD-Leitung der RS-232-Schnittstelle kann als Aktivierungsleitung 120 verwendet werden. Die RxD-Leitung kann als "Lebensleitung" verwendet werden, um zu ermöglichen, dass der Mikroprozessor oder Hauptrechner überwacht, ob der Bus abgetrennt wurde, wie vorstehend beschrieben. Es sollte beachtet werden, dass die RS-232-Schnittstelle drei Leitungen aufweist, die aus dem Hauptrechner ausgehen, und somit maximal drei Leitungen als parallele Signalleitungen im Bus 105 zur Schnittstellenvorrichtung 114 verwendet werden können. Wenn zusätzliche Steuersignalleitungen erforderlich sind, kann das nachstehende Ausführungsbeispiel von Fig. 5 implementiert werden.
  • Eine TxD-Leitung kann auch verwendet werden, um komplexere Hauptrechnersignale zu senden, die eine gewünschte Kraftempfindung für den Benutzer vorsehen. In der RS-232- Schnittstelle kann beispielsweise eine Schrittgeschwindigkeit durch einen UART im Hauptrechner 12 festgelegt werden, um eine Geschwindigkeit zur Datenübertragung festzulegen. Daten können als hohe oder niedrige Bits auf der TxD-Leitung mit der festgelegten Schrittgeschwindigkeit gesandt werden, um die Motoren 96 mit der gewünschten Geschwindigkeit ein- und auszuschalten. Beispielsweise kann ein als 01010101 festgelegtes Byte auf der Leitung TxD mit einer Schrittgeschwindigkeit von 9600 Bits geliefert werden, so dass jedes Bit 1/9600 = 10 ms währt. Da jedes "1"-Bit das Stellglied aktiviert und jedes "0"-Bit das Stellglied deaktiviert, ergibt sich eine Kraftempfindung einer Schwingung. Die Frequenz der Schwingung kann durch Ändern der Werte oder des Musters der gesandten Bits und/oder durch Ändern der Schrittgeschwindigkeit eingestellt werden. Bei anderen Ausführungsbeispielen kann ein Impulsbreitenmodulationssignal (PWM) auf der TxD-Leitung gesandt werden, um die Stellglieder 30 ähnlich wie vorstehend beschrieben zu steuern.
  • Andere Schnittstellen, wie z. B. der parallele Standardanschluss des Hauptrechners 12, können alternativ verwendet werden, um verschiedene parallele Steuersignale vom Hauptrechner zur Schnittstellenvorrichtung zu liefern. Wenn alternativ eine Videospielkonsole als Hauptrechner 12 verwendet werden würde, können die parallelen Leitungen des Steueranschlusses der Spielkonsole verwendet werden, wie z. B. die TL-, TR- und TL-Leitungen des Steueranschlusses der Sega Saturn.
  • Es sollte beachtet werden, dass diese parallelen Leitungen sehr wenig Verarbeitung vom Hauptrechner benötigen und sehr wenig Datenübertragungsbandbreite benötigen, aber dennoch eine beträchtliche Funktionalität bei der Korrelation der Kraftrückkopplung der Schnittstellenvorrichtung 14 mit Anwendungsereignissen, die vom Hauptrechner implementiert werden, hinzufügen. Außerdem können alle Ausführungsbeispiele der Fig. 4b-4f als Standard- Steuerhebel ohne Kraftrückkopplung oder andere Peripheriegeräte verwendet werden, die einen Standard- Spielanschluss an Computern oder äquivalente Anschlüsse an anderen Computern oder Videospielkonsolen verwenden.
  • Fig. 5, die in den Fig. 5a, 5b und 5c einzeln dargestellt ist, ist ein schematisches Diagramm eines alternativen Ausführungsbeispiels 130 der Schnittstellenvorrichtung 14, wobei der Mikroprozessor 26 nicht in der Schnittstellenvorrichtung verwendet wird und wobei der Hauptrechner 12 von den Stellgliedern 30 ausgegebene Kräfte effektiver steuern kann. Dieses Ausführungsbeispiel verwendet keine Hauptrechnerbefehle hoher Ebene, die bei dem Ausführungsbeispiel 80 von Fig. 3 verwendet werden können, dennoch liefert dieses Ausführungsbeispiel mehr Steuersignale zur Schnittstellenvorrichtung 14 als die Ausführungsbeispiele der Fig. 4a-4f.
  • Die Schnittstellenvorrichtung 130 umfasst einen seriellen Schnittstellenbus 24 und einen Spielanschluss- Schnittstellenbus 25 (nicht dargestellt). Der Spielanschluss-Schnittstellenbus (oder das Äquivalent) ist ähnlich dem Bus 25 von Fig. 3 und ist mit Potentiometern oder ähnlichen Sensoren, wie vorstehend beschrieben, gekoppelt, um Positionsdaten in vorgesehenen Freiheitsgraden des Benutzerobjekts 34 über einen Spielanschluss zum Hauptrechner zu liefern. Bei dem beschriebenen. Ausführungsbeispiel ist der Schnittstellenbus 24 mit einem seriellen Anschluss am Hauptrechner 12 gekoppelt, wie z. B. einem RS-232-Anschluss oder einer ähnlichen Schnittstelle. Alternativ können andere Schnittstellen, wie z. B. die Steueranschluss-Schnittstelle einer Videospielkonsole, verwendet werden.
  • Der Schnittstellenbus 24 wird vorzugsweise verwendet, um Hauptrechner-Steuersignale und/oder Hauptrechnerbefehle seriell zur Schnittstellenvorrichtung 130 zu übertragen. Die zur seriellen Übertragung verwendeten Standard-RS-232- Signalleitungen weisen jedoch vorzugsweise eine veränderte Funktionalität auf. Die Signalleitung TxD wird typischerweise in der RS-232-Schnittstelle verwendet, um Daten in serieller Weise zu übertragen, und die Leitungen DTR, DSR und RTS werden typischerweise verwendet, um Bestätigungssignale zu und von einem Peripheriegerät zu senden und zu empfangen. Beim vorliegenden Ausführungsbeispiel wird die Leitung DTR statt dessen verwendet, um Daten seriell zu übertragen, und die Leitungen TxD und RTS werden als parallele Ausgangssteuerleitungen mit hohen und niedrigen Zuständen verwendet, um zu ermöglichen, dass der Hauptrechner Funktionen der Schnittstellenvorrichtung freigibt und sperrt und Kräfte steuert. Die DSR-Leitung wird verwendet, um Informationen zum Hauptrechner zurückzuliefern. Somit wird der serielle Schnittstellenbus 24 sowohl als serieller Bus verwendet, wenn Befehle über die Leitung DTR übertragen werden, als auch als paralleler Bus verwendet, wenn die Steuerleitungen TxD, RTS und DSR verwendet werden.
  • Die DTR-Leitung 132 überträgt Hauptrechnerbefehle niedriger Ebene seriell vom Hauptrechner zur Schnittstellenvorrichtung 130. Die DTR-Leitung 132 läuft in den Pegelumsetzer 134, der die RS-232-Signalspannung auf eine geeignete Logikspannung umsetzt und die seriellen Daten an ein erstes Schieberegister 136 ausgibt. Das Schieberegister 136 empfängt das serielle Signal an einem DSA-Anschluss und wandelt die serielle Information in parallele Bits auf einem parallelen 8-Bit-Bus 138 um. Der parallele Bus 138 ist mit Eingangsanschlüssen P0-P7 eines Adressenvergleichers 140 gekoppelt. Ein Bus 139 ist auch mit den sechs Bitleitungen des parallelen Busses 138 zwischen den Leitungen für das höchstwertige und das niedrigstwertige Bit gekoppelt. Der Bus 139 ist mit Eingangsanschlüssen eines Chips mit einer programmierbaren Matrixlogik (PAL) 142 gekoppelt. Außerdem ist die Leitung 141 für das höchstwertige Bit (MSB) des parallelen Busses 138 mit dem DSA-Eingangsanschluss eines zweiten Schieberegisters 144 gekoppelt. Das zweite Schieberegister 144 wandelt die Eingangsinformation auf der Leitung 141 in parallele Bits um, die auf dem parallelen 8-Bit-Bus 146 ausgegeben werden. Der Bus 146 ist mit einem Logikvergleicher 140 an Eingangsanschlüssen Q0-Q7 gekoppelt.
  • Die Schieberegister 136 und 144 und der Vergleicher 140 stellen eine Schaltung bereit zum Feststellen, wenn ein neues Byte (eigentlich sechs Bits) von Daten empfangen wurde und zur Verarbeitung durch die PAL 142 bereit ist. Die Schieberegister 136 und 144 sind derart in Reihe geschaltet, dass das Schieberegister 144 die aus dem Schieberegister 136 herausgeschobenen Bits empfängt. Die Ausgangsbytes auf den parallelen Bussen 138 und 146 werden vom Vergleicher 140 verglichen. Wenn die zwei Bytes identisch sind, wurde ein neues Byte vollständig eingeschoben und ist zur Verarbeitung durch die PAL 142 bereit.
  • Um festzustellen, wann ein volles neues Byte eingegeben wurde, werden das höchstwertige Bit und das niedrigstwertige Bit eines Eingangsbytes als "Gleichheitsprüfbits" vorgesehen. Die Gleichheitsprüfbits werden verwendet, um zu prüfen, wann das neue Byte in die Schieberegister 136 und 144 geschoben wurde, und kann entweder ein 1 (hoher) Wert oder ein 0 (niedriger) Wert sein. Der Hauptrechner 12 fügt vorzugsweise ein Paar von Gleichheitsprüfbits um alle 6 Datenbits ein, die er seriell auf der DTR-Leitung 132 überträgt. Der Prozess des Verschiebens von seriellen Daten in den zwei Schieberegistern wird mit Bezug auf Tabelle 1 nachstehend beschrieben. TABELLE 1
  • Tabelle 1 zeigt die Ausgangssignale Q0-Q7 der Schieberegister 136 und 144 in verschiedenen Stufen (a)- (h), wenn Datenbits vom seriellen Datenstrom auf der DTR- Leitung 132 eingegeben werden. Das System beginnt in der Anfangsstufe (a), in der die Ausgangssignale Q0-Q7 des Registers 136 exakt mit den Ausgangssignalen Q0-Q7 des Registers 144 übereinstimmen. Wenn eine solche exakte Übereinstimmung auftritt und vom Vergleicher 140 auf den Bussen 138 und 146 gelesen wird, gibt der Vergleicher ein Signal mit niedrigem Pegel auf der Leitung 148 zur PAL 142 aus, welches anzeigt, dass ein gültiges, volles neues Byte eingeschoben wurde.
  • Das nächste Bit aus dem seriellen Datenstrom wird in der Stufe (b) in Q0 des Registers 136 eingeschoben. Dies ist ein Gleichheitsprüfbit, da es der Beginn eines neuen Datenbytes ist. Dieses Gleichheitsprüfbit wird absichtlich auf Null, das Gegenteil der Gleichheitsprüfbits der Stufe (a), gesetzt, so dass keine Übereinstimmung mit den vorherigen Bytes festgestellt wird. Die anderen Werte in den Schieberegistern wurden alle um eine Ausgabe nach rechts verschoben und das MSB (1), das in der Stufe (a) auf Q7 des zweiten Scheiberegisters war, wird verworfen.
  • In der Stufe (c) wurden drei weitere Bits Y5, Y4 und Y3 aus dem seriellen Datenstrom eingeschoben und die vorherigen Bits wurden drei Stellen nach rechts verschoben. Jedes dieser Bits kann entweder einen niedrigen oder einen hohen Wert aufweisen in Abhängigkeit davon, welche Befehle der Hauptrechner gesandt hat und wie die Bits interpretiert werden. In der Stufe (d) wurden drei weitere Bits Y2, Y1 und Y0 in das erste Schieberegister geschoben und die anderen Bits wurden entsprechend verschoben. In der Stufe (e) wird das letzte Gleichheitsprüfbit des neuen Datenbytes eingeschoben. Dieses Gleichheitsprüfbit wird absichtlich auf "0" gesetzt, so dass keine Übereinstimmung mit den Gleichheitsprüfbits des Bytes im zweiten Schieberegister auftritt.
  • Obwohl in der Stufe (e) ein volles neues Byte in das erste Register geschoben wurde, gibt es keine Übereinstimmung der Bits zwischen dem ersten und dem zweiten Register. Um wieder eine Übereinstimmungsbedingung herzustellen, verschiebt der Hauptrechner 12 in den Stufen (f)-(h) folglich dasselbe Datenbyte Y5-Y0 und die Gleichheitsprüfbits (0) in das erste Register. Bis zur Stufe (h) entsprechen sich die Bits der zwei Register nicht exakt. In der Stufe (h) entsprechen sich die Bits exakt, um eine Übereinstimmungsbedingung anzuzeigen, und der Vergleicher 140 gibt auf der Leitung 148 ein Signal aus, um der PAL 142 anzuzeigen, dass ein neues Byte vollständig eingeschoben und auf Gültigkeit geprüft wurde. Die PAL 142 verarbeitet dann die aktuellen Bits auf dem Bus 139 (d. h. die Bits Y5-Y0) als neues Eingangs-"Byte". Man beachte, dass die PAL 142 während des gesamten Schiebeprozesses ständig Bits auf dem Bus 139 empfängt, aber tatsächlich nur die eingehenden Daten verarbeitet, die vorliegen, wenn das Gültigkeitssignal auf der Leitung 148 empfangen wird. Neue Bytes im Datenstrom werden ebenso verglichen und von der PAL 142 verarbeitet, wenn sie bestätigt wurden. Man beachte, dass der Hauptrechner das Gleichheitsprüfbit des nächsten Bytes nach der Stufe (h) auf einen Wert von "1" umstellen sollte, so dass mit den vorliegenden Gleichheitsprüfbits von "0" keine Übereinstimmung auftritt.
  • Die PAL 142 kann die sechs Informationsbits auf verschiedene Weisen verarbeiten. Vorzugsweise ist eine Logik in der PAL 142 vorgesehen, um jedes eingehende Bit als Steuersignal oder "Steuerbit" zu verarbeiten, so dass effektiv sechs Steuersignale über den seriellen Bus empfangen werden. Die sechs Steuerleitungen sind eine Verbesserung gegenüber dem Ausführungsbeispiel von Fig. 4f, welches nur zulässt, dass drei parallele Steuersignale über eine RS-232-Leitung gesandt werden, wie vorstehend erläutert. Der Hauptrechner kann somit eine größere Vielfalt von Parametern und Eigenschaften von Kräften unter Verwendung der größeren Anzahl von Steuerleitungen steuern. Jedes Steuerbit kann beispielsweise einen separaten Parameter steuern, wie z. B. ein Freigabesignal für die Stellglieder 30, ein Auswahlbit, das festlegt, welche Freiheitsgrade mit Kräften versehen werden sollen, oder ein Freigabesignal, um zu ermöglichen, dass die Tasten 39 Kräfte aktivieren. Die Tasten 39 geben vorzugsweise ein Signal auf der Leitung 145 in die PAL 142 ein, so dass die PAL direkt feststellen kann, wenn irgendeine der Tasten vom Benutzer gedrückt wurde. Wenn beispielsweise eine Taste gedrückt wurde, ein Gültigkeitssignal auf der Leitung 148 empfangen wurde und alle entsprechenden Freigabesignale vom Hauptrechner geliefert wurden, dann kann die PAL veranlassen, dass die Stellglieder auf das Benutzerobjekt 34 Kräfte ausgeben. Wenn irgendwelche dieser Bedingungen falsch sind, werden vorzugsweise keine Kräfte ausgegeben.
  • Die PAL umfasst die geeignete Logik, um die Steuerbits unter Verwendung der Ausgangsleitungen 143 zu den entsprechenden Komponenten in der Schnittstellenvorrichtung 130 zu senden, wie z. B. den Stellgliedern 30 und der Schnittstelle 36 oder einer anderen Logik. Ein Freigabesignal kann beispielsweise direkt von der PAL 142 zur Stellgliedschnittstelle 36 gesandt werden.
  • Alternativ können Hauptrechnerbefehle niedriger Ebene, wie z. B. tatsächliche Kraftwerte, vom Hauptrechner auf der seriellen DTR-Leitung 132 gesandt werden, um sie in durch die Stellglieder ausgegebene Kräfte umzuwandeln. Die PAL kann eine Logik enthalten, um die Befehle niedriger Ebene in Kraftwerte umzuwandeln und die Kraftwerte unter Verwendung der Ausgangsleitungen 143 zu den entsprechenden Komponenten in der Schnittstellenvorrichtung 130 zu senden, wie z. B. den Stellgliedern 30 und der Schnittstelle 36 oder einer anderen Logik. Einige der Leitungen des parallelen Busses 139 können als Steuerbits verwendet werden, während andere Leitungen verwendet werden können, um einen Kraftwert oder einen anderen Befehl niedriger Ebene zu liefern. Eine solche Logik für die PAL 142 kann unter Verwendung von Verfahren implementiert werden, die Fachleuten gut bekannt sind.
  • Bei anderen Ausführungsbeispielen können zusätzliche Leitungen im Bus 139 enthalten sein, um zusätzliche Steuerbits zur PAL 142 zu liefern. Auch zusätzliche Schieberegister können bei alternativen Ausführungsbeispielen hinzugefügt werden, wie z. B. ein Schieberegister 150. Das Register 150 ist mit dem zweiten Schieberegister 144 in Reihe geschaltet und empfängt das höchstwertige Bit vom zweiten Schieberegister. Unter Verwendung des Schieberegisters 150 und/oder zusätzlichen Schieberegistern können mehr eingehende Datenbits auf einmal zur PAL gesandt werden, was folglich mehr Steuerleitungen zur Schnittstellenvorrichtung 130 und/oder eine Erhöhung der Verarbeitungsgeschwindigkeit der Eingangs-Hauptrechnerbefehle vorsieht. Zusätzliche Schieberegister, wie z. B. das Register 150, können Bits direkt zur PAL 142 ausgeben; beispielsweise gibt das Schieberegister 150 Bits zur PAL 142 auf dem Bus 151 ähnlich den Bits auf dem parallelen Bus 139 aus. Da das erste und das zweite Schieberegister 136 und 144 prüfen können, wann neue Bytes eingeschoben wurden, müssen die zusätzlichen Schieberegister nicht ihre Bytes mit den Bytes der anderen Schieberegister vergleichen.
  • Bei einem alternativen Ausführungsbeispiel können Speicherschieberegister verwendet werden. Die Zwischenspeicher an den Ausgängen solcher Schieberegister können die Werte halten, bis alle Werte eingeschoben wurden, und dann die parallelen Daten aussenden. Nur ein solches Schieberegister muss vorgesehen sein, um die sechs Steuerbits zur PAL 142 zu senden. Die Speicherschieberegister benötigen jedoch auch ein zusätzliches Speichertaktsignal zum Speichern der Daten. Eine der Leitungen der RS-232-Schnittstelle kann als Speichertaktsignal verwendet werden, wie z. B. das TxD- Signal. Da jedoch das TxD-Signal bei dem vorliegenden Ausführungsbeispiel vorzugsweise für eine andere Funktionalität verwendet wird (wie nachstehend beschrieben), ist keine zweckmäßige Leitung zur Verwendung als Speichertaktleitung in einer RS-232-Schnittstelle verfügbar. Das vorstehend beschriebene Ausführungsbeispiel mit dem Gleichheitsprüf-Schieberegister ist daher geeigneter für das beschriebene Ausführungsbeispiel und ist auch preisgünstiger als ein Ausführungsbeispiel mit Speicherschieberegister. Bei anderen Ausführungsbeispielen, die einen anderen, Nicht-RS-232-Schnittstellenbus 24 verwenden, können Speicherschieberegister geeigneter sein.
  • Der Hauptrechner 12 sendet auch Signale auf der TxD-Leitung 155 zur Schnittstellenvorrichtung 130. Der Pegelumsetzer 154 empfängt die TxD-Leitung 155 vom RS-232- Schnittstellenbus 24. Die TxD-Leitung 155 läuft in die PAL 142 und wird verwendet, um die Motoren freizugeben oder zu aktivieren, ähnlich dem Ausführungsbeispiel von Fig. 4c und 3c. Die TxD-Leitung 155 kann auch verwendet werden, um komplexere Hauptrechnersignale zu senden, die eine gewünschte Kraftempfindung für den Benutzer bereitstellen. Beispielsweise kann eine Schrittgeschwindigkeit von einem UART im Hauptrechner 12 festgelegt werden, um eine Datenübertragungsrate festzulegen. Daten können als hohe oder niedrige Bits auf der TxD-Leitung mit der festgelegten Schrittgeschwindigkeit gesandt werden, um die Stellglieder 30 mit der gewünschten Geschwindigkeit ein- und auszuschalten, wie vorstehend mit Bezug auf Fig. 4f beschrieben. Oder ein Impulsbreitenmodulationssignal (PWM) kann auf der TxD-Leitung 155 gesandt werden, um die Stellglieder 30 zu steuern, wie vorstehend beschrieben.
  • Die RTS-Leitung 152 läuft in den Pegelumsetzer 134 und wird als Taktsignal für die Schieberegister 136 und 144 (und 150, falls vorhanden) vorgesehen, um die Geschwindigkeit zur Verschiebung der Eingangsbits und zum Liefern derselben zur PAL 142 festzulegen. Das Taktsignal auf der RTS-Leitung wird vom Hauptrechner mit einer vorbestimmten Frequenz geliefert. Somit wird die RS-232-Schnittstelle in dem aktuellen Ausführungsbeispiel für eine synchrone serielle Übertragung anstelle der asynchronen seriellen Übertragung, für die sie normalerweise verwendet wird, benutzt.
  • Die DSR-Leitung 156 wird bei dem beschriebenen Ausführungsbeispiel als parallele Übertragungsleitung verwendet, um Informationen zum Hauptrechner 12 zu liefern. Vorzugsweise kann der Hauptrechner die DSR-Leitung 156 aus Sicherheits- und anderen Gründen, wie vorstehend beschrieben, verwenden, um zu bestätigen, dass die Schnittstellenvorrichtung 130 vorhanden ist und mit dem seriellen Schnittstellenbus 24 verbunden ist. Die DSR- Leitung 156 ist mit dem Ausgang Q0 des ersten Schieberegisters 136 gekoppelt und ist mit dem Pegelumsetzer 154 verbunden, um das Logikpegelsignal auf einen RS-232-Spannungspegel umzusetzen. Die Daten auf der DSR-Leitung 156 werden aus dem Pegelumsetzer 154 an den Hauptrechner 12 ausgegeben. Das Bit auf der Leitung 156 ändert sich, wenn serielle Daten in die Schieberegister auf der DTR-Leitung 132 eingetaktet werden, wie vorstehend beschrieben. Der Zustand der DSR-Leitung kann somit zum Hauptrechner über den Schnittstellenbus 24 zurückgetaktet werden. Um zu prüfen, ob die Schnittstellenvorrichtung 130 angeschlossen ist, kann der Hauptrechner die DSR-Leitung 156 lesen und die Daten-DTR-Leitung auf ein Bit des entgegengesetzten Zustands setzen. An diesem Punkt sollte sich die DSR-Leitung noch in ihrem ursprünglichen Zustand befinden. Der Hauptrechner würde dann einen Taktimpuls auf der RTS-Leitung liefern und prüfen, um festzustellen, dass sich die DSR-Leitung in denselben Zustand ändert wie die DTR-Leitung. Wenn dies der Fall ist, wurde die Verbindung zwischen dem Hauptrechner und der Schnittstellenvorrichtung bestätigt. Wenn die DTR-Leitung die Zustände nicht ändert, kann die Schnittstellenvorrichtung abgetrennt sein. Dieser Test kann für beide Zustände der DTR-Daten vorgesehen werden, um eine übereinstimmende Antwort zu prüfen.
  • Steuer-"Prüfschleifen"-Leitungen eines seriellen oder parallelen Anschlusses können vom Hauptrechner verwendet werden, um die Identität der Schnittstellenvorrichtung 130 zu überprüfen, insbesondere wenn kein Mikroprozessor 26 vorliegt, um ein Identifikationssignal für die Schnittstellenvorrichtung zu liefern. Vorzugsweise werden die Nicht-Standard-Ausgangs- und -Eingangsleitungen des Schnittstellenbusses so verwendet, dass die Schnittstellenvorrichtung nicht mit anderen Arten von Vorrichtungen verwechselt wird, die mit dem Hauptrechner verbunden sein können. Wenn der Hauptrechner beispielsweise feststellen möchte, welche Art Peripheriegerät an seinem seriellen Anschluss angeschlossen ist, kann der Hauptrechner ein Signal auf einer Ausgangsleitung aussenden und die Nicht-Standard-Eingangsleitung prüfen; wenn das gesandte Signal erfasst wird, dann weiß der Hauptrechner, dass die Schnittstellenvorrichtung 14 oder 130 angeschlossen ist. Dieses Merkmal kann auch in den Ausführungsbeispielen der Fig. 4a-4f uni in anderen Ausführungsbeispielen, die keinen Mikroprozessor 26 aufweisen, verwendet werden.
  • Es sollte beachtet werden, dass verschiedene und äquivalente Signale zu den vorstehend beschriebenen RS-232- Signalen in alternativen Ausführungsbeispielen der Schnittstellenvorrichtung 130 verwendet werden können. Beispielsweise können ebenso äquivalente Signale an RS-422- oder Videospiel-Schnittstellen verwendet werden.
  • Das Ausführungsbeispiel 130 der Schnittstellenvorrichtung besitzt verschiedene Vorteile. Da kein lokaler Mikroprozessor 26 oder UART in der Schnittstellenvorrichtung 130 erforderlich ist, werden die Kosten der Schnittstellenvorrichtung stark verringert. Die Implementierung eines seriellen Datenstroms ermöglicht, dass der Hauptrechner eine größere Anzahl von Steuersignalen sendet und eine viel stärkere Steuerung besitzt als in den Ausführungsbeispielen der Fig. 4a-4f. Viele weitere Arten von Befehlen können unter Verwendung der seriellen Schnittstelle vom Hauptrechner gesandt werden als die drei maximalen Befehle, die bei der Implementierung des parallelen Busses einer RS-232-Schnittstelle in den obigen "Rückstoß"-Ausführungsbeispielen möglich sind. Kraftwerte oder andere Befehle können auch vom Hauptrechner gesandt werden, um die Stellglieder besser zu steuern. Außerdem können die Logikkomponenten der Schnittstellenvorrichtung 130, die in Fig. 5 gezeigt sind, leicht auf einem einzelnen Chip bereitgestellt werden, der als ASIC oder FPGA implementiert ist. Dies ermöglicht, dass die Schaltkreise für die Schnittstellenvorrichtung 130 in hoher Menge bei sehr geringen Kosten hergestellt werden.
  • Fig. 6 ist ein schematisches Diagramm, das eine kostengünstige und kompakte Leistungsschaltung 158 der vorliegenden Erfindung darstellt, die zum Implementieren einer Kraftrückkopplung in der Schnittstellenvorrichtung 14 verwendet wird. Die Leistungsschaltung 158 umfasst einen Strombegrenzer 160, einen Kondensator 162 und einen wahlweisen Analog-Digital-Wandler 164. Der Motor 96 (oder eine andere Art aktives Stellglied) und die Motorschnittstelle 94 sind im wesentlichen ähnlich den bei den Ausführungsbeispielen der Fig. 2-5 beschriebenen äquivalenten Komponenten.
  • Eine Spannung V wird auf einer Leitung 159 geliefert. Die Leitung 159 kann eine Leitung sein, die mit einer Leistungsversorgung, wie z. B. der Leistungsversorgung 41, oder mit dem Leistungssignal einer Spielanschluss- Schnittstelle 25 verbunden ist. Die Leitung 159 kann auch mit einem Peripheriegerät-Schnittstellenanschluss von Videospielkonsolen, wie z. B. der Sega Saturn oder der Sony PlayStation, verbunden sein. Die Leitung 159 verläuft in den Strombegrenzer 160, der mit verschiedenen Komponenten, die Fachleuten gut bekannt sind, implementiert werden kann.
  • Der Strombegrenzer 160 begrenzt den Strom des Eingangsspannungssignals auf der Leitung 159 auf einen maximalen Strom von IGRENZ Dieser Strom wurde vorher so festgelegt, dass er der gewünschte Strom ist, um den Kondensator 162 aufzuladen, wie in Tabelle 2 nachstehend gezeigt.
  • Der Kondensator 162 ist zwischen einen Ausgang des Strombegrenzers 160 und die Erdung gekoppelt. Der Kondensator weist eine Kapazität C auf, die so ausgewählt wurde, dass die gewünschten Ladeeigenschaften vorgesehen werden. Bei dem beschriebenen Ausführungsbeispiel kann C beispielsweise 2000 bis 10000 Mikrofarad betragen. Die Faktoren, die C und andere Komponentenwerte festlegen, werden nachstehend ausführlicher beschrieben. Der Kondensator 162 speichert die Energie vom strombegrenzten Signal auf der Leitung 161, bis er vollständig aufgeladen ist. Die Leitung 161 ist auch mit einem Vorspannungseingang eines Verstärkers 166 gekoppelt, der in einer Stellgliedschnittstelle 94 enthalten ist. Der Kondensator 162 und die Schaltung 166 des Verstärkers ("Treibers") sind derart konfiguriert, dass ermöglicht wird, dass der Kondensator 0 Leistung zum Verstärker liefert, um ein in den Verstärker eingegebenes Steuersignal zu verstärken.
  • Widerstände R1 und R2 sind zwischen den Ausgang des Strombegrenzers 160 und die Erdung gekoppelt. Ein wahlweiser A/D-Wandler 164 weist einen Eingang auf, der mit dem Knoten zwischen den Widerständen R1 und R2 gekoppelt ist, und weist einen Ausgang auf, der mit dem Mikroprozessor 26 gekoppelt ist. Der Mikroprozessor 26 empfängt das digitale Signal vom A/D-Wandler an einem analogen Eingangsanschluss. Der Mikroprozessor 26 sendet auch ein Motorsteuersignal auf der Leitung 163 aus, um den Motor 96 zu aktivieren, ähnlich den vorstehend beschriebenen Ausführungsbeispielen.
  • Die Leistungsschaltung 158 arbeitet folgendermaßen. Die Spannung V von der Leistungsversorgung wird wie vorstehend beschrieben durch den Strombegrenzer 160 begrenzt. Das begrenzte Spannungssignal wird auf der Leitung 161 ausgegeben und lädt den Kondensator C auf. Das strombegrenzte Spannungssignal wird auch zum A/D-Wandler 164 geliefert, welcher eine digitale Darstellung des Signals zum Mikroprozessor 26 liefert. Der Mikroprozessor überwacht dieses Signal, um den Stromladezustand des Kondensators 162 festzustellen; die Spannungsgröße zeigt die Menge der Ladung an, die im Kondensator gespeichert ist. Wenn genügend Leistung im Kondensator geladen wurde, um den Motor 96 anzutreiben, und wenn der Mikroprozessor festgestellt hat, dass es ein geeigneter Zeitpunkt ist, um Kräfte auf das Benutzerobjekt 34 auszugeben, dann signalisiert der Mikroprozessor auf der Leitung 163, dass der Motor aktiviert wird. Das Aktivierungssignal vom Mikroprozessor 26 kann beispielsweise ein analoges Signal von einem D/A-Wandler im Mikroprozessor sein, oder könnte ein Impulsbreitenmodulationssignal (PWM) sein. Die Leistung im Kondensator wird zum Verstärker 166 geliefert und wird verwendet, um das Signal vom Mikroprozessor zu verstärken und den Motor 96 anzutreiben.
  • Die vorliegende Konfiguration der Leistungsschaltung bietet verschiedene Vorteile gegenüber Standard- Leistungsversorgungen des Standes der Technik, die zur Kraftrückkopplung verwendet werden. Es wurde festgestellt, dass sich die menschliche Wahrnehmung von Kraftempfindungen stark auf vorübergehende Kräfte anstatt auf konstante Kräfte konzentriert. Beispielsweise nimmt ein Mensch leicht eine Kraftänderung wahr, fühlt aber nicht so leicht eine stationäre, stetige Kraft. Wenn es hinsichtlich einer Kraftrückkopplungs-Schnittstellenvorrichtung erwünscht ist, dass eine starke Kraft an den Benutzer, der die Vorrichtung bedient, ausgegeben wird, dann ist eigentlich nur ein kurzer Kraftruck oder -impuls (d. h. eine Kraftänderung) erforderlich, damit der Benutzer dieser Kraft erfasst; das Aufrechterhalten einer kontinuierlichen Kraftgröße über die Zeit ist nicht so entscheidend, da der Benutzer diese konstante Kraft nicht so leicht erfasst, nachdem die Kraftänderung aufgetreten ist.
  • Diese menschliche Wahrnehmungsbedingung ist stark relevant für die vorliegende Leistungsschaltung. Unter Verwendung der im Kondensator 162 gespeicherten Energie für den Leistungsverstärker 166 kann für eine kurze Zeitdauer eine Kraftänderung erzeugt werden, indem der Kondensator seine Energie entlädt. Unter Verwendung der hinzugefügten Leistung vom Kondensator kann der Motor 96 eine stärkere Kraft ausgeben, als wenn die Leistungsversorgung 41 oder eine andere Quelle allein verwendet werden würde. Somit können starke Rucke oder andere Kraftempfindungen oberhalb des maximalen Kraftpegels der Leistungsversorgung der Schnittstellenvorrichtung vorgesehen werden. Diese Empfindungen müssen nicht sehr lang aufrechterhalten werden, da der Benutzer die Kraftänderung leichter spürt als irgendeine kontinuierliche stärkere Kraftausgabe, so dass dem Benutzer weisgemacht werden kann, dass eine stärkere Kraft ausgegeben wurde und weiter ausgegeben wird.
  • Dieser Betrieb kann insofern vorteilhaft sein, dass eine kleinere Leistungsversorgung verwendet werden kann, um die Motoren zu speisen. Die Kondensatorleistung kann für eine kurze Zeitdauer vorgesehen werden, um Kraftpegel zu erreichen, die so groß sind, wie eine größere Leistungsversorgung liefern würde. Eine kleinere Leistungsversorgung würde ermöglichen, dass die Schnittstellenvorrichtung viel kleiner, kostengünstiger und leichtgewichtig ist, was ideale Eigenschaften für Kraftrückkopplungsvorrichtungen sind, die für den Massenmarkt vorgesehen sind. Da eine solche kleinere Leistungsversorgung außerdem nur die Kräfte mit größerer Größe für kurze Zeitdauern anstatt kontinuierlich ausgegeben würde, wäre die Bedienung der Kraftrückkopplungsvorrichtung für den Benutzer sicherer.
  • Bei einem idealen Ausführungsbeispiel würde überhaupt keine Leistungsversorgung 41 erforderlich sein, wenn die Leistungsschaltung 158 verwendet wird. Die Leistung kann direkt aus dem Hauptrechner 12 über die Spielanschluss- Schnittstelle 25 oder eine andere Schnittstelle, die vom Hauptrechner Leistung liefert, wie z. B. eine USB- Schnittstelle, entnommen werden. Diese Leistung kann unter Verwendung des Kondensators 162 ergänzt werden, wenn Kräfte mit hoher Größe vom Motor 96 ausgegeben werden müssen. Die Beseitigung einer separaten Leistungsversorgung 41 ermöglicht, dass die Schnittstellenvorrichtung sehr viel kleiner und kostengünstiger hergestellt wird, ebenso wie dass sie für einen typischen Benutzer bequemer zu bedienen ist.
  • Da der Kondensator 162 seine Energie entlädt, wenn der Motor aktiviert wird, muss er wieder aufgeladen werden, bevor er wieder wirksam ist, um den Motor 96 zu speisen. Die Aufladezeit ist für die Konstruktion bedeutend, da der Mikroprozessor in der Frequenz und Steuerung von Kräften hinsichtlich dessen, wann der Kondensator bereit ist, Leistung zu Liefern, begrenzt ist. Mehrere verschiedene Kapazitäten C des Kondensators 162 und andere Parameter in der Schaltung wurden variiert, um effiziente Konfigurationen der Schaltung zu ermitteln.
  • Tabelle 2 zeigt Probeimpulsdauern und Wiederaufladezeiten für verschiedene Konfigurationen von Versorgungsspannungen, Strömen und Speicherkapazitäten (C). TABELLE 2 Konfigurationen
  • Tabelle 3 zeigt Probespeicherkapazitäten und Wiederaufladezeiten für verschiedene Versorgungsspannungen, Ströme und eine Impulsdauer. TABELLE 3 Konfigurationen
  • Wie in den Tabellen 2 und 3 gezeigt, kann ein Speicherkondensator genügend Leistung liefern, um eine bedeutende Erhöhung der ausgegebenen Kraftgröße vorzusehen. Wie in der Konfiguration 4 von Tabelle 1 gezeigt, kann beispielsweise ein Kondensator 162 mit 2000 uF einen Impulsstrom von 2000 mA liefern, um mit dem Motor 96 für 21 Millisekunden eine Ruckkraft zu erzeugen, wenn eine Leistungsversorgung von 24 V, 200 mA (Iss) verwendet wird. Dies ermöglicht eine Ruckkraft mit der 10fachen Größe von jener, die die Leistungsversorgung allein ausgeben könnte. Eine Ladezeit von 380 Millisekunden verzögert die Kraftrucke für viele Anwendungen nicht signifikant. Man beachte, dass viele verschiedenen Konfigurationen und/oder Werte der in den Tabellen 2 und 3 gezeigten Parameter verwendet werden können, und dass andere Parameter, die in den Tabellen nicht gezeigt sind, bei anderen Ausführungsbeispielen verändert werden können.
  • Unter Verwendung von zusätzlichen und/oder anderen Kondensatoren 162 sowie zusätzlichen und/oder anderen Leistungsversorgungen 41 können unter Verwendung einer Kombination von Kondensatorspeicherfähigkeiten und Leistungsversorgungs-Ausgangsleistungen eine Vielzahl von Dauern und Größen von Kräften erzeugt werden. Außerdem können mehrere Motoren der Schnittstellenvorrichtung 14 jeweils mit ihrer eigenen Kondensatorschaltung versehen werden, um Leistung für einen zweckbestimmten Motor zu liefern.
  • Bei einem alternativen Ausführungsbeispiel kann der Mikroprozessor 26 aus der Schnittstellenvorrichtung 14 beseitigt werden. Die "Rückstoß"- Schnittstellenvorrichtungen der Fig. 4a-4f stellen beispielsweise eine Kraftrückkopplung ohne Verwendung des Mikroprozessors 26 bereit. Bei einem solchen Ausführungsbeispiel muss der A/D-Wandler 164 nicht verwendet werden. Die Wiederaufladezeit kann abgeschätzt werden und der Motor kann beispielsweise unter Verwendung einer Zeitsteuerschaltung deaktiviert werden, bis der Kondensator vollständig aufgeladen ist. Bei noch weiteren Ausführungsbeispielen kann der Mikroprozessor 26 weggelassen werden und der A/D-Wandler 164 kann die umgewandelten digitalen Signale zum Hauptrechner 12 senden, welcher feststellt, wann der Kondensator voll aufgeladen ist, und ein Ausgangsaktivierungs- oder -freigabesignal zum Motor 96 sendet, wenn es zweckmäßig ist.
  • Fig. 7 ist ein Ablaufdiagramm, das ein Verfahren 200 zum Steuern einer Kraftrückkopplungs-Schnittstellenvorrichtung der vorliegenden Erfindung unter Verwendung des Mikroprozessors 26, wie z. B. bei den mit Bezug auf Fig. 2 und Fig. 3 beschriebenen Schnittstellenvorrichtungen, darstellt. Außerdem kann dieses Verfahren für einige Ausführungsbeispiele, die keinen Mikroprozessor 26 aufweisen, angepasst werden, wie z. B. die Rückstoß- Ausführungsbeispiele der Fig. 4a-4f oder das Ausführungsbeispiel 130 von Fig. 5. Bei einem solchen Ausführungsbeispiel können die Mikroprozessorschritte des Prozesses durch Logik- oder andere Komponenten implementiert werden, wie z. B. in der PAL 142 oder im Steuerblock 102.
  • Der Prozess von Fig. 7 eignet sich für Datenübertragungsschnittstellen mit geringer Geschwindigkeit, wie z. B. eine serielle Standard-RS-232- Schnittstelle. Das Ausführungsbeispiel von Fig. 7 eignet sich jedoch auch für Datenübertragungsschnittstellen mit hoher Geschwindigkeit, wie z. B. USB, da der lokale Mikroprozessor den Hauptrechnerprozessor 16 von der Rechenlast befreit. Bei diesem Reflex-Ausführungsbeispiel kann beispielsweise die langsamere Betriebsart des USB der "unterbrochenen Datenübertragung" verwendet werden.
  • Der Prozess von Fig. 7 beginnt bei 202. In Schritt 204 werden das Hauptrechnersystem 12 und die Schnittstellenvorrichtung 14 eingeschaltet, beispielsweise durch einen Benutzer, der Stromversorgungsschalter aktiviert. Nach Schritt 204 verzweigt sich der Prozess 200 in zwei parallele (simultane) Prozesse. Ein Prozess wird im Hauptrechnersystem 12 implementiert, und der andere Prozess wird im lokalen Mikroprozessor 26 implementiert. Diese zwei Prozesse verzweigen sich ab Schritt 204 in verschiedene Richtungen, um diese Simultanität anzuzeigen.
  • Bei dem Hauptrechnersystem-Prozess wird zuerst Schritt 206 implementiert, in dem ein Anwendungsprogramm verarbeitet oder aktualisiert wird. Diese Anwendung kann eine Simulation, ein Videospiel, ein wissenschaftliches Programm, ein Betriebssystem oder ein anderes Softwareprogramm sein. Bilder können für einen Benutzer auf einem Ausgabebildschirm 20 angezeigt werden und eine andere Rückkopplung kann dargestellt werden, wie z. B. eine akustische Rückkopplung.
  • Vom Schritt 206 gehen zwei Verzweigungen aus, um anzuzeigen, dass im Hauptrechnersystem 12 zwei Prozesse simultan ablaufen (z. B. Mehrprogrammbetrieb usw.). Bei einem der Prozesse wird Schritt 208 implementiert, wobei Sensordaten, die das Benutzerobjekt beschreiben, durch den Hauptrechner vom lokalen Mikroprozessor 26 empfangen werden. Der Lokale Prozessor 26 empfängt ständig Rohdaten von den Sensoren 28, verarbeitet die Rohdaten und sendet verarbeitete Sensordaten zum Hauptrechner 12. Alternativ sendet der lokale Prozessor 26 Rohdaten direkt zum Hauptrechnersystem 12. "Sensordaten", wie hierin bezeichnet, können Positionswerte, Geschwindigkeitswerte und/oder Beschleunigungswerte umfassen, die von den Sensoren 28 stammen, welche die Bewegung des Objekts 34 in einem oder mehreren Freiheitsgraden beschreiben. Außerdem können auch irgendwelche anderen Daten, die von anderen Eingabevorrichtungen 39 empfangen werden, in Schritt 208 als "Sensordaten" betrachtet werden, wie z. B. Signale, die anzeigen, dass eine Taste auf der Schnittstellenvorrichtung 14 vom Benutzer gedrückt wurde. Schließlich kann der Begriff "Sensordaten" auch ein Protokoll von Werten einschließen, wie z. B. Positionswerte, die vorher registriert und gespeichert wurden, um eine Geschwindigkeit zu berechnen.
  • Das Hauptrechnersystem 12 empfängt in Schritt 208 entweder Rohdaten (z. B. Positionsdaten und keine Geschwindigkeits- oder Beschleunigungsdaten) oder verarbeitete Sensordaten (Positions-, Geschwindigkeits- und/oder Beschleunigungsdaten) vom Mikroprozessor 26. Außerdem können irgendwelche anderen Sensordaten, die von anderen Eingabevorrichtungen 39 empfangen werden, auch durch das Hauptrechnersystem 12 vom Mikroprozessor 26 in Schritt 208 empfangen werden, wie z. B. Signale, die anzeigen, dass vom Benutzer eine Taste auf der Schnittstellenvorrichtung 14 gedrückt wurde. Der Hauptrechner muss in Schritt 208 keine Kraftwerte aus den empfangenen Sensordaten berechnen. Vielmehr überwacht der Hauptrechner 12 die Sensordaten, um festzustellen, wann eine Änderung der Art der Kraft erforderlich ist. Dies wird nachstehend ausführlicher beschrieben. Natürlich verwendet der Hauptrechner 12 auch die Sensordaten als Eingabe für die Hauptrechneranwendung, um die Hauptrechneranwendung dementsprechend zu aktualisieren.
  • Nachdem in Schritt 208 die Sensordaten empfangen wurden, kehrt der Prozess zu Schritt 206 zurück, wo das Hauptrechnersystem 12 das Anwendungsprogramm als Reaktion auf die Benutzerbedienungen des Objekts 34 und irgendeine andere Benutzereingabe, die als Sensordaten in Schritt 208 empfangen wird, aktualisieren kann, ebenso wie er feststellen kann, ob in dem parallelen Prozess ein oder mehrere Kraftbefehle an das Objekt 34 ausgegeben werden müssen (Schritt 210). Schritt 208 wird in einer kontinuierlichen Schleife zum Empfangen von Sätzen von Sensordaten vom lokalen Prozessor 26 implementiert. Da der Hauptrechner nicht direkt Stellglieder auf der Basis der Sensordaten steuern muss, können die Sensordaten mit geringer Geschwindigkeit zum Hauptrechner geliefert werden. Da der Hauptrechner als Reaktion auf die Sensordaten die Hauptrechneranwendung aktualisiert und auf dem Bildschirm 20 abbildet, müssen die Sensordaten beispielsweise nur mit 60-80 Hz (den. Auffrischzyklus eines typischen Bildschirms) gelesen werden, im Vergleich zur viel höheren Geschwindigkeit von etwa 500-1000 Hz (oder mehr), die erforderlich wäre, um Kraftrückkopplungssignale direkt vom Hauptrechner realistisch zu steuern.
  • Die zweite Verzweigung vom Schritt 206 betrifft den Prozess des Hauptrechners, der Kraftbefehle hoher Ebene oder Überwachungskraftbefehle ("Hauptrechnerbefehle") festlegt, um eine Kraftrückkopplung für das vom Benutzer bediente Objekt 34 vorzusehen.
  • Die zweite Verzweigung beginnt mit Schritt 210, in dem das Hauptrechnersystem prüft, ob eine Änderung der Art der Kraft, die auf das Benutzerobjekt 34 aufgebracht wird, erforderlich ist. Die "Art" der Kraft soll sich als Oberbegriff auf verschiedene Kraftempfindungen, Dauern, Richtungen oder andere Eigenschaften von Kräften hoher Ebene oder Änderungen dieser Eigenschaften, die vom Hauptrechner gesteuert werden, beziehen. Eine Kraftempfindung oder ein Kraftprofil sind beispielsweise Arten von Kräften, die von einer speziellen Kraftroutine erzeugt werden, die der lokale Mikroprozessor 26 unabhängig vom Hauptrechner implementieren kann.
  • Der Hauptrechner 12 stellt fest, ob eine Änderung der Art der Kraft erforderlich ist, gemäß verschiedenen Kriterien, von denen das wichtigste die vom Hauptrechner 12 in Schritt 208 gelesenen Sensordaten sind, Zeitsteuerdaten, und der Implementierung oder "Ereignisse" des in Schritt 206 aktualisierten Anwendungsprogramms. Die in Schritt 208 gelesenen Sensordaten informieren den Hauptrechner, wie der Benutzer mit dem Anwendungsprogramm in Dialogverkehr steht und wann neue Arten von Kräften auf das Objekt aufgebracht werden sollten, auf der Basis der aktuellen Position, Geschwindigkeit und/oder Beschleunigung des Objekts. Die Benutzerbedienungen des Objekts 34 können verursacht haben, dass eine neue Art Kraft erforderlich ist. Wenn der Benutzer beispielsweise ein virtuelles Rennauto in einem Videospiel in einer virtuellen Schlammlache bewegt, sollte eine Dämpfungskraftart auf das Objekt 34 aufgebracht werden, solange sich das Rennauto innerhalb des Schlamms bewegt. Somit müssen Dämpfungskräfte kontinuierlich auf das Objekt aufgebracht werden, aber keine Änderung der Art der Kraft ist erforderlich. Wenn sich das Rennauto aus der Schlammlache herausbewegt, ist eine neue Kraftart (d. h. in diesem Fall eine Entfernung der Dämpfungskraft) erforderlich. Die Geschwindigkeit und/oder Beschleunigung des Benutzerobjekts kann auch beeinflussen, ob eine Kraftänderung auf dem Objekt erforderlich ist. Wenn der Benutzer einen Tennisschläger in einem Spiel steuert, kann die Geschwindigkeit eines Benutzerobjekt-Steuerhebels bestimmen, ob ein Tennisball getroffen wird, und somit, ob eine entsprechende Kraft auf den Steuerhebel aufgebracht werden sollte.
  • Andere Kriterien zum Festlegen, ob eine Änderung der Art der Kraft erforderlich ist, umfassen Ereignisse im Anwendungsprogramm. Ein Spielanwendungsprogramm kann beispielsweise (vielleicht willkürlich) bestimmen, dass ein anderes Objekt im Spiel mit einem vom Benutzer gesteuerten Computerobjekt zusammenstoßen wird, ungeachtet der Position des Benutzerobjekts 34. Kräfte sollten somit auf das Benutzerobjekt gemäß diesem Zusammenstoßereignis aufgebracht werden, um einen Aufprall zu simulieren. Eine Kraftart kann auf dem Benutzerobjekt in Abhängigkeit von einer Kombination solcher Ereignisse und den in Schritt 208 gelesenen Sensordaten erforderlich sein. Andere Parameter und Eingaben in das Anwendungsprogramm können bestimmen, ob eine Änderung der Kraft für das Benutzerobjekt erforderlich ist, wie z. B. andere Eingabevorrichtungen oder Benutzer- Schnittstellenvorrichtungen, die mit dem Hauptrechnersystem 12 verbunden sind, welche Daten in das Anwendungsprogramm eingeben (andere Schnittstellenvorrichtungen können direkt angeschlossen sein, entfernt über ein Netzwerk angeschlossen sein, usw.).
  • Wenn momentan keine Änderung der Art der Kraft in Schritt 210 erforderlich ist, dann kehrt der Prozess zu Schritt 206 zurück, um die Hauptrechneranwendung zu aktualisieren und zu Schritt 210 zurückzukehren, um wieder zu prüfen, bis eine solche Änderung der Kraftart erforderlich ist. Wenn eine solche Änderung erforderlich ist, wird Schritt 212 implementiert, in dem der Hauptrechner 12 einen geeigneten Hauptrechnerbefehl hoher Ebene zum Senden zum Mikroprozessor 26 festlegt. Die verfügbaren Hauptrechnerbefehle für den Hauptrechner 12 können jeweils einer zugehörigen Kraftroutine entsprechen, die vom Mikroprozessor 26 implementiert wird. Verschiedene Hauptrechnerbefehle zum Vorsehen einer Dämpfungskraft, einer Federkraft, einer Erdanziehungskraft, einer Kraft einer holperigen Oberfläche, einer Kraft eines virtuellen Hindernisses und anderer Kräfte können beispielsweise im Hauptrechner 12 verfügbar sein. Diese Hauptrechnerbefehle können auch eine Festlegung der speziellen Stellglieder 30 und/oder Freiheitsgrade beinhalten, die diese gewünschte Kraft auf das Objekt 34 aufbringen sollen. Die Hauptrechnerbefehle können auch andere Befehlsparameter- Informationen beinhalten, die die durch eine spezielle Kraftroutine erzeugte Kraft verändern könnten. Eine Dämpfungskonstante kann beispielsweise in einem Hauptrechnerbefehl enthalten sein, um eine gewünschte Menge einer Dämpfungskraft festzulegen, oder eine Kraftrichtung kann bereitgestellt werden. Der Hauptrechnerbefehl kann auch vorzugsweise die Reflexoperation des Prozessors 26 abschalten und Kraftbefehle "niedriger Ebene" enthalten, wie z. B. direkte Kraftwerte, die direkt zu den Stellgliedern 30 gesandt werden können (nachstehend mit Bezug auf Schritt 226 beschrieben).
  • Vorzugsweise umfassen die Befehle direkte Hauptrechnerbefehle, "Reflex"-Befehle und kundenspezifische Effekte. Einige erwünschte direkte Hauptrechnerbefehle umfassen RUCK (ein kurzer Kraftimpuls), WACKELN (willkürliche Kraft), FEDER (eine virtuelle Feder), DÄMPFER (eine Dämpfungskraft) und so weiter. Jeder Befehl umfasst vorzugsweise Parameter, die dem Hauptrechner helfen, die Eigenschaften der gewünschten Ausgangskraft festzulegen. Diese Befehle würden bewirken, dass der Mikroprozessor sofort die befohlene Kraft gemäß der entsprechend ausgewählten Kraftroutine ausgibt. "Reflex"-Befehle liefern im Gegensatz dazu Bedingungen zum Mikroprozessor, so dass die gewünschte Kraft ausgegeben wird, wenn die Bedingungen erfüllt werden. Beispielsweise kann ein Reflexbefehl von Ruck Taste Reflex den Mikroprozessor anweisen, eine Kraftroutine auszuwählen, die nur dann eine RUCK-Kraft ausgibt, wenn eine festgelegte Taste vom Benutzer gedrückt wird (oder wenn das Benutzerobjekt in eine spezielle Richtung bewegt wird). Schließlich können kundenspezifische Effekte vom Hauptrechner zum Mikroprozessor geliefert werden und dann deren Ausgabe befohlen werden. Der Hauptrechner kann beispielsweise zum Mikroprozessor einen Satz von Kraftwerten (ein Kraftprofil) als "Kraftprofildatei" oder eine andere Sammlung von Daten unter Verwendung des Hauptrechnerbefehls LADE_PROFIL übertragen, welche im lokalen Speicher 27 gespeichert werden kann. Ein separater Hauptrechnerbefehl SPIEL_PROFIL könnte dann gesandt werden, um dem Mikroprozessor zu befehlen, das übertragene Kraftprofil als Kräfte auf das Benutzerobjekt 34 auszugeben. Reflexbefehle können auch verwendet werden, um zu veranlassen, dass das übertragene Profil nur ausgegeben wird, wenn eine Bedingung, wie z. B. ein Tastendruck, stattfindet. Vorzugsweise enthält eine Kraftprofildatei eine Matrix von Kraftwerten, Größeninformationen über die Größe der Daten und Zeitsteuerinformationen dafür, wann die verschiedenen Kraftwerte ausgegeben werden sollen (vorzugsweise weisen die Kraftwerte die Vorzeichen "+" oder "-" auf, um die Richtung der Kräfte anzugeben; alternativ können Richtungen separat angegeben werden). Zahlreiche Kraftprofildateien können zum Mikroprozessor übertragen werden, und der Mikroprozessor kann einen Index oder eine andere Information zurücksenden, um den Hauptrechner zu informieren, wie eine spezielle Kraftprofildatei auszuwählen ist. Kundenspezifische Effekte können auch über ein Computernetzwerk, wie z. B. das World Wide Web, übertragen werden, wie nachstehend beschrieben.
  • Im nächsten Schritt 214 sendet der Hauptrechner den Hauptrechnerbefehl über den Bus 24 (oder, falls geeignet, über den Bus 25) zum Mikroprozessor 26. Der Prozess kehrt dann zu Schritt 206 zurück, um die Hauptrechneranwendung zu aktualisieren und zu Schritt 210 zurückzukehren, um zu prüfen, ob eine weitere Kraftänderung erforderlich ist.
  • Außerdem synchronisiert der Hauptrechner 12 vorzugsweise irgendeine entsprechende visuelle Rückkopplung, akustische Rückkopplung oder eine andere zur Hauptrechneranwendung gehörende Rückkopplung mit der Ausgabe von Hauptrechnerbefehlen und dem Aufbringen von Kräften auf das Benutzerobjekt 34. Bei einer Videospielanwendung sollte beispielsweise das Einsetzen oder der Start von visuellen Ereignissen, wie z. B. ein Objekt, das mit dem Benutzer auf dem Bildschirm 20 zusammenstößt, mit dem Einsetzen oder Start von Kräften, die vom Benutzer wahrgenommen werden und die diesen visuellen Ereignissen entsprechen oder diese ergänzen, synchronisiert werden. Das Einsetzen der visuellen Ereignisse und Kraftereignisse geschieht vorzugsweise innerhalb von etwa 30 Millisekunden (ms) zueinander. Diese Zeitspanne ist die typische Grenze der menschlichen Wahrnehmungsfähigkeit, um die Ereignisse als simultan wahrzunehmen. Wenn die visuellen und Kraftereignisse außerhalb dieses Bereichs auftreten, dann kann gewöhnlich eine Zeitverzögerung zwischen den Ereignissen wahrgenommen werden. Ebenso wird die Ausgabe von Tonsignalen entsprechend dem Einsetzen von Tonereignissen in der Hauptrechneranwendung vorzugsweise synchron mit dem Einsetzen von Ausgangskräften, die diesen Tonereignissen entsprechen/diese ergänzen, ausgegeben. Wieder tritt das Einsetzen dieser Ereignisse vorzugsweise innerhalb von etwa 30 ms zueinander auf. Das Hauptrechnersystem 12 kann beispielsweise Töne einer Explosion aus den Lautsprechern 21 so zeitnah wie möglich zu den Kräften, die vom Benutzer von dieser Explosion bei einer Simulation gefühlt werden, ausgeben. Vorzugsweise steht die Lautstärke des Tons in direktem (im Gegensatz zum inversen) Verhältnis zur Größe der auf das Benutzerobjekt 34 aufgebrachten Kräfte. Während einer Simulation kann beispielsweise ein leiser Ton einer Explosion in weitem (virtuellen) Abstand eine kleine Kraft auf dem Benutzerobjekt 34 verursachen, während eine große, "nahe gelegene" Explosion bewirken könnte, dass ein lauter Ton durch die Lautsprecher ausgegeben wird und eine entsprechend große Kraft auf das Objekt 34 ausgegeben wird.
  • Die zweite Prozessverzweigung vom Schritt 204 wird vom lokalen Mikroprozessor 26 implementiert. Dieser Prozess beginnt mit Schritt 216 und wird parallel mit dem Hauptrechnerprozess der vorstehend beschriebenen Schritte 206-214 implementiert. In Schritt 216 wird die Schnittstellenvorrichtung 14 aktiviert. Beispielsweise können Signale zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung 14 gesandt werden, um zu bestätigen, dass die Schnittstellenvorrichtung nun aktiv ist und vom Hauptrechner 12 Befehle erhalten kann. Ab dem Schritt 216 verzweigen sich zwei Prozesse, um anzuzeigen, dass zwei Prozesse (z. B. Mehrprogrammbetrieb) im lokalen Mikroprozessor 26 simultan ablaufen.
  • In der ersten Prozessverzweigung wird Schritt 218 implementiert, in dem der Prozessor 26 Rohdaten (Sensormesswerte) von den Sensoren 28 liest. Solche Rohdaten umfassen vorzugsweise Positionswerte, die die Position des Benutzerobjekts entlang vorgesehener Freiheitsgrade beschreiben. Bei dem bevorzugten Ausführungsbeispiel sind die Sensoren 28 relative Sensoren, die Positionswerte liefern, welche die Positionsänderung seit der letzten gelesenen Position beschreiben. Der Prozessor 26 kann die absolute Position durch Messen der relativen Position ab einer festgelegten Bezugsposition ermitteln. Alternativ können absolute Sensoren verwendet werden. Bei anderen Ausführungsbeispielen können die Sensoren 28 Geschwindigkeitssensoren und Beschleunigungsmesser zum Liefern von Rohgeschwindigkeits- und -beschleunigungswerten des Objekts 34 umfassen. Die in Schritt 218 gelesenen Rohdaten können auch eine andere Eingabe umfassen, wie z. B. von einer aktivierten Taste oder einer anderen Steuerung 39 der Schnittstellenvorrichtung 14.
  • Bei anderen Ausführungsbeispielen, wie z. B. der Schnittstellenvorrichtung 50 von Fig. 3 und den Ausführungsbeispielen der Fig. 4a-f und 5, können entweder Rohdaten oder verarbeitete Sensordaten von den Sensoren 28 direkt zum Hauptrechner 12 gesandt werden, ohne dass sie vom Mikroprozessor 26 empfangen werden. Der Hauptrechner kann irgendeine Verarbeitung durchführen, die notwendig ist, um die Sensordaten in diesen Ausführungsbeispielen zu interpretieren, so dass irgendeiner oder alle der Schritte 218-221 nicht notwendig sein können.
  • Im nächsten Schritt 220 verarbeitet der Mikroprozessor 26 die empfangenen Rohdaten zu Sensordaten, wenn sie anwendbar sind. Bei dem bevorzugten Ausführungsbeispiel umfasst diese Verarbeitung zwei Schritte: Berechnen von Geschwindigkeits- und/oder Beschleunigungswerten aus Rohpositionsdaten (wenn eine Geschwindigkeit und/oder Beschleunigung zum Berechnen von Kräften erforderlich ist), und Filtern der berechneten Geschwindigkeits- und Beschleunigungsdaten. Die Geschwindigkeits- und Beschleunigungswerte werden aus den in Schritt 218 empfangenen Rohpositionsdaten und einem Protokoll von gespeicherten Positions- und Zeitwerten (und anderen Arten von Werten, falls geeignet) berechnet. Vorzugsweise speichert der Prozessor 26 eine Anzahl von Positionswerten und Zeitwerten, entsprechend dem, wann die Positionswerte empfangen wurden. Der Prozessor 26 kann beispielsweise den lokalen Takt 21 verwenden, um die Zeitsteuerdaten zu ermitteln. Die Geschwindigkeit und Beschleunigung können unter Verwendung der gespeicherten Positionsdaten und Zeitsteuerdaten berechnet werden, wie Fachleuten gut bekannt ist. Die berechneten Geschwindigkeits- und/oder Beschleunigungswerte können dann gefiltert werden, um Rauschen aus den Daten zu entfernen, wie z. B. große Spitzen, die sich bei Geschwindigkeitsberechnungen von schnellen Positionsänderungen des Objekts 34 ergeben können. Somit umfassen die Sensordaten bei dem beschriebenen Ausführungsbeispiel die Position, Geschwindigkeit, Beschleunigung und andere Eingangsdaten. Bei einem alternativen Ausführungsbeispiel kann eine Schaltung, die elektrisch mit dem Prozessor 26 gekoppelt ist, aber von diesem getrennt ist, die Rohdaten empfangen und die Geschwindigkeit und Beschleunigung ermitteln. Eine anwendungsspezifische integrierte Schaltung (ASIC) oder diskrete Logikschaltung kann beispielsweise Zähler oder dergleichen verwenden, um die Geschwindigkeit und Beschleunigung zu ermitteln, um Verarbeitungszeit im Mikroprozessor 26 zu sparen. Bei Ausführungsbeispielen, wo Geschwindigkeits- und/oder Beschleunigungssensoren verwendet werden, wird die Berechnung der Geschwindigkeit und/oder Beschleunigung weggelassen.
  • Im nächsten Schritt 221 sendet der Prozessor 26 die verarbeiteten Sensordaten zum Hauptrechner 12 und speichert auch Protokolle der Sensordaten in Speichervorrichtungen, wie z. B. dem Speicher 27, zum Berechnen von Kräften. Der Prozess kehrt dann zu Schritt 218 zurück, um Rohdaten zu lesen. Die Schritte 218, 220 und 221 werden somit kontinuierlich implementiert, um aktuelle Sensordaten zum Prozessor 26 und zum Hauptrechner 12 zu liefern.
  • Die zweite Verzweigung von Schritt 216 betrifft einen "Reflexprozess" oder "Reflex", bei dem der Mikroprozessor 26 die Stellglieder 30 steuert, um Kräfte auf das Objekt 34 aufzubringen. Wie vorstehend erwähnt, ist ein "Reflexprozess" ein Kraftprozess, der Kräfte auf das Benutzerobjekt 34 ausgibt und lokal zur Schnittstellenvorrichtung 14 implementiert wird, vom Hauptrechner 12 unabhängig ist und nur von lokalen Steuerereignissen, wie z. B. Tasten, die gedrückt werden, oder einem Benutzerobjekt 34, das vom Benutzer bewegt wird, abhängt. Die einfachste Form des Reflexes wird in den "Rückstoß"-Ausführungsbeispielen der Fig. 4a-4f verwendet, bei denen ein einfaches Steuerereignis, wie z. B. das Drücken einer Taste vom Benutzer, bewirkt, dass durch die Stellglieder 30 eine Kraft auf das Benutzerobjekt ausgegeben wird. Die komplexere Form des Reflexprozesses, die bei dem aktuellen Verfahren beschrieben wird, kann in Abhängigkeit von einer Vielzahl von lokalen Steuerereignissen, wie z. B. Tastendrücken und der Position, Geschwindigkeit und/oder Beschleunigung des Benutzerobjekts 34 in vorgesehenen Freiheitsgraden, Kräfte berechnen und ausgeben.
  • Die zweite Verzweigung beginnt mit Schritt 222, in dem der Prozessor 26 prüft, ob ein Hauptrechnerbefehl vom Hauptrechner 12 über den Bus 24 empfangen wurde. Hauptrechnerbefehle sind Befehle hoher Ebene, die Änderungen der Kräfte für das Benutzerobjekt befehlen, wie mit Bezug auf Schritt 214 beschrieben. Wenn ein Hauptrechnerbefehl empfangen wurde, geht der Prozess zu Schritt 224 weit er, wo eine "Kraftroutine", die durch den Hauptrechnerbefehl angegeben wird oder zu diesem gehört, falls geeignet, ausgewählt wird. Eine "Kraftroutine", wie hierin bezeichnet, ist ein Satz von Schritten oder Anweisungen für den Mikroprozessor 26, um Kraftbefehle niedriger Ebene zu den Stellgliedern 30 zu liefern. Diese Kraftbefehle "niedriger Ebene" (oder "Prozessorkraftbefehle) sollen von den Hauptrechnerbefehlen "hoher Ebene", die vom Hauptrechner 12 ausgegeben werden, unterschieden werden. Ein Kraftbefehl niedriger Ebene befiehlt einem Stellglied, eine Kraft mit einer speziellen Größe auszugeben. Der Befehl niedriger Ebene umfasst beispielsweise typischerweise einen "Kraftwert" oder eine Größe, z. B. (ein) äquivalente(s) Signal(e), um dem Stellglied zu befehlen, eine Kraft mit einem gewünschten Größenwert aufzubringen. Kraftbefehle niedriger Ebene können auch eine Richtung einer Kraft, wenn ein Stellglied eine Kraft in einer ausgewählten Richtung aufbringen kann, und/oder andere Informationen niedriger Ebene, die von einem Stellglied benötigt werden, festlegen.
  • Kraftroutinen ermitteln Kraftbefehle niedriger Ebene aus anderen Parametern, wie z. B. den in Schritt. 218 gelesenen Sensordaten (Tastendruckdaten, Positionsdaten, usw.) und Zeitsteuerdaten aus dem Takt 18. Die Kraftroutinen können lokal zum Mikroprozessor 26 beispielsweise im Speicher 27, wie z. B. einem RAM oder ROM (oder EPROM, EEPROM, usw.), gespeichert werden. Somit könnte der Mikroprozessor eine spezielle Dämpfungskraftroutine auswählen, wenn der Hauptrechnerbefehl anzeigen würde, dass die Dämpfungskraft von diesem speziellen Dämpfungsprozess auf das Objekt 34 aufgebracht werden sollte. Andere Dämpfungskraftroutinen könnten auch verfügbar sein. Die verfügbaren Kraftroutinen werden nachstehend ausführlicher beschrieben und können Algoritbmen, gespeicherte Kraftprofile oder Werte, Bedingungen usw. einschließen. Der vom Hauptrechner in Schritt 222 empfangene Hauptrechnerbefehl kann in einigen Fällen auch einfach ein Kraftbefehl niedriger Ebene oder sogar ein einzelner Kraftwert sein, der zu einem Stellglied 30 gesandt werden soll, wobei in diesem Fall keine Kraftroutine ausgewählt werden muss.
  • Nachdem in Schritt 224 eine Kraftroutine ausgewählt wurde, oder wenn in Schritt 222 kein neuer Hauptrechnerbefehl empfangen wurde, dann wird Schritt 226 implementiert, in dem der Prozessor 26 einen Prozessor-Kraftbefehl niedriger Ebene festlegt. Der Kraftbefehl niedriger Ebene wird entweder von einer ausgewählten Kraftroutine, einer residenten Kraftroutine, irgendwelchen anderen Daten, die für die Kraftroutine erforderlich sind, und/oder Befehlsparametern und/oder Werten, die in relevanten Hauptrechnerbefehlen enthalten sind, abgeleitet. Wie vorstehend erläutert, können die erforderlichen Daten Sensordaten und/oder Zeitsteuerdaten vom lokalen Takt 29 einschließen. Wenn kein neuer Befehl hoher Ebene in Schritt 222 empfangen wurde, dann kann der Mikroprozessor 26 einen Kraftbefehl gemäß einer oder mehreren "residenten" Kraftroutinen festlegen, d. h. denselben Kraftroutinen, die in den vorherigen Iterationen von Schritt 226 ausgewählt und verwendet wurden. Dies ist die "Reflex"- Prozessoperation der Schnittstellenvorrichtung, die keine neue Eingabe vom Hauptrechner 12 benötigt.
  • Bei dem beschriebenen Ausführungsbeispiel können Kraftroutinen mehrere verschiedene Arten von Schritten und/oder Befehlen umfassen, die verfolgt werden, um einen Kraftbefehl niedriger Ebene festzulegen. Eine Art Befehl in einer Kraftroutine ist ein Kraftalgorithmus, der eine Gleichung beinhaltet, die der Hauptrechner 12 verwenden kann, um einen Kraftwert auf der Basis von Sensor- und Zeitsteuerdaten zu berechnen oder zu entwerfen. Verschiedene Arten von Algorithmen können verwendet werden. Algorithmen, bei denen sich die Kraft linear (oder nichtlinear) mit der Position des Objekts 34 ändert, können beispielsweise verwendet werden, um eine simulierte Kraft wie eine Feder zu liefern. Algorithmen, bei denen sich die Kraft linear (oder nichtlinear) mit der Geschwindigkeit des Objekts 34 ändert, können auch verwendet werden, um eine simulierte Dämpfungskraft oder andere Kräfte auf dem Benutzerobjekt 34 vorzusehen. Algorithmen, bei denen sich die Kraft linear (oder nichtlinear) mit der Beschleunigung des Objekts 34 ändert, können auch verwendet werden, um beispielsweise eine simulierte Trägheitskraft auf einer Masse (für eine lineare Änderung) oder eine simulierte Erdanziehungskraft (für eine nichtlineare Änderung) vorzusehen. Verschiedene Arten von simulierten Kräften und die zum Berechnen solcher Kräfte verwendeten Algorithmen sind in "Perceptual Design of a Virtual Rigid Surface Contact", von Louis B. Rosenberg, Center tor Design Research, Stanford University, Bericht Nummer AL/CF-TR- 1995-0029, April 1993, beschrieben, welches durch die Bezugnahme hierin aufgenommen wird.
  • Eine kinematische Gleichung, die einen Kraftwert auf der Basis der Geschwindigkeit des Benutzerobjekts, multipliziert mit einer Dämpfungskonstante, berechnet, kann beispielsweise verwendet werden, um eine Dämpfungskraft auf dem Benutzerobjekt zu ermitteln. Diese Art Gleichung kann eine Bewegung des Objekts 34 entlang eines Freiheitsgrades durch ein Fluid oder ein ähnliches Material simulieren.
  • Beispielsweise kann zuerst eine Dämpfungskonstante ausgewählt werden, die den Grad des Widerstandes angibt, den das Objekt 34 erfährt, wenn es sich durch ein simuliertes Material, wie z. B. eine Flüssigkeit, bewegt, wobei eine größere Zahl einen größeren Widerstand angibt. Wasser hätte eine niedrigere Dämpfungskonstante als Öl oder Sirup. Der Mikroprozessor 26 ruft die vorherige Position des Benutzerobjekts 34 (entlang eines speziellen Freiheitsgrades) aus dem Speicher 27 ab, prüft die aktuelle Position des Benutzerobjekts und berechnet die Positionsdifferenz. Aus dem Vorzeichen (negativ oder positiv) der Differenz kann die Richtung der Bewegung des Objekts 34 auch ermittelt werden. Der Kraftwert wird dann gleich der Dämpfungskonstante, multipliziert mit der Positionsänderung, gesetzt. Befehle niedriger Ebene, die ein Stellglied auf der Basis dieses Algorithmus steuern, erzeugen eine zur Bewegung des Benutzerobjekts proportionale Kraft, um die Bewegung durch ein Fluid zu simulieren. Die Bewegung in anderen Medien, wie z. B. auf einer holperigen Oberfläche, auf einer schiefen Ebene usw., kann in ähnlicher Weise unter Verwendung von verschiedenen Verfahren zur Berechnung der Kraftbefehle niedriger Ebene simuliert werden.
  • Die Bestimmung von Befehlen niedriger Ebene aus den Kraftroutinen kann auch durch Zeitsteuerdaten beeinflusst werden, auf die vom Systemtakt 18 zugegriffen wird. Bei dem vorstehend beschriebenen Dämpfungskraftbeispiel wird die Geschwindigkeit des Benutzerobjekts 34 beispielsweise durch Berechnen der Differenz von Positionen des Benutzerobjekts und Multiplizieren mit der Dämpfungskonstante ermittelt. Diese Berechnung nimmt ein festes Zeitintervall zwischen Datenpunkten an, d. h. es wird angenommen, dass die Positionsdaten des Objekts 34 vom Hauptrechner 12 in regelmäßigen, vorbestimmten Zeitintervallen empfangen werden. Dies kann jedoch aufgrund von verschiedenen Verarbeitungsgeschwindigkeiten von verschiedenen Computerplattformen oder aufgrund von Verarbeitungsschwankungen in einem einzelnen Hauptrechner- Mikroprozessor 16, wie z. B. aufgrund von Mehrprogrammbetrieb, nicht tatsächlich geschehen. Daher greift bei der vorliegenden Erfindung der Hauptrechner vorzugsweise auf den Takt 12 zu, um festzustellen, wie viel Zeit tatsächlich vergangen ist, seitdem die letzten Positionsdaten empfangen wurden. Bei dem Dämpfungskraftbeispiel könnte der Hauptrechner die Positionsdifferenz nehmen und sie durch ein Zeitmaß teilen, um Unterschiede der Zeitsteuerung zu berücksichtigen. Der Hauptrechner kann somit die Zeitsteuerdaten des Takts bei der Modulation von Kräften und Kraftempfindungen für den Benutzer verwenden. Zeitsteuerdaten können in anderen Algorithmen und Kraftempfindungsprozessen der vorliegenden Erfindung verwendet werden, um eine reproduzierbare und konsistente Kraftrückkopplung ungeachtet der Art der Plattform oder verfügbaren Verarbeitungszeit im Hauptrechner 12 vorzusehen.
  • Die Geschwindigkeit und Beschleunigung, die für spezielle Kraftroutinen erforderlich sind, können in mehreren verschiedenen Arten bereitgestellt werden. Die durch die Schritte 218-221 gelieferten Sensordaten können Positionsdaten, Geschwindigkeitsdaten und/oder Beschleunigungsdaten umfassen. Der Mikroprozessor kann beispielsweise die Geschwindigkeits- und Beschleunigungsdaten direkt in einem Algorithmus zum Berechnen eines Kraftbefehls niedriger Ebene verwenden. Bei einem alternativen Ausführungsbeispiel könnten nur Positionsdaten von den Sensoren 28 empfangen werden, und der Mikroprozessor kann die Geschwindigkeits- und/oder Beschleunigungswerte unter Verwendung von gespeicherten Protokollen von Werten berechnen. Der Mikroprozessor berechnet nur die Geschwindigkeits- und/oder Beschleunigungswerte, wenn die Werte von einer Kraftroutine benötigt werden. Alternativ kann der Prozessor immer die Geschwindigkeits- und Beschleunigungswerte berechnen, ungeachtet dessen, ob die Werte in einer Kraftroutine verwendet werden.
  • Andere Befehle können auch in einer Kraftroutine enthalten sein. Beispielsweise können bedingte Schritte enthalten sein, um Kräfte unter festgelegten Umständen zu liefern. Beispielsweise könnte eine Kraftroutine dem Prozessor 26 befehlen, einen Kraftbefehl niedriger Ebene nur dann auszugeben, wenn das Benutzerobjekt in eine spezielle Position in vorgesehenen Freiheitsgraden bewegt wird. Oder um ein virtuelles Hindernis, wie z. B. eine Wand, zu simulieren, sollten Kräfte nur in einer Richtung (unidirektional) aufgebracht werden. Für viele passive Stellglieder können nur bidirektionale Widerstandskräfte aufgebracht werden. Um einen unidirektionalen Widerstand unter Verwendung eines passiven Stellgliedes zu simulieren, können in einer Kraftroutine eines virtuellen Hindernisses bedingte Befehle enthalten sein, um einen Kraftbefehl niedriger Ebene nur dann auszugeben, wenn das Benutzerobjekt in einer speziellen Richtung in einer speziellen Position bewegt wird. Auch eine Kraftroutine von "Null" kann verfügbar sein, die dem Mikroprozessor 26 befiehlt, Befehle niedriger Ebene auszugeben, um eine Nullkraft auf dem Benutzerobjekt 34 vorzusehen (d. h. alle Kräfte zu entfernen).
  • Eine weitere Art Kraftroutine verwendet keine Algorithmen, um eine Kraft zu entwerfen, sondern verwendet statt dessen Kraftwerte, die vorher berechnet oder abgetastet und als digitalisiertes "Kraftprofil" im Speicher oder einer anderen Speichervorrichtung gespeichert wurden. Diese Kraftwerte können unter Verwendung einer Gleichung oder eines Algorithmus, wie vorstehend beschrieben, vorher erzeugt worden sein, oder durch Abtasten und Digitalisieren von Kräften geliefert werden. Um beispielsweise eine spezielle Kraftempfindung für den Benutzer vorzusehen, kann der Hauptrechner 12 durch die Schritte einer Kraftroutine angewiesen werden, aufeinanderfolgende Kraftwerte eines Kraftprofils aus einer bestimmten Speichervorrichtung, wie z. B. dem Speicher 27, einem RAM, einer Festplatte usw., abzurufen. Diese Kraftwerte können in Befehlen niedriger Ebene enthalten sein, die direkt zu einem Stellglied gesandt werden, um spezielle Kräfte zu liefern, ohne den Hauptrechner 12 zum Berechnen der Kraftwerte zu benötigen. Außerdem können vorher gespeicherte Kraftwerte bezüglich anderen Parametern ausgegeben werden, um verschiedene Arten von Kräften und Kraftempfindungen von einem Satz von gespeicherten Kraftwerten vorzusehen. Unter Verwendung des Systemtakts 18 kann beispielsweise ein Satz von gespeicherten Kraftwerten der Reihe nach gemäß verschiedenen Zeitintervallen, die sich in Abhängigkeit von der gewünschten Kraft ändern können, ausgegeben werden, was folglich verschiedene Arten von Kräften beim Benutzer erzeugt. Oder verschiedene abgerufene Kraftwerte können in Abhängigkeit von der aktuellen Position, Geschwindigkeit usw. des Benutzerobjekts 34 ausgegeben werden.
  • Der in Schritt 226 festgelegte Kraftbefehl niedriger Ebene kann auch von Befehlen abhängen, die andere Parameter überprüfen. Diese Befehle können innerhalb oder außerhalb der vorstehend beschriebenen Kraftroutinen enthalten sein. Ein solcher Parameter kann Werte umfassen, die vom implementierten Hauptrechner-Anwendungsprogramm geliefert werden. Das Anwendungsprogramm kann bestimmen, dass ein spezieller Kraftbefehl niedriger Ebene ausgegeben werden sollte, oder eine Kraftroutine, die auf der Basis von Ereignissen, die innerhalb des Anwendungsprogramms auftreten, oder anderen Befehlen ausgewählt wird, bestimmen. Hauptrechnerbefehle können vom Hauptrechner- Anwendungsprogramm geliefert werden, um unabhängig von den Sensordaten Kräfte auszugeben. In einem Hauptrechnerbefehl kann der Hauptrechner auch seine eigenen speziellen Positions-, Geschwindigkeits- und/oder Beschleunigungsdaten zu einer festgelegten Kraftroutine liefern, um eine Kraft zu berechnen oder vorzusehen, die nicht auf der Bedienung des Benutzerobjekts 34 basiert, sondern vorgesehen wird, um ein Ereignis im Anwendungsprogramm zu simulieren. Solche Ereignisse können Zusammenstoßereignisse umfassen, wie sie z. B. auftreten, wenn ein vom Benutzer gesteuertes Computerbild auf eine virtuelle Oberfläche oder Struktur auftrifft. Andere Eingabevorrichtungen, die mit dem Hauptrechner 12 verbunden sind, können auch Ereignisse und daher die auf das Benutzerobjekt 34 aufgebrachten Kräfte beeinflussen. Die Sensordaten von mehreren Schnittstellenvorrichtungen 14, die mit einem einzelnen Hauptrechner verbunden sind, können beispielsweise die Kräfte beeinflussen, die an anderen angeschlossenen Schnittstellenvorrichtungen wahrgenommen werden, durch Beeinflussen von Ereignissen und computergesteuerten Bildern/Objekten des Hauptrechner-Anwendungsprogramms.
  • Die in Schritt 226 bestimmten Kraftbefehle niedriger Ebene können auch auf anderen Eingaben in den Hauptrechner 12 basieren, wie z. B. Aktivierungen von Tasten oder anderen Eingabevorrichtungen in (oder außerhalb von) der Schnittstellenvorrichtung 14. Eine spezielle Kraftroutine könnte beispielsweise dem Mikroprozessor befehlen, eine Kraft an einen Steuerhebel auszugeben, sobald ein Benutzer eine Taste auf dem Steuerhebel drückt. Bei einigen Ausführungsbeispielen können die Schritte 218, 220 und 221 zum Lesen von Sensordaten in einer oder mehreren Kraftroutinen für den Mikroprozessor integriert sein, so dass die Sensordaten nur gelesen werden, wenn eine Kraftroutine einmal ausgewählt und ausgeführt wurde. Außerdem kann der Hauptrechnerbefehl andere Befehlsparameter-Informationen enthalten, die erforderlich sind, um einen Kraftbefehl niedriger Ebene festzulegen. Beispielsweise kann der Hauptrechnerbefehl die Richtung einer Kraft entlang eines Freiheitsgrades angeben.
  • Der Mikroprozessor 26 kann in Schritt 226 Einen Kraftbefehl niedriger Ebene gemäß einer neu ausgewählten Kraftroutine oder einer vorher ausgewählten Kraftroutine festlegen. Wenn dies beispielsweise eine zweite oder spätere Iteration von Schritt 226 ist, kann dieselbe Kraftroutine wie bei der vorherigen Iteration wieder implementiert werden, wenn kein neuer Hauptrechnerbefehl empfangen wurde. Das ist tatsächlich der Vorteil eines unabhängigen Reflexprozesses: der Mikroprozessor 26 kann ständig Kräfte auf das Benutzerobjekt 34 unter Verwendung von Sensordaten und Zeitsteuerdaten gemäß den Kraftroutinen unabhängig von irgendwelchen Befehlen vom Hauptrechner ausgeben. Somit würde eine Kraftroutine einer "virtuellen Wand" ermöglichen, dass der Mikroprozessor Kräfte befiehlt, die die Wand simulieren, sobald der Steuerhebel des Benutzers in die entsprechende Position oder Richtung bewegt wurde. Der Hauptrechner muss nur befehlen, dass die virtuelle Wand existiert, und den Ort der Wand vorsehen, und der Mikroprozessor 26 implementiert bei Bedarf unabhängig die Wand und die erforderlichen Kräfte.
  • Die vorstehend beschriebenen Kraftroutinen und andere Parameter können verwendet werden, um eine Vielzahl von Tastempfindungen für den Benutzer über das Benutzerobjekt 34 vorzusehen, um viele verschiedenen Arten von taktilen Ereignissen zu simulieren. Typische Tastempfindungen können beispielsweise eine virtuelle Dämpfung (vorstehend beschrieben), ein virtuelles Hindernis und eine virtuelle Textur beinhalten. Virtuelle Hindernisse werden vorgesehen, um Wände, Hindernisse und andere unidirektionale Kräfte in einer Simulation, einem Spiel, usw. zu simulieren. Wenn ein Benutzer mit einem Steuerhebel ein Computerbild in ein virtuelles Hindernis bewegt, dann fühlt der Benutzer einen physischen Widerstand, wenn er den Steuerhebel weiter in diese Richtung bewegt. Wenn der Benutzer das Objekt von dem Hindernis wegbewegt, wird die unidirektionale Kraft entfernt. Somit wird dem Benutzer eine überzeugende Empfindung gegeben, dass das auf dem Bildschirm angezeigte virtuelle Hindernis physische Eigenschaften besitzt. Ebenso können virtuelle Texturen verwendet werden, um einen Oberflächenzustand oder eine ähnliche Textur zu simulieren. Wenn der Benutzer beispielsweise einen Steuerhebel oder ein anderes Benutzerobjekt entlang einer Achse bewegt, sendet der Hauptrechner eine rasche Folge von Befehlen, um wiederholt 1) einen Widerstand entlang dieser Achse aufzubringen, und 2) dann unmittelbar keinen Widerstand entlang dieser Achse aufzubringen, beispielsweise gemäß einer Kraftroutine. Diese Frequenz basiert auf der Bewegung des Steuerhebelgriffs und ist somit mit der Raumposition korreliert. Somit fühlt der Benutzer eine physische Empfindung der Textur, die als Gefühl beim Ziehen eines Stocks über ein Gitter beschrieben werden kann.
  • In Schritt 228 gibt der Prozessor 26 den festgelegten Prozessor-Kraftbefehl an die Stellglieder 30 aus, um die Ausgangskraft auf den gewünschten Pegel einzustellen. Vor dem Aussenden des Kraftbefehls niedriger Ebene kann der Prozessor 26 wahlweise den Kraftbefehl niedriger Ebene in eine geeignete Form umwandeln, die für das Stellglied 30 brauchbar ist, und/oder die Stellgliedschnittstelle 38 kann eine solche Umwandlung durchführen. Der Prozess kehrt dann zu Schritt 222 zurück, um zu prüfen, ob ein weiterer Hauptrechnerbefehl vom Hauptrechner 12 empfangen wurde.
  • Der Reflexprozess des Mikroprozessors 26 (Schritte 218, 220, 222, 224, 226 und 228) arbeitet folglich zum Vorsehen von Kräften auf dem Objekt 34 unabhängig vom Hauptrechner 12 gemäß einer ausgewählten Kraftroutine und anderen Parametern. Die Kraftroutine befiehlt, wie der Prozessor- Kraftbefehl auf der Basis der neuesten Sensordaten, die vom Mikroprozessor 26 gelesen werden, bestimmt werden soll. Da ein Reflexprozess unabhängig Kräfte in Abhängigkeit von den lokalen Steuerereignissen der Schnittstellenvorrichtung 14 ausgibt, ist der Hauptrechner frei zum Verarbeiten der Hauptrechneranwendung und zum Festlegen von lediglich, wann eine neue Art Kraft ausgegeben werden muss. Dies verbessert die Datenübertragungsraten zwischen dem Hauptrechner 12 und der Schnittstellenvorrichtung 14 in hohem Maße.
  • Außerdem besitzt der Hauptrechner 12 vorzugsweise die Fähigkeit, die Reflexoperation des Mikroprozessors 26 abzuschalten und direkt Kraftwerte oder Befehle niedriger Ebene zu liefern. Der Hauptrechnerbefehl kann beispielsweise einfach einen zu einem Stellglied 30 zu sendenden Kraftwert angeben. Dieser Abschaltmodus kann auch als Kraftroutine implementiert werden. Der Mikroprozessor 26 kann beispielsweise eine Kraftroutine aus dem Speicher auswählen, die ihm befiehlt, Kraftbefehle niedriger Ebene, die vom Hauptrechner 12 empfangen werden, zu einem Stellglied 30 weiterzuleiten.
  • Ein weiterer Vorteil des Reflexausführungsbeispiels von Fig. 7 ebenso wie der Hardware-Ausführungsbeispiele der Fig. 2, 3, 4a-f und 5 besteht darin, dass die geringen Kommunikationserfordernisse zwischen dem Hauptrechner und der Schnittstellenvorrichtung ermöglichen, dass eine Kraftrückkopplung über Computernetzwerke leicht implementiert wird. Der Hauptrechner 12 kann beispielsweise mit dem Internet und den Netzwerken des World Wide Web verbunden sein, wie Fachleuten gut bekannt ist. Eine "Website" oder eine andere Netzwerkstelle oder ein Knoten kann Kraftrückkopplungsinformationen für einen Benutzer zum Herunterladen und Implementieren unter Verwendung der Schnittstellenvorrichtung 14 speichern. Eine Website könnte beispielsweise eine Folge von Kraftwerten speichern, so dass der Benutzer mit einem Spiel oder einer Simulation, die auf der Website implementiert wird, in Dialog treten kann. Der Hauptrechner 12 kann die Kraftbefehle oder andere Kraftinformationen über das Netzwerk unter Verwendung von beispielsweise einem Webbrowser oder Softwaredienstprogramm, wie z. B. Netscape von Netscape Communications, empfangen. Wenn die Kraftinformation vom Hauptrechner empfangen wird, kann der Hauptrechner die Kraftinformation zum Mikroprozessor 26 übertragen, um die Stellglieder wie vorstehend beschrieben zu steuern. Da nur Kraftbefehle hoher Ebene bei dem Reflexausführungsbeispiel erforderlich sind, muss die Website nur eine kleine Menge an zum Hauptrechner zu übertragender Information speichern, anstatt alle tatsächlichen Kraftwerte, die zum Steuern der Stellglieder erforderlich sind. Ein Befehlsprotokoll hoher Ebene ermöglicht einen realistischeren Kraftrückkopplungsdialog über ein globales Netzwerk.
  • Bei anderen Ausführungsbeispielen kann ein "hauptrechnergesteuertes" Verfahren verwendet werden, bei dem das Hauptrechnersystem 12 direkte Kraftbefehle niedriger Ebene zum Mikroprozessor 26 liefert und der Mikroprozessor diese Kraftbefehle direkt zu den Stellgliedern 30 liefert, um von den Stellgliedern ausgegebene Kräfte zu steuern. Diese Art Ausführungsbeispiel ist jedoch kein Reflexausführungsbeispiel, da die an das Benutzerobjekt 34 ausgegebenen Kräfte von einer aktiven und kontinuierlichen Steuerung vom Hauptrechner abhängen, was die Rechenlast am Hauptrechner steigert.
  • Der Steuerprozess für ein hauptrechnergesteuertes Ausführungsbeispiel wäre ähnlich zu dem Prozess von Fig. 7, außer dass der Hauptrechner 12 alle an das Benutzerobjekt 34 auszugebenden Kräfte festlegen würde. Sensordaten werden durch den Hauptrechner vom lokalen Mikroprozessor 26 empfangen. Der Prozessor 26 empfängt kontinuierlich Signale von den Sensoren 28, verarbeitet die Rohdaten und sendet verarbeitete Sensordaten zum Hauptrechner 12. Alternativ kann der Prozessor 26 Positionsrohdaten und andere Eingangsdaten zum Hauptrechner 12 liefern und der Hauptrechner 12 filtert und berechnet eine Geschwindigkeit und Beschleunigung aus den Positionsrohdaten. Bei anderen Ausführungsbeispielen kann das Filtern am Hauptrechner 12 durchgeführt werden, während die andere Verarbeitung am Prozessor 26 durchgeführt werden kann.
  • Bei dem hauptrechnergesteuerten Ausführungsbeispiel legt der Hauptrechner die Kraftbefehle niedriger Ebene fest, um eine Kraftrückkopplung zum Benutzerbedienobjekt 34 zu liefern. Vorzugsweise werden Kraftroutinen vom Hauptrechner verwendet, die lokal zum Hauptrechner vorgesehen sind und die zu den Kraftroutinen ähnlich sind, die vom Mikroprozessor 26 verwendet werden, wie vorstehend beschrieben. Der Hauptrechner prüft die Sensordaten, um festzustellen, ob eine Änderung an der auf das Benutzerobjekt 34 aufgebrachten Kraft niedriger Ebene erforderlich ist. Wenn der Benutzer beispielsweise ein simuliertes Rennauto in einem Videospiel steuert, legt die Position eines Steuerhebels fest, ob sich das Rennauto in eine Wand bewegt, und somit, ob eine Kollisionskraft am Steuerhebel erzeugt werden sollte.
  • Wenn eine Kraftänderung erforderlich ist, gibt der Hauptrechner 12 geeignete Kraftbefehle niedriger Ebene über den Bus 24 an den Mikroprozessor 26 aus. Diese Kraftbefehle niedriger Ebene können einen oder mehrere Kraftwerte und/oder Richtungen umfassen, die gemäß den vorstehend beschriebenen Parametern festgelegt wurden. Der Kraftbefehl kann als tatsächliches Kraftsignal ausgegeben werden, das vom Mikroprozessor 26 nur an ein Stellglied 30 weitergeleitet wird; oder der Kraftbefehl kann vom Mikroprozessor 26 in eine geeignete Form umgewandelt werden, bevor er zum Stellglied 30 gesandt wird. Außerdem umfasst der Kraftbefehl niedriger Ebene vorzugsweise eine Information, die dem Mikroprozessor 26 anzeigt, welche Stellglieder diesen Kraftwert empfangen sollen. Das Hauptrechneranwendungsprogramm wird dann verarbeitet/aktualisiert. Wenn keine Kraftänderung erforderlich ist, muss der Hauptrechner 12 keinen anderen Befehl ausgeben, da der Mikroprozessor 26 weiterhin den vorherigen Kraftbefehl niedriger Ebene an die Stellglieder 30 ausgeben kann. Alternativ kann der Hauptrechner 12 kontinuierlich Befehle niedriger Ebene ausgeben, selbst wenn keine Kraftänderung erforderlich ist.
  • Fig. 8 ist ein schematisches Diagramm eines Beispiels eines Benutzerobjekts 34, das mit einem Kardanmechanismus 240 zum Vorsehen von zwei oder mehreren Drehfreiheitsgraden für das Objekt 34 gekoppelt ist. Der Kardanmechanismus 240 kann mit der Schnittstellenvorrichtung 14 gekoppelt sein oder mit Sensoren 28 und Stellgliedern 30 separat von den anderen Komponenten der Schnittstellenvorrichtung 14 versehen sein.
  • Der Kardanmechanismus 38 bei dem beschriebenen Ausführungsbeispiel stellt eine Abstützung für die Vorrichtung 25 auf einer geerdeten Oberfläche 56 (schematisch als Teil des Elements 46 dargestellt) bereit. Der Kardanmechanismus 38 ist vorzugsweise ein aus fünf Elementen bestehendes Gestänge, das ein Grundelement 46, Verlängerungselemente 48a und 48b und zentrale Elemente 50a und 50b umfasst. Das Grundelement 46 ist vorzugsweise mit einem Sockel oder einer Oberfläche gekoppelt, die für die Vorrichtung 25 eine Stabilität vorsieht.
  • Der Kardanmechanismus 240 kann durch eine geerdete Oberfläche 242 abgestützt werden, die beispielsweise eine Oberfläche des Gehäuses der Schnittstellenvorrichtung 14 (schematisch als Teil des Elements 244 dargestellt), ein Sockel, eine Tischplatte oder eine andere Oberfläche sein kann, die in der Position bezüglich des Benutzers ortsfest ist. Der Kardanmechanismus 240 ist vorzugsweise ein aus fünf Elementen bestehendes Gestänge, das ein Grundelement 244, Verlängerungselemente 246a und 246b und zentrale Elemente 248a und 248b umfasst. Das Grundelement 244 ist mit der Grundfläche 242 gekoppelt, die für den Mechanismus 240 eine Stabilität vorsieht. Das Grundelement 244 ist in Fig. 8 als zwei separate Elemente, die über die geerdete Oberfläche 242 miteinander gekoppelt sind, dargestellt, wird jedoch als ein "Element" des aus fünf Elementen bestehenden Gestänges betrachtet.
  • Die Elemente des Kardanmechanismus 240 sind durch die Verwendung von Lagern oder Drehgelenken drehbar miteinander gekoppelt, wobei das Verlängerungselement 246a durch ein Lager 243a drehbar mit dem Grundelement 244 gekoppelt ist und sich um eine Achse A drehen kann, das zentrale Element 248a durch ein Lager 245a drehbar mit dem Verlängerungselement 246a gekoppelt ist und sich um eine bewegliche Achse D drehen kann, das Verlängerungselement 246b durch ein Lager 243b drehbar mit dem Grundelement 244 gekoppelt ist und sich um eine Achse B drehen kann, das zentrale Element 248b durch ein Lager 245b drehbar mit dem Verlängerungselement 246b gekoppelt ist und sich um eine bewegliche Achse E drehen kann, und das zentrale Element 248a durch ein Lager 247 an einem Mittelpunkt P am Schnittpunkt der Achsen D und E drehbar mit dem zentralen Element 248b gekoppelt ist. Vorzugsweise ist das zentrale Element 248a mit einem drehbaren Teil 247a des Lagers 47 gekoppelt und das zentrale Element 248b ist mit dem anderen drehbaren Teil 247b des Lagers 247 gekoppelt. Die Achsen D und E sind insofern "beweglich", dass sie nicht in einer Position ortsfest sind wie die Achsen A und B. Die Achsen A und B sind in wesentlichen zueinander senkrecht. Wie hierin verwendet, bedeutet "im wesentlichen senkrecht", dass zwei Objekte oder Achsen exakt oder fast senkrecht, d. h. zumindest innerhalb von fünf Grad oder zehn Grad senkrecht, oder bevorzugter innerhalb von weniger als einem Grad senkrecht sind.
  • Der Kardanmechanismus 240 ist als aus fünf Elementen bestehende geschlossene Kette oder Schleife ausgebildet, so dass ein erstes Element der Kette mit dem letzten Element in der Kette gekoppelt ist. Jedes Ende eines Elements ist mit dem Ende eines anderen Elements gekoppelt. Das aus fünf Elementen bestehende Gestänge ist derart angeordnet, dass das Verlängerungselement 246a, das zentrale Element 248a und das zentrale Element 248b um die Achse A in einem ersten Freiheitsgrad gedreht werden können. Das Gestänge ist auch derart angeordnet, dass das Verlängerungselement 246b, das zentrale Element 248b und das zentrale Element 248a um die Achse B in einem zweiten Freiheitsgrad gedreht werden können. Wenn das Objekt 34 im "Ursprung" angeordnet ist, wie in Fig. 3 gezeigt, beträgt ein Winkel θ zwischen den zentralen Elementen 248a und 248b etwa 90 Grad. Wenn das Objekt 34 um eine oder beide Achsen A und B gedreht wird, bewegen sich die zentralen Elemente auf zwei Arten: Drehung um die Achse D oder E durch das Lager 245b und/oder 245a, und Drehung um die Achse C durch das Lager 247, so dass sich der Winkel θ ändert. Wenn das Objekt 34 beispielsweise in die Seite von Fig. 3 hinein und vom Betrachter weg oder aus der Ebene der Seite heraus in Richtung des Betrachters bewegt wird, dann nimmt der Winkel θ ab. Wenn das Objekt nach links oder rechts bewegt wird, wie in Fig. 3 gezeigt, nimmt der Winkel θ zu.
  • Das Element 250 mit linearer Achse ist vorzugsweise ein langgestrecktes stabartiges Element, das mit dem zentralen Element 248a und dem zentralen Element 248b am Schnittpunkt P der Achsen A und B gekoppelt ist. Das Element 250 mit linearer Achse kann als Welle des Benutzerobjekts 34 verwendet werden, oder bei anderen Ausführungsbeispielen kann das Element 250 mit linearer Achse mit einem anderen Objekt gekoppelt sein. Das Element 250 mit linearer Achse ist mit dem Kardanmechanismus 240 derart gekoppelt, dass es sich aus der durch die Achse D und die Achse E festgelegten Ebene herauserstreckt. Das Element 250 mit linearer Achse kann durch Drehen des Verlängerungselements 246a, des zentralen Elements 248a und des zentralen Elements 248b in einem ersten Drehfreiheitsgrad, der als Pfeillinie 251 dargestellt ist, um die Achse A (und E) gedreht werden. Das Element 250 kann durch Drehen des Verlängerungselements 250b und der zwei zentralen Elemente um die Achse B in einem zweiten Drehfreiheitsgrad, der durch die Pfeillinie 252 dargestellt ist, auch um die Achse B (und D) gedreht werden. Das Element mit linearer Achse kann auch verschiebbar mit den Enden der zentralen Elemente 248a und 248b gekoppelt sein und kann somit unabhängig bezüglich des Kardanmechanismus 240 entlang der beweglichen Achse C linear bewegt werden, was einen dritten Freiheitsgrad vorsieht, wie durch die Pfeile 253 gezeigt. Die Achse C kann natürlich um eine oder beide Achsen A und B gedreht werden, wenn das Element 250 um diese Achsen gedreht wird. Außerdem kann das Element 250 mit linearer Achse bei einigen Ausführungsbeispielen um die Achse C gedreht werden, wie durch den Pfeil 255 angegeben, um einen zusätzlichen Freiheitsgrad vorzusehen. Diese zusätzlichen Freiheitsgrade können auch zusätzlichen Sensoren und Stellgliedern zugeordnet sein, um zu ermöglichen, dass der Prozessor 26/Hauptrechner 12 die Position/Bewegung des Objekts 34 liest und Kräfte in diesen Freiheitsgraden aufbringt.
  • Mit dem Kardanmechanismus 240 und/oder mit dem Element 250 mit linearer Achse sind auch vorzugsweise Wandler gekoppelt, wie z. B. die Sensoren 28 und Stellglieder 30 von Fig. 2. Solche Wandler sind vorzugsweise an den Verbindungs- oder Lagerpunkten zwischen den Elementen der Vorrichtung angekoppelt und stellen eine Eingabe in den und eine Ausgabe aus dem Mikroprozessor 26 und/oder Hauptrechnersystem 12 bereit. Ein Sensor/Stellglied-Wandler 256 kann beispielsweise mit dem Verlängerungselement 246b durch ein Zahnradgetriebe 258 gekoppelt sein. Das Zahnradgetriebe 258 kann ein Treibrad 255 und eine drehbare Nocke 257 aufweisen, die unter Verwendung von Zahnradzähnen 253 ineinander greifen. Die Nocke 257 ist starr mit dem Verlängerungselement 246b gekoppelt und ist mit dem Element 246b bezüglich der Basis 242 drehbar. Das Treibrad ist starr mit einer Drehwelle des Wandlers 256 gekoppelt, so dass der Wandler 256 das Treibrad 255, die Nocke 257 und das Element 246b drehen kann, um Kräfte auf das Benutzerobjekt 34 um die Achse B/D auszugeben. Ebenso kann der Wandler 256 die Drehung um die Achse B/D feststellen, wenn sich das Element 246b, die Nocke 257 und das Treibrad 255 drehen. Ein ähnliches Zahnradgetriebesystem kann am Lager 243a vorgesehen sein, um die Bewegung um die Achse A/E festzustellen und zu betätigen. Bei alternativen Ausführungsbeispielen können andere Antriebssysteme und Wandler, Sensoren und Stellglieder verwendet werden, wie vorstehend mit Bezug auf Fig. 2 beschrieben. Ein Spillantrieb oder ein Reibungsantrieb kann beispielsweise vorgesehen sein, und Stellglieder und Sensoren können für Dreh- oder lineare Freiheitsgrade des Benutzerobjekts 34 vorgesehen sein.
  • Das Benutzerobjekt 34 ist mit dem Mechanismus 240 gekoppelt und ist vorzugsweise ein Schnittstellenobjekt zum Ergreifen oder anderweitigen Bedienen im dreidimensionalen (3D) Raum durch einen Benutzer. Das Benutzerobjekt 34 kann in beiden (oder allen drei oder vier) Freiheitsgraden bewegt werden, die vom Kardanmechanismus 240 und Element 250 mit linearer Achse vorgesehen werden. Wenn das Objekt 34 um die Achse A bewegt wird, verändert die bewegliche Achse D ihre Position, und wenn das Objekt 34 um die Achse B bewegt wird, verändert die bewegliche Achse E ihre Position.
  • Das bevorzugte Ausführungsbeispiel für den Kardanmechanismus 240 ist für ein Steuerhebel- Benutzerobjekt, das in zwei Drehfreiheitsgraden um die Achsen A/E und B/D bewegt werden kann. Das Element 250 mit linearer Achse kann beispielsweise durch einen Steuerhebelgriff ersetzt werden, der starr mit dem zentralen Element 248b gekoppelt ist. Ein weiteres bevorzugtes Ausführungsbeispiel umfasst einen dritten Freiheitsgrad, in dem der Steuerhebelgriff um die Achse C rotieren oder sich drehen kann. Diese Ausführungsbeispiele sind am besten für Videospiele und bestimmte Anwendungen einer virtuellen Realität, wie z. B. die Steuerung eines Fahrzeugs, einen Blickpunkt einer ersten Person, usw. geeignet. Weitere Ausführungsbeispiele umfassen eine medizinische Simulation und Operation, für die die vorstehend beschriebenen vier Freiheitsgracte zweckmäßiger sind.
  • Fig. 9 ist ein schematisches Diagramm einer Schaltung 260 für einen Berührungsplatten-Schutzschalter 262 der vorliegenden Erfindung. Wie die mit Bezug auf Fig. 2 beschriebenen optischen und Kontakt-Schutzschalter ist der Berührungsplatten-Schutzschalter dazu ausgelegt, von einem Benutzer berührt zu werden, während die Schnittstellenvorrichtung verwendet wird. Wenn der Benutzer den Schutzschalter nicht berührt, werden die Stellglieder 30 der Schnittstellenvorrichtung deaktiviert und stellen für den Benutzer keine Gefahr dar.
  • Der Berührungsplatten-Schutzschalter 262 ist so ausgelegt, dass der Benutzer nicht eine Taste drücken muss oder anderweitig aktiv einen Schalter steuern muss, was während der Bedienung des Steuerhebels oder anderen Benutzerobjekts 34 schwierig und lästig sein kann. Zwei Berührungsplatten 264 sind auf dem Äußeren der Schnittstellenvorrichtung 14 vorgesehen, vorzugsweise in einer Position, die natürlich unterhalb des Griffs eines Benutzers liegt, der das Benutzerobjekt 34 ergreift. Die zwei Platten können beispielsweise auf einem Steuerhebelgriff, wie in Fig. 9a gezeigt, nahe dem Mittelteil des Griffs, wo Benutzer ihn typischerweise berühren, vorgesehen sein. Oder die Kontakte könnten zusätzlich oder alternativ auf dem oberen Teil des Steuerhebels 34 vorgesehen sein.
  • Die Berührungsplatten 264 bestehen vorzugsweise aus einem Metall oder einem anderen leitenden Material. Wenn der Benutzer beide Platten mit der Haut berührt, wird durch den Benutzer ein Stromkreis geschlossen, was ein Totmann-Signal zum Mikroprozessor, Hauptrechner und/oder den Stellgliedern 30 liefert, dass der Schutzschalter geschlossen ist und dass die Stellglieder freigegeben werden können. Wenn der Benutzer nicht beide Platten 264 berührt, kann kein Strom fließen und der Schutzschalter ist offen, was die Stellglieder 30 an ihrer Funktion hindert.
  • Die Berührungsplatte 264a ist mit einer Schaltung 266 gekoppelt, die ein "Totmann"-Signal 270 als Signal mit hohem Pegel (5V) ausgibt, wenn der Benutzer beide Platten berührt. Die Schaltung 266 umfasst zwei Kondensatoren, drei Widerstände, 4 Inverter und eine Diode. Die Berührungsplatte 26b ist mit einer Schaltung 268 gekoppelt, die den Strom zur Erdung fließen lässt. Die Schaltung 268 umfasst drei Widerstände, zwei Kondensatoren und zwei Inverter. Die Funktion und Implementierung dieser Komponenten sind Fachleuten gut bekannt. Andere äquivalente Schaltungen können ebenfalls verwendet werden, um im wesentlichen dieselben Funktionen zu erfüllen, und sind Fachleuten gut bekannt.
  • Fig. 10 ist eine graphische Darstellung eines Steuerhebels 280 mit einem Handgewichts-Schutzschalter der vorliegenden Erfindung. Der Schutzschalter 41, wie bei den Fig. 2 und 9 beschrieben, ist im Steuerhebel 260 enthalten, so dass der Benutzer den Schalter aktivieren muss, bevor die Stellglieder 30 Kräfte ausgeben können. Dies ist ein Schutzmerkmal, das verhindert, dass sich das Benutzerobjekt unerwartet bewegt und mit dem Benutzer zusammenstößt, wenn der Benutzer das Benutzerobjekt nicht steuert. Schutzschalter, wie z. B. Kontaktschalter, Lichtdetektoren und andere Arten von Schaltern, wurden vorstehend beschrieben, welche der Benutzer während der Bedienung des Steuerhebels berührt oder bedeckt und welche sich auf dem Benutzerobjekt oder Gehäuse der Schnittstellenvorrichtung 14 befinden. Dies kann während der Bedienung des Hebels schwierig sein, da der Benutzer eine spezielle Fläche des Benutzerobjekts oder Vorrichtungsgehäuses ständig berühren oder bedecken muss.
  • Der Steuerhebel 260 umfasst einen Handgewichts- Schutzschalter 262, der verwendet werden kann, um den Schutzschalter 41 zu ersetzen oder zu ergänzen, und der für den Benutzer bequemer ist. Der Steuerhebel 260 umfasst einen verschiebbaren Griff 264, einen Sockel 266, eine Feder 268 und Schaltkontakte 270. Der Griff 264 ist ein Standard-Steuerhebelgriff, kann jedoch auch durch andere Benutzerobjekte 34 ersetzt werden, wie vorstehend beschrieben. Der Griff 264 kann entlang der Achse C innerhalb eines Abstandsbereichs d des Sockels 266 vorzugsweise auf einem Verlängerungselement 272 oder einer anderen ähnlichen Führung bewegt werden. Der Abstand d ist vorzugsweise relativ klein, wie z. B. 1 Millimeter, und ist in Fig. 8 der Deutlichkeit halber übertrieben. Eine vorgespannte Feder 268 drückt vorzugsweise den Griff 264 nach oben vom Sockel 266 weg in eine Richtung, die durch den Pfeil 274 angegeben ist, in eine "offene" Position, wenn kein Gewicht auf den Griff 264 aufgebracht wird. Vorzugsweise verhindert ein mit der Oberseite des Elements 272 oder mit der Unterseite des Griffs 264 gekoppelter Anschlag (nicht dargestellt), dass der Griff vom Sockel 266 gelöst wird. Eine ähnliche Grenze für die Bewegung des Griffs 264 in der Richtung des Sockels 266 ist durch den physischen Eingriff des Griffs und des Sockels vorgesehen.
  • Schaltkontakte 270 sind zwischen dem Sockel 266 und dem Griff 264 des Steuerhebels 260 vorgesehen. Die Kontakte 270 sind durch Leitungen 276 mit dem Mikroprozessor 26 verbunden, der überwachen kann, wenn sich die Kontakte berühren. Wenn sich der Griff 264 in der offenen Position befindet, sind die Kontakte 270 getrennt und zwischen ihnen kann kein elektrischer Strom fließen, und somit kann kein elektrischer Strom oder elektrische Leistung von der Leistungsversorgung zu den Motoren fließen. Alternativ können die Kontakte 270 mit dem Mikroprozessor 26 oder einer anderen Ansteuerkomponente verbunden sein, die den offenen Zustand der Kontakte erkennen kann und die Stellglieder 30 mit einem Sicherheits-Sperrsignal deaktivieren kann, wenn der offene Zustand erkannt wird. Die Stellglieder 30 werden somit daran gehindert; Kräfte auszugeben, wenn der Benutzer keine Steuerung über den Steuerhebelgriff 264 und die Schnittstellenvorrichtung 14 hat.
  • Wenn ein Benutzer den Griff 264 ergreift, drückt das Gewicht der Hand des Benutzers den Griff 264 nach unten, um in den Sockel 266 einzugreifen. Die Schaltkontakte 270 verbinden sich durch diesen Eingriff und lassen einen Strom zwischen ihnen fließen. Da die Kontakte 270 den Stromkreis von den Stellgliedern zur Leistungsversorgung schließen, kann somit ein Strom von der Leistungsversorgung zu den Stellgliedern fließen. Alternativ erkennt der Mikroprozessor 26 den Zustand des geschlossenen Kontakts und hört auf, ein Sicherheits-Sperrsignal zu den Stellgliedern 30 zu senden. Dies ermöglicht, dass die Stellglieder 30 durch den Hauptrechner 12 und den Mikroprozessor 26 normal gesteuert und aktiviert werden. Wenn der Benutzer den Griff 264 aus seinem Griff loslässt, drückt die Feder 268 den Griff 264 vom Sockel 266 weg, was die Kontakte 270 trennt und die Stellglieder 30 deaktiviert.
  • Der Handgewichts-Schutzschalter besitzt verschiedene Vorteile gegenüber anderen Arten von Schutzschaltern. Der Benutzer kam den Griff in normaler, bequemer Weise einfach ergreifen oder halten und dennoch den Schutzschalter infolge des Gewichts der Benutzerhand aktivieren. Somit muss der Benutzer nicht einen ungünstig angeordneten Schalter an einer speziellen Stelle des Griffs oder Gehäuses bedecken oder drücken. Ein weiterer Vorteil betrifft die Transportfähigkeit der Schnittstellenvorrichtung 14. Die Verwendung von kleineren Leistungsversorgungen, insbesondere bezüglich der Merkmale der Leistungsschaltung von Fig. 6 der vorliegenden Erfindung, und die Verwendung der Schnittstellenvorrichtung 14 für Heimanwendungen führt zu einer leichtgewichtigeren Schnittstellenvorrichtung. Somit können Benutzer die Schnittstellenvorrichtung leicht hochheben und sie zu gewünschten Stellen bewegen. Eine natürliche Art für einen Benutzer, einen Steuerhebel anzuheben, besteht darin, den Griff 264 zu halten und an diesem zu ziehen. Ein Standard- Kraftrückkopplungs-Steuerhebel kann eine gewisse Gefahr für einen Benutzer darstellen, wenn er durch den Griff angehoben wird, da die Stellglieder 30 bewirken, dass sich der Sockel des Steuerhebels bewegt und ausschlägt. Wenn der Handgewichts-Schutzschalter 262 der vorliegenden Erfindung verwendet wird, existiert diese Gefahr nicht: die Stellglieder werden nur aktiviert, wenn der Benutzer Gewicht auf den Griff aufbringt, und das ziehen und Tragen des Griffs sieht dieses Gewicht nicht vor und aktiviert die Stellglieder nicht.
  • Fig. 11 ist eine graphische Darstellung eines Lösesteuerhebels 280 der vorliegenden Erfindung. Da Kräfte auf das Benutzerobjekt 34 und den Benutzer von den Stellgliedern 30 ausgeübt werden, besteht Eine Möglichkeit dafür, dass eine zu starke Kraft ausgegeben wird und einen Benutzer verletzt. Als Schutzmaßnahme kann ein Lösesteuerhebel 280 oder ein anderes Lösebenutzerobjekt 34 implementiert werden. Der Lösesteuerhebel 280 umfasst einen Griff 282, einen Sockel 284 und eine Befestigungsvorrichtung 286. Beim normalen Betrieb wird der Griff 282 am Sockel 284 durch die Befestigungsvorrichtung 286 befestigt. Die Befestigungsvorrichtung 286 kann beispielsweise Magnete sein, die den Sockel und den Griff durch Magnetfelder aneinander halten. Entgegengesetzt polarisierte Magnete können in den Kontaktteilen des Sockels und des Griffs vorgesehen sein. Die Magnete können speziell ausgewählt werden, um eine vorbestimmte Befestigungsstärke vorzusehen. Ein Benutzer bringt während der Bedienung der Schnittstellenvorrichtung eine Kraft auf den Griff 282 auf und die Stellglieder 30 bringen Kräfte auf den Sockel 284 auf, um eine Kraftrückkopplung für den Benutzer vorzusehen. Eine Gesamtkraft auf dem Griff und dem Sockel ist somit gleich der Summe der Kraft auf dem Griff vom Benutzer und der Kraft in der Gegenrichtung auf dem Sockel von den Stellgliedern. Wenn eine größere Gesamtkraft als eine vorbestimmte Größe auf den Lösesteuerhebel aufgebracht wird, dann löst sich der Griff vom Sockel. Bei anderen Ausführungsbeispielen können andere Befestigungsvorrichtungen oder Materialien verwendet werden, wie z. B. ein Klettenverschluss, mechanische oder elektromechanische Befestigungsvorrichtungen usw.
  • Die Fig. 11a-11c zeigen den Lösesteuerhebel beim Betrieb. In Fig. 11a ergreift ein Benutzer den Griff 282 und drückt den Griff in die Richtung des Pfeils 290. Gleichzeitig liefert ein Stellglied 30 eine Kraft in einer Richtung des Pfeils 292 zum Sockel 284. Kombiniert addieren sich diese Kräfte zu einer Gesamtkraft, die größer ist als die vorbestimmte Kraft, der die Befestigungsvorrichtung standhalten kann. Wie in den Fig. 11b und 11c gezeigt, löst sich der Griff vom Sockel in der Richtung, in der der Benutzer den Griff drückte, während sich der Sockel in die durch die Stellglieder 30 erzwungene Richtung bewegt.
  • Außerdem können in den Freiheitsgraden des Steuerhebels Anschläge vorgesehen sein, um Grenzen für die Bewegung des Steuerhebels vorzusehen. Der Griff kann sich lösen, wenn die Kraft vom Benutzer auf dem Griff über der vorbestimmten Grenze liegt, wenn der Sockel an einem Anschlag angeordnet wird, so dass der Anschlag eine Kraft in der Gegenrichtung zur Benutzerkraft vorsieht.
  • Fig. 11d zeigt ein alternatives Ausführungsbeispiel 280' des Lösesteuerhebels 280. Der Steuerhebel 280' umfasst eine oder mehrere Steuerungen 294 auf dem Griff 282, die für den Benutzer zur Bedienung zur Verfügung stehen, um eine andere Eingabe 39 vorzusehen, wie z. B. Tasten, Schalter oder andere Eingabevorrichtungen. Da Eingangssignale von der Steuerung 294 zum Mikroprozessor und/oder Hauptrechner 12 geliefert werden, werden die Signale von der Steuerung 294 auf dem Griff über ein Drahtbündel 296 übertragen. Das Drahtbündel 296 ist mit einer zusätzlichen Länge versehen, so dass, wenn sich der Griff 282 vom Sockel 284 löst, das Drahtbündel nicht bricht. Das Drahtbündel wird durch den Sockel 284 durch eine Öffnung 298 geleitet und ist mit dem Mikroprozessor gekoppelt oder wird direkt zum Hauptrechner 12 geleitet, wie bei den vorstehend beschriebenen Ausführungsbeispielen erläutert.
  • Bei einem alternativen Ausführungsbeispiel zum Ausführungsbeispiel 280' von Fig. 11d muss das Drahtbündel 296 nicht verwendet werden. Statt dessen können der Griff 282 und der Sockel 284 mit zusammengehörigen leitenden Kontaktstellen versehen sein, die sich in Kontakt befinden, wenn der Griff 282 mit dem Sockel 284 in Eingriff steht, und ermöglichen, dass Tastensignale zum Sockel 284 nur dann übertragen werden, wenn der Griff und der Sockel in Eingriff stehen. Die leitende Kontaktstelle des Griffs ist mit der Taste 294 gekoppelt und die leitende Kontaktstelle des Sockels ist mit einem Draht gekoppelt, der zum Mikroprozessor oder zu anderen Steuerkomponenten der Schnittstellenvorrichtung verläuft. Signale von der Taste 294 können somit über den Steuerhebel 280 übertragen werden, wenn der Griff und der Sockel in Eingriff stehen und die leitenden Kontaktstellen in Kontakt stehen. Wenn sich der Steuerhebelgriff 282 von dem Sockel 284 löst, stehen die leitenden Kontaktstellen nicht mehr in Kontakt und keine Signale von der Taste 294 werden zum Sockel 284 übertragen.
  • Obwohl diese Erfindung hinsichtlich verschiedenen bevorzugten Ausführungsbeispielen beschrieben wurde, wird in Erwägung gezogen, dass Änderungen, Modifikationen und Vertauschungen derselben für Fachleute nach Lesen der Beschreibung und Studieren der Zeichnungen ersichtlich werden. Beispielsweise können viele verschiedene Arten und Standards von Datenübertragungsschnittstellen bei der hierin offenbarten Schnittstellenvorrichtung verwendet werden. Verschiedene Signalleitungen können verwendet werden, um eine Kommunikation zwischen dem Hauptrechner und der Schnittstellenvorrichtung in Abhängigkeit von der gewünschten Steuerung, die der Hauptrechner über die Ausgabekräfte hat, vorzusehen. Außerdem können viele verschiedene Arten von Kardanmechanismen oder anderen Mechanismen vorgesehen werden, um eine Bewegung des Benutzerobjekas in gewünschten Freiheitsgraden zu ermöglichen. Eine Vielzahl von verschiedenen Arten von Stellgliedern, Sensoren und anderen Vorrichtungen ebenso wie den erforderlichen Leistungsversorgungen können ebenfalls verwendet werden, um die Position eines Objekts festzustellen und Kräfte auf das Objekt entlang den Freiheitsgraden aufzubringen. Die hierin offenbarten verschiedener, kostengünstigen und sicheren Ausführungsbeispiele können in mehreren Konfigurationen für verschiedene Anwendungen kombiniert werden.
  • Ferner wurde eine bestimmte Terminologie für die Zwecke der Beschreibungsklarheit und nicht zum Begrenzen der vorliegenden Erfindung verwendet. Der Schutzbereich der Erfindung ist durch die folgenden beigefügten Ansprüche definiert.

Claims (6)

1. Kraftrückkopplungs-Schnittstellenvorrichtung (14), die einen Benutzer mit einem Hauptrechnersystem (12) koppelt, mit einer Schaltung (158) zum Speichern von Leistung, wobei die Schaltung in der Kraftrückkopplungs- Schnittstellenvorrichtung (14) vorgesehen ist, wobei die Schaltung umfasst:
- ein Mittel (162) zum Speichern von Leistung, wobei die Leistung durch ein in die Schaltung (158) eingegebenes Signal bereitgestellt wird;
- eine Steuervorrichtung (94) zum Liefern eines Steuersignals (X) zu einem Stellglied (96), das in der Schnittstellenvorrichtung (14) vorgesehen ist, wobei das Steuersignal (X) bewirkt, dass das Stellglied (96) Kraft auf den Benutzer der Schnittstellenvorrichtung (14) aufbringt,
- wobei die gespeicherte Leistung zu dem Stellglied (96) geliefert wird, um die Kraft aufzubringen; und
- ein Feststellungsmittel (26, 164), das mit dem Mittel (162) zum Speichern von Leistung gekoppelt ist, wobei das Feststellungsmittel (26, 164) feststellt, wenn das Mittel (162) zum Speichern von Leistung ausreichend aufgeladen ist, um Leistung zu dem Stellglied (96) zu liefern, um eine Kraft auszugeben,
dadurch gekennzeichnet, dass
das Feststellungsmittel (26, 164) einen Mikroprozessor (26) umfasst, der wirksam ist, um festzustellen, wenn das Mittel (162) zum Speichern von Leistung ausreichend aufgeladen ist, um Leistung zu dem Stellglied (96) zu liefern, um eine Kraft auszugeben.
2. Schaltung nach Anspruch 1, wobei das Feststellungsmittel (26, 164) einen Analog-Digital-Wandler (164) umfasst und wobei der Mikroprozessor (26) zum Überwachen des Eingangssignals wirksam ist, um festzustellen, wenn das Mittel (162) zum Speichern von Leistung voll aufgeladen ist.
3. Schaltung nach einem der Ansprüche 1-2, welche ferner ein Treibermittel (166) zum Empfangen des Steuersignals (X) und zum Verstärken des Steuersignals (X) unter Verwendung der gelieferten gespeicherten Leistung zum Ansteuern des Stellgliedes (96) umfasst.
4. Schaltung nach einem der Ansprüche 1-3, welche ferner ein Strombegrenzungsmittel (160) umfasst, das mit dem Eingangssignal gekoppelt ist, um einen Strom des Eingangssignals auf einen vorbestimmten Wert zu begrenzen und den begrenzten Strom zu dem Mittel (162) zum Speichern von Leistung zu liefern.
5. Schaltung nach einem der Ansprüche 1-4, wobei das Eingangssignal von einer Leistungsversorgung (41) empfangen wird, die in der Schnittstellenvorrichtung (14) enthalten ist.
6. Schaltung nach einem der Ansprüche 1-5, wobei das Mittel zum Speichern von Leistung einen Kondensator (162) umfasst, wobei das Feststellungsmittel feststellt, dass das Mittel zum Speichern von Leistung ausreichend aufgeladen ist, wenn der Kondensator voll aufgeladen ist.
DE69627046T 1995-09-27 1996-09-25 Sichere und preisgünstige Rechner-Peripheriegeräte mit Kraftrückkoppelung für Konsumanwendungen Expired - Lifetime DE69627046T2 (de)

Applications Claiming Priority (2)

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
US08/623,660 US5691898A (en) 1995-09-27 1996-03-28 Safe and low cost computer peripherals with force feedback for consumer applications

Publications (2)

Publication Number Publication Date
DE69627046D1 DE69627046D1 (de) 2003-04-30
DE69627046T2 true DE69627046T2 (de) 2003-12-04

Family

ID=27064588

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69607189T Expired - Lifetime DE69607189T2 (de) 1995-09-27 1996-09-25 Sichere und preisgünstige rechner-peripheriegeräte mit kraftrückkoppelung für konsumanwendungen
DE69627046T Expired - Lifetime DE69627046T2 (de) 1995-09-27 1996-09-25 Sichere und preisgünstige Rechner-Peripheriegeräte mit Kraftrückkoppelung für Konsumanwendungen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69607189T Expired - Lifetime DE69607189T2 (de) 1995-09-27 1996-09-25 Sichere und preisgünstige rechner-peripheriegeräte mit kraftrückkoppelung für konsumanwendungen

Country Status (5)

Country Link
US (8) US5691898A (de)
EP (2) EP0852770B1 (de)
CA (1) CA2233206C (de)
DE (2) DE69607189T2 (de)
WO (1) WO1997012337A1 (de)

Families Citing this family (583)

* 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
US6222525B1 (en) 1992-03-05 2001-04-24 Brad A. Armstrong Image controllers with sheet connected sensors
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
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
CA2167304C (en) 1993-07-16 1998-04-21 Louis B. Rosenberg Multi degree of freedom human-computer interface with tracking and forcefeedback
US6437771B1 (en) 1995-01-18 2002-08-20 Immersion Corporation Force feedback device including flexure member between actuator and user object
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
US6004134A (en) * 1994-05-19 1999-12-21 Exos, Inc. Interactive simulation including force feedback
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
US5666138A (en) 1994-11-22 1997-09-09 Culver; Craig F. Interface control
US6722888B1 (en) * 1995-01-20 2004-04-20 Vincent J. Macri Method and apparatus for tutorial, self and assisted instruction directed to simulated preparation, training and competitive play and entertainment
EP0947949B1 (de) 1995-05-10 2002-08-21 Nintendo Co., Limited Steuergerät mit analogem Joystick
US6241611B1 (en) 1995-05-10 2001-06-05 Nintendo Co., Ltd. Function expansion device and operating device using the function expansion device
US20060206219A1 (en) * 1995-05-30 2006-09-14 Brown David W Motion control systems and methods
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US5691897A (en) 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
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
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
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
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
US5959613A (en) * 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
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 任天堂株式会社 ゲーム機およびそれを用いたゲーム機システム
DE69638186D1 (de) 1995-10-09 2010-07-01 Nintendo Co Ltd Dreidimensionales Bildverarbeitungssystem
JP3544268B2 (ja) 1995-10-09 2004-07-21 任天堂株式会社 三次元画像処理装置およびそれを用いた画像処理方法
GB2313432B (en) 1995-11-10 2000-06-21 Nintendo Co Ltd Joystick device
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
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
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
US6022274A (en) 1995-11-22 2000-02-08 Nintendo Co., Ltd. Video game system using memory module
US6155926A (en) 1995-11-22 2000-12-05 Nintendo Co., Ltd. Video game system and method with enhanced three-dimensional character and background control
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 ヴァーチャル テクノロジーズ インコーポレイテッド 触覚をフィードバックする人間/機械インターフェース
US5956484A (en) * 1995-12-13 1999-09-21 Immersion Corporation Method and apparatus for providing force feedback over a computer network
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
US8508469B1 (en) 1995-12-01 2013-08-13 Immersion Corporation Networked applications including haptic feedback
US6028593A (en) 1995-12-01 2000-02-22 Immersion Corporation Method and apparatus for providing simulated physical interactions within computer generated environments
US6169540B1 (en) 1995-12-01 2001-01-02 Immersion Corporation Method and apparatus for designing force sensations in force feedback applications
US7027032B2 (en) 1995-12-01 2006-04-11 Immersion Corporation Designing force sensations for force feedback computer applications
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
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
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
US6078311A (en) * 1996-03-26 2000-06-20 Pacific Digital Peripherals, Inc. Joystick game adapter card for a personal computer
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
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
US6374255B1 (en) 1996-05-21 2002-04-16 Immersion Corporation Haptic authoring
JP2828953B2 (ja) * 1996-05-31 1998-11-25 コナミ株式会社 遊技機の手動操作装置
US8674932B2 (en) 1996-07-05 2014-03-18 Anascape, Ltd. Image controller
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
US6929481B1 (en) 1996-09-04 2005-08-16 Immersion Medical, Inc. Interface device and method for interfacing instruments to medical procedure simulation systems
AU4249597A (en) * 1996-09-04 1998-03-26 Ht Medical Systems, Inc. Interventional radiology interface apparatus and method
US7815436B2 (en) 1996-09-04 2010-10-19 Immersion Corporation Surgical simulation interface device and method
US6024576A (en) * 1996-09-06 2000-02-15 Immersion Corporation Hemispherical, high bandwidth mechanical interface for computer systems
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
DE69729628T2 (de) * 1996-10-11 2005-07-14 Sony Computer Entertainment Inc. Bedienvorrichtung für videospiele
US6411276B1 (en) 1996-11-13 2002-06-25 Immersion Corporation Hybrid control of haptic feedback for host computer and interface device
US20080227534A1 (en) * 1996-11-14 2008-09-18 Bally Gaming, Inc. Gaming system with savable game states
US8235821B2 (en) 1996-11-14 2012-08-07 Bally Gaming, Inc. Progressive controller and TCP/IP in gaming system
US6758755B2 (en) 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US6686911B1 (en) 1996-11-26 2004-02-03 Immersion Corporation Control knob with control modes and force feedback
US6154201A (en) * 1996-11-26 2000-11-28 Immersion Corporation Control knob with multiple degrees of freedom and force feedback
US6636197B1 (en) 1996-11-26 2003-10-21 Immersion Corporation Haptic feedback effects for control, knobs and other interface devices
US6128006A (en) 1998-03-26 2000-10-03 Immersion Corporation Force feedback mouse wheel and other control wheels
US6096096A (en) * 1996-12-13 2000-08-01 Silicon Graphics, Inc. Web-site delivery
WO1998033136A1 (en) * 1997-01-27 1998-07-30 Immersion Human Interface Corporation Method and apparatus for providing high bandwidth, realistic force feedback including an improved actuator
JPH1186038A (ja) * 1997-03-03 1999-03-30 Sega Enterp Ltd 画像処理装置、画像処理方法及び媒体並びにゲーム機
JPH10258181A (ja) * 1997-03-18 1998-09-29 Alps Electric Co Ltd ゲーム機用操作装置
US6020876A (en) * 1997-04-14 2000-02-01 Immersion Corporation Force feedback interface with selective disturbance filter
US20060053371A1 (en) * 1997-04-14 2006-03-09 Anderson Thomas G Navigation and viewing in a multidimensional space
US6954899B1 (en) 1997-04-14 2005-10-11 Novint Technologies, Inc. Human-computer interface including haptically controlled interactions
JPH10295937A (ja) * 1997-04-24 1998-11-10 Sony Computer Entertainment:Kk ゲーム機用操作装置
US6641479B1 (en) 1997-04-24 2003-11-04 Sony Computer Entertainment, Inc. Control unit and system utilizing the control unit
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
US7091948B2 (en) * 1997-04-25 2006-08-15 Immersion Corporation Design of force sensations for haptic feedback computer interfaces
US7472047B2 (en) * 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
AU8057198A (en) * 1997-06-03 1998-12-21 Alpha Technologies, Inc. Status monitoring system for communications systems
US6071194A (en) * 1997-06-19 2000-06-06 Act Labs Ltd Reconfigurable video game controller
JP3655438B2 (ja) 1997-07-17 2005-06-02 任天堂株式会社 ビデオゲームシステム
US6270415B1 (en) * 1997-08-15 2001-08-07 Guillemot Corporation Method for bi-directional data communication in a digital game port
US6252579B1 (en) 1997-08-23 2001-06-26 Immersion Corporation Interface device and method for providing enhanced cursor control with force feedback
US6292174B1 (en) 1997-08-23 2001-09-18 Immersion Corporation Enhanced cursor control using limited-workspace force feedback devices
US6243075B1 (en) * 1997-08-29 2001-06-05 Xerox Corporation Graspable device manipulation for controlling a computer display
US5995034A (en) * 1997-09-09 1999-11-30 Primax Electronics Ltd. Computer joystick with a removable joystick handle
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
US6125333A (en) * 1997-11-06 2000-09-26 Northrop Grumman Corporation Building block approach for fatigue spectra generation
US6252583B1 (en) 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
US6243078B1 (en) 1998-06-23 2001-06-05 Immersion Corporation Pointing device with forced feedback button
US6088019A (en) * 1998-06-23 2000-07-11 Immersion Corporation Low cost force feedback device with actuator for non-primary axis
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
JP2002502058A (ja) 1998-01-28 2002-01-22 エイチティー メディカル システムズ,インコーポレイティド 血管アクセスシミレーションシステムへの器具の接続のためのインターフェース装置及び方法
JP4662622B2 (ja) 1998-01-28 2011-03-30 イマージョン メディカル,インコーポレイティド 医療処置シミュレーションシステムに器械をインタフェース接続するためのインタフェース装置及び方法
AU770385B2 (en) * 1998-02-03 2004-02-19 Immersion Corporation Implementing force feedback over the world wide web and other computer networks
US6878066B2 (en) * 1998-02-13 2005-04-12 Freedom Wave Llc Wireless game control units
US6391005B1 (en) 1998-03-30 2002-05-21 Agilent Technologies, Inc. Apparatus and method for penetration with shaft having a sensor for sensing penetration depth
US6067077A (en) * 1998-04-10 2000-05-23 Immersion Corporation Position sensing for force feedback devices
US6354945B1 (en) * 1998-05-20 2002-03-12 Alps Electric Co., Ltd. Controller
US6184868B1 (en) 1998-09-17 2001-02-06 Immersion Corp. Haptic feedback control devices
US6707443B2 (en) * 1998-06-23 2004-03-16 Immersion Corporation Haptic trackball device
US6429846B2 (en) 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6697043B1 (en) 1999-12-21 2004-02-24 Immersion Corporation Haptic interface device and actuator assembly providing linear haptic sensations
US6421048B1 (en) 1998-07-17 2002-07-16 Sensable Technologies, Inc. Systems and methods for interacting with virtual objects in a haptic virtual reality environment
US6417638B1 (en) 1998-07-17 2002-07-09 Sensable Technologies, Inc. Force reflecting haptic interface
US6985133B1 (en) 1998-07-17 2006-01-10 Sensable Technologies, Inc. Force reflecting haptic interface
US6552722B1 (en) * 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
DE19850205C1 (de) * 1998-10-23 2000-03-09 Andreas Wenzel Simulationsvorrichtung zur Erzeugung von Bewegungseindrücken
US7038667B1 (en) 1998-10-26 2006-05-02 Immersion Corporation Mechanisms for control knobs and other interface devices
US6339419B1 (en) * 1998-11-10 2002-01-15 Lord Corporation Magnetically-controllable, semi-active haptic interface system and apparatus
US6650338B1 (en) 1998-11-24 2003-11-18 Interval Research Corporation Haptic interaction with video and image data
US6452586B1 (en) 1998-11-30 2002-09-17 Microsoft Corporation Computer input device providing tactile feedback
US6402620B1 (en) 1998-12-02 2002-06-11 Technology Creations, Inc. Amplified stereo sound and force feed back accessory for video game devices
US6422944B1 (en) 1998-12-02 2002-07-23 Technology Creations, Inc. Plug-in amplified stereo sound and force feed back accessory for video game devices and method of using same
US6493608B1 (en) * 1999-04-07 2002-12-10 Intuitive Surgical, Inc. Aspects of a control system of a minimally invasive surgical apparatus
DE19856722A1 (de) * 1998-12-09 2000-06-15 Mannesmann Vdo Ag Bedienvorrichtung mit einer Handhabe mit mindestens zwei Verstellfreiheitsgraden
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
JP2000246674A (ja) * 1999-02-26 2000-09-12 Sony Corp 力覚提示装置
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
US6424356B2 (en) 1999-05-05 2002-07-23 Immersion Corporation Command of force sensations in a forceback system using force effect suites
WO2000068927A1 (en) * 1999-05-10 2000-11-16 Immersion Corporation Actuator control providing linear and continuous force output
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
US6525711B1 (en) * 1999-06-24 2003-02-25 Interval Research Corp. Haptic interface including clutch control
US6982696B1 (en) 1999-07-01 2006-01-03 Immersion Corporation Moving magnet actuator for providing haptic feedback
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
US6337678B1 (en) 1999-07-21 2002-01-08 Tactiva Incorporated Force feedback computer input and output device with coordinated haptic elements
WO2001011474A1 (fr) * 1999-08-04 2001-02-15 Fujitsu Limited Procede et appareil de traitement des informations, et support associe
JP2001056742A (ja) * 1999-08-19 2001-02-27 Alps Electric Co Ltd 入力装置
DE20080209U1 (de) 1999-09-28 2001-08-09 Immersion Corp Steuerung von haptischen Empfindungen für Schnittstellenvorrichtungen mit Vibrotaktiler Rückkopplung
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
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
AU3495000A (en) * 1999-12-12 2001-06-18 Ralph Lander Open loop tactile feedback
US6552713B1 (en) * 1999-12-16 2003-04-22 Hewlett-Packard Company Optical pointing device
JP2001175347A (ja) * 1999-12-20 2001-06-29 Mitsumi Electric Co Ltd ジョイスティック
FR2803085A1 (fr) * 1999-12-28 2001-06-29 Thomson Csf Sextant Dispositif de dialogue avec un systeme embarque dans un aeronef
US6822635B2 (en) 2000-01-19 2004-11-23 Immersion Corporation Haptic interface for laptop computers and other portable devices
WO2001056005A1 (en) * 2000-01-25 2001-08-02 Mythtree, Inc. An actuation device having multiple degrees of freedom of movement and reduced inertia
JP3897948B2 (ja) * 2000-02-14 2007-03-28 富士通株式会社 支援システムおよび支援プログラムを記録したコンピュータ読み取り可能な記録媒体
US7878905B2 (en) 2000-02-22 2011-02-01 Creative Kingdoms, Llc Multi-layered interactive play experience
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US20080122799A1 (en) * 2001-02-22 2008-05-29 Pryor Timothy R Human interfaces for vehicles, homes, and other applications
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
US6531998B1 (en) * 2000-02-29 2003-03-11 Microsoft Corporation Haptic feedback gaming device with integral power supply
US6924787B2 (en) * 2000-04-17 2005-08-02 Immersion Corporation Interface for controlling a graphical image
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
US7418470B2 (en) * 2000-06-26 2008-08-26 Massively Parallel Technologies, Inc. Parallel processing systems and method
US7233476B2 (en) * 2000-08-11 2007-06-19 Immersion Corporation Actuator thermal protection in haptic feedback devices
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
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
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US7206733B1 (en) 2000-10-26 2007-04-17 Cypress Semiconductor Corporation Host to FPGA interface in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8641644B2 (en) 2000-11-21 2014-02-04 Sanofi-Aventis Deutschland Gmbh Blood testing apparatus having a rotatable cartridge with multiple lancing elements and testing means
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
EP1217495A3 (de) * 2000-12-22 2004-04-21 Alps Electric Co., Ltd. Manuelle Eingabevorrichtung mit Kraftrückkopplungsfunktion und an Bord installiertes Instrumentenkontrollsystem mit einer solchen Vorrichtung
US6958752B2 (en) 2001-01-08 2005-10-25 Sensable Technologies, Inc. Systems and methods for three-dimensional modeling
US6641480B2 (en) * 2001-01-29 2003-11-04 Microsoft Corporation Force feedback mechanism for gamepad device
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
US7031798B2 (en) 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US6587091B2 (en) 2001-04-23 2003-07-01 Michael Lawrence Serpa Stabilized tactile output mechanism for computer interface devices
US7202851B2 (en) 2001-05-04 2007-04-10 Immersion Medical Inc. Haptic interface for palpation simulation
IL143255A (en) 2001-05-20 2015-09-24 Simbionix Ltd Endoscopic ultrasonography simulation
KR20020093516A (ko) * 2001-06-09 2002-12-16 주식회사 엘지이아이 인터넷을 이용한 홈 네트워킹 통신 장치 및 방법
CA2448790C (en) 2001-06-12 2010-09-07 Pelikan Technologies, Inc. Electric lancet actuator
EP1404235A4 (de) 2001-06-12 2008-08-20 Pelikan Technologies Inc Verfahren und gerät für eine auf einer blutentnahmekartusche integrierte lanzettenvorrichtung
US7025774B2 (en) 2001-06-12 2006-04-11 Pelikan Technologies, Inc. Tissue penetration device
WO2002100251A2 (en) 2001-06-12 2002-12-19 Pelikan Technologies, Inc. Self optimizing lancing device with adaptation means to temporal variations in cutaneous properties
US7344507B2 (en) 2002-04-19 2008-03-18 Pelikan Technologies, Inc. Method and apparatus for lancet actuation
US9795747B2 (en) 2010-06-02 2017-10-24 Sanofi-Aventis Deutschland Gmbh Methods and apparatus for lancet actuation
US9427532B2 (en) 2001-06-12 2016-08-30 Sanofi-Aventis Deutschland Gmbh Tissue penetration device
US8337419B2 (en) 2002-04-19 2012-12-25 Sanofi-Aventis Deutschland Gmbh Tissue penetration device
US9226699B2 (en) 2002-04-19 2016-01-05 Sanofi-Aventis Deutschland Gmbh Body fluid sampling module with a continuous compression tissue interface surface
US7981056B2 (en) 2002-04-19 2011-07-19 Pelikan Technologies, Inc. Methods and apparatus for lancet actuation
JP2003000943A (ja) * 2001-06-19 2003-01-07 Sony Corp メモリカード、携帯型情報端末装置および情報処理方法、記録媒体、並びにプログラム
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
JP4216716B2 (ja) * 2001-08-09 2009-01-28 ウォーターズ・インヴェストメンツ・リミテッド クロマトグラフィー分離用多孔質有機・無機ハイブリッドモノリス状物質、およびその製造方法
JP3923774B2 (ja) * 2001-10-16 2007-06-06 アルプス電気株式会社 力覚付入力装置
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
JP3893940B2 (ja) * 2001-10-26 2007-03-14 ミツミ電機株式会社 コントローラ
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US7526422B1 (en) 2001-11-13 2009-04-28 Cypress Semiconductor Corporation System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US20030101288A1 (en) * 2001-11-27 2003-05-29 Joel Tague Tracking features of devices
US6851929B2 (en) * 2002-03-19 2005-02-08 Hamilton Sundstrand System for powering and controlling a device associated with a rotating component on aircraft
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US6904823B2 (en) * 2002-04-03 2005-06-14 Immersion Corporation Haptic shifting devices
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US7901362B2 (en) 2002-04-19 2011-03-08 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US7481776B2 (en) * 2002-04-19 2009-01-27 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US8579831B2 (en) 2002-04-19 2013-11-12 Sanofi-Aventis Deutschland Gmbh Method and apparatus for penetrating tissue
US9314194B2 (en) 2002-04-19 2016-04-19 Sanofi-Aventis Deutschland Gmbh Tissue penetration device
US7892185B2 (en) 2002-04-19 2011-02-22 Pelikan Technologies, Inc. Method and apparatus for body fluid sampling and analyte sensing
US7297122B2 (en) 2002-04-19 2007-11-20 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US7331931B2 (en) 2002-04-19 2008-02-19 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US8221334B2 (en) 2002-04-19 2012-07-17 Sanofi-Aventis Deutschland Gmbh Method and apparatus for penetrating tissue
US7674232B2 (en) 2002-04-19 2010-03-09 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US7909778B2 (en) 2002-04-19 2011-03-22 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US7232451B2 (en) 2002-04-19 2007-06-19 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US7547287B2 (en) 2002-04-19 2009-06-16 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US8360992B2 (en) 2002-04-19 2013-01-29 Sanofi-Aventis Deutschland Gmbh Method and apparatus for penetrating tissue
US7892183B2 (en) 2002-04-19 2011-02-22 Pelikan Technologies, Inc. Method and apparatus for body fluid sampling and analyte sensing
US7226461B2 (en) 2002-04-19 2007-06-05 Pelikan Technologies, Inc. Method and apparatus for a multi-use body fluid sampling device with sterility barrier release
US7229458B2 (en) 2002-04-19 2007-06-12 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US9248267B2 (en) 2002-04-19 2016-02-02 Sanofi-Aventis Deustchland Gmbh Tissue penetration device
US8267870B2 (en) 2002-04-19 2012-09-18 Sanofi-Aventis Deutschland Gmbh Method and apparatus for body fluid sampling with hybrid actuation
US9795334B2 (en) 2002-04-19 2017-10-24 Sanofi-Aventis Deutschland Gmbh Method and apparatus for penetrating tissue
US8784335B2 (en) 2002-04-19 2014-07-22 Sanofi-Aventis Deutschland Gmbh Body fluid sampling device with a capacitive sensor
US7491178B2 (en) * 2002-04-19 2009-02-17 Pelikan Technologies, Inc. Method and apparatus for penetrating tissue
US8702624B2 (en) 2006-09-29 2014-04-22 Sanofi-Aventis Deutschland Gmbh Analyte measurement device with a single shot actuator
US7976476B2 (en) 2002-04-19 2011-07-12 Pelikan Technologies, Inc. Device and method for variable speed lancet
US6671651B2 (en) * 2002-04-26 2003-12-30 Sensable Technologies, Inc. 3-D selection and manipulation with a multiple dimension haptic interface
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6760649B2 (en) 2002-05-22 2004-07-06 International Business Machines Corporation Thermal management of a laptop computer
US6687134B2 (en) * 2002-06-13 2004-02-03 Hewlett-Packard Development Company, L.P. Card extraction and separation system
US7786366B2 (en) * 2004-07-06 2010-08-31 Daniel William Moffatt Method and apparatus for universal adaptive music system
US8242344B2 (en) * 2002-06-26 2012-08-14 Fingersteps, Inc. Method and apparatus for composing and performing music
US7723603B2 (en) * 2002-06-26 2010-05-25 Fingersteps, Inc. Method and apparatus for composing and performing music
WO2004003720A1 (en) * 2002-06-26 2004-01-08 Fingersteps, Inc. Method and apparatus for composing and performing music
US6948398B2 (en) * 2002-07-22 2005-09-27 Deere & Company Joystick with enabling sensors
US6948948B2 (en) * 2002-07-30 2005-09-27 D&C Technology Co., Ltd. PC cartridge having enhanced front connecting structure
AU2003257309A1 (en) 2002-08-13 2004-02-25 Microbotics Corporation Microsurgical robot system
US20050227763A1 (en) * 2004-03-31 2005-10-13 Microsoft Corporation Game controller power management
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
GB2410995B (en) 2002-10-15 2007-05-09 Immersion Corp Products and processes for providing force sensations in a user interface
JP3895662B2 (ja) * 2002-10-24 2007-03-22 本田技研工業株式会社 操舵装置
US20040090418A1 (en) * 2002-11-12 2004-05-13 Bio-Rad Laboratories, Inc., A Corporation Of The State Of Delaware Joystick with axial disengagement switch
GB0227425D0 (en) * 2002-11-25 2002-12-31 Penny & Giles Controls Ltd Joystick controller
JP4200748B2 (ja) * 2002-11-29 2008-12-24 富士ゼロックス株式会社 触覚インターフェイス装置
US8830161B2 (en) 2002-12-08 2014-09-09 Immersion Corporation Methods and systems for providing a virtual touch haptic effect 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
GB2413416B8 (en) 2002-12-08 2006-09-07 Immersion Corp Haptic massaging in handheld communication devices
JP4057900B2 (ja) * 2002-12-09 2008-03-05 アルプス電気株式会社 力覚付与型入力装置
US8574895B2 (en) 2002-12-30 2013-11-05 Sanofi-Aventis Deutschland Gmbh Method and apparatus using optical techniques to measure analyte levels
US7339574B2 (en) * 2003-01-16 2008-03-04 Korean Advanced Institute Of Science And Technology Haptic mouse interface system for providing force and tactile feedbacks to user's fingers and arm
KR100525470B1 (ko) * 2003-02-14 2005-11-23 오의진 입력키가 손가락의 이동반경 내에 위치되어 있는입력장치와 이를 사용한 명령 입력방법
JP4160843B2 (ja) * 2003-02-24 2008-10-08 アルプス電気株式会社 力覚付与型入力装置
US7789741B1 (en) * 2003-02-28 2010-09-07 Microsoft Corporation Squad vs. squad video game
JP4268430B2 (ja) * 2003-03-19 2009-05-27 アルプス電気株式会社 力覚付与型入力装置
US9446319B2 (en) 2003-03-25 2016-09-20 Mq Gaming, Llc Interactive gaming toy
US7591783B2 (en) 2003-04-01 2009-09-22 Boston Scientific Scimed, Inc. Articulation joint for video endoscope
US20050245789A1 (en) 2003-04-01 2005-11-03 Boston Scientific Scimed, Inc. Fluid manifold for endoscope system
US20040199052A1 (en) 2003-04-01 2004-10-07 Scimed Life Systems, Inc. Endoscopic imaging system
US7578786B2 (en) 2003-04-01 2009-08-25 Boston Scientific Scimed, Inc. Video endoscope
US8118732B2 (en) 2003-04-01 2012-02-21 Boston Scientific Scimed, Inc. Force feedback control system for video endoscope
JP2004326163A (ja) * 2003-04-21 2004-11-18 Alps Electric Co Ltd ストークスイッチ
US20050003877A1 (en) * 2003-05-09 2005-01-06 Electronic Arts Inc. Systems and methods for playmaker control
US7385374B2 (en) * 2003-05-27 2008-06-10 William Marsh Rice University Adaptive power system
US20040242261A1 (en) * 2003-05-29 2004-12-02 General Dynamics Decision Systems, Inc. Software-defined radio
EP1628567B1 (de) 2003-05-30 2010-08-04 Pelikan Technologies Inc. Verfahren und vorrichtung zur injektion von flüssigkeit
EP1816545A3 (de) 2003-05-30 2007-08-15 Immersion Corporation System und Verfahren zur haptischen Rückkoppelung mit niedriger Leistung
EP1633235B1 (de) 2003-06-06 2014-05-21 Sanofi-Aventis Deutschland GmbH Gerät für die entnahme von körperflüssigkeiten und analyten-nachweis
US8992322B2 (en) * 2003-06-09 2015-03-31 Immersion Corporation Interactive gaming systems with haptic feedback
WO2006001797A1 (en) 2004-06-14 2006-01-05 Pelikan Technologies, Inc. Low pain penetrating
US9529762B2 (en) * 2003-06-30 2016-12-27 Becton, Dickinson And Company Self powered serial-to-serial or USB-to-serial cable with loopback and isolation
US7850456B2 (en) 2003-07-15 2010-12-14 Simbionix Ltd. Surgical simulation device, system and method
US20060063577A1 (en) * 2003-07-17 2006-03-23 Shuffle Master, Inc. System for monitoring the game of baccarat
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US8282576B2 (en) 2003-09-29 2012-10-09 Sanofi-Aventis Deutschland Gmbh Method and apparatus for an improved sample capture device
US20050076161A1 (en) * 2003-10-03 2005-04-07 Amro Albanna Input system and method
US9351680B2 (en) 2003-10-14 2016-05-31 Sanofi-Aventis Deutschland Gmbh Method and apparatus for a variable user interface
US7285932B2 (en) * 2003-10-28 2007-10-23 United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for loss of control inhibitor systems
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
US7411576B2 (en) 2003-10-30 2008-08-12 Sensable Technologies, Inc. Force reflecting haptic interface
US20050130604A1 (en) * 2003-11-26 2005-06-16 Nokia Corporation Electronic device having a physical configuration that is dependent upon its operational status
KR20050054731A (ko) * 2003-12-05 2005-06-10 한국전자통신연구원 햅틱 시뮬레이션 시스템 및 그 시스템에서의 실시간 촉감지원 방법
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
US7510477B2 (en) * 2003-12-11 2009-03-31 Argentar Eric J Control apparatus for use with a computer or video game system
US7982711B2 (en) * 2003-12-19 2011-07-19 Immersion Corporation Haptic profiling system and method
US7742036B2 (en) 2003-12-22 2010-06-22 Immersion Corporation System and method for controlling haptic devices having multiple operational modes
US7791588B2 (en) * 2003-12-22 2010-09-07 Immersion Corporation System and method for mapping instructions associated with haptic feedback
US7667687B2 (en) * 2003-12-30 2010-02-23 Immersion Corporation Resistive and hybrid control schemes for haptic feedback interface devices
US8668656B2 (en) 2003-12-31 2014-03-11 Sanofi-Aventis Deutschland Gmbh Method and apparatus for improving fluidic flow and sample capture
US7822454B1 (en) 2005-01-03 2010-10-26 Pelikan Technologies, Inc. Fluid sampling device with improved analyte detecting member configuration
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
US20050174337A1 (en) * 2004-02-11 2005-08-11 Nielsen Paul S. Electronic handheld drawing and gaming system using television monitor
US7204168B2 (en) * 2004-02-25 2007-04-17 The University Of Manitoba Hand controller and wrist device
US7505030B2 (en) * 2004-03-18 2009-03-17 Immersion Medical, Inc. Medical device and procedure simulation
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
DE102004016121B4 (de) * 2004-04-01 2008-11-27 Siemens Ag Bedienvorrichtung zum Verfahren mindestens einer Maschinenachse einer Werkzeug- oder Produktionsmaschine
US20050237305A1 (en) * 2004-04-27 2005-10-27 Udo Klein Tactile feedback through a computer keyboard
US20050237306A1 (en) * 2004-04-27 2005-10-27 Udo Klein Tactile feedback through a computer keyboard key
US20060084504A1 (en) * 2004-04-30 2006-04-20 Chan Andy K Wireless communication systems
US7499290B1 (en) * 2004-05-19 2009-03-03 Mississippi State University Power conversion
US8828203B2 (en) 2004-05-20 2014-09-09 Sanofi-Aventis Deutschland Gmbh Printable hydrogels for biosensors
US20050264528A1 (en) * 2004-05-26 2005-12-01 Burry Stephen W Low profile pointing device with tactile feedback
US7522152B2 (en) * 2004-05-27 2009-04-21 Immersion Corporation Products and processes for providing haptic feedback in resistive interface devices
US9775553B2 (en) 2004-06-03 2017-10-03 Sanofi-Aventis Deutschland Gmbh Method and apparatus for a fluid sampling device
WO2005120365A1 (en) 2004-06-03 2005-12-22 Pelikan Technologies, Inc. Method and apparatus for a fluid sampling device
WO2006004894A2 (en) 2004-06-29 2006-01-12 Sensable Technologies, Inc. Apparatus and methods for haptic rendering using data in a graphics pipeline
US7318130B2 (en) * 2004-06-29 2008-01-08 Intel Corporation System and method for thermal throttling of memory modules
CA2578653A1 (en) 2004-07-29 2006-02-09 Kevin Ferguson A human movement measurement system
US7198137B2 (en) * 2004-07-29 2007-04-03 Immersion Corporation Systems and methods for providing haptic feedback with position sensing
US8441433B2 (en) * 2004-08-11 2013-05-14 Immersion Corporation Systems and methods for providing friction in a haptic feedback device
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US9495009B2 (en) * 2004-08-20 2016-11-15 Immersion Corporation Systems and methods for providing haptic effects
US8013847B2 (en) * 2004-08-24 2011-09-06 Immersion Corporation Magnetic actuator for providing haptic feedback
US8803796B2 (en) 2004-08-26 2014-08-12 Immersion Corporation Products and processes for providing haptic feedback in a user interface
US8002089B2 (en) * 2004-09-10 2011-08-23 Immersion Corporation Systems and methods for providing a haptic device
US9046922B2 (en) * 2004-09-20 2015-06-02 Immersion Corporation Products and processes for providing multimodal feedback in a user interface device
US7764268B2 (en) * 2004-09-24 2010-07-27 Immersion Corporation Systems and methods for providing a haptic device
WO2006039267A2 (en) 2004-09-30 2006-04-13 Boston Scientific Scimed, Inc. Multi-functional endoscopic system for use in electrosurgical applications
US8083671B2 (en) 2004-09-30 2011-12-27 Boston Scientific Scimed, Inc. Fluid delivery system for use with an endoscope
WO2006039511A2 (en) 2004-09-30 2006-04-13 Boston Scientific Scimed, Inc. System and method of obstruction removal
US7479106B2 (en) 2004-09-30 2009-01-20 Boston Scientific Scimed, Inc. Automated control of irrigation and aspiration in a single-use endoscope
US7241263B2 (en) 2004-09-30 2007-07-10 Scimed Life Systems, Inc. Selectively rotatable shaft coupler
US8199187B2 (en) 2004-09-30 2012-06-12 Boston Scientific Scimed, Inc. Adapter for use with digital imaging medical device
US8232969B2 (en) 2004-10-08 2012-07-31 Immersion Corporation Haptic feedback for button and scrolling action simulation in touch input devices
US7159500B2 (en) * 2004-10-12 2007-01-09 The Telerobotics Corporation Public network weapon system and method
ITPI20040084A1 (it) * 2004-11-18 2005-02-18 Massimo Bergamasco Interfaccia aptica portabile
US8652831B2 (en) 2004-12-30 2014-02-18 Sanofi-Aventis Deutschland Gmbh Method and apparatus for analyte measurement test time
EP1834127A4 (de) * 2005-01-04 2012-08-15 Coactive Drive Corp Vibrationsvorrichtung
US7864159B2 (en) 2005-01-12 2011-01-04 Thinkoptics, Inc. Handheld vision based absolute pointing system
US7699260B2 (en) * 2005-01-14 2010-04-20 Hughey Electricopter Corporation Vertical takeoff and landing aircraft using a redundant array of independent rotors
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8257302B2 (en) * 2005-05-10 2012-09-04 Corindus, Inc. User interface for remote control catheterization
US7846107B2 (en) 2005-05-13 2010-12-07 Boston Scientific Scimed, Inc. Endoscopic apparatus with integrated multiple biopsy device
US8097003B2 (en) 2005-05-13 2012-01-17 Boston Scientific Scimed, Inc. Endoscopic apparatus with integrated variceal ligation device
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
EP2380640A3 (de) 2005-06-27 2011-12-28 Coactive Drive Corporation Synchronisierte Vibrationsvorrichtung für haptisches Feedback
US11203041B2 (en) 2005-06-27 2021-12-21 General Vibration Corporation Haptic game controller with dual linear vibration actuators
US9459632B2 (en) 2005-06-27 2016-10-04 Coactive Drive Corporation Synchronized array of vibration actuators in a network topology
US9764357B2 (en) 2005-06-27 2017-09-19 General Vibration Corporation Synchronized array of vibration actuators in an integrated module
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US8870655B2 (en) 2005-08-24 2014-10-28 Nintendo Co., Ltd. Wireless game controllers
US8784336B2 (en) 2005-08-24 2014-07-22 C. R. Bard, Inc. Stylet apparatuses and methods of manufacture
JP4262726B2 (ja) 2005-08-24 2009-05-13 任天堂株式会社 ゲームコントローラおよびゲームシステム
US8052597B2 (en) 2005-08-30 2011-11-08 Boston Scientific Scimed, Inc. Method for forming an endoscope articulation joint
US7518745B2 (en) * 2005-09-28 2009-04-14 Xerox Corporation Imaging system with haptic interface
WO2007057390A2 (en) * 2005-11-16 2007-05-24 Abb Ab Method and device for controlling motion of an industrial robot with a position switch
US7096731B1 (en) * 2005-11-29 2006-08-29 Mike Chien Ming Lee Finger gripping force measuring device
US20070122892A1 (en) * 2005-11-30 2007-05-31 Christian Andersson Process for producing succinic acid from sucrose
US7554027B2 (en) * 2005-12-05 2009-06-30 Daniel William Moffatt Method to playback multiple musical instrument digital interface (MIDI) and audio sound files
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US7967759B2 (en) 2006-01-19 2011-06-28 Boston Scientific Scimed, Inc. Endoscopic system with integrated patient respiratory status indicator
US20070188453A1 (en) * 2006-02-15 2007-08-16 Logitech Europe S.A. Input device roller with hybrid magnetic ratchet system
US20070188454A1 (en) * 2006-02-15 2007-08-16 Logitech Europe S.A. Magnetic ratchet for input device roller
US20070193442A1 (en) * 2006-02-17 2007-08-23 Mccoy Richard W Jr Variable Mode Manipulator and Drive System
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8888684B2 (en) 2006-03-27 2014-11-18 Boston Scientific Scimed, Inc. Medical devices with local drug delivery capabilities
JP2007265238A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd シミュレーション装置及びシミュレーション方法
US20070232397A1 (en) * 2006-04-03 2007-10-04 Arnon Katz Remote slot machine controller
US8202265B2 (en) 2006-04-20 2012-06-19 Boston Scientific Scimed, Inc. Multiple lumen assembly for use in endoscopes or other medical devices
US7955255B2 (en) 2006-04-20 2011-06-07 Boston Scientific Scimed, Inc. Imaging assembly with transparent distal cap
DE202006007164U1 (de) * 2006-05-03 2007-09-20 Mann+Hummel Gmbh Einrichtung zur Aufnahme und Transport von mit Späne verunreinigtem Kühlschmiermittel
WO2007136739A2 (en) * 2006-05-19 2007-11-29 Mako Surgical Corp. A method and apparatus for controlling a haptic device
WO2007138645A1 (ja) * 2006-05-25 2007-12-06 Mitsubishi Electric Corporation 車両用補助電源装置
US20070296571A1 (en) * 2006-06-13 2007-12-27 Kolen Paul T Motion sensing in a wireless rf network
US8545323B2 (en) * 2006-06-30 2013-10-01 Logitech Europe S.A. Video game controller with compact and efficient force feedback mechanism
US8913003B2 (en) 2006-07-17 2014-12-16 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer using a projection marker system
EP2052309A1 (de) * 2006-08-07 2009-04-29 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur überwachung der benutzeraktivität an einem computerbildschirm zur stimulierung der beweglichkeit
DE102006041056C5 (de) * 2006-09-01 2015-02-19 Siemens Aktiengesellschaft Drehgeber zum Anschluss weiterer Sensoren sowie elektrische Maschine mit einem derartigen Drehgeber
US20080062121A1 (en) * 2006-09-08 2008-03-13 Aten Interational Co., Ltd. Shuttle control system for controlling kvm switch and method thereof
JP5294442B2 (ja) 2006-09-13 2013-09-18 任天堂株式会社 ゲーム装置およびゲームプログラム
US20080071424A1 (en) * 2006-09-18 2008-03-20 Protap Design, Llc Programmable positional liquid flow sensing device
US7794407B2 (en) 2006-10-23 2010-09-14 Bard Access Systems, Inc. Method of locating the tip of a central venous catheter
US8388546B2 (en) 2006-10-23 2013-03-05 Bard Access Systems, Inc. Method of locating the tip of a central venous catheter
US7750593B2 (en) * 2006-10-26 2010-07-06 Honeywell International Inc. Active human-machine interface system without a force sensor
US7759894B2 (en) * 2006-10-26 2010-07-20 Honeywell International Inc. Cogless motor driven active user interface haptic feedback system
US7843426B2 (en) * 2006-11-15 2010-11-30 Honeywell International Inc. Active human-machine interface system including interposed sector gears
US8543338B2 (en) 2007-01-16 2013-09-24 Simbionix Ltd. System and method for performing computerized simulations for image-guided procedures using a patient specific model
WO2008087629A2 (en) 2007-01-16 2008-07-24 Simbionix Ltd. Preoperative surgical simulation
EP2502552B1 (de) 2007-02-27 2013-07-31 Carnegie Mellon University Vorrichtung mit mehreren Verbindungen und Verstärkungselement
US20080218307A1 (en) * 2007-03-07 2008-09-11 Optimal Licensing Corporation Anticipatory utility control device
US7497273B2 (en) * 2007-03-07 2009-03-03 Optimal Innovations, Inc. Plug and play utility control modules
US20080218372A1 (en) * 2007-03-07 2008-09-11 Optimal Licensing Corporation Light switch used as a communication device
US20090027196A1 (en) * 2007-03-07 2009-01-29 Roland Schoettle System and method for premises monitoring and control using self-learning detection devices
US20080218319A1 (en) * 2007-03-07 2008-09-11 Optimal Licensing Corporation Systems and methods for linking utility control devices
US20080218338A1 (en) * 2007-03-07 2008-09-11 Optimal Licensing Corporating System and method for premises monitoring using weight detection
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9176598B2 (en) 2007-05-08 2015-11-03 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer with improved performance
US8604709B2 (en) 2007-07-31 2013-12-10 Lsi Industries, Inc. Methods and systems for controlling electrical power to DC loads
US8903577B2 (en) 2009-10-30 2014-12-02 Lsi Industries, Inc. Traction system for electrically powered vehicles
US7598683B1 (en) 2007-07-31 2009-10-06 Lsi Industries, Inc. Control of light intensity using pulses of a fixed duration and frequency
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8108098B2 (en) * 2007-09-12 2012-01-31 International Business Machines Corporation Control appropriateness illumination for corrective response
US8084969B2 (en) 2007-10-01 2011-12-27 Allegro Microsystems, Inc. Hall-effect based linear motor controller
US20090102679A1 (en) * 2007-10-19 2009-04-23 Optimal Innovations Inc. Infrastructure device with removable face plate for remote operation
US20090101386A1 (en) * 2007-10-19 2009-04-23 Optimal Innovations Inc. Size unconstrained faceplate display for use with infrastructure device
US10751509B2 (en) 2007-11-26 2020-08-25 C. R. Bard, Inc. Iconic representations for guidance of an indwelling medical device
US10449330B2 (en) 2007-11-26 2019-10-22 C. R. Bard, Inc. Magnetic element-equipped needle assemblies
US8849382B2 (en) 2007-11-26 2014-09-30 C. R. Bard, Inc. Apparatus and display methods relating to intravascular placement of a catheter
US10524691B2 (en) 2007-11-26 2020-01-07 C. R. Bard, Inc. Needle assembly including an aligned magnetic element
US9456766B2 (en) 2007-11-26 2016-10-04 C. R. Bard, Inc. Apparatus for use with needle insertion guidance system
US8781555B2 (en) 2007-11-26 2014-07-15 C. R. Bard, Inc. System for placement of a catheter including a signal-generating stylet
WO2009070616A2 (en) 2007-11-26 2009-06-04 C. R. Bard, Inc. Integrated system for intravascular placement of a catheter
US9521961B2 (en) 2007-11-26 2016-12-20 C. R. Bard, Inc. Systems and methods for guiding a medical instrument
US9649048B2 (en) 2007-11-26 2017-05-16 C. R. Bard, Inc. Systems and methods for breaching a sterile field for intravascular placement of a catheter
US8478382B2 (en) 2008-02-11 2013-07-02 C. R. Bard, Inc. Systems and methods for positioning a catheter
TW200941434A (en) * 2008-03-19 2009-10-01 Coretronic Corp Display apparatus and power control circuit thereof
WO2009120992A2 (en) 2008-03-27 2009-10-01 St. Jude Medical, Arrial Fibrillation Division Inc. Robotic castheter system input device
US8317744B2 (en) * 2008-03-27 2012-11-27 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter manipulator assembly
US9241768B2 (en) * 2008-03-27 2016-01-26 St. Jude Medical, Atrial Fibrillation Division, Inc. Intelligent input device controller for a robotic catheter system
US9161817B2 (en) 2008-03-27 2015-10-20 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter system
US20090248042A1 (en) * 2008-03-27 2009-10-01 Kirschenman Mark B Model catheter input device
US8317745B2 (en) * 2008-03-27 2012-11-27 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter rotatable device cartridge
WO2009120982A2 (en) 2008-03-27 2009-10-01 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter system with dynamic response
US8684962B2 (en) * 2008-03-27 2014-04-01 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter device cartridge
US8343096B2 (en) * 2008-03-27 2013-01-01 St. Jude Medical, Atrial Fibrillation Division, Inc. Robotic catheter system
WO2009126900A1 (en) 2008-04-11 2009-10-15 Pelikan Technologies, Inc. Method and apparatus for analyte detecting device
US8593403B2 (en) * 2008-06-13 2013-11-26 Sprintek Corporation Pointing stick device
CN101620439A (zh) * 2008-06-30 2010-01-06 鸿富锦精密工业(深圳)有限公司 马达控制系统
US8288983B2 (en) * 2008-07-10 2012-10-16 Lockheed Martin Corporation Optical telemetry system and method for electro-mechanical switches
US8120228B2 (en) * 2008-07-15 2012-02-21 Hamilton Sundstrand Corporation Slip ring assembly
ES2525525T3 (es) 2008-08-22 2014-12-26 C.R. Bard, Inc. Conjunto de catéter que incluye conjuntos de sensor de ECG y magnético
WO2010028371A1 (en) 2008-09-05 2010-03-11 Zubiate, Brett Multi-linked endoscopic device with spherical distal assembly
US8437833B2 (en) 2008-10-07 2013-05-07 Bard Access Systems, Inc. Percutaneous magnetic gastrostomy
US8466879B2 (en) * 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US8690575B1 (en) 2008-11-03 2014-04-08 ACME Worldwide Enterprises, Inc. Apparatus and method for a weapon simulator
US20100167820A1 (en) * 2008-12-29 2010-07-01 Houssam Barakat Human interface device
JP5773884B2 (ja) * 2008-12-31 2015-09-02 セント・ジュード・メディカル・エイトリアル・フィブリレーション・ディヴィジョン・インコーポレーテッド ロボットカテーテルシステム入力装置
US8506369B2 (en) * 2009-01-06 2013-08-13 Immersion Corporation Programmable game-based haptic enabled gun controller
US9375169B2 (en) 2009-01-30 2016-06-28 Sanofi-Aventis Deutschland Gmbh Cam drive for managing disposable penetrating member actions with a single motor and motor and control system
US9874935B2 (en) 2009-03-12 2018-01-23 Immersion Corporation Systems and methods for a texture engine
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
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
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
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US9532724B2 (en) 2009-06-12 2017-01-03 Bard Access Systems, Inc. Apparatus and method for catheter navigation using endovascular energy mapping
KR101773207B1 (ko) 2009-06-12 2017-08-31 바드 액세스 시스템즈, 인크. 카테터 팁 배치 방법
US9737796B2 (en) 2009-07-08 2017-08-22 Steelseries Aps Apparatus and method for managing operations of accessories in multi-dimensions
US8719714B2 (en) 2009-07-08 2014-05-06 Steelseries Aps Apparatus and method for managing operations of accessories
US9439736B2 (en) 2009-07-22 2016-09-13 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for controlling a remote medical device guidance system in three-dimensions using gestures
US9330497B2 (en) 2011-08-12 2016-05-03 St. Jude Medical, Atrial Fibrillation Division, Inc. User interface devices for electrophysiology lab diagnostic and therapeutic equipment
WO2011019760A2 (en) 2009-08-10 2011-02-17 Romedex International Srl Devices and methods for endovascular electrography
CN102665541B (zh) 2009-09-29 2016-01-13 C·R·巴德股份有限公司 与用于导管的血管内放置的设备一起使用的探针
WO2011044421A1 (en) 2009-10-08 2011-04-14 C. R. Bard, Inc. Spacers for use with an ultrasound probe
SI23206A (sl) * 2009-11-06 2011-05-31 Univerza V Ljubljani Naprava za vadbo mišično skeletno živčnega sistema
TWI363273B (en) * 2009-11-06 2012-05-01 Transcend Information Inc Portable device having plug detector and control method of detecting the portable device
CN102053941B (zh) * 2009-11-06 2012-07-04 创见资讯股份有限公司 具有往复式检测端子的可携式装置及其检测控制方法
ES2811107T3 (es) 2010-02-02 2021-03-10 Bard Inc C R Aparato y método para conducción de catéter y localización de punta
JP2011170616A (ja) * 2010-02-18 2011-09-01 On Semiconductor Trading Ltd 静電容量型タッチセンサ
CN102906623A (zh) 2010-02-28 2013-01-30 奥斯特豪特集团有限公司 交互式头戴目镜上的本地广告内容
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US20120194553A1 (en) * 2010-02-28 2012-08-02 Osterhout Group, Inc. Ar glasses with sensor and user action based control of external devices with feedback
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
EP2542296A4 (de) 2010-03-31 2014-11-26 St Jude Medical Atrial Fibrill Intuitive benutzeroberflächensteuerung zur fernnavigation eines katheters sowie 3d-kartierungs- und visualisierungssysteme
US8965476B2 (en) 2010-04-16 2015-02-24 Sanofi-Aventis Deutschland Gmbh Tissue penetration device
MX2012013858A (es) 2010-05-28 2013-04-08 Bard Inc C R Sistema de guia de insercion para agujas y componentes medicos.
US9132352B1 (en) 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
TW201203026A (en) * 2010-07-13 2012-01-16 Weistech Technology Co Ltd Revolving control device with a displacement sensor without contact points
CA2806353A1 (en) 2010-08-09 2012-02-16 C.R. Bard Inc. Support and cover structures for an ultrasound probe head
EP2605699A4 (de) 2010-08-20 2015-01-07 Bard Inc C R Bestätigung einer ekg-gestützten katheterspitzenplatzierung
US8801693B2 (en) 2010-10-29 2014-08-12 C. R. Bard, Inc. Bioimpedance-assisted placement of a medical device
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
US8918214B2 (en) 2011-01-19 2014-12-23 Harris Corporation Telematic interface with directional translation
US8918215B2 (en) * 2011-01-19 2014-12-23 Harris Corporation Telematic interface with control signal scaling based on force sensor feedback
KR20140112386A (ko) 2011-03-17 2014-09-23 코액티브 드라이브 코포레이션 다수의 동기화 진동 액츄에이터로부터의 비대칭적이고 일반적인 진동 파형
US9205555B2 (en) 2011-03-22 2015-12-08 Harris Corporation Manipulator joint-limit handling algorithm
US8694134B2 (en) 2011-05-05 2014-04-08 Harris Corporation Remote control interface
US8639386B2 (en) 2011-05-20 2014-01-28 Harris Corporation Haptic device for manipulator and vehicle control
JP6309447B2 (ja) * 2011-05-31 2018-04-11 インテュイティブ サージカル オペレーションズ, インコーポレイテッド ロボットによる手術用器具のエンドエフェクタの積極的な制御
DE112011105306T5 (de) * 2011-06-03 2014-03-20 Kabushiki Kaisha Yaskawa Denki Mehrachsenmotorantriebssystem und Mehrachsenmotorantriebsvorrichtung
KR102057430B1 (ko) 2011-07-06 2019-12-18 씨. 알. 바드, 인크. 삽입 유도 시스템을 위한 바늘 길이 결정 및 교정
USD724745S1 (en) 2011-08-09 2015-03-17 C. R. Bard, Inc. Cap for an ultrasound probe
USD699359S1 (en) 2011-08-09 2014-02-11 C. R. Bard, Inc. Ultrasound probe head
US9026250B2 (en) 2011-08-17 2015-05-05 Harris Corporation Haptic manipulation system for wheelchairs
US9925034B2 (en) * 2011-09-30 2018-03-27 Verily Life Sciences Llc Stabilizing unintentional muscle movements
US10368669B2 (en) * 2011-09-30 2019-08-06 Verily Life Sciences Llc System and method for stabilizing unintentional muscle movements
US8996244B2 (en) 2011-10-06 2015-03-31 Harris Corporation Improvised explosive device defeat 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
CN107693121B (zh) 2011-10-21 2021-12-31 直观外科手术操作公司 用于机器人外科手术器械末端执行器的夹持力控制
WO2013070775A1 (en) 2011-11-07 2013-05-16 C.R. Bard, Inc Ruggedized ultrasound hydrogel insert
US9582178B2 (en) 2011-11-07 2017-02-28 Immersion Corporation Systems and methods for multi-pressure interaction on touch-sensitive surfaces
WO2013158689A2 (en) * 2012-04-16 2013-10-24 Cornell University Digitally controlled musical instrument
CN104837413B (zh) 2012-06-15 2018-09-11 C·R·巴德股份有限公司 检测超声探测器上可移除帽的装置及方法
US9226796B2 (en) 2012-08-03 2016-01-05 Stryker Corporation Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path
US9820818B2 (en) 2012-08-03 2017-11-21 Stryker Corporation System and method for controlling a surgical manipulator based on implant parameters
WO2014022786A2 (en) 2012-08-03 2014-02-06 Stryker Corporation Systems and methods for robotic surgery
US9056244B2 (en) 2012-09-12 2015-06-16 Wms Gaming Inc. Gaming apparatus incorporating targeted haptic feedback
US20170277282A1 (en) * 2012-09-14 2017-09-28 Widevantage Inc. Input device for transmitting user input
JP6171016B2 (ja) * 2012-09-14 2017-07-26 ワイドヴァンテージ インク 磁場センサを用いて使用者入力を判断する電気装置
US8954195B2 (en) 2012-11-09 2015-02-10 Harris Corporation Hybrid gesture control haptic system
KR102079945B1 (ko) * 2012-11-22 2020-02-21 삼성전자주식회사 수술 로봇 및 수술 로봇 제어 방법
US8965620B2 (en) 2013-02-07 2015-02-24 Harris Corporation Systems and methods for controlling movement of unmanned vehicles
US9687730B2 (en) 2013-03-15 2017-06-27 Steelseries Aps Gaming device with independent gesture-sensitive areas
US9423874B2 (en) 2013-03-15 2016-08-23 Steelseries Aps Gaming accessory with sensory feedback device
US9409087B2 (en) 2013-03-15 2016-08-09 Steelseries Aps Method and apparatus for processing gestures
US9415299B2 (en) 2013-03-15 2016-08-16 Steelseries Aps Gaming device
US9557830B2 (en) * 2013-03-15 2017-01-31 Immersion Corporation Programmable haptic peripheral
US9604147B2 (en) * 2013-03-15 2017-03-28 Steelseries Aps Method and apparatus for managing use of an accessory
US9542347B2 (en) 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
DE102013219155A1 (de) * 2013-09-24 2015-03-26 Siemens Aktiengesellschaft Verfahren zur Steuerung von Bewegungen eines medizinischen Gerätes, Steuergerät hierfür sowie medizinisches Gerät
US9498710B2 (en) * 2013-11-11 2016-11-22 Pixart Imaging Inc. 3D feedback mouse sensor
US9164587B2 (en) 2013-11-14 2015-10-20 Immersion Corporation Haptic spatialization system
US9619029B2 (en) 2013-11-14 2017-04-11 Immersion Corporation Haptic trigger control system
US9128507B2 (en) 2013-12-30 2015-09-08 Harris Corporation Compact haptic interface
US9839372B2 (en) 2014-02-06 2017-12-12 C. R. Bard, Inc. Systems and methods for guidance and placement of an intravascular device
TWI548274B (zh) * 2014-02-24 2016-09-01 緯創資通股份有限公司 手持式電子裝置及以手持式電子裝置進行拍照之方法
US10600596B2 (en) 2014-04-21 2020-03-24 Verily Life Sciences Llc Adapter to attach implements to an actively controlled human tremor cancellation platform
JP2015231098A (ja) * 2014-06-04 2015-12-21 ソニー株式会社 振動装置、および振動方法
US9588586B2 (en) * 2014-06-09 2017-03-07 Immersion Corporation Programmable haptic devices and methods for modifying haptic strength based on perspective and/or proximity
US9838009B2 (en) 2014-08-27 2017-12-05 Continental Automotive Systems, Inc. Switch with user feedback
US9174134B1 (en) * 2014-11-12 2015-11-03 Immersion Corporation Peripheral device with haptic diminishment prevention component
US10185396B2 (en) 2014-11-12 2019-01-22 Immersion Corporation Haptic trigger modification system
US9592608B1 (en) * 2014-12-15 2017-03-14 X Development Llc Methods and systems for providing feedback during teach mode
US10973584B2 (en) 2015-01-19 2021-04-13 Bard Access Systems, Inc. Device and method for vascular access
US10271770B2 (en) 2015-02-20 2019-04-30 Verily Life Sciences Llc Measurement and collection of human tremors through a handheld tool
US9943430B2 (en) 2015-03-25 2018-04-17 Verily Life Sciences Llc Handheld tool for leveling uncoordinated motion
US10613629B2 (en) 2015-03-27 2020-04-07 Chad Laurendeau System and method for force feedback interface devices
US10349890B2 (en) 2015-06-26 2019-07-16 C. R. Bard, Inc. Connector interface for ECG-based catheter positioning system
US11191528B2 (en) * 2015-07-09 2021-12-07 DePuy Synthes Products, Inc. External hand control for surgical power tool
DE102015113110B4 (de) * 2015-08-10 2019-03-14 MAQUET GmbH Ansteuervorrichtung mindestens einer Antriebseinrichtung eines Operationstisches und Verfahren zum Ansteuern
CN108135555B (zh) * 2015-10-06 2021-09-14 苏尔吉维索公司 用于控制机动c形臂的运动的方法和设备
JP6577326B2 (ja) * 2015-10-16 2019-09-18 ファナック株式会社 人と協働して物体を運搬するロボットを制御するロボット制御装置、ロボットシステム、およびその方法
US9824841B2 (en) 2015-11-17 2017-11-21 Rockwell Automation Technologies, Inc. Safety switch and associated methods
US10072997B2 (en) 2015-11-17 2018-09-11 Rockwell Automation Technologies, Inc. Safety switch with imbalance test
DE112016005568B4 (de) * 2016-01-04 2021-10-21 Hitachi Automotive Systems, Ltd. Leistungsleitungs-kommunikationsvorrichtung und elektronische steuervorrichtung, die eine leistungsleitungs-kommunikationsvorrichtung enthält
US9919422B1 (en) 2016-01-06 2018-03-20 X Development Llc Methods and systems to provide mechanical feedback during movement of a robotic system
US11000207B2 (en) 2016-01-29 2021-05-11 C. R. Bard, Inc. Multiple coil system for tracking a medical device
US10198074B2 (en) * 2016-02-18 2019-02-05 Immersion Corporation Haptically-enabled modular peripheral device assembly
US10245112B2 (en) * 2016-06-27 2019-04-02 Corindus, Inc. Interlocking system and method for joysticks in a catheter procedure system
EP3554414A1 (de) 2016-12-16 2019-10-23 MAKO Surgical Corp. Techniken zur modifizierung der werkzeugbedienung in einem chirurgischen robotischen system auf basis des vergleichs von gegenwärtigen und befohlenen zuständen des werkzeugs in bezug auf eine operationsstelle
WO2018140839A1 (en) * 2017-01-27 2018-08-02 Ohuku Llc Method and system for simulating, predicting, interpreting, comparing, or visualizing complex data
EP3582708A4 (de) * 2017-02-15 2020-12-23 Covidien LP System und vorrichtung zur quetschverhinderung für medizinische roboteranwendungen
US10420663B2 (en) 2017-05-01 2019-09-24 Verily Life Sciences Llc Handheld articulated user-assistive device with behavior control modes
CN107231144A (zh) * 2017-05-08 2017-10-03 西门子公司 伺服驱动器
CN108874243B (zh) * 2017-05-11 2021-11-12 京东方科技集团股份有限公司 触控面板、电子装置及其驱动方法
DE102017208833B4 (de) * 2017-05-24 2018-12-13 Wago Verwaltungsgesellschaft Mbh Moduleinheit
FR3072942B1 (fr) * 2017-10-31 2019-11-22 Safran Electronics & Defense Dispositif de commande de vol d’un aeronef
FR3085522B1 (fr) * 2018-09-03 2020-08-14 Safran Electronics & Defense Dispositif de mesure connecte pour un aeronef
US10611391B1 (en) 2018-10-05 2020-04-07 Corindus, Inc. Mobile support and storage system for a medical device
US10992079B2 (en) 2018-10-16 2021-04-27 Bard Access Systems, Inc. Safety-equipped connection systems and methods thereof for establishing electrical connections
US11027194B2 (en) * 2019-03-01 2021-06-08 Sony Interactive Entertainment Inc. Force feedback to improve gameplay
CN114340711A (zh) 2019-07-15 2022-04-12 科林达斯公司 用于使用多个细长医疗装置的机器人介入手术的控制站的系统和方法
US11277084B2 (en) * 2020-07-14 2022-03-15 Qualcomm Incorporated Driver for haptics and camera voice coil motor applications
CN113181628B (zh) * 2021-05-12 2023-03-28 歌尔科技有限公司 手柄及其按键反馈力的矫正方法、控制装置及存储介质
US12035989B2 (en) 2021-08-02 2024-07-16 Corindus, Inc. Systems and methods for a control station for robotic interventional procedures using a plurality of elongated medical devices
CN113842634B (zh) * 2021-09-27 2024-02-27 歌尔科技有限公司 一种扳机按键的力反馈控制方法、装置、电子产品及介质
US20230218985A1 (en) * 2022-01-13 2023-07-13 Dell Products L.P. Contextual adjustment of input device resistance

Family Cites Families (265)

* 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
US2972140A (en) * 1958-09-23 1961-02-14 Hirsch Joseph Apparatus and method for communication through the sense of touch
GB958325A (en) 1962-07-08 1964-05-21 Communications Patents Ltd Improvements in or relating to ground-based flight training or simulating apparatus
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
US3623064A (en) 1968-10-11 1971-11-23 Bell & Howell Co Paging receiver having cycling eccentric mass
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
US3795150A (en) * 1972-12-13 1974-03-05 Us Air Force System for rapidly positioning gimbaled objects
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
US3923166A (en) 1973-10-11 1975-12-02 Nasa Remote manipulator 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
US3911416A (en) 1974-08-05 1975-10-07 Motorola Inc Silent call pager
US3978392A (en) * 1975-05-08 1976-08-31 General Signal Corporation Energy transfer circuit
US4125800A (en) * 1975-09-02 1978-11-14 Contraves Gorez Corporation Power controller with a modular power output
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
US4127752A (en) 1977-10-13 1978-11-28 Sheldahl, Inc. Tactile touch switch panel
US4216467A (en) * 1977-12-22 1980-08-05 Westinghouse Electric Corp. Hand controller
US4262549A (en) * 1978-05-10 1981-04-21 Schwellenbach Donald D Variable mechanical vibrator
US4236325A (en) 1978-12-26 1980-12-02 The Singer Company Simulator control loading inertia compensator
US4464117A (en) 1980-08-27 1984-08-07 Dr. Ing. Reiner Foerst Gmbh Driving simulator apparatus
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.
US4333070A (en) * 1981-02-06 1982-06-01 Barnes Robert W Motor vehicle fuel-waste indicator
US4367373A (en) * 1981-04-07 1983-01-04 The United States Of America As Represented By The Secretary Of The Air Force Two-axis electromechanical controller
JPS57169643A (en) * 1981-04-13 1982-10-19 Yamato Scale Co Ltd Load cell for multiple components of force
US4382217A (en) * 1981-05-15 1983-05-03 Gould Inc. Starting control circuit for an A.C. motor
US4599070A (en) 1981-07-29 1986-07-08 Control Interface Company Limited Aircraft simulator and simulated control system therefor
US4436188A (en) * 1981-11-18 1984-03-13 Jones Cecil R Controlled motion apparatus
EP0085518B1 (de) 1982-01-22 1989-08-16 British Aerospace Public Limited Company Steuerungsgerät
US4484191A (en) 1982-06-14 1984-11-20 Vavra George S Tactile signaling systems for aircraft
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
DE3366764D1 (en) * 1983-01-28 1986-11-13 Ibm A stylus or pen for interactive use with a graphics input tablet
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
US4670851A (en) * 1984-01-09 1987-06-02 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
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
US4676002A (en) * 1984-06-25 1987-06-30 Slocum Alexander H Mechanisms to determine position and orientation in space
US4632241A (en) * 1984-10-04 1986-12-30 F. Schumacher & Co. Portable display bag with support means
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
US4935728A (en) 1985-01-02 1990-06-19 Altra Corporation 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
US4891764A (en) 1985-12-06 1990-01-02 Tensor Development Inc. Program controlled force measurement and control system
US4934694A (en) 1985-12-06 1990-06-19 Mcintosh James L Computer controlled exercise 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
US5195179A (en) 1986-01-29 1993-03-16 Hitachi, Ltd. Coordinate input apparatus
US4787051A (en) * 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
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
NL8602697A (nl) * 1986-10-27 1988-05-16 Huka Bv Developments Joystick.
US4771344A (en) 1986-11-13 1988-09-13 James Fallacaro System for enhancing audio and/or visual presentation
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
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
US4794392A (en) 1987-02-20 1988-12-27 Motorola, Inc. Vibrator alert device for a communication receiver
US4988981B1 (en) * 1987-03-17 1999-05-18 Vpl Newco Inc Computer data entry and manipulation apparatus and method
US5986643A (en) 1987-03-24 1999-11-16 Sun Microsystems, Inc. Tactile feedback mechanism for a data processing system
US4839838A (en) * 1987-03-30 1989-06-13 Labiche Mitchell Spatial input apparatus
US4769517A (en) * 1987-04-13 1988-09-06 Swinney Carl M Joystick switch assembly
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
US4811921A (en) * 1987-06-22 1989-03-14 Whitaker Charles N Cyclic control stick
US5051094A (en) * 1987-10-16 1991-09-24 Environmental Tectonics Corporation G-force trainer
US4823634A (en) 1987-11-03 1989-04-25 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
US5251127A (en) * 1988-02-01 1993-10-05 Faro Medical Technologies Inc. Computer-aided surgery apparatus
SE461548B (sv) * 1988-02-18 1990-02-26 Johansson Ab C E Foerfarande och anordning foer bestaemning av och korrigering foer laegesfel vid maetning av en punkts laege eller vid positionering till en punkt med ett bestaemt laege
GB8803847D0 (en) * 1988-02-18 1988-03-16 Renishaw Plc Mounting for surface-sensing device
US4925312A (en) * 1988-03-21 1990-05-15 Staubli International Ag Robot control system having adaptive feedforward torque control for improved accuracy
US5038089A (en) 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US4907970A (en) * 1988-03-30 1990-03-13 Grumman Aerospace Corporation Sidestick-type thrust control simulator
US4885565A (en) 1988-06-01 1989-12-05 General Motors Corporation Touchscreen CRT with tactile feedback
US4942545A (en) * 1988-06-06 1990-07-17 Combustion Engineering, Inc. Calibration of eddy current profilometry
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
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
JPH0347414A (ja) * 1989-07-13 1991-02-28 Isuzu Ceramics Kenkyusho:Kk 電磁力バルブ駆動装置
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
US5283862A (en) * 1989-10-11 1994-02-01 Lund Alan K Notebook computer with reversible cover for external use of membrane switch screen
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
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
JPH03292524A (ja) 1990-04-11 1991-12-24 Oki Electric Ind Co Ltd カーソル移動方式
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
US5022384A (en) * 1990-05-14 1991-06-11 Capitol Systems Vibrating/massage chair
US5197003A (en) 1990-08-01 1993-03-23 Atari Games Corporation Gearshift for a vehicle simulator having a solenoid for imposing a resistance force
US5298918A (en) 1990-08-01 1994-03-29 Yen Chen Chiu Electric circuit for reducing the energy consumption of a pointing device used in combination with a data processing system
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
US5200674A (en) * 1990-11-16 1993-04-06 Aichi Sharyo Co., Ltd. Electric power supply device for mobile vehicular apparatus with aerial cabin having force-feedback manipulator
US5305449A (en) * 1990-11-16 1994-04-19 Vetra Systems Corporation Keycode/pointing device conversion adapter which converts mouse motion signals into cursor signals by activating keyboard cursor keys
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
US5264836A (en) 1991-01-15 1993-11-23 Apple Computer, Inc. Three dimensional cursor
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
US5143505A (en) * 1991-02-26 1992-09-01 Rutgers University Actuator system for providing force feedback to a dextrous master glove
US5354162A (en) 1991-02-26 1994-10-11 Rutgers University Actuator system for providing force feedback to portable master support
US5194786A (en) * 1991-02-27 1993-03-16 Kollmorgen Corporation Linear current source amplifier for brushless dc motor
US5203563A (en) 1991-03-21 1993-04-20 Atari Games Corporation Shaker control device
ATE140331T1 (de) * 1991-03-21 1996-07-15 Atari Games Corp Fahrtsimulator mit überkreuzter netzwerkrückkoppelung
US5131844A (en) * 1991-04-08 1992-07-21 Foster-Miller, Inc. Contact digitizer, particularly for dental applications
GB9108497D0 (en) 1991-04-20 1991-06-05 Ind Limited W Human/computer interface
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
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
US5298919A (en) * 1991-08-02 1994-03-29 Multipoint Technology Corporation Multi-dimensional input device
US5186629A (en) * 1991-08-22 1993-02-16 International Business Machines Corporation Virtual graphics display capable of presenting icons and windows to the blind computer user and method
US5235868A (en) 1991-10-02 1993-08-17 Culver Craig F Mechanism for generating control signals
US5262777A (en) * 1991-11-16 1993-11-16 Sri International Device for generating multidimensional input signals to a computer
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
US5228356A (en) * 1991-11-25 1993-07-20 Chuang Keh Shih K Variable effort joystick
US5230623A (en) * 1991-12-10 1993-07-27 Radionics, Inc. Operating pointer with interactive computergraphics
US5471571A (en) 1991-12-27 1995-11-28 Xerox Corporation Method and apparatus for setting a graphical object's position and orientation with viscous dragging
GB9201214D0 (en) 1992-01-21 1992-03-11 Mcmahon Michael J Surgical retractors
DE4205875A1 (de) 1992-02-26 1993-09-02 Vdo Schindling Bedienvorrichtung
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 株式会社トミー 運転玩具
US5368484A (en) 1992-05-22 1994-11-29 Atari Games Corp. Vehicle simulator with realistic operating feedback
US5327790A (en) * 1992-06-19 1994-07-12 Massachusetts Institute Of Technology Reaction sensing torque actuator
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
US5283970A (en) * 1992-09-25 1994-02-08 Strombecker Corporation Toy guns
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
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
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
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
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
US5389849A (en) 1993-01-20 1995-02-14 Olympus Optical Co., Ltd. Tactility providing apparatus and manipulating device using the same
US5374942A (en) 1993-02-05 1994-12-20 Gilligan; Federico G. Mouse and method for concurrent cursor position and scrolling control
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
US5402582A (en) 1993-02-23 1995-04-04 Faro Technologies Inc. Three dimensional coordinate measuring apparatus
US5456341A (en) 1993-04-23 1995-10-10 Moog Inc. Method and apparatus for actively adjusting and controlling a resonant mass-spring system
JP3686686B2 (ja) * 1993-05-11 2005-08-24 松下電器産業株式会社 力覚呈示デバイス、データ入力装置、及びデータ入力デバイス装置
US5429140A (en) 1993-06-04 1995-07-04 Greenleaf Medical Systems, Inc. Integrated virtual reality rehabilitation system
US5405152A (en) 1993-06-08 1995-04-11 The Walt Disney Company Method and apparatus for an interactive video game with physical feedback
US5396266A (en) * 1993-06-08 1995-03-07 Technical Research Associates, Inc. Kinesthetic feedback apparatus and method
US5351692A (en) * 1993-06-09 1994-10-04 Capistrano Labs Inc. Laparoscopic ultrasonic probe
US5513100A (en) 1993-06-10 1996-04-30 The University Of British Columbia Velocity controller with force feedback stiffness control
US5466213A (en) 1993-07-06 1995-11-14 Massachusetts Institute Of Technology Interactive robotic therapist
US5739811A (en) * 1993-07-16 1998-04-14 Immersion Human Interface Corporation Method and apparatus for controlling human-computer interface systems providing force feedback
US5767839A (en) * 1995-01-18 1998-06-16 Immersion Human Interface Corporation Method and apparatus for providing passive force feedback to human-computer interface systems
US5721566A (en) * 1995-01-18 1998-02-24 Immersion Human Interface Corp. Method and apparatus for providing damping force feedback
US5734373A (en) * 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US5805140A (en) 1993-07-16 1998-09-08 Immersion Corporation High bandwidth force feedback interface using voice coils and flexures
CA2167304C (en) * 1993-07-16 1998-04-21 Louis B. Rosenberg Multi degree of freedom human-computer interface with tracking and forcefeedback
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
US5473235A (en) 1993-12-21 1995-12-05 Honeywell Inc. Moment cell counterbalance for active hand controller
US5461711A (en) 1993-12-22 1995-10-24 Interval Research Corporation Method and system for spatial accessing of time-based information
US5438529A (en) 1994-01-26 1995-08-01 Immersion Human Interface Corporation Percussion input device for personal computer systems
WO1995020787A1 (en) * 1994-01-27 1995-08-03 Exos, Inc. Multimode feedback display technology
WO1995020788A1 (en) 1994-01-27 1995-08-03 Exos, Inc. Intelligent remote multimode sense and display system utilizing haptic information compression
US5436542A (en) 1994-01-28 1995-07-25 Surgix, Inc. Telescopic camera mount with remotely controlled positioning
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
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
US6422941B1 (en) * 1994-09-21 2002-07-23 Craig Thorner Universal tactile feedback system for computer video games and simulations
US5684722A (en) 1994-09-21 1997-11-04 Thorner; Craig Apparatus and method for generating a control signal for a tactile sensation generator
US5546039A (en) * 1994-11-02 1996-08-13 Advanced Micro Devices, Inc. Charge dissipation in capacitively loaded ports
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
GB2295662A (en) * 1994-11-28 1996-06-05 Wah Leung Chan Joystick eg for video games
US5596403A (en) * 1994-12-02 1997-01-21 Tma Technologies, Inc. System and method for measuring angular position
JP3236180B2 (ja) 1994-12-05 2001-12-10 日本電気株式会社 座標指示装置
US5591082A (en) 1995-01-05 1997-01-07 Thrustmaster, Inc. Side-mounted throttle and weapons controller for computer video games and flight simulation
DE69622101T2 (de) 1995-03-13 2003-02-13 Koninkl Philips Electronics Nv 3-d-eingang durch vertikale verschiebung von maus oder rollkugel
US5882206A (en) 1995-03-29 1999-03-16 Gillio; Robert G. Virtual surgery system
US5714981A (en) * 1995-04-21 1998-02-03 Advanced Gravis Computer Technology, Ltd. Gameport communication apparatus and method
TW417054B (en) 1995-05-31 2001-01-01 Sega Of America Inc A peripheral input device with six-axis capability
US5691898A (en) 1995-09-27 1997-11-25 Immersion Human Interface Corp. Safe and low cost computer peripherals with force feedback for consumer applications
US5589854A (en) * 1995-06-22 1996-12-31 Tsai; Ming-Chang Touching feedback device
US5628686A (en) * 1995-07-31 1997-05-13 Microsoft Corporation Apparatus and method for bidirectional data communication in a game port
US5611731A (en) 1995-09-08 1997-03-18 Thrustmaster, Inc. Video pinball machine controller having an optical accelerometer for detecting slide and tilt
US5959613A (en) 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
DE69638186D1 (de) 1995-10-09 2010-07-01 Nintendo Co Ltd Dreidimensionales Bildverarbeitungssystem
US5754023A (en) 1995-10-26 1998-05-19 Cybernet Systems Corporation Gyro-stabilized platforms for force-feedback applications
US5825308A (en) 1996-11-26 1998-10-20 Immersion Human Interface Corporation Force feedback interface having isotonic and isometric functionality
JP2000501033A (ja) 1995-11-30 2000-02-02 ヴァーチャル テクノロジーズ インコーポレイテッド 触覚をフィードバックする人間/機械インターフェース
US6050718A (en) 1996-03-28 2000-04-18 Immersion Corporation Method and apparatus for providing high bandwidth force feedback with improved actuator feel
US5990869A (en) 1996-08-20 1999-11-23 Alliance Technologies Corp. Force feedback mouse
US5694013A (en) 1996-09-06 1997-12-02 Ford Global Technologies, Inc. Force feedback haptic interface for a three-dimensional CAD surface
US6020876A (en) 1997-04-14 2000-02-01 Immersion Corporation Force feedback interface with selective disturbance filter
US6005551A (en) 1997-04-25 1999-12-21 Microsoft Corporation Offline force effect rendering

Also Published As

Publication number Publication date
EP0974889A1 (de) 2000-01-26
WO1997012337A1 (en) 1997-04-03
EP0852770B1 (de) 2000-03-15
US20050195168A1 (en) 2005-09-08
US20090033624A1 (en) 2009-02-05
US7439951B2 (en) 2008-10-21
US7038657B2 (en) 2006-05-02
US20020126091A1 (en) 2002-09-12
DE69607189D1 (de) 2000-04-20
US6271833B1 (en) 2001-08-07
CA2233206A1 (en) 1997-04-03
DE69627046D1 (de) 2003-04-30
EP0852770A1 (de) 1998-07-15
US6348911B1 (en) 2002-02-19
EP0852770A4 (de) 1998-12-16
EP0974889B1 (de) 2003-03-26
CA2233206C (en) 2001-04-03
US5929607A (en) 1999-07-27
US5907487A (en) 1999-05-25
DE69607189T2 (de) 2000-11-16
US5691898A (en) 1997-11-25

Similar Documents

Publication Publication Date Title
DE69627046T2 (de) Sichere und preisgünstige Rechner-Peripheriegeräte mit Kraftrückkoppelung für Konsumanwendungen
DE69635902T2 (de) Verfahren und einrichtung zur kraftrückkopplung für eine graphische benutzerschnittstelle
DE69636703T2 (de) Verfahren und vorrichtung zur steuerung von kraftrückkoppelungsschnittstellen unter verwendung eines hauptrechners
US7209117B2 (en) Method and apparatus for streaming force values to a force feedback device
DE10004372B4 (de) Gestaltung von Kraftempfindungen für Computeranwendungen mit Geräuschen
US6050718A (en) Method and apparatus for providing high bandwidth force feedback with improved actuator feel
DE69530456T2 (de) Interaktives simulationssystem mit kraftrückkopplungeingabevorrichtung
DE10122385B4 (de) Verfahren und System zum Verarbeiten von Kraftrückkopplungseffekt-Befehlen sowie Computerprogrammprodukt
DE20200955U1 (de) Haptisches Rückkopplungsgerät
CA2278726C (en) Method and apparatus for providing high bandwidth, realistic force feedback including an improved actuator
DE20080263U1 (de) Hybridsteuerung der haptischen Rückkopplung für einen Host-Computer und ein Schnittstellengerät
DE20022244U1 (de) Steuerung vibrotaktiler Empfindungen für Haptische Rückkopplungsvorrichtungen
DE20080209U1 (de) Steuerung von haptischen Empfindungen für Schnittstellenvorrichtungen mit Vibrotaktiler Rückkopplung
DE20080275U1 (de) Taktiles Mausgerät
WO1998033136A9 (en) Method and apparatus for providing high bandwidth, realistic force feedback including an improved actuator
DE29923332U1 (de) Preiswerte Kraftrückmeldungsvorrichtungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition