💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
一、背景与目的
随着四旋翼飞行器在各个领域的广泛应用,如航拍、物流配送、环境监测等,其在复杂环境中的自主导航和路径规划问题变得至关重要。本研究旨在利用贪婪梯度下降算法为四旋翼飞行器进行有效的路径规划,使其能够在存在障碍物的环境中安全、高效地从起始位置到达目标位置。
二、贪婪梯度下降算法原理
贪婪梯度下降算法结合了贪婪算法和梯度下降算法的特点。贪婪算法在每一步选择局部最优解,以快速接近目标。而梯度下降算法通过计算目标函数的梯度来确定下降方向,以最小化目标函数。在路径规划中,目标函数通常考虑路径长度、安全性(与障碍物的距离)等因素。该算法不断地在当前位置评估周围的可行方向,选择使目标函数值下降最快的方向前进,同时避免与障碍物发生碰撞。
三、Matlab 仿真过程
- 环境建模:使用 Matlab 建立四旋翼飞行器的运行环境,包括障碍物的位置、大小和形状,以及起始位置和目标位置的设定。
- 算法实现:在 Matlab 中编程实现贪婪梯度下降算法,包括计算目标函数、确定可行方向、更新飞行器位置等步骤。
- 仿真运行:启动仿真,让四旋翼飞行器从起始位置开始,按照算法规划的路径飞行,同时实时监测飞行器与障碍物的距离,确保避障效果。
- 结果分析:分析仿真结果,包括路径长度、飞行时间、避障成功率等指标,评估算法的性能。
📚2 运行结果
部分代码:
function [data, params] = simulate
% Parameters
% - gravity
params.g = 9.81;
% - mass
params.m = 0.7;
% - moment of inertia
params.J = diag([0.004, 0.005, 0.007]);
% - spar length
params.l = 0.17;
% - aerodynamic force and moment coefficients
params.kF = 1e-5;
params.kM = 1e-7;
% - maximum spin rate
params.sigmamax = (1e3);
% - radius of bounding volume (sphere) around quadrotor
params.r = 3*params.l;
% - sample time
params.dt = (1/50);
% Simulation
% - initial time
t0 = 0;
% - initial state
o0 = [-1.5; 1; -2];
theta0 = [0; 0; 0];
v0 = [0; 0; 0];
w0 = [0; 0; 0];
x0 = [o0; theta0; v0; w0];
% - final time
t1 = 10;
% Problem
% - desired position
o_desired = [-1.5; 1.5; -2];
% - goal position
o_goal = [1.5; -1.0; -1.5];
% - obstacles
% * create an empty cell array to hold obstacles
obst = {};
% * uncomment this line to add a single spherical obstacle (center, radius)
% obst = AddObstacle_Sphere(obst, [0; 1; -2], 0.5)
% add n randomly located spherical obstacles:
n = 20;
obst = AddObstacle_RandomSpheres(obst, n, 0.1, 0.5, 2.5, 2.5, 2.5, ...
o_desired, o_goal, params);
% DESIGN
% - controller
params.xe = [o_desired;zeros(9,1)];
params.ue = [0;0;0;params.m*params.g];
[Ad,Bd] = getAdBd(params.xe,params.ue,params.dt,params.m,params.g,params.J);
Q = diag([100,100,100,1,1,1,1,1,1,1,1,1]);
R = diag([1,1,1,0.25]);
params.K = dlqr(Ad,Bd,Q,R);
% - planner
params.k_att = 1;
params.b_att = 1;
params.k_rep = 1.1;
params.b_rep = .1;
params.k_des = 1*params.dt;
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]周贤祺,徐锦法.倾转四旋翼飞行器三维过渡走廊分析与过渡路径确立[J/OL].航空工程进展:1-10[2024-10-12].http://kns.cnki.net/kcms/detail/61.1479.V.20240923.1313.002.html.
[2]盖玉林,孙悦,陈明,等.基于扰动观测和快速变功率的四旋翼非奇异终端滑模控制[J/OL].控制工程:1-9[2024-10-12].https://doi.org/10.14107/j.cnki.kzgc.220240225.