Implementieren Sie eine Beacon-Navigation unter Verwendung des Kalman-Filter; benutzen Sie hierfür ebenfalls den differentiellen Roboter. Es wird ein "Kompass" benötigt. Der Kompass liefert einen Winkel relativ zur X-Achse des Welt-KS, die Messung ist verrauscht. Desweiteren muss ein Bildsensor implementiert werden, der Markierungen (Beacons) aus dem Bild detektiert. Die Beacons sind an bekannten Orten im Raum angebracht ($X_{Li}$, $Y_{Li}$). Gemessen wird jeweils der Winkel (Azimuth) relativ zum Rob.-KS für ein zufällig ausgewähltes Beacon, die Winkelmessung ist ebenfalls verrauscht! Da die Identität der Beacons nicht ermittelt werden kann, ist die Verwendung eines "innovation gates" notwendig. Sollte ein Match nicht eindeutig möglich sein, wird die Messung verworfen.
Messgleichung: Ausgewählt wird Beacon $i$ aus der Karte $\alpha_k^i=\arctan\left({\frac{Y_{Li}-Y_k}{X_{Li}-X_k}}\right)-\theta_k - v_k^\text{P} = h^{\text{P}i}(\mathbf{X}_k,v_k^\text{P})$ mit $v_k^\text{P} \sim \mathcal{N}(0,\sigma_\text{P}^2)$
Messgleichung: $\beta_k = \theta_k + v_k^\text{K} = h^\text{K} (\theta_k , v_k^\text{K})$ mit $v_k^\text{K} \sim \mathcal{N}(0,\sigma_\text{K}^2)$
Dies sind die Lösungsschritte der Lokalisation anhand des Kalman-Filters mit Innovation-Gate.
Verfahren nach Euler-Colaz für einen Roboter mit differentialer Lenkung:
Fehlerfortpflanzung der Odometrie:
Notiz:
$\mathbf{F}_{\text{P},k+1}$ ist die Jacobi-Matrix nach der Position $\mathbf{X}$ im Arbeitspunkt $k+1$ mit $\mathbf{F}_{\text{P},k+1} = \frac{\partial\mathbf{X}_{k+1}}{\partial\mathbf{X}}$
$\mathbf{F}_{\text{S},k+1}$ ist die Jacobi-Matrix nach der Geschwindigkeit $\mathbf{v}$ im Arbeitspunkt $k+1$ mit $\mathbf{F}_{\text{S},k+1} = \frac{\partial\mathbf{X}_{k+1}}{\partial\mathbf{v}}$
$\mathbf{C}_{\text{S},k+1}$ ist die Unsicherheit der zurückgelegten Wegstrecke, welche mit der Geschwindigkeit $\mathbf{v}$ skaliert (Die Konstanten $(k_1,k_2)$ müssen messtechnisch ermittelt werden) mit $\mathbf{C}_{\text{S},k+1}=\text{diag}\left(k_1 \left| s_{Lk+1}\right|, k_2 \left| s_{Rk+1}\right| \right)$
$\mathbf{Q}_{k+1}$ wird als die verkürzte Schreibweise für die Unsicherheit der Wegänderung verwendet, mit $\mathbf{Q}_{k+1} = \mathbf{F}_{\text{S},k+1} \mathbf{C}_{\text{S},k,k} \mathbf{F}_{\text{S},k+1}^{\text{T}}$
Diese Messgleichungen dienen der Simulation der Messungen zum Zeitpunkt $k+1$. Die Werte, die mit einem $'$ versehen sind, sind demnach ground truth Werte vom Simulator.
Sensormesswert wird von einem zufälligen Beacon $i$ unter dem Winkel $\alpha^i_{k+1}$ gemessen eingelesen:
mit $v_{k+1}^\text{P} \sim \mathcal{N}(0,\sigma_\text{P}^2)$.
und $i \sim$ Menge aller Beacons.
Die Kompassmessung ist eine verrauschte Messung der ground truth Daten.
mit $v_{k+1}^\text{K} \sim \mathcal{N}(0,\sigma_\text{K}^2)$
Hier müssen nun die Hypothesen $\hat{z}_{i,k+1}$ berechnet werden, unter welchem Winkel der Roboter an der Position $\mathbf{X}_{k+1}$ das Beacon $i$ messen kann.
Der Kalman-Gain wird anhand eines Innovation-Gates berechnet.
Angabe der Unsicherheitsmatrix $\mathbf{N}_{k+1}$, welche vom System vorgegeben ist:
Fehlerfortpflanzung:
Notiz:
Die Unsicherheiten des Rauschens gehen additiv in die Messterme ein. Somit bleibt auch das Rauschen zwischen dem Kompass und der Beacon-Peilung zum einen immer unkorreliert, und zum anderen konstant über die Zeit.
Definition der Innovation: \begin{align} \nu{i,k+1} = \left( \begin{matrix} \nu^{\text{P}}{i,k+1}\ \nu^{\text{K}}_{i,k+1} \end{matrix}
\right)
=
\left(
\begin{matrix}
\tilde{z}^{\text{P}}_{k+1} - \hat{z}_{i,k+1}\\
\tilde{z}^{\text{K}}_{k+1} - \theta_{k+1}
\end{matrix}
\right)
\end{align}
Berechnung der Kovarianz der Innovation für das Beacon $i$:
Vergleich der Innovation einer Messgleichung vom Beacon $i$ zu einem festen, definierten Gate-Wert $g$:
Falls die Gleichung für einen Beacon $i$ wahr ist, so wird dieser der Menge $\mathcal{M}_{k+1}$ hinzugefügt
Falls anhand des Innovation-Gates ein einziger Match $\mathcal{M}_{k+1}$ gefunden wurde, wird der Kalman-Gain berechnet. Wird kein oder mehrer Matches $\mathcal{M}_{k+1}$ gefunden, wird der Kalman-Gain verworfen.
Falls das Matching eines Beacons $i$ anhand des Innovation-Gates erfolgreich war, so wird die Sensormessung beim Update berücksichtigt. Falls es jedoch nicht erfolgreich war, so wird die Messung verworfen und lediglich die Odometrie verwendet.
Setze nun $k+1 \rightarrow k$ und beginne wieder im Odometrieschritt.