魔方机器人(基于OpenCV、Arduino)
顾名思义,魔方机器人就是可以自动还原任意打乱魔方的机器人,从自动识别颜色到通过还原算法进行魔方的还原。博主做的是六轴的魔方机器人,魔方六个面都可以独立转动,提高魔方的还原速度。
组成
在这里贴一张图方便大家理解整个流程:
其实可以看到整个机器人的执行流程还是比较简单的,就分为两个部分。第一个部分就是上位机,第二个部分则是下位机,接下来具体介绍。(为了比较直观的了解这个机器人,我先将成品贴出来)
我们先说一下弄这个东西的整体思路,之后再做具体说明。 首先,需要对魔方机器人有一个大概的了解,你是想让他单纯的执行转动魔方的动作还是想让他从一个任意打乱的魔方能够自动还原,如果是前者的话就非常好办了,你只需要弄个单片机,一些电机,总之能让电机带动魔方转动就好了,如果是后者的话,那就稍微会有点复杂了。 玩过三阶魔方的同学应该都知道魔方是有公式的,比如层先、CFOP、桥式等等,那要让机器人去记这些公式可能有点不太现实,也不是说不可能,就是有点复杂,就拿CFOP来说吧,光是FOP就有119条公式,但是对于机器人来说可不就这么简单了,如果情况与公式不是绝对对应的话那么计算机还需要判断额外的情况,并且在做C的时候也会有困难,并且还需要摄像头实时反映图像,所以在这里我们就需要一种能够还原魔方的算法。通过算法得出魔方的还原步骤,只要能那大还原步骤,那么,剩下的都好办了。之后通过颜色识别得到一个被打乱的魔方的颜色序列经过算法得出还原序列,再将此序列发送给下位机执行就可以了。 (本来以为没多少人看所以就不打算更新了的,但还是有伙伴想要了解魔方机器人是如何做出来的,所以打算把这个教程给做下去,不过周期可能会有点长,其中还原算法那一块就只做一些如粗略的讲解,因为算法也不是我写的,只是在此基础山加了一些其他的东西,算法网上一大堆,大家一搜就能搜到。其他的例如颜色识别的算法、上下位机如何通讯我会比较详细的讲解,敬请期待!) 一.魔方机器人(一)还原算法 二.魔方机器人(二) 颜色识别 三.下位机——Arduino 四.机器人设计思路 五.整合