Die Sensoren des Roboters erfassen den Verlauf der Wellen, aber leider ist deren Ausgabe ungenau.
Zusätzlich lässt sich der Verlauf der Wellen mathematisch durch eine Sinus-Funktion annähern. Wir versuchen den Verlauf der Wellen-Funktion durch eine Drehmatrix vorherzusagen:
Der Kalmanfilter hilft uns nun unsere mathematische Annäherung und die Ausgabe der Sensoren so zu kombinieren, dass der Verlauf der Wellen möglichst gut beschrieben werden kann, obwohl unser mathematisches Modell und die Sensoren des Roboters die Wirklichkeit nicht perfekt beschreiben. Wir übergeben unsere mathematische Vorhersage (die Matrix <code>F</code> und der Vektor <code>xo</code>) an den Kalmanfilter, welcher zusätzlich mit den Daten der Sensoren gefüttert wird.
%% Cell type:code id:chief-cemetery tags:
``` python
tini=0# Start time
tfinal=35# End time
dt=0.01# Time Step
nflows=7# Number of data flows in the schematic
Ts=0.1# Sampling time for discrete time
sc=Schema(tini,tfinal,dt,nflows)# Instance of the simulation schematic
Es ist zu sehen, dass der Kalmanfilter es schafft, aus unserer mathematischen Vorhersage und den Daten der Sensoren, eine Ausgabe zu erzeugen, welche den der Verlauf der Wellen nahe kommt. Dies kann nun genutzt werden um den Roboter möglichst gut zu balancieren.
%% Cell type:markdown id:anonymous-franklin tags:
## Nähere Erklärung zum verwendeten Kalmanfilter:
%% Cell type:markdown id:posted-visitor tags:
<imgsrc="bilder/v10_kalmanfilter.png"/>
%% Cell type:markdown id:colored-desert tags:
### Ablauf in KalmanFilter([...],[...],N,M,F,G,C,Q,R,xo,Pk,Ts):