¿Cómo se calibran los sistemas de visión para trabajar con robots industriales?
Tiempo de lectura: 6 minutosPara un robot al igual que para un ser humano, un aspecto importante para la compresión del mundo que nos rodea es la visión. Es necesario calibrar los robots y los sistemas de visión en conjunto y así poder traducir de coordenadas visión a coordenadas mundo.
Introducción
Si analizamos el mercado tecnológico industrial, podemos observar que la inversión y la investigación en el campo de la robótica no ha dejado de crecer en la última década, siendo uno de los campos con mayor proyección para los años venideros en diferentes industrias incluyendo la industria médica, manufacturera, logística, automoción, retail, agroalimentación, entre muchas otras. Algunos ejemplos de aplicaciones como recolección de fruta, despaletizado inteligente, recogida de piezas de contenedores, robots cocineros, robots capaces de manipular explosivos, robots para asistencia en el quirófano y sin olvidar los famosos perritos Spot o el robot saltarín Atlas de Boston Dynamics capaz de levantarse de una caída de forma casi natural e incluso el polémico Sophia de Hanson Robotics, que fue el primer robot que con apariencia humana.
Cuando hablamos de robótica industrial, nos referimos a un campo de la ingeniería que se ocupa de la definición, el desarrollo, la fabricación y la instalación de robots que ayudan a automatizar el trabajo de las personas dentro de la industria, realizando las tareas de manera más rápida, más precisa, sin descanso y evitando el peligro para los operarios. Esto implica que ciertos puestos de trabajo, sobre todo aquellas faenas repetitivas, actualmente pasan a tener poco valor añadido y se requiere de personal más cualificado capaz de trabajar en colaboración persona-robot. Este aspecto es un tema muy controvertido y ha dado mucho de qué hablar tanto para partidarios como para detractores.
La automatización y la robótica fueron parte fundamental de la cuarta revolución industrial, ya que gracias a estas dos tecnologías se pudieron incrementar y mejorar muchos procesos de producción que se realizaban manualmente. Hoy en día podemos encontrar muchos plantas y almacenes inteligentes donde la gran mayoría de procesos son realizados por brazos robóticos, agv, drones, maquinas, manipuladores, cobots, entre otros.
Visión artificial aplicada a la robótica industrial
Para un robot al igual que para un ser humano, un aspecto importante para la compresión del mundo que nos rodea es la visión. Desde hace décadas, se trabaja en este campo para dar ojos a las máquinas para ayudarlas a identificar que coger y donde, evitar obstáculos, reconocer patrones, objetos y/o personas, para tomar decisiones basadas en el procesamiento de las imágenes de qué o cómo actuar. Para todo ello, uno de los factores importantes en muchas aplicaciones es que el sistema de visión sea capaz de traducir algo que para nosotros es innato que es la posición de las cosas de nuestro entorno en el mundo real. Para ello, es necesario calibrar los robots y los sistemas de visión en conjunto y así poder traducir de coordenadas visión a coordenadas mundo.
Hay que tener en cuenta que existen multitud de dispositivos y tecnologías diferentes de adquisición de imágenes, pero que en general y obviando ciertos sensores, podemos agrupar en dos grandes familias que serían sistemas de visión 2D o sistemas de visión 3D donde la diferencia fundamental es la imagen o datos resultantes de una adquisición. El sistema 2D entrega una imagen monocromo o color que representa una escena proyectada en un plano con coordenadas x, y, donde cada píxel de la matriz equivale al nivel de intensidad lumínica captada por el sensor en ese píxel, mientras que un sistema 3D devuelve habitualmente una nube de puntos que representa la superficie detectada, donde cada uno de los puntos equivale a una coordenada x, y, z. A pesar de que con un sistema 2D somos capaces de obtener mediante diferentes técnicas de homografía la posición o pose 3D de los objetos proyectados en la imagen, en este articulo nos vamos a centrar en explicar cómo se calibra de forma generalizada un sistema robot cámara 2D y un sistema robot cámara 3D.
En primer lugar, hay que diferenciar entre dos modos de trabajo conocidos como eye to hand, donde la cámara se encuentra ubicada en una posición fija, o eye in hand donde la cámara está embarcada en el robot y por lo tanto puede cambiar su ubicación dependiendo de la posición del robot en el momento de tomar la foto. El proceso de calibración será ligeramente diferente, aunque en ambos casos utilizaremos un patrón de calibración conocido para poder estimar las poses del target y así poder calibrar nuestro sistema.
Otro punto importante es el sensor de adquisición, ya que un sistema 3D habitualmente viene calibrado de fábrica y un sistema 2D no, debido a que la distancia de trabajo, la óptica y el campo de visión pueden variar según la aplicación. Por este motivo el primer paso en los sistemas no calibrados será realizar el proceso de lo que se conoce como calibración intrínseca, que se refiere a la calibración del propio sistema de adquisición. Los software o librerías de visión por computador acostumbran a tener métodos para realizar esta tarea de una forma muy sencilla.
El proceso consiste en utilizar el patrón de calibración conocido, obteniendo imágenes desde diferentes posiciones y angulaciones de este para poder realizar un proceso que nos permitirá determinar una relación precisa entre un punto 3D en el mundo real y su correspondiente proyección 2D.
El proceso de calibración devolverá parámetros internos del sistema cámara-lente como distancia focal, centro óptico y los coeficientes de distorsión radial de la lente definidos por la siguiente ecuación.
Este último aspecto es importante ya que las lentes, a excepción de las lentes telecéntricas, introducen una aberración en la imagen que puede ser mayor o menor dependiendo del tipo de lente, la distancia focal y la calidad de esta.
Esta distorsión afecta sobre todo en los extremos de la imagen haciendo por un lado que no veamos la proyección del objeto o escena de forma perfectamente perpendicular como si pasa con las ópticas telecéntricas y por otro lado que la relación entre píxel-milímetro no sea equidistante, sino que el error es mayor a medida que nos acercamos a los extremos. Al realizar la calibración intrínseca, seremos capaces corregir la imagen para disminuir la aberración introducida por el sistema óptico.
Una vez realizado este proceso, seremos capaces dado un punto en la imagen de encontrar su correspondencia en el mundo real respecto al sistema de coordenadas en base cámara. En el caso de los sistemas 3D obtendremos la coordenada x, y, z del mundo real directamente ya que existe una correlación entre la imagen 2D y la nube de puntos, mientras que en los sistemas 2D, al ser un sistema lineal en el que podemos proyectar planos paralelos, necesitaremos conocer o calcular la distancia Z del punto para poder obtener la x, y.
Por otro lado, como el objetivo es poder dar un punto en el espacio para que el robot pueda localizarlo, es necesario crear un sistema de coordenadas en base robot-cámara. Este proceso se realiza mediante la calibración extrínseca con la que obtendremos una matriz de rotación y traslación, de manera que seremos capaces de traducir la coordenada obtenida en base cámara a base robot-cámara mediante la siguiente ecuación.
Finalmente, con nuestro sistema estará calibrado seremos capaces de realizar multitud de aplicaciones diferentes donde el sistema cámara robot hablara el mismo idioma y por lo tanto habremos dado un primer paso en darle a las maquinas uno de nuestros sentidos más preciados que es la visión.
Escrito por Sergio Redondo Cabanillas, R&D Manager en Grupo Bcnvision.
¿Quieres seguir leyendo blogs sobre visión artificial? haz clic aquí
Conocer soluciones reales de visión
¿Tienes un proyecto y necesitas realizar alguna consulta?
Contacta con Bcnvision.