Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

Comience con las redes de planificación de movimiento

Motion Planning Networks (MPNet) es un enfoque basado en el aprendizaje profundo para encontrar rutas óptimas entre un punto inicial y un punto objetivo en problemas de planificación de movimiento. MPNet es una red neuronal profunda que se puede entrenar en múltiples entornos para aprender rutas óptimas entre varios estados en los entornos. MPNet utiliza este conocimiento previo para generar muestras informadas entre dos estados en un entorno de prueba desconocido. Estas muestras se pueden utilizar con planificadores de movimiento basados ​​en muestreo, como árboles aleatorios de exploración rápida (RRT*) óptimos para la planificación de rutas. Navigation Toolbox™ proporciona funcionalidades para realizar muestreo de espacio de estados basado en MPNet.

El MPNet consta de dos módulos. El primer módulo codifica los entornos del mapa de entrada en una representación compacta utilizando el enfoque de conjunto de puntos básicos de codificación [1]. El tamaño del entorno codificado es menor que el del entorno del mapa real. En el mundo real, los entornos de los mapas son grandes y, a menudo, escasos. Codificar el entorno del mapa antes de usarlo para el entrenamiento reduce la dimensionalidad de los datos de entrenamiento de entrada, disminuye la complejidad computacional y el tiempo necesario para entrenar la red. El entorno codificado debe almacenarse como un objeto binaryOccupancyMap o occupancyMap .

El segundo módulo consta de una red de retroalimentación formada por una capa de entrada de características, capas completamente conectadas, capas de abandono y una capa de salida. La red utiliza la función de activación de unidad lineal rectificada (ReLU) para las capas completamente conectadas y la distancia cuadrática media ponderada como función de pérdida para la capa de salida.

MPNet Architecture

La red de retroalimentación toma el entorno codificado como entrada junto con una pose inicial y una pose objetivo para predecir un siguiente estado que esté más cerca de la pose objetivo. La red de retroalimentación se entrena mediante aprendizaje supervisado mediante el uso de rutas óptimas generadas por planificadores de rutas clásicos como RRT*.

La cantidad de entradas a la capa de entrada de características de MPNet depende del tamaño del entorno codificado además de la cantidad de variables del espacio de estados en el estado inicial y el estado objetivo. En un espacio de estados SE(2), los estados se especifican utilizando tres variables de espacio de estados x, y y θ. Los valores del estado de entrada deben procesarse previamente de manera que:

  • Las entradas de estado a la red deben tener el formato [x y cosθ sinθ].

  • Los valores de las variables del espacio de estados x y y deben normalizarse al rango [0, 1].

Puede utilizar la función mpnetPrepareData para preprocesar el conjunto de datos de entrenamiento.

El número de entradas a la capa de entrada de MPNet es la suma del número de variables del espacio de estados que representan el estado inicial y el estado objetivo y el tamaño del entorno codificado. Para un espacio de estados SE(2), el número de variables de estado dadas como entradas a la red es 4 para cada uno de los estados inicial y objetivo. Si el tamaño del entorno codificado es M por N entonces el número de entradas a la red es (M* N)+8.

Utilice el objeto mpnetSE2 para:

  • Cargue un MPNet previamente entrenado y utilícelo para el muestreo del espacio de estados.

  • Configure un MPNnet no entrenado para entrenarlo en un nuevo conjunto de datos. Luego, utilice el MPNnet entrenado para el muestreo del espacio de estados.

La propiedad Network del objeto mpnetSE2 almacena un MPNet no entrenado que puede configurar para entrenar en un nuevo conjunto de datos. Puede utilizar tanto un entorno de mapa único como varios entornos de mapas para entrenar y probar un MPNet para el muestreo del espacio de estados. Cuando utiliza un entorno de mapa único, el entorno de prueba debe ser el mismo que el entorno utilizado para entrenar MPNet.

Durante la fase de entrenamiento, la red entrena los pesos hasta que se minimiza la pérdida cuadrática media ponderada entre el estado predicho y el estado real (ground-truth).

Durante la fase de simulación y despliegue, el estado inicial especificado en la entrada se considera como el estado actual para la primera iteración. Para iteraciones posteriores, el siguiente estado previsto devuelto por la red se considera como el estado actual. Las iteraciones se repiten hasta que el estado actual alcanza el estado objetivo deseado.

MPNet simulation and deployment phase

Predecir muestras utilizando MPNet previamente entrenado

Navigation Toolbox envía MPNet previamente entrenado como archivos .mat que puede cargar en el espacio de trabajo MATLAB® y usarlo para predicción. Primero, debe almacenar esta red previamente entrenada en la propiedad Network del objeto mpnetSE2 y usar la función predict de forma iterativa para encontrar las muestras. entre un estado inicial y un estado objetivo en el entorno de prueba de entrada.

  • El archivo officeMapTrainedMPNET.mat contiene un MPNet que está entrenado en un entorno de mapa de oficina única para un vehículo Dubins. Para obtener información sobre cómo utilizar este MPNnet previamente entrenado, consulte Predecir muestras de estado utilizando MPNnet entrenado en un solo entorno. En este caso, el entorno de prueba es el mismo que el entorno del tren.

  • El archivo mazeMapTrainedMPNET.mat contiene un MPNet que está entrenado en varios mapas de laberintos generados aleatoriamente de dimensiones específicas. Puede utilizar esta red previamente entrenada para predecir muestras en entornos de prueba conocidos y desconocidos. Sin embargo, el entorno de prueba debe tener la misma distribución de datos que el de los entornos utilizados para entrenar la red. Para obtener información sobre cómo utilizar este MPNet previamente entrenado, consulte Predecir muestras de estado utilizando MPNnet entrenado en múltiples entornos.

Entrene MPNet desde cero

Puede entrenar un MPNnet desde cero en un nuevo conjunto de datos utilizando la función trainnet (Deep Learning Toolbox) . Utilice el objeto trainingOptions (Deep Learning Toolbox) para especificar los hiperparámetros para entrenar la red.

En el caso de un entorno de mapa único, debe utilizar un mapa fijo para entrenar y probar la red. Además, utilice la pérdida de entrenamiento para evaluar la precisión de la red. Para obtener información sobre cómo entrenar MPNet en un entorno de mapa único, consulte Entrene MPNet en un entorno de mapa único.

Si entrena MPNet en un gran conjunto de datos de entrenamiento creado utilizando múltiples entornos de mapas, debe calcular tanto la pérdida de entrenamiento como la pérdida de validación para ajustar la precisión de la red. Para obtener información sobre cómo entrenar MPNet en múltiples entornos de mapas para muestreo de espacio de estados, consulte Entrene un muestreador basado en aprendizaje profundo para la planificación del movimiento.

Después de entrenar la red, use la función predict del objeto mpnetSE2 de forma iterativa para encontrar las muestras entre un estado inicial y un estado objetivo en un entorno de prueba. Si tiene ground-truth, puede verificar la precisión de la red calculando la pérdida entre el estado previsto y el estado de ground-truth. Puede utilizar la función loss del objeto mpnetSE2 para calcular la precisión de la red.

Realizar muestreo de espacio de estados utilizando MPNet

Utilice el objeto stateSamplerMPNET para crear un muestreador de estado utilizando un MPNet previamente entrenado. Luego puede usar el método sample del objeto stateSamplerMPNet para calcular las muestras aprendidas.

Los enfoques de muestreo clásicos, como el muestreo uniforme, generan una mayor cantidad de muestras y no todas las muestras generadas pueden tener un impacto en la ruta final. Cuando se utilizan estas muestras con un planificador basado en muestreo, el proceso de planificación se vuelve lento e ineficiente, especialmente para espacios de estados con una gran cantidad de dimensiones. Por otro lado, el muestreo de estado basado en MPNet genera muestras aprendidas que pueden sesgar la ruta hacia la solución óptima. Sin embargo, el muestreo aprendido no puede garantizar la integridad probabilística y la optimización asintótica que sí ofrece el muestreo uniforme. Para garantizar una solución, puede generar muestras aprendidas para un número fijo de iteraciones, después de las cuales puede cambiar al muestreo uniforme. Esta estrategia garantiza una solución óptima, si la solución óptima existe.

Plot comparing samples generated by MPNet state sampling, uniform sampling, and combining MPNet state sampling and uniform sampling

Puede utilizar la propiedad MaxLearnedSamples del objeto stateSamplerMPNET para especificar el número de iteraciones después de las cuales el muestreador de estado de MPNnet calcula muestras utilizando el enfoque de muestreo uniforme.

Para obtener información sobre cómo realizar un muestreo informado utilizando MPNet y comprender el efecto de combinar el muestreo aprendido y el enfoque de muestreo uniforme, consulte Realice muestreos informados con MPNet.

Planificación de movimiento mediante muestreo de estado de MPNnet

Utilice el muestreo de estado de MPNnet con un planificador de rutas para reducir la cantidad de muestras necesarias para encontrar una ruta factible y acelerar la planificación del movimiento. Puede configurar un objeto de muestra de estado de MPNnet y especificarlo como entrada para un planificador de rutas. El planificador de rutas utilizará las muestras devueltas por el muestreador de estado como semillas para encontrar la ruta óptima entre una pose inicial y una meta. Para obtener información sobre cómo utilizar el muestreador de estado de MPNnet para la planificación de movimientos, consulte Muestra de espacio de estados utilizando MPNet previamente entrenado y realización de planificación de movimiento.

El ejemplo Acelere la planificación del movimiento con un muestreador basado en aprendizaje profundo compara el rendimiento del muestreo de estado de MPNnet con el muestreo uniforme utilizando métricas de evaluación como el tiempo de ejecución, la longitud de la ruta y la suavidad.

Consulte también

| | |

Temas relacionados

Referencias

[1] Prokudin, Sergey, Christoph Lassner, and Javier Romero. “Efficient Learning on Point Clouds with Basis Point Sets.” In 2019 IEEE/CVF International Conference on Computer Vision Workshop (ICCVW), 3072–81. Seoul, Korea (South): IEEE, 2019. https://doi.org/10.1109/ICCVW.2019.00370.

[2] Qureshi, Ahmed Hussain, Yinglong Miao, Anthony Simeonov, and Michael C. Yip. “Motion Planning Networks: Bridging the Gap Between Learning-Based and Classical Motion Planners.” IEEE Transactions on Robotics 37, no. 1 (February 2021): 48–66. https://doi.org/10.1109/TRO.2020.3006716.

[3] Qureshi, Ahmed H., and Michael C. Yip. “Deeply Informed Neural Sampling for Robot Motion Planning.” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 6582–88. Madrid: IEEE, 2018. https://doi.org/10.1109/IROS.2018.8593772.