SDE WS25: berechneMittellinie.m: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Lukas.berkemeier@stud.hshl.de (Diskussion | Beiträge)
Lukas.berkemeier@stud.hshl.de (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
| '''Datum:''' || 28.10.2025   
| '''Datum:''' || 28.10.2025   
|-
|-
| '''System:'''|| Mtlab R2024b
| '''System:'''|| Matlab R2024b
|-
|-
| '''SVN-URL:'''|| <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/berechneMittellinie.m</code>
| '''SVN-URL:'''|| <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/m-files/berechneMittellinie.m</code>
|}
|}
= Einleitung/Funktion =
= Einleitung/Funktion =
Zeile 31: Zeile 31:
= Komponentenspezifikation =
= Komponentenspezifikation =


Die Distanz zur Mittellinie wird durch die Messwerte der Tracking-Sensoren ermittelt.  
Der Punkt der Mittellinie wird berechnet.
# Umrechnen der fünf Sensorwerte in den Positionswert mittels Normierung und gewichteter Mittelwertberechnung. Das Prinzip ist in [[AlphaBot Linienverfolgungsssensor]] beschrieben.  
# Umrechnung der gemessenen Position der Mittellinie von Millimeter in Meter
# Umrechnung des Wertebereichs in die Distanz
# Distanz Prisma - Infrarotsensoren = 65 mm bzw. 0.065 m
# Gegebenenfalls Vorzeichen nach Anforderung 2 anpassen
# Punkt PA - Punkt der Mittellinie im Alphabot-Koordinatensystem aus Distanz vom Prisma zu den Sensoren und gemessener Position der Mittellinie erstellen
# Ausgabe der Distanz
# Homogene Koordinatentransformation des Punktes PA mit Rotationswinkel der Fahrtrichtung des Alphabot und aktuellem Standort des Prismas im W-Kos als Translationsvektor


= Programmierung =
= Programmierung =
Zeile 74: Zeile 74:


= Modultest =
= Modultest =
<p align="justify">
 
Da es sich bei dieser Entwicklung um die eines einzelnen Moduls handelt, schließt der Modultest mit dem Testbericht die Entwicklung ab (vgl. Tabelle 2). Zum Testen des Moduls wird das Modul [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino messeMittellinie.ino] genutzt, indem die Werte zur Messung der Mittellinie im seriellen Monitor ausgegeben und mit der realen Messung verglichen werden.
Zum Testen des Moduls <code> berechneMittellinie.m </code> wurde die Funktion im Skript [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/m-files/TestberechneMittellinie.m TestberechneMittellinie.m] eingebettet und durch die Simulation getestet. Die Eingabedaten werden händisch eingegeben und der Berechnete Punkt in der Strecke visuell dargestellt.  
<br><br>
<br><br>
Systematisches Vorgehen beim Testen:
Systematisches Vorgehen beim Testen:
* Arduino des Alphabot mit USB-Kabel an einen PC anschließen
* TestberechneMittellinie.m öffnen
* Arduino IDE starten
* Werte für PW, positionMittellinie und Winkel wählen
* <code>messeMittellinie.ino</code> öffnen
* TestberechneMittellinie.m starten
* COM-Port des Alphabot auswählen
* Programm auf den Arduino des Alphabot hochladen
* Seriellen Monitor starten
* Sensoren kalibrieren
* Ausgegebene Werte mit realen Messwerten vergleichen
</p>
<br>
<br>
{| class="wikitable"
{| class="wikitable"
Zeile 99: Zeile 93:
|-
|-
| 1
| 1
| Messung: Alphabot zentral auf der weißen Linie (0 mm) <br>
| Berechnung für positive Werte der Mittellinienposition
[[Datei: messeMittellinieINOTest1.png|thumb|left|450px|Abb. 2: messeMittellinie.ino Testfall 1]]
|* PW = [4;0.41;0]
| Messwertarray der TR-Sensoren
* positionMittellinie = 20
[58 85 952 61 60]
* Winkel = 0
| 0 mm
| Mittellinienposition in Fahrtrichtung Links der eingezeichneten Mittellinie
| 1 mm
| [[Datei:berechneMittelliniepositiv.png|thumb|rigth|450px|Abb. 3: Berechnung der Mittellinie - positiv]]
| Lukas Berkemeier
| Lukas Berkemeier
| 13.10.2025
| 28.10.2025
|-
|-
| 2
| 2
| Messung: Alphabot rechts von der weißen Linie (24 mm) am festgelegten Ende <br>
| Berechnung für negative Werte der Mittellinienposition
[[Datei: messeMittellinieINOTest2.png|thumb|left|450px|Abb. 3: messeMittellinie.ino Testfall 2]]
| * PW = [4;0.41;0]
| Messwertarray der TR-Sensoren
* positionMittellinie = -20
[215 861 39 36 20]
* Winkel = 0
| 24 mm
| Mittellinienposition in Fahrtrichtung Rechts der eingezeichneten Mittellinie
| 24 mm
| [[Datei:berechneMittellinienegativ.png|thumb|rigth|450px|Abb. 4: Berechnung der Mittellinie - negativ]]
| Lukas Berkemeier
| Lukas Berkemeier
| 13.10.2025
| 28.10.2025
|-
|-
| 3
| 3
| Messung: Alphabot links von der weißen Linie (-24 mm) am festgelegten Ende <br>
| Berechnung für positive Werte der Mittellinienposition, Winkel 90°
[[Datei: messeMittellinieINOTest3.png|thumb|left|450px|Abb. 4: messeMittellinie.ino Testfall 3]]
| * PW = [4;0.41;0]
| Messwertarray der TR-Sensoren
* positionMittellinie = 20
[99 73 73 473 787]
* Winkel = 90
| -24 mm
| Mittellinienposition in Fahrtrichtung Rechts der eingezeichneten Mittellinie
| -23 mm
| [[Datei:berechneMittellinieneunzig.png|thumb|rigth|450px|Abb. 5: Berechnung der Mittellinie - 90° Winkel]]
| Lukas Berkemeier
| 13.10.2025
|-
| 4
| Keine weiße Linie vorhanden oder Linie außerhalb der festgelegten Spannweite
| Positionswert <800 oder >3200
| 50
| 50
| Lukas Berkemeier
| Lukas Berkemeier
| 13.10.2025
| 28.10.2025
|-
|-
|}
|}


= Fehlerbehebung =  
= Fehlerbehebung =
[[Datei: messeMittellinieErsterDurchlauf.png|thumb|right|450px|Abb. 5: messeMittellinie.ino mit gesamter Sensorspannweite]]
<p align="justify">
Nach der ersten Modulplanung sollte die Spannweite wie in Abbildung 5 von beiden äußeren Sensoren zentral über der Mitte der Mittellinie, mit 65 mm Spannweite genutzt werden. Mit der Funktion map() wurden den Positionswerten 350-3650 die Entfernungen  33 bis -33 mm zugewiesen. Bei dieser Spannweite kam es im Bereich der äußeren Sensoren immer zu Messungenauigkeiten.
Zur Fehlerbehebung wurde die Spannweite auf 48 mm (+-24 mm) verringert und den Positionswerten 800-3200 die Entfernungen 24 bis -24 mm zugewiesen.
Im Modultest wurden die Änderungen als passend bewiesen.
 
<br>
Eine weitere Fehlerursache ist die Kalibrierung bzw. die Beleuchtung der Sensoren. Je nach Beleuchtung können verschiedene Werte gemessen werden. Ein möglicher Schritt zur Fehlerbehebung wäre das Anbringen einer Beleuchtung für die Sensoren um die Beleuchtung möglichst konstant zu halten.
<br><br>
</p>


= Zusammenfassung =
= Zusammenfassung =
<p align="justify">
<p align="justify">
Das Modul <code>messeMittellinie.ino</code> wurde systematisch entworfen, getestet und dokumentiert. Sämtliche Anforderungen aus dem Arbeitspaket [[SDE WS25: AP 1.6 Messung der Mittellinie]] wurden erfüllt. Die Funktion kann eingesetzt werden, um die Distanz der Mitte der Mittellinie zum zentralen Sensor des Alphabot zu berechnen. In Zukunft kann das Modul verwendet werden um die Positionen der realen Mittellinienstreifen der Fahrbahn zu bestimmen.  
Das Modul <code>berechneMittellinie.m</code> wurde systematisch entworfen, getestet und dokumentiert. Sämtliche Anforderungen aus dem Arbeitspaket [[SDE WS25: AP 1.7 Berechnung der Mittellinienposition]] wurden erfüllt. Die Funktion kann eingesetzt werden um die Position der Mittellinie im Weltkoordinatensystem zu berechnen und dient als Grundlage um die reale Mittellinie der Fahrbahn in die Karte einzeichnen zu können.
</p>
</p>
= [[SDE WS25: AP 1.7 Berechnung der Mittellinienposition | Zurück zum Hauptartikel]]=
= [[SDE WS25: AP 1.7 Berechnung der Mittellinienposition | Zurück zum Hauptartikel]]=

Aktuelle Version vom 10. November 2025, 18:24 Uhr

Abb. 1: Berechnung der Mittellinie
Modul: berechneMittellinie.m
Revision: 10888
Autor: Lukas Berkemeier
Datum: 28.10.2025
System: Matlab R2024b
SVN-URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/m-files/berechneMittellinie.m

Einleitung/Funktion

Im Skript berechneMittellinie.m wird die Position der Mittellinie im Welt-Koordinatensystem berechnet um die reale Mittellinie auf der Fahrbahn darzustellen. Dazu wird die gemessene Position der Mittellinie aus SDE WS25: AP 1.6 Messung der Mittellinie vom Alphabot-Koordinatensystem in das Welt-Koordinatensystem transformiert. Die aktuelle Position des Prismas (PW) dient als Translationsvektor und der Winkel der Fahrtrichtung bzw. des Alphabot-Koordinatensystems zum Welt-Koordinatensystem dient als Rotationswinkel.

Funktionaler Systementwurf

Anforderungen

Die Anforderungen werden aus SDE WS25: AP 1.7 Berechnung der Mittellinienposition entnommen.

Technischer Systementwurf

Der Systementwurf entspricht dem Modulentwurf aus Abbildung 2.

Komponentenspezifikation

Der Punkt der Mittellinie wird berechnet.

  1. Umrechnung der gemessenen Position der Mittellinie von Millimeter in Meter
  2. Distanz Prisma - Infrarotsensoren = 65 mm bzw. 0.065 m
  3. Punkt PA - Punkt der Mittellinie im Alphabot-Koordinatensystem aus Distanz vom Prisma zu den Sensoren und gemessener Position der Mittellinie erstellen
  4. Homogene Koordinatentransformation des Punktes PA mit Rotationswinkel der Fahrtrichtung des Alphabot und aktuellem Standort des Prismas im W-Kos als Translationsvektor

Programmierung

Modultest

Zum Testen des Moduls berechneMittellinie.m wurde die Funktion im Skript TestberechneMittellinie.m eingebettet und durch die Simulation getestet. Die Eingabedaten werden händisch eingegeben und der Berechnete Punkt in der Strecke visuell dargestellt.

Systematisches Vorgehen beim Testen:

  • TestberechneMittellinie.m öffnen
  • Werte für PW, positionMittellinie und Winkel wählen
  • TestberechneMittellinie.m starten


ID Testfallbeschreibung Eingang Erwartetes Ergebnis Testergebnis Testperson Datum
Tabelle 1: Testbericht für den Modultest
1 Berechnung für positive Werte der Mittellinienposition * PW = [4;0.41;0]
  • positionMittellinie = 20
  • Winkel = 0
Mittellinienposition in Fahrtrichtung Links der eingezeichneten Mittellinie
Abb. 3: Berechnung der Mittellinie - positiv
Lukas Berkemeier 28.10.2025
2 Berechnung für negative Werte der Mittellinienposition * PW = [4;0.41;0]
  • positionMittellinie = -20
  • Winkel = 0
Mittellinienposition in Fahrtrichtung Rechts der eingezeichneten Mittellinie
Abb. 4: Berechnung der Mittellinie - negativ
Lukas Berkemeier 28.10.2025
3 Berechnung für positive Werte der Mittellinienposition, Winkel 90° * PW = [4;0.41;0]
  • positionMittellinie = 20
  • Winkel = 90
Mittellinienposition in Fahrtrichtung Rechts der eingezeichneten Mittellinie
Abb. 5: Berechnung der Mittellinie - 90° Winkel
Lukas Berkemeier 28.10.2025

Fehlerbehebung

Zusammenfassung

Das Modul berechneMittellinie.m wurde systematisch entworfen, getestet und dokumentiert. Sämtliche Anforderungen aus dem Arbeitspaket SDE WS25: AP 1.7 Berechnung der Mittellinienposition wurden erfüllt. Die Funktion kann eingesetzt werden um die Position der Mittellinie im Weltkoordinatensystem zu berechnen und dient als Grundlage um die reale Mittellinie der Fahrbahn in die Karte einzeichnen zu können.

Zurück zum Hauptartikel