💥1 概述
针对多移动机器人运动协调中的动态安全避碰问题,在分析速度障碍法原理的基础上,设计用于机器人之间相互避让的互动速度法则,并通过制定机器人的碰撞时间、碰撞距离因子对构型障碍的大小进行实时调整,把运动障碍物、动力学约束下的多步可达窗口、目标点都映射到一种速度变化空间当中,使多机器人的动态避碰问题转化为一种最优化问题,并构造了新的优化评价函数;设计了基于改进速度障碍法的机器人动态避碰规划算法。仿真实验表明,该方法有效地克服了碰撞冲突,实现了多机器人之间的运动协调控制,提高了机器人追踪运动目标的快速性。
📚2 部分运行结果
🎉3 参考文献
[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.
👨💻4 Matlab代码
主函数部分代码:
%% 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