Combinación de cinemática de posición y orientación
Con el configurador de grupos de ejes se pueden combinar cinemáticas de posición y cinemáticas de orientación. De este modo se pueden configurar un gran número de robots con un número reducido de cinemáticas.
Los ejemplos de cinemática de posición incluyen pórticos (Kin_Gantry3
) y trípodes (Kin_Tripod_Lin
, Kin_Tripod_Rotary
). Estas cinemáticas pueden viajar a cualquier punto o posición, pero no pueden realizar ninguna cantidad de orientaciones. El sistema de coordenadas frontal de un sistema cinemático de posición se denomina sistema de coordenadas de brida. Define el lugar donde se fijan las cinemáticas de orientación (figura de la izquierda).
Ejemplos de cinemática de orientación son Kin_CAxis
, Kin_Wrist2
, y Kin_Wrist3
. Esta cinemática puede resultar en una orientación deseada del TCP, pero no puede alcanzar ninguna posición (vea la figura a la derecha).
Al combinar la cinemática de posición y la cinemática de orientación, es posible recorrer cualquier número de posiciones en la orientación deseada o al revés.

Combinaciones no válidas
No todas las combinaciones de cinemática de posición y cinemática de orientación son posibles porque a veces no se puede determinar una transformación inversa única. Un ejemplo es un SCARA con dos juntas articuladas como cinemática de posición y Kin_CAxis_Tool
como cinemática de orientación con una corrección de herramienta que no es 0 en la coordenada X o Y. La orientación del sistema de coordenadas de la brida del SCARA no es constante. Se gira sobre el eje Z en relación con la posición 0. Para el cálculo de la transformación inversa, esta rotación aún no se conoce, lo que hace imposible determinar claramente los ángulos de los ejes en este caso.
Si una combinación es posible se puede comprobar en tiempo de ejecución, ya que depende de la parametrización de la cinemática. En este caso, el error SMC_TRAFO_INVALID_COUPLING
se emite.
Comportamiento al programar orientaciones "imposibles"
En la práctica, suele ser útil poder programar orientaciones que no están disponibles para la cinemática. Como ejemplo simple, considere un robot SCARA con una herramienta que tiene un grado de libertad (rotación sobre el eje Z). En principio, este robot solo puede aceptar orientaciones en las que la herramienta apunte verticalmente hacia abajo.
Cuando se deban recorrer posiciones en una pieza de trabajo, se inclinará fácilmente desde el plano X/Y. El usuario enseña la pieza de trabajo y luego programa las posiciones y orientaciones relativas a la pieza de trabajo. La inclinación de la pieza de trabajo da como resultado orientaciones en las que la dirección de la herramienta está ligeramente inclinada con respecto a la vertical.

¿Cómo afrontamos una orientación tan imposible e inalcanzable? Una medida drástica sería denunciar una infracción del espacio de trabajo. Sin embargo, como muestra el ejemplo, esto haría que la programación fuera tediosa. Por lo tanto, la cinemática de orientación (Kin_CAxis_Tool
en este ejemplo) se implementan de tal manera que asumen la orientación más cercana posible. En este ejemplo, esto significa que la orientación ordenada se inclina de tal manera que la herramienta se mantiene vertical y se acepta esta orientación.
El comportamiento se puede reducir a las siguientes reglas (siempre que la cinemática de posición pueda posicionarse en las tres direcciones espaciales):
La posición siempre se aproxima exactamente (de lo contrario, se informa de un error).
La orientación se "proyecta" a la accesible más cercana si no se puede alcanzar.
Al proyectar la orientación, la dirección de la herramienta tiene prioridad.
Las dificultades descritas aquí surgen porque la cinemática de orientación no tiene los tres grados de libertad para lograr todas las orientaciones deseadas. Este es el caso de Kin_Wrist2
y Kin_CAxis
, pero no con Kin_Wrist3
.
Surgen dificultades adicionales cuando la cinemática de posición tampoco tiene todos los grados de libertad espacial. (Esto no ocurre a menudo en la práctica.) Un ejemplo es la combinación de Kin_Gantry2
, un pórtico que solo se puede colocar en X/Y, y con Kin_Wrist2
, una herramienta con sólo dos grados de libertad. En este caso, existen orientaciones imposibles y posiciones imposibles, porque la coordenada Z ya está definida por la longitud de la herramienta y la posición del eje de orientación. Por lo tanto, le recomendamos que no utilice este tipo de combinaciones, sino que programe solo las posiciones alcanzables.
Observaciones sobre cinemáticas personalizadas
Los usuarios que quieran crear su propia cinemática de posición u orientación deben implementar las siguientes interfaces adicionales en sus bloques de funciones cinemáticas:
Para cinemática de posiciones: la interfaz
ISMPositionKinematics2
con los métodosAxesToOrientation
yGetOrientationImage
.AxesToOrientation
es una transformación directa "abreviada" que calcula la orientación del sistema de coordenadas de la brida a partir de los valores del eje. Es necesario sólo por razones de eficiencia. Por ejemplo, con un pórtico no se tiene que calcular nada, sino que se puede devolver una orientación constante.GetOrientationImage
devuelve cómo puede cambiar la orientación del sistema de coordenadas de la brida. Este método sólo es necesario para comprobar si la cinemática de orientación es compatible con la cinemática de posición.Para la cinemática de orientación: la interfaz
ISMToolKinematics2
con los métodosGetPositionFromOrientation2
yIsCompatibleWithPosKin
.GetPositionFromOrientation2
calcula el vector entre el sistema de coordenadas de la brida y TCP a partir de la orientación deseada (en MCS). Este cálculo es necesario para la transformación inversa de la cinemática combinada. El métodoIsCompatibleWithPosKin
comprueba si la cinemática de orientación es compatible con la cinemática de posición.