[Planificación de ruta] Planificación de la ruta más corta para evitar obstáculos bidimensionales de UAV basada en el algoritmo matlab A_star (mapa de la isla) [incluido el código fuente de Matlab 2774]

⛄ 1. Introducción al algoritmo A_star

1 Un algoritmo de estrella y su estado de aplicación
La información extraída durante la tarea de búsqueda que ayuda a simplificar el proceso de búsqueda se denomina información heurística. La información heurística se transforma en una función heurística después del refinamiento y la formulación del texto. La función heurística puede representar desde el principio vértice a La distancia estimada entre los vértices objetivo también puede representar el tiempo estimado desde el vértice inicial hasta el vértice objetivo. Las funciones heurísticas utilizadas para describir diferentes situaciones y resolver diferentes problemas son diferentes. Por defecto, la función heurística denominada H (n). El método de búsqueda respaldado por la función heurística se denomina algoritmo de búsqueda heurística. En la planificación de la ruta del robot de rescate, el algoritmo A Star puede combinar las condiciones ambientales de la tarea de búsqueda para reducir el rango de búsqueda y mejorar la eficiencia de la búsqueda. La búsqueda El proceso es más direccional e inteligente, por lo que el algoritmo A Star se puede aplicar mejor a los campos relacionados con la planificación de rutas de robots.

2 Flujo del algoritmo A Star
Continuación de la Sección 2.1, la función heurística del algoritmo A Star se utiliza para estimar la distancia desde el punto de partida hasta el punto objetivo, a fin de reducir el rango de búsqueda y mejorar la eficiencia de la búsqueda. el algoritmo A Star es: F (n) =G (n) +H (n), donde F (n) es la función estimada desde el punto de inicio hasta el punto de destino a través del nodo n, G (n) representa el movimiento real costo de moverse desde el punto de inicio al cuadrado n, y H (n) representa el costo de movimiento estimado para moverse desde el cuadrado n al punto de destino.

Como se muestra en la Figura 2, el área a buscar se divide en cuadrículas cuadradas, y el estado de cada cuadrícula se divide en transitable y no transitable. El valor del costo de cada cuadrado transitable es 1, y puede moverse a lo largo de la diagonal (el movimiento diagonal es El flujo de la ruta de búsqueda es el siguiente:
inserte la descripción de la imagen aquí
Figura 2 Planificación de la ruta del algoritmo Star
Paso 1: Definir dos listas denominadas abiertas y cerradas, la lista abierta se utiliza para almacenar todo lo considerado para encontrar El bloque de la ruta, la lista cerrada se usa para almacenar los bloques que ya no se considerarán;
Paso 2: A es el punto de inicio, B es el punto de destino, comience desde el punto de inicio A y coloque el punto de inicio A en la lista abierta, y el la lista cerrada se inicializa para quedar vacía;
Paso 3: vea el cuadrado n adyacente a A (n se llama el punto hijo de A, y A se llama el punto padre de n), y los cuadrados transitables se agregan a la lista abierta, y sus Se calculan los valores F, G y H. Poner A Eliminar de abierto y agregar a lista cerrada
Paso 4: Determinar si la lista abierta está vacía, si es así, la búsqueda falló, si no, vaya al siguiente paso
Paso 5: elimine n de la lista abierta y agréguelo a la lista cerrada, juzgue si n es el vértice objetivo B, si es así, la búsqueda es exitosa y el algoritmo finaliza; Paso 6: si no, expanda la búsqueda
del subvértice de n :
a. Si el subvértice no es transitable o está en la lista cerrada, ignórelo.
b. Si el vértice secundario no está en la lista abierta, se agregará a la lista abierta y el cuadrado actual se establecerá como su padre, y se registrarán los valores F, G y H del cuadrado Paso 7: Saltar al Paso 4 Paso 8: Fin del ciclo, guardar la
ruta
Comenzando desde el punto final, cada cuadrado se mueve a lo largo del nodo principal hasta el punto de partida, que es la ruta óptima.El diagrama de flujo del algoritmo A Star se muestra en la Figura 3. Figura
inserte la descripción de la imagen aquí
3 Proceso del algoritmo A Star

⛄ 2. Parte del código fuente

clc;
borrar
cerrar todo

tic

%% dibujar mapa

% Definir el número de filas y columnas del mapa de cuadrícula
m = 150;
n = 150;
% mapa m filas n columnas

inicio = [10, 20]; %
objetivo de nodo de inicio = [130, 80]; % de nodo final
% obs = [6, 1; 6, 2; 6, 3; 6, 4; 6, 5; 6, 6; 6, 7; 5, 5; 4, 5; 3, 5]; % área de obstáculos

obs = TrunToGridMap(m, n);

% 画格子
for i = 0 : 5 : m
plot([0, n], [i, i], 'k', 'handlevisibility', 'off');
esperar;
fin

for j = 0 : 5 : n
plot([j, j], [0, m], 'k', 'handlevisibility', 'off');
fin

⛄ 3. Resultados en ejecución

inserte la descripción de la imagen aquí

⛄ 4. Versión de Matlab y referencias

1 matlab versión
2014a

2 Referencias
[1] Qian Cheng, Xu Yingqiu, Tan Yingzi. Aplicación de un algoritmo de estrella en la planificación de rutas en RoboCup Rescue Simulation [J]. Journal of Command and Control. 2017,3(03)

3 Comentarios
Introducción Esta parte está tomada de Internet y es solo para referencia. Si hay alguna infracción, comuníquese para eliminar

Supongo que te gusta

Origin blog.csdn.net/TIQCmatlab/article/details/131503684
Recomendado
Clasificación