Pour ceux que ca pourrait intéresser j'ai finalement résolu mon problème et améliorer le scripte. A partir du scripte classique de Matlab pour la cinématique inverse où les angles sont calculés de manière récursive en discret, au lieu de calculer l'écart d'angle deltaQ de la manière suivante:
DeltaQ=pinv(J)*DeltaX, pinv(J) la pseudo-inverse de la jacobienne de notre système
DeltaX l'ecart entre la position actuelle et la position visée par le bout du bras
On ajoute un terme d'optimisation qui est le suivant:
alpha *(I-pinv(J)*J)*grad(phi(q)), alpha coefficient négatif pour minimiser la fonction
I la matrice identité
grad(phi) le gradient d'une fonction phi par rapport au différents angles de notre système
On a alors:
DeltaQ=pinv(J)*DeltaX+alpha *(I-pinv(J)*J)*grad(phi(q)).
La fonction phi dépend de l'optimisation (ou contrainte) que l'on cherche à mettre en oeuvre. Dans la cas d'angle limite, phi a cette forme:
phi=Somme(((qi-1/2(qimax+qimin))/(qimax-qimin)))^2, qimax l'angle limite maximum pris par l'angle i
qimin l'angle limite minimum pris par l'angle i
qi la valeur actuel de l'angle il
Ce qui donne au finale:
DeltaQ=pinv(J)*DeltaX+2*alpha *(I-pinv(J)*J)*(qi-1/2(qimax+qimin))/(qimax-qimin)^2.
Si il y a quelques questions car c'est assez abstrait j'essaierai d'y répondre
Ps: Désolé je sais pas coder en LaTex

Mon contenu
Non spécifié
