Atelier sur la commande optimale des systèmes musculo-squelettiques : une introduction à Bioptim [1].
Contexte :
De nombreuses approches existent pour discrétiser et résoudre des problèmes de commande optimale. Cependant, les outils dédiés à la biomécanique sont rares. Quatre composants interdépendants sont implémentés dans Bioptim pour en faire un logiciel de commande optimale efficace pour la biomécanique : 1) plusieurs méthodes de discrétisation ("direct multiple shooting" et collocations) utilisant des intégrateurs explicites ou implicites, 2) le backend biorbd [2], un logiciel de modélisation musculo-squelettique efficace qui inclut la cinématique, la dynamique multi-corps et la dynamique musculaire, 3) CasADi, un logiciel de différenciation algorithmique qui permet une estimation efficace et exacte des dérivées pour résoudre le programme en un temps raisonnable, et 4) des solveurs de programmation non linéaire robustes (Ipopt) et rapides (ACADOS). Bioptim comprend plus de 40 exemples pour prendre en main l'API. Ils explorent une grande variété de fonctionnalités (fonction de coût, limites, contraintes, dynamique, paramètres, optimisations multiphases, etc.) ainsi que des options pour discrétiser et résoudre les problèmes. Interfacé en Python, avec des dizaines de fonctions de coûts et de contraintes (suivi de marqueurs, suivi d'EMG, minimisation des états et des contrôles, etc.) et diverses fonctions dynamiques (actionneurs en couple pur, muscles, avec ou sans forces de contact), les utilisateurs peuvent facilement implémenter des fonctions personnalisées pour couvrir tous leurs besoins.
Contenu de l'atelier :
Je commencerai par présenter brièvement les briques fonctionnelles sous-jacentes de Bioptim (optimisation non linéaire, contrôle optimal numérique, dynamique multicorps, etc.) Ensuite, nous nous plongerons ensemble dans des exemples pratiques, écrits en Python, pour couvrir les fonctionnalités de base de Bioptim. L'atelier se terminera par une discussion ouverte sur la façon d'utiliser Bioptim pour vous aider à résoudre vos défis de recherche. Vous devrez apporter votre ordinateur portable personnel, aucune installation préalable n'est requise.
Rendez-vous au 47ème congrès de la Société de Biomécanique !
François Bailly,
Chercheur INRIA @ CAMIN team
Code : https://github.com/pyomeca/bioptim
[1] Michaud, B., Bailly, F., Charbonneau, E., Ceglia, A., Sanchez, L., & Begon, M. (2022). Bioptim, a python framework for musculoskeletal optimal control in biomechanics. IEEE Transactions on Systems, Man, and Cybernetics: Systems.
[2] Michaud, B., & Begon, M. (2021). biorbd: A C++, Python and MATLAB library to analyze and simulate the human body biomechanics. Journal of Open Source Software, 6(57), 2562.
Inscription à l'atelier