编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声。发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利。
一 . 前言
XMOVE3.0是2.0版本上的升级版本,硬件改动不大,改动主要集中在软件和算法的升级。它的开发时间是2011年1月——2011年6月,开端于大四寒假,结束于北邮创新展。
它的发展,也是我转变思维的过程。曾经的我,认为硬件是王道,软件只是装饰硬件的皮。甚至,我会觉得开发软件的人都太肤浅(哈哈)。但3.0的发展让我认识到,软件非常重要,它是发挥硬件功能的最重要因素之一,同时,必须强化算法设计。对运动检测这种算法密集型应用来说,没有自己引以为傲的算法,是很难继续发展的。我还认识到,包装和设计很重要,一个良好的产品,不仅需要内部强大的功能,更需要好的卖相,因此我为他重新设计了宣传海报。
值得一提的是,我会为每一代系统设计一套主题桌面。
它相对于2.0的进步主要有以下几点:
- 改进软件界面和框架结构
- 引入了模式识别算法和传感器融合算法
- 优化了手持终端的UI和系统,使之效率更高
- 开发并完善了虚拟现实功能和机械控制功能
- 设计海报和其他优化
二. 宣传设计
1. 宣传折页设计
以下是3.0版本的宣传海报:外页
内页:
设计这幅海报花了我大量的时间,倒不是因为它要求多么深奥的PS技术,只是一个好的创意真的需要大量的琢磨和思考。
它的背景是桌面PC版本的xOS(是我在嵌入式手持终端上设计的系统)。第一页是系统登录。短短几句话介绍了系统本身的特性和传感器配置,左边的人物是我最喜欢的FPS游戏孤岛危机2的男主角。吸引眼球后,读者可以将其翻开,映入眼帘的是它的桌面系统,中心是XMOVE的标识和宣传语(创新姿态监控的全套解决方案),并介绍了内部的硬件装置和相关作用,中心虚化的背景是F22战斗机和宇宙空间,表现其科技感。而其他的浮动窗口则分别介绍了它的功能:人体动作位置监控,实时仿真动作机械控制等等。每个浮动窗口的标题都有详细的路径表明他们的分类。 如同win7一样,左边有一个水晶的开始按钮,旁边有已经运行的功能,其中就有虚拟实景。
它的第四页通常是读者最后看的页面,主要介绍了它的核心算法,并通过节点监视器的形式介绍了不同节点的运行状态,如电池电量,无线性能等等(但实际上,3.0版本中该功能并未实现)。下侧标出了设计时间2011年5月15日,以及它的开发团队。
相比于1.0版本的彩页,它的设计显得稳重清晰了很多,也是听取很多人的意见修改过来的,我也意识到,简单就是美,能更好的传递信息。哈哈,当时的情形是,很多人倒不觉得我的系统做的多么好,倒是对我的宣传折页赞不绝口,这对于一个自学平面设计的技术死宅来说,真是相当大的荣誉。
2. 易拉宝
展会场景,当然需要够大的吸引眼球的东东,折页是一方面,好的易拉宝也很重要,而且还不贵:
易拉宝是从宣传折页中修改过来的,做了更多的简化,不过印出来以后相当之霸气,颤抖~
3. 主题桌面
上面提到,每一代作品都有相应的主题桌面,所有的宣传设计都采用了同一种风格:深蓝色。当时还特别喜欢newtown字体。 这一代真是彻底的简约风,桌面非常之简单,当然,要的就是简单美。一个大眼睛盯着你看,你不看那个XMOVE才怪呢,当然,这样我的目的就达到了。
三 . 硬件设计
3.0对2.0版本的升级在硬件上改动不大,但是做了相当多的整合操作,这涉及到三代同堂的问题:要让三代系统工作在同一的框架之下,因此还是花费了相当多的时间。 下图是硬件全家福:
四. 软件系统的改进
1.界面设计
上一代的软件界面,采用了金属质感的背景和按钮,这一代为了配合深蓝主题,我将嵌入式手持系统的图标都修改成了深蓝色。
同时,也将上位机软件界面修改为以下的样式:
是不是很有外星份?左边面积最大的部分是主要的功能选单,使用了TabControl控件。分别是传感器监控(就是当前的界面),位置监控,手势识别训练器,程序设定和机械控制菜单。
左下角是系统启动按钮,用的是播放器的设计概念,左边的按钮是开始,后边是关闭。圆环可以切换模式,分别是监视模式(M)和控制模式(C)。到第三代,系统还是明显的区分这两种模式,主要考虑是在监视模式下,实时绘制传感器曲线特别消耗资源,影响性能。
右上角的按钮主要是最常用的功能,例如3D监视,最大化,最小化和退出等。当你把鼠标放到按钮上时,按钮会变成血红色,如最大的椭圆所示。
读者肯定会问采用的是何种开发技术,是WinForm!所以开发起来非常痛苦,所有的动画效果和变换都需要用C#一行行的写出来。最恶心的是,这种设计只能针对一种分辨率:1366*768,如果修改分辨率,按钮和图片都会走样,这是当时非常难以解决的问题。现在想来如果当时掌握WPF该多好。
2. 功能增强
- 位置监控功能
系统在第一代就引入了GPS,可以固定在脚踝位置,但它的存在实在是鸡肋,因为无线性能只能到几十米范围,甚至多数在室内场景。因此虽然有GPS硬件,但功能还是非常有限。我在3.0版本里加入了地图功能。使用谷歌的GMap.NET控件。这些功能在4.0版本中得到了真正应用。
- 动作识别
前代的动作识别采用了简单的算法,在这一代我引入了神经网络在内的多种模式识别算法,通过事先训练,可以将个人动作特征存储起来。在游戏和其他应用中可以动态的判断动作行为。例如,用户可在空中做扔手雷动作,系统就会在COD中扔出手雷;用户在空中书写C,windows就会帮你打开计算器功能。
当然,缺点也很明显,识别必须指定动作起点和终点!系统必须知道何时开始识别,何时结束。于是,在你做动作时,必须摁住系统的动作感应键,做完放开才可。这显然不方便于用户体验。另外,识别率在有些场合不高,这表现在,训练通常是在无线环境良好的情况下实现的,而使用则是复杂的无线干扰情形(展会),会存在大量丢包,所以信息传输率变低,识别能力变差。
- 改进的全身感应
下图是我在展会时演示的全身动作感应游戏——街头霸王,影响非常好:
还有体感游戏鹰击长空同时还有虚拟现实和机械控制等,这些功能都是3.0版本的特色功能,我会有一篇专门的文章介绍这些,此处不再详述。
- 传感器融合算法
这是前两代一直欠缺的功能,在这代得到了加强,多种传感器融合,可以输出稳定的姿态数据。至于这个功能,也会有专门的文章介绍,见此处。
五.总结
X-MOVE3.0是大四下的主要产物,当时的我,除了喝酒吃饭等待毕业,没干什么好事,好在有它拯救我。
在当时的我看来,它几乎已经没有缺点了,甚至我觉得,体感开发到这一步,已经是究极了。当时的我,甚至有些自负。其实现在看来,很多问题都没有想清楚,系统有很多来自扩展性和稳定性的问题。
它给我带来的不止是技术,虽然让我学到的技术可以拉好长的一个清单。这三代系统,我为他们付出的开发时间超过了1000小时,跨越了整个大四生活,几乎,它就是大四。我也获得了众多老师,专家,同学的认可。它让我认识了一堆志同道合的同学,学习了最基本的系统开发方法。不过,我更加认识到,学无止境,我差得很远。
这一代获得的主要荣誉是北邮创新奖一等奖,创新论坛一等奖,微软创新杯(???)前三十名。关于创新杯的子项目,是XMOVE在WinCE 6.0上的版本,只是它涉及了一些痛苦的回忆,所以不大愿意提它,获不获奖,其实我无所谓。
我依旧回忆大四激情燃烧的岁月,为了开发某些功能兴奋的一晚上睡不着,可能这些功能最后都夭折了吧,但那种回忆,是多少金钱和时间都换不回来的。自勉。
大四毕业,本科结束,准备上研,没想到,XMOVE4.0登场了。