当前位置: 首页 > article >正文

viple模拟器使用(四):unity模拟器中实现沿右墙迷宫算法

沿右墙迷宫算法

引导

线控模拟可以使得通过用户手动操作,实现机器人在模拟环境下在迷宫中行走(即:运动),算法可以使得机器人按照一定的策略自动行走,沿右墙迷宫算法就是其中的一种策略。

目的

运行程序后,使得机器人能自动根据算法原理走出迷宫(或者运行程序后,通过按键事件,让机器人自动走出迷宫)

原理

默认直行(优先级次之,为2):右侧无路情况下,前方测量值大于设定值,说明前方有路

右侧有路则右转(优先级最高,为1):只要检测要右侧有路,即右方测量值大于设定值,则右转

前方无路则左转(优先级最低,为3):右侧无路且前方无路的情况下,只能往左转。

总结

使用了两个传感器:右侧距离传感器、前方距离传感器,对应的端口号分别是1、2,分别用于测量距离。(注意:Web 2D模拟器中实现沿右墙迷宫算法,右侧使用的是距离传感器,前方使用的是触觉传感器)

根据原理进行程序编写

主机

由于使用的是unity模拟器,那么,主机的配置,和线控模拟中的配置一致。

初始化

有两种方案:一种是运行程序后,直接运行;另一种是运行程序后,按键再运行。(个人更推荐后者,原因:unity模拟器中,需要运行模拟器和viple,存在界面切换,第二种需要用户按键后才开始出现运行效果,即,用户可以看到完整的运行,即使算法有缺陷,都更容易去观察现象,再进行DeBug)

方式1:

方式2:

右方距离传感器

右侧距离传感器,测量值大于设定的值,则表示右侧有路,然后右转。小技巧:右转完成后,先直行一段时间,避免右转完成后,立即检测右方是否有路,万一满足条件,就会出现来回行走的问题。

前方距离传感器

前方距离传感器,测量值大于设定值,则表示前方有路,此时保持直行即可,由于默认就是直行,所以,无需写程序。只需要判断测量值小于设定值,此时前方无路,左转即可。左转完成后,保持直行。

整体逻辑

设置isBusy变量,用来表示是否在转弯,在转弯,值为true,没有在转弯,值为false,所以需要进行标记,由于布尔类型的变量,默认初始化的值是false,所以,无需写初始化程序都可以(如果您是初学者,可以拖一个数据活动和一个变量活动来进行初始化)。

测试

unity模拟器沿右墙迷宫算法

如果按照逻辑写出来的程序出现按键后,机器人连续右转,造成了右转转圈的情况,说明右侧传感器测量值一直都是大于设定值,所有造成了连续右转,为了避免这种情况,你就要破坏右转成立的条件,首先,传感器只能读取数据,不能修改数据,所以,只能修改设定值,此时,测量值大于设定值造成了连续右转,测量值不能改,那就只能改设定值,需要思考设置值是大了还是小了,当测量值为20,设定值为10,就满足右转条件,测量值不能更改,设定值要如何改,才能让条件不成立?显然就是设定值小了,需要改大一些,假如改为30,那么,20>30不成立,就实现了破坏右转条件,避免了连续右转问题。


http://www.kler.cn/a/148831.html

相关文章:

  • 提高数据处理效率:JavaScript 操作 XLSX 文件的最佳实践
  • 相机光学(四十)——2x2 Adjacent Pixel Binning
  • 学习日志010--python异常处理机制与简单文件操作
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
  • 准确率调整研究中心
  • 基于Python的网上银行综合管理系统
  • 门面模式-C++实现
  • java中IO知识点概念
  • GoLong的学习之路,进阶,RabbitMQ (消息队列)
  • Jmeter-分布式压测(远程启动服务器,windows)
  • 代码随想录-刷题第九天
  • 通义千问 Qwen-7B-Chat-Int4 模型本地化部署
  • 机器人规划算法——movebase导航框架源码分析
  • Linux的软件安装
  • linaro交叉编译工具链下载与使用笔记
  • Nacos 端口偏移量说明
  • java文件上传以及使用阿里云OSS
  • 【ArcGIS Pro微课1000例】0038:基于ArcGIS Pro的人口密度分析与制图
  • 11 动态规划解最后一块石头的重量II
  • TiDB 在咪咕云原生场景下的实践
  • 人工智能原理复习--知识表示(一)
  • 图论 2023.11.27
  • springboot 自定义starter逐级抽取
  • MATLAB算法实战应用案例精讲-【图像处理】FPGA
  • 编写安全 JavaScript 代码的最佳实践
  • Gossip协议理解