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

目录

1.程序功能描述

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

3.核心程序

4.本算法原理

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

4.2 模糊系统与模糊逻辑

5.完整程序


1.程序功能描述

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

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

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

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

机器人模型如图所示

4.控制系统的输入为机器人正前方障碍物的距离df、左前方障碍物的距离dl、右前方障碍物的距离dr、机器人运动方向与目标方向之间的夹角(航向角)α,输出为机器人左、右轮的速度vlvr(或者为机器人的速度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度方向,所以在实际工作的时候,

df

df

df

Alpha

Nr-近

Nr-近

Nr-近

五种角度

Nr-近

Nr-近

Ml-中

五种角度

Nr-近

Nr-近

Fr-远

五种角度

Nr-近

Ml-中

Nr-近

五种角度

Nr-近

Ml-中

Ml-中

五种角度

Nr-近

Ml-中

Fr-远

五种角度

Nr-近

Fr-远

Nr-近

五种角度

Nr-近

Fr-远

Ml-中

五种角度

Nr-近

Fr-远

Fr-远

五种角度

5.完整程序

VVV

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件算法开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值