Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

ProxSuite

Hochleistungs-QP/LP-Solver für Robotersteuerung und Optimierung

Lizenz

BSD-2-Clause

Überblick

ProxSuite ist eine fortschrittliche Optimierungs-Toolbox der Teams Willow und Sierra von Inria, ENS Paris und CNRS (Willow entwickelt auch Pinocchio mit) und bietet effiziente Löser für Probleme der quadratischen Programmierung (QP) und linearen Programmierung (LP) in der Robotik. Der Kernlöser ProxQP nutzt einen neuartigen primal-dualen proximalen erweiterten Lagrange-Ansatz und liefert Spitzenleistung für modellprädiktive Regelung (MPC), Ganzkörpersteuerung und Trajektorienoptimierung. Unterstützt dichte, dünnbesetzte und gemischte Problemformulierungen mit C++- und Python-Schnittstellen.

ProxSuite ist eine Open-Source-Sammlung numerischer Optimierungs-Solver, entwickelt von den Forschungsgruppen Willow und Sierra an Inria und der Ecole Normale Superieure in Paris. Die Kernkomponente ProxQP löst quadratische Programme mit einer primal-dualen proximalen Augmented-Lagrangian-Methode, die sowohl hohe Geschwindigkeit als auch numerische Robustheit erreicht — selbst bei schlecht konditionierten oder unlösbaren Problemen.

Die Toolbox bietet dichte, dünn besetzte und matrixfreie Solver-Backends, sodass Sie den Solver auf die Struktur Ihres Problems abstimmen können. Zu den erweiterten Funktionen gehören SIMD-Vektorisierung, Warmstarts aus vorherigen Lösungen, paralleles Batch-Lösen von QPs, die Behandlung nichtkonvexer QPs sowie die Möglichkeit, durch QP-Lösungen hindurch zu differenzieren, für lernbasierte Anwendungen.

ProxSuite ist bereits in wichtige Optimierungs-Ökosysteme integriert, darunter CVXPY, CasADi und das auf Pinocchio aufbauende TSID-Framework für inverse Roboterdynamik. Es wird über pip, conda und Homebrew verteilt, mit Bindings für Python und Julia neben der zentralen C++-Bibliothek.

Warum es wichtig ist

Quadratische Programmierung ist das Herzstück der Robotersteuerung — von Ganzkörper-Reglern und modellprädiktiver Regelung bis hin zur inversen Dynamik mit Kontakten. Der ProxQP-Solver von ProxSuite liefert Spitzenleistung auf den schwierigsten QP-Benchmarks und behandelt sowohl konvexe als auch nichtkonvexe Probleme — ein entscheidender Baustein für Echtzeit-Optimierung in der Robotik.

Welches Problem es löst

Echtzeit-Robotersteuerungen müssen quadratische Programme mit hoher Frequenz und garantierter numerischer Stabilität lösen, selbst bei schlecht konditionierten oder unlösbaren Problemen. ProxSuite bietet Solver, die zugleich schnell, numerisch robust und flexibel genug sind, um dichte, dünn besetzte und matrixfreie Problemformulierungen zu verarbeiten — und die auch dann brauchbare Ergebnisse liefern, wenn ein QP primal unlösbar ist.

Wichtigste Punkte

  • Der ProxQP-Solver nutzt einen primal-dualen proximalen Augmented-Lagrangian-Ansatz für robustes Lösen von QPs
  • Unterstützt dichte, dünn besetzte und matrixfreie Backends mit SIMD-Vektorisierung für Höchstleistung
  • Behandelt nichtkonvexe QPs und liefert bei unlösbaren Problemen die nächstgelegene zulässige Lösung
  • Integriert in CVXPY, CasADi und das TSID-Framework für inverse Dynamik im Aufgabenraum
  • Verfügbar über pip, conda und Homebrew mit Python- und Julia-Bindings

Für wen

  • Ingenieure für Robotersteuerung, die MPC oder Ganzkörper-Regler implementieren
  • Optimierungsforscher, die die Leistung von QP-Solvern benchmarken
  • Entwickler von Laufrobotern, die kontaktbewusste Echtzeitsteuerung benötigen
  • Praktiker des Operations Research, die große QPs und LPs lösen

Einschränkungen

  • Auf QP- und LP-Probleme ausgerichtet — kein allgemeiner Solver für nichtlineare Optimierung
  • Höchstleistung erfordert die Kompilierung mit Vektorisierungs-Flags (-march=native)
  • Vergleichsweise junges Projekt gegenüber etablierten Solvern wie OSQP oder qpOASES
  • Fortgeschrittene Funktionen wie Batch-Lösen und QP-Differenzierung erfordern eine steilere Lernkurve

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.