{"id":24330838,"url":"https://github.com/andreimoraru123/2d-tracker","last_synced_at":"2025-10-15T14:39:26.862Z","repository":{"id":46174683,"uuid":"515151799","full_name":"AndreiMoraru123/2D-Tracker","owner":"AndreiMoraru123","description":"Linear, Extended \u0026 Unscented Kalman filter Fusion Models for 2D tracking","archived":false,"fork":false,"pushed_at":"2023-02-28T00:19:52.000Z","size":598,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T17:48:03.099Z","etag":null,"topics":["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"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndreiMoraru123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-18T11:15:59.000Z","updated_at":"2025-04-02T06:20:36.000Z","dependencies_parsed_at":"2024-12-01T07:35:23.122Z","dependency_job_id":null,"html_url":"https://github.com/AndreiMoraru123/2D-Tracker","commit_stats":null,"previous_names":["andreimoraru123/2d-tracker"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AndreiMoraru123/2D-Tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiMoraru123%2F2D-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiMoraru123%2F2D-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiMoraru123%2F2D-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiMoraru123%2F2D-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreiMoraru123","download_url":"https://codeload.github.com/AndreiMoraru123/2D-Tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiMoraru123%2F2D-Tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279085588,"owners_count":26100017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2025-01-18T01:14:39.722Z","updated_at":"2025-10-15T14:39:26.829Z","avatar_url":"https://github.com/AndreiMoraru123.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Can you outrun the ***Big Bad Kalman filter*** ?\n\nSome linear, extended and unscented movement tracking Kalman filters, with a fun twist\n\n[![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)  \n\n![image](https://user-images.githubusercontent.com/81184255/214925122-42760297-bee4-46b9-b61c-1654a0afe73a.png)\n\nRun `ObjectTracker.m` and make sure all files are in the same directory. Set your scenarios using the dropdowns.\n\nPress `Play` and enjoy :-)\n\nGo for `Developer Mode` if you want to generate your own custom data and play around with the trackers:\n\nModel Parameters                    |           Filter Tuning             |         Extra Sensor\n:-------------------------:|:-------------------------:|:-------------------------:\n![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)\n\n\u003e **Note** \n\u003e You can control the Seal if you own an Arduino + MPU IMU sensor suite, [this is how it works](https://github.com/AndreiMoraru123/SensorFusion).\n\n\u003e To achieve this, you may choose `Command Driven` instead of `Simulation` for the Running Mode.\n\n# Demos\n\n## ___Noob level___: defeat the linear Kalman filter\n#### The ___Shark___ can only chase you in a linear fashion\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/179504407-11330108-6403-45d3-b3c5-dfb5a9cc735d.gif\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### Test each of your runs:\n\n![image](https://user-images.githubusercontent.com/81184255/179503846-05b4d593-51a2-436c-98bc-dd6b6af85c88.png)\n\n![image](https://user-images.githubusercontent.com/81184255/179503891-f7fc30a7-4693-4df2-b92d-ecbdb5cace05.png)\n\n## ___Experienced___: defeat the extended Kalman filter\n#### The ___Shark___ is getting help from a ___Seagull___, who acts like a sensor for detecting your non-linear movements\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/179504427-cc6f5939-fa04-4080-9bfa-3db62bc611ab.gif\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### Measure your performances:\n\n![image](https://user-images.githubusercontent.com/81184255/179504843-6e0cc412-f72b-492e-80b9-5cf73b9396ee.png)\n\n![image](https://user-images.githubusercontent.com/81184255/179504868-80248a3e-bed6-4dbf-b2a3-17997683939a.png)\n\n\u003e **Note** \n\u003e You can trick the shark by moving fast in a non-linear manner \n\n\u003e This way you can make the filter diverge due to wrong partial derivative computation\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/179504661-1c1b513a-3f33-4f23-9dff-e86f4d63f3b3.gif\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n## ___Legendary___: defeat the unscented Kalman filter\n\n#### No more linear covariance transforms, the ___Shark___ has unlocked the ___Unscented Transform___ ability\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/179505178-7f32fcec-e6ec-4733-8cf6-e39c13a4b20b.gif\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### And see how far your can get:\n\n![image](https://user-images.githubusercontent.com/81184255/179505243-8ac327ce-0883-43a6-8bb7-53b349e5cd03.png)\n\n![image](https://user-images.githubusercontent.com/81184255/179505261-c53bde8e-b01c-4662-8f11-44aba3ce3f2b.png)\n\n### How this ___madness___ was designed:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/197408389-ee578ee3-afc0-4a37-9849-c39d1b0e351b.png\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### engineered:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/197408420-c3ce43d4-9f16-4144-a9f6-a521eda4e074.png\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### and programmed:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/204482601-fd1a1090-2fc8-4000-8904-ab36de3ed057.png\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### with the following workflow:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/81184255/214929046-249645dc-b574-4377-b19d-28b48a4baa23.png\" width=\"700\"/\u003e\n\u003c/p\u003e\n\n### and if you made it this far...\n\n#### here is the whole thing explained in detail (Vampire language):\n\n[OneFilterToRuleThemAll.pdf](https://github.com/AndreiMoraru123/ObjectTracking/files/9847220/OneFilterToRuleThemAll.pdf)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreimoraru123%2F2d-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreimoraru123%2F2d-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreimoraru123%2F2d-tracker/lists"}