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
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 fertige in C++-Code geschriebe Funktionen und Bibliotheken verwendet.
Für die Erstellung der S-Funkton werden in dieser Anleitung fertige in C++-Code geschriebene Funktionen und Bibliotheken verwendet.




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


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


Wenn mehrere Kompiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen.
Wenn mehrere Compiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen.
   
   


Zeile 14: Zeile 14:
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 eingegebne Quellcode sollen im Arbeitsverzeichnis gespeichert werden. Erstellen Sie dazu etsprechende Ordner und füllen Sie diese. Die Build-Datei wird von dem Komiler bei der Verlinkung verwendet:
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:


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


   
   
4. Erstellen Sie eine C-Datei, welche fur die Erstellung der ''urgsl.mexw64'' - Datei verwendet wird. Als Vorlage zur Estellung nutzen Sie ''timestwo.c'' Datei:
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:


[[Datei:Anleitung_S-Funktion3.PNG|900px]]
[[Datei:Anleitung_S-Funktion3.PNG|900px]]
Zeile 25: Zeile 25:
5. Passen Sie die ''timestwo.c''- Datei für unseren Fall an und speichern Sie als urgsl.c.
5. Passen Sie die ''timestwo.c''- Datei für unseren Fall an und speichern Sie als urgsl.c.


6.Führen Sie die bereits erstelte Datei im Command Window ''buildUrgsl.m'' aus. Dabei wird eine ''urgsl.mexw64''-Datei erstellt.
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:
7. Erstellen Sie das Simulink-Modell:
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 und geben Sie in Parameter den Namen von C-Datei: ''urgs''
Simulink -> User-Defined Functions -> S-Function Als Parameter geben Sie den Namen von der erstellten C-Datei: ''urgs''


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


9. Der Funktionblock ''fcn'' wird für grafische Darstellung von Messdaten verwendet. Folgende Funktion wird dabei ausgeführt:
9. Der Funktionsblock ''fcn'' wird für die grafische Darstellung von Messdaten verwendet. Folgende Funktion wird dabei ausgeführt:




Zeile 48: Zeile 48:
</syntaxhighlight>
</syntaxhighlight>


10. Der Real-Time Pacer Block wird verwendet, um die Messdaten echtzeitnah auszugeben. Der Block und die Dokumentation kann aus der folgenden Quelle heruntergeladen werden:
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
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 wie folgt aus:
11. Nach einer erfolgreichen Erstellung der S-Funktion und des Modells sieht die Ausgabe im Simulink wie folgt aus:


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

Version vom 6. November 2018, 18:02 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 der S-Funkton werden in dieser Anleitung fertige in C++-Code geschriebene Funktionen und Bibliotheken 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.

Wenn mehrere Compiler vorhanden sind, werden Sie aufgefordert, einen auszuwählen.


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:

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:


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:

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 Als Parameter geben Sie den Namen von der erstellten C-Datei: urgs

9. Der Funktionsblock fcn wird für die grafische Darstellung von Messdaten verwendet. Folgende Funktion wird dabei ausgeführt:



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 verwendete Dateien können aus dem folgenden Link heruntergeladen werden:

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