魔方机器人的设计Word格式.docx
《魔方机器人的设计Word格式.docx》由会员分享,可在线阅读,更多相关《魔方机器人的设计Word格式.docx(11页珍藏版)》请在冰点文库上搜索。
1.2研究目的和意义
本次选题的目的在于制作一个解魔方机器人,对机器人的硬件软件以及魔方还原的算法进行研究学习。
科普展品最终的意义是将科学知识和文化传播给每一代人,共同感受科技的奥秘。
展品紧随时代的发展有利于提高国民的科学文化素养,特别是有可能提高青年群体的科学兴趣,最终发挥促进社会文明和进步的作用效果。
从这个意义上说,这一主题的选择对于提高全民科学素质,从而微妙改善公共科技创新环境具有重要意义。
此外,多年以来数量众多的科技博物馆在全国各地如雨后春笋般出现,也代表着科技时代的到来。
在科技智能化的大背景下,科技展馆中的智能展品相对于其他展品更受欢迎,展馆管理方也更重视智能展品的陈列,魔方复原机器人便属于其中一种。
。
近年来,智能机器人已经不限于只科技馆的展览,在人们的生活中也有较高的普及率。
由于其交互性极强且颇具趣味性的特点,解魔方机器人逐渐在人工智能领域拥有越来越高的热度。
解魔方机器人需要结合计算机控制技术、电脑视觉识别技术、图像热感应技术、VR技术等,所以解魔方机器人浓缩了多个领域的核心技术以及理论知识,并且该设计的实现还可以衍生出其他领域的产品。
2项目可行性分析
2.1项目目标
设计一个解魔方机器人,使其具有易掌握地操作性的优势以及尽可能的快速还原。
预采用多元化多功能的构造,使转动魔方能够更加灵活。
对解魔方算法的研究中,查阅了多种魔方的算法,最终选用Kociemba算法,该算法是目前还原步骤最少的一个算法,以此来实现魔方的快速还原。
同时使用蓝牙来进行上位机和下位机的通信。
2.2项目可实施性
技术可行性:
魔方机器人的控制器是安卓手机和STM32单片机,STM32是近年来非常流行的单片机,具有功能强大、功耗低、成本低的优点。
一款单片机的内核性能是该产品的核心卖点,STM32内核ARMCortex-M3在同类芯片中性能位列第一,与同类芯片相比,它的基本型系列时钟频率最高,达到了72MHZ。
经济可行性:
本设计主题结合魔方的科学性、趣味性和互动性等特点,以此满足观众在科普地区的需求,通过在整个展览期间展示魔方机器人的恢复过程,满足热爱科学领域的观众需求,并受到观众的喜爱。
同时,提出采用结合交互式和多形式的魔方操作演示系统,为满足不同地域需求,对结构进行简化和模块化设计,方便在不同场所的安装和调试。
既可以作为省市科技博物馆的永久展览,也可以作为以机器人为主体展示的智能机器性展览。
作为一款商教两用的设计,其用途广泛。
在教学与科普上,解魔方演示虚拟系统可以用作数字科技馆的展品,向孩子们进行科普教育。
而单机器人解魔方系统还可以独立作为互动展品和高档益智科学玩具作为周边,魔方机器人将吸引越来越多观众。
3解魔方机器人的需求分析
3.1功能需求
目前人工智能的话题越来越火热,人们对该领域的探索也在不断深入。
魔方机器人在展示智能化的同时,将理论知识与实践相结合,它以有趣的形式呈现给观众,寓教于乐生动地向观众呈现深刻的理论,特别是对于我们的青少年。
它不仅反映了理论研究的价值,也实现了科学传播的效果,对社会的发展与进步有着深远的影响。
3.2性能需求
时代性:
越来越多科技类产品的问世,产品对人们的兴趣度慢慢开始降低,如何能够做到吸引人们的注意力,那就要做到人无我有,人有我优。
只有紧跟时代步伐,快速挖掘当代人们的兴趣点,那么我们的设计才是成功的。
周围的朋友对魔方的了解度其实都还不高,但魔方的爱好者已经开始增加,而本次设计又基于目前较为流行的STM32开发板进行解魔方机器人的研究,具备新颖的创意,又具有时代性。
稳定性:
一个产品是否具有实用价值,考虑它的稳定性肯定首当其冲。
为了保证这次设计的稳定性,在实施过程中,有着严格的测试步骤,并进行反复实验,保证解魔方机器人能够稳定运行。
4硬件系统设计
4.1魔方机器人硬件电路框图设计
如图4-1所示为STM32硬件系统的设计。
STM32开发板由锂电池供电续航:
一开始伪7.4V的锂电池,通过右侧的稳压电路后变为6.0V后通电给舵机,通过左侧稳压电路后变为3.3V后通电给STM32。
蓝牙串口模块的应用可以实现数据传输,将上位机和下位机合理连接。
显示器用来显示魔方机器人复原魔方的时间。
图4-1STM32硬件电路框图
4.2STM32电路模块设计
魔方机器人控制系统的电路设计较为简单,本文只简要介绍XL4015E1稳压电路、AMS1117稳压电路和OLED接口电路。
XL4015E1稳压电路
解魔方机器人需要使用8个舵机来实现魔方的旋转,一台舵机工作大概需要0.5A的电流,0.6V的电压。
XL4015E1是一款可以通过调节电压来稳定电路的设备,它可以满足电流上限值为5V,输出的电压范围为1.25V-32V,正好与我们的解魔方机器人需要的电流与电压相匹配。
XL4015E1开关频率为180KHZ,能量转换效率达到百分之九十六,负载调整率小于百分之零点八,电压调整率小于百分之零点八。
XL4015E1稳压电路的原理图如图5-3。
输出电压的计算公式为:
VOUT=1.25*(1+R6/R7)
图4-3XL4015E1稳压电路原理图
公式中1.25为参考电压,单位为V,R6是一个10K固定值电阻,R7为可变电阻,阻值随输入电压变化,6.0V的电压对应2.6K的阻值,最大阻值为10K。
AMS1117稳压电路
按照电路要求,设定输出电压为固定值3.3V,根据电路的精度规则,器件的1%精度符合规定。
同时由于硬件电路采用7.4V锂电池供电,AMS1117可以对使用过度而造成电路温度过高的电路进行保护,并限制电流,所以非常适合供电电源为电池额电路。
该稳压器输出电压参数为:
3.267~3.333V(
)。
VOUT=VREF*(1+R2/R1)+IADJ*R2
公式中VREF为1.25V的参考电压,单位为V,R6为47K的固定值电阻,R7的阻值为固定值1K,输出电压为3.3V。
图4-4AMS1117稳压电路原理图
OLED显示屏接口
识别精度与复原的准确性是解魔方机器人的基本要求,而复原魔方所需时长才是衡量此类产品性能的核心参数。
为了更直观地读取此数值,在系统中加入一块显示屏。
除总复原时长外,将识别颜色的时长与实际复原时长也同步显示。
4.3本章小结
本章主要说明了本设计的硬件系统,重点讲解了STM32单片机及其周边电路的设计。
整个电路由7.4V锂电池模块供电,其输出电压分为两部分,其一经过XL4015E1稳压电路输出给舵机供电操作机构,完成机械动作复原部分,其二经过AMS1117稳压电路输出给STM32单片机、蓝牙串口模块、OLED等模块并对其完成供电,完成算法解决方案输出、双机间通讯以及操控舵机。
5软件系统设计
5.1软件整体框架设计
首先绘制框架结构图以明晰软件系统的主要设计内容,如图5-1所示,总体思路为由APP指令驱动单片机执行。
图5-1软件整体框架图
由图示可知APP程序主要包含的三个部分。
其中颜色识别功能通过手机摄像头输入,读取照片后使用KNN算法进行颜色分类工作。
本次设计选用了Kociemba算法,运算时间较快并且复原魔方的步数是最少的。
手机端与单片机连接使用蓝牙方式,STM32接收复原指令后通过核心算法设计解析动作并由舵机执行。
5.2Kociemba算法移植
如何用最少的步数使魔方复原是解魔方机器人最为重要的的参数之一。
因此在本文中将核心算法部分全部交由Kociemba算法,通过优化算法达到减少步数的要求。
如图5-2所示,操作界面有两个按钮、两个数值输入窗口及一个复原公式输出框。
按钮SolveCube的功能为运行复原算法以生成公式并显示,而若要再次将魔方打乱,则可以点击页面右上角的Scrambie按键,魔方就会被随机打算;
如果你想要设定解魔方机器人还原魔方的时间上限,则可以在TimeLimit中设置;
如果你想要设定解魔方机器人还原魔方的步数上限,则可以在MoveLimit中设置。
如果设置的时间或者步数过小,机器人无法还原,软件将会跳出警告界面。
测试软件的主界面是魔方的六面展开图。
一个三阶魔方有六种颜色,其中最中心的颜色为该面正确的颜色面,在国际中每一个魔方的面都有特别的规定:
白色面为顶部,一般用U表示;
绿色面为前部,一般用F表示;
橘色为左侧,一般用L表示;
红色为右侧,一般用R表示;
蓝色为后部,一般用B表示;
黄色为底部,一般用D表示。
本次使用的复原算法为Kociemba算法,它需要的魔方输入参数为五十四个颜色方块的排列。
六种颜色的排列顺序为白色、红色、绿色、黄色、橘色、蓝色,九个小方格的排列顺序为从左到右,先上后下。
5.3魔方颜色识别
阈值法
阈值法是一种应用十分广泛的方法,它计算量小,鲁棒性强,然而不可避免的会出现精度方面的缺陷,其缺点主要汇总如下两点:
1.根据光的折射原理,在不同光照强度下,同一颜色在拍摄后会有不同的RGB值,而据此得出的数据在定阈值下无法准确将颜色分类。
只有当光照强度在一定范围内时,阈值法才能输出准确的结果,这样才能凸显其运算迅速的优点。
由此可见阈值法的局限性很大。
2.每一种颜色具有不同的反射值、分量值,颜色传感器检测到不同的颜色后,返回的值是不同的,以此来区分不同的颜色块。
所以,最后选用了更为稳定高效的颜色传感器来识别魔方的不同颜色组合。
在拍摄过程中除了拍摄技巧、位置等的外部影响,摄像头的像素及存储照片的质量都是颜色RGB值的重要因素。
这两点也会导致识别结果与实际情况的差异,影响精度。
KNN分类算法
KNN分类算法的分类依据为该群体的最大相似特征是什么,比如一个物体具有红色这一特征,而另外一个群体的全部物体也具有红色有一特征,那么该物体就属于这个群体。
KNN方法与极限原理的相关性极强,然而只有极少量的相邻样本会影响到最终的分类决策过程。
图5-3是KNN分类算法的示意图:
ω1,ω2,ω3为已经正确分类的颜色类别,作为训练数据:
Xu为待分类的颜色类别,作为测试数据。
这里以K=5为例,即选取距离Xu最近的5个颜色类别进行判定,上例中判定结果中的多数为红色,因此红色作为判定结果。
图5-3KNN分类算法示意图
KNN算法在魔方机器人颜色识别上的实现
在对Kociemba算法有了基本了解后,本节设计具体的颜色识别方法。
基于对算法的了解可知,我们只需将魔方颜色分为与面数相同的类别而不需要判断其具体颜色。
对于三阶魔方,只有54个样本,且各类颜色间差异显著,所以在选定算法下较易达到颜色识别的目的。
图5-4KNN算法示意图
如图5-5所示为颜色识别的限时判断的程序框图。
设置时间t为单次识别的时间上限。
在此上限时间内,程序实际可进行多次识别,当出错后继续随机在色块上取点识别,直至识别正确。
若超出时间上限t仍全部识别错误则认为识别失败。
经过实验测试,本文所设计的程序的颜色识别速度为60次/秒,与同类产品的平均标准持平。
然而本文基于KNN算法的颜色识别策略准确率极高,几乎达到了100%,与同类机器人相比具有显著优势。
图5-5魔方机器人颜色识别框图
6系统测评
6.1魔方机器人复原魔方用时测评
魔方在复原前由人工打乱,为了保证魔方能够打乱得完全,实行严格的计时,每次打乱魔方的过程长达60S,并且保证完全打乱后的魔方不会出现在每一个面相邻的三个块都为同一种颜色的情况,保证了测试结果的合理性。
本文共测试了三个时间,如图7-3所示:
颜色识别时间是从STM32和APP之间通过协调配合拍摄魔方的六张图片到得到魔方六个面的全部颜色分布的时间,舵机执行时间是从STM32接收到复原指令到魔方完全复原的时间,总复原时间是前面两个时间的和,是完整复原一个魔方所用的时间。
本文写了一个测试程序,每次复原魔方完成之后,会在OLED显示屏上显示上述三个时间。
OLED的实物图如图6-2所示,屏上的三个时间从上到下依次为:
颜色识别时间、舵机执行时间,总复原时间。
测试结果如图6-2所示,颜色识别过程中所需时间较为稳定,平均时间为15.1S,舵机执行时间最大为57.1S,最小为37.6秒,平均时间为49.0秒,总复原时间最大为72.2秒,最小值为52.9秒,平均值为64.1秒。
另外可以看出,15组数据中,只有一组数据超过了70S。
通过以上的全面测试工作,得出如下结论:
本设计可以在小于七十秒的时间内复原绝大多数魔方。
6.2本章小结
本章内容主要是针魔方的复原时间进行测评。
在魔方的复原时间测评上,复原前由人工打乱,为了保证魔方能够打乱得完全,实行严格的计时,每次打乱魔方的过程长达60S,连续进行了15次魔方的复原。
实验结果证明:
本设计可以在小于七十秒的时间复原大多数情况复杂的魔方。
总结
本文的研究工作主要包括:
(1)本文在深入研究了魔方原理的基础之上,对魔方的研究背景、目的及意义进行阐述,从解魔方机器人国内外研究现状着手分析对本项目的帮助性和方案有效性。
基于魔方的典型特征进行了魔方复原的可行性分析。
然后在求解算法中检验和分析算法,之后对解魔方算法中的算法、角先法、层先法进行研究和分析,根据系统要求,对算法进行了相应的改进,并对算法的性能进行了分析和比较选取了Kociemba魔方解算算法作为本文系统的机器人复原魔方算法和改进的算法作为虚拟复原魔方算法。
(2)根据魔方复原过程的特点设计机器人系统的性能需求,并完成系统各个模块的需求分析。
根据本文系统的工作原理,实现了系统的体系结构和模块的总体设计,从软件和硬件进行系统的模块设计,并对特定模块的功能进行了检验和分析。
关于系统设计和实现过程的关键技术都提出了解决方案。
(3)本文在研究了魔方复原算法之后,对系统的总体设计进行规划,设计方案主要由ARMPCC30板、STM32最小系统开发板、摄像头拍照模块、舵机控制模块、液晶显示器等五部分组成,共同完成解魔方机器人控制系统的设计。
选择了安卓手机+STM32作为系统方案,解决了系统的控制器方案选择与确定整体的设计流程。
(4)对硬件进行设计,选取合适的硬件和编程环境,同时根据实际需求对解魔方机器人控制系统的硬件系统进行设计。
外围的电路设计相对简单,而系统设计的核心在于STM32及其紧邻电路的设计。
其次对主控制器进行编程,利用传感器识别魔方的颜色状态,赋予机器人类似人的眼的功能,最终使得机器人能够具有人一样的智能来复原魔方的
过程。
(5)设计系统的软件框架,完成解魔方机器人控制系统的软件部分,包括整体框架的设计、Kociemba算法的移植及对其进行的优化处理、KNN算法在颜色识别中的实现、魔方复原指令的优化和完成脉冲增量插补算法。