多无人机空中机器人施工任务分配(Matlab代码实现)

时间:2022-12-12 22:52:46

 ????‍????个人主页:研学社的博客 

????????????????欢迎来到本博客❤️❤️????????

????博主优势:????????????博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

????????????本文目录如下:????????????

目录

????1 概述

????2 运行结果

????3 Matlab代码实现

????4 参考文献


多无人机空中机器人施工任务分配(Matlab代码实现)

????1 概述

空中机器人作为近年来新兴的热点得到了广泛的关注。小型空中机器人在没有外界卫星定位信号的前提下的导航是空中机器人的研究内容中比较重要的一个问题,也提出了很多新的导航方法,视觉导航是其中比较重要的一个。

本文旨在实现多机器人任务分配(MRTA)问题的任务分配算法。

????2 运行结果

多无人机空中机器人施工任务分配(Matlab代码实现)

多无人机空中机器人施工任务分配(Matlab代码实现) 多无人机空中机器人施工任务分配(Matlab代码实现)

多无人机空中机器人施工任务分配(Matlab代码实现) 多无人机空中机器人施工任务分配(Matlab代码实现)

多无人机空中机器人施工任务分配(Matlab代码实现)

部分代码:

clc;
clear;
%% initialization

% Define the position of the robots
% % Robot_position=[1,2;1,4;1,6;1,8;1,10];
% UAV_position=[5,7;3,2;7,13;6,9;5,5];
UAV_position = [70,69;89,25;86,45];
% % Define the target positions
% Target_position=[3,6;5,4;5,6;5,8;8,6];
Target_position = [80,63;22,49;61,40];

% Random position
UAV_number=3; % The number of UAVs
task_number=3; % The number of Target positions
SizeofMap = [1 100];
size_UAV = 0;
size_task = 0;
 
% while (size_UAV<UAV_number && size_task < task_number)
%     UAV_position = randi(SizeofMap,UAV_number,2);
%     Target_position = randi(SizeofMap,task_number,2);
%     % UAV_position = unique(UAV_position,'rows');
%     % Target_position = unique(Target_position,'rows');
%     size_UAV = size(unique(UAV_position,'rows'),1);
%     size_task = size(unique(Target_position,'rows'),1);
% end


% Initial the speed of UAVs
UAV_speed=ones(UAV_number,1)*50;

%% Construct the cost matrix
% while( task_number >= UAV_number)
judge = 1;
while (isempty(Target_position) == 0)
    
    if (judge == 1)
        Cost=CostMatrixConstruction(UAV_position,Target_position,UAV_number,UAV_speed,task_number);
        
        %% Hungarian Algorithm
        Best_Strategy = HungarianAlgorithm(Cost);
        % find the allocation method for at that moment
        Best_Strategy=Best_Strategy(:,1:UAV_number);
        Best_Strategy = unique(Best_Strategy,'rows');
        if (size(Best_Strategy,1)>1)
            Best_Strategy = Best_Strategy( randi(size(Best_Strategy,1)) ,:);
        end
    end

????3 Matlab代码实现

????4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1] Chen, Xia, and Yan-zhi Qiao. "Summary of unmanned aerial vehicle task allocation." Journal of Shenyang Aerospace University 33.6 (2016): 1-7.

[2] Wang, Jianping, Yuesheng Gu, and Xiaomin Li. "Multi-robot task allocation based on ant colony algorithm." Journal of Computers 7.9 (2012): 2160-2167.