公开/公告号CN106843285A
专利类型发明专利
公开/公告日2017-06-13
原文格式PDF
申请/专利权人 青岛海大新星软件咨询有限公司;
申请/专利号CN201710032264.9
申请日2017-01-16
分类号G05D3/12;G06T7/246;G06T7/73;
代理机构青岛中天汇智知识产权代理有限公司;
代理人郝团代
地址 266000 山东省青岛市市南区香港东路23号中国海洋大学产业楼403
入库时间 2023-06-19 02:35:50
法律状态公告日
法律状态信息
法律状态
2019-11-01
授权
授权
2017-07-07
实质审查的生效 IPC(主分类):G05D3/12 申请日:20170116
实质审查的生效
2017-06-13
公开
公开
技术领域
本发明属于虚拟现实领域,具体涉及一种虚拟环境中的运动目标模型与相机控随动控制算法。
背景技术
三维视景仿真环境是一种基于计算机信息技术的沉浸式交互环境,其核心是计算机软件技术与硬件技术的有效结合,通过执行相关的计算机算法变换操作产生逼真的视觉与听觉上的沉浸式效果。三维视景仿真技术作为计算机技术中最为前沿的应用领域之一,已广泛应用于车辆驾驶仿真模拟、轮船仿真驾驶模拟、飞行器仿真驾驶追踪、科学计算三维仿真模拟、三维场景历史再现、城市规划设计等应用领域。当前,对锁定的运动目标进行实时跟踪与控制研究的问题日益受到关注。
四元数是一种简单的超复数,由爱尔兰数学家哈密顿(William Rowan Hamilton)在1843年提出,可用于刻画物体在空间的旋转。物体在空间具有六个自由度,即沿x、y、z三个直角坐标轴方向的移动自由度和绕x、y、z三个坐标轴的转动自由度,一个没有任何约束力的物体在空间上均具有6个独立的运动,六自由度可用于确定运动物体的精确位置。当前对锁定的运动目标进行实时跟踪与控制研究大多数仅将跟随物简化成一个点,单独使用四元数进行研究,未能做到四元数与六自由度的有机结合。
发明内容
本发明提出了一种虚拟环境中基于四元数的六自由度模型随动相机控制算法,从运动目标的角度出发进行分析,以四元数为基础,以运动目标的六自由度运动变化向量为相机随动核心,将相机视点与运动目标进行绑定,自动实现虚拟环境下运动目标的随动相机控制。
本发明的技术方案是这样实现的:
一种虚拟环境中基于四元数的六自由度模型随动相机控制算法,其包括以下步骤:
S1)将当前系统相机视点与运动目标进行绑定;
S2)实时获得当前运动目标所处外部作用力等数据;
S3)实时获得当前运动目标的三维坐标数据及运动姿态参数,通过四元数与六自由度的相关变换算法获得修正后的运动目标的运动参数;
S4)计算相机的运动姿态变化,同步更新相机的运动;
S5)通过键盘及外设控制器等装置改变跟随目标的运动状态,控制跟随目标的运动。
上述技术方案中,步骤S1)主要完成相机视点与运动目标的绑定操作,具体如下实现:
首先编写一个随动相机控制事件处理器,该事件处理器基于三维视景仿真技术中相关算法实现,该事件处理器在初始化阶段根据用户需要选择跟踪目标,之后将该事件处理器写入处理器列表,把所写的事件处理器激活,启动该事件处理器。在该事件处理器中,通过设置参数判断是否选择绑定目标物。
上述技术方案中,步骤S2)主要获得当前外部作用力等数据,该数据可由仿真控制器自动模拟获得,也可以传入事先预设的默认值。具体的,可以在随动相机控制事件处理器中,通过当前视点位置获得所在位置外部作用力Fn。
上述技术方案中,步骤S3)主要获得当前运动目标的三维位置坐标、运动速度,包括六自由度的运动姿态,通过四元数中的变换矩阵对目标物的运动姿态进行修正与更新。具体的,获得当前运动目标的当前三维中心点坐标P0、四元数Q、六自由度S及运动速度v,其中Q(b,c,d),S=(Δx,Δy,Δz,Q),v是一个三维向量,有x、y、z三轴的方向。
上述技术方案中,步骤S4)主要进行相机位置与姿态参数的更新,具体是根据S3)获得的运动目标运动参数与姿态进行相机位置与姿态的更新
上述技术方案中,步骤S5)提供用户控制运动目标的手段,通过计算机键盘及外设控制器等装置改变运动目标的运动状态参数,通过四元数中的相关参数实现跟随目标的六自由度变换控制,同时重复执行S2)、S3)、S4)操作实现系统相机的同步更新。具体来讲,可以通过设置键盘及外设控制器映射码值控制跟随目标运动状态及运动参数。
本发明的虚拟环境中基于四元数的六自由度模型随动相机控制算法有完备的理论支撑,能准确获得运动目标的运动姿态等实时数据并实现对运动目标的交互控制,算法结构简单,计算量小,能有效的应用于运动目标的随动相机控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1虚拟环境中基于四元数的六自由度模型随动相机控制算法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的虚拟环境中基于四元数的六自由度模型随动相机控制算法,包括以下步骤:
S1)将当前系统相机视点与运动目标进行绑定:
在该步骤中,首先编写一个随动相机控制事件处理器,该事件处理器基于三维视景仿真技术中相关算法实现,该事件处理器在初始化阶段根据用户需要选择跟踪目标,之后将该事件处理器写入处理器列表,把所写的事件处理器激活,启动该事件处理器。在该事件处理器中,通过设置参数判断是否选择绑定目标物。
S2)实时获得当前运动目标所处外部作用力等数据:
在随动相机控制事件处理器中,通过当前视点位置获得所在位置外界作用力,为简化运算,将阻力数值化,用Fn表示,即:
Fn(Fx,Fy,Fz)
Fn是一个三维向量,具有x、y、z三轴的方向与数值大小,即表示为单位时间阻力的位移。
S3)实时获得当前运动目标的三维坐标数据及运动姿态参数,通过四元数与六自由度的相关变换算法获得修正后的运动目标的运动参数:
在四元数中,用A表示物体所在的空间位置,即:
A=a+bi+cj+dk
其中i、j、k表示三个虚部方向,a、b、c分别表示i、j、k的参数。用S表示六自由度,即:
S=(Δx,Δy,Δz,α,β,γ)
其中Δx、Δy、Δz分别表示x、y、z三个坐标轴的变化量,均有正负符号之分。α、β、γ分别表示绕x、y、z三个坐标轴的旋转量,有方向与大小,是四元数的虚部参数,用Q表示,即:
Q(b,c,d)
因此S简化为:
S=(Δx,Δy,Δz,Q)
在该步骤中,用P0表示当前跟随物的三维中心坐标,即:
P0(x0,y0,z0)
其中x0、y0、z0分别表示x、y、z三个坐标轴的坐标。设运动目标的运动速度为v,即:
v(vx,vy,vz)
设实时更新后跟随物的中心三维坐标为p,则在六自由度参数中,更新六自由度参数为:
Δx=vx*cos(b)+Fx
Δy=vy*cos(c)+Fy
Δz=vz*cos(d)*sin(d)+Fz
所以,更新后运动目标的三维中心坐标为:
p(x,y,z)=(x0+Δx,y0+Δy,z0+Δz)
S4)计算相机的运动姿态变化,同步更新相机的运动:
在该步骤中,设更新前系统相机的三维坐标为Pm0,即:
Pm0(xm0,ym0,zm0)
设更新后系统相机坐标为Pm,即:
Pm(xm,ym,zm)
则更新后系统相机坐标变换为:
Pm=(xm+Δx,ym+Δy,zm+Δz)
S5)通过键盘及外设控制器等装置改变跟随目标的运动状态,控制跟随目标的运动。
在该步骤中,通过设置键盘及外设控制器映射码值控制跟随目标运动状态及运动参数。通过键盘按键及外设操纵器实时向虚拟仿真系统传入系统,实时改变外部作用力参数Fn、运动速度v、四元数Q与六自由度S,再执行步骤S3)、S4)的操作,完成外设装置对跟随目标的控制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 一次可提供弹药弹药的拱形腔室,枪械(如步枪或卡宾枪)的相机镜头相机在同一组件中包括一个插槽和一个随动件,可移动弹药
机译: 基于相机的六自由度目标测量和目标跟踪设备
机译: 基于相机的六自由度旋转靶镜测量和靶标跟踪装置