1.一種動感賽車游戲碰撞過程的運動模擬實現方法,其特征在于它包括:
ⅰ)碰撞參數求解算法:通過碰撞參數求解算法求出虛擬賽車發生碰撞后瞬時的位姿和運動學參數;
ⅱ)碰撞參數映射算法:依據虛擬賽車碰撞后瞬時的位姿和運動學參數以及游戲玩家自身參數建立功能轉換原理方程,求出虛擬賽車中游戲玩家所發生運動參數的最大角度,以及利用各自不同的映射系數將所述運動參數的最大角度映射到動感賽車游戲運動模擬器中各個運動機構中;
ⅲ)將動感賽車游戲運動模擬器中各個運動機構的最大運動角度傳輸給ARM處理器中的運動參數轉換模塊,求解出動感賽車游戲運動模擬器中各個運動機構的最大平動位移和平動線速度,以使ARM處理器中的PID控制模塊利用求出的運動學參數對動感賽車游戲運動模擬器中各個驅動電機的速度和正轉或反轉進行聯動控制。
3.根據權利要求1所述的動感賽車游戲碰撞過程的運動模擬實現方法,其特征在于所述碰撞參數求解算法具體包括:
根據動量守恒定理有:
m a v a 0 x + m b v b 0 x = m a v a x + m b v b x m a v a 0 y + m b v b 0 y = m a v a y + m b v b y - - - ( 1 ) ]]>
式中,ma、mb分別為本賽車a和相撞車b的質量,vax、vay、vbx、vby分別為兩車碰撞后速度沿x軸和y軸的分量,va0x、va0y、vb0x、vb0y分別指本賽車和相撞車碰撞前速度va0、vb0在沿x軸和y軸的分量;
根據動量矩定理有:
m a k a 2 ( w a - w a 0 ) = a x m a ( v a 0 x - v a x ) - a y m a ( v a 0 y - v a y ) m b k b 2 ( w b - w b 0 ) = b x m b ( v b 0 x - v b x ) - b y m b ( v b 0 y - v b y ) - - - ( 2 ) ]]>
式中,wa、wb分別為兩車碰撞后繞質心的角速度,wa0、wb0分別為兩車碰撞前繞質心的角速度,ka、kb分別為兩車回轉半徑,(ax,ay)、(bx,by)分別為兩賽車質心坐標;
聯立兩個方程組后,再引入切向碰撞恢復系數ex和法向碰撞恢復系數ey:
e x = ( a x w a - b x w b ) - ( v a x - v b x ) ( v a 0 x - v b 0 x ) - ( a x w a 0 - b x w b 0 ) e y = ( a y w a - b y w b ) - ( v a y - v b y ) ( v a 0 y - v b 0 y ) - ( a y w a 0 - b y w b 0 ) - - - ( 3 ) ]]>
由于兩虛擬賽車的碰撞過程為非完全彈性碰撞,所以0<ex,ey<1;根據前人的研究成果及相關實驗數據,建立如下的切向碰撞恢復系數ex和法向碰撞恢復系數ey:
e x = 0.0396 R a 2 - 0.4501 R a + 0.3066 e y = 0.5 v a 0 y ~ 3 v a 0 y - - - ( 4 ) ]]>
式中,Ra為廣義沖量比,其計算式為:
R a = σ a x σ a y m a 2 σ b x σ b y m b 2 m 0 v a 0 y + σ a x m a σ b x m b ( σ a y m a + σ b y m b ) v a 0 x σ a y m a σ b y m b ( σ a x m a + σ b x m b ) v a 0 y + σ a x σ a y m a 2 σ b x σ b y m b 2 m 0 v a 0 x - - - ( 5 ) ]]>
式中,m0是指碰撞后的質量系數,其值為:
根據式(4)~(5)可求出切向碰撞恢復系數ex和法向碰撞恢復系數ey,并聯合式(1)~(3)可得到兩虛擬賽車碰撞的動力學模型:
m a 0 0 m b 0 0 0 m a 0 0 m b 0 a x m a - a y m a m a k a 2 0 0 0 0 0 0 b x m b - b y m b m b k b 2 - 1 0 a x 1 0 - b x 0 - 1 - a y 0 1 b y v a x v a y w a v b x v b y w b = m a 0 0 m b 0 0 0 m a 0 0 m b 0 a x m a - a y m a m a k a 2 0 0 0 0 0 0 b x m b - b y m b m b k b 2 e x 0 - e x a x - e x 0 e x b x 0 e y e y a y 0 - e y - e y b y v a 0 x v a 0 y w a 0 v b 0 x v b 0 y w b 0 - - - ( 6 ) ]]>
由式(6)便可得到兩虛擬賽車發生碰撞后分別沿x軸和y軸的速度分量vax、vay、vbx、vby以及兩車碰撞后繞質心的角速度wa、wb(順時針為正,逆時針為負),進而可以得到本賽車沿其牽引方向(np正向)及其垂直方向(nr正向)的速度分量:
v a p = v a x s i n θ + v a y c o s θ v a r = v a x c o s θ - v a y s i n θ - - - ( 7 ) ]]>
式中,vap和var分別為本賽車碰撞后沿其牽引方向和垂直方向的運動速度,θ為y軸正向與虛擬賽車牽引方向(np正向)的夾角;
同理,碰撞前運動參數經過坐標轉換后,其計算為:
v a 0 p = v a 0 x s i n θ + v a 0 y c o s θ v a 0 r = v a 0 x c o s θ - v a 0 y s i n θ - - - ( 8 ) ]]>
式中,va0p和va0r分別為本賽車碰撞前沿其牽引方向和垂直方向的運動速度;
由式(6)~(7)可以得出本賽車碰撞后的俯仰運動參數vap、滾轉運動參數var和側擺運動參數wa,而通過這些運動學參數便可以模擬出游戲場景中兩虛擬賽車的碰撞過程。