TP 6 axes

Présentation

Dans ce TP, nous allons appliquer nos connaissances sur les transformations homogènes pour contrôler un robot à 6 axes.

Installation

Téléchargez l’archive tp_6axis.zip
Lisez les instructions ci-dessous

Afin d’installer les dépendances, lancez la commande suivante:

pip install "numpy<2" pybullet onshape-to-robot meshcat

Modèle géométrique direct

Testez d’abord que le simulateur fonctionne à l’aide de:

python direct.py

Vous devriez voir un robot à 6 axes dans une fenêtre PyBullet. Vous pouvez alors déplacer les curseurs afin de changer la position des moteurs.

Remarquez qu’un repère fixe est dessiné sur le sol. Il s’aggit de T_world_effector, la transformation homogène du repère de l’effecteur dans le monde, mais elle n’est pas encore correcte.

En vous aidant du schéma ci-dessous, et des transformations élémentaires (translation et rotations autour des axes \(x\), \(y\) et \(z\)), modifiez direct.py afin qu’il calcule T_world_effector correctement. Le repère devrait être positionné sur l’effecteur.

Ajout d’un outil

Si vous lancez:

python direct_tool.py

Vous remarquerez que l’outil ci-dessous a été ajouté au bras robotique.

À l’aide de cette image, déterminez T_effector_tool

En utilisant T_effector_tool et le code de la partie précédente, modifiez direct_tool.py afin de calculer T_world_tool correctement.

Écriture sur un tableau

Le simulateur fournit une fonction set_T_world_effector qui résoud le problème du modèle géométrique inverse du robot. Cette fonction prend en argument une transformation homogène T_world_effector et met à jour les positions des moteurs pour que l’effecteur se retrouve à la position désirée.

Vous pouvez la tester à l’aide de:

python control.py

Lancez maintenant board.py, et lisez son code:

python board.py

La fonction generate_board() génère un tableau avec une position aléatoire, et retourne T_world_board sa transformation homogène dans le monde.

L’objectif est de fournir une fonction à set_T_world_effector qui permet de positionner la pointe de l’outil sur le tableau, et d’y tracer un cercle.

Voici ce que vous devriez obtenir: