Mejora de la navegación del robot utilizando el campo de potencial neuronal / Sudo Null IT News

¡Hola a todos! Mi nombre es Alexey Staroverov, soy investigador del grupo “Agentes encarnados” de AIRI. Mis intereses de investigación incluyen principalmente algoritmos de aprendizaje por refuerzo (RL) y sus aplicaciones a sistemas robóticos. Este año, como parte de la conferencia ICRA 2024, mis colegas de MIPT y yo presentamos artículo sobre el tema de la navegación autónoma de robots móviles, del que me gustaría hablarles.

Introducción

Para que un robot móvil se mueva de forma autónoma, debe poder planificar la trayectoria de su movimiento. A menudo esta planificación se realiza en dos etapas.

En la primera etapa (planificación global), es necesario conectar el principio y el final del movimiento requerido con una línea, de modo que esta línea no toque ningún obstáculo. La línea suele estar rota; en la terminología de planificación se le llama; geométricamente. Un robot real normalmente no puede conducir a lo largo de una línea discontinua; tiene restricciones en el radio de rotación de las ruedas y, en consecuencia, en la curvatura de la trayectoria.

Por lo tanto, se necesita una segunda etapa (planificación local), en la que se suaviza u optimiza la trayectoria. En esta etapa, la trayectoria del movimiento se determina teniendo en cuenta todas las restricciones dinámicas de la película. A menudo, la optimización de la trayectoria se realiza a medida que se mueve: el robot se mueve a lo largo de una trayectoria geométrica y la parte más cercana de esta trayectoria se optimiza teniendo en cuenta los datos de obstáculos más actuales.

Este concepto de optimización en modo de ventana deslizante se denomina control predictivo de modelo en la literatura inglesa. Este término se traduce al ruso de diferentes maneras: “control predictivo de modelos”, “control predictivo de modelos” o incluso “control con modelos predictivos”. Nuestro trabajo está dedicado a una cuestión concreta: ¿cómo tener en cuenta el riesgo de colisión con obstáculos a la hora de optimizar un tramo de trayectoria?

Por ejemplo, puedes agregar un término de penalización a la función de costos de un problema de optimización que se encarga de evitar colisiones con obstáculos. Si consideramos este término como una función matemática separada (se llama repulsivo o potencial repulsivo), entonces podemos decir que forma un campo potencial artificial (Artificial Potential Field, APF).

El gradiente de campo potencial muestra en qué dirección se debe cambiar la trayectoria para hacerla más segura. Esto permite al controlador encontrar el equilibrio adecuado entre la seguridad del camino y la similitud con el camino de referencia. Para poder calcular el gradiente, la función de potencial repulsivo debe ser diferenciable.

Los valores APF en sí son fáciles de calcular: para cualquier punto del mapa dependen de la distancia desde el robot hasta el borde del obstáculo más cercano. Pero hay un problema con las pendientes: la distancia al punto de obstáculo más cercano no es una función diferenciable, se calcula algorítmicamente. Se puede especificar en forma de dicha función para algunos casos simples (por ejemplo, si el robot es redondo y hay pocos obstáculos, y también son redondos), pero si tenemos un robot de forma compleja conduciendo En un mapa arbitrario, resulta difícil encontrar una aproximación analítica de APF.

Campo de potencial neuronal

Para superar esta dificultad, propusimos el modelo Neural Potential Field (NPField), una red neuronal para calcular potenciales artificiales. Nuestro enfoque está inspirado conceptualmente en el modelo. NERF (Campo de Radiancia Neural) desde el campo de la visión artificial. NeRF toma como entrada la posición y orientación de una cámara virtual y devuelve la intensidad de la imagen que dicha cámara capturaría (lo que le permite generar una vista del objeto desde un nuevo ángulo). Nuestro modelo toma como entrada la posición y orientación del robot junto con un mapa de obstáculos y devuelve el valor del potencial repulsivo. En la práctica, sin embargo, es importante para nosotros no obtener estos valores nosotros mismos, sino utilizar su gradiente para la optimización.

El esquema general de nuestro enfoque se muestra en la siguiente figura:

Esquema general del enfoque propuesto.

Esquema general del enfoque propuesto.

La parte superior muestra el diagrama de la red neuronal, la parte inferior muestra el diagrama del controlador, que se utiliza para la planificación de trayectorias. La red neuronal consta de dos partes principales: un bloque de codificadores y una función de potencial neuronal (NPFunction), una subred que calcula el potencial para una posición determinada del robot. A su vez, el controlador consta de dos bloques de alto nivel. El primer bloque (Definición de parámetros) define un conjunto de parámetros para la tarea MPC en función de los datos actuales. Esto se hace una vez por iteración del bucle de control. El segundo bloque (Numerical MPC Solver) realiza una solución numérica del problema de optimización teniendo en cuenta un conjunto determinado de parámetros.

NPField se entrena como una única red neuronal y luego se divide en dos partes. Los codificadores de imágenes están incluidos en el bloque de definición de parámetros y NPFunction está integrado en el solucionador numérico MPC. En cada iteración del controlador, los codificadores se llaman una vez y la función NP se llama y diferencia varias veces durante el proceso de optimización iterativo.

La arquitectura de la red neuronal se muestra con más detalle en la siguiente figura:

Arquitectura de red neuronal propuesta. El componente verde es el codificador de mapas y huellas dactilares del robot, que genera incrustaciones que son constantes para todas las coordenadas dentro del mapa. El componente rojo denota el predictor potencial para coordenadas dadas, que contiene un orden de magnitud menos de parámetros.

Arquitectura de red neuronal propuesta. El componente verde es el codificador de mapas y huellas dactilares del robot, que genera incrustaciones que son constantes para todas las coordenadas dentro del mapa. El componente rojo denota el predictor potencial para coordenadas dadas, que contiene un orden de magnitud menos parámetros.

Datos de entrenamiento

Para el entrenamiento, utilizamos datos que incluían la pose y la forma del robot, un valor de potencial repulsivo de referencia e imágenes de mapas de obstáculos en 2D. Los mapas fueron tomados del conjunto de datos de MovingAI. Para cada mapa, generamos un conjunto de posiciones aleatorias de robots y calculamos valores potenciales de referencia para ellos utilizando el siguiente algoritmo:

  • El mapa de obstáculos se convierte en un mapa de costos:

    ◦ Calcula algorítmicamente la función de distancia con signo (SDF) para cada celda del mapa. SDF es igual a la distancia desde la celda actual hasta el límite del obstáculo más cercano. Es positivo para células con espacio libre y negativo para células con obstáculos.

    ◦ Para cada celda, se calcula el potencial repulsivo: J_o=w_1(π/2+\arctan(w_2−w_2 SDF)). Esta es una función sigmoidea, que tiene valores bajos lejos de obstáculos, tiende asintóticamente a w_1​ dentro de obstáculos y tiene una derivada máxima en el límite del obstáculo.

  • El potencial repulsivo se calcula para cada posición aleatoria del robot dentro del mapa. Para ello, la huella digital del robot se proyecta en el mapa según la pose. El potencial máximo entre las celdas ocupadas por la huella digital del robot se selecciona como potencial repulsivo.

Visualización de un campo potencial para un mapa de un entorno real. Izquierda: mapa con datos reales (los obstáculos están marcados en amarillo); centro: campo de potencial neuronal previsto para la orientación vertical del robot; Derecha: Visualización del SDF calculado algorítmicamente para la orientación vertical del robot.

Visualización de un campo potencial para un mapa de un entorno real. Izquierda: mapa con datos reales (los obstáculos están marcados en amarillo); centro: campo de potencial neuronal previsto para la orientación vertical del robot; Derecha: Visualización del SDF calculado algorítmicamente para la orientación vertical del robot.

Implementación y experimentos.

El módulo de solución numérica MPC se implementa utilizando el marco Acados, que se basa en el marco CasADi de nivel inferior. Estos marcos permiten una resolución altamente eficiente de problemas de optimización no lineal, mientras que la tarea del desarrollador se reduce a codificar correctamente la formulación matemática del problema. Para integrar el modelo de red neuronal NPFunction en el solucionador, utilizamos la biblioteca L4CasADi.

Nuestro planificador local funciona en conjunto con el algoritmo de planificación de rutas Theta*, que genera una ruta geométrica entre el punto inicial y el punto final en forma de polilínea. Vale la pena señalar que Theta* utiliza un modelo simplificado de la forma del robot (un círculo con un diámetro igual al ancho del robot). Este modelo simplificado no garantiza la seguridad de la ruta que proporciona nuestro programador local.

Consideramos que los mapas de obstáculos tienen una resolución de 256×256, donde cada píxel corresponde a 2×2 centímetros del entorno real (es decir, el tamaño del mapa es 5,12×5,12 metros). Para la capacitación, recopilamos un conjunto de datos basado en mapas de ciudades de MovingAI. Incluye 4.000.000 de muestras extraídas de 200 tarjetas de robot de dos formas diferentes. Ambos robots corresponden a un brazo móvil Husky UGV real con un brazo robótico UR5. En el primer caso, el robot se mueve en el espacio con el manipulador plegado, en el segundo, con el manipulador extendido. Para cada tarjeta con cada robot se generaron 10.000 posiciones aleatorias. La generación del conjunto de datos tardó 40 horas en un procesador Intel Core i5–10 400F.

Un procedimiento de optimización en nuestra implementación tarda entre 60 y 70 ms, de los cuales la codificación de parámetros representa aproximadamente 10 ms, y el trabajo del solucionador Acados tarda entre 50 y 60 ms restantes. Vale la pena señalar que el solucionador de Acados necesita “calentarse” antes de usarse en tiempo real: la primera ejecución del procedimiento de optimización puede tardar aproximadamente un segundo; después de esto, el solucionador funciona más rápido.

En la parte superior izquierda de la figura siguiente se muestra un ejemplo de una trayectoria generada por nuestro planificador. Durante la optimización, la trayectoria geométrica en forma de línea se convierte en una trayectoria suave y segura. Inicialmente, el robot se aleja del obstáculo y se desvía de la trayectoria global, luego regresa suavemente a él y alcanza la posición objetivo.

Escenario de ejemplo para la planificación local. Izquierda: trayectoria de NPField. Derecha: trayectoria CIAO, otro algoritmo popular. Abajo: curvas de trayectoria de NPField para diferentes huellas dactilares de robots.

Escenario de ejemplo para la planificación local. Izquierda: trayectoria de NPField. A la derecha está la trayectoria de CIAO, otro algoritmo popular. Abajo: curvas de trayectoria de NPField para diferentes huellas dactilares de robots.

La parte inferior de la figura muestra la diferencia entre los resultados de optimización para un robot con el brazo plegado y extendido. El robot primero se mueve hacia una pared plana, luego gira y se mueve paralelo a ella. En este caso, el robot con el brazo extendido gira un poco más tarde que el robot con el brazo plegado. La curva amarilla corresponde a la trayectoria del robot con el manipulador extendido y la curva verde, con el manipulador plegado. El resultado muestra que el modelo aprende diferentes propiedades de las dos huellas dactilares, lo que es útil para una planificación de trayectorias más segura.

Comparamos las trayectorias de NPField con el algoritmo de optimización de trayectorias CIAO de referencia, que se basa en una aproximación convexa del espacio libre alrededor del robot. La trayectoria generada por CIAO se muestra en la parte superior derecha de la figura. Se puede ver que el robot casi toca los bordes de los obstáculos. Cuando se probó en escenarios más variados, la CIAO no logró encontrar un camino válido en casi la mitad de los casos. Esto puede deberse al hecho de que CIAO implementa la prevención de colisiones como un conjunto de desigualdades que no se diferencian durante la optimización. Por lo tanto, sólo verifica la existencia de una colisión en lugar de intentar equilibrar la seguridad y la desviación de la trayectoria como una función de costo.

Comparamos nuestro algoritmo con líneas de base en 20 escenarios utilizando el marco BenchMR. Los desafíos implican pasar por pasajes estrechos similares a los que se muestran en la imagen de arriba. Comparamos las métricas estándar del marco: tiempo de planificación, longitud del camino, suavidad del camino (suavidad) y ángulo sobre longitud. Todas las métricas se interpretan según el principio de “menos es mejor”.

Los resultados se muestran en la siguiente tabla:

Comparamos nuestra pila (Theta* + NPField) con algoritmos de programación populares: RRT, RRT*, Informed RRT, SBL y RRT + GRIPS. Además, la tabla no muestra resultados para PRM, Theta* + CIAO y Theta* + CHOMP, ya que estos algoritmos pudieron encontrar una ruta para menos de la mitad de los problemas. Este resultado es especialmente importante para Theta* + CIAO y Theta* + CHOMP, ya que son programadores basados ​​en optimización similares a nuestro enfoque y utilizan las mismas rutas geométricas. Sin embargo, no pudieron hacer frente a los escenarios considerados debido a colisiones (CHOMP) o incapacidad para encontrar el resultado (CIAO).

Los resultados de la tabla muestran que nuestra pila es generalmente comparable a otros programadores. Proporciona casi la longitud de ruta más corta, la mejor suavidad, un buen AOL, un buen tiempo de cálculo y una buena distancia de seguridad. No podemos señalar un enfoque que sea definitivamente mejor que el nuestro (RRT con GRIPS es rápido y seguro, pero produce trayectorias menos suaves).

Implementamos nuestro enfoque en un manipulador móvil Husky UGV real como un módulo ROS para la planificación local y el control MPC que funciona con el programador global Theta*. El escenario de prueba implica conducir a través de un corredor sinuoso. El manipulador sostiene el objeto desplegado, por lo que su forma es más alargada de lo habitual. Durante nuestro experimento, el robot recorrió con éxito un camino de 15 metros que incluía tres curvas y un pasaje estrecho.

Manipulador móvil Husky que transporta un sombrero. Para esta tarea se puede utilizar una huella robótica con un brazo extendido.

Manipulador móvil Husky que transporta un sombrero. Para esta tarea se puede utilizar una huella robótica con un brazo extendido.

Y a continuación puedes ver cómo recorre la ruta.

Conclusión

Estamos muy satisfechos con nuestro resultado: parece que el potencial neuronal es capaz de producir la mejor planificación. Sin embargo, esto es sólo el comienzo, porque tres curvas y un pasaje estrecho difícilmente pueden considerarse un obstáculo difícil.

Por delante nos esperan entornos más complejos. En primer lugar, se trata de incluir las diferencias de elevación en el mapa; para tenerlas en cuenta será necesario un nuevo algoritmo. La codificación de huellas dactilares también requiere desarrollo. Esto será útil si el operador de telefonía móvil controla todo el cuerpo y su huella digital se puede cambiar.

¡Espero que nuestra experiencia te haya resultado útil e interesante!

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *