Skip to Content
PersonnalisationLimites dynamiques des articulations robot-machine

Limites dynamiques des articulations robot-machine

Limites articulaires dynamiques

De nombreux contrôleurs robots et machines permettent de définir des limites dynamiques des articulations, où la valeur minimale et/ou maximale d’une limite dépend de la valeur d’un autre axe. Les raisons de telles limites peuvent être des obstacles dans l’enveloppe de travail du robot ou de la machine, ou pour éviter l’enroulement indésirable des sacs de robes, câbles ou tuyaux.

FASTSUITE Edition 2 fournit un API Python pour créer ces règles de limite obligatoires.

Comment définir les limites articulaires dynamiques

Cette page illustre la création d’un ensemble de règles pour un robot OTC-DAIHEN.

1Acquiers les limites
D’abord, nous devons acquérir les soi-disant limites souples de liaison du contrôleur OTC :

| | | | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1.1 | Augmentez le niveau de protection utilisateur au moins à Spécialiste. (R->314 Entrer le mot de passe FD-ST : 12345) | | 1.2 | Naviguer vers : (1) Paramètres de constantes (2) Constantes de la machine (3) Limite souple du lien. OTC_Daihen_Dynamic_Limits_01.snipx | | 1.3 | Chaque page représente les limites d’un axe de conduite et d’un axe dépendant. Seules les pages activées doivent être prises en compte. Le joint 2 se déplace entre -65° et +180°. Joint 1 can se déplacent normalement entre -170° et +170°. Ce n’est que lorsque le joint 2 se situe dans les plages spécifiées comme indiqué ci-dessous que les limites du joint 1 sont limitées. Par exemple, La limite 2 définit que la limite inférieure du joint 1 descend de -125° à -154° tandis que le joint 2 passe de -65° à -47°, et ainsi de suite. Toutes les conditions limites applicables doivent être prises en compte dans le script Python spécifique à ce robot en particulier. OTC_Daihen_Dynamic_Limits_02.snipx | | 1.4 | À la page 2, le joint 3 dépend également du joint 2. La limite 1 définit que la limite inférieure du joint 3 descend de -15° à -80° tandis que le joint 2 passe de -65° à 35°. La limite maximale de la jonction 3 reste inchangée. OTC_Daihen_Dynamic_Limits_03.snipx OTC_Daihen_Dynamic_Limits_04.snipx |

2. Créer le script Python

| | | | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 2.1 | Ensuite, nous devons créer un fichier Python et le stocker dans le dossier E2Plugin que vous utilisez pour votre personnalisation. OTC_Daihen_Dynamic_Limits_05.snipx | | 2.2 | Ouvrez la ressource robotique lors de votre Edition 2 session. Ouvrez son tableau de bord des propriétés et ajoutez un attribut de chaîne nommé DynamicLimitsScriptPath dans le conteneur d’attributs définis par l’utilisateur. Le nom du fichier Python et son chemin peuvent être fournis en relation avec le dossier E2Plugins ou sous forme de chemin absolu incluant la lettre de lecteur. OTC_Daihen_Dynamic_Limits_06.snipx | | 2.3 | Le code Python suivant démontre comment les limites multi-plages pour plusieurs articulations peuvent être composées. Ajoutez ces lignes au fichier Python de l’étape 2.1. # Importer des bibliothèques depuis centypes importez * depuis cenpylib importez DynamicLimits as DL def CheckJointsDynamicLimits(joints) : j1 = joints[0] j2 = joints[1] j3 = joints[2] j5 = joints[4] j6 = joints[5] # Check J1 dependent de J2 j1min = InRange(j2, -65, -47)DL.Ramp(j2, -65, -125, -47, -154) + InRange(j2, -47, 180)-170 j1max = InRange(j2, -65, -41)*DL.Ramp(j2, -65, 130, -41, 151) + InRange(j2, -41, 180)*170 sinon (j1 >= j1min et j1 <= j1max) : retourner INACCESSIBLE # Vérifier J3 dépendant de J2 j3min = InRange(j2, -65, 35)DL.Ramp(j2, -65, -80, -35, -15) + InRange(j2, -35, 180)-80 j3max = InRange(j2, -65, 180)*100 sinon (j3 >= j3min et j3 <= j3max) : retourner INATTEIGNABLE # Vérifier J6 dépendant de J5 j6min = InRange(j5,- 140,-70)*DL.Ramp(j5,-140,-110,-70,-165) + InRange(j5,-70,-35)*DL.Ramp(j5,-70,-165,-35,-200) + InRange(j5,-35,-20)*DL.Ramp(j5,-35,-200,-20,-300) j6max = InRange(j5,-140,-70)*DL.Ramp(j5,-140,110,-70,165) + InRange(j5,-70,-35)*DL.Ramp(j5,-70,165,-35,200) + InRange(j5,-35,-20)*DL.Ramp(j5,-35,200,-20,300) si non (j6 >= j6min et j6 <= j6max) : retour INACCESSIBLE retour ATTEIGNABLE def InRange(joint, x1, x2) : « « Limites dynamiques des fonctions utilitaires. Retour : entier : 0 ou 1. « ” » si le joint < x1 ou le joint > x2 : retourner 0 sinon : retourner 1 | | | Plus d’informations sur la personnalisation de Python à trouver dans la documentation Personnalisation technologique avec Python API. | | 2.4 | Il existe deux limitations concernant les limites des joints dynamiques : les limites des joints affichées dans le moniteur de simulation ne sont pas mises à jour lorsqu’une limite dynamique s’active. La fonction Limites Dynamiques n’est pas appelée lorsqu’un axe est modifié dans le panneau Enseigner. Utilisez plutôt le manipulateur ou saisissez directement l’articulation robotisée en 3D pour invoquer la cinématique inverse. OTC_Daihen_Dynamic_Limits_07.snipx |

Was this page helpful?