Primer Prototipo

Eduardo Vieira

eduardoj.vieirav@gmail.com



Índice

[Descripción del problema](#descripcion)

[Descripción geométrica](#geometria)

[Estudio cinemático](#cinematica)

[Estudio del espacio de trabajo](#espaciodetrabajo)

[Variacion de la resolución en el espacio de trabajo](#resolucion)

Descripción del problema

Se tiene una impresora 3D de tipo delta con 3 columnar equidistantes como se muestra en la siguiente figura:

Se desea obterner:

  • Las expresiones que resuelven el problema cinemático en función de las variables geométricas del prototipo.
  • El cálculo del espacio de trabajo.
  • La variación de la resolución en el espacio de trabajo.
  • La variación de la velocidad de la herramienta.

Descripción geométrica

Consideremos la representación simplificada

Ubicaremos los puntos importantes de la siguiente manera

En la figura podemos observar los puntos:

  • $O$ el punto central de la cama caliente.
  • $A$ el punto justo debajo de $O$, está separado una distancia $\epsilon$ que se deja a propósito para la calibración o nivelación de la plataforma.
  • $B$ el punto entre los centros de los tubos de una columna.
  • $C$ el punto que denota la altura del carro respecto a la coluna.
  • $D$ el punto ubicado en el punto medio de las dos juntas esféricas superiores.
  • $F$ el punto ubicado en el punto medio de las dos juntas esféricas inferiores.
  • $G$ el punto ubicado encima del centro de la plataforma móvil.
  • $P$ el punto ubicado en la punta del extrusor.

Vemos que el robot estudiado mueve la punta de la herramienta, donde se encuentra el punto $P$, a través del movimiento lineal de los carros en el eje $Z$, es decir, a través del movimiento vertical del punto $C$ accionado por el motor paso a paso.

Entradas y salidas

El robot analizado posee como entrada las distancias verticales del carro respecto a la base ($l$) y como salida el movimiento del punto $P$ en dirección $x$, $y$ y $z$.

Estudio Cinemático

El problema cinemático

Existen dos problemas fundamentales para resolver la cinemática del robot; el primero de ellos se conoce como el problema cinemático directo, y consiste en determinar cual es la posición y orientación del extremo final del robot, con respecto a un sistema de coordenadas que se toma como referencia, conocidos los valores de las articulaciones y los parámetros geométricos de los elementos del robot, el segundo denominado problema cinemático inverso resuelve la configuración que debe adoptar el robot para una posición y orientación del extremo conocidas (Barrientos 2007).

Grados de Libertad

Podemos calcular el número de grados de libertad usando la fórmula de Grübler:

$NGDL = \lambda (n - j - 1) + \sum_{i=1}^{j} f_i$

Donde: $\lambda$: Grados de libertad del espacio de trabajo (3 en el plano, 6 en el espacio). $n$: Número de eslabones (incluyendo la base). $j$: Número de articulaciones. $f_i$: Grados de libertad de la articulación i.

Aplicando la ecuación: $NGDL = 6 (17-21-1) + 21 = -9$

Lo cual es incorrecto,para hacer que la fórmula funcione debemos tratar las barras paralelas como un solo eslabón por brazo.

$NGDL = 6 (14-15-1) + 15 = 3$

Los que corresponde a las traslaciones en los ejes $x$, $y$ y $z$. Cabe destacar que esta configuración no posee rotación de ningún tipo, asi la plataforma móvil es siempre paralela a la plataforma fija.

Planteamiento Geométrico

Si observamos de nuevo la figura 3 podemos establecer la siguiente igualdad vectorial:

$^B\vec{OA}_i + ^B\vec{AB}_i + ^B\vec{BC}_i + ^B\vec{CD}_i + ^B\vec{DE}_i = ^B\vec{P_P} + ^B_P\vec{R} ^P\vec{P_i}$

Donde el subíndice $i$ indica la columna y el superíndice indica respecto a cual sistema de cordenadas, $B$ respecto a la base o plataforma fija y $P$ respecto a la plataforma móvil.

Como no existe rotción entre la plataforma móvil y la base $^B_P\vec{R} = 1$ obteniendo entonces:

$^B\vec{OA}_i + ^B\vec{AB}_i + ^B\vec{BC}_i + ^B\vec{CD}_i + ^B\vec{DE}_i = ^B\vec{P_P} + ^P\vec{PF}_i + ^P\vec{FE}_i$

Entonces el problema cinemático se resume a determinar cada una de estos vectores.

Determinación de los Vectores

El vector $^B\vec{OA}_i$ para todas las columnas es el mismo y es $^B\vec{OA}_i = [0, 0, \epsilon ]$

In [1]:
# Importamos la librería de álgebra simbólica
import sympy as sym
# Activamos la salida en latex
sym.init_printing()

#Creamos la variable simbólica epsilon
e = sym.Symbol("\epsilon", positive=True)

# Definimos los vectores
OA_1 = sym.Matrix([0,0,-e])
OA_2 = sym.Matrix([0,0,-e])
OA_3 = sym.Matrix([0,0,-e])

$^B\vec{OA}_1 = \left[\begin{matrix}0\\0\\- \epsilon\end{matrix}\right]$

$^B\vec{OA}_2 = \left[\begin{matrix}0\\0\\- \epsilon\end{matrix}\right]$

$^B\vec{OA}_3 = \left[\begin{matrix}0\\0\\- \epsilon\end{matrix}\right]$

Para determinar los vectores $^B\vec{AB}_i$ debemos mirar la base

Definamos la distancia entre columnas como $s$, sabeos que la base formará entonces un triágulo equilátero de lado $s$.

In [2]:
# Creamos la variable simbólica s
s = sym.Symbol("s", positive=True);

AB_1x = s / 2
AB_1y = -AB_1x * sym.tan(sym.pi / 6)
AB_1 = sym.Matrix([AB_1x, AB_1y, 0])

AB_2x = 0
AB_2y = (s / 2) / sym.cos(sym.pi / 6)
AB_2 = sym.Matrix([AB_2x, AB_2y, 0])

AB_3x = -s / 2
AB_3y = AB_1y
AB_3 = sym.Matrix([AB_3x, AB_3y, 0])

$^B\vec{AB}_1 = \left[\begin{matrix}\frac{s}{2}\\- \frac{\sqrt{3} s}{6}\\0\end{matrix}\right]$

$^B\vec{AB}_2 = \left[\begin{matrix}0\\\frac{\sqrt{3} s}{3}\\0\end{matrix}\right]$

$^B\vec{AB}_1 = \left[\begin{matrix}\frac{s}{2}\\- \frac{\sqrt{3} s}{6}\\0\end{matrix}\right]$

Los vectores $^B\vec{BC}_i$ Estń en dirección $z$ y tienen magnitud $l_i$ la cual es la distancia vertical entre el carro y la base

In [3]:
l_1 = sym.Symbol("l_1", positive=True)
BC_1 = sym.Matrix([0, 0, l_1])

l_2 = sym.Symbol("l_2", positive=True)
BC_2 = sym.Matrix([0, 0, l_2])

l_3 = sym.Symbol("l_3", positive=True)
BC_3 = sym.Matrix([0, 0, l_3])

$^B\vec{BC}_1 = \left[\begin{matrix}0\\0\\l_{1}\end{matrix}\right]$

$^B\vec{BC}_2 = \left[\begin{matrix}0\\0\\l_{2}\end{matrix}\right]$

$^B\vec{BC}_3 = \left[\begin{matrix}0\\0\\l_{3}\end{matrix}\right]$

Los vectores $^B\vec{CD}_i$ están en la misma dirección que los $^B\vec{AB}_i$ pero en sentido opuesto. La magnitud de este vector la denominaremos $a$

In [4]:
a = sym.Symbol("a", positive=True)

CD_1 = -a * AB_1 / sym.sqrt((AB_1.dot(AB_1)))
CD_2 = -a * AB_2 / sym.sqrt((AB_2.dot(AB_2)))
CD_3 = -a * AB_3 / sym.sqrt((AB_3.dot(AB_3)))

$^B\vec{CD}_1 = \left[\begin{matrix}- \frac{\sqrt{3} a}{2}\\\frac{a}{2}\\0\end{matrix}\right]$

$^B\vec{CD}_2 = \left[\begin{matrix}0\\- a\\0\end{matrix}\right]$

$^B\vec{CD}_3 = \left[\begin{matrix}\frac{\sqrt{3} a}{2}\\\frac{a}{2}\\0\end{matrix}\right]$

Las coordenadas del punto del extrusor $^B\vec{P_P}$ son

In [5]:
x = sym.Symbol("x")
y = sym.Symbol("y")
z = sym.Symbol("z")

P_P = sym.Matrix([x, y, z])

$^B\vec{P_P} = \left[\begin{matrix}x\\y\\z\end{matrix}\right]$

Los vectores $^P\vec{PF}_i$ son todos iguales, van en dirección $z$ y a su magnitud la llamaremos $b$

In [6]:
b = sym.Symbol("b", positive=True)

PF_1 = sym.Matrix([0, 0, b])
PF_2 = sym.Matrix([0, 0, b])
PF_3 = sym.Matrix([0, 0, b])

$^P\vec{PF}_1 = \left[\begin{matrix}0\\0\\b\end{matrix}\right]$

$^P\vec{PF}_1 = \left[\begin{matrix}0\\0\\b\end{matrix}\right]$

$^P\vec{PF}_3 = \left[\begin{matrix}0\\0\\b\end{matrix}\right]$

Para hallar los vectores $^P\vec{FE}_i$ debemos observar la platafora móvil. Además llamamos $c$ a la distancia entre los puntos $E_i$

In [7]:
c = sym.Symbol("c", positive=True);

FE_1x = c / 2
FE_1y = -FE_1x * sym.tan(sym.pi / 6)
FE_1 = sym.Matrix([FE_1x, FE_1y, 0])

FE_2x = 0
FE_2y = (c / 2) / sym.cos(sym.pi / 6)
FE_2 = sym.Matrix([FE_2x, FE_2y, 0])

FE_3x = -c / 2
FE_3y = FE_1y
FE_3 = sym.Matrix([FE_3x, FE_3y, 0])

$^P\vec{FE}_1 = \left[\begin{matrix}\frac{c}{2}\\- \frac{\sqrt{3} c}{6}\\0\end{matrix}\right]$

$^P\vec{FE}_2 =\left[\begin{matrix}0\\\frac{\sqrt{3} c}{3}\\0\end{matrix}\right]$

$^P\vec{FE}_3 = \left[\begin{matrix}- \frac{c}{2}\\- \frac{\sqrt{3} c}{6}\\0\end{matrix}\right]$

Finalmente sustituiremos los vectores en la ecuación

$^B\vec{OA}_i + ^B\vec{AB}_i + ^B\vec{BC}_i + ^B\vec{CD}_i + ^B\vec{DE}_i = ^B\vec{P_P} + ^P\vec{PF}_i + ^P\vec{FE}_i$

$^B\vec{DE}_i = ^B\vec{P_P} + ^P\vec{PF}_i + ^P\vec{FE}_i - ^B\vec{OA}_i - ^B\vec{AB}_i - ^B\vec{BC}_i - ^B\vec{CD}_i$

In [8]:
# Columna 1
DE_1 = P_P + PF_1 + FE_1 - OA_1 - AB_1 - BC_1 - CD_1

# Columna 2
DE_2 = P_P + PF_2 + FE_2 - OA_2 - AB_2 - BC_2 - CD_2

# Columna 3
DE_3 = P_P + PF_3 + FE_3 - OA_3 - AB_3 - BC_3 - CD_3

$^B\vec{DE}_1 = \left[\begin{matrix}\frac{\sqrt{3} a}{2} + \frac{c}{2} - \frac{s}{2} + x\\- \frac{a}{2} - \frac{\sqrt{3} c}{6} + \frac{\sqrt{3} s}{6} + y\\\epsilon + b - l_{1} + z\end{matrix}\right]$

$^B\vec{DE}_2 = \left[\begin{matrix}x\\a + \frac{\sqrt{3} c}{3} - \frac{\sqrt{3} s}{3} + y\\\epsilon + b - l_{2} + z\end{matrix}\right]$

$^B\vec{DE}_3 = \left[\begin{matrix}- \frac{\sqrt{3} a}{2} - \frac{c}{2} + \frac{s}{2} + x\\- \frac{a}{2} - \frac{\sqrt{3} c}{6} + \frac{\sqrt{3} s}{6} + y\\\epsilon + b - l_{3} + z\end{matrix}\right] $

No conocemos los vectores $^B\vec{DE}_i$ pero sabemos que su longitud es fija y vale $L$ asi que sacamos el módulo y lo igualamos a $L$

In [9]:
L = sym.Symbol("L", positive=True)

eq_1 = sym.Eq(L**2, DE_1.dot(DE_1))
eq_2 = sym.Eq(L**2, DE_2.dot(DE_2))
eq_3 = sym.Eq(L**2, DE_3.dot(DE_3))

Obteniendo las ecuaciones:

$$L^{2} = \left(\epsilon + b - l_{1} + z\right)^{2} + \left(- \frac{a}{2} - \frac{\sqrt{3} c}{6} + \frac{\sqrt{3} s}{6} + y\right)^{2} + \left(\frac{\sqrt{3} a}{2} + \frac{c}{2} - \frac{s}{2} + x\right)^{2}$$

$$L^{2} = x^{2} + \left(\epsilon + b - l_{2} + z\right)^{2} + \left(a + \frac{\sqrt{3} c}{3} - \frac{\sqrt{3} s}{3} + y\right)^{2}$$

$$L^{2} = \left(\epsilon + b - l_{3} + z\right)^{2} + \left(- \frac{a}{2} - \frac{\sqrt{3} c}{6} + \frac{\sqrt{3} s}{6} + y\right)^{2} + \left(- \frac{\sqrt{3} a}{2} - \frac{c}{2} + \frac{s}{2} + x\right)^{2}$$

Donde

Variable Descripción
$\epsilon$ Distancia vertical entre la estructura y la cama caliente, esta distancia puede variar ligeramente debido al proceso de nivelación
$a$ Distancia entre el punto medio del centro de las guías verticales y el punto medio de los extremos superiores de las juntas esféricas
$b$ Distancia entre el plano forado por los puntos $F_i$ y la punta del extrusor $P$
$c$ Lado del triángulo formado por los puntos $E_i$
$l_i$ Distancia vertical del carro
$s$ Distancia entre columnas
$L$ Longitud de los brazos
$x$, $y$, $z$ Coordenadas de los puntos de la herramienta
In [13]:
l1 = sym.solve(eq_1,l_1)
l2 = sym.solve(eq_2,l_2)
l3 = sym.solve(eq_3,l_3)

Las ecuaciones que describen la cinemática inversa son las siguientes:

$l_1 = \left [ \epsilon + b + z - \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s - 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s - 3 c x + \sqrt{3} c y - s^{2} + 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}, \quad \epsilon + b + z + \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s - 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s - 3 c x + \sqrt{3} c y - s^{2} + 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}\right ]$

$l_2 = \left [ \epsilon + b + z - \frac{1}{3} \sqrt{9 L^{2} - 9 a^{2} - 6 \sqrt{3} a c + 6 \sqrt{3} a s - 18 a y - 3 c^{2} + 6 c s - 6 \sqrt{3} c y - 3 s^{2} + 6 \sqrt{3} s y - 9 x^{2} - 9 y^{2}}, \quad \epsilon + b + z + \frac{1}{3} \sqrt{9 L^{2} - 9 a^{2} - 6 \sqrt{3} a c + 6 \sqrt{3} a s - 18 a y - 3 c^{2} + 6 c s - 6 \sqrt{3} c y - 3 s^{2} + 6 \sqrt{3} s y - 9 x^{2} - 9 y^{2}}\right ]$

$l_3 = \left [ \epsilon + b + z - \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s + 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s + 3 c x + \sqrt{3} c y - s^{2} - 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}, \quad \epsilon + b + z + \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s + 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s + 3 c x + \sqrt{3} c y - s^{2} - 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}\right ]$

Las dos soluciones que nos ha dado corresponden a los casos de la plataforma móvil encima de los carros ($l_i$ menor) y el de la plataforma móvil debajo de los carros ($l_i$ mayor). Asi que solo tomamos la segunda solución.

In [16]:
l1 = l1[1]
l2 = l2[1]
l3 = l3[1]

$l_1 = \epsilon + b + z + \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s - 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s - 3 c x + \sqrt{3} c y - s^{2} + 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}$

$l_2 = \epsilon + b + z + \frac{1}{3} \sqrt{9 L^{2} - 9 a^{2} - 6 \sqrt{3} a c + 6 \sqrt{3} a s - 18 a y - 3 c^{2} + 6 c s - 6 \sqrt{3} c y - 3 s^{2} + 6 \sqrt{3} s y - 9 x^{2} - 9 y^{2}}$

$l_3 = \epsilon + b + z + \frac{\sqrt{3}}{3} \sqrt{3 L^{2} - 3 a^{2} - 2 \sqrt{3} a c + 2 \sqrt{3} a s + 3 \sqrt{3} a x + 3 a y - c^{2} + 2 c s + 3 c x + \sqrt{3} c y - s^{2} - 3 s x - \sqrt{3} s y - 3 x^{2} - 3 y^{2}}$