方案设计
采用舵机作为魔方机器人的驱动电机,从舵机的驱动原理可知:舵机运行的速度和控制器的主频没有关系,所以采用单片机和采用更高主频的嵌入式处理器相比在控制效果上没有什么差别。单片机编程过程简单,非常容易上手,而且不需要进行操作系统的移植,非常适合对魔方机器人的舵机进行控制。 2.复原时间是魔方机器人的一个非常重要,可以说是最为重要的一个参数,本文的软件设计中涉及到了大量的算法,如 kocemba 复原算法和 knn 分类算法等,而控制器主频对于算法运行时间的长短起着决定性的作用。 所以在本文的方案设计中,我们把核心算法全部交给 allwinner a20 运行的 app。
设计原理
1、kociemba算法
kociemba算法,又称为二阶段算法,是一个使用较短时间和较少次数还原魔方的算法。按照以前网上的说法,详细的原理可以在网页http://kociemba.org/cube上面找到。然而现在这一个网页也是已经不存在了,其他网站所介绍的也是非常的简略。幸好,在我的努力之下,还是找到一些零星的资料,主要是一些外文的论文和一些github项目。通过几天的加班阅读,我总算是理解了大部分的内容。我把自己所理解的只是写在这篇论文上面,希望能给和我一样的魔方爱好者一些启发,同时也算是一个抛砖引玉,希望能够获得读者们更好的建议。
2、从魔方的状态数说起
这篇文章讨论的对象是三阶魔方,原则上kociemba算法可以变形为四阶魔方的,但是这并不是本文要讨论的内容。首先我们先对魔方的元素进行命名上面的约定,魔方由26个方块组成,每个方块由1到3个面是露在外面的,有1个面的我们称为中心方块,两个面为边,三个面的为角。通过旋转,每个角有8中位置、3个方向,每个边有12种位置、2个方向。我们假定魔方的中心方块是不会移动的,也就是说,只有非中间层的面可以旋转,以后也是不考虑中间面的旋转。所以会产生变化的只有边和角的位置和方向,不考虑组合的合法性,魔方的总组合为:8!12!(38)*(212)种 但是魔方会包括非法的情况,这里要考虑到魔方的状态集的问题。我们约定魔方的所有边和角的位置和方向为魔方的一个状态。魔方从一个状态通过若干次的旋转后,魔方的新状态一定和原状态在一个状态集里面。
PCB的内层制作是怎样一个过程
苹果正式推送iOS 14.4
一变三插头+USB充电器面世
NMOS开关驱动电路原理图讲解
LiteBee Wing FM无人机暗夜编队可满足多种教学场景需求
基于STM32的解魔方机器人设计方案
iPhone 4G更智能 支持视频通话
华为mate10即将上市:外观、配置、价格大曝光,华为mate9降至“最低价”等新还是买旧?
AMD一代APU处理器产品拥有8核心16线程
Pure Storage以3.7亿美元收购数据服务平台Portworx
iphone8发布会,苹果新机演示失败太尴尬,iphonex的力量不能只看表面!
盘式制动器与鼓式制动器相比有哪些优点
格芯FDX技术助中国AI芯片客户云天励飞成功流片
虹科分享 | USB Port Blocking:被遗忘的必备端点安全措施
歌尔股份在智能穿戴医疗健康领域取得进一步的突破
美国制造的现实将注定是竹篮打水一场空
纯钧新材料获亿级融资,助推国内温控产业加速崛起
思必驰选择联手强者打造AI芯片 明知山有虎偏向虎山行
机器人成本曲线正在下降 易用性成发展新难题
益智游戏克星:BFS暴力搜索算法