首页 > 行业资讯 > 【路径规划】基于快速行军树实现风场下无人机航迹规划附matlab代码

【路径规划】基于快速行军树实现风场下无人机航迹规划附matlab代码

时间:2023-05-17 来源: 浏览:

【路径规划】基于快速行军树实现风场下无人机航迹规划附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页: Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法       神经网络预测       雷达通信       无线传感器         电力系统

信号处理               图像处理               路径规划       元胞自动机         无人机

⛄ 内容介绍

Engine failures are a large cause of concern for mission planners when dealing with the  operation of Unmanned Aerial Vehicles (UAVs). This is primarily due to the lack of a skilled  pilot on-board who can deal with the resulting loss of control by assessing the environment  around them to perform an emergency landing. This has recently become a growing issue due  to the fact UAVs are seeing a huge rise in use ranging from a plethora of civilian and military  applications. With more UAVs in operation, the chances of a crash landing or collision from  a loss of control increase. Therefore an autonomous system which will allow the vehicle to  land safely is highly desirable. The challenge is to produce dynamically feasible routes for  the unpowered UAV, which consider spatial constraints from a complex obstacle space, as  well as temporal constraints for landing in pre-defifined safety zones. This chapter will begin  with the motivation and inherent diffiffifficulty in solving such a problem, followed by a brief  description of the proposed solution.

⛄ 部分代码

%% generateRoadmap.m                

function [nodes, distMatrix, heuristic] = generate_roadmap(npoints,radius,init,final,obs,radius_obstacle,zone)

    nodes = [init,final,zone];

    distMatrix = zeros(npoints); 

    heuristic = zeros(1,npoints); 

    heuristic(1) = norm(final-init);

    heuristic(2) = 0;

    

    offset = 2+length(zone);

    

    for i = 1 : npoints-offset       

        while true

            new = init(1)+(final(1)-init(1))*abs(rand(2,1));

            if collision_test(new,obs,radius_obstacle)

                break;

            end

        end

        

        heuristic(i+offset) = norm(new-final);

        nodes = [nodes, new];

        

        [idx, D] = rangesearch(nodes’, new’, radius);

        idx = idx{1};

        if length(idx) == 1

            continue;

        end

        D = D{1};

        for k = 2 : length(idx) 

            if edge_test(new,nodes(:,idx(k)),obs,radius_obstacle);

                plot([nodes(1,end), nodes(1,idx(k))], [nodes(2,end), nodes(2,idx(k))], ’c’, ’linewidth’, 0.5); % plot the edge

                distMatrix(length(nodes),idx(k)) = D(k); % add in symmetric positions in distMatrix

                distMatrix(idx(k),length(nodes)) = D(k);

            end

        end 

    end    

end

⛄ 运行结果

⛄ 参考文献

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐