Cinemática de 5 ejes
1. Introducción
Las máquinas herramienta con multiejes coordinados CNC controladas con LinuxCNC requieren un componente cinemático especial para cada tipo de máquina. Este capítulo describe algunas de las configuraciones de máquina de 5 ejes más populares y luego desarrolla las transformaciones directas (desde el trabajo hasta las coordenadas de articulacion) e inversa (desde la articulacion hasta el trabajo) en un proceso matemático general para dos tipos de máquina.
Se proporcionan los componentes cinemáticos y los modelos de simulación de vismach para demostrar su comportamiento en la pantalla de la computadora. También se dan ejemplos de datos de archivos HAL.
2. Configuraciones de máquinas herramienta de 5 ejes
En esta sección tratamos con máquinas de fresado o enrutadores típicos de 5 ejes, con cinco articulaciones o grados de libertad, que se controlan en base a movimientos coordinados.
Las máquinas herramienta de 3 ejes no pueden cambiar la orientación de la herramienta. Las máquinas herramienta de 5 ejes utilizan dos ejes adicionales para dotar a la herramienta de corte de una orientación adecuada para el mecanizado eficiente de superficies de cualquier forma.
Las configuraciones típicas de máquinas herramienta de 5 ejes se muestran en las figs. 3, 5, 7 y 9-11 [1,2] en la sección Figuras.
La cinemática de las máquinas herramienta de 5 ejes es mucho más simple que la de los brazos robots de 6 ejes, puesto que 3 de los ejes son normalmente ejes lineales y solo dos son ejes giratorios.
3. Orientación y localizacion de la herramienta
Generalmente se utilizan sistemas CAD/CAM para generar los modelos 3D CAD de la pieza de trabajo, así como los datos CAM para la entrada a la máquina CNC de 5 ejes. La herramienta o los datos de localizacion de la herramienta (CL, Cutter Location) se componen de la posición de la punta de la herramienta y la orientación de la misma en relación con el sistema de coordenadas de la pieza. Esa informacion la contienen dos vectores, como los generados por la mayoría de los sistemas CAM, y que se muestran en la Fig. 1,:
El vector K es equivalente al 3° vector de la matriz de pose E6 que se usó en la cinemática del robot de 6 ejes en [3] y el vector Q es equivalente al 4° vector de E6. En MASTERCAM, por ejemplo, esta información está contenida en el archivo de salida intermedio ".nci".
4. Matrices de translacion y rotación
Las transformaciones homogéneas proporcionan una manera simple de describir las matemáticas de la cinemática de máquinas multieje. Una transformación del espacio H es una matriz 4x4 y puede representar transformaciones de translacion y rotación. Dado un punto x, y, z descrito por un vector u={x, y, z, 1}T, su transformación v está representada por la matriz producto.
Hay cuatro matrices de transformación fundamentales en las que se basa la cinemática de 5 ejes:
La matriz T(a,b,c) implica una traslación en las direcciones de coordenadas X, Y y Z, en las cantidades a, b y c respectivamente. Las matrices R implican rotaciones del ángulo theta alrededor de los ejes de coordenadas X, Y y Z, respectivamente. Los símbolos C y S se refieren a las funciones coseno y seno, respectivamente.
5. Configuraciones de 5 ejes con mesas giratorias/inclinables
En estas máquinas herramienta, los dos ejes giratorios se montan en la mesa de trabajo de la máquina. Se usan tipicamente dos formas:
-
Una mesa giratoria que gira alrededor del eje Z vertical (rotación C, secundaria) montado en una mesa basculante que gira alrededor del eje X o Y (rotación A o B, primaria). La pieza de trabajo está montada en la mesa giratoria.
-
Una mesa inclinable que gira alrededor del eje X o Y (rotación A o B, secundaria) está montada en una mesa giratoria que gira alrededor del eje Z (rotación C, primaria), con la pieza de trabajo en el mesa basculante.
Se puede considerar que una máquina multieje consiste en una serie de eslabones conectados por articulaciones. Al asignar un sistema de coordenadas en cada eslabon de la máquina, y usando transformaciones homogéneas, podemos describir la posición relativa y la orientación entre estos sistemas de coordenadas.
Necesitamos describir una relación entre el sistema de coordenadas de la pieza de trabajo y el sistema de coordenadas de la herramienta. Esto se puede definir mediante una matriz de transformación wAt, que se puede encontrar mediante transformaciones sucesivas entre los diferentes elementos estructurales o eslabones de la máquina, cada uno con su propio sistema de coordenadas definido. En general, tal transformación puede verse de la siguiente manera:
donde cada matriz i-1Aj es una matriz de traslacion T o una matriz de rotación R de la forma (2),(3).
La multiplicación de matrices es un proceso simple en el que los elementos de cada fila de la matriz A de la izquierda se multiplican por los elementos de cada columna de la matriz B de la derecha y se suman para obtener un elemento en la matriz resultante C, es decir.
En la Fig. 2 se muestra una configuración genérica con sistemas de coordenadas [4]. Incluye ejes giratorios/basculantes en mesa o en husillo. En una máquina herramienta se usan realmente solo dos de los tres ejes giratorios.
Primero desarrollaremos las transformaciones para el primer tipo de configuración mencionado anteriormente, es decir. un tipo de mesa inclinable/giratoria (la llamaremos "trt") sin offsets de ejes giratorios. Podemos darle el nombre de configuración xyzac-trt.
También desarrollamos las transformaciones para el mismo tipo (xyzac-trt), pero con offsets de eje giratorios.
Luego desarrollamos las transformaciones para una configuración xyzbc-trt con offsets de ejes giratorios.
5.1. Transformaciones para una máquina herramienta xyzac-trt con offsets de pieza de trabajo
Tratamos aquí con una configuración simplificada en la que el eje basculante y el eje giratorio se cruzan en un punto llamado punto pivote como se muestra en la figura 4. Por lo tanto, los dos sistemas de coordenadas Ows y Owp de la fig. 2 son coincidentes.
5.1.1. Transformación directa
La transformación puede definirse por la multiplicación secuencial de las matrices:
con las matrices construidas de la siguiente manera:
En estas ecuaciones, Lx, Ly, Lz define los desplazamientos del punto pivote de los dos ejes giratorios A y C con relación al origen del sistema de coordenadas de la pieza. Además, Px, Py, Pz son las distancias relativas del punto pivote a la posición de la punta de la herramienta, que también se pueden llamar las "coordenadas de articulacion" del punto pivote. El punto pivote está en la intersección de los dos ejes giratorios. Los signos de los términos SA y SC son diferentes a los de [2,3] dado que las rotaciones de la tabla son negativas con respecto a los ejes de coordenadas de la pieza de trabajo (tenga en cuenta que sen(-theta) = -sen(theta)), cos(-theta) = cos(theta)).
Cuando se multiplica de acuerdo con (5), obtenemos:
Ahora podemos equiparar la tercera columna de esta matriz con nuestro vector de orientación de herramienta K, es decir:
A partir de estas ecuaciones podemos resolver los ángulos de rotación thetaA, thetaC. De la tercera fila encontramos:
y al dividir la primera fila por la segunda fila encontramos:
Estas relaciones se usan típicamente en el postprocesador CAM para convertir los vectores de orientación de la herramienta en ángulos de rotación.
Al igualar la última columna de (8) con el vector Q de posición de herramienta, podemos escribir:
El vector en el lado derecho también se puede escribir como el producto de una matriz y un vector, que da como resultado:
Esto se puede expandir para dar
que es la "transformación directa" de la cinemática.
5.1.2. Transformación inversa
Podemos resolver para P de la ecuación (13) como P = (QAP)-1 * Q. Observando la matriz cuadrada, es una matriz 4x4 homogénea que contiene una matriz de rotación R y un vector de translacion q, por lo que el inverso se puede escribir como:
donde R^T es la transpuesta de R (filas y columnas intercambiadas). Por lo tanto, obtenemos:
Las ecuaciones que se necesitan para la "transformación inversa" de la cinemática se pueden escribir así:
5.2. Transformaciones para una máquina xyzac-trt con offsets en ejes rotativos
Tratamos aquí con una configuración extendida en la que el eje basculante y el eje rotativo no se cruzan en un punto, sino que tienen un desplazamiento Dy. Además, también hay un desplazamiento z entre los dos sistemas de coordenadas Ows y Owp de la figura 2, llamado Dz. En la fig. 5 se muestra un modelo vismach y los desplazamientos se muestran en la fig. 6 (desplazamientos positivos en este ejemplo). Para simplificar la configuración, los desplazamientos Lx, Ly, Lz del caso anterior no estan incluidos. Probablemente no sean necesarios si se usan los offsets G54 en LinuxCNC por medio de la función "touch of".
5.2.1. Transformación directa
La transformación puede definirse por la multiplicación secuencial de las matrices:
con las matrices construidas de la siguiente manera:
En estas ecuaciones, Dy y Dz definen los desplazamientos del punto pivote de los ejes rotativos A relativos al origen del sistema de coordenadas de la pieza. Además, Px, Py, Pz son las distancias relativas del punto pivote a la posición de la punta de la herramienta, que también se pueden llamar "coordenadas de articulacion" del punto pivote. El punto pivote está en el eje de rotación A.
Cuando se multiplica de acuerdo con (18), obtenemos:
Ahora podemos equiparar la tercera columna de esta matriz con nuestro vector de orientación de herramienta K, es decir:
A partir de estas ecuaciones podemos resolver los ángulos de rotación thetaA, thetaC. De la tercera fila encontramos:
y al dividir la segunda fila por la primera fila encontramos:
Estas relaciones se usan típicamente en el postprocesador CAM para convertir los vectores de orientación de la herramienta en ángulos de rotación.
Al igualar la última columna de (21) con el vector de posición de herramienta Q, podemos escribir:
El vector en el lado derecho también se puede escribir como el producto de una matriz y un vector, que da como resultado:
que es la "transformación directa" de la cinemática.
5.2.2. Transformación inversa
Podemos resolver para P de la ecuación (25) como P=(QAP)-1*Q usando (15) como antes. Por lo tanto obtenemos:
Las ecuaciones que se necesitan para la "transformación inversa" de la cinemática se pueden escribir así:
5.3. Transformaciones para una máquina xyzbc-trt con offsets de ejes rotativos
Tratamos aquí de nuevo con una configuración extendida en la que el eje de inclinación (alrededor del eje y) y el eje giratorio no se cruzan en un punto, pero tienen un desplazamiento Dx. Además, también hay un desplazamiento z entre los dos sistemas de coordenadas Ows y Owp de la figura 2, llamado Dz. Un modelo vismach se muestra en la fig. 7 (desplazamientos negativos en este ejemplo) y los desplazamientos positivos se muestran en la fig. 8.
5.3.1. Transformación directa
La transformación puede definirse por la multiplicación secuencial de las matrices:
con las matrices construidas de la siguiente manera:
En estas ecuaciones Dx, Dz define los desplazamientos del punto pivote de los ejes giratorios B en relación con el origen del sistema de coordenadas de la pieza. Además, Px, Py, Pz son las distancias relativas del punto pivote a la posición de la punta de la herramienta, que también se pueden llamar las "coordenadas de articulacion" del punto pivote. El punto pivote está en el eje rotativo B.
Cuando se multiplica de acuerdo con (29), obtenemos:
Ahora podemos equiparar la tercera columna de esta matriz con nuestro vector de orientación de herramienta K, es decir:
A partir de estas ecuaciones podemos resolver los ángulos de rotación thetaB, thetaC. De la tercera fila encontramos:
y al dividir la segunda fila por la primera fila encontramos:
Estas relaciones se usan típicamente en el postprocesador CAM para convertir los vectores de orientación de la herramienta en ángulos de rotación.
Al igualar la última columna de (32) con el vector de posición de herramienta Q, podemos escribir:
El vector en el lado derecho también se puede escribir como el producto de una matriz y un vector que da como resultado:
que es la "transformación directa" de la cinemática.
5.3.2. Transformación inversa
Podemos resolver para P de la ecuación (37) como P=(QAP)-1*Q. Con el mismo enfoque que antes, obtenemos:
Las ecuaciones que se necesitan para la "transformación inversa" de la cinemática se pueden escribir así:
6. Ejemplos de mesa giratoria/inclinable
LinuxCNC incluye módulos cinemáticos para las topologías xyzac-trt y xyzbc-trt descrito en las matemáticas detalladas arriba. Para usuarios interesados, el código fuente está disponible en el árbol git en el directorio src/emc/kinematics/.
Los ejemplos de configuraciones de simulación de xyzac-trt y xyzbc-trt en las estan en Configuraciones de Ejemplo (configs/sim/axis/vismach/5axis/table-rotary-tilting/).
Las configuraciones de ejemplo incluyen los archivos ini requeridos y un subdirectorio de ejemplos con archivos g-code (.ngc). Estas configuraciones sim invocan un modelo tridimensional realista usando la utilidad vismach de LinuxCNC.
6.1. Modelos de simulación de Vismach
Vismach es una biblioteca de rutinas Python para mostrar una simulación dinámica de una máquina CNC en la pantalla de la PC. La secuencia de comandos python para una máquina en particular se carga en HAL y los datos se pasan a los pines HAL. El modelo de vismach de espacio de usuario se carga con un comando hal como:
loadusr -W xyzac-trt-gui
y las conexiones se realizan usando comandos HAL como:
net :table-x joint.0.pos-fb xyzac-trt-gui.table-x
net :saddle-y joint.1.pos-fb xyzac-trt-gui.saddle-y
...
Consulte los archivos ini de simulación para obtener detalles sobre las conexiones HAL utilizadas para el modelo de vismach.
6.2. Offsets de longitud de la herramienta
Para utilizar las herramientas de una tabla de forma secuencial con offset de la longitud de la herramienta aplicada automáticamente, se requiere un offset Z adicional. Para una herramienta que es más larga que la herramienta "maestra", que normalmente tiene una longitud de herramienta cero, LinuxCNC tiene una variable llamada "motion.tooloffset.z". Si esta variable se transfiere al componente cinemático (y a la secuencia de comandos vismach python), se puede tener en cuenta el offset Z adicional necesario para una nueva herramienta agregando la instrucción del componente, por ejemplo:
La conexión HAL requerida (para xyzac-trt) es:
net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset
dónde:
:tool-offset ---------------- nombre de la señal
motion.tooloffset.z --------- pin de salida HAL del módulo motion de LinuxCNC
xyzac-trt-kins.tool-offset -- pin HAL de entrada a xyzac-trt-kins
7. Componentes cinemáticos personalizados
LinuxCNC implementa la cinemática utilizando un componente HAL que está cargado al inicio de LinuxCNC. El módulo cinemático más común, trivkins, implementa la cinemática de identidad (trivial) donde hay correspondencia uno-a-uno entre una letra de coordenadas del eje y una articulación del motor. Están disponibles módulos cinemáticos adicionales para sistemas más complejos (incluido xyzac-trt y xyzbc-trt descritos anteriormente).
Consulte la página de manual de kins (\$ man kins) para obtener descripciones breves de los módulos cinemáticos.
Los módulos cinemáticos proporcionados por LinuxCNC suelen escribirse en lenguaje C. Dado que se utiliza una estructura estándar, la creación de un módulo cinemático personalizado se facilita copiando un archivo fuente existente a un archivo de usuario con un nombre nuevo, modifícandolo y luego instálandolo.
La instalación se realiza utilizando halcompile:
sudo halcompile --install kinsname.c
donde "kinsname" es el nombre que se le da a su componente. El prefijo sudo es requerido para instalarlo y se le pedirá su contraseña de root. Ver la página del comando halcompile para obtener más información (\$ man halcompile)
Una vez compilado e instalado, puede hacer referencia a él en la configuración de su máquina. Esto se hace en el archivo ini de su directorio config. Por ejemplo, la especificación ini común:
[KINS]
KINEMATICS = trivkins
seria reemplazada por
[KINS]
KINEMATICS = kinsname
donde "kinsname" es el nombre de su programa. Los pines HAL adicionales pueden ser creados por el módulo para elementos de configuración variable tales como Dx, Dy, Dz, offset de herramienta-offset utilizado en el módulo de cinemática xyzac-trt. Estos pines se pueden conectar a una señal para control dinámico o establecer conexiones HAL como:
# establecer los parámetros de offsets
net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset
setp xyzac-trt-kins.y-offset 0
setp xyzac-trt-kins.z-offset 20
8. Figuras
////////////////////////////////////////////////// /// == Referencias nope nope nope pdf nope ////////////////////////////////////////////////// ///
9. REFERENCIAS
-
A Postprocessor Based on the Kinematics Model for General Five-Axis machine Tools: C-H She, R-S Lee, J Manufacturing Processes, V2 N2, 2000.
-
NC Post-processor for 5-axis milling of table-rotating/tilting type: YH Jung, DW Lee, JS Kim, HS Mok, J Materials Processing Technology,130-131 (2002) 641-646.
-
3D 6-DOF Serial Arm Robot Kinematics, RJ du Preez, SA-CNC-CLUB, Dec. 5, 2013.
-
Design of a generic five-axis postprocessor based on generalized kinematics model of machine tool: C-H She, C-C Chang, Int. J Machine Tools & Manufacture, 47 (2007) 537-545.