Low-Cost-Lidar Verarbeitung mit Matlab/Simulink

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Sensor/Vorgängerprojekt: Low-Cost_Lidar_Objekterkennung_mit_Matlab/Simulink

Aufgabenstellung

Lidar Technologie

Die Aufgabe von Lidar Sensoren ist es die Entfernung und den Winkel, ausgehend von der Sensornormalen, von Gegenständen und Hindernissen zu bestimmen. Im Allgemeinen gibt es zwei mögliche Messverfahren um dies zu bestimmen. Das verbreitetste Verfahren ist das sogenannte "time of flight" (Deutsch: Zeit des Flugs) verfahren. Dabei wird ein Lichtstrahl von einer Sendeeinheit ausgesendet, von einem Objekt reflektiert und anschließend von einem Empfängermodul detektiert. Die Entfernung des zu messenden Objekts wird ermittelt, indem man die Zeit misst, die der Lichtimpuls benötigt, um die gesamte Strecke zu überwinden. Da die Geschwindigkeit des Lichtes eine bekannte konstante ist, kann man die Entfernung somit sehr genau bestimmen. Wichtig ist dabei, die halbe Strecke zu verwenden, da immer Hin- und Rückweg gemessen werden.

Um die Genauigkeit der Messung noch weiter zu erhöhen, wurde das Phase Shift (Deutsch: Phasendifferenzverfahren) entwickelt. Zusätzlich zur Laufzeitmessung wird die Wellenlänge des ausgegebenen Sendersignals variiert. Durch die Phasenverschiebung zwischen Sender und Empfänger kann auf die Entfernung zurück geschlossen werden. Dabei ist allerdings zu beachten, dass nur während eines kompletten Phasenablaufs gemessen werden kann. Nach einem Phasendurchlauf wiederholt sich der Wert und es kann sein, das statt dem erwarteten Befehls ein vielfaches detektiert wird. Die Wellenlänge muss also immer dem zu messenden Bereich angepasst werden.

Ein drittes Verfahren nutzt Triangulation um auf die Entfernung zu ermitteln. Bei einem vertikal horizontal orientiertem Aufbau ist immer eine gewisse Distanz zwischen Sender um Empfänger vorhanden. Dadurch ergibt sich immer ein gleichschenkliges Dreieck zwischen Sender, Objekt und Empfänger. Da es sich bei der Distanz zwischen Sender und Empfänger um eine mechanisch festgelegte Größe handelt, kann man mit der Information, in welchem Winkel das Signal auf dem Empfänger trifft, die Entfernung bestimmen. Die Hypotenuse des Dreiecks ist dabei die ermittelte Strecke.

Der verwendete Lidarsensor

Der verwendete Lidarsensor ist im Internet unter diversen Bezeichnungen zu finden. Die geläufigsten sind Neato LDS, Neato lidar, XV-11 lidar und XV-11 sensor.

Das ursprüngliche Einsatzgebiet des Lidarsensors

Neato Staubsauger an Ladestation

Der verwendete Lidarsensor ist bei einigen Staubsaugermodellen des Herstellers Neato im Einsatz. Dabei wird der Lidarsensor verwendet um die Umgebung zu scannen und damit Hindernisse zu umfahren. Der Staubsauger erstellt mit Hilfe der vom Lidarscanner aufgenommenen Daten ein genaues Abbild der Wohnung und verwendet diese um effizienter beim Abfahren der Wohnung vorzugehen.

Die elektrischen Schnittstellen des Lidarsensors

Verkabelung mit Hilfe vom Arduino UNO R3


Der Lidarscanner besitzt zwei Stecker. Der erste Stecker besitzt zwei Adern und dient der Stromversorgung des Motors. Um den Motor anzutreiben wird 5V Gleichstrom benötigt. Das rote Kabel ist dabei +5V und das schwarze auf Masse zu legen. Der zweite Stecker besitzt 4 Adern. Schwarz und Rot dienen der Stromversorgung der Auswerte-Hardware und benötigt 3,3V. Rot ist dabei +3,3V und Schwarz die Masse. Zur Datenübertragung werden die zwei weiteren Adern verwendet. Hierbei handelt es sich um eine serielle Schnittstelle bei der braun der TX und orange der RX Pfad bildet.

Bei den beiden Steckern handelt es sich um einen JST PH Stecker mit 2mm Pitsch. Technische Informationen sind unter folgendem Link zu finden:

JST Automotive Steckeverbinder

Falls die Gegenstecker benötigt werden, können Sie zum Beispiel auf folgender Seite bestellt werden:

Mouser Elektronik Versand

Sobald der Lidar-Sensor elektrisch Verbunden ist, sendet er die folgenden Informationen über die serielle Schnittstelle:

Piccolo Laser Distance Scanner Copyright (c) 2009-2011 Neato Robotics, Inc. All Rights Reserved

Loader V2.5.15295 CPU F2802x/c001 Serial KSH14415AA-0358429 LastCal [5371726C] Runtime V2.6.15295

  1. Spin...3 ESCs or BREAK to abort

Die Programmbefehle des Lidarsensors

Sobald die Serielle Verbindung aufgebaut ist, kann der Lidarsensor mit den folgenden Befehlen angesprochen werden:

GetVersion Der Lidarsensor gibt mit mit diesem Befehl die aktuelle Firmware und weitere Informationen aus. Help Der Befehl Help dient dazu, alle verfügbaren Befehle anzuzeigen. 'Log

  • SaveCal

Hiermit können Kalibrierdaten ausgelesen werden.

  • SetBaud

Mit diesem Befehl kann die Baudrate geändert werden.*

  • SetSerial

Hiermit kann die Seriennummer verändert werden.*

  • Upload

Hiermit kösnnen Daten an den wie Softwareupdates gesendet werden.*

  • Wanderer

Der Befehl Wanderer gibt ein Eichhörnchen Bild in ASCII Code aus.

  • Calibrate b16 b8 SunBlind loop2AA loop155

Hiermit kann der Sensor kalibriert werden.*

  • GetCal A B C LPT LFL LFT LFH IMX IB LPI LCH LPD ANG

Hiermit können Kalibrierdaten ausgelesen werden.

  • SetCal A B C LPT LFL LFT LFH IMX IB LPI LCH LPD ANG

Hiermit können Kalibrierdaten gezielt geschrieben werden.*

  • Spin Fake DotX DotI Text Hash Timing Foto RPS Pac

Hiermit kann eine Drehung durch den Motor zu Testzwecken simuliert werden. TestEncoder Dient Testzwecken.

*Hier ist Vorsicht geboten, da dadurch der Sensor unbrauchbar werden kann.

Die Rohdaten

Auswertung der Rohdaten

Ausblick

Weblinks


→ zurück zum Hauptartikel: Signalverarbeitende Systeme