ArduMower: Simulation

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

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.

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.

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.