bonjour,
si face à une equation trigonometrique assez complexe, je decide de la lineariser pour simplifier mon calcul, me serait-il possible de revenir à la forme trigo, apres resolution?
merci
-----
bonjour,
si face à une equation trigonometrique assez complexe, je decide de la lineariser pour simplifier mon calcul, me serait-il possible de revenir à la forme trigo, apres resolution?
merci
Tu veux dire, passer d'une forme trigo à une forme complexe puis revenir à la forme trigo?
Ou bien remplacer sin(x) par x et cos(x) par 1 ? Tu perds plein d'informations que tu ne pourras pas récupérer, sauf cas très particulier et très miraculeux.
c'est bien ça.Ou bien remplacer sin(x) par x et cos(x) par 1 ?
Tu perds plein d'informations que tu ne pourras pas récupérer, sauf cas très particulier et très miraculeux.
En effet, dans ce cas, vu que tu dis que cos(x) = à peu près à 1 et sin(x) à x, tu ne peux pas remonter!
Par exemple, comment pourrais-tu savoir si c'était cos(x) ou cos(x/2) ?
ce que je cherche c'est resoudre ce systeme:
mes inconnues etant les theta.Code:-sin(alphay) = sin(theta5)*cos(theta1)*cos(theta2+theta3)*cos(theta4)+sin(theta5)*sin(theta1)*sin(theta4)+cos(theta1)*sin(theta2+theta3)*cos(theta5) cos(alphaz) = (cos(theta6)*cos(theta5)*cos(theta1)*cos(theta2+theta3)*cos(theta4)+cos(theta6)*cos(theta5)*sin(theta1)*sin(theta4)-cos(theta6)*cos(theta1)*sin(theta2+theta3)*sin(theta5)+sin(theta6)*cos(theta1)*cos(theta2+theta3)*sin(theta4)-sin(theta6)*sin(theta1)*cos(theta4))/cos(alphay) cos(alphax) = (-sin(theta2+theta3)*cos(theta4)*sin(theta5)+cos(theta2+theta3)*cos(theta5))/cos(alphay) x = 249*sin(theta5)*cos(theta1)*cos(theta2+theta3)*cos(theta4)+249*sin(theta5)*sin(theta1)*sin(theta4)+249*cos(theta1)*sin(theta2+theta3)*cos(theta5)-1057*cos(theta1)*sin(theta2+theta3)+165*cos(theta1)*cos(theta2+theta3)+1075*cos(theta1)*cos(theta2)+410*cos(theta1) y = 249*sin(theta5)*sin(theta1)*cos(theta2+theta3)*cos(theta4)-249*sin(theta5)*cos(theta1)*sin(theta4)+249*sin(theta1)*sin(theta2+theta3)*cos(theta5)-1057*sin(theta1)*sin(theta2+theta3)+165*sin(theta1)*cos(theta2+theta3)+1075*sin(theta1)*cos(theta2)+410*sin(theta1) z = 775-249*sin(theta2+theta3)*cos(theta4)*sin(theta5)+249*cos(theta2+theta3)*cos(theta5)-1057*cos(theta2+theta3)-165*sin(theta2+theta3)-1075*sin(theta2)
D'où sors-tu ces documents pornographiques ?
Ces équations complètement obscènes ? C'est fou, n'y a-t-il pas moyen d'arriver autrement, ça vient de quelle science ?
c'est de la mecanique.
pour resumer:
6 moteurs servent à positionner un objet.
la position de cet objet est donnée par les coordonnées cartesiennes x, y, z et son orientation par alphax, alphay, et alphaz(angles d'euler).
les orientations des moteurs sont données par theta1-6
les equations que j'ai ecrit donnent la position de l'objet en fonction des orientations des moteurs, ce qui en soit n'est pas tres interessant, car ce qu'on cherche generalement c'est une loi de commande des moteurs en fonction d'une exigence de position de l'objet. je cherche donc à inverser ces equations.
Ca me rappelle le problème inverse des robots où je travaillais il y a longtemps.
On cherchait par exemple à imposer une trajectoire linéaire à un point-outil, par exemple une torche de soudure.
On s'efforçait alors de réaliser une géométrie découplée, c'est-à-dire que le robot avait 3 axes pour le positionnement d'un point A et ensuite 3 axes concourants en A pour les rotations. On utilisait les quaternions pour éviter les positions dégénérées quand les axes s'alignaient. Ce n'était pas simple à faire, d'autant moins que ces calculs doivent être faits en temps réel pour les asservissements.
Héhé!Ca me rappelle le problème inverse des robots où je travaillais il y a longtemps.
Bah! ce truc c'est justement ce qui me sert à calculer le modele geometrique inverse d'un robot 6 axes.
J'avais reconnu. Une chose qu'on peut faire assez facilement, c'est déterminer x, y, z et les 3 orientations à partir des angles des bras, sous réserve qu'on connaisse avec précision les longueurs des bras et surtout la position zéro des angles.
On peut aussi calculer les variations dx, dy, dz, etc... de la position quand les angles varient de dthéta. Ca permet de bouger de proche en proche en inversant une matrice 6x6 et ensuite par itération.
Mais les approximations de petits angles ne sont certainement pas correctes.
ça c'est fait.Une chose qu'on peut faire assez facilement, c'est déterminer x, y, z et les 3 orientations à partir des angles des bras, sous réserve qu'on connaisse avec précision les longueurs des bras et surtout la position zéro des angles.
les equations que je cite sortent de la matrice de passage A06. c'est le MGD, et ce que je cherche moi c'est le MGI.
6x6?Ca permet de bouger de proche en proche en inversant une matrice 6x6 et ensuite par itération.
le MGD est une matrice 4x4, le MGI 6x1. il n'y a 6x6 que le modele cinamatique ou variationnel, c'est à ça que tu fais allusion? que viennent-il faire là dedans? j'ai du mal à comprendre.
Si je comprends ton raisonnement, tu me demande d'inverser le modele variationnel et d'iterer?
si c'est ça, alors c'est tjrs le meme probleme (calcul infiniment long). j'ai essaié y a quelques jours d'inverser la matrice jacobienne, et j'ai rien obtenu apres 2H de calcul.
le probleme vient du fait que les formules trigo (que ce soit celle que j'ai cité plus haut, ou celles de la jacobienne) sont trop complexes, c'est pourquoi je cherche s'il n'y a pas moyen de les simplifier ou de guider le solveur dans son calcul.
merci
Je voyais une inversion numérique. C'est bien une matrice 6x6 pour un robot à 6 degrés de liberté.
càd? MATLAB &co? si c'est ça alors j'ai essayé mais rien.Je voyais une inversion numérique.
tout depend de ce represente cette matrice cinematique ou geometrique.C'est bien une matrice 6x6 pour un robot à 6 degrés de liberté.
à ma connaissance, il n'y a matrice 6x6 pour 6 axes que la jacobienne et celle là je l'ai calculée, mais ma question ne porte pas sur elle.
pour avoir une idée de ce que je suis entrain de faire: http://forums.futura-sciences.com/po...0.html#1430650
pour t'expliquer d'ou viennent les equations que j'ai cité.
dans la matrice 4x4 du MGD:
les termes A(1,4), A(2,4), et A(3,4) representent respectivent les positions x, y, et z de l'effecteur.
le terme A(1,3) represente -cos(alphay), A(1,2) -cos(alphaz)cos(alphay), et A(2,3) -cos(alphax)cos(alphay), les alphas etant les angles d'euler
et comme j'ai deja calculé le MGD, j'ai juste remplacé ces termes par leurs valeurs. mais comme t'as pu remarquer ça fait des expressions monstres
Expressions monstres certes mais les dérivées partielles ne sont pas pires, alors tant qu'on ne cherche pas une inversion littérale, on doit y arriver.
Inverser une matrice 6x6 ça doit se faire assez bien avec une bécane.
La dimension de la matrice dépend de la géométrie du robot. La pire des situations est un robot purement articulé (pas de translations) dont le poignet n'a pas ses axes concourants.
Bah! j'ai essayé, et ça n'a rien donné (tout est dans le lien que je t'ai montré)nverser une matrice 6x6 ça doit se faire assez bien avec une bécane.
dis moi de quell matrice tu parles, pour voir si on parle de la meme chose.La dimension de la matrice dépend de la géométrie du robot
héhé, c'est justement le cas (RRRRRR). mais de toute facon la majorit" des robots 6 axes est de cette configurations, alors il n'y a pas d'echapatoire.La pire des situations est un robot purement articulé (pas de translations) dont le poignet n'a pas ses axes concourants.
salut,
j'ai laissé Matlab mijoter pendant 4 heures et voici ce que j'ai obtenu:
>> [theta1 theta2 theta3 theta4 theta5 theta6]=solve(eq1,eq2,eq3,eq4,eq5,eq6 ,theta1,theta2,theta3,theta4,t heta5,theta6)
Warning: Explicit solution could not be found.
> In solve at 140
In sym.solve at 49
theta1 =
[ empty sym ]
theta2 =
[]
theta3 =
[]
theta4 =
[]
theta5 =
[]
theta6 =
[]
bonsoir,
en bidouillant un peu les equations, j'arrive à sortir ce truc:
theta6 n'apparait que dans une seul equation. avec ça je peux sortir theta6 du systeme et resoudre ainsi un systeme de 5 equation plutot que 6(ca facilite un peu le calcul).Code:cos(theta6-arctan((cos(theta1)*sin(theta4)*cos(theta2)*cos(theta3)-1.*cos(theta1)*sin(theta4)*sin(theta2)*sin(theta3)-1.*sin(theta1)*cos(theta4))/(cos(theta5)*cos(theta1)*cos(theta4)*cos(theta2)*cos(theta3)-1.*cos(theta5)*cos(theta1)*cos(theta4)*sin(theta2)*sin(theta3)+cos(theta5)*sin(theta1)*sin(theta4)-1.*cos(theta1)*sin(theta5)*cos(theta2)*sin(theta3)-1.*cos(theta1)*sin(theta5)*sin(theta2)*cos(theta3)))) = cos(alphaz)*cos(alphay)/((cos(theta5)*cos(theta1)*(cos(theta2)*cos(theta3)-sin(theta2)*sin(theta3))*cos(theta4)+cos(theta5)*sin(theta1)*sin(theta4)-cos(theta1)*(cos(theta2)*sin(theta3)+sin(theta2)*cos(theta3))*sin(theta5))^2+(cos(theta1)*(cos(theta2)*cos(theta3)-sin(theta2)*sin(theta3))*sin(theta4)-sin(theta1)*cos(theta4))^2)^.5 cos(theta4) = -(cos(alphax)*cos(alphay)-(cos(theta2)*cos(theta3)-sin(theta2)*sin(theta3))*cos(theta5))/((cos(theta2)*sin(theta3)+sin(theta2)*cos(theta3))*sin(theta5))
pour theta4 c'est plus delicat, les autres equations, y en a avec des cos(theta4) et d'autres avec sin(theta4)
est ce une bonne demarche pour faciliter le systeme d'apres vous? et que pourrais je faire d'autre?
merci
Je n'ai pas l'intuition qu'on puisse résoudre ce problème par voie analytique, mais évidemment ce n'est qu'une intuition.
Mauvais post