DE112018001460T5 - Handerfassungssteuerung - Google Patents

Handerfassungssteuerung Download PDF

Info

Publication number
DE112018001460T5
DE112018001460T5 DE112018001460.6T DE112018001460T DE112018001460T5 DE 112018001460 T5 DE112018001460 T5 DE 112018001460T5 DE 112018001460 T DE112018001460 T DE 112018001460T DE 112018001460 T5 DE112018001460 T5 DE 112018001460T5
Authority
DE
Germany
Prior art keywords
control
conductors
signal
sensor pattern
finger
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.)
Withdrawn
Application number
DE112018001460.6T
Other languages
English (en)
Inventor
Bruno Rodrigues De Araujo
David Holman
Ricardo Jorge Jota Costa
Braon Moseley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tactual Labs Co
Original Assignee
Tactual Labs Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tactual Labs Co filed Critical Tactual Labs Co
Publication of DE112018001460T5 publication Critical patent/DE112018001460T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04164Connections between sensors and controllers, e.g. routing lines between electrodes and connection pads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • G06F3/0445Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using two or more layers of sensing electrodes, e.g. using two layers of electrodes separated by a dielectric layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • G06F3/0446Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using a grid-like structure of electrodes in at least two directions, e.g. using row and column electrodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/041012.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04107Shielding in digitiser, i.e. guard or shielding arrangements, mostly for capacitive touchscreens, e.g. driven shields, driven grounds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

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

Abstract

Offenbart ist ein berührungsempfindliches Steuerungssystem unter Verwendung einer Steuerung, die eine Mehrzahl von separaten FMT-Sensormustern umfasst, die angepasst sind, um eine Mehrzahl von Positionen der menschlichen Hand zu erfassen. Das Steuerungssystem gibt sowohl Berührungs-Ereignisse als auch Daten aus, die die Handinteraktion mit der Steuerung reflektieren. Die FMT-Sensoren können von einem gemeinsamen Signalgenerator angesteuert werden und können das Übersprechen des Körpers betrachten, um die Position, Ausrichtung und den Griff einer Hand auf der Steuerung besser zu verstehen. In einer Ausführungsform kann die Signalinjektion die FMT-Sensordaten ergänzen. Eine Fusion zwischen den von der Mehrzahl von FMT-Sensoren gesendeten und empfangenen Daten und zusätzlichen injizierten Signalen kann zu einer verbesserten Genauigkeit bei der Berührungs- und Handmodellierung führen.

Description

  • Diese Anwendung beansprucht die Priorität der vorläufigen US-Anmeldung 62/473,908 mit dem Titel „Hand Sensing Steuerung“, eingereicht am 20. März 2017, deren Inhalt hiermit durch Verweis mit enthalten ist.
  • Technischer Bereich
  • Die offenbarten Vorrichtungen und Verfahren betreffen im Allgemeinen den Bereich der Mensch-Maschine-Schnittstellensteuerungen, insbesondere eine Mensch-Maschine-Schnittstellensteuerung, die empfindlich ist für Berühren, einschließlich Schweben, Greifen und Druck.
  • Hintergrund
  • In den letzten Jahren haben sich Multi-Touch-Technologien entwickelt. Ein Entwicklungsweg hat die Erzeugung einer Berührungs-Heatmap auf der Grundlage der kapazitiven Interaktion mit einem Sensor unter Verwendung eines simultanen orthogonalen Signalisierungsschemas zum Inhalt. Zahlreiche Patentanmeldungen wurden eingereicht, die sich auf die Interaktionserkennung unter Verwendung eines Sensors beziehen, der von einem simultanen orthogonalen Signalisierungsschema gesteuert wird, einschließlich, jedoch ohne Beschränkung, eine frühere US-Patentanmeldung des Anmelders mit der Nr. 13/841,436 , die am 15. März 2013 mit dem Titel „Low-Latency Touch Sensitive Device“ eingereicht wurde, und eine am 1. November 2013 eingereichte US-Patentanmeldung mit der Nr. 14/069,609 und dem Titel „Fast Multi-Touch Post Processing“.
  • Diese Systeme und Verfahren sind im Allgemeinen auf eine Multi-Touch-Sensorik auf ebenen Sensoren ausgerichtet. Das Erhalten von Informationen, um eine Berührung, Gesten und Interaktionen eines Benutzers mit einem tragbaren Gegenstand zu verstehen, eröffnet unzählige Möglichkeiten, aber da tragbare Gegenstände in unzähligen Formen vorkommen, kann es schwierig sein, kapazitive Berührungssensoren in tragbare Gegenstände wie eine Steuerung zu integrieren, wodurch diese Sensoren Informationen mit Bezug auf die Gesten eines Benutzers und andere Interaktionen mit den tragbaren Gegenständen liefern können.
  • Im Allgemeinen werden Taxel-Daten (oder Zeile-Spalte-Schnittpunkte) zu Heatmaps zusammengefasst. Diese Heatmaps werden dann nachbearbeitet, um Touch-Ereignisse (d.h. Berührungs-Ereignisse) zu identifizieren, wobei die Touch-Ereignisse an nachgelagerte Prozesse weitergeleitet werden, die versuchen, die Touch-Interaktion zu verstehen, einschließlich, aber nicht beschränkt auf Gesten und die Gegenstände, in denen diese Gesten ausgeführt werden.
  • Benötigt werden kapazitive Touch-Steuerungen, die detailliertere Informationen über die Gesten eines Benutzers und andere Interaktionen mit der Steuerung liefern.
  • Benötigt werden kapazitive Touch-Steuerungs-Systeme, die ein Handmodell der Interaktion eines Benutzers mit der Steuerung bereitstellen können.
  • Figurenliste
  • Das Vorangegangene und weitere Gegenstände, Merkmale und Vorteile der Offenbarung werden sich aus der folgenden genaueren Beschreibung der Ausführungsformen ergeben, wie sie in den beigefügten Zeichnungen dargestellt sind, in denen sich die Bezugszeichen in den verschiedenen Ansichten auf dieselben Komponenten beziehen. Die Zeichnungen sind nicht unbedingt maßstabsgetreu, sondern konzentrieren sich auf die Veranschaulichung der Prinzipien der offenbarten Ausführungsformen.
    • 1A zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 1B zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 1C zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 1D zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 1E zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 1F zeigt eine Darstellung einer Ansicht einer beispielhaften 6-DOF-Steuerung mit kapazitiven Sensormustern.
    • 2 veranschaulicht eine Ausführungsform einer Steuerung in der Hand eines Benutzers, wobei ein computergestütztes Modell einer Heatmap basierend auf der Interaktion des Daumens mit dem Daumen-zentrierten Abschnitt der Steuerung erkannt wird.
    • 3A zeigt eine veranschaulichende Ausführungsform eines Sensormusters zur Verwendung in Verbindung mit dem Daumen-zentrierten Abschnitt einer Steuerung.
    • 3B zeigt eine weitere beispielhafte Ausführungsform eines Sensormusters zur Verwendung in Verbindung mit dem Daumen-zentrierten Abschnitt einer Steuerung.
    • 3C zeigt eine veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Daumen-zentrierten Abschnitt einer Steuerung.
    • 3D zeigt eine veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Daumen-zentrierten Abschnitt einer Steuerung.
    • 4 zeigt eine veranschaulichende Ausführungsform einer Steuerung in der Hand eines Benutzers sowie ein computergestütztes Modell, das die Position des Zeigefingers anzeigt, basierend auf der erfassten Interaktion des Zeigefingers mit dem Auslöse-zentrierten Abschnitt der Steuerung.
    • 5A zeigt eine veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 5B zeigt eine veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 6A zeigt eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 6B zeigt eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 7A zeigt noch eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 7B zeigt noch eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 8A zeigt eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 8B zeigt eine weitere veranschaulichende Ausführungsform eines dreischichtigen Sensormusters zur Verwendung in Verbindung mit dem Auslöse-zentrierten Abschnitt einer Steuerung.
    • 9 zeigt eine veranschaulichende Ausführungsform einer Steuerung in der Hand eines Benutzers sowie ein computergestütztes Modell, das die Handposition basierend auf den kapazitiven Sensoren im Steuerungskörper zeigt.
    • 10A zeigt eine Darstellung einer Ansicht einer Ausführungsform eines Fischgrät-Sensormusters aus Zeilen und Spalten, die der unregelmäßigen Krümmung des Steuerungskörpers folgen.
    • 10B zeigt eine Komponente, die verwendet werden kann, um eine linke Fläche einer Ausführungsform einer Steuerung zu bilden.
    • 10C zeigt eine Komponente, die verwendet werden kann, um eine linke Fläche einer Ausführungsform einer Steuerung zu bilden.
    • 10D zeigt eine Komponente, die verwendet werden kann, um eine rechte Fläche einer Ausführungsform eines Steuerungskörpers zu bilden.
    • 10E zeigt eine Komponente, die verwendet werden kann, um eine rechte Fläche einer Ausführungsform eines Steuerungskörpers zu bilden.
    • 10F zeigt eine zweidimensionale Spur von Sensormustern und den Zuführleitungen, die in Verbindung mit einer Ausführungsform einer Steuerung verwendet werden können.
    • 10G zeigt eine zweidimensionale Spur von Sensormustern und den Zuführleitungen, die in Verbindung mit einer Ausführungsform einer Steuerung verwendet werden können.
    • 11A zeigt eine Darstellung der Position und Bewegung des Zeigefingers sowie der mit der Position und Bewegung des Zeigefingers verbundenen Vorlagen und Wellenformen.
    • 11B zeigt eine Darstellung der Position und Bewegung des Zeigefingers sowie der mit der Position und Bewegung des Zeigefingers verbundenen Vorlagen und Wellenformen.
    • 11C zeigt eine Darstellung der Position und Bewegung des Zeigefingers sowie der mit der Position und Bewegung des Zeigefingers verbundenen Vorlagen und Wellenformen.
    • 12 zeigt die Blöcke einer globalen Library Pipeline gemäß einer Ausführungsform der Erfindung.
    • 13 zeigt eine Darstellung einer erwarteten Reihenfolge von Aufrufen und der Interaktion zwischen einem externen Thread und einem GenericModule-Thread, vorausgesetzt, dass alle Aufrufe zu startLoop() und loop() erfolgreich sind, entsprechend einer Ausführungsform der Erfindung.
    • 14 zeigt eine Darstellung einer Zustandsmaschine, die die Liste der von einem GenericModule unterstützten Zustände sowie deren Übergangsbedingungen gemäß einer Ausführungsform der Erfindung zeigt.
    • 15 zeigt eine Darstellung des erwarteten Lebenszyklus eines GenericModule für den Fall, dass der Thread erfolgreich erstellt wurde, und dass während startLoop() oder loop() gemäß einer Ausführungsform der Erfindung keine Fehler auftreten.
    • 16A ist ein Sequenzdiagramm, das die Reihenfolge der Aufrufe in einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 16B ist ein Sequenzdiagramm, das die Reihenfolge der Aufrufe in einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 16C ist ein Sequenzdiagramm, das die Reihenfolge der Aufrufe in einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 16D ist ein Sequenzdiagramm, das die Reihenfolge der Aufrufe in einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 17A zeigt die Struktur einer Erstellung von ProcessingThreads gemäß zwei verschiedenen (aber sich nicht ausschließenden) Ausführungsformen der Erfindung.
    • 17B zeigt die Struktur einer Erstellung von ProcessingThreads gemäß zwei verschiedenen (aber sich nicht ausschließenden) Ausführungsformen der Erfindung.
    • 18 zeigt eine Ausführungsform einer Steuerungs-Ul, einschließlich Kontrollkästchen für handedness (Händigkeit), Index, Finger und Thumbpad.
    • 19 ist eine Visualisierung einer unkalibrierten Heatmap um das Gehäuse einer Steuerung.
    • 20 ist eine Visualisierung einer Heatmap um den Körper einer Steuerung, die so gegriffen wird, dass ihre Oberfläche im Wesentlichen bedeckt ist.
    • 21 ist eine Visualisierung einer Heatmap um den Körper einer Steuerung, die nicht gegriffen wird.
    • 22 ist eine Visualisierung einer Heatmap um den Körper einer kalibrierten Steuerung, die in der rechten Hand gehalten wird.
    • 23 zeigt einen grundlegenden Lebenszyklus der Library gemäß einer Ausführungsform der Erfindung.
    • 24 zeigt eine Darstellung der menschlichen Hand und eine Reihe von Gelenken und Knochen in der Hand, die für die Steuerung relevant sind, gemäß einer Ausführungsform der Erfindung.
    • 25 ist eine Tabelle, die die Darstellung von Skelettdaten, wie in 24 dargestellt, gemäß einer Ausführungsform der Erfindung wiedergibt.
    • 26 zeigt eine Ausführungsform einer Datenstruktur, die zur Darstellung der Fingerinformationen eines Benutzers verwendet werden kann.
    • 27 ist eine Tabelle, die eine Ausführungsform von skeletonPoses für eine beispielhafte rechte Hand darstellt.
    • 28 ist eine Tabelle, die eine Ausführungsform von skeletonPoses für eine beispielhafte rechte Hand darstellt.
  • Detaillierte Beschreibung
  • Diese Anmeldung betrifft Benutzerschnittstellen wie die schnellen Multi-Touch-Sensoren und andere Schnittstellen, die in der US-Patentanmeldung Nr. 15/251,859 , eingereicht am 30. August 2016 mit dem Titel „Touch-Sensitive Objects“, offenbart sind. Die gesamte Offenbarung dieser Anmeldung und der darin durch Verweis aufgenommenen Anmeldungen ist hierin durch Verweis mit aufgenommen.
  • In verschiedenen Ausführungsformen ist die vorliegende Offenbarung gerichtet auf Handsensor-Steuerungen und Verfahren zum Entwerfen, Herstellen und Betreiben von Sensorsteuerungen (z.B. Handsensor-Steuerungen sowie Hand- und Berührungssensor-Steuerungen), insbesondere Steuerungen mit kapazitiven Sensoren zum Erfassen menschlicher Interaktionen. Im Rahmen dieser Offenbarung werden verschiedene Steuerungsformen und Sensormuster zur Veranschaulichung verwendet. Obwohl beispielhafte Zusammensetzungen und/oder Geometrien zur Veranschaulichung der Erfindung offenbart sind, sind andere Zusammensetzungen und Geometrien für einen Fachmann, im Hinblick auf diese Offenbarung, offensichtlich, ohne vom Umfang und Geist der Offenbarung abzuweichen.
  • In dieser Offenbarung können die Begriffe „schweben“, „berühren“, „berührt“, „Kontakt“, „kontaktieren“, „kontaktiert“, „drücken“, „drückt“ oder andere Beschreibungen verwendet werden, um Ereignisse oder Zeiträume zu beschreiben, in denen eine Mensch-Maschine Interaktion stattfindet - d.h. dass der Finger eines Benutzers, ein Stift, ein Gegenstand oder ein Körperteil vom Sensor detektiert bzw. erkannt wird. In einigen Ausführungsformen, und wie im Allgemeinen mit dem Wort „Kontakt“ bezeichnet, treten diese Erkennungen als Ergebnis des physischen Kontakts mit einem Sensor oder einer Einrichtung, in der er verkörpert ist, auf. In anderen Ausführungsformen, und wie manchmal allgemein mit dem Begriff „schweben“ bezeichnet, kann der Sensor so eingestellt sein, dass er die Erkennung von „Berührungen“ ermöglicht, die in einem Abstand über der Berührungsfläche schweben oder anderweitig von der berührungsempfindlichen Einrichtung getrennt sind. Wie hierin verwendet, muss „Berührungsoberfläche“ keine tatsächlichen Merkmale aufweisen, und könnte eine allgemein Merkmal-arme Oberfläche sein. Die Verwendung von Sprache innerhalb dieser Beschreibung, die bei wahrgenommenen physischen Kontakt Gewissheit impliziert, sollte nicht so verstanden werden, dass die beschriebenen Techniken nur für die Ausführungsformen gelten; tatsächlich gilt im Allgemeinen das, was hierin beschrieben wird, gleichermaßen für „Kontakt“ und „Schweben“, wobei jedes eine „Berührung“ ist. Generell bezieht sich der Begriff „Berührung“, wie hierin verwendet, auf eine Handlung, die von den hierin offenbarten Sensortypen erkannt werden kann, so dass, wie hierin verwendet, der Begriff „Schweben“ eine Art „Berührung“ in dem Sinne ist, dass „Berührung“ hierin beabsichtigt ist. „Druck“ bezieht sich auf die Kraft pro Flächeneinheit, die durch einen Benutzerkontakt) auf die Oberfläche eines Gegenstands ausgeübt wird (wenn er z.B. mit seinen Fingern oder seiner Hand drückt. Das Ausmaß des „Drucks“ ist ebenfalls ein Maß für einen „Kontakt“, d.h. für eine „Berührung“. „Berührung“ bezieht sich auf die Zustände „Schweben“, „Kontakt“, „Druck“ oder „Greifen“, während ein Fehlen von „Berührung“ im Allgemeinen dadurch erkannt wird, dass Signale für eine genaue Messung durch den Sensor unterhalb eines Schwellenwerts liegen. Daher beinhalten, wie hierin verwendet, der Ausdruck „Berührungsereignis“ und das Wort „Berührung“, wenn es als Substantiv verwendet wird, eine Nahezu-Berührung und ein Nahezu-Berührungsereignis oder jede andere Geste, die mit einem Sensor identifiziert werden kann. Gemäß einer Ausführungsform können Berührungsereignisse mit sehr geringer Latenzzeit detektiert, bearbeitet und den nachfolgenden Berechnungsprozessen zugeführt werden, z.B. in der Größenordnung von zehn Millisekunden oder weniger, oder in der Größenordnung von weniger als einer Millisekunde.
  • Wie hierin und insbesondere innerhalb der Ansprüche verwendet, sind Ordnungsbegriffe wie „erster und „zweiter“ nicht dazu bestimmt, an sich eine Sequenz, Zeit oder Einzigartigkeit zu implizieren, sondern dienen vielmehr dazu, ein beanspruchtes Konstrukt von einem anderen zu unterscheiden. In einigen Anwendungen, bei denen der Kontext dies vorschreibt, können diese Begriffe bedeuten, dass der „erste“ und der „zweite“ eindeutig sind. Wenn beispielsweise ein Ereignis zu einem ersten Zeitpunkt und ein anderes Ereignis zu einem zweiten Zeitpunkt eintritt, ist nicht beabsichtigt, dass das erste Mal vor dem zweiten Mal eintritt. Wird jedoch in dem Anspruch die weitere Einschränkung, dass das zweite Mal nach dem ersten Mal liegt, dargelegt, so müsste der Kontext das erste Mal gelesen werden und das zweite Mal einmalig sein. Ebenso sind, wenn der Kontext dies vorschreibt oder zulässt, Ordnungsbegriffe so weit auszulegen, dass die beiden identifizierten Anspruchskonstrukte dasselbe oder ein anderes Merkmal aufweisen können. So könnten beispielsweise eine erste und eine zweite Frequenz, ohne weitere Beschränkung, die gleiche Frequenz sein - z.B. beträgt die erste Frequenz 10 MHz und die zweite Frequenz 10 MHz; oder sie könnten unterschiedliche Frequenzen sein - z.B. beträgt die erste Frequenz 10 MHz und die zweite Frequenz 11 MHz. Der Kontext kann etwas anderes vorschreiben, z.B. wenn eine erste und eine zweite Frequenz weiterhin darauf beschränkt sind, in der Frequenz orthogonal zueinander zu sein, wobei sie in diesem Fall nicht die gleiche Frequenz sein könnten.
  • In einer Ausführungsform verwendet der offenbarte schnelle Multi-Touch-Sensor ein projiziertes kapazitives Verfahren, das für Messungen von Berührungsereignissen mit hoher Aktualisierungsrate und niedriger Latenz verbessert wurde. Die Technik kann parallele Hardware und Wellenformen mit höherer Frequenz verwenden, um die oben genannten Vorteile zu erzielen. Ebenfalls offenbart werden Verfahren zur Durchführung empfindlicher und stabiler Messungen, die auf transparenten Displayoberflächen eingesetzt werden können und die eine wirtschaftliche Herstellung von Produkten mit dieser Technik ermöglichen. In diesem Zusammenhang könnte ein „kapazitiver Gegenstand“, wie hierin verwendet, ein Finger, ein anderer Teil des menschlichen Körpers, ein Stift oder ein beliebiger Gegenstand sein, für den der Sensor empfindlich ist. Die hierin offenbarten Sensoren und Verfahren müssen nicht auf Kapazität beruhen. In Bezug auf z.B. den optischen Sensor verwenden solche Ausführungsformen Photonen-Tunneln und -Leckage, um ein Berührungsereignis zu erfassen, wobei eine „kapazitive“ Steuerung, wie sie hierin verwendet wird, jeden Gegenstand umfasst, wie beispielsweise einen Stift oder Finger, der mit dieser Abtastung kompatibel ist. Ebenso erfordern „Berührungsstellen“ und „berührungsempfindliches Gerät“, wie sie hierin verwendet werden, keinen tatsächlichen Berührungskontakt zwischen einer kapazitiven Steuerung und dem offenbarten Sensor.
  • Der hierin verwendete Begriff „Steuerung“ bezieht sich auf ein physikalisches Objekt, das die Funktion der Mensch-Maschine-Schnittstelle übernimmt. In einer Ausführungsform ist die Steuerung ein tragbares Gerät (Handsteuerung). In einer Ausführungsform bietet die Handsteuerung sechs Freiheitsgrade (z.B. auf/ab, links/rechts, vor/zurück, Neigung, Gieren und Rollen), die getrennt von der hierin beschriebenen erfassten Berührungseingabe gezählt werden. In einer Ausführungsform kann die Steuerung weniger als sechs Freiheitsgrade vorsehen. In einer Ausführungsform kann die Steuerung mehr Freiheitsgrade bereitstellen, wie in einer Nachbildung der Bewegung einer menschlichen Hand, die nach allgemeinem Verständnis 27 Freiheitsgrade aufweist. Der Begriff „6-DOF-Steuerung“ bezieht sich durchgängig auf Ausführungsformen, bei denen die Position und Ausrichtung der Steuerung im Raum verfolgt wird, anstatt die Gesamtzahl der Freiheitsgrade, die die Steuerung verfolgen kann, strikt zu zählen, d.h. eine Steuerung wird als „6-DOF“ bezeichnet, unabhängig davon, ob zusätzliche Freiheitsgrade wie Touch-Tracking (Berührungsverfolgung), Tastendrücken, Touchpad- oder Joystick-Eingabe möglich sind. Weiterhin werden wir den Begriff 6-DOF verwenden, um uns auf Steuerungen zu beziehen, die in weniger als sechs Dimensionen verfolgt werden können, wie z.B. eine Steuerung, dessen 3D-Position verfolgt wird, aber nicht dessen Rollen/Neigen/Gieren, oder eine Steuerung, die nur in zwei oder einer Bewegungsdimension verfolgt wird, aber dessen Ausrichtung in drei oder vielleicht weniger Freiheitsgraden verfolgt wird.
  • 1A-1F zeigen Darstellungen einer Mehrzahl von Ansichten einer beispielhaften 6-DOF-Steuerung 100 mit kapazitiven Sensormustern. In einer Ausführungsform ist eine Handschlaufe 102, dargestellt in 2, vorgesehen, die von oder nahe der Oberseite 104 der Steuerung 100 bis zu oder nahe der Unterseite 106 der Steuerung 100 verläuft, um die Verwendung der 6-DOF-Steuerung 100 zu erleichtern. In einer Ausführungsform weist die Steuerung 100 einen Daumen-zentrierten Abschnitt 110 und einen Auslöse-zentrierten Abschnitt 112 auf. In einer Ausführungsform ist die Steuerung 100 so konzipiert, dass sie im Allgemeinen in die Handfläche der Hand 105 eines Benutzers passt. In einer Ausführungsform ist die Steuerung 100 so konzipiert, dass sie sowohl in der linken als auch in der rechten Hand verwendet werden kann. In einer Ausführungsform werden jeweils für die linke und rechte Hand spezielle Steuerungen 100 verwendet.
  • Kapazitive Sensormuster werden im Allgemeinen als mit Zeilen und Spalten versehen angesehen. Wie hierin verwendet, sollen sich die Begriffe Zeile und Spalte jedoch nicht auf ein quadratisches Raster beziehen, sondern auf einen Satz von Leitern, auf denen das Signal übertragen wird (Zeilen), und einen Satz von Leitern, auf die das Signal gekoppelt werden kann (Spalten). (Die Vorstellung, dass Signale auf Zeilen übertragen und auf Spalten selbst empfangen werden, ist willkürlich, wobei Signale ebenso einfach auf Leitern übertragen werden könnten, die willkürlich benannt sind, und auf Leitern, die willkürlich benannt sind, oder beide könnten willkürlich etwas anderes genannt werden; weiterhin könnte derselbe Leiter sowohl als Sender als auch als Empfänger fungieren.) Wie im Folgenden näher erläutert wird, ist es nicht notwendig, dass die Zeilen und Spalten ein Raster bilden; viele Formen sind möglich, solange die Berührung in der Nähe einer Zeile-Spalte-Schnittstelle eine Kopplung zwischen Zeile und Spalte erhöht oder verringert.
  • Zahlreiche kapazitive Sensormuster wurden bisher vorgeschlagen, siehe z.B. die frühere US-Patentanmeldung des Anmelders mit der Nr. 15/099,179 , die am 14. April 2016 mit dem Titel „Capacitive Sensor Patterns“ eingereicht wurde, deren gesamte Offenbarung und die darin, durch Bezugnahme, enthaltenen Anmeldungen hierin ebenfalls durch Bezugnahme mit enthalten sind. In einer Ausführungsform umfasst die in den 1A-1F dargestellte Steuerung 100 eine Mehrzahl von kapazitiven Sensormustern. In einer Ausführungsform können zwei oder mehr Sensormuster in einer einzigen Steuerung verwendet werden. In einer Ausführungsform werden drei Sensormuster in einer einzigen Handsteuerung 100 verwendet. In einer Ausführungsform wird, wie dargestellt, ein Sensormuster für die Daumen-zentrierte Erkennung verwendet, ein anderes Sensormuster für die Auslöse-zentrierte Erkennung und ein weiteres Sensormuster für die Erkennung an anderen Stellen um das Gehäuse der Steuerung herum.
  • Die Sender und Empfänger für alle oder eine beliebige Kombination der Sensormuster können betriebsfähig mit einer einzigen integrierten Schaltung verbunden sein, die in der Lage ist, die erforderlichen Signale zu senden und zu empfangen. In einer Ausführungsform, in der die Kapazität der integrierten Schaltung (d.h. die Anzahl der Sende- und Empfangskanäle) und die Anforderungen der Sensormuster (d.h. die Anzahl der Sende- und Empfangskanäle) es zulassen, werden alle Sender und Empfänger für alle Mehrfach-Sensormuster auf einer Steuerung durch eine gemeinsame integrierte Schaltung betrieben. In einer Ausführungsform kann der Betrieb aller Sender und Empfänger für alle Mehrfach-Sensormuster auf einer Steuerung mit einer gemeinsamen integrierten Schaltung effizienter sein als die Verwendung mehrerer integrierter Schaltungen.
  • In einer Ausführungsform wird der Daumen-zentrierte Sensor auf einer relativ flachen Oberfläche in der Nähe des Daumens 103 eingesetzt, während die Steuerung 100 gehalten wird. Die Taxel-Dichte (d.h. die Dichte der Schnittpunkte bzw. Schnittstellen von Zeilen und Spalten auf einem Sensormuster) kann von Sensormuster zu Sensormuster variieren. In einer Ausführungsform ist ein Sensormuster für den Daumen-zentrierten Bereich mit einer relativ hohen Taxel-Dichte zwischen 3,5 mm und 7 mm ausgewählt. In einer Ausführungsform ist der Daumen-zentrierte Bereich mit einer Taxel-Dichte von 5 mm versehen, um die Genauigkeit in ausreichender Weise zu verbessern, damit die erfassten Daten zur genauen Modellierung des Daumens 103 verwendet werden können. In einer Ausführungsform ist der Daumen-zentrierte Bereich mit einer Taxel-Dichte von 3,5 mm versehen, um die Anpassung noch mehr zu verbessern.
  • Zusätzlich zur Auswahl der Taxel-Dichte kann ein Sensormuster ausgewählt sein, das auf der Fähigkeit basiert, im Gegensatz zum Kontakt einen weiten, nahen oder mittleren Schwebezustand zu erkennen. In einer Ausführungsform ist das Sensormuster für den Daumen-zentrierten Sensor so gewählt, dass er einen Schwebezustand zwischen 3 mm und 10 mm erfasst. In einer Ausführungsform ist das Sensormuster für den Daumen-zentrierten Sensor so gewählt, dass ein Schweben auf wenigstens 3 mm erkannt wird. In einer Ausführungsform ist das Sensormuster für den Daumen-zentrierten Sensor so gewählt, dass ein Schweben auf wenigstens 4 mm erkannt wird. In einer Ausführungsform ist das Sensormuster für den Daumen-zentrierten Sensor so gewählt, dass ein Schweben auf wenigstens 5 mm erkannt wird. In einer Ausführungsform ist das Sensormuster für den Daumen-zentrierten Sensor so gewählt, dass er eine Bewegung in einem Abstand erfasst, der so weit reicht, dass die erfassten Daten verwendet werden können, um den Daumen 103 einer Gruppe von beabsichtigten Benutzern genau zu modellieren.
  • Um kurz auf 2 zurückzukommen, ist eine Steuerung 100 in der Hand 105 eines Benutzers dargestellt, ebenso wie ein computergestütztes Modell 200 einer Heatmap, die basierend auf der Interaktion des Daumens 103 mit dem Daumen-zentrierten Abschnitt 110 der Steuerung 100 erkannt ist. Die Heatmap zeigt Berührungsbereiche über ein regenbogenartiges Spektrum, mit roten reflektierenden Bereichen mit mehr erkanntem Kontakt und blauen reflektierenden Bereichen mit weniger erkanntem Kontakt. Die Heatmap lokalisiert die Berührungs-anzeigende Farbschicht willkürlich auch in einem Abstand von der Berührungsfläche, der dem erfassten Berührungsausmaß entspricht, wobei mehr Erkennung dazu führt, dass das Rot im computergestützten Modell weiter vom Sensor entfernt ist. Wie in 2 dargestellt, ist der Daumen 103 der Hand eines Benutzers entweder in Kontakt mit dem Daumen-zentrierten Sensormuster auf dem Daumen-zentrierten Abschnitt 110 oder nahezu in Kontakt mit diesem.
  • In einer Ausführungsform ist das Daumen-zentrierte Sensormuster ein aus einem Raster von Zeilen und Spalten bestehendes Muster. In einer Ausführungsform ist die Zeile-Spalte-Ausrichtung des Daumen-zentrierten Sensormusters in einem Winkel angeordnet, so dass die Zeilen und Spalten diagonal über die Fläche des Daumen-zentrierten Sensormusters verlaufen, während es auf die Steuerung 100 ausgerichtet ist. In einer Ausführungsform sind die Zeilen und Spalten des Daumen-zentrierten Sensormusters in einem Winkel in Bezug auf ihre jeweilige Ausrichtung auf der Steuerung 100 von etwa 30 Grad angeordnet. In einer Ausführungsform sind die Zeilen und Spalten des Daumen-zentrierten Sensormusters in einem Winkel in Bezug auf ihre jeweilige Ausrichtung auf der Steuerung 100 von etwa 60 Grad angeordnet. In einer Ausführungsform besteht das Daumen-zentrierte Sensormuster aus drei Schichten, die zwei Schichten von Empfängern umfassen, die im Allgemeinen diagonal in Bezug auf den Daumen-zentrierten Abschnitt 110 der Steuerung 100 verlaufen, und eine dritte Schicht von Sendern, die über, unter oder zwischen den beiden Schichten von Empfängern arbeiten und entweder im Allgemeinen horizontal oder im Allgemeinen vertikal in Bezug auf den Daumen-zentrierten Abschnitt 110 der Steuerung 100 ausgerichtet sind.
  • Wiederum mit Bezug auf die 3A-3D, sind drei Sensormuster veranschaulicht, die als Daumen-zentriertes Sensormuster verwendet werden können. Obwohl diese spezifischen Beispiele zu akzeptablen Ergebnissen geführt haben, liegt es im Rahmen und Geist dieser Offenbarung, andere Sensormuster als Daumen-zentriertes Sensormuster im Zusammenhang mit der vorliegenden Erfindung zu verwenden. Viele andere Sensormuster werden für den Fachmann als Daumen-zentriertes Sensormuster im Hinblick auf diese Offenbarung offensichtlich sein.
  • Das in 3A dargestellte Sensormuster, bei dem Zeilen und Spalten (z.B. Sendeantenne und Empfangsantenne) in durchgezogenen und gestrichelten Linien dargestellt sind, funktioniert ordnungsgemäß. Das in 3B dargestellte Sensormuster zeigt auch Zeilen und Spalten in durchgezogenen und gestrichelten Linien. Das Sensormuster in 3B umfasst zusätzlich Entkopplungsleitungen, die in der Nähe der Zuführleitungen verlaufen. Die 3C und 3D zeigen Schichten eines Dreischichtsensors, wobei die durchgezogenen und gestrichelten Linien von 3C jeweils eine Schicht des Sensors darstellen und die gestrichelten Linien von 3D eine andere Schicht darstellen. In einer Ausführungsform werden die durchgezogenen und gestrichelten Linien von 3C alle als Spalten (z.B. Empfangsantenne) verwendet, wobei die gestrichelten Linien von 3D als Sender verwendet werden. In einer Ausführungsform liefert der Dreischichtsensor eine qualitativ hochwertige Bildgebung für das Daumen-zentrierte Sensormuster in einer wie hierin erläuterten Steuerung. Das Sensormuster in 3C umfasst zusätzlich breitere Entkopplungsleitungen (die als Entkopplungsebenen bezeichnet werden können), die nahe den Zuführleitungen verlaufen. Ein Teildetail von 3C ist ebenfalls zur Verdeutlichung vorgesehen (siehe 3E).
  • Wenn sich ein kapazitiver Gegenstand, wie beispielsweise ein Finger, den Zuführleitungen nähert, kann es zu einem Verschmieren (smearing) kommen. In einer Ausführungsform können, um das Verschmieren zu mindern, die Zuführleitungen entweder an einen entfernteren Ort verschoben werden, z.B. durch Vergrößerung der Daumen-zentrierten Sensorfläche. In einer Ausführungsform können die Zuführleitungen zur Minderung des Verschmierens von der Oberfläche weg und in den Gegenstand gerichtet sein. Beides hat Nachteile, wie es der Fachmann erkennen wird. In einer Ausführungsform können zur Minderung des Verschmierens Entkopplungsleitungen wie in 3B oder breitere Entkopplungsebenen wie in 3C hinzugefügt sein.
  • Um nun auf 4 zurückzukommen, ist eine Steuerung 100 in der Hand eines Benutzers dargestellt, ebenso wie ein computergestütztes Modell 200, das die Handposition - und insbesondere die Position des Zeigefingers - basierend auf der erfassten Interaktion des Zeigefingers 107 mit dem Auslöse-zentrierten Abschnitt 112 der Steuerung 100 zeigt. Wie in 4 dargestellt, ist der Zeigefinger 107 der Hand 105 eines Benutzers entweder in Kontakt mit dem Auslöse-zentrierten Sensormuster oder nahezu in Kontakt mit diesem, und so zeigt das Computermodell 200 der Hand 105 die ähnliche Eingriffsposition auf dem Computerdisplay.
  • In einer Ausführungsform wird ein separates Sensormuster für den Auslöse-zentrierten Sensor verwendet. Im Allgemeinen ist eine Auslöse-artige Eingabe viel einfacher als Eingaben die mit anderen Berührungen verbunden sind. In einer Ausführungsform hat ein Zeigefinger 107 relativ begrenzte Freiheitsgrade mit Bezug auf die Steuerung 110. Dementsprechend benötigt der Auslösesensor in einer Ausführungsform nur ein Taxel, um die Beziehung des Zeigefingers 110 zu einem Auslöse-zentrierten Abschnitt 112 der Steuerung 110 zu erklären. Da es wünschenswert ist, in einer Ausführungsform einen relativ langen Schwebeabstand zum Auslöse-zentrierten Sensormuster (z.B. bis zu 3,5 cm oder bis zu 5 cm oder bis zu 7 cm oder bis zu 10 cm), vorzusehen, kann das Auslöse-zentrierte Sensormuster aus einer Antenne bestehen, die sich im Allgemeinen senkrecht (nach innen oder außen) bis zur Oberfläche des Auslöse-zentrierten Abschnitts 112 der Steuerung 100 erstreckt.
  • Kapazitive Sensormuster wurden bisher unter Verwendung eines Sensormusters mit einer Antenne vorgeschlagen, die sich im Allgemeinen senkrecht zur Berührungsfläche erstreckt, siehe z.B. die vom Anmelder am 29. Juli 2016 eingereichte frühere US-Patentanmeldung Nr. 15/224,226 mit dem Titel „Hover-Sensitive Touchpad“, deren gesamte Offenbarung und die darin durch Bezugnahme enthaltenen Anmeldungen hierin ebenfalls durch Verweis mit aufgenommen sind. In einer Ausführungsform besteht das Auslöse-zentrierte Sensormuster aus einer Sendeantenne und einer Empfangsantenne. In einer Ausführungsform besteht das Auslöse-zentrierte Sensormuster aus einer Sendeantenne und zwei oder mehreren Empfangsantennen.
  • In der Praxis können die Freiheitsgrade des Zeigefingers 107 mehr als eine Einzel-Taxel-Auflösung erfordern. Dementsprechend ist in einer Ausführungsform das Auslöse-zentrierte Sensormuster ein Muster, das aus einem komplexeren Sensormuster als dem vorstehend beschriebenen besteht. In einer Ausführungsform wird ein Gitter aus Zeilen und Spalten verwendet. In einer Ausführungsform wird ein Auslöse-zentriertes Sensormuster erzeugt, das die Seiten einer diamantförmigen Raute für Empfänger und einen zentralen Sender verwendet (nicht dargestellt). In einer Ausführungsform wird ein Auslöse-zentriertes Sensormuster erzeugt, das aus den Quadranten eines Kreises für Empfänger und einem zentralen Sender besteht (nicht dargestellt). In einer Ausführungsform könnte in beiden der vorgenannten Fälle das Verschmieren durch das Hinzufügen von Entkopplungsleitungen oder breiteren Entkopplungsebenen, wie vorstehend erläutert und dargestellt, gemildert werden.
  • In einer Ausführungsform unterscheidet sich das Auslöse-zentrierte Sensormuster vom Daumen-zentrierten Sensormuster. In einer Ausführungsform unterscheidet sich das Auslöse-zentrierte Sensormuster von dem Sensormuster, das auf wenigstens einem Abschnitt des Gehäuses der Steuerung 110 verwendet wird.
  • Wiederum mit Bezug auf die 5A-8B, sind beispielhafte dreischichtige Auslöse-zentrierte Sensormuster gezeigt. In einer Ausführungsform, wie in 5A dargestellt, bestehen zwei Empfangsschichten aus unregelmäßigen (d.h. nicht geraden) Leiterlinien 501, 502 in einem im Allgemeinen rasterartigen Layout. In 5B besteht eine Sendeschicht aus im Allgemeinen parallelen Leitern 503, die vertikal in Bezug auf das Auslöse-zentrierte Sensormuster verlaufen. In einer Ausführungsform, wie in 6A dargestellt, bestehen zwei Empfangsschichten aus unregelmäßigen (d.h. nicht geraden) Leiterlinien 601, 602 in einem allgemein rasterartigen Layout. In 6B besteht eine Sendeschicht aus im Allgemeinen parallelen Leitern 603, die vertikal in Bezug auf das Auslöse-zentrierte Sensormuster verlaufen. Wie vorstehend erläutert, kann in jedem Fall in einer Ausführungsform das Verschmieren durch Hinzufügen von Entkopplungsleitungen oder breiteren Entkopplungsebenen gemildert werden.
  • In einer Ausführungsform bestehen in 7A zwei Empfangsschichten aus unregelmäßigen (d.h. nicht geraden) Leiterlinien 701, 702 in einem allgemein rasterartigen Layout. In 7B besteht die Sendeschicht auch aus unregelmäßigen Leitern 703, die im Allgemeinen parallel sind und horizontal und nicht vertikal über das Auslöse-zentrierte Sensormuster verlaufen. In einer Ausführungsform kann das Verschmieren durch Hinzufügen von Entkopplungsleitungen oder breiteren Entkopplungsebenen gemildert werden.
  • In einer Ausführungsform bestehen in 8A zwei Empfangsschichten aus unregelmäßigen (d.h. nicht geraden) Leiterlinien 801, 802 in einem im Allgemeinen diamantförmigen Layout (Raute). In 8B besteht eine Sendeschicht aus Leitern 803, die im Allgemeinen parallel sind und horizontal über das Auslöse-zentrierte Sensormuster verlaufen. In einer Ausführungsform kann das Verschmieren durch Hinzufügen von Entkopplungsleitungen oder breiteren Entkopplungsebenen gemildert werden. In einer Ausführungsform werden frequenzorthogonale Frequenzen auf jedem der Leiter 803 der Sendeschicht übertragen. Jede der diagonalen Leiterlinien 801, 802 auf jeder Schicht ist mit einem eigenen Empfänger verbunden. In einer Ausführungsform werden zwei Heatmaps erzeugt, eine entsprechend der Interaktion zwischen einem Satz von Diagonalempfängern und den Sendern und eine weitere entsprechend dem anderen Satz von Diagonalempfängern und den Sendern. In einer Ausführungsform können die beiden Heatmaps zusammengefaltet werden. In einer Ausführungsform bietet das Zusammenfalten der beiden Heatmaps eine erhöhte Auflösung. In einer Ausführungsform bietet das Zusammenrollen der beiden Heatmaps verbesserte Signal-Rausch-Eigenschaften. In einer Ausführungsform bietet das Zusammenrollen der beiden Heatmaps eine erhöhte Anpassungstreue in Bezug auf die erfasste Aktion.
  • In einer Ausführungsform ist die Zeile-Spalte-Ausrichtung des Auslöse-zentrierten Sensormusters in einem Winkel angeordnet, so dass die Zeilen und Spalten diagonal über die Fläche des Auslöse-zentrierten Sensormusters verlaufen, wie es auf die Steuerung 100 ausgerichtet ist. In einer Ausführungsform sind die Zeilen und Spalten des Auslöse-zentrierten Sensormusters in einem Winkel in Bezug auf ihre jeweilige Ausrichtung auf der Steuerung 100 von etwa 30 Grad angeordnet. In einer Ausführungsform sind die Zeilen und Spalten des Auslöse-zentrierten Sensormusters in einem Winkel in Bezug auf ihre jeweilige Ausrichtung auf der Steuerung 100 von etwa 60 Grad angeordnet. In einer Ausführungsform besteht das Auslöse-zentrierte Sensormuster aus drei Schichten, die zwei Schichten von Empfängern umfassen, die im Allgemeinen diagonal zum Auslöse-zentrierten Abschnitt der Steuerung 100 verlaufen, und eine dritte Schicht von Sendern, die über, unter oder zwischen den beiden Schichten von Empfängern arbeiten und entweder allgemein horizontal oder allgemein vertikal zum Auslöse-zentrierten Abschnitt der Steuerung 100 ausgerichtet sind.
  • In einer Ausführungsform werden eine oder mehrere Frequenzen, die jeweils orthogonal zu den Frequenzen sind, die auf den Sendern übertragen werden, auf den Körper des Benutzers angewendet. In einer Ausführungsform wird eine Frequenz, die orthogonal zu den Frequenzen ist, die auf den Sendern übertragen werden, auf den Körper des Benutzers angewendet. In einer Ausführungsform kann die auf den Körper des Benutzers angewandte Frequenz über einen oder mehrere Kontakte auf der Steuerung auf die Handfläche oder den Handrücken des Benutzers angewendet werden (nicht dargestellt). In einer Ausführungsform kann eine dritte Heatmap erstellt werden, die die angewandte Frequenz auflöst. In experimentellen Tests zeigen die für die angewandten Frequenzdaten erfassten Daten Spitzen, die sich wesentlich unterscheiden, und leicht zu unterscheiden sind, von denen, die sich aus der Berührung ohne angewandte Frequenz ergeben, wie vorstehend erläutert ist. In einer Ausführungsform werden Sensordaten für die angewandte Frequenz zur Näherungsmessung in relativ großen Entfernungen (z.B. mehr als 2 cm) vom Sensor verwendet. In einer Ausführungsform werden Sensordaten für die angewandte Frequenz zur Positionsmessung in relativ kurzen Entfernungen vom Sensor verwendet (z.B. weniger als 1 cm). In einer Ausführungsform können angewandte Frequenzdaten aus zwei oder mehr Frequenzen resultieren, die orthogonal zu den Frequenzen sind, die auf den Sendern und untereinander übertragen werden. In einer Ausführungsform können die zwei oder mehr angewandten Frequenzen über einen oder mehrere Kontakte auf der Steuerung auf die Handfläche des Benutzers oder den Handrücken des Benutzers angewendet werden (nicht dargestellt). In einer Ausführungsform wird jede der zwei oder mehreren angewandten Frequenzen über denselben Kontakt oder dieselben Kontakte auf der Steuerung auf die Handfläche des Benutzers oder den Handrücken des Benutzers angewendet (nicht dargestellt). In einer Ausführungsform wird jede der zwei oder mehreren angewandten Frequenzen von einem anderen Kontakt oder Kontakten auf der Steuerung auf die Handfläche des Benutzers oder den Handrücken des Benutzers angewendet (nicht dargestellt). In einer Ausführungsform wird jede der zwei oder mehreren angewandten Frequenzen von einem anderen Kontakt oder Kontakten auf der Steuerung (nicht dargestellt) auf die Handfläche des Benutzers oder den Handrücken des Benutzers angewendet, wobei die Kontakte an einem physischen Ort angeordnet sind, um eine Unterscheidung zwischen den Signalen zu bewirken.
  • Nunmehr mit Bezug auf 9 ist eine Steuerung 100 in der Hand 105 eines Benutzers dargestellt, ebenso wie ein computergestütztes Modell, das die Handposition basierend auf den kapazitiven Sensoren im Steuerungskörper 114 anzeigt. 9 zeigt weiterhin eine grafisch dargestellte Heatmap, die die Position und den Druck eines Zeigefingers von der anderen Hand des Benutzers zeigt. Wie in 9 dargestellt, befindet sich der Zeigefinger 107 der anderen Hand des Benutzers im Wesentlichen in Kontakt mit dem Körper-Sensormuster.
  • In einer Ausführungsform wird ein separates Muster für das Körper-Sensormuster verwendet. Im Gegensatz zu den Auslöse- und Daumen-zentrierten Sensormustern kann das Körper-Sensormuster in einer Ausführungsform bei unregelmäßigen und/oder komplexen Krümmungen in drei Dimensionen verwendet werden. In einer Ausführungsform erfordert dies sowohl das richtige Sensordesign als auch spezielle Software und mathematische Überlegungen, wie hierin erläutert ist.
  • 10A zeigt eine Darstellung einer Ansicht eines Fischgrät-Sensormusters, das aus Zeilen und Spalten besteht, die der unregelmäßigen Krümmung der Steuerung 100 folgen. Die 10B und 10C zeigen eine Ausführungsform von zwei Komponenten, die zum Bilden der linken Fläche eines Körperabschnitts 114 verwendet werden können. Die 10D und 10E zeigen eine Ausführungsform von zwei Komponenten, die zum Bilden der rechten Fläche eines Körperabschnitts 114 verwendet werden können. Die 10F und 10G zeigen eine zweidimensionale Spur von Sensormustern und den Zuführleitungen, die in Verbindung mit den Komponenten für die rechte Seite des Körperabschnitts 114 in den 10D und 10E verwendet werden können. 10G zeigt weiterhin eine zweidimensionale Spur von Sensormustern und den Zuführleitungen, die in Verbindung mit der Empfangsseite eines Daumen-zentrierten Sensormusters auf der Steuerung 100 verwendet werden können (siehe z.B. 1).
  • Die 10B-E zeigen mechanische Mulden (z.B. Räume), die für die Antenne auf der inneren (z.B. konkaven) Seite des Teils vorgesehen sind. Die in den 10C und 10E dargestellten Teile passen in die Innenfläche der in den 10B und 10D dargestellten Teile. In einer Ausführungsform bilden, sobald mit einer Antenne ausgestattet, die 10B/10C-Kombination und die 10D/10E-Kombination Hälften des Körperabschnitts 114 und ein Sensormuster zum Erfassen in Verbindung mit der hierin beschriebenen Steuerung 100. Die beiden Hälften des Körperabschnitts 114 können zusammengefügt werden, um den Körperabschnitt 114 zu bilden. In einer Ausführungsform, wie vorstehend erläutert, können getrennte Daumen- und Auslöse-zentrierte Sensormuster verwendet werden, die durch den Körperabschnitt 114 unterstützt werden können.
  • In einer Ausführungsform werden beliebige Geometrien untergebracht, indem der Sensor so positioniert wird, dass er so nah wie möglich an der gleichen Anzahl von Zeilenspaltenkreuzungen wie die anderen liegt. So sollten in einer Ausführungsform die Ebenen und die Anzahl der Kreuzungen, soweit möglich, gleich sein.
  • In einer Ausführungsform teilen sich die linke Hälfte des Körperabschnitts 114 und die rechte Hälfte des Körperabschnitts 114 eine Sendeantenne. In einer Ausführungsform teilen sich die linke Hälfte des Körperabschnitts 114 und die rechte Hälfte des Körperabschnitts 114 eine Empfangsantenne. So werden in einer Ausführungsform die auf der linken Seite gesendeten Frequenzen auch auf der rechten Seite der Antenne übertragen und umgekehrt. Ebenso kann in einer Ausführungsform eine Empfangsantenne auf jeder Hälfte des Körperabschnitts 114 einem Empfänger zugeordnet werden. So teilt sich in einer Ausführungsform jede Senderantenne in der linken Hälfte des Körperabschnitts 114 der Steuerung 100 eine gemeinsame Frequenz mit einer Senderantenne in der rechten Hälfte des Körperabschnitts 114 der Steuerung 100, und jede Empfangsantenne in der linken Hälfte des Körperabschnitts 114 der Steuerung 100 ist leitend mit einer Empfangsantenne in der rechten Hälfte des Körperabschnitts 114 der Steuerung 100 gekoppelt. Auf diese Weise kann eine kleinere Anzahl von Sendern und Empfängern zum Betreiben der Steuerung 100 verwendet werden.
  • In einer Ausführungsform teilen sich die linke Hälfte des Körperabschnitts 114 und die rechte Hälfte des Körperabschnitts 114 keine Sendeantenne. In einer Ausführungsform teilen sich die linke Hälfte des Körperabschnitts 114 und die rechte Hälfte des Körperabschnitts 114 keine Empfangsantenne. Somit werden in einer Ausführungsform die auf der linken Seite gesendeten Frequenzen nicht auf der rechten Seite der Antenne übertragen und umgekehrt. Ebenso ist in einer Ausführungsform jede Empfangsantenne auf jeder Hälfte des Körperabschnitts 114 einem eigenen Empfänger zugeordnet. Somit ist in einer Ausführungsform jede Empfangsantenne auf jeder Hälfte des Körperabschnitts 114 ihrem eigenen Empfänger zugeordnet, und jede Sendeantenne auf jeder Hälfte des Körperabschnitts 114 ist ihrem eigenen Sender und ihrer eigenen einzigartigen orthogonalen Frequenz zugeordnet. Dennoch kann in einer Ausführungsform jeder Sensor der Hälfte des Körperabschnitts 114 durch Übersprechen des Körpers erkennen. In einer Ausführungsform kann ein Empfänger auf einer Hälfte des Körperabschnitts 114 aufgrund eines solchen durch-den-Körper-Übersprechens Signale empfangen, die auf einem Sender auf der anderen Hälfte des Körperabschnitts 114 übertragen werden. In einer Ausführungsform sind die Empfänger auf jeder Hälfte des Körperabschnitts 114 angepasst, um Signale zu erfassen, die auf der anderen Hälfte des Körperabschnitts 114 übertragen werden, und zusätzlich angepasst, um Signale zu erfassen, die auf seiner eigenen Hälfte des Körperabschnitts 114 übertragen werden.
  • Taxeis
  • Wie hierin verwendet, ist ein Taxel ein lokalisierter Bereich von Übersprechen zwischen einem FMT-logischen Sender und einem FMT-logischen Empfänger. In einer Ausführungsform können mehrere leitfähige Elemente mit einem logischen Empfänger oder Sender verbunden sein. Selbst wenn mehrere leitfähige Elemente verwendet werden, bietet die Interaktion immer noch nur einen logischen Sender oder Empfänger. Darüber hinaus, wenn mehrere logische Elemente mit einem gemeinsamen leitfähigen Element verbunden sind, würde die Struktur aufgrund der Physik der Spannungssumme logisch reduziert werden, als ob jede Permutation des TX/RX-Paares einzeln und getrennt wäre.
  • Im Allgemeinen verhalten sich Taxel analog zu einer Antenne mit einem Antennenmuster. In einer Ausführungsform verursachen Berührungsobjekte eine Störung in der Grundlinien-(Non-Touch-) Antwort, die dem Positionsvektor (X, Y, Z) des Berührungsobjekts in Bezug auf das Taxel und seine dreidimensionale Berührungsreaktion entspricht. In einer Ausführungsform sind Taxel, die von mehr als einem Zentrum aus reagieren (z.B. zwei oder mehr Zentren des Antennenmusters), typischerweise nicht ausgewählt aufgrund der inhärenten Verwirrung, die resultieren kann, da zwei Berührungsobjekte an zwei verschiedenen Positionsvektoren zu derselben Signalstörung führen können.
  • Der Begriff des Übersprechens, wie er in der Definition von Taxel verwendet wird, ist klärend. Unbeabsichtigtes Übersprechen zwischen einem bestimmten RX/TX-Paar kann zu unerwünschten Effekten führen. So kann beispielsweise unbeabsichtigtes Übersprechen zu einem nicht singulären lokalisierten Bereich führen, wobei es selten wünschenswert ist, Verwirrung in die Berechnung des Störpositionsvektors zu bringen. Ebenso kann eine ungleichmäßige oder ungleiche Zeitbereichsantwort über die Mehrzahl von RX-Kanälen, die in einer bestimmten Anwendung verwendet werden, unerwünschte Kompromisse im Zeitbereich in Bezug auf ausgewählte RX-Impedanz, RX-Verstärkung, Zeitbereichsfilterung und verwendetes Equalizer-Schema nach sich ziehen. Somit bezieht sich das hier verwendete Übersprechen auf einen wünschenswerten und messbaren Effekt und nicht auf den typischen unerwünschten Effekt, der in der Elektronikliteratur allgemein als solcher bezeichnet wird. Wenn es sich also um ein körperübertragenes Übersprechen handelt, bezieht sich diese Anwendung z.B. auf ein Signal von einem Sender, das vom Körper (z.B. der Hand) von einem ersten Ort zu einem anderen Ort getragen wird, an dem es wahrgenommen werden kann. So kann beispielsweise ein Zeigefinger 107 mit einem Auslöse-zentrierten Sensormuster in Kontakt stehen, das eine einzigartige orthogonale Frequenz sendet, und diese einzigartige orthogonale Frequenz kann zu einer Empfangsantenne und damit zu einem Empfänger auf einem Daumen-zentrierten Sensormuster geleitet werden - wobei dieses von der Hand 105 geleitete Signal als Übersprechen bezeichnet werden würde.
  • Als ein weiteres Beispiel, wenn sich das Signal A auf dem Leiter X befindet und das Signal B auf dem Leiter Y ist und der Leiter X und der Leiter Y in unmittelbarer Nähe zueinander sind, kann ein Teil des Signals A auf dem Leiter Y erscheinen. Im traditionelleren Sprachgebrauch ist der Übersprech-„Aggressor“ das Signal A und das Übersprech-„Opfer“ das Signal B. Im Gegensatz zur traditionellen Sichtweise von Übersprechen als unerwünscht ist es für den Fachmann angesichts dieser Offenbarung offensichtlich, dass aus Übersprechen wertvolle Informationen in den hier offenbarten und beschriebenen neuartigen FMT-Objekterkennungsverfahren und -einrichtungen abgeleitet werden können.
  • In einer Ausführungsform umfassen Taxelkomponenten zwei Hauptabschnitte: Abschnitt A, der nicht auf Berührungsobjekte (oder injizierte Frequenzen) reagiert, und Abschnitt B, der auf Berührungsobjekte reagiert. Das totale Übersprechen bei einer gegebenen Frequenz für ein bestimmtes Taxel ist A+B. In einer Ausführungsform sind sowohl das Verhältnis von A:B als auch die Gesamtgröße von A+B wichtig, um Daten zu verstehen, die aus den Sensormustern mittels FMT abgeleitet wurden.
  • In einer Ausführungsform summiert sich jedes Tixel-Übersprechen (A+B) mit jedem anderen Tixel-Übersprechen im Zeitbereich, was zu einer komplexen Wellenform im Zeitbereich führt, die schließlich in der Z-Domäne abgetastet und in ihre Bestandteile Frequenzen und Größen im Frequenzbereich zerlegbar ist. In einer Ausführungsform überschreitet die Vpp (Spitze-zu-Spitze-Spannung) dieser komplexen Wellenform im Zeitbereich nicht die Grenzen des ADC-Eingangs (Analog-Digital-Wandler). Somit umfasst das Systemdesign (einschließlich Sensordesign) in einer Ausführungsform die Optimierung von Vpp am ADC-Eingang. In einer Ausführungsform dominieren Taxel A+B, die Anzahl der Taxel auf einem bestimmten Empfänger und unbeabsichtigtes Übersprechen die Vpp dieser Zeitbereichswellenform.
  • Obwohl A auf ein Berührungsobjekt nicht reagiert und somit nicht direkt zu einem hohen Signal-Rausch-Verhältnis beiträgt, erfordert das Design guter Sensoren, dass sowohl A als auch B berücksichtigt werden. Beispielsweise können Sensoren mit hohem A-Verhältnis weniger anfällig für externe Rauschunterdrückung, Systemrauschen und unbeabsichtigtes Übersprechen sein. Und zum Beispiel können Sensoren mit hohem B-Verhältnis eine größere messbare Reaktion auf Berührungsobjekte sowohl in engem Kontakt als auch in weiterem Abstand sowie eine größere Signaleinspeisung und Kreuzkopplung aufweisen. So sollten in einer Ausführungsform, wie sie für den Fachmann im Hinblick auf diese Offenbarung offensichtlich ist, für eine bestimmte Anwendung und die gewünschte Sensorreaktion sowohl A als auch B selektiv ausgelegt sein, um das gewünschte Ergebnis zu erzielen.
  • Bei der Konstruktion einer Ausführungsform der Mensch-Maschine-Schnittstellen-Steuerung 100, die z.B. in den 1A-1F, 3A-3D und 10A-10G dargestellt ist, bestand ein Konstruktionsziel darin, den Steuerungskörperabschnitt 114 mit einer hohen Empfindlichkeit für „Schweben“ zu versehen. In einer Ausführungsform sind leitfähige Filamente mit individueller Breite in mechanischen Mulden platziert, die in die komplex-gekrümmten Oberflächen geschnitten sind, wodurch eine genaue Platzierung jedes Taxels im X,Y,Z-Raum relativ zum Ursprung des Steuerungskörperabschnitts 114 gewährleistet ist. Somit resultieren die Taxel im Steuerungskörperabschnitt 114 aus einzigartigen TX/RX-Übergängen an definierten Fixpunkten in der mechanischen Konstruktion.
  • Für zweidimensionale Sensoren (z.B. Touchpanels) kann durch Simulation, empirische Messung oder anderweitig eine Interpolationskurve für den Sensor berechnet werden. Die Interpolationskurve ist die mathematische Beziehung zwischen der FMT-Signalstörung bei einem Tixel und dem Abstand eines Berührungsobjekts von diesem Taxel. Diese Interpolationsgleichung ermöglicht die Berechnung der XY-Position eines Berührungsobjekts. In einer Ausführungsform wird die Interpolationsgleichung über Daten aus mehreren Taxel hinweg verwendet, wobei der Ort der Berührung auch dann identifiziert werden kann, wenn sich das Berührungsobjekt nicht direkt auf einem einzelnen Taxel befindet.
  • In einer Ausführungsform, in der das Sensormuster nicht plan ist, muss die Position des Taxels in XYZ dargestellt sein, wobei der zum Taxel normale Vektor bereitgestellt und verwendet werden kann, sowie eine Interpolationskurve in XYZ, um die Position in XYZ in Bezug auf eine bestimmte Gruppierung von Taxels zu berechnen. So stellt in einer Ausführungsform jede Zeilenspaltenkreuzung ein dreidimensionales Taxel für die Rekonstruktion dar, mit einer dreidimensionalen Abbildung im Raum in einer Richtung senkrecht zur Oberfläche der Steuerung 100. Mit anderen Worten, die Taxel-Feld-Richtung ist senkrecht auf die Oberfläche der Steuerung 100 projiziert und in den dreidimensionalen Raum rück-abgebildet. So wird in einer Ausführungsform eine dreidimensionale Raum-Heatmap konstruiert, wobei die Taxel-Daten zusammen mit Informationen über die Ausrichtung des Taxels verwendet werden, um die Heatmap zu füllen.
  • So wurde, in einer Ausführungsform mit dem z.B. in 10A dargestellten Fischgrät-Sensor für den Körperabschnitt 114 der Steuerung 100, das A+B hauptsächlich zugunsten eines hohen B-Verhältnisses bewegt. In einer Ausführungsform kann ein Bewegen von A+B zugunsten eines hohen B-Verhältnisses die Signalerkennungsfähigkeit weit von der Oberfläche des Körperabschnitts 114 entfernt erweitern. In einer Ausführungsform kann das Bewegen von A+B zugunsten eines hohen B-Verhältnisses durch Erhöhen der Trennschicht zwischen TX- und RX-Schichten erreicht werden. In einer Ausführungsform beträgt die Trennschicht zwischen TX- und RX-Schicht wenigstens 500 Mikrometer. In einer Ausführungsform beträgt die Trennschicht zwischen TX- und RX-Schicht 1000 Mikrometer. In einer Ausführungsform, wenn der Abstand zwischen TX-Leiter und RX-Leiter zunimmt, sinkt A schneller als B. So führt in einer Ausführungsform eine Erhöhung der Trennschicht zwischen TX- und RX-Schichten zu einer Reduzierung von A+B, aber zu einer Erhöhung des Verhältnisses von B zu A. In einer Ausführungsform erlaubte die Reduzierung von A+B eine Erhöhung von TX Vpp, ohne die Grenzen des ADC zu überschreiten. So wurde in einer Ausführungsform eine TX-Spannung von wenigstens 18 Vpp verwendet. In einer Ausführungsform wurde eine TX-Spannung von 24 Vpp verwendet.
  • Frequenzinjektion zur Unterstützung der Handverfolgung
  • In einer Ausführungsform kann die FMT-Kapazitiv-Sensor-Handverfolgung verbessert werden, wenn sie durch Frequenzinjektion unterstützt wird. Für eine Beschreibung des FMT-Kapazitiv-Sensors im Allgemeinen wird auf die frühere US-Patentanmeldung des Anmelders mit der Nr. 13/841,436 , eingereicht am 15. März 2013 mit dem Titel „Low-Latency Touch Sensitive Device“ und die am 1. November 2013 eingereichte US-Patentanmeldung Nr. 14/069,609 mit dem Titel „Fast Multi-Touch Post Processing“ verwiesen. Die Frequenzinjektion bezieht sich auf die Anwendung einer Frequenz oder mehrerer Frequenzen auf den Körper eines Benutzers und somit auf die Verwendung des Körpers des Benutzers als Leiter dieser Frequenz auf einem FMT-Kapazitiv-Sensor. In einer Ausführungsform ist eine injizierte Frequenz eine Frequenz, die orthogonal zu den Frequenzen ist, die auf den FMT-Kapazitiv-Sensorsendern übertragen werden. In einer Ausführungsform sind mehrere injizierte Frequenzen sowohl frequenzorthogonal zueinander als auch frequenzorthogonal zu den Frequenzen, die auf den FMT-Kapazitiv-Sensorsendern übertragen werden.
  • Im Allgemeinen verwendet FMT ein Sensormuster, bei dem Zeilen als Frequenzgeber und Spalten als Frequenzempfänger fungieren. (Wie bereits erwähnt, sind die Bezeichnungen von Zeile und Spalte beliebig und nicht dazu bestimmt, z.B. eine rasterartige Anordnung oder eine allgemein gerade Form von beiden zu bezeichnen). In einer Ausführungsform werden die Spalten bei der Kombination von Frequenzinjektion mit FMT zusätzlich als Empfänger verwendet, um die injizierte(n) Frequenz(en) abzuhören. In einer Ausführungsform werden bei der Kombination von Frequenzinjektion mit FMT sowohl die Zeilen als auch die Spalten zusätzlich als Empfänger verwendet, um die injizierte(n) Frequenz(en) abzuhören.
  • In einer Ausführungsform wird eine bekannte Frequenz über einen oder mehrere separate Sender auf z.B. die Hand des Benutzers übertragen. In einer Ausführungsform ist jeder separate Sender einem Armband, einer Handschlaufe, einem Sitzpolster, einer Armlehne oder einem anderen Gegenstand zugeordnet, der wahrscheinlich mit dem Benutzer in Kontakt steht. In einer Ausführungsform verwendet eine Steuerung 100 einen oder mehrere separate Sender auf einem oder mehreren Abschnitten des Körperabschnitts 114 der Steuerung 100, wenn die Steuerung 100 in Gebrauch ist, die im Allgemeinen mit der Hand des Steuerungsbenutzers in Kontakt ist. In einer Ausführungsform verwendet eine Steuerung 100 mit einer Handschlaufe einen oder mehrere separate Sender an einer Handschlaufe 102, die bei Verwendung der Steuerung 100 im Allgemeinen mit der Hand des Steuerungsbenutzers in Kontakt ist.
  • In einer Ausführungsform, bei der die bekannten Frequenzen injiziert sind, kann FMT die Stärke der bekannten Frequenz oder der bekannten Frequenzen an jedem Empfänger messen. In einer Ausführungsform, bei der die bekannten Frequenzen injiziert sind, kann FMT die Stärke der bekannten Frequenz oder der bekannten Frequenzen in jeder Zeile und in jeder Spalte messen, indem ein Empfänger und Signalprozessor jeder Zeile und jeder Spalte zugeordnet wird. In einer Ausführungsform liefert die Messung der Signalstärke für die injizierte(n) Frequenz(en) in jeder Zeile Informationen über die Position des Körperteils, das die injizierte Frequenz leitet.
  • In einer Ausführungsform liefert die Messung der Signalstärke für die injizierte(n) Frequenz(en) in jeder Zeile und in jeder Spalte detailliertere Informationen über die Lage des Körperteils, das die injizierten Frequenzen leitet. In einer Ausführungsform stellen die Ortsinformationen aus den Zeilen und aus den Spalten zwei separate eindimensionale Messsätze der Signalstärke zur Verfügung. In einer Ausführungsform stellen die beiden eindimensionalen Sätze einen Deskriptor zur Verfügung, mit dem Zwischendarstellungen wie eine 2D-Heatmap erzeugt werden können (ähnlich einer herkömmlichen FMT Sender/Empfänger-Heatmap). In einer Ausführungsform stellen die beiden eindimensionalen Sätze einen Deskriptor zur Verfügung, der verwendet werden kann, um eine bessere Genauigkeit bei der Rekonstruktion der Bewegung der Finger in der Nähe des Sensors zu ermöglichen. In einer Ausführungsform bieten erfasste Frequenzinjektionssignale einen erhöhten Schwebebereich über dem Bereich des FMT-Sensormusters allein.
  • In einer Ausführungsform werden Frequenzinjektionsdeskriptoren verwendet, um vordefinierte Profile von Signalstärken zu erstellen, die einem Satz von diskreten Positionen eines Fingers entsprechen. In einer Ausführungsform werden die Deskriptoren mit Basislinien- und Rauschunterdrückungstechniken oder anderen mehrdimensionalen Analysetechniken kombiniert (siehe z.B. die am 1. November 2013 vom Anmelder eingereichte frühere US-Patentanmeldung Nr. 14/069,609 mit dem Titel „Fast Multi-Touch Post-Processing“ und die am 17. März 2014 eingereichte US-Patentanmeldung Nr. 14/216,791 mit dem Titel „Fast Multi-Touch Noise Reduction“), um aus diesen Deskriptoren aussagekräftige Informationen zu gewinnen, die mit der Fingerbewegung korrelieren können. In einer Ausführungsform können FMT-Heatmap-Verarbeitungstechniken auch zusätzlich zu diesen Frequenzsrärkesignalen verwendet werden. Durch die Kombination von FMT-Heatmap-Verarbeitung und Deskriptoren, die sich aus erfassten Frequenzinjektionssignalen ergeben, kann die Genauigkeit verbessert werden.
  • In einer Ausführungsform wird eine Handverfolgung unter Verwendung einer hierarchischen, skelettbasierten Beschreibung einer virtuellen Hand zur Beschreibung der realen Hand berechnet. In einer Ausführungsform werden die Frequenzinjektionsdeskriptoren in eine kontinuierliche Echtzeit-Animation oder eine andere digitale Darstellung dieser hierarchischen, skelettbasierten Beschreibung einer virtuellen Hand abgebildet, wodurch die reale Handbewegung nachgeahmt wird.
  • Für einen Fachmann ist es offensichtlich, dass das Abbilden (Mapping) mit linearen oder nichtlinearen Funktionen in Echtzeit erreicht werden kann, um die Signalbereitstellung in eine Bereitstellung von Fingerwinkeln oder eine Bereitstellung von Skelettwinkeln zu übersetzen. In einer Ausführungsform können Korrelationseigenschaften zwischen Signalstärkeproben und einer Ground-Truth-Referenz verwendet werden. In einer Ausführungsform wird eine Ground-Truth-Referenz mit einer anderen Technik erfasst, wie beispielsweise, ohne Einschränkung, mit Bewegungserfassung, einer anderen visuell-basierten Verarbeitungstechnik oder vordefinierten erfassten Posen.
  • Für einen Fachmann ist es offensichtlich, dass die intrinsischen Eigenschaften der Signalinjektion, wie sie auf die oben beschriebene Hand 105 angewendet und von ihr gemessen werden, als Grundlage für die Definition der Modellabbildung verwendet werden können. In einer Ausführungsform können eine oder mehrere der folgenden verallgemeinerten Datentechniken für eine solche Abbildung verwendet werden: manuelles oder automatisches überwachtes oder nicht-überwachtes Training, Datenschürfen (Data-Mining), Klassifizierungs- oder Regressionstechniken. In einer Ausführungsform wird die Datentechnik verwendet, um die adäquate Definition der Abbildungs-Funktionen zu identifizieren, die für die manuelle Modellierung und damit für die manuelle Nachverfolgung verwendet werden können. Wie vorstehend erläutert, können in einer Ausführungsform die Hard- und Software zur Signalinjektion, wie vorstehend erläutert, mit FMT-Funktionen kombiniert werden, wobei das gleiche FMT-Sensormuster sowie Sender und Empfänger genutzt werden. In einer Ausführungsform können die oben beschriebene Hard- und Software zur Signalinjektion mit FMT-Funktionen kombiniert werden, wodurch ein FMT-Berührungssensorsystem mit zusätzlichen Empfängern ergänzt wird. In einer Ausführungsform können die oben beschriebene Hard- und Software zur Signalinjektion mit FMT-Funktionen kombiniert werden, wodurch ein FMT-Berührungssensorsystem mit der Fähigkeit zur Erkennung zusätzlicher injizierter Frequenzen ergänzt wird.
  • Zusammenführung von Berührungs- und Schwebeinformationen und Frequenzinjektionsinformationen zur Verfolgung einer Handposition
  • In einer Ausführungsform werden ein oder mehrere überlagerte Sensoren verwendet, um verschiedene Informationen zu verfolgen. In einer Ausführungsform können Berührungsinformationen mit FMT verfolgt werden. Siehe z.B. die frühere US-Patentanmeldung Nr. 14/069,609 , die am 1. November 2013 mit dem Titel „Fast Multi-Touch Post-Processing“ vom Anmelder eingereicht wurde. Die Verwendung von FMT liefert Berührungsinformationen sowohl für Kontakt als auch Schweben bis zu etwa 4 cm. In einer Ausführungsform ist die Frequenzinjektion zu FMT hinzugefügt. In einer Ausführungsform werden eine oder mehrere Frequenzen in den Körper an oder nahe der Hand injiziert. In einer Ausführungsform bietet das Hinzufügen von Frequenzinjektion zu FMT eine bessere Genauigkeit und mehr Reichweite für Schweben. In einer Ausführungsform wurde derselbe Sensor verwendet, um die FMT-Frequenzen (auch bekannt als „interne Frequenzen“) und eine weitere injizierte Frequenz (auch bekannt als „externe Frequenz“) zu lesen. In einer Ausführungsform wurde derselbe Sensor verwendet, um die FMT-Frequenzen (auch bekannt als „interne Frequenzen“) und eine Mehrzahl zusätzlicher injizierter Frequenzen (auch bekannt als „externe Frequenzen“) zu lesen. In einer Ausführungsform erweiterte die Kombination von FMT und Frequenzinjektion effektiv den Bereich der Handmodellierung über 4 cm hinaus. In einer Ausführungsform erweiterte die Kombination von FMT und Frequenzinjektion den Bereich der Handmodellierung effektiv auf über 5 cm. In einer Ausführungsform erweiterte die Kombination von FMT und Frequenzinjektion effektiv den Bereich der Handmodellierung über 6 cm hinaus. In einer Ausführungsform erweiterte die Kombination von FMT und Frequenzinjektion effektiv den Bereich der Handmodellierung auf die volle Flexion, d.h. den gesamten Bewegungsumfang der Hand.
  • In einer Ausführungsform ist ein einzelner Sensor / Sensormuster in der Lage, alle Frequenzinformationen zu empfangen. In einer Ausführungsform werden mehrere Sensormuster (Sender- und Empfängerschichten) überlagert (siehe z.B. 3A-3D, 5A, 5B, 5B, 8A, 8B und 10A-10G).
  • In einer Ausführungsform werden Elemente (z.B. eine Antenne) auf oder in der Nähe der Oberfläche des Körperabschnitts 114 der Steuerung 100 platziert, wo sie während des Betriebs der Steuerung 100 wahrscheinlich mit der Hand 105 des Benutzers in Kontakt stehen. Bei ausreichender Berührung mit der Hand 105 im Betrieb der Steuerung 100 tritt ein Signal in die Hand 105 ein und geht durch diese hindurch, was vom Sensor erfasst werden kann. Die Übertragungsschleife läuft von einem Signalgenerator, dann zu dem Element am Körperabschnitt 114 der Steuerung 100, dann zur Hand 105, und dann zur Empfangsantenne (z.B. Spalte), wo sie durch FMT gemessen wird. In einer Ausführungsform ist die Übertragungsschleife geschlossen, wenn die Hand 105 die Antenne berührt (aber nicht unbedingt in Kontakt mit ihr ist), und die Empfangsantenne berührt (aber nicht unbedingt in Kontakt mit ihr ist). In einer Ausführungsform werden Elemente (z.B. eine Antenne) auf einer Steuerungsschleife 102 platziert, wo sie während des Betriebs der Steuerung wahrscheinlich mit dem Handrücken des Benutzers in Berührung sind. Eine Übertragungsschleife wird wie vorstehend beschrieben mit den Elementen des Körperabschnitts 114 erstellt, mit der Ausnahme, dass die Elemente der Steuerungsschleife 102 eher den Rücken der Hand 105 des Benutzers als z.B. die Handfläche berühren würden. In einer Ausführungsform ist ein Signalinjektionssystem in Form von, oder wenigstens teilweise in Form von: eines Armbandes; einer Uh; einer Smartwatch; eines Mobiltelefons; eines Handschuhs; eines Rings; eines Stifts, eines in der Tasche zu tragenden Gegenstands; eines Sitzkissens oder eines anderen Sitzpolsters; einer Bodenmatte; einer Armlehne; einer Schreibtischoberfläche; eines Gürtels; eines Schuhs; einer tragbaren Computereinrichtung oder eines anderen Gegenstands, der wahrscheinlich während des Betriebs der Steuerung 100 mit dem Benutzer in Berührung ist. In einer Ausführungsform wird eine Übertragungsschleife in ähnlicher Weise durch den Körper des Benutzers zwischen der injizierten Signalquelle und der Empfangsantenne erzeugt.
  • In einer Ausführungsform sollte die Intensität des Signals vom Signalgenerator zum Element ausreichend sein, um eine Erkennung der Hand außerhalb des 4 cm-Bereichs zu ermöglichen. In einer Ausführungsform sollte die Intensität des Signals vom Signalgenerator zum Element eine Erkennung außerhalb des 5 cm-Bereichs ermöglichen. In einer Ausführungsform ermöglicht die Intensität des Signals eine Erkennung über 7 cm hinaus. In einer Ausführungsform ermöglicht die Intensität des Signals eine Erkennung der vollen Flexion der Hand 105.
  • Erfassen der Flexion des Zeigefingers
  • In einer Ausführungsform wird die Flexion des Zeigefingers unter Verwendung von „Nahes Schweben- und -Kontakt“ -Daten über FMT erfasst. In einer Ausführungsform werden „Nahes Schweben- und -Kontakt“ -Daten von einem Auslöse-zentrierten Sensormuster verwendet, um die Flexion des Zeigefingers zu erfassen.
  • In einer Ausführungsform wird ein Bezugsframe gespeichert. In einer Ausführungsform spiegelt ein Bezugsframe den Zustand des Sensors im Ruhezustand der Steuerung wider, d.h. es werden keine erkennbaren Signale als ein Ergebnis von Berührung empfangen. In einer Ausführungsform wird ein einzelner NxM-Frame von Rohsignaldaten als Basislinie gespeichert.
  • In einer Ausführungsform wird unter Verwendung der Basislinie ein eingehender Frame in Dezibel umgewandelt (z.B. -20.0f*log10(eingehend/Basislinie). Der konvertierte eingehende Frame wird als Heatmap bezeichnet.
  • In einer Ausführungsform wird der durchschnittliche Signalwert berechnet. Der durchschnittliche Signalwert wird als die Wellenform bezeichnet. In einer Ausführungsform wird für jede Spalte M in der Heatmap der durchschnittliche Signalwert der Spalte als die Wellenform berechnet. In einer Ausführungsform wird die Wellenform für jede Zeile N berechnet. In einer Ausführungsform wird die Wellenform aus einer Kombination der Signalwerte von Zeilen und Spalten berechnet. In einer Ausführungsform hängt die Auswahl der Informationen für die Berechnung der Wellenform vom Sensormuster ab.
  • Nunmehr wird Bezug auf 11A genommen, wo die Steuerung 100 gegriffen wird und der Zeigefinger 107 nahezu senkrecht steht. In einer Ausführungsform wird die Wellenform, die den nahezu vertikalen Zeigefinger 107 darstellt, als Vorlage (Template) gespeichert. In einer Ausführungsform ist die Vorlage der Hand 105 oder dem Benutzer zugeordnet, von dem die Vorlage erworben wurde. In einer Ausführungsform werden auch mehrere Vorlagen (z.B. für mehrere Hände und/oder Benutzer und/oder für dieselbe Hand) zur späteren Verwendung gespeichert. In einer Ausführungsform können mehrere Vorlagen kombiniert werden. Vorlagen können kombiniert werden, um Informationen zu normalisieren oder statistische Daten über die Hand 105 und den Zeigefinger 107 zu erhalten.
  • Nunmehr mit Bezug auf 11 B, so kann in einer Ausführungsform während einer typischen Fingerbewegung die eingehende Wellenform mit der Vorlage verglichen werden. In einer Ausführungsform wird die normierte quadratische Mittelwertabweichung (NRMSD) berechnet, um ein Ähnlichkeitsmaß der eingehenden Wellenform und der Vorlage zu erhalten. In einer Ausführungsform liegt die NRMSD im Bereich von Null bis Eins.
  • Um die Genauigkeit des Ähnlichkeitsmaßes zu verbessern, werden in einer Ausführungsform die eingehende Wellenform und die Vorlage in drei Bereiche unterteilt, die den einzelnen Knochen des Zeigefingers 107 (proximal, middle, distal) und ihrer Position entlang des Sensors entsprechen. In einer Ausführungsform werden drei NRMSD-Werte berechnet, einer für jeden Abschnitt des Fingers (NRMSDproxlmal, NRMSDmiddle, NRMSDdistal). Die eingehende Wellenform kann mit der Vorlage verglichen werden; die gestrichelten Linien zeigen an, wo die Wellenform und die Vorlage in drei Segmente unterteilt sind.
  • In einer Ausführungsform wird der NRMSD-Wert als Gewicht verwendet, um die Drehung an jedem Gelenk zu berechnen. Zum Beispiel: R proximal = NRMSD proximal *Angle_Maximum proximal .
    Figure DE112018001460T5_0001
    R middle = NRMSD middle *Angle_Maximum middle .
    Figure DE112018001460T5_0002
    R distal = NRMSD distal *Angle_Maximum distal .
    Figure DE112018001460T5_0003
  • Nunmehr mit Bezug auf 11C, kann in einer Ausführungsform, da das NRMSD immer positiv ist, das Integral der Vorlage und der eingehenden Wellenform berechnet werden, um zu bestimmen, wann der Zeigefinger 107 gestreckt ist. Das Integral der eingehenden Wellenform und der Vorlage ist kleiner als Null. In einer Ausführungsform ist: R proximal = NRMSD proximal *Angle_Extension proximal .
    Figure DE112018001460T5_0004
    R middle = NRMSD middle *Angle_Extension middle .
    Figure DE112018001460T5_0005
    R distal = NRMSD distal *Angle_Extension distal .
    Figure DE112018001460T5_0006
  • Implementierungsarchitektur
  • In einer Ausführungsform wird eine Library geschrieben, so dass Eingaben von einer Steuerung 100 (oder einer anderen Einrichtung) auf unterschiedliche Weise von verschiedenen, modularen Komponenten der Library verarbeitet werden können, wobei aber die Ausgabe den Clients der Library synchronisiert zur Verfügung steht. So sollten in einer Ausführungsform, wenn Daten aus der Library zur Verfügung gestellt werden, die von jedem Modul verarbeiteten Daten aus dem gleichen Eingangsframe stammen, und jedes Verarbeitungsmodul sollte den gleichen Eingabestrom wie alle anderen „gesehen“ haben. Weiterhin werden in einer Ausführungsform Daten betrachtet, die verschiedene Frames repräsentieren.
  • In 12 ist eine gesamte Library-Pipeline gemäß einer Ausführungsform der Erfindung dargestellt. Teile der mit (sync) gekennzeichneten Pipeline beinhalten eine Synchronisation, um sicherzustellen, dass das oben genannte Ziel erreicht wird. In einer Ausführungsform verwendet jede (sync)-Interaktion ein Pufferobjekt (z.B. RWSwapBuffer), um dieses Ziel zu erreichen.
  • In einer Ausführungsform kann der Puffer ein Objekt halten, auf das mehrere Leser zugreifen können, ein Objekt für Schreibzugriff einem einzelnen Client geben und ein Objekt speichern, das derzeit nicht verwendet wird und darauf wartet, gelesen zu werden. Dies ermöglicht den gleichzeitigen Lese- und Schreibzugriff und eignet sich gut für ein Streamen von Datenquellen.
  • In einer Ausführungsform werden die Ausgabedaten gelöscht und von keinem Client gesehen, wenn (und nur wenn) der Schreiber das Schreiben neuer Daten beendet, während alle Leser derzeit eine ältere Datenstruktur besitzen. Das Ablegen von Ausgabedaten wie beschrieben reduziert die Verbreitung alter Daten durch das System und trägt dazu bei, eine niedrige End-to-End-Latenz aufrechtzuerhalten.
  • In einer Ausführungsform ist jede der Komponenten, die durch Blöcke in 12 dargestellt sind, Handler 302, FrameBufferState 304 und ProcessingThread 306, als Modul implementiert, die jeweils einen eigenen Lebenszyklus und einen eigenen laufenden Thread aufweisen. Diese Architektur ermöglicht ein konfigurierbares Startup/Teardown einzelner Komponenten, die Einhaltung eines starken Lebenszyklus und die Möglichkeit der Parallelität innerhalb der Pipeline. In einer Ausführungsform ist jede dieser Komponenten als Unterklasse der Klasse GenericModule implementiert. Dadurch entsteht eine Kopie für die Handhabung des Lebenszyklus jeder Komponente, so dass Funktionen von Unterklassen implementiert werden können, um das Verhalten jeder Unterklasse zu definieren.
  • Die Funktionen, von denen erwartet wird, dass sie im GenericModule überschrieben werden, und ihr Verwendungszweck sind wie folgt:
    • init() - Zuweisung von global verfügbaren Ressourcen und Vorbereitung auf den Betrieb.
    • startLoop() - Zuweisung von Thread-spezifischen Ressourcen und Vorbereitung zum Starten einer Thread-Sitzung
    • finishLoop() - Deaktiviert die Zuweisung von Thread-spezifischen Ressourcen und finalisiert alles, was zum Beenden einer Thread-Sitzung benötigt wird.
    • preStop() - führt alle notwendigen kommandobezogenen Einstellungen durch, nachdem der Thread angewiesen wurde, anzuhalten, aber bevor er den Thread blockiert, um sich zu verbinden.
    • postStop() - führt jeden kommandobezogenen Teardown durch, nachdem der Thread beigetreten ist.
    • loop() - Hauptarbeitsfunktion, die wiederholt auf dem Thread aufgerufen wird, bis das Modul aufgefordert wird, das Modul zu stoppen.
  • In einer Ausführungsform können die Funktionen init(), startLoop() und loop() zurückgeben, ob während ihrer Ausführung ein Fehler aufgetreten ist oder nicht, und ein „false“ zurückgeben, wenn ein Fehler aufgetreten ist. Ein Fehler im Aufruf von init() verhindert, dass der Thread gestartet wird, und ein Fehler in startLoop() oder loop() führt dazu, dass der Thread beendet wird.
  • In einer Ausführungsform führt finishLoop() jedes Mal aus, wenn ein Thread beendet wird, und soll Thread/Session-Ressourcen bereinigen und eine Änderung des Thread-Zustands darstellen, während preStop() und postStop() jede für eine Stoppanforderung erforderliche Verarbeitung durchführen und Anfang und Ende eines Befehls darstellen.
  • In einer Ausführungsform werden, es sei denn, die Standardfunktionsimplementierungen innerhalb von GenericModule werden überschrieben, startLoop(), finishLoop(), preStop() und postStop() garantiert nur einmal während der Lebensdauer des Moduls ausgeführt.
  • In einer Ausführungsform dürfen die Funktionen innerhalb von GenericModule oder in einer seiner Unterklassen nicht für immer blockieren, ohne auf Ausgangssignale zu warten (mStopRequested oder shouldStop()). In einer Ausführungsform sollte jede Funktion, die von einer Unterklasse von GenericModule überschrieben wird, die Funktion ihrer übergeordneten Klasse aufrufen, da es zusätzliche Implementierungen in der Klassenhierarchie geben kann, die erwarten, dass sie für eine korrekte Funktionalität verkettet wird.
  • Nunmehr mit Bezug auf 13, zeigt eine Darstellung die erwartete Reihenfolge der Aufrufe und die Interaktion zwischen einem externen Thread und dem Thread eines GenericModule, vorausgesetzt, alle Aufrufe von startLoop() und loop() sind erfolgreich. Um kurz auf 14 zurückzukommen, zeigt eine Darstellung einer Zustandsmaschine die Liste der von einem GenericModule unterstützten Zustände sowie deren Übergangsbedingungen. Und um kurz auf 15 zurückzukommen, zeigt eine Darstellung den erwarteten Lebenszyklus eines GenericModule für den Fall, dass der Thread erfolgreich erstellt wurde und während startLoop() oder loop() keine Fehler auftreten.
  • In einer Ausführungsform empfängt die Handler-Klasse Daten von einem Kanal (z.B. UDP-Datagramme über einen Socket oder Lesepakete aus einer .pcap-formatierten Datei), formatiert die Daten in Frames, die von den anderen Komponenten der Library verwendet werden sollen, und stellt die Framedaten für die Synchronisation und den Verbrauch für den Rest der Library zur Verfügung.
  • In einer Ausführungsform können die zwischen dem GenericHandler und den ProcessingThreads 306 übergebenen Frames je nach Sensortyp in der Steuerung 100, mit der die Library verbunden ist, unterschiedlich groß sein. Diese Informationen können über eine Schnittstellenklasse (IGenericFMTFrame) für den Frame abstrahiert werden, der mit konfigurationsspezifischen Parametern über die zu diesem Zeitpunkt verwendete Steuerung 100 templatisiert wird. In einer Ausführungsform stellt die Klasse IGenericFMTFrame Informationen über die Steuerung 100 zur Verfügung, ohne zu wissen, welche Template-Parameter im Voraus verwendet wurden. Die Handler-Klassen können den Frame als Ausgabepuffer behandeln und müssen in einer Ausführungsform keine konfigurationsspezifischen Parameter angeben.
  • In einer Ausführungsform schreiben die Handler-Klassen Informationen (z.B. in den Frame) in der gleichen Daten-Reihenfolge aus, wie sie über den Draht von der Steuerung 100 kommen. In einer Ausführungsform wird eine Kanal-Hauptordnung verwendet. In einer Ausführungsform kann ein Ausgabepuffer mit einer festen Bitbreite (z.B. 32 Bit oder 64 Bit) versehen werden, die immer bin- oder channel-major ist, und Bins und Kanäle in Zeilen oder Spalten fixieren.
  • In einer Ausführungsform implementiert der FrameBufferState 304 die Synchronisation der Ausgabedaten des Handlers für alle ProcessingThreads 306 in der Library sowie die Synchronisation der Ausgabedaten der ProcessingThreads und der API-Clients.
  • In einer Ausführungsform blockiert der FrameBufferState 304 alle Verarbeitungs-Threads, bis ein Frame vom Handler verfügbar ist, und wartet, bis alle Verarbeitungs-Threads mit dem aktuell gehaltenen Frame abgeschlossen sind. Nach dem Entsperren werden alle Ausgabedaten aus den Verarbeitungsthreads übertragen und stehen dem/den API-Client(s) zur Verfügung. Danach kann sich der Prozess wiederholen, wobei FrameBufferState 304 alle Verarbeitungsthreads blockiert, bis ein Frame verfügbar ist.
  • In einer Ausführungsform ist FrameBufferState 304 ein Modul, das dem Handler gehört. In einer weiteren Ausführungsform ist FrameBufferState 304 ein Modul, das während der gesamten Lebensdauer der Library vorhanden ist. Diese letztgenannte Designwahl kann eine stärkere, flexiblere Startup und Teardown-Prozedur und klar definierte Regeln für Modulzustandsübergänge ermöglichen. In einer Ausführungsform kann FrameBufferState 304 das Hinzufügen und Entfernen von Verarbeitungs-Threads ermöglichen und eine ID empfangen, die diesen Verarbeitungs-Thread mit seinem Verarbeitungs-/Synchronisierungsstatus (Daten, die auf die Verarbeitung warten, usw.) innerhalb des FrameBufferState 304 verknüpft.
  • In einer Ausführungsform ermöglicht der FrameBufferState 304 die Verarbeitung von Threads, um sich zu registrieren und zu de-registrieren, indem sie neue Frames aus dem Eingabestrom nach Belieben empfangen, während die Library läuft. Ein Zulassen dieser Registrierung kann die Anzahl der Zustände erweitern, die erforderlich sind, um die Library im Auge zu behalten und festzustellen, wie die Dinge interagieren müssen. In einer Ausführungsform enthält der FrameBufferState 304 eine Nachrichtenwarteschlange, die es anderen Modulen ermöglicht, ihn zu benachrichtigen, wenn sie ihren Zustand ändern. Somit befinden sich in einer Ausführungsform sechs Bitsets innerhalb des FrameBufferState 304:
    • mProcIdBitset: verfolgt IDs, die an registrierte Verarbeitungs-Threads vergeben werden.
    • mProcEnabledBitset: verfolgt Verarbeitungs-Threads, die laufen und bereit sind, Daten zu verarbeiten (Setzen und Zurücksetzen durch Zustandsänderungen, die über die Nachrichtenwarteschlange des FrameBufferState laufen).
    • mProcDataBitset: verfolgt die Verarbeitung von Threads, von denen erwartet wird, dass sie den aktuell verarbeiteten Frame verarbeiten.
    • mProcDataCommitBitset: verfolgt die Verarbeitung von Threads, die Daten enthalten, die verpflichtet werden müssen, um dem Client zur Verfügung zu stehen.
    • mStartEnabledBitset: verfolgt Verarbeitungsthreads, die erwarten, Daten zusammen als Paket zu empfangen (Wird verwendet, um den ersten Frame zwischen allen aktivierten Verarbeitungsthreads zu synchronisieren, wenn die Library startet, und stellt sicher, dass alle Verarbeitungsthreads den gleichen Datenstrom erhalten (es sei denn, sie sind früh deaktiviert oder spät aktiviert)).
    • mForceReturnBitset: verfolgt alle Verarbeitungs-Threads, die zur Rückkehr aufgefordert werden und nicht innerhalb einer FrameBufferState 304-Funktion blockiert werden sollten.
  • In einer Ausführungsform, sobald sich ein Verarbeitungs-Thread beim FrameBufferState 304 registriert hat, erhält er eine ID, die diesen Verarbeitungs-Thread eindeutig identifiziert, während er registriert ist (über addProcessingThread()). In einer Ausführungsform, wenn sich ein Prozess-Thread abmeldet (removeProcessingThread()), wird diese Garantie aufgehoben und die ID kann an einen neuen Thread weitergegeben werden. Wenn sich der gleiche Verarbeitungsthread später wieder erfolgreich registriert, kann er eine neue ID mit der gleichen Garantie erhalten.
  • In einer Ausführungsform müssen alle Verarbeitungs-Threads sendUpdateMessage() auf ihrer Instanz des FrameBufferState 304 aufrufen, um den internen Zustand des FrameBufferState aktuell zu halten. Wenn dies nicht der Fall ist, empfängt der Verarbeitungsthread möglicherweise keine neuen Daten, oder er kann dazu führen, dass die Pipeline zum Stillstand kommt und darauf wartet, dass der Thread Daten verarbeitet, wenn er bereits beendet ist.
  • Nunmehr mit Bezug auf 16, ist ein Sequenzdiagramm dargestellt, das die Reihenfolge der Aufrufe in einer Ausführungsform der vorliegenden Erfindung darstellt.
  • In einer Ausführungsform sind die Klassen des ProcessingThread 306 dazu bestimmt, beliebige Berechnungen an einem Strom von Frames durchzuführen, auf die ein beliebiger Client der API über die Library zugreifen soll. In einer Ausführungsform dient die Klasse GenericProcessingThread als Schnittstelle für jede Komponente, die Frames von den Steuerungen verarbeiten soll. Daher kann der GenericProcessingThread zusätzlich zu den in GenericModule verfügbaren Funktionen eine Definition für loop() bereitstellen, die für die Verarbeitung von Framedaten geeignet ist. In einer Ausführungsform behandelt die Implementierung von loop() die Bilderfassung und die Freigabeaufrufe, die erforderlich sind, um sicherzustellen, dass jeder Verarbeitungs-Thread die gleichen Daten verwendet, die zuvor beschrieben wurden. In einer Ausführungsform ruft die loop()-Implementierung eine neue virtuelle Funktion, doProcessing(), auf, die ausgeführt wird, wenn neue Framedaten gelesen wurden und zur Verarbeitung bereit sind, wo der Großteil der Arbeit eines bestimmten Verarbeitungsthreads erledigt wird. In einer Ausführungsform sollte jede Klasse von ProcessingThread 306 vom GenericModule übernehmen und dem oben beschriebenen Lebenszyklus folgen.
  • In einer Ausführungsform bewahrt die Library einen Satz von Zeigern auf jeden der Verarbeitungs-Threads auf, die erstellt werden, um Zugriff auf die Daten in ihnen zu erhalten, die benötigten Modul-Lebenszyklus-Aufrufe durchzuführen, um dem Zustand der Library zu entsprechen, und das Modul allen angeforderten Befehlen von den Clients der Library auszusetzen, die über die API ausgeführt werden.
  • In einer Ausführungsform sollte jeder Verarbeitungs-Thread eine Aktivierungs-/Deaktivierungsfunktion aufweisen, damit Clients angeben können, ob die Ausgabe dieses Threads benötigt wird oder nicht. In einer Ausführungsform kann die exponierte Funktion die nicht benötigte Nutzung von CPU und Speicher durch die Library einschränken. Ebenso sollten in einer Ausführungsform alle optionalen Merkmale, die der Verarbeitungsthread freilegt (z.B. Zeigefinger-Verfolgen (Tracking) für das FingerlnfoProcessingThread), ein- und ausgeschaltet werden können, insbesondere wenn sie rechenintensiv sind, wobei sie nicht immer erwünscht sein können.
  • In einer Ausführungsform, die eine Unterklasse des GenericModule ist, übernimmt jeder ProcessingThread 306 einen Mutex, mit dem Ressourcen bei Bedarf gesperrt werden können. In einer weiteren Ausführungsform kann ein Thread seine eigene Verriegelungsstrategie verwenden, solange beim Festhalten an der Mutex des Basismoduls nichts übersehen wird.
  • In einer Ausführungsform gibt es innerhalb der Library einen Satz von globalen Datenstrukturen, die die Parameter eines Steuerungstyps speichern. In einer Ausführungsform beinhalten die Steuerungsparameter Informationen für den Netzaufbau und die Interpretation sowie boardspezifische Informationen über das Format der aus der Steuerung kommenden Framedaten (z.B. Anzahl der Bins, Anzahl der Kanäle, Datenbreite in Bit).
  • In einer Ausführungsform kann die Verarbeitung von Threads in Bezug auf die von ihnen ausgegebenen Daten und die von ihnen verwendeten Algorithmen konfiguriert sein. In einer Ausführungsform kann die Konfiguration an die Steuerungstypen angepasst sein oder von einem Parameter der Steuerung oder einem Parameter des Boards, auf dem die Steuerung läuft, abhängen.
  • Nunmehr mit Bezug auf die 17A und 17B, so zeigen diese die Struktur von zwei Ausführungsformen, die zur Erstellung von ProcessingThreads 306 verwendet werden, die je nach verwendeter Steuerungskonfiguration unterschiedlich funktionieren. 17A zeigt eine Ausführungsform mit einer abstrakten Klasse für den Verarbeitungsthread, die einen GenericProcessingThread untergliedert, der für die Unterstützung mehrerer konfigurationsspezifischer Algorithmen geeignet ist, wie beispielsweise den FingerinfoProcessingThread, bei dem die Verarbeitung stark vom Steuerungstyp abhängt. In 17A ist das GenericModule 402, IGenericProcessing Thread 404, GenericProcessing Thread 406, IDerivedProcessing Thread 408, DerivedProcessing Thread 1 410, DerivedProcessing Thread 2 412 und DerivedProcessing Thread 3 414 dargestellt. 17B zeigt eine Ausführungsform mit einer unabhängigen Klasse, die als Schnittstelle verwendet wird, was nützlich sein kann, um den Datentyp zu abstrahieren, der von den konkreten Verarbeitungsgängen verwendet wird. In 17B sind das Generic Module 402, IGenericProcessing Thread 404, GenericProcessing Thread 406, IDerivedProcessing Thread 408 und DerivedProcessing Thread 416 dargestellt. Da der GenericProcessingThread 406 den Datentyp akzeptiert, den er als Vorlage-Parameter ausgibt, sollte die Schnittstelle, wenn der Datentyp in jeder Konfiguration vordefiniert ist, diesen Datentyp über Accessor-Funktionen abstrahieren. In einer Ausführungsform können die in den 17A und 17B dargestellten Verfahren kombiniert werden, um mehrere konkrete Verarbeitungs-Thread-Implementierungen mit konfigurationsspezifischen Implementierungen und Datentypen zu unterstützen.
  • Steuerungskonfiguration / Kalibrierung
  • In einer Ausführungsform ist eine Software für die Benutzeroberfläche der Steuerung vorgesehen, die die Konfiguration und/oder Kalibrierung der Steuerung 100 ermöglicht. In 18 wird eine Steuerungs-Ul (User Interface=Nutzerschnittstelle) mit Kontrollkästchen für Handedness, Index, Finger und Thumbpad bereitgestellt. Mit Hilfe der Kontrollkästchen kann ein Benutzer die Steuerung 100 so konfigurieren, dass neue Daten für die identifizierten Merkmale der Steuerung 100 bereitgestellt oder ausgeschlossen werden.
  • In einer Ausführungsform ist eine Software zur Kalibrierung der Steuerung 100 und zur Visualisierung einer Heatmap vorgesehen. In 19 können die beobachteten Farben von blau bis rot reichen und die kapazitive Kopplungsintensität anzeigen (blau ist die schwächste Intensität und rot die stärkste Intensität). In einer Ausführungsform kann vor der Kalibrierung der Steuerung 100 eine visualisierte Heatmap verrauscht erscheinen, wie in 19 dargestellt. In einer Ausführungsform kann ein Benutzer zur Kalibrierung der Steuerung 100 und damit zu einer genaueren Heatmap die Steuerung 100 mit beiden Händen greifen, um sicherzustellen, dass die Steuerung 100 im Wesentlichen abgedeckt ist, und dann die Steuerung 100 loslassen. 20 zeigt eine Visualisierung einer Heatmap von einer mit beiden Händen erfassten Steuerung 100, und 21 zeigt eine Visualisierung einer Heatmap von einer losgelassenen Steuerung 100, jeweils wie beschrieben. Der Prozess des Greifens und Loslassens ermöglicht die Kalibrierung der Steuerung 100 und damit der Heatmap-Visualisierung. Kurz mit Bezug auf 22, wird die Visualisierung für eine kalibrierte Steuerung 100 in der rechten Hand dargestellt.
  • Nunmehr mit Bezug auf 23, ist ein grundlegender Lebenszyklus der Library dargestellt. In einer Ausführungsform, bevor Daten aus der Library gelesen werden können, muss in Schritt 502 die Library zunächst initialisiert und gestartet werden. In einer Ausführungsform muss zur Initialisierung der Library ein Initialisierungsaufruf (z.B. TactuallnitializeWithLiveStream()) erfolgreich zurückkehren. In einer Ausführungsform kann die Library nach der Initialisierung mehrmals gestartet und gestoppt werden, während das gleiche Setup beibehalten wird. Wenn die Library beispielsweise initialisiert wurde, um einen Live-Datenstrom von einer Steuerung zu lesen, wird sie jedes Mal, wenn die Library gestartet und gestoppt wird, trotzdem so eingerichtet, dass sie Daten von der Steuerung 100 einliest, bis sie in einem anderen Setup neu initialisiert wird.
  • In einer Ausführungsform müssen vor dem Start der Library in Schritt 504 alle Verarbeitungsmerkmale, die erforderliche Daten erzeugen, aktiviert werden, um sicherzustellen, dass diese Merkmale verarbeitet werden. In einer Ausführungsform sollten in Schritt 504 Merkmale, die nicht benötigte Daten erzeugen, deaktiviert werden. Durch Deaktivieren von Funktionen, die nicht benötigte Daten erzeugen, werden unnötige Berechnungen vermieden. In einer Ausführungsform beginnen standardmäßig alle Verarbeitungsmerkmale deaktiviert und können durch Aufrufe (z.B. TactualEnableNormalizedIntensity()), die nach dem Start der Library erfolgen können, aktiviert (oder wieder deaktiviert) werden.
  • In einer Ausführungsform muss in Schritt 506, um die Verarbeitungsfunktionen innerhalb der Library zu starten, eine Startfunktion (z.B. TactualStart()) aufgerufen werden; wenn sie erfolgreich zurückkehrt, sollte die Library so eingerichtet sein, um alle Daten aus der Quelle, für die sie zum Lesen initialisiert wurde, zu bearbeiten.
  • In einer Ausführungsform wird in Schritt 508 eine Funktion aufgerufen, um die neuesten aus der Library verfügbaren Daten zu lesen (z.B. TactualSyncData()). In einer Ausführungsform aktualisiert die in Schritt 510 aufgerufene Funktion zum Lesen der neuesten aus der Library verfügbaren Daten die verfügbaren Daten auf die neuesten verfügbaren verarbeiteten Daten und ruft dann Datenzugriffsfunktionen auf, um die aus der Library verfügbaren Daten zu lesen. In einer Ausführungsform wird ein weiterer Aufruf (z.B. TactualHasNewData()=TRUE) bereitgestellt, um sicherzustellen, dass neue Daten zum Lesen der neuesten Daten verfügbar sind (z.B. nach einem TactualSyncData() Aufruf). In einer Ausführungsform erzeugt die Library nur Daten aus Verarbeitungsfunktionen, die vor dem letzten Startaufruf aktiviert wurden (z.B. TactualStart()). In einer Ausführungsform wird in Schritt 512 ein Stoppaufruf (z.B. TactualStop()) bereitgestellt, um die Verarbeitungsmerkmale in der Library zu stoppen. In einer Ausführungsform können die Verarbeitungsmerkmale nach dem Stopp bei einem nachfolgenden Aufruf der Startfunktion neu gestartet werden. In einer Ausführungsform ist in Schritt 514 auch eine Ressourcen-Deallokationsfunktion in der Library verfügbar (z.B. TactualDestroy()). Wenn die Deallokationsfunktion erfolgreich aufgerufen wird, werden Ressourcen deallokiert, wobei die Library einen weiteren Reinitialisierungsaufruf benötigt, um eine Reinitialisierung durchzuführen.
  • In einer Ausführungsform würden Setup-Threads unter anderem das Aktivieren der rohen Heatmap, das Aktivieren der normalisierten Intensität und das Aktivieren der Fingerposition ermöglichen, wobei die Funktionen der Verarbeitungs-Threadsteuerung das Aktivieren der Handednessverfolgung, das Aktivieren der Zeigefingerverfolgung, das Aktivieren der Verfolgung von Mittel-/Ring- und kleinem Finger und das Aktivieren der Daumenfingerverfolgung umfassen können. In einer Ausführungsform kann beispielsweise auf Daten zugegriffen werden, wobei jedoch normalisierte Intensitäts-Heatmap-Daten (die maskiert sein können) und Skelettdaten der Hand erhalten werden.
  • Handskelett-Daten
  • 24 enthält eine Darstellung der menschlichen Hand und eine Zeile von Gelenken und Knochen in der Hand, die für die Steuerung relevant sind. Die Darstellung und das verwendete Modell können insofern vereinfacht sein, als einige Teile (z.B. die Handwurzelknochen) für die von der Steuerung 100 hergestellten Modelle relevant sind oder nicht. Insbesondere zeigt 24 die entsprechende Position (oder die Position einer Vereinfachung) jedes Knochens auf einer menschlichen Hand (hellblaue Punkte), seine Hierarchie in Bezug auf andere Knochen (dunkelblaue Linien) und identifiziert Knochen mit Namen. In einer Ausführungsform ist der Knoten im Unterarm der Wurzelknoten und hat keinen Parent.
  • In einer Ausführungsform sind Handskelettdaten in gepackten 32-Bit-Float-Arrays gespeichert, wobei jeder Knochen als 7-Tupel eines (x,y,z)-Positionsvektors mit allen Größen in Metern und einem (qx,qy,qz,qw)-Drehquaternions behandelt wird, wobei jedes Tupel als lokale Transformation in Bezug auf seinen Parent behandelt wird (d.h. Translation in lokalen Achsen, unter Berücksichtigung einer Drehung durch seine Vorläufer). Dem Fachmann ist ersichtlich, dass viele andere Datenstrukturen zur Darstellung der Hand verwendet werden könnten, insbesondere im Hinblick auf die Sensitivität, die Fähigkeiten und die Freiheitsgrade, die die Steuerung 100 zulässt.
  • Dementsprechend zeigt 25 eine Ausführungsform einer Tabelle der oben beschriebenen Darstellung von Skelettdaten. Die Tabelle in 25 stellt eine Ausführungsform der Tabelle dar, wie sie im Speicher einer Computereinrichtung vorhanden ist. Der Name jedes Knochens in 25 entspricht den Namen aus 24.
  • 26 zeigt eine Ausführungsform einer Datenstruktur, die zur Darstellung der Fingerinformationen eines Benutzers verwendet werden kann. Gemäß einer Ausführungsform kann die Datenstruktur eine Mehrzahl von Informationen über die Position und Ausrichtung der Finger und/oder der Hand des Benutzers darstellen. In einer Ausführungsform stellt die Datenstruktur die Fingerinformationen des Benutzers wie folgt dar:
    • flags ist ein Bitset;
    • indexPresence, middlePresence, ringPresence und pinkyPresence stellen jeweils Werte dar, die das Vorhandensein eines Fingers in der Nähe der Steuerung 100 anzeigen -- in einer Ausführungsform sind die Werte normierte Gleitkommazahlen zwischen 0 und 1, wobei ein Wert von 0 den Finger darstellt, der sich vollständig von der Steuerung 100 weg erstreckt, und ein Wert von 1 den Finger darstellt, der vollständig zusammengezogen ist und die Steuerung 100 berührt;
    • indexX und indexY stellen eine Position auf dem Auslöser dar -- in einer Ausführungsform sind sie kartesisch, wobei ein X-Wert von -0,5 ganz links vom Auslöser und ein Wert von 0,5 ganz rechts vom Auslöser liegt; ähnlich ist ein Y-Wert von -0,5 ganz unten am Auslöser und ein Wert von 0,5 ganz oben -- in einer Ausführungsform, wenn einer der beiden Werte auf -1 gesetzt ist, würde diese Funktion von der Steuerung 100 nicht unterstützt;
    • thumbX und thumbY stellen eine Position auf dem Thumbpad dar -- in einer Ausführungsform sind sie kartesisch, wobei ein X-Wert von -0,5 ganz links vom Thumbpad und ein Wert von 0,5 ganz rechts vom Thumbpad liegt; ähnlich ist ein Y-Wert von -0,5 unten im Thumbpad und ein Wert von 0,5 oben;
    • thumbDistance stellt die Entfernung von der Steuerung 100 dar -- in einer Ausführungsform bedeutet ein Wert von 0 Kontakt mit der Steuerung 100, ein Wert von 1 bedeutet, dass sich der Daumen 103 nicht in der Nähe der Steuerung befindet, und ein Wert zwischen 0 und 1 bedeutet, dass der Daumen 103 etwas von der Steuerung 100 entfernt schwebt;
    • timestamp stellt die Zeit des in dieser Struktur angegebenen Sensorzustands dar -- in einer Ausführungsform kann der Zeitstempel z.B. in Mikrosekunden ausgedrückt werden;
    • frameNum ist ein Indikator dafür, wann diese Daten relevant waren, für aufgezeichnete Datensitzungen kann dies die Position innerhalb eines Satzes von aufgezeichneten Bildern darstellen, und für Livestream-Sitzungen kann dies eine zunehmende Anzahl für jeden empfangenen Sensorframe darstellen;
    • skeletonPoses, die die Position und Drehung jedes Knochens im Handskelett darstellen -in einer Ausführungsform ist eine Anordnung von Floats, wobei jeder Knochen als 7-Tupel von Floats gegeben ist, die einen (x,y,z)-Positionsvektor und (qx,qy,qz,qw)-Drehquaternion darstellen;
    • localScale spiegelt die Skalierung wider, die voraussichtlich an Komponenten des Handskeletts durchgeführt wird - in einer Ausführungsform ist es eine Anordnung von Floats, die als 3-Tupel von (x,y,z) Skalaren angegeben wird;
    • handedness stellt dar, welche Hand gerade die Steuerung hält -- in einer Ausführungsform hat handedness einen ganzzahligen Wert zwischen 0-2, wobei 0 keine Hände darstellt, die die Steuerung halten, 1 die linke Hand darstellt, die die Steuerung hält, und 2 die rechte Hand darstellt, die die Steuerung hält.
  • Die 27 und 28 sind Tabellen, die eine Ausführungsform von skeletonPoses für eine beispielhafte rechte Hand widerspiegeln, 27 mit einer offenen Handfläche und 28, wenn die Hand greift. Jeder Knochen wird auf einer separaten Zeile reflektiert, wobei das siebenfache Tupel stellt einen x,y,z-Positionsvektor und ein qx, qy, qz, qz, qw Drehquaternion darstellt. Die Positionen (x,y,z) sind in Metern angegeben. Die Achsen für jeden Knochen berücksichtigen jede Drehung, die von einem der Parent Knochen durchgeführt wird (siehe 24 für eine Darstellung der Position jedes Knochens an einer menschlichen Hand und ihrer Hierarchie). Jede Translation und Drehung ist relativ zu einem Parent Knochen. Beispielhafte Angaben sind nur mit fünf Dezimalstellen dargestellt.
  • In einer Ausführungsform können Informationen, die von einem oder mehreren Sensormustern auf einer Steuerung 100 erfasst wurden, die Grundlage dafür bilden, ein Modell der Finger, Hände und Handgelenke des Benutzers in 3D mit geringer Latenzzeit bereitzustellen. Die geringe Latenzzeit der Skelettmodelle kann es dem VR/AR-System ermöglichen, Echtzeitwiedergaben der Hand des Benutzers zu liefern. Darüber hinaus ermöglichen die hierin dargestellten Skelettdaten Anwendungs- und Betriebssystemsoftware Informationen, aus denen nicht nur Schweben, Berühren, Greifen, Druck und Geste auf einem berührungsempfindlichen Objekt identifiziert werden können, sondern sie liefern auch die Handposition und -orientierung, aus der sich die gestische Absicht leichter ableiten lässt.
  • Die vorliegenden Systeme sind oben beschrieben mit Bezug auf Blockschaltbilder und Betriebsdarstellungen von Steuerungen und anderen Gegenständen, die empfindlich sind für Schweben, Berührung und Druck unter Verwendung von FMT- oder FMT-ähnlichen Systemen. Es versteht sich, dass jeder Block der Blockschaltbilder oder Betriebsdarstellungen und Kombinationen von Blöcken in den Blockschaltbildern oder Betriebsdarstellungen mittels analoger oder digitaler Hardware und Computerprogrammanweisungen umgesetzt werden kann. Computerprogrammanweisungen können einem Prozessor eines Normalgebrauchscomputers, eines Spezialcomputers, eines ASIC oder einer anderen programmierbaren Datenverarbeitungseinrichtung zur Verfügung gestellt werden, so dass die Anweisungen, die über einen Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungseinrichtung ausgeführt werden, die Funktionen/Vorgänge umsetzen, die in den Blockdiagrammen oder den Funktionsblöcken spezifiziert sind.
  • Sofern durch die vorstehende Erläuterung nicht ausdrücklich eingeschränkt, können in einigen alternativen Umsetzungen die in den Blöcken vermerkten Funktionen/Vorgänge außerhalb der in den Betriebsdarstellungen angegebenen Reihenfolge auftreten. So kann beispielsweise die Reihenfolge einer Ausführung, wenn nacheinander angezeigte Blöcke tatsächlich gleichzeitig oder im Wesentlichen gleichzeitig ausgeführt werden können, oder, wo praktikabel, es können alle Blöcke in einer anderen Reihenfolge als die anderen ausgeführt werden, je nach involvierter Funktionalität/involvierter Vorgänge.
  • Währen die Erfindung insbesondere mit Bezug auf eine bevorzugte Ausführungsform dargestellt und beschrieben wurde, wird der Fachmann verstehen, dass verschiedene Änderungen in Form und Details darin vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62473908 [0001]
    • US 13/841436 [0003, 0054]
    • US 14/069609 [0003, 0054]
    • US 15251859 [0009]
    • US 15/099179 [0017]
    • US 15224226 [0028]
    • US 14069609 [0059, 0063]
    • US 14216791 [0059]

Claims (20)

  1. Berührungsempfindliche Steuerung, umfassend: einen Steuerungskörper, der einen Daumen-zentrierten Abschnitt und einen Auslöse-zentrierten Abschnitt unterstütz; ein erstes Sensormuster, das dem Daumen-zentrierten Abschnitt zugeordnet ist, wobei das erste Sensormuster eine erste Mehrzahl von Leitern und eine zweite Mehrzahl von Leitern umfasst, wobei die erste und zweite Mehrzahl von Leitern so ausgerichtet sind, dass ein Berührungsereignis in der Nähe des Daumen-zentrierten Abschnitts eine Änderung in einer Kopplung zwischen wenigstens einem von der Mehrzahl von ersten Leitern und wenigstens einem von der Mehrzahl von zweiten Leitern bewirkt; ein zweites Sensormuster, das dem Auslöse-zentrierten Abschnitt zugeordnet ist, wobei das zweite Sensormuster eine dritte Mehrzahl von Leitern und eine vierte Mehrzahl von Leitern umfasst, wobei die dritte und vierte Mehrzahl von Leitern so ausgerichtet sind, dass ein Berührungsereignis in der Nähe des Auslöse-zentrierten Abschnitts eine Änderung in einer Kopplung zwischen wenigstens einem von der Mehrzahl von dritten Leitern und wenigstens einem von der Mehrzahl von vierten Leitern bewirkt; einen Signalgenerator, der betriebsfähig mit separaten Leitern jedes der Leiter in der ersten und dritten Mehrzahl von Leitern verbunden ist, wobei der Signalgenerator ein frequenzorthogonales Signal auf jedem der separaten der ersten und dritten Mehrzahl von Leitern sendet; eine Mehrzahl von Signalempfängern, wobei jeder von der Mehrzahl von Signalempfängern betriebsfähig mit separaten Leitern jedes der zweiten und vierten Mehrzahl von Leitern verbunden ist, wobei jeder von der Mehrzahl von Signalempfängern ausgebildet ist, Signale zu empfangen, die auf dem Leiter vorhanden sind, mit dem er betriebsfähig verbunden ist, wobei die Mehrzahl von Signalempfängern ausgebildet ist, einen Frame während einer Integrationsperiode zu empfangen, indem sie gleichzeitig Signale empfangen, die auf den separaten der Leiter vorhanden sind, mit denen er betriebsfähig verbunden ist; einen Signalprozessor, der ausgebildet ist, um eine erste Heatmap zu erzeugen, die elektromagnetische Störungen in der Nähe des Daumen-zentrierten Abschnitts reflektiert, und eine zweite Heatmap, die elektromagnetische Störungen in der Nähe des Auslöse-zentrierten Abschnitts reflektiert, wobei jede Heatmap, wenigstens teilweise, auf einem während einer Integrationszeit empfangenen Frame basiert.
  2. Steuerung nach Anspruch 1, wobei das erste Sensormuster ein dreischichtiges Sensormuster ist.
  3. Steuerung nach Anspruch 1, wobei das zweite Sensormuster ein dreischichtiges Sensormuster ist.
  4. Steuerung nach Anspruch 3, wobei das erste Sensormuster ein dreischichtiges Sensormuster ist.
  5. Steuerung nach Anspruch 4, weiterhin umfassend: eine Fingerinformationsdatenstruktur, die Informationen enthält, die geeignet sind, wenigstens zu definieren: eine Position eines Daumens in Bezug auf die Steuerung; und eine Position eines Zeigefingers in Bezug auf die Steuerung, und einen Prozessor, der angepasst ist, um die Fingerinformationsdatenstruktur mit Informationen über eine Position des Daumens in Bezug auf die Steuerung wenigstens teilweise basierend auf der ersten Heatmap zu füllen, und mit Informationen über eine Position des Zeigefingers in Bezug auf die Steuerung wenigstens teilweise basierend auf der zweiten Heatmap.
  6. Steuerung nach Anspruch 5, wobei der Prozessor und der Signalprozessor der gleiche integrierte Schaltkreis sind.
  7. Steuerung nach Anspruch 6, wobei: die betriebsfähige Verbindung zwischen dem Signalgenerator und den separaten der einzelnen Leiter in der ersten Mehrzahl von Leitern Zuführleitungen umfasst; und das erste Sensormuster weiterhin Entkopplungselemente in der Nähe der Zuführleitungen umfasst.
  8. Steuerung nach Anspruch 7, wobei die Entkopplungselemente aus folgender Gruppe ausgewählt sind: Entkopplungsleitungen und Entkopplungsebenen.
  9. Steuerung nach Anspruch 6, wobei: die betriebsfähige Verbindung zwischen dem Signalgenerator und den separaten der einzelnen Leiter in der dritten Mehrzahl von Leitern Zuführleitungen umfasst; und das zweite Sensormuster weiterhin Entkopplungselemente in der Nähe der Zuführleitungen umfasst.
  10. Steuerung nach Anspruch 9, wobei die Entkopplungselemente aus folgender Gruppe ausgewählt sind: Entkopplungsleitungen und Entkopplungsebenen.
  11. Steuerung nach Anspruch 5, weiterhin umfassend: ein drittes Sensormuster auf dem Steuerungskörper, wobei das dritte Sensormuster eine fünfte Mehrzahl von Leitern und eine sechste Mehrzahl von Leitern umfasst; einen Signalgenerator, der weiterhin betriebsfähig mit separaten Leitern jedes der Leiter in der fünften Mehrzahl von Leitern verbunden ist, wobei der Signalgenerator ein frequenzorthogonales Signal auf jedem der separaten Leiter von jedem der fünften Mehrzahl von Leitern sendet; eine zusätzliche Mehrzahl von Signalempfängern, wobei jeder der zusätzlichen Mehrzahl von Signalempfängern betriebsfähig mit separaten Leitern der sechsten Mehrzahl von Leitern verbunden ist, wobei jeder der zusätzlichen Mehrzahl von Signalempfängern geeignet ist, Signale zu empfangen, die auf dem Leiter vorhanden sind, mit dem er betriebsfähig verbunden ist, wobei die zusätzliche Mehrzahl von Signalempfängern geeignet ist, einen Steuerungskörperframe während einer Integrationsperiode zu empfangen, indem gleichzeitig Signale empfangen werden, die auf den separaten der Leiter vorhanden sind, mit denen er betriebsfähig verbunden ist; wobei der Signalprozessor weiterhin angepasst ist, um eine dritte Heatmap zu erzeugen, die elektromagnetische Störungen in der Nähe des Steuerungskörpers reflektiert, basierend, wenigstens teilweise, auf dem empfangenen Steuerungskörperframe.
  12. Steuerung nach Anspruch 11, wobei die Mehrzahl von Signalempfängern und die zusätzliche Mehrzahl von Signalempfängern Teil desselben integrierten Schaltkreises sind.
  13. Steuerung nach Anspruch 11, wobei das dritte Sensormuster ein zweischichtiges Sensormuster ist.
  14. Steuerung nach Anspruch 11, wobei die Fingerinformationsdatenstruktur zusätzlich Informationen enthält, die angepasst sind, um eine Position von wenigstens einem der folgenden Merkmale zu definieren: ein Mittelfinger, ein Ringfinger und ein kleiner Finger in Bezug auf die Steuerung; und wobei der Prozessor weiterhin angepasst ist, um die Fingerinformationsdatenstruktur wenigstens teilweise basierend auf der dritten Heatmap zu füllen.
  15. Steuerung nach Anspruch 11, wobei die Fingerinformationsdatenstruktur zusätzlich Informationen enthält, die angepasst sind, um eine Position von wenigstens einem der folgenden Merkmale zu definieren: ein Mittelfinger, ein Ringfinger und ein kleiner Finger in Bezug auf die Steuerung; und wobei der Prozessor weiterhin angepasst ist, um die Fingerinformationsdatenstruktur mit Daten über eine Position eines Mittelfingers, eines Ringfingers und eines kleinen Fingers zu füllen, basierend wenigstens teilweise auf der dritten Heatmap.
  16. Steuerung nach Anspruch 15, weiterhin umfassend: ein Signalinjektorelement, das betriebsfähig mit dem Signalgenerator verbunden ist, wobei der Signalgenerator weiterhin angepasst ist, um ein frequenzorthogonales Signal an den Signalinjektor zu senden.
  17. Steuerung nach Anspruch 16, weiterhin umfassend: ein Handschlaufe, die am Steuerungskörper befestigt ist, um den Steuerungskörper an der Hand eines Benutzers während der beabsichtigten Benutzerinteraktion mit dem Steuerelement zu halten; und wobei das Signalinjektorelement in der Nähe der Handschlaufe in einer Weise positioniert ist, welche es während einer beabsichtigten Benutzerinteraktion mit der Steuerung in Berührung mit einer Benutzerhand bringt.
  18. Steuerung nach Anspruch 15, weiterhin umfassend: ein ergänzendes Signalinjektorsystem mit einem Signalinjektorelement, das betriebsfähig mit einem ergänzenden Signalgenerator verbunden ist; wobei der ergänzende Signalgenerator angepasst ist, um ein frequenzorthogonales Signal an das Signalinjektorelement zu senden; und wobei das ergänzende Signalinjektorsystem so angepasst ist, dem Signalinjektorelement zu erlauben, mit einem Körper eines Benutzers während der beabsichtigten Benutzerinteraktion mit der Steuerung in Kontakt zu bleiben.
  19. Steuerung nach Anspruch 18, wobei sich der ergänzende Signalinjektor in einer Form befindet, die aus folgender Gruppe ausgewählt ist: ein Armband; eine Uhr; eine SmartWatch; ein Mobiltelefon; ein Handschuh; ein Ring; ein Stift; ein tastbarer Gegenstand; ein Sitzkissen oder ein anderes Sitzpolster; eine Bodenmatte; eine Armlehne; eine Tischoberfläche; ein Gürtel; ein Schuh; und eine tragbaren Computereinrichtung.
  20. Steuerung nach Anspruch 16, wobei der Prozessor weiterhin angepasst ist, um die Fingerinformationsdatenstruktur mit Daten über eine Position zu füllen von wenigstens einem Merkmal aus der Gruppe von: ein Daumen, ein Zeigefinger, ein Mittelfinger, ein Ringfinger und ein kleiner Finger, basierend wenigstens teilweise auf dem Erfassen des frequenzorthogonalen Signals, das an das Signalinjektorelement gesendet wird.
DE112018001460.6T 2017-03-20 2018-03-19 Handerfassungssteuerung Withdrawn DE112018001460T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762473908P 2017-03-20 2017-03-20
US62/473,908 2017-03-20
PCT/US2018/023088 WO2018175292A1 (en) 2017-03-20 2018-03-19 Hand sensing controller

Publications (1)

Publication Number Publication Date
DE112018001460T5 true DE112018001460T5 (de) 2020-01-02

Family

ID=63520004

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001460.6T Withdrawn DE112018001460T5 (de) 2017-03-20 2018-03-19 Handerfassungssteuerung

Country Status (6)

Country Link
US (3) US10353515B2 (de)
JP (1) JP2020514896A (de)
KR (1) KR102292988B1 (de)
CN (1) CN110637278B (de)
DE (1) DE112018001460T5 (de)
WO (1) WO2018175292A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795437B2 (en) * 2018-01-19 2020-10-06 Tactual Labs Co. Matrix sensors for use with a controller
GB201816785D0 (en) 2018-10-15 2018-11-28 Tangi0 Ltd Sensor device and method
US11093035B1 (en) * 2019-02-19 2021-08-17 Facebook Technologies, Llc Finger pinch detection
CN209400998U (zh) * 2019-02-19 2019-09-17 广州视源电子科技股份有限公司 降低显示模组干扰的电容屏
WO2021016442A1 (en) * 2019-07-23 2021-01-28 Tactual Labs Co. Self-locating controls
US11911651B1 (en) * 2023-08-10 2024-02-27 Barron Associates, Inc. System, device and method for electronically mediated upper extremity therapy

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5670988A (en) * 1995-09-05 1997-09-23 Interlink Electronics, Inc. Trigger operated electronic device
US7800592B2 (en) * 2005-03-04 2010-09-21 Apple Inc. Hand held electronic device with multiple touch sensing devices
US6724366B2 (en) * 2001-04-03 2004-04-20 Peter James Crawford Thumb actuated x-y input device
US8497767B2 (en) * 2009-03-02 2013-07-30 Butterfly Haptics, LLC Magnetic levitation haptic interface system
US9383829B2 (en) * 2011-04-30 2016-07-05 Benlin Liu Hand-held combination key apparatus and method for inputting information by hand-held combination key apparatus
US9019240B2 (en) * 2011-09-29 2015-04-28 Qualcomm Mems Technologies, Inc. Optical touch device with pixilated light-turning features
BR112015023100A2 (pt) * 2013-03-15 2017-07-18 Tactual Labs Co sensor de múltiplos toques rápidos com conjuntos de procedimentos de identificação
US9158411B2 (en) * 2013-07-12 2015-10-13 Tactual Labs Co. Fast multi-touch post processing
SG11201506841WA (en) * 2013-03-15 2015-09-29 Tactual Labs Co Active optical stylus and sensor
SG11201506850UA (en) * 2013-03-15 2015-09-29 Tactual Labs Co Fast multi-touch stylus and sensor
JP2015045909A (ja) * 2013-08-27 2015-03-12 株式会社東海理化電機製作所 操作入力装置
JP6233075B2 (ja) * 2014-02-06 2017-11-22 大日本印刷株式会社 タッチパネルセンサおよびタッチパネルセンサを備える入出力装置
KR101581672B1 (ko) * 2014-06-09 2015-12-31 주식회사 더한 정전용량형 터치와 유도전자기장 입력을 동시에 감지하는 다중 입력 패드 및 입력 시스템
US10444849B2 (en) * 2014-09-01 2019-10-15 Yinbo Li Multi-surface controller
EP3193238A4 (de) * 2014-09-10 2018-07-18 Sony Corporation Erkennungsvorrichtung, erkennungsverfahren, steuereinrichtung und steuerverfahren
US10289192B2 (en) * 2015-03-01 2019-05-14 Tactical Haptics Embedded grasp sensing devices, systems, and methods
JP2016224607A (ja) * 2015-05-28 2016-12-28 株式会社東海理化電機製作所 静電検出装置
US9999833B2 (en) * 2015-06-11 2018-06-19 Oculus Vr, Llc Hand-held controllers with capacitive touch sensors for virtual-reality systems

Also Published As

Publication number Publication date
US10990190B2 (en) 2021-04-27
US20180267667A1 (en) 2018-09-20
CN110637278B (zh) 2021-09-14
US10558296B2 (en) 2020-02-11
JP2020514896A (ja) 2020-05-21
US20200285341A1 (en) 2020-09-10
WO2018175292A1 (en) 2018-09-27
KR102292988B1 (ko) 2021-08-24
KR20190121877A (ko) 2019-10-28
CN110637278A (zh) 2019-12-31
US10353515B2 (en) 2019-07-16
US20190339810A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
DE112018001460T5 (de) Handerfassungssteuerung
DE102015015638B4 (de) Vorrichtung und Verfahren zum Übertragen von Artikeln unter Verwendung eines Roboters
DE102009034413B4 (de) Erkennung zusammengesetzter Gesten
DE102009023875A1 (de) Gestenerkennungsschittstellensystem mit vertikaler Anzeigefläche
DE112013004801T5 (de) Multimodaler Berührungsbildschirmemulator
DE202008007940U1 (de) Benutzerschnittstelle für eine modusabhängige Verarbeitung von Berührungsdaten
DE112006002954T5 (de) Virtuelles Schnittstellensystem
DE112018002775T5 (de) Verfahren und vorrichtung zum erfassen von ebenen und/oder quadtrees zur verwendung als ein virtuelles substrat
DE102011016389A1 (de) Multimodus-Berührungsbildschirm-Benutzeroberfläche für eine mehrstufige Berührungsbildschirmvorrichtung
DE202017105614U1 (de) Systeme und Computerprogrammprodukte für eine Touchscreen-Benutzeroberfläche eines kollaborativen Bearbeitungstools
DE102012014098A1 (de) Verfahren zur Imitation der Touchscreen-Steuerung durch eine Maus
DE69919759T2 (de) Verfahren zum digitalisieren, schreiben und zeichnen mit möglichkeit zum löschen und/oder hinweisen
DE112017004242T5 (de) Berührungsempfindliche objekte
EP2860614A1 (de) Verfahren und Vorrichtung zur Handhabung grafisch dargestellter Daten
DE112013000751T5 (de) Datenverarbeitung, Datensammlung
DE112019002798T5 (de) Informationsverarbeitungsvorrichtung, informationsverabeitungsverfahren und programm
DE112020003967T5 (de) Datenverarbeitungseinrichtung, datenverarbeitungsverfahren und programm
EP3716014A1 (de) Übertragen eines zustands zwischen vr-umgebungen
DE3532484A1 (de) Anordnung zur modelldarstellung einer physikalischen elektrischen komponente in einer elektrischen logiksimulation
DE102016105824A1 (de) Dateneingabe über mehrere Schreibvorrichtungen
DE112020006666T5 (de) Numerische Steuerung und numerisches Steuerungssystem
DE112020005588T5 (de) Biometrische Authentifizierungsvorrichtung, biometrisches Authentifizierungsverfahren und biometrisches Authentifizierungsprogramm
DE102009031158A1 (de) Vorrichtung und Verfahren zur Erkennung einer Zeigegeste eines Nutzers zur Interaktion mit einer Eingabefläche
DE102016214391B4 (de) Verfahren zum Steuern eines Betriebes eines Koordinatenmessgerätes und Koordinatenmessgerät mit Steuerung
DE3608706C1 (en) Digitising tablet

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: ISARPATENT - PATENT- UND RECHTSANWAELTE BEHNIS, DE

Representative=s name: ISARPATENT - PATENT- UND RECHTSANWAELTE BARTH , DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee