Proyecto Final Robotica

Universidad De Las Américas Puebla. Dr. César Martínez Torres. Equipo No. 4 Gabriel Alejandro García Ángeles 152658 F

Views 82 Downloads 15 File size 848KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad De Las Américas Puebla.

Dr. César Martínez Torres.

Equipo No. 4

Gabriel Alejandro García Ángeles 152658 Félix Arturo Castillo López 153694 David Rojas Arellano 154153 Irving Ulises Sánchez Rangel 154421

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. Planteamiento del Problema

Se ha notado que en las industrias empacadoras, la mano de obra humana es lenta y es a su vez cara, esto lleva a las empresas a tener gastos que podrían verse disminuidos si se cambiara esto por un robot. El cambio de humanos por brazos robóticos podría aumentar la eficiencia en la línea de producción y como se mencionó líneas atrás, genera una reducción en los gastos obteniendo mayores beneficios a las empresas en lapsos más cortos. Sin embargo, en la línea de empaque es necesario contar con un robot que sea colaborativo, puesto que en estas líneas es necesario que haya supervisión humana y un robot de otro tipo podría terminar ocasionando daños al personal que se encarga de darle supervisión a la línea. Para resumir, se busca automatizar el proceso de paletización de latas de refresco en la cual el brazo se encarga de ir metiendo las botellas y una vez llena, la caja es tomada por el personal para ser cubiertas por plástico. 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. Cada Articulación tiene su propia matriz de transformación homogénea, la matriz de transformación homogénea completa es la multiplicación de todas las matrices intermedias. 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 Una vez obtenidos los parámetros de Denavit-Hartenberg procedemos a introducirlos en Matlab, eslabón por eslabón, se sabe que los eslabones deben tener el mismo identificador, es decir que la variable que lo va a representar en el software debe de ser la misma para cada uno, con la diferencia de que cada una de estas variables debe estar acompañada por el número de eslabón, ejemplo: E(1), esto quiere decir que estamos en el primer eslabón de nuestro robot. Posteriormente es importante mencionar como se deben introducir los parámetros en Matlab, dichos valores deben ser introducidos en forma de vector, es decir la variable se declara de la siguiente manera. E(1)=Link([theta D A alfa #]) 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.

Comprobación Denavit-Hartenberg y simulación en Matlab. 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:

Figura 3. Medida de Inicio a Articulación Base.

Figura 4. Medida de “Shoulder” a “Elbow”.

Figura 5. Medida de “Elbow” a “Wrist 1”.

Figura 6. Medida de “Wrist 3” a “Wrist 2” 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:

Tabla 1: Tabla de parámetros de DH. Nota: las medidas deben ser ingresadas en metros para el correcto funcionamiento del toolbox.

Como se mencionó anteriormente cada vector j corresponde a un eslabón del robot, el orden al eslabón que corresponden es el siguiente: j(1) corresponde a la base j(2) al “shoulder”, j(3) al “elbow”, j(4) “wrist 1” j(5) “wrist 2” j(6) “wrist 3”. *Todos estos nombres vienen dados desde la página de Universal Robots. Una vez construida la tabla se generó el robot en MATLAB, considerando que la posición sobre la que se hizo el análisis es la siguiente:

Figura 7. Robot generado en el software 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.

Utilizando estos valores de cada articulación podemos obtener la siguiente matriz de transformación homogénea con los valores que necesitamos de Roll Pitch, Yaw, X, Y y Z, para esto utilizando el comando fkine obtenemos nuestra matriz de transformación para la cinemática directa y es la siguiente:

Figura 9. Matriz de transformación homogénea.

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. Con esto corroboramos que al hacer la cinemática inversa y obtener el regreso de la matriz de transformación homogénea con el comando “ikine”, obtenemos el valor de las articulaciones que deben tener con esa matriz para llegar al punto dado. Una vez comprobado el funcionamiento que presenta en simulación el robot UR5, comenzaremos la programación que debe presentar este mismo para alcanzar los objetivos propuestos previamente, en este caso la paletización de un conjunto de latas dentro de una caja, de tal manera que permita trabajar junto a una persona en paralelo para poder completar el proceso. Para lograr esto, decidimos hacer uso del mismo software proporcionado por el fabricante para crear de manera eficaz la programación requerida para nuestro objetivo. Este programa es conocido como “teach pendant” que viene en el kit del robot UR5. Programación del Robot Dentro del programa “teach pendant”, encontraremos una herramienta conocida como “paletización”, esta herramienta funciona con el lenguaje “Polyscope”, el cual es un lenguaje de programación desarrollado por Universal Robots, que

permite generar las trayectorias para cada articulación del robot, para alcanzar los puntos deseados por el usuario. Este software resulta tener una interfaz muy amigable con el usuario ya que su programación resulta ser muy intuitiva para el usuario, al mismo tiempo permite visualizar los cambios en la trayectoria en el robot real o bien en el robot virtual. En breve se mencionarán puntos importantes a la hora de programar un robot de la serie de cobots de Universal Robots, lo primero es definir las características del TCP de la herramienta con la que se realizará la tarea que se la asignara al robot para definir las características del TCP es necesario dar click en el botón “program robot” que se muestra en la imagen de inicialización del PolyScope (figura 11).

Figura 11. Pantalla de inicialización de Polyscope. 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” Después de seleccionar la pestaña “installation”, en donde se debe seleccionar “TCP configuration”, en este apartado se abrirá una nueva ventana donde se configurará el TCP de la herramienta. Como se ve en la figura 13.

Figura 13. Configuración del TCP. Una vez que se tiene configurado el TCP, se puede empezar la configuración de trayectorias del brazo robótico, para configurar los puntos a los cuales va a llegar dicho brazo robótico es necesario situarse en la pestaña “program”, en esta pestaña es donde se genera toda trayectoria para el robot al mismo tiempo en este apartado se generan todas las condiciones que paran y activan el movimiento del robot. A excepción de los límites de frontera, estos límites son declarados en el apartado de

“safety”, el cual se encuentra en la pestaña “installation” tal cual se ve en la figura 13.

Figura 14. Aparatado de programación del robot. Dentro de la pestaña de “program”, se puede visualizar que se tiene un árbol de instrucciones en la parte izquierda donde como titulo tiene “Robot Program”, en este árbol es donde se visualiza los comandos que han sido ingresados por el usuario a lo largo de la programación. Para ingresar comandos de movimiento es necesario entrar en la subpestaña “structure” en este apartado encontraremos la ventana siguiente:

Figura 15. Comandos de estructura para trayectoria del robot. 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é. Primero es importante conocer los 3 tipos de movimiento que tiene el robot UR5, estos son: • El movimiento Move_J, el cual se usa cuando el robot se puede desplazar libremente, es decir no se encuentra limitado por obstáculos con los cuales pueda chocar en el área de desplazamiento entre el punto de inicio y el punto al que desea alcanzar, puesto que hace un calculo aleatorio para llegar de la forma más rápida hasta este punto. • El siguiente tipo de movimiento “moveL”, es un movimiento lineal entre el punto inicial y el punto final, es decir la trayectoria que sigue el robot para llegar al punto final es en una línea recta, es usado en movimientos entre obstáculos para poder evadirlos sin causar daños al robot y al obstáculo. • Para finalizar la descripción se cuenta con el movimiento “moveP” este último tipo de movimiento es con velocidad constante, es decir el movimiento que tiene el robot desde que inicia su trayectoria hasta que la termina es constante en todos los puntos que se encuentran en esta trayectoria, es comúnmente usado en soldadura o pintura. El siguiente punto por explicar es la herramienta “Popup” (figura 16) esta herramienta te permite usarla de 3 formas diferentes, como: un mensaje, advertencia o marcar un error. Cualquiera de las 3 detiene la trayectoria del robot hasta que un usuario llegue al teach pendant y de click en continuar o en “stop robot” (este último en caso de que sea una advertencia o un error), es comúnmente usada para detener la secuencia de la trayectoria de las articulaciones del robot cuando este no está conectado a sensores que le puedan avisar que está pasando a su alrededor, pero como es un cobot puede tener un usuario que haga que la secuencia siga su paso si se cumplen las condiciones que comúnmente mediría un robot.

Figura 16. Configuración de la herramienta Popup. Finalmente se hablará acerca de la herramienta que se encuentra dentro del “wizard”, llamada “pallet”, dicha herramienta sirve para hacer palé con ayuda del cobot, esta herramienta se inserta sólo dando click sobre ella, una vez que se seleccionó se agrega al árbol de instrucciones, cuando ya se encuentra agregado el árbol de instrucciones se debe empezar la configuración del pallet a utilizar, lo primero que se configura es la forma con la que se va a paletizar, puede ser de forma lineal, dentro de una plataforma, en una caja o bien en una lista de posiciones, dependiendo de lo que se desee realizar es la opción que se debe seleccionar. Posterior a la selección de forma para paletizar se debe agregar el “Approach1”, este punto es en el cual se va a acercar el UR5 a dejar la pieza dentro del palé. El siguiente punto por 3programar es el punto “PatternPoint1”, este punto es la posición en la cual el robot se encontrará para depositar la primera pieza dentro de la paletización es importante definir cuidadosamente la forma deseada con la que la herramienta llegará a esta posición puesto que la forma con la que la herramienta llega a este punto llegará a todos los puntos restantes. 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.

Figura 17. Configuración del pallet. 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 Traduciendo este diagrama de flujo, obtenemos la siguiente programación en donde podemos observar que usamos los comandos previamente explicados.

Figura 19: Programa en Polyscope. La programación de la solución se explicará a continuación: • Se establecieron ciertas trayectorias para poner al robot en una posición “cómoda” para poder llegar a los puntos sin ningún problema. • Posteriormente, fue necesario establecer el punto donde se pasaría a recoger la lata. Al no haber un sensor que detecte la lata, se implemente el despliegue de una ventana que pregunta si hay una lata en posición y se mantendrá ahí hasta que se presione el botón de continuar como se muestra en la Figura 19, acto seguido hace que se cierre la garra.

Figura 20: Mensaje para comprobar la posición de la lata.

Figura 21. Brazo en Posición de Lata



Luego, se realiza una trayectoria lineal para levantar la lata y se empieza a desplazar hacia la posición donde se va a encontrar el palé. • Después, se configuro el asistente de paletización incluido en el UR5, donde para configurarlo es necesario: Establecer un punto de aproximación donde no afecte a las latas. o Establecer las cuatro esquinas del palé (previamente es necesario configurar cuantas filas y cuantas columnas se podrán sobre el palé). o Es necesario colocar el primer punto del patrón. Estas posiciones se irán moviendo de acuerdo con la configuración previamente establecida. o



Luego, es necesario poner un set, pero al ser el gripper un accesorio diferente, es necesario abrir la garra desde el menú de acciones de la garra. • Se establece una espera para que el robot tenga tiempo de soltar el elemento. • Después, se da una posición de salida donde el robot llegará después de haber colocado la pieza. • Finalmente, se decidió implementar un ciclo con el objetivo de desplegar una ventana que indique que la caja se ha llenado en su totalidad, preguntando si hay una nueva caja.

Figura 22. Paletización completada sobre el palé. De esta manera se logro realizar la paletización de latas sobre un palé, automatizando un proceso de manera correcta. 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 FORWARD KINEMATICS: THE DENAVIT-HARTENBERG CONVENTION. (2019). Revisado en: https://users.cs.duke.edu/~brd/Teaching/Bio/asmb/current/Papers/chap3-forwardkinematics.pdf Lara, J. (2017). CINEMATICA DIRECTA E INVERSA DEL ROBOT MOVEMASTER EX RV-M1 PROYECTO FINAL DE ROBOTICA. Retrieved from https://chigwaco.blogspot.com/2015/09/cinematica-directa-e-inversa-delrobot.html Robotics, U. (2015). Parameters for calculations of kinematics and dynamics 45257 | Universal Robots. Retrieved from https://www.universal-robots.com/howtos-and-faqs/faq/ur-faq/parameters-for-calculations-of-kinematics-and-dynamics45257/ Barrientos, A., Peñín, L., & Aracil, R. (2019). Fundamentos de robótica.