Skip to main content

Axes rotatifs avec plage de valeurs supérieure à 360°

introduction

Les robots ont souvent des axes rotatifs avec une plage de valeurs supérieure à 360°. Par exemple, le dernier axe (axe d'orientation A3) d'un robot SCARA peut souvent effectuer plus d'une rotation, d'environ -540° à 540°.

Cela signifie que la même position et la même orientation peuvent être approchées de plusieurs manières. En considérant SCARA par exemple, l'orientation et la position de l'outil sont identiques, que le dernier axe soit à -170° ou à 190° (= -170° + 360°). En conséquence, la conversion de la position et de l'orientation cartésiennes en valeurs d'axe (la transformation cinématique inverse) n'est pas unique, mais a plusieurs solutions.

Cela peut être utilisé par exemple dans les applications Pick&Place pour gagner du temps en passant de 170° à 190° et non à -170°.

Remarque : Le mouvement de l'axe d'orientation SCARA peut rapidement devenir un facteur limitant du temps de cycle dans ces applications.

Résolution d'ambiguïté

Si les points à parcourir sont commandés dans le système de coordonnées d'axe (ACS), alors il est clair pour chaque axe quelle valeur il prendra dans le point cible. Par contre, en commande cartésienne (position X/Y/Z et orientation en A/B/C) cette ambiguïté existe pour les axes rotatifs.

La configuration de la cinématique est utilisée pour lever cette ambiguïté. Avec les robots SCARA, la configuration inclut déjà le réglage si le SCARA doit s'approcher d'un point avec ElbowRight ou ElbowLeft. De plus, la configuration SCARA comprend également le réglage nPeriodA3, qui peut être utilisé pour déterminer comment l'ambiguïté de l'axe A3 doit être levée.

A cet effet, toute la plage de valeurs est divisée en périodes d'une longueur maximale de 360° :

  • Période -1 de -540° à -180°

  • Période 1 de -180° à 180°

  • Période 2 de 180° à 540°

(Pour une plus grande plage de valeurs de l'axe, il y a en conséquence plus de périodes possibles.)

Il y a aussi une valeur spéciale. Si nPeriodA3 := 0 est défini, alors une résolution automatique d'ambiguïté est activée. Pour les mouvements PTP, cela signifie que la période est sélectionnée de manière à ce que la distance entre les positions de départ et de destination pour l'axe 4 soit aussi petite que possible. (Le comportement avec les mouvements CP est décrit ci-dessous.)

Il est donc possible de contrôler la résolution de l'ambiguïté d'un axe rotatif en réglant la configuration cinématique en conséquence (voir SMC_SetKinConfiguration). Les cinématiques qui prennent en charge cette fonctionnalité implémentent l'interface SMKinematicWithConfigurations3.

Avis

Le SMC_GroupReadSetPosition, MC_GroupReadActualPosition, et SMC_GroupTargetPosition les blocs fonctionnels sortent toujours la configuration avec la résolution automatique des périodes activée. La configuration actuelle avec des périodes explicitement définies peut être lue en lisant la position dans l'ACS et en la convertissant ensuite dans le MCS au moyen de SMC_GroupConvertPosition. La configuration renvoyée a défini explicitement des périodes.

Pour plus d'informations, consultez : Configurations cinématiques

Comportement en cas de mouvements de CP

Lors d'un mouvement de CP (MC_MoveLinearAbsolute/MC_MoveLinearRelative, MC_MoveCircularAbsolute/MC_MoveCircularRelative), les axes rotatifs sont toujours entraînés en mode automatique (Période 0). La période de l'axe est toujours sélectionnée de manière à ce qu'il n'y ait pas de saut dans l'axe.

Il est possible qu'à la fin du mouvement du CP, la valeur de l'axe commandé ne soit pas atteinte, mais que l'axe arrive dans une période différente du fait de la sélection automatique de la période. Cela signifie que la position commandée ne peut pas être atteinte avec le type de mouvement sélectionné. Ce conflit est détecté avant d'atteindre la position cible, le groupe d'axes est arrêté et une erreur est émise.

Exemple : Vous utilisez un robot SCARA avec trois axes rotatifs A1, A2 et A3. A3 a une plage de valeurs de -360° à +360°. Vous apprenez deux positions en coordonnées d'axe. Position1 = (A1 = 0°, A2 = 90°, A3 = 170°), Position2 = (A1 = 10°, A2 = 90°, A3 = -170°).

Ensuite vous commandez un mouvement linéaire (MC_MoveLinear/MC_MoveAbsolute)) avec le mode d'orientation GreatCircle.

Cette combinaison de commande en ACS et d'interpolation d'orientation grand cercle crée un conflit. Pour suivre l'interpolation d'orientation, il faudrait que l'axe A3 se déplace de 170° dans le sens positif à 190°. Il ne peut donc pas atteindre la position cible requise (-170°).

Remarque : Dans le cas des mouvements CP, la période de l'axe rotatif est déterminée par le type d'interpolation sélectionné. Cela signifie également que la position cible de l'axe dépend de la trajectoire par laquelle le point cible est approché. Il est donc possible par exemple qu'en mélangeant deux mouvements un axe arrive dans une période différente de ce qui aurait été le cas avec des mouvements tamponnés.

Pour plus d'informations, consultez : Interpolation d'orientation pour les mouvements de CP