2022年IEEE TITS SCI2区TOP,基于切线交点和目标引导策略的无人机自主路径规划,深度解析+性能实测

目录


1.摘要

无人机路径规划使无人机能够避开障碍物并高效到达目标,为了生成无障碍碰撞的高质量路径,本文提出了一种基于切线交点和目标引导策略的自主路径规划算法(APPATT)。在目标引导下,采用椭圆切线图方法生成两条子路径,当遇到障碍物时,基于启发式规则选择其中一条子路径。无人机沿选定的子路径飞行,并通过这种方式反复调整飞行路径,以避开障碍物,直到无碰撞路径延伸到目标。考虑到无人机的运动约束,采用三次B样条曲线平滑航点,以获得可行路径。

2.问题描述

在此场景中,假设无人机需从起点 S S S飞往终点 E E E,但高楼阻挡了直接路径,因此需要规划一条无碰撞的路径。为提高计算效率并简化路径搜索,三维环境被简化为二维场景。障碍物被统一建模为椭圆形,以避免不规则多边形带来的计算复杂性和路径不平滑问题。环境中有 N N N个障碍物,每个障碍物的中心坐标为 ( x k , y k ) (x_k, y_k) (xk,yk),半长轴和半短轴分别为 a a a和 b b b,倾斜角度为 θ \theta θ, r s a f e r_{safe} rsafe为无人机与障碍物之间的最小安全距离。

障碍物可以表示为:
( x − x k ) c o s θ + ( y − y k ) s i n θ 2 ( a + r s a f e ) 2 + ( y − y k ) c o s θ − ( x − x k ) s i n θ 2 ( b + r s a f e ) 2 = 1 \begin{aligned} \frac{(x-x_k)cos\\theta+(y-y_k)sin\\theta^2}{(a+r_{safe})^2} +\frac{(y-y_k)cos\\theta-(x-x_k)sin\\theta^2}{(b+r_{safe})^2}=1 \end{aligned} (a+rsafe)2(x−xk)cosθ+(y−yk)sinθ2+(b+rsafe)2(y−yk)cosθ−(x−xk)sinθ2=1

无碰撞路径上的每个路点满足:
( x i − x k ) c o s θ + ( y i − y k ) s i n θ 2 ( a + r s a f e ) 2 + ( y i − y k ) c o s θ − ( x i − x k ) s i n θ 2 ( b + r s a f e ) 2 ≥ 1 \begin{aligned} \frac{(x_{i}-x_{k})cos\\theta+(y_{i}-y_{k})sin\\theta^{2}}{(a+r_{safe})^{2}} +\frac{(y_i-y_k)cos\\theta-(x_i-x_k)sin\\theta^2}{(b+r_{safe})^2}\geq1 \end{aligned} (a+rsafe)2(xi−xk)cosθ+(yi−yk)sinθ2+(b+rsafe)2(yi−yk)cosθ−(xi−xk)sinθ2≥1

3.APPATT算法

APPATT通过在遇到障碍物时基于椭圆切线图生成两条子路径,并根据规则选择其中一条路径,避免构建整个道路图。算法分为两种版本:SETG-TG(已知环境)和DETG-TG(实时收集环境信息)。APPATT通过连接无碰撞的交点生成高质量路径,避免不必要的计算,并能根据障碍物位置动态调整路径。

SETG-TG算法

SETG-TG算法通过生成航点并更新起点和终点,迭代地寻找无碰撞路径。算法步骤包括: 使用椭圆建模障碍物; 初始化起点和终点并设置航点集合;判断从起点到终点的路径是否无碰撞,若有碰撞则生成切线并根据启发式规则选择路径。算法不断调整路径,直到找到一条无碰撞的路径到达终点,适用于已知环境下的路径规划。

DETG-TG算法

DETG-TG算法适用于动态环境和完全未知环境。在动态环境中,算法通过实时感知和重新规划碰撞路径应对突发障碍物;在未知环境中,算法通过传感器逐步感知并更新环境信息,限制飞行距离以频繁调整路径。算法通过迭代步骤,生成无碰撞路径并避开障碍,直至无人机到达终点。

4.结果展示

5.参考文献

1 Liu H, Li X, Fan M, et al. An autonomous path planning method for unmanned aerial vehicle based on a tangent intersection and target guidance strategyJ. IEEE Transactions on Intelligent Transportation Systems, 2020, 23(4): 3061-3073.

6.代码获取

xx

7.算法辅导·应用定制·读者交流

xx

相关推荐
Nil2085 小时前
leetcode 118杨辉三角
算法·leetcode·职场和发展
wanderist.8 小时前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数
java·数据结构·算法
All for pursuit.8 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
weixin_307779138 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
青少儿编程课堂8 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
光影少年9 小时前
为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
前端·javascript·算法
HEJOO99 小时前
Linux 设备驱动系列——使用全局工作队列
java·linux·算法
Code_Solitude9 小时前
c语言:递归
java·c语言·算法
edtoplort10 小时前
OpenAI紧急叫停GPT-6.1 Astra训练,奥尔特曼为何踩刹车
人工智能·gpt·算法
蒜香可达鸭10 小时前
让视频生成流水线跑不崩:一个事件溯源的多 Agent 可靠执行框架
算法