ArduMower: Simulation: Unterschied zwischen den Versionen
K (Simon Kohfeld verschob Seite Ardumower Simulation nach ArduMower: Simulation) |
|||
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:ArduMower]] | [[Kategorie:ArduMower]] | ||
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom [[Projekt_ArduMower|Projekt Ardumower]] im 6. Semester [http://www.hshl.de/mechatronik-bachelorstudiengang/ Mechatronik] absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht. | |||
Autoren: [[Benutzer:Simon_Kohfeld| Simon Kohfeld]] | |||
Betreuer: [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]],[[Benutzer:Mirekgoebel| Prof. Dr.-Ing. Mirek Göbel]] | |||
= Aufgabe = | |||
Erstellung einer Simulationsumgebung für den Ardumower und Erstellung eines Frameworks in Simulink als Softwaregerüst | |||
== Erwartungen an die Projektlösung == | |||
* Ermöglicht den Test von Software | |||
* Bietet Basis für die Erstellung der Steuerungssoftware | |||
= Framework = | |||
Für die Implementierung des Ardumower über Simulink ist ein Framework notwendig, welches zwischen den Modi online und offline umschaltbar ist. Im Onlinemodus soll der Ardumower direkt über das Framework ansteuerbar sein, d.h. die Sensoren werden in Echtzeit ausgelesen und die Motoren in Echtzeit angesteuert. Im Offlinemodus soll das Ardumower-Verhalten simuliert und dargestellt werden. Dazu ist im Offlinemodus ein Fahrzeugmodell hinterlegt. | |||
= Umsetzung des Frameworks = | |||
Die Hauptsoftware wird vollständig in Matlab/Simulink realisiert, wodurch keine programmiersprachenübergreifenden Schnittstellen erforderlich sind. | |||
In Matlab wird eine Start-Datei erstelt, mit welcher das Modell der Hauptsoftware gestartet werden kann. In der Start-Datei kann kofiguriet werden, ob das Online- oder das Offlinemodell gestartet werden soll und welche Parameter in das Modell geladen werden. Für diese Funktion werden Pfade vorgegeben, aus welchen die entsprechenden Dateien geladen werden. Der Code der Start-Datei ist nachfolgend zu sehen. | |||
<big> | |||
<source lang="cpp"> | |||
#define TRIGGER 3 | |||
#define ECHO 2 | |||
clc; | |||
close all; | |||
% Ja = 1, Nein = 0 | |||
Schalter_Online_bit = 0; | |||
%% Pfade setzen | |||
addpath funktionen/; | |||
addpath libraries/; | |||
addpath parameter/; | |||
%% Gewünschtes Modell öffnen | |||
if(Schalter_Online_bit) | |||
open_system('mdl_online.slx'); | |||
else | |||
open_system('mdl_offline.slx'); | |||
end | |||
%% Parameter setzen | |||
AKT_MF; | |||
SIM_PAR; | |||
</source> | |||
</big> | |||
= Online-Modell = | |||
Das Online-Modell ist in Abbildung 2 dargestellt. Es besteht aus einem Sensorblock, welcher die jeweiligen Bibliotheken beinhaltet, um die einzelnen Sensoren auslesen zu können. Die ausgelesenen Sensordaten werden in dem folgendem Block aufbereitet für den Hauptsoftware Block. Der Hauptsoftware Block verwaltet die Bibliotheken für die Mähstrategie, für die Motorsteuerung, für die Kartierung und die Diagnose. Von dem Hauptsoftware Block aus werden die Signale an die Aktoren weitergegeben. | |||
[[Bild:Online_Modell.png|1200px]] | |||
= Offline-Modell = | |||
Das Offline-Modell in Abbildung 3 beinhaltet den Ablauf des Online-Modells. Zusätzlich ist ein Fahrzeugmodell des Ardumower integriert, mit welchem die Aktoren des Ardumower simuliert und dargestellt werden können. Das Offline-Modell dient dem einfachen und schnellen Testen von neuen Algorithmen ohne den Ardumower nutzen zu müssen. | |||
[[Bild:Offline_Modell.png|1200px]] | |||
= Aktueller Entwicklungsstand Meilenstein 2= | |||
Die in Simulink erstellte Software kann für den Ardumower kompiliert und aufgespielt werden und es ist bereits möglich die Fahrmotoren anzusteuern. Momentan wird die Anbindung der wichtigen Sensoren in die Software vorgenommen. Aktuell werden der Bumper und die Ultraschallsensoren integriert. Diese können bereits über das Modell ausgelesen werden. Das Auslesen ist im Moment allerings noch Fehlerbehaftet, weshalb dort aktuell Debugging betrieben wird. | |||
Aufgrund der noch zu behebenden Fehler bei der Einbindung der ersten Sensoren ist das Soll-Ziel für die Simuation und das Framework lediglich zu 90 % erreicht worden. | |||
= Ausblick zu Meilenstein 3 = | |||
Für Meilenstein 3 ist es vorgesehen, die Simulationsumgebung in Betrieb zu nehmen. Diese ist zwar bereits funktionsfähig, wird allerdings bisher nicht genutzt. Das Team soll in die Simulationsumgebung eingewiesen werden, um die Vorteile dieser nutzen zu können. | |||
Zusätzlich sollen weitere Module in das Framework integriert werden. Dazu gehören der PID-Regler, der Schleifensensor und das WIFI-Modul. | |||
Außerdem soll die Planung von Modultests parallel vorgenommen werden. | |||
Bei guten Fortschritt der genannten Punkte werden zusätzlich die zu Meilenstein 4 vorgesehenen Module Mähstrategie, HMI und die Sicherheitsmodule hinzugefügt. | |||
= Aktueller Entwicklungsstand Meilenstein 3= | |||
Die Module [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Perimeterschleife Perimeterschleife] und [http://193.175.248.52/wiki/index.php/ArduMower:_Umfeldsensorik Ultraschall] wurden im Sensorblock integriert. Bei der Integration des [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Inertialnavigation IMU]-Blocks kam es zu einigen Komplikationen, sodass dieser momentan im Online Modell noch nicht lauffähig ist. | |||
In der Hauptsoftware wurden die [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Drahtlose_Datenschnittstelle Diagnoseschnittstelle] und der [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Regler PID-Regler] eingebunden. Die Daten aus dem Online Modell können über WLAN an einen Diagnose-Rechner gesendet werden. | |||
Die [http://193.175.248.52/wiki/index.php/ArduMower:_Elektrischer_Antrieb Aktoren] wurden ebenfalls eingebunden. | |||
Der Ardumower kann zum Stand des Meilenstein 3 mithilfe des Perimeter-Sensors, eines PID-Reglers und der Aktoren geregelt an der Perimeterschliefe entlang fahren, während alle verfügbaren Daten in Echtzeit an einen Diagnose-Rechner gesendet werden. | |||
Im Offline Modell wurden Blöcke zur Sensorsimulation eingefügt und die [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Kartierung Karte] eingebunden. Das Online Modell ist kompilierfähig, aber die Karte bereitet zum aktuellen Stand noch Schwierigkeiten. | |||
Gemessen an den im Ausblick genannten Punkten zu Meilenstein 3, ist ein 85 %iger Entwicklungsstand erreicht worden. Die dort als wichtig eingestuften Module sind erfolgreich eingebunden und in Betrieb genommen worden, bei der Fehlerbehandlung der IMU ist allerdings viel Zeit verloren gegeangen, was einen noch weiteren Fortschritt verhindert hat. | |||
Das Online- Modell ist dennoch im Soll, das Offline Modell ist leicht hinter dem angestrebten Entwicklungsstand. | |||
= Aktueller Entwicklungsstand Meilenstein 4 = | |||
Für den Meilenstein 4 ist der Projektabschluss vorgesehen. Die fehlenden Module [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_M.C3.A4hstrategie Mähstrategie], [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_M.C3.A4her-Interface HMI] und die Fehlerbehebung der [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Inertialnavigation IMU] können integriert werden. Die Fehlerbehebungen in der [http://193.175.248.52/wiki/index.php/Projekt_ArduMower#ArduMower:_Kartierung Karte] im Offline Modell sind ebenfalls angegangen worden. | |||
= Gesamtbewertung = | |||
Die an das Framework gestellten Anforderungen können vollständig erfüllt werden. Alle lauffähigen Module sind integriert und getestet. | |||
= Offene Punkte= | |||
Es sollten noch einige Testszenarien gefahren werden, um die fehlerfreie Funktionsweise des ArduMower garantieren zu können. Bei der Integration der Strategie in das Offline-Modell ist ein Fehler aufgetreten, der allerdings auf die Strategie und nicht auf das Framework zurükzuführen ist. |
Aktuelle Version vom 13. Februar 2018, 16:34 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Projekt Ardumower im 6. Semester Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren: Simon Kohfeld
Betreuer: Prof. Dr.-Ing. Schneider, Prof. Dr.-Ing. Mirek Göbel
Aufgabe
Erstellung einer Simulationsumgebung für den Ardumower und Erstellung eines Frameworks in Simulink als Softwaregerüst
Erwartungen an die Projektlösung
- Ermöglicht den Test von Software
- Bietet Basis für die Erstellung der Steuerungssoftware
Framework
Für die Implementierung des Ardumower über Simulink ist ein Framework notwendig, welches zwischen den Modi online und offline umschaltbar ist. Im Onlinemodus soll der Ardumower direkt über das Framework ansteuerbar sein, d.h. die Sensoren werden in Echtzeit ausgelesen und die Motoren in Echtzeit angesteuert. Im Offlinemodus soll das Ardumower-Verhalten simuliert und dargestellt werden. Dazu ist im Offlinemodus ein Fahrzeugmodell hinterlegt.
Umsetzung des Frameworks
Die Hauptsoftware wird vollständig in Matlab/Simulink realisiert, wodurch keine programmiersprachenübergreifenden Schnittstellen erforderlich sind. In Matlab wird eine Start-Datei erstelt, mit welcher das Modell der Hauptsoftware gestartet werden kann. In der Start-Datei kann kofiguriet werden, ob das Online- oder das Offlinemodell gestartet werden soll und welche Parameter in das Modell geladen werden. Für diese Funktion werden Pfade vorgegeben, aus welchen die entsprechenden Dateien geladen werden. Der Code der Start-Datei ist nachfolgend zu sehen.
#define TRIGGER 3
#define ECHO 2
clc;
close all;
% Ja = 1, Nein = 0
Schalter_Online_bit = 0;
%% Pfade setzen
addpath funktionen/;
addpath libraries/;
addpath parameter/;
%% Gewünschtes Modell öffnen
if(Schalter_Online_bit)
open_system('mdl_online.slx');
else
open_system('mdl_offline.slx');
end
%% Parameter setzen
AKT_MF;
SIM_PAR;
Online-Modell
Das Online-Modell ist in Abbildung 2 dargestellt. Es besteht aus einem Sensorblock, welcher die jeweiligen Bibliotheken beinhaltet, um die einzelnen Sensoren auslesen zu können. Die ausgelesenen Sensordaten werden in dem folgendem Block aufbereitet für den Hauptsoftware Block. Der Hauptsoftware Block verwaltet die Bibliotheken für die Mähstrategie, für die Motorsteuerung, für die Kartierung und die Diagnose. Von dem Hauptsoftware Block aus werden die Signale an die Aktoren weitergegeben.
Offline-Modell
Das Offline-Modell in Abbildung 3 beinhaltet den Ablauf des Online-Modells. Zusätzlich ist ein Fahrzeugmodell des Ardumower integriert, mit welchem die Aktoren des Ardumower simuliert und dargestellt werden können. Das Offline-Modell dient dem einfachen und schnellen Testen von neuen Algorithmen ohne den Ardumower nutzen zu müssen.
Aktueller Entwicklungsstand Meilenstein 2
Die in Simulink erstellte Software kann für den Ardumower kompiliert und aufgespielt werden und es ist bereits möglich die Fahrmotoren anzusteuern. Momentan wird die Anbindung der wichtigen Sensoren in die Software vorgenommen. Aktuell werden der Bumper und die Ultraschallsensoren integriert. Diese können bereits über das Modell ausgelesen werden. Das Auslesen ist im Moment allerings noch Fehlerbehaftet, weshalb dort aktuell Debugging betrieben wird. Aufgrund der noch zu behebenden Fehler bei der Einbindung der ersten Sensoren ist das Soll-Ziel für die Simuation und das Framework lediglich zu 90 % erreicht worden.
Ausblick zu Meilenstein 3
Für Meilenstein 3 ist es vorgesehen, die Simulationsumgebung in Betrieb zu nehmen. Diese ist zwar bereits funktionsfähig, wird allerdings bisher nicht genutzt. Das Team soll in die Simulationsumgebung eingewiesen werden, um die Vorteile dieser nutzen zu können. Zusätzlich sollen weitere Module in das Framework integriert werden. Dazu gehören der PID-Regler, der Schleifensensor und das WIFI-Modul. Außerdem soll die Planung von Modultests parallel vorgenommen werden. Bei guten Fortschritt der genannten Punkte werden zusätzlich die zu Meilenstein 4 vorgesehenen Module Mähstrategie, HMI und die Sicherheitsmodule hinzugefügt.
Aktueller Entwicklungsstand Meilenstein 3
Die Module Perimeterschleife und Ultraschall wurden im Sensorblock integriert. Bei der Integration des IMU-Blocks kam es zu einigen Komplikationen, sodass dieser momentan im Online Modell noch nicht lauffähig ist.
In der Hauptsoftware wurden die Diagnoseschnittstelle und der PID-Regler eingebunden. Die Daten aus dem Online Modell können über WLAN an einen Diagnose-Rechner gesendet werden.
Die Aktoren wurden ebenfalls eingebunden.
Der Ardumower kann zum Stand des Meilenstein 3 mithilfe des Perimeter-Sensors, eines PID-Reglers und der Aktoren geregelt an der Perimeterschliefe entlang fahren, während alle verfügbaren Daten in Echtzeit an einen Diagnose-Rechner gesendet werden.
Im Offline Modell wurden Blöcke zur Sensorsimulation eingefügt und die Karte eingebunden. Das Online Modell ist kompilierfähig, aber die Karte bereitet zum aktuellen Stand noch Schwierigkeiten.
Gemessen an den im Ausblick genannten Punkten zu Meilenstein 3, ist ein 85 %iger Entwicklungsstand erreicht worden. Die dort als wichtig eingestuften Module sind erfolgreich eingebunden und in Betrieb genommen worden, bei der Fehlerbehandlung der IMU ist allerdings viel Zeit verloren gegeangen, was einen noch weiteren Fortschritt verhindert hat. Das Online- Modell ist dennoch im Soll, das Offline Modell ist leicht hinter dem angestrebten Entwicklungsstand.
Aktueller Entwicklungsstand Meilenstein 4
Für den Meilenstein 4 ist der Projektabschluss vorgesehen. Die fehlenden Module Mähstrategie, HMI und die Fehlerbehebung der IMU können integriert werden. Die Fehlerbehebungen in der Karte im Offline Modell sind ebenfalls angegangen worden.
Gesamtbewertung
Die an das Framework gestellten Anforderungen können vollständig erfüllt werden. Alle lauffähigen Module sind integriert und getestet.
Offene Punkte
Es sollten noch einige Testszenarien gefahren werden, um die fehlerfreie Funktionsweise des ArduMower garantieren zu können. Bei der Integration der Strategie in das Offline-Modell ist ein Fehler aufgetreten, der allerdings auf die Strategie und nicht auf das Framework zurükzuführen ist.