Git Product home page Git Product logo

kalmanfilter-vehicle-gnss-ins's Introduction

KalmanFilter-Vehicle-GNSS-INS

project is about the determination of the trajectory of a moving platform by using a Kalman filter. For this purpose a kinematic multi sensor system (MSS) is used, which is equipped with three fiber-optic gyroscopes and three servo accelerometers. Additionally, the MSS contains an accurate RTK-GNSS. The system is adapted to a trolley, which can be pushed by a human being, however, it is also possible to adapt the system to a car or another moving vehicle. During the exercise real measurements are recorded at the Campus Poppelsdorf (University of Bonn) with the system. The goal is to determine the trajectory of the trolley via Kalman filtering in 2D by using a simplified motion model (constant accelerations, constant angular rates, motion only possible along the x-axis of the body frame) as well as the observations of the IMU (i. e. accelerations and angular rates) and the GNSS receiver (2D positions).

trolley

Task Description

Determine of the trajectory of a moving platform by using a Kalman filter combining the prediction of the system model and the measurements of GPS, the accelerometer and the gyroscope

Idea

Kalman filter is an application of Bayesian estimation technique. It obtains optimal estimates using the deterministic and stochastic properties of the system model and measurements to execute recursive state estimation. A recursive algorithm: The current estimate is updated by using the previous best estimates as inputs System model provides a prediction of the current state Measurements are used to correct the predicted state

kf

he predicted result and the measurements are combined by assigning weights to the prediction and the measurements The new estimate is the weighted mean of the predicted state and the measurements. Combination of these two independent estimates of a particular variable to get the mean value is the core of the Kalman filtering process.

Requirements of Kalman Filter

• System model linear in the previous state and the control parameters.

• Measurement model linear in current state In the case of extended Kalman Filter, the requirement on linearity on the system model and the measurement model may be relaxed. An additional requirement: Linearise the non-linear system model and/or the non-linear measurement model

kfg

Input parameters which need to be predefined:

1

Parameters which need to be predefined for the algorithm:

2

Two key steps:

  1. Prediction stage
  2. Correction stage
3

Prediction stage

4

Correction stage

5

Influence of the predefined stochastic settings

  • Kalman gain assigns the weights to the prediction and the measurements.
  • The criteria for assigning the weights is the level of precision.
  • This is achieved by comparing the noise matrices R and Q in the two steps.
  • Visualise R and Q as scalars.
  • Big R but small Q implies the prediction is not precise but the measurements are.
  • High weight on Q but small weight on R

Kalman Filter (a real-time algorithm)

  • Number of iterations: n where n is the total number of time steps we set for the inputs
  • Runtime~O(n)
  • Total runtime does not grow faster with the input size
  • The runtime of each of the later steps remains bounded
  • Its Possible for the inputs and outputs to be processed simultaneously

Extended Kalman filter

  • Relax the condition on the linearity of the motion model and the sensor model
  • Requires the application of linearisation of the non-linear models for the update of the covariance matrixes
  • The rest is similar to Kalman filter
6

PipeLine

ExtendedKF

Example: Vehicle 2D motion model

Prediction Stage:

Model does not match reality...

  • Measurements have high precisions — Low variance
  • BUT inaccurate — with large systematic bias
  • Kalman filter assigns weight to different stages based on their relative levels of precision
  • The output state will deviate significantly from the true state
  • Because we put a lot of weight on the wrong model

Measurement model

Types of Measurements:

  • GPS measurements of the position
  • Non-gravitational acceleration/specific force measurements with the accelerometer
  • Angular rate measurements with the gyroscope Put these in a measurement vector z

Correction Stage

Assume the true state is known, the measurement and the true state are related by

As the measurement model is linear,

Filter Tuning

Turning process adjusts a trade-off between trusting to predictions and measurements.

  • This process has to be done through adjusting measurement and system noise models R and Q.
  • In most of the cases R cold be set based on sensor specifications. ( it better to assume a bit more than values in datasheets )
  • elements of Q have to set in an stochastic form ( they should be more than one ), depending on how much you think, the system model is precis or in could be affected by misalignment respect to real measurements and error sources.

Results

Comparison INS vs StrapDown

  • The results from the strapdown integration starts to deviate from the measurements by GPS positioning very quickly.
  • The strapdown integration was unable to track the trajectory accurately when there is a sharp turn.
  • Despite some observable deviations, the computation by Kalman filter agrees with the GPS measurements very well.
  • Manages to follow the trajectory without losing its accuracy in the event of a sharp turn.

Why combine the two?

  • Predictions based on the motion model can be output at extremely small time intervals -However, the system error accumulates and the updated state loses its precision very quickly
  • Measurements does not suffer from this growth of error. However, the measurements can only be made in much larger time intervals
  • By combining the prediction of the motion model and the measurements, we can have data concerning the state at a very small time interval while limiting the growth in error

Happy?

<script data-name="BMC-Widget" src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js" data-id="vUgWEaC" data-description="I like Coffee!!" data-message="Thank you for visiting. You can now buy me a coffee!" data-color="#79D6B5" data-position="left" data-x_margin="18" data-y_margin="18"></script>

kalmanfilter-vehicle-gnss-ins's People

Contributors

alirezaahmadi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.