robotics r&d

Robotnik en DECENTER: Robótica + Inteligencia artificial

Entrevista PhD- Decenter Project Coordinator.

La Inteligencia Artificial es una tecnología en constante evolución y cuyas posibilidades e influencia en distintos ámbitos es amplísima. Existen numerosas aplicaciones de IA relacionadas con robótica móvil que tienen una relación directa en distintos sectores industriales. 

Todas estas aplicaciones, así como los hábitos de la sociedad actual, hace que sea necesario enfocar nuestra atención en un punto clave: ¿Qué hacemos con la enorme cantidad de datos que generamos? 

Robotnik forma parte de DECENTER, un proyecto europeo dentro del programa H2020 cuya finalidad es precisamente gestionar, proteger y procesar de forma eficiente y segura estos datos. 

Ángel Soriano, responsable por parte de Robotnik en este proyecto, que nos acerca un poco más a DECENTER, contándonos cómo ha evolucionado desde sus inicios, en qué fase se encuentran los objetivos, las conclusiones que extraen y mucho más.

 

1. Para comenzar la conversación, ¿podrías hacernos un resumen de en qué consiste exactamente DECENTER?

DECENTER es un proyecto que intenta ofrecer una infraestructura que facilite a los desarrolladores de Inteligencia Artificial y software orientado al Cloud&Edge computing, la integración y despliegue de sus servicios o aplicaciones.

El proyecto contempla 3 perfiles diferentes:

  1. Programadores y arquitectos orientados a la computación distribuida o gestión de la computación en edge/cloud.
  2. Desarrolladores enfocados a algoritmos de IA, los cuales normalmente requieren gran capacidad de cómputo y memoria.
  3. Operarios o personal técnico responsable del buen funcionamiento e integración del software desplegado en el hardware disponible.

Lo que se pretende con DECENTER es facilitar al técnico la integración de procesos y/o algoritmos de IA en el sistema que ya tiene implantado en su fábrica, y que además pueda procesarlos en el edge o en el cloud.

 

 

Un ejemplo: tenemos un profesional que se dedica a desarrollar un algoritmo que es capaz de identificar robots dentro de una fotografía. Por otro lado, tenemos a un trabajador-operario que conoce su sistema, que es capaz de tomar esa fotografía, pero no es especialista en Inteligencia Artificial. ¿Cómo puede integrar las ventajas que ofrece la IA sin necesidad de especializarse en ello?

DECENTER pretende crear estas conexiones y distribuir la computación (estos algoritmos requieren mucha capacidad de cómputo) a distintos niveles. 

Un nivel local, podría ser ejecutarlo dentro del mismo ordenador que toma la fotografía. 

Un nivel por encima sería ejecutarlo dentro de un ordenador que no es el mismo que toma la fotografía, pero está dentro de la misma región o relativamente cerca (Edge).

Y un nivel superior sería ejecutarlo en el cloud.

Jugando con esos 3 niveles, el proyecto ofrece una plataforma que facilita esa integración y comunicación.

 

¿Qué papel desempeña Robotnik en el proyecto?

Todo lo anteriormente explicado se aplica a 4 casos de uso que están definidos en el proyecto. Robotnik es proveedor de uno de los casos de uso del proyecto: logística de robótica.

Cuando un robot está realizando sus tareas autónomas navegando por el almacén, tiene que tomar ciertas decisiones en base a los imprevistos que van surgiendo, como por ejemplo el hecho de encontrar obstáculos que bloqueen su camino. En ciertas ocasiones, si el robot no es capaz de identificar qué es ese obstáculo, la opción más segura es, primero que el robot se detenga inmediatamente y después: 

  • O que el robot se quede estático esperando hasta que el obstáculo desaparezca para asegurar que no existe riesgo alguno de colisión. 
  • O que el robot replanifique su trayectoria para alcanzar su objetivo por otro sitio e intentar evitar el obstáculo.  

Esta es una situación muy frecuente en flotas de robots móviles colaborativos ya que suelen compartir espacio de trabajo entre ellos mismos y con trabajadores del mismo almacén. 

DECENTER abre la posibilidad de aplicar una identificación de obstáculos a través de la IA. 

Robotnik ofrece los robots y toda la infraestructura, además de desarrollar la integración de la plataforma DECENTER dentro del robot y de la estructura que ya teníamos y gracias a este servicio que nos ofrece el partner y el proyecto, hemos podido ramificar las opciones de gestionar las flotas de robots en almacenes. 

 

2. En este punto, ¿Qué objetivos de los marcados se han cumplido y en qué aspectos será necesario seguir trabajando?

Un ejemplo de objetivo cumplido en el caso de uso concreto de Robotnik es: nos propusimos ser capaces de identificar otro robot con un nivel de confianza superior al 80% y de reducir el uso de la CPU de los robots un 10% derivando computación al edge/cloud. Ambos objetivos se han alcanzado de manera satisfactoria.

 

3. ¿Qué supone este proyecto para la industria 4.0?

Hay varias cosas que DECENTER aporta a la industria 4.0 directamente. Una de ellas es la gestión de la computación: poder derivar y gestionar la computación entre dispositivos. La computación distribuida es algo que está actualmente a la orden del día y es pura vanguardia. Hablamos incluso, de hacerlo de una manera inteligente en base a unos objetivos o prioridades. 

Robotnik diseña y fabrica robots móviles. Si queremos que un robot ejecute un algoritmo muy pesado y con mucha capacidad de cómputo (esto sucede en muchísimas ocasiones: cámaras de alta resolución, LiDAR que captura 320.000 puntos distintos cada segundo...), hemos de capacitarlo para ello.

La solución directa es que la CPU del robot sea muy potente lo que implica normalmente implica que sea más cara. Sin embargo, con la capacidad de delegar computación, tienes la posibilidad de enviar todos esos datos usando la comunicación con otros dispositivos o con el cloud, computar los datos allí y aplicar el resultado devuelto al robot.

Esto abarata costes desde el punto de vista de la producción del robot, hace el sistema más inteligente puesto que se reduce el consumo eléctrico del robot, optimiza la energía y en general, optimiza recursos.

 

4. Teniendo en cuenta tanto a las grandes empresas como a las PYMES, ¿Cuál es el mayor reto para la aplicación real de la Inteligencia Artificial en la industria?

El mayor reto es sin duda que la IA se encuentra en continua evolución y expansión y su integración en la industria requiere de personal especializado para ello. Actualmente existe una brecha entre la comunidad especializada en IA y el personal involucrado en la industria que debe lidiar con los problemas propios de su industria.

DECENTER intenta acercar ambos perfiles de modo que la industria pueda beneficiarse de la aplicación de la IA sin necesidad de ser especialista en IA.

Existe otro reto tecnológico implícito para aplicar la metodología de DECENTER en una aplicación real de industria, las comunicaciones. Cuando se delega la computación entre dispositivos, y estos requieren de cierta velocidad de procesamiento en tiempo real, se necesita que la comunicación entre dispositivos sea rápida y segura. 

En DECENTER hemos trabajado a varios niveles: 

  1. El EDGE. Aquí no te hace falta internet para comunicarte con otro dispositivo y se considera un nivel mucho más rápido en cuanto a comunicaciones que el cloud.
  2. El cloud. Aquí sí que hace falta una conexión a internet para acceder a los servidores y normalmente se asume que es más lento que el EDGE. 

Por tanto, en general las comunicaciones es el gran challenge tecnológico que tiene esta metodología. Aquí cabría también hablar del 5G, que es otro campo en el que Robotnik está participando activamente en otros proyectos. 

 

5. Qué casos de uso han tenido más repercusión o qué sectores han mostrado interés en los avances de DECENTER?

DECENTER tiene que ver sobre todo con el procesamiento de datos, su rapidez en transmisión de datos y capacidad de computación de los mismos. Recursos computacionales. 

Todos los proyectos tienen un desarrollo en el que siempre se definen unos casos de uso para demostrar que el desarrollo es aplicable a aplicaciones reales. Al final, hay que demostrar en qué áreas de interés va a funcionar lo que se desarrolla durante el proyecto.

En nuestro caso de uso en DECENTER, los stakeholders son cualquiera que emplee robótica de logística.

Puede ser interesante para cualquier gestión de almacenes tanto por el ahorro que va a suponer para la empresa como por el salto tecnológico y productivo. 

Durante el piloto de DECENTER se probó con el RB-1 BASE, dando resultados muy atractivos. Ahora no tengo robots individuales, sino que tengo una flota de ordenadores que se ‘ayudan’ entre sí para optimizar los procesos, no sólo desde un punto de vista físico, sino sobre todo desde el procesamiento de datos y la ejecución de cada uno de ellos: si uno de tus robots se está parado cargando, puedes utilizar la computación o pc de ese robot para procesar datos del robot que sí está moviendo.

 


dissasembly area

Como usar MoveIT para desarrollar una aplicación de manipulación robótica

El proyecto HR-Recycler, financiado por la Comisión Europea, tiene como objetivo desarrollar un entorno híbrido de colaboración humano-robot para el reciclaje de residuos electrónicos. Humanos y robots trabajarán de forma colaborativa compartiendo diversas actividades de manipulación. Una de estas tareas tiene lugar en el área de desmontaje, donde los residuos electrónicos se desmontan y sus componentes se clasifican por tipo en cajas. 

Una plataforma sencilla para aplicaciones de manipulación robótica

Para agilizar la tarea de clasificación de componentes, Robotnik está desarrollando el robot manipulador móvil RB-KAIROS encargado de coger las cajas con componentes electrónicos de las mesas de trabajo y transportarlas hasta su destino final o hasta la próxima estación de procesamiento. MoveIt es una plataforma de desarrollo de aplicaciones de manipulación robótica de código abierto, que permite desarrollar aplicaciones complejas de forma sencilla usando ROS. 

Este post expone brevemente cómo Robotnik ha utilizado MoveIt para el desarrollo de una aplicación de manipulación que se puede integrar en el robot RB-KAIROS.

Características y ventajas de usar MoveIt

A medida que se iban probando las funcionalidades de MoveIt, se puso de manifiesto lo útil que era, en las etapas iniciales del proceso, desarrollar una aplicación de manipulación robótica. Ayudó a decidir el diseño del entorno de trabajo, a determinar si el robot era capaz de desempeñar las actividades de manipulación necesarias en ese entorno de trabajo y si no era así, a modificar el entorno para conseguir el mejor desempeño.

Diseño del entorno de trabajo en MoveIt

MoveIt permite crear y simular el entorno de trabajo del robot utilizando objetos de malla 3D diseñados en cualquier programa CAD, permitiendo además la interacción entre el robot y este entorno de trabajo. 

Con MoveIt se puede planificar el movimiento del robot a cualquier posición teniendo en cuenta la situación actual de los objetos presentes en el entorno, evitando así colisiones. Pero lo más interesante es que no sólo planifica la trayectoria evitando los obstáculos, si no que además  permite interactuar con los objetos del entorno, pudiendo coger cualquier objeto del entorno e incluirlo como si fuera parte del robot a la hora de planificar la trayectoria a la posición deseada. Cualquier objeto de colisión de MoveIt puede vincularse al eslabón (link) del robot que se desee, una vez vinculados se moverán conjuntamente.

Figure 2: Planificación de escena con objetos de colisión (verde) y objetos adjuntos (violeta).

Esta herramienta ayudó a resolver desde el primer momento ciertas dudas: si el manipulador móvil era capaz de coger cajas desde una mesa con una cierta altura, a qué distancia de la mesa deberíamos colocarnos para poder coger las cajas correctamente, si había el suficiente espacio para que el robot pudiera mover el brazo y así llevar a cabo las acciones de manipulación necesarias. También sirvió para diseñar las cajas que el robot debe manipular, de forma que tuvieran un tamaño y forma adecuados para encajar en el reducido espacio disponible en el entorno de trabajo y para permitir la correcta ejecución de las tareas de manipulación. 

Planificación de movimientos con MoveIt

MoveIt incluye varias herramientas que permiten adaptar el algoritmo de planificación de  movimientos para alcanzar la posición del robot deseada usando criterios personalizables y así obtener el mejor desempeño para tu aplicación. Esto es muy útil ya que permite restringir los movimientos que el robot puede realizar para moverse de una posición a otra, que en una aplicación como la desarrollada, con un espacio de trabajo reducido donde el robot debe manipular objetos en un entorno compartido con humanos, es muy importante.

Figure 3: Planificación de la meta deseada teniendo en cuenta las colisiones con la escena.

Un requerimiento de movimiento importante es mantener las cajas paralelas al suelo al transportarlas ya que estas están llenas de componentes electrónicos a reciclar. Planificar con restricciones de movimiento es fácil en Moveit.

MoveIt permite aplicar diferentes restricciones de movimiento, las que han resultado más útiles para nuestra aplicación son las restricciones de orientación y articulación. 

  • Las restricciones de orientación:  ayudan a fijar la orientación deseada de cualquier eslabón (link) del robot. Son muy útiles cuando se desea mantener el extremo final del brazo manipulador del robot (end-effector) paralelo al suelo. En este caso sirve para mantener el end_effector, que es donde se encuentra la herramienta de succión para coger las cajas,  paralela al suelo.
  • Las restricciones de articulación: son útiles para limitar la posición de cualquier articulación del robot a un rango determinado. Y también lo son cuando se desea controlar la posición relativa de las articulaciones del robot durante el movimiento, manteniendo siempre una forma determinada. En este caso, permitió definir la posición entre el codo y hombro del brazo robótico, de forma que los movimientos que se ejecutan son más naturales y, además, se evitan configuraciones que pueden ser potencialmente peligrosas.

 

Figure 4:  Planificación de movimiento con restricciones de articulación y orientación vs sin.

Otra configuración que se puede realizar con MoveIt es modificar el algoritmo de planificación y  usar durante la planificación una configuración de espacio cartesiano o de espacio articulaciones a la hora de representar el problema de planificación que se debe optimizar.  Se puede intercambiar entre los dos espacios según la trayectoria final que se desee obtener.

  • Planificación en el espacio cartesiano (movimientos cartesianos): se utiliza cuando se desea seguir una trayectoria muy precisa con el extremo final del brazo (end-effector) donde se encuentra la herramienta. En este caso, usamos esta configuración al movernos desde la posición de aproximación a la caja hasta la posición de coger la caja y al revés. Debido a que el robot manipulador móvil debe cargar las cajas en su espalda para transportarlas, el espacio que existe es reducido y, por tanto, las cajas deben ir muy próximas, intentando evitar su deslizamiento durante el transporte y encajándose  dentro de unas bandejas. Usando una trayectoria calculada en espacio cartesiano queda asegurado que las cajas se elevan de forma totalmente vertical, evitando así enganches entre cajas y parones innecesarios, además de lograr que las cajas se queden exactamente dentro de las bandejas.
  • Planificación en el espacio de articulaciones: se utiliza habitualmente ya que permite obtener trayectorias mucho más naturales y fluidas. En este caso, se utilizó para mover el brazo de forma fluida entre diferentes posiciones que no tienen requerimientos muy estrictos de posición.

 

Figure 5: Motion Planning en espacio Cartesian vs espacio Joint.

Lo que se presenta en este post es solo un pequeño resumen de cómo en Robotnik se ha  usado MoveIt para desarrollar una aplicación de manipulación con un brazo robótico preliminar. MoveIt ofrece muchas otras herramientas que permiten desarrollar una aplicación compleja, algunas de las cuales incluyen: la integración de sensores que permiten añadir visión artificial para reconocimiento de objetos en el entorno  que se pueden importar al entorno de MoveIt, o el uso de algoritmos de deep learning para generar poses de agarre de diferentes objetos usando la herramienta instalada en el brazo manipulador.

Estas áreas serán exploradas a medida que avance el proyecto y, del mismo modo, compartidas para dar a conocer las últimas funcionalidades de MoveIt para desarrollar una aplicación de manipulación con brazo robótico.

A continuación puede ver un corto vídeo con una demostración de la situación actual de la aplicación de manipulación desarrollada instalada en un RB-KAIROS de Robotnik.

https://www.youtube.com/watch?v=JgyDB57xjDw