
Génération de code et contraintes coniques pour la commande prédictive sur microcontrôleurs avec Conic-TinyMPC
Une équipe de chercheurs a publié Conic-TinyMPC, une extension du solveur embarqué TinyMPC qui ajoute le support des contraintes coniques du second ordre (SOCP) et la génération automatique de code C++ depuis Python, MATLAB et Julia. Sur microcontrôleurs à ressources limitées, le solveur atteint un gain de vitesse de 10,6x à 142,7x par rapport aux meilleurs solveurs embarqués existants sur des problèmes QP et SOCP, soit jusqu'à deux ordres de grandeur, tout en autorisant des problèmes un ordre de grandeur plus grands en mémoire. La validation matérielle a été conduite sur un quadrirotor Crazyflie de 27 grammes, en suivi de trajectoire avec des contraintes coniques actives sur le système réel, et le code est disponible en open source sur tinympc.org.
Ces résultats changent concrètement l'équation du déploiement du MPC sur matériel embarqué. Le contrôle prédictif de modèle (MPC) est la méthode de référence pour les systèmes robotiques sous contraintes, mais son exécution en temps réel reste difficile sur des microcontrôleurs à faible coût et faible consommation. Les contraintes coniques, plus expressives que les alternatives linéaires, alourdissent encore le calcul, rendant leur usage sur matériel léger quasi impraticable avec les solveurs actuels. Conic-TinyMPC contourne ce problème en exploitant une structure ADMM (Alternating Direction Method of Multipliers) avec des matrices mises en cache, réduisant drastiquement le coût de calcul à l'exécution. La génération de code automatique depuis Python, MATLAB ou Julia réduit également la friction d'intégration, rendant l'outil accessible à des équipes industrielles sans expertise poussée en optimisation convexe.
TinyMPC est né de travaux visant à porter des solveurs MPC rapides sur des plateformes embarquées contraintes, avec une première démonstration sur Crazyflie ayant établi la viabilité de l'approche sur des robots ultra-légers. Conic-TinyMPC en est l'évolution directe, intégrant les cônes du second ordre à un noyau déjà optimisé et se positionnant face à des solveurs comme OSQP, ECOS ou ACADOS, qui peinent à tenir dans les enveloppes mémoire et temporelles des microcontrôleurs bas de gamme. Les prochaines étapes naturelles consisteront à valider l'approche sur des systèmes plus complexes, bras manipulateurs ou robots bipèdes, où les contraintes coniques modélisent des cônes de friction ou des enveloppes de sécurité formelles.




