这是关于两个机器人的故事。记得小时候《变形金刚》在热播的时候,我就幻想着什么时候能够制造一个属于自己的机器人;后来大学学的是计算机,知道了机器人是一个专门的学科;再后来离电子远了,离自己的梦也远了。
今天在浏览Windows Mobile Team Blog的时候忽然看到了一个有趣的Robot:WiMo。(http://blogs.msdn.com/windowsmobile/archive/2006/05/13/596684.aspx)。看到WiMo的第一个感觉就是想笑,这也叫机器人?可是再一想,人家用现成的Smartphone作为控制系统,没有自己开发什么复杂的硬件设备,就实现了一个机器人。这叫什么?这就叫“软件就是力量”。想想也是,自己开发一个机器人硬件的成本,能跟量产的Smartphone比吗?再说对于咱们这些缺乏电子工程背景的软件工程师来说,如何利用现有硬件把软件的力量发挥到极致,这才是正路。
WiMo的控制系统也非常COOL,竟然是Pocket PC,通过蓝牙来控制WiMo。软件开发方面也充分利用了现有的类库,绝大部分的代码都是用C#来实现的。为了使用DirectShow采集照片,作者写了个Native层,但是最后还是通过C#来调用的。
看到这里我不得不佩服美国版的小米加步枪。这绝对没法和正规开发的机器人相比。但是WiMo带给大家最大的震撼就是,在软件工业化的今天,我们仍然能够看到略带些个人英雄主义的奇思妙想。也许我们也应该在每天烦琐的工作之余,抬起头,在抱怨老板没给你20%的自由时间前,先想一想自己年少时的梦。也许一个看似不可能完成的任务,用很简单的办法就可以达到。WiMo真的震撼了我。
这位老兄还说他会将制作WiMo的方法发布到网上,即使没有电子工程背景的人也可以看得懂。看懂是一回事,复制又是另一回事了,在那张光盘底下还是隐藏着一些线路板的。Robot最困难的地方是传动机制,不知道这位老兄是如何控制的。让我们静心等待吧。
另一则关于机器人的消息来自MEDC。Mike Hall主持了一场SumoRobot的比赛,SumoRobot使用了.NET MicroFramework。就像JAVA有Smart Card JVM一样(是叫这名字吧?),MicroFramework是针对嵌入式设备来运行的.NET CLR,比.NET Compact Framework更小。这次的SumoRobot应该是MicroFramework的第二个作品,第一个应该是Smart Watch。那时候.NET MicroFramework还叫SPOT,其中的.NET CLR部分叫做TinyCLR。SPOT甚至不是运行在一个操作系统之上,它只是包括bootloader、HAL和CLR三部分,200-400K,只支持100个左右的API,可以说是超轻量级选手了。
但是SPOT对于嵌入式平台来说却是正合适,虽然目前SPOT还只支持C#,但是拥有Visual Studio 2005这样的IDE,对于嵌入式开发者来说,却是梦寐以求的东西。SPOT的目标平台是ARM7或不带MMU的ARM9。如果我们设想一下,我们可以在定制的嵌入式平台上移植SPOT,然后使用C#来编写应用程序。应用程序只需要很少的修改就可以应用于不同的平台之上。这种诱惑实在是太大了。
只是目前我们还不了解SPOT的授权情况,一切只能停留在假设的阶段。但是目前看来,SPOT是一项十分有前途的技术,包括在机器人方面的应用。
下面是一些关于SPOT的连接,大部分和Chris Tacke有关,看来这位老兄对SPOT相当有研究。
MEDC 2006关于SumoRobot的实验:
http://blog.opennetcf.org/ctacke/PermaLink,guid,cf3e3fef-a282-4845-b347-519fe31a45a9.aspx
OpenNETCF上关于SPOT的话题:
http://blog.opennetcf.org/ctacke/CategoryView,category,SPOT.aspx
关于TinyCLR的文章:
http://dotnet.sys-con.com/read/84123.htm
其他连接:
http://www.danielmoth.com/Blog/2006/05/net-micro-framework.html
http://www.windowsfordevices.com/articles/AT6914689493.html