# Event-Triggered-Diffusion-Kalman-Filters **Repository Path**: daitole/Event-Triggered-Diffusion-Kalman-Filters ## Basic Information - **Project Name**: Event-Triggered-Diffusion-Kalman-Filters - **Description**: Localization using event-triggered diffusion kalman filter based on UWB realdata - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Event-Triggered-Diffusion-Kalman-Filters Watch the video
[![Watch the video](https://img.youtube.com/vi/IcBoE3KHGwQ/0.jpg)](https://youtu.be/IcBoE3KHGwQ) This video is for localizing a Quadrotor in 9x10m lab while saving the resources by using an event-triggered algorithm. The data and the code structure can be used for testing other estimation and localization algorithms.The used algorithm is Event-Triggered Diffusion Kalman Filter. The blue rectangular is the Quadrotor real position using the Motion Capture system which is used to get the ground-truth location of the Quadrotor. The red plus is the estimated position of the Quadrotor. The ellipses are based on the diffusion error covariance matrix. The complete experimental setup is shown in our [paper](https://arxiv.org/pdf/1609.00881.pdf).

To regenerate the video, follow these steps:
1- run the main file "run_event_DEKF.m" which runs based on the real data at log ped01 in the logs folder
3- To save the movie, set
SAVEMOVIE = true; at to save the generated movie under the video folder.
4- This generates mat file (temp by default) under the cache folder.
5- run "plot_snapshot.m" to plot event-triggered localization results. This plots a figure close to the following figure Subject Pronouns

5- If you run "run_event_DEKF.m" for many thresholds and would like to get a figure showing the statiscs in Figure 7 and 8 in our [paper](https://arxiv.org/pdf/1609.00881.pdf), run Generate_reports.m over the the chosen thresholds then run statisticsAll.m.



The class folder has the following main classes
1- DataParserROS.m: parses the log files.
2- Measurement.m: each measurement in the log file would make an object of this class
3- Node.m: every node would make an object of this class
4- NetworkManager.m: distributes the measurements and the estimates between nodes
Under the logs folder, you can find one folder for each scenario. For example, "ped01 " contains:
1- mocap.cvs: The ground truth location of a flying quadrotor
2- ntbtiming.cvs: The timing frames sent between the nodes to calculate the relative distances.

If you use our code in academic work, please cite our [paper](https://arxiv.org/pdf/1609.00881.pdf): ``` @inproceedings{eventtriggered,     title={Event-Triggered Diffusion Kalman Filters},     author={Alanwar, Amr and Said, Hazem and Mehta, Ankur and Althoff, Matthias},     year={2020},     booktitle={Proceedings of the 11th ACM/IEEE International Conference on Cyber-Physical Systems}, } ``` The early version of this code was in the following work in collaboration with Dr. Paul Martin. ``` @inproceedings{alanwar2017d,   title={D-slats: Distributed simultaneous localization and time synchronization},   author={Alanwar, Amr and Ferraz, Henrique and Hsieh, Kevin and Thazhath, Rohit and Martin, Paul and Hespanha, Joao and Srivastava, Mani},   booktitle={Proceedings of the 18th ACM International Symposium on Mobile Ad Hoc Networking and Computing},   pages={14},   year={2017},   organization={ACM} } ```