网站建设常用编程语言,怎样进入12345的公众号,上海服饰网站建设,室内设计是什么沿右墙迷宫算法
引导 线控模拟可以使得通过用户手动操作#xff0c;实现机器人在模拟环境下在迷宫中行走#xff08;即#xff1a;运动#xff09;#xff0c;算法可以使得机器人按照一定的策略自动行走#xff0c;沿右墙迷宫算法就是其中的一种策略。 目的 运行程序后实现机器人在模拟环境下在迷宫中行走即运动算法可以使得机器人按照一定的策略自动行走沿右墙迷宫算法就是其中的一种策略。 目的 运行程序后使得机器人能自动根据算法原理走出迷宫或者运行程序后通过按键事件让机器人自动走出迷宫 原理 默认直行优先级次之为2右侧无路情况下前方测量值大于设定值说明前方有路 右侧有路则右转优先级最高为1只要检测要右侧有路即右方测量值大于设定值则右转 前方无路则左转优先级最低为3右侧无路且前方无路的情况下只能往左转。 总结 使用了两个传感器右侧距离传感器、前方距离传感器对应的端口号分别是1、2分别用于测量距离。注意Web 2D模拟器中实现沿右墙迷宫算法右侧使用的是距离传感器前方使用的是触觉传感器 根据原理进行程序编写
主机
由于使用的是unity模拟器那么主机的配置和线控模拟中的配置一致。 初始化
有两种方案一种是运行程序后直接运行另一种是运行程序后按键再运行。个人更推荐后者原因unity模拟器中需要运行模拟器和viple存在界面切换第二种需要用户按键后才开始出现运行效果即用户可以看到完整的运行即使算法有缺陷都更容易去观察现象再进行DeBug
方式1 方式2 右方距离传感器
右侧距离传感器测量值大于设定的值则表示右侧有路然后右转。小技巧右转完成后先直行一段时间避免右转完成后立即检测右方是否有路万一满足条件就会出现来回行走的问题。 前方距离传感器
前方距离传感器测量值大于设定值则表示前方有路此时保持直行即可由于默认就是直行所以无需写程序。只需要判断测量值小于设定值此时前方无路左转即可。左转完成后保持直行。 整体逻辑 设置isBusy变量用来表示是否在转弯在转弯值为true没有在转弯值为false所以需要进行标记由于布尔类型的变量默认初始化的值是false所以无需写初始化程序都可以如果您是初学者可以拖一个数据活动和一个变量活动来进行初始化。
测试 unity模拟器沿右墙迷宫算法 如果按照逻辑写出来的程序出现按键后机器人连续右转造成了右转转圈的情况说明右侧传感器测量值一直都是大于设定值所有造成了连续右转为了避免这种情况你就要破坏右转成立的条件首先传感器只能读取数据不能修改数据所以只能修改设定值此时测量值大于设定值造成了连续右转测量值不能改那就只能改设定值需要思考设置值是大了还是小了当测量值为20设定值为10就满足右转条件测量值不能更改设定值要如何改才能让条件不成立显然就是设定值小了需要改大一些假如改为30那么2030不成立就实现了破坏右转条件避免了连续右转问题。