DE20122526U1 - Eine Vorrichtung zum Erfassen und Lokalisieren einer Interaktion eines Benutzerobjekts und virtuelle Übertragungsvorrichtung - Google Patents
Eine Vorrichtung zum Erfassen und Lokalisieren einer Interaktion eines Benutzerobjekts und virtuelle Übertragungsvorrichtung Download PDFInfo
- Publication number
- DE20122526U1 DE20122526U1 DE20122526U DE20122526U DE20122526U1 DE 20122526 U1 DE20122526 U1 DE 20122526U1 DE 20122526 U DE20122526 U DE 20122526U DE 20122526 U DE20122526 U DE 20122526U DE 20122526 U1 DE20122526 U1 DE 20122526U1
- Authority
- DE
- Germany
- Prior art keywords
- plane
- virtual
- optical
- user
- optical system
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/042—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
- G06F3/0421—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means by interrupting or reflecting a light beam, e.g. optical touch-screen
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
System,
das es einem mit einer virtuellen Übertragungsvorrichtung verwendeten
benutzermanipulierten Benutzerobjekt ermöglicht, Information an eine begleitende
Vorrichtung zu übertragen,
mit:
einer zentralen Prozessoreinheit, die einen Speicher umfasst, der zumindest eine Softwareroutine speichert;
einem ersten optischen System, das eine Ebene definiert, die im Wesentlichen parallel zu und beabstandet über einem angenommenen Gebiet der virtuellen Übertragungsvorrichtung ist;
einem zweiten optischen System, das ein relevantes Sichtfeld besitzt, welches zumindest Teile der Ebene umschließt und auf ein Eindringen des Benutzerobjekts in die Ebene anspricht, um mit der virtuellen Übertragungsvorrichtung zu interagieren;
einem Mittel zum Bestimmen der relativen Position eines Bereichs des Benutzerobjekts auf der Ebene;
wobei das System Information zu der begleitenden Vorrichtung überträgt, so dass das Benutzerobjekt mit der virtuellen Übertragungsvorrichtung den Betrieb der begleitenden Vorrichtung bewirken kann.
einer zentralen Prozessoreinheit, die einen Speicher umfasst, der zumindest eine Softwareroutine speichert;
einem ersten optischen System, das eine Ebene definiert, die im Wesentlichen parallel zu und beabstandet über einem angenommenen Gebiet der virtuellen Übertragungsvorrichtung ist;
einem zweiten optischen System, das ein relevantes Sichtfeld besitzt, welches zumindest Teile der Ebene umschließt und auf ein Eindringen des Benutzerobjekts in die Ebene anspricht, um mit der virtuellen Übertragungsvorrichtung zu interagieren;
einem Mittel zum Bestimmen der relativen Position eines Bereichs des Benutzerobjekts auf der Ebene;
wobei das System Information zu der begleitenden Vorrichtung überträgt, so dass das Benutzerobjekt mit der virtuellen Übertragungsvorrichtung den Betrieb der begleitenden Vorrichtung bewirken kann.
Description
- BEZUGNAHME AUF FRÜHER EINGEREICHTE ANMELDUNGEN
- Diese Anmeldung beansprucht die Priorität der anhängigen vorläufigen U.S. Patentanmeldung der Anmelderin mit der Nr. 60/287,115, die am 27. April 2001 eingereicht wurde mit dem Titel „Input Methods Using Planar Range Sensors", der anhängigen vorläufigen U.S. Patentanmeldung 60/272,120, die am 27. Februar 2001 eingereicht wurde mit dem Titel „Vertical Triangulation System for a Virtual Touch-Sensitive Surface", und der anhängigen U.S. provisional Patentanmeldung 60/231,184, die am 7. September 2000 eingereicht wurde mit dem Titel „Application of Image Processing Techniques for a Virtual Keyboard System". Ferner ist diese Anmeldung eine continuation-in-part aus der anhängigen U.S. Patentanmeldung mit der Nr. 09/502,499, die am 11. Februar 2000 eingereicht wurde mit dem Titel „Method And Apparatus for Entering Data Using A Virtual Input Device". Jede dieser Anmeldungen wird hiermit durch Bezugnahme aufgenommen.
- GEBIET DER ERFINDUNG
- Diese Erfindung betrifft allgemein eine Vorrichtung zum Erkennen bzw. Erfassen einer Annäherung eines Stifts oder eines Benutzerfingers relativ zu einer Vorrichtung, um Befehle und/oder Daten einem System einzugeben oder zu diesem zu übertragen, und insbesondere betrifft es eine solche Erfassung relativ zu einer virtuellen Vorrichtung, die zur Eingabe oder zur Übertragung von Befehlen und/oder Daten und/oder anderen Informationen zu einem System benutzt wird.
- HINTERGRUND DER ERFINDUNG
- Es ist sehr häufig wünschenswert, virtuelle Eingabevorrichtungen zu verwenden, um Befehle und/oder Daten einzugeben und/oder andere Informationen zu elektronischen Systemen zu übertragen, bspw. zu einem Computersystem, einem Musikinstrument, oder sogar Telefonen. Obgleich Computer nun in nahezu Taschengröße realisiert werden können, kann das Eingeben von Daten oder Befehlen auf einer Minitastatur zeitaufwändig und fehleranfällig sein. Während viele Mobilfunktelefone heutzutage E-Mail-Kommunikation handhaben können, kann das tatsächliche Eingeben von Nachrichten unter Verwendung des kleinen Telefon-Touchpads schwierig sein.
- Ein PDA besitzt bspw. sehr viel der Funktionalität eines Computers, leidet aber an einem kleinen oder nicht existierenden Keyboard bzw. Tastatur. Falls ein System verwendet werden könnte, um zu bestimmen, wenn der Finger eines Benutzers oder ein Stift eine virtuelle Tastatur berührte, und welche Finger welche virtuellen Tasten darauf berührten, könnte die Ausgabe des Systems vielleicht einem PDA anstelle der Tastatur-Information eingegeben werden. (Die Begriffe „Finger" oder „Finger" und „Stift" werden hier austauschbar verwendet.) Bei diesem Beispiel könnte eine virtuelle Tastatur ein Stück Papier sein, bspw. das sich auf die Größe einer Tastatur entfaltet, wobei Tasten aufgedruckt sind, um die Benutzerhände zu führen. Es versteht sich, dass die virtuelle Tastatur oder andere Eingabevorrichtungen einfach eine Arbeitsfläche darstellen und keine Sensoren oder mechanische oder elektronische Komponenten besitzen. Das Papier und die Tasten würden nicht tatsächlich Information eingeben, sondern die Interaktion oder Schnittstelle zwischen den Benutzerfingern und Bereichen des Papiers unterstützen. Falls kein Papier verwendet wird, könnten Bereiche einer Arbeitsfläche, wo Tasten existieren würden, zur Eingabe von Information in den PDA verwendet werden. Eine ähnliche virtuelle Vorrichtung und ein System könnten nützlich sein, um E-Mail in Mobiltelefone einzugeben. Eine virtuelle klavierähn liche Tastatur könnte verwendet werden, um ein reales Musikinstrument zu spielen. Die Herausforderung besteht jedoch darin, zu detektieren oder erfassen, wo die Benutzerfinger oder ein Stift relativ zu der virtuellen Vorrichtung sind.
- US-Patent 5,767,848 von Korth (1998) mit dem Titel „Method and Device For Optical Input of Commands or Data" versucht, virtuelle Vorrichtungen zu implementieren, indem eine zweidimensionale TV-Videokamera eingesetzt wird. Solche optischen Systeme beruhen auf Beleuchtungsdaten und erfordern eine stabile Umgebungslicht-Quelle, allerdings können unglücklicherweise Beleuchtungsdaten ein Abbildungs-System stören. Beispielsweise kann ein Benutzerfinger im Abbildungs-Vordergrund nicht unterscheidbar sein von Bereichen im Hintergrund. Ferner könnten Schatten oder andere bildblockierende Phänomene, die sich aus der die virtuellen Vorrichtung behindernden Benutzerhand resultieren, die Umsetzung eines Korth-Systems im Betrieb etwas unpräzise erscheinen lassen. Korth würde ebenfalls die Prüfung der Kontur eines Benutzerfingers, die Fingerposition relativ zu der virtuellen Vorrichtung und eine Bestimmung der Fingerbewegung erfordern.
- US-Patent Nr. ... von Bamji et al. (2001) mit dem Titel „CMOS-Compatible Three-Dimensional Image Sensor IC", mit der Anmeldenummer 09/406,059, eingereicht am 22. September 1999, offenbart ein weit entwickeltes dreidimensionales Abbildungs-System, das virtuelle Vorrichtungen verwendet, um Befehle und Daten in elektronische Systeme einzugeben. Bei diesem Patent waren verschiedene Entfernungsmessungssysteme offenbart, die verwendet werden könnten, um die Schnittstelle zwischen einer Benutzerfingerspitze und einer virtuellen Eingabevorrichtung, bspw. einer Tastatur zu erfassen. Die Abbildung wurde dreidimensional erfasst, indem Laufzeitmessungen verwendet werden. Eine Lichtquelle emittierte optische Energie in Richtung eines Zielobjekts, bspw. eine virtuelle Vorrichtung, und die Energie, die von Bereichen des Objekts innerhalb des Abbildungs-Pfads reflektiert wurde, wurde von einer Gruppe von Photodioden erfasst. Indem verschiedene hochentwickelte Techniken verwendet werden, wurde die aktuelle Laufzeit zwischen den Emissionen der optischen Energie und deren Erfassung durch die Photodiodengruppe bestimmt. Diese Messung erlaubte die Berechnung der Vektorentfernung zu dem Punkt auf dem Zielobjekt in drei Dimensionen, bspw. (x, y, z). Das beschriebene System prüfte die reflektierte emittierte Energie und konnte ohne Umgebungslicht funktionieren. Falls bspw. das Zielobjekt ein Layout einer Computertastatur wäre, vielleicht ein Stück Papier mit aufgedruckten Tasten, könnte das System erfassen, welcher Benutzerfinger welchen Bereich auf dem Ziel, bspw. welche virtuelle Taste, in welcher Reihenfolge berührte. Selbstverständlich wäre das Stück Papier optional und würde zur Führung der Benutzerfinger verwendet werden.
- Dreidimensionale Daten, die mit der Bamji-Erfindung erhalten werden, könnten per Software verarbeitet werden, um die Benutzerfinger zu lokalisieren, wenn sie in Kontakt mit einer Berührungs-Fläche kämen, bspw. einer virtuellen Eingabevorrichtung. Die Software könnte den Fingerkontakt mit einem Ort auf der Fläche als eine Anforderung identifizieren, ein Tastatur-Event einer Anwendung einzugeben, die auf der verknüpften elektronischen Vorrichtung oder dem System abläuft, bspw. ein Computer, ein PDA, ein Mobilfunkgerät, eine Kioskvorrichtung, eine Kassenvorrichtung, etc. Während das Bamji-System arbeitete und eingesetzt werden könnte, um Befehle und/oder Daten in ein Computersystem einzugeben, in dem eine dreidimensionale Abbildung verwendet wird, um die Schnittstelle von Benutzerfingern und einer virtuellen Eingabevorrichtung zu analysieren, ist ein weniger komplexes und vielleicht weniger hochentwickeltes System wünschenswert. Wie das Bamji-System sollte ein solches neues System relativ kostengünstig für eine Massenproduktion sein und sollte relativ wenig Energie verbrauchen, so dass ein Batteriebetrieb leicht möglich ist.
- Die vorliegende Erfindung stellt ein solches System bereit.
- ZUSAMMENFASSUNG DER VORLIEGENDEN ERFINDUNG
- Die vorliegende Erfindung lokalisiert eine Interaktion zwischen einem Benutzerfinger oder einem Stift und einer passiven Berührungs-Fläche (bspw. einer virtuellen Eingabevorrichtung), die oberhalb einer Arbeitsfläche definiert ist, indem eine planare quasi dreidimensionale Erfassung verwendet wird. Die quasi dreidimensionale Erfassung impliziert, dass die Bestimmung eines Interaktionspunkts im Wesentlichen in drei Dimensionen ausgeführt werden kann, indem als Referenz eine zweidimensionale Fläche verwendet wird, die beliebig im dreidimensionalen Raum orientiert ist. Sobald eine Berührung erfasst wird, lokalisiert die Erfindung das Berührungs-Gebiet, um festzulegen, wo auf einer virtuellen Eingabevorrichtung die Berührung stattfand, und welche Daten oder Befehlstastenfolgen, entsprechend dem lokalisierten Gebiet, das berührt wurde, in Antwort auf die Berührung ausgeführt werden soll. Alternativ könnte die virtuelle Eingabevorrichtung eine virtuelle Maus oder ein Trackball umfassen. Bei einer solchen Ausführungsform würde die vorlie gende Erfindung die Koordinaten des Berührungs-Punktes mit der virtuellen Eingabevorrichtung erfassen und berichten, welche Koordinaten mit einer Anwendung verknüpft sind, vielleicht um einen Cursor auf einem Display (bei einer virtuellen Maus oder einer Trackball-Implementierung) bewegen und/oder sog. digitale Tinte für eine Zeichnung oder eine Schreibanwendung aufbringen zu können (ein virtueller Füller oder eine Stiftanwendung). In verschiedenen Ausführungsformen werden vorzugsweise Triangulationsanalyseverfahren verwendet, um zu bestimmen, wo eine „Berührung" von Benutzer und Objekt mit der virtuellen Eingabevorrichtung auftritt.
- Bei einer Ausführungsform mit sog. strukturiertem Licht umfasst die Erfindung ein erstes optisches System (OS1), das eine Ebene von optischer Energie erzeugt, die einen Fächerstrahl eines Strahlwinkels ϕ parallel zu und in einem kleinen Abstand ΔY über der Arbeitsfläche erzeugt, auf der die virtuelle Eingabevorrichtung definiert werden könnte. Bei dieser Ausführungsform ist die interessierende Ebene die Ebene des Lichts, das von OS1 erzeugt wird, typischerweise einem Laser oder einem LED-Lichtgenerator. Die zwei parallelen Ebenen können typischerweise horizontal sein, können jedoch auch vertikal liegen oder jeden anderen beliebigen und geeigneten Winkel besitzen. Die Erfindung umfasst ferner ein zweites optisches System (OS2), das auf optische Energie der gleichen Wellenlänge anspricht, wie von OS1 emittiert wird. Vorzugsweise ist die OS2 über OS1 angeordnet und angewinkelt mit einem Offsetwinkel von θ relativ zu der Fächerstrahlebene, in Richtung des Bereichs, wo die virtuelle Eingabevorrichtung definiert ist. OS2 spricht auf Energie an, die von OS1 emittiert wird, wobei die Wellenlänge der optischen Energie aber nicht für Menschen sichtbar sein muss.
- Die Erfindung kann auch implementiert werden, indem Konfigurationen mit nicht strukturiertem Licht verwendet werden, die aktiv oder passiv sein können. Bei einer passiven Triangulationsausführungsform ist OS1 eine Kamera und nicht eine aktive Quelle optischer Energie, und OS2 ist eine Kamera, die auf die gleiche optische Energie wie OS1 anspricht und vorzugsweise wie zuvor beschrieben angeordnet ist. Bei einer solchen Ausführungsform ist die interessierende Ebene die Projektionsebene einer Abtastlinie der OS1-Kamera. Bei einer Ausführungsform mit nicht strukturiertem Licht, wie bspw. einer aktiven Triangulationsausführungsform, sind OS1 und OS2 Kameras und die Erfindung umfasst ferner eine aktive Lichtquelle, die optische Energie mit Wellenlängen emittiert, auf die OS1 und OS2 ansprechen. Optional bei einer solchen Ausführungsform können OS1 und OS2 jeweils einen Shutter-Mechanismus bzw. Verschluss- oder Blendenmechanismus umfassen, der synchronisiert ist, um die aktive Lichtquelle derart auszugeben, dass die Verschlüsse in OS1 und OS2 offen sind, wenn optische Energie emittiert wird, und die ansonsten geschlossen sind. Ein Vorteil einer Konfiguration mit nicht strukturiertem Licht, die zwei Kameras verwendet, besteht darin, dass Unebenheiten oder Unregelmäßigkeiten auf der Arbeitsfläche besser toleriert werden. Die Ebene, die durch OS1 definiert wird, kann ausgewählt werden, indem eine passende Reihe von OS1-Erfassungspixelelementen gewählt wird, um mit dem höchsten Punkt in der y-Dimension (bspw. ein Hügel) der Arbeitsfläche übereinzustimmen.
- Bei der Ausführungsform mit strukturiertem Licht wird OS2 die optische Energie nicht detektieren bis ein Objekt, bspw. ein Benutzerfinger oder ein Stift, beginnt, das Arbeitsflächengebiet zu berühren, auf dem die virtuelle Eingabevorrichtung definiert ist. Sobald jedoch das Objekt die Ebene der optischen Energie durchdringt, die von OS1 emittiert wird, wird der Bereich des Fingers oder des Stifts, der die Ebene schneidet, beleuchtet werden (sichtbar oder unsichtbar für den Benutzer). OS2 erfasst das Durchschneiden bzw. Durchkreuzen der interessierenden Ebene, indem die optische Energie erfasst wird, die in Richtung OS2 durch Beleuchten des Objektgebiets reflektiert wird. Im Wesentlichen ist nur eine Ebene für die vorliegende Erfindung von Interesse, die durch die Konfiguration von OS1 bestimmt wird, und alle anderen Ebenen, die im dreidimensionalen Raum parallel zu der virtuellen Eingabevorrichtung definierbar wären, können als irrelevant ignoriert werden. Somit erfasst ein planares dreidimensionales Sensorsystem Benutzerinteraktionen mit einer virtuellen Eingabevorrichtung, die in der Ebene des emittierten Fächerstrahls auftreten, und ignoriert jegliche Interaktionen mit anderen Ebenen.
- Auf diese weise erfasst bzw. erkennt die vorliegende Erfindung, dass ein Objekt die virtuelle Eingabevorrichtung berührt hat. Indem erfasst wird, dass eine relevante Berührungs-Durchkreuzung aufgetreten ist, lokalisiert dann die Erfindung in zwei Dimensionen den Ort der Berührung auf der Ebene der virtuellen Vorrichtung. Bei der bevorzugten Implementierung können lokalisierte Vorgänge das Identifizieren umfassen, welche virtuellen Tasten auf einer virtuellen Computertastatur oder einem Musikkeyboard von dem Benutzer berührt werden. Der Benutzer kann mehr als eine virtuelle Taste gleichzeitig berühren, bspw. die „Shift"-Taste und eine andere Taste. Es ist ebenfalls anzumerken, dass die zeitliche Reihenfolge der Berührungen durch die vorliegende Erfindung bestimmt wird. Falls somit der Benutzer virtuelle Tasten für „Shift" und „t" berührt und dann für die Buchstaben „h" und dann „e", wird die vorliegende Erfindung erkennen, dass „T" dann „h" und dann „e", oder „The" eingegeben wurde. Es versteht sich, dass die vorliegende Erfindung sich nicht auf Umgebungslicht stützt und dass sie ebenfalls bei nicht vorhandenem Umgebungslicht voll funktionsfähig ist unter der Annahme, dass der Benutzer den Ort der virtuellen Eingabevorrichtung kennt.
- Passive Triangulationsverfahren mit strukturiertem Licht und/oder nicht strukturiertem Licht können verwendet werden, um einen Berührungs- bzw. Kontaktpunkt (x, z) zwischen einer Benutzerhand und der Erfassungsebene zu bestimmen. Da die Basislinienentfernung B zwischen OS1 und OS2 bekannt ist, wird ein Dreieck zwischen OS1, OS2 und dem Punkt (x, z) gebildet, dessen Seiten B sind, und die Projektionsstrahlen R1 und R2 von OS1, OS2 bis (x, z). OS1 und OS2 ermöglichen die Bestimmung einer Dreieckwinkelentfernung von einer Referenzebene sowie der Winkel α1 und α2, die durch die Projektionsstrahlen gebildet werden, und die Trigonometrie führt zu dem Abstand z zu dem Oberflächenpunkt (x, z) sowie zu den Projektionsstrahllängen.
- Eine Prozessoreinheit, die mit der vorliegenden Erfindung verknüpft ist, führt Software aus, um jeden Schnittpunkt eines benutzergesteuerten Objekts mit der virtuellen Eingabevorrichtung zu identifizieren und daraus die richtigen vom Benutzer gewünschten Eingangsdaten und/oder Befehle zu bestimmen, vorzugsweise indem eine Triangulationsanalyse verwendet wird. Die Daten und/oder Befehle können dann von der vorliegenden Erfindung als Eingangssignale in eine Vorrichtung oder ein System eingegeben werden, für die bzw. das die virtuelle Eingabevorrichtung verwendet wird. Falls gewünscht, kann die vorliegende Erfindung innerhalb der begleitenden Vorrichtung (engl.: companion device) oder Systems implementiert werden, insbesondere in PDAs, Mobilfunkgeräten und anderen kleinbauenden Vorrichtungen oder Systemen, denen es häufig an einer großen Benutzereingabevorrichtung, wie bspw. einer Tastatur mangelt.
- Andere Merkmale und Vorteile der Erfindung werden aus der nachfolgenden Beschreibung klar, in der die bevorzugten Ausführungsformen im Detail ausgeführt sind, in Verbindung mit den begleitenden Zeichnungen.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1A zeigt ein planares quasi dreidimensionales Erfassungssystem mit strukturiertem Licht, das verwendet wird, um eine Benutzereingabe auf einer virtuellen Eingabevorrichtung zu erfassen, entsprechend der vorliegenden Erfindung; -
1B zeigt ein planares quasi dreidimensionales Erfassungssystem mit nicht strukturiertem aktivem Licht, das verwendet wird, um eine Benutzereingabe auf einer virtuellen Eingabevorrichtung zu erfassen, entsprechend der vorliegenden Erfindung; -
1C zeigt ein planares quasi dreidimensionales Erfassungssystem mit nicht strukturiertem passivem Licht, das verwendet wird, um Benutzereingaben auf einer virtuellen Eingabevorrichtung zu erfassen, entsprechend der vorliegenden Erfindung; -
2A zeigt die Geometrie, die mit der Ortsbestimmung verknüpft ist, indem Triangulation verwendet wird, entsprechend der vorliegenden Erfindung; -
2B zeigt den Einsatz eines optischen Emitters und eines davon beabstandeten Reflektors, als ein erstes optisches System, entsprechend der vorliegenden Erfindung; -
3A –3E zeigen Designkompromisse, die mit variierenden Ausrichtungen des OS2-Sensors, der OS2-Linse und der Erfassungsebene bei wirksamen Sichtfeld und Bildqualität verknüpft sind, entsprechend der vorliegenden Erfindung; -
4 ist ein Blockdiagramm, das Funktionen darstellt, die von einer Prozessoreinheit in dem beispielhaften System von1B ausgeführt werden, entsprechend einer Ausführungsform der vorliegenden Erfindung; -
5A zeigt eine Ausführungsform, bei der die virtuelle Vorrichtung vier benutzerwählbare Gebiete aufweist und die begleitende Vorrichtung ein Monitor ist, entsprechend der vorliegenden Erfindung; -
5B zeigt eine Ausführungsform, bei der die virtuelle Vorrichtung eine Computertastatur und die begleitende Vorrichtung ein Mobilfunksender/Empfänger ist entsprechend der vorliegenden Erfindung; -
5C zeigt eine Ausführungsform, bei der die virtuelle Vorrichtung auf einer Wand befestigt oder projiziert ist und die begleitende Vorrichtung ein Monitor ist, entsprechend der vorliegenden Erfindung; -
6 zeigt eine planare Entfernungsmessung entsprechend der vorliegenden Erfindung; und -
7 zeigt Koordinatenentfernungsmessungen, die bei einer beispielhaften Berechnung eines Berührungsorts verwendet werden, zur Verwendung bei der Ausgabe entsprechender Information oder Daten oder Befehle, entsprechend der vorliegenden Erfindung. - DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
1A zeigt eine bevorzugte Ausführungsform eines quasi planaren dreidimensionalen Erfassungssystems10 mit – in einer Ausführungsform mit strukturiertem Lichtsystem – einem ersten optischen System (OS1)20 , das eine Fächerstrahlebene30 von optischer Energie parallel zu einer planaren Arbeitsfläche40 emittiert, auf welcher Arbeitsfläche eine virtuelle Eingangsvorrichtung50 und/oder50' und/oder50'' definiert ist. Vorzugsweise definiert der Fächerstrahl einen Fächerwinkel ϕ und ist von der Arbeitsfläche um einen kleinen Entfernungsabstand ΔY beabstandet. Ein Objekt (bspw. ein Benutzerfinger oder Stift), der versucht, die Arbeitsfläche zu berühren, muss als Erstes den Fächerstrahl berühren und wird dadurch mit der ausgestrahlten optischen Energie beleuchtet (sichtbar oder nicht sichtbar). Während die Fächerstrahlebene30 und die Arbeitsflächenebene40 horizontal angeordnet in1A gezeigt sind, können diese beiden Ebenen auch vertikal oder tatsächlich in jedem anderen Winkel angeordnet sein, der für ein System gewünscht wird. Es sei angemerkt, dass ohne Einschränkung eine Arbeitsfläche40 ein Teil eines Schreibtisches, eine Tischoberfläche, ein Teil eines Fahrzeugs, bspw. ein Tablett in einem Flugzeug, eine Windschutzscheibe oder ein Armaturenbrett, eine Wand, ein Display mit einer projizierten Abbildung oder ein Display, wie bspw. ein CRT, ein LCD, sein könnte. Hier wird der Begriff „Ebene" so verstanden, dass er eine Untermenge einer gesamten Ebene einschließt. Beispielsweise wird die Fächerstrahlebene30 als eine Ebene bezeichnet, obgleich sie eine endliche Breite besitzt und sich nicht in alle Richtungen endlich erstreckt. - Mit „virtuelle Eingabevorrichtung" ist gemeint, dass eine Abbildung einer Eingabevorrichtung auf der Arbeitsfläche
40 vorhanden sein kann, vielleicht durch Platzieren eines Papiers, das ein gedrucktes Bild trägt, oder vielleicht durch ein System10 , das ein sichtbares Bild der Eingabevorrichtung auf die Arbeitsfläche projiziert, oder es effektiv kein irgendwie sichtbares Bild auf der Arbeitsfläche40 gibt. Die virtuelle Eingabevorrichtung50 ,50' ,50'' erfordert keine mechanischen Teile, wie Bedientasten und muss nicht auf die Berührung durch einen Finger oder einen Stift ansprechen; kurz gesagt, die virtuelle Eingabevorrichtung ist vorzugsweise passiv. - In dem Beispiel von
1A ist die virtuelle Eingabevorrichtung50 eine Computertastatur, die volle Größe haben kann oder vergrößert oder verkleinert gegenüber einer üblich dimensio nierten Tastatur sein kann. Falls gewünscht, kann die virtuelle Eingabevorrichtung einen virtuellen Trackball50' und/oder ein virtuelles Touchpad50'' enthalten oder umfassen. Wenn das System10 mit einer virtuellen Tastatur-Eingabevorrichtung50 , oder einem virtuellen Trackball50' oder einem virtuellen Touchpad50'' verwendet wird, wird ein Fächerwinkel ϕ von etwa 50° bis 90° und vorzugsweise etwa 90° gewährleisten, so dass der Fächerstrahl30 die gesamte virtuelle Eingabevorrichtung in üblich verwendeten Entfernungen umgeben wird. Bei einer solchen virtuellen Eingabevorrichtung hat sich ein Entfernungsabstand ΔY von bis zu einigen wenigen mm, vorzugsweise etwa 1 mm als sehr gut herausgestellt. - Das System
10 umfasst ferner ein zweites optisches System (OS2)60 , typischerweise eine Kamera mit einem ebenen Sensor, die vorzugsweise beabstandet von und über OS120 angeordnet ist und in Richtung der Arbeitsfläche40 und der Ebene30 in einem Winkel θ, von etwa 10° bis etwa 90°, und vorzugsweise etwa 25° geneigt ist. Das System10 umfasst ferner ein elektronisches Verarbeitungssystem70 , das neben anderen Aufgaben OS1 und OS2 überwacht. Das System70 umfasst vorzugsweise zumindest eine zentrale Prozessoreinheit (CPU) und zugehörigen Speicher, der Read-only-Memory bzw. Nur-Lesespeicher (ROM) und Random Access Memory bzw. Speicher mit wahlfreiem Zugriff (RAM) umfassen kann. - In
1A sind System 10-Elemente OS120 , OS260 und die Prozessoreinheit70 gezeigt, wobei sie auf oder in einer Vorrichtung80 angeordnet sind. Die Vorrichtung80 kann als Stand-Alone-Implementierung des Systems10 ausgeführt sein oder kann tatsächlich ein System oder eine Vorrichtung sein, für die die virtuelle Eingabevorrichtung50 zur Eingabe von Daten oder Befehlen benutzt wird. Im letztgenannten Fall kann die Vorrichtung80 ohne Einschränkung ein Computer, ein PDA (wie in1A gezeigt), ein Mobilfunktelefon, ein Musikinstrument, etc. sein. Falls das System oder die Vorrichtung80 nicht von der virtuellen Eingabevorrichtung gesteuert wird, kann die Vorrichtung90 , die so gesteuert wird, elektrisch mit dem System/Vorrichtung80 gekoppelt sein, um Daten und/oder Befehlseingaben von der virtuellen Vorrichtung50 zu empfangen. Wenn die virtuelle Vorrichtung ein Trackball (oder Maus)50' oder ein Touchpad50'' ist, kann die Benutzerinteraktion mit einer solchen virtuellen Vorrichtung direkt Rohinformation oder Daten ausgeben, die Berührungs-Koordinaten (x, z) zur Verwendung durch die Vorrichtung80 umfassen. Beispielsweise könnte die Benutzerinteraktion mit der virtuellen Eingabevorrichtung50' oder50'' eine Neupositionierung eines Cursors160 auf einem Display140 sein oder könnte eine Anwendung ändern, die von der Vorrichtung80 ausgeführt wird, oder könnte einen Ort für eine sog. digitale Tinte180 festlegen, der dem nachfolgt, was ein Benutzer „schreibt", indem eine virtuelle Maus oder Trackball50' verwendet wird, oder ein Stift120' verwendet wird oder ein virtuelles Touchpad50'' . Das System/die Vorrichtung90 kann elektrisch mit dem System80 über ein Medium100 gekoppelt sein, das ohne Einschränkung Leitungen umfassen kann oder drahtlos aufgebaut sein kann oder ein Netzwerk einschließlich des Internets sein kann. - Bei einer Ausführungsform mit strukturiertem Licht emittiert OS1
20 optische Energie in einem Fächerstrahl30 parallel zu der x-z Ebene30 . OS1 kann einen Laserzeilengenerator oder einen LED Zeilengenerator aufweisen, obgleich andere optische Energiequellen verwendet werden könnten, um die Ebene30 auszustrahlen. Ein Zeilengenerator OS1 wird so benannt, da er eine Ebene von Licht ausstrahlt die, wenn von einer zweiten Ebene geschnitten, beleuchtet, was OS2 als eine Zeile auf der zweiten Ebene sehen würde. Beispielsweise falls ein zylindrisches Objekt Ebene30 schneiden würde, würde OS2 diesen Vorgang als einen beleuchteten Abschnitt eines elliptischen Bogens sehen, dessen Aspekt-Verhältnis abhängen würde von dem Abstand von OS2 über der Ebene30 und der Oberfläche40 . Somit bemerkt die Erfassung durch OS2 eines elliptischen Bogens auf der Ebene30 einen Berührungs-Vorgang, bspw. dass ein Objekt, wie bspw.120R die Ebene30 berührt oder durchdrungen hat, wobei Umgebungslicht ausgeschlossen wird. Obgleich eine Vielzahl von optischen Emittern verwendet wird, könnte eine Laserdiode, die etwa 3 mW Durchschnittsleistung mit einer Wellenlänge von etwa 300 nm bis vielleicht 1000 nm ausgibt, verwendet werden. Während die Umgebungslichtwellenlängen (bspw. etwa 350 nm bis 700 nm) verwendet werden könnten, könnten die Wirkungen des Umgebungslichts minimiert werden, ohne Filtern oder ohne Blenden bzw. Verschlüsse, falls solche Wellenlängen vermieden werden. Somit könnten Wellenlängen von etwa 600 nm (sichtbares Rot) bis etwa 1000 nm (tiefes Infrarot) verwendet werden. Eine Laserdiode, die optische Energie bei einer Wellenlänge von 850 nm ausgibt, würde einen ökonomischen Emitter darstellen, obgleich OS2 bevorzugt einen Filter zur Reduzierung der Wirkungen des Umgebungslichts umfassen würde. - Während OS1 in einer Ausführungsform mit strukturiertem Licht vorzugsweise stationär ist, versteht sich, dass ein Fächerstrahl
30 durch mechanisches Schwenken einer einzelnen emittierten Zeile optischer Energie erzeugt werden könnte, um die Fächerstrahlebene30 zu definieren. Wie in2B gezeigt, kann OS1 tatsächlich einen optischen Energieemitter20-A umfassen, der einen Fächerstrahl emittiert, und einen reflektierenden Spiegel20-B , der den Fächerstrahl30 im Wesentlichen parallel zu der Fläche40 richtet. Für die vorliegende Erfindung kann bei der Ausführungsform mit strukturiertem Licht die optische Energie, die von OS120 emittiert wird, für Menschen sichtbar oder unsichtbar sein. OS260 umfasst vorzugsweise ein Kamerasystem, das auf optische Energie der Wellenlänge anspricht, die von OS120 emittiert wird. Unter „Ansprechen" ist gemeint, dass OS2 Energie der gleichen Wellenlänge erkennt, die von OS1 emittiert wird, und Idealerweise Energie nicht erkennt oder darauf nicht anspricht, die sich wesentlich von der Wellenlänge unterscheidet. Beispielsweise kann OS2 ein Filtersystem umfassen, derart, dass optische Energie der Wellenlänge, die nicht die von OS1 emittierte Wellenlänge ist, nicht detektiert wird, bspw. ein Farbfilter. - Falls gewünscht, könnte OS2 im Wesentlichen nur auf optische Energie ansprechen, die von OS1 emittiert wird, indem OS1 und OS2 synchron gleichzeitig ein- und ausgeschaltet werden, bspw. unter der Kontrolle der Einheit
70 . OS1 und OS2 würden vorzugsweise Blenden, bzw. Verschlussmechanismen umfassen, die als Elemente22 dargestellt sind, die funktional in synchroner Weise öffnen und schließen. Das elektronische Verarbeitungssystem70 könnte bspw. synchron OS1, OS2 oder die Verschlussmechanismen22 für eine Zeitperiode t1 mit einem gewünschten Taktverhältnis einschalten, wobei t1 etwa im Bereich von etwa 0,1 ms bis etwa 35 ms liegt und würde dann OS1 und OS2 ausschalten. Falls gewünscht, könnte OS1 immer betrieben werden, wenn die Ebene30 nur strahlen kann, wenn der Verschluss22 vor OS120 offen ist. In den verschiedenen Verschlusskonfigurationen beträgt die Wiederholungsrate des synchronen Schaltens vorzugsweise etwa 20 Hz bis etwa 300 Hz, um eine adäquate Bilddatenerfassungsgeschwindigkeit zu unterstützen. Um Betriebsleistung zu sparen und Berechnungsoverhead zu reduzieren, stellt eine Wiederholungsrate von etwa 30 Hz bis 100 Hz eine akzeptable Geschwindigkeit dar. Selbstverständlich können andere Vorrichtungen und Verfahren ebenfalls verwendet werden, um zu gewährleisten, dass OS2 im Wesentlichen nur auf optische Energie anspricht, die von OS1 emittiert wird. Zur Vereinfachung der Darstellung sind die Verschlüsse22 als mechanische Elemente dargestellt, aber in der Praxis wird das Konzept der Verschlüsse22 so verstanden, dass es ein- und ausschaltende Lichtquellen und Kameras in jeglicher Variation umfasst. - Falls gewünscht, könnten eine Quelle oder Quellen optischer Energie, die bei der vorliegenden Erfindung verwendet werden, ausgelegt werden, um eine sog. Signatur zu tragen, um zu ermöglichen, dass solche Energie besser von der Umgebungslichtenergie unterschieden werden kann. Beispielsweise könnten solche Quellen moduliert werden mit einer festen Frequenz, so dass Kameras oder andere Sensoreinheiten, die bei der vorliegenden Erfindung verwendet werden, leichter solche Energie erkennen können, während die Umgebungslichtenergie aufgrund des Fehlens einer solchen Signatur im Wesentlichen zurückgewiesen werden würde, wobei dieses Beispiel nicht einschränkend ist. Kurz gesagt, können Signaturtechniken, wie bspw. die Wellenlängenauswahl für optische Energie, die sich von Umgebungslicht unterscheidet, Techniken, die synchronen Betrieb der Lichtquellen und der Kamerasensoren umfassen, und modulierte oder anders markierte Lichtquellenenergie, jeweils das Signal/Rauschver hältnis der Information verbessern, die von der vorliegenden Erfindung erlangt wird.
- Es sei angemerkt, dass keine Forderung bzw. Notwendigkeit besteht, die Arbeitsfläche
40 mit Bezug auf die Wellenlänge reflektierend oder nicht reflektierend zu machen, welche Wellenlänge von OS1 emittiert wird, da der Fächerstrahl oder jede andere Emission von optischer Energie die Oberfläche als solche nicht erreicht. Es sei auch angemerkt, dass die virtuelle Eingabevorrichtung bevorzugt vollständig passiv ist. Da die Vorrichtung50 passiv ist, kann sie größenmäßig so dimensioniert sein, dass sie kleiner ist als eine volldimensionierte Vorrichtung, falls notwendig. Ferner sind die Kosten für eine passive virtuelle Eingabevorrichtung Null, insbesondere falls die „Vorrichtung" einfach ein Blatt Papier ist, das ein graphisches Bild einer aktuellen Eingabevorrichtung trägt. - In
1A sei zunächst angenommen, dass der Benutzer des Systems10 nicht in der Nähe der virtuellen Eingabevorrichtung50 ist. Bei einer Ausführungsform mit strukturiertem Licht, erfasst OS2 nichts, obgleich OS1 eine Fächerstrahlebene optischer Energie30 emittieren kann, da kein Objekt die Ebene30 schneidet. Es sei nun angenommen, dass ein Abschnitt110 eines Fingers der linken oder rechten Hand120L ,120R eines Benutzers sich nach unten bewegt, um einen Bereich des Gebiets der Arbeitsfläche40 zu berühren, auf der die virtuelle Eingabevorrichtung50 definiert ist. Alternativ könnte ein Bereich110' eines vom Benutzer kontrollierten Stifts120' nach unten bewegt werden, um einen relevanten Bereich der Arbeitsfläche40 zu berühren. Innerhalb des Kontexts der vorliegenden Erfindung wird eine Berührung durch Software interpretiert, die mit der Erfindung verknüpft ist, als eine Anforderung, ein Tastatur-Event an eine Anwendung zu senden, die auf einer begleitenden Vorrichtung oder einem System80 oder90 , bspw. ein Notebook, ein PDA, ein Mobilfunkgerät, eine Kiosk- bzw. Verkaufsstand-Vorrichtung, eine Kassenvorrichtung, etc. abläuft. - In
1A wird, da der Finger des Benutzers sich nach unten bewegt und beginnt, die optische Energieebene30 zu schneiden, ein Bereich der Fingerspitze, die OS1 zugewandt ist, nun optische Energie130 reflektieren. Zumindest etwas der reflektierten optischen Energie130 wird durch OS2 erfasst, da die Wellenlänge der reflektierten Energie die gleiche ist wie die Energie, die von OS1 emittiert wird, und OS2 auf Energie einer solchen Wellenlänge anspricht. Somit erfasst das planare quasi dreidimensionale Erfassungssystem10 optische Energie, die durch die Interaktion eines von einem Benutzer gesteuerten Objekts (bspw. ein Finger, ein Stift, etc.) reflektiert wird, wobei die Interaktion an einer interessierenden Ebene auftritt, die von der Fächerstrahlebene30 definiert wird. Jegliche Interaktion, die auf jeder anderen Ebene auftritt, wird als nicht relevant betrachtet und kann von der vorliegenden Erfindung ignoriert werden. - Ist somit ein Objekt, wie bspw. ein Bereich einer Benutzerhand oder vielleicht eines Stifts die optische Energieebene
30 , die von OS1 emittiert wird, schneidet, gibt es somit keine reflektierte optische Energie130 , die von OS260 erfasst werden kann. Unter solchen Bedingungen weiß das System10 , dass keine Benutzereingabe vorgenommen wird. Sobald jedoch die optische Energieebene durchdrungen wird, wird das Einschneiden des eindringenden Objekts (bspw. Fingerspitze, Stiftspitze, etc.) von OS260 erfasst, und der Ort (x, z) des Eindringens kann durch die Prozessoreinheit70 bestimmt werden, die mit dem System10 verknüpft ist. In1A kann, falls der linke Zeigefinger des Benutzers den Bereich der virtuellen Eingabevorrichtung50 , der mit den Koordinaten (x7, z3) definiert ist, berührt, dann die mit der Erfindung verknüpfte Software bestimmen, dass der Buchstabe „t" „gedrückt" wurde. Da keine „Shift-Taste" ebenfalls gedrückt wurde, würde der gedrückte Buchstabe als „t" verstanden werden. - Bei der gezeigten Ausführungsform kann das System
10 Tastenfolgen generieren und dem System80 oder90 eingeben, die Daten und/oder Befehle darstellen, die ein Benutzer auf einem tatsächlichen Keyboard eingegeben hätte. Eine solche Eingabe in ein System80 oder90 kann verwendet werden, um Information140 auf einem Display150 darzustellen, wenn die Information von dem Benutzer auf einer virtuellen Eingabevorrichtung50 eingegeben wird. Falls gewünscht, könnte ein vergrößertes Cursorgebiet160 implementiert werden, um eine zusätzliche visuelle Eingabe bereitzustellen, um dem Benutzer zu helfen, der Information eingibt. Falls gewünscht, könnte die Prozessoreinheit70 das System80 und/oder90 veranlassen, ein hörbares Feedback abzugeben, um dem Benutzer zu helfen, bspw. ein elektronisches Tastenklickgeräusch170 , das dem „Drücken" einer virtuellen Taste der virtuellen Eingabevorrichtung50 entspricht. Es versteht sich, dass – falls das System80 oder90 ein Musikinstrument und nicht ein Computer oder ein PDA oder ein Mobilfunkgerät wäre – Musiktöne170 emittiert würden, und die virtuelle Eingabevorrichtung50 stattdessen den Aufbau ähnlich einer Pianotastatur oder eines Keyboards haben könnte, die mit synthetischen Musikgeneratoren verknüpft sind. -
1B zeigt ein nicht strukturiertes aktives Lichtsystem10 , in welchem eine Kamera20' in einem ersten optischen System OS1 eine interessierende Ebene30' definiert, die im Wesentlichen die Ebene30 ersetzt, die von dem optischen Emitter OS1 in der Ausführungsform von1A definiert wird. Die Kamera20' OS1 ist vorzugsweise ähnlich der Kamera60 OS2, die ähnlich zu der Kamera60 OS2 in der Ausführungsform von1A sein kann. Beispielsweise kann OS120' ein Sensorarray aufweisen, das zumindest eine Zeile und vorzugsweise mehrere Zeilen von Pixeldetektorelementen umfasst. Die Ausführungsform von1B ist aktiv insofern, als ein oder mehrere Lichtquellen190 , die zwischen OS120' und OS260 angeordnet sind, optische Energie einer Wellenlänge erzeugen, die von der Kamera OS120' und von der Kamera OS260 erfassbar ist. Um die Wirkungen des Umgebungslichts auf die Erfassung durch die Kameras OS1 und OS2 zu reduzieren, arbeitet vorzugsweise jede Kamera und jeder optische Energieemitter190 zusammen mit einem Verschlussmechanismus, vorzugsweise synchronisiert, bspw. durch die Einheit70 . Während der Zeiten, zu denen die Verschlüsse22 ein Abstrahlen optischer Energie von dem Emitter190 in Richtung der virtuellen Eingabevorrichtung50 ,50' ,50'' erlauben, werden ähnliche Verschlüsse22 den Kameras OS1 und OS2 ermöglichen, optische Energie zu erfassen. Die Interaktion des Benutzerobjekts, bspw.120L mit der Ebene30' wird durch OS1 und durch OS2 erfasst. Der Ort des Schnittpunkts wird dann berechnet, bspw. durch Einsatz von Triangulationsverfahren, die später beschrieben werden. - In
1B ist ein Hügel oder eine Unregelmäßigkeit in der Ebene der Arbeitsfläche40 nahe des Kontaktpunkts110 mit dem Benutzerobjekt120L gezeigt. Ein Vorteil der vorhandenen zwei ten Kamera OS120' liegt darin, dass die interessierende Ebene30' ausgewählt sein kann, vielleicht durch Einheit70 , um direkt über dem höchsten irregulären Bereich der Arbeitsfläche40 zu liegen. Falls Unregelmäßigkeiten in der Arbeitsfläche40 in der Ausführungsform von1A vorhanden wären, würde es notwendig sein, eine Neupositionierung der Laserebene30 relativ zu der Arbeitsfläche durchzuführen. Aber in1B wird die Wirkung einer solchen Neupositionierung elektronisch erreicht, einfach durch Auswahl einer geeigneten Zeile von Pixeln von dem Detektorarray bei OS120' . - Es sei angemerkt, dass die Konfiguration von
1B sich für verschiedene Verfahren eignet, um das Signal/Rausch-Verhältnis zu verbessern. Beispielsweise können es die Verschlüsse22 den Kameras OS1 und OS2 ermöglichen, Abbildungs-Daten während einer Zeit zu sammeln, zu der die Emitter190 ausgeschaltet sind, bspw. über die Steuerungseinheit70 . Jegliche Abbildungs-Daten, die von OS1 und/oder OS2 erfasst werden, werden das Hintergrundrauschen darstellen, das sich aus dem Umgebungslicht ergibt. (Es ist wiederum zu verstehen, dass zur Minimierung der Wirkung von Umgebungslicht die Emitter190 und die Kameras OS1, OS2 vorzugsweise mit einer Wellenlängenvorgabe arbeiten, die sich von dem Umgebungslicht unterscheidet.) Wenn dasjenige erfasst ist, was sich als Hintergrundrauschsignal bezeichnet, können die Kameras OS1 und OS2 nun normal und synchron mit den Emittern(n)190 arbeiten. Abbildungs-Daten, die von den Kameras OS1 und OS2 synchron mit den Emittern(n)190 erfasst werden, werden aktuelle Daten umfassen, bspw. die Benutzerobjektschnittstelle mit der Ebene30' plus jegliche (unerwünschten) Wirkungen aufgrund von Umgebungslicht. Die Prozessoreinheit70 (oder eine andere Einheit) kann dann dynamisch das Hintergrund rauschsignal aus den aktuellen Daten plus Rauschsignal subtrahieren, um zu einem aktuellen Datensignal zu gelangen, so dass das Signalrausch-Verhältnis verbessert wird. -
1C zeigt eine nicht strukturierte passive Ausführungsform der vorliegenden Erfindung. Das System10 in1C ist passiv, egal welche Umgebungslicht-Quelle195 vorhanden ist, und stellt optische Energie bereit, die während der Abbildung benutzt wird. Ähnlich zu dem System10 in1B ist OS1 eine Kamera20' , die eine interessierende Ebene30' definiert, und OS2 ist eine Kamera60 . Typischerweise wird die Ebene30' einen Abstand ΔY' über der Arbeitsfläche40 definieren, typischerweise in einem Abstand von wenigen mm. Eine Benutzerobjektinteraktion mit der Ebene30' wird von OS1 und OS2 erfasst, indem optische Energie von der Umgebungslichtquelle195 benutzt wird. Triangulationsverfahren können dann eingesetzt werden, um den Interaktionspunkt oder den Schnittpunkt mit der Ebene30' zu lokalisieren, wie an anderer Stelle hier beschrieben. -
2A zeigt die Geometrie, mit der der Ort (x, z) des Schnittpunkts zwischen einem Benutzerfinger oder Objekt120R und der Ebene30 bestimmt werden kann, indem das Triangulationsverfahren verwendet wird.2A und2B können verwendet werden, um die Analyse der verschiedenen Ausführungsformen zu beschreiben, die in1A –1C gezeigt sind. - Wie nachfolgend angegeben, hilft die Triangulation, die Form von Oberflächen in einem Sichtfeld von Interesse zu bestimmen, durch geometrische Analyse der Dreiecke, die von den Projektionsstrahlen, bspw. R1, R2 auf zwei optische Systeme bspw. OS1
20 , OS260 projiziert werden. Eine Basislinie B stellt die be kannte Länge der Zeile dar, die die Mittelpunkte der Projektion der zwei optischen Systeme OS1, OS2 verbindet. Für einen Punkt (x, z) auf einer sichtbaren Fläche in dem Sichtfeld von Interesse, kann ein Dreieck durch den Ort des Punkts und durch die Orte von OS1 und OS2 definiert werden. Die drei Seiten des Dreiecks sind B, R1 und R2. OS1 und OS2 können den Winkelabstand des Dreiecks von einer Bezugsebene bestimmen, sowie die Winkel α1 und α2, die durch die Projektionsstrahlen gebildet werden, die den Oberflächenpunkt mit den Mittelpunkten der Projektion der zwei optischen Systeme verbindet. Winkel α1 und α2 und die Basislinie B bestimmen vollständig die Form des Dreiecks. Eine einfache Trigonometrie kann verwendet werden, um die Entfernung zu dem Oberflächenpunkt (x, z) sowie die Länge des Projektionsstrahls R1 und/oder R2 zu berechnen. - Es ist erforderlich, dass OS1
20 als eine einzelne Einheit implementiert wird. Beispielsweise zeigt2B eine Ausführungsform mit strukturiertem Licht, bei der das erste optische System sich gabelförmig teilt: ein Bereich OS1-A20-A ist ein Lichtemitter, der im Abstand B von OS2 und von dem zweiten Bereich OS1-B20-B angeordnet ist, einer lichtreflektierenden Vorrichtung, wie bspw. einem Spiegel. Der eingehende Fächerstrahl, der von OS1-A erzeugt wird, wird durch die Spiegel20-B abgelenkt, um die Ebene30 zu bilden. Bei der Ausrichtung von2B ist der Spiegel20-B schräg um etwa 45° relativ zu der horizontalen Ebene, und die Ablenkung erfolgt im Wesentlichen an einer vertikalen Ebene bis zu einer im Wesentlichen horizontalen Ebene. In2B wird tatsächlich eine passive Lichtausführungsform OS260 eine Kamera sein, die in einem Winkel ϕ im Allgemeinen in Richtung des Sichtfelds von Interesse gerichtet ist, nämlich wo ein Benutzerfinger oder Stift eine virtuelle Eingangsvorrichtung benützen wird, die unter der Fächerebene30 angeordnet ist. - Die Triangulation entsprechend der vorliegenden Erfindung benutzt vorzugsweise eine Standardkamera mit einem planaren Sensor als OS2
60 . Die Natur von OS120 unterscheidet zwischen zwei ziemlich weiten Klassen von Triangulation. Bei einer strukturierten Lichttriangulation, ist OS120 typischerweise ein Laser oder Ähnliches, dessen Strahl als eine einzelne Zeile geformt werden kann, die bewegt wird, um einen Bewegungspunkt auf eine Fläche zu projizieren. Alternativ kann der Laserstrahl planar sein und bewegt werden, um eine planare Kurve zu projizieren. Wie angemerkt, kann eine andere Klasse von Triangulationssystem als passive Triangulation bezeichnet werden, bei der eine Kamera als OS120 benutzt wird. Systeme mit strukturiertem Licht tendieren dazu, komplexer zu sein, um mehr Leistung aufzuweisen und zu verbrauchen aufgrund des Bedürfnisses, eine Ebene von Licht zu projizieren. Passive Systeme sind weniger teuer und verbrauchen weniger Energie. Allerdings müssen passive Systeme das sog. Korrespondenzproblem lösen, bspw. um zu bestimmen, welche Paare der Punkte in den zwei Abbildungen Projektionen des gleichen Punkts in der realen Welt sind. Wie nachfolgend beschrieben werden wird, können passive nicht strukturierte Lichttriangulationsausführungsformen entsprechend der vorliegenden Erfindung benutzt werden. - Ob das System
10 als ein strukturiertes Lichtsystem implementiert wird, in dem OS1 aktiv Licht emittiert und OS2 eine Kamera ist, oder als ein passives System, in dem OS1 und OS2 beide Kameras sind, wird Information von OS2 und OS1 mit einer Verarbeitungseinheit gekoppelt, bspw.70 , die dann festlegen kann, welche Events auftreten. Wenn ein Objekt, bspw.120R , die Projektionsebene30 schneidet, die mit OS120 verknüpft ist, ist der Schnitt mit jeder Ausführungsform erfassbar. Bei einer Ausführungsform mit strukturiertem Licht, bei der OS1 optische Energie emittiert, wird der Schnitt durch optische Energie erkannt, die von dem schneidenden Objekt120R reflektiert und von OS2 erfasst wird, typischerweise einer Kamera. Bei einer passiven Lichtausführungsform wird der Schnitt von OS1, einer Kamera, und ebenfalls von OS2, einer Kamera, gesehen. Bei jeder Ausführungsform wird der Schnitt mit der Ebene30 erfasst, als ob der Bereich der Fläche40 unter der (x, z) Ebenenschnitt von dem Objekt120R berührt würde. Das System10 umfasst vorzugsweise ein Computersystem70 , das Daten von OS1, OS2 empfängt und die Geometrie verwendet, um die Position des Ebenenschnitts (x, z) aus den reflektierten Abbildungs-Koordinaten in einer Ausführungsform mit strukturiertem Licht zu bestimmen, oder aus den Kameraabbildungskoordinaten in einem passiven System. Als solches kann die doppelte Aufgabe des anfänglichen Erfassens und des kontinuierlichen Erfassens von Berührungen und dem Durchdringen der Ebene30 (bspw. Berührungs-Events) und dem Bestimmen der Schnittkoordinatenpositionen auf der Ebene dadurch erreicht werden. - Um soweit zusammenzufassen, werden Berührungs-Events erfasst und deklariert, wenn OS1 den Schnitt der Ebene
30 durch ein eindringendes Objekt, wie bspw.120R erkennt. In einem Zwei-Kamera-System wird ein Verhältnis zwischen den Punkten in dem erhaltenen Bild von OS1 und von jenem von OS2 aufgebaut. Danach werden die Koordinaten der OS2-Kamera in Berührungs-Gebiet-Koordinaten (x-Achse, z-Achse) umgewandelt, um die (x, z)-Koordinatenposition des Events innerhalb des Gebiets der Ebene30 von Interesse umzuwandeln. Vorzugsweise werden solche Umwandlungen durch die Prozessoreinheit70 ausgeführt, die Algorithmen ausführt, um die Schnittpositionen in der Ebene30 aus Abbildungs-Koordinaten der sichtbaren Punkte von OS2 zu berechnen. Ferner muss ein passives Lichtsystem eindringende Objekte von dem Hintergrund in Abbildungen von OS1 und OS2 unterscheiden. Wenn das System10 ein passives Lichtsystem ist, müssen entsprechende Forderungen zwischen den Abbildungen der Kamera OS1 und der Kamera OS2 gestellt werden. Wenn das System10 ein System mit strukturiertem Licht ist, ist es wünschenswert, die Interferenz durch Umgebungslicht zu minimieren. - Es sei nun die Berechnung des (X, Z)-Schnittpunkts oder der Fingerspitzenposition auf der Ebene
30 betrachtet. In einer perspektivischen Projektion wird eine Ebene im Raum und dessen Abbildung über eine Transformation in Bezug gesetzt, die Homographie genannt wird. Es sei ein Punkt (X, Z) auf einer solchen Ebene durch den Spaltenvektor P = (X, Z, 1)T dargestellt, wobei die Hochstellung T die Transponierung bezeichnet. In ähnlicher Weise sei der entsprechende Abbildungs-Punkt dargestellt durch p = (x, z, 1)T. - Eine Homographie ist dann eine lineare Transformation P = Hp, wobei H eine 3 × 3 Matrix ist.
- Diese Homographiematrix kann aufgefunden werden, in dem eine Kalibrierungsprozedur verwendet wird. Da der Sensor auf der Fläche ruht, ist die Sensorposition relativ zu der Fläche konstant, und die Kalibrierungsprozedur muss nur einmal ausgeführt werden. Zum Kalibrieren wird ein Gitter mit bekanntem Raster auf eine flache Fläche platziert, auf der der Sensor ruht. Die Koordinaten Pi der Abbildungs-Punkte, die den Gitter-Scheitelpunkten, Pi, entsprechen, werden in der Abbildung gemessen. Ein direkter linearer Transformations-(DLT)-Algorithmus kann verwendet werden, um die Homographiematrix X zu bestimmen. Eine solche DLT-Umwandlung ist im Stand der Technik bekannt; vgl. bspw. Richard Hartley und Andrew Zisserman. Multiple View Geometry in Computer Vision, Cambridge University Press, Cambridge, UK, 2000.
- Sobald H bekannt ist, wird der Flächenpunkt P entsprechend einem Punkt p in der Abbildung sofort durch die Matrix-Vektormultiplikation wie zuvor angegeben, berechnet. Vorzugsweise werden solche Berechnungen von dem System
70 ausgeführt. - Eine Abbildungs-Übereinstimmung für passive Lichtausführungsformen wird nun beschrieben werden. Die Kameras OS1
20 und OS260 sehen die gleiche Ebene im Raum. Im Ergebnis wird das Aufeinanderabbilden der Abbildung der Zeilenabtastkamera von OS1 und der Kameraabbildung von OS2 selbst eine Homographie sein. Dies ist ähnlich zu der Abbildung zwischen der OS2-Kameraabbildung und der Ebenen-30-Berührungs-Fläche, wie zuvor mit Bezug auf die Berechnung der Fingerspitzenschnittposition beschrieben. Somit kann eine ähnliche Prozedur verwendet werden, um dieses Abbilden bzw. Mappen zu berechnen. - Es sei angemerkt, dass, da die Zeilenabtastkamera OS1
20 im Wesentlichen die Berührungs-Fläche, die zu einer einzelnen Zeile kollabiert ist, sieht oder streift, die Homographie zwischen den beiden Abbildungen verschlechtert wird. Für jeden OS2-Kamerapunkt gibt es einen OS1-Zeilenabtastabbildungspunkt, aber für jeden OS1-Zeilenabtastabbildungspunkt gibt es eine komplette Zeile von OS2-Kamerapunkten. Aufgrund dieser Entartung wird der zuvor beschriebene DLT-Algorithmus (leicht) modifiziert, um eine Punkt-zu-Zeilen-Übereinstimmung zu erhalten. Durch Definition besitzt eine passive Lichtausführungsform der vorliegenden Erfindung keine Kontrolle über die Umgebungsbeleuchtung und dies kann die Unterscheidung von eindringenden Schnittobjekten oder Spitzen von dem allgemeinen Hintergrund erschweren. Kurz gesagt, wie soll festgestellt werden, ob ein bestimmter Abbildungs-Punkt in einer OS1-Abbildung oder OS2-Abbildung die Abbildung eines Punkts auf einem Objekt, wie bspw.120R darstellt, oder ein Punkt im Allgemeinen Hintergrund ist. Ein Algorithmus, der vom System70 ausgeführt wird, wird nun beschrieben. - Anfänglich wird von einer oder mehreren Hintergrundabbildungen I1,..., In ausgegangen, wobei nur der Berührungs-Flächenbereich der Ebene
30 in Sicht ist. Es wird angenommen, dass die Kameras OS1 und OS2 auf Farbe ansprechen können, und es sollen Rbi(x, z), Gbi(x, z), Bbi(x, z), die rote, grüne und blaue Komponente der Hintergrundabbildungs-Intensität Ii an der Pixelposition (x, z) sein. Es soll sb(x, z) eine Zusammenfassung von Rbi(x, z), Gbi(x, z), Bbi(x, z) über alle Abbildungen sein. Beispielsweise kann sb(x, z) ein Drei-Vektor sein mit den Mittelwerten, Zentralwerten oder anderen Statistikwerten von Rbi(x, z), Gbi(x, z), Bbi(x, z) an der Pixelposition (x, z) über alle Hintergrundabbildungen I1,..., In, wobei möglichst eine Normalisierung vorgenommen wurde, um Variationen in der Abbildungs-Helligkeit auszugleichen. - Als Nächstes wird eine ähnliche Zusammenfassung st für die Spitze- bzw. Tip-Pixel über eine neue Reihe von Abbildungen J1, ..., Jm gesammelt. Diese zweite Zusammenfassung bzw. Summe ist ein einzelner Vektor und nicht eine Abbildung von Vektoren, wie für sb(x, z). Mit anderen Worten heißt das, dass st nicht von der Pixelposition (x, z) abhängt. Diese neue Summe kann bspw. berechnet werden, indem ein Benutzer gebeten wird, Fingerspitzen oder einen Stift in das sensitive Gebiet der Fläche zu bringen und indem Werte nur an Pixelpositionen (x, z) aufgezeichnet werden, dessen Farbe sich von der Hintergrundsumme sb(x, z) an der Position (x, z) unterscheidet, und in dem Statistiken über alle Werte von j, x, z berechnet werden.
- Bei einer vorgegebenen neuen Abbildung mit Farbkomponenten c(x, z)=(R(x, z), G(x, z), B(x, z)) trägt dann ein bestimmtes Pixel dazu bei (x, z), entweder der Spitze oder dem Hintergrund durch eine geeignete Diskriminierungsregel zugeordnet zu werden. Beispielsweise kann eine Entfernung d(c1, c2) zwischen Drei-Vektoren (Euklidscher Abstand ist ein Beispiel) definiert werden, und Pixel werden basierend auf der nachfolgenden beispielhaften Regel zugeordnet:
Hintergrund falls d(c(x, z), sb(x, z)) ≪ d(c(x, z), st).
Spitze falls d(c(x, z), sb(x, z)) ≫ d(c(x, z), st) .
Unbekannt sonst. - Techniken zur Reduzierung von Umgebungslichtinterferenz, insbesondere für die Ausführungsform mit strukturierter Lichttriangulation, werden nun beschrieben. Bei einer solchen Ausführungsform muss OS2 zwischen Umgebungslicht und Licht unterscheiden, das von dem Zeilengenerator erzeugt wurde und von einem eindringenden Objekt zurückreflektiert wurde.
- Bei Einsatz eines ersten Verfahrens emittiert OS1 Energie in einem Bereich des Lichtspektrums, in dem Umgebungslicht wenig Energie hat, bspw. im nahen Infrarotbereich. Ein Infrarotfilter auf der Kamera OS2 kann gewährleisten, dass das von dem OS2-Sensor erfasste Licht hauptsächlich das von dem Objekt (bspw. 120R) in die Linse der Kamera OS2 reflektierte ist.
- Bei einem zweiten Verfahren arbeitet OS1 im sichtbaren Bereich des Spektrums, aber ist wesentlich heller als Umgebungslicht. Obgleich dies im Prinzip mit jeder Farbe der Lichtquelle erreicht werden kann, ist es für Anwendungen im Haus nützlicher, eine Blau-Grün-Lichtquelle für OS1 (500 nm bis 550 nm) zu benutzen, da die Standardleuchtstofflampen relativ wenig Ausstrahlung in diesem Band haben. Vorzugsweise wird OS2 ein angepasstes Filter aufweisen, um zu gewährleisten, dass ein Ansprechen auf andere Wellenlängen im Wesentlichen gedämpft wird.
- Ein drittes Verfahren zur Reduzierung der Wirkungen von Umgebungslicht benutzt eine Standardlaserquelle im sichtbaren Bereich für OS1 und einen Farbkamerasensor für OS2. Dieses Verfahren benutzt den gleichen Hintergrund-Subtraktionsalgorithmus, wie zuvor beschrieben. Es sei die nachfolgende Kombination definiert, die die gleiche Terminologie wie zuvor benutzt:
C(x, z) = min ⎨ d(c(x, z), sb(x, z)), d(c(x, z), st) ⎬. - Diese Kombination wird exakt Null sein, wenn c(x, z) gleich der Spitzen-Summe st (da in d(st, st) = 0) des repräsentativen Objekts ist und für die Hintergrundabbildung sb(x, z) (da d(sb(x, z), sb(x, z)) = 0), und nahe Null für andere Objektspit zenabbildungs-Bereiche und für sichtbare Teile des Hintergrunds. Mit anderen Worten, werden die Objektspitzen und der Hintergrund in der C(x, z) kaum sichtbar sein. Durch Vergleich an Positionen, wo die Projektionsebene
30 von dem Laseremitter OS1 die Objektspitzen120 schneidet, wird der Term d(c(x, z), st) deutlich nicht Null sein, was hier wiederum zu einem im Wesentlichen Nicht-Null-Wert für C(x, z) führt. Diese Methode erreicht das gewünschte Ziel der Identifizierung von im Wesentlichen nur den Objektspitzenpixeln, die von dem Laser (oder einem anderen Emitter) OS1 bestrahlt werden. Dieses Verfahren kann variiert werden, um Lichtemitter unterschiedlicher Farbe zu benutzen, um andere Abstandsdefinitionen für den Abstand d zu benutzen, und um unterschiedliche Summen sb(x, z) und st zu benutzen. - Bezug nehmend auf
1A , falls eine Vorrichtung80 ein kompaktes System ist, wie bspw. ein PDA oder ein Mobilfunkgerät, wäre es insbesondere wünschenswert, die Größe zu reduzieren, die zur Implementierung der vorliegenden Erfindung benötigt wird. Ein kleinerer Gesamt-Formfaktor kann sich ergeben, wenn OS2 in einem bestimmten Winkel θ, wie in1A –1C ,2A ,2B gezeigt, mit Bezug auf die Ebene30 oder die Fläche40 geneigt wird. Aber wenn der Winkel θ sinkt, sieht die Kamera OS2 die Ebene30 aus einem flacheren Winkel. Für eine feste Größe des berührungsempfindlichen Gebiets der Ebene30 , d.h, der Rechteckfläche, die „zu berühren" ist durch ein Benutzerobjekt, um eine darunter liegende virtuelle Eingabevorrichtung zu manipulieren, sinkt das wirksame Gebiet, das von dem Sichtfeld umgeben wird, da der Abstand B und der Winkel θ sinken. Das Ergebnis besteht darin, dass die effektive OS2-Auflösung sinkt und damit die Genauigkeit der z-Tiefen-Messung, wie in3A ge zeigt, sinkt, wobei L eine Kameralinse bezeichnet, die mit OS2 verknüpft ist, dessen Ebene von Pixeldetektoren als eine gerade Linie gezeigt ist, die mit OS2 bezeichnet ist. - Wie in
3A angegeben, führt eine Bewegung von OS2 näher an die Ebene30 zu einem flacheren Blickpunkt und zu einer kleineren weniger akkurat aufgenommenen Kameraabbildung. Diese nachteiligen Nebeneffekte können reduziert werden, wie in3B gezeigt ist, durch Kippen der Ebene der Pixeldetektoren in der Kamera OS2, wobei nahezu parallel zu der Ebene30 gekippt wird. Bei der gekippten Konfiguration von3B ist festzustellen, dass eine wesentlich größere Anzahl von Abbildungs-Abtastzeilen den Strahlenkegel von dem sensitiven Gebiet auf der Ebene30 schneiden, was die Tiefenauflösung entsprechend erhöht. Es sei bspw. der relativ kleine Abstand Dx in3A mit dem großen Abstand Dx' in3B verglichen, was die große Anzahl von Abbildungs-Abtastzeilen darstellt, die nun in Benutzung sind. Wenn die OS2-Kamerasensorebene paralleler zu der Ebene der Berührungs-Fläche oder der Ebene30 wird, führt dies zu einer geringeren Störung der Berührungs-Flächenabbildung. Dies impliziert, dass parallele Zeilen auf der Berührungs-Fläche (oder der Ebene30 ) parallel in der OS2-Kameraabbildung bleiben werden. Ein Vorteil ist die Einfachheit der Homographie H für eine affine Transformation (ein Verschieben und Skalieren). Ferner wird die Abbildungs-Auflösung über das gesamte sensitive Gebiet innerhalb des interessierenden Blickfelds gleichmäßiger gemacht. - Es sei nun die Konfiguration von
3C betrachtet. Es ist ersichtlich, dass unterschiedliche Punkte auf dem berührungsempfindlichen Gebiet auf der Ebene30 in unterschiedlichen Abständen von der Linse L der Kamera OS2 sind. Dies bedeutet, dass man das gesamte sensitive Gebiet von Interesse nicht präzise fokussieren kann, falls die Linse L wie in3A oder in3B gezeigt positioniert ist. Während ein Schließen der Kamerablende die Tiefe des Sichtfelds, d.h. die Tiefenschärfe erhöhen könnte, würden die sich daraus ergebenden Abbildungen lichtärmer werden, und das Abbildungs-Signalrausch-Verhältnis würde verschlechtert werden. - Entsprechend kann die Konfiguration von
3C verwendet werden, wobei die Linse L relativ zu3B neu positioniert wird. Bei dieser Konfiguration werden die Berührungs-Fläche30 , der Kamera OS2-Sensor und die Kameralinse L als die sog. Scheimpflug-Bedingung erfüllend betrachtet, bei der deren jeweiligen Ebenen sich entlang einer gemeinsamen Linie schneiden, einer Linie, die in3C im Unendlichen liegt. Weitere Details zu der Scheimpflug-Bedingung finden sich in The Optical Society of America, Handbook of Optics, Michael Bass, Editor in Chief, McGraw-Rill, Inc., 1995. Bezug nehmend auf die3C , wenn das relevante optische System diese Bedingung erfüllt, werden alle Punkte auf der Berührungs-Fläche30 im Brennpunkt liegen. Durch Verwendung eines passend gekippten SensorsOS2 und einer passend positionierten Linse S, die die Scheimpflug-Bedingung erfüllt, wird die Abbildung, die von OS2 gesehen wird, der interessierenden Punkte auf der Oberflächenebene30 im Brennpunkt sein und werden eine hohe Auflösung mit geringer Verzerrung zeigen. Allerdings kann die Erfüllung der Scheimpflug-Bedingung zu einem Verlust von Abbildungs-Helligkeit führen, da gegenüber der Konfiguration von3B der Winkel, den die Linse einnimmt, wenn von der Mitte des sensitiven Gebiets auf der Ebene30 betrachtet, reduziert wird. Als Folge davon, ist es bei einigen Anwendungen bevorzugt, einen Kompromiss zwischen Schärfe des Brennpunkts und Abbildungs-Helligkeit zu erreichen, in dem die OS2-Kameralinse in eine Ausrichtung gebracht wird, die zwischen jener von3B und jener von3C liegt.3D zeigt eine solche Zwischenkonfiguration, bei der die Linse L zweckmäßigerweise leicht weg von der Scheimpflug-erfüllenden Ausrichtung mit Bezug auf die Ebenen von OS2 und30 gekippt ist. - Solche Zwischenausrichtungen erfüllen nicht die Scheimpflug-Bedingung, allerdings nur um einen geringen Grad, und zeigen deshalb gute Fokussiereigenschaften gegenüber einer Konfiguration, dessen Linsenachse direkt in Richtung der Mitte des sensitiven Gebiets der Ebene
30 gerichtet ist.3E zeigt eine andere alternative Zwischenkonfiguration, eine, bei der die Scheimpflug-Bedingung exakt eingehalten ist, aber der Kamerasensor OS2 weg von der Horizontalen gekippt ist. Die Konfiguration von3E kann eine exakte Fokussierung erreichen, aber mit etwas geringerer Bildauflösung und mehr Störung als bei der Konfiguration von3C . -
4 ist ein Blockdiagramm, das wirksame Bereiche der Prozessoreinheit70 innerhalb des Systems10 zeigt, welche Prozessoreinheit vorzugsweise die verschiedenen Triangulations- und anderen Berechnungen ausführt, die hier beschrieben sind, um (x, z)-Schnittpunkte mit der interessierenden Ebene30 zu erfassen und zu identifizieren. Als linker Bereich von4 wird Information von OS120 und OS230 jeweils in Pixeltabellen 200-1, 200-2 eingegeben. In4 beziehen sich die OS1- und OS2-Eingaben auf einen Strom von Bildern der digitalisierten Abbildungen, die vom optischen System 1 (20 ) und vom optischen System 2 (60 ) in einem planaren Entfernungssensorsystem10 entsprechend der vorliegenden Erfindung erzeugt wurden. Bei einer bevorzugten Ausführungsform erzeugt das optische System zumindest etwa 30 Bilder pro Sekunde (fps). Höhere Bildraten als 30 fps sind wünschenswert, da sich die Fingerspitze des Benutzers oder des Stifts zwischen zwei Bildern um mehrere Pixel bewegen kann, während auf einer virtuellen Eingabevorrichtung "getippt" wird. Pixelabbildungsmodule200-1 ,200-2 bauen digitale Bilder aus OS1 und OS2 im Speicher auf, der mit der Berechnungseinheit70 verknüpft ist. Ein Synchronisierungsmodul210 gewährleistet, dass die zwei optischen Systeme Bilder der digitalisierten Abbildungen in etwa derselben Zeit produzieren. Falls erwünscht, kann ein doppelpufferndes System implementiert sein, um den Aufbau eines Bildes zu ermöglichen, während das vorhergehende Bild (in der Zeit) durch andere Module verarbeitet wird. Ein Berührungs-Erfassungsmodul220 erkennt eine Berührung (bspw. dass der Finger eines Benutzers oder des Stifts die durch OS1 erfasste optische Ebene durchdringt), wenn der Umriss einer Fingerspitze oder eines Stifts in einer ausgewählten Zeile des Bilds erscheint. Wenn eine Berührung erkannt wird, zeichnet das Spitzen-Erfassungsmodul230 den Umriss der entsprechenden Fingerspitze in der geeigneten Pixeltabelle200-1 oder200-2 auf. In4 wird keine Tabelle erzeugt, bei einer Ausführungsform mit strukturiertem Licht, wo OS1 ein Lichtstrahlgenerator ist, und die Berührungs-Erfassung wird das Eingangssignal von OS2 und nicht das von OS1 benutzen. - Das Berührungs-Positionsmodul
240 benutzt die Spitzen-Pixelkoordinaten von dem Spitzen-Erfassungsmodul230 zu dem Zeitpunkt, zu dem eine Berührung von dem Berührungs-Erfassungsmodul220 gemeldet wird, um die (x-z)-Koordinaten der Berührung auf der Berührungs-Fläche zu finden. Wie angegeben, ist eine Berührung gleichbedeutend mit einer Durchdringung der Ebene30 , die mit einem optischen EmitterOS1 in einer Ausführungsform mit strukturiertem Licht verknüpft ist, oder bei einer Ausführungsform mit passivem Licht, die mit einer Sichtebene einer KameraOS1 verknüpft ist. Mathematische Methoden zur Umwandlung der Pixelkoordinaten in die X-Z-Berührungs-Position werden hier an anderer Stelle beschrieben. - Ein Tastenidentifikationsmodul
260 benutzt die X-Z-Position einer Berührung und bildet die Position auf eine Tastenidentifikation ab, in dem eine Tastatur-Layouttafel250 eingesetzt wird, vorzugsweise im Speicher abgespeichert, der mit der Berechnungseinheit70 verknüpft ist. Die Tastatur-Layouttafel250 definiert typischerweise die oberen/unteren/linken und rechten Koordinaten jeder Taste relativ zu einem Null-Ursprungspunkt. Als solches ist eine Funktion des Tastenidentifikationsmoduls260 , die Ausführung einer Suche in der Tafel250 und die Bestimmung, welche Taste die (x, z)-Koordinaten des Berührungs-Punkts enthält. Wenn die berührte (virtuelle) Taste identifiziert ist, bildet das Übersetzungsmodul270 die Taste auf einem vorbestimmten TASTATURCODE-Wert ab. Der TASTATUR-Wert bzw. KEYCODE-WERT wird ausgegeben oder an eine Anwendung gereicht, die in der begleitenden Vorrichtung oder dem System80 ausgeführt wird (das auf einer begleitenden Vorrichtung ausgeführt wird), die darauf wartet, eine Meldung eines Tastaturdrück-Ereignisses zu empfangen. Die Anwendung, die gerade ausgeführt wird, interpretiert das Tastendrück-Ereignis und ordnet ihm eine Bedeutung zu. Beispielsweise benutzt eine Texteingabeanwendung den Wert, um zu bestimmen, welches Symbol bzw. Zeichen eingetippt wurde. Eine elektronische Klavieranwendung bestimmt, welche Musiknote gedrückt wurde und spielt diese Note, etc. - Alternativ, wie in
4 gezeigt, können die X-Z-Berührungs-Koordinaten direkt der Anwendung280 zugeführt werden. Die Anwendung280 könnte die Koordinatendaten verwenden, um die Position eines Cursors auf einem Display in einer virtuellen Maus oder virtuellen Trackball-Ausführungsformm zu steuern, oder um eine digitale Tinte schnell zu steuern, dessen Ort auf einem Display für eine Zeichen- oder Handschriftanwendung mit einem virtuellen Füllfederhalter oder einer virtuellen Stiftausführungsform gezeigt wird. -
5A ist eine vereinfachte Ansicht des Systems10 , bei dem eine virtuelle Vorrichtung50 nun eine Steuerung mit fünf Gebieten ist, und bei der die begleitende Vorrichtung80 ,90 einen Monitor umfasst. Bei dieser Ausführungsform ist die begleitende Vorrichtung80 oder90 mit einem Display bzw. einer Anzeige150 gezeigt, die Icons140 umfassen kann, von denen eines von einem Cursor310 umgeben ist, und ein Benutzer kann diesen bewegen, in dem er eine virtuelle Vorrichtung50' verwendet, hier bspw. einen virtuellen Trackball oder eine Maus. Innerhalb einer virtuellen Vorrichtung50' wird bspw., falls ein Bereich der Benutzerhand120R (oder des Stifts) einen virtuellen Bereich300-1 drückt, der dargestellte Cursor310 auf der begleitenden Vorrichtung80 ,90 angewiesen, sich nach links zu bewegen. Falls das virtuelle Gebiet300-2 gedrückt wird, sollte sich der Cursor nach oben bewegen. Falls das virtuelle Gebiet300-3 gedrückt wird, sollte sich der Cursor nach rechts bewegen, bspw. um das Icon eines Brotlaibs „auszuwählen", und falls das virtuelle Gebiet300-4 gedrückt wird, sollte sich der Cursor in Richtung des Bodens der Anzeige auf der Vorrichtung80 ,90 bewegen. Falls der Benutzer das fünfte Gebiet300-5 drückt, ein „Daumen-nach-oben"-Gebiet, weiß die begleitende Vorrichtung80 ,90 , dass die Benutzerauswahl abgeschlossen ist. In5A , falls der Benutzer nun das Gebiet300-5 drückt, wird das „Hotdog"-Icon ausgewählt. Falls die Vorrichtung80 ,90 ein Kiosk in einem Supermarkt wäre, würde das Auswählen des „Hotdog"-Icons eine Anzeige hervorbringen, die zeigt, wo im Markt Hotdogs zu finden sind, oder den Preis von verschiedenen Marken von Hotdogs, die verkauft werden, oder die Vorrichtung80 ,90 könnte sogar Hotdogs ausgeben. Falls die Vorrichtung80 ,90 in einer Transporteinstellung verwendet würde, könnten die Icons (oder Wörter) verschiedene Ziele angeben, und die Vorrichtung80 oder90 könnte die Strecken, Zeitpläne und Preise zu den Zielen angeben, und könnte sogar Fahrkarten zur Verwendung in einem Bus, einer U-Bahn, einer Fluglinie einem Boot, etc. ausgeben. Ein Benutzer könnte bspw. zwei Gebiete der Eingangsvorrichtung50' drücken, die den Reise-Ausgangspunkt und den Reise-Zielpunkt darstellen, wobei das System10 eine Darstellung geeigneter darzustellender Transportfahrzeuge, Zeitpläne, Gebühren, etc. veranlassen könnte, und falls gewünscht, auszudrucken. Es versteht sich, dass die Information, die vom System10 erzeugt wird, einfach die Roh(x, z)-Koordinaten sein können, die eine Softwareanwendung, die von einer begleitenden Vorrichtung ausgeführt wird, verwendet werden können, um einen Cursor oder eine andere Information auf einem Monitor neu zu positionieren. - Es versteht sich in
5A , dass die virtuelle Vorrichtung50' passiv ist; ihr Umriss kann ausgedruckt oder auf eine darunter liegende Arbeitsfläche gemalt werden oder vielleicht kann des sen Umriss vom System10 projiziert werden. Die verschiedenen Gebiete von Interesse bei der virtuellen Vorrichtung50 können im Hinblick auf Koordinaten identifiziert werden, relativ zu der x-z-Ebene. Es sei die Information in der nachfolgenden Tabelle 1 berücksichtigt, die der Information im Tastatur-Layout250 in4 entspricht: - Wenn der Finger des Benutzers (oder ein Stift) ein Gebiet der virtuellen Eingabevorrichtung
50 berührt, bestimmt das Berührungs-Positionsmodul240 (siehe4 ) die (x, z)-Koordinaten des Berührungs-Punkts110 . In5 liegt der Berührungs-Punkt110 innerhalb des „B"-Gebiets300-4 . Das Tastenidentifikationsmodul260 benutzt die Information des Tastatur-Layouts250 , in diesem Beispiel wie in Tabelle 1 gezeigt, um zu bestimmen, wo in der relevanten (x, z)-Ebene die Berührungs-Punktkoordinaten aufgetreten sind. Beispielhaft sei angenommen, dass die Berührungs-Koordinaten (x, z) (1,5; 0,5) sind. Eine Suchroutine, die vorzugsweise mit der Einheit70 (siehe1A ) verknüpften Speicher gespeichert sind und die von der Einheit70 ausgeführt wird, bestimmt, dass 1 < x < 2 und –1 < z < 1 ist. Durch Suchen von Information in der Tabelle 1 wird das Tastenidentifikationsmodul bestimmen, dass der Berührungs-Punkt110 innerhalb des Eintrags B fällt. Bei diesem Beispiel empfängt die begleitende Vorrichtung80 und90 Daten von dem System10 , die das Gebiet B anweisen, dass es gedrückt wurde. Die Prozessoreinheit70 in dem System10 kann veranlassen, dass die begleitende Vorrichtung solche andere Information erhält als sie zur Ausführung der verknüpften Rufgabe mit dem Event gefordert wird, bspw. um den Cursor nach unten auf der Anzeige zu bewegen. -
5B zeigt eine Ausführungsform des Systems10 ähnlich zu jener, die in1A gezeigt. In5B ist die virtuelle Eingabevorrichtung50 eine Computertastatur und die begleitende Vorrichtung80 ,90 ist ein mobiler Empfänger/Sender, bspw. ein Mobilfunktelefon. Es versteht sich, dass das System10 tatsächlich innerhalb der Vorrichtung80 ,90 implementiert sein könnte. Als solches könnte OS1 einen Fächerstrahl30 von einem unteren Bereich der Vorrichtung80 ,90 ausstrahlen, und OS2 könnte in einem oberen Bereich der gleichen Vorrichtung vorgesehen sein. Die virtuelle Eingabevorrichtung50 könnte – falls gewünscht – optisch von einer Vorrichtung80 ,90 projiziert werden. Alternativ könnte die virtuelle Eingabevorrichtung50 auf ein faltbares Substrat, bspw. aus Plastik, Papier, etc. aufgedruckt sein, das innerhalb der Vorrichtung80 ,90 aufgenommen werden kann, dann entfernt und entfaltet oder entrollt und auf einer flachen Arbeitsfläche in Front vor der Vorrichtung80 ,90 platziert werden könnte. Der Ort der virtuellen Eingabevorrichtung50 vor einer Vorrichtung80 ,90 wäre so, dass OS1 einen Fächerstrahl30 emittieren kann, der die virtuelle Eingabevorrichtung umgibt, und OS2 könnte ein Schneiden110 eines Objekts, bspw. der Finger eines Benutzers oder einen Stift, etc., wobei ein Ort des Fächerstrahls jeden interessierenden Bereich in der virtuellen Eingabevorrichtung50 überdeckt bzw. darüber liegt. - In
5B wird OS2 nicht reflektierte optische Energie erfassen, bis das Objekt120R den Fächerstrahl130 durchschneidet, wobei einige optische Energie, die von OS1 emittiert wurde, reflektiert werden wird (130 ) und von OS2 erfasst werden wird. Relativ zu dem (x, z)-Koordinatensystem, das in1A gezeigt ist, ist der Schnittpunkt110 etwa der Ort (13,5). Bezug nehmend auf4 versteht sich, dass die Tastatur-Layouttafel250 zumindest einen Eintrag für jede virtuelle Taste besitzt, bspw. „1", „2",... „Q", „W",... „SHIFT", die auf der virtuellen Eingabevorrichtung50 definiert sind. Ein Eintrag-Suchprozess ähnlich zu dem, der mit Bezug auf5A beschrieben wurde, wird ausgeführt, vorzugsweise durch die Einheit70 , und die relevante virtuelle Taste, die unter dem Berührungs-Punkt110 liegt, kann identifiziert werden. In5B ist die relevante Taste „I", welcher Buchstabe „I" auf der Anzeige150 als Teil eines E-Mail-Nachrichtentextes140 gezeigt ist, der in das Mobilfunktelefon80 ,90 von einem Bereich der Benutzerhand120R (oder durch einen Stift) eingegeben wird. Die Möglichkeit, schnell Nachrichten durch Berührung in das Mobilfunkgerät80 ,90 einzugeben, indem die virtuelle Tastatur50 benutzt wird, steht im Gegensatz zu der aufwändigen Eingabe von Nachrichten, indem die Mobilfunktastatur verwendet wird. - In
5C ist eine Ausführungsform eines Systems10 gezeigt, bei dem der Arbeitsraum40 eine vertikale Wand ist, vielleicht in einem Geschäft oder einem Geschäftszentrum, und die virtuelle Eingabevorrichtung50 ist ebenfalls vertikal angeordnet. Bei dieser Ausführungsform ist die virtuelle Eingabevorrichtung50 mit mehreren Icons und/oder Wörtern320 gezeigt, die, wenn sie von einer Benutzerhand120 berührt werden, bspw. an einem Berührungs-Punkt110 , einen passenden Text und/oder eine Graphik abbildung140 auf dem Display150 in der begleitenden Vorrichtung80 ,90 erscheinen lassen. Bei diesem gezeigten Beispiel können die Icons320 Orte oder Bereiche in einem Speicher darstellen, und die Anzeige150 wird interaktiv weitere Information in Antwort auf die Benutzerberührung eines Icon-Gebiets bereitstellen. In einem Geschäftszentrum können die verschiedenen Icons ganze Geschäfte darstellen, oder Abteilungen oder Gebiete innerhalb eines Geschäfts, etc. Die Erfassung und Lokalisierung der Berührungs-Punkte, wie der bei110 , wird bevorzugt ausgeführt, wie dies mit Bezug auf die Ausführungsformen von3A und3B beschrieben wurde. Vorzugsweise führt eine Prozessoreinheit70 innerhalb des Systems10 Software aus, die ebenfalls innerhalb oder ladbar aus einer Prozessoreinheit70 gespeichert ist um zu bestimmen, welches Icon oder welcher Textabschnitt einer virtuellen Eingabevorrichtung50 erfasst wurde, und welche Befehle und/oder Daten zu einem Host-System80 ,90 übertragen werden sollen. - Bezug nehmend auf die Ausführungsform von
5C , falls die virtuelle Eingabevorrichtung50 geeignet ist, häufig geändert zu werden, bspw. wenn es ein Menü in einem Restaurant ist, wo die Anzeige150 detaillierte Informationen, wie bspw. Kalorien, Inhalt der Soßen, etc. anzeigen kann, kann die Vorrichtung50 innerhalb einer Wand40 rückprojiziert werden. Es ist verständlich, dass, falls das Layout und der Ort der verschiedenen Icons320 sich ändern, sich die Abbildungs-Information, die innerhalb der Einheit70 im System10 gespeichert ist, ebenfalls ändern wird. Die Fähigkeit, schnell die Natur und den Inhalt der virtuellen Eingabevorrichtung zu ändern, ohne notwendigerweise auf Icons mit einer festen Größe an einem festen Ort eingeschränkt zu sein, kann sehr nützlich sein. Falls ge wünscht, können tatsächlich einige Icons hinsichtlich ihrer Größe und ihres Orts auf der Vorrichtung50 fest sein, und deren Berührung durch einen Benutzer kann verwendet werden, um eine Neu-Abbildung von dem auszuwählen, was auf der Eingabevorrichtung50 gezeigt ist, und was durch Software innerhalb der Einheit70 abgebildet ist. Es versteht sich, dass zusätzlich zur Vereinfachung der Anzeigeinformation, die Werbung umfassen kann, die begleitenden Vorrichtungen80 ,90 verwendet werden können, um Werbecoupons330 für Benutzer auszugeben. - Es sei nun auf
6 Bezug genommen. Die Art der Registrierung eines Berührungs-Ereignisses und die Lokalisierung dessen Position, wird von dem System10 bestimmt in einer Weise, die davon abhängt, ob das System10 ein System mit strukturiertem Licht oder ein passives Lichtsystem ist. Wie früher angemerkt, kann in einem strukturierten LichtsystemOS1 ein Zeilenerzeugungs-Lasersystem sein, und in einem passiven Lichtsystem kann OS1 eine digitale Kamera sein. Jedes System definiert eine Ebene30 , die, wenn sie von einem Objekt wie bspw.120R , geschnitten wird, ein Berührungs-Ereignis auslöst, dessen (x, z)-Koordinaten dann zu bestimmen sind. Sobald die (x, z)-Koordinaten der virtuellen Berührung bestimmt sind, kann die vorliegende Erfindung entscheiden, welche Eingabe oder Befehl von der Person gemeint ist, die das System benutzt. Eine solche Eingabe oder Befehl kann zu einer begleitenden Vorrichtung übertragen werden, die natürlich auch die vorliegende Erfindung enthalten kann. - Falls das System
10 ein passives Lichtsystem ist, wird ein Berührungs-Ereignis registriert, wenn der Umriss einer Fingerspitze in einer ausgewählten Bildzeile von OS1 erscheint, einer digitalen Kamera. Der Berührungs-Ort auf der (x, z)-Ebene30 wird bestimmt durch die Pixelposition der entsprechenden Objektspitze (bspw.120R ) in OS2, wenn eine Berührung in OS1 erfasst wird. Wie in6 gezeigt, ist die Entfernung oder der Abstand von der Kamera OS1 zu dem Berührungs-Punkt eine affine Funktion der Anzahl der Pixel von dem „nahen" Ende des Pixelbildes. - Wie angemerkt, wird in einer Ausführungsform mit strukturiertem Licht, OS1 typischerweise ein Laserzeilengenerator sein, und OS2 wird eine Kamera sein, die hauptsächlich für die Wellenlänge der Lichtenergie empfindlich ist, die von OS1 emittiert wird. Wie angemerkt, kann dies erreicht werden, indem ein schmalbandiges Lichtfilter auf OS2 installiert wird, derart, dass nur Wellenlänge entsprechend jener, die von OS1 emittiert wird, passieren kann. Alternativ kann OS2 eine Blende bzw. ein Verschluss aufweisen, der synchron mit einem Impulsausgangssignal von OS1 öffnet und schließt, bspw. kann OS2 optische Energie nur zu Zeiten sehen, zu denen OS1 optische Energie emittiert. In beiden Ausführungsformen eines strukturierten Lichtsystems, wird OS2 vorzugsweise nur Objekte erfassen, die die Ebene
30 schneiden und damit Energie reflektieren, die von OS1 emittiert wurde. - In dem zuvor genannten Fall werden die Berührungs-Erfassungsdetektion und Entfernungsberechnung von dem System
10 ausgeführt. Somit wird ein Berührungs-Ereignis registriert, wenn der Umriss eines Objekts, bspw. die Fingerspitze120R , innerhalb des Sichtbereichs von OS2 erscheint. Wie in dem zuvor genannten Beispiel, kann der Entfernungsabstand als eine affine Funktion der Anzahl der Pixel von dem „nahen" Ende des Pixelbildes berechnet werden. - Ein weiteres Beispiel analytischer Schritte, die in
4 durch die vorliegende Erfindung ausgeführt werden, werden nun angegeben. Es sei angenommen, dass die virtuelle Eingabevorrichtung eine Tastatur50 ist, wie sie in1A gezeigt ist, und das System10 Ausgabeinformation erwartet, die zumindest den Scancode umfasst, der der virtuellen Taste entspricht, die der Benutzer auf der virtuellen Tastatur50 „berührt" hat. In1A und in2A sei angenommen, dass der obere Bereich (d.h. die Reihe mit den virtuellen Tasten „ESC", „F1", „F2", etc.) in einem Abstand von etwa 20 cm von dem optischen System OS120 liegt. Es sei weiter angenommen, dass die Kamera OS260 auf einem PDA oder einer anderen Vorrichtung80 angebracht ist, etwa 10 cm hoch ist und in einem bekannten Winkel α1 = 120° relativ zu der Ebene30 platziert ist. Es sei auch angenommen, dass die Kamera OS260 eine Linse mit einer Brennweite von etwa 4 mm besitzt, und einen Kamerasensor, der eine Gruppe von 480 Zeilen und 640 Spalten hat. - Die Z-Koordinate der oberen linken Ecke der virtuellen Tastatur
50 soll durch Konvention bei x = 0 und z = 0 gesetzt sein, bspw. (0,0). Die Homographie H, die die Punkte in der Abbildung auf Punkte auf der virtuellen Vorrichtung abbildet, hängt von der Neigung der Kamera OS260 ab. Eine beispielhafte Homographiematrix für die zuvor erwähnte Konfiguration ist wie folgt: - Die zuvor erwähnte Matrix braucht vorzugsweise nur einmal während einer Kalibrierungsphase bestimmt werden, wie an anderer Stelle hier beschrieben werden wird.
- Es sei nun auf
1A und7 Bezug genommen. Es sei angenommen, dass der Benutzer120L den Bereich der virtuellen Tastatur50 berührt, der dem Buchstaben „T" entspricht, welcher Buchstabe „T" auf einem Substrat aufgedruckt sein kann, um den Benutzerfingern Führung zu geben, oder der Teil einer Abbildung der virtuellen Eingabevorrichtung sein kann, die bspw. durch das System10 projiziert werden kann. Wenn das Koordinatensystem, das zuvor definiert wurde, verwendet wird, kann die Taste „T" als zwischen den horizontalen Koordinaten xmin = 10,5 und xmax = 12,4 cm und zwischen vertikalen Koordinaten zmin = 1,9 und zmax = 3,8 cm liegend gesehen werden, wie in7 gezeigt. - Es wird nun auf
6 Bezug genommen. Bevor der Benutzerfinger120L (oder Stift) die Ebene des Sensors OS120 schneidet, erfasst dieser kein Licht und sieht eine Abbildung, die aus schwarzen Pixeln besteht, wie in der Vignette340 am unteren Bildrand dargestellt ist. Sobald jedoch das Benutzerobjekt die optische Ebene30 schneidet, wird das Schnitt-Ereignis oder die Schnittstelle für OS120 sichtbar. OS120 erzeugt nun eine Abbildung ähnlich zu jener, die in der Vignette 350 am unteren Rand von6 gezeigt ist. Wenn die sich nach unten bewegende Spitze110 des Benutzerobjekts (bspw. der Finger120L ) die Ebene40 erreicht, werden mehr des Fingers sichtbar. Die Fingerkontur kann nun bestimmt werden, bspw. durch die Einheit70 , in dem eine Rand- bzw. Kantenerfassung durchgeführt wird. Eine solche Bestimmung ist am unteren Rand von6 als „TOUCH"-Ereignis-Vignette360 dargestellt. Ein Berührungs-Erfassungs modul220 in4 bestimmt dann, dass das Benutzerobjekt die Fläche40 berührt hat und informiert das Spitzen-Erfassungsmodul230 von diesem Ereignis. - Wie in
1A zu sehen, ist die virtuelle „T"-Taste in der zweiten Reihe bzw. Zeile der virtuellen Tastatur50 , und ist deshalb relativ nahe an dem Sensor OS120 . In6 entspricht diese Situation der Fingerspitze in Position110' . Wie weiter in6 gezeigt, ist die Projektion des Bodens der Fingerspitzenposition110' auf den Sensor des optischen Systems OS260 relativ nahe zu der Spitze der Abbildung. Der Rand der Fingerspitzenabbildung, der so erzeugt wird, ist ähnlich zu dem, wie er in der Vignette370 oben von6 gezeigt ist. In der Vignette370 stellen zwei graue Quadrate die unteren bzw. Bodenrandpixel der Fingerspitze dar. - Hat der Benutzer stattdessen die Leerzeichen-Taste oder eine andere Taste näher an dem unteren Bereich der virtuellen Tastatur
50 gedrückt, d.h. weiter weg von dem Sensor OS120 , würde die durch die Fingerspitzenposition110 in6 dargestellte Situation nicht auftauchen. Eine solche relativ weit entfernte Stelle auf der virtuellen Tastatur wird auf ein Pixel abgebildet, das näher an dem Boden der Abbildung ist, und eine Randabbildung ähnlich zu der, wie sie in der Vignette380 an der Spitze von6 skizziert ist, wäre stattdessen aufgetaucht. Zwischensituationen virtueller Tastenberührungen würden Randabbildungen erzeugen, die ähnlicher sind zu denen, die als Vignette390 an der Spitze von6 dargestellt sind. - Bei dem zuvor erläuterten Beispiel, bei dem die virtuelle Taste „T" gedrückt wird, lässt das Spitzen-Erfassungsmodul
230 in -
4 einen Rand-Erfassungsalgorithmus ablaufen und findet dadurch die Bodenmitte des „Blob", das den allgemeinen Bereich der Berührung darstellt, die in der Abbildungs-Zeile65 und Spalte492 liegt. Der homogene Abbildungs-Koordinatenvektor p, der nachfolgend gegeben wird, wird deshalb gebildet als: - Dieser homogene Abbildungs-Koordinatenvektor p wird dann multipliziert mit der Homographiematrix H, um die Koordinaten P der Benutzerfingerspitze in dem Referenzbild der virtuellen Tastatur zu erhalten:
- Das Benutzerobjekt oder der Finger
120L wird somit als die virtuelle Tastatur50 an einem Ortspunkt berührend festgestellt, der die Koordinaten x = 11,53 und z = 2,49 cm besitzt. Das Tastenidentifikationsmodul260 in4 sucht das Tastatur-Layout250 für eine Taste, derart, dass xmin ≤ 11,53 < xmax und ymin ≤ 2,49 < ymax Diese Bedingungen werden für die virtuelle Taste „T" erfüllt, da 10,5 < 11,53 < 12,4 und 1,9 < 2,49 < 3,8. Es wird nun Bezug genommen auf4 . Das Tastenidentifikationsmodul260 bestimmt deshalb, dass ein Benutzerobjekt die virtuelle Taste „T" auf der virtuellen Tastatur50 berührt und informiert das Übersetzungsmodul270 von diesem Ereignis. - Dieses Ereignis muss nicht notwendigerweise ein Tastendruck sein. Beispielsweise kann das Benutzerobjekt oder der Finger früher die „T"-Taste berührt haben und kann danach in diesem Berührungs-Kontakt mit der Taste geblieben sein. In einem solchen Fall sollte kein Tastendruck-Ereignis an die Anwendung
280 übertragen werden, die auf der begleitenden Vorrichtung80 oder90 abläuft. - Das Tastenübersetzungsmodul
270 speichert vorzugsweise den Oben-Status oder den Unten-Status jeder Taste intern. Dieses Modul bestimmt für jedes Bild, ob eine Taste ihren Zustand geändert hat. Bei dem zuvor erwähnten Beispiel, falls die Taste „T" als in dem Unten-Status in dem aktuellen Bild aufgefunden wird, aber in dem vorhergehenden Rahmen in dem Oben-Status war, würde das Übersetzungsmodul270 eine KEYCODE-Nachricht an die Anwendung280 senden. Der KEYCODE-Code wird ein „TASTE-UNTEN"-Ereignis-Identifizierer enthalten zusammen mit einem „KEY ID"-Kennzeichen, das die „T"-Taste identifiziert und dadurch die Anwendung280 informiert, dass die „T"-Taste gerade von dem Benutzerobjekt „gedrückt" wurde. Falls die „T"-Taste als in dem Unten-Zustand der vorhergehenden Bilder aufgefunden worden wäre, würde der KEYCODE einen „KEY HELD"-Ereignis-Identifizierer enthalten zusammen mit der „KEY ID", die mit der „T"-Taste verknüpft ist. Ein Senden des „KEY HELD"-Ereignisses bei jedem Bild (mit Ausnahme des ersten Bildes), bei dem die Taste in einem Unten-Zustand ist, befreit die Anwendung280 davon, jeden Zustand über die Tasten aufrechtzuerhalten. Sobald die „T"-Taste als in dem Oben-Zustand in dem aktuellen Bild aufgefunden wird, und in den vorherigen Bildern in dem Unten-Zustand war, sendet das Übersetzungsmodul270 einen KEYCODE mit einem „KEY UP"-Ereignis-Identifizierer wieder mit einem „KEY ID"-Kennzei chen, das die „T"-Taste identifiziert, und informiert die Anwendung280 , dass die „T"-Taste gerade von dem Benutzerobjekt „freigegeben" wurde. - Aus dem zuvor Beschriebenen ergibt sich, dass es ausreicht, dass die Bildabbildungen nur die Spitzen des Benutzerobjekts, bspw. die Fingerspitzen enthalten. Die verschiedenen Ausführungsformen der vorliegenden Erfindung benutzen weniger als volle dreidimensionale Abbildungs-Information, die innerhalb eines relativ flachen Raums erfasst wird, der nur wenig oberhalb einer virtuellen Eingabe oder einer virtuellen Übertragungsvorrichtung definiert ist. Ein System, das diese Ausführungsformen implementiert, kann relativ kostengünstig hergestellt werden und arbeitet mit einer eigenen Batteriequelle. Tatsächlich könnte das System konstruiert sein, dass es innerhalb allgemeiner Vorrichtungen, wie bspw. PDAs, Mobilfunkgeräten, etc. enthalten ist, um die Eingabe oder die Übertragung von Information von einem Benutzer zu beschleunigen. Wie beschrieben, können unerwünschte Effekte durch Umgebungslicht reduziert werden, indem die Wellenlängen in den Ausführungsformen mit aktivem Licht ausgewählt werden, indem Kamera(s) und Lichtquellen synchronisiert werden, indem Signalverarbeitungstechniken verwendet werden, die Abbildungen erfassen und Abbildungen heraussubtrahieren, die Hintergrundrauschen darstellen.
- Modifikationen und Variationen sind bei den offenbarten Ausführungsformen möglich, ohne den Rahmen der vorliegenden Erfindung, wie sie in den nachfolgenden Ansprüchen definiert ist, zu verlassen.
Claims (14)
- System, das es einem mit einer virtuellen Übertragungsvorrichtung verwendeten benutzermanipulierten Benutzerobjekt ermöglicht, Information an eine begleitende Vorrichtung zu übertragen, mit: einer zentralen Prozessoreinheit, die einen Speicher umfasst, der zumindest eine Softwareroutine speichert; einem ersten optischen System, das eine Ebene definiert, die im Wesentlichen parallel zu und beabstandet über einem angenommenen Gebiet der virtuellen Übertragungsvorrichtung ist; einem zweiten optischen System, das ein relevantes Sichtfeld besitzt, welches zumindest Teile der Ebene umschließt und auf ein Eindringen des Benutzerobjekts in die Ebene anspricht, um mit der virtuellen Übertragungsvorrichtung zu interagieren; einem Mittel zum Bestimmen der relativen Position eines Bereichs des Benutzerobjekts auf der Ebene; wobei das System Information zu der begleitenden Vorrichtung überträgt, so dass das Benutzerobjekt mit der virtuellen Übertragungsvorrichtung den Betrieb der begleitenden Vorrichtung bewirken kann.
- System nach Anspruch 1, wobei das Mittel zum Bestimmen derart ausgebildet ist, dass es die Bestimmung der relativen Position durch Triangulationsanalyse ausführt.
- System nach Anspruch 1, wobei das Mittel zum Bestimmen eine Prozessoreinheit umfasst, die die Routine ausführt, um die relative Position zu bestimmen.
- System nach Anspruch 1, wobei: das erste optische System ein Mittel zum Erzeugen einer Ebene von optischer Energie; und das zweite optische System einen Kamerasensor aufweist, der einen reflektierten Teil der optischen Energie erfasst, wenn das Benutzerobjekt in die Ebene eindringt.
- System nach Anspruch 1, wobei: das erste optische System zumindest einen Laser aufweist, um die Ebene zu erzeugen, oder eine LED aufweist, um die Ebene zu erzeugen; und das zweite optische System einen Kamerasensor aufweist, der einen reflektierten Teil der optischen Energie erfasst, wenn das Benutzerobjekt in die Ebene eindringt.
- System nach Anspruch 1, ferner mit einem Mittel zur Verbesserung der Ansprechempfindlichkeit des zweiten optischen Systems auf das Eindringen eines Benutzerobjekts, während die Empfindlichkeit gegenüber Umgebungslicht reduziert wird.
- System nach Anspruch 6, wobei das Mittel zum Verbessern zumindest eines der nachfolgenden Merkmale umfasst: (a) Bereitstellen einer Signatur, die mit der Erzeugung der Ebene verknüpft ist, (b) Auswahl einer gemeinsamen Wellenlänge für die Energie innerhalb der Ebene, die von dem ersten optischen System definiert wird und für das Ansprechverhalten des zweiten optischen Systems, und (c) eine Synchronisation des ersten optischen Systems mit dem zweiten optischen System.
- System nach Anspruch 1, wobei das erste optische System einen ersten Kamerasensor aufweist, der die Ebene bildet.
- System nach Anspruch 1, wobei: das erste optische System einen ersten Kamerasensor aufweist, der die Ebene bildet; das zweite optische System eine zweite Kamera aufweist, um das Eindringen zu erfassen; und ferner mit: einer Quelle optischer Energie, die in Richtung der virtuellen Übertragungsvorrichtung gerichtet ist; und ein Mittel zum Synchronisieren des Betriebs von zumindest zwei des ersten optischen Systems, des zweiten optischen Systems und der Quelle der optischen Energie; wobei die Wirkung des Umgebungslichts auf die Genauigkeit der Information, die mit dem System erhalten wird, reduziert wird.
- System nach Anspruch 1, wobei: das erste optische System einen Generator für optische Energie einer gewünschten Wellenlänge aufweist; und das zweite optische System im Wesentlichen nur auf optische Energie der gewünschten Wellenlänge anspricht.
- System nach Anspruch 1, wobei die begleitende Vorrichtung ein PDA, eine tragbare Kommunikationsvorrichtung, eine elektronische Vorrichtung, eine elektronische Spielvorrichtung, und/oder ein Musikinstrument sein kann, und die virtuelle Übertragungsvorrichtung eine virtuelle Tastatur, eine virtuelle Maus, ein virtueller Trackball, ein virtueller Stift, ein virtueller Trackpad und/oder ein Benutzerschnittstellen-Auswahlmittel sein kann.
- System nach Anspruch 1, wobei die virtuelle Übertragungsvorrichtung auf eine Arbeitsfläche abgebildet wird, die eine Tischfläche, eine Schreibtischfläche, eine Wand, eine Kassenanwendung, eine Verkaufsanwendung, ein Kiosk, eine Oberfläche in einem Fahrzeug, eine projizierte Anzeige, eine physikalische Anzeige, ein CRT und/oder ein LCD sein kann.
- System nach Anspruch 1, wobei zumindest das erste Betriebssystem oder das zweite Betriebssystem ein Kamerasensor ist mit einer Linse und einer Abbildungs-Ebene; wobei die Linse und/oder die Abbildungs-Ebene geneigt ist, um die Auflösung und/oder die Tiefenschärfe zu verbessern.
- System nach Anspruch 1, ferner mit einem Mittel zum Verbessern der Unterscheidbarkeit des Benutzerobjekts von einem Hintergrundobjekt.
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US23118400P | 2000-09-07 | 2000-09-07 | |
| US231184P | 2000-09-07 | ||
| US27212001P | 2001-02-27 | 2001-02-27 | |
| US272120P | 2001-02-27 | ||
| US28711501P | 2001-04-27 | 2001-04-27 | |
| US287115P | 2001-04-27 | ||
| EP01970695A EP1336172B1 (de) | 2000-09-07 | 2001-09-07 | Quasi-dreidimensionales verfahren und vorrichtung zur erkennung und lokalisierung der interaktion von benutzer und objekt und virtuelle transfereinrichtung |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE20122526U1 true DE20122526U1 (de) | 2006-06-01 |
Family
ID=36590888
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE20122526U Expired - Lifetime DE20122526U1 (de) | 2000-09-07 | 2001-09-07 | Eine Vorrichtung zum Erfassen und Lokalisieren einer Interaktion eines Benutzerobjekts und virtuelle Übertragungsvorrichtung |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE20122526U1 (de) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008077505A1 (de) | 2006-12-22 | 2008-07-03 | Kaltenbach & Voigt Gmbh | Eingabevorrichtung zur bedienung von geräten eines zahnärztlichen arbeitsplatzes, sowie zahnärztliche behandlungseinheit mit einer solchen eingabevorrichtung |
| DE102008036762A1 (de) * | 2008-08-07 | 2010-02-11 | Airbus Deutschland Gmbh | Steuer- und Anzeigesystem |
| DE102009025833A1 (de) * | 2009-01-06 | 2010-09-23 | Pixart Imaging Inc. | Elektronisches Gerät mit virtuellem Dateneingabegerät |
| DE102012110460A1 (de) | 2012-10-31 | 2014-04-30 | Audi Ag | Verfahren zum Eingeben eines Steuerbefehls für eine Komponente eines Kraftwagens |
| US10018835B2 (en) | 2016-03-18 | 2018-07-10 | Stmicroelectronics S.R.L. | Projective MEMS device for a picoprojector of the flying spot type and related manufacturing method |
-
2001
- 2001-09-07 DE DE20122526U patent/DE20122526U1/de not_active Expired - Lifetime
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008077505A1 (de) | 2006-12-22 | 2008-07-03 | Kaltenbach & Voigt Gmbh | Eingabevorrichtung zur bedienung von geräten eines zahnärztlichen arbeitsplatzes, sowie zahnärztliche behandlungseinheit mit einer solchen eingabevorrichtung |
| DE102008036762A1 (de) * | 2008-08-07 | 2010-02-11 | Airbus Deutschland Gmbh | Steuer- und Anzeigesystem |
| DE102009025833A1 (de) * | 2009-01-06 | 2010-09-23 | Pixart Imaging Inc. | Elektronisches Gerät mit virtuellem Dateneingabegerät |
| DE102012110460A1 (de) | 2012-10-31 | 2014-04-30 | Audi Ag | Verfahren zum Eingeben eines Steuerbefehls für eine Komponente eines Kraftwagens |
| WO2014067626A1 (de) | 2012-10-31 | 2014-05-08 | Audi Ag | Verfahren zum eingeben eines steuerbefehls für eine komponente eines kraftwagens |
| US9612655B2 (en) | 2012-10-31 | 2017-04-04 | Audi Ag | Method for inputting a control command for a component of a motor vehicle |
| US10018835B2 (en) | 2016-03-18 | 2018-07-10 | Stmicroelectronics S.R.L. | Projective MEMS device for a picoprojector of the flying spot type and related manufacturing method |
| US10895740B2 (en) | 2016-03-18 | 2021-01-19 | Stmicroelectronics S.R.L. | Projective MEMS device for a picoprojector of the flying spot type and related manufacturing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4468694A (en) | Apparatus and method for remote displaying and sensing of information using shadow parallax | |
| EP0055366B1 (de) | Vorrichtung zum Fernanzeigen und -lesen von Information mit Hilfe der Schattenparallaxe | |
| DE69532662T2 (de) | Hinweisvorrichtungsschittstelle | |
| US8123361B2 (en) | Dual-projection projector and method for projecting images on a plurality of planes | |
| DE102009032637B4 (de) | Bildvergrößerungssystem für eine Computerschnittstelle | |
| JP6078884B2 (ja) | カメラ式マルチタッチ相互作用システム及び方法 | |
| EP0963563B1 (de) | Anordnung und verfahren zur detektion eines objekts in einem von wellen im nichtsichtbaren spektralbereich angestrahlten bereich | |
| US6710770B2 (en) | Quasi-three-dimensional method and apparatus to detect and localize interaction of user-object and virtual transfer device | |
| DE69530395T2 (de) | Interaktives projektiertes videobildanzeigesystem | |
| KR100452413B1 (ko) | 컴퓨터-생성 투사 영상의 캘리브레이션을 위한 방법 및 장치 | |
| US6346933B1 (en) | Interactive display presentation system | |
| US6760009B2 (en) | Coordinate position inputting/detecting device, a method for inputting/detecting the coordinate position, and a display board system | |
| US7460106B2 (en) | Method and apparatus for computer input using six degrees of freedom | |
| US6429856B1 (en) | Coordinate position inputting/detecting device, a method for inputting/detecting the coordinate position, and a display board system | |
| US20030071858A1 (en) | Information input and output system, method, storage medium, and carrier wave | |
| US20030226968A1 (en) | Apparatus and method for inputting data | |
| DE102009023875A1 (de) | Gestenerkennungsschittstellensystem mit vertikaler Anzeigefläche | |
| DE102009025236A1 (de) | Schnittstellensystem zur Gestenerkennung mit einem lichtstreuenden Bildschirm | |
| JP2004513416A (ja) | ユーザオブジェクトと仮想転送装置との相互作用を検出しそして位置決めする擬似三次元方法及び装置 | |
| DE112015002463T5 (de) | Systeme und Verfahren zum gestischen Interagieren in einer im Umfeld vorhandenen Computerumgebung | |
| US20130335299A1 (en) | Display control device, display, display system and computer-readable medium | |
| CN102053763A (zh) | 光学位置检测装置及带位置检测功能的显示装置 | |
| DE102004044999A1 (de) | Eingabesteuerung für Geräte | |
| CN1701351A (zh) | 检测和定位用户-对象与虚拟传送设备的交互作用的准三维方法和装置 | |
| DE20122526U1 (de) | Eine Vorrichtung zum Erfassen und Lokalisieren einer Interaktion eines Benutzerobjekts und virtuelle Übertragungsvorrichtung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R207 | Utility model specification |
Effective date: 20060706 |
|
| R150 | Term of protection extended to 6 years |
Effective date: 20060601 |
|
| R151 | Term of protection extended to 8 years |
Effective date: 20080411 |
|
| R152 | Term of protection extended to 10 years |
Effective date: 20091111 |
|
| R071 | Expiry of right |