% 机器人栅格地图路径规划(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*算法主循环