Software für die Robotik

Avatar-Foto

Selbst bei einfachsten Robotern werden mehrere Software-Steuerungsebenen benötigt. Die für das Management von Sensorik und Aktorik zuständigen Mikrocontroller (MCUs) und Ein-Chip-Systeme (SoC) nutzen meist ein Echtzeitbetriebssystem (RTOS) oder einen Kernel.

Maximierung der Systemressourcen mit RTOS-Multitasking

Ein RTOS hat den Vorteil, dass es Multitasking unterstützt. Es stellt eine relativ einfache Möglichkeit dar, zahlreiche Aktivitäten auf einem einzigen Mikroprozessor so zu planen, dass die Ressourcen maximal genutzt werden und das System auf externe Ereignisse reagieren kann. Beispielsweise muss die Tätigkeit beim Öffnen des Sicherheitskäfigs so ausgesetzt werden, dass die Gefährdung für Roboter und Personal möglichst gering ausfällt. Ein einfaches Abschalten des Stroms käme einer potenziellen Gefährdung gleich. Ein RTOS kann alle notwendigen Aktionen auslösen, damit der Roboter stillgesetzt wird, dabei aber keine schweren Gegenstände fallen lässt oder Schäden in der Umgebung anrichtet. Dazu kann beispielsweise auf einen Aktivitätsträger in der Software umgeschaltet werden, der die Schaltungen in der Leistungselektronik anweist, die Motoren in vorab definierten Positionen anzuhalten.

In Kombination mit einer entsprechend entwickelten Anwendungssoftware kann ein RTOS harte Sicherheitsgarantien für die Reaktionsdauer bei kritischen Ereignissen gewährleisten, die sich normalerweise durch einen externen Interrupt des Mikroprozessors ankündigen. Dieses Verfahren wird meist von einem Interrupt-Handler geregelt, der einen Massnahmen einleitenden Aktivitätsträger in der Software initiiert. Durch prioritätsbasierte, präemptive Planung garantiert das RTOS die kürzestmögliche Latenz für diese Art der Reaktion auf die wichtigsten Probleme.

ROS: Das Roboterbetriebssystem

Bei Robotern mit mehreren Mikroprozessoren und Hardware-Beschleunigern (von denen es immer mehr gibt) muss jeder einzelne Stellgliedknoten von einem Aufsichtssystem überwacht werden, das sich um Aufgabenplanung und übergeordnetes Verhalten kümmert. Diese Rolle wird meist vom Roboterbetriebssystem (ROS) oder ähnlicher Middleware auf einem Hochleistungs-Mikroprozessor übernommen.

Heutige ROS sind nicht als eigenes Betriebssystem konzipiert, sondern werden auf einem übergeordneten Betriebssystem (z. B. Linux) ausgeführt. Das ROS fordert vom zugrunde liegenden Betriebssystem kein RTOS-Verhalten, da es längerfristige Aufgaben ausführt, die keine Reaktionszeiten im Mikrosekundenbereich benötigen. Es wird allerdings an ROS-2.0-Systemen gearbeitet, die auf RTOS-Plattformen ausgeführt werden und daher schneller reagieren können.
Die Middleware für das ROS leistet verschiedene Dienste, beispielsweise eine Hardwareabstraktion von hardwarenahen Geräten oder die Unterstützung des prozessübergreifenden Nachrichtenaustausches zugunsten von Multiprozessor-Architekturen und einer Managementfunktion für Softwarepakete. Die Prozesse werden meist mithilfe von Grafiken mit Knotenverknüpfungen dargestellt, an denen zu erkennen ist, wo die Verarbeitung stattfindet und wie die Prozesse untereinander kommunizieren. Bei den ROS-Implementierungen handelt es sich oft um Open-Source-Pakete, die mithilfe von Linux-Plattformen das Management der Abhängigkeiten zwischen den Open-Source-Projekten erleichtern. Der Vorteil besteht darin, dass die ROS-Software leicht zugänglich ist.

Im ROS handelt es sich bei den Knoten um Prozesse oder Softwaremodule, die mindestens eine projektbezogene Aufgabe bearbeiten. Beispielsweise verarbeiten eine Kamera und ein Bildverarbeitungsknoten die visuellen Daten von einem oder mehreren Bildsensoren. Damit die Knoten über eine Netzwerkinfrastruktur (eine Architektur, die heute im Automobilbau verbreitet ist) miteinander verbunden werden können, unterstützt das ROS Protokolle wie TCP/IP und UDP für die Nachrichtenübertragung. Die verschiedenen Knoten und Verbindungen können mit dem XML-Datenformat URDF (Universal Robot Description Format) beschrieben werden.

Für den effizienten Austausch von Sensordaten und Befehlen hat das ROS einen Publish & Subscribe-Mechanismus (Veröffentlichen und Abonnieren), in dem sich die Knoten registrieren und anschliessend über bestimmte Themen informiert werden. Alle abonnierten Knoten erhalten Aktualisierungen zu den einzelnen Themen. Der ROS-Master verfolgt alle Dienste und Themen. Er übernimmt die Registrierung der Knoten und betreibt einen Parameter-Server, auf dem die Knoten gemeinsame Konfigurationsdaten speichern und abrufen können.

Der grosse Vorteil einer ROS-Middleware ist die Wiederverwendung und gemeinsame Nutzung von Code. Durch das Code-Sharing können alle Nutzer auf eine gemeinsame Softwarebasis zurückgreifen, was das Testen erleichtert und die Zuverlässigkeit der Software insgesamt verbessert. ROS ist nicht auf physische Roboter beschränkt, sondern unterstützt auch simulierte Roboter.

Die Rolle der Simulation in der Robotikentwicklung

Eine wichtige Voraussetzung für die Entwicklung eines Roboters ist die Möglichkeit, sein Verhalten in der virtuellen Umgebung zu simulieren, bevor die Umsetzung in Hardware erfolgt. Mit dem Simulator können Robotikprogramme offline geschrieben und auf Fehler geprüft werden. Die Software wird also in einer risikofreien Umgebung entwickelt, sodass der Roboter und seine Umgebung nicht beschädigt werden, falls das vorgeschlagene Programm schwerwiegende Fehler enthält. Die endgültige Version des Programms wird später an einem echten Roboter getestet.

Aber die Simulation birgt noch weitere Vorteile: Die Entwickler können phasenweise entwickeln. Sie beginnen mit einfachen Modellen ohne viel Detail, was sich besonders bei komplexen Projekten anbietet. Derartige Simulationen können schon früh im Prozess eingesetzt werden, um die grundsätzliche Durchführbarkeit des Systems zu ermitteln. Die für die Robotik entwickelten Simulationsumgebungen sind mit zahlreichen Programmiersprachen kompatibel und erleichtern die Entwicklungsarbeit. Zusätzlich verkürzen Simulationen oft die Entwicklungsdauer, da Fehler in der Anwendungslogik korrigiert werden können, bevor sie in der Hardware umgesetzt werden und dann nur schwer zu beheben sind.

Bei der Robotersimulation gibt es verschiedene Verfahren. Bislang konzentrierte sich die Arbeit auf die Kinematik der Roboterbewegungen, um die Umsetzbarkeit und Zweckmässigkeit der Bahnen und Trajektorien zu prüfen.

Bei dieser Simulationsvariante zeigt ein virtueller Roboter in einem 3D-Raum, wie sich die Gelenke in der Realität wahrscheinlich verhalten werden. Durch Simulation lässt sich auch ermitteln, ob der Roboter schwere oder sperrige Gegenstände heben und handhaben kann, ohne an Standsicherheit einzubüssen.

Einige Kinematiksimulatoren arbeiten mit vereinfachten Berechnungen und konzentrieren sich auf die programmgesteuerte Drehung und Bewegung von Gegenständen, um Kollisionen mit dem Sicherheitskäfig oder der Arbeitszelle zu vermeiden. Andere wiederum setzen auf komplexere Physiksimulationen, um Belastungen und andere Aspekte zu simulieren, die sich auf die Praxisleistung des Roboters auswirken können.

Simulation von Roboterinteraktionen in dynamischen Umgebungen

Wenn ein Roboter die kontrollierte, durch Sicherheitskäfige geschützte Umgebung verlässt und dort eingesetzt wird, wo sich Menschen und andere Roboter frei bewegen, müssen die Entwickler die entsprechenden Interaktionen berücksichtigen. In der mobilen Robotik können die Entwickler im Verhaltenssimulator auf einem hohen Abstraktionsniveau virtuelle Welten mit weiteren Objekten erschaffen. Eine einfache Verhaltenssimulation berücksichtigt nur die Bewegungen eines Roboters zwischen feststehenden Objekten. Komplexere Simulationen beinhalten mehrere mobile Agenten oder Avatare. Diese verhaltensbasierten Simulatoren unterstützen die Entwicklung von Anwendungen, in denen der Roboter mit komplexen Umgebungen konfrontiert wird. Sie lernen aus Kollisionen und anderen Interaktionen, um besser mit Hindernissen umgehen zu können. Physikalische Simulationen werden benötigt, um zu prüfen, ob die Kinematik des Roboters akkurat dargestellt wird.

Auswahl der richtigen Physik-Engine für Ihren Roboter

Simulationsumgebungen wie das Open-Source-Paket Gazebo können realistische Sensordaten generieren, die mit unterschiedlichen Störpegeln besetzt werden. Mit Gazebo lässt sich die Simulation auf die konkreten Anforderungen der Anwendung abstimmen, beispielsweise durch den Einsatz verschiedener Physik-Engines. Für die Simulation überfüllter Umgebungen wird oft ein Maximalkoordinatensolver wie ODE oder Bullet eingesetzt. Featherstone-basierte Solver wie DART oder Simbody finden eher Anwendung bei Gelenksystemen wie humanoiden Robotern oder komplexen Fertigungsrobotern. Alle Physik-Engines sind über dieselbe Programmierschnittstelle (API) zugänglich.

Die Simulationstechnik hat aber auch ihre Grenzen. Eine Anwendung kann immer nur die jeweils programmierten Eigenschaften und Ereignisse simulieren. Es werden keine internen und externen Faktoren dargestellt oder simuliert, was bei der Hardware-Umsetzung des Konzeptes zu Problemen führen kann. Oft ist es auch schwierig, ausreichend repräsentative Szenarien zu entwerfen, was insbesondere für die Auswertung komplexer Situationen und Verhaltensweisen gilt. Erfahrungen bei der Umsetzung simulierter Konzepte in die physische Umgebung können auf zukünftige Projekte übertragen werden, sodass sich die Fehlerquote mit der Zeit verringert.

Daher zählt die Simulation auch weiterhin zu den wichtigsten Hilfsmitteln bei der Entwicklung von Robotern.

Total
0
Shares
Vorheriger Beitrag

Die Bedeutung von UV-Beleuchtung für den Gartenbau

Nächster Beitrag

Quantensprünge: Revolutionierung der intelligenten Fertigung

Verwandte Beiträge