An open API service indexing awesome lists of open source software.

https://github.com/andreimoraru123/2d-tracker

Linear, Extended & Unscented Kalman filter Fusion Models for 2D tracking
https://github.com/andreimoraru123/2d-tracker

2d animation bayesian-estimation control-theory extended-kalman-filter file-exchange funny-game kalman-filter kalman-tracking lqr matlab-gui matlab-oop object-tracking pole-placement romanian sensor-fusion state-space unscented-kalman-filter unscented-transformation vehicle-model

Last synced: 8 months ago
JSON representation

Linear, Extended & Unscented Kalman filter Fusion Models for 2D tracking

Awesome Lists containing this project

README

          

# Can you outrun the ***Big Bad Kalman filter*** ?

Some linear, extended and unscented movement tracking Kalman filters, with a fun twist

[![View Object Tracking via Sensor Fusion on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/119448-object-tracking-via-sensor-fusion)

![image](https://user-images.githubusercontent.com/81184255/214925122-42760297-bee4-46b9-b61c-1654a0afe73a.png)

Run `ObjectTracker.m` and make sure all files are in the same directory. Set your scenarios using the dropdowns.

Press `Play` and enjoy :-)

Go for `Developer Mode` if you want to generate your own custom data and play around with the trackers:

Model Parameters | Filter Tuning | Extra Sensor
:-------------------------:|:-------------------------:|:-------------------------:
![1](https://user-images.githubusercontent.com/81184255/214925891-7a3f8fea-b96b-4f73-a41d-222dbc60d5d3.jpg) | ![2](https://user-images.githubusercontent.com/81184255/214925912-268b9881-238d-4b7b-843f-9e194c28a961.jpg) | ![3](https://user-images.githubusercontent.com/81184255/214925928-aac2f461-0552-4b74-bc5c-a002825dee9f.jpg)

> **Note**
> You can control the Seal if you own an Arduino + MPU IMU sensor suite, [this is how it works](https://github.com/AndreiMoraru123/SensorFusion).

> To achieve this, you may choose `Command Driven` instead of `Simulation` for the Running Mode.

# Demos

## ___Noob level___: defeat the linear Kalman filter
#### The ___Shark___ can only chase you in a linear fashion



### Test each of your runs:

![image](https://user-images.githubusercontent.com/81184255/179503846-05b4d593-51a2-436c-98bc-dd6b6af85c88.png)

![image](https://user-images.githubusercontent.com/81184255/179503891-f7fc30a7-4693-4df2-b92d-ecbdb5cace05.png)

## ___Experienced___: defeat the extended Kalman filter
#### The ___Shark___ is getting help from a ___Seagull___, who acts like a sensor for detecting your non-linear movements



### Measure your performances:

![image](https://user-images.githubusercontent.com/81184255/179504843-6e0cc412-f72b-492e-80b9-5cf73b9396ee.png)

![image](https://user-images.githubusercontent.com/81184255/179504868-80248a3e-bed6-4dbf-b2a3-17997683939a.png)

> **Note**
> You can trick the shark by moving fast in a non-linear manner

> This way you can make the filter diverge due to wrong partial derivative computation



## ___Legendary___: defeat the unscented Kalman filter

#### No more linear covariance transforms, the ___Shark___ has unlocked the ___Unscented Transform___ ability



### And see how far your can get:

![image](https://user-images.githubusercontent.com/81184255/179505243-8ac327ce-0883-43a6-8bb7-53b349e5cd03.png)

![image](https://user-images.githubusercontent.com/81184255/179505261-c53bde8e-b01c-4662-8f11-44aba3ce3f2b.png)

### How this ___madness___ was designed:



### engineered:



### and programmed:



### with the following workflow:



### and if you made it this far...

#### here is the whole thing explained in detail (Vampire language):

[OneFilterToRuleThemAll.pdf](https://github.com/AndreiMoraru123/ObjectTracking/files/9847220/OneFilterToRuleThemAll.pdf)