
Matriz de transformación en Python
Una matriz de transformación la podemos visualizar como como una función lleva los valores escalares de las articulaciones (ya sean ángulos o desplazamientos) a cuatro vectores. Los primeros tres corresponden a las componentes de los ejes
Nota: los prefijos
Si seguimos la metodología de Denavit Hartenberg entonces podemos generar nuestra matriz de transformación tomando como entrada los valores
Nota: es importante asegurarse que se retorne una matriz y no un array para que la multiplicación sea multiplicación de matrices y no elemento a elemento. Esto también permite usar otras fuciones de numpy que requieren matrices como argumentos de entrada.
Usare un Closure, que es como una función que devuelve otra función, como matriz de transformación. Si bien no la podremos visualizar con variables simbolicas, la podemos visualizar para cada conjunto de valores de las articulaciones que le suministremos.
La función queda así:
Nota: me hubiera gustado usar tipado estático pero no encontre un módulo de Python que me permitiera usarlo con variables de tipo matriz.
Ejemplo
Supondremos que los eslabones
Con estas listas creamos las matrices de transformación, que para nosotros seran funciones que al recibir un angulo nos dara la orientación y posición de un eslabón en relación al eslabón anterior.
Por ejemplo, el primer eslabón no puede modificar desplazamiento en ningún eje, pero si su orientación en relación al sistema de referencia
Para obtener las coordenadas del marco coordemado
Nos enfocaremos en la posición, es decir, el vector $d$ de las matrices de transformación.