Combinaison de cinématiques de position et d'orientation
Avec le configurateur de groupes d'axes, vous pouvez combiner cinématique de position et cinématique d'orientation. De ce fait, un grand nombre de robots peuvent être configurés avec un petit nombre de cinématiques.
Des exemples de cinématiques de position incluent les portiques (Kin_Gantry3
) et trépieds (Kin_Tripod_Lin
, Kin_Tripod_Rotary
). Ces cinématiques peuvent se déplacer vers n'importe quel point ou position, mais ne peuvent pas effectuer un certain nombre d'orientations. Le système de coordonnées avant d'un système cinématique de position est appelé système de coordonnées de bride. Il définit l'endroit où la cinématique d'orientation est fixée (figure de gauche).
Des exemples de cinématique d'orientation sont Kin_CAxis
, Kin_Wrist2
, et Kin_Wrist3
. Cette cinématique peut entraîner une orientation souhaitée du TCP, mais ne peut atteindre aucune position (voir figure de droite).
En combinant à la fois la cinématique de position et la cinématique d'orientation, il est possible de parcourir un nombre quelconque de positions dans l'orientation souhaitée, ou inversement.

Combinaisons invalides
Toutes les combinaisons de cinématique de position et de cinématique d'orientation ne sont pas possibles car parfois une transformation inverse unique ne peut pas être déterminée. Un exemple est un SCARA avec deux articulations comme cinématique de position et Kin_CAxis_Tool
comme cinématique d'orientation avec une correction d'outil différente de 0 dans la coordonnée X ou Y. L'orientation du système de coordonnées de bride du SCARA n'est pas constante. Il est tourné autour de l'axe Z par rapport à la position 0. Pour le calcul de la transformation inverse, cette rotation n'est pas encore connue, ce qui ne permet pas de déterminer clairement les angles d'axe dans ce cas.
La possibilité d'une combinaison peut être vérifiée lors de l'exécution, car cela dépend du paramétrage de la cinématique. Dans ce cas, l'erreur SMC_TRAFO_INVALID_COUPLING
est émis.
Comportement lors de la programmation d'orientations "impossibles"
En pratique, il est souvent utile de pouvoir programmer des orientations qui ne sont pas disponibles pour la cinématique. Comme exemple simple, considérons un robot SCARA avec un outil ayant un degré de liberté (rotation autour de l'axe Z). En principe, ce robot ne peut accepter que des orientations dans lesquelles l'outil pointe verticalement vers le bas.
Lorsque des positions doivent être parcourues sur une pièce, celle-ci sera facilement inclinée depuis le plan X/Y. L'utilisateur enseigne la pièce à usiner puis programme les positions et orientations relatives à la pièce à usiner. L'inclinaison de la pièce entraîne des orientations dans lesquelles la direction de l'outil est légèrement inclinée par rapport à la verticale.

Comment gérer une orientation aussi impossible et inaccessible ? Une mesure drastique serait de signaler une violation de l’espace de travail. Cependant, comme le montre l’exemple, cela rendrait la programmation fastidieuse. Par conséquent, la cinématique d’orientation (Kin_CAxis_Tool
dans cet exemple) sont mis en œuvre de telle manière qu'ils adoptent l'orientation la plus proche possible. Dans cet exemple, cela signifie que l'orientation commandée est inclinée de telle sorte que l'outil se tienne debout et que cette orientation soit acceptée.
Le comportement peut être réduit aux règles suivantes (à condition que la cinématique de position puisse se positionner dans les trois directions spatiales) :
La position est toujours approchée exactement (sinon une erreur est signalée).
L'orientation est "projetée" sur la plus proche accessible si elle n'est pas accessible.
Lors de la projection de l'orientation, la direction de l'outil est prioritaire.
Les difficultés décrites ici surviennent parce que la cinématique d'orientation n'a pas les trois degrés de liberté pour atteindre toutes les orientations souhaitées. C'est le cas avec Kin_Wrist2
et Kin_CAxis
, mais pas avec Kin_Wrist3
.
Des difficultés supplémentaires surviennent lorsque la cinématique de position n'a pas non plus tous les degrés de liberté spatiaux. (Cela ne se produit pas souvent dans la pratique.) Un exemple est la combinaison de Kin_Gantry2
, un portique positionnable en X/Y uniquement, et avec Kin_Wrist2
, un outil avec seulement deux degrés de liberté. Dans ce cas, il y a des orientations impossibles ainsi que des positions impossibles, car la coordonnée Z est déjà définie par la longueur de l'outil et la position de l'axe d'orientation. Par conséquent, nous vous recommandons de ne pas utiliser ce genre de combinaisons, mais de ne programmer que des positions atteignables.
Remarques sur la cinématique personnalisée
Les utilisateurs qui souhaitent créer leur propre cinématique de position ou d'orientation doivent implémenter les interfaces supplémentaires suivantes dans leurs blocs fonction cinématique :
Pour la cinématique de position : L'interface
ISMPositionCinematics2
avec les méthodesAxesToOrientation
etGetOrientationImage
.AxesToOrientation
est une transformation avant "abrégé" qui calcule l'orientation du système de coordonnées de bride à partir des valeurs d'axe. Il n'est nécessaire que pour des raisons d'efficacité. Par exemple, rien ne doit être calculé avec un portique, mais plutôt une orientation constante peut être renvoyée.GetOrientationImage
renvoie comment l'orientation du système de coordonnées de bride peut changer. Cette méthode n'est nécessaire que pour vérifier si la cinématique d'orientation est compatible avec la cinématique de position.Pour la cinématique d'orientation : L'interface
ISMToolKinematics2
avec les méthodesGetPositionFromOrientation2
etIsCompatibleWithPosKin
.GetPositionFromOrientation2
calcule le vecteur entre le système de coordonnées de la bride et le TCP à partir de l'orientation souhaitée (en MCS). Ce calcul est nécessaire pour la transformation inverse de la cinématique combinée. La méthodeIsCompatibleWithPosKin
vérifie si la cinématique d'orientation est compatible avec la cinématique de position.