✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
水面无人艇(Unmanned Surface Vehicle,USV)具有模块化,无人化以及智能化等优势,通过搭载不同的传感器或执行设备,可以执行各种复杂的作业任务,在海洋探索开发和军事应用领域得到了广泛应用.USV需要在高度动态和不可预测的海洋环境中达到高级别的自主导航,故高效,可靠并能够实时避障的路径规划是至关重要的.论文主要研究了具有静态环境信息的全局路径规划以及在航行过程中遇到未标记障碍时的实时动态避障.论文首先简要介绍了国内外路径规划技术的研究现状以及路径规划的相关概念,讨论了USV路径规划的特点和一般步骤,然后重点研究了USV全局路径规划方法以及基于国际海上避碰规则(Convention on the International Regulations for Preventing Collision at Sea,COLREGs)的实时动态避障
⛄ 部分代码
%TEST4POTENTIAL Summary of this function goes here
% Detailed explanation goes here
global mat_point
global end_point
global ship7
global parameter
global targetship
tmp_ship=ship7;
potential = 0;
for i = 1 : 1
tmp_ship = shipdynamic(tmp_ship,u(i*2));
sum_cost_obstacles=0;
for j=1:size(mat_point,1)
distance_LA2OB=norm(mat_point(j,1:2)-tmp_ship.position);
if distance_LA2OB>=mat_point(j,5)*mat_point(j,3)
distance_LA2OB=inf;
end
if distance_LA2OB<=mat_point(j,5)*mat_point(j,3)
sum_cost_obstacles=sum_cost_obstacles+exp(-mat_point(j,6)*distance_LA2OB^2)/parameter.prediction_step;
end
control_action = (end_point-tmp_ship.position);
potential = potential+(-exp(-norm(-(control_action)).^(2)*parameter.endbeta)+sum_cost_obstacles)*1;
end
for j=1:size(targetship,2)
distance_LA2OB=norm(targetship(j).predicted_position(i,1:2)-tmp_ship.position);
if distance_LA2OB>=parameter.safecv
distance_LA2OB=inf;
end
if distance_LA2OB<=parameter.safecv && distance_LA2OB>parameter.dangercv
target_ship=targetship(j);
target_ship.postion=targetship(j).predicted_position(i,1:2);
potential=potential+target_ship_potential(tmp_ship,target_ship);
end
if distance_LA2OB<=parameter.dangercv
target_ship=targetship(j);
target_ship.postion=targetship(j).predicted_position(i,1:2);
target_ship.situation=0;
potential=potential+target_ship_potential(tmp_ship,target_ship)/parameter.prediction_step;
end
end
u(i*2)*180/pi;
end
potential;
end
⛄ 运行结果
⛄ 参考文献
[1]王硕. 基于COLREGs的无人艇路径规划算法研究[D]. 哈尔滨工程大学.