Anleitung zur Erstellung einer S-Funktion für Hokuyo URG-04LX-UG01: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Diese Anleitung beschreibt, wie man eine S-Funktion im Simulink erstellt. Als Sensor wird Laserscanner Hokuyo URG-04LX-UG01 verwendet.
Diese Anleitung beschreibt, wie man eine S-Funktion im Simulink erstellt. Als Sensor wird Laserscanner Hokuyo URG-04LX-UG01 verwendet.
Für die Erstellung der S-Funkton werden in dieser Anleitung fertige in C++-Code geschriebene Funktionen und Bibliotheken verwendet.
Für die Erstellung einer S-Funkton wird in dieser Anleitung fertiger C++-Quellcode verwendet.




1. Für die Erstellung einer S-Funktion benötigt man einen Compiler. Als Compiler kann ein Compiler von Visual Studio 2015/2017 oder MinGW 6.3 verwendet werden. Installieren Sie den Compiler, falls solcher noch nicht vorhanden ist. Um zu testen, ob ein Compiler vorhanden ist, geben Sie im Command Window ''mex -setup''.
1. Für die Erstellung der S-Funktion benötigt Simulink einen Compiler. Als Compiler kann ein Compiler von Visual Studio 2015/2017 oder MinGW 6.3 verwendet werden. Installieren Sie den Compiler, falls solcher noch nicht vorhanden ist. Um zu testen, ob ein Compiler vorhanden ist, geben Sie im Command Window ''mex -setup'' ein:


[[Datei:Anleitung_S-Funktion1.PNG]]
[[Datei:Anleitung_S-Funktion1.PNG]]


Wenn mehrere Compiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen.
Wenn mehrere Compiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen. In dieser Anleitung verwenden wir den Compiler von Visual Studio 2017.
   
   


2. Für die Erstellung der S-Funktion werden in dieser Anleitung bereits vorhandenen Quellcode verwendet. Laden Sie zuerst aus folgender Quelle  zip-Datei ''urg_library-1.2.3.zip'' herunter und speichern Sie diese auf dem Rechner:
2. Für die Erstellung der S-Funktion werden in dieser Anleitung bereits vorhandener Quellcode verwendet. Laden Sie zuerst zip-Datei namens ''urg_library-1.2.3.zip'' aus folgender Quelle herunter und speichern Sie diese auf dem Rechner:


https://sourceforge.net/projects/urgnetwork/files/urg_library/
https://sourceforge.net/projects/urgnetwork/files/urg_library/


3. Erstellen Sie eine Build-Datei in der alle verwendete Funktionen eingegeben werden müssen. Alle in der Build-Datei eingegebene Quellcode sollen im Arbeitsverzeichnis gespeichert werden. Erstellen Sie dazu entsprechende Ordner und füllen Sie diese. Die Build-Datei wir von dem Compiler bei der Verlinkung benutzt:
3. Erstellen Sie eine Build-Datei in der alle verwendeten Funktionen eingegeben werden müssen. Alle in der Build-Datei eingegebenen Quellcode-Dateien sollen im Arbeitsverzeichnis gespeichert werden. Erstellen Sie dazu die entsprechende Ordner und füllen Sie diese mit den Dateien. Die Build-Datei wird von dem Compiler bei der Verlinkung benutzt:


[[Datei:Anleitung_S-Funktion2.PNG|400px]]
[[Datei:Anleitung_S-Funktion2.PNG|400px]]


   
   
4. Erstellen Sie eine C-Datei, welche für die Erstellung der ''urgsl.mexw64'' - Datei verwendet wird. Als Vorlage zur Erstellung nutzen Sie ''timestwo.c'' Datei:
4. Erstellen Sie eine C-Datei, welche für die Bildung der ''urgsl.mexw64'' - Datei verwendet wird. Als Vorlage zur Erstellung nutzen Sie ''timestwo.c'' Datei:


[[Datei:Anleitung_S-Funktion3.PNG|900px]]
[[Datei:Anleitung_S-Funktion3.PNG|900px]]
Zeile 33: Zeile 33:
8. Den S-Funktion Block finden Sie unter:
8. Den S-Funktion Block finden Sie unter:


Simulink -> User-Defined Functions -> S-Function Als Parameter geben Sie den Namen der erstellten C-Datei: ''urgs''
Simulink -> User-Defined Functions -> S-Function. Bei dem Parametrisieren geben Sie den Namen der erstellten C-Datei ''urgs'' ein:


[[Datei:Anleitung_S-Funktion5.PNG|400px]]
[[Datei:Anleitung_S-Funktion5.PNG|400px]]


9. Der Funktionsblock ''fcn'' wird für die grafische Darstellung von Messdaten verwendet. Folgende Funktion wird dabei ausgeführt:
9. Der Funktionsblock ''fcn'' wird für die grafische Darstellung von Messdaten verwendet. Der Block wird mit folgender Funktion gefüllt:
 
 




Zeile 56: Zeile 54:
[[Datei:Anleitung_S-Funktion7.PNG|400px]]
[[Datei:Anleitung_S-Funktion7.PNG|400px]]


12. Alle verwendete Dateien können aus dem folgenden Link heruntergeladen werden:
12. Alle verwendeten Quellcode-Dateien liegen in SVN unter dem folgenden Link:


https://svn.hshl.de/svn/SRC/trunk/Matlab/Mathworks_Workshop_2018/m-files/Hokuyo/S-Funktion_Wiki/
https://svn.hshl.de/svn/SRC/trunk/Matlab/Mathworks_Workshop_2018/m-files/Hokuyo/S-Funktion_Wiki/

Aktuelle Version vom 6. November 2018, 20:19 Uhr

Diese Anleitung beschreibt, wie man eine S-Funktion im Simulink erstellt. Als Sensor wird Laserscanner Hokuyo URG-04LX-UG01 verwendet. Für die Erstellung einer S-Funkton wird in dieser Anleitung fertiger C++-Quellcode verwendet.


1. Für die Erstellung der S-Funktion benötigt Simulink einen Compiler. Als Compiler kann ein Compiler von Visual Studio 2015/2017 oder MinGW 6.3 verwendet werden. Installieren Sie den Compiler, falls solcher noch nicht vorhanden ist. Um zu testen, ob ein Compiler vorhanden ist, geben Sie im Command Window mex -setup ein:

Wenn mehrere Compiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen. In dieser Anleitung verwenden wir den Compiler von Visual Studio 2017.


2. Für die Erstellung der S-Funktion werden in dieser Anleitung bereits vorhandener Quellcode verwendet. Laden Sie zuerst zip-Datei namens urg_library-1.2.3.zip aus folgender Quelle herunter und speichern Sie diese auf dem Rechner:

https://sourceforge.net/projects/urgnetwork/files/urg_library/

3. Erstellen Sie eine Build-Datei in der alle verwendeten Funktionen eingegeben werden müssen. Alle in der Build-Datei eingegebenen Quellcode-Dateien sollen im Arbeitsverzeichnis gespeichert werden. Erstellen Sie dazu die entsprechende Ordner und füllen Sie diese mit den Dateien. Die Build-Datei wird von dem Compiler bei der Verlinkung benutzt:


4. Erstellen Sie eine C-Datei, welche für die Bildung der urgsl.mexw64 - Datei verwendet wird. Als Vorlage zur Erstellung nutzen Sie timestwo.c Datei:

5. Passen Sie die timestwo.c- Datei für unseren Fall an und speichern Sie als urgsl.c.

6.Führen Sie die bereits erstellte Datei im Command Window buildUrgsl.m aus. Dabei wird eine urgsl.mexw64-Datei erstellt.

7. Erstellen Sie das Simulink-Modell:

]

8. Den S-Funktion Block finden Sie unter:

Simulink -> User-Defined Functions -> S-Function. Bei dem Parametrisieren geben Sie den Namen der erstellten C-Datei urgs ein:

9. Der Funktionsblock fcn wird für die grafische Darstellung von Messdaten verwendet. Der Block wird mit folgender Funktion gefüllt:


function fcn(x, y)
h = figure(1);
plot(x,y,'b.');

10. Der Real-Time Pacer Block wird verwendet, um die Messdaten in der Echtzeit auszugeben. Der Block und die Dokumentation kann aus der folgenden Quelle heruntergeladen werden:

https://de.mathworks.com/matlabcentral/fileexchange/29107-real-time-pacer-for-simulink

11. Nach einer erfolgreichen Erstellung der S-Funktion und des Modells sieht die Ausgabe im Simulink wie folgt aus:

12. Alle verwendeten Quellcode-Dateien liegen in SVN unter dem folgenden Link:

https://svn.hshl.de/svn/SRC/trunk/Matlab/Mathworks_Workshop_2018/m-files/Hokuyo/S-Funktion_Wiki/