ee.bradley.edu

ee.bradley.edu

GPS + Inertial Sensor Fusion Aleksey Lykov, William Tarpley, Anton Volkov May 6, 2014 1 Presentation Overview

Introduction Theory Project Work Results Conclusion Questions 2 Introduction Project Overview

o Low Cost Navigation o Survivable when GPS is intermittent Applications 3 I2C

I2C Serial/UART System Hardware Block Diagram 4 I2C I2C Serial/UART

System Hardware Block Diagram 5 I2C I2C Serial/UART System Hardware Block Diagram 6

I2C I2C Serial/UART System Hardware Block Diagram 7 I2C I2C

Serial/UART System Hardware Block Diagram 8 GPS Receiver Barometer Raspberry Pi IMU GPS Antenna PB and LED

System Photo 9 Introduction Project Overview Applications 10 Theory How the System Works Sensor Fusion

Kalman Filtering 11 Original System Signal Diagram 12 Theory How the System Works Sensor Fusion Kalman Filtering Source: Ruhr University

13 Theory How the System Works Sensor Fusion Kalman Filtering [1] Source: University of North Carolina 14

Specifications: After 60 seconds without GPS, error within 5% or 1 meter of true distance With GPS, less than 5% error from true distance traveled Acceleration data taken at a minimum of 100 Hz GPS data taken at a minimum of

1 Hz when GPS signal present Operate without lapses in data for a minimum of 2 hours on battery Implement an onboard Kalman filter for acceleration correction Correct INS measurements with Save all Accel and GPS data to GPS file Start data acquisition within 30

s Accel FS: 2g, 4g, 8g, or 16g Alert user to GPS loss Gyro FS: 250/s Reacquire GPS signal within 30 Implement real-time display of System Requirements s in unobstructed environment

displacement on LCD 15 Project Work Interfacing External Sensors Multithreaded Programming MATLAB Post-Processing Source: Bit-Tech.net 16 Source: Sparkfun

InvenSense MPU-9150 9-DOF IMU 17 Velocity and Position via Direct Integration 18 Source: Adafruit Bosch Sensortec BMP 180 Barometer 19

Source: Sparkfun SkyTraq Venus638FLPx GPS receiver 20 Project Work Interfacing External Sensors Multithreaded Programming MATLAB Post-Processing 21

Main Thread Main commands all threads to start/stop and records start time INS Thread GPS Thread BAR Thread Sensor threads save timestamped data for PROC Thread Shared Memory The data is read, processed,

and saved to a buffer PROC Thread Once user stops data acquisition the string buffer is written to file Output File Multithreaded Software Block Diagram 22 INS GPS X-Y

Displacement Screen Shot of Output File GPS BAR Output from Concurrent Data Acquisition

23 Project Work Interfacing External Sensors Multithreaded Programming MATLAB Post-Processing 24 Main Function Parse Text File(s)

Manipulate Data (Filtering, Unit Conversions) Perform Integration + Sensor Fusion Plot Data MATLAB Post-Processing Diagram and Results

25 Project Timeline (Original Plan in Darker Blue) 26 Specifications: After 60 seconds without GPS, error within 5% or 1 meter of true distance

With GPS, less than 5% error from true distance traveled Acceleration data taken at a minimum of 100 Hz GPS data taken at a minimum of 1 Hz when GPS signal present Operate without lapses in data for a minimum of 2 hours on battery

Implement an onboard Kalman filter for acceleration correction Correct INS measurements with Save all Accel and GPS data to GPS file Start data acquisition within 30 s Accel FS: 2g, 4g, 8g, or 16g Alert user to GPS loss

Gyro FS: 250/s Reacquire GPS signal within 30 Implement real-time display of System Specifications s in anDesired unobstructed displacement on LCD environment 27 Results

Testing and Data Acquisition Current System Specifications 28 Result of Accel data fused with GPS data 29a Simulated 30 second loss of GPS signal

29b 1 Foot Square Displacement Test (Repeated) 30 0.04 m/s2 Y offset when stationary X expected to be 0 m/s2 entire run

Y-Axis Acceleration, 0.84m Displacement Test 31 Attitude Kalman filtering possible at all times (Compass correcting Gyro) Tested code[5] on Raspberry Pi, <20% CPU usage Accurate heading accurate acceleration rotation

Acceleration Kalman filtering possible when GPS is available However, when GPS is unavailable: No way to correct the X and Y inertial measurements System relies on MEMS acceleration readings alone Kalman Filtering Discussion 32 Results Testing and Data Acquisition

Current System Specifications 33 Specification Final Result Accelerometer/Gyroscope Rate 100 Hz (scalable up to 1 kHz) GPS Rate

1 Hz (scalable up to 20 Hz) Barometer Rate 1 Hz (scalable up to 100 Hz) Time to Acquire GPS Lock 3-4 Minutes from Cold Start 30 Seconds to Reacquire Lock Program Structure

C++, 5 Threads (Main, 3 Sensor Threads, Post-Processing) Data Log Storage Text file on SD card. Fill rate: ~539 kB/min Post-Processing GPS displacement/velocity: onboard (<17% CPU usage)

Sensor fusion/integration: MATLAB [3] [2] [4] Final System Specifications 34 System Timestamps

Accelerometer and Gyroscope Navigation Computer GPS Displacement Calculation Velocity

Integration Position Integration Sensor Fusion Algorithm Velocity Calculation Currently Done Onboard Currently Done Offboard

Final System Signal Diagram 35 Conclusion Project Outcomes o Reliable data acquisition platform for navigation o

Inertial MEMS sensors found to be unsuitable for indoor navigation via double integration of accel data o Raspberry Pi confirmed to support both data acquisition and onboard post-processing Future Project Potential 36

Conclusion Project Outcomes Future Project Potential Acknowledgements 37 positioning: Pedometer algorithm (pedestrian application) Rotary Encoder (for wheeled robot application) 3D Camera

Pseudolite / Differential GPS antenna (indoor GPS) Data acquisition program has been ported to Python and tested on the BeagleBone Black The BeagleBone Black is similar but more versatile Passing on Python code may be easier Enables direct interfacing of analog accelerometers via several analog-to-digital converter inputs

Future Project Potential 38 Conclusion Project Outcomes Future Project Potential Acknowledgements 39 Questions?

References [1] D. H. Titterton, and J. L. Weston. Strapdown Inertial Navigation Technology. Stevenage: Institution of Electrical Engineers, 2004. [2] GPS Datasheet: https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/GPS/Ve nus/638/doc/Venus638FLPx_DS_v07.pdf [3] MPU-9150 Datasheet: http://www.invensense.com/mems/gyro/documents/PS-MPU9150A-00v4_3.pdf [4] BMP180 Datasheet: http://www.adafruit.com/datasheets/BSTBMP180-DS000-09.pdf [5] RTIMULib (Kalman-filtered quaternion code): https://github.com/richards-tech/RTIMULib 40

Testing Rigor Two additional MPU-9150 units tested MPU-9150 tested at 100, 50, 25, and 20 Hz Over 60 data samples taken across 24 major code revisions q1 Cost Comparision Source:

A Comparative Evaluation of Low-Cost IMUs for Unmanned Autonomous Systems MPU9150 Datasheet Kalman Filter Specifics RTIMULib code from richards-tech 4 Kalman filter states (4-D quaternion) Corrected by pose data from accelerometer and magnetometer Output is Kalman-filtered Euler pose or quaternion q2

Rotation of Acceleration Data Quaternion: Attitude representation o o Determined by Gyroscope yaw, pitch, and roll Can be used to quickly rotate a vector in 3D space Rotation of Accel vector using a Quaternion: Pout = Q * Pin * conj(Q)

Where Pin = [ 0 , AX , AY , AZ ] Q = [QW, QX, QY, QZ] q3 Post-Processing Methods Filter Noise o o Take idle period and find min/max for each axis

Remove any value +/- this sum Remove Stationary Bias o o Find shifted noise floor (mean stationary accel) Subtract average value from shift Remove Bias during Motion o o

All points between shifted noise floors are slopes q4 Post Processing Filtering q5 Post Processing Filtering

q6 Post Processing Filtering q7 Differential GPS Coverage Source: United States Coast Guard Navigation Center

q8

Recently Viewed Presentations

  • Strategic Alternatives - Stanford University

    Strategic Alternatives - Stanford University

    recall consequences and metamemory antecedents obtained (10yo but not for 8yo) capacity of strategic subjects (greater for 10yo than 8yo) Methodology 192 German children (50/50, grades 2&4), from 3 public elementary schools Distal specific metamemory assessed by modified version of...
  • Distributed Algorithms Simulator - BGU

    Distributed Algorithms Simulator - BGU

    Times New Roman Times New Roman (Hebrew) Book Antiqua Comic Sans MS Guttman Yad-Brush עיצוב ברירת מחדל MS Organization Chart 2.0 Microsoft Clip Gallery Bitmap Image Adobe Photoshop Image Microsoft Photo Editor 3.0 Photo Distributed Algorithms Simulator ללא כותרת שקופית...
  • U.S. Department of Energy&#x27;s Office of Science

    U.S. Department of Energy's Office of Science

    Review Committee for the. LHC ATLAS Detector. ... Penny. 8:45 a.m. Questions. Office of the Secretary. Dr. Ernest J. Moniz ... Under Secretary . for Nuclear . Security. Neile L. Miller (Acting) Under Secretary for Nuclear Security *The Deputy Secretary...
  • Neoclassical Realists and their Critics

    Neoclassical Realists and their Critics

    Defensive and neoclassical realists do not adhere to all these premises. Instead, they tend to accept only the first two. These tend to argue that they are realist, but are expanding or adding to realism. They are in this sense...
  • www.hanover.k12.in.us

    www.hanover.k12.in.us

    On the front of your card, list your top ten novels/stories. Rank them from one to ten. On the back of your card, list your five favorite Global Studies Units.
  • C++ Operators

    C++ Operators

    Overloading Arithmetic Operators Define: operator+, operator-, operator*, and operator/ in terms of : operator+=, operator-=, operator*=, and operator/= Remember the binary operator model: operators as class members: [email protected] [email protected](y) operators as global functions: [email protected] operator(x,y) Insertion The insertion and extraction...
  • WORKERS&#x27; COMPENSATION for STATE AGENCIES

    WORKERS' COMPENSATION for STATE AGENCIES

    Workers' compensation coverage is for anyone employed in the . State of Louisiana who is injured on the job. Workers' compensation coverage begins immediately. Covered accidents must arise out of employment. Covered accidents must occur during course and scope of...
  • IT Service Management

    IT Service Management

    Demand Management Ensuring demand for IT services matches the capacity Service Design Service Catalog Management Maintain accurate information on all operational services Service Level Management Negotiate and document service targets with customers Capacity Management Ensure cost-justifiable capacity exists and is...