You are currently viewing Die wichtigsten Programmiersprachen in der Robotik

Die wichtigsten Programmiersprachen in der Robotik

In der Robotik werden viele verschiedene Programmiersprachen verwendet. Die Wahl hängt von der individuellen Erfahrung des Programmierers, aber auch von der zu lösenden Aufgabe ab. Dieser Artikel beschreibt die wichtigsten Programmiersprachen und zeigt, in welchen Bereichen der Robotik sie am häufigsten verwendet werden. Am Ende des Artikels besprechen wir, welche Programmiersprache am besten für Anfänger geeignet ist.

Hinweis: Dieser Artikel ist ein vereinfachter Überblick, der Orientierung bieten soll. Nichts davon ist in Stein gemeißelt, da für die selben Aufgaben viele verschiedenen Programmiersprachen verwendet werden können.

1. C/C++

C/C++ kann in fast jedem Bereich der Robotik eingesetzt werden, aber je näher man an der Hardware arbeitet, desto unvermeidlicher wird es. Das beginnt schon bei der eingebetteten Software, die in der Regel auf einem Mikrocontroller läuft und direkt die Motoren in den Robotergelenken ansteuert.

Des Weiteren gibt es in der Regel irgendeine Form der Kommunikation, welche die Roboterhardware mit der sogenannten “higher level” Software verbindet (zum Beispiel der Roboterregelung) die üblicherweiße auf einem sparaten Steuerungscomputer läuft. Diese Regelung sowie die Bewegungsplanung des Roboters werden ebenfalls häufig in C/C++ implementiert. Ein Grund dafür ist die hohe Effizienz von C/C++ die für die Implementierung von Algorithmen wichtig ist. Diese werden oft auf Maschinen mit begrenzter Rechenleistung ausgeführt. Eine schnelle Ausführungszeit ist auch wichtig da die Algorithmen zeitliche Kriterien erfüllen müssen (so genannte Echtzeitbeschränkungen).

Algorithmen und deren effiziente Implementierungen sind auch für Computer Vision (computerbasiertes sehen) wichtig. Schlussendlich wird C++ auch, neben vielen anderen Sprachen, für maschinelles Lernen und Deep Learning verwendet.

Häufig verwendet in: Hardwarenaher Software, (Motor)regelung, Bewegungsplanung, Computer Vision, Machinelles Lernen/Deep Learning

2. Python

Python wird als einfach zu erlernende, aber vielseitige Programmiersprache angesehen. Mit einer Fülle von Bibliotheken, die für verschiedene Anwendungen zur Verfügung stehen können schnelle Ergebnisse erzielt werden.

Ein Beispiel für solche Bibliotheken ist OpenCV für Computer Vision. Sie ist einfach zu verwenden und du kannst im Handumdrehen Anwendungen für Gesichtserkennung, Objekterkennung, Objektverfolgung usw. erstellen. Python hat sich auch zu einer beliebten Wahl entwickelt um Anwendungen für maschinelles Lernen und Deep Learning zu implementieren. Auch hier gibt es viele Bibliotheken, in denen alle gängigen Methoden des maschinellen Lernens implementiert sind. Andere Bibliotheken helfen dabei, auf einfache Weise ein neuronales Netzwerk für Deep Learning-Methoden einzurichten oder zielen auf Reinforcement Learning ab.

Abgesehen von Computer Vision und Künstlicher Intelligenz ist Python eine sehr nützliche Skriptsprache um Prozesse auf dem Computer zu automatisieren. Alles in allem ist es immer gut, etwas Python in seinem Werkzeugkasten zu haben.

Häufig verwendet in: Applikationsebene, Computer Vision, Maschinelles Lernen, Skripting

3. Matlab

Manche Leute streiten darüber, ob Matlab wirklich eine eigene Programmiersprache ist. Tatsache aber ist, dass Matlab in der Robotik weit verbreitet ist. Am häufigsten wird es vermutlich bei der Entwicklung von Roboterreglern eingesetzt. Es bietet eine grafische Programmierumgebung namens Simulink, die für die Simulation und Analyse komplexer dynamischer Systeme nützlich ist.

In Matlab können die entwickelten Regler simuliert, sowie die Gelenke des Roboters modelliert werden. Auf diese Weise kann man überprüfen wie das Gelenk auf die von der Steuerung kommenden Signale reagiert, bevor man es auf der tatsächlichen Hardware testet. So kann man verhindern, dass die Hardware beschädigt wird, denn schon ein kleiner Fehler kann dazu führen, dass die Regler verrückt spielen.

Die Entwickler von Matlab legen in letzter Zeit auch mehr Wert auf Computer Vision und Machine/Deep Learning-Anwendungen. Sie stellen Toolboxen zur Verfügung, die oft einsatzbereite Lösungen enthalten um mit geringem Aufwand kleine Anwendung zum Laufen zu bringen.

Außerdem kann man mit Matlab wunderschöne Diagramme erstellen:

Ein wunderschönes Matlab-Diagramm

Matlab ist ein kommerzielles Werkzeug, aber als Student(in) erhält man Zugang zu einer kostenlosen Versionen. Andernfalls ist die Software nicht gerade billig.

Häufig verwendet in: Regelung, Simulation, Computer Vision, Maschinelles Lernen/Deep Learning

4. Java

Java ist eine höhere Programmiersprache, die in der künstlichen Intelligenz weit verbreitet ist. Außerdem ist es oft die voranginge Sprache mit der Informatiker, die später in die Robotik einsteigen, während des Studiums arbeiten.

Einer der großen Vorteile von Java ist der Ansatz “write once, run anywhere”. Das heißt, wenn Java-Code einmal auf dem Rechner kompiliert, kann man ihn auf jedem anderen Rechner ausführen auf dem eine Java Virtual Machine läuft. Auf diese Weise muss man sich keine Gedanken über die zugrunde liegende Computerarchitektur machen. Aufgrund dieser Eigenschaften ist Java sehr beliebt, wenn es um Anwendungen mit einem größeren Grad an Abstraktion geht.

Häufig verwendet in: Maschinelles Lernen/Deep Learning, Anwendungen auf höherer Abstraktionsebene

Sonstige

Herstellerspezifische Programmiersprachen: Die meisten Roboterhersteller bieten ihre eigene Programmiersprache für ihre Roboter an, was besonders für Roboterintegratoren wichtig ist. Einige Unternehmen bieten eine grafische Methode zur Erstellung von Roboterprogrammen an, z. B. durch Programmierung von Bewegungen auf einem mobilen Tablet. Sie bieten auch textbasierte Sprachen an, die den gängigen Sprachen wie Pascal oder Python ähneln. Einige Roboterhersteller bieten auch eine C-Schnittstelle für den Zugriff auf die Roboterfunktionen an.

Scratch: Eine Programmiersprache mit einer grafischen Obefläche, die speziell für Kinder bis 16 Jahre entwickelt wurde, um rechnerisches Denken und Problemlösung zu lernen. Es macht Spaß und Kinder können mit der Roboterprogrammierung beginnen, z. B. mit der LEGO Mindstorm Serie.

Scratch ist eine Programmiersprache für Kinder mit einer grafischen Programmieroberfläche

Welche Programmiersprache solltest du lernen?

Wenn du ein Anfänger in der Robotik bist und dich fragst, welche Programmiersprache du zu Beginn lernen solltest, hier einige Anregungen:

Wie bereits erwähnt hängt die Wahl der Programmiersprache von dem spezifischen Bereich der Robotik ab, in dem du arbeiten willst. Außerdem kann man die gleiche Aufgabe mit vielen verschiedenen Programmiersprachen lösen. Wenn du also bereits eine Sprache kannst, dann fang einfach damit an und du wirst sofort Erfolgserlebnisse haben.

Wenn du nicht weißt, womit du anfangen sollst und nach Vorschlägen suchst, ist hier meine persönliche Meinung. Denke aber daran dass diese Thematik sehr subjektiv ist und andere Personen möglicherweise eine ganz andere Meinung dazu haben.

Die am häufigsten verwendeten Sprachen in der Robotik sind C/C++ und Python. Dies sind auch die beiden Sprachen, die ROS (das beliebte Roboterbetriebssystem) von Haus aus verwendet. C++ ist eine leistungsstarke Sprache, aber sie ist auch komplex und es kann mehr Zeit in Anspruch nehmen, sich einzuarbeiten und etwas zum Laufen zu bringen. Wenn du aber bereits etwas Programmiererfahrung hast, lohnt es sich auf jeden Fall, diese Sprache zu beherrschen (Wenn du mit C++ in der Robotik beginnen möchtest, schau dir die Tutorials auf dieser Website an).

Python ist sehr einfach zu erlernen und hat eine große Community. Du wirst sehr schnell Ergebnisse sehen und es gibt eine Menge Tutorials. Wenn du ein kompletter Programmieranfänger bist, starte mit Python.

Vielen Dank fürs Lesen und schreibt bitte eure Gedanken zu dem Thema in die Kommentare. Bis dahin: Frohes Schaffen!