目录
1 概述
2 部分运行结果
3 参考文献
4 Matlab代码
针对多移动机器人运动协调中的动态安全避碰问题,在分析速度障碍法原理的基础上,设计用于机器人之间相互避让的互动速度法则,并通过制定机器人的碰撞时间、碰撞距离因子对构型障碍的大小进行实时调整,把运动障碍物、动力学约束下的多步可达窗口、目标点都映射到一种速度变化空间当中,使多机器人的动态避碰问题转化为一种最优化问题,并构造了新的优化评价函数;设计了基于改进速度障碍法的机器人动态避碰规划算法。仿真实验表明,该方法有效地克服了碰撞冲突,实现了多机器人之间的运动协调控制,提高了机器人追踪运动目标的快速性。
[1]孙树栋,林茂.基于遗传算法的多移动机器人协调路径规划[J].自动化学报,2000(05):672-676.DOI:10.16383/j.aas.2000.05.012.
[2]丁滢颍,何衍,蒋静坪.基于蚁群算法的多机器人协作策略[J].机器人,2003(05):414-418.DOI:10.13973/j.cnki.robot.2003.05.007.
主函数部分代码:
%% Main with simulation
%% Clear the previous
clear
clear dcaptTrajGenerator
close all
clc
%% Parameters
disp('Planning ...');
addpath(genpath('./'));
map = load_map('map1.txt', 0.1, 2.0, 0.25);
% num robots and goals
var.nbots = 5;
% num dimensions
var.n = 3;
% radius
var.R = 0.15; % 0.086 m
% boundary x axis and y axis
var.bound = [10,10,40]*1.7;
% max vel
var.vmax = 1;
% st time
var.t0 = 0;
% neighb dist
var.h = 3.7;
%% Assign the goals
% %% Plan path
% disp('Planning ...');
% map = load_map('maps/map1.txt', 0.1, 2.0, 0.25);
[start,goal] = generateStartGoal_dcapt(var, true);
start(:,3) = start(:,3)/4;
goal(:,3) = goal(:,3)/4;
% start = [0,0,0;
% 0,10,0;
% 10,0,0;
% 10,10,0];%[start(:,1),start(:,2),start(:,3)];
% goal = [10,10,10;
% 10,0,10;
% 0,10,10;
% 0,0,10];%[goal(:,1),goal(:,2),goal(:,3)];
var.goal = goal;
var.start = start;
%% init script
var.t0=0;
var.tf = computeTf_dcapt(start, goal, var.vmax);
times = [var.t0;var.tf];
% var.f = [1,2,3,4];
var.f = randperm(var.nbots);
%% Run trajectory
for qn = 1:var.nbots
startC{qn} = start(qn,:)';
goalC{qn} = goal(qn,:)';
end
完整代码见:复杂环境下多移动机器人路径规划研究