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

news/2024/4/27 20:00:44

目录

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:Nfor m=1:Nsxs(:,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) == 1dr_in = 1e20; endd_in  = min(d);if isempty(d) == 1d_in  = 1e20; enddl_in = min(dl);if isempty(dl) == 1dl_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 ondrawnow;   if sqrt((Xs(time)-X_end)^2+(Ys(time)-Y_end)^2)<0.2break;end
endfigure;
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

《动手学深度学习》 第3章 线性神经网络 部分笔记

文章目录 前言一、线性回归1.知识点&#xff08;1&#xff09;解析解&#xff08;2&#xff09;泛化&#xff08;3&#xff09;随机梯度下降&#xff08;4&#xff09;python列表推导&#xff08;5&#xff09;全连接层 二、线性回归的从零开始实现1.知识点&#xff08;1&#…

每日一题 --- 977. 有序数组的平方[力扣][Go]

今天这一题和昨天的知识点是一样的&#xff0c;就是双指针法。 题目&#xff1a; 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-1,0,3,1…

Django验证码(二)

一、生成图片 1.1、说明 通过pillow模板库生成图片,步骤如下 安装pillow模板建立 生成验证码内容 方法建立 生成验证码颜色 方法建立 生成验证码 方法1.2、需要安装 Pillow 库 pip install Pillow==9.3.01.3、生成验证码内容 import randomdef random_str(length=4):"…

Java学习笔记(17)

集合进阶 单列集合 Collection List set Add clear remove contains isempty size Add方法可能也会添加失败 同理&#xff0c;可能删除失败 Contains细节 为什么要重写equals&#xff1f; 因为contains底层用的是object类中的equals方法&#xff0c;比较的是地址值&#xf…

目标检测——PP-YOLO算法解读

PP-YOLO系列&#xff0c;均是基于百度自研PaddlePaddle深度学习框架发布的算法&#xff0c;2020年基于YOLOv3改进发布PP-YOLO&#xff0c;2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet&#xff0c;2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列&#xff0c;所以放一起解…

微服务day05(中) -- ES索引库操作

索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。 我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 2.1.mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型&#xff0c;…