Robotique
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Robotique



  1. #1
    KARLDROGO

    Robotique


    ------

    Bonjour à tous.....
    je suis etudiant en robotique et modeliser mon robot sur Matlab en utilisant la toolbox RTB de peter corke. Malheuresement je suis bloqué au niveau de la determination des equations dynamique et aussi pour developper la commande de mon robot.
    Mon robot est un scara à 4 dégres de libertés.

    Voici mon code pour determiner les quations dynamiques mais il y'a erreur au niveau de la matice Mask.


    Error using SerialLink/ikine (line 164)
    Number of robot DOF must be >= the same number of 1s in the mask matrix



    Code:
    clc;
    clear all;
    
    syms a1 a2 d1 d4 q1 q2 q3 q4 q qd qdd
    
    preach =[0.2, 0.2, 0.3];
    %%%%%%%% CREATION DES JOINTS UTILISANT LES PARAMETRES D-H
    L(1)=Link([0 d1 a1 0])
    L(2)=Link([0 0 a2 0])
    L(3)=Link([0, q3,0,0,1],'standard')
    L(4)=Link([0 d4 0 pi])
    L(3).qlim=[0.35 1]
    %%%%%%%% definition de la masse des joints
    L(1).m = 4.43;
    L(2).m = 10.2;
    L(3).m = 4.8;
    L(4).m = 1.8;
    
    %%%%%%%%%% DEFINITION DU CENTRE DE GRAVITE
    L(1).r = [ 0 0 -0.08]; 
    L(2).r = [ -0.216 0 0.26]; 
    L(3).r = [ 0 0 0.216];
    L(4).r = [ 0 0.02 0];
    
    %%%%%%%%%% DEFINITION DE LA MATRICE D'INERTIE
    %%%%%%%%% INTERPRETER DANS L'ORDRE SUINVANT [Ixx Iyy Izz Ixy Iyz Ixz]
    L(1).I = [ 0.195 0.195 0.026 0 0 0];
    L(2).I = [ 0.588 1.886 1.470 0 0 0];
    L(3).I = [ 0.324 0.324 0.017 0 0 0];
    L(4).I = [ 3.83e-3 2.5e-3 3.83e-3 0 0 0];
    
    %%%%%%%% DEFINITION DE LA LIMITE DES JOINTS 
    L(1).qlim =[deg2rad(-160) deg2rad(160)];
    L(2).qlim =[deg2rad(-125) deg2rad(125)];
    L(3).qlim =[deg2rad(-270) deg2rad(90)];
    
    %%%%%%%%%% CONTRUCTION DU MODEL DU ROBOT SCARAT
    %%%%% j'ai ajouté mask matrix dans To et qreach
    Scarat = SerialLink(L, 'name', 'Scarat');
    qready = [0 -pi/6 pi/6 pi/3];
    m = [1,1,1,1,1,1]  %%%%% mask matrix
    T0 = fkine(Scarat, qready)
    
    t = [0:.056:2];
    %%%%%%%%%% FAIRE LA CINEMATIQUE INVERSE
    qreach = Scarat.ikine(T0, preach);
    [q,qd,qdd]=jtraj(qready,qreach,t);
    
    %%%%%%%%%% COMPLILATION DU MODELE DYNAMIQUE INVERSE EN UTILISANT
    %%%%%%%%%% L'ALGORITHME RECURSIVE DE NEWTON-EULER
    Tauf = Scarat.rne(q, qd, qdd)
    
    %%%%%%%% DYNAMIQUE DIRECTE
    [t1,Q,Qd] = Scarat.fdyn(2, Tauf(5,:),q(5,:), qd(5,:));
    coordialement!!!!!

    -----
    Dernière modification par Antoane ; 14/02/2020 à 09h01. Motif: Ajout balises code

  2. #2
    gloster37

    Re : Robotique

    Bonjour

    dans qreach il n'y a pas m

    qreach = Scarat.ikine(T0, preach); >>> qreach = Scarat.ikine(T0, preach,m);

    mais ton pb ne vient pas de là

    il est précisé dans le manuel que SeriaLink.ikine est utilsé que pour le robots à 6DL et plus
    Pour les robots avec 4 ou 5 DL, cette méthode est très difficile à utiliser car l'orientation est spécifiée par T en coordonnées universelles et les orientations réalisables sont fonction de la position de l'outil..

    il faut utiliser SerialLink.ikcon sans m >>> qreach = Scarat.ikcon(T0, preach);

    essayes et tu dis quoi !!!!!

    A++
    Dernière modification par gloster37 ; 14/02/2020 à 08h41.

  3. #3
    KARLDROGO

    Re : Robotique

    Bonjour à tous.....
    Merci à gloster pour la remarque.
    J'ai modifié le code comme tu m'a dis mais j'ai toujours obtenu une erreur ..... Que voici en pièce jointe Nom : 15816805778001438388062.jpg
Affichages : 107
Taille : 109,3 Ko.

    Je voudrai aussi savoir comment fait on pour introduire les paramètres dynamique d'un joint dans matlab ( le moment d'inertie, la masse etc.....). Je voudrai déterminer les equations dynamique.
    Cordialement !!!!

  4. #4
    gloster37

    Re : Robotique

    Je ne suis pas spécialiste du tout, mais fmincon c'est une fonction d'optimisation ????

    sinon je pense que tu as soucis avec tes paramètres D-H

    %%%%%%%% CREATION DES JOINTS UTILISANT LES PARAMETRES D-H
    L(1)=Link([0 d1 a1 0])
    L(2)=Link([0 0 a2 0])
    L(3)=Link([0, q3,0,0,1],'standard')
    L(4)=Link([0 d4 0 pi])
    L(3).qlim=[0.35 1]

    Tu devrais avoir une chose dans le genre pour un scara

    L(1) = Link([ 0 0 0 pi/2 0], 'standard');
    L(2) = Link([ 0 ???? ????? 0 0], 'standard');
    L(3) = Link([0 ???? 0 -pi/2 0], 'standard');
    L(4) = Link([0 ???? 0 pi/2 0], 'standard');

    il faut de toutes façons garder SerialLink.ikcon

    les masses, les inerties, les CG, et les limites ça à l'air d'être bon
    Dernière modification par gloster37 ; 14/02/2020 à 15h01.

  5. A voir en vidéo sur Futura
  6. #5
    gloster37

    Re : Robotique

    à voir ??

    T0 = fkine(Scarat, qready) >> manque un ; >> T0 = fkine(Scarat, qready);

    la matrice m = [1,1,1,1,1,1] pour un 4 axes ça devrait être [1,1,1,1,0,0]

    a près je donne ma langue au chat

Discussions similaires

  1. [Programmation] Qu'est-ce que la robotique ?
    Par invite1cb4f72d dans le forum Électronique
    Réponses: 4
    Dernier message: 22/01/2016, 16h54
  2. Tpe robotique 1°s
    Par invite469ee234 dans le forum TPE / TIPE et autres travaux
    Réponses: 4
    Dernier message: 03/10/2013, 15h16
  3. Robotique
    Par invite3c63b162 dans le forum Électronique
    Réponses: 5
    Dernier message: 12/10/2008, 02h35
  4. Robotique
    Par invite8a1ee9f2 dans le forum Orientation après le BAC
    Réponses: 35
    Dernier message: 24/03/2006, 12h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...