基于模糊神经网络的移动机器人路径规划matlab仿真

1.程序功能描述

基于模糊神经网络的移动机器人路径规划

1.环境地图中的障碍物为静态、未知障碍物,可以随机设置。(一般设置5~7个,为计算简便设置成规则性状的障碍物)

2.机器人的行进方向为X轴的正方向,X轴逆时针旋转90°即为Y轴。两驱动轮之间的距离为50cm,驱动轮的直径为30cm。机器人的最大运动速度设为0.8m/s

3.为简化计算,在机器人的正前方及沿顺、逆时针各偏转45°的方位布置传感器。

机器人模型如图所示

4.控制系统的输入为机器人正前方障碍物的距离df、左前方障碍物的距离dl、右前方障碍物的距离dr、机器人运动方向与目标方向之间的夹角(航向角)α,输出为机器人左、右轮的速度vl、vr(或者为机器人的速度v和转向角增量Δθ,其中转向角θ为世界坐标系与机器人坐标系X轴之间的夹角)。

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行


3.核心程序

for kk = 1:N

      for m=1:Ns

          xs(:,m) = [x(1,time-1) + Sense_radius*cos(Jd(m,1));

                      x(2,time-1) + Sense_radius*sin(Jd(m,1))];

          G1(m,1) = func_obstacle(xs(:,m),xobstacle,yobstacle);

          G2(m,1) = func_goal(xs(:,m),Pend);

          G3(m,1) = G1(m,1) + G2(m,1);

      end

      [val,bestone]=min(G3);

      %如果某个方向有多个障碍物,那么选择最近的那个

      %如果某个方向的距离集合为空集合,那么说明这个方向的障碍物为无穷远,直接赋值一个较大值

      dr_in = min(dr);

      if isempty(dr) == 1

          dr_in = 1e20;

      end

      d_in  = min(d);

      if isempty(d) == 1

          d_in  = 1e20;

      end

      dl_in = min(dl);

      if isempty(dl) == 1

          dl_in = 1e20;

      end

      %代入到模糊神经网络的四个变量

      %调用模糊神经网络的模型

      [v_fnn,Theta_fnn]=func_fnn_test(dr_in,d_in,dl_in,alpha);

      DELTA_Theta = Theta_fnn;

      V          = v_fnn;

      x(:,time) =[x(1,time-1)+lambda*cos(Jd(bestone,1));

                  x(2,time-1)+lambda*sin(Jd(bestone,1))];

  Deltalambda = V;

  Deltatheta  = DELTA_Theta;

  x(:,time)  =[x(1,time)+Deltalambda*cos(Jd(bestone,1)+Deltatheta);

                x(2,time)+Deltalambda*sin(Jd(bestone,1)+Deltatheta)]; 

      %更新坐标

      Xs(time)    = x(1,time);

      Ys(time)    = x(2,time); 

      Tes        = [Tes,Jd(bestone,1)+Deltatheta];

      Vs          = [Vs,Deltalambda];     

    end

    %画图

    plot(x(1,time),x(2,time),'r.')

    hold on

    drawnow; 

    if sqrt((Xs(time)-X_end)^2+(Ys(time)-Y_end)^2)<0.2

      break;

    end

end

figure;

subplot(211);

plot(Tes);

grid on

xlabel('times');

ylabel('theta')

subplot(212);

plot(Vs);

grid on

xlabel('times');

ylabel('speed')

06_017m

4.本算法原理

4.1 移动机器人路径规划问题概述

        在移动机器人领域,路径规划是一个核心任务,目标是在未知或已知环境中为机器人寻找一条从起始点到目标点的安全、有效且满足特定约束条件(如避障、最短距离等)的路径。数学上,通常将环境表示为一个离散或者连续的空间,并通过图论中的搜索算法来解决。

4.2 模糊系统与模糊逻辑

      控制系统的输出为机器人左、右轮的速度vl、vr(或者为机器人的速度v和转向角增量Δθ,其中转向角θ为世界坐标系与机器人坐标系X轴之间的夹角)。

df、dl、dr的模糊集合为{Nr,Ml,Fr} Nr-近  Ml-中  Fr-远

α的模糊集合为{NB,NS,Z,PS,PB}  NB-负大  NS-负小  Z-零  PS-正小  PB-正大

(当目标点位于机器人的右侧时航向角为α正,反之为负)

vl、vr、v的模糊集合为{Sw,Md,Ft}  Sw-慢速  Md-中速  Ft-快速

Δθ的模糊集合为{ NS,Z,PS } NS-负小  Z-零  PS-正小

整个模糊神经网络的基本结构如下图所示:

由于左右两个传感器正好在45度方向,所以在实际工作的时候,

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容