Aller au contenu

Messages recommandés

Posté(e)

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 ! 😄

Posté(e)

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 ?) 

Posté(e)
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

Posté(e)

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é.

  • J'aime 1
Posté(e)

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 :

  1. 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.
  2. Résolution des angles θ1,θ2,θ3θ1,θ2,θ3
    • En utilisant la géométrie du bras et les paramètres DH.
  3. 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)
 

 

  • J'aime 2
Posté(e)

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 ?

Posté(e)
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.

Posté(e)

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é.

Posté(e)

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 ?

  • J'aime 1
Posté(e)
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 😉

  • Merci ! 1
Posté(e)

Ç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 ?

bras-robotique-robot-ur3-004431450-product_zoom.jpg.6fd70e030098de559f43bdadd29e98b1.jpg

 

  • J'aime 1
Posté(e)

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  😉

image.thumb.png.41c99f50e62e934d501737aed7dbd292.png 

  • J'aime 1
Posté(e)

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 😅

 

  • Haha 1
Posté(e) (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

image.thumb.png.58159144b918175165cc37dde547803c.png 

Modifié (le) par pjtlivjy
  • Merci ! 1
Posté(e) (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) par Guillaume3D
Posté(e)

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 

Posté(e) (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) par Guillaume3D
  • J'aime 1
Posté(e)

@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.

🙂 

  • J'aime 1
Posté(e) (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) par pjtlivjy
  • J'aime 1
Posté(e) (modifié)
Il y a 6 heures, fran6p a dit :

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 :

dextar422.jpg.9a80d997bd1f0af75e8de95bfe5824a3.jpg

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) par Guillaume3D
  • J'aime 1
Posté(e)
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

  • Merci ! 1
Posté(e)

bonjour @Guillaume3D étant hier au salon Global Industrie de Lyon, dans la partie robotique je suis tombé sur ça et j'ai pensé à toi 😉

 

  • Merci ! 1
Posté(e)

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 ?

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...