魔方机器人其实上个学期就已经做完了,参加了机器人大赛的创意组。

本来想写一个教程,一直没时间整理(其实是懒),这次先把我觉得比较重要的东西写一下,主要是为了记录一下我的制作过程和制作思路,给有同样兴趣的同学提供一些微小的帮助。

最终方案是用普通usb摄像头拍摄魔方的六个面,依次识别每个面,并在MATLAB写的上位机上把识别结果显示出来,确认颜色无误后再拍摄下一个面,识别完6个面后点击解魔方,就会在上位机上显示出解法步骤,点击发送就可以从串口发送给机器人了,MATLAB的代码简单易读,例程也多,所以从入门到写完这个上位机也没花多少时间。

机器人的单片机程序也挺简单的,接收从串口发送过来的解法步骤,再做相应的动作就可以了,使用的是步进电机,不需要闭环控制,在不丢步的情况下都能转到应该的位置。

机器人的机械结构,参考了视频中的方法,要转动魔方的一个面,我们直接转动最中间的那个块就可以转动整个面了,想用铁片制作一个爪子可以抓住中间块的,三个人搞了半天才做出来几个,使用效果也不是很好。魔方中间块的盖子是可以掀开的,我就直接把盖子固定在电机转轴上,这样就可以用电机转动魔方了。电机的固定,在实验室找到几块木板,用胶枪搭起来了。

在制作过程中,最重要的就是找到合适的解魔方算法,在找算法的时候先找到了一个软件叫Cube Explorer,,百度一下就可以找到下载链接了,我在写自己的上位机的时候也是参考这个软件写的,后来又找到了直接用命令行调用算法的版本,这时候我才开始写上位机。

Cube Explore 中文手册:

链接: https://pan.baidu.com/s/1kU6Wru3 密码: 8hvd

软件界面:

Cube Explore是一个比较有名的软件了,一直都在更新。这个软件可以直接调用你电脑上可用的摄像头,扫描完成后就可以得出结果了。还有一些网络端口什么的,可以直接和这个软件通讯,没有研究太多,这个软件的所有具体说明请看手册,这个手册本身也是魔方爱好者写的。

因为我想锻炼一下自己,也是为了学习一下做GUI程序,做出自己需要的功能,所以我最终还是选择自己写一个上位机。

最终上位机界面:

我自己写的上位机就不拿出来了,太粗糙了。

kcube算法:

链接: https://pan.baidu.com/s/1eRA4oQu 密码: wtru

阅读文件中的README.txt或者去作者的网站上看一下详细说明。

使用方法:这是一个BAT文件,调用kcube.exe 输入参数是后面那一串,表示每一面的颜色分布,从左到右从上到下,先确定正面,U面是转向自己时的位置,D面同理,修改时先用记事本打开,修改完成后保存,再点击运行这个BAT文件就可以了。

也可以直接用DOS命令调用,方法是先进入kcube.exe文件所在文件夹,然后输入图片上那一串就可以了。

下面是运行结果,会一直计算直到计算出最小步数解法,一般情况下在1s内都可以计算出22步及以下的解法,虽然理论上所有魔方都可以在20以内还原,但是在实际计算时计算出20步的解法会花比较长的时间(打乱的次数足够多),在打乱次数小于20次的情况下,基本可以瞬间计算出你打乱时的步骤反过来的解法。

在MATLAB中有保存窗口输出的方法,从窗口输出的结果中取出解法,再通过串口发送出去就可以了。或者有更好的方法可以告诉我一下。

识别魔方的部分:

MATLAB中自带了一个应用程序,可以点击调试读取摄像头,设置读取画面窗口范围,读取格式(RGB、YUV等),会自动生成相应的代码,然后复制右边窗口里的代码就可以在程序里用了;建立GUI程序的方法百度一下有很多教程,建立以后的.m文件里会有很多代码,前面一大段代码都不用看也不要改,注释里也写了“以上代码不需要修改”,主要是创建了按钮之后,回调函数里的内容,写对应的处理的代码,比如统计颜色分布啊,输出结果啊什么的。

识别完成后就可以用命令行调用上面说的kcube.exe了,MATLAB里也有运行DOS命令的方法。

最后就是通过串口发送了,加了一个蓝牙模块,但是在MATLAB中使用蓝牙串口的函数有点问题。

更新

用来水了个项目,当时在学Java,所以只找了Java版的,其他语言的应该也有,去GitHub上找找就有了,本来要写上位机的,本来设计的是调用4个摄像头一键扫描,写的过程让我很火大,现在想起来都心堵,仿佛能听到我电脑风扇的轰鸣声=  =,eclipse经常卡死,没动力做下去了。

链接: https://pan.baidu.com/s/18NGPizgw-8zZJmfr5E0jvA 提取码: 2w6j

自动解魔方机器人1 [算法篇]相关推荐

  1. 自动解魔方机器人 [开篇]

    2017年2月底,在网上看到了一篇新闻 http://digi.tech.qq.com/a/20161112/003776.htm 自然而然的想了想它是如何实现的,从视频来看,在装置顶部和底部各安装了 ...

  2. 物联网毕设 - 基于Kociemba算法和颜色识别的解魔方机器人 - 单片机

    ⭐️基于Kociemba算法和颜色识别的解魔方机器人⭐️ STM32开发板 亚克力机械手 全志 ARMPC C30 开发板 Kociemba算法 安卓APP 源码: https://blog.csdn ...

  3. 基于Arduino、树莓派的两款解魔方机器人

    历史的车轮一直在前进,时代总是在发展,在互联网时代,各种新技术层出不穷.其中,最具有实用性和创新性的便是21世纪比较热门的领域--机器人.本次将要制作的即为解魔方机器人,旨在成功地实现不同机械结构情况 ...

  4. 解魔方机器人系列(一)kociemba算法

    安装 apt-get install libffi-dev apt install python-pip pip install setuptools pip install kociemba 使用 ...

  5. 解魔方机器人一秒搞定魔方

    机器人已经可以在一秒左右解魔方啦,是不是完胜人类? 魔方,在大部分人眼中可能就是一个儿时的玩具,殊不知它却是高智商人群的钟爱.解魔方不仅靠智商,其实还是有技巧的,掌握了规则你就可以很快地拼凑出来啦,甚 ...

  6. 解魔方机器人系列(三)软件控制及整机测试

    魔方机器人的分上位机PC端软件以及下位机arduino软件.上位机采用python编写,带有UI,用户需输入魔方各个面的颜色分布,点击solve按钮,软件就会将解魔方步骤通过串口发送给arduino. ...

  7. 毕业设计,步进电机解魔方机器人

    这周没什么好写的,设备驱动入门中,但还是想写点东西,能坚持每周写一篇的话还是写吧 想想毕业快半年了,把毕设简单写一下吧,短时间内估计也不会去折腾这些玩意了 没搞懂怎么插入视频,直接放地址吧 http: ...

  8. 乐高解魔方机器人编程百度网盘_砍人快乐 喜剧 / 惊悚 / 恐怖 网盘资源目录搭建...

    ▲点击蓝色"网盘扩容" 每天推荐一部电影 v:xna2022 <砍人快乐> 剧情: 失明的图书管理员.沮丧的板球运动员和孤独的心理医生各自都在寻求惩罚和解脱,他们的生活 ...

  9. 毕业设计 stm32颜色识别解魔方机器人

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4.1 Kociemba算法 4.2 软件设计 5 部分核心代码 最后 0 前言

最新文章

  1. mysql 表空间收缩_mysql表碎片清理和表空间收缩
  2. 代码混淆工具Dotfuscator 在VS2008中的使用步骤
  3. NVisionXR_iOS教程六 —— 场景中对象交互
  4. 整数中1出现的次数(从1到n整数中1出现的次数)
  5. java mapreduce 标准差_MapReduce设计模式之概要设计模式
  6. WordPress后台删除不需要的侧边栏菜单
  7. TCP/IP入门(1) --链路层
  8. onenote快捷键_onenote链接系列:链接笔记如何产生?与插入链接的区别
  9. React-Router4按需加载
  10. 话说这发表日志跟聊天似的简单很啊。
  11. php 获取有道翻译,python爬虫 身边的翻译专家——获取有道翻译结果
  12. 算法知识点——(3)监督学习——SVM
  13. php选择不同店发送不同邮件,php – WooCommerce电子邮件通知:不同城市的不同电子邮件收件人...
  14. crash report for adobe photoshop cc 2019
  15. LeetCode 1405. 最长快乐字符串**(double,trp)
  16. F-Groundhog Looking Dowdy2020牛客暑期多校训练营(第九场)(尺取法)
  17. 研究生复试英语问答口语10个最可能问到的问题
  18. 用 InstallShieldX 做教育片的安装
  19. 串口通信是先发低位再发高位
  20. PoE交换机的多种连接方式 PoE交换机的4种连接方式

热门文章

  1. qq邮箱怎么添加学校邮箱
  2. 海外游戏广告投放思路和指南
  3. ffmpeg_Cropping Video(剪裁视频)
  4. 憨猴科技“分布式运营系统“荣登世界互联网大会
  5. 比子弹速度快十倍的导弹是怎么被拦截的?
  6. 进程,系统性能和计划任务
  7. 怎样理解大数据概念?大数据有什么用处?
  8. Micron内存DDR3型号查询 memory part
  9. WiFi beacon时槽
  10. java毕业设计阿博图书馆管理系统mybatis+源码+调试部署+系统+数据库+lw