1 Punkte von GN⁺ 2023-11-13 | 1 Kommentare | Auf WhatsApp teilen
  • D-POINT ist ein Open-Source-Digitalstift, der Kameratracking und Inertialmessungen nutzt, um 6DoF-Eingabe, geringe Latenz, Druckerkennung und Genauigkeit im Submillimeterbereich zu bieten
  • Kann auf jeder ebenen Oberfläche verwendet werden und funktioniert zusammen mit einer handelsüblichen Webcam
  • Die Hardware besteht aus einem Gehäuse mit zwei 3D-gedruckten Teilen und enthält einen Kraftsensor, einen per USB-C ladbaren Li-Ion-Akku sowie ein Arduino-basiertes Entwicklungsboard für Logik und Bluetooth
  • Visueller Pose-Estimation-Ablauf: Acht gedruckte ArUco-Marker auf der Rückseite des Stifts werden mit OpenCV erkannt; über Rolling-Shutter-Korrektur, PnP-Pose-Schätzung und Koordinatentransformationen werden die Pose relativ zur Kamera sowie Position und Richtung der Stiftspitze relativ zur Zeichenfläche berechnet
  • Die Inertialfusion kombiniert Beschleunigungsmesser- und Gyroskopdaten mit VPE-Schätzwerten über einen Extended Kalman Filter und korrigiert Echtzeit-Schätzwerte mit dem Rauch-Tung-Striebel-Algorithmus
  • Zur Verarbeitung der zeitlichen Verzögerung von Kameraframes wird ein Algorithmus für Mess-Updates mit negativer Zeit verwendet; die EKF-Implementierung nutzt NumPy und Numba
  • Inertialmessungen sind vorgesehen, um die Latenz gegenüber einer rein kamerabasierten Implementierung deutlich zu reduzieren und bei schnellen Bewegungen Genauigkeit und Melderate zu verbessern
  • Entstand im Rahmen einer Bachelorarbeit in Elektrotechnik; Code und Designdateien sind öffentlich, es ist jedoch nicht als „Plug-and-play“-DIY-Projekt gedacht

1 Kommentare

 
GN⁺ 2023-11-13
Hacker-News-Meinungen
  • Sehr cool. Da hat jemand etwas, wovon ich nur geträumt hatte, tatsächlich umgesetzt und zum Laufen gebracht.
    Beim Spielen von Elite: Dangerous habe ich HOTAS und Pedale benutzt und mich ständig gefragt, ob es nicht eine bessere Möglichkeit gäbe, ein Raumschiff zu steuern. Schließlich muss ein Raumschiff nicht nur Pitch, Yaw und Roll, sondern auch Schub in sechs Richtungen beherrschen.
    Ich wollte ein Gerät, bei dem sich das Raumschiff in Elite genauso bewegt, wenn ich ein Raumschiffmodell in der Hand bewege; das verlinkte Projekt scheint genau das leisten zu können. Den Schub könnte man wohl mit der anderen Hand auf ähnliche Weise steuern.
    Solche ungewohnten, neuen Eingabemethoden sind wirklich erstaunlich, und wenn man solche Fähigkeiten bekommt, erweitert das die Vorstellungskraft enorm.

    • Eine meiner schönen Erinnerungen aus der Zeit mit etwa 16: Ich kaufte mir eine 3D-Maus, die man in der Hand hielt und zum Steuern schwenkte, klebte sie mit Tape an eine Kappe mit der Aufschrift Marines und ging direkt in CS: Source, bereit, alle zu zerlegen.
      Meine tatsächlichen Fähigkeiten waren wohl ungefähr gleich, aber es wäre noch lustiger gewesen, wenn ich komplett auseinandergenommen worden wäre.
      Die Theorie war, dass der Kopf viel präziser ist als die Hand und die Kombination aus beidem das Zielen verbessern würde. Man könnte meinen, man müsse nach links schauen und den Bildschirm aus dem Augenwinkel betrachten, aber tatsächlich funktioniert ein Zwei-Maus-System ziemlich gut. Ich wollte das einmal in moderner Form erneut ausprobieren, aber dann sieht man aus wie ein unglaublicher Nerd mit einem seltsamen Stab am Kopf. Trotzdem mag ich diesen Stil.
      Deine Idee ist auch wirklich cool; du solltest sie bauen.
    • Für solche Spiele habe ich noch immer einen SpaceOrb369. Es gibt auch Leute, die Adapter bauen, damit man ihn per USB nutzen kann.
      https://en.m.wikipedia.org/wiki/SpaceOrb_360
      https://www.tindie.com/products/vputz/orbotron-9001-version-...
    • Wenn es um eine „bessere Möglichkeit, ein Raumschiff zu steuern“ geht: Würden nicht zwei Sticks reichen?
      https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
      https://youtu.be/T2-IHgNYaKA
    • In der SF-Serie The Expanse wird die Rocinante teilweise mit einer 3DConnexion SpaceMouse gesteuert, wie sie häufig für CAD und 3D-Modellierung verwendet wird.
    • Solche 6-DOF-Joysticks gibt es seit Jahrzehnten: https://3dconnexion.com/nl/spacemouse/
  • Ein Bachelor-Abschlussprojekt! Wenn das nicht die Bestnote bekommt, gibt es keine Gerechtigkeit auf der Welt.

    • Ich bin neugierig, warum du das denkst.
      Als ich studiert habe, wurde wissenschaftliches Arbeiten betont. Neuheit oder Anwendbarkeit waren daher für die Note nicht wichtig; entscheidend war, wie wissenschaftlich man den Inhalt schriftlich vermittelt hat. Da ich den Text zu diesem Projekt nicht gesehen habe, ist es aus Bewertungssicht schwer zu beurteilen.
    • Ich habe erst die Fotos nach unten durchgesehen, und sobald ich den Schreibtisch sah, dachte ich: „Ah, ein Wohnheimzimmer.“
    • Uni-Note != Qualität :-) Stimme aber trotzdem zu.
  • Sehr cool. Dass eine Webcam verwendet wird, lässt mich fragen, ob es in Zukunft irgendwann die heutigen üblichen einzelnen Webcams mit etwa 78 Grad Sichtfeld durch Stereo-Fisheye-Webcams ersetzt werden.
    Mit solchen Webcams wären neue User Experiences möglich, etwa Gesten in Kombination mit Eye-Tracking, Interaktionen mit Peripheriegeräten wie diesem Stylus oder Lenkrädern für Rennspiele, sowie deutlich flexiblere 3D-Webcam-Meetings mit 180 Grad, inklusive VR-Präsenz.
    Es fühlt sich so an, als käme eine Zeit, in der der gesamte 3D-Raum vor dem Computerbildschirm als Eingabemethode genutzt wird, und die Webcam-Nutzung im Originalbeitrag wirkt wie ein kleiner Schritt in diese Richtung.

    • Vor ein paar Jahren, als Intel und Partner RealSense-Module in Laptops einbauten, dachte ich, das würde bald kommen; inzwischen scheinen die betreffenden Anbieter ihren Fokus eher auf Unternehmens- und Industriemärkte verlagert zu haben.
    • Da bin ich leider pessimistisch. Das Touch Panel des Mac hat gezeigt, dass selbst kontextbewusste, reaktive und vollständig integrierte Eingabe nur schwer den Flow durchbrechen kann, den man mit Tastatur + Maus hat.
      Es gibt immer noch Menschen, die schon bei einem neu erschienenen Gerät namens Maus zögern.
    • TrackIR kann mit Reflektoren am Kopf Head-Tracking ermöglichen. Der Tobii Eye Tracker kann dagegen Kopf und Augen völlig passiv tracken, ohne dass man etwas am Kopf trägt.
      Hand-/Finger-Gestensteuerung und Peripheriegeräte wie Stylus oder Maus hinzuzufügen scheint der offensichtliche nächste Schritt zu sein, aber weder sie noch sonst jemand scheinen das zu tun.
    • Ich nutze eine Anker PowerConf 300 Webcam; unter Mac oder Windows kommt man mit der AnkerWork-Software bis auf 115 Grad.
  • Gut. Besonders der Teil zur Fusion gefällt mir.
    Gedanken, die mir beim Erkunden von „Laptop-Tastatur … Handhaltung, 3D-Stylus, Touch“ kamen: Mit zusätzlichen Buttons würde daraus eine 3D-Maus, aber die Kameraabdeckung könnte zum Problem werden. Das Gehäuse ist größtenteils leer, und der Akku könnte auch dünner gemacht werden. Selbst mit einem schlanken Stylus wie Essstäbchen/Zahnbürste in der Hand konnte ich einigermaßen tippen. Mit Markern und einer seltsam großen Spitze ging es ebenfalls.
    Die große Spitze, die aus einer Tischtenniskugel-Weihnachtsdeko herausgeschnitten war, glitt ziemlich geschmeidig über die ThinkPad-Tastatur und bot Platz für einen weniger winzigen Kraftsensor sowie zusätzliche Spitzenmarker. Ein dünnes, feindrähtiges Silikon-Flachbandkabel kann so flexibel wie eine Schnur sein; am Anfang hatte ich den Stylus damit an ein Arduino angebunden.
    Ich frage mich, wie ein Inertialsensor etwas wie einen konkaven metallenen Clicker als einen oder drei Buttons interpretieren würde.

  • Die Rolling-Shutter-Korrektur ist ziemlich cool, und ich glaube nicht, dass ich darauf gekommen wäre. Ich frage mich, ob dir von Anfang an klar war, dass das ein Problem werden würde, oder ob du es erst bemerkt hast, nachdem du den Rest des Systems gebaut hattest.

    • Ich wusste, dass es einen Einfluss geben würde. Die meiste Literatur zu ähnlichen Projekten verwendet deshalb Global-Shutter-Kameras. Ich war mir nur nicht sicher, wie groß er sein würde.
      Meist war er so klein, dass er kaum auffiel, aber in bestimmten Situationen wurde er wirklich sichtbar. Zum Beispiel, wenn man den Stift dreht, während die Stiftspitze an einer Stelle bleibt.
      Am meisten überrascht hat mich, wie gut meine Lösung funktionierte, obwohl sie die Realität ziemlich grob annähert. Es gibt viele deutlich ausgefeiltere Verarbeitungstechniken, aber am Ende waren sie nicht nötig.
      Etwas, das ich gern ausprobiert hätte, war Rolling-Shutter-bewusstes PnP[1]. Theoretisch kann man die Rolling-Shutter-Verzerrung nutzen, um aus einem einzelnen Bild gleichzeitig Pose und Geschwindigkeit zu schätzen.
      [1] https://www-sop.inria.fr/members/Philippe.Martinet/publis/20...
  • Alles mit 6 Freiheitsgraden gefällt mir, und Hardware und Computer-Vision-Posenschätzung sind gut gelungen, aber noch beeindruckender finde ich die Software-Oberfläche, auf der man zeichnen kann und die sich drehen lässt.
    Interessant ist, dass man das für jede Art physischer UI-Steuerung mit ähnlichem Effekt nutzen könnte, etwa einen Finger-Slider. Ein gutes Projekt, das Problemlösungskompetenz zeigt, und es scheint richtig gut umgesetzt zu sein.
    Der erste 6-DoF-Controller, den ich benutzt habe — abgesehen von einem WiiMote-Controller[1], den ich zu einem Bluetooth-Empfänger für IR-LEDs umgebaut hatte — war übrigens die ihrer Zeit voraus gewesene Logitech MX Air[2].
    [1] https://web.cs.ucdavis.edu/~okreylos/ResDev/Wiimote/MainPage...
    [2] https://www.cnet.com/reviews/logitech-mx-air-review/

  • Ein sehr cooles Projekt, die Dokumentation ist hilfreich, und es ist ein gutes Praxisbeispiel für den Einsatz eines Kalman-Filters.

  • Wirklich cool und genau das, wovon ich geträumt habe.
    Seit meine Firma auf vollständig Remote-Arbeit umgestellt hat, vermisse ich Whiteboard-Sessions ständig. Das Beste, was mir eingefallen ist, war, eine geteilte Whiteboard-Webapp sowohl auf einem alten iPad als auch im Desktop-Browser zu öffnen, dann am Desktop den Bildschirm zu teilen und auf dem iPad mit einem billigen Stylus zu zeichnen.
    Das funktioniert ziemlich gut, aber mein iPad ist zu alt und langsam. Es zu ersetzen ist mir auch zu teuer. Mit einer normalen Webcam und einem vergleichsweise Low-Tech-Stylus wäre es viel besser, und man könnte externe Geräte sogar ganz überflüssig machen.

  • Großartig. Mir gefällt, dass man nicht an eine bestimmte Marke gebunden ist, ähnlich wie beim Kauf einer mechanischen Tastatur.

  • Sehr cool.
    Das könnte auch für Robotik oder VR nützlich sein. Wäre Hand-Tracking mit nur einer Kamera nicht auch möglich?
    Frage: Könnte man mit Gyro + Beschleunigungsmesser auch Druck erfassen? Zumindest so etwas wie ein „Tippen“?
    Noch eine Frage: Wie hoch sind die Kosten, besonders beim Drucksensor?

    • Tippen lässt sich mit Gyro/Beschleunigungsmesser durchaus erkennen, aber für echte Druckempfindlichkeit, also dafür, dass sich der Druck während eines Strichs ändert, kann man ohne Drucksensor nicht viel ausrichten.
      Theoretisch wäre es mit ausreichend genauer Posenschätzung und einer elastischen Stiftspitze möglich, aber bei dem Genauigkeitsniveau, das ich erreicht habe, war das nicht realistisch.
      Den Drucksensor habe ich für etwa 20 australische Dollar gekauft, in den USA bekommt man ihn aber deutlich günstiger für etwa 5 Dollar (https://www.arrow.com/en/products/hsfpar003a/alps-electric). Allerdings ist es ein ziemlich spezielles Bauteil, das nicht viele Händler führen. Die Custom-PCB kostete zusätzlich 10 australische Dollar, der Arduino etwa 20 Dollar. Die vollständige Teileliste steht unter https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md.