基于改进哈里斯鹰和B-spline曲线无人机路径规划研究(文献阅读自用)

一.前言

        无人机动态环境中全局动态规划,需要算法,但传统算法搜索性能不足,故一要改进算法提高算法搜索性能(该文对哈里斯鹰的改进点:自适应混沌---提高种群多样性提高搜索能力、动态划分种群----提高搜索能力、黄金正弦----提高搜索效率、自适应动态云最优解扰动---为了跳出局部。)

        三维栅格地图,设置估值函数----计算栅格到终点的代价来帮助找节点,使算法找到路径更短。对路径转角不平滑问题,利用3次B-spline曲线平滑---使路径更适合无人机飞行。

        用标准测试函数不同大小,不同复杂度的静态,动态栅格地图下进行仿真实验。算法优化性能提高,无人机飞行得到的路径短,转角数量变少

        无人机广泛应用于军事领域,物流运输等,是一种高效,省时的方法。但人操控的无人机路径可能不是最优路径,耗能大,故路径规划是无人机执行任务的基本问题。很多人用算法对无人机进行路径规划,企图找到安全可行短小的路径来提高执行飞行任务的效率。

        目前路径规划算法有A*算法,人工势场法,狮群优化算法,鲸鱼优化算法等其它算法及其改进的相关算法。规划环境有静态和动态环境。无人机路径规划主要问题在于:动态避障处理算法优化性能路径平滑问题

二.模型建立和路径处理

1.  建立三维环境

        环境建模采用栅格法,每个栅格为路径规划中的节点,栅格地图原点为(0 0 0),1.用矩形模拟城市建筑物(矩形长宽高形成的区域即无人机飞行的障碍区)。2.用球体表示干扰信号区,知道球的中心坐标及半径就只干扰信号范围为4\pi R^{3}/3

2.  动态障碍物及路径规划

        城市无人机路径规划需要根据获取城市建筑物周围环境信息然后规划出一条无碰撞,安全,可行,路径短,适合无人机飞行的路径。假设无人机具备相控阵雷达双目识别系统,雷达可检测到2km类动态障碍物。

        实际环境中障碍物多及还有无人机无法达到的区域。做如下约定:

        a.UAV飞行过程要与障碍物保持安全距离,设置最低飞行高度5米。

        b.无人机路径不能在静态障碍物内,故要通过无人机与障碍物距离进行避障。

        c.无人机有雷达和识别系统,可以扫描周围环境信息,侦察和跟踪动态障碍物轨迹和速度,根据算法计算和动态障碍物距离进行避障。

        d.动态障碍物采取匀速或者变速进行运动,无人机选择不同路径进行避障,无人机飞行速度保持在3km-10km,有效避障速度<=10km。

        e.空中动态障碍物形状问题,选择球状,然后进行膨胀模拟动态,而且运动路径有(直线,直线来回的,不规则的)

3.  避障方法和判断

        通过雷达检测障碍物轨迹并得出坐标位置,计算无人机和障碍物距离判断是否发生碰撞

雷达每秒对障碍物扫描10次,将1秒分为10等分,每个等分都要计算障碍物和无人机的距离,若距离小于最小安全距离,则无人机要更改路线。无人机某时刻坐标为

单位时间内无人机移动坐标集合为:

障碍物同样某时刻坐标为:

单位时间内障碍物移动坐标集合:

无人机到障碍物中心对应时刻距离为:

假设安全距离为r1,障碍物膨胀半径为r2,当距离d>=r1+r2时二者才不会碰撞。反之会碰撞,无人机会等待绕过障碍物,t时刻的动态障碍物及静态障碍物均为无人机禁飞区

4.  3次B-spline路径平滑

        无人机转角角度大及路径不平滑会使无人机飞行姿态不稳定,且能耗增加,部件磨损等,故要采取平滑措施。用B样条曲线平滑

三.优化算法部分

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
B样条曲线是计算机图形学中一种重要的曲线表示方法,它具有良好的数学性质和样条插值曲线的优点。在MATLAB中,B样条曲线的绘制可以采用三种方法: 第一种方法通过绘制控制点来调整曲线,具体步骤如下: 1. 首先确定曲线的阶次,选择合适的控制点。 2. 在MATLAB命令窗口输入bsplin()函数,定义B样条曲线的节点向量和基函数矩阵。 3. 创建一组控制点矩阵,使用plot()函数绘制控制点。 4. 输入spmak()函数,将控制点矩阵和基函数矩阵作为参数,创建一个B样条曲线。 5. 使用fnplt()函数绘制B样条曲线。 第二种方法使用B样条曲线拟合已知的数据点,具体步骤如下: 1. 使用MATLAB表示数据点,可以用矩阵或向量的形式。 2. 通过splrep()函数将数据点拟合成B样条曲线,得到节点和系数。 3. 使用splev()函数生成插值点,即插值后的曲线。 4. 使用fnplt()函数绘制B样条曲线。 第三种方法使用B样条曲线插值已知的数据点,具体步骤如下: 1. 通过interp1()函数对数据点进行插值处理,得到插值后的数据点矩阵。 2. 通过splrep()函数将插值后的数据点拟合成B样条曲线,得到节点和系数。 3. 使用splev()函数生成插值点,即插值后的曲线。 4. 使用fnplt()函数绘制B样条曲线。 总之,不管是通过控制点还是通过插值处理B样条曲线的绘制与调整都十分灵活,可以满足不同场景下的需求和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值