魔方机器人挑战【持续更新】

xwang 2018-8-23 2861

序言

初三可谓是忙忙碌碌,一年没有碰乐高。本以为考上了理想的高中,暑假就可以尽情high的,结果到了暑假,却发现自己没有坐下来搞乐高的心境了。而且各种衔接课程加上到处旅游让我几乎把乐高忘记了。直到军训,发现同学们各个都是大牛,他们讨论的问题我一个字也听不懂,什么高等数学什么有机化学还有OI等等,感觉到在这个新的学校没有一技之长真的没有办法生存了。于是又重新想到了我那已经落满灰尘的乐高。想到了初二暑假想要做但是没有做的魔方机器人,于是我决定自己设计一个魔方机器人。

看到这个帖子不要以为我设计完了,其实远远没有呢,我才只是开始,结构才开始设计——之所以先发上来是给自己一个挑战,促进自己继续往下去做。

我的想法很简单,我并不要追求速度,因为毕竟我没有学过编程,也就只是自己在网上三天打鱼两天晒网的看过编程的一点点内容,基本只会个if和loop,还有一点点集合。因而程序对于我来说将会是一个挑战。不过我只是要求复原——哪怕一天也行。所以我觉得还是有希望能够做出来的。

这算起来毕竟也是一个大工程,所以需要一个整体的思路(这里把魔方机器人简称为RCS(Rubik's Cube Solver)):

————————————————————————————————————————————————————————————————

一、选择方案

现在乐高的魔方机器人,基本有两类,一类是通过一个推手和一个转盘实现的,另一个则是通过机械手来完成的。其优劣对比如下(抱歉英文,懒得再写一遍了,其实我的笔记是英文的,用Mac上的pages写的,后面做完了一并发上来(因为pages可以在文档里面放视频、照片集))

最后我还是选择了第二种方案,因为第一种方案与第二种方案相比,效率太低了——本身我的程序就会极大的拖累时间,我不想要再在我相对较为擅长的结构上面浪费时间。再加上,第二种方案我曾经设计过一个利用阻力使一个马达完成两个动作的机械手,所以根据我手上的东西我可以做出来四个机械手——正好够用。哦,还有一点,我尝试过第一个方案,但是不知道为什么每次总是没有办法保证魔方推后能够回归正常的位置,总是要么掉出来要么卡住,于是就不这么做。

————————————————————————————————————————————————————————————————

二、结构设计

设计结构,我准备分为三步,主要考虑是我的零件现在全乱了,而且可能还需要购买许多新的零件,再加上我用LDD的速度回稍微快一点(毕竟可以复制粘贴)

1、设计出来最核心的抓手(因为这一步不能在电脑上完成,需要测试和实验)

2、用LDD完成整个RCS的设计

3、通过外交手段从老妈那里搞到经费购买零件并组装完成

1、抓手设计

一个抓手有两个功能,一是抓,而是抓住了要旋转。而我,只能有一个电机来完成这些动作。(也尝试过两个电机,但是发现两个电机同步是一个非常困难的问题)。不过,可以利用阻力来帮忙。

这是1.0版本的抓手(原谅B站可能还在审核):

https://www.bilibili.com/video/av30112716/

这基本上也就能够演示出来是怎么利用阻力来完成这两个动作的了。但是这个东西也有一个非常致命的问题:那就是整个结构非常的软,因而导致非常的不精确。其原因有两个:

1、中间只是用一根十字轴,十字轴非常的不坚硬。

2、使用齿轮传动+连杆的设计,齿隙导致误差。

其问题演示如下(原谅B站审核):

https://www.bilibili.com/video/av30115575/

所以,我就想到了只使用连杆的方案。但是这并不好设计——花了我整整三个小时,才完成了这个大概六七十个零件的小抓手——不过,这就是整个解魔方机器人的核心了。如下图






桌子比较乱哈,不要介意。

这个结构就要稳定的多了,装一个马达测试了一下(同样,B站的审核要等到什么时候啊,可怕可怕可怕):

https://www.bilibili.com/video/av30116497/

效果还可以,于是就可以在LDD中建模完成余下的设计了。(先只是完成了抓手的建模,余下的设计暂时还没有动(原谅我下午一时兴起想要去参加8.25那个越野赛来着结果发现自己没有设计越野车的天赋,不过反正在南京还是想去看看))




【未完待续,剩下来我有新的进度再继续更新,先附录一下这个抓手的lxf文件】

【欢迎批评指摘,提出意见!谢谢!】

————————————————————————————————————————————————————————————————

8.24更新

其实昨天晚上就已经完成了整个主题部分结构的设计——至于EV3的主机,嘿嘿,我只是准备丢在外面单独搞一个架子,因为毕竟和重要的核心结构没有什么太大的关系,也就没有必要再用LDD设计了。买零件的事情得过会再说,暂且先不申请(我还在犹豫要不要把所有的零件都重新买一遍(配色好看,毕竟这也是我第一个认真做的大project),还是只买需要的零件(当然经费问题,我还在口水那个新的布加迪跑车))

好了,话不多说,上一下LDD的图

附录一下整个东西的LXF格式的图纸。(MainBody的那个)

好了,上文说了,暂时还没有购买零件,那么我马上就需要进入下一个大的步骤,也就是程序设计了。


好久没有更新了,马上要开学了,加上高中,唉,要出国一堆事情,这个计划也只能是缓慢进行了。每周估计最多能抽出一个小时吧,那已经很可观了。

先附录上自己的进度,见那个RCS.pdf的文档,里面基本上阐述了一直到解魔方算法的选择以及我在电脑中用变量表示魔方的方法。

当然,因为个人的想法只是先把魔方机器人做出来,加上所有的编程基础其实只是当初搞FLL、WRO的时候的乐高图形化编程,所以编程其实非常糟糕。程序用的是swift,用xcode编写的。准备是做一个iphone或者ipad的app,然后在iphone或者ipad上运算,毕竟ev3的运算速度感人,加上我的程序肯定是没有什么优化的。

程序太菜,中途还遇到了一个BUG,我当时竟然不知道只能在函数或者方法里面调用函数。可怕。

后来请教了一个专门搞苹果编程的叔叔,也就轻松解决了问题。

于是就开始码程序。这个尤为可怕。当我完成了魔方的digitize,已经写了八百行代码。

然后我重新relocate魔方,让红色正对我自己,黄色朝上。这样的话,因为我不考虑速度,所以对于我来说分析起来很快。

然后我完成了底层十字的编程,但是有了一个bug。。。可怕。。。不过到这里已经是这个暑假的全部进度了。后面开学,呵呵,一周最多只能一个小时吧。。。可怕,还要考托福sat,还要注意GPA,还要模联一堆社团。。。【泪流满面.JPEG】

到这里代码已经破千行了,但是一个底层十字还没能完全解决,可怕。

最后祝大家天天快乐!后面有空再继续更新吧。本来录了几个演示程序效果的视频,但是鉴于时间有限,就不传了。


上传的附件:
最新回复 (8)
  • xwang 2018-8-23
    2

    占楼

  • xwang 2018-8-23
    3

    占楼

  • Isaac_66 2018-8-24
    4
    太厉害了
  • xwang 2018-8-24
    5
    Isaac_66 太厉害了
    谢谢X,倒是真的很不厉害,真不清楚自己能不能做完(但愿不要烂尾)
  • dyk 2018-8-27
    6
    大神!佩服!持续关注!

    加油!!!!
  • xwang 2018-8-27
    7
    dyk 大神!佩服!持续关注! 加油!!!!
    谢谢,不能算大神,只是自己摸索。可惜后面没时间了【泪流不止.JPEG】半年关注一次差不多了吧【泪流不止.JPEG】
  • xwang 2018-8-27
    8
    哦,补充一句,注意一下那个LDD的搭建图,上面和左面抓手的结构(也可以说是下面或者右面)是反的,懒得改,搭建的时候直接复制粘贴了,毕竟LDD搭建一个抓手还是蛮费事的。
  • catdoit 2019-7-25
    9
    弱弱地问一句,4向的抓手,这魔方怎么放进去。
返回
发新帖