Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

ProxSuite

Solveur QP/LP haute performance pour la commande et l'optimisation robotiques

Licence

BSD-2-Clause

Aperçu

ProxSuite est une boîte à outils d'optimisation avancée des équipes Willow et Sierra de l'Inria, de l'ENS Paris et du CNRS (Willow codéveloppe aussi Pinocchio), qui fournit des solveurs efficaces pour les problèmes de programmation quadratique (QP) et de programmation linéaire (LP) en robotique. Son solveur principal, ProxQP, utilise une nouvelle approche de lagrangien augmenté proximal primal-dual et offre des performances à l'état de l'art pour la commande prédictive (MPC), la commande du corps entier et l'optimisation de trajectoire. Il prend en charge les formulations de problèmes denses, creuses et mixtes, avec des interfaces C++ et Python.

ProxSuite est une collection open source de solveurs d'optimisation numérique développée par les équipes de recherche Willow et Sierra d'Inria et de l'Ecole Normale Superieure à Paris. Son composant phare, ProxQP, résout des programmes quadratiques à l'aide d'une méthode de Lagrangien augmenté proximal primal-dual qui allie grande rapidité et robustesse numérique — même sur des problèmes mal conditionnés ou infaisables.

La boîte à outils propose des backends de solveur denses, creux et sans matrice (matrix-free), ce qui vous permet d'adapter le solveur à la structure de votre problème. Les fonctionnalités avancées comprennent la vectorisation SIMD, le démarrage à chaud à partir de solutions précédentes, la résolution de QP par lots en parallèle, la gestion des QP non convexes et la possibilité de différencier à travers les solutions de QP pour des applications fondées sur l'apprentissage.

ProxSuite est déjà intégré aux principaux écosystèmes d'optimisation, notamment CVXPY, CasADi et le framework de dynamique inverse robotique TSID, construit sur Pinocchio. Il est distribué via pip, conda et Homebrew, avec des bindings Python et Julia en plus de la bibliothèque C++ principale.

Pourquoi c'est important

La programmation quadratique est au cœur de la commande des robots — des contrôleurs du corps entier et de la commande prédictive par modèle à la dynamique inverse avec contacts. Le solveur ProxQP de ProxSuite offre des performances de pointe sur les benchmarks QP les plus difficiles tout en traitant les problèmes convexes comme non convexes, ce qui en fait une brique essentielle de l'optimisation robotique en temps réel.

Le problème résolu

Les contrôleurs de robots en temps réel doivent résoudre des programmes quadratiques à haute fréquence avec une stabilité numérique garantie, même pour des problèmes mal conditionnés ou infaisables. ProxSuite fournit des solveurs à la fois rapides, numériquement robustes et suffisamment flexibles pour traiter des formulations de problèmes denses, creuses et sans matrice — en renvoyant des résultats utiles même lorsqu'un QP est primal infaisable.

Points clés

  • Le solveur ProxQP utilise une approche de Lagrangien augmenté proximal primal-dual pour une résolution robuste des QP
  • Prend en charge des backends denses, creux et sans matrice avec vectorisation SIMD pour des performances maximales
  • Traite les QP non convexes et renvoie les solutions réalisables les plus proches pour les problèmes infaisables
  • Intégré à CVXPY, CasADi et au framework de dynamique inverse dans l'espace des tâches TSID
  • Disponible via pip, conda et Homebrew avec des bindings Python et Julia

Pour qui

  • Ingénieurs en commande robotique implémentant de la MPC ou des contrôleurs du corps entier
  • Chercheurs en optimisation évaluant les performances des solveurs QP
  • Développeurs de robots à pattes ayant besoin d'une commande temps réel tenant compte des contacts
  • Praticiens de la recherche opérationnelle résolvant des QP et LP à grande échelle

Limites

  • Centré sur les problèmes QP et LP — pas un solveur généraliste de programmation non linéaire
  • Les performances maximales nécessitent une compilation avec des options de vectorisation (-march=native)
  • Projet relativement jeune par rapport à des solveurs établis comme OSQP ou qpOASES
  • Les fonctionnalités avancées, comme la résolution par lots et la différentiation de QP, ont une courbe d'apprentissage plus raide

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.