1.一种实时六自由度VR/AR/MR设备定位方法,它先计算六自由度定位方案,其特征在于六自由度定位方案在t时刻计算出相机的位姿Pose(t),此时画面有渲染需求就直接应用Pose(t);由于六自由度定位方案的复杂性,下一个t+1时刻位姿Pose(t+1)和t时刻隔的时间比较长,当中间画面又有渲染需求时,将Pose(t)和IMU旋转矩阵RIMU进行一次融合,将得到的结果直接应用于渲染,以达到实时渲染的要求;
其中,Pose(t)和IMU的融合结果PoseIMU(t)T按照以下公式计算:
PoseIMU(t)T=RIMU*Pose(t)T
式中,RIMU是IMU计算出的旋转矩阵。
2.根据权利要求1所述的实时六自由度VR/AR/MR设备定位方法,其特征在于所述六自由度定位方案使用SLAM算法或PTAM算法计算。
3.根据权利要求2所述的实时六自由度VR/AR/MRs设备定位方法,其特征在于SLAM算法计算步骤为:
S101:相机标定,目标在于得到相机的内参矩阵:
其中,fx和fy为相机的焦距,xo,yo为主点坐标,s为坐标轴倾斜参数;
S102:定位,相机标定好以后,根据相机拍到的画面,求解出相机的位姿;
S103:地图重建,将相机拍到的画面转换成点云,并通过点云拼接的方法,将周围的环境以点云的形式重新表示出来;
S104:回环检测,矫正相机位姿;
最后得到的相机位姿矩阵Pose(t)如下:
其中,R3×3是一个属于SO3群的旋转矩阵,表示六个自由度中的三个旋转量;T3×1是一个列向量,向量的每个元素分别表示相机在三个轴向上的位移。
4.根据权利要求3所述的实时六自由度VR/AR/MR设备定位方法,其特征在于步骤S101中所述相机标定包括:线性标定法、非线性优化标定法和两步标定法。
5.根据权利要求3所述的实时六自由度VR/AR/MR设备定位方法,其特征在于步骤S102中求解相机的位姿的方法为光束平差法。
6.根据权利要求1所述的实时六自由度VR/AR/MR设备定位方法,其特征在所述IMU旋转矩阵RIMU的计算方法为
RIMU=αRgyro+βRacc+γRmag
其中,α+β+γ=1;Rgyro、Racc、Rmag分别为陀螺仪、加速度计、磁力计计算出的位姿矩阵。
7.根据权利要求6所述的实时六自由度VR/AR/MR设备定位方法,其特征在于α、β、γ的数值通过EKF算法、线性的KF算法或者Mahony滤波计算。
8.根据权利要求6所述的实时六自由度VR/AR/MR设备定位方法,其特征在于陀螺仪的校准方式为:在多次采样中取平均值;或者先在静止状态下采集陀螺仪的偏移量,上报数据时去除。
9.根据权利要求6所述的实时六自由度VR/AR/MR设备定位方法,其特征在于加速度计在静止状态下利用重力加速度的方向剔除干扰,过程如下:
A=(ax,ay,az)
G=(g,0,0)
Δ=A-G
其中A为静止状态下加速计数据,G为重力加速度向量,Δ为加速计偏移量,At为加速计原始数据,为校准后t时刻的加速计数据。
10.根据权利要求6所述的实时六自由度VR/AR/MR设备定位方法,其特征在于磁力计采用平面校准法或八字校准法进行校准;在含有附加的局部磁场环境下,通过下述方法进行校准:
S201:将设备水平旋转360度;
S202:找到磁力计水平方向数据的最小输出Xmin,Ymin和最大输出Xmax,Ymax;
S203:第一比例系数Xs=1;
S204:计算另一个比例系数Ys
S205:计算偏置补偿
Xb=Xs[1/2(Xmax-Xmin)-Xmax]
Yb=Ys[1/2(Ymax-Ymin)-Ymax]
S206:得到输出
Xout=Xin*Xs+Xb
Yout=Yin*Ys+Yb
其中,XoutYout为校准后的磁力计数据,XinYin为原始磁力计数据,Z轴在使用此种方法时无需校准。