Matlab zu C++: Echtzeit-Algorithmen für Roboterarme

Hexagon modelliert Kinematik, Dynamik und Deformation seiner Roboterarme in Matlab. TEQABLE portierte die Algorithmen nach C++ und steigerte die Performance um Faktor 80, genug für eine Echtzeit-Regelung auf der Zielplattform.

Ausgangslage
Hexagon ist ein weltweit führender Hersteller hochpräziser Roboterarme und optimiert sie laufend. Neue Kompensationsstrategien entstehen als Modelle in Matlab. Für die Regelung auf der Zielplattform müssen die Algorithmen aber deutlich schneller laufen als im Modell.
Ziel
Die Matlab-Berechnungen der verschiedenen Roboterarm-Modelle nach C++ portieren, genau auf zehn Nachkommastellen und schnell genug für die Echtzeitanforderungen der Regelung, und so die Machbarkeit auf der Zielplattform beweisen.
Lösung
TEQABLE übertrug die Software-Klassen 1:1 und streng objektorientiert nach C++, auf Basis der Eigen-Library. Die Verifikation beruht auf den samplebasierten, mehrfach iterativen Berechnungen des Matlab-Modells: Regressionstests vergleichen in einer Co-Simulation die Matlab- mit der C++-Implementierung.
Weil der C++-Code der Struktur des Matlab-Modells folgt, lassen sich spätere Anpassungen am originalen Algorithmus einfach an der entsprechenden Stelle nachziehen.
Ergebnis
- Algorithmen gegenüber Matlab um Faktor 80 beschleunigt
- Machbarkeit der Echtzeit-Regelung auf der Zielplattform bewiesen
- Genauigkeit auf zehn Nachkommastellen, per Co-Simulation gegen das Matlab-Modell geprüft
- C++-Klassen 1:1 zum Matlab-Modell, sodass Anpassungen am Algorithmus einfach nachzuziehen sind

Cornel Studach
Partner