Cinematique Inverse bras de Poppy

En cette documentation, je vais expliquer comme on peut mise en place la cinématique inverse sur un bras de Poppy Humanoid.
D’abord, il y a différent méthode pour mise en ouvre la cinématique inverse, par exemple la méthode Géométrique, qui est le plus simple, mais seulement sert pour quelques degrés de liberté. Cette méthode je utiliserais parce que seulement je vais contrôler 3 moteur du bras de Poppy, le quatrième moteur je le fixerai à une angle par exemple -90°.
Avec seulement 3 moteur et la méthode géométrique, il ne existe pas redondance pour arriver à une même point sur le espace, mais si on mettre le quatrième moteur, on peut pas utiliser le méthode géométrique on doit utiliser une méthode plus complexe par exemple avec l’utilisation de matrices jacobines.

En l’image ci-dessous on peut voir tous les angles que on va calculer pour manipuler le bras de poppy:

                    Image 1

Donc, pour démarrer le calcule, on va définir, notre espace de travail:

                   image 2

Comme on peut voir en l’image, le robot a une structure plane, laquelle est défini par les axes X et Y, on peut voir aussi, que notre end effector (point rouge) a une projection sur notre plane, donc notre vecteur position serais “r”

                    image 3

Rapidement à partir de cette représentation on peut obtenir le valeur de r et q0.
où q0:

Le signe seulement définirais la orientation de notre moteur, en notre cas pour le moteur de Poppy on va utiliser la équation (4).

Ensuit, on va a utiliser notre vecteur position comme une axe de tout le bras, donc notre bras reste dans une plane 2D.

                        Image 4

A partir de cette image on peut réaliser différent calcule, on va commencer par utiliser la loi de cosinus , en référence du ligne vert.

Et en référence à la ligne jaune, on va utiliser le Théorème de Pythagore

Avant de commencer à remplacer notre équations, on va utiliser les transformations trigonométrique pour changer le cos(θ) par cos(q2):

on sait :

donc:

Ensuit, on va remplacer (6) et (7) dans le équations (5) et on va obtenir le équations (8)

On a la valeur de r dans l’équation (2), alors, on mettra cette équation dans la (8) pour obtenir (9)

Ensuit, on peut calculer le angle q2:

Mais, on doit considérer que q2 = θ - 180, par ça, notre équation final pour q2 est (12)

Finalement, seulement reste calculer le angle q1, par ça, on doit regarder encore une fois l’image 4, et on peut observer:

Et on doit souvenir aussi de la Fonction trigonométrique dans une triangle rectangle

Alors, on a l’image suivant :

                         image 5

où β :

Ensuit, on va calculer la valeur de angle α:

Pour réduire le temps de calcule et notre programme peut être mise en œuvre dans une carte électronique, on peut changer le sen(q2) par cos(q2), mais le cos(q2) est déjà calculer en l’équation (10) et il est sauvé dans la variable Cq2.
Mais pour faire ce changement, on doit considérer que q2= θ - 180, par ça le résultat serais toujours négative.

Donc notre angle α est:

Finalement, on peut obtenir la valeur de q1:

De cette façon, on a résolu le problème de cinématique inverse. En ce lien on peut regarder le code en Matlab. L1 et L2 sont la taille de chaque partie du bras en centimètre.

Ici une petite vidéo, du bras de Poppy avec Cinématique Inverse

Pour exécuter le programme du vidéo, on doit que ouvrir d’abord le VREP, ensuit on doit que exécuter le server dont le code ce trouve ICI, après on peut charger le code de Matlab une fois que le server est en train de attendre une connexion.

5 Likes