李 勃,彭 勇,王 輝
(1.第二軍醫(yī)大學(xué) 軍事教研室,上?!?00433;
2.石家莊機(jī)械化步兵學(xué)院 教研部,石家莊 050083)
?
【裝備理論與裝備技術(shù)】
一種基于四元數(shù)和向量法的CGF機(jī)動(dòng)模型實(shí)現(xiàn)
李勃1,彭勇2,王輝2
(1.第二軍醫(yī)大學(xué) 軍事教研室,上海200433;
2.石家莊機(jī)械化步兵學(xué)院 教研部,石家莊050083)
利用四元數(shù)構(gòu)建了作戰(zhàn)模擬中CGF裝備平臺(tái)的空間位移和旋轉(zhuǎn)模型,采用向量法實(shí)現(xiàn)一定適應(yīng)能力的規(guī)模兵力線路機(jī)動(dòng)、跟隨機(jī)動(dòng)(含隊(duì)形變化)在內(nèi)的戰(zhàn)術(shù)機(jī)動(dòng),并采用slerp插值算法實(shí)現(xiàn)了平臺(tái)方向的平滑轉(zhuǎn)向,從而簡(jiǎn)化機(jī)動(dòng)模型實(shí)現(xiàn)過程,提高了模型逼真度。
四元數(shù);向量;CGF;戰(zhàn)術(shù)機(jī)動(dòng)
機(jī)動(dòng)建模是CGF(Computer Generated Forces)計(jì)算機(jī)生成兵力仿真的重要內(nèi)容,包括對(duì)實(shí)體空間位置和姿態(tài)變化進(jìn)行描述和對(duì)為達(dá)成一定目的有組織的兵力轉(zhuǎn)移進(jìn)行描述。隨著規(guī)模化、精確化虛擬裝備仿真應(yīng)用逐漸增多,要求機(jī)動(dòng)模型的精度越來越高,要能反映裝備性能和地形環(huán)境等因素對(duì)裝備運(yùn)用的影響;同時(shí)要求規(guī)模兵力能通過自主、智能的動(dòng)作實(shí)現(xiàn)作戰(zhàn)行動(dòng)的整體仿真。為此本文將CGF機(jī)動(dòng)問題分為兩部分:一部分是平臺(tái)空間姿態(tài),另一部分是作戰(zhàn)過程中的戰(zhàn)術(shù)機(jī)動(dòng)問題,例如按路線行軍、戰(zhàn)斗隊(duì)形保持與變換問題等。由于近些年來四元數(shù)等一些空間變量算法逐漸應(yīng)用,并得到現(xiàn)代圖形庫(kù)支持,相比傳統(tǒng)歐拉角,矩陣等算法計(jì)算效率更高,支持功能更強(qiáng)。
四元數(shù)是由一個(gè)實(shí)部和三個(gè)虛部構(gòu)成的多元復(fù)數(shù)。表示矢量和物體的旋轉(zhuǎn),僅用4個(gè)參數(shù)和1個(gè)約束方程,具有可進(jìn)行矢量算法、復(fù)數(shù)算法、矩陣算法、對(duì)偶算法的綜合功能,同時(shí)不會(huì)出現(xiàn)類似歐拉角的萬向節(jié)鎖死問題,且容易進(jìn)行插值,因此獲得了現(xiàn)有圖形引擎的很好支持。
四元數(shù)有以下幾個(gè)重要的表達(dá)公式:
——基本公式:
(1)
——單位化的四元數(shù)公式:
(2)
其中‖Q‖=w2+x2+y2+z2。
——四元數(shù)的空間含義
(3)
(4)
同時(shí),β=p(qαq-1)p-1=(pq)α(pq)-1
上述公式表明四元數(shù)具有連續(xù)旋轉(zhuǎn)性,即先后旋轉(zhuǎn)p、q等價(jià)于一次旋轉(zhuǎn)pq。
——四元數(shù)的插值運(yùn)算
四元數(shù)的一個(gè)最大優(yōu)點(diǎn)可以實(shí)現(xiàn)兩個(gè)方向之間的平滑插值,例如典型的slerp球面線性插值,實(shí)現(xiàn)了夾角為θ的q0,q1沿球面的連續(xù)平滑插值,其算法:
(5)
(1)描述位置變化模型
(6)
圖1 車輛空間狀態(tài)
(2)描述姿態(tài)變化的模型
引起車輛姿態(tài)變化的因素主要為機(jī)動(dòng)轉(zhuǎn)向、受地形起伏影響的地形匹配問題。姿態(tài)變化對(duì)車輛機(jī)動(dòng)的方向、爬坡能力甚至射擊精度都有影響。
車輛轉(zhuǎn)向:車輛轉(zhuǎn)向?qū)嶋H是車輛圍繞縱軸的旋轉(zhuǎn)。車輛轉(zhuǎn)向可利用式(3)表達(dá),Yaw為圖形庫(kù)提供的通用函數(shù)。假若qnow為當(dāng)前方向,車輛轉(zhuǎn)向θ后,車輛相對(duì)大地坐標(biāo)系的新的旋轉(zhuǎn)量q′為:
(7)
qnext=FromAxes(Axid0,Axid1,Axid2)
(8)
該算法通常由圖形庫(kù)直接提供,本文給出了該函數(shù)的具體實(shí)現(xiàn),如下所示:
令旋轉(zhuǎn)矩陣
根據(jù)公式(式(4)),一個(gè)四元數(shù)可以轉(zhuǎn)化表示該方向的旋轉(zhuǎn)矩陣:
反之我們要從已知旋轉(zhuǎn)矩陣中求出相應(yīng)的四元數(shù),可利用該公式
dW=m11+m22+m33=(1-2y2-2z2)+
(1-2x2-2z2)+(1-2x2-2y2)=
3-4*(x2+y2+z2)=4w2-1
同理,
由于無法確定四個(gè)分量的正負(fù),不能求出所有的分量。
m12+m21=(2xy+2wz)+(2xy-2wz)=4xy;
m12-m21=(2xy+2wz)+(2xy-2wz)=4wz;
m31+m13=(2xz+2wy)-(2xz-2wy)=4xz;
m31-m13=(2xz+2wy)-(2xz-2wy)=4wy;
m23+m32=(2yz+2wx)+(2yz-2wx)=4yz;
m23-m32=(2yz+2wx)-(2yz-2wx)=4wx;
如果一旦用對(duì)角元素和/差解得4個(gè)值中的一個(gè),就能用以下方法計(jì)算其他3個(gè)。通過比較,dW、dX、dY、dZ選擇最大值對(duì)應(yīng)的四元數(shù)分量,用對(duì)角線元素的和/差平方根解得一個(gè)值,就能用上述公式求得其他3個(gè)。
最終求的四元數(shù)為其中之一:
因此如果給定車輛3個(gè)垂直向量,就可以構(gòu)造一個(gè)四元數(shù),該四元數(shù)表示車輛由X軸正向到當(dāng)前位置的旋轉(zhuǎn)量,將該四元數(shù)賦予車輛得到當(dāng)前的空間姿態(tài)。其次,利用該四元數(shù)便于連接部件,如旋轉(zhuǎn)炮塔,俯仰炮管進(jìn)行空間方向的疊加計(jì)算,本文不再贅述。
通常實(shí)體在接收到機(jī)動(dòng)指令后,要實(shí)施戰(zhàn)術(shù)機(jī)動(dòng)。戰(zhàn)術(shù)機(jī)動(dòng)是建立在實(shí)體姿態(tài)基礎(chǔ)上的按線路機(jī)動(dòng)、跟隨機(jī)動(dòng)(支持隊(duì)形變化)等??紤]到戰(zhàn)術(shù)機(jī)動(dòng)模型主要通過水平坐標(biāo)OXZ計(jì)算,因此這里主要采用向量法。其基本思路是模擬人思維,不斷與預(yù)定位置進(jìn)行比較,改變實(shí)體的方向和加速度,以此使模型能夠自適應(yīng)動(dòng)態(tài)調(diào)整機(jī)動(dòng)方案,逐步逼近預(yù)定位置。
圖2 按線路機(jī)動(dòng)
——跟隨機(jī)動(dòng)(隊(duì)形變化)
(9)
其中q′為跟隨實(shí)體當(dāng)前方向,q0為領(lǐng)航者方向,q1為跟隨實(shí)體初始方向;t為時(shí)間,其變化從0到1,其間完成方向的平滑變換。
圖3 跟隨機(jī)動(dòng)
本文采用Ogre引擎作為圖形渲染平臺(tái),利用其提供的四元數(shù)函數(shù)庫(kù)描述和計(jì)算實(shí)體空間姿態(tài)與位置,模擬了一個(gè)X級(jí)規(guī)模約2 000個(gè)裝備平臺(tái)的戰(zhàn)術(shù)機(jī)動(dòng)。測(cè)試端計(jì)算機(jī)配置:CPU為Inter Core i3 4150(3.5 GHz),內(nèi)存4 G,顯卡GeForce GTX 750,屏幕分辨率1 920×1 080。運(yùn)行畫面如圖4所示。在運(yùn)行過程中,裝備平臺(tái)機(jī)動(dòng)速度、線路與預(yù)設(shè)值一致,車輛能夠與地面貼合緊密,并能夠按不同軍事規(guī)則完成多級(jí)戰(zhàn)斗隊(duì)形變換,整個(gè)運(yùn)行流暢,實(shí)時(shí)動(dòng)畫平均達(dá)到每秒130幀左右。
圖4 機(jī)動(dòng)效果圖
本文采用圖形庫(kù)提供的四元數(shù)進(jìn)行車輛平臺(tái)空間位置、姿態(tài)計(jì)算,采用向量法模擬按線路機(jī)動(dòng)和跟隨機(jī)動(dòng),通過實(shí)例應(yīng)用與效果分析得出:
1) 采用四元數(shù)和向量法模擬規(guī)模兵力的戰(zhàn)術(shù)機(jī)動(dòng),機(jī)動(dòng)數(shù)據(jù)符合實(shí)際,能夠?qū)崿F(xiàn)不同戰(zhàn)斗隊(duì)形的保持與變換,且運(yùn)算速度較快。
2) 該算法充分利用圖形庫(kù)提供的函數(shù)支持,極大限度降低了程序設(shè)計(jì)的復(fù)雜度;同時(shí)采用四元數(shù)描述平臺(tái)姿態(tài),也為相關(guān)其它空間計(jì)算,如射擊模擬提供了支持。
3) 由于模型采用向量逼近法,當(dāng)接受到新的機(jī)動(dòng)路線或隊(duì)形變換指令后,實(shí)體能夠逐步動(dòng)態(tài)完成指令任務(wù),在一定程度上符合思維特點(diǎn),但也發(fā)現(xiàn)機(jī)動(dòng)任務(wù)變換時(shí),車輛加、減速和轉(zhuǎn)向速度大小相對(duì)固定單一,還需增加機(jī)動(dòng)決策模型以提高模型逼真性。
[1]FLETCHER DUNN,Ian Parberry.3D數(shù)學(xué)基礎(chǔ):圖形與游戲開發(fā)[M].史銀雪,王榮靜,譯.北京:清華大學(xué)出版社,2005.
[2]郭齊勝,楊立功等.計(jì)算機(jī)生成兵力導(dǎo)論[M].北京:國(guó)防工業(yè)出版社,2006.
[3]李勃.陸軍戰(zhàn)術(shù)模擬高分辨CGF建模問題研究[D].石家莊:石家莊陸軍指揮學(xué)院.2014.
[4]劉俊峰.三維轉(zhuǎn)動(dòng)的四元數(shù)表述[J].大學(xué)物理,2004(23):39.
[5]王軍安.對(duì)基于四元數(shù)的飛機(jī)本體運(yùn)動(dòng)模型的改進(jìn)[J].系統(tǒng)仿真學(xué)報(bào),2006,18(2):46.
[6]GOLDMAN R.Understanding Quaternions[J].Graphical Models’ 2011,73:21-49.
[7]GREGORY JUNKER.Pro OGRE 3D Programming[M].http://www.apress.com,2006.
[8]韓志軍,徐克虎.坦克分隊(duì)計(jì)算機(jī)生成兵力實(shí)體仿真研究[J].系統(tǒng)仿真學(xué)報(bào),2004,16(7):1365-1368.
[9]李斌,楊立功.人工神經(jīng)元網(wǎng)絡(luò)在CGF智能行為模型中的應(yīng)用研究[J].計(jì)算機(jī)仿真,2001,18(3):4-6.
[10]湯再江,王精業(yè).裝備作戰(zhàn)仿真中的虛擬現(xiàn)實(shí)及可視化研究[J].計(jì)算機(jī)仿真,2004,21(7):17-19.
(責(zé)任編輯周江川)
Solution to Tactics Maneuver Model Based of CGF on Quaternion and Vector
LI Bo1, PENG Yong2, WANG Hui2
(1.Military Teaching and Research Section, the Second Military Medical University,Shanghai 200433, China;2.Shijiazhuang Mechanized Infantry Academy, Shijiazhuang 050083, China)
This text set up the space movement and revolution model of military equipment for tactical simulation by using quaternion, and realized road maneuver, following maneuver by using vector method and realized the smooth turn of vehicle direction by using the slerp calculating method, which simplifies the mobile model implementation process and improves the fidelity of the model.
quaternion;vector;CGF;tactics maneuver
2016-05-03;
2016-05-16
李勃(1977—),男,博士,講師,主要從事作戰(zhàn)仿真與人工智能研究;彭勇(1976—),男,博士,講師,主要從事軍事運(yùn)籌與作戰(zhàn)效能評(píng)估研究。
10.11809/scbgxb2016.09.006
format:LI Bo, PENG Yong, WANG Hui.Solution to Tactics Maneuver Model Based of CGF on Quaternion and Vector[J].Journal of Ordnance Equipment Engineering,2016(9):24-27.
TP301
A
2096-2304(2016)09-0024-04
本文引用格式: 李勃,彭勇,王輝.一種基于四元數(shù)和向量法的CGF機(jī)動(dòng)模型實(shí)現(xiàn)[J].兵器裝備工程學(xué)報(bào),2016(9):24-27.