Kommunikation Hokuyo LiDAR
Autor: Isaac Mpidi Bita (Diskussion)
Meilenstein 1:
- Diagnoseschnittstelle
- Recherche der Toolkette des Vorgangssemester
- Treiber Installation
- Hokuyo LiDAR via USB an PC (C-Quellcode, Visual Studio)
- Objektdatenverarbeitung analysieren und dokumentieren
- Überprüfung der vorliegende Dokumentation (ggf. Überarbeiten, aktualisieren)
- Diagnoseschnittstelle LiDAR in Control Desk (Objektliste, XY-Plotter)
- Rapid Control Prototyping
- Einweisung über den Einsatz der dSPACE Karte an das Team
- Einsatz der dSPACE Karte durchführen, nicht lauffähige Projekt debuggen und lauffähig machen
Meilenstein 2:
- Diagnoseschnittstelle
- Aktualisierung des Schnittstellendokumentes
- Rapid Control Prototyping
- Überprüfung bidirektionale Verbindung PC via RS232 zu DS1104
- Dokumentation als Signalflussplan
- Wiki Artikel zur bidirekionalen Verbindung
Einleitung
Im Rahmen des SDE-Praktikums sollen die Studierenden an das Carolo-Cup-Projekt weiterarbeiten. Dies hat für Ziel, das Erlangen praktischer Erfahrung bei eingenstädigen Entwicklung eines mechatronischen System und das Erlangen von Kompetenzen in der Projektplannung innerhalb eines Teams.
Dieser Artikel befasst mit zwei Themen: die Diagnoseschnittstelle und der Einsatz der dSPACE-Karte DS1104. Im Diagnoseschnittstelle wird hauptsächlich die Kommunikation LiDAR-PC via USB zu erstellen. Für den Einsatz der dSPACE-Karte ist das Ziel ein kompilierbares und lauffähiges Simulink-Online-Modell spätestens am Ende des Semester zu haben.
Dieser Artikel wird von Isaac Mpidi Bita bearbeitet.
Inbetriebnahme des Hokuyo LiDAR via USB
Treiber Installation
Um das Hokuyo LiDAR in der Laborrechner verwenden zu können. Benötigt man einen entsprechenden Treiber. Dies finden Sie im Ordner .../trunk/Tools/Lidar_Treiber Um den Treiber zu installieren brauchen Sie ADMIN-Rechte. Als Ansprechpartner können Sie sich an der Prof. Dr. Schneider oder an Ilja Raza wenden.
Die Installationsvorgang läuft wie folgt:
Hardware-Beschreibung für die Kommunikation
Verfügbare Software
Debugging der Online Simulation
Einleitung
Das Debugging und die Kompilierbarkeit des Online-Modells war einer der Hauptziele für den Sommersemmer 2019. In dieser Abschnitt werden wichtige Erkenntnisse dieser Aufgabe dokumentiert. Alle Fehler könnten nicht in diesem Artikel zusammengefasst werden. Deshalb muss demnächst beim Auftauchen einer Fehlermeldung bzw. eines Warnings eine ausführlische Fehlerbehebung dokumentiert.
Debug des Modells
In dieser Aufgabe wird systematisch das komplette Modell debuggt. Wichtig ist es erstmal alle Fehlerursachen zu finden und zu versuche diese zu beseitigen. Da das erste Ziel einer kompilierfähiges Online Modell ist, werden vorerst die Richtigkeit und Plausibilität der Werte bzw. Datenfluss nicht berücksichtigt. Im Wintersemester 2019-2020 wird sich jedes Team um die Datenrichtigkeit deren Blöcke gewährleisten.
Damit das ganze System kompilierfähig ist muss nicht jeder Block kompilierbar sein. Weil es Signale, Variablen und Funktionen genutzt werden, die von anderen Blocks abhängen.
Das Online-Modell beinhaltet folgenden Blöcke:
- Sensoren (SEN)
- Aktoren (AKT)
- Sensorsignalaufbereitung (SAB)
- Objekt- und Spurerkennung (OSE)
- Bahn und Spurführung (BSF)
- Autonomes Einparken (AEP)
- Fahrtmodus (FAMO)
- Zähler und Zeitstrahl
- SEN - Geschwindigkeit
Situation am Anfang des Sommersemester 2019
Am Anfang des SoSe 2019 ist das Online-Modell nicht mehr kompilierbar. Die mögliche Ursache dafür ist zum Beispiel die weiterentwicklung des Modells mit höheren MATLAB Revisionen oder das nicht ordentlichen Mergen des Daten in SVN. Weiteren Hintergründe sind die Nicht-Betrachtung der Warnings beim Erstellen der Bibliotheken oder den falschen Auswahl der Solver beim Implementieren. All diesen nachlässigen Fehlern haben dazu geführt, dass das Modell im Laufen der Jahren nicht mehr Kompilierfähig war.
Kenntnis
- Der SEN-, AKT- und der AEP-Block kann nicht gebuildet werden
- Das OSE-, BSF- und FAMO-Block kann nur gebuildet werden, wenn die nicht verlinkt waren.
- Kompilierbar sind die Blöcke: SAB, Zaehler und Zeitstahl und SEN-Geschwindigkeit.
Vorgehensweise
- Suche eines frühere kompilierbare Online-Modell und dies auf aktuellsten Stand zu bringen
- Suche eines frühere nicht kompilierbare Online Modell mit wenigen Fehler, und ab dem Punkt debuggen
- Aktuelles Modell blockweise debuggen
Error
In dieser Abschnitt werden die gesammlten Fehlermeldungen und die vorgehensweise des Debugging erläutert.
Error Line 110: Library Failed to Build
Bedeutung
Der Fehler ist zur Stande gekommen, weil die Bibliotheken Stateflow-Diagramm enthalten. Außerdem wurde das Modell und die Bibliothek in Verschieden Umgebungen bzw. MATLAB-Versionen implementiert.
Behebung
Um diesen Fehler zu beheben soll einige Anpassung im Stateflow Configuration File angevracht werden.
- Geben Sie in den MATLAB Kommando matlabroot ein. Damit öffnet sich der Speicherort von MATLAB.
- Gehen Sie in Toolbox
- Gehen Sie in Stateflow
- Gehen Sie erneut in Stateflow
- Gehen in private
- Öffen Sie die Datei infomatman.m
- Nehmen Sie folgenden Änderungen durch
Links ist das Dokument unverändert und Rechts ist die Veränerung, die vorgenommen werden
Änderung 1
- kommentieren Sie die Zeile 189 aus.
- kopieren Sie die eben kommentierte Zeile darunten und bennen SIe den Parameter "machineID" nach "mainMachineID" um.
Änderung 2
- Benennen Sie die Variable "NewInstanceInfo" nach "infoStruct.chartInfo(i).instanceInfo" um.
- Löschen Sie die darunter stehenden if-Bedingung und Variablenzuweisung.
Änderung 3
- Löschen Sie die Funktion "mergeNewInstanceInfoWithOld"
Error Datenübergabe
Error RTI Build Error
Starting build procedure with RTI 7.0 (RTI1104, 02-May-2013) Model: "AKT" ---------------------------------------------------------------------- *** Using configuration set : "ModelReferencing" *** Working directory : "D:\SVN\SDE_Praktikum\MTR_SDE_Praktikum\Software\CaroloCupFahrzeug" *** Initializing code generation ### Starting Simulink Coder build procedure for model: AKT ------------------------------------------------------------ RTI Build Error Configuration Parameters dialog: Specification of the Fixed-step size with 'auto' is not supported in this version of RTI. TIP: For this option you can set a default value that applies to new models. To do so, open the Model Explorer and edit the Configuration Preferences of the Simulink Root model. ------------------------------------------------------------ *** Stopped RTI build procedure for model: AKT. ----------------------------------------------------------------------
Bedeutung
Der konkrete Buildfehler entsteht, weil die Schrittweite (Fixed-Step size) in Ihrem Modell nicht korrekt konfiguriert ist. MATLAB bietet hier eine Funktion "auto" - diese kann aber von Echtzeitsystemen wie der DS1104 nicht genutzt werden.
Behebung
- Simulink-Subsystem in einer neuen Simulink-Blank-Modell kopieren
- Jede einzelnen Block des Subsystem überprüfen
- Und Modell neu builden
Empfehlung
Hierfür empfehlt das dSPACE-Support einen fixen Wert mit einer Schrittweite von 1ms (= 0.001).
Nicht gebuildete S-Function
Bei Änderung bzw. Verlust der Dateien muss die S-Function immer neu gebuildet werden.
Behebung
- Doppelklick auf der gewünchten S-Function
- Klicken SIe auf Build
- Klicken Sie auf für die Überschreibung bzw. Overwriting
- Klicken SIe auf Close
Sie werden einen Status erhalten, ob die Bildung erfolgreich oder fehlhaft war.
-
Menu S-Function
-
Status der Funktionsbildung
Nicht definierte Variablen
Error evaluating parameter 'Value' in 'CCF_online/BSF - Bahnplanung und Spurfuehrung/BSFVx - Bestimmung Sollgeschwindigkeit/BsfVx_VxHindernis_f64'
Bedeutung
Die Funktion oder die genannte Variable wurde nicht definiert.
Behebung
Um den Fehlher zu beheben:
- Gehen Sie in der SVN-Ordner \Software\CaroloCupFahrzeug\parameter
- Wählen Sie die Parameterfile (*.m-File), wo die die Variable definiert wird,
in diesem Fall "param_BSF.m"
- Initialisieren Sie die gewünchte Parameter
in diesem Fall "BsfVx_VxHindernis_f64"
-
Fehlermeldung
-
Achtung: Wenn diese Fehlermerdung häufig auftaucht, verifizieren Sie, ob die Verlinkung richtig gemacht wurde
Verbindungsfehler zu der dSPACE-Karte
File I/O error on file 'rti1104.tlc' Operation that caused an error: open
Umgang
- Verifizieren Sie ob die dSPACE-Karte richtig angeschlossen ist.
- Stellen Sie sich sicher, dass die dSPACE-MTLAB-Toolbox installiert ist.
- Stellen Sie sicher, dass sie die richtige MATLAB-Version gestartet haben.
Warnings
Verlinkungswarnung
Warning: bib_Sensoren_Aktoren_online.mdl, line 5405: "bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR nach Hinten/MATLAB Function" is a parameterized link To view, discard, or propagate the changes for this link, use the "Library Link" menu item Link: bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR nach Hinten
Warning: bib_Sensoren_Aktoren_online.mdl, line 5103: "bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR/MATLAB Function" is a parameterized link. To view, discard, or propagate the changes for this link, use the "Library Link" menu item Link: bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR
Warning: bib_Sensoren_Aktoren_online.mdl, line 5707: "bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor VR/MATLAB Function" is a parameterized link. To view, discard, or propagate the changes for this link, use the "Library Link" menu item
Bedeutung
Diese Warnung taucht meistens vor dem Builden des Modell auf. Dies bedeutet, dass die Bibliothek im Modell nicht mehr mit dem Hyperlink überreinstimmen.
Umgang
- Rechtsklick auf das Block
- Wählen Sie „Library Link“
- Klicken Sie auf „Resolve Link“. Ein Dialog-Fernster wird sich öffnen
- Wählen SIe eine Aktion aus
Merke
- Wählen Sie Push, wenn Sie wollen, dass die Änderungen in die Bibliothek übernommen werden.
- Wählen SIe Restore, wenn Sie wollen, dass der Zustand aus der Bibliothek in das Model übernommen wird.
Warnings beim Start des Online Modell
Warning: CCF_online.mdl, line 1229: "CCF_online/AKT - Aktoren - online" is a parameterized link. To view, discard, or propagate the changes for this link, use the "Library Link" menu item In general\private\openmdl at 13 In open at 159 In start at 257
Warning: CCF_online.mdl, line 2312: "CCF_online/SEN - Sensoren - online" is a parameterized link. To view, discard, or propagate the changes for this link, use the "Library Link" menu item In general\private\openmdl at 13 In open at 159 In start at 257
Bedeutung
Die Warnings tauchen auf, weil Änderungen in das Modell vorgenommen würden und gepeichert worden sind. Beim nächsten Start weißt MATLAB dem Programmierer darauf hin.
Umgang
- Rechtsklick auf das Block
- Wählen Sie „Library Link“
- Klicken Sie auf „Resolve Link“. Ein Dialog-Fernster wird sich öffnen
- Wählen SIe eine Aktion aus
Merke
- Wählen Sie Push, wenn Sie wollen, dass die Änderungen in die Bibliothek übernommen werden.
- Wählen SIe Restore, wenn Sie wollen, dass der Zustand aus der Bibliothek in das Model übernommen wird.
Warnung während des Builden des Modells
Warning: Remapping selected signal 'AEP.Famo_Modi_Schalter_Lw_int' to 'FAMO.Famo_Modi_Schalter_Lw_int' in 'CCF_online/FAMO - Fahrtmodus/Bus Selector' to match the bus hierarchy. Please save your model to make this change permanent
Umgang
- Speichern Sie ihre Modell und builden Sie neu.
Debug des SEN - Online - Block
-----------------------------------------------------------------------------------------
LOADING APPLICATION "SEN_Block_Debug.sdf" ...
[#1] ds1104 - RTLIB: Application UUID: 29B9764D-CCF7-464C-B55C-E5980AD3F73B (0)
[#2] ds1104 - RTI: Initializing ... (720)
[#3] ds1104 - RTLIB: dSPACE slave-DSP firmware rev. 3.5 detected. (500)
[#4] ds1104 - RTI: Initialization completed (721)
[#5] ds1104 - RTI: Simulation state: RUN (700)
LOADING FINISHED
MAKE PROCESS SUCCEEDED
### Successful completion of Simulink Coder build procedure for model: SEN_Block_Debug
*** Finished RTI build procedure for model SEN_Block_Debug
----------------------------------------------------------------------
>>
Situation am Ende des Sommersemester 2019
Ergebnis - Rapid Control Prototyping
- MATLAB Ausgabe
BUILDING APPLICATION "CCF_online" (Single Timer Task Mode)
WORK DIRECTORY "D:\SVN\SDE_Praktikum\CaroloCupFahrzeugVersionen\CaroloCupFahrzeug - Debug Version\CaroloCupFahrzeug"
BUILD DIRECTORY "D:\SVN\SDE_Praktikum\CaroloCupFahrzeugVersionen\CaroloCupFahrzeug - Debug Version\CaroloCupFahrzeug\CCF_online_rti1104"
TARGET COMPILER "C:\Program Files\dSPACE RCPHIL 2013-A\Compiler\PPCTools37"
COMPILING "CCF_online.c"
(W) C0223-D; "CCF_online.c", line 539 pos 19; function "dsser_transmit_fifo_level" declared implicitly
txFifoLevel = dsser_transmit_fifo_level(rtiDS1104SER_B1_Ser[0]);
^
1 Warning
COMPILING "CCF_online_data.c"
COMPILING "CCF_online_trc_ptr.c"
COMPILING "rtGetInf.c"
COMPILING "rtGetNaN.c"
COMPILING "rt_nonfinite.c"
COMPILING "C:\Program Files\dSPACE RCPHIL 2013-A\MATLAB\RTI\RTI\C\rti_sim_engine.c"
LINKING APPLICATION ...
LINKING FINISHED
LOADING APPLICATION "CCF_online.sdf" ...
[#1] ds1104 - RTLIB: Application UUID: 796282A5-B263-4E11-B935-95FB6280AB84 (0)
[#2] ds1104 - RTI: Initializing ... (720)
[#3] ds1104 - RTLIB: dSPACE slave-DSP firmware rev. 3.5 detected. (500)
[#4] ds1104 - RTI: Initialization completed (721)
[#5] ds1104 - RTI: Simulation state: RUN (700)
LOADING FINISHED
MAKE PROCESS SUCCEEDED
### Successful completion of Simulink Coder build procedure for model: CCF_online
*** Finished RTI build procedure for model CCF_online
----------------------------------------------------------------------
>>
- Screenshot des Ergebnis
Anweisung für das ONLINE-Modell
- Nutzen sie bitte MATLAB 2013a
- Achten Sie bitte auf der Solver des Blocks --> Fixed Step nicht auf auto
- Lesen Sie die Wiki-Artikeln durch
- Notieren Sie Fehlermeldungen und Warnings
- Warnings sind sofort zu beseitigen beim Erstellen einer neuen Bibliothek!
Zusammenfassung und Ausblick
Aktuell lässt sich das Gesamt-Online-Modell kompilieren. Das Modell wurde in Labor PC und im Carolo Cup Fahrzeug getestet. Das Kompilieren war in beide Fälle erfolgreich.
Nichtsdestotrotz tauschen einige Warnings auf, die dazu führen dass einigen Blöcke rot markiert bleiben. Die Warnings-Ursachen sind schon bekannt. Für den Wintersemester 2019-2020 wird versucht die zu beseitigen.
Außerdem können der Datenfluss und die übergegebene Werte nicht korrekt sein. Da das Ziel war erst ein kompilierfähiges Modell bis Ende des Sommersemmester 2019 zu haben. Als nächstes wird das Gesamtteam sich um die Datensicherung kümmern, um ein korrektes und lauffähiges System zu bekommen.
Author: Isaac Mpidi Bita