Brazo Robótico SCARA

El trabajo que se mencionará en este documento tiene como fin explorar todas las posibilidades de trabajar un framework especializado en robótica, con el fin de interconectar las diferentes posibilidades que se tienen al trabajar en esta área de trabajo tan compleja. En esta ocasión se desea experimentar con ROS 2 (sistema operativo robótico). Las ventajas de utilizar una herramienta como esta es la facilidad que trae al conectar los sistemas de sensado y los sistemas de actuación, además permite ser un intermediario para facilitar el procesamiento de los datos tomados para tomar mejores decisiones y acelerar el proceso. Se desea trabajar con la segunda versión de ROS ya que la primera dejará tener retroalimentación por parte de los creadores, por lo que esta es el futuro en la industria. Otra de las ventajas de ROS 2 es la descentralización del modelo, ya que se parará de tener un Ros Master a tener varios nodos con igual importancia trabajando entre sí. Para tener una mejor inmersión en el mundo de ROS es también pertinente trabajar con un modelo físico para no tener que solo realizar simulaciones sino también explorar con otros componentes como los microcontroladores o la visión robótica. Por este motivo se va a utilizar el robot industrial presente en el bloque 19 piso 2. Este robot consta de un componente pegado a la base con un movimiento rotacional, de este va conectado otro elemento netamente rotacional y en la punta de ambos se tiene un par lineal con movimiento vertical, de este último se tiene una copa de succión que ayuda al robot arrastrar objetos de un lugar a otro.

Objetivos

  • Simular el robot industrial encontrado en el segundo piso del bloque 19 de la Universidad en el ambiente de simulación Gazebo 2.
  • Tener un modelo preciso con respecto al original para tener una simulación concreta del robot.
  • Crear las diferentes poses necesarias para tener un proceso industrial en la mesa de trabajo utilizando una máquina de estados finitos (MEF).
  • Implementar la visión robótica en el equipo para mejorar la precisión del proceso.

Proceso de trabajo

Como se mencionó anteriormente, el proceso de trabajo se llevará a cabo en cuatro fases, las cuales en cada una se tiene pensado cumplir con un objetivo específico, en las cuales se irá trabajando se conocerá más acerca de ROS 2 y de diferentes componentes.

Proceso de modelado y simulación

El primer objetivo que se desea cumplir es obtener un modelo funcional del robot industrial en cualquier CAD de modelado, para poder tener una simulación detallada en la plataforma de Gazebo 2, modulo importante perteneciente a ROS 2. Para cumplir este objetivo se llevará a cabo el siguiente plan de trabajo:

modelo

Como se puede ver en el diagrama mostrado en la parte superior, el primer paso será tomar las medidas exteriores para tener un modelo, no se tendrán en cuenta medidas físicas como el peso, centro de gravedad o momentos de inercia, solo importará la geometría ya que los otros valores serán corregidos teniendo en cuenta el desface, ya que el objetivo en la robótica es la precisión y no la exactitud. Luego de obtener el modelo en un CAD como SolidWorks, se procederá a convertir el archivo al formato que lee ROS (1 y 2) el cual se conoce como URDF (universal robot descriptio format). Después de tener el archivo en los formatos adecuados se puede abrir en la aplicación de RViz2 con la intención de verificar que se haya hecho la conversión correctamente. Después se continua a utilizar el asistente (wizard) de MoveIt2 para abrir el archivo y verificar que las piezas se muevan correctamente. Además, como siguiente paso se debe poner valores supuestos de las propiedades físicas mencionadas anteriormente, con el objetivo de probar el movimiento del robot y que se mueva como requerimos, para este paso también es importante incluir las colisiones, para verificar que las piezas no choquen entre sí. Finalmente, se deciden unas poses (simular un proceso de control con posiciones definidas) para poder simular en un ambiente con variables como la gravedad definida, con el fin de probar el funcionamiento adecuado del robot. Este proceso se hará en el programa de Gazebo 2 y es el paso final de este módulo.

Caracterización del robot SCARA

En este paso lo que se desea es caracterizar las propiedades del robot a través de un microcontrolador, el cual en este caso será Arduino. Por medio del controlador se enviarán señales al motor para poder tomar todos los datos del movimiento, como el avance vertical de la herramienta, y el avance radial (tomado en grados) de cada pieza independiente. Para cumplir este objetivo se tendrá en cuenta el siguiente plan de trabajo:}

modelo

El primer paso que se tiene es conectar el robot con un modulo de Arduino, esto se hace por medio de los pines seriales presentes en el microcontrolador y la terminal que se encuentra en el tablero del autómata. Al tener la conexión lista, se puede correr cualquier código que se tenga anteriormente para probar el movimiento de la máquina, con esto ya se podrían programar unas poses predefinidas para tomar los datos expresados anteriormente y tener los desfaces. La importancia de tomar estos valores se da por la imprecisión del modelo virtual, ya que como solo se tomaron las medidas geométricas se desconocen muchos de los valores físicos que intervienen en el movimiento. Dado este problema, si se conoce cuanto se mueve en el simulador y físicamente, se puede tomar en cuenta un factor de corrección el cual se programaría para tener una máquina precisa y exacta, ya que antes solo se tenía la exactitud.

Conexión con ROS y Arduino

Como menciona el título, el siguiente paso es el más importante, ya que este conecta los dos módulos trabajados anteriormente con el fin de simular un proceso industrial. Esto se hará por medio de la creación de unos estados definidos por las coordenadas en las que se encuentren, además del actuador que presenta el robot, una copa de succión para mover elementos de un lugar a otro).

modelo

Para cumplir con el objetivo definido se necesita principalmente se debe implementar la librería de ROS serial, esta con el objetivo de mandar mensajes seriales desde el computador hacia el microcontrolador de Arduino, en el cual si se trabaja con la librería de ros-lib, se pueden leer estas señales y controlar los actuadores del robot con mayor facilidad. Después de probar la comunicación desde el computador hacia el robot, se sigue con crear una IHM (interfaz hombre máquina) para facilitar la comunicación de un usuario con la máquina y poder mover al robot como lo desee el usuario o ponerlo en modo automático para realizar el proceso predefinido desde un archivo de secuencia (así completando la MEF).

Visión robótica para procesos complejos

Finalmente, para darle mayor alcance y complejidad al proyecto, se desea incluir un módulo de visión artificial al proyecto. Esta nueva implementación también ayudaría al robot a ubicarse mejor en su entorno, con el fin de mejorar la calidad y la precisión del proceso industrial deseado.

modelo

Para cumplir este objetivo lo primero que se necesita hacer es alimentar un algoritmo de machine learning con información tomada de internet (dependiendo las necesidades del proyecto) para crear un árbol de decisión que ayude a clasificar los elementos que el algoritmo de segregación vaya tomando. La tarea de ir tomando los diferentes elementos del entorno es la tarea de la librería en Python o C++ de openCV, la cual tomará la información recogida de la cámara que se desea montar en la punta final del robot cerca de la copa de succión. Finalmente, al tener el robot reconociendo el ambiente, se puede actualizar la MEF realizada en el anterior módulo para aumentar la calidad del proceso o de aumentar la complejidad.