Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
Beginnen Sie eine Koordinatentransformation, indem Sie angeben, welches Bezugssystem den Eingabepunkt und welches den Ausgabepunkt beschreibt. Korrekte Matrixarithmetik mit umgekehrter Richtung führt weiterhin zu falschen Positionen der Objekte.
Indizes als Richtung lesen
Sei R_AB die Abbildung von B-Koordinaten auf A-Koordinaten und t_AB der Ursprung von B in A. Wir verwenden Spaltenvektoren:
Die Spalten der Rotationsmatrix sind die Achsen von B in A. Die Translation wird ebenfalls in A ausgedrückt. Punkte erfahren eine Translation; freie Vektoren wie Richtungen rotieren lediglich. Die identische Behandlung jedes dreielementigen Arrays führt zu Verwirrung hinsichtlich dieser Bedeutungen.
Ein um 90 Grad gedrehter Sensor
In 2D platzieren Sie den Ursprung von B bei (1, 2) m in A und richten die x-Achse von B entlang der y-Achse von A aus. Ein Punkt (2, 0) m in B wird zu:
Die Funktion transforms im Python-Skript überprüft dieses Ergebnis und seine Umkehrung. Sie wurde mit Python 3.12.3, NumPy 1.26.4 und Matplotlib 3.6.3 ausgeführt. Führen Sie python3 engineering_labs.py aus, um die Abbildung und die Ergebnisse neu zu generieren.
Zum Neugenerieren speichern Sie das verlinkte Skript als engineering_labs.py in einem neuen Verzeichnis und führen es dort aus. Die Ausgaben werden im Arbeitsverzeichnis gespeichert: Diese Abbildung befindet sich unter transforms.svg, die überprüften Koordinaten unter transform in engineering-results.json. Dasselbe Skript generiert außerdem Kalman-, ICP-, Frequenzgang- und Aliasing-Abbildungen sowie CSV-Dateien. Verwenden Sie ein leeres Arbeitsverzeichnis, da vorhandene Ausgabedateien überschrieben werden.
Invertieren erfordert mehr als nur die Negation der Translation
Die Inverse einer Rotationsmatrix ist ihre Transponierte:
Subtrahieren Sie (1, 2) von (1, 4) und drehen Sie die Matrix anschließend um −90°, um (2, 0) zu erhalten. Die inverse Translation ist (−2, 1), nicht einfach (−1, −2). Führen Sie eine Rotation beliebiger Punkte durch, um Richtungsfehler zu erkennen.
Homogene Transformationen zusammensetzen
In 3D kombiniert eine 4×4-Matrix Rotation und Translation:
Die Transformation ganz rechts wird zuerst angewendet. Mit Karte A, Körper B und Sensor C bewegt sich ein Punkt Sensor→Körper→Karte. Die Reihenfolge der Matrixmultiplikation kann im Allgemeinen nicht geändert werden. Die Übereinstimmung des Zwischenwerts B erleichtert auch die Benennung der Variablen.
Quaternionen repräsentieren dieselbe Rotation
Für die Einheitsachse u und den Winkel θ ergibt die ROS-Komponentenreihenfolge (x, y, z, w):
Eine 90°-Rotation um die z-Achse entspricht (0, 0, 0,7071, 0,7071). Einige Bibliotheken verwenden (w, x, y, z), daher sollte die Reihenfolge vor dem Kopieren von Arrays überprüft werden. q und −q kodieren dieselbe Rotation; die alleinige Subtraktion der Komponenten ist kein Maß für den Rotationsfehler. Auch die Normalisierung sollte überprüft werden.
REP-103 definiert die rechtshändigen SI-Konventionen von ROS: Körper x-vorwärts/y-links/z-oben und optisches z-vorwärts/x-rechts/y-unten. Überprüfen Sie zuerst die Konventionen, wenn die Kamerageometrie gedreht erscheint.
TF ist auch zeitabhängig
Lesen Sie eine Eltern-/Kind-Transformation als die Pose des Kindes, ausgedrückt in seinem Elternteil, entsprechend T_AB oben. Punkt-Transformations-APIs erfordern eine sorgfältige Auswahl des Ziel-/Quell-Frames. Eine feste Montage-Transformation unterscheidet sich von einer zeitlich veränderlichen Fahrzeugpose.
REP-105 unterscheidet global korrigierte Karten, die sprunghaft sein können, von kontinuierlichen, aber driftenden Odoms. Korrekte Matrizen zum falschen Zeitpunkt führen weiterhin zu falschen Positionierungen von sich bewegenden Sensorpunkten. Fahren Sie mit Sensorfusion-Debugging fort, um Richtung und Timing gemeinsam zu überprüfen.
Kommentare
Bitte zuerst anmelden.
Noch keine Einträge.