当前位置: 首页 > 专利查询>刘进专利>正文

智能机姿态测定及虚拟现实漫游方法技术

技术编号:11856476 阅读:76 留言:0更新日期:2015-08-11 03:10
本发明专利技术提供一种智能机姿态测定及虚拟现实漫游方法,用户在三维空间中以任意姿态摆放智能机都能在视窗内观察到与该位姿对应的周边真实或虚拟三维渲染场景。由于用户手持智能机的姿态与三维场景中渲染的三维效果完全一致,用户会体验到一种极其逼真的身临其境三维效果。利用智能机的姿态控制观察角度,手指滑动或移动控制智能机位置,用户可在三维场景中进行漫游,基于本发明专利技术可测定智能机的姿态,并实现三维数字城市漫游,商铺广告信息三维发布、虚拟现实电子商务、游戏控制、虚拟地图旅游、摄影测量测绘等。

【技术实现步骤摘要】
智能机姿态测定及虚拟现实漫游方法
本专利技术涉及信息
,具体涉及智能机姿态测定及虚拟现实漫游方法。
技术介绍
虚拟现实技术是让用户沉浸在智能机显示屏展现的虚拟或真实三维场景中,将虚拟目标标签叠加到其中,提示交互信息给用户。传统的三维虚拟场景,如数字三维城市、游戏等应用已经非常成熟,但是在三维场景里漫游却主要通过鼠标、键盘、滚动球等传统控制设备,控制设备的方向和观察到的实际场景无法直观的对应,渲染设备庞大而笨拙,这都会给操作者带来极大不便,影响了这些三维数字技术的广泛应用。因此迫切需要一种将控制设备与显示设备合二为一的非常直观轻便的智能机定姿态与渲染技术。本专利技术正解决了这个问题。由于智能机姿态不一样,同样位置看到的现实场景不一样,智能机姿态精度影响导航精度和虚拟现实漫游仿真精度,因此智能机姿态的精确测定具有重要意义。虚拟现实应用中对智能机姿态精度提出了更高要求。传统的智能机姿态测定,主要利用方向传感器单轴航向角数据信息,系统对智能机姿态摆放有特定要求,如要求智能机平行于地面,或垂直于地面摆放,而虚拟现实应用中用户手持智能机的姿态千变万化,并不一定严格平行或者垂直于地面,这将导致导航方位不准。此外智能机姿态测定的误差将带来虚拟现实漫游误差,影响用户体验,因此迫切需要一种考虑智能机X-Y-Z三轴旋转的姿态测定算法。基于位置的服务LBS日益受关注,但用户更关心的不仅是位置,而是自己与目标间的方向和距离。很多老年人和方向感不强的人很难将实际看到的生活场景与地图中的东南西北联系在一起,因此智能机任意角度摆放情况下,叠加在实景视频上的目标信息及其相关服务将给用户带来所见即所指的极大便利,将成为未来信息服务的发展新趋势,我们将这种服务称为“智能机全方位虚拟现实或增强现实信息服务”。应用包括:1.为商铺以及供需双方发布相对于其他海量用户的方位和距离提供信息;2.为用户相对于指定地名,指定单位的方位与距离提供可视化信息服务;3.为用户之间相互联络提供方位和距离可视化信息;4.为车、船、人、物流提供相对于目的地的方位和距离可视化信息。5.快递、送货,用于电子商务的最终递送环节。邮递员通过智能机即可知道收货人,收件人位置,收件人通过智能机知道邮递员位置和方向。6.提供一种全新三维场景、数字城市、数字地球、游戏漫游模式,不需手指触碰控制方向,而采用直观的智能机姿态控制保证渲染的地图与三维场景对应。7.提供了一种全新的地图浏览查询模式,不需要用手指触碰方式,而是采用直观的智能机姿态控制保证渲染出的地图与实景对应。传统的导航服务是地图导航服务,用户看到的是智能机姿态与周边实景不对应的地图,用户需要费力的去把实景与地图联想起来才能得到正确的方向。传统导航服务依据经纬度网格组成的2维坐标系进行导航,地球当做经纬度组成的一个平面处理,因为相同维度差对应的距离偏移≥经度差对应的距离偏移,所以不同地区导航算法需进行经纬比例调整,只适合于中低纬度地区的小区域,不适合全球,极地附近这种方法已经无法再适用,非常不便于全球化普及。而本专利技术采用局部坐标系转换后能把全球任何位置的三维场景很好地展现出来。传统的姿态检测技术主要用于飞机,汽车等大型设备,追求很高精度,用于军事、工业等领域,而且非常贵重和笨重,而本专利技术主要考虑用廉价轻便的智能机终端实现普通个人周边地区的视频信息叠加服务。本专利技术不仅考虑方向传感器的value[0]得到的航向角,在有其他传感器,如重力加速度磁力计和陀螺仪情况下,还考虑了其他几种姿态传感器捕获到的数据,使得检测到的姿态更加精确,在没有这些传感器条件下也能得到粗略姿态。本专利技术可以在智能机,诸如Andriod,苹果系统上方便地实现虚拟现实漫游、地图浏览功能。考虑到当前智能机传统应用的各种缺陷和不足,本专利技术提供一种考虑智能机3轴旋转任意姿态测定的虚拟现实或增强现实三维渲染及漫游方法,用户在三维空间中以任意姿态摆放智能机都能在视窗内观察到与该位姿对应的周边真实或虚拟三维渲染场景。由于用户手持智能机的姿态与三维场景中渲染的三维效果完全一致,用户会体验到一种极其逼真的身临其境三维效果。因此基于本专利技术可以实现虚拟现实电子商务、虚拟现实商铺广告信息实景三维渲染发布、三维数字城市漫游,实景三维地图标注,实景三维游戏、摄影测量测绘等。同时商铺也能借助服务平台广泛发布其广告信息。基于本专利技术可实现电子商务服务,用户客户端之间,用户客户端与商铺之间可以用视频实景预览观察相互之间的位置、方位关系,同时商铺也能借助服务平台广泛发布其广告信息。本专利技术中智能机包括一切含显示显示屏和姿态传感的智能设备,如手机,平板电脑,笔记本电脑,带姿态传感和显示屏的摄像头,相机,智能显示器,智能电视机显示屏、以及各种可穿戴设备。
技术实现思路
本专利技术所要解决的问题是提供智能机姿态测定及虚拟现实漫游方法,该方法使用户在智能机上获得便捷、直观的可视化信息。本专利技术提供的技术方案是,智能机姿态测定及虚拟现实漫游方法,包括以下内容:智能机姿态测量方法的输入输出定义输入:方法(1)重力加速度计传感器的三个值ax、ay、az,要求配置最低,适用性最广磁力计传感器的三个值{mx,my,mz}或方向传感器的航向角value[0]方法(2)旋转矢量传感器的三个或四个输出。需旋转矢量传感器方法(3)重力加速度计,磁力计和陀螺仪。另需陀螺仪输出:完整描述智能机局部坐标系姿态的矩阵Rg矩阵是一个3x3单位正交矩阵,由三行组成,每行一个三维矢量,三个矢量分别为rgx,rgy,rgz。第一行rgx是智能机自身x轴在局部坐标系下的单位矢量;第二行rgy是智能机自身y轴在局部坐标系下的单位矢量;第三行rgz是智能机自身z轴在局部坐标系下的单位矢量。如图1所示,智能机姿态矩阵Rg的三个行矢量rgx,rgy,rgz是其自身三轴在局部坐标系下的三个单位矢量。本专利技术智能机姿态测定方法,包括以下步骤:测定智能机姿态矩阵Rg。Rg是一个3x3单位正交矩阵,是相对于局部坐标系的,局部坐标系Z轴与重力方向一致,若智能机磁力计指示方向是北,则北代表局部坐标系X轴,西代表局部坐标系Y轴;若智能机磁力计指示方向是东,则东代表局部坐标系X轴,北代表局部坐标系Y轴;若智能机磁力计指示方向是南,则南代表局部坐标系X轴,东代表局部坐标系Y轴;若智能机磁力计指示方向是西,则西代表局部坐标系X轴,南代表局部坐标系Y轴;局部坐标系的原点可以定义为位于地球上任意一点。Rg由下法之一获得:方法(1)采用重力加速度计与磁力计如果智能机有重力加速度计,且有磁力计或方向传感器,用以下公式(1)计算Rg其中vax,vay,vaz是智能机测出来的智能机重力加速度传感器的x,y,z三个方向的值,或这三个检测值经过滤波的结果,如过程中检测到新值vax’,vay’,vaz’可采用:αvax’+(1-α)vax替换原来的vaxαvay’+(1-α)vay替换原来的vayαvaz’+(1-α)vaz替换原来的vazα是介于[0,1]之间的一个值。Ra是重力传感器芯片相对于智能机的姿态转换矩阵。对于大部分智能手机而言,当az<0时,s=-1,az≥0时,s=1;若采用方向传感器:带入公式(1)计算Rg;若采用磁力计传感器:{vmx,vmy,vmz是是智能机本文档来自技高网
...
智能机姿态测定及虚拟现实漫游方法

【技术保护点】
智能机姿态测定方法,包括以下步骤:1)定义局部坐标系:局部坐标系是指原点在智能机,Z轴指向地球表面法方向,Y轴或X轴与纬线相平行的坐标系;或局部坐标系原点位于地球上任意一点,Z轴与重力方向一致,且 若智能机磁力计指示方向是北,则北代表局部坐标系X轴,西代表局部坐标系Y轴;若智能机磁力计指示方向是东,则东代表局部坐标系X轴,北代表局部坐标系Y轴;若智能机磁力计指示方向是南,则南代表局部坐标系X轴,东代表局部坐标系Y轴;若智能机磁力计指示方向是西,则西代表局部坐标系X轴,南代表局部坐标系Y轴;2)测定智能机姿态矩阵Rg  Rg是一个相对于局部坐标系的3x3单位正交矩阵,Rg由下法之一获得:方法(1)采用重力传感器与磁力计或方向传感器如果智能机有重力传感器,且有磁力计或方向传感器,用以下公式(1)计算Rg(1)其中vax,vay,vaz是智能机测出来的智能机重力加速度传感器的x,y,z三个方向的值,或是这三个值经滤波的结果;Ra是重力传感器芯片相对于智能机的姿态转换矩阵; L=若智能机检测到的重力加速度传感器定义为负值:当≤0时,s = 1,>0时,s = ‑1;若智能机检测到的重力加速度传感器定义为正值:当≤0时,s = ‑1,>0时,s = 1; 若采用方向传感器:= value[0]  带入公式(1)计算Rg;若采用磁力计传感器:计算其中Rm是磁力传感器芯片相对于智能机的姿态转换矩阵;{vmx, vmy, vmz }是智能机上磁力传感器检测到的三个值或这三个值经滤波的结果;再计算利用磁力计计算方位角的三角函数为:带入公式(1)即可算出Rg;若既无磁力计,也无方向传感器,角初值为0,当模拟逆时针绕重力方向旋转时增加φ角,模拟顺时针绕重力方向旋转则减小角; 方法(2)用旋转矢量传感器如果智能机配置有旋转矢量传感器首先采用下述(a)(b)(c)中的一种方式得到Rg0矩阵(a)如果检测到智能机上的旋转矢量传感器只有3个数据values[0], values[1], values[2]采用以下公式得到q1= values[0], q2= values[1], q3= values[2],q0=则Rg0矩阵为:R g0=(b)如果检测智能机上的旋转矢量传感器有4个数据,q0=values[3],  q1=values[0],  q2=values[1],  q3=values[2]则Rg0矩阵为:R g0=;(c)智能机上指定传感器类型为旋转矢量类型TYPE_ROTATION_VECTOR,实时得到旋转矢量传感器的观测值;利用智能机上的旋转矢量转矩阵函数将传感器的观测值转换成绘图转换矩阵R44, R44矩阵的左上角3x3子阵是Rg0;然后根据智能机旋转矢量传感器坐标系定义的不同,采取以下几种情况之一得到Rg:若旋转矢量传感器的X轴指向东,Y轴指向北,则Rg=Rg0;                               (2)若旋转矢量传感器的X轴指向北,Y轴指向西,则Rg=R g0;                                                                         (3)若旋转矢量传感器的X轴指向南,Y轴指向东,则Rg=Rg0;                                   (4)方法(3)采用陀螺仪、加速度计与磁力计迭代第1步选用方法(1)或方法(2)计算Rg的初值,将Rg转换成4元数q0,q1,q2,q3作为以下第2‑7步迭代的初值  第2步 设定exInt,eyInt,ezInt原始值为0exInt=0,eyInt=0,ezInt=0 第3步 根据接收到的磁力计矢量{mx,my,mz},得到正确磁场矢量{wx,wy,wz}先将矢量{mx,my,mz}替换成将其单位化以后的矢量{mx,my,mz}/  得到局部坐标系下磁场的正确的磁场方向矢量{bx,0,bz} hx = 2×mx×(0.5 ‑ q2×q2 ‑ q3×q3) + 2×my×(q1×q2 ‑ q0×q3) + 2×mz×(q1×q3 + q0×q2);  hy = 2×mx×(q1×q2 + q0×q3) + 2×my×(0.5 ‑ q1×q1 ‑ q3×q3) + 2×mz×(q2×q3 ‑ q0×q1);  hz = 2×mx×(q1×q3 ‑ q0×q2) + 2×my×(q2×q3 + q0×q1) + 2×mz×(0.5 ‑ q1×q1 ‑ q2×q2);bx =;  bz = hz  再转换到正确磁场矢量{wx,wy,wz}  wx = 2×bx×(0.5 ‑ q2×q2 ‑ q3×q3) + 2×bz×(q1×q3 ‑ q0×q2);  wy = 2×bx...

【技术特征摘要】
2013.12.29 CN 2013107361701;2013.12.29 CN 201310731.智能机姿态测定方法,包括以下步骤:1)定义局部坐标系:局部坐标系是指原点在智能机,Z轴指向地球表面法方向,Y轴或X轴与纬线相平行的坐标系;或局部坐标系原点位于地球上任意一点,Z轴与重力方向一致,且,若智能机磁力计指示方向是北,则北代表局部坐标系X轴,西代表局部坐标系Y轴;若智能机磁力计指示方向是东,则东代表局部坐标系X轴,北代表局部坐标系Y轴;若智能机磁力计指示方向是南,则南代表局部坐标系X轴,东代表局部坐标系Y轴;若智能机磁力计指示方向是西,则西代表局部坐标系X轴,南代表局部坐标系Y轴;2)测定智能机姿态矩阵Rg:Rg是一个相对于局部坐标系的3x3单位正交矩阵,Rg由下法之一获得:方法(1)采用重力传感器与磁力计或方向传感器:如果智能机有重力传感器,且有磁力计或方向传感器,用以下公式(1)计算Rg:其中,vax,vay,vaz是智能机测出来的智能机重力加速度传感器的x,y,z三个方向的值,或是这三个值经滤波的结果;Ra是重力传感器芯片相对于智能机的姿态转换矩阵;若智能机检测到的重力加速度传感器定义为负值:当az≤0时,s=1,az>0时,s=-1;若智能机检测到的重力加速度传感器定义为正值:当az≤0时,s=-1,az>0时,s=1;若采用方向传感器:带入公式(1)计算Rg;若采用磁力计传感器:计算其中Rm是磁力传感器芯片相对于智能机的姿态转换矩阵;{vmx,vmy,vmz}是智能机上磁力传感器检测到的三个值或这三个值经滤波的结果;再计算利用磁力计计算方位角的三角函数为:带入公式(1)即可算出Rg;若既无磁力计,也无方向传感器,方位角角初值为0,当模拟逆时针绕重力方向旋转时增加角,模拟顺时针绕重力方向旋转则减小角;方法(2)用旋转矢量传感器:如果智能机配置有旋转矢量传感器,首先采用下述(a)(b)(c)中的一种方式得到Rg0矩阵:(a)如果检测到智能机上的旋转矢量传感器只有3个数据values[0],values[1],values[2],采用以下公式得到:q1=values[0],q2=values[1],q3=values[2],则Rg0矩阵为:(b)如果检测智能机上的旋转矢量传感器有4个数据,q0=values[3],q1=values[0],q2=values[1],q3=values[2],则Rg0矩阵为:(c)智能机上指定传感器类型为旋转矢量类型TYPE_ROTATION_VECTOR,实时得到旋转矢量传感器的观测值;利用智能机上的旋转矢量转矩阵函数将传感器的观测值转换成绘图转换矩阵R44,R44矩阵的左上角3x3子阵是Rg0;然后根据智能机旋转矢量传感器坐标系定义的不同,采取以下几种情况之一得到Rg:若旋转矢量传感器的X轴指向东,Y轴指向北,则若旋转矢量传感器的X轴指向北,Y轴指向西,则Rg=Rg0;(3)若旋转矢量传感器的X轴指向南,Y轴指向东,则方法(3)采用陀螺仪、加速度计与磁力计迭代:第1步:选用方法(1)或方法(2)计算Rg的初值,将Rg转换成4元数q0,q1,q2,q3作为以下第2-7步迭代的初值;第2步:设定exInt,eyInt,ezInt原始值为0,exInt=0,eyInt=0,ezInt=0;第3步:根据接收到的磁力计矢量{mx,my,mz},得到正确磁场矢量{wx,wy,wz};先将矢量{mx,my,mz}替换成将其单位化以后的矢量得到局部坐标系下磁场的正确的磁场方向矢量{bx,0,bz};hx=2×mx×(0.5-q2×q2-q3×q3)+2×my×(q1×q2-q0×q3)+2×mz×(q1×q3+q0×q2);hy=2×mx×(q1×q2+q0×q3)+2×my×(0.5-q1×q1-q3×q3)+2×mz×(q2×q3-q0×q1);hz=2×mx×(q1×q3-q0×q2)+2×my×(q2×q3+q0×q1)+2×mz×(0.5-q1×q1-q2×q2);bz=hz;再转换到正确磁场矢量{wx,wy,wz}:wx=2×bx×(0.5-q2×q2-q3×q3)+2×bz×(q1×q3-q0×q2);wy=2×bx×(q1×q2-q0×q3)+2×bz×(q0×q1+q2×q3);wz=2×bx×(q0×q2+q1×q3)+2×bz×(0.5-q1×q1-q2×q2);第4步:根据接收到的重力加速度计数据ax,ay,az,和{wx,wy,wz}得到误差矢量{ex,ey,ez}并计算其累计值exInt,eyInt,ezInt:先将矢量{ax,ay,az}替换成将其单位化以后的矢量vx=2*(q1*q3-q0*q2);vy=2*(q0*q1+q2*q3);vz=q0*q0-q1*q1-q2*q2+q3*q3;ex=(ay×vz-az×vy)+(my×wz-mz×wy);ey=(az×vx-ax×vz)+(mz×wx-mx×wz);ez=(ax×vy-ay×vx)+(mx×wy-my×wx);计算误差累计值;exInt替换为exInt+ex×Ki;eyInt替换为eyInt+ey×Ki;ezInt替换为ezInt+ez×Ki;其中Ki为一可调节的正系数,Ki在0.00001至0.5中任意选取;第5步:根据误差矢量{ex,ey,ez}及其累计值纠正陀螺仪数据{gx0,gy0,gz0}:假设智能机读出当前的一组陀螺仪数据为{gx0,gy0,gz0},gx=gx0+Kp×ex+exInt;gy=gy0+Kp×ey+eyInt;gz=gz0+Kp×ez+ezInt;其中Kp为一可调节的正系数,Kp在0.000001至20.0中任意选取;第6步:根据陀螺仪数据gx,gy,gz修正四元数:随着不断接收到陀螺仪数据gx,gy,gz,对4元数按如下方式修正,halfT为修正周期,halfT=0.00001~10.0,q0替换为q0+(-q1×gx-q2×gy–q3×gz)×halfT;q1替换为q1+(q0×gx-q3×gy+q2×gz)×halfT;q2替换为q2+(q3×gx+q0×gy-q1×gz)×halfT;q3替换为q3+(-q2×gx+q1×gy+q0×gz)×halfT;第7步:输出Rg矩阵和四元数:将四元数{q0,q1,q2,q3}单位化成输出;4元数转Rg矩阵公式如下:第8步:回到第3步继续接收陀螺仪运动数据更新姿态4元数q0~q3,在循环的过程中每次到第7步都能输出当前的Rg矩阵和四元数。2.智能机显示屏的姿态测定方法,包括以下步骤:智能机显示屏的姿态矩阵为:rx是智能机显示屏像素阵列x轴方向在局部坐标系中的分量;ry是智能机显示屏像素阵列y轴方向在局部坐标系中的分量;rz是垂直于智能机显示屏表面方向向智能机显示屏内部朝前看的视线方向在局部坐标系中的分量;1)按权利要求1的方法测定智能机姿态,并得到智能机的姿态矩阵Rg;2)计算R=ΔR×Rg;得到智能机显示屏的姿态矩阵;ΔR为智能机显示屏姿态矩阵R相对于智能机姿态矩阵Rg的一个固定的方向的转换,智能机自身Z轴定义为智能机加速度计的z轴方向,当显示屏观察方向和智能机自身Z轴方向刚好相反时当显示屏观察方向和智能机自身Z轴方向完全一致时否则可在智能机上选择一个与智能机显示屏姿态一致的摄像头,即摄像头的xyz三轴分别与显示屏的xyz三轴平行且方向一致,采用摄影测量后方交会方法测量出智能机摄像头相对于局部坐标系的姿态矩阵RA,并用权利要求1方法测得此时智能机的姿态矩阵Rg,得到ΔR=RARg-1。3.基于智能机姿态的虚拟现实漫游方法,包括以下步骤:1)采用权利要求2所述的方法得到智能机显示屏的姿态矩阵R,2)移动控制漫游观察者在局部坐标系中的位置:定义漫游观察者是在局部坐标系中的一个具备自身位置、姿态且用于观察周边场景的对象;智能机显示屏所渲染的场景就是漫游观察者在局部坐标系中所应看到的场景图像;定义漫游观察者在局部坐标系中的坐标为Xd,Yd,Zd;用以下三种模式之一控制漫游观察者在虚拟场景中的移动:(1)模式1:普通二维移动当手指按{ΔX,ΔY}方向滑过智能机显示屏平面的时候,相当于局部坐标系下,Xd增加Vx=ΔXr11+ΔYr21;Yd增加Vy=ΔXr12+ΔYr22;Zd不变...

【专利技术属性】
技术研发人员:刘进陶重芝
申请(专利权)人:刘进
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1