logo资料库

魔方机器人技术文档.pdf

第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
资料共29页,剩余部分请下载后查看
解魔方机器人技术文档 子非鱼科技网店
摘 要 解魔方机器人是一个融合了魔方复原算法、计算机视觉,机器人控制等多学 科知识的机电一体化平台,所以实现一个复原快速,稳定性强的解魔方机器人具 有很大的挑战性。本文设计了一款可以将任意打乱的三阶魔方复原的魔方机器人。 该机器人使用 Allwinner A20 开发板作为主控制器,运行安卓系统,STM32 单片机 作为辅助控制器,两者通过蓝牙进行数据通信。 不同于以往魔方机器人基于 RGB 颜色空间进行颜色识别的方式,本文在颜色 识别中引入 KNN 分类算法,消除了光照强度对识别率的影响,颜色识别率达到了 极高的精度。Kociemba 算法是当今世界上复原魔方步数最少的算法,并且其解算 时间为 mS 级。传统的层先法虽然思想简单,但是平均需要大约 150 步,稍微短一 点的 CFOP 算法也要在 100 步左右。本文通过移植 Kociemba 算法,极大地缩短了 魔方复原的时间。另外,本文论述了从 Kociemba 算法得到的复原指令存在优化的 原因,并采用二叉树模型优化了复原指令,比较了优化前后指令对应的舵机执行 步数,测试结果显示优化效果较为显著。魔方机器人采用舵机作为驱动部件,本 文将数控系统中的脉冲增量插补的思想运用到舵机的速度控制上,实现了舵机的 连续速度调节,使得魔方机器人在解算速度和稳定性之间达到了一个很好的平衡。 本文的最后做了实验测试,测试结果显示:本文设计的魔方机器人可以在 70S 以内的时间内复原绝大部分魔方,基本达到了预期的目标,对于 Kociemba 算法得 到的复原指令,本文设计的基于二叉树模型的优化算法对于复原指令的优化比例 和未优化之前相比平均优化比例达到了 23.6%,优化效果较为显著。 关键词:魔方;机器人控制;舵机;KNN 分类 子非鱼科技网店
Abstract Solving a rubik's cube is a blend of the rubik's cube recovery algorithm, computer vision, multidisciplinary knowledge such as robot control platform for the mechanical and electrical integration, so to realize a rapid recovery, strong stability of solutions of a rubik's cube is very challenging. This paper designed a third-order rubik's cube can be arbitrary disturb to recover a rubik's cube. The robot uses Allwinner A20 development board as the main controller and run android, STM32 microcontroller as the auxiliary controller, both for data communication via Bluetooth. Different rubik's cube robot based on RGB color space is used to identify the color way of introducing KNN classification algorithm based on color recognition, eliminate the effects of light intensity on recognition rate, color recognition rate reached a very high precision. Kociemba algorithm steps is recovered rubik's cube in the world today the least algorithm, and its calculating time for mS level. Although traditional layer method first thought is simple, but took an average of about 150 steps, a little bit short CFOP algorithm in more than 100 steps. In this article, through transplantation Kociemba algorithm, greatly shorten the rubik's cube recovery time. In addition, the paper discusses the recovery instructions from Kociemba algorithm is optimized, and the binary tree model optimizes the recovery instructions, compared before and after optimization steps execution is corresponding to the steering gear, the test results show that the optimization effect is significant. A rubik's cube using steering gear as drive parts, this article will the ideas of the pulse increment interpolation in CNC system applied to the speed of the steering gear control, realizes the continuous speed adjustment, steering gear makes a rubik's cube in calculating speed and achieve a good balance between the stability. Finally experimental tests show that the design of a rubik's cube may recover in 70 s most of the rubik's cube, basically achieve the desired goal. For the recovery instruction that come from the Kociemba algorithm,this paper designs the optimization algorithm based on two binomial tree model for optimizing the ratio of recovery instruction with and without optimization before the optimal ratio of the average reached 23.6%,and the optimization effect is very obvious. Key Words: Rubik;Robot Control;Steering Engine;KNN Classifier 子非鱼科技网店
目 录 第 1 章 引言 ................................................ 1 第 2 章 系统总体规划设计 .................................... 2 2.1 Allwinner A20+STM32 方案的选择 ................................ 2 2.2 系统整体设计方案 .............................................. 2 第 3 章 硬件系统设计 ........................................ 4 3.1 魔方机器人硬件电路框图设计 .................................... 4 3.2 STM32 电路模块设计 ............................................ 5 3.2.1 XL4015E1 稳压电路 ................................................ 5 3.3.2 OLED 显示屏接口 .................................................. 5 第 4 章 软件系统设计 ........................................ 7 4.1 软件整体框架设计 .............................................. 7 4.2 Kociemba 算法及其优化 ......................................... 7 4.2.1 Kociemba 算法的移植 .............................................. 7 4.2.2 Kociemba 算法的优化 .............................................. 8 4.3 魔方颜色识别 ................................................. 10 4.3.1 阈值法.......................................................... 10 4.3.2 KNN 分类算法 .................................................... 10 4.3.2 KNN 算法在魔方机器人颜色识别上的实现 ............................ 11 4.4 魔方复原指令的优化 ........................................... 13 4.4.1 复原魔方指令系统 ................................................ 13 4.4.2 复原指令优化的来源 .............................................. 13 4.4.3 复原指令优化的二叉树算法 ........................................ 15 4.5 脉冲增量插补算法 ............................................. 17 第 5 章 系统评测与结论 ..................................... 20 5.1 二叉树模型优化效果测评 ....................................... 20 5.2 魔方机器人复原魔方用时测评 ................................... 21 第 6 章 结论 ............................................... 24 参考文献 .................................................. 25 子非鱼科技网店
第十一届中国研究生电子设计竞赛 魔方机器人 第 1 章 引言 智能机器人技术随着机器人学、计算机科学、计算机视觉等学科的发展,应 用范围和使用价值得到了非常广泛的关注和提高,成为当今世界高科技领域备受 关注的热点课题。近年来智能机器人逐渐走进人类的日常生产和生活,而解魔方 机器人因其无与伦比的趣味性和炫酷的交互性,正成为人工智能的研究热点[1]。由 于解魔方机器人融合了计算机视觉、图像处理、机器人控制技术、虚拟现实交互、 魔方算法等多学科知识,因此实现一个快速、稳定的解魔方机器人具有很大的挑 战性。 本文设计了一款可以把任意打乱的三阶魔方复原的魔方机器人,相对于以往 的魔方机器人,本文在以下几个方面做了创新的优化设计,使得机器人在稳定性 和复原魔方的快速性方面达到了很好的效果,实验测试表明本文设计的魔方机器 人可以在 70 秒以内的时间内复原绝大多数魔方。 (1)传统的魔方机器人使用阈值法识别魔方颜色状态,颜色识别率较低,识 别率极容易受到光照强度的影响,鲁棒性较差。本文采用了机器学习领域中一个 较为成熟的 KNN 分类算法,消除了光照强度对颜色识别的影响,魔方的颜色识别 基本不会出错,也很大得提高了整个系统的工作稳定性。 (2)移植复原步数更少的 Kociemba 魔方解算算法,最大复原步数为 21 步, 并且其解算时间为 mS 级。传统的层先法虽然思想简单,但是平均需要大约 150 步, 步数稍微短一点的 CFOP 算法也要在 100 步左右。 (3)本文采用二叉树模型优化了从 Kociemba 算法得到的复原指令,测试结 果显示优化效果非常显著,进一步缩短了魔方复原的时间。 (4)本文采用舵机作为机器人复原魔方的驱动部件,通过把数控系统中的脉 冲增量插补的思想运用到舵机的速度控制上,实现了舵机的连续速度调节,使得 魔方机器人在速度和稳定性之间达到了一个很好的平衡。 1 子非鱼科技网店
第十一届中国研究生电子设计竞赛 魔方机器人 第 2 章 系统总体规划设计 2.1 Allwinner A20+STM32 方案的选择 STM32 是近年来非常流行的单片机,适用于要求高性能、低成本、低功耗的嵌 入式应用。STM32 内核为 ARM Cortex-M3,其基本型系列时钟频率达到了 72MHZ, 是同类芯片中性能最高的芯片[2]。基于 STM32 单片机以上优点,我们把 STM32 单片 机作为魔方机器人的控制器。 Allwinner A20 是全志科技公司 2013 年推出的一款移动应用处理器,主要针对平 板电脑及智能电视领域。Allwinner A20 处理器基于双核 ARM Cortex-A7 架构,主 频为 1GHZ[3],在本文的魔方机器人整体方案设计中,本文选择 Allwinner A20+STM32 解决方案,Allwinner A20 运行安卓系统,APP 和 STM32 之间进行蓝牙通信。和采 用单片机或者嵌入式处理器的单控制器解决方案相比,本文采用 Allwinnner A20 作为主控制器,STM32 作为辅助控制器的方案具有以下优势。 1.本文采用舵机作为魔方机器人的驱动电机,从舵机的驱动原理可知:舵机运 行的速度和控制器的主频没有关系,所以采用单片机和采用更高主频的嵌入式处 理器相比在控制效果上没有什么差别。单片机编程过程简单,非常容易上手,而 且不需要进行操作系统的移植,非常适合对魔方机器人的舵机进行控制。 2.复原时间是魔方机器人的一个非常重要,可以说是最为重要的一个参数,本 文的软件设计中涉及到了大量的算法,如 Kocemba 复原算法和 KNN 分类算法等, 而控制器主频对于算法运行时间的长短起着决定性的作用。所以在本文的方案设 计中,我们把核心算法全部交给 Allwinner A20 运行的 APP。 3.Allwinner A20 开发板运行安卓系统,这样我们可以把主要精力都放在 APP 的开发和算法的设计上,省去了系统移植,加快了项目的整体进度。 4.采用双控制的解决方案,APP 的开发和 STM32 程序的设计可以同时进行,这 样可以便于团队成员之间的分工,而且加快了项目的进度。 基于以上原因,我们采用 Allwinner A20+STM32 的双控制器解决方案。 2.2 系统整体设计方案 2 子非鱼科技网店
第十一届中国研究生电子设计竞赛 魔方机器人 图 2-1 魔方机器人设计方案系统组成 魔方机器人设计方案主要的系统组成如图 2-1 所示。摄像头模块负责在颜色识 别过程中获取魔方六个面的六张图片,STM32 通过控制舵机让魔方旋转到特定的角 度,液晶显示器是人和魔方机器人进行交互的界面,通过 APP 来完成魔方复原的 核心工作。 图 2-2 魔方机器人复原魔方流程 图 2-2 是魔方机器人复原的完整过程。首先是魔方颜色状态的获取,这一阶段 需要 STM32 和 APP 协调配合,STM32 控制舵机把要拍照的魔方的面旋转到上面,通 过蓝牙通知摄像头来照片,摄像头拍完照片之后通过蓝牙给 STM32 发送指令,通 知 STM32 控制舵机把下一个要拍照的面旋转到上面,直到摄像头拍照完魔方六个 面的六张照片。接下来通过读取照片的信息获取魔方的颜色分布,经过魔方复原 算法的处理之后得到复原公式,为了缩短魔方复原的时间同时使 STM32 在解析魔 方时更加容易,需要对复原指令进行优化处理,优化处理后的指令再通过蓝牙发 送给 STM32,STM32 把指令解析为舵机执行的动作,完成魔方的复原。 3 子非鱼科技网店
第十一届中国研究生电子设计竞赛 魔方机器人 第 3 章 硬件系统设计 3.1 魔方机器人硬件电路框图设计 图 3-1 STM32 硬件电路框图 硬件电路设计部分只包括 STM32 硬件系统的设计,如图 3-1 所示。7.4V 的锂 电池为整个 STM32 硬件系统供电,经 XL4015E1 稳压电路降为 6.0V 为舵机供电, AMS1117 稳压电路将锂电池电压降为 3.3V 为 STM32 供电。蓝牙串口模块可以实现 蓝牙协议和串口协议的转换,很方便地实现了 STM32 和 Allwinner A20 通过蓝牙 进行数据传输。OLED 用来显示魔方机器人复原魔方的时间,方便测试。鉴于舵机 具有角度可控且控制简单,廉价等优点,本文采用舵机两两一组构成曲柄滑块的 机械结构作为复原魔方的机械手,8 个舵机构成四组机械手。系统硬件实物图如图 3-2 所示。 图 3-2 魔方机器人硬件系统实物图 4 子非鱼科技网店
分享到:
收藏