惯性动作捕捉系统研发之路
谈到惯性动作捕捉系统不得不提的一家公司就是Xsens,可以说Xsens是惯性动捕的开山鼻祖。这家公司位于荷兰的一个小镇上。从2000年开始做IMU、AHRS,这是什么东西,这就是惯性动捕的基本传感器,不得不承认对方在此方面有很深的技术积累。
大约是4年前,当我第一次看到Xsens的产品演示效果,直觉判断惯性技术已经是发挥到了极致。我们开始细致的研究惯性动捕的技术细节,发现里面的技术门槛很高,这里面有几个原因:第一就是惯性动捕并不是一个学科,国内作为学术研究的几乎没有,而且我们发现国内关于惯性动捕的论文实在不忍直视;第二个原因就是惯性动捕是由多个技术点组成的,里面涉及到了惯性技术、通信技术、人体运动学、软件的兼容性等问题。
大家可能觉得惯性技术国内在这方面很是成熟,其实不然,惯性技术应用的最多的地方主要是武器上,惯性导航用的主要是机械式、激光式等惯性方式。但是对动捕系统来讲则是MENS形式,通俗易懂的讲就是加速度计、磁力计、陀螺仪全都是芯片形式,难点就在这里,我们从最初的芯片选型时几乎市面上所有的九轴芯片尝试了一个遍,因为当时市面上还没有国产的动捕,不知道用什么芯片最好,只能一个个去尝试,最后发现,市面几乎很那有适用于动捕的芯片,精度高的芯片量程低、精度高的芯片有的体积比较大、功耗还很大。当我们确定住最终的芯片时,才发现芯片自带的算法程序很难满足动捕的技术需求,怎么办,最终做的决定就是不用芯片自带的算法程序,自己写,当时谁都没有底气,自己写的算法还能胜过厂家的算法程序,厂商的芯片都是拿钱堆出来的,研发这条路就是这样,留不得你有任何投机取巧的行为,当时坚守住这一点:完全自己写。如果惯性动捕你只是想做一个Demo演示用的话,完全不必要自己去攻克传感器底层的算法的难关。底层的惯性技术到底难在什么地方,那就是没有一种统一的数学模型来解决这个问题,最怕的就是这个地方,如果有一个数学模型那就好了看懂了就会用,最终自己构建一个数学模型,模型是否最优这是无解的,只能是目前最优。
通信问题始终是一个不可逾越的问题,当你做一个产品时,你想到的不是只要跑通数据就可以,而是最佳性能,你的通信功耗、通信质量、通信距离、多点通信、同步性这些都是你需要考虑的。
最后一个大难题就是你的PC客户端软件,如果你直接想把硬件接入Unity就可不用理会这个地方。最后的最后大家都才意识到,这才是最核心的地方。怎么去做,大家都没研究过里面的算法。大家耳熟能详的就是IK(反向动力学)、FK(正向动力学),怎们写、怎么改进、怎么用、用在什么地方、何时用、到底用了还是没用,这些都是难题,每一个小小技术细节都是一个巨大的问题挑战。其实IK、FK算法还不算什么,在人体姿态上你还要加上更多的算法,惯性技术捕捉下来的就是一个骨骼的姿态角,没有任何物理意义,靠更多的算法去提升精度,人体每做出的一个姿势动作都需要你用相应的算法去解决。时下最热的的深度学习你也要考虑不会会应用到惯性动捕人体姿态的解算上。
当我们看动作捕捉技术发展史的时候你就会发现精度最高的动捕并不是光学动作捕捉,而是机械式动捕,机械式动捕和光学动捕都已是上个世纪的产物,机械式动捕早已经被淘汰。目前来看光学动捕的精度很高,但大家不容易注意到的一个趋势就是消费级惯性动捕所用的芯片精度越来越高,这就意味着未来惯性动捕的精度越来越高。大家对惯性动捕印象不好的地方可能就是第一:磁干扰,其实现在的算法以及芯片已逐步的克服了这一点,再其次就是累计误差,关于误差谈点专业的,目前的消费级芯片的陀螺仪输出量误差能控制在1度以内,再加上磁力计的纠偏,误差在几个小时内几乎已经不存在了。
我们认知一个产品看的一定是他的未来,而不是目前的产品状态,这就是我们的创新精神。怎样判断一个产品,第一一定是你赋予了她足够的生命力,他的用户体验,他的未来是你首先考量的。惯性动捕不是一个转瞬即逝的产品,目前还没有看到新的技术能取代掉惯性动捕,也就是说他的生命周期还有很久,能赢得这场战役的一定是全部自主研发的,一个系统如果是拼凑出来的最后一定会付出代价的。
产品的生命全部来自于背后的技术。