Erstellen einer großen Bewegungserfassungsebene

Ich möchte versuchen, eine "Bewegungserfassungsebene" zu erstellen, in der Benutzer Kontaktpunkte (ihre Hände) erkennen lassen können, wenn sie eine unsichtbare Ebene passieren. Stellen Sie es sich wie einen riesigen Tablet-Touchscreen vor, außer dass Sie hindurchgehen können und es keinen tatsächlichen Bildschirm gibt. Wichtig ist, dass ich nicht nur orten kann, dass eine Bewegung erkannt wird, sondern WO auf der unsichtbaren Ebene.

Ich habe versucht, das herauszufinden, und habe darüber nachgedacht, ein Paar IR-Sensoren für diese Aufgabe zu verwenden, aber ich bin mir nicht ganz sicher, ob es funktionieren wird. Ich habe eine grobe Skizze von dem angehängt, was ich in Betracht ziehe, aber ich bin offen für Vorschläge. Ich habe dafür ein Budget von etwa 200 bis 300 US-Dollar.

Skizzieren:

Geben Sie hier die Bildbeschreibung ein

Hier meine Anforderungen:

  • Das Flugzeug ist ungefähr 8 Fuß hoch und 10 Fuß breit und stationär, während es verwendet wird
  • Das Flugzeug benötigt keine genaue Bewegungserkennung an den Rändern des Flugzeugs (ungefähr 1 Fuß von den Rändern des Flugzeugs entfernt ist nicht wichtig).
  • Die Informationen müssen zur Verarbeitung an einen PC übertragen werden können, idealerweise über USB, aber auch andere Methoden sind akzeptabel.
  • Idealerweise möchte ich in der Lage sein, "Push" / "Pull" -Bewegungen zu erkennen. Ich habe über eine zweite Schicht von IR-Sensoren nachgedacht, sodass Sie ein Set "vorne" und "hinten" hätten, das eine rudimentäre Tiefenerkennung liefern würde. Etwas Genaueres brauche ich nicht wirklich, nur einen "flachen" und "tiefen" Tastsinn.
  • Ich möchte auch jedem erlauben, einfach ohne Vorbereitung hochzukommen und das Flugzeug zu benutzen. Eine andere Alternative, die ich zum Beispiel in Betracht gezogen habe, war eine Wii-Fernbedienung mit reflektierenden Handschuhen oder so etwas wie die Johnny Lee-Beispiele von vor Jahren, aber wenn möglich, möchte ich vermeiden, dass auf der Benutzerseite eine Ausrüstung erforderlich ist.

Danke an alle! Ich freue mich über alle Ideen zu diesem Thema.

Ein paar zusätzliche Fragen, die hilfreiche Antworten liefern könnten: Welche Genauigkeit benötigen Sie für die Position? Wie viele gleichzeitige Penetrationen müssen Sie erkennen können? Können Sie eine Beleuchtung zusammen mit Sensoren und möglicherweise eine bestimmte Behandlung (Farbe, Reflexionsvermögen) der Begrenzung der Ebene tolerieren?
Siehe auch: Kinect, sein kleiner Cousin Leap Motion und der optische Touchscreen FlatFrog.
@RBerteig Die Art von Präzision, nach der ich suche, ist ziemlich grob, wie eine Auflösung von Zoll oder so. Was gleichzeitige Penetrationen betrifft, sind 2 erforderlich, während mehr immer nützlich, aber nicht notwendig ist. Von was für einer Beleuchtung redest du? Eine Farbe/Reflexion auf der physikalischen Struktur, die die Ebene umgibt, ist vollkommen in Ordnung.
@ pjc50 Ja, ich habe an der Kinect herumgebastelt, ich habe mich nur gefragt, ob es etwas gibt, das etwas spezialisierter sein könnte und nicht erfordert, dass ich die vollständigen Kameradaten analysiere. Es könnte jedoch immer noch die beste Option sein.
@bearcano Lichtquellen als Teil des Gesamtdesigns zu haben, kann nützlich sein. Es gibt eine alte (1980er oder so) Touchscreen-Technologie, die auf ausgerichteten Paaren von LEDs und Fotodioden basiert, die ein Gitter über einem Bildschirm bilden. Eine Berührung wird beobachtet, wenn ein Finger sowohl einen horizontalen als auch einen vertikalen Strahl unterbricht, und funktioniert, weil die Finger undurchsichtig sind. Dies erfordert eine mechanische Ausrichtung, einige Optiken an beiden Enden jedes Strahls und wird wahrscheinlich pingelig sein. Aber es kann mehrere Penetrationen erkennen, und die Tiefe könnte mit mehreren gestapelten Ebenen gehandhabt werden.
@bearcano Auch eine Kameralösung kann von der Bereitstellung von Lichtquellen profitieren. Wenn der umgebende Rahmen mit Retroreflektoren beschichtet ist (dafür gibt es ein Klebeband sowie Stoffe und Farben) und ein IR-Illuminator effektiv koaxial zum Kameraobjektiv ist, sollte das Objekt, das die Ebene durchdringt, einen hohen Kontrast haben, solange dies nicht der Fall ist auch reflektierend. Motion-Capture-Systeme verwenden den umgekehrten Trick: Die Gliedmaßen des Schauspielers werden durch Kugeln markiert, die mit Retroreflektoren beschichtet sind, und die Kameras sehen die Kugeln in einem dunklen Feld.
@RBerteig Das Grid-Setup hört sich so an, als könnte es perfekt funktionieren, wenn es über die von mir benötigten Entfernungen funktionieren kann. Wenn Sie weitere Informationen zu dieser Methode haben (Links usw.), würde ich mich gerne darüber informieren. Ich habe Probleme zu überlegen, wie die Paare "ausgerichtet" werden könnten, damit jede Fotodiode nicht mehrere IR-LED-Quellen usw. sieht.
@RBerteig Danke für den Link zum retroreflektierenden Band. Das sollte praktisch sein, wenn ich auf jeden Fall eine kamerabasierte Lösung verwenden muss.

Antworten (2)

Erweiterung meines früheren Kommentars zu einer Antwort ...

Eine mechanisch zuverlässige Technik zum Erfassen der Position eines undurchsichtigen Objekts innerhalb einer 2D-Ebene besteht darin, Lichtquellen mit Detektoren so zu paaren, dass durch das undurchsichtige Objekt geworfene Schatten identifiziert und gemessen werden können. Diese Technik wurde in den 70er und 80er Jahren verwendet, um eine Berührungsaktivierung zusätzlich zu klassischen dummen Terminals bereitzustellen. Ich kann mich nicht an den Hersteller erinnern, aber ich erinnere mich an eine Ersatzblende eines Drittanbieters, die für den ADM-3A verkauft wurde und zum Beispiel die erforderlichen Teile enthielt. Ein schnelles Googlen nach „Fotodioden-Touchscreen“ ergab eine überraschende Menge an Fotos, Designs und sogar Produkten.

Klassische IR-LED-Strahlen

Ein einfacher Weg, dies zu erreichen, ist ein Gitter aus Lichtstrahlen. Entlang jedes Kantenpaares setzen Sie LEDs auf die eine und Fototransistoren auf die andere. Die LED/Empfänger-Paare sind ausgerichtet und die Optik so angeordnet, dass jeder Empfänger hauptsächlich eine einzelne LED sieht. So etwas wie diese grobe ASCII-Kunstskizze:

  vvvvvvvvvvvvvvv
  |||||||||||||||
>-+++++++++++++++-> 1
>-++++X|||||||||| > 0
>-++++-++++++++++-> 1
>-++++-++++++++++-> 1
>-++++-++++++++++-> 1
  |||| ||||||||||
  vvvvvvvvvvvvvvv    
  111101111111111   

Um die physikalische Auflösung zu verbessern, können die LEDs der Reihe nach aufleuchten und Informationen von mehr als einem Empfänger kombiniert werden, um Positionen zwischen den Strahlen abzuschätzen.

Mit zwei Kantensätzen, die eine Ebene abdecken, können Sie die Position einer einzelnen Penetration mit 100 %iger Sicherheit identifizieren. Eine zweite Penetration kann identifiziert werden, wird aber auch Phantompositionen haben, sodass wahrscheinlich einige zusätzliche Tracking-Heuristiken erforderlich wären, um zu überprüfen, welche der beiden möglichen Lösungen der Realität entspricht:

  vvvvvvvvvvvvvvv
  |||||||||||||||
>-+++++++++++++++-> 1
>-++++X|||||O|||| > 0
>-++++-++++++++++-> 1
>-++++O|||||X|||| > 0
>-++++-+++++-++++-> 1
  |||| ||||| ||||
  vvvvvvvvvvvvvvv       
  111101111101111   

Allein anhand der Schatten in einem einzigen Schnappschuss lässt sich nicht erkennen, ob sich die Fingerkuppen an den zwei Xoder zwei OStellen befinden. Wenn jedoch Xzuerst oben links zu sehen wäre, würde das Hinzufügen des zweiten Kontakts darauf hindeuten, dass sich die UL höchstwahrscheinlich nicht bewegt hat und dass sich die Finger auf den XMarkierungen befinden.

Durch Scannen und breitere Sichtwinkel sowohl für die LEDs als auch für die Empfänger können Sie wahrscheinlich die weit entfernten normalen LEDs verwenden, um die Schatten zu sehen, die von den echten Fingern geworfen werden, und die virtuellen Finger ausschließen. Ins logische Extrem getrieben, erfinden Sie das CT-Scannen neu, und die dort verwendete Mathematik könnte tatsächlich eine Untersuchung wert sein. Sie könnten einen Reifen mit geeignetem Durchmesser mit abwechselnden Empfängern und LEDs abdecken und die Algorithmen des CT-Scanners wirklich bei niedriger Auflösung anwenden.

Um die Eindringtiefe zu erhalten, würden Sie mehr als ein 2D-Array verwenden.

Die größten Nachteile dieses Ansatzes, die mir beim Schreiben in den Sinn kommen, sind die logistischen Auswirkungen der großen Anzahl von diskreten Komponenten, die präzise montiert werden, einschließlich der Optik. Sogar Optiken, die so einfach wie ein Rohr sind, um das Sichtfeld auf jedem Sensor zu reduzieren, müssen noch hergestellt und installiert werden. Und dann gibt es noch all die analogen Signale, die aufbereitet, erfasst und an eine CPU weitergeleitet werden müssen. Aber wenn Sie diese mechanischen und logistischen Probleme lösen, haben Sie einen zu berücksichtigenden Ansatz.

Retroreflektoren?

Mir kommt in den Sinn, dass eine Möglichkeit, dies zu verbessern, um das Bauen und Aussteigen zu erleichtern, darin besteht, die LEDs und Fototransistoren paarweise in unmittelbarer Nähe an einer Wand und einem Retroreflektor an der gegenüberliegenden Wand zu platzieren. Jeder Strahl wäre im ununterbrochenen Zustand doppelt so lang, aber die optische Ausrichtung wäre viel weniger kritisch, da der Sender und der Empfänger zusammen mit einem Retroreflektor auf derselben Platine montiert werden, um das Licht von einem Sender hauptsächlich nur zu seinem passenden Empfänger zurückzuleiten.

Sie könnten eine kleine Leiterplatte für jedes Paar zusammen mit einer kleinen CPU herstellen und alle Daten mit einem I2C- oder ähnlichen Bus entlang jeder Kante sammeln (und die Strahlprüfung im gesamten Array zeitlich festlegen). Dies würde alle interessanten analogen Bits ordentlich enthalten und die Schnittstellenanforderungen an die zentrale Steuerung stark reduzieren. Es würde das Design auch so modular machen, dass der grundlegende Strahlsensor in kleinen Mengen gebaut und vollständig getestet werden kann, bevor Sie sich zum Aufbau des gesamten Arrays verpflichtet haben.

Im Geiste der früheren ASCII-Kunst ist hier eine Skizze, die eine Einzelpunkterkennung zeigt:

     1 0 1 1 1 1 1   
    v^v^v^v^v^v^v^   
    ||| ||||||||||
  >-+++-++++++++++-\ 
1 <-+++-++++++++++-/ 
  >-++X |||||||||| \
0 >-||  |||||||||| /
  >-++--++++++++++-\ 
1 <-++--++++++++++-/ 
  >-++--++++++++++-\ 
1 <-++--++++++++++-/ 
    ||  ||||||||||
    \/\/\/\/\/\/\/
Vielen Dank dafür, ich denke, das ist genau das, was ich mir von dieser Frage erhofft hatte. Betreff: Logistik - Idealerweise würde ich die LEDs und Empfänger auf "Streifen" legen, die nach Bedarf an den Seiten des Panels angebracht / entfernt werden könnten, aber beim Zusammenbau müsste offensichtlich große Sorgfalt angewendet werden, um sicherzustellen, dass die Messungen erhalten bleiben Dasselbe. Ich bin mehr damit beschäftigt, die analogen Signale in digitale umzuwandeln und sie zur CPU zu bringen. Viel zu bedenken, aber das bringt mich auf einen Weg. Wenn Sie etwas hinzuzufügen haben, lassen Sie es mich bitte wissen, insbesondere wenn es darum geht, Informationen zum PC zu erhalten.
@bearcano Siehe mein Update für einen weiteren Gedanken zur gemeinsamen Anordnung des Emitter- und Detektorpaars, um die Ausrichtung und Verkabelung zu vereinfachen.

Es sieht im Prinzip so aus, als würde ein Paar ziemlich billiger Videokameras die Arbeit erledigen. Mit ziemlich weitwinkligen Objektiven, die Ihnen ein Sichtfeld von 90 Grad bieten, erhalten Sie auch eine Fokussierung, die nahe genug an den Kameras liegt, um Ihre 1-Fuß-Anforderung zu erfüllen. Natürlich können Sie USB-Videokameras dazu bringen, die Daten an Ihren PC zu senden. Die Analyse der resultierenden Bilder liegt außerhalb meiner Kompetenz. Sicherlich sollten Sie eine ausreichend gute Auflösung erhalten, um mehrere handgroße Objekte zu identifizieren.

Es gibt Zeilenkameras, die Ihnen eine bessere Auflösung in einer einzigen Ebene bieten, aber diese sind in der Regel teurer, als Sie bereit sind auszugeben.

Normale 2D-Kameras liefern Ihnen auch problemlos die Z-Achsen-Informationen.
Wenn Sie zum Beispiel zu Newegg.com gehen. und suchen Sie nach Webcams, es gibt eine ziemliche Auswahl. Die meisten scheinen das FOV nicht aufzulisten, aber eines hat 68,5 Grad angegeben, was vielleicht etwas niedrig ist. Allerdings gab es auch eine Weitwinkel-Videokonferenzkamera mit einem FOV von 100 Grad. Da die meisten davon als HD-Kameras aufgeführt sind, bieten sie eine mehr als ausreichende Auflösung für die Erkennung von Händen.
Ich hatte darüber nachgedacht und einige frühe Experimente mit Kinect durchgeführt. Ich habe mich hauptsächlich gefragt, ob es eine Nicht-Kamera-/Kinect-ähnliche Lösung gibt, bei der ich keine Kamerabilder analysieren muss, da ich wirklich nur Entfernungswerte von Objekten (z. B. Händen) benötige, die das Flugzeug durchbrechen.