>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Jupyter

Robotique et Vision par Ordinateur en Python Sans Licences MATLAB Payantes

Pourquoi les ingénieurs en robotique sont restés coincés avec MATLAB si longtemps

Si vous avez étudié ou travaillé en robotique il y a cinq à dix ans, vous vous souvenez probablement de la Robotics Toolbox pour MATLAB. Peter Corke l'a créée dans les années 1990. Pendant longtemps, cette bibliothèque est restée la norme dans le milieu universitaire et les laboratoires d'ingénierie. Besoin de construire une matrice de transformation spatiale, tracer une trajectoire de manipulateur, ou calculer la cinématique inverse—vous ouvriez immédiatement MATLAB.

L'inconvénient principal est immédiatement apparent : les coûts de licence. L'intégration du code MATLAB dans les pipelines de production modernes présente également des défis significatifs. Il y a plusieurs années, l'auteur a complètement réécrit les outils en Python, et en 2023, il a publié la troisième édition du livre Robotics, Vision & Control ainsi que le dépôt open source RVC3-python.

Ce qui est inclus

Le dépôt contient des exemples et un wrapper unifié pour quatre bibliothèques spécialisées :

  • Robotics Toolbox gère la cinématique, la dynamique et les trajectoires de manipulateurs.
  • Machine Vision Toolbox traite le traitement d'images, la détection de points d'intérêt et la vision stéréo.
  • Spatial Maths Toolbox gère les mathématiques de transformation 3D, les quaternions et les groupes de Lie SE(3)/SO(3).
  • BDSim aide à simuler des systèmes dynamiques et des diagrammes de blocs.

Tout le code source est distribué sous licence MIT. Pour éliminer la gestion manuelle des dépendances, les créateurs ont regroupé tout dans un seul package.

Démarrage rapide via la console interactive

Les développeurs ont créé un utilitaire CLI pratique rvctool. Il lance une session IPython avec tous les modules nécessaires, les fonctions mathématiques et les modèles de matériel populaire pré-importés.

L'installation prend une seule commande :

pip install rvc3python

Puis lancez l'environnement de travail :

rvctool

La console s'inspire de l'expérience de syntaxe MATLAB. Si vous omettez le point-virgule à la fin d'une ligne, le résultat de l'expression s'affiche immédiatement dans le terminal. En même temps, vous avez un accès complet à Python standard avec toutes ses commodités.

Cinématique de manipulateur en quelques lignes

Définissons un modèle du robot industriel Franka Emika Panda, calculons la pose de sa bride et résolvons le problème de cinématique inverse.

panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))

La méthode fkine calcule la cinématique directe et retourne une matrice de transformation rigide SE3. La méthode ikine_LM trouve les angles articulaires en utilisant l'algorithme de Levenberg-Marquardt.

Appeler la méthode panda.teach(panda.qz) ouvre une fenêtre graphique où vous pouvez déplacer les curseurs articulaires et observer les poses du robot changer.

Modèle du robot Panda

Traitement d'images et vision par ordinateur

Pour les tâches de vision par ordinateur basiques, il n'est pas nécessaire de connecter des frameworks externes volumineux. Par exemple, la correspondance de points clés SIFT sur deux images ressemble à ceci :

sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")

Sous le capot, il utilise NumPy et SciPy éprouvés. Si vous avez besoin d'exemples d'apprentissage profond du chapitre 11 du livre (comme la segmentation par réseau neuronal), PyTorch est intégré avec un indicateur séparé :

pip install rvc3python[pytorch]

Simulation de systèmes de contrôle

Le package bdsim mérite une mention spéciale. C'est une tentative de créer une alternative à Simulink sans l'environnement de développement volumineux.

Les diagrammes de blocs sont créés directement en code Python ou assemblés visuellement via l'éditeur graphique bdedit. Les données sont sauvegardées dans des fichiers JSON réguliers avec l'extension .bd. Le dépôt inclut déjà 25 modèles de tutoriels prêts à l'emploi du livre, que vous pouvez exécuter directement depuis rvctool.

Points à retenir avant d'exécuter

Avant de commencer, il y a trois points à noter :

  1. Python 3.8 ou supérieur est requis en raison de l'utilisation active des annotations de type.
  2. Les puces Apple Silicon (M1/M2/M3) peuvent avoir des bizarreries de rendu avec Open3D. Le wiki du projet a une page séparée avec des solutions de contournement.
  3. Le code fonctionne dans Jupyter Notebook et Google Colab, mais les animations 3D complexes peuvent être lentes en raison des spécificités de transmission des images vers l'interface web.

Qui trouvera ce dépôt utile

Si vous enseignez la robotique, rédigez une thèse, recherchez des algorithmes de navigation, ou souhaitez tester rapidement une hypothèse sans configurer des environnements lourds comme ROS 2, RVC3-python vous fera gagner beaucoup de temps. Le projet élimine le besoin d'écrire des wrappers personnalisés pour les matrices de transformation et fournit une base prête à l'emploi pour le prototypage.

Projets similaires