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

    目录

1 概述

2 运行结果

3 参考文献

‍4 Matlab代码


1 概述

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

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

2 运行结果

多无人机空中机器人施工任务分配(Matlab代码实现)_第1张图片

 多无人机空中机器人施工任务分配(Matlab代码实现)_第2张图片

 多无人机空中机器人施工任务分配(Matlab代码实现)_第3张图片

 多无人机空中机器人施工任务分配(Matlab代码实现)_第4张图片

 多无人机空中机器人施工任务分配(Matlab代码实现)_第5张图片

 

多无人机空中机器人施工任务分配(Matlab代码实现)_第6张图片

3 参考文献

[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.

‍4 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_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

你可能感兴趣的:(机器人,无人机,matlab,开发语言)