妄想照进现实~叁 :手机上的剑客
现如今,中国移动都推出妄想彩信服务了,方便妖精和她的朋友进行面对面的交流。。。
现如今,中国移动都推出妄想彩信服务了,方便妖精和她的朋友进行面对面的交流。。。
接下来这段时间,我们会陆续推出一系列互动乐器,首先是这款支持与手机、PC和传感硬件互动的八音盒,可灵活更换发声敲击物来改变音乐风格,可以通过调音来发生标准音符。与手机互动的复杂度最高,先拍了这部分的照片和视频上来,其他平台的互动及进一步应用随后附上。
以下为DEMO演奏视频:
Details »
过了几天非人的生活,终于把项目搞得服服帖帖,或者说终于被项目搞得服服帖帖,刚松一口,上来晒晒比较新的东西,上次的“Fallen Gait Viewer ”改名为“Fallen ForceViewer”,是不是很有强迫的感觉?我的本意是说“力量观测者”,可是好不喜欢“Power”这个单词,还是喜欢“F”开头的“Force”,就是它了!这次带个“Mobile”,就是在手机上也能看,条形图显示,图像冻结,能本地存储数据,对于文件系统不开放的手机,还留了条路,可以通过短信把数据发出去,视频中本地存储完又通过短信发到另一台手机上,最后对比了两组数据,完全一致。换了新手机E50,一段时间了都还没什么折腾,这次折腾了一下。以下是照片和视频:
操作视频:
Details »
上次完成了用手机控制机器人,最近在此基础上完成了通过手机进行数据采集,现在的功能和PC一模一样了,算是把手机性能发掘得淋漓尽致了,得出一个结论,一般手机(我的7610是3年前的东东,CPU为123M)的数据处理能力很有限,不适合做数据采集,能处理的数据量太小,很容易出现数据浪涌,采样率高的时候,经常会线程阻塞,导致程序以外结束。但显示效果还是相当细腻的,界面光晕实时渲染的效果不输PC(手机上控制的象素点少很多),采集到的数据图也可以很漂亮,我都开始在想做一些交互式的东西在手机上画画了,我的相机不好,颜色偏得比较厉害,实际上要更鲜艳一些。
好久没写Blog了,最近太忙了,又得重感冒,反正是非常郁闷的一段,于是买了台诺基亚7610来折腾一下,终于有了一台支持JAVA和蓝牙的手机了,立马写了个控制我的机器人的程序,感觉还不错,但比较郁闷的一点是7610运行JAVA的速度居然只有春春的索爱K508的三分之一,我知道索爱K508有3D加速器,但没想到差距这么大,可惜K508没有兰牙,没法跑我的控制程序,下面是拍的一段视频,没拍好,手机屏幕看不清楚。
顺便:我10.14-10.16号会去上海,先前联系过我的上海的朋友,如果有空就MSN我。
最近一有空就寻思着给我的机器人Eye加个摄像头,让它名副其实一些,考虑了各种方案,觉得要传输、处理高分辨率的图像,用本来的8位单片机平台会很吃力,而且蓝牙、摄像头的耗电厉害,最后决定大换血,把我闲置的DELL X50v装到机器人上,直接在上面用WINCE应用程序完成姿态控制,避障,视频采集,无线传输等功能,这样也没有电源管理功能的问题了。
为了完成这次重构,首先要解决的是X50v控制摄像头的问题,因为X50v是2003se的系统,不能像WM5那样直接调用统一的摄像头驱动,翻烂的SDIO的文档,终于搞定了X50v采集SD摄像头视频流,并通过WIFI传输到PC,现在这个样子就可以叫一个人拿着PDA到处晃悠,另一个人坐在电脑前面看风景了,只要PDA的那个地方有WIFI覆盖就可以了,算是一个无限远的无线摄像头了!就是刷新率有点慢,瓶颈在PDA的处理能力。
所有的智能平台,就差手机这块还没开垦了!今天终于完成了,用支持JAVA游戏的手机来控制机器人!J2ME的执行效率和实现效果比我想象的要强得多!实时贝塞尔的三维图都能完成
运作方式是:手机GPRS上网与我写的专门配合手机的服务器实时交换信息,采用推送方式。目前完成了绝大部分在PC上可以实现的功能:运动控制,数据实时回传,条形图现实,三维图现实,采用率调整,插值,滤波,保存数据等,还没法实现的是报表的填写界面(用JAVA写UI确实太累了!),还有一个就是语音控制(这个估计还很遥远,因为我没有支持JAVA游戏的手机来实测,模拟器里似乎不行)。
下面是几张截图:
Details »
试验的目的是尝试让计算机通过摄像头识别人的动作,并翻译成机器人能识别的命令,来控制机器人。开发平台选的是JAVA,因为可以运行在各平台,并且适用于B/S架构。
现在已经可以控制机器人的八个方向运动和停止,程序开始后,将摄像头图像绘出,用户在图形中电击要跟踪的物品,比如以一堵白色的墙为背景,拿一根带蓝色的笔帽的水笔在图像中,然后点击那个笔帽的位置,程序就会开始跟踪笔帽,并画出运动轨迹。视频被分割为9块,周围的8个分别对应8各方向,中间的对应停止命令,笔帽移动到哪块区域,程序就发送相应的命令给机器人。
还有第二种控制方式,就是让机器人按照笔移动的轨迹运动,但由于没有设置编码轮等精确检测机器人移动距离的部件,再加上我的机器人移动比不上手的速度,这种方式只能在手很慢移动时才能看出一点效果。
但是用JAVA开发的视频程序,似乎都要安装QT for JAVA或一个第三方摄像头驱动才能运行,分发到最终用户比较麻烦,可能是我了解JAVA不深,还没什么解决方法。
不管怎说,还是觉得很高兴,现在,通过语音,身体动作都能控制我的机器人了
Update 2006.05.04 :后来研究了一下游戏手柄的USB驱动,现在也可以用手柄控制了,感觉挺爽!!
这两天,我的DELL X50v整天插着电源,开着蓝牙,就当是烤机老化吧,没有办法,由于牵涉到蓝牙接口,没法在模拟器上试验。整个开发过程,最烦恼的就是PPC的屏幕空间很有限,要精打细算控件的摆放,但还是不够用,最后把按钮都改成一个个小方块,只用一个字母表示,这个程序只能我自己用了。
功能方面几乎实现了所有PC端程序能实现的所有功能(除了语音控制,这个开发周期比较长语音控制也初步完成了,识别率大概有80%,还有待改进),滚屏,实时三维图显示,报警,对机器人的各种控制,保存文件等都没有漏掉。
本来是用VB.net开发的,后来觉得运行速度慢,就用EVC开发,速度快了近一倍,看来.net在工控上的应用,效率很成问题。
下面是几张截图:
实时三维图模式:
Details »