16.2: Recoger y Colocar
- Page ID
- 115592
Considera el robot representado en la siguiente imagen.
Este estilo de robot a menudo se llama robot de “pick-and-place”. Tiene dos motores que giran alrededor del eje z para mover el efector final en el\(x−y\) plano; un “actuador lineal” que se mueve hacia arriba y hacia abajo en la\(z\) dirección -y luego finalmente una tercera articulación giratoria de “muñeca” que gira la “mano” del robot. Vamos a modelar nuestro robot usando el siguiente diagrama del sistema:
El origen de este robot se encuentra en la base de la primera “torre” y está en línea con la primera articulación. La\(x\) dirección -va del origen a la derecha y el\(z\) eje -va desde el origen hacia arriba.
Esto es un poco más complicado que el caso 2D donde todo giraba alrededor de los ejes que se proyectan fuera del\(x−y\) plano.
En 2D solo nos preocupamos realmente por un eje de rotación. Sin embargo en 3D podemos rotar alrededor del\(z\) eje\(x\)\(y\),, y. Las siguientes son las matrices de transformación 3D que combinan rotación y traducciones:
Rotación del eje X
\ [\ begin {split}
\ left [\ begin {matrix}
x'\\
y'\
z'\\
1
\ end {matrix}
\ right]
=
\ left [\ begin {matrix}
1 & 0 & 0 & dx\\
0 & cos (q) & -sin (q) & dy\\
0 & sin (q) & cos (q) & dz\\
0 & 0 & 0 & 1
\ end {matriz}
\ derecha]
\ izquierda [\ comenzar {matriz}
x\\
y\\
z\\
1
\ end {matriz}
\ derecha]
\ end {split}\ nonumber\]
Rotación del eje Y
\ [\ begin {split}
\ left [\ begin {matrix}
x'\
y'\
z'\\
1
\ end {matrix}
\ right]
=
\ left [\ begin {matrix}
cos (q) & 0 & sin (q) & dx \\
0 & 1 & 0 & dy\\
-sin (q) & 0 & cos (q) & dz\\
0 & 0 & 0 & 1
\ end {matriz}
\ derecha]
\ izquierda [\ begin {matriz}
x\\
y\\
z\\
1
\ end {matriz}
\ derecha]
\ end {split}\ nonumber\]
Rotación del eje Z
\ [\ begin {split}
\ left [\ begin {matrix}
x'\\
y'\
z'\\
1
\ end {matrix}
\ right]
=
\ left [\ begin {matrix}
cos (q) & -sin (q) & 0 & dx\\
sin (q) & cos (q) & 0 & dy\\
0 & 0 & 0 & 1 & dz\\
0 & 0 & 0 & 1
\ end {matriz}
\ derecha]
\ izquierda [\ comenzar {matriz}
x\\
y\\
z\\
1
\ end {matriz}
\ derecha]
\ end {split}\ nonumber\]
Construir una matriz de transformación conjunta llamada\(J_1\), que representa un sistema de coordenadas que se ubica en la parte superior de la primera “torre” (sholder del robot) y se mueve girando alrededor del\(z\) eje en\(\theta_1\) grados. Representa tu matriz usando sympy
y los símbolos proporcionados:
Construir una matriz de transformación articular llamada\(J_2\), que representa un sistema de coordenadas que se ubica en la articulación “codo” entre los dos brazos giratorios y gira con el segundo brazo alrededor del\(z\) eje -eje en\(\theta_2\) grados. Representa tu matriz usando sympy
y los símbolos proporcionados en la pregunta a:
Construir una matriz de transformación articular llamada\(J_3\), que representa una traslación de coordenadas desde la articulación “codo” hasta el extremo horizontal del brazo del robot por encima de la articulación de la muñeca. Nota: no hay rotación en esta transformación. Representa tu matriz usando sympy
y los símbolos proporcionados en la pregunta a:
Construir una matriz de transformación conjunta llamada\(J_4\), que representa un sistema de coordenadas que se encuentra en la punta de la “mano” del robot y gira alrededor del\(z\) eje por\(\theta_4\). Este es un poco diferente, la configuración es tal que la mano toca la mesa cuando\(d_4=0\) así es el componente de traslación para la matriz en el eje z\(d_4−V_1−V_2\).
Reescribir las matrices de transformación conjunta a partir de las preguntas a - d como matrices numpy con valores discretos (en lugar de simbólicos). Conecte sus transformaciones en el código a continuación y use esto para simular el robot:
¿Podemos cambiar el orden de las matrices de transformación? ¿Por qué? Puedes probar y ver qué pasa.