Ich frage mich, ob es möglich ist, die Position eines Kugelgelenks zu erfassen mit:
Ich stelle mir vor, dass etwas Ähnliches wie ein de Bruijn Torus , der auf eine sphärische Oberfläche projiziert werden kann, anstatt auf einen Torus oder eine Ebene, den Zweck erfüllen würde.
Gibt es einen bekannten Algorithmus zum Erzeugen und/oder Decodieren eines solchen Bildes?
Ja, es gibt mehrere solcher Muster, die zur Bestimmung der absoluten Position auf einer Ebene verwendet werden:
Wenn ein digitaler Stift auf digitalem Papier verwendet wird , sind zwei wichtige Schritte im Algorithmus (a) das Decodieren des vom Stift sichtbaren Teils des Musters in Bits und (b) das Decodieren dieser Bits in eine absolute Position, die angibt, welche Seite darin ist das Notizbuch und eine grobe Position auf dieser Seite. Oder mit anderen Worten, wenn er das System entwirft und entscheidet, wo die Tinte auf das Papier kommt, wählt der Systemdesigner zuerst (b) ein Bitmuster auf einem Raster aus, vielleicht den zyklischen einspurigen Gray-Code, der im Anoto-Adressteppich verwendet wird , oder ein de Bruijn-Torus oder eine Vielzahl anderer Muster von Bits-on-a-Grid. Dann wählt der Systemdesigner (a) eine von mehreren Möglichkeiten, um jedes Bit als Tinte auf Papier darzustellen.
Abufadel, Smietana und Armstrong; "Positionscodierung" gibt eine detaillierte Beschreibung einiger der möglichen Auswahlmöglichkeiten für (a) und (b). Wenn ich das richtig verstehe, verwendet der Anoto-Adressteppich eine Sequenz, die eng mit einer de Bruijn-Sequenz verwandt ist, aber technisch gesehen kein de Bruijn-Torus ist.
Hecht; "Printed Embedded Data Graphical User Interfaces" geben eine detaillierte Beschreibung der DataGlyphs, die er für (a) verwendet, und des "Teppichcodes", den er für (b) verwendet. Jeff Breidenbach und ich verwenden den Ausdruck „ein DataGlyph-Adressteppich“ für diese spezielle Kombination von (a) und (b).
Es gibt mehrere Möglichkeiten, solche "flachen" Muster auf eine Kugel zu projizieren ; vielleicht unter Verwendung einer Projektion wie dem vierseitigen kugelförmigen Würfel oder einer anderen geodätischen Gittertechnik zur Verpixelung der Kugel . Alle diese Vorsprünge haben die eine oder andere Art von Verzerrung (viele Nähte) oder eine andere (viel Dehnung in einigen Bereichen im Vergleich zu anderen) oder eine Art Kompromiss (wenige Nähte und etwas weniger Dehnung); Hoffentlich finden Sie einen, der mit Ihrer Hardware funktioniert.
Ich verstehe nicht ganz, warum der de Bruijn-Torus nicht funktionieren würde
Es funktioniert fast .
Ein de Bruijn-Torus funktioniert gut als Bitraster in einem Adressteppich, um die absolute Position auf einer Ebene zu finden. Die beliebtesten Adressteppichsysteme verwenden andere Bitmuster, die einfacher zu decodieren sind als ein De-Bruijn-Torus, obwohl sie erfordern, dass der Sensor etwas mehr Module erkennt.
Ein De-Bruijn-Torus würde auch gut als Bitraster in einem Adressteppich funktionieren, um die absolute Position auf einem Torus oder einem Abschnitt eines Zylinders zu finden – mit sorgfältigem Design könnte das Muster so gestaltet werden, dass es „richtig zusammenpasst“, wenn es den vollen Weg geht um den Umfang eines Zylinders zu kreisen, und um beide vollen Kreise um beide Umfänge eines Torus zu fahren, um "richtig zusammenzupassen".
Beginnend in der Nähe (zum Beispiel) der Stadt Accra, könnte man mit sorgfältigem Design ein Muster entwerfen, das auf einem de Bruijn-Torus basiert, der ein schmales Band in der Nähe des Äquators vollständig bedeckt und "richtig zusammenpasst", indem er den vollen Kreis um den Äquator (aber links) zurücklegt die Pole unbedeckt). Alternativ könnte man, beginnend in der Nähe derselben Stadt, mit sorgfältigem Design genau das gleiche Muster in der Nähe der Stadt Accra drucken, es aber entlang des Nullmeridians und der internationalen Datumsgrenze verlängern und beide Pole abdecken. Diese beiden Ansätze würden genau das gleiche Muster auf dem Globus in der Nähe von Accra drucken, aber leider ergibt ein de Bruijn-Torus am Antipoden von Accra auf der internationalen Datumsgrenze in der Nähe des Äquators widersprüchliche Muster.
Gibt es ein anderes Muster ähnlich einem de Bruijn-Torus, das gleichzeitig in beide Richtungen "richtig zusammenpasst", wenn es gedruckt wird, um eine Kugel oder sogar einen Würfel vollständig zu bedecken? Bisher scheint niemand in der Lage zu sein, eine zu finden, und so sind wir gezwungen, Systeme zu verwenden, die "Nähte" im Muster tolerieren können, genauso wie Kartenhersteller gezwungen sind, mindestens eine Naht in einen Globus zu schneiden, um dies zu tun projizieren Sie einen ganzen Globus auf ein flaches Blatt Papier.
Sobald Sie Nähte zulassen, funktionieren Muster, die auf dem de Bruijn-Torus basieren, wieder gut - schneiden Sie einen oder mehrere große Stücke aus diesem Muster heraus und verwenden Sie die Stücke als "Anpassen eines flachen Musters an eine Kugel", indem Sie sie abschneiden Überlappung; auch wenn das Muster an den Nähten nicht "richtig zusammenpasst".
Dies führt zu einer mathematischeren Antwort, aber wenn Sie das Muster, das Sie auf den Ball legen, a priori kennen, sollte jedes ausreichend zufällige Muster funktionieren, solange zwischen allen genügend Unähnlichkeiten (sowohl in der Translation als auch in der Rotation) bestehen mögliche Regionen, die Sie sofort erfassen können.
1) Ich würde vorschlagen, viele QR-Codes an zufälligen Positionen zu zeichnen, die > 50 % der Fläche abdecken und sowohl X- als auch Y-Koordinaten codiert haben. Dann decodieren Sie den QR-Code, der der Mitte des Bildes am nächsten liegt, und extrapolieren die Koordinaten ein wenig, um für den außermittigen Code zu zählen.
Update: 2) Sie können wahrscheinlich mit geringerer Auflösung leben, wenn Sie auf Kugeln in Farbe zeichnen können. Dann beleuchten Sie Ihren Ball mit RGB-LED - jede Farbe separat -> zweimal kleinere QR-Codes.
3) Wenn der Ball nicht metallisch ist, können Sie einen Magneten hineinstecken und die Richtung mit ein paar Hall-Sensoren messen.
4) Sie können dort einfach eine regelmäßige Struktur einfügen und die relative Position wie bei einer optischen Maus verfolgen
Ich würde mir Sorgen um Schmutz auf dem Ball machen.
Wie Tyblu in seinem Kommentar sagte, verwenden Sie einen optischen Sensor und verfolgen Sie die zurückgelegte Entfernung und Richtung und berechnen Sie dann Ihre neue Position basierend auf der Entfernung und Richtung von der alten Position. Dies ist Ihre einfachste Methode, um die benötigten Informationen zu erhalten.
Eine solche Bildverarbeitung kann ziemlich langsam und mühsam mit einer angemessenen Fehlerspanne sein und ist kein Weg, den ich zur Positionsbestimmung einschlagen würde.
tyblu
Connor Wolf
David
Christian