Inscription / Connexion Nouveau Sujet
Niveau Maths sup
Partager :

système d équations non linéaies

Posté par jbperin (invité) 06-12-04 à 14:11

Bonjour à tous

Dans la cadre d'un pojet de robotique, je cherche à faire suivre une trajectoire à l'effecteur final d'un robot manipulateur plan.
La modèlisation géométrique directe de ce robot me donne la position de l'effecteur finale du robot (X,Y)  en fonction de 2 coordonnées articulaire (a,b):

X = a1*cos(a+b) + a2*cos(a)
Y = a1*sin(a+b) + a2*sin(a)
où a1, a2 sont les longueurs des bras articulés du robot

Je cherche le modèle géométrique inverse de ce robot.
c'est à dire à calculer la fonction F telle que:
(a,b) = F(X,Y)

Quelqu'un peut-il m'aider ?


Posté par
J-P Posteur d'énigmes
re : système d équations non linéaies 06-12-04 à 15:36

Je suppose que tu essaies de trouver a = F1(X,Y,a1,a2) et b = F2(X,Y,a1,a2) ?

Si oui:
X = a1*cos(a+b) + a2*cos(a)   (1)
Y = a1*sin(a+b) + a2*sin(a)   (2)

(1)² + (2)² ->

X² + Y² = (a1)² + (a2)² + 2.a1.a2.[cos(a+b).cos(a) + sin(a+b).sin(a)]

Or cos(a+b).cos(a) + sin(a+b).sin(a) = [cos(a)-cos(b)-sin(a).sin(b)].cos(a) + [sin(a).cos(b)+cos(a).sin(b)].sin(a)
cos(a+b).cos(a) + sin(a+b).sin(a) = cos²(a).cos(b)-sin(a).cos(a).sin(b) + sin²(a).cos(b)+ sin(a).cos(a).sin(b)
cos(a+b).cos(a) + sin(a+b).sin(a) = cos²(a).cos(b) + sin²(a).cos(b)
cos(a+b).cos(a) + sin(a+b).sin(a) = [cos²(a)+sin²(a)].cos(b)
cos(a+b).cos(a) + sin(a+b).sin(a) = cos(b)

->
X² + Y² = (a1)² + (a2)² + 2.a1.a2.cos(b)

cos(b) = [X² + Y² - (a1)² - (a2)²]/(2.a1.a2)

-> b = ... (fonction de X , Y, a1 et a2)
-----
Je ne continue pas pour "a" car je ne suis pas sûr que c'est ce que tu veux (et aussi parce que je suis un peu flemmard )



Posté par jbperin (invité)ARG J-P m a tué 06-12-04 à 16:03

Alors là .. tu m'as sidéré ..

c'est exactement ce que je cherchais ... sans oser le trouver ..MDR

ca fait trois jours que je suis sur le problème .. sans rien trouver .. et toi  ... tu lui tords le cou en 10 minutes

Euh ..t'es sur de pas avoir 10 min de libre pour t'attaquer à "a" .. ou pour me donner une piste .. STP


Posté par
J-P Posteur d'énigmes
re : système d équations non linéaies 06-12-04 à 16:31

Attention qu'il y a une faute de frappe dans ma réponse précédente (mais qui ne change pas le résultat)

Lire:
Or cos(a+b).cos(a) + sin(a+b).sin(a) = [cos(a).cos(b)-sin(a).sin(b)].cos(a) + [sin(a).cos(b)+cos(a).sin(b)].sin(a)
-----------

Pour a c'est un peu plus dur.

On peut par exemple repartir de:

X = a1*cos(a+b) + a2*cos(a)

X = a1*[cos(a).cos(b)-sin(a).sin(b)]. + a2*cos(a)   (1)

cos(b) est connu
et sin²(b) + cos²(b) = 1

sin(b) = +/- V(1 - cos²(b))
A toi de voir le signe du sinus en fonction de b. (si b est dans [0 ; Pi], le sinus est > 0)

En remplaçant sin(b) et cos(b) dans (1) par ce qu'on vient de trouver ci dessus, il reste une équation sans b.

Il suffit (c'est vite dit) d'en tirer "a" (ou sin(a) ou cos(a) ou tg(a) ou ...).

Je n'ai pas fait les calculs.
Il y a peut-être plus simple.
-----

Posté par jbperin (invité)re : système d équations non linéaies 06-12-04 à 18:00

Hé J-P

J'ai essayé de poursuivre le calcul que tu m'as donné ..
Je considère que le cas de "b" est réglé ..
J'essaie de sortir "a" du merdier


X = a1*cos(a+b) + a2*cos(a)
Y = a1*sin(a+b) + a2*sin(a)

Je développe les cos(a+b) et sin(a+b):
X= a1*[cos(a)cos(b) - sin(a)sin(b)] + a2*cos(a)
Y= a1*[sin(a)cos(b) + cos(a)sin(b)] + a2*sin(a)

Je regroupe les inconnues:
X= cos(a).(a1.cos(b)+a2) - a1.sin(b).sin(a)
Y= sin(a).(a1.cos(b)+a2) + a1.sin(b).cos(a)

Je pose :
K1=a1.cos(b)+a2,
K2=a1.sin(b) et
M=cos(a)

Le système devient:
X= K1.M - K2.V(1-M) (1)
Y= K1.V(1-M) + K2.M (2)

(1)/K1-(2)/K2 <=> X/K1-Y/K2 = -(K2/K1+K1/K2)*V(1-M)

d'où:

V(1-M) = -[(X/K1-Y/K2)/(K2/K1+K1/K2)]
avec:
K1=a1.cos(b)+a2,
K2=a1.sin(b) et
M=cos(a)

y'a plus qu'à sortir M=cos(a) de la racine ..

J'ai bon ?

Posté par jbperin (invité)Je ne sais pas me servir du carré 06-12-04 à 18:06

X = a1*cos(a+b) + a2*cos(a)
Y = a1*sin(a+b) + a2*sin(a)

Je développe les cos(a+b) et sin(a+b):
X= a1*[cos(a)cos(b) - sin(a)sin(b)] + a2*cos(a)
Y= a1*[sin(a)cos(b) + cos(a)sin(b)] + a2*sin(a)

Je regroupe les inconnues:
X= cos(a).(a1.cos(b)+a2) - a1.sin(b).sin(a)
Y= sin(a).(a1.cos(b)+a2) + a1.sin(b).cos(a)

Je pose :
K1=a1.cos(b)+a2,
K2=a1.sin(b) et
M=cos(a)


X= K1.M - K2.V(1-M2)
Y= K1.V(1-M2) + K2.M

X/K1-Y/K2 = -(K2/K1+K1/K2)*V(1-M2)

Il vient:
V(1-M2) = -[(X/K1-Y/K2)/(K2/K1+K1/K2)]

avec:
K1=a1.cos(b)+a2,
K2=a1.sin(b) et
M=cos(a)

y'a plus qu'à sortir M=cos(a) de la racine ..



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !