当前位置:网站首页>【RRT三维路径规划】基于matlab快速扩展随机树无人机三维路径规划【含Matlab源码 1914期】
【RRT三维路径规划】基于matlab快速扩展随机树无人机三维路径规划【含Matlab源码 1914期】
2022-06-29 00:48:00 【海神之光】
一、快速扩展随机树无人机三维路径规划简介
1 无人机航迹规划问题的数学模型
建立三维航迹规划问题的数学模型时, 不但考虑无人机基本约束, 还考虑复杂的飞行环境, 包括山体地形和雷暴威胁区。
1.1 无人机基本约束
规划的无人机三维航迹, 通常需要满足一些基本约束, 包括最大转弯角、最大爬升角或下滑角、最小航迹段长度、最低和最高飞行高度, 以及最大航迹长度等约束。其中, 最大转弯角约束, 是指无人机只能在水平面内小于或等于指定的最大转弯角内转弯;最大爬升角或下滑角约束, 是指无人机只能在垂直平面内小于或等于指定的最大爬升角或下滑角内爬升或下滑;最小航迹段长度约束, 要求无人机改变飞行姿态之前, 按目前的航迹方向飞行的最短航程;最低和最高飞行高度约束, 要求无人机在指定的飞行高度区间飞行;最大航迹长度约束, 是指无人机的航迹长度小于或等于指定的阈值。
记q (x, y, z, θ, ψ) 为无人机的飞行位置与姿态, 其中, (x, y, z) 为无人机的位置, θ为无人机的水平转弯角, ψ为无人机的竖直爬升角或下滑角, 进而建立上述基本约束的数学表达式。
1.2 飞行环境障碍物和威胁区建模
在飞行环境中, 高耸的山体近似采用圆锥体等效表示, 用以e为底的自然指数图形生成, 那么, 山体地形可以通过多个位置不同的圆锥体叠加而成。若将参考海拔基准高度设置为xOy平面, 记 (x, y, z) 为山体地形中的点, 那么
式中:N为山体个数;xk0和yk0为第k座山体中心对称轴的横坐标和纵坐标;hk为第k座山体的最大高度;xki和yki为第k座山体的横向斜度和纵向斜度。
在飞行环境中, 山体附近通常存在雷暴等极端气象, 本文视为飞行威胁区, 并通过球体近似等效表示, 且记第k座山体附近飞行威胁区的球心坐标为 (xks0, yks0, zks0) , 半径为rk。
1.3 目标函数及航迹表示
在本文中, 执行任务的某型无人机, 其航迹规划的目标函数是生成一条由起始点到目标点的无碰撞可行航迹。采用q (x, y, z, θ, ψ) 表示无人机在飞行空域中某特定位置的特定姿态, 那么 (x, y, z) 则表示无人机所在航迹点, θ表示无人机的水平转弯角, ψ表示无人机的竖直爬升角或下滑角。采用r (q) 表示由起始点qinitial到目标点qgoal的无碰撞可行航迹, 那么航迹规划的过程可以写成如下形式:
1.4 数学模型表述
基于1.1~1.3节, 得到无人机航迹规划问题的数学模型。
目标函数:
经典RRT-Connect算法仅依赖本身隐含的连接启发式贪婪搜索函数, 已能获得可行航迹, 虽然不是最优航迹, 且可行航迹点搜索时间成本较高, 但在不引入外部数学模型就能求解得出无人机的可行航迹, 这是该算法的一个显著特点;当引入数学模型求解无人机航迹规划问题后, 随机树对于航迹点的搜索将由之前的全空间贪婪搜索转为在满足数学模型约束函数的区域内贪婪搜索, 极大地减小了搜索空间范围, 同时节约了可行航迹点搜索时间, 并在一定程度上缩短了生成的可行航迹总长度。
二、部分源代码
%% 绘制障碍物(以球为例,主要是方便计算)
x0=100; y0=100; z0=100;%球心
circleCenter = [100,100,100;50,50,50;100,40,60;150,100,100;60,130,50];
r=[50;20;20;15;15];%半径
%下面开始画
figure(1);
[x,y,z]=sphere;
for i = 1:length(circleCenter(:,1))
mesh(r(i)*x+circleCenter(i,1),r(i)*y+circleCenter(i,2),r(i)*z+circleCenter(i,3));hold on;
end
axis equal
%% 参数
source=[10 10 10];
goal=[150 150 150];
stepsize = 10;
threshold = 10;
maxFailedAttempts = 10000;
display = true;
searchSize = [250 250 250]; %探索空间六面体
%% 绘制起点和终点
hold on;
scatter3(source(1),source(2),source(3),'filled','g');
scatter3(goal(1),goal(2),goal(3),'filled','b');
tic; % tic-toc: Functions for Elapsed Time
RRTree = double([source -1]);
failedAttempts = 0;
pathFound = false;
%% 循环
while failedAttempts <= maxFailedAttempts % loop to grow RRTs
%% chooses a random configuration
if rand < 0.5
sample = rand(1,3) .* searchSize; % random sample
else
sample = goal; % sample taken as goal to bias tree generation to goal
end
三、运行结果

四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]田疆,李二超.用于无人机三维航迹规划改进连接型快速扩展随机树算法[J].航空工程进展. 2018,9(04)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
边栏推荐
- pinhole camera model
- Daily question 1: remove elements
- 滑环电机是如何工作的
- Single machine multi instance MySQL master-slave replication
- 学习通否认 QQ 号被盗与其有关:已报案;iPhone 14 量产工作就绪:四款齐发;简洁优雅的软件早已是明日黄花|极客头条
- EasyCVR接入Ehome协议的设备,无法观看设备录像是什么原因?
- 接雨水系列问题
- Two fresh students: one is practical and likes to work overtime, and the other is skilled. How to choose??
- 手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??
- The magical zero knowledge proof can not only keep secrets, but also make others believe you!
猜你喜欢

674. longest continuous increasing sequence

EasyCVR集群版本替换成老数据库造成的服务崩溃是什么原因?
![[staff] pedal mark (step on pedal ped mark | release pedal * mark | corresponding pedal command in MIDI | continuous control signal | switch control signal)](/img/2b/e358b22d62ce6d683ed93418ff39fe.jpg)
[staff] pedal mark (step on pedal ped mark | release pedal * mark | corresponding pedal command in MIDI | continuous control signal | switch control signal)

EasyCVR服务private.pem文件被清空,导致无法正常启动该如何处理?

Daily question 1: the number of numbers in the array 2

Redis常用命令手册

Excel使用过程中的参考资料

Matrix compression
![User login (remember the user) & user registration (verification code) [using cookie session technology]](/img/31/c84c1e15aa1c73814c4ad643e3dd36.png)
User login (remember the user) & user registration (verification code) [using cookie session technology]

Depth first search to realize the problem of catching cattle
随机推荐
Is it safe and reliable for qiniu school to help open a securities account? How to drive
畢業三年的25歲碼農總結
Basic use of Chrome browser
Operation level smart campus system source code smart campus applet source code + electronic class card + face recognition system
光纤滑环价格过高的原因
Daily English articles, reading accumulation
养老年金险是理财产品吗?预期收益在哪看?
Getting started with SQL
滑环的基本结构及工作原理分析
Daily question 1: remove elements
Depth first search to realize the problem of catching cattle
[image registration] SAR image registration based on particle swarm optimization Improved SIFT with matlab code
[image detection] line recognition based on Hough transform (fitting angle bisector) with matlab code
浏览器缓存库设计总结(localStorage/indexedDB)
Cross domain problem of canvas drawing caused by background image cache
674. longest continuous increasing sequence
旋轉接頭安裝使用注意事項
Nodejs安装和下载
毕业三年的25岁码农总结
WPF 实现心电图曲线绘制