Skip to content

Latest commit

 

History

History
82 lines (51 loc) · 3.06 KB

File metadata and controls

82 lines (51 loc) · 3.06 KB

class-tracker

class-tracker is a C++ library that implements both an Extended Kalman Filter (EFK) and an Unscented Kalman Filter (UKF), based tracker.

The tracker only works on the position of the object (x,y) to predict not only the new position (x’,y’), but also the velocity v the yaw equation, and the yaw-rate equation. Hence, the state of EKF is:

equation

While the state transition adopted:

equation

It is important to know that the filter expects to receive data in meters and returns:

  • (x',y') in meters
  • v in m/s
  • equation in radians
  • equation in radians/second

Moreover, it is important to set the correct delta t and the wanted age factor when using the tracker as a library.

Dependencies

sudo apt-get install libeigen3-dev python3-matplotlib libpython3.6 

This library also depends upon:

Building this repo

git clone https://github.com/mive93/tracker_CLASS
cd class-tracker
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

Optionally

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. 
cmake -DCMAKE_BUILD_TYPE=Debug ..

Matplotlib can be activated (resp. deactivated) with the cmake option -DWITH_MATPLOTLIB=True (resp. -DWITH_MATPLOTLIB=False )

Running the demo

This repository offers a library to exploit the implemented filter, however, there is also a dummy example of the usage of the trackers given by the program tracker. Once the project has been built, it can just be run with:


./tracker

It exploits the file ../data/test_ll.txt in which in each line there is

  • frame number
  • timestamp
  • latitude (GPS)
  • longitude (GPS)

and it shows how to convert them into meters using the geodetic_converter.

Once run, it will show the ground-truth (noisy positions) in red and the output of the filter (the prediction of EKF of UKF) in green as in this picture:

example

Acknowledgements

This work has been supported by the EU H2020 project CLASS, contract #780622.