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.
Explore timing, mounting position and axes in your browser
Use the panel above to compare ideal examples without ROS or local Python. These calculations explain different sources of disagreement; they do not run a fusion filter, estimate calibration or diagnose a robot. The original diagnostic procedure remains below.
Time offset: Δt is the time of the compared value minus the reference time. The displayed differences are x(t+Δt)−x(t)=vx Δt and heading(t+Δt)−heading(t)=yaw_rate Δt. Positive Δt compares a later value; negative compares an earlier value. At 1 m/s, 90 deg/s and +50 ms, the differences are +0.05 m and +4.5°. These are separate constant-axis translation and constant-angular-rate examples, not an integrated turning trajectory or a prediction of filter error. Time offset is not automatically transport latency or a timestamp-sign convention for a particular driver. Zero motion can hide timing disagreement. No tolerance is recommended.
Mounting position: the lower diagrams describe velocities at one instant. Body axes use x forward, y left, z up; positive yaw is counterclockwise viewed from +z. The supplied base-point velocity is v_base=(vx,0) in body axes. The lever arm r=(rx,ry) points from that base origin to the sensor origin, also in body axes. With ω=yaw_rate × π/180, the mounting-point velocity difference is ω×r=(-ω ry, ω rx) m/s. Thus v_sensor_body=v_base+ω×r. The position plot uses metres; the velocity plot uses m/s with separate scales. Sensor-axis arrows have a display length of 0.15 m. The velocity plot places vectors at a common origin to compare their components, not to depict where the robot travels.
Mounting orientation: R_bs rotates sensor components into body components. The model constructs hypothetical sensor-point linear velocity as v_sensor_components=R_bsᵀ v_sensor_body. Rotating it back gives the velocity of the sensor point, still not the base point. Only after subtracting the known ω×r term does this ideal algebra recover the supplied base velocity. Reuse of the known exact geometry is not a calibration estimate. This is a hypothetical velocity measurement, not raw IMU acceleration or gyro output; acceleration lever-arm effects are not modeled.
The “raw component mismatch” deliberately subtracts sensor-axis numbers from base-axis numbers at another point. It is an example of an invalid comparison, not a filter innovation. Its norm may even cancel to zero for some wrong comparisons. The algebraic recovery residual measures floating-point roundoff after using the same exact model; it is not localization accuracy or evidence that real calibration is correct. The table labels every vector by its point and axes.
Try in-place rotation, zero lever arm, a sensor on the left, reversed rotation and a 90° sensor mounting. Changing mounting yaw changes sensor components but leaves physical body-frame velocity unchanged. Changing Δt affects only the timing exercise. By default the lever arm is 0.2 m and the rate is 90 deg/s, so the lever-arm speed is about 0.314 m/s; the article's separate 1 rad/s example gives 0.2 m/s. Do not confuse degrees/s with radians/s.
All inputs are synthetic and exact. No covariance, noise, observability test, slip, bias, interpolation, TF lookup, clock synchronization, ROS execution or fusion estimator is included. A/B uses matching position and velocity scales; slider limits are teaching choices. For point transforms, use the separate coordinate-transform Lab; for replay conditions, use the replay Lab.
References reviewed 2026-09-20: REP-103 coordinate conventions and Modern Robotics: rigid-body point velocity. The browser uses the site's existing planar rotation helper and the planar form of the rigid-body velocity relation.
Wenn zusätzliche Sensoren die Lokalisierung verschlechtern, ist der Filter nicht der einzige Verdächtige. Messungen lassen sich nicht direkt vergleichen, wenn sich ihre Zeiten, Frames oder Einheiten unterscheiden. Überprüfen Sie jeden Eingang und anschließend die Fusionsgrenzen.
Korrigieren Sie die Diagnosereihenfolge
Verwenden Sie ein kurzes Protokoll und untersuchen Sie zunächst die Räder, dann die IMU und anschließend beides. Eine gleichzeitige Änderung des Bodens oder der Fahrgeschwindigkeit verschleiert die Ursache. Beachten Sie die Prinzipien in Grundlagen der Sensorfusion.
Zeitfehler führen zu Bewegungsfehlern
Bei einer konstanten Geschwindigkeit von 1 m/s erzeugt ein Zeitstempelfehler von 50 ms eine scheinbare Verschiebung von 1\times0.05=0.05 m. Bei 90°/s führt derselbe Fehler zu einer Rotationsabweichung von 4,5°. Dies sind Berechnungen für eine konstante Bewegung und keine empfohlenen Toleranzen.
Ermitteln Sie, ob ein Nachrichtenzeitstempel die Sensorerfassung oder den Empfang durch den Treiber kennzeichnet. Eine feste Übertragungsverzögerung ist bei korrekten Erfassungszeitstempeln möglicherweise verkraftbar; abweichende Taktraten auf verschiedenen Hosts stellen ein anderes Problem dar. Eine längere Warteschlange korrigiert den Taktversatz nicht. Stellen Sie während der Wiedergabe sicher, dass alle relevanten Knoten dieselbe Simulationszeitkonfiguration verwenden.
Achsen und Ursprünge prüfen
ROS-Körperkoordinatensysteme verwenden normalerweise x nach vorn, y nach links und z nach oben; optische Kamerakoordinatensysteme verwenden z nach vorn, x nach rechts und y nach unten. Beachten Sie die Konventionen in REP-103. Das Umbenennen eines Koordinatensystems dreht dessen Werte nicht.
Transformieren Sie einen Sensorpunkt mit p_b=R_{bs}p_s+t_{bs} . Sowohl Rotation als auch Translation sind relevant. Die inverse Translation wird mit -R^Tt berechnet, nicht einfach mit -t. Notieren Sie, ob die Kalibrierung den Sensor auf den Körper oder den Körper auf den Sensor abbildet.
Montageversätze beeinflussen auch die Bewegung
Bei einem starren Körper beträgt die Geschwindigkeit am Sensor v_s=v_b+\omega\times r . Bei einem senkrechten Versatz von 0,2 m und einer Winkelgeschwindigkeit von 1 rad/s beträgt die Geschwindigkeitsdifferenz 0,2 m/s. Ein Sensor außerhalb des Rotationszentrums bewegt sich selbst bei einer Drehung auf der Stelle.
Berücksichtigen Sie neben Translationen auch Drehungen in der Diagnose. Eine vollständige externe Kalibrierung erfordert ausreichend informative Bewegungen; reines Geradeausfahren erfasst möglicherweise nicht alle Freiheitsgrade. Vergleichen Sie die Bezugssystemzuordnungen mit REP-105.
Residuen und Kovarianz zuletzt prüfen
| Symptom | Hypothese | Vergleich als Nächstes |
|---|---|---|
| Fehler wächst mit der Geschwindigkeit | Zeitabweichung | Gleiche Strecke bei unterschiedlichen Geschwindigkeiten |
| Fehler wächst bei Kurven | Achsen, Versatz oder Timing | Stationär, Geradeausfahrt und Links-/Rechtskurven |
| Sprünge beim Hinzufügen eines Eingangs schätzen | Bezugssystem, Einheiten oder Überschätzung | Rohdaten und Vorhersageresiduum |
| Langsame Drift | Bias oder Schlupf | Rohmittelwerte und beobachtbare Richtungen |
Ein Residuum ist die Differenz zwischen Beobachtung und Vorhersage. Eine geringere Kovarianz erhöht das Vertrauen; sie korrigiert jedoch keine falschen Achsen oder Zeitstempel. Die Behandlung von Position und Geschwindigkeit, die vom selben Encoder stammen, als stark unabhängige Beobachtungen kann ebenfalls zu einer Informationsüberbewertung führen. Überprüfen Sie die Eingabeauswahl und die Frame-Verarbeitung in der offiziellen robot_localization implementation.
Bestätigen Sie jeweils eine Ursache
Ändern Sie eine Einstellung, vergleichen Sie dasselbe Protokoll und bestätigen Sie dies anschließend mit einem neuen Durchlauf. Plausible stationäre Werte schließen bewegungsabhängige Synchronisations- oder Montagefehler nicht aus. Vor der SLAM-Evaluierung sollten Sie Zeitstempelsemantik, Einheiten, TF-Publisher und Kalibrierungsrichtung gemeinsam erfassen.
Kommentare
Bitte zuerst anmelden.
Noch keine Einträge.