【路径规划】基于A
需要注意的是,在实际海图船舶航行中,还需要考虑到船舶的动力性能、航行限制、危险区域等因素,并进行适当的约束处理。此外,A*算法的性能也可以通过启发式函数的选择、开放列表的实现方式等进行优化,以提高路径规划效率。
function child_nodes = child_nodes_cal(parent_node, m, n, obs, closelist) child_nodes = []; field = [1, 1; n, 1; n, m; 1, m]; % 第1个子节点 child_node = [parent_node(1) - 1, parent_node(2) + 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) % [in, on] = inpolygon, 返回 in,以指明 xq 和 yq 所指定的查询点是在 xv 和 % yv 定义的多边形区% 域的边缘内部还是在边缘上,in为内部,on为边缘上 if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第2个子节点 child_node = [parent_node(1), parent_node(2) + 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第3个子节点 child_node = [parent_node(1) + 1, parent_node(2) + 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第4个子节点 child_node = [parent_node(1) - 1, parent_node(2)]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第5个子节点 child_node = [parent_node(1) + 1, parent_node(2)]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第6个子节点 child_node = [parent_node(1) - 1, parent_node(2) - 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第7个子节点 child_node = [parent_node(1), parent_node(2) - 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end % 第8个子节点 child_node = [parent_node(1) + 1, parent_node(2) - 1]; if inpolygon(child_node(1), child_node(2), field(:, 1), field(:, 2)) if ~ismember(child_node, obs, 'rows') child_nodes = [child_nodes; child_node]; end end %% 排除已经存在于closelist的节点 delete_idx = []; for i = 1 : size(child_nodes, 1) if ismember(child_nodes(i, :), closelist, 'rows') delete_idx(end+1, :) = i; end end child_nodes(delete_idx, :) = []; end1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.
[1] 徐哲扬.基于A-Star算法的机器人路径规划[J].赢未来, 2018(12):1.
[2] 卢昌宇.基于改进遗传算法的船舶局部路径规划研究[D].大连海事大学[2023-07-09].
[3] 卞永明,马逍阳,高飞,等.基于改进A-Star算法的AGV全局路径规划[J].机电一体化, 2019(6):7.DOI:CNKI:SUN:JDTH.0.2019-06-002.
[4] 周慧,李迎秋,刘振宇,等.基于A‐Star算法的快速路径规划混合方法:CN201510784783.1[P].CN105758410B[2023-07-09].
网址:【路径规划】基于A https://m.mxgxt.com/news/view/1452571
相关内容
【路径规划】基于A建立员工职业规划与发展路径计划.pptx
艺人职业规划与发展路径设计实施考核试卷.docx
网红职业规划与发展路径
明星家庭如何规划孩子教育路径
如何成为职业规划师?必备条件与职业发展路径
网红职业规划与发展路径.pptx
篮球明星职业生涯发展规划与成长路径总结与建议
篮球明星职业生涯发展规划与总结提升路径及未来发展建议
足球明星的未来规划与职业生涯发展路径探索之旅