Guillaume3D Posté(e) Février 25 Posté(e) Février 25 Bonjour à tous, J'ai en tête depuis longtemps de faire des imprimantes 3D homemades un peu hors-normes comme vous avez pû le voir (résine, polaire...), mais je me retrouve actuellement un peu bridé par mes connaissances sur le côté "programmation", et sur la modification du code nécessaire pour passer d'un .gcode "normal" cartésien à par exemple celui d'un bras-robot. Selon-vous est-ce que c'est facilement intégrable dans Marlin par exemple ? Auriez-vous des pistes de tutoriels ? Merci !
pjtlivjy Posté(e) Février 25 Posté(e) Février 25 bonsoir @Guillaume3D quand tu parles d'un bras robot, tu parles d'une cinématique série avec plusieurs articulations rotatives (comme un bras Scara ?)
Guillaume3D Posté(e) Février 25 Auteur Posté(e) Février 25 il y a 17 minutes, pjtlivjy a dit : bonsoir @Guillaume3D quand tu parles d'un bras robot, tu parles d'une cinématique série avec plusieurs articulations rotatives (comme un bras Scara ?) Salut, oui pour les articulations rotatives mais plutôt comme les bras Kuka
PPAC Posté(e) Février 25 Posté(e) Février 25 Salutation ! Alors c'est très lointain, c'est tout un monde,mais il me semble que pour un bras robotique, l'approche serait une modélisation qui utilise des matrices de Denavit-Hartenberg ( un modèle où l'on utilise une matrice DH par articulations ) la difficulté, c'est que si on a plein d'articulations, on peut avoir, pour arriver à une position finale du bout du bras, plusieurs enchainements différents de mouvement des articulations. (En gros, on arrive au même résultat, mais pas par le même chemin, et cela peut être à prendre en compte si on doit gérer de possibles collisions avec ce qu'il y a dans le volume où l'on doit déplacer le bras ou si l'on a des contraintes comme effectuer le mouvement le plus directes ou non ) Donc c'est un truc relativement complexe et éventuellement couteux en calcul et mémoire. Il me semble que https://github.com/MarginallyClever/Robot-Overlord-App utilise cela, mais je n'ai pas creusé. 1
pjtlivjy Posté(e) Février 25 Posté(e) Février 25 tes souvenirs sont bons @PPAC c'est une cinématique inverse voilà un bout de code que j'avais dans mes archives @Guillaume3D L’approche se fait en 3 étapes : Calcul de la position du poignet (Wrist Center, WC) Les 3 premiers axes contrôlent la position du poignet, en résolvant un triangle avec la loi des cosinus. Résolution des angles θ1,θ2,θ3θ1,θ2,θ3 En utilisant la géométrie du bras et les paramètres DH. Calcul des angles du poignet θ4,θ5,θ6θ4,θ5,θ6 En résolvant l’orientation avec la matrice de rotation R36R36. import numpy as np def kuka_inverse_kinematics(X, Y, Z, alpha, beta, gamma): # Paramètres DH typiques pour un KUKA KR210 (exemple) d1, a1 = 0.75, 0.35 d4, a2, a3 = 1.25, 1.15, -0.054 d6 = 0.2 # Distance du poignet à l’outil # Position du poignet (Wrist Center) nx = np.cos(alpha) * np.cos(beta) ny = np.sin(alpha) * np.cos(beta) nz = np.sin(beta) Xc = X - d6 * nx Yc = Y - d6 * ny Zc = Z - d6 * nz # Calcul de θ1 (rotation base) theta1 = np.arctan2(Yc, Xc) # Calcul de θ2 et θ3 (géométrie du bras) r = np.sqrt(Xc**2 + Yc**2) - a1 s = Zc - d1 D = (r**2 + s**2 - a2**2 - a3**2) / (2 * a2 * a3) theta3 = np.arctan2(np.sqrt(1 - D**2), D) # Deux solutions possibles theta2 = np.arctan2(s, r) - np.arctan2(a3 * np.sin(theta3), a2 + a3 * np.cos(theta3)) # Orientation du poignet (R36) R36 = np.array([ [np.cos(theta1), -np.sin(theta1), 0], [np.sin(theta1), np.cos(theta1), 0], [0, 0, 1] ]) # Supposons que R36 est donnée, on résout les derniers angles (simplifié) theta4 = np.arctan2(R36[1, 2], R36[0, 2]) theta5 = np.arctan2(np.sqrt(R36[0, 2]**2 + R36[1, 2]**2), R36[2, 2]) theta6 = np.arctan2(R36[2, 1], -R36[2, 0]) return np.degrees([theta1, theta2, theta3, theta4, theta5, theta6]) # Test avec une position cible angles = kuka_inverse_kinematics(0.5, 0.3, 1.2, 0, np.pi/4, np.pi/2) print("Angles articulaires (°) :", angles) 2
Guillaume3D Posté(e) Février 26 Auteur Posté(e) Février 26 Merci pour les réponses @pjtlivjy et @PPAC, dont en gros il suffirait de placer ces calculs à la place du code déjà existant dans Marlin pour que ça fonctionne ?
PPAC Posté(e) Février 26 Posté(e) Février 26 Il y a 1 heure, Guillaume3D a dit : dont en gros il suffirait de placer ces calculs à la place du code déjà existant dans Marlin pour que ça fonctionne ? Je dirais oui, en théorie. Mais en pratique, je ne sais pas si c'est possible simplement et sans déstabiliser l'ensemble existant.
pjtlivjy Posté(e) Février 27 Posté(e) Février 27 bonjour @Guillaume3D alors pour moi ça va être difficile Marlin possède déjà une implémentation de la cinématique inverse pour Scara (d'ou ma première question ) Le langage utilisé dans Marlin est du C++ avec des contraintes spécifiques Le code en Python ci-dessus doit être traduit en C++ pour être intégré à Marlin. Il faudrait aussi modifier profondément Marlin pour qu'il gère les 6 axes d’un KUKA. Klipper est plus adapté, car il permet d'écrire des modules de cinématique inverse en Python, ce qui facilite l'intégration d'un bras articulé.
Guillaume3D Posté(e) Février 27 Auteur Posté(e) Février 27 Salut @pjtlivjy, l'option de créer un script en python qui convertit le .gcode directement depuis le slicer ne serait pas plus simple à mettre en œuvre dans ce cas ? 1
pjtlivjy Posté(e) Février 27 Posté(e) Février 27 Il y a 5 heures, Guillaume3D a dit : Salut @pjtlivjy, l'option de créer un script en python qui convertit le .gcode directement depuis le slicer ne serait pas plus simple à mettre en œuvre dans ce cas ? ça serait effectivement plus simple et plus souple ça rendrait ton travail indépendant du Firmware et utilisable sous n'importe quel slicer et même portable si tu voulais le faire tourner sur un Raspberry 1
Guillaume3D Posté(e) Février 28 Auteur Posté(e) Février 28 Ça marche, merci ! J'ai regardé les bras robots et celui-là est intéressant, mais quelqu'un semble mentionner qu'il s'agit d'une cinématique "Scara 2.5D", est-ce la même que ceux avec des "vraies" axes rotatifs au niveau des articulations ? 1
pjtlivjy Posté(e) Février 28 Posté(e) Février 28 les Scara ont une cinématique plus simple que les Kuka @Guillaume3D par contre il ne s'agit pas d'un Scara 2.5D et encore moins d'un Scara tout court le 2.5 a une montée descente en Z en plus de 2 axes rotatifs sur le plan XY, ce qui le rend particulièrement adapté pour l'impression 3D voilà une base intéressante : ici 1
Guillaume3D Posté(e) Mars 1 Auteur Posté(e) Mars 1 Effectivement, le bras robot est différent car il a une architecture 3 axes et non 6+, pas question des scara Le 28/02/2025 at 17:05, pjtlivjy a dit : voilà une base intéressante : ici Merci, la conception des jointures est particulièrement intéressante ! Je suis un peu perdu sur les scara, elles ont toutes des têtes différentes 1
pjtlivjy Posté(e) Mars 1 Posté(e) Mars 1 (modifié) pas faux @Guillaume3D il y en a même à vendre ici Modifié (le) Mars 1 par pjtlivjy 1
pjtlivjy Posté(e) Mars 3 Posté(e) Mars 3 (modifié) j'en ai trouvé une directement avec Marlin @Guillaume3D ici tu y trouveras peut être j'espère les renseignements que tu cherchais sur l'intégration dans Marlin Modifié (le) Mars 3 par pjtlivjy 1
Guillaume3D Posté(e) Mars 4 Auteur Posté(e) Mars 4 (modifié) Il y a 16 heures, pjtlivjy a dit : j'en ai trouvé une directement avec Marlin @Guillaume3D ici Merci @pjtlivjy J'ai trouvé ce bras robot qui utilise aussi une vieille version de Marlin, mais la cinématique du bras est "#define SCARA" ce qui me laisse un peu perplexe, la cinématique d'un bras robot à 3 axes serait la même que les robots Scara ? Ou c'est uniquement car les moteurs du bras sont face-à-face ? Modifié (le) Mars 4 par Guillaume3D
pjtlivjy Posté(e) Mars 4 Posté(e) Mars 4 bonsoir @Guillaume3D ce n'est pas un SCARA La cinématique SCARA est définie par plusieurs caractéristiques qui la distinguent des autres architectures robotiques, comme les robots cartésiens, delta ou articulés dont la plus différentes des autres est la présence d'un axe Z qui garantit une excellente précision sur le positionnement vertical dit autrement c'est un robot qui est rigide sur l'axe Z et souple sur le plan XY
Guillaume3D Posté(e) Mars 5 Auteur Posté(e) Mars 5 (modifié) Salut @pjtlivjy je me redemande quand même pour le bras robot de la dernière vidéo que j'ai envoyé, tu n'as pas l'impression que c'est une Scara sur le plan X/Z et que le troisième axe (le Z ajouté aux X/Y) est l'axe rotatif de la base ? Car j'ai l'impression que le mécanisme du bras est un scara parallèle déporté, comme dans cette vidéo : Le 01/03/2025 at 20:00, Guillaume3D a dit : Modifié (le) Mars 5 par Guillaume3D 1
fran6p Posté(e) Mars 6 Posté(e) Mars 6 @Guillaume3D Salut, Je n'y connais rien en SCARA J'ai cependant trouvé plusieurs documents, dont une thèse qui bien que parcourue rapidement, me semble apporter de nombreuses informations. La thèse en question => https://dspace.univ-guelma.dz/xmlui/handle/123456789/16745 Sur Cults3d, il y a ce projet de bras robotique pour l'impression 3D. 1
pjtlivjy Posté(e) Mars 6 Posté(e) Mars 6 (modifié) bonjour @Guillaume3D alors j'ai discuté avec un collègue qui s'occupe de la partie robotique, il apparaît que tu es dans le vrai il y a les SCARA à Bras Parallèle Déporté (sans axe Z) comme le tien mais du coup la course en Z est plus limité puisque lié aux dimensions du bras et puis il y a les Hybride SCARA-Parallèle avec Z Actif comme dans cette video @fran6p c'est le même lien que j'ai donné dans un message sur ce fil vendredi dernier P.S : je viens de commencer à lire la thèse c'est passionant Modifié (le) Mars 6 par pjtlivjy 1
Guillaume3D Posté(e) Mars 6 Auteur Posté(e) Mars 6 (modifié) Il y a 6 heures, fran6p a dit : La thèse en question => https://dspace.univ-guelma.dz/xmlui/handle/123456789/16745 Salut, merci pour le lien, je l'ai uniquement survolé pour le moment mais c'est très intéressant ! J'ai récré les contraintes dans SolidWorks du bras robot, ça reste compliqué à comprendre même en jouant avec la souris Salut @pjtlivjy, merci d'avoir demandé et pour ces explications ! Celui de la vidéo que tu as envoyé est bien un SCARA "parallèle" ? Il me semblait que les parallèles visait uniquement ceux montés côtes à côtes latéralement : PS: Peut-être que j'en demande trop car SCARA veut dire "Selective Complaint Articulated Robot Arm" (d'après la thèse ) ce qui est assez vague, et au fil de mes recherches j'ai plutôt l'impression que chaque constructeur fait un peu comme il veut, pareils pour les noms... Modifié (le) Mars 6 par Guillaume3D 1
pjtlivjy Posté(e) Mars 6 Posté(e) Mars 6 Il y a 2 heures, Guillaume3D a dit : PS: Peut-être que j'en demande trop car SCARA veut dire "Selective Complaint Articulated Robot Arm" (d'après la thèse ) ce qui est assez vague, et au fil de mes recherches j'ai plutôt l'impression que chaque constructeur fait un peu comme il veut, pareils pour les noms... Le concept des robots SCARA est ancien et libre d'utilisation. Cependant, certaines innovations spécifiques peuvent être protégées par des brevets, notamment des mécanismes particuliers, des logiciels de contrôle ou des améliorations structurelles donc ça poussé certains concepteurs à innover pour ne pas payer les droits 1
pjtlivjy Posté(e) Mars 12 Posté(e) Mars 12 bonjour @Guillaume3D étant hier au salon Global Industrie de Lyon, dans la partie robotique je suis tombé sur ça et j'ai pensé à toi 1
Guillaume3D Posté(e) Mars 12 Auteur Posté(e) Mars 12 Salut @pjtlivjy merci pour la vidéo Super précis ces robots ! Tu sais pourquoi ils ralentissent énormément quand ils passent devant les carrés noirs près des vitres ?
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant