CN106843285B - 虚拟环境中基于四元数的六自由度模型随动相机控制算法 - Google Patents
虚拟环境中基于四元数的六自由度模型随动相机控制算法 Download PDFInfo
- Publication number
- CN106843285B CN106843285B CN201710032264.9A CN201710032264A CN106843285B CN 106843285 B CN106843285 B CN 106843285B CN 201710032264 A CN201710032264 A CN 201710032264A CN 106843285 B CN106843285 B CN 106843285B
- Authority
- CN
- China
- Prior art keywords
- target
- servo
- quaternary number
- parameter
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D3/00—Control of position or direction
- G05D3/12—Control of position or direction using feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Abstract
本发明提出了一种虚拟环境中基于四元数的六自由度模型随动相机控制算法。该算法在三维视景中首先将当前视点相机与运动目标进行绑定,然后实时获得当前运动目标所处外部作用力等数据信息,及实时获得当前运动目标的三维坐标数据及运动姿态参数,通过四元数中的变换矩阵算法获得修正后的运动目标的运动参数,并将这些信息传递给系统相机事件,由系统相机事件进行处理后实现相机位置及运动姿态的同步更新,算法通过操纵键盘及外设控制器等装置改变跟随目标的运动状态,控制跟随目标的运动。该算法的创新性在于算法结构简单,计算量小,能准确获得运动目标的运动姿态等实时数据,有效的应用于运动目标的随动相机控制。
Description
技术领域
本发明属于虚拟现实领域,具体涉及一种虚拟环境中的运动目标模型与相机控随动控制算法。
背景技术
三维视景仿真环境是一种基于计算机信息技术的沉浸式交互环境,其核心是计算机软件技术与硬件技术的有效结合,通过执行相关的计算机算法变换操作产生逼真的视觉与听觉上的沉浸式效果。三维视景仿真技术作为计算机技术中最为前沿的应用领域之一,已广泛应用于车辆驾驶仿真模拟、轮船仿真驾驶模拟、飞行器仿真驾驶追踪、科学计算三维仿真模拟、三维场景历史再现、城市规划设计等应用领域。当前,对锁定的运动目标进行实时跟踪与控制研究的问题日益受到关注。
四元数是一种简单的超复数,由爱尔兰数学家哈密顿(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表示三个虚部方向,b、c、d分别表示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)的操作,完成外设装置对跟随目标的控制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.虚拟环境中基于四元数的六自由度模型随动相机控制算法,其特征在于,包括以下步骤:
S1)将当前系统相机视点与运动目标进行绑定:
首先编写一个随动相机控制事件处理器,该事件处理器在初始化阶段根据用户需要选择跟踪目标,之后将该事件处理器写入处理器列表,把所写的事件处理器激活,启动该事件处理器,在该事件处理器中,通过设置参数判断是否选择绑定目标物;
S2)实时获得当前运动目标所处外部作用力数据,用Fn表示,即:
Fn(Fx,Fy,Fz)
Fn为一个三维向量,表示为单位时间阻力的位移,Fx、Fy和Fz分别表示在X、Y和Z轴方向的阻力的大小;
S3)实时获得当前运动目标的三维坐标数据及运动姿态参数,通过四元数与六自由度的相关变换算法获得修正后的运动目标的运动参数:
在四元数中,用A表示物体所在的空间位置,即:
A=a+bi+cj+dk;
其中i、j、k表示三个虚部方向,b、c、d分别表示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(νx,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)计算相机的运动姿态变化,同步更新相机的运动;
S5)通过键盘及外设控制器等装置改变跟随目标的运动状态,控制跟随目标的运动。
2.根据权利要求1所述的虚拟环境中基于四元数的六自由度模型随动相机控制算法,其特征在于:
步骤S2)所述当前运动目标所处外部作用力数据由仿真控制器自动模拟获得或者传入事先预设的默认值。
3.根据权利要求1所述的虚拟环境中基于四元数的六自由度模型随动相机控制算法,其特征在于:
在随动相机控制事件处理器中,通过当前视点位置获得当前运动目标所处外部作用力。
4.根据权利要求2或3所述的虚拟环境中基于四元数的六自由度模型随动相机控制算法,其特征在于:
步骤S5)通过设置键盘及外设控制器映射码值控制跟随目标运动状态及运动参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032264.9A CN106843285B (zh) | 2017-01-16 | 2017-01-16 | 虚拟环境中基于四元数的六自由度模型随动相机控制算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032264.9A CN106843285B (zh) | 2017-01-16 | 2017-01-16 | 虚拟环境中基于四元数的六自由度模型随动相机控制算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843285A CN106843285A (zh) | 2017-06-13 |
CN106843285B true CN106843285B (zh) | 2019-11-01 |
Family
ID=59124080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710032264.9A Active CN106843285B (zh) | 2017-01-16 | 2017-01-16 | 虚拟环境中基于四元数的六自由度模型随动相机控制算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843285B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102510512A (zh) * | 2011-11-17 | 2012-06-20 | 杭州电子科技大学 | 基于双目视觉节点的动态三维多媒体传感网络自定位方法 |
CN104484574A (zh) * | 2014-12-25 | 2015-04-01 | 东华大学 | 一种基于四元数的实时人体姿态监督训练矫正系统 |
CN106296598A (zh) * | 2016-07-29 | 2017-01-04 | 厦门美图之家科技有限公司 | 三维姿态处理方法、系统及拍摄终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204512B (zh) * | 2015-09-14 | 2017-10-31 | 北京航空航天大学 | 一种基于简化模型机器博弈的六自由度无人作战飞机近距格斗方法 |
CN105528079A (zh) * | 2015-12-18 | 2016-04-27 | 北京诺亦腾科技有限公司 | 对虚拟现实系统的物理道具的定位方法以及虚拟现实系统 |
CN205809810U (zh) * | 2015-12-18 | 2016-12-14 | 北京诺亦腾科技有限公司 | 虚拟现实系统 |
CN105607737A (zh) * | 2015-12-18 | 2016-05-25 | 北京诺亦腾科技有限公司 | 对虚拟现实系统的物理道具的定位方法以及虚拟现实系统 |
CN205563459U (zh) * | 2016-04-12 | 2016-09-07 | 北京圣威特科技有限公司 | 一种全沉浸式虚拟现实装置 |
-
2017
- 2017-01-16 CN CN201710032264.9A patent/CN106843285B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102510512A (zh) * | 2011-11-17 | 2012-06-20 | 杭州电子科技大学 | 基于双目视觉节点的动态三维多媒体传感网络自定位方法 |
CN104484574A (zh) * | 2014-12-25 | 2015-04-01 | 东华大学 | 一种基于四元数的实时人体姿态监督训练矫正系统 |
CN106296598A (zh) * | 2016-07-29 | 2017-01-04 | 厦门美图之家科技有限公司 | 三维姿态处理方法、系统及拍摄终端 |
Non-Patent Citations (1)
Title |
---|
"基于虚拟现实技术的飞行视景仿真平台的设计与实现";姚本君;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20130615(第06期);正文第21-28,43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106843285A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7646394B1 (en) | System and method for operating in a virtual environment | |
CN101610877B (zh) | 用于触觉控制的方法和设备 | |
CN113096252B (zh) | 一种混合增强教学场景中多移动机制融合方法 | |
USRE37374E1 (en) | Gyro-stabilized platforms for force-feedback applications | |
CN103648733B (zh) | 用于控制机器人的方法和控制装置 | |
CN104898642B (zh) | 一种用于航天器姿态控制算法的集成测试仿真系统 | |
CN110394780A (zh) | 机器人的仿真装置 | |
CN108459612A (zh) | 基于人工势场法的无人机编队控制方法及装置 | |
US20120280087A1 (en) | Unmanned Aerial Vehicle Control Using a Gamepad | |
JP2020518077A5 (zh) | ||
CN106796761A (zh) | 用于支持模拟移动的系统和方法 | |
JP2020526831A (ja) | シミュレーションされた三次元(3d)環境におけるインタラクティブな入力制御 | |
CN102567586A (zh) | 一种航天任务三维综合态势的仿真系统及仿真方法 | |
US6000942A (en) | Parachute flight training simulator | |
RU2571567C2 (ru) | Способ управления движением аэробаллистического летательного аппарата по заданной пространственной траектории | |
CN108427595A (zh) | 虚拟现实中用户界面控件显示位置的确定方法及装置 | |
CN103810746A (zh) | 一种渲染任意方位3d模型的方法及装置 | |
CN108885493A (zh) | 体感控制器控制云台的方法、云台、体感控制器和系统 | |
Martins-Filho et al. | Processor-in-the-loop simulations applied to the design and evaluation of a satellite attitude control | |
CN111508080A (zh) | 基于ue4引擎的胶带缠绕仿真的实现方法及相关设备 | |
CN106843285B (zh) | 虚拟环境中基于四元数的六自由度模型随动相机控制算法 | |
CN106681340B (zh) | 一种基于Tau理论的组合体消旋与再定向轨迹规划方法 | |
US11288340B2 (en) | Dynamically updating a model associated to a simulated interactive object | |
CN108983954B (zh) | 基于虚拟现实的数据处理方法、装置以及系统 | |
CN110152295A (zh) | 虚拟对象的控制方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |