基于二阶段双向搜索的解魔方机器人研究

来源 :科技风 | 被引量 : 0次 | 上传用户:wangbenny918
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:设计了能自动复原三阶魔方的解魔方机器人。提出了“二阶段双向搜索法”,对机器人的研究主要包括以下几个方面:计算机程序求解魔方、单片机程序控制步进电机、摄像头扫描魔方并识别颜色、设计制造金属实物框架和机械手。本文重点讨论了计算机程序求解魔方的思路,即利用大幅度缩短求解时间。该机器人与现有的魔方机器人相比,有机械结构简单、效率高、造价低等优点。
  关键词:魔方;机器人;二阶段双向搜索
  自1972年鲁比克教授发明魔方以来,人们探索魔方解法的脚步从未停止。目前国内外魔方爱好者已经研究出一系列的魔方求解算法。本设计在前人的基础上,衍生创新出一种新的求解算法,旨在为求解魔方提供新的突破点,其结构主要包括以下四个模块:①求解魔方的计算机程序;②摄像头识别魔方颜色的计算机程序;③机器人的框架结构及机械手的传动结构;④控制步进电机的单片机程序。
  1 解魔方求解算法
  1.1 求解搜索方法
  本程序算法的本质是穷举法。
  第1轮,设定公式步数为1,有6^1=6种公式,对给定的打乱状态分别应用这6个公式,可得6种新状态,若这6种状态中出现复原态,则输出相应公式并结束程序。否则进入第2轮,公式步数为2,有6^2=36种公式,搜索是否存在复原态。以此类推,直至穷举出复原态。
  这种解法理论上可以解出任意打乱的魔方。但以常见的计算机性能来看,不论是计算时间,还是所需的存储空间,都十分庞大。所以本文提出了“二阶段搜索”这个概念。
  1.2 二阶段搜索
  定义三组状态集合G0、G1、G:
  集合G0中仅有一个元素,即魔方的复原状态。
  A={U,D,L,R,F,B},如果魔方从复原态开始转动,每一步操作仅来自集合A,当转动足够多的步数后,所有得到的魔方状态构成了集合G。显然,G是全集。
  A1={U,D,LL,RR,FF,BB},如果魔方从复原态开始转动,每一步操作仅来自集合A1,即对魔方的转动进行限制,左、右、前、后四个面每次只能转动180°,当转动足够多的步数后,所有得到的状态都属于集合G1。
  三个状态集合的从属关系为:G0?哿G1?哿G。
  打乱状态的魔方属于集合G,复原态的魔方属于G0。在上文介绍的穷举法中,由于没有对魔方的转动操作进行限制,不存在G1,直接从G向着G0搜索。记为“G-G0”。
  在“二阶段搜索”算法中,“G-G0”的过程被分为了两个阶段:“G-G1”和“G1-G0”,记为“G-G1-G0”。G1中的每个状态称为“中间状态”。
  第一阶段G-G1:从打乱状态开始搜索,类似上文提到的穷举法。但是,这里不再是判断新状态是否是G0,而是判断新状态是否属于G1,若发现新状态属于G1,则第一阶段完成。此时可得到两条信息:一个属于G1的中间状态{a1},以及一个从打乱状态{a}到中间状态{a1}的复原公式。
  第二阶段G1-G0:类似第一阶段。将{a1}作为打乱状态,在搜索的过程中判断新状态是否属于G0。该搜索完成后,可得到一个从状态{a1}到复原态的公式。
  两阶段都完成后,将两阶段中各自得到的公式合并,得到从打乱状态{a}到复原态的公式。
  由于集合G1中的元素不止一个,所以在第一阶段中,只要搜索到任意一个中间状态即可。又由于产生集合G1的过程对转动操作进行了限制,所以G1中元素的个数远小于G中元素的个数。二阶段搜索法对减小计算量有很明显的效果。但这在效率上仍达不到要求。为此,本文提出了双向搜索法。
  1.3 双向搜索
  假设G-G1阶段最多需要搜索2n(n=1,2,3……)步即可完成,我们可以先从打乱状态{a}开始搜索n轮,即,从步数为1的公式开始搜索,直到步数为n的公式全部搜索完毕,若此时还未搜索到第一阶段的复原公式,则暂停搜索,并将这n轮搜索过程中产生的所有魔方状态都记为集合Ga。并保存每种状态所对应的复原公式。同理,本文将G1中的状态{a1}开始搜索n步,将这n步搜索过程中产生的所有魔方状态都记为集合Ga1。
  对集合Ga和集合Ga1取交集,再从交集中任取出一个元素,记为{at}。
  通过查表得到由状态{a}到{at}的公式,和状态{a1}到{at}的公式。将{a1}到{at}的公式逆推,可得{at}到{a1}的公式。
  将{a}到{at}的公式和{at}到{a1}的公式拼接,得到第一阶段的复原公式。
  以上是第一阶段的双向搜索法,第二阶段类似,不再赘述。
  实践证明,这种算法大幅度减小了數据量,使计算机程序求解魔方更快捷。
  2 解魔方机器人控制系统设计
  步进电机是一种将脉冲信号转换为步距角的电动机。例如:默认状态下,经过一个脉冲周期,步进电机的主轴旋转1.8°。这种电动机可以较为精确地控制旋转角度,适合本项目。
  本项目采用Arduino单片机作为信号源控制步进电机,其数字I/O端口可输出0V/5V两种电压,搭配延时函数,可产生脉冲信号。Arduino程序在接收到复原公式后,逐个解析公式中的字母,向对应的电机发送信号,即可按照预期的动作顺序控制六台电机。
  3 机器人框架设计与实验调试
  整机结构并不复杂。框架由若干豎直、水平的铝合金杆构成,直角处用螺栓连接,方便拆卸。魔方使用空心结构,简化了传动过程。避免了机械卡爪带来的控制部件繁多、结构复杂等缺点。
  框架采用欧标4040号铝合金;固定板为铝合金板;传动杆采为亚克力板。最终构建出解魔方机器人平台。
  参考文献:
  [1] (美)Michael Margolis著,杨昆云译.Arduino权威指南.2版.北京:人民邮电出版社,2015.
  [2] 毛星云,冷雪飞著. OpenCV3编程入门.北京:电子工业出版社,2015.
  [3] 濮良贵,纪名刚著.机械设计.9版.北京:高等教育出版社,2013.
  作者简介:
  郑雨辰(1996-),男,汉族,江苏常州人,苏州大学应用技术学院2014级机械电子工程,研究方向:机电一体化。
其他文献
<正> 《微机原理及接口技术》是一门实践性很强的课程,为此有必要在理论学习结束后安排课程设计,让学生设计制作并调试简单的微机系统,以培养学生综合运用所学的知识,解决工
摘 要:针对高职课程需要强化动手能力的实际,通过《电机技术》课程实践性教学改革,建设了理实一体化教室和开展现场教学,注重学生在实践环境中学习电机的使用技术,使得学生不仅乐学,而且能够更好地掌握设备的使用方法,所学技能毕业后直接就能用得上,有效的提高了教学质量。  关键词:电机技术;强化实践;注重应用;现场教学;不断改进  《电机技术》课程是一门技术性很强的应用课程,可是大多高等职业技术学院的课程却
在生态环境问题日益严重的情况之下,社会乃至国家都开始逐步采用一些技术以确保生态环境趋于稳定。环境监测技术就是在这样的背景之下应运而生的,所以分析环境监测技术的具体应用方向与方法,得出具体的质量控制办法就显得尤为必要。本文首先针对环境检测技术的应用进行分析,接着提出了相应的质量控制策略,希望从人员把控、样品分析以及检测报告质量等多个方面入手,在最大程度上提升环境监测技术发展水平,为相关人员提供参考与
本文通过介绍锁相环路技术在多相变流器中的应用及一个实际例子,提出了一种价廉的单通道触发器的新思路,具有一定实用价值
高等院校进行实验教学改革要注意可能出现的问题。实验室合并改制要根据具体情况,正确处理好教研室与实验室、教师与实验技术人员的关系。实验教学内容与实验教学手段的改革要
摘 要:计算机网络成为当下人们生活学习所离不开的工具,随着网络的发展,网络环境的复杂性、多变性等日益突出,计算机网络面临各种安全风险,因此本文提出几种计算机网络安全技术,以此促进计算机网络的安全。  关键词:计算机网络;安全技术;防范  基于计算机互联网的普及应用,如何保证计算机网络安全成为构建电子商务经济的重要问题。结合多年的工作实践,计算机网络多面临的风险较多,例如病毒入侵、不法分子入侵计算机
摘 要:“工匠”精神日益受到国家和社会的重视,培养学生的“工匠”精神是职业院校不可推卸的责任。“工匠”精神只有靠实践才能培养出来,实训课是职业院校培养“工匠”精神的重要途径。实训教学中,不能只是单纯关注产品是否完成,重要的是产品制作过程是否精益求精,具体为操作严谨规范、工艺符合要求、注重细节、提高用户体验等。只有教师具有精益求精的“工匠”精神,才能培养出学生的“工匠”精神。  关键词:“工匠”精神
介绍了一种基于CAN总线的单片机实验室网络系统设计。由CAN总线最小节点和PC机构成的高可靠系统能实现对多台单片单板机的监测、通信、学生成绩的记录显示、统计、分析。
摘 要:随着虚拟化技术在IT领域中日趋成熟,各级政府部门的信息化建设中也加强了虚拟化技术的使用。本文从虚拟化中的一项主要技术,即服务器虚拟化,在政府部门信息化建设中的部署为背景进行探讨,结合政府部门信息化建设的特点,提出一套适于一般政府部门的服务器虚拟化技术的解决方案,减少信息化累硬件设施的投入,减轻信息化部门人力负担,提高政府部门信息化资源整合的力度以及办公效率。  关键词:服务器虚拟化;政府部
根据《重点高校工科物理实验教学改革指南》的精神,建立了大学物理实验课程新体系,实现了层次化和模块化,将整个课程体系分为三个层次、八个模块。在教学内容改革方面,以系统化地