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
 
(26 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 fertige in C++-Code geschriebe 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 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 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 Kompiler 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 von S-Funktion wirden bereits vorhandene Bibliotheken verwendet. Laden Sie zuerst aus folgende Quelle vorhande Bibliothek ''urg_library-1.2.3.zip'' und speichern Sie 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. Die Build-Datei wird von dem Komiler bei der Verlinkung verwendet:
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]]
[[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 Bildung der ''urgsl.mexw64'' - Datei verwendet wird. Als Vorlage zur Erstellung nutzen Sie ''timestwo.c'' Datei:


[[Datei:Anleitung_S-Funktion3.PNG]]
[[Datei:Anleitung_S-Funktion3.PNG|900px]]


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:


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


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. Bei dem Parametrisieren geben Sie den Namen der erstellten C-Datei ''urgs'' ein:
 
[[Datei:Anleitung_S-Funktion5.PNG]]


9. Der Funktionblock ''fcn'' wird für grafische Darstellung von Messdaten verwendet. Folgende Funktion wird dabei ausgeführt:
[[Datei:Anleitung_S-Funktion5.PNG|400px]]


function fcn(x, y)
9. Der Funktionsblock ''fcn'' wird für die grafische Darstellung von Messdaten verwendet. Der Block wird mit folgender Funktion gefüllt:




<syntaxhighlight lang="matlab" style="background-color: #EFF1C1; font-size:larger">
<syntaxhighlight lang="matlab" style="background-color: #EFF1C1; font-size:larger">
 
function fcn(x, y)
h = figure(1);
h = figure(1);
plot(x,y,'b.');
plot(x,y,'b.');
</syntaxhighlight>
</syntaxhighlight>


10. Der Real-TimePacer Block wird verwendet, um die Messdaten echtzeitnah auszugeben. Eine Vorlage für die Erstellung des Blockes wird aus der folgende Quelle heruntergeladen:
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


.In Ihrem Verzeichnis sollen Sie folgende Ordner haben:
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]]
 
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/

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/