Objekterkennung mit rotierenden Ultraschall mit Matlab/Simulink und EV3: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 171: Zeile 171:
Bei dem Ultrasonic können verschiedene Fehler bzw. Messunsicherheiten und Messabweichungen auftreten.
Bei dem Ultrasonic können verschiedene Fehler bzw. Messunsicherheiten und Messabweichungen auftreten.


[[Datei:UltrasonicMessabweichung.PNG|600px|thumb|right|Abbildung 9: Messabweichung]]


Es werden zunächst die Messabweichungen des Ultrasonics verglichen, indem die wahre Entfernung mit der gemessenen Entfernung verglichen wird. In der folgenden Tabelle sind die Ergebnisse eingetragen und in Abbildung 9 grafisch dargestellt.
Es werden zunächst die Messabweichungen des Ultrasonics verglichen, indem die wahre Entfernung mit der gemessenen Entfernung verglichen wird. In der folgenden Tabelle sind die Ergebnisse eingetragen und in Abbildung 9 grafisch dargestellt.
[[Datei:UltrasonicMessabweichung.PNG|600px|thumb|right|Abbildung 9: Messabweichung]]


{| class="wikitable"
{| class="wikitable"

Version vom 21. Juni 2017, 06:54 Uhr

Autorin: Cosima Eckert-Ludwig
Betreuer: Prof. Dr.-Ing. Ulrich Schneider


Für das Fach „Signalverarbeitende Systeme“ im Sommersemester 2017 wurden den Studierenden des Masters „Business and Systems Engineering“ jeweils ein Projekte aufgegeben. Dieses Projekt beschäftigt sich mit einem fahrbaren Roboter mit Lego Mindstorms EV3. Dieser soll mit Matlab/Simulink gesteuert werden und mit einem Sensor ergänzt werden. Fährt das Fahrzeug auf ein Hindernis zu, soll es 5 cm davor eine automatische Notbremsung durchführen. Zudem soll der Sensor rotieren. Die Signalverarbeitungskette soll ebenfalls beschrieben und untersucht werden. Weitere Informationen gibt es im Hauptartikel: Signalverarbeitende Systeme SoSe2017


Der Primärsensor und seine Funktion

Abbildung 1: Der Ultraschallsensor

Der Sensor

Der Sensor für dieses Projekt ist der LEGO Mindstorms EV3 Ultrasonic Sensor (95652). In Abbildung 1 wird der Sensor dargestellt. Er misst Entfernungen zwischen 3 und 250 cm. Die Messgenauigkeit liegt bei +/- 1 cm. Der Sensor leuchtet dauerhaft beim Senden und blinkt beim Empfangen. Die EV3-Software erkennt den angeschlossenen Sensor automatisch und durch das passende Matlab/Simulink Supportpackage kann so auf den Sensor zugegriffen werden. Kurzgefasst besteht der Ultrasonic Sensor aus einem Sender und einem Empfänger. Der Sender emittiert die Ultraschallwellen, während der Empfänger die Ultraschallwellen empfängt. So können Objekte und deren Entfernung in cm gemessen werden. Der Ultrasonic misst die Strecke, indem er die Zeit auswertet, die er benötigt, um die Ultraschallwellen auszusenden und wieder zu empfangen.

LEGO Mindstorms EV3 Ultrasonic Sensor (95652) besteht unter anderem aus: [1]

  • einem STM8S103F3 Mikrocontroller
  • einem AW8T40-10OA00 Sender
  • einem AW8R40-10OA00 Empfänger

Der Sender und der Empfänger besitzen folgende technischen Daten: [2]

Eigenschaft AW8T40-10OA00 Sender AW8R40-10OA00 Empfänger
Mittenfrequenz 40.0±1.0KHz
Schalldruckpegel ≥110dB -
Empfindlichkeit - ≥-67dB
Strahlungswinkel 100°
Kapazität 1700±20%pF
Gehäuse Aluminum
Max. Ansteuerspannung 30Vrms
Arbeitstemperatur -20 to +70℃
Lagertemperatur -30 to +80℃


Abbildung 2: Funktionsweise des Sensors

Die Funktion

Im allgemeinem sind Ultraschallsensoren sehr zuverlässige und präzise Sensoren zum Messen der Entfernung von Hindernissen. Das Prinzip ist dem Sonar der Fledermäuse nachempfunden. Zunächst wird mit einem Ultraschallsender (Piezo Schallwandler) einige Ultraschallbursts (begrenzte Anzahl von Schwingungen fester Frequenz) erzeugt. Diese liegen im Bereich von 40kHz. Anschließend werden die von einem Hindernis reflektierten Schallwellen mit dem Ultraschallempfänger empfangen. Dazu misst ein Prozessor die Zeit, bis das Echo eintrifft. Diese Zeit ist proportional zur Entfernung des Hindernisses, da sich der Schall, in einem Medium wie Luft z.B. sich mit einer linearen Geschwindigkeit von ca. 300m/s bewegt. Das Echo legt dabei die doppelte Strecke zurück. So komm man auf eine Zeit von ca. 60µs pro cm. Damit lässt sich die Entfernung des Hindernisses durch teilen der gemessenen Zeit ermitteln. Abbildung 2 zeigt das Prinzip des Ultraschallsensors.

Als Ultraschall wird ein Schall mit Frequenzen oberhalb des Hörfrequenzbereichs des Menschen bezeichnet. Er umfasst Frequenzen ab etwa 16 kHz. Wie bereits erwähnt, besteht der Ultrasonic aus einem Sender und einem Empfänger. Im Sender befinden sich kleine Metallplatten, sogenannte piezoelektrische Elemente mit positiven und negativen Ladungen. Ändert sich die Spannung zwischen den Metallplatten, ziehen sich diese an und bewegen sich aufeinander zu bzw. werden voneinander weggedrückt. Somit sind im Sender sozusagen kleine Membrane die schwingen können. Dadurch können die Schallwellen erzeugt werde, die über die Luft übertragen werden. Treffen die Schallwellen nun auf ein undurchlässiges Gewebe, wird der Schall reflektiert. Der Rückschall der entsteht, trifft anschließend auf die Metallplatten. Dadurch wird die Platte bewegt und es ändert sich die Spannung. Diese Spannungsänderung wird im System aufgenommen und nun kann die Zeit zwischen des Zeitpunktes wann das Signal losgeschickt wurde und des Zeitpunktes wann es wieder zurück reflektiert wurde gemessen werden. Durch die Zeitdifferenz kann anschließend der Weg berechnet werden.


Die Rohsignale

Der Ultrasonic kann durch die Spannungsänderung die Zeit messen. Mit Hilfe der Geschwindigkeit der Ultraschallen und der Zeit kann die Distanz gemessen werden. Die Geschwindigkeit des Ultraschalls ist 343m/s. Damit die Geschwindigkeit in cm angegeben wird, wird die Einheit umgerechnet. Somit liegt nun die Geschwindigkeit bei 0,034cm/µs. Da bei dem Sensor der Weg der Ultraschallwellen die Strecke vom Sensor zum Gegenstand und vom Gegenstand zum Sensor zurück beinhaltet, muss dieser Wert verdoppelt werden. Um Anschließend mit dem Zeitwert die Strecke auszurechnen, muss dieser Wert wieder halbiert werden, da nur die Strecke zwischen dem Sensor und dem Gegenstand relevant ist.

Die Schallgeschwindigkeit des Ultrasonic: bzw.

Der Ultrasonic misst die Zeit wie folgt:


Da der Ultrasonic allerdings den Weg zum Objekt und wieder zurück berechnen muss, ergibt sich hieraus folgende Formel:

Der Ultrasonic misst die Strecke wie folgt:


Um den Zeitwert auszurechnen, muss jedoch der Wert wieder halbiert werden, da nur die Zeit vom Aussenden des Signals bis zum Objekt relevant ist.


Im folgendem wird ein Beispiel angegeben: Der Roboter ist vom Gegenstand entfernt und die Geschwindigkeit des Ultraschalls . Dann brauchen die Ultraschallwellen für die Strecke. Dies berechnet sich wie folgt:

Dieser Wert lässt sich nun wieder in die Strecke umrechnen:


Die Signalvorverarbeitung

Abbildung 3: Komponenten des Sensors

Messwerte und Vorverarbeitung

Beim Ultrasonic werden vorverarbeitet Daten als digitale Werte an den Brick weitergegeben. Der Ultrasonic besteht aus verschiedenen Komponenten, die in Abbildung 3 dargestellt werden. Der Ultrasonic besitzt zudem einen Timer. Dieser besitzt folgende Eigenschaften:

  • Fortgeschritten Timer-Steuerung: 16-bit, 4 CAPCOM Kanäle, 3 komplementäre Ausgänge, Totzeit Einfügung und flexible Synchronisierung
  • 16-bit Allzweck-Timer, mit 3 CAPCOM Kanälen (IC, OC or PWM)
  • 8-bit Basic Timer mit 8-bit Vorteiler
  • Auto wake-up Timer
  • Window watchdog und independent watchdog Timer

Aus den Rohdaten wird über diesen Timer die Zeit gemessen, die der Ultrasonic zwischen der Ausstrahlung der Ultraschallwellen und der Messung benötigt.


Kennlinie

Da sich die Werte des Sensors bei der Messung nach bestimmten Gegebenheiten ändern kann, bzw. nicht dem optimal entsprechen, ist eine Kennlinie wichtig, um diese Änderungen einzuplanen. Besonders beim Ultrasonic verhalten sich die Messungen je nach bestimmten Austrahlwinkel anders.

Die Kennlinie des Senders und des Empfängers sind in Abbildung 4 bzw. 5 zu sehen. Beide können bei einer Frequent von 40 KhZ am besten die Signale empfangen bzw. auswerten, da dort das Maximum liegt. Die Kennlinie bezüglich der Frequenzcharakteristik bezieht sich auf den Sender, siehe Abbildung 6. Es ist gut zu erkennen, dass bei einer Frequenz von 40 kHz die beste Objekterkennung erfolgen kann, da bei diesem Wert die Selbstimpedanz am geringsten ist. Anhand der Kennlinie des Austrahlwinkels, siehe Abbildung 7, lässt sich erkennen, dass der Ultrasonic beim Senden seiner Wellen ab einen Austrahlwinkel von +- 40% ungenauer wird bzw. das Objekt nicht mehr optimal detektiert werden kann.


Der Analog-Digital-Umsetzer

Abbildung 8: Verarbeitung

Die analogen Signale

Die analogen Signale werden so umgesetzt, dass zunächst der Sensor die Schallwellen aussendet und dann auf den Piezoempfänger zurücktreffen. Dieser steuert dann die Transistoren an. Es wird eine Spannung erzeugt und diese kann durch einen ADU in 10-Bit Werte umgesetzt werden. Abbildung 8 stellt die Verarbeitung dar. [3]


Der ADU und Alternativen

Es kommt ein 10-Bit Analog Digital Umwandler ADC1 zum Einsatz, der in dem STM8S103F3 Mikrocontroller ist. Er arbeitet nach dem Prinzip der sukzessiven Approximation. Er weist folgende Eigenschaften auf:

  • 5 externe mehrfach nutzbare Eingangskanäle
  • Eingangsspannungsbereich: 0 - VDD
  • Wandlungszeit: 14 Taktzyklen
  • Single, kontinuierliche und gepufferte kontinuierliche Umwandlungsmodi
  • Puffergröße (n x 10 bits) wobei n = Anzahl Eingangskanäle
  • Scan mode für single und kontinuierliche Umsetzung von einer Folge von Kanälen
  • Analoge watchdog Fähigkeit mit programmierebaren upper und lower Schwellenwerten
  • Analoger watchdog Unterbrecher
  • Externer Triggereingang
  • Trigger von TIM1 TRGO
  • End of conversion (EOC) Unterbechung

Der ADC tastet somit ab und gibt den Wert an, der dann über UART in cm wiedergegeben wird. Die Umwandlung dauert 14 Taktschläge. Er braucht 1 ms um einen Takt umzusetzen und kann also 1 Mio. Messewerte pro Sekunde umsetzten.


Der ADC1 besitzt 10 Bit, dies ist zudem seine maximale Größe. Alternativ würde auch ein 8-Bit ADU für den Ultrasonic ausreichen. Da die Auflösung in cm ist, werden nur 7-Bit benötigt, da nur maximal 256 Werte aufgenommen bzw. dargestellt werden können, da es auch keinen negativen Bereich gibt. Allerdings existiert durch den 10-Bit ADU ein größerer Messbereich. Somit sind die Werte einfacher zu kalibrieren. Somit sind die Vorteile des 10 Bit ADU, dass die Messunsicherheit abgefangen wird, da im Bereich der Messfehler (Bedienung des Menschen, ADC Messfehler in Auflösung etc.) nun ein 4-facher overscan vorliegt. Da nur eine Cm-Stückelung vorliegt kommt es zu einer „Überabtastung“ und die Messung wird genauer. Bei einem 16-Bit ADU wird die Messunsicherheit noch weiter geringer, jedoch dauert die Verarbeitung umso länger. Daher ist die 10-Bit Variante am besten geeignet für den Ultrasonic.


Das Bus-System

Abbildung 9: UART

EV3/UART

Das Verbindungssystem zwischen dem EV3 Brick und dem Ultrasonic entspricht dem Typ „EV3/UART“. Der EV3 hat einen UART Sendeempfänger für jeden Inputeingang und somit kann automatisch auf den Ultraschallsensor zugegriffen werden. Der Typ „EV3/UART“ ist für Sensoren, die primär für den EV3 entwickelt sind. Diese Sensoren sind etwas „smarter“ und senden nicht nur ihre gemessenen Daten, sondern senden zudem Informationen über ihre Ressourcen. Das heißt, dass der Ultrasonic Sensor ohne einen neu geschriebenen Treiber funktioniert. Es liegt eine Point to Point-Verbindung vor und es wird kein Bus zwischen Ultrasonic und Brick benötigt. Der Ultrasonic sendet bzw. empfängt seine Daten über UART, was über den Mikrokontroller geschieht. Dabei werden die Daten an den Ausgang Pin 6 gesendet. Siehe Abbildung 9 UART1_TX. Pin 5 ist der Eingang der Daten, siehe ART1_RX.


Fehler und Messunsicherheiten

Bei dem Ultrasonic können verschiedene Fehler bzw. Messunsicherheiten und Messabweichungen auftreten.


Es werden zunächst die Messabweichungen des Ultrasonics verglichen, indem die wahre Entfernung mit der gemessenen Entfernung verglichen wird. In der folgenden Tabelle sind die Ergebnisse eingetragen und in Abbildung 9 grafisch dargestellt.

Abbildung 9: Messabweichung
Wahre Entfernung
cm
Gemessenen Entfernung
cm
Messabweichung
cm
0 - -
1 3 2
2 3 1
3 3 -
4 5 1
5 6 1
6 6 -
7 7 -
8 8 -
9 9 -
10 10 -
15 15 -
20 20 -
25 25 -
30 30 -
35 35 -
40 40 -
45 45 -
50 50 -
55 55 -
60 60 -
65 64 1
70 70 -
75 74 1
80 79 1
85 84 1
90 90 -
95 94 1
100 100 -

Die Werte schwanken zu beginn nur minimal. Da die Werte in vollen cm Angaben angezeigt werden, wird es immer eine Ungenauigkeit von 0,5cm bzw. wird eine Differenz von 1cm sichtbar. Der Ultrasonic ist ab einem Wert von 5cm sehr genau und erst ab 65cm Entfernung zum Objekt, wird er vereinzelt ungenauer. Hier liegt wie erwähnt eine Ungenauigkeit von 0,5cm vor. Daher ist ein internes Fehlerkorrigieren oder ein Setzen des Nullpunkts nicht nötigt. Allerdings trifft bei den Messungen das Ultraschallsignal annähernd senkrecht auf das Hindernis auf, bei gekrümmten Hindernissen dürfte es hier zu größeren Messfehlern kommen.


Im folgenden werden verschiedenen Fehler bzw. Messunsicherheiten genannt:

  • So ist die Schallgeschwindigkeit von der Eigenschaft des Mediums und insbesondere von der Temperatur abhängig. Sie beträgt bei Raumtemperatur in Luft 343m/s.
  • Da der Ultrasonic mit vollen cm Werten arbeitet, kann es zu einem Fehler von +- 0,5cm kommen
  • Weil die Schallwellen kegelförmig sind, gibt das empfangene Echo nur Informationen über die Entfernung des Objekts zum Sender, aber nicht über die Winkelrichtung, in der das Objekt sich befindet.
  • Die Intensität der reflektierten Wellen hängt stark von der Oberflächenstruktur ab. (z.B. reflektiert ein Würfel stärker als eine Kugel oder Holz stärker als Flies). Es kann passieren, dass das empfangene Signal im allgemeinen Rauschen oder zwischen den Störungen durch anderweitige Reflektionen verschwindet.
  • Umweltfaktoren haben einen großen Einfluss auf die Messungen. Z. B. Raumtemperatur oder Luftturbulenzen.
  • Es können Scheinechos auftreten. So kann eine Welle auf mehreren Objekten reflektiert werden, bevor sie als Echo vom Sender empfangen wird. Diese Erscheinung hat zur Folge, dass die gemessene Entfernung des Hindernisses größer als die tatsächliche ist. Es kann auch vorkommen, dass Echos von weit entfernten Gegenständen während einer neuen Messung empfangen werden und so ihre Entfernung viel kleiner scheint, als sie tatsächlich ist.
  • Es ist schwer, den genauen Zeitpunkt des Empfangs eines Echos zu bestimmen. Diese Unsicherheit verursacht einen systematischen Fehler beim Messen der Entfernung.
  • Es kann passieren, dass nicht nur das angepeilte Objekt sondern auch Nachbarobjekte den Schall reflektieren. Dadurch registriert der Empfänger mehrere Wellen.
  • Zudem darf sich das Objekt nicht zu nah (< 3 cm) und zu weit (>250) entfernt vom Roboter befinden.


Der größte und entscheidendste Einflussfaktor der Schallgeschwindigkeit ist die Temperatur. Die Schallgeschwindigkeit nicht abhängig von der Schall-Amplitude, der Frequenz oder der Wellenlänge. Die Ausbreitungsgeschwindigkeit von Schall in Luft liegt bei:

Temperatur Luftdichte Luft-Kennimpedanz Schallgeschwindigkeit
0°C ρ0 = 1,293 kg/m3 Z0 = 428 N•s/m3 c0 = 331,5 m/s
15°C ρ15 = 1,225 kg/m3 Z15 = 417 N•s/m3 c15 = 340 m/s
20°C ρ20 = 1,204 kg/m3 Z20 = 413 N•s/m3 343 m/s
25°C ρ25 = 1,184 kg/m3 Z25 = 410 N•s/m3 346 m/s

In SI-Einheiten ist bei trockener Luft und 20°C die Schallgeschwindigkeit .

Einzelnachweise

  1. Datasheet STM8S103F3: http://www.st.com/content/ccc/resource/technical/document/datasheet/ce/13/13/03/a9/a4/42/8f/CD00226640.pdf/files/CD00226640.pdf/jcr:content/translations/en.CD00226640.pdf, zuletzt abgerufen am 17.06.2017
  2. Datasheet Sender und Empfänger: hhttp://www.quartz1.com/price/PIC/226N0120300.pdf, zuletzt abgerufen am 17.06.2017
  3. Datasheet Ultrasonic: https://www.lego.com/en-us/mindstorms/mindstormservices/firmware-download-page?assetid={90384455-611A-4258-BC6D-90CEA9CD5108}, zuletzt abgerufen am 17.06.2017