Objekterkennung mit LiDAR: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Yu Peng (Diskussion | Beiträge)
Yu Peng (Diskussion | Beiträge)
Zeile 82: Zeile 82:
*y-Achse: nach links
*y-Achse: nach links
*z-Achse: nach oben
*z-Achse: nach oben
Quelle vom Programm
<syntaxhighlight lang="matlab" style="border: none; background-color: #EFF1C1">
for (cnt=1:length(Segment))   
x=[Segment(cnt).LeftCartesian(1)- distX  Segment(cnt).NearbyCartesian(1)- distX Segment(cnt).RightCartesian(1)- distX];
y=[-(Segment(cnt).LeftCartesian(2)- distY)  -(Segment(cnt).NearbyCartesian(2)- distY) -(Segment(cnt).RightCartesian(2)- distY)];
plot(y,x,'r') 
hold on
</syntaxhighlight>


= Softwareentwurf in C++ =  
= Softwareentwurf in C++ =  

Version vom 20. Juni 2019, 20:39 Uhr

Autor: Peng

Aufgabenstellung

  1. Einarbeitung in dier bestehende Software
  2. Softwareentwurf in MATLAB
    1. Meilenstein 1:
    2. Ansteuerung des Hokuyo LiDAR
    3. Koordinatentransformation polar- zu karthesisch
    4. Testdokumentation der KOS-Trafo
    5. Objektbildung (z.B. Sukzessiv Edge Following)
    6. Testdokumentation der Objektbildung
    7. Meilenstein 2:
    8. Objekttracking (mit Kalman-Filter)
    9. Testdokumentation des Objekttrackings
    10. Attribute schätzen: v, a, B, T, Güte (s. Schnittstellendokument)
    11. Testdokumentation der Attribute mit Referenz
    12. Dokumentation im Wiki
  3. Softwareentwurf in C
    1. Meilenstein 3:
    2. Ansteuerung des LiDAR
    3. Koordinatentransformation polar- zu karthesisch
    4. Testdokumentation der KOS-Trafo
    5. Objektbildung (z.B. Sukzessiv Edge Following)
    6. Testdokumentation der Objektbildung
    7. Meilenstein 4:
    8. Objekttracking (mit Kalman-Filter)
    9. Testdokumentation des Objekttrackings
    10. Attribute schätzen: v, a, B, T, Güte (s. Schnittstellendokument)
    11. Testdokumentation der Attribute mit Referenz
    12. Testoberfläche in Control Desk
    13. Dokumentation im Wiki

Softwareentwurf in MATLAB

Ansteuerung des LiDAR Hokuyo URG-04LX

Der VerbindungsCode in Matlab wird in SVN schon gefunden. Aber wird es beachtet, dass die Nummer des verwendeten seriellen COM Ports angepasst werden muss, damit dieses funktioniert.

% Stelle Verbindung mit LiDAR her
stComport='COM6';
SetupLidar;

Durch das Anrufsprogramm "LidarScan" wird der Radius erhalten.

% Das Resultat von LidarScan
[rangescan]=LidarScan(lidar);

Koordinatentransformation polar- zu kartesisch

Da der Laserscanner nur Polarkoordinaten ausgibt, ist es notwendig, diese in Kartesische Koordinaten zu transformieren, um die Figur darzustellen. Die folgend mathmatische Funktion wird im Programm verwendet.

x=radius*cos(ϑ)

y=radius*sin(ϑ)

Wegen des Einheit in Meter wird die Einheit im Programm umgerechnet.

% Das Koordinatenparameter in m
x(cnt)=rangescan(cnt)*sin(phi_rad(cnt))/1000;
y(cnt)=rangescan(cnt)*cos(phi_rad(cnt))/1000;

Koordinatentransformation LiDARfest zu Fahrzeugfest

Um das Hindernis zu vermeiden, wird LiDARfest in Fahrzeugfest transformiert.

LiDARfest KOS:

  • Index: L (LiDARfest)
  • Einheit/Skalierung: m
  • Ursprung: Mitte
  • x-Achse: nach links/rechts
  • y-Achse: nach oben/unten
  • z-Achse: keine vorhanden

Fahrzeugfestes KOS:

  • Index: K (körperfest, karosseriefest)
  • Einheit/Skalierung: mm
  • Ursprung: Mitte Vorderkante des vorderen Stoßfängers des Fahrzeugs (z = 0)
  • x-Achse: nach vorne (im Sinne der Hauptfahrtrichtung)
  • y-Achse: nach links
  • z-Achse: nach oben

Quelle vom Programm

for (cnt=1:length(Segment))    
x=[Segment(cnt).LeftCartesian(1)- distX  Segment(cnt).NearbyCartesian(1)- distX Segment(cnt).RightCartesian(1)- distX];
y=[-(Segment(cnt).LeftCartesian(2)- distY)  -(Segment(cnt).NearbyCartesian(2)- distY) -(Segment(cnt).RightCartesian(2)- distY)];
plot(y,x,'r')   
hold on

Softwareentwurf in C++

Getting started


→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren