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

沿右墙迷宫算法原理

  1. 默认直行;
  2. 右侧有路,则右转;
  3. 前方无路,则左转。

由于unity模拟器中使用机器人移动动力控制和机器人转动角度控制来实现控制机器人前进、后退、暂停、左转、右转 。

程序编写

主机以及配置

通过内建事件初始化机器人运行(机器人+移动-动力控制的参数为0.5)

右侧有路,则右转(右方的距离传感器端口号为1)

如果想要快速找到适合的参数,可以在距离传感器的后面增加一个行打印,这样,可以将传感器的测量值打印出来,辅助找合适的参数。只需要测量值大于设定值,就可以让机器人识别到右侧有路,从而往右转。同样的道理,机器人刚出来就转弯,效果不好,也就是说,不希望机器人刚运行就转弯,所以,只需要破坏右转条件即可,由于测量值是来自于传感器,不能修改,只能读取,所以只能修改设定值(将设定值改大一些,例如:10(测量值)>3(设定值)成立,测量值不变,要使得条件不成立,就要把3改大一些,比如:改到11,条件就不成立了。如果将3改小,就会一直成立)。

前方无路,则左转(前方的距离传感器端口号为2)

注意:前方无路则左转,这是因为:右侧有路就右转了,所以,使用到前侧传感器,说明,右侧一定没有路了。

由于传感器没有输入流,所以,两端程序怎么排列都可以,不影响。

建议:写程序的时候,先写前方无路则左转,这是因为:模拟器中机器人的位置在左侧底部,机器人要前进一段距离,才满足右侧右路,然后观察是否有右转行为。

编写注意事项:

  • 前方无路则左转,左转完成后,继续直行。
  • 右侧有路则右转,右转后,需要直行一段距离,从而使得机器人能识别到右侧有障碍物,从而使用前侧传感器测量,前方有路,从而直行。

效果

unity模拟器沿右墙迷宫算法

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

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

相关文章

查理·芒格之死对伯克希尔·哈撒韦公司意味着什么?

来源:猛兽财经 作者:猛兽财经 虽然查理芒格是伯克希尔哈撒韦公司首席执行官沃伦巴菲特的重要合作伙伴,但猛兽财经认为查理芒格的去世并不会对伯克希尔哈撒韦的正常运营产生太大的影响,因为该公司长期以来一直是由巴菲特主导的。 …

C/C++内存管理(含C++中new和delete的使用)

文章目录 C/C内存管理(含C中new和delete的使用)1、C/C内存分布2、C语言中动态内存管理方式:malloc/calloc/realloc/free3、C动态内存管理3.1、new/delete操作内置类型3.2、new/delete操作自定义类型 4、operator new与operator delete函数5、…

ChatGPT到底是如何运作?

自从2022年11月30日发布以来,ChatGPT一直占据着科技届的头条位置,随着苹果的创新能力下降,ChatGPT不断给大家带来震撼,2023年11月7日,首届OpenAI开发者大会在洛杉矶举行,业界普遍认为,OpenAI的开…

走近科学之《MySQL 的秘密》

走近科学之《MySQL 的秘密》 mysql 存储引擎、索引、执行计划、事务、锁、分库分表、优化 1、存储引擎(storage engines) 存储引擎规定了数据存储时的不同底层实现,如存储机制、索引、锁、事务等。 可以通过 show engines 命令查看当前服务…

【JavaSE】:接口(二)

接口 一.对学生进行排序二.Clonable接口三.抽象类和接口的区别四.Object类 一.对学生进行排序 很明显我们直接对学生进行排序是会报错的,因为编译器也不知道你需要按照名字排还是分数排,我们点击报错位置进入sort内部。 在sort内部我们可以看到它把数组转…

泛微OA对接金蝶云星空方案分享(对接场景解析)

分享金蝶云星空跟泛微OA系统集成对接的方案分享,主讲审批流程对接,表单对接的两类场景。分别是金蝶云星空发起申请和泛微发起流程审批,最终实现统一管理。 数据集成主要有以下好处: (1)数据一致性&#xf…

东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园

11月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)与东南大学携手,于东南大学九龙湖校区金智楼一楼报告厅举办了“东南大学OpenHarmony技术俱乐部成立仪式暨OpenHarmony TSC专家进校园”活动。此次盛会标志着OpenHarmony开源社区和…

Mac M1 安装Docker打包arm64的python项目的镜像包

1、首先安装Docker,到官网下载,选择apple chip版 Docker中文网 官网 2、双击下载的dmg文件,在弹出框中之间拖拽到右边 3、打开docker,修改国内镜像源,位置在配置-DockerEngine "registry-mirrors": ["…

Go字符串类型

一、字符串 1、字符串 Go 语言里的字符串的内部实现使用 UTF-8 编码字符串带的值为双引号(")中的内容,可以在 Go 语言的源码中直接添加非ASCII 码字符 s1 : "hello" s2 : "您好" 2、字符串转义符 Go 语言的字符…

UE4 UE5 使用SVN控制

关键概念:虚幻引擎中使用SVN,帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存,则删除: DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传

【linux】基本指令(中篇)

echo指令 将引号内容打印到显示屏上 输出的重定向 追加的重定向 输出的重定向 我们学习c语言的时候当以写的方式创建一个文件,就会覆盖掉该文件之前的内容 当我们以追加的方式打开文件的时候,原文件内容不会被覆盖而是追加 more指令 10.more指令…

YOLOv8独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

基于51单片机超声波测距汽车避障系统

**单片机设计介绍, 基于51单片机超声波测距汽车避障系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的超声波测距汽车避障系统是一种用于帮助汽车避免碰撞和发生事故的设备,以下是一个基本…

Java面试-框架篇-Mybatis

Java面试-框架篇-Mybatis MyBatis执行流程延迟加载使用及原理一, 二级缓存来源 MyBatis执行流程 读取MyBatis配置文件: mybatis-config.xml加载运行环境和映射文件构造会话工厂SqlSessionFactory会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)操作数据库的接口, Ex…

从零开始学习typescript——数据类型

数据类型 以前我们用js编写代码的时候,都是直接使用let、var、const 来定义数据类型;js会在运行时来确定数据类型,但是在ts中,可以在声明时就可以指定数据类型。如果你学过其他编程语言,比如c、java就能更好的理解了。…

HTML5原生视频播放器组件video的videocontrolslist属性详解

HTML5提供了内置的视频播放控件,其中videocontrolslist是其中一个很有用的属性。videocontrolslist属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件。下面我们将从几个方面来介绍videocontrolslist的详细使用。 一、启用videocontrolslist videocont…

格式工厂——万能格式转换器

很多时候,大家从网络上下载的文件不一定是自己想要的类型,比如flv等视频文件,而强行改文件后缀名只会造成文件格式错误,无法打开;而很多文件的格式并不能轻易转换,且很多渠道都需要收费。今天介绍的这款For…

实力登榜!迅镭激光荣膺“江苏省瞪羚企业”称号!

11月24日,江苏省生产力促进中心发布“江苏省独角兽企业和瞪羚企业评估结果”,迅镭激光凭借在技术研发、产品创新、市场服务等方面的取得的领先成就,荣膺“江苏省瞪羚企业”称号! “瞪羚企业”是指以科技创新或商业模式创新为支撑,…

一、Gradle 手动创建一个项目

文章目录 Gradle 介绍Gradle Wrapper Gradle 使用手动安装 Gradle初始化 Gradle 介绍 Gradle 是一个快速的、可信的、适应性强的自动化构建工具,它是开源的。它使用优雅的并且可扩展的描述性语言。其他的介绍在官网可以了解。 Gradle Wrapper 官方建议使用 Gradl…

c语言:模拟实现各种字符串函数

strlen函数: 功能:获取到\0之前的的字符个数。 代码模拟实现函数: //strlen //这里用了递归法, //如abc,1bc,然后11c,接着111,最后读取到\0,1110,得到结果3…