2024年新算法:基于牛顿-拉夫逊优化器NRBO的城市三维无人机路径规划(复杂地形三维航迹路径规划)

摘要:本文提出了一种利用牛顿-拉夫逊优化器(Newton-Raphson-based optimizer,NRBO)来解决城市环境下无人机三维路径规划问题的方法。这种方法将复杂的无人机航迹规划任务转化为一个优化问题,然后运用牛顿-拉夫逊优化器NRBO来解决这个优化问题。牛顿-拉夫逊优化器(NRBO)受牛顿-拉夫逊方法的启发,使用两个规则:Newton-Raphson搜索规则(NRSR)和陷阱避免算子(TAO)和几组矩阵来探索整个搜索过程,进一步探索最佳结果。NRSR采用Newton-Raphson方法来提高NRBO的探索能力,提高收敛速度以达到改进的搜索空间位置。我们将NRBO算法应用于城市复杂地形环境下的无人机三维航迹路径规划。通过对算法的性能进行仿真实验,我们发现该方法能够有效地规划出满足避障要求的无人机三维航迹,并且具有较高的规划效率。这意味着,我们的方法能够在城市复杂环境中,快速而准确地为无人机规划出一条既安全又高效的飞行路径,为无人机的实际应用提供了有力支持。

关键词:城市三维无人机路径规划;复杂地形三维航迹路径规划;牛顿-拉夫逊优化器NRBO

1.问题描述

无人机三维路径规划问题,简单来说,就是在三维空间中为无人机设计一条从起点到终点的飞行路线。这条路线不仅要能避开障碍物,还要保证飞行的效率。这个问题相当复杂,因为它涉及到很多限制条件,比如要避免撞到障碍物,还要保证飞行的速度和效率。所以,解决无人机三维路径规划问题需要综合考虑很多因素,才能找到一条既安全又高效的飞行路线。

2.本文提出了一种基于牛顿-拉夫逊优化器NRBO的无人机三维路径规划方法。该方法将无人机三维路径规划问题转化为一个优化问题,并利用牛顿-拉夫逊优化器NRBO对优化问题进行求解。

3.仿真实验

在本文中,我们对基于牛顿-拉夫逊优化器NRBO的无人机三维路径规划方法进行了仿真实验。实验中,无人机需要在三维空间中飞行,并成功避开所有障碍物。实验的结果表明,这种方法能够非常有效地规划出满足避障要求的无人机三维飞行路径,并且在规划效率方面表现优异。这意味着,我们的方法不仅能够确保无人机在飞行过程中的安全,还能在较短时间内找到最优的飞行路径,提高了无人机的整体飞行效率。

4.结论

本文介绍了一种新的无人机三维路径规划方法,它基于牛顿-拉夫逊优化器NRBO进行优化。这种方法将复杂的无人机路径规划问题转化为了一个优化问题,然后利用牛顿-拉夫逊优化器NRBO来寻找最佳的飞行路径。通过模拟实验,我们发现这个方法非常有效,不仅可以避开障碍物,还能高效地完成飞行任务。这意味着,无人机可以在保证安全的同时,更加快速地完成飞行任务,提高了整体的工作效率。

代码运行实验结果如下:

主函数部分代码如下:

%% 三维地图
clear all;
clc;
close all;
warning off
%% 载入数据
data.S=[1,1,1];     %起点位置
data.E=[950,950,13]; %终点点位置
data.Obstacle=...
    [40	100	0	50	50	11
    400	150	0	100	100	8
    550	100	0	120	160	6
    850	100	0	100	100	2
    0	400	0	50	200	19
    100	400	0	50	200	19
    260	430	0	100	180	7
    500	320	0	50	100	3
    600	320	0	50	380	15
    700	300	0	100	100	16
    800	500	0	120	160	14
    300	700	0	120	160	12
    430	650	0	120	160	12
    20	900	0	120	160	11
    100	800	0	120	160	8
    200	800	0	120	160	10
    500	800	0	120	160	8
    750	750	0	120	160	2
    900	900	0	120	160	6
    250 250 0   100 100 9
    ];
data.numObstacles=length(data.Obstacle(:,1));
data.mapSize=[1000,1000,20]; %10m 地图尺寸
data.unit=[50,50,1]; %地图精度
data.S0=ceil(data.S./data.unit);
data.E0=ceil(data.E./data.unit);
data.mapSize0=data.mapSize./data.unit;
data.map=zeros(data.mapSize0);
for i=1:data.numObstacles
    x=1+data.Obstacle(i,1);
    y=1+data.Obstacle(i,2);
    z=1+data.Obstacle(i,3);
    long=data.Obstacle(i,4);
    wide=data.Obstacle(i,5);
    pretty=data.Obstacle(i,6);
    [V,F] = DrawCuboid(long, wide, pretty, x,y,z);
    x0=ceil(x/data.unit(1));
    y0=ceil(y/data.unit(2));
    z0=ceil(z/data.unit(3));
    long0=ceil(long/data.unit(1));
    wide0=ceil(wide/data.unit(2));
    pretty0=ceil(pretty/data.unit(3));
    data.map(x0:x0+long0,y0:y0+wide0,z0:z0+pretty0)=1;
end
%%
index=find(data.map==1);
[p1,p2,p3] = ind2sub(size(data.map), index);
%% 生成可移动方向
temp=[1,0,-1];
direction=[];
for i=1:3
    for j=1:3
        for k=1:3
            direction=[direction;temp(i),temp(j),temp(k)];
        end
    end
end
position=find(direction(:,1)==0 & direction(:,2)==0 & direction(:,3)==0);
direction(position,:)=[];
data.direction=direction;

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值