Entwicklungsumgebung für die Programmierung und Simulation von Robotern
Im Rahmen mehrerer Aufträge für ein Robotikunternehmen hatte ich die Gelegenheit, tiefer in die Programmierung, Simulation und Testung verschiedener Robotermodelle einzutauchen. Im ursprünglichen Auftrag bestand die Aufgabe darin, auf einem Server eine Python und C++ Entwicklungsumgebung und -plattform aufzubauen, mit der Roboter programmiert und anschließend mithilfe einer Software visualisiert und simuliert werden können. Die Entwicklungsumgebung sollte mehrere Anforderungen erfüllen:
- Entwicklungsumgebung soll die Programmierung und Simulation von Robotern erleichtern
- Programmierung der Roboter mithilfe des Python und C++ Frameworks Robot Operating System (ROS)
- Visualisierung, Simulation und Auswertung von ROS-Anwendungen mithilfe von Gazebo
- Zugriff auf Entwicklungsumgebung über eine Virtual Machine auf einem Server
- Erstellung und Verwaltung von Projekten und Steuerung der Umgebung mithilfe eines zentralen Kontrollsystems in C
- Integration von Pipelines zwischen lokalen Git Verzeichnissen, GitHub und Server
ROS ist ein Robotik Middleware Framework, welches als Schnittstelle zwischen dem Roboter Programm und der Hardware des Roboters fungiert und die Entwicklung von Robotiksystemen erleichtert. ROS bietet eine Vielzahl an speziellen Packages für einzelne Komponenten, wie etwa für Kamerasysteme, Navigation oder Joysticks. Gazebo ist ein Physiksimulator, mit dem das Verhalten und die Steuerung des Roboters unter verschiedenen Bedingungen realitätsnah simuliert und getestet werden können, wie etwa Gravitation, Masse, Reibung, Kollisionen, Motoren, Sensoren, Licht, Kameras oder LiDAR-Systeme.
Folgeaufträge und Erweiterung der Umgebung
Nach der erfolreichen Implementierung der Entwicklungsumgebung folgten weitere Aufträge zur Erweiterung der Plattform. Ziel des ersten Folgeauftrages war die Entwicklung eines integrierten Test- und Monitoring Moduls. Dieses wird bei der Erstellung neuer Projekte automatisch eingerichtet und umfasst ein Kontroll- und Monitoringsystem zur Durchführung verschiedener Stabilitäts- und Belastungstests. Dabei werden zudem Messdaten automatisiert erfasst, standardisierte Analyseverfahren angewandt sowie automatische Testberichte generiert. Eingerichtet wurde das Testing Modul zur Simulation und Analyse von
- Schwerpunktlage
- Geschwindigkeit
- Beschleunigung
- Bremsverhalten
- Kurvenradius
- Stabilität auf unterschiedlichen Untergründen
- Stabilität auf verschiedenen Steigungen
- Externe Impacts
- Lasten
- etc.
Ein weiterer Auftrag bestand darin mehrere Konverter in der Umgebung aufzusetzen und zu konfigurieren, die CAD Dateiformate in XML Vorlagen für .urdf Dateien der ROS Entwicklung überführen.
