摘 要:本文设计的上肢三维重建模型使用三轴加速度传感器作为数据的采集模块,并通过ZIGBEE发送模块将采集得到的加速度数据发送到计算机端。对采集得到的加速度数据进行分析,得到人体前后臂与垂直方向的夹角。本文使用最近流行的Java3d技术,进行人体上肢模型的驱动。并根据计算得到的夹角,进行人体上肢模型的驱动。其中人体模型的建立是使用3ds Max三维建模软件设计的。通过比较人体上肢动作和佩戴加速度采集设备后的三维重现画面,我们可以发现此三维重建模型具有很高的三维重建准确度。
关键字:上肢模型;加速度传感器;三维重建;模型驱动
1 加速度数据采集设备设计
在使用Java3d技术进行三维动作重建前,我们首先需要获取加速度数据。这里我们设计了可穿戴的加速度数据采集设备。此设备使用两个三轴加速度传感器来进行加速度数据的采集。此设备包含一个ZIGBEE无线发送模块,此ZIGBEE发送模块将采集得到的三轴加速度数据发送到PC端的ZIGBEE接收器上。上肢动作三维重建模型通过串口操作读取PC端的ZIGBEE接收器上的加速度数据,进而完成上肢动作的三维重建。
1.1 硬件部分设计
图 1?1可穿戴加速度采集模块结构图
可穿戴上肢加速度采集设备的硬件设计图如1-1所示。此模块使用一个型号为Atmega48的处理器作为主控器件。此模块使用一个ZIGBEE发送模块作为加速度信号输出的途径。此模块利用型号为KXTJ9的三轴加速度传感器作为传感器芯片,并使用此传感器芯片来完成加速度信息的采集。由加速度传感器采集得到的加速度信息将通过I2C被发送到Atmega48控制器中,Atmega48主控器将其打包并传输到ZIGBEE发送模块中。最终,被打包的加速度数据将被发送到个人电脑的串口接收器上。PC端ZIGBEE接收器主要负责接收可穿戴上肢加速度采集模块发送的加速度数据。此ZIGBEE接收器与PC的通讯方式是串口通讯,这里我们使用串口通讯编程便可以方便地从ZIGBEE接收器上读取到我们需要的三轴加速度数据。ZIGBEE接收器的硬件原型如图1-2所示。
图 1?2电脑端ZIGBEE接收器
上肢加速度数据采集模块备原型如图1-3所示。此硬件接收的两端各安装了一个三轴加速度传感器。在进行上肢动作时,需要将此硬件设备的两端分别放置在上肢的前后臂上。此硬件设备采用USB接口对其自身携带的锂电池进行充电,省去了频繁更换电池的操作和成本。
图 1?3上肢加速度采集设备
1.2 软件部分设计
本采集模块的软件设计部分中,Atmega48主控器采用中断源技术来实现数据获取,I2C总线传输和串行传输。可穿戴上肢加速度数据采集模块每200毫秒发送一个打包好的加速度数据,这个发送过程是用定时器来进行触发的。此定时器触发算法如图1-4所示。
图 1?4定时发送流程图
2 基于Java3d的三维重建模型
本模块使用Sun公司的Java语言的Swing组件进行界面的编写。其中串口通讯部分使用Java语言提供的COMM串口通讯组件进行实现。而三维动画的驱动使用的是Java语言提供的Java3d组件来完成的。而人体上肢的3D模型的建立则用到了3ds Max三维建模软件。此模块通过SUN公司提供的串口通信组件,进行本模块和PC端ZIGBEE接收器之间的串口通讯。进而将电脑端的上的加速度数据读取到模块分析程序中。
本模块所使用的3D模型是通过3ds Max三维建模软件进行建立的。在3ds Max三维建模软件中建立好之后,再将建立好的人体上肢模型(包括躯干,前臂和后臂)保存为obj格式的文件[1]。然后利用Sun公司提供的Java3d技术,将obj格式的模型进行显示和根据加速度传感器的数据进行驱动[2]。三维重建模型使用Java3d技术进行上肢动作的三维重建。在进行三维重建之前,我们首选需要分析利用串口技术获得的加速度采集数据。通过对加速度采集数据进行分析,我们可以得到人体上肢前臂和后臂与垂直方向的夹角进而可以确定人体的空间姿势。
2.1 基于加速度数据分析的角度测量原理
2.1.1前后臂与垂直方向的夹角计算原理
图 2?1角度测量原型图
在进行上肢动作三维重建之前,首先需要测量人体上肢前后臂和至此方向的夹角。其外部采集设备的佩戴方式如图2-1所示。随着前臂和后臂的空间位置的变化,后臂与躯干的夹角以及前后臂的夹角将能由获取到的三轴加速度数据计算得到。
图 2?2加速度原始数据
如图2-2所示,上面这串数据就是上肢动作三维重建模块利用串口通讯技术接收得到的加速度原始数据。41—52是加速度传感器的编号,10f是开始字符,从10f开始往后的6组用空格分开的数字便是前后臂两个加速度传感器的xyz轴的数据,20是结束字符表示这串加速度信号数据结束。利用串口通讯技术接收得到的是加速度数据的16进制补码,这里需要将补码转化成真值。补码到真值的转换规则如下:如果0开头,将0换成+号,其余位不变;如果1开头,1换成-号,求反加一。利用这个规则,本文利用代码将加速度分量由补码形式转化成真值形式。
前臂和后臂在运动过程中始终与垂直方向存在一个夹角。通过分析加速度数据每个轴在重力影响下所产生的分量;我们可以确定前臂和后臂的空间位置
图 2?3加速度传感器三轴受力分析图
如图2-3所示,当传感器处于静止状态时,y轴和z轴数据是由重力作用生成的。夹角α可以由y轴和z轴的数据来最终确定。计算公式如下所示:
公式 2-(1)
公式 2-(l)当通过计算得到角度信息之后,还需要把角度值转化成弧度值,因为Java3D函数是需要输入弧度值的。其中弧度的计算公式如下公式2-(2)所示。
公式 2-(2)
2.2.2前后臂夹角测量
图 2?4前后臂夹角示意图
如图2-4所示,前后臂夹角=前臂与垂直方向的夹角+后臂与垂直方向的夹角。由于硬件条件的限制,采集得到的加速度传感器数据即使在上肢处于绝对静止状态下也存在数据不一致的情况。由于加速度数据的不一样,,所计算出来的角度数据也会存在变化,所以会造成前后臂抖动的现象,针对这个问题本文采用设置变化阈值的办法,当由当前的加速度数据计算得到的角度与前一个角度的变化范围在阈值内,则不发生位置变动。
2.3 模块功能设计
2.3.1串口通讯功能
此功能的主要类需要继承SUN公司提供的串口事件监听类接口[3]。此接口存在一个方法必须要实现的串口事件方法,此方法便是串口通信的核心方法。其中需要设置串口接收到波特率,数据为,停止位和奇偶校验位。这里波特率为9600,数据位为8,停止位为1,奇偶校验位为0。使用输入流并用串口将其进行实例化。如果在程序中发现串口输入流有数据,则说明接收到串口传递过来的加速度数据。
2.3.2三维重建功能
此功能的关键代码部分,主要是使用Java3d技术进行三维模型的坐标系建立,和通过传感器的加速度数据来实时设置旋转内插器。通过插值器来驱动前臂和后臂的旋转。此模块的上肢模型驱动主要是用Java3d技术进行实现的。此模块中使用的上肢模型是在3ds max建模软件中创建的[4],并将创建好的3d模型保存为obj格式。Java3d首先进行场景的渲染和三维空间的叠加建立。然后通过串口接收方法中对接收到的加速度数据的分析,来实时设置旋转插值器的值。通过旋转插值器[5]来驱动前臂和后臂的实时运动,从而将实验者的上肢动作重现出来。上肢三维动作重建面板界面如下图2-5所示。
图 2-5上肢三维动作重建界面
用户可以使自己正在进行的上肢动作,三维重建在客户端界面中。虽然无线通讯存在一段时间的延迟,但是延迟在用户的可接受范围内,并且三维重建模块对上肢作的展示效果良好。
3 结论
通过对图3-1中上肢原始动作和三维重建动作的比较,我们可以发现通过分析加速度传感器数据并利用Java3d建模技术得到的上肢三维重建动作与真实的上肢原始动作相似度很高。表明了使用加速度传感器作为上肢状态的采集装置具有很高的应用价值。
图 3?1上肢原始动作和三维重建动作的比较
参考文献
[1]陈静勇,周来水.基于Java3D的虚拟现实建模方法[J].计算机应用研究.2012,19(5): 34-36.
[2]涂建东,陈崇成,樊明辉,张群洪.基于Java3D的空间关联规则可视化原理与实现[J].高科技通讯.2004,14(6): 98-102.
[3]周海涛,高兴锁,江晓峰.基于java数据采集串口通讯的设计与实现[J].微计算机信息.2006,22(4): 141-142.
[4]卞钢,刘寅东.基于3dsmax的船舶三维运动仿真[J].计算机仿真.2005,22(5): 216-218.
[5]李翔,李成名,王继周.基于Java3D的地形3维可视化技术[J].测绘通报.2003,(10): 19-38.
相关推荐
[周静] 基于人才培养模式谈高职院校图书馆服务创新管理
[唐家博] 基于FPGA的数字秒表设计
[何凌玥] 基于创新思维下的环境艺术设计
[胡刘坤] 基于语料库的大学英语口语合作模式研究
[章璐] 基于RFID的智能化档案管理系统模块设计
[贾学芳] 基于新平衡学习的《连锁经营管理》课堂教学模式改革
[刘育玲] 基于电子商务模拟教学系统学生认知采纳行为的实证研究
[黄春苗] 基于学习风格的大学英语教学策略研究
[尹剑梅 薛晨晨] 庭前会议制度:基于杭州市的实证研究
[陈金巧] 基于生态文明下的新型城镇化
[韦照川] 基于TMS320DM642的图像处理实验
[刘海 亢莉 田圆] 基于语料库研究大学英语写作中的错误
[高燕 胡国兵 顾] 基于高职学生的学习风格研究与启示
[吕品] 基于高等教育管理的困境与出路研究
[虞融] 基于管理经济学视角下的网上购物发展现状的研究