等不了开学了,今天耐不住性子开始用现有资源把魔方机器人前期准备起来。
本方案使用编程语言为python3.
整体方案
- OpenCV完成图像识别并输出魔方状态字符串
- 使用现有的kociemba包解算理论步骤
- 将理论步骤转换为机械执行的步骤
- 步进电机执行机械步骤
大概就是这样,摸着石头过河
kociemba包的使用
先用anaconda搭建一下环境,安装好kociemba包。
之所以使用anaconda搭建的虚拟环境下安装,一是用anaconda管理环境比较方便;另一是因为anaconda中的基础包比较全,尝试在Windows下python原生环境中安装会失败。
关于anaconda环境搭建可以参考:python开发环境搭建 anaconda的安装和使用
kociemba包下载链接:kociemba包下载
在anaconda搭建的环境中(activate xxx),进入kociemba包所在目录,运行以下命令:
pip install kociemba-master.zip
等待安装完成就可以了。
本着能用就用的原则,算法具体原理暂时放一边。我们看看使用这一package需要知道哪些。
- 传入参数是一个代表魔方状态的字符串
字符串的基本定义:将魔方分为U、R、F、D、L、B六个面,将魔方展开编号,展开方式如下
在上面展开方式的基础上,用U、R、F、D、L、B六个字母分别表示六个面中心对应的颜色,将魔方各个色块的颜色按照U1、U2…顺序,字母顺序为U、R、F、D、L、B编号。例如一下状态对应字符串为bdrfuululululrddrubbflfbdbbfdrrdbdurlrudlffurfrdfblbfl
输入:
kociemba.solve('UBRLUFFUBLRUFRLLLRDBDRFDBBUDDBUDDLRFBFLDLBFFRFLRUBRDUU')
输出:
"L' B' R2 D2 R L U F' D R U L2 U' D R2 D' F2 U D2"
输出字符为对应面的转动,X表示顺时针转90°,X’表示逆时针转90°,X2表示转动180°
未完待续
由于参赛原因,后续文章近期不会发布
学海无涯,勤奋为舟