Академический Документы
Профессиональный Документы
Культура Документы
Equipo No. 4
Materia:
LMT4051: Robótica.
Reporte Final
Resumen
Durante el siguiente reporte, se busca realizar el análisis del robot de
Universal Robotics UR5, obteniendo sus parámetros de Denavit-Hartenberg con el
análisis del robot físico. Una vez que se obtuvieron los valores de DH, se construyó
el robot en el Software de MATLAB, con la finalidad de poder realizar la cinemática
directa e inversa con el objetivo de paletizado de latas sobre una caja. Para realizar
la paletización es necesario establecer los puntos que tendría que ocupar cada lata,
siendo limitado por el tamaño de la caja y el área de trabajo del robot.
Una vez que observamos las limitaciones y los puntos alcanzables que presenta
nuestro robot, se realizó el programa para paletizar 6 latas sobre un palé. La
programación se realizó con el UR5, utilizando el lenguaje de Polyscope. La
programación se realizó de la manera más sencilla posible, utilizando las
herramientas facilitadas por el fabricante, como es el asistente para paletizar y la
generación de trayectorias (moviendo el robot). Es necesario mencionar que, al no
contar con sensores, se utilizaron pop-ups para así determinar que hubiera una lata
en posición o una nueva caja.
Con la correcta implementación de este programa hace que una tarea tan mecánica
y repetitiva como es el llenado de cajas con algún producto, en nuestro caso latas,
se realice de manera constante y mucho más eficiente, además de que el proceso
no se ve afectado por factores o errores humanos. La implementación de brazos
robóticos en tareas similares a estas hace que las empresas puedan obtener
beneficios económicos con el simple hecho de mejorar sus medios de producción.
Introducción
El proyecto se va a realizar utilizando el Robot de Universal Robotics modelo UR5,
el cual cuenta con un espacio de trabajo de 850mm de radio, una carga útil de 5 Kg
y un peso de 18.4 kg. Además, estos robots están diseñados para trabajar de
manera colaborativa ya que, al encontrarse con un obstáculo con mucha resistencia,
el robot se detiene de forma inmediata. De la misma manera este robot es fácil de
programar, es bastante flexible debido a que pueden tener múltiples aplicaciones y
pueden ser utilizados para automatizar la mayoría de las tareas manuales. En el
siguiente proyecto se buscará la manera de implementar una programación que nos
permita obtener un robot capaz de organizar sobre una caja una serie de elementos
para de esta manera representar el empaquetamiento de este objeto y de igual
manera que cumpla las características de ser amigable con el operador, para
permitir al operador continuar trabajando junto al robot.
Justificación y objetivos
Se va a trabajar con el robot UR5 debido a que cuentas con las características que
estamos buscando para la automatización de un proceso de paletización de latas,
las cuales son un espacio de trabajo entre 700 y 800 mm, este modelo cuenta con
un espacio de trabajo de hasta 850 mm haciendo que sea posible su uso para la
aplicación que se desea. Otra característica que se tomó en cuenta fue la carga útil,
la cual varía entre un rango de 300g a 1 kg, y de acuerdo a la página del fabricante
este modelo tiene una carga útil de 5 Kg, mientras que el ABB es capaz de mover
una mayor carga debido a que tiene motores neumáticos con la capacidad de
generar una mayor fuerza, pero se observó que está fuerza está sobrada, por lo
tanto, se decidió que los motores de DC son suficientes para la aplicación deseada.
Finalmente, la razón con mayor peso para escoger este robot fue el hecho de que
es un “cobot”, lo que permite que puede estar operando junto con trabajadores
humanos sin necesidad de tener un resguardo de seguridad haciendo que sea ideal
para la paletización de latas. Con la selección del robot UR5 se espera poder
automatizar el proceso mencionado previamente haciendo que el proceso de
paletización de latas se vuelva mucho más rápido obteniendo una mejor
productividad y como consecuencia de esto mejorando los beneficios de la
empresa. Finalmente, el objetivo principal propuesto para el reporte es la creación
e implementación de una programación eficaz que nos permita obtener un cobot
para la paletización de latas.
Denavit-Hartnberg
La forma más común de seleccionar los ejes de referencia de un robot es por medio
de la convención de los parámetros de Denavit-Hartenberg. Donde las
transformaciones homogéneas se van realizando por medio del producto de 4
transformaciones básicas que son:
Figurar 1: Producto de las matrices intermedias para obtener la matriz de
transformación homogénea final.
Con la obtención del ángulo de la articulación (Theta), el desfase del eslabón (D),
longitud del eslabón (A) y el giro del Eslabón (Alfa). Dado que la matriz A es una
matriz con una sola variable, en el caso de las rotacionales es theta y para las
prismáticas es D, todo lo demás es constante y se puede obtener viendo el robot.
Es posible utilizar solo 4 parámetros debido a que tenemos libertad de escoger el
origen y los ejes coordinados del marco. Para obtener los parámetros de DH es
necesario seguir 15 pasos (Barrientos, Peñín & Aracil, 2019) que son:
1. Numerar los eslabones: se llamará “0” a la “tierra”, o base fija donde se ancla
el robot. “1” el primer eslabón móvil, etc.
2. Numerar las articulaciones: La “1” será el primer grado de libertad, y “n” el
´ultimo.
3. Localizar el eje de cada articulación: Para pares de revolución, será el eje de
giro. Para prismáticos será el eje a lo largo del cual se mueve el eslabón.
4. Ejes Z: Empezamos a colocar los sistemas XYZ. Situamos los Zi−1 en los
ejes de las articulaciones i, con i = 1, . . ., n. Es decir, Z0 va sobre el eje de la
1a articulación, Z1 va sobre el eje del 2o grado de libertad, etc.
5. Sistema de coordenadas 0: Se sitúa el punto origen en cualquier punto a lo
largo de Z0. La orientación de X0 e Y0 puede ser arbitraria, siempre que se
respete evidentemente que XYZ sea un sistema dextrógiro.
6. Resto de sistemas: Para el resto de los sistemas i = 1, . . ., N − 1, colocar el
punto origen en la intersección de Zi con la normal común a Zi y Zi+1. En caso
de cortarse los dos ejes Z, colocarlo en ese punto de corte. En caso de ser
paralelos, colocarlo en algún punto de la articulación i + 1.
7. Ejes X Cada Xi va en la dirección de la normal común a Zi−1 y Zi,
en la dirección de Zi−1 hacia Zi .
8. Ejes Y: Una vez situados los ejes Z y X, los Y tienen sus direcciones
determinadas por la restricción de formar un XYZ dextrógiro.
9. Sistema del extremo del robot: El n-ésimo sistema XYZ se coloca en el
extremo del robot (herramienta), con su eje Z paralelo a Zn−1 y X e Y en
cualquier dirección valida.
10. Ángulos θ: Cada θi es el ´Angulo desde Xi−1 hasta Xi girando alrededor
de Zi .
11. Distancias d: Cada di es la distancia desde el sistema XY Zi−1 hasta
la intersección de las normales común de Zi−1 hacia Zi , a lo largo de Zi−1.
12. Distancias a: Cada ai es la longitud de dicha normal común.
13. Ángulos α: Ángulo que hay que rotar ´ Zi−1 para llegar a Zi , rotando
alrededor de Xi .
14. Cada eslabón define una matriz de transformación: i−1Ai
15. Transformación total: La matriz de transformación total que relaciona la base
del robot con su herramienta es la encadenación (multiplicación) de todas esas
matrices: T =0 A1 ∗ 1 A2 ∗ ... n−1An.
Una vez tomados cada uno de los pasos a seguir para elaborar nuestro modelo
de Denavit-Hartenberg del robot UR5 marcando donde se encontrara la tierra o
base del robot, después de esto, enumeramos cada una de nuestras articulaciones,
después tomando en cuenta la regla de la mano derecha ubicamos cada uno de los
ejes de las articulaciones, por ejemplo en la base del robot al tener solo
articulaciones rotacionales pues el eje Z esta referenciado al eje sobre el cual gira
nuestro robot y con la ayuda de la regla de la mano derecha damos cada uno de los
ejes siguientes definiendo X y por subsecuente obtendremos la dirección del eje Y,
enumeramos los ejes de las articulaciones y marcamos las distocias tanto de
traslación del eje Z(d) como las del eje X(a) y ya con todo esto obtenemos nuestro
dibujo del modelo de Denavit Hartenberg del UR5 para de esta manera aplicar el
resto de pasos y obtener los parámetros de la tabla de DH y poder graficar nuestro
robot en software para aplicar la cinemática directa e inversa.
Figura 2. Modelo obtenido por el método de Denavit Hartenberg
E(1), esto quiere decir que estamos en el primer eslabón de nuestro robot.
Dónde theta es la rotación en z necesaria para que reflejar nuestro nuevo sistema
de ejes, D es la traslación igualmente en el eje z para poder llegar al nuevo sistema
de coordenadas deseado, A es la traslación en el eje x para llegar a nuestro sistema
de coordenado deseado, alfa es la rotación en el eje x, finalmente # es representado
por un 0 o bien por un 1 este último sirve para identificar si el eslabón es prismático
o bien rotacional, el 0 representa a los rotacionales y el 1 a los prismáticos, también
es importante mencionar que los rotacionales pueden o no ser llenados con este 0,
en realidad no afecta en la lectura del código. También cabe resaltar que en caso
de que se cuente con uniones prismáticas se deben poner sus límites de la siguiente
manera:
E(3)=([-.01,10])
se puede apreciar que el límite inferior no es 0, esto es debido a que el software no
lo puede inicializar en 0 y lo marcaría como un error y el límite superior ya va a
depender de lo deseado por el usuario.
Para la una simulación mas exacta de nuestro robot, mediremos las articulaciones
que presenta y de esta manera, utilizando el denavit-hartenberg, remplazaremos los
valores medidos en cada articulación para de esta manera obtener un
comportamiento mas aproximado al que obtendremos al usar el robot real, para esto
a continuación se muestran las mediciones tomadas:
Una vez tomadas las medidas en físico del robot UR5 lo comparamos con las
medidas que tenemos en el modelo de Denavit-Hartenberg dado por el mismo
fabricante, en donde podemos observar que la medida de la base, como las
medidas entre articulaciones y al efector final fueron muy cercanas a las medidas
obtenidas por nosotros. De igual manera, se ignoran ciertas distancias debido a que
son básicamente que el motor de la articulación esta sobre el otro motor por lo
tanto estas distancias se desprecian en el Denavit-Hartenberg y se toman como
distancias de traslación del eje X debido a que al sacar los ejes con ayuda de la
regla de la mano derecha las posiciones de los ejes van a esas respectivas
posiciones.
El DH obtenido es el siguiente:
Nota: las medidas deben ser ingresadas en metros para el correcto funcionamiento del toolbox.
Cinemática directa
Una vez creado el robot, podemos conocer el área de trabajo de nuestro robot esto
es gracias a la cinemática directa del robot, antes de definir lo que es la cinemática
directa tenemos que definir lo que es la cinemática de un robot, la cuál es el estudio
del movimiento de los eslabones con respecto al eje de referencia. Entonces la
cinemática directa es el algebra vectorial necesario para conocer la posición final
(posición del último eslabón) respecto a el conocimiento del valor de cada uno los
eslabones son por esto que con la ayuda de la cinemática directa podemos conocer
el área de trabajo de cada robot. Por el otro lado de la cinemática, está la cinemática
inversa la cual es el algebra vectorial para el análisis de las posiciones de cada
eslabón requerida para llegar a la posición deseada, es decir es el análisis
algebraico que se requiere para la obtención de las posiciones de cada eslabón bien
es cierto que este tipo de análisis nos arrojará muchas soluciones es cuestión del
usuario decidir cuál de las soluciones es la óptima para resolver estos casos. Se
buscó realizar la cinemática directa de manera simbólica, pero el
resultado obtenido es sumamente largo para ser mostrado en el reporte, por lo que
decidimos dar un punto en específico para corroborar el funcionamiento. Los valores
dados para cada articulación fueron los siguientes:
Figura 8. Valores para las articulaciones en radianes y grados.
**Nota: los valores en el código se dieron en grados, pero para que los utilice el comando fkine del toolbox es
necesario ingresar los valores en rad.
Cinemática inversa
Debido a que nuestro robot no cuenta con una muñeca esférica, no es posible
utilizar el comando de Ikine6s que facilita el proceso y hace que la cinemática
inversa obtenga valores para las articulaciones reales. De acuerdo a lo anterior, se
utilizó el comando “ikine”, que trabaja de manera iterativa, por lo cual los puntos que
regresa no son siempre los reales (alcanzables), para realizar esto se cambió a un
punto mucho más simple para que “ikine” funcione, dando valores a las
articulaciones, haciendo cinemática directa y luego haciendo el
comando “Ikine” comprobando que los valores de las articulaciones sean los
mismos, o muy cercanos a los ingresados manualmente.
Figura 10. Comprobación de las articulaciones dadas con las obtenidas por medio
del comando Ikine.
Una vez dentro de la programación del robot, abrirá una nueva ventana, en la cual
es importante situarse en la pestaña “installation”, ya que dentro de esta pestaña es
donde se debe configurar las características principales del TCP (características de
la herramienta a utilizar), tal cual se observa en la figura 12.
Figura 12. Menú “Move”
Donde los comandos más comunes para la programación de trayectoria del robot
son: move, wait, popup (del grupo Basic), en el grupo “advanced” se encuentran
los loops, los condicionales y demás comandos de programación, finalmente se
encuentra el grupo wizard que es donde se localiza la herramienta para realizar palé
con ayuda del cobot. En este apartado se hablará de la configuración de
movimientos del robot, para que sirve el comando y como se usa el comando
“Popup” y finalmente como programar un palé.
Siguiendo con la programación del pallet se debe configurar “set”, en caso de tener
una herramienta configurada de forma analógica o digital con este punto es con el
que se debe dejar la pieza en su lugar, en caso contrario es necesario agregar un
movimiento (de herramienta) después del “set” para que el robot deje la pieza en el
palé. Siguiente punto, el robot necesita un tiempo para asegurar que la pieza ha
sido depositada en el lugar donde se deseaba y no moverla a un lugar inconveniente
así que se debe esperar a que ocurra una acción comúnmente se configura con a
que espere un tiempo para cambiar de punto. El punto final por configurar dentro de
la herramienta “pallet” es el punto de salida “exit” el cual es el punto hacía el cual irá
el robot justo después de que ocurra el evento configurado en el apartado “wait”.
Después de configurar esto el pallet ya está listo para usarse.
Programación
Una vez que conocemos las herramientas que utilizaremos y hemos configurado a
nuestro robot, comenzaremos la programación requerida. Para ello comenzaremos
definiendo la manera en que solucionaremos el problema para luego dar a conocer
la solución creada utilizando los comandos proporcionados por el mismo programa.
En la siguiente imagen, puede observarse un diagrama de flujo el cual explica
brevemente la lógica utilizada para la creación de nuestro programa.
Figura 18. Diagrama de Flujo
Conclusión
Como conclusión, podemos mencionar que el objetivo propuesto para nuestro robot
fue el deseado ya que fuimos capaces de organizar de manera adecuada diferentes
elementos sobre una caja, en este caso estos objetos fueron latas y de igual
manera, obtener una programación que sea útil y amigable con el operador que
ayudara al robot a cumplir el proceso para el empaquetamiento de las latas. Todo
esto fue gracias a los conocimientos adquiridos durante este curso, donde
observamos como se pueden utilizar estos mismos para la implementación y
creación de un proyecto en tiempo real y la importancia que estos conocimientos
tiene para poder lograr nuestros objetivos.
Referencias