Giter Site home page Giter Site logo

carnd-unscented-kalman-filter-p2's Introduction

Unscented Kalman Filter Project

Self-Driving Car Engineer Nanodegree Program


Overview

In this project an Unscented Kalman Filter has been employed to accurately track a moving pedestrian using sensor fusion. Sensor data from Lidar and Radar sensors are jointly utilised to update the belief state of the UKF. Internally the UKF maintains a probability distribution using a Constant Turn Rate and Velocity magnitude model, this allows accurate tracking of objects with non-linear movements - in this case a pedestrian.

In the CTRV model, the UKF maintains a state with not only the cartesian coordinates, but the velocity, yaw angle, as well as the accompanying yaw change rate. This allows the UKF to accurately track position, velocity and heading, which is highly desirable in noisy environments such as traffic scenarios where objects don't always move in straight lines.

In comparison to an Extended Kalman Filter, the UKF no longer requires taylor expansion within the measurement update step. Instead the UKF maintains a probability distribution using a pseudo point cloud called sigma points, centered around the mean, to narrow down the update possibilities. The new update rule is determined by these points using the state mean and corresponding probability distribution, and calculated by a weighted sum of the spread of these points.

The UKF makes a trade-off between complexity and motion accuracy, whereas the EKF is limited in its linear motion tracking, the UKF solves this using the abovementioned process model (CTRV) for tracking non-linear movements.

Structure

The Unscented Kalman Filter algorithm has been decoupled in such a way that will allow it to seamlessly handle linear and non-linear measurements. This is performed using invariant projection and dampening methods in the corresponding sensor class. The projections are defined for converting between cartesian space, required by the kalman filter, and the sensor measurement space.

Dependencies

Basic Build Instructions

  1. Clone this repo.
  2. Make a build directory: mkdir build && cd build
  3. Compile: cmake .. && make
  4. Run it: ./UnscentedKF path/to/input.txt path/to/output.txt. You can find some sample inputs in 'data/'.
    • eg. ./UnscentedKF ../data/sample-laser-radar-measurement-data-1.txt output.txt

Generating Additional Data

This is optional!

If you'd like to generate your own radar and lidar data, see the utilities repo for Matlab scripts that can generate additional data.

carnd-unscented-kalman-filter-p2's People

Contributors

cameronwp avatar bdschrisk avatar andrewpaster avatar

Watchers

 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.