SDE SoSe26: AP 1.3 Längeregelung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Jonas.von-doellen@stud.hshl.de (Diskussion | Beiträge)
Jonas.von-doellen@stud.hshl.de (Diskussion | Beiträge)
Zeile 25: Zeile 25:


== Umsetzungsidee==  
== Umsetzungsidee==  
Nach der Implementierung des Arbeitspaketes [[SDE SoSe26: AP 1.1 Spurerkennung mit der Pixy2.1|AP 1.1 Spurerkennung mit der Pixy 2.1]] berechnet das Subsystem über die Kamerawerte die Parameter Krümmung und Abstand zurück. Die Krümmung (K) wird dann von einem erwartenden Krümmungswert der geraden Spur(Kger) abgezogen, der Betrag davon wird linear mit einer Gain(a) von der default Motorleistung (Pdef) abgzogen und mit einer Ober und Untergrenze begrenzt. Der herauskommende Wert ist dann die angesteuerte Motorleistung (Pout).<br>
Nach der Implementierung des Arbeitspaketes [[SDE SoSe26: AP 1.1 Spurerkennung mit der Pixy2.1|AP 1.1 Spurerkennung mit der Pixy 2.1]] berechnet das Subsystem über die Kamerawerte die Parameter Krümmung und Abstand zurück. Die Krümmung (K) wird dann von einem erwartenden Krümmungswert der geraden Spur (Kger) abgezogen, der Betrag davon wird linear mit einer Gain (a) von der default Motorleistung (Pdef) abgzogen und mit einer Ober und Untergrenze begrenzt. Der herauskommende Wert ist dann die angesteuerte Motorleistung (Pout).<br>
<math>
<math>
Pout(K)=
Pout(K)=
Zeile 33: Zeile 33:
\end{cases}
\end{cases}
</math> <br>
</math> <br>
Getestet werden die Werte anschließend durch das Auslesen der Werte in dem Data Inspector aus Simulink und dabei das beobachtete Verhalten des Alphabots durch den Tester.  
Getestet werden die Werte anschließend durch das Auslesen der Werte in dem Data Inspector aus Simulink und dabei das beobachtete Verhalten des Alphabots durch den Tester.


== Anforderungen ==
== Anforderungen ==

Version vom 1. Juli 2026, 18:13 Uhr

Abb. 1: Das Bild-Koordinatensystem der Spurerkennung
Autor: Jonas von Döllen
Modul Mechatronik, Systementwicklung (Wahlpflichtprofil „Systems Design Engineering“), Sommersemester
Lehrveranstaltung: Praktikum Systementwicklung
Sprint: Bildbasierte Spurführung für autonomes Fahren
SVN-URL https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/AlphaBot/

Einleitung

Im Zuge des Systementwicklungspraktikums in dem Schwerpunkt System Design Engineering muss ein Fahrzeug durch eine künstlich erzeugte Fahrstrecke autonohm auf der rechten Fahrspur fahren. Genutzt wird in diesem zweiten Teil des Praktikums ein AlphaBot mit einer Pixy2.1 Kamera oben drauf. Hierfür soll nach dem aktuellen Sprint eine Längsregelung implementiert werden. In diesem Artikel wird die Dokumentation dazu aufgeführt.

Planung

Ist Zustand

Bei der vorherigen Gruppe ist das Fahrzeug mit konstanter Geschwindigkeit durch die gesamte Fahrspur gefahren.

Soll Zustand

Das Fahrzeug soll nun vor einer Kurve die Geschwindigkeit je nach Krümmung drosseln und nach der Kurve wieder beschleunigen

Umsetzungsidee

Nach der Implementierung des Arbeitspaketes AP 1.1 Spurerkennung mit der Pixy 2.1 berechnet das Subsystem über die Kamerawerte die Parameter Krümmung und Abstand zurück. Die Krümmung (K) wird dann von einem erwartenden Krümmungswert der geraden Spur (Kger) abgezogen, der Betrag davon wird linear mit einer Gain (a) von der default Motorleistung (Pdef) abgzogen und mit einer Ober und Untergrenze begrenzt. Der herauskommende Wert ist dann die angesteuerte Motorleistung (Pout).
Pout(K)={70,wenn |KKerp|>20,Pdefa|KKerp|,wenn |KKerp|20.
Getestet werden die Werte anschließend durch das Auslesen der Werte in dem Data Inspector aus Simulink und dabei das beobachtete Verhalten des Alphabots durch den Tester.

Anforderungen

Tabelle 1: Anforderung an die Längsregelung
Req. Beschreibung Priorität
1 Fahrzeug muss seine Geschwindigkeit vor einer Kurve sichtlich drosseln. (Motorpower 20% reduziert gegenüber der eingestellten Default Motorpower) drosseln 1
2 Fahrzeug muss seine Geschwindigkeit nach einer Kurve beschleunigen. (Motorpower min. 90% der eingestellten Default Motorpower) 1
3 Fahrzeug muss mit gedrosselter Geschwindigkeit die Kurve durchfahren. (Motorpower 20% gegenüber der eingestellten Default Motorpower reduziert) 1

Umsetzung

Die Umsetzung erfolgte über eine Änderung des Konstantenwertes. Die Motoren wurden jeweils mit einem grundsätzlchen Motorpowerwert von 100 angetrieben. Die ausgegebene Stellgröße wird dann an dem einen Motor abgezogen und an dem anderen addiert, wodurch eine Querregelung realisiert wird. Der grundsätzliche Wert für die Motorpower wird nun mit dem Betrag des Winkel von dem Vektor der Pixy Kamera (siehe Artikel:SDE SoSe26: AP 1.1 Spurerkennung mit der Pixy2.1) linear abgezogen und begrenzt. Die minimal Wert bei der Begrenzung ist hier 0 und der maximal Wert ist bei 20.

Tests

Tabelle 2: Testprotokoll
Req. Beschreibung Testergebnis Testperson Datum
1 Fahrzeug muss seine Geschwindigkeit vor einer Kurve sichtlich (Motorpower 20% reduziert gegenüber der eingestellten Default Motorpower) drosseln n.i.O. Jonas von Döllen 01.07.2026
2 Fahrzeug muss seine Geschwindigkeit nach einer Kurve beschleunigen (Motorpower min. 90% der eingestellten Default Motorpower) i.O. Jonas von Döllen 01.07.2026
3 Fahrzeug muss mit gedrosselter Geschwindigkeit die Kurve durchfahren (Motorpower 20% gegenüber der eingestellten Default Motorpower reduziert) n.i.O. Jonas von Döllen 01.07.2026

Für das Testen wurde der Alphabot einmal gefahren und mit Monitore and Tune ausgelesen. Hierbei wurden diese Ergebnisse erzielt (siehe untere Abbildung).

Abb. 5. Auswertung der Messergebnisse bei Geradenfahrt und bei einer Kurvenfahrt

Für ein bestehen der Ergebnisse müsste das PWM Signal vom Motorantrieb bei gerader Strecke der Mittelwert zwischen 135 und 150 PWM liegen (90% der max Default Motorleistung). Das tut es auch. Bei der Kurvenregelung müsste jedoch der Wert zwischen 70 und 120 PWM liegen. Der Mittelwert des Motorantriebes ist ca. bei 135 PWM. Zwar ist eine Drosselung festzustellen, diese ist jedoch außerhalb der Toleranzen. Bei der Kurvenfahrt sollte die Motorpower 20% reduziert gegenüber der eingestellten Default Motorpowernur sein. Die Kurvenfahrt konnte man anhand der Gierrate um die Z-Achse vom Gierratensensort aus AP 1.2 Messung und Verarbeitung der Gierrate die Kurve gut erkennen.

Bei der Fahrt ist dem Tester auch aufgefallen, dass es eine proportionale Abhängigkeit zwischen dem Winkel und der Regelabweichung kommt (siehe untere Abbildung)

Abb.6: Winkel und Regelabweichungs Abhängigkeit

Das bedeutet, wenn das Fahrzeug etwas weiter weg oder zu nach ist, regelt der Alphabot die Motorantriebspower und somit die Geschwindigkeit ebenfalls herunter. Das führt dazu, dass sich der Krümmungswert der gerade Spur (Kger) nicht konstant ist, sondern eine Abhängigkeit zum Abstand hat. Dadurch ist die genaue Drosselung schwierig wenn man den Betrag der Differenz von Kger und K nutzt zur Regelung.

Fehlerbehebung und Verbesserung

Bei dem Auslesen der Daten innerhalb des Data Inspectors des Simulinkmodells während des Fahrens ist eine nicht konstanter Winkel festzustellen (Abschnitt Test). Diese Abhängigkeit wird vermutet, da direkt die Werte von der Kamera ausgelesen werden und es keine Perspektiventransformation vorhanden ist. Diese sollte in dem SDE SoSe26: AP 1.1 Spurerkennung mit der Pixy2.1 vielleicht berücksichtigt werden oder zusätzlich implementiert werden.

In der Zukunft falls man die Abhängigkeit des Winkels vom Abstand trennen kann, ist das Verfahren möglich und sollte nochmals implentiert werden.


→ zurück zum Hauptartikel: Bildbasierte Spurführung für autonomes Fahren
→ zurück zum Artikel: SDE-Team 2026/27