• 复杂环境下多移动机器人路径规划研究(Matlab代码实现)


       目录

    💥1 概述

    📚2 部分运行结果

    🎉3 参考文献

    👨‍💻4 Matlab代码


    💥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

  • 相关阅读:
    【Java企业级项目】数字货币交易项目
    C++ Reference: Standard C++ Library reference: Containers: deque: deque: erase
    Golang手写RPC框架(day1)
    服务框架-day01-SpringCloud
    Spark SQL
    零基础小白学Node-RED(04):仪表板
    【大数据之Kafka】十二、Kafka之offset位移及漏消费和重复消费
    Java学习Day031(异常)
    数据库监控:关键指标和注意事项
    CAD丢失mfc140u.dll怎么办,mfc140u.dll丢失的解决方法分享
  • 原文地址:https://blog.csdn.net/m0_73907476/article/details/127587306