lunes, 26 de septiembre de 2022

Manos robóticas: machine learning y el sentido del tacto en los robots

Cuando hablamos de las áreas de trabajo de la inteligencia artificial en general, y del machine learning en particular, dos campos prominentes son el de la visión artificial ('computer vision') y el reconocimiento de voz (ASR, 'Automatic Speech Recognition') habitualmente seguido de procesamiento de lenguaje natural (NLP, 'Natural Language Processing').

Percepción y emulación de sentidos


De una manera más amplia, y especialmente si nos acercamos a los robots, estas dos áreas de trabajo caen dentro de la percepción, es decir, el procesamiento de información obtenida a partir de sensores y su entendimiento. 

Y una percepción, además, muy orientada a emular de alguna manera los sentidos humanos, en este caso la vista y el oído, bien es cierto que en este caso el oído muy orientado a un caso de uso específico: el tratamiento de la voz humana.

Quizá por ese afán de emular las capacidades humanas, quizá porque realmente puedan ser los sentidos más útiles, una parte muy importante del trabajo en el campo del machine learning orientado a percepción se enfoca en estos dos sentidos: vista y oído.

Pero, en realidad la cosa no acaba aquí.

No estoy seguro si hay trabajo en el campo del gusto, aunque apostaría a que sí, pero lo que no cabe duda es que se trabaja también en el campo del olfato y lo que en este artículo nos va a ocupar: el tacto.


Un tacto básico en robots industriales y de servicio


En realidad, un cierto 'sentido del tacto' está presente desde hace mucho tiempo en aplicaciones robóticas industriales.

Un tacto que se ocupa de detectar cuándo se ha 'tocado' el objeto que se quiere agarrar y manipular. O un tacto basado en sensores de presión que permiten al robot 'ser consciente' de la presión que está ejerciendo sobre el objeto que 'coge' de forma que no lo pueda estropear por un exceso de presión.

Los robots móviles, incluyendo los famosos robots aspiradoras, vienen dotados también de sensores de impacto, para reaccionar cuando chocan, digamos, contra una pared u obstáculo y proceder a detenerse, o cambiar de dirección.

En algunos robots se dispone también de capacidades táctiles más sutiles, como las que proporcionan los sensores capacitivos que detectan contactos muy suaves, incluso, por ejemplo, una caricia.


Un tacto más avanzado. Manos robóticas.


Pero si ahora pensamos en aplicaciones más avanzadas, si nos concentramos, por ejemplo, en robots sociales, humanoides o no, podemos desear un sentido del tacto más avanzado. Y nos gustaría, por ejemplo, dotar a los robots de unas 'manos' que se asemejasen algo más a las humanas, no sólo en su habilidad manipuladora sino también en sus capacidades táctiles.

En el libro 'Cognitive robotics' editado por  Angelo Cangelosi y Minoru Asada, me encuentro una breve descripción de algunas de las líneas de trabajo en este tacto avanzado.

Sensor GelSight
Así, por ejemplo, nos identifica tres tipos de sensores utilizados en manos robóticas:


  • Sensores multicontacto ('multitouch sensors'): es en el fondo, el caso de los sensores de presión que veíamos antes, sensores que detectan una fuerza a lo largo de un eje, típicamente perpendicular a la superficie de contacto.

  • Sensores de tres ejes ('three-axis sensors'): detectan fuerzas tanto de presión como tangentes pero de un solo contacto

  • Sensores de tres ejes multicontacto; que detectan fuerzas de presión y tangentes pero multi-contacto. De este último tipo, el libro nos menciona la existencia de tres realizaciones: uSkin (mide la deformación de la superficie de silicona monitorizando cambios en los campos magnéticos de imanes ligados a esa silicona), Finger Vision (que usa una cámara para medir deformaciones en marcadores fijados a la superficie y que también actúa como sensor de proximidad puesto que usa silicona trasparente) y GelSight (que recubre la superficie de silicona de GelSight con polvo de aluminio que sirve para realzar la deformación de la superficie de silicona).


Sensor Finger Vision
En este tipo de sensores más avanzados, el procesamiento de la señal obtenida se realiza mediante algoritmos de machine learning. Me ha resultado curioso el caso de Finger Vision porque, aunque consigue un sentido del tacto, lo hace en realidad aplicando técnicas de visión artificial con lo que puede reutilizar muchos e los avances de este campo.

En la misma fuente, se nos describen también las cuatro áreas principales de trabajo ahora mismo para este sentido del tacto y estas manos robóticas:


  • Reconocimiento de objetos: Se trata de reconocer un objeto mediante el tacto, el material de que está hecho y sus propiedades. Suele combinar este tacto artificial con visión artificial y, a nivel de entrenamiento, se trabaja con enfoques tanto de aprendizaje supervisado como no supervisado. 

  • Agarre: se ha utilizado para intentar lograr un mejor agarre que el conseguido mediante, simplemente, visión artificial. En algunas de las experiencias en esta faceta se ha utilizado aprendizaje por refuerzo. 

  • Estimación de posición: Se trata de conocer con la mayor exactitud la posición de un objeto que está en 'la mano' del robot. Los métodos tradicionales se suelen basar en visión artificial pero, cuando un objeto está en la mano de un robot, se producen oclusiones que impiden una 'correcta visión'. La combinación, de nuevo, con información táctil, no afectada por las oclusiones, puede ayudar a superar ese problema.

  • Manipulación: todavía un área en desarrollo, donde la manipulación de objetos mediante manos de varios dedos aún está dando sus primeros pasos.


Conclusión


Dedo del robot Vizzy, con cuatro sensores de tres ejes

Aunque algunos de los desarrollos mencionados se encuentra aún en fases preliminares, creo que el tacto robótico tiene un amplio campo de mejora, un campo que, probablemente, pueda incluir el desarrollo de nuevos sensores pero que en este momento, me parece está más en el lado de encontrar algoritmos (casi seguro procedentes del campo del 'machine learning') que sean capaces de procesar y 'entender'  adecuadamente la información recibida de esos sensores.


No hay comentarios:

Publicar un comentario