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 KonsumanwendungenInfo
- 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
Links
- 230000002093 peripheral effect Effects 0.000 title description 15
- 239000003990 capacitor Substances 0.000 claims description 39
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 75
- 230000008569 process Effects 0.000 description 66
- 230000008859 change Effects 0.000 description 31
- 230000011514 reflex Effects 0.000 description 31
- 230000001133 acceleration Effects 0.000 description 29
- 230000007246 mechanism Effects 0.000 description 24
- 238000004088 simulation Methods 0.000 description 22
- 238000013016 damping Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 21
- 230000035807 sensation Effects 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 13
- 238000001994 activation Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 11
- 238000000418 atomic force spectrum Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 9
- 241000282414 Homo sapiens Species 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000004880 explosion Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000036461 convulsion Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004883 computer application Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 239000012530 fluid Substances 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004804 winding Methods 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000006249 magnetic particle Substances 0.000 description 2
- 238000013021 overheating Methods 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- MFRCZYUUKMFJQJ-UHFFFAOYSA-N 1,4-dioxane-2,5-dione;1,3-dioxan-2-one Chemical compound O=C1OCCCO1.O=C1COC(=O)CO1 MFRCZYUUKMFJQJ-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 239000003570 air Substances 0.000 description 1
- 239000012080 ambient air Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 description 1
- 239000003921 oil Substances 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 239000006188 syrup Substances 0.000 description 1
- 235000020357 syrup Nutrition 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/23—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/23—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
- A63F13/235—Input 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
- A63F13/28—Output 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/285—Generating tactile feedback signals via the game input device, e.g. force feedback
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05G—CONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
- G05G9/00—Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
- G05G9/02—Manually-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/04—Manually-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/047—Manually-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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/266—Arrangements 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F3/0383—Signal control means within the pointing device
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/10—Features 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/1025—Features 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/10—Features 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/1025—Features 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/1031—Features 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/10—Features 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/1037—Features 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/80—Features 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/8017—Driving on land or water; Flying
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/80—Features 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/8082—Virtual reality
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05G—CONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
- G05G9/00—Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
- G05G9/02—Manually-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/04—Manually-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/047—Manually-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/04766—Manually-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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05G—CONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
- G05G9/00—Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
- G05G9/02—Manually-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/04—Manually-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/047—Manually-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/04777—Manually-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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/014—Force feedback applied to GUI
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/015—Force feedback applied to a joystick
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01H—ELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
- H01H3/00—Mechanisms for operating contacts
- H01H2003/008—Mechanisms for operating contacts with a haptic or a tactile feedback controlled by electrical means, e.g. a motor or magnetofriction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols 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
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1996
- 1996-03-28 US US08/623,660 patent/US5691898A/en not_active Expired - Lifetime
- 1996-09-25 DE DE69607189T patent/DE69607189T2/de not_active Expired - Lifetime
- 1996-09-25 EP EP96933888A patent/EP0852770B1/de not_active Expired - Lifetime
- 1996-09-25 WO PCT/US1996/015340 patent/WO1997012337A1/en active IP Right Grant
- 1996-09-25 CA CA002233206A patent/CA2233206C/en not_active Expired - Lifetime
- 1996-09-25 DE DE69627046T patent/DE69627046T2/de not_active Expired - Lifetime
- 1996-09-25 EP EP99111909A patent/EP0974889B1/de not_active Expired - Lifetime
-
1997
- 1997-04-02 US US08/825,722 patent/US5907487A/en not_active Expired - Lifetime
- 1997-04-02 US US08/825,726 patent/US5929607A/en not_active Expired - Lifetime
-
1998
- 1998-03-05 US US09/035,726 patent/US6271833B1/en not_active Expired - Lifetime
-
1999
- 1999-02-26 US US09/258,749 patent/US6348911B1/en not_active Expired - Lifetime
-
2002
- 2002-02-19 US US10/079,379 patent/US7038657B2/en not_active Expired - Fee Related
-
2005
- 2005-04-18 US US11/109,238 patent/US7439951B2/en not_active Expired - Fee Related
-
2008
- 2008-10-14 US US12/251,363 patent/US20090033624A1/en not_active Abandoned
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 |