La robotique dans toute sa splendeur

Via les équations Jacobienne
Objectif: comprendre et réaliser les calculs liés aux robots.


Soit une pince au bout d'un robot, nous souhaitons aller de la position Pa=(X1Y1Z1Rx1Ry1Rz1) à la position Pb=(X2Y2Z2Rx2Ry2Rz2)
Pour cela il faut connaitre les coordonnées articulaire associées de qa=(q1q2q3q4q5) à qb=(q1q2q3q4q5)

Modélisation Géométrique Directe (MGD)

Soit la rotation des articulations qa=(q1q2q3q4q5)
Pa=f(qa)

Exemple de modèle géometrique directe avec deux effecteurs.


Recherche des coordonnées opérationnel du point P dans le repère 0, en fonction des coordonnées articulaires q1 et q2

Déterminer les matrices de transformation homogène 0T2

La rotation entre le repère i et le repère j, iRj.
La position du centre de repère j dans le repère j, iOj.
iTj=[iRjiOj0001]

Pour 0T1 rotation autour de Z
0T1=[0R10O10001]=[cosq1sinq100sinq1cosq10000100001]

Pour 1T2 rotation autour de Z
1T2=[1R21O20001]=[cosq2sinq20l1sinq2cosq20000100001]

Multiplication des deux matrices, recherche de 0T2=0T1×1T2

0T2=[cos(q1+q2)sin(q1+q2)0L1cos(q1)sin(q1+q2)cos(q1+q2)0L1sin(q1)0010L1001]

Pour connaitre la position de P dans le repère 0, il faut positionner P dans le repère 2:
2P=[L2001]

On trouve donc 0P
0P=0T2×2P=[cos(q1+q2)sin(q1+q2)0L1cos(q1)sin(q1+q2)cos(q1+q2)0L1sin(q1)0010L1001]×[L2001]=[L1cosq1+L2cos(q1+q2)L1sinq1+L2sin(q1+q2)01]

Le modèle géométrique inverse (MGI)

Recherche des cordonnées articulaires à partir des coordonnées cartésienne (dites opérationnel, position dans l'espace X,Y,Z de chaque articulation)
qa=f1(Pa)

Détermination via la matrice Jacobienne


Reprenons les équations du pint P dans le repère 0:
P=(xy)=(L1cosq1+L2cos(q1+q2)L1sinq1+L2sin(q1+q2))

Pour déterminer l'équation Jacobienne, il faut dériver les coordonnées opérationnel par les coordonnées articulaires :
J=(xPq1xPq2yPq1yPq2)=(L1sinq1L2sin(q1+q2)L2sin(q1+q2)L1cosq1+L2cos(q1+q2)L2cos(q1+q2))

Cette matrice Jacobienne permet de déterminer, par exemple les vitesses :
P˙=(VxVy)=J(q)×(q˙1q˙2)

dX=J(q)×dq, cette équation lie les petits déplacements de l'espace articulaire vers l'espace opérationnel

Le modèle cinématique inverse

Dans le cas général : P˙=J(q)q˙

alors q˙=P˙J(q)=P˙J(q)1

Remarques
La matrice P est une matrice de type m×1 ou m est le nombre d'effecteur.
La matrice q est une matrice de type 1×1 ou n est le nombre joints.
La matrice J(q) est une matrice de type m×n.

Si le nombre de mn il faut que le déterminant de J(q)0, en effet si J(q)=0 c'est un singulatité (En robotique, la singularité est un point de l’espace que le robot ne peut atteindre. )
Si le nombre de n>m le robot est dit redondant Dans notre exemple, cela arrive quand :
|J(q)|=L1L2×cos(q1+q2)×sinq1L22sin(q1+q2)×cos(q1+q2)+L1L2cosq1×sin(q1+q2)+L22sin(q1+q2)cos(q1+q2)
|J(q)|=L1L2(cosq1×sin(q1+q2)sinq1×cos(q1+q2))
Les deux termes L22L22 s'annules, et Comme :sin(a)cos(b)cos(a)sin(b)=sin(ab)
|J(q)|=L1L2sin(q1+q2q1)=L1L2sin(q2)
en effet, lorsque l'angle q2 est à 0° ou 180° la valeur de sin(q2)=0 donc |J(p)|=0, c'est une singularité, cela se symbolise également par le fait que le bras 2 ne peu pas se déplacer dans une direction, dans notre cas l'axe x1.

Calcul de J(q)1 :
J(q)=(L1sinq1L2sin(q1+q2)L1cosq1+L2cos(q1+q2)L2sin(q1+q2)L2cos(q1+q2))
J(q)1=(cos(q1+q2)L1sin(q2)sin(q1+q2)L1sin(q2)L1cos(q1)L2cos(q1+q2)L1L2sin(q2)L1sin(q1)L2sin(q1+q2)L1L2sin(q2))

Cas de la redondance

Un robot est redondant lorsque le nombre de degrés de liberté est inférieur au nombre d'articulations indépendantes (motorisées).
Ce genre de robot a donc plus d'actionneurs que nécessaire.
Cette propriété permet de préserver les capacités de déplacement de l'organe terminal en présence d'obstacles, le (ou les) degrés de liberté supplémentaire(s) autorisant leur contournement.
Il y a donc plusieurs solutions, pour la recherche de la solution optimale.
Utilisation de la matrice pseudo-inverse

Rappel d'opérations sur les Matrices

Rappel sur les matrices de rotations

Si les angles α, β, et γ sont respectivements les angles autour de x,y et z les matrices de rotation sont les suivantes:
RotX(α)=(1000cosαsinα0sinαcosα)RotY(β)=(cosβ0sinβ010sinβ0cosβ)RotZ(γ)=(cosγsinγ0sinγcosγ0001)
représente une rotation dont le lacet, le tangage et le roulis (également appelé angles de Cardan) ou en aéronautique (z:)Azimuth=lacet=yaw - α ; (y:)Tanguage=pitch - γ; (x:)Roulis=roll - β


Produit de matrice

i,j:cij=k=1naikbkj=ai1b1j+ai2b2j++ainbnj
Soit le produit de deux matrices A=(aij) et B=(bij) de type (m,n) noté AB=(cij), est une matrice de type (m,n) donnée par cij=aij×bij
Exemple :
AijBij=Cij
(1324100212234351)×(5002750821112110)=
=((1×5+3×7+2×2+4×2)(1×0+3×5+2×1+4×1)(1×0+3×0+2×1+4×1)(1×2+3×8+2×1+4×0)(1×5+0×7+0×2+2×2)(1×0+0×5+0×1+2×1)(1×0+0×0+0×1+2×1)(1×2+0×8+0×1+2×0)(1×5+2×7+2×2+3×2)(1×0+2×5+2×1+3×1)(1×0+2×0+2×1+3×1)(1×2+2×8+2×1+3×1)(4×5+3×7+5×2+1×2)(4×0+3×5+5×1+1×1)(4×0+3×0+5×1+1×1)(4×2+3×8+5×1+1×0))=
=(3821628922229155205321637)

Transposé de matrice

C'est une opération simple, ou l'on inverse les lignes et les colonnes
A=(3821628922229155205321637)
AT=(3892953212152162562822037)

Le cofacteur Coef

de la forme A=(a11a12a13a21a22a23a31a32a33)
La methode sera la même pour exprimer les thermes.
Exemple du cofacteur C11=(1)1+1M11 cela tiens compte du signe. C23=(1)2+3M23. C'est bien la somme des cofacteurs qui donne le determinant.

Exemple avec des valeurs

A=(132100122)
C11=+|0022|=0×20×2=0 C12=|1012|=(1×20×1)=2 C13=+|1012|=1×20×1=2
C21=|3222|=(3×22×2)=2 C22=+|1212|=1×21×2=0 C23=|1312|=(1×23×1)=1
C31=+|3200|=3×02×0=0 C32=|1210|=(1×02×1)=2 C33=+|1310|=1×03×1=3
Coef(A)=(022201023)

La matrice adjointe Adj

La matrice adjointe n’est rien d’autre que la matrice cofacteur de A transposé. Elle se note : Adj(A)=(Coef(A))T
Pour A=(132100122)
Adj(A)=(020202213)

Le déterminant d'une matrice

Le déterminant d’une matrice n’existe que pour les matrices carrées.
Pour calculer le déterminant, il faut faure la somme des cofacteurs, le resultat est un scalaire, donc un nombre
det(A)=a11C11+a12C12+a13C13+a21C21+a22C22+a23C23+a31C31+a32C32+a33C33
Pour A=(132100122)
det(A)=0+(2)+2+(2)+0+1+0+2+(3)=2

L'inverse d'une matice

Pour calculer l'inverse d'un matrice, il nous faut son déterminant et sa matrice adjointe.
L'inverse d'un matrice obéit à l'équation AA1=A1A=In, pour rappel In est la matrice unité de la forme In=(100010001)
A1=1det(A)×Adj(A)
Pour A=(132100122)
A1=12×(020202213)=(01010110.51.5)

Matice pseudo-inverse

Cette matrice à pour objectif d'un approximation des moindres carrés, il y a plus de d'équation que de variable, la matrice est donc rectangulaire.
La matrice pseudo-inverse ou inverse de Moore-Penrose, notée A+=(ATA)1AT
Pour A=[122324]
A+=([122234]×[122324])1×[122234]
A+=[9161629]1×[122234]
A+=[29516516595]×[122234]

A+=[3526525145]
Rappel sur la trigonométrie

Rappel sur les propriétés remarquables

sin2t+cos2t=1
sin(A)=sin(A)
cos(A)=cos(A)
sin(A+B)=sinAcosB+cosAsinB
sin(AB)=sinAcosBcosAsinB
cos(A+B)=cosAcosBsinAsinB
cos(AB)=cosAcosB+sinAsinB
sin2A=2sinAcosA
cos2A=cos2Asin2A

Rappel sur les dérivés trigonométrie

cos(A)=sin(A)
sin(A)=cos(A)
cos(u)=usin(u)
sin(u)=ucos(u)

Rappel sur les droites

Deux droites perpendiculaires
y=a1x+b1
y=a2x+b2
a1a2=1

Distance entre deux droites parallèles
dist=|b1b2|a2+1

Solution d'une système linéaire

n inconnues, n équations

Pour une approche de résolution d'équations classiques, par la méthode matriciel, nous avons autant d'inconnues que de solutions
{5x+2y=164x+3y=17 donne A=[5243] ; B=[1617] ; X=[xy]
AX=B donc X=BA soit X=BA1
A1AX=A1B donne X=A1B ou A1est la matrice inverse de A.
A1=[37274757]
X=BA1=[37274757]×[1617]=[23]
La solution de l'équation est x=2 et y=3

Système surdéterminé

Un système est dit surdéterminé si il y a plus d'équations que d'inconnues.
Exemple avec la recherche d'une droite des moindres carrés, à partir d'un nuage de point, recherche de la droite la plus significative.

{x+3y=175x+7y=1911x+13y=23 donne [13571113][xy]=[171923]
Comme la matrice n'est pas carrée, l'approche par la matrice inverse ne fonctionne pas.
La solution, la matrice pseudo-inverse ou inverse de Moore-Penrose, notée A+=(ATA)1AT
Ax=b, alors (ATA)x=ATb, ce qui donne x=(ATA)1ATb soit x=A+×b
A+=([15113713]×[13571113])1×[15113713]
A+=[147181181227]1×[15113713]
A+=[227608181608181608147608]×[15113713]
A+=[31660813260814460826060812460880608]
Vérification de la matrice :
A+×A=[1001], nous sommes bien sur la matrice d'identité
Recherche de la solution approchante :
[xy]=A+×b=[0.51970.21710.236840.42760.20390.1316]×[171923]
[xy]=[7.5138.1184]
On reprends chaque équation avec les valeurs de x et y
{7.513+3×8.1184=16.84175×7.513+7×8.1184=19.261911×7.513+13×8.1184=22.8923
Types d’équations rencontrées (Méthode de Paul)
TypesSystème
Type 1Yri=Y
Type 2Xsθi+Ycθi=Z
Type 3X1sθi+Y1cθi=Z1
X2sθi+Y2cθi=Z2
Type 4X1rjsθi=Y1
X2rjcθi=Y2
Type 5X1sθi=Y1+Z1rj
X2cθi=Y2+Z2rj
Type 6Wsθj=Xcθi+Ysθi+Z1
Wcθj=XsθiYcθi+Z2
Type 7W1cθj+W2sθj=Xcθi+Ysθi+Z1
W1sθj+W2cθj=XcθiYxθi+Z2
Type 8Xsθi+Ys(θi+θj)=Z2
Xcθi+Yc(θi+θj)=Z1