{"id":14992220,"url":"https://github.com/hortovanyi/Unscented-Kalman-Filter-Rust","last_synced_at":"2025-09-25T14:31:03.075Z","repository":{"id":70014931,"uuid":"237331858","full_name":"hortovanyi/Unscented-Kalman-Filter-Rust","owner":"hortovanyi","description":"UKF written in Rust based on the C++ UKF from the Udacity SD Car Nanodegree","archived":false,"fork":false,"pushed_at":"2022-04-26T03:30:03.000Z","size":282,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-24T16:09:48.335Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hortovanyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-01-31T00:19:36.000Z","updated_at":"2023-12-25T08:14:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a6d3635-c39f-4bd1-bd41-a3e01c76f7b4","html_url":"https://github.com/hortovanyi/Unscented-Kalman-Filter-Rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hortovanyi%2FUnscented-Kalman-Filter-Rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hortovanyi%2FUnscented-Kalman-Filter-Rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hortovanyi%2FUnscented-Kalman-Filter-Rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hortovanyi%2FUnscented-Kalman-Filter-Rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hortovanyi","download_url":"https://codeload.github.com/hortovanyi/Unscented-Kalman-Filter-Rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234200175,"owners_count":18795139,"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","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":[],"created_at":"2024-09-24T15:00:52.415Z","updated_at":"2025-09-25T14:30:57.703Z","avatar_url":"https://github.com/hortovanyi.png","language":"Rust","funding_links":[],"categories":["Signal Processing"],"sub_categories":[],"readme":"# Unscented-Kalman-Filter-Rust\nUKF written in Rust based on the C++ UKF from the Udacity SD Car Nanodegree. The C++ project code this project is based on can be found at https://github.com/hortovanyi/CarND-Unscented-Kalman-Filter-Project.\n\nTo build and run this project use \n```\ncargo run -- ./data/sample-laser-radar-measurement-data-1.txt output.txt -vv\n``` \nin the project root directory after cloning it.\n\nThe above command when run should produce a log with the following output \n```\n Feb 21 09:31:35.370 DEBG slog::Level::TRACE\n Feb 21 09:31:35.371 TRCE app_setup\n Feb 21 09:31:35.371 WARN output_path: output.txt will be overwritten\n Feb 21 09:31:35.371 DEBG opening input for read: `./data/sample-laser-radar-measurement-data-1.txt`\n Feb 21 09:31:35.371 DEBG creating output: `output.txt`\n Feb 21 09:31:35.371 TRCE app_setup_complete\n Feb 21 09:31:35.371 INFO processing_started\n Feb 21 09:31:35.371 TRCE run_ukf start\n Feb 21 09:31:35.372 INFO loading measurement data ....\n Feb 21 09:31:35.395 TRCE creating ukf object\n Feb 21 09:31:35.395 INFO processing measurement data ....\n Feb 21 09:31:35.395 TRCE init_state_radar x:Matrix { data: [8.462918745489562, 0.24346236596519058, -3.04035, 0.0287602, 0.0] }\n Feb 21 09:31:35.395 DEBG init x:\n  ┌                     ┐\n  │   8.462918745489562 │\n  │ 0.24346236596519058 │\n  │            -3.04035 │\n  │           0.0287602 │\n  │                   0 │\n  └                     ┘\n\n\n Feb 21 09:31:35.395 DEBG init P:\n  ┌           ┐\n  │ 1 0 0 0 0 │\n  │ 0 1 0 0 0 │\n  │ 0 0 1 0 0 │\n  │ 0 0 0 1 0 │\n  │ 0 0 0 0 1 │\n  └           ┘\n\n\n Feb 21 09:31:35.396 DEBG init lidar_sensor:LidarSensor { n_z: 2, std_laspx: 0.15, std_laspy: 0.15 }\n Feb 21 09:31:35.396 DEBG init radar_sensor:RadarSensor { n_z: 3, std_radr: 0.3, std_radphi: 0.03, std_radrd: 0.3 }\n Feb 21 09:31:36.438 INFO Accruacry - RMSE: [0.07726250037271036, 0.08179721812107782, 0.5892783492841654, 0.5742886905052718]\n Feb 21 09:31:36.438 TRCE run_ukf finish\n Feb 21 09:31:36.438 INFO processing_finished\n```\n\nNote the `Accruacry - RMSE: [0.07726250037271036, 0.08179721812107782, 0.5892783492841654, 0.5742886905052718]`\n\nThis was my first attempt at a project using Rust. It was a great learning exercise. Compared to the c++ version, dynamic vectors \u0026 arrays were not used in favour of taking a more strongly typed position. Extensive use of Rust traits were used. The resultant code has abstracted some calculations down into the traits from the main UKF Fitler implmentation.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhortovanyi%2FUnscented-Kalman-Filter-Rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhortovanyi%2FUnscented-Kalman-Filter-Rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhortovanyi%2FUnscented-Kalman-Filter-Rust/lists"}