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

news/2024/10/10 14:13:21/文章来源:https://www.cnblogs.com/softcodes/p/18456218

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: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度方向,所以在实际工作的时候,

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验二

任务一 源代码1 #include <stdio.h>2 #include <time.h>3 4 #define N 55 #define N1 3976 #define N2 4767 #define N3 218 int main(){9 10 int random_major,random_no; 11 int cnt; 12 srand(time(NULL)); 13 14 cnt=0; 15 whil…

记录一次本地安装AI ollama大模型数据对话 的经历

浏览器打开 Ollama官网 下载对应的版本,我这里下载的 是对应 windows的版本,下载后直接运行安装安装完成后 打开 dos控制台,win+r,cmd那个,输入ollama 如果显示如下截图内容,就说明安装成功了,接下来就是下载 具体的 大数据库了 安装大模型前,建议先修改环境变量,因…

APP应用分发多个步骤和策略过程,如何进行app应用分发?

进行APP应用分发是一个涉及多个步骤和策略的过程,以下是对该过程的详细解析: 一、前期准备应用程序准备:开发人员需要确保应用程序已经经过完整的测试和质量保证,包括功能测试、用户体验测试、性能测试等,以确保其稳定性和可靠性。 打包应用程序,将开发完成的APP进行编译…

利用 ACME 实现SSL证书自动化配置更新

SSL 证书自动化最近收到腾讯云的通知SSL证书要到期了,本想直接申请的发现现在申请的免费SSL证书有效期只有90天了,顺便了解了一下原因是包括Google在内的国际顶级科技公司一直都有在推进免费证书90天有效期的建议,免费证书加密等级低,难以应对今天日益复杂的网络环境,90天…

arm imx6ull docker启动失败问题查找与解决 内核配置相关

arm imx6ull docker启动失败问题查找与解决 内核配置相关1、增加POSIX Message qeue:could not get initial namespace: no such file or directory CONFIG_POSIX_MQUEUE=y 2、增加namespace failed to set to initial namespace CONFIG_NAMESPACES=y 3、创建网络失败,veth配…

PictureBox实现进入换色,离开换色,点击换色

实现和Word标题栏类似的效果可以看到有三种颜色: 默认时是(243, 243, 243),鼠标进入时是这样(210, 210, 210),鼠标按下的瞬间变为了(177, 177, 177) 4个关键事件:MouseEnter、MouseLeave、MouseDown、MouseUp MouseEnter:在鼠标进入控件的可见部分时发生private void pictu…

Spring事务的1道面试题

每次聊起Spring事务,好像很熟悉,又好像很陌生。本篇通过一道面试题和一些实践,来拆解几个Spring事务的常见坑点。每次聊起Spring事务,好像很熟悉,又好像很陌生。本篇通过一道面试题和一些实践,来拆解几个Spring事务的常见坑点。 原理 Spring事务的原理是:通过AOP切面的方…

安装 Anaconda、PyTorch(GPU 版)库与 PyCharm

Anaconda 是一款巨大的 Python 环境集成平台,里面包含了 Python 解释器、Jupyter Notebook 代码编辑器以及很多的第三方库,所以安装 Anaconda 后我们无需再安装 Python 解释器,非常方便。 一、安装 Anaconda 1.卸载 Anaconda(可选) 如果我们原来的电脑上安装过 Anaconda,…

Ubuntu nginx 安装

1. 下载源码 下载页面:https://nginx.org/en/download.html 下载地址:https://nginx.org/download/nginx-1.27.2.tar.gz curl -O https://nginx.org/download/nginx-1.27.2.tar.gz 2. 依赖配置 sudo apt install gcc make libpcre3-dev zlib1g-dev openssl libssl-dev 3. 编译…

ArgoWorkflow教程(六)---无缝实现步骤间参数传递

之前我们分析了,Workflow、WorkflowTemplate 、template 3 者之间如何传递参数。 本文主要分析同一个 Workflow 中的不同 step 之间实现参数传递,比如将上一个步骤的输出作为下一个步骤的结果进行使用(而非以文件方式传递)。1. 概述 然后就是之前只分析了 Workflow、Workfl…

OOOPS:零样本实现360度开放全景分割,已开源 | ECCV24

全景图像捕捉360的视场(FoV),包含了对场景理解至关重要的全向空间信息。然而,获取足够的训练用密集标注全景图不仅成本高昂,而且在封闭词汇设置下训练模型时也受到应用限制。为了解决这个问题,论文定义了一个新任务,称为开放全景分割(Open Panoramic Segmentation,OPS…

如何将React项目,部署到Web服务器的Tomcat 上

将 React 应用部署到 Tomcat 服务器上通常需要将其构建为静态文件,然后将这些文件放入 Tomcat 的 webapps 目录。以下是具体步骤: 步骤指南 1. 构建 React 应用 首先,你需要在本地构建你的 React 应用。npm run build这会在项目根目录下生成一个 build 文件夹,里面包含了优…