前述:这个项目从寒假放假开始做,在学校里面待了七八天,把机械结构搭好,初始代码有一个雏形,开学之后断断续续的总共做了一个月左右,最后结果比较悲情,结果上传后,很遗憾大佬太多(或是比赛自身公允度也值得怀疑。。。。),但我们自己做的确实较菜,提交的视频是双臂运行了52S。最后是被淘汰的,无缘进入决赛。但对于个人来说,东西是做出快来了,我已无愧。

地址:https://github.com/shuiyihang/CubeSolve

背景:老师推荐这个比赛的时候,我已经大三了,之前说过,不想再参加任何比赛了,比赛玩几次还行,可以锻炼受压能力,但是一直做,其实对于新东西学习很有时间限制,但是看见有魔方机器人的项目,就决定再做一次吧。原因我觉得有三个,其一:那段时间在学习python,树莓派和opencv,就想做一个实际项目吧。其二:没选择其他的如格斗,擦窗之类的,是觉得必须要有一个严格的“界限”,对于魔方来说,做出来就是做出来,必须要把魔方还原才算做出来,但是擦窗,格斗是没有什么硬性指标的[对于我自己来说,是想检验一下这三年有没有能力真正的完成一件事情],其三:就是大一时间看见过别人的解魔方视频,当时是颇为震惊的,想自己来试试。

大体结构:

机械结构,采用最简单的双臂形式

控制上面考虑到要图像处理,两种解决方案,一种openmv[需要另行购买模块],另一种opencv,我那时候刚在咸鱼上收购了一个树莓派3B+,所以没多想选择了opencv,语言就选择使用python[确实事半功倍的效果]

双臂魔方机器人的难点:

这个你一定要重视,上面看完,你觉得:哦,似乎没什么难度哈。但许多东西是你做起来才发现问题的。

1:最大的问题,就是双臂的机械结构,从图上可以看到,我们使用的是标准铝型材,搭了两个45角,自以为巧妙无比,但运行过程中,总会发生手臂碰到魔方的问题,因为使用的是步进电机,只要一碰到魔方,步进电机就会失步,达不到位置,后面就全乱了,魔方夹子在某宝上面购买的,设计的颇为让人费力,后期用电磨不断加工,只为了让舵机张到最大时候,旋转时候夹子不会碰到魔方,但其实这里也有两种方案,一种自己3D打印[看自己工具情况吧],一种是不需要加工夹子,在夹子上面的滑轨上面加长的硬性塑料[受力不会弯曲,不然夹不住魔方],或者要是能搞到铁片也好,再把夹子的抓手固定到塑料或铁片上,可以加大舵机最大角度时候抓手之间的距离,确保夹子肯定不会打到魔方。

2:魔方每个面颜色识别处理,没做的时候无非觉得只是,opencv腐蚀,hsv值比较一下就行了,太简单化问题了。。。

实际问题总是要比理论麻烦,摄像头受光照等等影响,我们直接用的树莓派自带的CSI,10几块钱,中午时候采集的图像很清楚,颜色识别也几乎全对,但是总存在不确定性,要知道一个错,就没有解法的。尤其红色和橙色的H值是很接近的,总会造成误判,这里建议大家使用图片中的标准魔方,颜色还是比较正确的,刚开始借舍友的这种魔方,红色和橙色总是傻傻分不清。

其他:剩下的则是一些小问题了,比如抓手必须要贴上一些加大摩擦力的东西,我们使用的是海绵,效果还不错[砂纸也使用过,对魔方不太好],还有一个特别的问腿,我们结构看起来夹子是绝对在一个面上的,但是转动起来的时候[因为我们不是采用的加薄板方案,所以有这个问题,否则略过即可],会偏,后来,队友奇想,把一个手臂用手向一边掰弯,竟然好了!!。。。

过程:

说一下过程吧,因为想着要考研[成电等我!!],在上一年,便把keil之类等等全卸载了,电脑上只留了一个Arduino的编辑器,确实好用方便,寒假留校期间,没有使用树莓派[比较金贵,东西没调好之前怕搞坏了没使用,还有就是没想好怎么使用,电脑远程又没网,不舍得开流量。。。一开始想的是先用C写,完了之后移植到python上,设置为树莓派开机自动启动],这里介绍一下魔方解决算法kociemba,在GitHub上面开源,需要研究源码或是pip安装的了解下,外人以为魔方是一步一步边走边算的,其实是错的,它根据各面信息在最开始便得到过程,剩下则是电机互相配合把它动作出来的问题了。

在校七八天内,等着买的铝材料回来时候,在写电机根据kociemba得出的结果之后的动作,大致想法是把结果字符串分离成一个个字符,再判断字符情况,根据双手目前颜色情况[颜色就在手中,不需要步进电机旋转],与目标颜色相差多少度等等。。。

最后等架子搭起来的时候,因为抓手无法夹着魔方[摩擦力不够],又因为要回家了,就模仿着,单步在Arduino上,根据串口反馈的结果,我自己双手走了一遍,似乎没错误就先这样了

开学来的时候,考虑树莓派用来处理图像,Arduino负责电机动作[因为有完美的servo库和pwm输出,只使用树莓派,要自己配置电机驱动。。。],但这样就要考虑两个之间通信,IIC或者是串口,IIC只能发送字符 ,而我想要的是可以发送字符串[ok,yes之类],后来使用串口,但是两个控制器的串口通信似乎存在不同步问题,这样把指令给Arduino就要费很长时间。所以又放弃这个想法,还是使用单一树莓吧,解决远程[手机或者电脑连接pi],就直接上树莓派了,这里要说一下opencv安装问题,因为树莓派安装cv3的时候需要编译[我在宿舍用了整整一天],后来不知怎么崩了,无法调用,心血全废了。。。。。所以这里建议大家[务必]使用cv2,只需要pip一下,安装也就40分钟左右,对于颜色识别已是足够,只在某些函数调用上面,cv2与cv3相比可能多一些参数。

使用pi的时候,因为怕python加持,很多问题都简单了,在Arduino上比如结果分离成字符的函数需要自己写,在python上面有现成的,一句话的事情,结果也没有移植当初Arduino上的代码,因为觉得写的麻烦了,这里有一个想法:算法是什么?算法是节约空间和时间的,当没有或者是可靠的算法的时候,放弃空间或许可以换来时间和代码可靠性,想来魔方可能情况不多[左右手颜色组合情况],于是就做了一个python里面的字典映射,每种情况对应一种动作,虽然空间臃肿了,但是效果不错!

本来想的是进入决赛更新颜色识别偏,加上模型训练或者是换摄像头,遗憾止步了,五一开始,早上困的不行,没有去图书馆,一直想更新下博客,趁这个机会补上,代码等有空补上[发GitHub上吧。。],树莓派没在身边

视频里最后结果截屏。。。。

中国高校智能机器人---魔方机器人经验帖相关推荐

  1. 第三届中国高校智能机器人创意大赛ROS挑战赛-迷宫夺宝机器人

    全国高校智能机器人大赛之ROS挑战赛-迷宫夺宝机器人 一.作品简介 比赛规则:http://www.annisen.com/details.aspx?id=163 参赛作品: 获奖: 二.硬件架构 系 ...

  2. 中国高校智能机器人比赛经验总结与分享——1V1擂台机器人

    文章目录 1.总体策略 上台策略: 备战策略: 传感器策略: 机器人硬件设计: 2.比赛经验总结 1.比赛前期车体安装及调试 2.比赛车体调试与经验汇总 比赛简介 智能机器人格斗大赛(Intellig ...

  3. 中科大843信号与系统中国科学技术大学843信号与系统138,总分420+上岸经验帖

    中科大843信号与系统中国科学技术大学上岸经验帖 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) ​ 数学:(多动手,多计算,多总结,打好基础) (1)3月中旬-6月底:(这段时间重点应 ...

  4. 嘉兴 机器人仓库 菜鸟_中国最大智能机器人仓库启用,拣货效率至少提升三倍!...

    原标题:中国最大智能机器人仓库启用,拣货效率至少提升三倍! 由菜鸟网络打造的中国最大的机器人仓库,日前已经在广东惠阳投入使用.与以往一些智慧仓库只有几十台搬货机器人不同的是,这一仓库内有上百台机器人, ...

  5. AI志愿超强攻略|中国高校AI专业最全院校排名课程对比(附链接)

    来源:新智元 本文共9000字,建议阅读15分钟. 本文带本文为你介绍中国高校人工智能专业院校及课程情况,指导院校报考. [ 导读 ]高考分数出炉,你想好报什么专业了吗?作为最有前景的专业之一,人工智 ...

  6. 清华大学成立人工智能班 中国高校AI布局大盘点!

    清华大学成立人工智能班 中国高校AI布局大盘点! 摘要 近日,在清华大学校园开放日当天,清华大学宣布新增设"人工智能学堂班",拟招收30人!在北京大学2019年的招生亮点中:启动& ...

  7. 重磅出炉!中国高校人工智能专业综合排名榜单

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 转载自:图灵人工智能(ID:TuringAI01) THU数据派 进行了再编辑 本文3235字,建议阅读8分钟. 本 ...

  8. 人大计算机学硕,人大学硕380,比考研更重要的,是找到了自己 | 人大新传考研经验帖...

    原标题:人大学硕380,比考研更重要的,是找到了自己 | 人大新传考研经验帖 这是本年度瓦叔公众号的第11篇经验帖 来自考上中国人民大学的Wisky师姐 现在是晚上八点,刚结束了周末在中国调查与数据中 ...

  9. 【考研经验】19南京大学考研经验帖,软工从入门到入土

    转载于 王道论坛 原作者  纯捡垃圾恰的 抱歉这么长时间才出了经验帖,本来不是很想出这个经验帖,害怕误人子弟.因为考研复习是小马过河,盲信经验帖后果是很严重的,所以我下面提到的建议和教训,大家做一些借 ...

最新文章

  1. 修改代码150万行!Apache Flink 1.9.0做了这些重大修改!(附链接)
  2. python详细安装教程3.7.4-python 3.7.4 安装 opencv的教程
  3. 剑指Offer_29_最小的K个数
  4. 机器学习笔记 时间序列预测(基本数据处理,Box-Cox)
  5. JavaScript基础02【强制类型转换(String Number Boolean) 其它进制数】
  6. HDU多校2 - 6774 String Distance(序列自动机优化lcs)
  7. web server的性能统计
  8. 《Genesis-3D游戏引擎系列教程-入门篇》九:发布到移动平台
  9. WSL2.0解决:/bin/bash: xsel: command not found
  10. 现场看女排vs日本了
  11. Keras中文文档总结
  12. 轻松斩断信息安全黑手!就这?
  13. Java经过的天数的计算公式_Java如何通过计算两个日期的时间差来算出天数
  14. CSS实现3D正方体动态旋转效果【源码+GIF图】
  15. html 显示音标,wheel的音标
  16. 阿里合伙人制度的意义及法律分析
  17. win10命令窗口在哪里
  18. MBA/MEM 复试准备(03)面试礼仪
  19. 我爬取了猪八戒网站的信息,发现了程序员做威客不得不进的坑
  20. 面试|C# .net 面试题

热门文章

  1. BigDecimal.setScale
  2. 秋招基础知识:定点数和浮点数
  3. Python量化数据获取:股票换手率和涨跌幅
  4. IPv6 标准协议(RFC-2460)
  5. 图形处理之Delaunay三角剖分vtkDelaunay2D
  6. Oracle创建字段
  7. 饥荒一直显示服务器正在生成世界,steam饥荒联机版添加洞穴后创建世界就显示启动服务端,启动几个小时也启动不完...
  8. 【产业互联网周报】财报季:AWS营收108亿美元,增速降至30%以下;Azure增速首次放缓低于50%;IBM云营收达63亿美元...
  9. 技术如何创造新商业 新零售技术天团首次揭秘
  10. android rgb保存图片,安卓用户当心:使用RGB色域图片可能会造成手机“变砖”