一种手部运动追踪系统及追踪方法与流程

文档序号:11910667阅读:来源:国知局

技术特征:

1.一种手部运动追踪系统,其特征在于,包括加速度计、陀螺仪、磁传感器、MCU、电源模块和上位机,加速度计、陀螺仪、磁传感器分别与MCU通过IIC总线相连,MCU与上位机相连;加速度计、陀螺仪、磁传感器、MCU和上位机均通过电源模块供电;所述加速度计测量手部的三轴加速度,陀螺仪测量手部的三轴角速度,磁传感器测量手部的三轴磁场分量;上位机通过MCU获取上述三类原始传感数据(三轴加速度、三轴角速度、三轴磁场分量),分别对三类原始传感数据进行误差补偿,并通过改进型自适应互补滤波算法更新姿态,并结合姿态矩阵对手部的加速度信号进行重力补偿和离散数字积分,得到该时间段内的手部位移和其运动轨迹,实现手部运动的追踪。

2.一种权利要求1所述的手部运动追踪系统的追踪方法,其特征在于,具体包括以下步骤:

(1)加速度计测量手部的三轴加速度,陀螺仪测量手部的三轴角速度,磁传感器测量手部的三轴磁场分量;

(2)MCU通过IIC总线接收加速度计测量到的三轴加速度、陀螺仪测量到的三轴角速度和磁传感器测量的三轴磁场分量,并发送给上位机;

(3)上位机先对三轴磁场分量通过最小二乘法建立误差模型,消除环境中的磁场干扰;其次对三轴加速度采用窗口低通滤波,消除高频噪声信号,最后对三轴角速度进行误差建模,并对其随机偏移进行误差补偿;

(4)将步骤3得到的窗口低通滤波后的加速度信号通过三轴分量的关系求解手部的初始横滚角和俯仰角。将步骤3处理得到的三轴磁场分量通过上述初始姿态角(横滚角和俯仰角)进行倾斜补偿后,计算出初始航向角。根据上述初始横滚角、俯仰角和航向角可以得到姿态四元数,从而根据姿态四元数建立四元数姿态矩阵;

(5)重复步骤1-3,获得下一时刻的校正后的三轴磁场分量、三轴加速度、三轴角速度。将三轴磁场分量、三轴加速度和步骤4得到的四元数姿态矩阵的对应分量做向量叉积,从而修正校准陀螺仪偏移;并根据一阶龙格库塔方程得到更新的姿态四元数,根据姿态四元数得到姿态角和航向角;

(6)由步骤5得到的惯性传感器的姿态角和航向角,可获得惯性传感器的最佳姿态矩阵将步骤5得到的加速度计的三轴加速度通过姿态矩阵从手部坐标系下转换到地理坐标系下,再对三轴加速度进行重力补偿,得到补偿后的加速度。最后对补偿后的加速度进行离散数字积分,得到手部的位置和速度信息,在屏幕上定位手部所移动过的位置,从而实现运动追踪。

3.根据权利要求2所述的方法,其特征在于,所述步骤3中,上位机对三轴磁场分量通过最小二乘法建立误差模型,具体如下:

建立三轴磁场分量误差模型方程如下:

mx0=kxmx+bx

my0=kyγmx+kymy+by

mz0=kzβmx+kzαmy+kzmz+bz

其中,kx,ky,kz是标度系数误差,γ,β,α是三轴垂直度误差,bx,by,bz是三轴零偏误差,mx,my,mz是磁传感器测得的三轴磁场分量,mx0,my0,mz0是三轴磁场分量的理想值。

通过将上述模型变换到到椭球曲面方程形式,利用最小二乘法,得到kx,ky,kz,γ,β,α,bx,by,bz,从而获得三轴磁场分量误差模型。

4.根据权利要求3所述的方法,其特征在于,所述椭球曲面方程的最小二乘法求解方法具体为:

假设手部所在地球空间的地磁场强度为m0,则有:

||m0||2=mx02+my02+mz02

将权利要求3中所述的三轴磁场分量误差模型代入上式,可得:

||m0||2=kxmx2+kymy2+kzmz2+2ky2γmxmy+2kz2βmxmz+2kz2αmymz+2kxbxmx+2kybymy+2kzbzmz

该方程对应为一般的椭球曲面方程,其中

A=[kx,ky,kz,2ky2γ,2kz2β,2kz2α,2kxbx,2kyby,2kzbz]T,表示待求椭球的曲面参数向量,

m=[mx2,my2,mz2,2mxmy,2mxmz,2mymz,2mx,2my,2mz]T,表示测量数据的运算组合向量。获取n组数据对上述方程进行求解,n≥9;

将上述模型改写成矩阵形式如下:

||m0||2=mTA

模型残差可写为:ε(i)=m(i)A-||m0(i)||2

其中i表示第i组实验数据。m表示磁传感器测得的三轴磁场分量,m0表示三轴磁场分量的理想值。

最小二乘原理是寻求使得模型残差平方和最小的被估参量,即:

<mrow> <mi>J</mi> <mo>=</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mi>&epsiv;</mi> <mn>2</mn> </msup> <mo>(</mo> <mi>i</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>&lsqb;</mo> <msup> <mi>m</mi> <mi>T</mi> </msup> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mi>A</mi> <mo>-</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mn>0</mn> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

将方程组中的向量都改写成矩阵形式,模型残差可用MTA-M0下式表示:

其中定义:

<mrow> <msup> <mi>M</mi> <mi>T</mi> </msup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msup> <mi>m</mi> <mi>T</mi> </msup> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mtd> </mtr> <mtr> <mtd> <msup> <mi>m</mi> <mi>T</mi> </msup> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mtd> </mtr> <mtr> <mtd> <mo>...</mo> </mtd> </mtr> <mtr> <mtd> <msup> <mi>m</mi> <mi>T</mi> </msup> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <msub> <mi>M</mi> <mn>0</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mn>0</mn> </msub> <mo>(</mo> <mn>1</mn> <mo>)</mo> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mn>0</mn> </msub> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>...</mo> </mtd> </mtr> <mtr> <mtd> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mn>0</mn> </msub> <mo>(</mo> <mi>n</mi> <mo>)</mo> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mtd> </mtr> </mtable> </mfenced> </mrow>

最小化残差平方和,令可得曲面参数向量A的最小二乘估计值是:

<mrow> <mover> <mi>A</mi> <mo>^</mo> </mover> <mo>=</mo> <msup> <mrow> <mo>&lsqb;</mo> <msup> <mi>MM</mi> <mi>T</mi> </msup> <mo>&rsqb;</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>MM</mi> <mn>0</mn> </msub> </mrow>

根据实验数据M,M0即可以得到曲面参数向量A的估计值,从而完成磁传感器误差模型的建立。

5.根据权利要求2所述的方法,其特征在于,所述步骤3中,对三轴加速度信号进行窗口低通滤波,步骤具体如下:

本发明中对加速度信号用中值滤波器滤除数据中的高频噪声,设滤波器窗口A的长度l,观测值为x1,x2,…,xN,N为观测值个数,即当窗口A在原始序列上移动时,中值滤波器设计如下:

在任意时刻窗口内的观测数据重新按照数值大小排序,当长度l为奇数时,取中间数据作为本次滤波器的输出。当长度l为偶数时,取中间两个数据的平均平均值作为本次滤波器的输出。

6.根据权利要求2所述的方法,其特征在于,所述步骤3中,对三轴角速度进行误差建模,并对其随机偏移进行误差补偿,步骤具体如下:

在一定测量时间内,陀螺仪的误差模型可用下式表示:

wm=w0+ε+ε0+δn(t)

wm是陀螺仪的实际测量值,w0是陀螺仪的理论值,ε是时变漂移,ε0是常值零偏,n(t)是高斯白噪声,其强度为δ。

通过陀螺仪的数字可编程的低通滤波器,滤掉ε和δn(t),而对于常值零偏ε0,将陀螺仪静止一段时间,取静态下陀螺仪的均值输出作为常值零偏ε0

因此,陀螺仪校正后输出w0可由下式来表示:

w0=wm0

7.根据权利要求2所述的方法,其特征在于,所述获取初始姿态角和四元数姿态矩阵的处理步骤具体如下:

首先,利用步骤3得到的窗口低通滤波后的加速度信号(ax,ay,az)通过三轴分量的关系求解手部的初始横滚角θ和俯仰角φ:

φ=-arcsin(ax)

θ=-arctan2(ay,az)

将步骤3处理得到的三轴磁场分量通过上述初始姿态角(横滚角和俯仰角)进行倾斜补偿,将手部坐标系上的磁场分量转换到地理坐标系,可得手部的初始航向角ψ如下:

ψ=-arctan2(my0*cosθ+mx0*sinθ*sinφ-mz0*sinθ*cosφ,

mx0*cosφ+mz0*sinφ)

在获取初始姿态角和航向角以后,可以得到初始四元数的四个分量如下:

q0=cos(0.5θ)*cos(0.5φ)*cos(0.5ψ)+sin(0.5θ)*sin(0.5φ)*sin(0.5ψ)

q1=sin(0.5θ)*cos(0.5φ)*cos(0.5ψ)-cos(0.5θ)*sin(0.5φ)*sin(0.5ψ)

q2=cos(0.5θ)*sin(0.5φ)*cos(0.5ψ)+sin(0.5θ)*cos(0.5φ)*sin(0.5ψ)

q3=cos(0.5θ)*cos(0.5φ)*sin(0.5ψ)-sin(0.5θ)*sin(0.5φ)*cos(0.5ψ)

根据上述的四元数,可以得到四元数形式的姿态矩阵如下:

<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <msubsup> <mi>C</mi> <mi>e</mi> <mi>b</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msup> <msub> <mi>q</mi> <mn>0</mn> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>q</mi> <mn>1</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>2</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>3</mn> </msub> <mn>2</mn> </msup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msup> <msub> <mi>q</mi> <mn>0</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>1</mn> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>q</mi> <mn>2</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>3</mn> </msub> <mn>2</mn> </msup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msup> <msub> <mi>q</mi> <mn>0</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>1</mn> </msub> <mn>2</mn> </msup> <mo>-</mo> <msup> <msub> <mi>q</mi> <mn>2</mn> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>q</mi> <mn>3</mn> </msub> <mn>2</mn> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced>

8.根据权利要求2所述的方法,其特征在于,所述步骤5具体为:

设在地理坐标系下,手部对应的地磁场的矢量为表示为(mexmeymez),重力场的矢量是在手部坐标系下,手部的地磁场的矢量是重力场的矢量是表示为(abxabyabz);将地理坐标系下的地磁场矢量和重力场矢量通过姿态矩阵转换到手部坐标系下,如果是在姿态矩阵理想无误差的情况下,则可得:

<mrow> <mover> <msub> <mi>m</mi> <mi>b</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <msup> <mover> <msubsup> <mi>Q</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mo>&RightArrow;</mo> </mover> <mo>*</mo> </msup> <mo>&CircleTimes;</mo> <mover> <msub> <mi>m</mi> <mi>e</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CircleTimes;</mo> <mover> <msubsup> <mi>Q</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mo>&RightArrow;</mo> </mover> </mrow>

<mrow> <mover> <msub> <mi>a</mi> <mi>b</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <msup> <mover> <msubsup> <mi>Q</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mo>&RightArrow;</mo> </mover> <mo>*</mo> </msup> <mo>&CircleTimes;</mo> <mover> <msub> <mi>a</mi> <mi>e</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CircleTimes;</mo> <mover> <msubsup> <mi>Q</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mo>&RightArrow;</mo> </mover> </mrow>

但由于姿态矩阵存在误差,因此在之间存在误差,间的误差对应俯仰角和横滚角的误差eθ,φ之间的误差对应航向角的误差。向量之间的误差可以用叉积表示。

对于重力场,加速度传感器测量的重力加速度在地理坐标系中只有竖直向下的方向,因此可设地理坐标下的重力场矢量将其通过姿态矩阵转换到手部坐标系下,即对应姿态矩阵的第三列元素。将该矢量与手部坐标系下加速度的测量值间的误差表示如下:

<mrow> <msub> <mi>e</mi> <mrow> <mi>&theta;</mi> <mo>,</mo> <mi>&phi;</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>2</mn> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mtd> </mtr> <mtr> <mtd> <mn>2</mn> <mo>(</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mtd> </mtr> <mtr> <mtd> <mn>2</mn> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mtd> </mtr> </mtable> </mfenced> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>x</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>y</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>z</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> </mrow>

对于地磁场,地理坐标下磁场传感器对应的地磁向量可以表示为:

<mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>m</mi> <mrow> <mi>e</mi> <mi>x</mi> </mrow> </msub> <msub> <mi>m</mi> <mrow> <mi>e</mi> <mi>y</mi> </mrow> </msub> <msub> <mi>m</mi> <mrow> <mi>e</mi> <mi>z</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <msubsup> <mi>C</mi> <mi>e</mi> <msup> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </msubsup> <mover> <msub> <mi>m</mi> <mi>b</mi> </msub> <mo>&RightArrow;</mo> </mover> </mrow>

手部运动的航向角定义在地理水平面x-y,因此在地理坐标下的地磁矢量h=(hx hyhz)T,其中hy=0,hz=mez。航向角的误差为地理坐标下地磁向量和观测向量的叉积:

<mrow> <msub> <mi>e</mi> <mi>&psi;</mi> </msub> <mo>=</mo> <msubsup> <mi>C</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>h</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>h</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>h</mi> <mi>z</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>&times;</mo> <mover> <msub> <mi>m</mi> <mi>b</mi> </msub> <mo>&RightArrow;</mo> </mover> </mrow>

系统姿态向量的误差为:

e=eθ,φ+eψ

用磁传感器和加速度计补偿得到的系统姿态向量误差来作为PI调节器的输入来校准陀螺仪的偏差,t时刻校准后的陀螺仪角速度向量为:

<mrow> <msub> <mi>w</mi> <mn>0</mn> </msub> <mo>=</mo> <msub> <mi>w</mi> <mi>m</mi> </msub> <mo>+</mo> <msub> <mi>&lambda;K</mi> <mi>p</mi> </msub> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&lambda;K</mi> <mi>i</mi> </msub> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>t</mi> </msubsup> <mi>e</mi> <mrow> <mo>(</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow>

其中,e(t)为t时刻系统姿态向量的误差,λ和采样频率有关系,一般设为采样周期的大小,wm为陀螺仪输出的角速度向量,w0为校准后的角速度向量。比例增益Kp控制低频段和高频段之间的截止频率,积分增益Ki控制滤波器消除误差的时间。通常,Kp和Ki的选择与截止频率f和阻尼系数ξ有关:

Kp=2ξf

Ki=f2

一般情况下,可选择阻尼系数ξ=0.707,将手部运动形态划分为以下三种不同状态,根据不同的运动状态自适应调整截止频率:

1)静止状态:此时陀螺仪测量值wm<0.02rad/s(1.7°/s),设截止频率f=0.05rad/s;

2)弱机动运动状态:此时0.02rad/s(1.7°/s)<wm<0.524rad/s(30°/s),可设截止频率f=0.005rad/s;

3)高机动运动状态:此时wm>0.524rad/s(30°/s),截止频率设为0。

在获取校准后的陀螺仪角速度后,地理坐标系相对手部坐标系转动的姿态四元数变化率可表示为:

<mrow> <msubsup> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>e</mi> <mi>b</mi> </msubsup> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msubsup> <mi>Q</mi> <mi>e</mi> <mi>b</mi> </msubsup> <mo>&CircleTimes;</mo> <msub> <mi>w</mi> <mn>0</mn> </msub> </mrow>

当前时刻t的姿态四元数可由上一时刻t-1的姿态四元数加上姿态四元数变化率的积分而获得:

<mrow> <msubsup> <mi>Q</mi> <mrow> <mi>e</mi> <mo>,</mo> <mi>t</mi> </mrow> <mi>b</mi> </msubsup> <mo>=</mo> <msubsup> <mi>Q</mi> <mrow> <mi>e</mi> <mo>,</mo> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>b</mi> </msubsup> <mo>+</mo> <msubsup> <mover> <mi>Q</mi> <mo>&CenterDot;</mo> </mover> <mi>e</mi> <mi>b</mi> </msubsup> <mi>&Delta;</mi> <mi>t</mi> </mrow>

之后可根据当前姿态四元数获取传感节点的姿态和四元数形式的姿态矩阵:

<mrow> <mi>&theta;</mi> <mo>=</mo> <mi>arctan</mi> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>/</mo> <mrow> <mo>(</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow>

φ=-arcsin2(q1q3-q0q2)

<mrow> <mi>&psi;</mi> <mo>=</mo> <mi>arctan</mi> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> <mo>/</mo> <mrow> <mo>(</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

9.根据权利要求2所述的方法,其特征在于,所述获取手部运动位置和速度的处理步骤具体如下:

将步骤5得到的加速度计的三轴加速度表示为(abxabyabz),通过姿态矩阵从手部坐标系下转换到地理坐标系下,并进行重力加速度补偿,得到补偿后的加速度表示为(axayaz)如下:

<mrow> <mover> <mi>a</mi> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mi>z</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <msubsup> <mi>C</mi> <mi>e</mi> <msup> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>x</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>y</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>b</mi> <mi>z</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

根据加速度和速度、位移之间的关系,假设从初始时刻t0时刻开始采样,采样周期为Δt,可得速度和位移如下:

<mrow> <msub> <mi>v</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <msubsup> <mo>&Integral;</mo> <mn>0</mn> <mi>t</mi> </msubsup> <msub> <mi>a</mi> <mi>t</mi> </msub> <mi>d</mi> <mi>t</mi> </mrow>

<mrow> <msub> <mi>s</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>s</mi> <mn>0</mn> </msub> <mo>+</mo> <msubsup> <mo>&Integral;</mo> <mn>0</mn> <mi>t</mi> </msubsup> <msub> <mi>v</mi> <mi>t</mi> </msub> <mi>d</mi> <mi>t</mi> </mrow>

其中,v0和s0分别是初始速度和初始位置,vt、st分别是t时刻的速度、位移。之后采用Simpson积分法,对补偿后的加速度进行离散数字积分,得到速度和位移,计算方法如下:

<mrow> <msub> <mi>v</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>v</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>a</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mn>4</mn> <msub> <mi>a</mi> <mi>t</mi> </msub> <mo>+</mo> <msub> <mi>a</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> <mn>6</mn> </mfrac> <mi>&Delta;</mi> <mi>t</mi> </mrow>

<mrow> <msub> <mi>s</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>s</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>v</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mn>4</mn> <msub> <mi>v</mi> <mi>t</mi> </msub> <mo>+</mo> <msub> <mi>v</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow> <mn>6</mn> </mfrac> <mi>&Delta;</mi> <mi>t</mi> </mrow>

其中,at表示t时刻重力补偿后的加速度。通过计算手部运动的实时速度和位移,即可获取对手部的实时追踪。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1