无人机集群编队控制

这篇具有很好参考价值的文章主要介绍了无人机集群编队控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

编队控制代码地址

无人机编队控制,多无人机集群编队,无人机集群 主要实现控制多架无人机从任意随机初始位置,运动成规则编队。需要安装cvx工具包CVX: Matlab Software for Disciplined Convex Programming | CVX Research, Inc.

二、代码

% This script simulates formation control of a group of UAVs.
%
% -------> Scale of the formation is NOT controlled in this demo!
%
% -------> IMPORTANT:  CVX must be installed before running! 
%
% -------> Download CVX from:  http://cvxr.com/cvx/
%
%
% This program is a free software: you can redistribute it and/or modify it
% under the terms of the GNU lesser General Public License, 
% either version 3, or any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY. See the GNU Lesser General Public License 
% for more details <http://www.gnu.org/licenses/>.
%
addpath('Helpers');


%% Simulation parameters for triangle formation

% Desired formation coordinates
% qs = [0    -2    -2    -4    -4    -4
%       0    -1     1    -2     0     2]*sqrt(5)*2;
% 
% % Random initial positions
% q0 = [ 12.9329    8.2202   10.2059    1.1734    0.7176    0.5700
%         6.6439    8.5029    5.5707    6.8453   11.0739   14.3136];
% 
% % Random initial heading angles
% theta0  = [5.6645    4.2256    1.8902    4.5136    3.6334    5.7688].';   
% 
% n       = size(qs,2);       % Number of agents
% 
% % Graph adjacency matrix
% adj = [ 0     1     1     0     0     0
%         1     0     1     1     1     0
%         1     1     0     0     1     1
%         0     1     0     0     1     0
%         0     1     1     1     0     1
%         0     0     1     0     1     0];

%% Simulation parameters for square formation

% Desired formation coordinates 10   所需编队坐标 (10个无人机所形成的形状)
qs = [0     0     0    -1    -1    -1    -2    -2    -2
      0    -1    -2     0    -1    -2     0    -1    -2]*15;
  
%一字型
% qs = [0   -1    -2    -3      
%       0   -1    -2    -3]*15;

% Random initial positions 1.5
q0 = [18.2114   14.9169    7.6661   11.5099    5.5014    9.0328   16.0890    0.5998    1.7415;
      16.0112   16.2623   12.3456   10.6010    4.9726    4.5543   19.7221   10.7133   16.0418]*1.5;
%一字形
% q0 = [ 27.3171   11.4992   13.5492   2.6122;
%        24.0168   18.5184   6.8314    24.0627]*1.5;

% Random initial heading angles
theta0  = [6.2150    0.4206    5.9024    0.1142    4.2967    4.9244    3.3561    5.5629    5.6486].';

% theta0  = [6.2150    0.4206    5.9024    0.1142].';

n       = size(qs,2);       % Number of agents

%theta0 = 2*pi*rand(n,1);

% Graph adjacency matrix
adj = [  0     1     0     1     0     0     0     0     0  %第一个无人机和第2第4个
         1     0     1     0     1     0     0     0     0
         0     1     0     0     0     1     0     0     0
         1     0     0     0     1     0     1     0     0
         0     1     0     1     0     1     0     1     0
         0     0     1     0     1     0     0     0     1
         0     0     0     1     0     0     0     1     0
         0     0     0     0     1     0     1     0     1
         0     0     0     0     0     1     0     1     0];

     
%针对一字型,新通信矩阵
% adj = [  0     1     0     1
%          1     0     1     0
%          0     1     0     1
%          1     0     1     0];     
%% Parameters

T           = [0, 30];           % Simulation time interval  模拟时间

vSat        = [3, 5];            % Speed range 3 5
omegaSat    = [-pi/4, pi/4];     % Allowed heading angle rate of change
p           = [1; 1];            % Desired travel direction  行进方向


%% Computing formation control gains

% Find stabilizing control gains (Needs CVX)  增益控制矩阵
A = FindGains(qs(:), adj);   %无人机形状  无人机间连接矩阵

% % If optimization failed, perturbe 'qs' slightly:
% A = FindGains(qs(:)+0.0001*rand(2*n,1), adj);

%% Simulate the model

Tvec = linspace(T(1), T(2), 50); %用于产生T1,T2之间的50点行矢量  也就是取0~30s内50个插值点
state0 = [q0(:); theta0];  % Initial state  初始位置和初始方位角 27*1

% Parameters passed down to the ODE solver
par.n        = n;%无人机数目
par.A        = A;%增益矩阵
par.p        = p;%行进方向
par.vSat     = vSat;%速度范围
par.omegaSat = omegaSat;%方向角度变化范围

% Simulate the dynamic system
opt = odeset('AbsTol', 1.0e-06, 'RelTol', 1.0e-06);%用参数名以及参数值设定解法器的参数
[t,stateMat] = ode45(@PlaneSys_Ver3_2, Tvec, state0, opt, par);%数值分析中数值求解微分方程组的一种方法,4阶五级Runge-Kutta算法
%t 0-30s内的50个插值

%% Make movie and plot the results

close all

% Simulation parameters
plotParam.adj       = adj;
plotParam.N         = n;
plotParam.stateMat  = stateMat;%50*27包含所有无人机的位置信息
plotParam.trace     = 50;           % Trace length  跟踪范围大小
plotParam.qs = qs;%编队形状

% Make movie and snapshots
fileName = 'UAVSim';

MoviePlaneVer2_1(fileName, plotParam)%用来绘制结果

无人机编队控制,多无人机集群编队,无人机集群

 无人机编队控制,多无人机集群编队,无人机集群

三、思路解读

首先每个无人机包含的信息有(x,y)坐标以及方向角yaw,程序开始前需要给这些无人机初始一些位置信息和角度信息,也就是代码中的q0位置信息和theta0方位角信息,然后确定无人机群的飞行方向,也就是p=[1,1],表示向右上角飞。无人机编队最后的形状,由矩阵qs确定,通过(x,y)坐标确定无人机编队的最终形状。

以上初始化信息确定好后,需要确定仿真时间,仿真关键点个数,也就对应的是

Tvec = linspace(T(1), T(2), 50); %用于产生T1,T2之间的50点行矢量  也就是取0~30s内50个插值点

接着就是使用微分方程求解编队按着预设方向飞行的时候,各个无人机位置信息和角度信息。 关键函数为ode45,返回值stateMat大小为50*27,每一行数据代表一个时刻点无人机的位置和角度信息,前18个分别为x,y坐标信息,后9个为方位角yaw的信息。文章来源地址https://www.toymoban.com/news/detail-744051.html

到了这里,关于无人机集群编队控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022全国大学生数学建模B题:无人机遂行编队飞行中的纯方位无源定位 完整详细解析

     题目主体需要关注的地方attention!!! 1.无人机集群在遂行编队飞行时,为避免外界干扰,应尽可能保持电磁静默,少向外发射电磁波信号。 2.接收信号的无人机所接收到的方向信息约定为:该无人机与任意两架发射信号无人机连线之间的夹角 根据三架无人机相对位置信息进行

    2024年02月11日
    浏览(41)
  • 【无人机控制】基于模型预测控制MPC无人机实现轨迹跟踪附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年04月28日
    浏览(37)
  • 无人机基础知识:多旋翼无人机各模式控制框图

    无人机(Unmanned Aerial Vehicle),指的是一种由动力驱动的、无线遥控或自主飞行、机上无人驾驶并可重复使用的飞行器,飞机通过机载的计算机系统自动对飞行的平衡进行有效的控制,并通过预先设定或飞机自动生成的复杂航线进行飞行,并在飞行过程中自动执行相关任务和

    2023年04月09日
    浏览(139)
  • (无人机方向)ros小白之键盘控制无人机(终端方式)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ubuntu 18.04 pycharm ros melodic 做一个在终端中键盘输入指令,控制飞机起飞以及进入offbaord File-Settings-Project Interpreter-右边小齿轮Show All-选中正在使用的python 点击右边最下面的图标,打开Interpreter Path 添加/

    2024年02月15日
    浏览(46)
  • 多无人机集群智能flocking

    matlab2020可运行 GitHub - pareshbhambhani/MultiAgent-Flocking-framework: This is part of the current research I am working on.

    2024年01月16日
    浏览(32)
  • 无人机飞行控制实验平台

    无人机在研制过程中需要不断地进行飞行测试,而测试的过程不是万无一失的,飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏,更严重地甚至会造成外界伤害。 基于此我们推出了无人机的三旋转自由度 (3-DOF) 飞行平台测试系统,可以在横滚 (Roll)、俯仰 (Pitch

    2024年02月16日
    浏览(66)
  • 无人机飞行控制技术期末复习

    1.1.1、根据无人机尺寸和续航时间: 1.1.2、根据气动结构特征: 基本结构:机翼,机身,气动舵面,尾翼 优点:

    2024年01月16日
    浏览(99)
  • 超维空间S2无人机使用说明书——61、ROS无人机4G远程控制

    一、4G通信方案 我们的4G通信主要通过两种方式实现,一种是使用终端模拟器,比如Xshell、putty,另一种是使用远程软件,如nomachine。具体使用教程如下:机载电脑的相关环境已经配置完成,直接使用即可。 二、检查指示灯是否正常 出现两个蓝色灯,一个慢闪,表明当前网络

    2024年01月21日
    浏览(71)
  • 提高多旋翼无人机的悬停控制精度

    要提高多旋翼无人机的悬停控制精度,可以从以下几个方面进行优化: 优化传感器配置:选用高精度的传感器,如激光雷达、红外传感器等,可以提供更准确的姿态和位置信息。同时,对传感器进行定期标定和校准,确保其准确性。 改进控制算法:采用更为先进的控制算法

    2024年02月21日
    浏览(45)
  • 无人机仿真—PX4编译,gazebo仿真及简单off board控制模式下无人机起飞

    在上篇记录中,已经对整体的PX4仿真环境有了一定的了解,现如今就要开始对无人机进行起飞等仿真环境工作,在整体虚拟环境中如果程序能够安稳起飞降落,即可对无人机进行实飞操作。 需要做的是,通过PX4官网提供的基本程序包,在ROS工作空间下新建程序包对其进行运行

    2024年02月03日
    浏览(121)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包