Module kinematics

  • Auteur de la discussion jeremie73
  • Date de début
J

jeremie73

Nouveau
Bonjour!
J'aurais besoin d'aide pour faire fonctionner le module kinematics de EMC2.
Voilà le problème:

kinematic.jpg


Lorsque la broche (segment rouge) va pivoter par rapport à B, le point I va se déplacer en I', or je voudrais qu'il reste en I. :mrgreen:
Pour cela EMC2 devrait déplacer la broche par rapport à X de [highlight=#bfffff]sin(α) x LB[/highlight] et par rapport à Z de [highlight=#bfffff]-LB + (cos(α) x LB)[/highlight]... Mais comment lui dire? Il faut lui écrire dans un fichier texte?
Je sais qu'il y a un rapport avec le fichier HAL mais j'en sais pas plus...

Je vous remercie d'avance! :wink:
 
H

horsot

Compagnon
Bonjour Jérémie,

As tu lu la doc? : http://linuxcnc.org/docs/html/motion_kinematics.html

Il faut différentier les "joints" (liaison cinématique entraînée par un moteur) et les coordonnées cartésiennes (XYZABC...) du bout de l'outil appelé "axis". Le G-code est écrit pour les coordonnées "axis" c'est à EMC2 de se débrouiller pour faire bouger les moteurs.

Pour cela, Il faut écrire 2 fonctions en C décrivent la cinématique, ie le passe d'un système de coordonnée à un autre :
Le "Forward" : Transformation des coordonnées "joints" en coordonnées "axis"
Le "Inverse" : Transformation des coordonnées "axis" en coordonnées "joints"

Pour ton problème inspire toi de la doc et de la cinématique 5 axes donnée en exemple (5axiskins.c) : http://git.linuxcnc.org/gitweb?p=em...2088875f6fcf7f5c67a6ce88ea6b4eda531e5;hb=HEAD

Ce n'est pas très dur tu verras, c'est juste un coup à prendre. Bon courage.

Xavier
 
J

jeremie73

Nouveau
Oui je l'ai lu, j'avais à peu près compris le système des joints et des axes par contre je n'avais pas vu le fichier exemple de la cinématique 5 axes!

Je vais essayer de le déchiffrer et de le modifier, parceque je ne sais pas programmer. :lol:

Une fois modifier je dois le mettre avec le fichier HAL dans le dossier config de ma machine ?

En tout cas merci beaucoup pour ton aide! :wink:
 
H

horsot

Compagnon
Avec plaisir!

Ok ça risque d'être un peu tendu sans connaissance en C. C'est le moment de t'y mettre! :wink:

De mémoire, pour compiler et installer le module kinematic "totokin.c" tu ouvres un terminal et tu fais :

Il me semble qu'il te faut "emc2-dev" pour faire ça, donc il te faut installer le dit paquet dans ubuntu (apt-get ou synaptic).

Bonne continuation

Xavier
 
J

jeremie73

Nouveau
Bonsoir!

Alors j'ai commencé à apprendre les bases du langage C mais je n'ai toujours pas réussi a comprendre le fonctionnement de kinematics...

Mais j'arrive a contourner le problème: (l'histoire est longue mais je vous la raconte depuis le début...)

La machine qui est en cours de réalisation est une 5 axes que je conçoit sous Catia V5. Les programmes 5 axes seront également réalisé sous Catia, le problème, c'est que je n'ai pas les postprocesseurs pour convertir le programme en fichier lisible par EMC2. Malgré cela, ont peut enregistrer le programme sous un format propre à Catia (exemple d'une ligne : "GOTO / 8.41245, 1.39812, -6.07797,-0.073444,-0.950235, 0.302754"), on a les coordonnées de X, Y, Z et trois coordonnées qui définissent l'angle de la fraise par rapport à la pièce. Donc j'ai créer un programme qui lit chacune des lignes et les convertit dans un format compréhensible par EMC2, il recopie les coordonnées X, Y, Z, en rajoutant chacune des lettres devant, puis il convertit les trois coordonnées angulaire en deux coordonnées B et C (ce qui donne ceci : "G1 X8.412450 Y1.398120 Z-6.077970 B-72.376910 C-94.419624").

Donc finalement, je suis en train de modifier ce programme pour qu'il me demande la longueur de l'outil, et qu'il reconvertisse encore une fois les coordonnées en fonctions de cette valeur...

En plus de ça la 5 axes n'est plus ce qu'elle devait être, je souhaitais au départ que la broche soit rotative et au final ce sera aura un plateau tilting.

Voilà une photo de la conception actuelle si ça intéresse quelqu'un...



C'est pas terminé mais j'y ai déjà passé quelques heures :lol:, pour l'instant la bête pèse 600Kg...
 
W

Wolfuss

Nouveau
Salut

Vraiment pas bête ton astuce je n'y avait pas pensé merci

Pour la conversion des données angulaire en axes B et C, tu fais ça avec excel?

pourquoi tu apprend le language C pour la kinematics c'est du python.

Beaux boulot tu t'ai bien amusé pour faire la modélisation de la machine, mais tu as raison de la faire moi j'aurais bien fait de la faire, parce que après je t'explique pas les couilles que tu peut rencontrer.



Tchao
 
J

jeremie73

Nouveau
Non, c'est mon programme qui fait les calculs, en faite il lit les trois valeurs angulaire qu'il nomme "DistanceI", "DistanceJ" et "DistanceK", et ensuite il calcul les nouveaux angles avec ces lignes de codes:
Et après j’obtiens les nouveaux angles "AngleB" et "AngleC" qu'il m'écrit dans le nouveau programme.

Wolfuss a dit:
pourquoi tu apprend le langage C pour la kinematics c'est du python.
Ah merde, je croyais que c'était du C... Ça expliquerais pourquoi je ne comprend toujours rien à ce module. :lol:

Ouai c'est sur que ça aide, ça donne un bon aperçu!
 
W

Wolfuss

Nouveau
Salut

Je voudrais savoir comment tu applique ton programme pour l’exécuter

Salutation

wolf
 

Sujets similaires

fred 69
Réponses
9
Affichages
1 125
tournele
tournele
N
Réponses
78
Affichages
9 399
nipil
N
W
Réponses
58
Affichages
10 064
Doctor_itchy
D
messdu74
Réponses
52
Affichages
8 255
mag4pul
mag4pul
01power
Réponses
3
Affichages
13 742
01power
01power
mvt
  • importantes
Réponses
78
Affichages
54 473
Bernard.L
B
Haut