机械手解魔方(3)结束篇
前言:
今年又去参加了余姚的第二届全国创意机器人大赛,当然还是主题二。今年限制了机器的体积及功率,所以没有出现去年那样的巨无霸。比赛我们队伍拿了一个全国一等奖一个全国二等奖,对于这个结果还是比较满意的。放一张去比赛的现场图片。我们还是用了去年的代码,只是添加了点东西,优化求解步数及时间。机械部分主要是由大一制作的,由于贫穷,所以做的大部分都是其他地方拆下来就使用,看起来有点破旧。但是我们用了最垃圾的东西,做出了最好的性价比。唯一坑的就是,学院还不给我们报出去的路费住宿费,奖金全部拿来抵消路费还不够。我们参加比赛就是过于“自作多情”,所以以后不会参加任何比赛了。
以下是这次比赛可爱的学弟们,都非常厉害,他们为这次比赛做了很多。
总的来讲今年,在求解时间排名前几组的队伍软件上整体目标都差不多。个别方案可能不一样。感觉可能是去年答辩的时候,很多学校都了解了,还有就是中科大特等奖的作品已经在淘宝上卖了,哈哈哈。我也是在火车上去比赛的时候才知道。
方案总体流程:视觉获取信息->具体转化为魔方信息->kociemba算法求解->执行步转机械步->机械步进行深度优先搜索,优化执行步
如果做到以上的部分,并且电机速度控制比较平滑不会使魔方打滑错位,基本上就是一等奖的水平。
算法求解:之前我采用Jaap Scherphuis算法去求解魔方,步数相比kociemba确实要长一些。这个很多学校作了比较,在现场答辩的时候也说了这个问题。
机械步DFS优化:这个尤为关键,全局执行步前期执行做不一样的选择在后期影响到切换面时所可能产生的多余步骤。我不知道其他学校是如何去做的。我们只考虑了R,L面是左手旋转还是右手旋转问题,执行效益在近期一样。因为整体求解步数不会特别多,所以没有必要牺牲近期利益去计算长远利益的可能性,而且也比较消耗时间。所以问题就简化为二叉树的深度优先搜索问题。我和明洋学弟(一个非常有技术能力的同学)做了两种不同的方法去实现。问题简单描述为遇到旋转R或者L坐标面时,到底选择哪一只手去执行。有一种简单的方法就是排列组合,哈哈我率先尝试了这种方法。我利用了一个字节,每次计算机械步数时-1,然后转化为二进制去检索1和0,到底执行那个,直到求解步转化完成。比如 10101010 ,假设1左手转面,0右手转面,那就是LRLRLRLR。还有一种就是DFS方法,需要回溯,这种比较排列组合方法要快。具体网上有很多例子。另外还有就是机械步数少的不一定在执行时间上就是最优的!!!对此问题,我和明洋学弟发表了一篇论文来讨论了这个问题。后面会直接给大家链接去阅读,其中包含了坐标转换的问题。
电机控制:电机控制,需要有较好的加减速特性。比赛的时候,魔方表面都是带油的特别光滑,是一个很有挑战的问题。答辩的时候我看到很多学校奇思妙想。我记得最清晰的就是华科的一组,魔方转面的时候,魔方面错位,转到位置后再往反方向抖一下,使面再转回去。非常有想法和特点。湖南大学的加减速做的功夫到家。由于需要伺服控制,还要有加减速,而且我们用的还是步进电机所以综合就很麻烦,所以就在电机后面装了编码器,在位置空间上进行,加减速控制。使用的S函数。我们这种方法,虽然说不是在时间尺度上的,看上去不可靠。但在实际过程中,魔方转面表现还是会错位,但是错位后由于等效的摩擦,错位后又可以转回来。这点我们做的比较好!我们电机驱动硬件用的最最最普通的步进电机驱动器,淘宝价25块,名次较好的组中,没有比我们还要寒酸的了,总体成本我们是最低。最有意思的是,由于我们得发挥驱动器极限,在高频率时电机转矩下降很严重,没有加减速都启动不了,因此电机会发出滋滋滋的声音,声音有点大。所以在转的过程中,阻力稍微变大,就无法转动了。我们在现场调试的时候,很多的人来围观(我们是当时现场表现很强的组),魔方发生错位时,电机受阻,就开始叫了。然后旁边的老哥一脸严肃说 : 看他们还有报警功能。 我都不知道回复他啥,不过他认为的也很有道理,哈哈哈。
具体比赛现场视频:视频1 视频2
家里的测试视频:视频1 视频2
机械手解魔方(3)结束篇相关推荐
- OpenAI机械手单手轻松解魔方,背靠强化学习+新技术ADR
编译 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]10月15日,人工智能研究机构OpenAI发布了一条机械手单手解魔方的视频.这个自学式的类人机器人手臂名为 Dactyl, ...
- 自动解魔方机器人1 [算法篇]
魔方机器人其实上个学期就已经做完了,参加了机器人大赛的创意组. 本来想写一个教程,一直没时间整理(其实是懒),这次先把我觉得比较重要的东西写一下,主要是为了记录一下我的制作过程和制作思路,给有同样兴趣 ...
- OpenAI“单手解魔方”被公开质疑,Gary Marcus称七大问题涉嫌误导
全世界只有3.14 % 的人关注了 青少年数学之旅 近日,"OpenAI的机器手在4分钟内单手成功还原魔方"引起刷屏,然而,这一成就被著名机器学习怀疑论者马库斯质疑了,马库斯逐条列 ...
- 小学生手写Python程序解魔方!这是高手,这绝对是高手!
导读:最近,微博上看到一位孩子的爸爸,在晒其儿子手写程序解魔方的过程,看完后,觉得特别好玩.顿时有种再不学编程,连小学生都赶不上的危机感,哈哈哈!!! 作者:丁彦军 来源:恋习Python(ID:sl ...
- 明解C语言入门篇_第8章_动手编写各种程序吧
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- python识别魔方色块_解魔方的机器人攻略23 – 识别颜色(上)
今天看到架子上的萝卜头,已经落了很多灰尘.想起萝卜头的攻略还剩几篇迟迟没有写完.前一段时间一直在试验小爱的手机遥控器功能,从今天开始准备陆续把萝卜头的攻略补完,给博客也打扫打扫灰尘. 说起来真是很惭愧 ...
- python解魔方程序_写一个解二阶魔方的程序
本文需要读者有一定的魔方基础, 最起码也要达到十秒内还原二阶魔方的水平, 并且手上最好有一个二阶魔方, 否则文中的很多东西理解不了. 另外, 这里使用的算法是我自己写着玩的, 如果你需要更成熟和专业的 ...
- 2016年最新苹果开发者账号注册流程详解(公司账号篇)
随着苹果规定金融/理财类应用需要使用公司开发者账号上传,并进一步加大对此类问题的审核力度,公司开发者账号开始呈现出炙手可热之势! 不过,公司开发者账号的注册流程着实复杂--不仅要填写公司的D-U-N- ...
- 明解C语言入门篇_第4章_程序的循环控制
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
最新文章
- gcc 参数 -fprofile-arcs -ftest-coverage作用
- ADO和DAO的区别
- 一次简单的sql性能比较
- jquery部分方法
- 【TypeScript系列教程01】入门介绍
- javascript学习系列(4):数组中的some方法
- Mongoose aggregate 多表关联查询
- hadoop--HDFS搭建客户端API环境
- python-zip方法
- 【Python】列表推导式求 100 以内的所有素数
- 黑马冠军快手在国际回声消除大赛中战绩颇丰
- 通过Ant控制Hibernate操作数据库
- 开发函数计算的正确姿势 —— 排查超时问题
- Excel使用VBA小程序的方法
- 探索大型网站技术架构(二)
- mysql jemalloc_MySQL性能测试--jemalloc内存管理
- 激光导航AGV-激光雷达安装要求
- win10相机计算机无法使用,win10系统相机怎么用 win10系统相机无法使用怎么解决...
- zigbee 4:协调器/路由器/终端 建立/加入 网络
- 英语中容易混淆的单词发音: 一