% 机器人栅格地图路径规划(A*算法)
% 假设你已经有了栅格地图数据和起点终点坐标
% 栅格地图数据
grid_map = your_grid_map_data; % 栅格地图数据,0表示可行区域,1表示障碍物区域
% 起点和终点坐标
start = your_start_coordinates; % 起点坐标,格式为[x, y]
goal = your_goal_coordinates; % 终点坐标,格式为[x, y]
% 定义栅格地图的尺寸
map_size = size(grid_map);
% 定义起点和终点的节点
start_node = struct(‘coord’, start, ‘g’, 0, ‘h’, 0, ‘f’, 0, ‘parent’, []);
goal_node = struct(‘coord’, goal, ‘g’, 0, ‘h’, 0, ‘f’, 0, ‘parent’, []);
% 定义开启列表和关闭列表
open_list = [];
close_list = [];
% 添加起点到开启列表
open_list = [open_list, start_node];
% 定义移动的八个方向(上,下,左,右,左上,左下,右上,右下)
directions = [
-1, 0; % 上
1, 0; % 下
0, -1; % 左
0, 1; % 右
-1, -1; % 左上
-1, 1; % 左下
1, -1; % 右上
1, 1; % 右下
];
% A*算法主循环