Conducción autónoma: descripción general de la planificación de rutas

Este blog comienza con algunos algoritmos comunes de planificación de rutas globales y locales, y presenta sus principios de funcionamiento, ventajas y desventajas.

planificación de ruta global

Tomando el mapa global, el punto inicial y el punto final como entrada, y la trayectoria global como salida, se planifica un camino libre de colisiones, más corto y más suave.

algoritmo de dijkstra

El algoritmo de Dijkstra es un algoritmo clásico para la búsqueda de la ruta más corta en gráficos, propuesto por el informático holandés Edsger W. Dijkstra en 1956. Se utiliza ampliamente en enrutamiento de redes, navegación de mapas, planificación de transporte y otros campos. El algoritmo de Dijkstra resuelve el problema encontrando el camino más corto desde un nodo inicial hasta todos los demás nodos.

principio

  1. Inicialización: seleccione un nodo inicial, establezca la distancia del nodo inicial en 0 y establezca la distancia de todos los demás nodos en infinito.
  2. Seleccionar el nodo más cercano: seleccione el nodo más cercano al nodo inicial entre los nodos sin procesar. Inicialmente, este nodo es el nodo inicial.
  3. Actualizar distancia: para el nodo seleccionado, calcule la distancia desde el nodo inicial hasta su nodo vecino a través de él. Si la distancia al nodo vecino a través del nodo seleccionado es menor que la distancia actual del nodo vecino, actualice la distancia del nodo vecino a la distancia recién calculada.
  4. Marcar como procesado: marca el nodo seleccionado como procesado, lo que indica que se ha encontrado la ruta más corta desde el nodo inicial.
  5. Repita los pasos 2 a 4: repita el proceso de seleccionar el nodo más cercano, actualizar la distancia y marcarlo como procesado hasta que se procesen todos los nodos o se procese el nodo de destino.
  6. Retroceso de ruta: una vez que se procesa el nodo de destino, se puede construir la ruta más corta retrocediendo desde el nodo de destino hasta el nodo inicial.

ventaja

  • Garantice la solución óptima: el algoritmo de Dijkstra garantiza que la ruta encontrada sea la más corta desde el nodo inicial hasta el nodo objetivo, siempre que los pesos de todos los bordes no sean negativos.
  • Adecuado para problemas de ruta más corta de fuente única: el algoritmo de Dijkstra se usa a menudo para resolver problemas de ruta más corta de fuente única, es decir, la ruta más corta desde un nodo inicial a todos los demás nodos.
  • Fácil de entender e implementar: la lógica del algoritmo es relativamente simple y fácil de entender e implementar.

defecto

  • No se pueden manejar bordes de peso negativos: el algoritmo de Dijkstra no puede manejar gráficos con bordes de peso negativos porque su principio de funcionamiento se basa en reducir continuamente la distancia entre nodos, y los bordes de peso negativos pueden conducir a bucles infinitos.
  • No apto para gráficos a gran escala: en gráficos a gran escala, la complejidad computacional del algoritmo de Dijkstra es alta y puede no ser adecuado para aplicaciones en tiempo real.

Un algoritmo*

Un algoritmo (algoritmo de estrella A) es un algoritmo de búsqueda heurística que se utiliza para encontrar el camino más corto desde el punto de partida hasta el punto de destino en problemas de gráficos o de tipo gráfico. Este algoritmo combina las propiedades de la ruta más corta del algoritmo de Dijkstra y las ventajas de la búsqueda heurística, y se usa ampliamente en la planificación de rutas, la IA de juegos, la navegación de robots, la planificación de rutas de mapas y otros campos.

principio

  1. Inicialización: seleccione un nodo inicial, establezca el costo del nodo inicial en 0 y colóquelo en una lista de nodos para explorar. Al mismo tiempo, se registra un costo estimado para el nodo objetivo para cada nodo, generalmente estimado mediante una función heurística.
  2. Seleccionar nodo: seleccione un nodo de la lista de nodos a explorar, generalmente el nodo con el costo total más pequeño (costo real más costo estimado). Inicialmente, el nodo inicial es el único candidato.
  3. Expandir nodo: para el nodo seleccionado, recorra sus nodos vecinos. Calcule el costo real desde el nodo inicial hasta el nodo vecino hasta el nodo actual y agregue el costo estimado desde el nodo vecino al nodo de destino. Si este costo total es menor que el costo total actual del nodo vecino, actualice el costo total del nodo vecino y establezca el nodo actual como el nodo principal del nodo vecino.
  4. Marcar nodo: marca el nodo seleccionado como explorado y elimínalo de la lista de nodos a explorar.
  5. Repita los pasos 2 a 4: repita el proceso de seleccionar, expandir y marcar nodos hasta que encuentre el nodo de destino o la lista de nodos a explorar esté vacía.
  6. Retroceso de ruta: una vez que se encuentra el nodo de destino, se puede construir la ruta más corta retrocediendo desde el nodo de destino hasta el nodo inicial.

ventaja

  • (Condicional) Garantizar una solución óptima: el algoritmo A* garantiza que la ruta encontrada sea la ruta más corta desde el nodo inicial hasta el nodo objetivo, siempre que la función heurística satisfaga ciertas condiciones (llamadas "consistencia" o "monotonicidad").
  • Eficiencia: el algoritmo A* es generalmente más rápido que el algoritmo puro de Dijkstra debido a su capacidad para guiar la búsqueda a través de funciones heurísticas, lo que reduce la expansión innecesaria de nodos.
  • Amplia aplicabilidad: el algoritmo A* es adecuado para diversos problemas, incluida la planificación de rutas, la IA de juegos, la navegación de robots y la planificación de rutas de mapas, etc.

defecto

  • Selección de función heurística: el rendimiento del algoritmo A* depende en gran medida de la función heurística seleccionada. La elección de una función heurística inapropiada puede dar como resultado un algoritmo inexacto o ineficiente.

  • Requisitos de almacenamiento: el algoritmo A* necesita almacenar y administrar la lista de nodos a explorar y puede requerir más memoria para problemas a gran escala.

Algoritmo RRT (árbol de exploración rápida aleatoria)

RRT (árbol de exploración rápida aleatoria) es un algoritmo de muestreo aleatorio para la planificación de rutas, propuesto originalmente por Steven M. LaValle en 1998. RRT tiene como objetivo resolver el problema de planificación del movimiento de robots u otros agentes autónomos para que puedan encontrar caminos efectivos en entornos desconocidos o complejos.

principio

  1. Inicialización: comenzando desde el punto de partida, cree un árbol que contenga solo el punto de partida.
  2. Muestreo aleatorio: genera aleatoriamente un punto en el espacio del mapa, que suele ser aleatorio, pero también se puede considerar el conocimiento previo del entorno.
  3. Conéctese al árbol: busque el nodo en el árbol más cercano al punto de muestreo y luego genere un borde desde este nodo hasta el punto de muestreo. La generación de este borde suele seguir algunas reglas, como un límite de distancia máxima, para garantizar que el árbol no se expanda demasiado rápido.
  4. Repita: repita los pasos 2 y 3 hasta que parte del árbol de expansión esté cerca del área objetivo. En cada paso, RRT agrega un nuevo nodo y un nuevo borde al árbol para expandir gradualmente el espacio de búsqueda.
  5. Conectarse al objetivo: una vez que una parte del árbol está cerca del punto de destino, se puede encontrar una ruta en el árbol para conectarse desde el punto de partida hasta el punto de destino.
  6. Optimización de ruta (opcional): la ruta generada se puede optimizar para mejorar la suavidad y eficiencia de la ruta.

ventaja

  • Adaptable a entornos de alta dimensión: RRT es adecuado para espacios de estados de alta dimensión, por lo que es muy útil para robots o problemas con una gran cantidad de grados de libertad.
  • Diversos caminos: debido a su naturaleza aleatoria, RRT puede generar diversos caminos, lo que ayuda a superar el problema mínimo local.
  • Planificación en tiempo real: la naturaleza incremental de RRT lo hace adecuado para la planificación de rutas en tiempo real, y la ruta se puede volver a planificar mientras el robot está en movimiento.

defecto

  • Incapaz de garantizar la ruta óptima: RRT no necesariamente siempre encuentra la ruta óptima global, sino que se centra más en la exploración rápida y la diversidad del proceso de búsqueda.
  • Velocidad de convergencia incierta: la velocidad de convergencia de RRT depende del muestreo aleatorio y de las reglas de crecimiento del árbol, por lo que en algunos casos puede llevar mucho tiempo encontrar un camino adecuado.
  • Modelo de entorno limitado: RRT supone que el robot puede moverse libremente sin considerar restricciones dinámicas, por lo que puede no ser aplicable en algunos casos.

Algoritmo PRM (hoja de ruta probabilística)

PRM (Probabilistic Roadmap) es un algoritmo probabilístico para la planificación de rutas, especialmente adecuado para entornos complejos y de alta dimensión. El algoritmo PRM genera rutas generando aleatoriamente un conjunto de puntos de muestra en el mapa y luego conectando los puntos para construir un gráfico. Los algoritmos PRM se utilizan ampliamente en los campos de la navegación de robots, la planificación de movimientos y los robots autónomos. El siguiente es el principio de funcionamiento básico del algoritmo PRM:

principio

  1. Muestreo: genera aleatoriamente un conjunto de puntos de muestreo en el mapa, que suelen ser ubicaciones a las que el robot puede llegar legalmente. El número y distribución de los puntos de muestreo se puede ajustar según la complejidad y necesidades del problema.
  2. Conecte los puntos de muestreo: para cada punto de muestreo, verifique si hay otros puntos de muestreo cerca y, de ser así, conéctelos para formar un borde. El borde que conecta dos puntos de muestreo suele representar la ruta por la que el robot puede moverse entre los dos puntos.
  3. Verificar la transitabilidad: para los bordes conectados, se realiza una verificación de transitabilidad para garantizar que el camino no se cruce con obstáculos. Si un borde no cumple con los requisitos de accesibilidad, elimínelo.
  4. Búsqueda de ruta: encuentre la ruta más corta en el gráfico generado utilizando algoritmos de búsqueda de ruta estándar como Dijkstra o A*. Los puntos inicial y objetivo generalmente están conectados al punto de muestra más cercano, lo que garantiza que la ruta esté en el gráfico.
  5. Optimización de ruta (opcional): la ruta generada se puede optimizar para mejorar la suavidad y eficiencia de la ruta.

ventaja

  • Adáptese a entornos de alta dimensión: el algoritmo PRM es adecuado para espacios de estados de alta dimensión y es muy útil para robots o problemas con una gran cantidad de grados de libertad.
  • Admite múltiples restricciones de movimiento: el algoritmo PRM puede integrar fácilmente múltiples restricciones de movimiento, como radio de giro mínimo, velocidad máxima, aceleración máxima, etc., para cumplir con los requisitos de movimiento de diferentes robots.
  • Planificación de ruta global: el algoritmo PRM se puede utilizar para la planificación de ruta global para garantizar que se encuentre una ruta que conecte el punto de partida y el punto de destino.
  • Planifique previamente múltiples rutas: al generar un conjunto de puntos de muestreo, el algoritmo PRM puede planificar previamente múltiples rutas para prepararse para emergencias.

defecto

  • Crear una hoja de ruta lleva tiempo: crear una hoja de ruta para un PRM puede requerir un tiempo computacional significativo, especialmente en entornos de alta dimensión.
  • Complejidad de búsqueda de ruta: la complejidad computacional de la fase de búsqueda de ruta depende del tamaño y la forma del gráfico y puede ser mayor en algunos casos.
  • No necesariamente óptimo: es posible que el algoritmo PRM no siempre encuentre la ruta óptima global y su rendimiento depende de la distribución y el número de puntos de muestreo.

planificación de rutas locales

Tomando el mapa local y la información del entorno circundante como entrada y la trayectoria local como salida, se planifica una trayectoria libre de colisiones que cumpla con las restricciones cinemáticas o dinámicas. A menudo se utiliza para evitar colisiones, cumplir con los requisitos de comodidad y otros, y ajustar la ruta en tiempo real según el entorno circundante.

Algoritmo DWA (método de ventana dinámica)

El algoritmo DWA (Dynamic Window Approach) es un método de control en tiempo real para la planificación de trayectorias de robots móviles y la evitación de obstáculos. Los robots lo utilizan habitualmente para evitar colisiones y planificar rutas en tiempo real en entornos dinámicos. El algoritmo DWA es un método de control predictivo de modelos que selecciona la mejor acción generando una serie de posibles trayectorias de movimiento en el espacio de estados del robot y luego evaluando el rendimiento de cada trayectoria.

principio

  1. Modelado del espacio de estados: represente el espacio de estados del robot como una combinación de pose (posición y orientación) y velocidad (velocidad lineal y velocidad angular). Este espacio de estados describe la posición y el movimiento del robot en el entorno.
  2. Generar trayectorias de movimiento: genere una serie de posibles trayectorias de movimiento en el espacio de estados, generalmente mediante muestreo en el espacio de velocidades (velocidad lineal y velocidad angular). Estas trayectorias representan posibles opciones de movimiento para el robot.
  3. Evaluar trayectorias: Para cada trayectoria generada, evalúe su desempeño. La evaluación del desempeño generalmente incluye dos aspectos: si la trayectoria puede alcanzar la posición objetivo (dirigida a un objetivo) y si la trayectoria evita obstáculos (evitación de obstáculos). Estas métricas de evaluación a menudo se basan en modelos predictivos y conciencia ambiental.
  4. Seleccione la mejor acción: Seleccione la trayectoria con mejor rendimiento como siguiente acción del robot. Normalmente, una trayectoria óptima se define como aquella que logra un equilibrio entre la orientación a un objetivo y la evitación de obstáculos.
  5. Controla el robot: realiza acciones seleccionadas y controla el robot para que se mueva. El robot ejecuta el comando de movimiento en la trayectoria actual y luego vuelve a planificar la ruta para el siguiente movimiento.
  6. Actualización en tiempo real: repita los pasos anteriores para lograr la planificación de ruta en tiempo real y evitar obstáculos, actualizando continuamente el movimiento del robot.

ventaja

  • Tiempo real: el algoritmo DWA es adecuado para la planificación del movimiento en tiempo real y puede generar rápidamente una trayectoria que se adapta a los cambios ambientales cuando el robot se mueve.
  • Adaptabilidad: debido a la naturaleza en tiempo real del algoritmo DWA, puede adaptarse al movimiento y cambios de obstáculos en entornos dinámicos.
  • Capacidad para evitar obstáculos: el algoritmo DWA evita colisiones al evitar evaluar el rendimiento para evitar obstáculos, lo que permite a los robots navegar en entornos complejos.

defecto

  • Búsqueda local: el algoritmo DWA suele ser un método de búsqueda local, por lo que es posible que no siempre encuentre la ruta óptima global.
  • El rendimiento depende de los parámetros: el rendimiento del algoritmo DWA depende en gran medida de la selección de parámetros, especialmente aquellos relacionados con la evaluación del rendimiento. Esto requiere depuración y optimización.

Algoritmo TEB (banda elástica de tiempo)

El algoritmo TEB (Time-Elastic Band) es un método utilizado para la planificación del movimiento de robots y la optimización de trayectorias, especialmente adecuado para la planificación de trayectorias de robots móviles en entornos dinámicos. El algoritmo TEB está diseñado para resolver el problema de planificación de rutas de los robots en entornos complejos y dinámicos para garantizar que los robots puedan moverse de forma segura y eficiente.

principio

  1. Inicialización:
    determine el estado inicial del robot, incluida la posición y la velocidad.
    Establezca parámetros como la resolución de tiempo (paso de tiempo) y la resolución de velocidad (paso de velocidad).
    Construya una trayectoria espacio-temporal, incluido el estado inicial.

  2. Configuración de objetivos:
    determine la posición de destino del robot.

  3. Generación de ruta:
    en una trayectoria espacio-temporal, los posibles pares posición-velocidad (pose y velocidad) se generan paso a tiempo.
    Considere el modelo dinámico del robot para garantizar que las trayectorias generadas sean físicamente sólidas.
    Teniendo en cuenta la resolución de la velocidad, se generan múltiples ramas de trayectoria con diferentes velocidades.

  4. Detección de evitación de obstáculos:
    para cada trayectoria generada, verifique si cruza un obstáculo en cada paso de la trayectoria.
    Si un paso de tiempo se cruza con un obstáculo, marque la trayectoria como ilegal.

  5. Evaluación de desempeño:
    Para trayectorias jurídicas, evaluar su desempeño.
    La evaluación del desempeño generalmente incluye la dirección hacia el objetivo (si la trayectoria está cerca de la posición objetivo), la evitación de obstáculos (si la trayectoria evita obstáculos) y la suavidad.

  6. Selección de trayectoria:
    seleccione la mejor trayectoria o rama de trayectoria como la siguiente acción del robot en función de la evaluación del desempeño.
    La trayectoria óptima suele ser aquella que logra un equilibrio entre la orientación a un objetivo y la evitación de obstáculos.

  7. Controle el robot:
    ejecute comandos de movimiento en la trayectoria seleccionada para mover el robot al siguiente estado.

  8. Actualización en tiempo real:
    durante el movimiento del robot, la trayectoria se actualiza y replanifica constantemente para adaptarse a los cambios dinámicos del entorno.

  9. Alcanzar el objetivo:
    el algoritmo finaliza cuando el robot se acerca a la posición objetivo y cumple las condiciones de terminación.

ventaja

  • Adaptabilidad dinámica: el algoritmo TEB tiene la capacidad de ajustar dinámicamente la trayectoria y puede volver a planificar el camino en función de la información ambiental percibida en tiempo real. Esto lo hace adecuado para manejar obstáculos dinámicos y cambios ambientales.
  • Suavidad de trayectoria: el algoritmo TEB tiende a generar trayectorias suaves, lo que ayuda a mejorar la comodidad y la estabilidad del movimiento del robot.
  • Control de velocidad: El algoritmo TEB permite el ajuste dinámico de la velocidad del robot para adaptarse a la densidad de obstáculos del entorno y las capacidades de movimiento del robot.
  • Admite múltiples restricciones de movimiento: el algoritmo TEB puede integrar fácilmente múltiples restricciones de movimiento, como radio de giro mínimo, velocidad máxima, aceleración máxima, etc., para cumplir con los requisitos de movimiento de diferentes robots.

defecto

  • Complejidad computacional: la complejidad computacional del algoritmo TEB es relativamente alta, especialmente en espacios de estados de alta dimensión, lo que puede generar desafíos en tiempo real.
  • Sensible a los parámetros: el algoritmo TEB depende de muchos parámetros, como la resolución temporal, la resolución espacial, etc. La elección de los parámetros adecuados es fundamental para el rendimiento del algoritmo, pero puede requerir algunos ajustes.

Algoritmo del planificador de celosía

Lattice Planner es un algoritmo de planificación de rutas basado en muestreo adecuado para espacios de estados de alta dimensión y robots con restricciones de movimiento complejas. Modela el espacio de estados del robot como un diagrama de cuadrícula de alta dimensión, genera trayectorias candidatas mediante muestreo y utiliza varias evaluaciones de índices para encontrar la mejor ruta.

principio

  1. Modelado del espacio de estados: represente el espacio de estados del robot como un diagrama de cuadrícula de alta dimensión.
  2. Generar trayectorias candidatas: genera un conjunto de trayectorias candidatas en el espacio de estados, cada trayectoria representa una posible ruta de movimiento del robot.
  3. Detección de colisiones: realice la detección de colisiones en cada trayectoria candidata para garantizar que la trayectoria no se cruce con obstáculos.
  4. Evaluación del desempeño: Realizar evaluación del desempeño en trayectorias legales, tomando en cuenta indicadores como orientación del objetivo, evitación de obstáculos, suavidad y comodidad.
  5. Seleccione la trayectoria óptima: determine la ruta óptima desde el estado inicial hasta el estado objetivo.
  6. Optimización de trayectoria: opcionalmente optimice la ruta generada.

ventaja

  • Adáptese al espacio de estados de alta dimensión y a restricciones de movimiento complejas.
  • Admite múltiples restricciones de movimiento.

defecto

  • La complejidad computacional es alta.
  • La selección de parámetros tiene un mayor impacto en el rendimiento.

Algoritmo del planificador EM

EM Planner es un algoritmo de planificación de rutas que utiliza el método de Maximización de Expectativas (EM), que se utiliza para resolver el problema de planificación de rutas de robots en entornos desconocidos. Planifica caminos estimando distribuciones de probabilidad de entornos desconocidos.

Modelado del entorno: utilice datos de sensores para crear un mapa probabilístico del entorno, incluidas las ubicaciones y las incertidumbres de los obstáculos.
Algoritmo EM: utilice el algoritmo EM para estimar la distribución de probabilidad del entorno desconocido, incluida la distribución y la incertidumbre de los obstáculos.
Planificación de rutas: utilice un algoritmo de planificación de rutas para planificar una ruta en función de la distribución de probabilidad ambiental estimada.
Ejecución de trayectoria: ejecute la ruta planificada mientras actualiza continuamente el modelo del entorno y la ruta para adaptarse a los nuevos datos del sensor.

ventaja

  • Es adecuado para entornos desconocidos y entornos inciertos y puede estimar la distribución de probabilidad del entorno.

defecto

  • Mayor complejidad computacional.

Supongo que te gusta

Origin blog.csdn.net/weixin_43603658/article/details/133363712
Recomendado
Clasificación