ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【机器人栅格地图】基于遗传算法求解机器人栅格地图路径规划问题matalab代码

2022-02-01 12:00:53  阅读:173  来源: 互联网

标签:路径 机器人 地图 pop 栅格 single slice 移动机器人 new


1 简介

目前,随着智能机器人技术的发展,人们对移动机器人的导航,动态避障,路径规划等方面提出了更高的要求。移动机器人运动环境的多变性和复杂性,决定了移动机器人路径规划问题是机器人领域一个研究重点。路径规划作为移动机器人研究中的一个重要研究内容,它是移动机器人按照某一性能指标(如距离、时间、能量等)寻找一条从起始状态到目标状态无碰撞的最优或次最优路径,使之尽可能的平滑和安全。遗传算法是建立在自然选择和群体遗传学基础上的随机、迭代和进化过程,是路径规划研究领域中的一种十分有效地算法。本论文在结合目前多种路径规划方法优缺点的基础上,选择遗传算法来解决移动机器人的路径规划问题。论文在阐述移动机器人的研究状况和发展趋势的基础上,分析了目前移动机器人的路径规划方法,重点研究了基于遗传算法的移动机器人路径规划方法。主要内容有:首先,采用栅格建立地图的方法建立机器人的地图模型,并用序列号法进行编码以及用间断无障碍路径结合启发式方法产生遗传算法的初始种群;其次,选取路径最短设定适应度函数;最后,进行遗传操作,包含有:用轮赌盘方法进行选择、用重合点交叉法进行交叉、以一个较小的概率进行变异和交叉概率和变异概率的自适应调整方法等内容。论文是在静态环境下,对移动机器人进行的全局路径规划,利用MATLAB仿真对移动机器人路径规划进行模拟,从而验证了这种仿生的智能算法的有效性。

2 部分代码

% 变异操作

% 函数说明

% 输入变量:pop:种群,pm:变异概率

% 输出变量:newpop变异以后的种群

function [new_pop] = mutation(pop, pm, G, x)

[px, ~] = size(pop);

new_pop = {};

for i = 1:px

    % 初始化最大迭代次数

    max_iteration = 0;

    single_new_pop = pop{i, 1};

    [~, m] = size(single_new_pop);

    % single_new_pop_slice初始化

    single_new_pop_slice = [];

    if(rand < pm)

        while isempty(single_new_pop_slice)

            % 生成2-(m-1)的两个随机数,并排序

            mpoint = sort(round(rand(1,2)*(m-3)) + [2 2]);

            single_new_pop_slice = [single_new_pop(mpoint(1, 1)-1) single_new_pop(mpoint(1, 2)+1)];

            single_new_pop_slice = generate_continuous_path(single_new_pop_slice, G, x);

            %max_iteration = max_iteration + 1;

            if max_iteration >= 100000

                break

            end

        end

        if max_iteration >= 100000

            new_pop{i, 1} = pop{i, 1};

        else

            new_pop{i, 1} = [single_new_pop(1, 1:mpoint(1, 1)-1), single_new_pop_slice(2:end-1), single_new_pop(1, mpoint(1, 2)+1:m)];

        end

        % single_new_pop_slice再次初始化

        single_new_pop_slice = [];

    else

        new_pop{i, 1} = pop{i, 1};

    end

end

3 仿真结果

4 参考文献

[1]崔建军. (2010). 基于遗传算法的移动机器人路径规划研究. (Doctoral dissertation, 西安科技大学).​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

标签:路径,机器人,地图,pop,栅格,single,slice,移动机器人,new
来源: https://blog.csdn.net/qq_59747472/article/details/122763333

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有