ArduMower: Perimeterschleife: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(48 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:
Integration des Leitdrahtes und des Leitdrahtempfängers
Integration des Leitdrahtes und des Leitdrahtempfängers


Verarbeitung des Signals am Empfänger
= Anforderung =
 
{|border="1"
! width="10%" | Spezifikations-ID
! width="10%" | Anforderungs-ID
! width="10%" | Anforderungs-Titel
! width="10%" | Beschreibung der Spezifikation
! width="10%" | Teilaufgaben
|-
|0080
|REQ10.2200
|Leitdraht
|Für die Ortung und Navigation kann eine Leitdrahtlösung verwendet werden.
|
  - Senderbox und Empfänger in Betrieb nehmen
  - Komponenten Zusammenbringung und Test
  - Integration des Senders und Empfängers
  - Erfassen der Signale innerhalb und ausßerhalb des Leitdrahtes
  - Softwaresimulation in Matlab
  - Softwareumsetzung in Matlab/Simulink
  - Reparatur und erneute Verlegung der Perimeterschleife
  - Matched Filter entwickeln in Matlab/Simulink
|-
|}


= Einleitung =
= Einleitung =


Eine Perimeterschleife ist wie ein virtueller Zaun, der den Roboter stoppt, sobald er sich außerhalb der Schleife befindet. Man installiert die Perimterschleife am Rand eines zu mähenden Feldes und sendet mit dem Sender ein Signal hindurch, welches wiederum von dem Empfänger im Roboter erkannt wird. Umso näher der Roboter der Perimeterschleife kommt, umso kleiner ist die Entfernung zwischen der Perimeterschleife und dem Empfänger. Folglich ist die Signalstärke umso größer, wenn sich der ArduMower nah an der Perimeterschleife befindet. Bei überschreiten der Perimeterschleife ändert sich die Polarität des Signals. Ist der ArduMower innerhalb der Perimterschleife empfängt er ein positives Signal und ist der ArduMower außerhalb der Perimeterschleife, so ist das Signal negativ.
Eine Perimeterschleife ist wie ein virtueller Zaun, der den Roboter stoppt, sobald er sich außerhalb der Schleife befindet. Man installiert die Perimterschleife am Rand eines zu mähenden Feldes und sendet mit einem Sender ein erzeugtes Signal hindurch, welches wiederum von dem Empfänger am ArduMower erkannt wird. Umso näher der Roboter der Perimeterschleife kommt, umso kleiner ist die Entfernung zwischen der Perimeterschleife und dem Empfänger. Folglich ist die Signalstärke umso größer, wenn sich der ArduMower nah an der Perimeterschleife befindet. Bei Überschreiten der Perimeterschleife ändert sich die Polarität des Signals. Ist der ArduMower innerhalb der Perimeterschleife empfängt er ein positives Signal und ist der ArduMower außerhalb der Perimeterschleife, so ist das Signal negativ.
 


= Verwendete Bauteile =
= Verwendete Bauteile =
Zeile 33: Zeile 55:
== Empfänger ==
== Empfänger ==


Als Gegenstück zum Senderaufbau ist ein Empfänger in dem ArduMower untergebracht. Der Sender funktioniert nach einem bestimmten Prinzip:
Als Gegenstück zum Senderaufbau ist ein Empfänger an dem ArduMower untergebracht. Der Sender funktioniert nach einem bestimmten Prinzip:


1. Eine Spule empfängt das Signal
1. Eine Spule empfängt das Signal
Zeile 39: Zeile 61:
2. Das empfangene Signal wird mithilfe eines Operationsverstärkers verstärkt
2. Das empfangene Signal wird mithilfe eines Operationsverstärkers verstärkt


3. Der Arduino wandelt das Singal mithilfe des AD Wandlers in ein digitales Signal
3. Der Arduino wandelt das Signal mithilfe des A/D Wandlers in ein digitales Signal


4. Das digitale Signal wird mit einem Digitalfilter gefiltert
4. Das digitale Signal wird mit einem Digitalfilter gefiltert


5. Das [[Matched-Filter]] gibt den entsprechenden wert aus, ob sich ArduMower innerhalb oder außerhalb befindet
5. Das [[Matched-Filter]] gibt den entsprechenden Wert aus, also ob sich ArduMower innerhalb oder außerhalb befindet


[[Datei:Matched filter principle.png|x200px| Abb.1: Perimeterschleife Signal]]
[[Datei:Matched filter principle.png|x200px| Abb.1: Perimeterschleife Signal]]


Das Ausgangssignal wird durch das Umgebungsrauschen so gestört, sodass das Signal nur noch sehr schlecht interpretiert werden kann. Aus diesem Grund sendet der Sender das ausgewählte digitale Signal, welches oben in der Abbildung 1 zu sehen ist. Diese Signal wird mit dem Umgebungsrauschen überlagert und muss nun gefiltert werden. Dies wird mit dem [[Matched-Filter]] gemacht. Nach Anwenden des Matched-Filter erhält man ein Signal, was entweder Pieks ins Positive oder Negative zur Folge hat. Anhand dieses Ergebnisses lässt sich einfach bestimmen, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet.
Das Ausgangssignal wird durch das Umgebungsrauschen so gestört, sodass es nur noch sehr schlecht interpretiert werden kann. Aus diesem Grund sendet der Sender das ausgewählte digitale Signal, welches oben in der Abbildung 1 zu sehen ist. Dieses Signal wird mit dem Umgebungsrauschen überlagert und muss nun gefiltert werden. Dies wird mit dem [[Matched-Filter]] gemacht. Nach Anwenden des Matched-Filter erhält man ein Signal, was entweder Piecks ins Positive oder Negative zur Folge hat. Anhand dieses Ergebnisses lässt sich einfach bestimmen, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet.


= Projektdurchführung / Versuchsaufbau =
= Projektdurchführung / Versuchsaufbau =




Zur Inbetriebenahme der Perimeterschleife wurde ein Versuchsaufbau aufgestellt. In der Abbildung 2 ist der Testaufbau zu sehen. Als Ersatz für den Akku wird ein Netzgerät verwendet, welches eine Spannung von 24V an das Sendermodul liefert. Am Anschluss an die 24V Spannung befindet sich im Sendermodul(Abb.1) ein Stromsensor Bord. Anschließend wird mithilfe eines DC-DC Spannungswandlers die Spannung von 24V auf rund 10V umgewandelt. Ein Arduino Nano erzeugt dann ein festgelegtes Signal, welches von in der Abbildung 3 zu sehen ist. Zuletzt wird das erzeugte Signal mithilfe eines Motortreibers verstärkt und über den Ausgang an die Perimeterschleife weitergegeben.
Zur Inbetriebnahme der Perimeterschleife wurde ein Versuchsaufbau aufgestellt. In der Abbildung 2 ist der Testaufbau zu sehen. Als Ersatz für den Akku wird ein Netzgerät verwendet, welches eine Spannung von 24V an das Sendermodul liefert. Am Anschluss an die 24V Spannung befindet sich das Sendermodul (Abb.1). Anschließend wird mithilfe eines DC-DC Spannungswandlers die Spannung von 24V auf rund 10V umgewandelt. Ein Arduino Nano erzeugt dann ein festgelegtes Signal, welches von in der Abbildung 3 zu sehen ist. Zuletzt wird das erzeugte Signal mithilfe eines Motortreibers verstärkt und über den Ausgang an die Perimeterschleife weitergegeben.


Der Empfänger wird im ArduMower mit dem Arduino an der Hauptplatine betrieben. In unserem Testaufbau dient ein Arduino Mega als Spannungsquelle für den Empfänger und auf dem Oszilloskop ist das empfangene Signal zu erkennen. Das Signal ist jedoch noch ungefiltert und muss noch mit dem Matched-Filter gefiltert werden. Unter einem Matched-Filter oder auch Optimalfilter versteht man in der digitalen Signal Verarbeitung einen Filter, der das Signal-Rausch Verhältnis optimiert
Der Empfänger wird im ArduMower mit dem Arduino an der Hauptplatine betrieben. In unserem Testaufbau dient ein Arduino Mega als Spannungsquelle für den Empfänger und auf dem Oszilloskop ist das empfangene Signal zu erkennen. Das Signal ist jedoch noch ungefiltert und muss noch mit dem Matched-Filter gefiltert werden. Unter einem Matched-Filter oder auch Optimalfilter versteht man in der digitalen Signalverarbeitung einen Filter, der das Signal-Rausch Verhältnis optimiert.


<gallery>
<gallery>
Zeile 62: Zeile 84:


= Umsetzung und Erklärung des Matched-Filters =
= Umsetzung und Erklärung des Matched-Filters =


*[[Matched-Filter]]
*[[Matched-Filter]]


= Meilensteine =
= Meilensteine =
Zeile 86: Zeile 106:


- Perimeterschleife reparieren
- Perimeterschleife reparieren
- Look-Up Table für die Mähumgebung angepasst


== Ausstehend ==
== Ausstehend ==


+ Perimeterschleife neu verlegen
- Perimeterschleife nach Reparatur neu verlegen


+ Außentest Ergebnisse dokumentieren
- Integration des Senders in Ladestation


+ Fehlerbehebung
Die Perimeterschleife wurde noch nicht neu verlegt, da sie für Testzwecke auf anderen Untergründen bisher genutzt wurde. Sie soll erst verlegt werden, wenn der ArduMower fähig ist, die Rasenfläche autonom zu mähen.
Der Sender für das Signal der Perimeterschleife ist ebenfalls noch nicht integriert, da die Ladestation erst kurz vor Ende des Projekts fertiggestellt wurde.
 
Das erneute Verlegen und die Integration des Senders in der Ladestation sind kleine Aufgaben, die innerhalb eines Praktikumtermins durchgeführt werden können. Für diese Aufgaben sind keine Probleme mehr zu lösen.


= Bewertung des Fortschritts =
= Bewertung des Fortschritts =


Die zum Meilenstein zu erreichenden Punkte wurden im Projektrahmen umgesetzt. Nur die Neuverlegung der Perimeterschleife war für den Meilenstein 2 nicht vorgesehen. Somit lässt sich sagen, dass 85% des Meilensteins 2 erledigt wurden.Bis zum Meilenstein 3 sollen die ausstehenden Punkte der Reihe nach erledigt werden. Zuerst wird die Perimeterschleife repariert und neu verlegt und anschließend wird softwareseitig die Signalverarbeitung mithilfe von Matlab umgesetzt.
Die zum Meilenstein zu erreichenden Punkte wurden im Projektrahmen umgesetzt. Lediglich ist die Neuverlegung der Schleife nicht umgesetzt worden, da sie für Testzwecke noch verwendet werden muss. Außerdem ist hinzu nur die Integration der Senderbox in der Ladestation durchzuführen. Somit lässt sich sagen, dass 90% des Meilensteins 4 erledigt wurden. Es ist möglich geworden, anhand eines Matched-Filters die Position des ArduMowers in Bezug auf die Perimeterschleife zu identifizieren. Zusätzlich wird mit einer Look-Up Table auf den Abstand zu Perimeterschleife geschlossen.


= Software =
= Software =


Das Signal, welches am Empfänger erkannt wird, soll mithilfe eines Matched-Filters gefiltert werden und anschließend interpretiert werden. Hierzu wird ein bestimmter Schwellwert ins Positive und ins negative festgelegt. Wird dieser Wert überschritten, sendet das Programm an die Fahrstrategie, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet. Diese Software soll mithilfe von Matlab/Simulink umgesetzt werden.
Das Signal, welches am Empfänger erkannt wird, soll mithilfe eines Matched-Filters gefiltert werden und anschließend interpretiert werden. Hierzu wird ein bestimmter Schwellwert ins Positive und ins Negative festgelegt. Wird dieser Wert überschritten, sendet das Programm an die Fahrstrategie, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet. Diese Software soll mithilfe von Matlab/Simulink umgesetzt werden. Die Software kann in dem Artikel [[Matched-Filter]] eingesehen werden.


= Zusammenfassung =
= Zusammenfassung =


Zusammenfassend lässt sich sagen, dass bei der Signalverarbeitung der Perimeterschleife einige Schwierigkeiten auftraten, die jedoch im nächsten Semester behoben werden können. Anhand dieses Themas werden die Grundlagen der Elektrotechnik, der Informatik und der digitalen Signalverarbeitung erweitert.


Zusammenfassend lässt sich sagen, dass bei der Signalverarbeitung der Perimeterschleife einige Schwierigkeiten auftraten, die jedoch im Laufe des Projektes behoben werden konnten. Der ArduMower kann mithilfe der Empfängerspule, die vorne an ihm angebracht ist, die Entfernung zur Perimeterschleife zuverlässig erfassen. Die Erstellung eines Matched-Filters mit dem S-function Builder Blocks bei Simulink erweist sich nach einer angemessen Einarbeitungszeit als einfach umzusetzen. Anhand der Weiterverarbeitung von Signalen werden die Grundlagen der Elektrotechnik, der Informatik und der digitalen Signalverarbeitung erweitert.
= Ausblick =


In Zukunft müssen lediglich die Perimeterschleife auf der zu mähenden Rasenfläche verlegt und die Senderbox in der Ladestation untergebracht werden. Jedoch muss die Look-Up Table neu angelegt werden, wenn sich die Perimeterschleife an einem anderen Ort befindet, da die Signalstärke je nach Umgebung unterschiedlich ist. In unserem Projekt wurden die Signalstärken der Perimeterschleife in Abhängigkeit zu dem Abstand festgehalten und daraus eine Funktion erstellt. Diese Funktion würde jedoch je nach Umgebung anders aussehen, da die Signale durch Umgebungsrauschen größer bzw. kleiner, als in der Look-Up Table hinterlegt, sein können. Eine automatische Kalibrierung ist nach aktuellem Stand noch nicht möglich.


----
----
→ zurück zum Hauptartikel: [[Projekt_ArduMower|Projekt ArduMower]]
→ zurück zum Hauptartikel: [[Projekt_ArduMower|Projekt ArduMower]]

Aktuelle Version vom 27. Februar 2018, 15:52 Uhr


Autoren: Phillip Blunck, Marius Schaffer

Betreuer: Prof. Schneider, Prof. Göbel


Aufgabe

Integration des Leitdrahtes und des Leitdrahtempfängers

Anforderung

Spezifikations-ID Anforderungs-ID Anforderungs-Titel Beschreibung der Spezifikation Teilaufgaben
0080 REQ10.2200 Leitdraht Für die Ortung und Navigation kann eine Leitdrahtlösung verwendet werden.
 - Senderbox und Empfänger in Betrieb nehmen 
 - Komponenten Zusammenbringung und Test
 - Integration des Senders und Empfängers
 - Erfassen der Signale innerhalb und ausßerhalb des Leitdrahtes
 - Softwaresimulation in Matlab
 - Softwareumsetzung in Matlab/Simulink
 - Reparatur und erneute Verlegung der Perimeterschleife
 - Matched Filter entwickeln in Matlab/Simulink

Einleitung

Eine Perimeterschleife ist wie ein virtueller Zaun, der den Roboter stoppt, sobald er sich außerhalb der Schleife befindet. Man installiert die Perimterschleife am Rand eines zu mähenden Feldes und sendet mit einem Sender ein erzeugtes Signal hindurch, welches wiederum von dem Empfänger am ArduMower erkannt wird. Umso näher der Roboter der Perimeterschleife kommt, umso kleiner ist die Entfernung zwischen der Perimeterschleife und dem Empfänger. Folglich ist die Signalstärke umso größer, wenn sich der ArduMower nah an der Perimeterschleife befindet. Bei Überschreiten der Perimeterschleife ändert sich die Polarität des Signals. Ist der ArduMower innerhalb der Perimeterschleife empfängt er ein positives Signal und ist der ArduMower außerhalb der Perimeterschleife, so ist das Signal negativ.

Verwendete Bauteile


Funktionsweise

Sender mit Perimeterschleife

Allgemein besteht der Aufbau der Perimeterschleife aus dem Sender, der direkt mit der eigentlichen Perimeterschleife verbunden ist und der Perimeterschleife.

1. Der Sender erzeugt ein Ausgangssignal mithilfe eines Arduino Nano(mit 3kHz)

2. Das Signal wird mithilfe eines Motortreibers verstärkt und am Ausgang mit der Perimeterschleife verbunden

Empfänger

Als Gegenstück zum Senderaufbau ist ein Empfänger an dem ArduMower untergebracht. Der Sender funktioniert nach einem bestimmten Prinzip:

1. Eine Spule empfängt das Signal

2. Das empfangene Signal wird mithilfe eines Operationsverstärkers verstärkt

3. Der Arduino wandelt das Signal mithilfe des A/D Wandlers in ein digitales Signal

4. Das digitale Signal wird mit einem Digitalfilter gefiltert

5. Das Matched-Filter gibt den entsprechenden Wert aus, also ob sich ArduMower innerhalb oder außerhalb befindet

Abb.1: Perimeterschleife Signal

Das Ausgangssignal wird durch das Umgebungsrauschen so gestört, sodass es nur noch sehr schlecht interpretiert werden kann. Aus diesem Grund sendet der Sender das ausgewählte digitale Signal, welches oben in der Abbildung 1 zu sehen ist. Dieses Signal wird mit dem Umgebungsrauschen überlagert und muss nun gefiltert werden. Dies wird mit dem Matched-Filter gemacht. Nach Anwenden des Matched-Filter erhält man ein Signal, was entweder Piecks ins Positive oder Negative zur Folge hat. Anhand dieses Ergebnisses lässt sich einfach bestimmen, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet.

Projektdurchführung / Versuchsaufbau

Zur Inbetriebnahme der Perimeterschleife wurde ein Versuchsaufbau aufgestellt. In der Abbildung 2 ist der Testaufbau zu sehen. Als Ersatz für den Akku wird ein Netzgerät verwendet, welches eine Spannung von 24V an das Sendermodul liefert. Am Anschluss an die 24V Spannung befindet sich das Sendermodul (Abb.1). Anschließend wird mithilfe eines DC-DC Spannungswandlers die Spannung von 24V auf rund 10V umgewandelt. Ein Arduino Nano erzeugt dann ein festgelegtes Signal, welches von in der Abbildung 3 zu sehen ist. Zuletzt wird das erzeugte Signal mithilfe eines Motortreibers verstärkt und über den Ausgang an die Perimeterschleife weitergegeben.

Der Empfänger wird im ArduMower mit dem Arduino an der Hauptplatine betrieben. In unserem Testaufbau dient ein Arduino Mega als Spannungsquelle für den Empfänger und auf dem Oszilloskop ist das empfangene Signal zu erkennen. Das Signal ist jedoch noch ungefiltert und muss noch mit dem Matched-Filter gefiltert werden. Unter einem Matched-Filter oder auch Optimalfilter versteht man in der digitalen Signalverarbeitung einen Filter, der das Signal-Rausch Verhältnis optimiert.

Umsetzung und Erklärung des Matched-Filters

Meilensteine

Erledigt

- Erstinbetriebnahme des Senders und Empfängers

- Test mit 13,3 Ohm und 10 Ohm Widerständen

- Sichtprüfung der Perimeterschleife

- Verarbeitung der Perimeterdaten

- Softwareverarbeitungsplan

- Matlab Simulation

- Software Umsetzung mit Simulink

- Perimeterschleife reparieren

- Look-Up Table für die Mähumgebung angepasst

Ausstehend

- Perimeterschleife nach Reparatur neu verlegen

- Integration des Senders in Ladestation

Die Perimeterschleife wurde noch nicht neu verlegt, da sie für Testzwecke auf anderen Untergründen bisher genutzt wurde. Sie soll erst verlegt werden, wenn der ArduMower fähig ist, die Rasenfläche autonom zu mähen. Der Sender für das Signal der Perimeterschleife ist ebenfalls noch nicht integriert, da die Ladestation erst kurz vor Ende des Projekts fertiggestellt wurde.

Das erneute Verlegen und die Integration des Senders in der Ladestation sind kleine Aufgaben, die innerhalb eines Praktikumtermins durchgeführt werden können. Für diese Aufgaben sind keine Probleme mehr zu lösen.

Bewertung des Fortschritts

Die zum Meilenstein zu erreichenden Punkte wurden im Projektrahmen umgesetzt. Lediglich ist die Neuverlegung der Schleife nicht umgesetzt worden, da sie für Testzwecke noch verwendet werden muss. Außerdem ist hinzu nur die Integration der Senderbox in der Ladestation durchzuführen. Somit lässt sich sagen, dass 90% des Meilensteins 4 erledigt wurden. Es ist möglich geworden, anhand eines Matched-Filters die Position des ArduMowers in Bezug auf die Perimeterschleife zu identifizieren. Zusätzlich wird mit einer Look-Up Table auf den Abstand zu Perimeterschleife geschlossen.

Software

Das Signal, welches am Empfänger erkannt wird, soll mithilfe eines Matched-Filters gefiltert werden und anschließend interpretiert werden. Hierzu wird ein bestimmter Schwellwert ins Positive und ins Negative festgelegt. Wird dieser Wert überschritten, sendet das Programm an die Fahrstrategie, ob sich der ArduMower innerhalb oder außerhalb der Perimeterschleife befindet. Diese Software soll mithilfe von Matlab/Simulink umgesetzt werden. Die Software kann in dem Artikel Matched-Filter eingesehen werden.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass bei der Signalverarbeitung der Perimeterschleife einige Schwierigkeiten auftraten, die jedoch im Laufe des Projektes behoben werden konnten. Der ArduMower kann mithilfe der Empfängerspule, die vorne an ihm angebracht ist, die Entfernung zur Perimeterschleife zuverlässig erfassen. Die Erstellung eines Matched-Filters mit dem S-function Builder Blocks bei Simulink erweist sich nach einer angemessen Einarbeitungszeit als einfach umzusetzen. Anhand der Weiterverarbeitung von Signalen werden die Grundlagen der Elektrotechnik, der Informatik und der digitalen Signalverarbeitung erweitert.

Ausblick

In Zukunft müssen lediglich die Perimeterschleife auf der zu mähenden Rasenfläche verlegt und die Senderbox in der Ladestation untergebracht werden. Jedoch muss die Look-Up Table neu angelegt werden, wenn sich die Perimeterschleife an einem anderen Ort befindet, da die Signalstärke je nach Umgebung unterschiedlich ist. In unserem Projekt wurden die Signalstärken der Perimeterschleife in Abhängigkeit zu dem Abstand festgehalten und daraus eine Funktion erstellt. Diese Funktion würde jedoch je nach Umgebung anders aussehen, da die Signale durch Umgebungsrauschen größer bzw. kleiner, als in der Look-Up Table hinterlegt, sein können. Eine automatische Kalibrierung ist nach aktuellem Stand noch nicht möglich.


→ zurück zum Hauptartikel: Projekt ArduMower