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.
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.
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.
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
mpnetSE2
| stateSamplerMPNET
| stateSamplerGaussian
| stateSamplerUniform
Temas relacionados
- Entrene un muestreador basado en aprendizaje profundo para la planificación del movimiento
- Acelere la planificación del movimiento con un muestreador basado en aprendizaje profundo
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.