BWP-WS19-02/Grundlagen

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

Grundlagen

Antrieb, Mechanik & Kommunikation

Hall-Sensor

Unter einen Hall-Sensor versteht sich ein Sensor, der die Stärke eines Magnetfelds mittels des Hall-Effekts messen kann.

Weitergehende Infromationen über Hall-Effekt, Hall-Sensoren und Lorenzkraft findet man unter diesem Link .

Bei den von uns verwendeten Hall-Sensoren ist der Hauptanwendungszweck die Positions- bzw. die Umdrehungsbestimmung des Motors.

Reflexionslichtschranke

Eine Reflexionslichtschranke ist ein System, welches elektische Signale ausgibt bei der Unterbrechung eines Lichtstrahls. Hierfür sind ein Empfänger und ein Erzeuger in einem Plastikgehäuse parallel zueinander verbaut. Der Erzeuger strahlt einen Lichtstrahl aus, welcher auf der gegenüberliegenden Seite reflektiert wird. Wenn die Strecke zwischen Reflexionsfläche und Empfänger nun unterbrochen wird, bewirkt dies einen elektrischen Impuls.

Eine Weitere Variante von Lichtschranken sind Einweglichtschranken, wie zum Beispiel Gabellichtschranken. Hier haben Sender und der Empfänger einen Abstand von 3–120 mm. Sie reflektierten das Licht nicht, sondern der Empfänger nimmt direkt den Lichtstrahl auf. Wenn sie sich nicht im gleichen Gehäuse befinden, müssen sie bei der Befestigung zueinander ausgerichtet werden.

BLE und GATT

Ausarbeitung von Sascha Ludwig S. 10ff

Sensoren & Kartierung

Inertiale Messeinheit[1]

Eine inertiale Messeinheit (engl. Inertial Measurement Unit) wird meist zur Positionsbestimmung unabhängig von äußeren Messeinrichtungen verwendet. Häufig wird diese zum Zweck der Navigation benötigt. Bekannte Anwendungsfelder sind: führerlose Transportsysteme, Flugdrohnen oder Gebäudenavigationssysteme.

Eine IMU besitzt drei Beschleunigungssensoren, eine pro Raumachse und drei Drehratensensoren, welche die Drehraten um die jeweilige Raumachse messen. Außerdem gibt es Modelle die zusätzlich noch über Magnetometer verfügen. Moderne Kompakt-IMUs sind relativ klein und haben Sensoren der MEMES-Technologie verbaut. Über das Gehäuse ist die IMU fest mit dem zu beobachtenden Messobjekt verbunden. Die sechs Sensoren werden kontinuierlich mit einer hohen Abtastrate ausgelesen. Die Position lässt sich in Form dreier Koordinaten, bezogen auf ein Referenzkoordinatensystem zu Beginn der Bewegung, berechnen. Manche IMUs verfügen auch über andere Darstellungsformen wie z.B. Quaternionen. Die notwendigen Algorithmen zur Berechnung können, falls vorhanden, auf einem Mikrocontroller der in der IMU verbaut ist, ausgeführt werden. Andernfalls sind nach dem Auslesen der Rohdaten weitere Berechnungen nötig, um Ergebnisse zu erzielen mit denen weitergearbeitet werden kann.

Kalman Filter[2]

Der Kalman Filter wurde nach seinem primären Entwickler Rudolf Kalman[3] benannt. Aus gegebenen Informationen, filtert der Kalman Filter Messfehler und Abweichenungen heraus und verbessert so die Genauigkeit der Informationen.

x_k=F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}

y_k=H_kx_k+v_k

Variable Beschreibung
x State Vector
y Output Vector
u Input Vector
w Process Noise Vector
v Measurement Noise Vector
F System Matrix - State
G System Matrix - Input
H Observation Matrix

Der Kalman Filter benutzt Vorhersagen auf Grund des aufgestellten, theoretischen Modells in Verbindung mit Korrekturen durch die tatsächlich gemessenen Wert, um sich der Realität möglichst genau anzunähern. Ein einfaches Beispiel für die Vorhersage wäre die Position eines Objektes. Wenn man weiß wo sich das Objekt im vergangenen Zustand befand und weiß wie schnell es sich bewegt, können Annahmen über die aktuelle Position getroffen werden. Diese Vorhersage wird dann mit den gemessenen Werten (z.B. von einem Sensor am Objekt) korrigiert. Nachfolgend wird der Kalman Filter in Gleichungen beschrieben.

Angefangen mit ein initial geschätztem Zustand (\hat{x}_0) und einer initialen Zustands-Fehler-Kovarianz-Matrix (P_0) wird die Abfolge der Gleichungen für jeden Zeitpunkt rekursiv angewandt, genau wie in einer Schleife.

Zuerst wird der Zustandsvektor vorhergesagt mit

\hat{x}_{k|k-1}=F_{k-1}\hat{x}_{k-1}+G_{k-1}u_{k-1}

wobei \hat{x}_{k|k-1} der vorhergesagte Zustandsvektor, \hat{x}_{k-1} der vorangegangene vorhergesagte Zustandsvektor, u der Eingabevektor und F und G Matrizen sind, die die Systemdynamiken beschreiben.

Als nächstes wird die Zustands-Fehler-Kovarianz-Matrix vorhergesagt mit

P_{k|k-1}=F_{k-1}P_{k-1}F^T_{k-1}+Q_{k-1}

wobei P_{k|k-1} die vorhergesagte Zustands-Fehler-Kovarianz-Matrix, P_{k-1} die vorangegangene vorhergesagte Zustands-Fehler-Kovarianz-Matrix und Q die Prozess-Ungenauigkeits-Kovarianz-Matrix ist.

Wenn die vorhergesagten Werte bestimmt wurden, kann die Kalman-Stellgrößen-Matrix berechnet werden mit

K_k=P_{k|k-1}H^T_k(H_kP_{k|k-1}H^T_k+R_k)^{-1}

wobei H benötigt wird um die Ausgangsgleichung zu bestimmen und R die Mess-Ungenauigkeits-Kovarianz-Matrix ist.

Der tatsächliche Zustandsvektor wird dann durch die Differenz zwischen Messung z_k und dem vorhergesagten Output H_k\hat{x}_{k|k-1} (machmal \hat{y}_{k|k-1} genannt) multipliziert bei der Kalman-Stellgrößen-Matrix um die Vorhersage zu korrigieren, wie in

\hat{x}_k=\hat{x}_{k|k-1}+K_k(z_k-H_k\hat{x}_{k|k-1})

Ähnlich wird die Zustand-Fehler-Kovarianz-Matrix korrigiert mit

P_k=(I-K_kH_k)P_{k|k-1}

wobei I die Identitätsmatrix ist.

Time of Flight Sensor

Time of Flight (ToF) Sensoren sind Distanzsensoren, die die Distanz zwischen Sensor und einem Objekt, auf Basis der Laufzeit zwischen einem ausgesendeten Signal und der Reflexion des Signals an dem Objekt berechnen. In der Regel arbeitet ein ToF Sensor mit einem Infrarotlaser, der vom Sensor ausgesendet wird, von einem Objekt reflektiert wird und von dem Sensor wieder verarbeitet wird. Time of Flight Laser Distanzsensoren sind im Vergleich zu Infrarot Distanzsensoren, sehr unempfindlich gegenüber äußeren Einflüssen, wie Temperatur oder Oberflächenstruktur des Objekts.

Systemarchitektur & Energie

Coloumb Counter

Ein Coloumb Counter misst kontinuierlich den Strom, der durch ihn fließt. Dies geschieht mithilfe eines sog. Shunt-Widerstands, über dem bei einem Stromfluss eine Spannung abfällt. Hält diese abfallende Spannung, gemessen zum Beispiel in Volt-Sekunden, eine Zeit lang an, so wird ein Impuls erzeugt. Dabei gilt: Eine höhere Spannung über dem Widerstand, erzeugt durch einen hohen Stromfluss, resultiert in einer höheren Impulsfrequenz. Die Menge an Ladung, die für einen Impuls notwendig ist, kann durch das Wechseln des Shunts variiert werden. Eine ausführlichere Erklärung und die nötigen Formeln zu dem von uns benutzten Coulomb Counter können im Datenblatt (Seite 8) nachgelesen werden.

Zusätzlich liefert er noch eine Information über die Polarität, so kann erkannt werden in welche Richtung der Stromfluss erfolgt.

Logging

Logging ist das automatische Erstellen eines Protokolls (engl. log) von Softwareprozessen. Mithilfe dieser Logs ist es möglich, Programmabläufe zu verfolgen, Fehler angezeigt und deren Ursachen ergründen zu können.

Referenzen

  1. https://messtechnik-und-sensorik.org/inertiale-messeinheiten-imu/
  2. Matthew B. Rhudy, Roger A. Salguero and Keaton Holappa, "A Kalman Filtering Tutorial For Undergraduate Students", International Journal of Computer Science & Engineering Survey (IJCSES) Vol.8, No.1, February 2017
  3. Kalman, R. E., “A New Approach to Linear Filtering and Prediction Problems,” Trans. of the ASME – Journal of Basic Engineering, March 1960, pp. 35-45.