Hokuyo Lidar Objekterkennung mit Matlab/Simulink: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 46: Zeile 46:


===Zwei-Zeichen-Codierung===
===Zwei-Zeichen-Codierung===
Die Zwei-Zeichen-Codierung ermöglicht die schnellere Datenübertragung bei einer maximalen Größe von 12 Bits. Beim Codierungsvorgang wird das Datenpaket in seine 6 hohen und 6 niedrigen Bits aufgeteilt und eine 30H wird zu beiden hinzu addiert, um sie in ASCII-Zeichen zu konvertieren. Dieser Codiervorgang und auch der Decodiervorgang sind Schrittweise in Abbildung 3 dargestellt. Die beiden übrigen Verfahren arbeiten nach dem selben Prinzip. Es werden also wiederum 6 Bit-Pakete aus dem Datensatz erstellt und durch Addition mit 30H ASCII-Zeichen aus den jeweiligen Bitsätzen generiert. Die Drei-Zeichen-Codierung unterstützte dann dementsprechend 18 Bit und die Vier-Zeichen-Codierung 24 Bit.
Die Zwei-Zeichen-Codierung ermöglicht die schnellere Datenübertragung bei einer maximalen Größe von 12 Bits. Beim Codierungsvorgang wird das Datenpaket in seine 6 hohen und 6 niedrigen Bits aufgeteilt und eine 30H wird zu beiden hinzu addiert, um sie in ASCII-Zeichen zu konvertieren. Dieser Codiervorgang und auch der Decodiervorgang sind Schrittweise in Abbildung 3 dargestellt. Die beiden übrigen Verfahren arbeiten nach dem selben Prinzip. Es werden also wiederum 6 Bit-Pakete aus dem Datensatz erstellt und durch Addition mit 30H ASCII-Zeichen aus den jeweiligen Bitsätzen generiert. Die Drei-Zeichen-Codierung unterstützte dann dementsprechend 18 Bit und die Vier-Zeichen-Codierung 24 Bit <ref name="SCIP20"> Communication Protocol Specification For SCIP2.0 Standard. - letzter Aufruf: 06.07.2018 http://library.isr.ist.utl.pt/docs/roswiki/attachments/hokuyo_node/URG-Series_SCIP2_Compatible_Communication_Specification_ENG.pdf </ref>.
<br/><br/>
<br/><br/>



Version vom 6. Juli 2018, 07:57 Uhr

Sensor: Hokuyo URG-04

Autor: Simon Kohfeld
Betreuer: Prof. Schneider

Grundlagen Lidar

Der verwendete Sensor ist ein Lidar. Diese Bezeichung ist eine Abkürzung für die Technologie, die sich hinter diesem Sensor befindet. Der Begriff Lidar setzt sich aus den Worten Light Detection And Ranging zusammen. Man unterscheidet zwischen dem klassischen Lidar, der mit Licht bzw. Laser arbeitet, um Entfernungen zu messen, Doppler-Lidar, die den Doppler-Effekt nutzen, um Geschwindigkeiten zu bestimmen und Differential-Absorption-Lidar, die chemische Konzentrationen messen können.

Ein Lidar ist ein System, bestehend aus einer Laserdiode als Stahlungsquelle und einer Fotodiode als Empfänger, die das von Objekten reflektierte Laserlicht detektieren kann. Innerhalb des Lidars wird eine Signalaufbereitung nachgeschaltet, die aus einem variablen Verstärker (VGA) und einerm A/D - Wandler besteht.

Das Sendelicht wird in Form von Impulsen ausgesendet und bei Empfang der Fotodiode in Spannungsimpulse umgesetzt. Die Intensität der reflektierten Laserlichts ist dabei stark schwankend. Deshalb werden die Signale vor der Digitalisierung in dem variablen Verstärker aufbereitet. Aufgrund der kurzen Laserimpulse ist ein A/D - Wandler mit einer hohen Abtastrate erforderlich. Die Abtastrate hat dabei unmittelbaren Einfluss auf die Genauigkeit der Entfernungsmessung. Ein A/D - Wandler in einem Lidar-System erreicht eine Abtastrate von bis zu 3 GS/s (= 3 Giga Samples pro Sekunde) bei einer Bitzahl von 7.

Einsatzgebiete von Lidar-Sensoren sind beispielsweise militätrische Anwendungen, aber auch im Automotive-Bereich für Fahrassitenzsysteme oder in Mautsystemen zur Fahrzeugerkennung. Auch in SmartHome Anwendungen, wie beispielsweise im Staubsaugerroboter kommen Lidar-Systeme zum Einsatz. In der Industrie haben Lidar-Sensoren häufig Sicherheitsrelevante Funktionen [1].

Vorstellung des Sensors

Abbildung 1: Technische Daten des URG-04LX

Der URG-04LX ist ein klassischer Lidar mit einem Laser zum Scannen seines Umfelds. Dazu Verwendet dieser einen Infrarot-Laser mit einer Wellenlänge von 785 nm derLaser Klasse 1. Der Scanner deckt einen Bereich von 240° bei einem maximalen Radius von 4 m ab. Dabei löst der Sensor in 0,36 ° auf. Betrieben wird der Sensor mit einer Gleichspannung von 5 Volt und kann über USB oder Sub-D Stecker mit einer Auswerteeinheit verbunden werden. Angesprochen wird der Sensor über das serielle RS232-Protokoll. Die genannten technischen Daten sind in Abbildung 1 dargestellt.

Der URG-04LX nutzt für die Entfernungsmessung das Verfahren der Phasendifferenz, da damit eine stabile Messung möglich ist, ohne große Einflüsse der Farbe oder der Reflexion eines Objektes. Der Sensor ist nach dem IEC60947-5-2 Standard entwickelt und entspricht demnach dem Standard für industrielle Anwendungen.

Der Sensor sendet mit einem Laser Impulse in einem Radius von 240° und berechnet die Entfernung auf Basis der Phasenverschiebung bis zum Empfang des reflektierten Signals. Der Laser hat eine Wellenlänge von 785 nm und ist mit Laserklasse 1 eingestuft. Der Lidar liefert pro Messung 683 Werte, also alle 0,36° einen entsprechenden Entfernungswert. Die maximal messbare Distanz ist 4 m. Die Scanrichtung ist gegen den Uhrzeigersinn. Angesprochen wird der Sensor per USB über die serielle Schnittstelle.

Als Rohwert misst der Sensor den zeitlichen Abstand seiner Sendeimpulse zu den empfangenen Impulsen,um diese Zeit dann in eine Entfernung umzurechnen. Somit findet die Vorverarbeitung der Messdaten bereits im Sensor statt. Dafür verwendet der Sensor eine Formel, mit der sich die Distanz auf Basis der Phasenverschiebung des Signals berechnen lässt. Der Sensor liefert die Distanzwerte über die serielle Schnittstelle in Codierter Form, um die Übertragungszeit zu reduzieren. Entweder kommen die Daten in Form von zwei, drei oder von vier codierten Zeichen. Die Einheit der übetragenen Distanz ist mm.



Analog-Digital-Umsetzung

Abbildung 2: Phasendifferenzverfahren

Für die Analog-Digital-Umsetzung kann für einen Lidar grundsätzlich ein Zeit-Digital-Umsetzer oder ein Analog-Digital-Umsetzer verwendet werden. Die Auswahl des Systems ist dabei abhängig von dem Messprinzip des Lidar-Sensors. Die Entfernungsmessung findet dabei entweder über eine Lichtlaufzeitmessung oder eine Phasendifferenzmessung statt.Davon abhängig kann für die Analog-Digital-Umsetzung entweder ein klassischer Analog-Digital-Umsetzer oder ein Zeit-Digital-Umsetzer verwendet werden [2]. Beide Optionen werden nachfolgend beschrieben.

Lösung 1: Zeit-Digital-Umsetzer

Anders als bei der klassischen Analog-Digital-Umsetzung, bei welcher eine SPannung in einen Digitalwert umgewandelt wird, wählt man bie einer Zeit-Digital-Wandlung die physikalische Größe Zeit als Wandelgröße. Wie auch bei der Spannungswandlung, kann die Differenz von Zeit verwendet werden, um einen Digitalwert zu generieren. Wie bei der Spannungswandlung, ist auch bei der Zeitwandlung die Auflösung der wichtigste Faktor des Wandlers. Das bedeutet im Fall des Zeit-Digital-Wandlers wird eine hohe Zeitauflösung benötigt, um genaue Werte liefern zu können. Das Messprinzip ergibt aus aus einem Vergleich von gemessenen Zeitdifferenzen und durch Gatter festgelegte Laufzeiten. Es wird erfasst, wie viele Gatterlaufzeiten der Zeitdifferenz entsprechen. Die zu messende Zeitdifferenz wird durch STart- und Stoppsignale fixiert und aus der Anzahl der Gatterlaufzeiten wird das Digitalsignal abgeleitet. Zeit-Digital-Wandler auf dem Markt erreichen Zeotauflösungen im Picosekunden Bereich [3]. Ein Beispiel dafür ist der TDC7201 von Texas Instruments mit einer Auflösung von 55 ps.

Die Phasendifferenzmessung die auch im Hokuyo Lidar verwendet wird arbeitet mit einer kontinuierlichen Laserlichtwelle im Infrarotbereich. Diese Laserlichtwelle ist das Trägersignal und wird mit Sinussignalen unterschiedlicher Frequenz moduliert. Das Prinzip der Phasendifferenzmessung ist in Abbildung 2 dargestellt [4].

Lösung 2: Analog-Digital-Umsetzer

Ein Beispiel für einen Analog-Digital-Umsetzer, der die Anforderungen für eine LiDAR-Anwendung erfüllt ist der AD9645 von Analog Devices.

Kommunikation mit dem Hokuyo URG-04LX

Abbildung 3: Zwei-Zeichen-Codierung

Damit der Hokuyo LiDAR verwendet werden kann, muss zunächst die Kommunikation mit diesem hergestellt werden. Dazu stehten am LiDAR zwei Anschlüsse zur Verfügung. Dabei handelt es sich um einen Micro-Usb-Port und um eine RS-232-Schnittstelle. Der USB-Port dienst dabei lediglich der Spannungsversporgung. Den seriellen Anschluss, kann man über ein mitgeliefertes Kabel entweder ebenfalls per USB mit einem PC verbinden oder mit der über einen Sub-D-Stecker herausgeführten RS-232, also der seriellen Schnittstelle an eine Steuerungs, bzw- Auswerteeinheit anschließen.Der USB Port unterstützt ebenfalls das RS232-Protokoll.

Die empfohlene Kommunikation erfolgt über das sogennante SCIP2.0 Protokoll, welches von der "sensor interface research group" entwickelt wurde und eine flexible und effiziente Einbindung in Roboter gestützte Automatisierungsprozesse ermöglichen soll. Die "sensor interface research group" ist eine Institution des Intelligent Robot Laboratory der Universität Tsukuba. Das genannte SCIP2.0 Protokoll soll nachfolgend erläutert werden.

Damit die Kommunikation von einem PC über USB zu dem Sensor funktioniert, muss zunächst der URG-04LX Treiber auf der Herstellerseite heruntergeladen und installiert werden. Den fertigen Treiber bietet der Hersteller nur für Windoes-Betriebsysteme an. Liux und Apple Betriebssysteme werden allerdings grundsätzlich auch unterstützt, bedürfen aber einem zusätzlichen Programmieraufwand. Die Daten, die der Sensor über die serielle Schnittstelle liefert, werden codiert, um die Übertragungszeit zwischen Host und dem Sensor zu minimieren. Das bedeutet, dass die empfangenen Daten von dem Host dekodiert werden müssen, um diese nutzen zu können. Abhängig von der Größe der Datenpakete können drei verschiedene Codierungsverfahren genutzt werden, um die Daten zu komprimieren. Zur Verfügung stehen die Zwei-Zeichen-Codierung, die Drei-Zeichen-Codierung und die Vier-Zeichen-Codierung. Die Zwei-Zeichen-Codierung wird exemplarisch nachfolgend dargestellt.

Zwei-Zeichen-Codierung

Die Zwei-Zeichen-Codierung ermöglicht die schnellere Datenübertragung bei einer maximalen Größe von 12 Bits. Beim Codierungsvorgang wird das Datenpaket in seine 6 hohen und 6 niedrigen Bits aufgeteilt und eine 30H wird zu beiden hinzu addiert, um sie in ASCII-Zeichen zu konvertieren. Dieser Codiervorgang und auch der Decodiervorgang sind Schrittweise in Abbildung 3 dargestellt. Die beiden übrigen Verfahren arbeiten nach dem selben Prinzip. Es werden also wiederum 6 Bit-Pakete aus dem Datensatz erstellt und durch Addition mit 30H ASCII-Zeichen aus den jeweiligen Bitsätzen generiert. Die Drei-Zeichen-Codierung unterstützte dann dementsprechend 18 Bit und die Vier-Zeichen-Codierung 24 Bit [5].


Kommunikationsformat

Abbildung 4: Kommunikationsformat für Host und Lidar

Damit Host und Sensor über die gegebenen Schnittstellen miteinander kommunizieren und Daten austauschen können, definiert das SCIP2.0-Protokoll Befehle. Diese Befehle folgen einem bestimmten Format, dem Kommunikationsformat. Der Kommunikationsaufbau ist bei Host und Sensor unterschiedlich. Für beide Komponenten ist das Kommunikationsformat in Abbildung 4 dargestellt.

Die Kommunikation wird immer vom Host initiiert. Dazu sendet er einen Befehl, bestehend aus einem Befehlszeichen, einem Parameter, bis zu 16 String-Zeichen und einem Line Feed oder Carriage Return, bzw. beidem. Wenn der Sensor die Befehle empfängt, antwortet dieser mit einem Befehls-Echo, also einer Wiederhohlung der vollständigen Host-Sequenz. Dann folgt ein Status, eine Prüfsumme und ein Line Feed, um dann mit dem des empfangenen Befehls entsprechendem Datensatz fortzufahren. Die Daten sind wiederum gefolgt von einer Prüfsumme und zwei Line Feed zur Terminierung.
Der Befehlcode besteht aus zwei Bytes und steht an jedem Beginn einer Kommunikation. Parameter können dazu verwendet werden die Sensoreinstellungen zu ändern oder Daten anzufordern. Die String Zeichen sind optionale Information zum Befehl. Der Status gibt an, ob eine Anfrage erfolgreich war oder ob Fehler aufgetreten sind und die Daten sind die eigentlichen Informationen, die relevant sind. Der Sensor stellt über das Protokoll verschiedene Befehle bereit, die im Kommunikationsptotokoll zum SCIP2.0 dargestellt sind. Dort sind ebenfalls die möglichen Fehlercodes des Sensors, sowie ein exemplarischer Nachrichtenverlauf dargestellt.

Zusatzinformation

Der URG-04LX arbeitet im Auslieferungszustand noch mit dem Vorgängerprotokoll SCIP1.1. Es wird allerdings empfohlen diesen direkt bei inbetirebnahme auf das neuste Protokoll zu aktualisieren. Aus diesem Grund ist lediglich das SCIP2.0 beschrieben.

Ergebnis

Das Ergebnis der Arbeit kann in diesem Youtube Video betrachtet werden.

Tabelle


Funktionsweise

Merkmale











Tabelle 2

Ergebnis

Ausblick und Fazit

Ausblick

Fazit



→ zurück zum Hauptartikel: Signalverarbeitende Systeme Sommersemester 2018


getting started: [1]

Literatur

  1. IT-Wissen: Light Detection and Ranging. - letzter Aufruf: 05.07.2018 https://www.itwissen.info/LIDAR-light-detection-and-ranging.html
  2. Analog Applications Journal: How to build a LIDAR system with a time-to-digital converter. - letzter Aufruf: 05.07.2018 http://www.ti.com/lit/an/slyt706/slyt706.pdf
  3. IT-Wissen: Zeit-Digital-Wandler. - letzter Aufruf: 05.07.2018 https://www.itwissen.info/Zeit-Digital-Wandler-time-to-digital-converter-TDC.html
  4. AnalogDialgue: Which ADC Architecture Is Right for Your Application? - letzter Aufruf: 05.07.2018 http://www.analog.com/en/analog-dialogue/articles/the-right-adc-architecture.html
  5. Communication Protocol Specification For SCIP2.0 Standard. - letzter Aufruf: 06.07.2018 http://library.isr.ist.utl.pt/docs/roswiki/attachments/hokuyo_node/URG-Series_SCIP2_Compatible_Communication_Specification_ENG.pdf