Roboter-Software

Robotersoftware ist ein Satz von codierten Befehlen oder Anweisungen, die einem mechanischen Gerät und einem elektronischen System, zusammen als Roboter bekannt, mitteilen, welche Aufgaben auszuführen sind. Robotersoftware wird zur Ausführung autonomer Aufgaben verwendet. Viele Softwaresysteme und Frameworks wurden vorgeschlagen, um das Programmieren von Robotern zu erleichtern.

Eine Robotersoftware zielt darauf ab, intelligente mechanische Geräte zu entwickeln. Übliche Aufgaben umfassen Rückkopplungsschleifen, Steuerung, Pfadfindung, Datenfilterung, Lokalisieren und Freigeben von Daten.

Einführung
Obwohl es sich um eine bestimmte Art von Software handelt, ist sie dennoch recht unterschiedlich. Jeder Hersteller verfügt über eine eigene Robotersoftware. Während die überwiegende Mehrheit der Software sich auf die Manipulation von Daten und das Ergebnis auf dem Bildschirm bezieht, ist die Robotersoftware auf die Manipulation von Objekten oder Werkzeugen in der realen Welt ausgerichtet.

Industrieroboter-Software
Software für Industrieroboter besteht aus Datenobjekten und Anweisungslisten, die als Programmfluss (Anweisungsliste) bezeichnet werden. Zum Beispiel,

Gehe zu Jig1

ist eine Anweisung an den Roboter, zu Positionsdaten mit dem Namen Jig1 zu gelangen. Natürlich können Programme zum Beispiel auch implizite Daten enthalten

Tell-Achse 1 30 Grad bewegen.

Daten und Programm befinden sich normalerweise in separaten Bereichen des Roboterspeicher-Controllers. Man kann die Daten ändern, ohne das Programm zu ändern, und umgekehrt. Zum Beispiel kann man ein anderes Programm schreiben, indem man dasselbe Jig1 verwendet, oder man kann die Position von Jig1 anpassen, ohne die Programme zu ändern, die es verwenden.

Beispiele für Programmiersprachen für Industrieroboter
Aufgrund der hohen proprietären Natur der Robotersoftware bieten die meisten Hersteller von Roboterhardware auch eigene Software an. Während dies bei anderen automatisierten Steuerungssystemen nicht ungewöhnlich ist, stellt die fehlende Standardisierung der Programmiermethoden für Roboter einige Herausforderungen. Beispielsweise gibt es über 30 verschiedene Hersteller von Industrierobotern, so dass auch 30 verschiedene Programmiersprachen für Roboter erforderlich sind. Es gibt genügend Ähnlichkeiten zwischen den verschiedenen Robotern, so dass es möglich ist, ein umfassendes Verständnis der Roboterprogrammierung zu erlangen, ohne die proprietäre Sprache jedes Herstellers lernen zu müssen.

Eine Methode zur Steuerung von Robotern verschiedener Hersteller ist die Verwendung eines Postprozessors und einer Offline-Programmiersoftware (Robotik). Mit dieser Methode ist es möglich, markenspezifische Roboterprogrammiersprache aus einer universellen Programmiersprache wie Python (Programmiersprache) zu handhaben. Durch das Kompilieren und Hochladen von festem Offline-Code auf eine Robotersteuerung kann das Robotersystem jedoch nicht zustandsabhängig sein. Daher kann es die Bewegung und die Wiederherstellung nicht anpassen, wenn sich die Umgebung ändert. Eine einheitliche adaptive Echtzeitsteuerung für jeden Roboter ist derzeit nur mit Actin möglich.

Einige Beispiele für veröffentlichte Programmiersprachen für Roboter sind unten aufgeführt.

Aufgabe in einfachem Englisch:
Gehen Sie zu P1 (eine allgemeine sichere Position)
Zu P2 wechseln (eine Annäherung an P3)
Gehen Sie zu P3 (Position zum Auswählen des Objekts).
Greifer schließen
Gehen Sie zu P4 (eine Annäherung an P5)
Gehen Sie zu P5 (Position zum Platzieren des Objekts).
Greifer öffnen
Gehe zu P1 und fertig
VAL war eine der ersten Robotersprachen und wurde in Unimate-Robotern verwendet. Varianten von VAL wurden von anderen Herstellern einschließlich Adept Technology verwendet. Stäubli verwendet derzeit VAL3.
Beispielprogramm:
PROGRAMM-PICKPLACE
1. MOVE P1
2. MOVE P2
3. MOVE P3
4. CLOSEI 0,00
5. MOVE P4
6. MOVE P5
7. OPENI 0,00
8. MOVE P1
.ENDE
Beispiel für ein Stäubli VAL3-Programm:
Start
movej (p1, tGripper, mNomSpeed)
movej (ca. (p3, trAppro), tGripper, mNomSpeed)
movel (p3, tGripper, mNomSpeed)
schließen (tGripper)
movej (ca. (p5, trAppro), tGripper, mNomSpeed)
movel (p5, tGripper, mNomSpeed)
offen (tGripper)
movej (p1, tGripper, mNomSpeed)
Ende
trAppro ist eine kartesische Transformationsvariable. Wenn wir den Befehl „in“ verwenden, müssen wir nicht den Punkt P2 und P4 einlernen, sondern transformieren dynamisch eine Annäherung an die Position von „Pick and Place“ für die Erzeugung der Flugbahn.
Epson RC + (Beispiel für einen Vakuumaufnehmer)
Funktion PickPlace
Sprung P1
Sprung P2
Sprung P3
Im Vakuum
Warten Sie .1
Sprung P4
Sprung P5
Vakuum abschalten
Warten Sie .1
Sprung P1
Sich wehren
ROBOFORTH (eine auf FORTH basierende Sprache).
: PICKPLACE
P1
P3 GRIFF ZURÜCKZIEHEN
P5 UNGRIP WITHDRAW
P1
;
(Mit Roboforth können Sie Anflugpositionen für Orte angeben, sodass Sie nicht P2 und P4 benötigen.)

Natürlich sollte der Roboter die nächste Bewegung nicht fortsetzen, bis der Greifer vollständig geschlossen ist. In den obigen Beispielen für CLOSEI und GRIP ist die Bestätigung oder die zulässige Zeit implizit, während für den Befehl Ein Vakuum eine Zeitverzögerung erforderlich ist, um ein zufriedenstellendes Absaugen sicherzustellen.

Andere Roboterprogrammiersprachen

Visuelle Programmiersprache
Die Programmiersprache LEGO Mindstorms EV3 ist eine einfache Sprache, mit der Benutzer interagieren können. Es handelt sich um eine grafische Benutzeroberfläche (GUI), die mit LabVIEW geschrieben wurde. Der Ansatz ist, mit dem Programm und nicht mit den Daten zu beginnen. Das Programm wird erstellt, indem Sie Symbole in den Programmbereich ziehen und in die Sequenz einfügen oder einfügen. Für jedes Symbol legen Sie dann die Parameter (Daten) fest. Zum Beispiel geben Sie für das Symbol für den Motorantrieb an, welche Motoren und wie viel sie sich bewegen. Wenn das Programm geschrieben ist, wird es zum Testen in den Lego NXT ‚Brick‘ (Mikrocontroller) heruntergeladen.

Skriptsprachen
Eine Skriptsprache ist eine Programmiersprache auf hoher Ebene, die zur Steuerung der Softwareanwendung verwendet wird. Sie wird in Echtzeit interpretiert oder „on the fly übersetzt“, anstatt zuvor kompiliert zu werden. Eine Skriptsprache kann eine universelle Programmiersprache sein oder auf bestimmte Funktionen beschränkt sein, die dazu dienen, die Ausführung einer Anwendung oder eines Systemprogramms zu verbessern. Einige Skriptsprachen wie RoboLogix verfügen über Datenobjekte, die sich in Registern befinden, und der Programmablauf stellt die Liste der Anweisungen oder des Befehlssatzes dar, mit denen der Roboter programmiert wird.

Programmiersprachen in der Industrierobotik
Robotermarke Sprachenname
ABB RAPID
Comau PDL2
Fanuc Karel
Kawasaki AS
Kuka KRL
Stäubli VAL3
Yaskawa informieren
Programmiersprachen sind in der Regel für das Erstellen von Datenstrukturen und Algorithmen von Grund auf konzipiert, während Skriptsprachen eher dazu dienen, Komponenten und Anweisungen miteinander zu verbinden oder zu „verkleben“. Folglich ist der Befehlssatz für die Skriptsprache normalerweise eine vereinfachte Liste von Programmbefehlen, die verwendet werden, um den Programmiervorgang zu vereinfachen und eine schnelle Anwendungsentwicklung zu ermöglichen.

Parallele Sprachen
Ein weiterer interessanter Ansatz ist erwähnenswert. Alle Roboteranwendungen benötigen Parallelität und ereignisbasierte Programmierung. Parallelität ist, wo der Roboter zwei oder mehr Dinge gleichzeitig tut. Dies erfordert geeignete Hardware und Software. Die meisten Programmiersprachen sind auf Threads oder komplexe Abstraktionsklassen angewiesen, um die Parallelität und die damit verbundene Komplexität wie den gleichzeitigen Zugriff auf gemeinsam genutzte Ressourcen zu bewältigen. URBI bietet eine höhere Abstraktionsebene, indem Parallelität und Ereignisse in den Kern der Sprachsemantik integriert werden.

wann immer (face.visible)
{
headPan.val + = camera.xfov * face.x
&Ampere;
headTilt.val + = camera.yfov * face.y
}

Durch den obigen Code werden die headPan- und headTilt-Motoren parallel bewegt, sodass der Roboterkopf dem menschlichen Gesicht auf dem von seiner Kamera aufgenommenen Video sichtbar wird, wenn der Roboter ein Gesicht sieht.

Roboter-Anwendungssoftware
Unabhängig davon, welche Sprache verwendet wird, besteht das Endergebnis der Robotersoftware darin, Roboteranwendungen zu erstellen, die den Menschen helfen oder sie unterhalten. Zu den Anwendungen gehören Befehls- und Steuerungssoftware. Die Befehls- und Steuerungssoftware umfasst Robotersteuerungs-GUIs für tele-betriebene Roboter, Befehlssoftware mit Mausklick für autonome Roboter und Planungssoftware für mobile Roboter in Fabriken. Die Tasking-Software umfasst einfache Drag-and-Drop-Schnittstellen zum Einrichten von Zustellrouten, Sicherheitspatrouillen und Besucherführungen. Dazu gehören auch benutzerdefinierte Programme, die zur Bereitstellung bestimmter Anwendungen geschrieben wurden. Allzweckroboter-Anwendungssoftware wird auf weit verbreiteten Roboterplattformen eingesetzt.

Sicherheitsaspekte
Programmierfehler stellen insbesondere bei großen Industrierobotern einen ernsthaften Sicherheitsaspekt dar. Aufgrund der Leistungsfähigkeit und Größe von Industrierobotern können sie bei falscher Programmierung oder unsicherer Verwendung schwere Verletzungen verursachen. Aufgrund der Masse und hohen Geschwindigkeiten von Industrierobotern ist es für einen Menschen während des automatischen Betriebs immer unzuverlässig, im Arbeitsbereich des Roboters zu bleiben. Das System kann zu unerwarteten Zeiten mit der Bewegung beginnen, und ein Mensch kann in vielen Situationen nicht schnell genug reagieren, selbst wenn er dazu bereit ist. Selbst wenn die Software frei von Programmierfehlern ist, muss daher sehr darauf geachtet werden, dass ein Industrieroboter für menschliche Arbeiter oder menschliche Interaktionen sicher ist, z. B. Laden oder Entladen von Teilen, Beseitigen eines Teilestaus oder Durchführen von Wartungsarbeiten. Das amerikanische Standard ANSI / RIA R15.06-1999 für Industrieroboter und Robotersysteme – Sicherheitsanforderungen (Überarbeitung von ANSI / RIA R15.06-1992) der Robotic Industries Association ist der anerkannte Standard für Robotersicherheit. Dies beinhaltet Richtlinien sowohl für das Design von Industrierobotern als auch für die Implementierung oder Integration und Verwendung von Industrierobotern in der Fabrikhalle. Es werden zahlreiche Sicherheitskonzepte wie Sicherheitssteuerungen, maximale Geschwindigkeit während eines Lernmodus und der Einsatz von physischen Barrieren abgedeckt.

Robotik-Softwareprojekte
Das Folgende ist eine Liste von Open Source und freier Software für Robotikprojekte.

CLARAty – gekoppelte Schichtarchitektur für die Roboterautonomie. Es handelt sich um eine Zusammenarbeit zwischen vier Institutionen: dem Jet Propulsion Laboratory der NASA, dem Ames Research Center der NASA, der Carnegie Mellon und der University of Minnesota.
dLife – Free / Open Source Java-Bibliothek für Robotik, KI und Vision. Unterstützt Pioneer, Khepera II & amp; II-, Hemission-, Aibo- und Finch-Roboter sowie Player / Stage-Simulationen.
Experimental Robotics Framework – Eine Software für das Experimentieren mit mehreren Robotern in 3D mit Unterstützung der neuesten Technologien, die sich auf Player / Stage und Open / CV befindet.
MARIE – Mobile und autonome Robotik-Integrationsumgebung – ist eine Freie Software, die einen komponentenbasierten Ansatz zum Erstellen von Robotik-Softwaresystemen durch Integration bereits vorhandener und neuer Softwarekomponenten verwendet.
Microsoft – Microsoft Robotics Developer Studio
OpenRDK – Ein Open-Source-Software-Framework für die Robotik zur Entwicklung lose gekoppelter Module. Sie bietet eine transparente Parallelitätsverwaltung, eine prozessübergreifende (über Sockets) und eine prozessübergreifende (über den gemeinsam genutzten Speicher) Blackboard-basierte Kommunikation sowie eine Verknüpfungstechnik, die konzeptionelle Systemdesigns für Eingangs- / Ausgangsdatenports ermöglicht. Es werden Module zum Anschluss an Simulatoren und generische Robotertreiber bereitgestellt.
OpenRTM-aist – eine auf Basis des Middleware-Standards von RT entwickelte Softwareplattform. Es wurde vom National Institute of Advanced Industrial Science in Japan entwickelt.
OROCOS – das Open Robot Control Software-Projekt bietet ein Toolkit für Freie Software zur Echtzeitsteuerung von Roboterarmen und Werkzeugmaschinen.
OPRoS – Open Platform Robotic Services ist ein Open Source-Projekt für die Roboterentwicklung. Es bietet eine Lösung, die eine Roboterplattform und GUI-Entwicklungstools mit dem Quellcode von Komponenten für Robotereinheiten umfasst.
RoboDK – Eine Roboter-Entwicklungskit-Plattform zur Simulation von Industrierobotern. Mit dem RoboDK können Sie jeden Roboter mit Python programmieren und abhängig von Ihrer Robotersteuerung markenspezifische Syntax verwenden.
Robotics Library ist eine Open-Source-C ++ – Bibliothek, die Kinematik, Planung, Visualisierung und Hardwaretreiber für mehrere Roboter enthält.
Robotics Toolbox für MATLAB – Dies ist Freie Software, die Funktionen zur Darstellung von Pose (homogene Transformationen, Euler- und RPY-Winkel, Quaternionen), Arm-Robotern (Vorwärts- / Invers-Kinematik und -Dynamik) und mobilen Robotern (Steuerung, Lokalisierung und Planung) bietet.
Rossum-Projekt, GW Lucas, Open-Source-Robotikprojekt.
Player- / Stage-Projekt – Ein sehr beliebtes Robotersystem und ein Simulationssystem für Freie Software, das weltweit für die Forschung und Lehre in der Robotik eingesetzt wird.
Pyro, Python Robotics – Beliebte Robotik Freie Software für Universitäten und Hochschulen.
RoboMind – Lernsoftware zum Erlernen der Grundlagen der Robotik und Programmierung.
Robot Operating System – Robot Operating System ist eine Open-Source-Plattform für die Roboterprogrammierung mit Python und C ++. Java, Lisp, Lua und Pharo werden unterstützt, befinden sich jedoch noch im experimentellen Stadium.
Robot Intelligence Kernel

Offline-Programmierung
Visual Components ist eine kommerzielle 3D-Simulationssoftware für diskrete Ereignisse, die Materialfluss- und Robotersimulation auf einer Plattform ermöglicht. Die Funktionalität kann mit Offline-Programmierfunktionen und SPS-Konnektivität erweitert werden.
„Die Grundlagen – Robotersoftware“. Seattle Robotics Society.
„Mobile Autonome Robotersoftware (MARS)“. Georgia Tech Research Corporation.
„Tech-Datenbank“. robot.spawar.navy.mil.
Anpassungsfähige Robotik-Software im Idaho National Laboratory

Online-Steuerung
Energid Technologies entwickelt und vertreibt das Actin SDK, ein Robotik-Toolkit, eine Optimierungs-Engine und ein in C ++ geschriebenes Constraint-Management-System, das Jacobian-basierte Kinematiken zur Optimierung der Leistung über alle Robotertypen hinweg verwendet. Da Actin als SDK verkauft wird, kann es in andere Robotersteuerungssoftwarepakete weiß beschriftet oder OEM-zertifiziert werden. Dieser Ansatz ermöglicht es Benutzern, die Steuerung eines bekannten Systems in einem Offline-Modus über eine grafische Benutzeroberfläche zu entwickeln und Actin die übergeordnete Online-Steuerung handhaben zu lassen, um ständig aktualisierte Befehle auf Gelenkebene in Echtzeit an den Roboter / Controller zu übertragen, um Kollisionen durch Anpassung zu vermeiden wahrgenommene Umweltveränderungen.