SPIN (Spatial PerceptIon eNgine): el mundo visto por un robot
Santiago López y Joaquín Bardauil, profes de Frontera de la ciencia y tecnología.
Imaginate la siguiente situación. En un edificio con mucha gente dentro se confirma que hay una bomba. Para desactivarla, se pone en funcionamiento un robot especialmente diseñado para este tipo de casos. Además de ser capaz de llegar hasta la ubicación en donde se encuentre la bomba, el robot debe ser capaz de evitar obstáculos, como por ejemplo mesas o personas que se mueven de un lado a otro; también tendría que planear su toma de decisiones, sus estrategias de navegación y revisar en cada momento si sus estimaciones son correctas para garantizar que lo llevarán al objetivo deseado. ¿Cómo realizar tal enjambre de acciones y cálculos complejos?
En principio, para que un robot pueda operar en un entorno y ejecutar instrucciones complejas, debe identificar tanto propiedades espaciales como también propiedades semánticas. Es decir, lidiar con aspectos de un bajo nivel de abstracción, como calcular distancias con respecto a objetos para no chocarse, pero también tendrá que reconocer conceptos más abstractos como «bomba», «pared» o «persona». De manera resumida podemos decir que «la percepción espacial debería ser capaz de construir una jerarquía de abstracciones consistentes que permitan alimentar tanto el planeamiento del movimiento como de las decisiones».
Por lo general, el esquema puesto a disposición para implementar estos procesos es un conjunto de sensores, que pueden ser cámaras de distinto tipo, junto con técnicas de medición, mapeo y trackeo de objetos y propiedades métricas y topológicas. Hay dos técnicas que, complementadas entre sí, pueden lograr gran parte de este trabajo: SLAM (Simultaneous Localization and Mapping) y VIO (Visual-Inertial Odometry). La primera consiste en la construcción de mapas de entornos desconocidos que van incrementando en riqueza de detalles a medida que el robot realiza tareas de exploración. Mientras que la segunda, se emplea para realizar una estimación de la localización de un robot a partir de la información del entorno que SLAM va construyendo. La aplicación de las dos técnicas se ha extendido a diversos usos, desde los robots que la NASA envía a Marte, como el Rover, y diversos modelos de vehículos autónomos. Ahora bien, si le tuviéramos que pedir tanto a Rover como a algún vehículo autónomo que desactiven una bomba, no podrían hacerlo, y no solo porque carecen de brazos robóticos o articulaciones ágiles, sino porque sus herramientas computacionales no los capacitan para este nivel tan alto de abstracción.
En este marco, hace algunas semanas investigadores del LIDS (Laboratory for Information and Decision Systems) de MIT introdujeron un modelo de visión robótica llamado SPIN (Spatial PerceptIon eNgine), capaz de modelar entornos físicos en múltiples niveles de abstracción definidos a partir de relaciones entre nodos internivel y transnivel. Este sistema opera con Kimera, una librería de código abierto basada en lenguaje C++ y fue testeado en Unity, un entorno de realidad virtual.
Concretamente, los niveles de abstracción con los que opera SPIN son cinco: el primero de ellos, a partir del cual se establecen todos los demás, es “la malla métrico-semántica”, que establece un mapeo del entorno en el cual se identifica todo lo que es estático, diferenciándolo de lo que tiene características dinámicas. En el segundo nivel se identifican los objetos y los agentes; para cada objeto que se reconoce, se asigna un prototipo correspondiente diseñado con CAD y para cada agente, una composición en 3D que identifica sus movimientos en el espacio. En el tercer nivel se identifican lugares, que son todos los espacios transitables, y las estructuras que son los separadores entre lugares. El cuarto nivel corresponde a las habitaciones (o sea, si se trata de un living, una habitación, una cocina, etc). Y el quinto nivel es el que determinará en qué tipo de edificio se encuentra el robot (si se trata de un hospital, un bar o un shopping, etc.).
Lo nuevo de SPIN es que opera en entornos 3D dinámicos, y asigna categorías semánticas complejas, integrando toda una serie herramientas preexistentes, llevándolas a todas un pequeño paso más allá. Eso sí, computacionalmente, es caro y su aplicación en agentes robóticos reales será todo un desafío.
Santiago López y Joaquín Bardauil.