Npsnet: Flight Simulation Dynamic Modeling Using Quaternions
Npsnet: Flight Simulation Dynamic Modeling Using Quaternions
Npsnet: Flight Simulation Dynamic Modeling Using Quaternions
I. INTRODUCTION
The current state of the art in simulation technology has provided todays military with many valuable training experiences that could not have been obtained elsewhere and, as a result, has greatly increased survivability and readiness. From flight simulators, which allow a pilot to explore the edge of the flight envelope without endangering crew or multi-million dollar assets, to battlefield simulators, which allow entire fighting divisions to practice command and control without having to incur the enormous costs of running a full blown field exercise, computer simulation has become a way of doing business within the military.
Page 1 of 23
One simulation system designed by the Defense Advanced Research Projects Agency (DARPA) is the Simulation Networking system (SIMNET) [Thorpe,1987]. SIMNET is a networked battlefield simulator that allows multiple user interaction on the battlefield at many different levels. Vehicle simulators, such as tanks and aircraft connect to the network and become part of a three dimensional world. At the Naval Postgraduate School (NPS), an effort to develop a SIMNET type system based on commercially available, general purpose, graphic workstations, has been active for a number of years. This system, NPSNET, consists of Silicon Graphics workstations attached to a local area Ethernet [Zyda,et al.,1992]. Eventually, NPSNET will become a node on the SIMNET network. The speed of the computer platforms on which NPSNET now runs has increased significantly since its inception. It soon became evident that more realistic vehicle dynamics was desirable and would substantially improve system behavior. Therefore, this work is the result of the research done and the methodology used for providing this additional functionality to NPSNETs aircraft simulations. There are several issues to be addressed when incorporating an aerodynamic model into a computer simulation. The complexity of the aerodynamic model, which orientation model to use, and how aircraft data should be represented in the system are the critical issues and are center of focus in this work. Of primary importance is that the complexity of the model fit the objective of the simulation. A complete aerodynamic model that includes fully articulated control surfaces and airflow divergence patterns over the aircraft would seriously affect real time performance on any computer. Such models are usually computed in non-real time on super computers and are not appropriate for use on low cost graphics workstations. On the other hand, modeling the dynamics of an aircraft kinematically so that the aircrafts velocity and orientation are a linear result of control input, does not reproduce the nuances of aircraft motion and response that a user of a flight simulation would expect. The aerodynamic models complexity must provide as much realism as possible without reducing the frame rate below an acceptable level. The choice of orientation model considered is between the Euler angle or quaternion approach. Which one to use has been the subject of heated debate among computer scientists [Goldiez and Lin,1991]. Either model can be used to represent orientation, but, depending on the simulations objectives, one method has certain advantages over the other. It basically comes down to determining which approach provides the right tool for the job [Shoemake,1985]. Because each type of aircraft exhibits its own specific aerodynamics and handling characteristics, it is desirable to change these characteristics depending on the type aircraft simulated. One solution is to base the aerodynamic model on the aircrafts stability coefficients, inertial coefficients, and airframe specifications, all of which are available in most aerodynamic stability and control textbooks. Stability coefficients provide a very accurate model of aircraft flight behavior. However, care must be taken when modeling some of the newer generation fighters. To improve maneuverability, these aircraft have been designed aerodynamically neutral to unstable. Their stability coefficients reflect this instability.
Page 2 of 23
Page 3 of 23
Body Coordinates X
Aircraft location in world coordinates (feet) Aircraft velocity in world coordinates (ft/sec) Azimuth, Elevation, Roll in world coordinates (radians)
U, V, W P, Q, R V V U, V, W P, Q, R Fx, Fy, Fz L, M, N
Linear velocity along X, Y, and Z body axes (ft/sec) Angular velocity around X,Y, and Z body axes (rad/sec) Resultant velocity Vector U2 + V2 + W2 Wind velocity across tail of aircraft Linear acceleration (ft/sec2) Angular acceleration (rad/sec2) Forces acting on aircraft Moments about the X, Y, and Z axes Angle of attack[tan-1 (W/U)] Sideslip [tan-1 (V/U)]
Figure 2.3: Terms Defined within the Aircraft Body Coordinate System
Page 4 of 23
FX, U
L, P O M, Q N, R FY, V FZ,W
e a r
elevator deflection positive down (radians). A positive e produces a positive lift and a negative pitch moment. aileron deflection positive left (radians). A positive a produces a negative roll moment. positive nose left (radians).A positive r produces a positive sideforce and a negative yaw moment.
surface area of wing (ft2) wing span (ft) chord length (ft) weight (lbs) roll inertia (slug-ft2) pitch inertia (slug-ft2) yaw inertia (slug-ft2)
Control Input
MATH MODEL
Flight Simulation
Airframe Specs
Page 5 of 23
Stability derivatives, first used over a half-century ago, assume that all aerodynamic forces and moments can be expressed as a function of the instantaneous value of the perturbation variables [Nelson,1989]. The perturbation variables are the instantaneous changes from the reference conditions of translational velocities, angular velocities, control deflections, and their derivatives. For example, the term X/u is the stability derivative defining the change in X force with respect to the change in forward speed. This derivative can be expressed in terms of a non-dimensional coefficient CXu as follows:
X 1 = C Xu QS uo u
(3.1)
where
C Xu = C X ( u uo)
1 V2 2
(3.2)
Figure 3.2 lists the non-dimensional coefficients used in this model. These coefficients are generally broken down into three categories, lateral, longitudinal and control. The longitudinal coefficients represent forces effecting the longitudinal axes of the aircraft, while the lateral coefficients represent forces affecting the lateral axes of the aircraft. Non-dimensional coefficients, generated in actual aircraft testing, are available for most aircraft. By using these coefficients in combination with the dynamics equations, it is possible to build a general use flight simulator. Using the non-dimensional coefficients, lift, drag and sideforce are calculated as follows:
L' = D = C Lo + C L + C Q Q ( V + V ) 2 V2 S c c + C + C Le e L 2V 2V V 2 ( V + V ) 2 V2 S 2 V
C Do + C D + C De e V 2 S 2
S F = [ C Y + C Yr r ]
Once lift, drag and sideforce are calculated, these forces are translated into forces along the aircraft X, Y, and Z axes as shown in equations 3.6 through 3.8. The terms FAX, FAY and FAZ represent the resultant aerodynamic forces.
F AZ = L' cos D sin F AX = L' sin D cos S F sin F AY = S F cos
Page 6 of 23
Longitudinal Coefficients
C Lo C Do C L C D C Mo C M C LQ C MQ C L C
M
Reference Lift at zero angle of attack Reference Drag at zero angle of attack Lift curve slope Drag curve slope Pitch moment Pitch moment due to angle of attack Lift due to pitch rate Pitch moment due to pitch rate Lift due to angle of attack rate Pitch moment due to angle of attack rate Side force due to sideslip Dihedral effect Roll damping Roll due to yaw rate Weather cocking stability Rudder adverse yaw Yaw damping Lift due to elevator Drag due to elevator Pitch due to elevator Roll due to aileron
Lateral Coefficients
C Y C L C LP C LR C N C NP C NR
Control Coefficients
C Le C De C Me C La
Page 7 of 23
The aerodynamic moments represent the torque forces about the center of the aircraft and are determined in the following equations:
LA = MA = NA = C L + C LP P V2 Sb b b + C LR R + C La a + C Lr r 2 2V 2V ( V + V ) 2 V2 Sc c c + C + C Me e M 2V 2 2V V
C Mo + C M + C MQ Q C N + C NP P
V2 Sb b b + C NR R + C Na a + C Nr r 2V 2V 2
The forces and moments that result from the above calculations are added to other forces and moments at this time:
F X = F AX + F Thrust F Y = F AY F Z = F AZ L = L A + L Torque M = M A + M Thrust + M Gyro N = N A + N Thrust + N Gyro
Engine forces such thrust, torque and gyroscopic effect as well as environmental forces such as wind shear can have anywhere from a minor to significant effect on the forces and moments along all axes of the aircraft [Roskam, 1979]. However, in order to limit this complexity of the model, some simplifications are made. Engine thrust is limited to the X-axis only and no calculations are made for torque or gyroscopic effect since one of the authors experiences as a pilot, and reference to the relevant literature, indicates that these are second order effects for high performance aircraft. The total force equations are used to determine the linear acceleration of the aircraft [Nelson,1989]:
FX U = VR WQ g sin + m FY V = WP UR + g sin cos + m FZ W = UQ VP + g cos cos + m
The total moment equations are used to derive the equations for solving angular acceleration:
L = I XX P I XZ R I XZ PQ + ( I ZZ I YY ) RQ M = I YY Q + ( I XX I ZZ ) PR + I XZ ( P2 R2 ) N = I R I P + (I I ) PQ + I QR
ZZ XZ YY XX XZ
Page 8 of 23
(3.24) (3.25)
Therefore,
P = ( L'' I ZZ N' I XZ ) ( I XX I ZZ I 2 ) XZ 2 2 = (M (I Q XX I ZZ ) PR I XZ ( P R ) ) I YY R = ( N' I XX + L'' I XZ ) ( I XX I ZZ I 2 ) XZ
are the equations for angular acceleration. Linear and angular velocities are determined by numerically integrating the accelerations. The trapezoidal rule, sometimes referred to as the modified Euler method or the first order predictor - corrector method, is used. The general method for this integration technique is as follows [Press,et al.,1990]:
Pn 1 + Pn Pn = Pn 1 + dt 2
(3.29)
(4.1)
(4.2)
(4.3)
Page 9 of 23
Integrating the resultant velocity vector, now in world coordinates, by the time step of the program, a position update is obtained (Equation 4.4).
XW YW = ZW XW YW ZW
old old
UW + V W dt WW
(4.4)
old
V. METHODS OF ORIENTATION
The aerodynamic model generates rotational velocities relative to the fixed aircraft body coordinate system. But, just as position updates could only be determined after converting linear velocities into world coordinates, orientation updates require conversion of angular velocities in a similar manner. Three methods exist for defining the conversion of angular velocities to orientations in world coordinates, each having its own particular advantages and disadvantages [Goldiez,et al.,1991]. The most popular of these three methods is known as the Euler Method. Using a sequence of three angles, the Euler Method provides an intuitive description of aircraft attitude in world space[Rolfe,1986]. These angles consist of the familiar azimuth angle , the elevation angle , and the roll angle . The next method, which has become popular in recent years, is the Quaternion Method. Based on the unit sphere, the Quaternion Method provides an elegant method of defining rotations through the use of four parameters. Three of the coordinates describe the axis of rotation while the fourth is determined by the angle through which the rotation occurs [Shoemake, 1985]. The third method of defining orientation is the Direction Cosine Matrix. The direction cosines relate the aircraft body axis frame to the world reference frame. Direction cosines, as used in flight simulation, are generally determined from either Euler angles or quaternions and are utilized for transformations between axes. However, an alternative approach (not discussed in this paper) is to use incremental rotation matrices to update rotation matrices [Paul, 1981]. A disadvantage of this approach is that repeated incremental rotation matrix multiplication can result in drift requiring periodic renormalization of the direction cosine matrix [Funda et. al, 1990]. Each method has its own particular advantages and disadvantages and their use depends on the application and the implementation. Because NPSNET is a networked simulator, the orientation model used must not only render orientations in the world of the aircraft being piloted, but also of other aircraft in the world, either flying autonomously or piloted remotely across the network.
Page 10 of 23
these rotations is important. Euler chose the convention of rotating first about the z axis, then about the new x axis and finally about the new z axis. This convention exists in celestial mechanics, applied mechanics, and molecular and solid state physics. The convention used in quantum mechanics, nuclear physics, and particle physics, chooses to rotate first about the z, then the new y, and finally the new z [Burchfiel,1990]. The convention most often used in graphics is standard to aerospace engineers and has been proposed for use by SIMNET [UCF/IST 1990]. Using the right hand rule, rotations are made, first, about the z axis by the angle , then about the new y axis by angle , and finally about the new x axis by angle (Figure 6.1).
rotate in around Z Z X rotate in around Y rotate in around X Y X X Z Z
Figure 6.1: Euler Attitude Angle Rotation The range of values the attitude angles can take are:
= = 2 =
The aerodynamic model generates velocities in body coordinates. As seen in Equations 4.1-4.3, the linear body rates are transformed into world rates by application of the Euler angles. What follows is a method for obtaining these angles. There is a direct relationship between Euler attitude angles and the angular velocity of the aircraft around its body axes [Nelson,1989]. From this relationship, the rates of change of the attitude angles can be derived:
= P + Q sin tan + R cos tan = Q cos R sin = Q sin sec + R cos sec
Equations 6.1 through 6.3 are also known as the gimbal equations and are quite commonly used in simulation. However, a problem exists when pitch, , goes through the vertical. That is, where pitch becomes
+/-(/2). At that point and become undefined. Implementing a flight dynamics model capable of
complete vertical maneuvering, necessitates fixing the code so a division by zero doesnt occur.
Page 11 of 23
(7.1)
X, Y and Z represent vectors of any kind, such as force, velocity and acceleration. The inverse relationship, converting world coordinates to body coordinates is the transpose:
a1 a2 X Y = b1 b2 Z c1 c2 a3 XW b3 YW c3 ZW
(7.2)
In terms of the Euler attitude angles, the direction cosines for the above transformations are shown in Figure (7.1)
a 1 = cos cos a 2 = cos sin a 3 = sin b 1 = sin sin cos cos sin b 2 = sin sin sin + cos cos b 3 = sin cos c 1 = cos sin cos + sin sin c 2 = cos sin sin sin cos c 3 = cos cos
Figure 7.1: Direction Cosines in Terms of Euler Angles It should be noted that as there are 12 ways in which Euler angles can be defined, and, as a result, just as many ways to compute the direction cosines, although the values finally obtained are independent of the choice of Euler angles. The direction cosines are needed for transformations between coordinate systems, whether Euler angles or quaternions are used to specify orientation. (Although, as explained in [Funda et al, 1990], an alternative to matrix multiplication using direction cosines is to transform points by quaternion multiplication.) Direction cosines were already used for transforming linear velocities in body coordinates to world coordinates. By multiplying the transformation matrices of (Equations 4.1-4.3) into one matrix, the result would be identical to the transformation matrix of Equation 7.1. By using direction cosines, the need for determining the intermediate velocities is eliminated.
Page 12 of 23
Figure 8.1: Quaternion Orientation William Rowan Hamilton in 1843 as a result of a search for a generalization of complex numbers, quaternions provide an efficient means for updating orientations [Shoemake, 1985]. There are numerous ways to interpret the quaternion mathematically. They can be described as an algebraic quantity,
w + ix + jy + kz
(8.1)
as a point in three dimensional projective space (w, x, y, z), as a linear transformation of four space (Matrix), or as a scalar plus 3-vector: (8.2) The best notation depends on their intended use. The most intuitive approach is to view the quaternion as a scalar plus 3-vector (Equation 8.2). However, for algebraic manipulation,( Equation 8.1), generally becomes more useful. A common way of defining quaternion orientation is in combination with Eulers Theorem which states that the orientation of a rigid body can be described as a rotation about an axis v by rotation angle (Figure 8.1)[Goldstein,1980]. Constraining the axis vector v to be of unit magnitude, the quaternion becomes:
cos , v sin 2 2 ( w, v ) v = ix + jy + kz
(8.3)
(8.4)
Prior to defining how to rotate a rigid body using the unit quaternion, it is necessary to review some of the mathematics associated with the quaternion. For the purpose of a flight simulation, an understanding of the multiplication and the quaternion derivative is necessary. More comprehensive reviews are available in [Shoemake,1985], [Goldstein,1980], [Funda et al, 1991], and [Chou, 1992]. Most applications involving quaternions make use of the mathematics associated with their multiplication. Similar to the algebra associated with imaginary numbers, quaternions have three imaginary units, i, j, and k and are non-communitive under multiplication with
i2 = j2 = k2 = 1
(8.5)
Page 13 of 23
and
ij = k = ji jk = i = kj ki = j = ik
(8.6)
+ + +
i ( xw 1 + wx 1 zy 1 + yz 1 ) j ( yw 1 + zx 1 wy 1 + xz 1 ) k ( zw 1 + yx 1 xy 1 + wz 1 )
(8.7)
In vector notation:
QQ 1 = ( w, v ) ( w 1, v 1 ) = ww 1 v v 1, wv 1 + w 1 v + v v 1
(8.8)
The result of the above multiplication is a rotation from the orientation represented by Q to the new cumulative orientation of Q and Q1 in quaternion terms. Multiplication provides a method of orientation extrapolation that can be of benefit in a networked simulation. If Q1 represents a finite rotation based on an integral time step, and Q represents the cumulative rotation, then a repeated multiplying of Q by Q1 will result in a smooth rotation across a series of update frames [Burchfiel,1990]. One frame of axes (body coordinates) can be brought into coincidence with a reference frame by a single rotation D about a fixed axis making angles A, B, and C with a second reference frame (world coordinates). The four parameters A, B, C, and D, therefore, define the orientation of the aircraft body in world coordinates [Rolfe,1986]. The transformation matrix relating body to world coordinates using these four parameters is shown in Figure 8.2.
1 2 cos A cos Bsin 2 D 2 1 1 2 cos C sin D cos D 2 2 1 1 2sin 2 Dsin 2 B 2 1 2 cos B cos Csin 2 D 2 1 1 + 2 cos A sin D cos D 2 2 1 2 cos A cos Csin 2 D 2 1 1 + 2 cos B sin D cos D 2 2 1 2 cos B cos Csin 2 D 2 1 1 2 cos A cos D sin D 2 2 1 1 2sin 2 Csin 2 D 2
1 1 2sin 2 Asin 2 D 2
XW YW = ZW
1 2 cos A cos Bsin 2 D 2 1 1 + 2 cos C cos D sin D 2 2 1 2 cos A cos Csin 2 D 2 1 1 2 cos B sin D cos D 2 2
X Y Z
Figure 8.2: Four Parameter Method While this matrix involves four angles and appears to be more complex than the Euler angle matrix of Figure 7.1, it can be simplified by making the substitutions:
Page 14 of 23
(8.9)
X Y Z 2 ( q1 q3 q0 q2) 2 ( q2 q3 + q0 q1) q2 q2 q2 + q2 0 1 2 3
(8.10)
which represents the transform based on the unit quaternion. This result is used for determining position updates as well as orientation updates. In case the angles A, B, C, D are not initially known, values for q 1, q 2, q 3 andq 4 can be obtained by a straightforward process from the initial direction cosine matrix [Funda et al, 1991]. To update the resulting quaternion from angular accelerations, the following equations are used:
1 q0 = ( q1 P + q2 Q + q3 R) 2 1 q1 = ( q0 P + q2 R q3 Q) 2 1 q2 = ( q0 Q + q3 P q1 R) 2 1 q3 = ( q0 R + q1 Q q2 P) 2
(8.11)
Because of the constraint that the quaternion be of unit value and assuming an integration step size of less than 1, the above set of equations become:
q0 = q1 = 1 ( q P + q 2 Q + q 3 R ) + q 0 2 1
1 ( q P + q 2 R q 3 Q ) + q 1 2 0 1 q 2 = ( q 0 Q + q 3 P q 1 R ) + q 2 2 1 q 3 = ( q 0 R + q 1 Q q 2 P ) + q 3 2
(8.12)
(8.13)
Alternatively, Equation 8.11 can be integrated without drift correction providing that periodic normalization to unit magnitude is accomplished [Funda et al, 1990].
Page 15 of 23
Many of the auxiliary computations involved with a flight simulation require the use of Euler angles. It is to be emphasized, however, that knowledge of Euler angles is not required to obtain the direction cosines of Equation 8.10. In fact, Equation 8.11 can be used to update the direction cosine matrix without the calculation of any trigonometric functions at all. When needed, Euler angles can be obtained from the transformation matrix in (Equation 8.10) via the following method. Because pitch is limited to 2 , cos() is always positive. As a result, obtaining these angles is relatively simple. The elevation angle is derived from the transformation matrix, (Equation 7.1), as follows:
= asin ( a 3 )
(8.14)
To obtain the azimuth () angle it must be noted that, since cos() is always positive, the sign value of a2 always reflects the sign value of sin():
a 2 = cos sin
(8.15)
Therefore:
= acos a1 ( sign [ a 2 ] ) cos
(8.16)
c3 ( sign [ b 3 ] ) cos
(8.17)
Page 16 of 23
OPERATION DERIVATION CREATING ROTATION MATRIX TOTAL EULER ANGLE CONVERSION TOTAL CALCULATIONS
QUATERNION 42 32 74 64 138
Figure 9.1: Efficiency Comparison of Euler and Quaternion Methods Euler angles are needed for other aircraft functions, then quaternions become less efficient, depending on how often they need to be computed (Figure 9.1). The most significant advantage of quaternions is that no singularity exists when the elevation angle ()
passes through 2 . In the Euler Method, P and R both become undefined in this situation due to division
by zero. Techniques exist, however, for working around this singularity. Truncating values as 2 is approached will avoid this problem. If the elevation angle is truncated at values of 89.99 and 90.01 then a 0.02 degree rotation skip results [Goldiez,1991]. Depending on the speed of the program and the rotation rates desired, this may not be noticeable. However, in higher fidelity simulations, where a slow vertical maneuver is executed, it is a factor. Regardless of the significance of these effects, however, this approach has the disadvantage of introducing non-unique values for Euler angles. Numerous aircraft operate autonomously within the prototype simulation, changing very little in angular velocity. When this simulator is eventually networked to other workstations, quaternions will provide a way of forward interpolating rotations, thereby eliminating the need for the continued transmission of update packets. If updates are eventually needed, the quaternion rate can quickly and easily be converted into Euler angles. As the number of aircraft increase in the simulated world, the number of calculations necessary for orientation updates begins to multiply. Since only the currently piloted aircraft makes use of the Euler angles for additional simulation functions, calculating Euler angles is not necessary for all other aircraft in the simulation. Therefore, it becomes more efficient to utilize quaternions for defining these rotations, saving approximately 42 arithmetic operations per update per aircraft.
Page 17 of 23
Program Data
NonDynamic Model
Display Pipeline
Figure 10.1: Prototype Flight Simulator Basic Structure orientation in world space. Euler angles are then determined for the piloted aircraft and used to update cockpit displays. Autonomous aircraft do not require the calculation of Euler angles since they need not display instrument readings to a human pilot and therefore bypass this function.
(11.1)
Page 18 of 23
Flight Record 1 1 200.0 -950.0 300.0 0.0 0.0 0.0 3.0 1 Specification Record 4 1 27.5 260.0 10.8 546.0 8090.0 25900.0 29200.0 1300.0 0000.0 8000.0 0.03 0.3 0.28 3.45 0.0 0.72 0.36 0.0 -3.6 -0.38 -1.1 -0.5 -0.98 0.17 -0.12 -0.26 0.14 0.08 -0.105 0.25 0.022 -0.35 0.06 0.032 0.2618 -0.5236 0.5236
/id number/ /type aircraft/ /airspeed/ /posx/ /altitude/ /posz/ /heading/ /initial angle of bank/ /initial gforce/ /status:0-piloted,1-levelturn,2-g controlled turn/ /type aircraft-- A4/ /jet or prop jet:1 prop:0/ /b/ /S/ /c/ /m/ /Ix/ /Iy/ /Iz/ /Ixz/ /horsepower/ /mil thrust/ /CDo /CDa /CLo /CLa /CLq /CLda /CLde /CMo /CMq /CMa /CMda /CMde /CYb /CYdr /CLb /CLp /CLr /CLda /CLdr /CNb /CNp /CNr /CNda /CNdr /deflection limits of rud, ail, elevator (radians)/
Page 19 of 23
where rpm desired = throttle position x throttle gain dt = delta time = engine spool-up gain factor (inverse of time-constant) Since applications using this simulator include both jet and propeller aircraft, it was decided that allowances should be made for the differing characteristics of the two types of engines. Jet engines are generally rated in terms of thrust (lbs), while propellers are rated in terms of horsepower (ft-lbs/s) [Anderson, 1989]. Since the aerodynamic model uses thrust in terms of lbs, it can use the data for jets directly. However, propeller driven aircraft require the following conversion:
T = 550HP V 0
(11.2)
where
= propeller efficiency (usually around.8) HP = engine rated horsepower = density altitude ratio where o is the density at sea level 0
A normal aircraft stick exhibits two degrees of freedom, left-right for aileron control and back-forward for elevator control. Therefore, control inputs from the spaceball were limited to these directions. The maximum deflection of the control stick is information entered via the specification records. It is a simple procedure to read deflection data from the spaceball and linearly map it to a control deflection somewhere between +/- max obtainable deflection. Rudder deflection was not simulated since rudder control is not normally used in jet aircraft after takeoff.
Negative 33
Negative 25
aerodynamic model read aircraft velocity time step for aero model = timestep_factor * velocity for computed_time_step loop do aero calculations update aircraft state variables end loop exit aerodynamic model
XIV. Acknowledgments
This work was support by DARPA/ASTO, the Defense Modeling and Simulation Office, USA HQDA AI Center in the Pentagon, USA STRICOM, the National Science Foundation (Grant BCS-9109989), USA TRAC-Monterey, and the Naval Postgraduate School Direct Funding Program.
REFERENCES
Anderson, John D., Introduction to Flight, McGraw-Hill Publishing Company, New York, N.Y., 1989. Burchel, J., The Advantages of Using Quaternions Instead of Euler Angles for Representing Orientation, White Paper ASD-91-001, Third Workshop on Standard for the Interoperability of Defense Simulations, Orlando FL., August,1990. Chou, J. C. K., Quaternion Kinematics and Dynamic Differential Equations, IEEE Transactions on Robotics and Automation, Vol. 8, No. 1, February 1992, pp. 53-64. Funda, J., Taylor, R. H. and Paul, R. P., On Homogeneous Transforms, Quaternions, and Computational Efciency, IEEE Transactions on Robotics and Automation, Vol. 6, No. 3, June 1990, pp. 382-387. Goldiez, Brian and Lin, Kuo-Chi, The Orientation Representation in the Draft Military Standard for Distributed Interactive Simulation, AAI, University of Central Florida, Orlando, Florida, 1991.
Page 22 of 23
Goldstein, Herbert, Classical Mechanics, Second Ed., Addison-Wesley Publishing co.,Inc., Reading, MA.,1980. Mitchell, E.E., Rodgers, A.E., Quaternion parameters in the Simulation of a Spinning Rigid Body, Simulation, 18, No 6, 1965. Nelson, Robert C., Flight Stability and Automatic Control, McGraw-Hill Book Company, New York, New York, 1989. Paul, R. P. Robot Manipulators: Mathematics, Programming and Control, MIT Press, Cambridge, MA 1981. Press,W.H.,Flannery,B.P.,Teukolsky,S.A.,Vetterling,W.T., Numerical Recipes in C: the Art of Scientic Computing, Cambridge University Press, 1990. Rolfe, J. M., Staples, K. J., Flight Simulation, Cambridge University Press, 32 East 57th Street, New York, NY 10022, 1986. Roskam, J., Airplane Flight Dynamics and Automatic Flight Controls, Roskam Aviation and Engineering Corporation, 1979. Shoemake,K., Animating Rotation with Quaternion Curves, Computer Graphics,19(3), 245-254, SIGGRAPH Conference Proceedings, July 1985. Thorpe, Jack A., The New Technology of Large Scale Simulator Networking: Implications for Mastering the Art of Warghting, Proceedings of the Ninth Interservice Industry Training Systems Conference, November 1987. UCF/IST, Military Standard (DRAFT) for Protocol Data Units for Distributed Interactive Simulation. University of Central Florida Institute for Simulation and Training. June 1990. Zyda, Michael J., Pratt, David R., Monahan, James G. and Wilson, Kalin P., NPSNET: Constructing a 3D Virtual World, Proceedings of the 1992 Symposium on Interactive 3D Graphics. March, 1992.
Page 23 of 23