De velocidad de giro a velocidad de mano
La matriz jacobiana dice cuánto se mueve la mano cuando una articulación gira un poco. Con ella se pasa de las velocidades de las articulaciones a la velocidad de la mano.
Puedes estimarla sin fórmulas: mueves un ángulo una cantidad muy pequeña y mides cuánto se mueve la mano. Todo es una simulación.
Al final de esta lección
Nota
Puedo estimar el jacobiano de un brazo y usarlo para hallar la velocidad de la mano.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Velocidad angular | cuánto gira una articulación por segundo | 1 rad/s |
| Jacobiano | tabla que pasa velocidades de giro a velocidad de mano | |
| Diferencia central | mover un ángulo a ambos lados un paso pequeño | |
| Singularidad | pose donde el brazo pierde una dirección de movimiento | |
| Determinante | un número que sale de la tabla y vale 0 en una singularidad |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un giro pequeño mueve la mano un poco
Gira un ángulo una cantidad muy pequeña, de 0,01 grados, y deja el otro quieto. La mano se mueve un poco. Divide ese movimiento entre lo que giraste y obtienes cuánto se mueve la mano por radián.
Haz lo mismo con el otro ángulo. Salen cuatro números: el cambio de x y de y por cada ángulo. Esa tabla es el jacobiano.
Ejemplo resuelto: jacobiano en la pose (0, 90)
| Ángulo que se mueve | Cambio de x por radián | Cambio de y por radián |
|---|---|---|
| Ángulo 1 | -6 | 10 |
| Ángulo 2 | -6 | 0 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Cambio de x por radián, ángulo 1
docker exec jupyter python3 -c "import numpy as np; h = 0.001; print(round((10 * np.cos(h) + 6 * np.cos(h + np.pi / 2) - 6 * np.cos(np.pi / 2) - 10) / h, 2))"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Jacobiano por velocidades da la velocidad
La velocidad horizontal de la mano es la primera fila del jacobiano por las dos velocidades angulares. La vertical es la segunda fila.
Se multiplica cada número de la fila por su velocidad y se suman. Las velocidades angulares van en radianes por segundo.
Ejemplo resuelto: velocidad de la mano
| Velocidad ángulo 1 | Velocidad ángulo 2 | Velocidad x | Velocidad y |
|---|---|---|---|
| 1 rad/s | 0 | -6 cm/s | 10 cm/s |
| 0 | 1 rad/s | -6 cm/s | 0 cm/s |
| 1 rad/s | 1 rad/s | -12 cm/s | 10 cm/s |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Velocidad de la mano con 1 rad/s
docker exec jupyter python3 -c "import numpy as np; print(np.array([[-6, -6], [10, 0]]) @ np.array([1, 0]))"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Una columna del jacobiano en Python
import math
def hand(l1, l2, a1, a2):
x = l1 * math.cos(math.radians(a1)) + l2 * math.cos(math.radians(a1 + a2))
y = l1 * math.sin(math.radians(a1)) + l2 * math.sin(math.radians(a1 + a2))
return [x, y]
h = 0.01 # un paso pequeño, en grados
more = hand(10, 6, 0 + h, 90)
less = hand(10, 6, 0 - h, 90)
step = 2 * math.radians(h)
dx = (more[0] - less[0]) / step
dy = (more[1] - less[1]) / step
print("columna del ángulo 1:", round(dx, 2), round(dy, 2))
# Cambia el 90 del ángulo 2 por 0 y mira cómo cambia la columna.
Con el brazo estirado se pierde una dirección
Estira el brazo sobre el eje x. Girar cualquier articulación mueve la mano solo hacia arriba o hacia abajo, nunca hacia fuera ni hacia dentro.
Esa pose es una singularidad. El determinante del jacobiano vale 0 y el brazo no puede mover la mano en una dirección.
Ejemplo resuelto: el determinante en tres poses
| Pose | Jacobiano | Determinante |
|---|---|---|
| (0, 90) | [[-6, -6], [10, 0]] | 60 |
| (0, 0) | [[0, 0], [16, 6]] | 0 |
| (0, 180) | [[0, 0], [4, -6]] | 0 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error muy común
Advertencia
Mucha gente cree que el jacobiano es un número fijo del brazo. Cambia con cada pose: el mismo brazo tiene otro jacobiano al doblar el codo. Calcúlalo de nuevo en cada pose.
Para ir más lejos: otra pose
Estima a mano el jacobiano en la pose (90, 0) con eslabones de 10 y 6 cm. Mueve cada ángulo un paso pequeño y mide cuánto cambia la mano.
Después calcula el determinante y decide si esa pose es una singularidad.