Implementación de un algoritmo de localización y mapeo simultáneo denso en una arquitectura SoC.

Project: Research

Project Details

Description

Planteamiento del Problema: Uno de los objetivos de la robótica de servicio es mejorar la calidad de vida de los seres humanos [1[2 asumiendo tareas repetitivas [3[4, en algunos casos peligrosas [5, o cuando se requiere mano de obra [6. Los robots de servicio [1 son máquinas que pueden moverse en su espacio de trabajo con algún grado de autonomía dependiendo de su programación. Generalmente, los robots de servicio deben interactuar y/o navegar en ambientes diseñados por y para seres humanos, y por tanto, requieren un alto grado de autonomía para desarrollar la o las tareas para las cuales han sido creados. El tema de cubrimiento y la exploración con entidades robóticas ha sido abordado desde distintas ópticas en proyectos de investigación alrededor del mundo, arrojando como resultado incluso robots funcionales de exploración como es el caso de las sondas espaciales enviadas a otros planetas [33. La exploración de áreas y terrenos no modelados, y así mismo la ejecución de tareas complejas en un ambiente desconocido o parcialmente estructurado, es para un robot autónomo un trabajo supremamente complejo, dada la naturaleza de los algoritmos y niveles de razonamiento y de inteligencia con que se dota a los autómatas. Sin embargo, la posibilidad de tener plataformas robóticas capaces de explorar estos espacios se hace cada vez más una necesidad fundamental en el desarrollo de robots móviles [34. En particular, la navegación sobre un entorno es una tarea que implica un alto grado de autonomía para un robot. Cuando se habla de exploración o cubrimiento, se pueden entender dos metas principales: hacer la construcción incremental del área de exploración - por ejemplo, en búsqueda de minas antipersonales - mientras que en otros, solo se requiere un modelo aproximado pero suficiente del terreno (exploración planetaria o navegación) [35. Sin embargo, en ambas situaciones se espera minimizar la tasa de repetición de cubrimiento en el terreno y el tiempo de exploración. Dada la diversidad de ambientes, se requiere que la exploración sea confiable, robusta y eficiente. La navegación de robots introduce problemas subyacentes tales como el método de captura de información del ambiente, el modelo de interpretación y representación del ambiente y la localización del robot en el mismo entre otros. Se busca que un robot pueda operar en ambientes diversos, y de esta manera generar una interpretación propia del entorno en el cual se desenvuelve, y no necesitar un modelamiento previo en etapas de programación por parte de su diseñador. Existen métodos que buscan dar solución a este problema tales como los algoritmos de Localización y Mapeo Simultáneo (SLAM por sus siglas en inglés) [7. El problema de SLAM ha sido estudiado desde finales del siglo XX [8[9, llegando a una madurez importante en los fundamentos teóricos, sin embargo, la comunidad científica reconoce que no existen suficientes estudios que profundicen en implementaciones prácticas [10[28. Contrario a métodos de localización donde se hace necesario la intervención del entorno con marcadores o faros, SLAM permite al robot entender la estructura del ambiente que lo rodea y su localización en el mismo utilizando únicamente sensores embarcados. Los algoritmos de SLAM presentan un problema no lineal de naturaleza estocástica [11. La no-linealidad es el resultado de los movimientos de un robot en su entorno. Por otro lado, todo sensor arroja medidas que presentan algún grado de incertidumbre, y por tanto aportan el componente estocástico en SLAM. Es posible asumir distribuciones Gaussianas en el componente estocástico, y de esta manera el problema puede ser atacado mediante soluciones basadas en filtros de Kalman, filtro de partículas o inferencia de grafos, entre otros. Actualmente, el método más utilizado en SLAM para atacar el problema estocástico es la inferencia de grafos utilizando métodos variacionales con mínimos cuadrados [12, ya que permite estimar tanto el vector de estados del robot que incluye la pose actual del robot, un historial de poses y la presentación del medio ambiente, y además permite estimar mapas densos. El método de inferencia de grafos se descompone en dos procesos: pre-procesamiento y optimización. En primer lugar, el pre-procesamiento (front-end, FE), se encarga de la calibración de los sensores, obtener una estimación de odometría y construir el grafo del problema. Finalmente, el bloque de optimización (back-end, BE) se encarga de optimizar el grafo y verificar su consistencia. Tanto el pre-procesamiento como la optimización son procesos que presentan una alta complejidad computacional [13[14. Esta situación ha llevado a que las aplicaciones de SLAM sean implementadas utilizando computadores de altas prestaciones, lo que a su vez ha limitado el uso de SLAM en robots de servicio de tamaño reducido o en aquellas plataformas robóticas con restricciones de consumo de energía y peso como es el caso de los drones aéreos. Una posible solución al problema de la complejidad computacional viene orientada al uso de tecnología de hardware reconfigurable, y en particular los dispositivos field prgrammable gate array (FPGA). Los dispositivos FPGA ha demostrado su eficiencia al ser utilizados en sistemas de alto desempeño tales como co-procesadores [15 [31, odometría de sensores visuales [30 [32, procesamiento digital de señales, imágenes médicas, circuitos integrados de aplicación específica (application-specific integrated circuit - ASIC), prototipado de circuitos de alta complejidad, tarjetas de red de alta velocidad entre otros [16. Un dispositivo FPGA utilizado como co-procesador programado para ejecutar funciones claves en un algoritmo puede acelerar el proceso entre dos y treinta y cinco veces mientras al mismo tiempo reduce el consumo de potencia en un 40% comparado con la adición de un segundo procesador en el mismo chip. La gran ventaja de los dispositivos FPGA es que, a pesar de su relativa baja frecuencia de operación, generalmente entre 10 MHz y 500 MHz, ofreciendo un bajo consumo de potencia, típicamente por debajo de 30 W, mientras que al mismo tiempo permiten una aceleración similar a la alcanzada por procesadores many-core tales como las unidades de procesamiento gráfico (GPU) debido al inherente paralelismo que pueden alcanzar. Adicionalmente, los dispositivos FPGA pueden ser reconfigurados para ejecutar un algoritmo completamente diferente, y en algunos casos para tecnologías más recientes, permiten reconfiguración parcial en tiempo de ejecución, característica que resulta útil en procesos de entrenamiento y optimización. Tales razones han conducido a la implementación de sistemas de cómputo de alta complejidad en FPGAs a costos muy reducidos. Estado del arte: Los algoritmos de SLAM permiten a un robot ubicarse en el entorno a medida que construye el mapa del mismo simultáneamente. SLAM presupone que el robot puede moverse en el entorno y que posee un sensor para tomar medidas del ambiente [9[13[14[28[29. Actualmente, la representación del ambiente más utilizada en navegación de robots, son los mapas de tipo denso [18, tales como los Occupancy Grids (OC) o los Truncated Signed Distance Functions (TSDF). Los mapas densos le permiten al robot identificar aquellos espacios en el entorno que se encuentran ocupados, libres o son desconocidos. Una revisión sistemática y actual de la problemática de SLAM, producto de uno de los autores de la propuesta, se puede consultar en [28. La solución de problema de SLAM más utilizada es llamada Graph SLAM [12[20. Graph SLAM plantea el problema como un modelo probabilístico de grafos (Probabilistic Graphical Model) en el cual se utiliza una red dinámica Bayesiana (DNB) para encontrar las variables aleatorias de interés. De esta manera, Graph SLAM determina el historial de poses del robot, con lo cual es posible a su vez calcular el mapa denso mediante métodos tales como TSDF discutido en [21 y [22. Existe escases de trabajos que reporten la implementación de algoritmos de SLAM en plataformas SoC. El proyecto Tango de Google [23 era uno de los más prometedores, en donde se implementó un algoritmo de SLAM sobre una arquitectura SoC para aplicaciones de realidad aumentada, sin embargo, la adquisición de medidas profundidad de la escena era lograda mediante sensores activos de luz estructurada, que no funcionaban adecuadamente en exteriores. Google cerró el proyecto a finales del 2017. Por otro lado, Skybotix [24 desarrolló un sistema visual-inercial que, mediante cámaras monoculares en configuración estéreo, permite obtener odometría y construir un grafo que posteriormente es optimizado por un computador de alto desempeño. El módulo descrito también ha sido descontinuado, sin embargo, su venta llegó a alcanzar un valor cercano a 4,500 euros. Propuesta de Investigación: El proyecto pretende estudiar maneras eficientes de implementar un algoritmo de SLAM existente en dispositivos de hardware reconfigurable utilizando una arquitectura híbrida System-on-Chip (SoC). En una arquitectura híbrida SoC se integran en un solo chip todos los elementos computacionales necesarios para realizar una tarea específica, incluyendo hardware de lógica reconfigurable (e.g., FPGA) y hardware de computo secuencial (e.g., procesador). En particular, las arquitecturas hibridas SoC incluyen generalmente en un solo chip uno o dos procesadores ARM y una porción reconfigurable en tecnología FPGA. En el mercado existen dispositivos hibridas SoC tales como la Stratix 10 de Altera [17 y la Zynq-7000 de Xilinx [18, posibles candidatos a ser utilizados en el presente proyecto. El proyecto implementará un algoritmo de SLAM denso debidamente probado y caracterizado utilizando sensores de rango. Para la implementación de SLAM en una arquitectura híbrida SoC, es necesario determinar cuidadosamente aquellas partes del algoritmo SLAM que deben ser ejecutadas en un procesador y cuáles de ellas son susceptibles a
StatusFinished
Effective start/end date15/01/1931/01/21

Project funding

  • Internal
  • Vice presidency for Research
  • PONTIFICIA UNIVERSIDAD JAVERIANA