Attitude Determination - Using GPS Table of Contents • Definition of Attitude • Attitude and GPS • Attitude Representations • Least Squares Filter • Kalman Filter • Other Filters • The AAU Testbed • Results • Conclusion 20/12-2000 (MJ) Danish GPS Center 2 What is Attitude? Z Orientation of a coordinate system (u,v,w) with respect to some reference system (x,y,z) V U W Y X 20/12-2000 (MJ) Danish GPS Center 3 When is Attitude information needed? • Controlling an Aircraft, Boat or Automobile • Onboard Satellites • Pointing of Instruments • Pointing of Weapons • Entertainment industri (VR) • Etc... 20/12-2000 (MJ) Danish GPS Center 4 Attitude sensors Currently used sensors include: • Gyroscopes • Rate gyros (+integration) • Star trackers • Sun sensors • Magnetometers • GPS 20/12-2000 (MJ) Danish GPS Center 5 Advantages of GPS • Adding new functionality to existing equipment • No cost increase • No weight increase • No moving parts (solid-state) • Measures the absolute attitude Disadvantages • Mediocre accuracy (0.1 - 1º RMS error) • Low bandwidth (5-10 Hz maximum) • Requires direct view of satellites 20/12-2000 (MJ) Danish GPS Center 6 Interferometric Principle Carrier Wave (from GPS satellite) Integer Component Master Antenna k Fractional Component, Baseline, b(3x1) Slave Antenna e(3x1) Unit Vector to GPS Satellite 20/12-2000 (MJ) Danish GPS Center 7 Interferometric Principle Measurement equation: The full phase difference is the projection of the baseline vector onto the LOS vector: 20/12-2000 (MJ) Danish GPS Center 8 Attitude Matrix Z 9 parameters needed: V U W Y X 20/12-2000 (MJ) When (x,y,z) is a reference system: Danish GPS Center 9 Properties of “A” “A” rotates a vector from the reference system to the body system The transpose of “A” rotates in the opposite direction (back again) 20/12-2000 (MJ) Danish GPS Center 10 Properties of “A” Rotation does not change the size of the vectors: Every rotation has a rotation-axis (and a rotationangle) The rotation-angle is the eigenvalue of “A” 20/12-2000 (MJ) Danish GPS Center 11 Euler sequences A sequence of rotations by the angles (,,) about the coordinate axes of the reference system Single axis: Multiple axes: 20/12-2000 (MJ) Danish GPS Center 12 Quaternions A quaternion consists of four composants Where i,j and k are hyperimaginary numbers 20/12-2000 (MJ) Danish GPS Center 13 Quaternions A quaternion can be thought of as a 4 dimensional vector with unit length: 20/12-2000 (MJ) Danish GPS Center 14 Quaternions Quaternions represent attitude as a rotation-axis and a rotation-angle 20/12-2000 (MJ) Danish GPS Center 15 Quaternions Quaternions can be multiplied using the special operator defined as: 20/12-2000 (MJ) Danish GPS Center 16 Quaternions The attitude matrix can be formed from the quaternion as: Where 20/12-2000 (MJ) Danish GPS Center 17 Least Squares Solution Including attitude information into the measurement equation Linearization of the attitude matrix 20/12-2000 (MJ) Danish GPS Center 18 Least Squares Solution Forming the phase residual 20/12-2000 (MJ) Danish GPS Center 19 Least Squares Solution 20/12-2000 (MJ) Danish GPS Center 20 Least Squares Solution Estimate update 20/12-2000 (MJ) Danish GPS Center 21 Extended Kalman Filter A Kalman filter consists of a model equation and a measurent equation 20/12-2000 (MJ) Danish GPS Center 22 Extended Kalman Filter And their linearized counterparts…. And 20/12-2000 (MJ) Danish GPS Center 23 Extended Kalman Filter Algorithm x(tk-), P(tk-) z(tk) Estimate Update Estimate of x(tk), P(tk) x(tk+), P(tk+) k=k+1 Time Propagation x(tk+1-), P(tk+1-) 20/12-2000 (MJ) Danish GPS Center 24 Extended Kalman Filter Tuning of the filter Noise variance determined experimentally 20/12-2000 (MJ) Danish GPS Center 25 Extended Kalman Filter Tuning of the filter Noise variance determined by ‘trial-and-error’ 20/12-2000 (MJ) Danish GPS Center 26 Extended Kalman Filter Determining the system model N 20/12-2000 (MJ) Dynamic model Danish GPS Center Kinematic model q 27 Other Filters Raw phase measurements Non-iterative Iterative Integer resolution Extended phase measurements Bar-Itzhack 2 Geometric Descent Euler-q Bar-Itzhack Least Squares Attitude Determination Cohen Vector estimate ALLEGRO Vector Determination Kalman filter Corrected phase measurements New Algorithm Line bias calibration Attitude estimate 20/12-2000 (MJ) Danish GPS Center 28 Testbed Controller box LON netw ork Labtop PC Motor commands RS232 Encoder readings Antenna array GPS receiver Surveyor platform 20/12-2000 (MJ) Danish GPS Center 29 Software Start Load simulated attitude angles.txt Start User Interface + Initialize Testbed Proces 1 Proces 2 Proces 3 Store phases and LOS vectors from receiver in file Store angle-values from encoders in file Send angle commands to LON nodes GPS receiver 20/12-2000 (MJ) phase.out los.out Stop angles.out LON nodes Danish GPS Center 30 Motor Control 20/12-2000 (MJ) Danish GPS Center 31 Angle of Antenna Array Motor Angles 200 150 100 Angle [degrees] 50 0 -50 -100 -150 -200 20/12-2000 (MJ) 0 50 100 150 200 250 300 Time [seconds] 350 400 450 500 Danish GPS Center 32 Local Horizontal System 20/12-2000 (MJ) Danish GPS Center 33 Results Based on actual and simulated data, the following performance parameters were evaluated • Accuracy • Computational efficiency • Ability to converge 20/12-2000 (MJ) Danish GPS Center 34 Accuracy 20/12-2000 (MJ) Danish GPS Center 35 Speed Analysis with three baselines 4 6 x 10 Kalman filter w. bias est. Kalman filter Geometric Descent Bar Itzhack 2 5 4 Number of Floating Point Operations 3 2 1 0 2 3 4 5 6 5 6 3 5 x 10 4 3 ALLEGRO New Algorithm + Euler-q New Algorithm + SVD Single-point Cohen Bar Itzhack + SVD 2 1 0 2 3 20/12-2000 (MJ) 4 Number of satellites Speed Danish GPS Center 36 Kalman Filter Single-point Algorithm 6000 6000 Convergence = 100% Average = 5.75 4000 3000 2000 Number of baselines = 3 Number of Samples Number of Samples Number of baselines = 3 5000 1000 0 5000 3000 2000 1000 0 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) ALLEGRO Algorithm 5000 Number of baselines = 3 Convergence = 100% Average = 4.56 4000 3000 2000 1000 0 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) Geometric Descent Algorithm 6000 Number of Samples Number of Samples 6000 Convergence = 100% Average = 4.25 4000 5000 Number of baselines = 3 Convergence = 100% Average = 5.33 4000 3000 2000 1000 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) 20/12-2000 (MJ) 0 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) Convergence Danish GPS Center 37 Kalman Filter Single-point Algorithm 6000 6000 Convergence = 96.61% Average = 7.87 4000 3000 2000 1000 0 Number of Samples 5000 Number of baselines = 2 Convergence = 69.75% Average = 4.76 4000 3000 2000 1000 0 5000 Convergence = 69.34% Average = 4.64 4000 3000 2000 1000 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) ALLEGRO Algorithm 6000 Number of baselines = 2 Number of Samples Number of Samples Number of baselines = 2 5000 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) 20/12-2000 (MJ) 0 1 2 3 4 5 6 7 8 9 1011 1213 1415 Convergence Time (Samples) Convergence Danish GPS Center 38 Conclusion • Kalman filter is by far most accurate, but also computationally very heavy • Single-point (LSQ) offers good accuracy + high speed • Vector matching algorithms has the lowest accuracy but does not suffer from convergence problems • Performance depend on satellite constellation • Results were affected by mechanical problems with levelling of the testbed 20/12-2000 (MJ) Danish GPS Center 39