Datenübertragung zwischen PC und dSPACE Karte: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 31: Zeile 31:
== Aktuelle Stand des Programms ==
== Aktuelle Stand des Programms ==


Zunächst wurde der aktuelle Stand des Programms vom Wintersemester 19/20 ermittelt. Hierbei konnte abweichend festgestellt werden, dass lediglich das Spurpolynom mit den Parametern a, b, c übertragen wird. Weder das Programm noch die Funktion zum Übertragen der Daten von Herrn Assulai und Herrn Di Lillo berücksichtigen die Übertragung weiterer Daten. Daher wird es die Aufgabe in diesem Semester sein, die Kommunikation auf die restlichen Daten, welche in Abbildung zu sehen sind, auszuweiten.
Zunächst wurde der aktuelle Stand des Programms vom Wintersemester 19/20 ermittelt. Hierbei konnte abweichend festgestellt werden, dass lediglich das Spurpolynom mit den Parametern a, b, c übertragen wird. Weder das Programm noch die Funktion zum Übertragen der Daten von Herrn Assulai und Herrn Di Lillo berücksichtigen die Übertragung weiterer Daten. Daher wird es die Aufgabe in diesem Semester sein, die Kommunikation auf die restlichen Daten, welche in der nachfolgenden Tabelle zu sehen sind, auszuweiten.
 
====PC zu dSpace====
{| class="wikitable"
|-
! scope="col"| Signalname
! scope="col"| Datentyp
! scope="col"| Beschreibung
|-
! scope="row"| a
| float32 (4 Byte)
| Fahrspurparameter
|-
! scope="row"| b
| float32 (4 Byte)
| Fahrspurparameter
|-
! scope="row"| c
| float32 (4 Byte)
| Fahrspurparameter
|-
! scope="row"| lane_asign
| bool (1 Byte)
| Spurzuordnung: 1 = rechte Fahrspur, 0 = linke Fahrspur
|-
! scope="row"| stop_insight
| bool (1 Byte)
| 1 = Stopplinie erkannt, 0 = keine Stopplinie erkannt
|-
! scope="row"| stop_distance
| float32 (4 Byte)
| Entfernung zur Stopplinie
|-
! scope="row"| n_objekte
| uint8 (1 Byte)
| Anzahl relevanter Objekte (maximal 5)
|-
! scope="row"| number[n_objekte]
| uint8 (1 Byte)
| Objektzähler
|-
! scope="row"| x_0[n_objekte]
| float32 (4 Byte)
| x-Koordinate des Objektmittelpunktes (mitte, vorn)
|-
! scope="row"| y_0[n_objekte]
| float32 (4 Byte)
| y-Koordinate des Objektmittelpunktes (mitte, vorn)
|-
! scope="row"| b[n_objekte]
| float32 (4 Byte)
| Objektbreite
|-
! scope="row"| t[n_objekte]
| float32 (4 Byte)
| Objekttiefe
|-
! scope="row"| alpha[n_objekte]
| float32 (4 Byte)
| Objektausrichtung
|-
! scope="row"| v[n_objekte]
| float32 (4 Byte)
| Betrag des Geschwindigkeitsvektors
|-
! scope="row"| plausible[n_objekte]
| uint8 (1 Byte)
| Vertrauenswert für das Objekt in Prozent ( 0 = minimale Vertrauen, 100 = maximale Vertrauen)
|-
! scope="row" colspan="2"| Gesamtgröße des Datenpakets
| 149 Byte
|}





Version vom 24. Oktober 2020, 12:37 Uhr

Autor: Hagen Heuer und Tim Kruse
Betreuer: Prof. Dr. Mirek Göbel


Einleitung

Der folgende Artikel beschäftigt sich mit der Kommunikation zwischen dem PC und der dSPACE Karte. Die Kommunikation erfolgt hierbei mittels einer RS232-Schnittstelle. Über diese Schnittstelle wird unteranderem das Spurpolynom sowie Lidar-Daten versendet. Eine genaue Beschreibung, welche Daten übertragen werden, ist in Abbildung X zu sehen. Hier werden zudem die Datentypen genannt.
Für die Bearbeitung der Aufgabe wird zunächst der aktuelle Stand des Fahrzeugs ermittelt, da bereits eine RS232 Kommunikation besteht. Diese wird zunächst getestet. Anschließend wird die Struktur des C-Programm überarbeitet, da Funktionen des C-Programms des Vorsemesters ausgelagert werden. Im letzten Schritt soll die Datenübertragungsrate nach Möglichkeit erhöht werden und fehlende Daten übertragen werden. Diese Teilaufgabe wird durch Funktionstest abgeschlossen.

Anforderungen

Aktuelle Stand des Programms

Zunächst wurde der aktuelle Stand des Programms vom Wintersemester 19/20 ermittelt. Hierbei konnte abweichend festgestellt werden, dass lediglich das Spurpolynom mit den Parametern a, b, c übertragen wird. Weder das Programm noch die Funktion zum Übertragen der Daten von Herrn Assulai und Herrn Di Lillo berücksichtigen die Übertragung weiterer Daten. Daher wird es die Aufgabe in diesem Semester sein, die Kommunikation auf die restlichen Daten, welche in der nachfolgenden Tabelle zu sehen sind, auszuweiten.

PC zu dSpace

Signalname Datentyp Beschreibung
a float32 (4 Byte) Fahrspurparameter
b float32 (4 Byte) Fahrspurparameter
c float32 (4 Byte) Fahrspurparameter
lane_asign bool (1 Byte) Spurzuordnung: 1 = rechte Fahrspur, 0 = linke Fahrspur
stop_insight bool (1 Byte) 1 = Stopplinie erkannt, 0 = keine Stopplinie erkannt
stop_distance float32 (4 Byte) Entfernung zur Stopplinie
n_objekte uint8 (1 Byte) Anzahl relevanter Objekte (maximal 5)
number[n_objekte] uint8 (1 Byte) Objektzähler
x_0[n_objekte] float32 (4 Byte) x-Koordinate des Objektmittelpunktes (mitte, vorn)
y_0[n_objekte] float32 (4 Byte) y-Koordinate des Objektmittelpunktes (mitte, vorn)
b[n_objekte] float32 (4 Byte) Objektbreite
t[n_objekte] float32 (4 Byte) Objekttiefe
alpha[n_objekte] float32 (4 Byte) Objektausrichtung
v[n_objekte] float32 (4 Byte) Betrag des Geschwindigkeitsvektors
plausible[n_objekte] uint8 (1 Byte) Vertrauenswert für das Objekt in Prozent ( 0 = minimale Vertrauen, 100 = maximale Vertrauen)
Gesamtgröße des Datenpakets 149 Byte


Im nächsten Schritt soll nun das bestehende C-Programm getestet werden, um dem Team ein funktionsfähiges Fahrzeug bereitzustellen.

Konzept für eine Testumgebung

Zunächst wird die bestehende Testumgebung in Matlab/D-Space um die weiteren Kameraparameter Spurzuordnung, Stoppline erkannt und Stopplinienabstand ergänzt. Des Weiteren werden Dummy-Werte im C-Programm ergänzt und der Übertragung hinzugefügt. Anschließend wird die Übertragung dieser Daten getestet.

Außerdem wird die Struktur des derzeitigen C-Programms verändert, um eine bessere Austauschbarkeit von Modulen zu gewährleisten. Derzeit sind einige Funktionsteile des Programms in der main.cpp realisiert, was den schnellen Austausch der Module verhindert.

Nachfolgend sind die Programmablaufpläne für die einzelnen Funktionen der Module aufgeführt.

Hauptprogramm

Spurerkennung

Stopplinienerkennung

Datenübertragung

Empfang der Daten in Matlab/Simulink

Programmierung

Komponententest

Zusammenfassung

Link zum Quelltext in SVN


→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren