BSE Moderne Tracking Systeme (SoSe 2026): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 276: Zeile 276:
Implementieren Sie einen Unscented Kalman-Filter.
Implementieren Sie einen Unscented Kalman-Filter.


Verwenden Sie Sigma-Punkte zur Approximation der nichtlinearen Zustandsfortpflanzung.
```wiki
= Unscented Kalman-Filter (UKF) =
 
Erweitern Sie die bisher implementierte Zustandsschätzung des AlphaBots um einen Unscented Kalman-Filter (UKF).
 
Im Gegensatz zum Extended Kalman-Filter wird keine Linearisierung des Bewegungs- oder Messmodells durch Berechnung einer Jacobi-Matrix durchgeführt. Stattdessen wird die Wahrscheinlichkeitsverteilung des Zustands durch eine Menge von Sigma-Punkten approximiert.
 
Der Zustand des Roboters wird beschrieben durch:
 
<math>
\mathbf{x}_k =
\begin{bmatrix}
x_k\\
y_k\\
\psi_k\\
v_k\\
b_{\omega,k}
\end{bmatrix}
</math>
 
mit:
 
* <math>x,y</math>: Position des Roboters in der Ebene
* <math>\psi</math>: Orientierung (Yaw-Winkel)
* <math>v</math>: Geschwindigkeit
* <math>b_\omega</math>: Gyro-Bias
 
 
== 1. Erzeugung der Sigma-Punkte ==
 
Implementieren Sie eine Funktion zur Erzeugung der Sigma-Punkte.
 
Ausgehend vom geschätzten Mittelwert:
 
<math>
\hat{x}_k
</math>
 
und der Kovarianzmatrix:
 
<math>
P_k
</math>
 
werden <math>2n+1</math> Sigma-Punkte erzeugt:
 
<math>
\chi_0=\hat{x}
</math>
 
<math>
\chi_i=\hat{x}+\sqrt{(n+\kappa)P}_i
</math>
 
<math>
\chi_{i+n}=\hat{x}-\sqrt{(n+\kappa)P}_i
</math>
 
 
Verwenden Sie die Cholesky-Zerlegung zur Berechnung der Matrixwurzel:
 
<math>
U^TU=(n+\kappa)P
</math>
 
 
Die Gewichtung der Sigma-Punkte erfolgt durch:
 
<math>
W_0=\frac{\kappa}{n+\kappa}
</math>
 
und:
 
<math>
W_i=\frac{1}{2(n+\kappa)}
</math>
 
 
Untersuchen Sie den Einfluss des Parameters <math>\kappa</math> auf die Verteilung der Sigma-Punkte.
 
 
== 2. Prediction-Schritt ==
 
Propagieren Sie jeden Sigma-Punkt durch das nichtlineare Bewegungsmodell des AlphaBots:
 
<math>
x_{k+1}=x_k+v_k\cos(\psi_k)\Delta t
</math>
 
<math>
y_{k+1}=y_k+v_k\sin(\psi_k)\Delta t
</math>
 
<math>
\psi_{k+1}=\psi_k+\omega_z\Delta t
</math>
 
Berechnen Sie aus den transformierten Sigma-Punkten den neuen Zustandsmittelwert:
 
<math>
\hat{x}_{k+1}=\sum_i W_i \chi_i
</math>
 
und die Zustandskovarianz:
 
<math>
P_{k+1}=
\sum_i W_i
(\chi_i-\hat{x})
(\chi_i-\hat{x})^T+Q
</math>
 
 
== 3. Messupdate ==
 
Verwenden Sie die verfügbaren Sensordaten als Messung:
 
* Radgeschwindigkeit
* Gierrate
* Magnetometerwinkel
 
Transformieren Sie die Sigma-Punkte mit dem Messmodell:
 
<math>
z_i=h(\chi_i)
</math>
 
 
Berechnen Sie:
 
* erwarteten Messwert
* Messkovarianz
* Kreuzkovarianz zwischen Zustand und Messung
 
 
Aktualisieren Sie anschließend den Zustand mit der Kalman-Verstärkung:
 
<math>
K=P_{xz}S^{-1}
</math>
 
 
und:
 
<math>
\hat{x}_k=\hat{x}_k+K(z-\hat{z})
</math>
 


Untersuchen Sie den Einfluss von:


* <math>\alpha</math>
* <math>\beta</math>
* <math>\kappa</math>




Vergleichen Sie UKF und EKF hinsichtlich:
Vergleichen Sie UKF und EKF hinsichtlich:
* Positionsfehler
* Positionsfehler
* Winkelfehler
* Winkelfehler
* Verhalten bei Kurvenfahrt
* Einfluss des Parameters <math>\kappa</math>
* Rechenaufwand
* Rechenaufwand


Diskutieren Sie:
# Welche Vorteile bietet die Unscented Transformation gegenüber der Linearisierung des EKF?
# Wann liefert der UKF bessere Ergebnisse als der EKF?
# Welche Grenzen besitzt der verwendete UKF-Ansatz?


= Aufgabe 8: Experimentelle Untersuchung =
= Aufgabe 8: Experimentelle Untersuchung =

Version vom 12. Juli 2026, 10:23 Uhr

Dozent: Prof. Dr.-Ing. Schneider
Lehrveranstaltung: Moderne Tracking Systeme
Modul Business and Systems Engineering, Systemintegration
Modulbezeichnung: BSE-M-2-2.01
Modulverantwortung: Prof. UlrichSchneider
Prüfungsform: Hausarbeit
Abgabetermin: 19.07.2026


Hausarbeit: Sensorfusion zur 2D-Navigation eines mobilen Roboters mit KF, EKF und UKF

Der Autonome Mobile Roboter (AMR, AlphaBot) soll wie im Video gezeigt möglichst exakt die Ränder eines Quadrats abfahren.

Video: Mobile Robot Localisation

Im Rahmen dieser Hausarbeit soll eine Sensorfusionslösung zur Navigation eines mobilen Roboters entwickelt und untersucht werden.

Als Versuchsplattform dient ein Waveshare AlphaBot, der mit einer MPU9250-Inertialsensoreinheit ausgestattet ist. Die Sensordaten werden erfasst, verarbeitet und zur Schätzung der Roboterpose verwendet.

Ziel ist die Entwicklung und Bewertung verschiedener Bayes-basierter Schätzverfahren:

  • Kalman-Filter (KF)
  • Extended Kalman-Filter (EKF)
  • Unscented Kalman-Filter (UKF)
  • Partikelfilter (PF)

Die Verfahren sollen hinsichtlich Genauigkeit, Robustheit und Rechenaufwand verglichen werden. ​

Notwendige Hardware

  • AlphaBot mit
  • Arduino R4 Wifi und
  • MPU 9250 IMU
  • USB-C Kabel

Notwendige Software

  • Arduino IDE 2.3.10
  • MATLAB® (z. B. R2025b) mit Arduino Support Package

Vorbereitung

  • Arbeiten Sie sich anhand dieses Artikels in den AlphaBot ein. Sie benötigen lediglich die Ansteuerung der Motoren, das Auslesen der Inkrementalgeber und die Daten der IMU MPU 9250.
  • Leihen Sie sich die Hardware für die Hausarbeit bei Prof. Schneider oder Marc Ebmeyer aus.
  • machen Sie bei Fragen frühzeitig einen termin mit Prof Schneider.
  • Binden Sie den Arduino Uno R4 Wifi in Ihre Wifi-Umgebung ein. Sie dürfen hierfür gern unser Labor verwenden.
  • Tragen Sie die WLAN-Zugangsdaten und die IP-Adresse des MATLAB-Rechners in die entsprechende Zeile ein.
  • Übertragen Sie das Programm DemoUnoR4Wifi.ino auf den Arduino uno R4 Wifi.
  • Versorgen Sie den Arduino Uno R4 mit Spannung (6 V-24 V). Die Daten werden nun gesendet. Die TX-LED blinkt kontinuierlich.
  • Starten Sie DemoUnoR4Wifi.m auf dem PC. Die Daten Zeit in s;Zähler müssten nun empfangen und im Command Window dargestellt werden.
  • Sie sind nun startbereit!

Demos

Weitere AlphaBot und Arduino Demos finden Sie im SVN-Repositorium

https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/

Aufgabe 1: Systemaufbau und Datenerfassung

Der AlphaBot wird über eine ebene Fläche bewegt. Während der Fahrt werden Sensordaten aufgezeichnet.

Folgende Sensoren stehen zur Verfügung:

Sensor Messgröße Verwendung
MPU9250 Gyroskop Gierrate Ψ˙=ωz Orientierung
MPU9250 Beschleunigungssensor ax,ay Bewegungsdynamik
MPU9250 Magnetometer Magnetfeldrichtung absolute Orientierung
Radencoder Raddrehzahlen Geschwindigkeit und Weg

Die Messdaten werden über eine WLAN-Verbindung vom Arduino Uno R4 WiFi an MATLAB übertragen.

Das Datenformat soll mindestens enthalten:

Zeitstempel in s;Messnummer;Sensordaten

Beispiel:

1.25;2300;0.012;-0.034;9.812;0.01;0.02;-0.01

Aufgaben

  1. Implementieren Sie eine Messdatenübertragung zwischen Arduino Uno R4 WiFi und MATLAB®.
  2. Erfassen und speichern Sie die Sensordaten des AlphaBots.
  3. Dokumentieren Sie die Abtastrate, Datenqualität und mögliche Messfehler.

Aufgabe 2: Analyse der Sensorsignale

Untersuchen Sie die Eigenschaften der verfügbaren Sensordaten.

Führen Sie folgende Analysen durch:

  • Bestimmung der Abtastrate
  • Darstellung der Sensorsignale im Zeitbereich
  • Frequenzanalyse mittels FFT
  • Untersuchung von Offset und Drift
  • Bestimmung der Messunsicherheit

Bewerten Sie insbesondere:

  • Gyro-Bias und Drift
  • Rauschen des Beschleunigungssensors
  • Störungen des Magnetometers
  • Schlupf der Räder

Aufgabe 3: Bewegungsmodell des Roboters

Entwickeln Sie ein geeignetes Bewegungsmodell für den AlphaBot.

Der Roboter kann als Differentialantrieb modelliert werden.

Beispiel:

xk+1=xk+vkcos(ψk)Δt

yk+1=yk+vksin(ψk)Δt

ψk+1=ψk+ωkΔt

Diskutieren Sie:

  • Wahl der Zustandsgrößen
  • Modellannahmen
  • Modellfehler

Aufgabe 4: Navigation ohne Filter

Implementieren Sie zunächst eine reine Zustandsschätzung ohne Sensorfusion.

Beispiele:

  • Integration der Gierrate
  • Berechnung der Position aus Encoderinformationen

Untersuchen Sie:

  • Drift
  • Positionsfehler
  • Einfluss von Sensorausfällen

Aufgabe 5: Kalman-Filter (KF)

Entwickeln Sie ein lineares Zustandsmodell. Begründen Sie die Wahl des Zustandsmodells.

Die Zustandsschätzung soll mit einem klassischen Kalman-Filter erfolgen.

Bestimmen Sie:

  • Zustandsvektor
  • Systemmatrix
  • Messmatrix
  • Prozessrauschen Q
  • Messrauschen R

Untersuchen Sie den Einfluss der Filterparameter auf das Ergebnis.

Aufgabe 6: Extended Kalman-Filter (EKF)

Erweitern Sie das System auf das nichtlineare Robotermodell.

Implementieren Sie:

  • Prediction-Schritt
  • Berechnung der Jacobi-Matrix
  • Update-Schritt
  • Innovation und Innovationskovarianz


Bewerten Sie:

  • Genauigkeit
  • Stabilität
  • Verhalten bei Kurvenfahrt

7. Unscented Kalman-Filter (UKF)

Implementieren Sie einen Unscented Kalman-Filter.

```wiki

Unscented Kalman-Filter (UKF)

Erweitern Sie die bisher implementierte Zustandsschätzung des AlphaBots um einen Unscented Kalman-Filter (UKF).

Im Gegensatz zum Extended Kalman-Filter wird keine Linearisierung des Bewegungs- oder Messmodells durch Berechnung einer Jacobi-Matrix durchgeführt. Stattdessen wird die Wahrscheinlichkeitsverteilung des Zustands durch eine Menge von Sigma-Punkten approximiert.

Der Zustand des Roboters wird beschrieben durch:

xk=[xkykψkvkbω,k]

mit:

  • x,y: Position des Roboters in der Ebene
  • ψ: Orientierung (Yaw-Winkel)
  • v: Geschwindigkeit
  • bω: Gyro-Bias


1. Erzeugung der Sigma-Punkte

Implementieren Sie eine Funktion zur Erzeugung der Sigma-Punkte.

Ausgehend vom geschätzten Mittelwert:

x^k

und der Kovarianzmatrix:

Pk

werden 2n+1 Sigma-Punkte erzeugt:

χ0=x^

χi=x^+(n+κ)Pi

χi+n=x^(n+κ)Pi


Verwenden Sie die Cholesky-Zerlegung zur Berechnung der Matrixwurzel:

UTU=(n+κ)P


Die Gewichtung der Sigma-Punkte erfolgt durch:

W0=κn+κ

und:

Wi=12(n+κ)


Untersuchen Sie den Einfluss des Parameters κ auf die Verteilung der Sigma-Punkte.


2. Prediction-Schritt

Propagieren Sie jeden Sigma-Punkt durch das nichtlineare Bewegungsmodell des AlphaBots:

xk+1=xk+vkcos(ψk)Δt

yk+1=yk+vksin(ψk)Δt

ψk+1=ψk+ωzΔt

Berechnen Sie aus den transformierten Sigma-Punkten den neuen Zustandsmittelwert:

x^k+1=iWiχi

und die Zustandskovarianz:

Pk+1=iWi(χix^)(χix^)T+Q


3. Messupdate

Verwenden Sie die verfügbaren Sensordaten als Messung:

  • Radgeschwindigkeit
  • Gierrate
  • Magnetometerwinkel

Transformieren Sie die Sigma-Punkte mit dem Messmodell:

zi=h(χi)


Berechnen Sie:

  • erwarteten Messwert
  • Messkovarianz
  • Kreuzkovarianz zwischen Zustand und Messung


Aktualisieren Sie anschließend den Zustand mit der Kalman-Verstärkung:

K=PxzS1


und:

x^k=x^k+K(zz^)



Vergleichen Sie UKF und EKF hinsichtlich:

  • Positionsfehler
  • Winkelfehler
  • Verhalten bei Kurvenfahrt
  • Einfluss des Parameters κ
  • Rechenaufwand

Diskutieren Sie:

  1. Welche Vorteile bietet die Unscented Transformation gegenüber der Linearisierung des EKF?
  2. Wann liefert der UKF bessere Ergebnisse als der EKF?
  3. Welche Grenzen besitzt der verwendete UKF-Ansatz?

Aufgabe 8: Experimentelle Untersuchung

Führen Sie, wie im Video, verschiedene Fahrversuche auf einem Vorgegebenen Quadrat durch.

Nutzen Sie als Referenz das Videobild oder die Referenzstation im Labor.


Bewerten Sie die Filter anhand von:

Kriterium KF EKF UKF
Positionsfehler
Winkelfehler
Robustheit
Rechenzeit

Aufgabe 9: Diskussion und Bewertung

Beantworten Sie folgende Fragen:

  1. Welche Annahmen treffen KF, EKF und UKF?
  2. Wann versagen lineare Filter?
  3. Welche Vorteile bietet der UKF gegenüber dem EKF?
  4. Welche zusätzlichen Sensoren würden die Navigation verbessern?

Diskutieren Sie abschließend, welches Verfahren für die Navigation des AlphaBots am besten geeignet ist und begründen Sie Ihre Entscheidung.

Abgabe

Die Hausarbeit soll enthalten:

  • Beschreibung des Systemaufbaus
  • PAP der MATLAB-Programme
  • PAP des Arduino-Programms
  • Messdatenanalyse
  • Herleitung der verwendeten Modelle
  • Vergleich der Filterverfahren
  • Diskussion der Ergebnisse

Abgabeordner

Nachdem Sie zur Prüfung angemeldet sind, lege ich für Sie einen Sciebo-Arbeitsordner an. Bitte legen Sie darin Ihre Ergebnisse ab

  • Arduino-Datei,
  • MATLAB®-Dateien,
  • Referenzmessung oder Referenzvideo und
  • Hausarbeit als .pdf

und organisieren Sie sich ggf. in Unterordnern.

Bewertung

Die Bewertung der Hausarbeit erfolgt anhand der Kriterien in Tabelle 1. Diese Bewertung wird in Ihrem Abgabeordner publiziert. Dieses gilt als Klausureinsicht. Melden Sie sich bitte bei Rückfragen frühzeitig.

Tabelle 1: Bewertungskriterien
Kriterium Punkte
Dokumentation und Qualität der Recherche 5
Qualität und Quantität der Auswahlkriterien 5
Systematik bei der Auswahl des Ansatzes 5
Darstellung des Lösungsansatzes 5
Umsetzung des Lösungsansatzes 5
Anwendung und Optimierung des Partikelfilters zur Spurverfolgung 5
Qualität des Ergebnisses 5
Qualität der Ergebnisdiskussion 5
Summe: 40

Tutorial