Robotik und Computer Vision in Python ohne kostenpflichtige MATLAB-Lizenzen
Warum Robotik-Ingenieure so lange bei MATLAB geblieben sind
Wenn Sie vor fünf bis zehn Jahren Robotik studiert oder in diesem Bereich gearbeitet haben, erinnern Sie sich wahrscheinlich an die Robotics Toolbox für MATLAB. Peter Corke entwickelte sie in den 1990er Jahren. Lange Zeit blieb diese Bibliothek der Standard für akademische Einrichtungen und Ingenieurlabore. Möchten Sie eine räumliche Transformationsmatrix erstellen, eine Manipulator-Trajektorie plotten oder inverse Kinematik berechnen – Sie haben sofort MATLAB geöffnet.
Der größte Nachteil liegt auf der Hand: die Lizenzkosten. Auch die Integration von MATLAB-Code in moderne Produktions-Pipelines stellt erhebliche Herausforderungen dar. Vor einigen Jahren hat der Autor die Werkzeuge vollständig in Python neu geschrieben und 2023 die dritte Auflage des Buches Robotics, Vision & Control zusammen mit dem offenen RVC3-python-Repository veröffentlicht.
Was enthalten ist
Das Repository enthält Beispiele und einen einheitlichen Wrapper für vier spezialisierte Bibliotheken:
- Robotics Toolbox übernimmt Kinematik, Dynamik und Manipulator-Trajektorien.
- Machine Vision Toolbox befasst sich mit Bildverarbeitung, Merkmalspunktdetektion und Stereovision.
- Spatial Maths Toolbox kümmert sich um 3D-Transformationsmathematik, Quaternionen und Lie-Gruppen SE(3)/SO(3).
- BDSim hilft bei der Simulation dynamischer Systeme und Blockdiagramme.
Der gesamte Quellcode wird unter der MIT-Lizenz vertrieben. Um die manuelle Abhängigkeitsverwaltung zu eliminieren, haben die Entwickler alles in einem einzigen Paket gebündelt.
Schnellstart über die interaktive Konsole
Die Entwickler haben ein praktisches CLI-Tool rvctool erstellt. Es startet eine IPython-Session mit allen notwendigen Modulen, mathematischen Funktionen und vorgefertigten Modellen beliebter Hardware, die bereits importiert sind.
Die Installation dauert einen Befehl:
pip install rvc3python
Dann starten Sie die Arbeitsumgebung:
rvctool
Die Konsole orientiert sich an der MATLAB-Syntax. Wenn Sie das Semikolon am Zeilenende weglassen, wird das Ergebnis des Ausdrucks sofort im Terminal ausgegeben. Gleichzeitig haben Sie vollen Zugriff auf reguläres Python mit all seinen Annehmlichkeiten.
Manipulator-Kinematik in wenigen Zeilen
Definieren wir ein Modell des industriellen Roboters Franka Emika Panda, berechnen seine Flanschpose und lösen das inverse Kinematik-Problem.
panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))
Die Methode fkine berechnet die Vorwärtskinematik und gibt eine SE3-Steifigkeitstransformationsmatrix zurück. Die Methode ikine_LM findet Gelenkwinkel mit dem Levenberg-Marquardt-Algorithmus.
Der Aufruf der Methode panda.teach(panda.qz) öffnet ein grafisches Fenster, in dem Sie Gelenkschieberegler bewegen und die Posen des Roboters beobachten können.

Bildverarbeitung und Computer Vision
Für grundlegende Computer-Vision-Aufgaben müssen keine klobigen externen Frameworks angeschlossen werden. SIFT-Schlüsselpunkt-Matching auf zwei Frames sieht beispielsweise so aus:
sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")
Unter der Haube werden bewährte NumPy- und SciPy-Funktionen verwendet. Wenn Sie Deep-Learning-Beispiele aus Kapitel 11 des Buches benötigen (z. B. neuronale Netzwerk-Segmentierung), wird PyTorch mit einem separaten Flag geladen:
pip install rvc3python[pytorch]
Simulation von Regelsystemen
Das Paket bdsim verdient besondere Erwähnung. Es ist ein Versuch, eine Simulink-Alternative ohne die umständliche Entwicklungsumgebung zu schaffen.
Blockdiagramme werden direkt im Python-Code erstellt oder visuell über den grafischen Editor bdedit zusammengebaut. Daten werden in regulären JSON-Dateien mit der Endung .bd gespeichert. Das Repository enthält bereits 25 fertige Tutorial-Modelle aus dem Buch, die Sie direkt aus rvctool ausführen können.
Worauf Sie vor dem Start achten sollten
Bevor Sie loslegen, gibt es drei Punkte zu beachten:
- Python 3.8 oder höher ist aufgrund der aktiven Nutzung von Type Annotations erforderlich.
- Apple-Silicon-Chips (M1/M2/M3) können Darstellungsprobleme mit Open3D haben. Die Projekt-Wiki hat eine separate Seite mit Workarounds.
- Der Code funktioniert in Jupyter Notebook und Google Colab, aber komplexe 3D-Animationen können aufgrund der Besonderheiten der Frame-Übertragung an die Weboberfläche verzögert sein.
Für wen dieses Repository nützlich ist
Wenn Sie Robotik unterrichten, eine Abschlussarbeit schreiben, Navigationsalgorithmen erforschen oder schnell eine Hypothese testen möchten, ohne schwere Umgebungen wie ROS 2 einzurichten, wird Ihnen RVC3-python viel Zeit sparen. Das Projekt eliminiert die Notwendigkeit, benutzerdefinierte Wrapper für Transformationsmatrizen zu schreiben, und bietet eine gebrauchsfertige Grundlage für Prototyping.
Ähnliche Projekte