Let’s Play!乐高弹珠台们
发表于 2010年07月20日 归档于 酷玩志
今天,Legocn集中为大家带来3款Lego搭建的弹珠台:波兰玩家Atrx(这里是不存在的Youtube主页)最近在Eurobricks上公布了他的最新新作品,乐高NXT弹珠台。整个搭建使用一只NXT控制器,4个碰触传感器,其中3个接驳在一个端口上,2只光感传感器,控制程序用LeJOS编写。(更多图片)
游戏规则:
按下橙色按钮后,开始新局,每局可用3个球,开球后10秒内掉坑不记为失球。10秒内未失球记50分;击倒全部两块红绿色板记100分;击中任何一个黄色板记200分;每获得500分台面中部的黑洞将启动一次,黑洞入口会在20秒后自动关闭,第15秒开始闪烁提示;进入黑洞得300分。
来看一下视频:
怎么样,是不是很有意思?其实Lego搭建的弹珠台已经屡见不鲜了,但是这一只是比较具有代表性的,相对结构简单,但不失游戏性,而且从效果来看游戏过程流畅度相当接近真实的弹珠台。
—————我是分割线————————————————————
其实早在上个月,加拿大温莎大学计算机科学学院的另一款乐高NXT弹珠台作品也曾引起过我们的关注,这台作品使用了多达6只NXT控制器,不过其中4只被用来显示积分(估计这个项目是学校出资的- -!)9个触碰传感器,10个光感传感器和4个nxt电机,所有的控制程序均由Lego官方的图形编程语言NXT-G编写。
从上面视频的效果来看,似乎在游戏性和流畅度上比起前面介绍的那台要稍逊一筹。但是!重点是但是!大学毕竟有学术范儿,该项目公开了所有搭建的MLCAD图纸,和所有的NXT-G源程序。
—————我还是那根分割线————————————————————
最后,让我们来欣赏一下乐高程序控制弹珠台的鼻祖级作品,曾在2005年荷兰兹沃勒乐高展上震撼全场的这台乐高RCX弹珠台,整个搭建使用了2万块以上的乐高积木,13个RCX控制器(不熟悉的朋友可以把它想象成NXT的上一代产品),其中4个用来显示分数,6个用来收集得分,3个处理弹脚和重新置球动作,此外还用了8个光感传感器,13个旋转传感器,18个碰触传感器和24个RCX马达,光连接线就用掉近100米。(报完这一串数字,播音员摸着自己的皮夹子哭了……),控制程序使用了VB、Java和NBC,游戏规则基本与前面介绍的第一款一样,唯一可惜的是当时似乎没有留下影像资料,不知道具体的游戏效果如何。需要顺便提一下的是,这台弹珠台必须投币5毛欧元硬币,而且不要拿游戏牌子混哦,它认得出的!(万恶的资本主义 ^^)
感兴趣的朋友可以到这只巨兽弹珠台页面去刨坑,文字资料里很详细的介绍了多控制器同时汇总数据的操作,以及那个神奇的滚筒积分板的设计。此外,Legocn还为大家找到了两位作者在BS上的图片展示:照片集一、照片集二。不要谢我,谢国家。


















银色繁荣
20. Jul, 2010
第三个看上去最强,可惜没视频
动力老男孩
21. Jul, 2010
呼唤一下万能无敌的Robin大神
我的魔方机器人被国外的玩家鄙视了,以下是留言:
“Your robot is interesting, but mine is fastest one”
不过这兄弟目前的确是最快的,12秒解魔方
http://v.youku.com/v_show/id_XMTUzMTkyODQw.html
请教一下Robin同学,如果不考虑电机数量和零件数的话
怎么设计才能更快的解魔方,也许可以尝试一下挑战人类极限(7.08秒)
动力老男孩
21. Jul, 2010
不好意思,没找到之前的魔方帖
所以回复到这个页面了
alai
21. Jul, 2010
我看见Robin老师正奋笔疾书呢。
robin
21. Jul, 2010
动力老男孩:谢谢您对我的信任,您太过奖我了,我并不是像您描述的那样“万能无敌”,呵呵。软件编程就是我的弱项,也是我至今还没有动手独立完成“解魔方”的主要原因。所以解魔方我也只能“纸上谈兵”,一些想法尽供商讨。
我和站长看了您的留言、您的作品视频与那个魔方达人的视频,我们针对您的问题也讨论了一下,有以下想法:
1、比较“解魔方”的速度我们认为是要有前提的。您“解魔方系统”的前提是只使用一个NXT、一个光电传感器、三个伺服电机,翻魔方的机械动作是二维的(只有二个电机),算法与控制均有一个NXT来解决。其特点是结构简单,易于广大爱好者仿效。但是您的方法也有致命的缺点即速度慢,如果不讲前提,那么您的“解魔方的系统”是根本无法与那个魔方达人的系统比的。
2、以LEGO的器材为基础解决“解魔方”问题且要速度最快(挑战极限),我们觉得一要有好的算法二是高速高效的机械结构。解决的方案还是比较多的。我想软件方面不用我说,您是内行。硬件方面我们想主要是两个方面的问题:其一,要有一套较高速度来翻转魔方的机械手。您的解决方案中使用的是二维动作来翻转魔方,且翻转魔方与挟住魔方均使用一维动作,翻转时还利用了魔方的惯性等等,这样大大的影响了魔方的翻转速度。而那位达人使用了四个旋转机械手,每个机械手有二维动作,共有八维动作。这将大大的提高了翻转速度与旋转魔方某一平面的效率(可同时旋转二个面)。所以要较高的速度来翻转魔方需要适当数量的机械手来协调动作。其二,要有一个稳定、可靠的结构。因为LEGO的零部件有其固有的特性,我一直以为LEGO的单个零部件精度已经做的很高了,但如果把它们组合在一起成为一台机器那可以说是相当的粗燥,而且LEGO的零部件均是塑料的,其钢性远不如金属,受力容易变形,这些弱点均需要有一个好的结构来弥补。另外,机与电的配合问题也是非常重要的,当然这主要是在调试过程中解决。根据我们的搭建经验,做到第二点是最为麻烦的,有时还会因为结构问题而推翻整个设计方案。这也是能否成功的关键。
alai
22. Jul, 2010
我也来出些点子吧,给动力老男孩参考一下:
解魔方机器人其实就是3个部分:识别、计算、翻转。要想缩短时间就得从这三个部分上逐个分解。Robin老师说的对,所有的比较都是要有一个前提的,按照你说的“不考虑电机和零件”的说法,我们就来天马行空一下。
【识别】:目前可以使用的识别方法有这样几种。第一是用传感器,包括Lego官方Mindstroms或者其他第三方厂商的光感传感器、颜色传感器等等,传感器识别的缺陷是非常明显的,就是必须一个一个色块识别。这样不论怎么设计,在解魔方整个应用的第一阶段你就不得不让传感器“爬完”54个点,这个过程是相当伤士气的。第二种方法是使用摄像头,包括Lego官方的摄像头或者手机以及PC摄像头。使用摄像头的好处是可以一次探测一个面的颜色,但是乐高官方的摄像头只有8个内部寄存单元,虽然从理论上可以实现,但是编码和计算的工作量似乎又增加了很多。而手机和PC摄像头则要快速和可靠得多,更大好处是可以把颜色识别和还原算法的代码运行在手机端或者PC端,处理速度自然会更快。ARM公司推出的一系列魔方机器人,后期都主要使用手机识别。可以看出这是个成功的解决方案。
【计算】:虽然魔方算法很多,但是实际上现在可以看到的作品都和“萝卜头”一样,使用的都是“底十字、底角、边、顶十字、顶角…”按部就班还原的方法。这样肯定是可以还原魔方的,但是必定不是最少步骤。最新的研究显示任意3阶魔方都可以在23步内还原,而目前的Lego魔方机器人作品大多在30-40步左右。23步研究结果是在超级计算机上得出的累计结果,用NXT来计算选则哪一种解法消耗更少显然不合适。那是不是在算法上就放弃呢,我初浅的认为还是有潜力可以挖的,比如从原始算法上,魔方圈子里流传很多高招,不巧我也研究过一段时间,其中一种“双翻法”印象深刻,就是每次移动两个色块,同时达到目的区域,如果可以用程序来解释,那在特定情况下是否能达到更好效果,我不知道,应该还是有些希望的。此外,如果你选择在PC机或者手机上处理计算,单个计算过程无非是毫秒级的,那是否可以考虑采用多种算法,寻找最佳方案的方式来减少翻动步骤的次数。
【翻转】:3阶魔方的翻转还可以谈谈机械臂的问题,超过3阶的话,以现在Lego模型的精确程度只能靠套筒的方式来转动,套筒只能在一个轴向上转动,所以整个翻转过程变得很慢。3阶魔方是不是可以翻转机构越多越好?理论上来说3阶魔方可以翻转的面有6个面,但是实际上除非相对面,其他任何两个面都是无法同时转动的,也就是说再多机械臂也最多可以2面同时操作,你研究过还原法,我们常用的还原法里这种翻动情况很少。so,机械臂多也没用,反而关键是要定位准确。这是个结构上的问题,就是Robin老师说的“机电配合”的问题,相信你在测试的时候也一定遇到了因为某一次转动不到位而“卡壳”整个过程的情况。看看现在比较成功的告诉魔方机器人,其实都在这一块花了相当多心思,但是结构上在下实在是没什么资格发言。
所以,在目前看来比较可行的无限接近最快速度的方式是,使用摄像头识别颜色,在手机或者PC机上计算还原步骤,设计一个比较稳定可靠的转动机构。然后把剩下的经历花在不断寻找最少步骤的算法和改进更加稳定快速的机械结构上。
动力老男孩
22. Jul, 2010
多谢两位高手的建议,这样看来,比较方便的组合应该是:NXT+手机+蓝牙
这样摄像头读颜色和计算都可以在手机上完成,比PC方便
你们说的没错,我那个魔方机器人遇到的最大问题就是卡壳,期望转90度,实际上可能只有85度,下次转动的时候,就卡住不动了。为了解决这个问题,只能不断的用一个光电传感器修正角度误差,时间更长了。
我先构思构思,有问题再向你们请教
alai
22. Jul, 2010
旋转不到位的问题,我觉得基本可以不要考虑用程序调整电机去解决5度10度的误差。这个误差在Lego里几乎是永远会存在的,反而应该从机械结构上着手,你仔细看ARM后期的那些机器人,机械手的顶部两个很巧妙的切角设计,其实相当于翻转魔方以后再手动规整规整的动作,这个设计看似简单,但是解决了绝大部分翻转不到位的问题。也就是从机械结构设计上把最后5度-10度的误差给弥补掉了。我相信这种设计不是唯一的解决方案,期待你更精彩的作品。
动力老男孩
22. Jul, 2010
相当于是把边缘“捏”一下?
这可真是个好主意,你能给我发一个有这种结构的视频吗
学习一下,呵呵
还是程序员的思路啊,需要开阔开阔
alai
22. Jul, 2010
其实相关的视频小站之前都贴过了,为了方便你查找,我整理出来了。
ARM公司的魔方机器人,用切角解决旋转到位的问题:
http://www.tudou.com/programs/view/pJnOmkvaxBw/
他们的Youtube主页上有更多视频:
http://www.youtube.com/user/ARMflix
魔方风暴每次拧动时,都用机械手捏住不动的面,解决旋转到位的问题:
http://www.tudou.com/programs/view/r1JCZk0qzao/
http://www.tudou.com/programs/view/Yb3ppP4zgN8/
动力老男孩
22. Jul, 2010
多谢同样万能无敌的阿莱大神
alai
22. Jul, 2010
愧不能当,愧不能当,大家多交流,集合同好也是小站的初衷。
underredsky
16. Jan, 2011
没看文章 但是通读了留言
真是思维开阔 经验丰富 观察敏锐啊