PMPedro Masi Burgos
← Projets

Cinématique de robots série à 6 axes

Étude cinématique sous MATLAB de trois robots KUKA KR 120 qui font passer une pièce de fonderie par deux presses de forge jusqu'à un convoyeur : modèle Denavit–Hartenberg, cinématique inverse de Pieper, recherche numérique des singularités et trajectoires mixtes cartésiennes et articulaires.

Projet final de Robotique I (UNCuyo, 2022), réalisé en équipe de trois.

  • MATLAB
  • Robotics Toolbox
  • Denavit–Hartenberg
  • Pieper inverse kinematics
  • Jacobian singularities
  • Trajectory planning
Robot industriel KUKA Quantec utilisé dans l'étude de cinématique 6 axes

La tâche et les robots

Nous avons proposé une application industrielle et vérifié qu'elle était réalisable avec des robots industriels : une ligne de forge de pièces de fonderie, inspirée d'une vidéo de cellule réelle. Trois robots KUKA KR 120 R2100 nano F exclusive, chacun avec une pince tout ou rien, travaillent à la suite :

  • Le robot 1 prend un pré-moule sur un plan incliné à 30° et le place dans la première presse.
  • Le robot 2 prend la pièce pressée et la charge dans la seconde presse.
  • Le robot 3 prend la pièce finale et la dépose sur un convoyeur.

L'étude est purement cinématique : pas de dynamique, pas de commande et pas de robot réel. Les objectifs étaient d'éviter les collisions avec les machines, d'éviter les configurations singulières et de garder des vitesses modérées et des mouvements doux. Nous avons travaillé sous MATLAB avec le Robotics Toolbox de Peter Corke, un modèle 3D du robot issu de la toolbox ARTE et une pince que nous avons modélisée nous-mêmes.

Animation complète de la cellule, générée sous MATLAB.
Simulation de l'espace de tâche avec trois robots 6 axes et les postes de transfert
Disposition des trois robots et des machines autour d'eux.

Cinématique directe

À partir des dimensions du robot dans la fiche technique, nous avons attribué les repères de Denavit–Hartenberg et écrit le tableau des paramètres (d1 = 0,57 m, a1 = 0,30 m, a2 = 0,90 m, d4 = 0,90 m, d6 = 0,24 m, six articulations rotoïdes). Sous MATLAB, c'est un objet SerialLink avec les limites articulaires de la fiche technique.

Les trois robots partagent la même matrice DH et diffèrent par leur base : les robots 2 et 3 sont translatés et tournés vers leur place dans la cellule. L'outil est un décalage de 0,2 m selon z pour la pince. Notre propre fonction Transf_Sistemas_Total(R, q) multiplie les six transformations de liaison et encadre le produit avec la base et l'outil, ce qui donne la pose de la pince dans le repère monde.

Attribution des repères DH pour le robot KUKA
Repère de chaque articulation, selon la convention de Denavit–Hartenberg.
Fonction MATLAB qui enchaîne les transformations de liaison en pose de l'outil
Transf_Sistemas_Total : base × transformations de liaison × outil.

Cinématique inverse

Le poignet est sphérique (les trois derniers axes se croisent en un point), nous avons donc utilisé la méthode de Pieper, qui coupe le problème en deux :

  • Bras : le centre du poignet est la position de l'outil moins d6 selon l'axe z de l'outil. On en tire q1, q2 et q3 par géométrie, avec deux configurations du bras.
  • Poignet : une fois q1 à q3 connus, la rotation restante (la transformation du repère 3 au repère 6) donne q4, q5 et q6, avec deux retournements du poignet.

On obtient jusqu'à huit solutions. CinInv(T, R, q0, best) retire d'abord la base et l'outil de la pose cible et, si demandé, renvoie la solution la plus proche (norme minimale) de la posture précédente, pour que le robot ne saute pas d'une configuration à l'autre. La dérivation complète est dans l'annexe du rapport.

Vitesses et singularités

Le jacobien est 6×6 et une analyse symbolique est ingérable ; nous avons donc cherché les singularités numériquement : nous avons tiré 10 000 vecteurs articulaires aléatoires dans l'espace de travail et gardé ceux dont le déterminant du jacobien est nul.

Des motifs apparaissent : q3 = −π/2 (les liaisons 2 et 3 s'alignent), q5 = 0 (les liaisons 3 et 5 s'alignent) et les limites articulaires. Pour vérifier les deux premiers, nous avons forcé q3 puis q5 à ces valeurs dans les 10 000 vecteurs aléatoires, et tous sont ressortis singuliers. D'autres points singuliers n'ont pas de relation simple entre les articulations.

Ces résultats ont ensuite guidé les trajectoires : les points de passage et les solutions de cinématique inverse sont choisis pour que les robots ne passent jamais par ces configurations.

Planification de trajectoires

Chaque robot a une courte liste de points de passage cartésiens (5 pour le robot 1, 7 pour le robot 2, 5 pour le robot 3) : les points de prise et de dépose plus des points de positionnement intermédiaires. Le point de dépose d'un robot est le point de prise du suivant : les trois se retrouvent donc aux machines.

  • Près d'une machine, le robot entre et sort lentement selon une ligne droite cartésienne (ctraj). La cinématique inverse est résolue à chaque échantillon et initialisée avec la posture précédente, pour que la configuration ne saute pas le long du segment.
  • Loin des machines, il interpole dans l'espace articulaire, ce qui donnait un mouvement plus propre et plus doux qu'une interpolation cartésienne entre points éloignés.
  • L'interpolation articulaire utilise mstraj sur le robot 1 et jtraj sur les robots 2 et 3 : mstraj donnait des vitesses erratiques et de grands pics d'accélération, et les éviter obligeait à aller trop lentement.
  • Pour chaque point de passage, nous avons choisi à la main, quand c'était nécessaire, l'une des huit solutions de cinématique inverse. Sur le robot 1, par exemple, un point utilise une autre solution pour que le poignet évite q5 = 0.

Vitesse et accélération viennent d'une dérivation numérique avec un pas de 0,1 s.

Résultats des trajectoires

Une colonne par robot ; les lignes sont la position, la vitesse et l'accélération de l'effecteur, puis la position, la vitesse et l'accélération articulaires. L'axe horizontal est le numéro de pas (0,1 s par pas).

Les courbes de l'effecteur sont douces pour les trois robots. Le seul pic d'accélération visible est à la fin du trajet du robot 1, quand il revient à la pose de prise ; il est petit et ce mouvement n'est pas critique, nous l'avons donc accepté. Chez le robot 2, la plus grande vitesse articulaire est celle de l'articulation de poignet q4, environ 1,7 rad/s, pendant les longs déplacements libres.

Robot 1 : position, vitesse et accélération de l'effecteur en fonction du numéro de pas
Robot 1 · effecteur
Robot 2 : position, vitesse et accélération de l'effecteur en fonction du numéro de pas
Robot 2 · effecteur
Robot 3 : position, vitesse et accélération de l'effecteur en fonction du numéro de pas
Robot 3 · effecteur
Robot 1 : position articulaire en fonction du numéro de pas
Robot 1 · position articulaire
Robot 2 : position articulaire en fonction du numéro de pas
Robot 2 · position articulaire
Robot 3 : position articulaire en fonction du numéro de pas
Robot 3 · position articulaire
Robot 1 : vitesse articulaire en fonction du numéro de pas
Robot 1 · vitesse articulaire
Robot 2 : vitesse articulaire en fonction du numéro de pas
Robot 2 · vitesse articulaire
Robot 3 : vitesse articulaire en fonction du numéro de pas
Robot 3 · vitesse articulaire
Robot 1 : accélération articulaire en fonction du numéro de pas
Robot 1 · accélération articulaire
Robot 2 : accélération articulaire en fonction du numéro de pas
Robot 2 · accélération articulaire
Robot 3 : accélération articulaire en fonction du numéro de pas
Robot 3 · accélération articulaire

Capteurs et actionneurs (supposés)

La fiche technique gratuite n'indique pas quels capteurs et actionneurs possède le robot ; le rapport propose donc ce dont la tâche aurait besoin :

  • Actionneurs : servomoteurs électriques avec leurs variateurs, codeurs pour la position articulaire et un frein mécanique de maintien sur chacun.
  • Capteurs de courant, car ils sont simples et peu coûteux. La température du moteur est déduite du courant (effet Joule), il n'y a donc pas de capteur de température.
  • Capteurs de proximité à ultrasons sur la pince et le bras pour garder une distance minimale avec les objets et les personnes (par exemple un Siemens 3RG6013-3AD00, 200–1300 mm).
  • Pas de capteur d'effort : les pièces sont normalisées, la force de serrage est donc réglée à l'avance.

Limites

  • Tout est cinématique. Il n'y a ni dynamique, ni commande, ni vérification des couples ou des limites réelles de vitesse.
  • L'évitement des collisions n'est pas calculé : nous avons placé les points de passage à la main et vérifié le dégagement visuellement dans l'animation 3D.
  • L'évitement des singularités est manuel lui aussi (points de passage et choix de la solution de cinématique inverse), pas un planificateur automatique.
  • La trajectoire de chaque robot est générée et animée séparément ; rien ne planifie les passages de relais entre robots.
  • La validation est visuelle et qualitative : l'animation et la douceur des courbes.