{"id":14991928,"url":"https://github.com/rsasaki0109/rust_robotics","last_synced_at":"2025-06-11T00:08:58.384Z","repository":{"id":160910451,"uuid":"271988760","full_name":"rsasaki0109/rust_robotics","owner":"rsasaki0109","description":"Rust implementation of PythonRobotics such as EKF, DWA, Pure Pursuit, LQR.","archived":false,"fork":false,"pushed_at":"2025-02-17T00:00:47.000Z","size":551,"stargazers_count":146,"open_issues_count":0,"forks_count":9,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-17T01:19:02.242Z","etag":null,"topics":["algorithm","control","localization","navigation","path-planning","path-tracking","robotics","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/rsasaki0109.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}},"created_at":"2020-06-13T10:39:07.000Z","updated_at":"2025-02-17T00:00:46.000Z","dependencies_parsed_at":"2023-07-11T09:00:21.685Z","dependency_job_id":"3fd9b47a-8b9e-4618-9d09-c5bdb000d953","html_url":"https://github.com/rsasaki0109/rust_robotics","commit_stats":null,"previous_names":["rsasaki0109/rust_robotics","rsasaki0109/rustrobotics"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsasaki0109%2Frust_robotics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsasaki0109%2Frust_robotics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsasaki0109%2Frust_robotics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsasaki0109%2Frust_robotics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsasaki0109","download_url":"https://codeload.github.com/rsasaki0109/rust_robotics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsasaki0109%2Frust_robotics/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259172981,"owners_count":22816560,"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":["algorithm","control","localization","navigation","path-planning","path-tracking","robotics","rust"],"created_at":"2024-09-24T15:00:36.095Z","updated_at":"2025-06-11T00:08:58.364Z","avatar_url":"https://github.com/rsasaki0109.png","language":"Rust","funding_links":[],"categories":["Motion Control"],"sub_categories":[],"readme":"RustRobotics\n====\n\nThis package is a rust implementation of [PythonRobotics](https://github.com/AtsushiSakai/PythonRobotics).\n\nBuild\n```\ngit clone https://github.com/rsasaki0109/RustRobotics.git\ncd RustRobotics\ncargo build\n```\n\nRun (Example)\n```\ncargo run --bin ekf\n```\n\n# Table of Contents\n   * [Localization](#localization)\n      * [Extended kalman filter localization](#extended-kalman-filter-localization)\n      * Particle filter localization\n   * [Mapping](#mapping)\n      * NDT Map\n   * [SLAM](#slam)\n      * Iterative Closest Point\n      * FastSLAM 1.0\n   * [Path Planning](#path-planning)\n      * [Bezier Path](#bezier-path)\n      * [Cubic Spline](#cubic-spline)\n      * [Dynamic Window Approach](#dynamic-window-approach)\n      * [Model Predictive Trajectory Generator](#model-predictive-trajectory-generator)\n      * [Dijkstra algorithm](#dijkstra-algorithm)\n      * Potential Field algorithm\n      * State Lattice Planner\n      * Rapidly-Exploring Random Trees (RRT)\n   * [Path Tracking](#path-tracking)\n      * [Move to Pose](#move-to-pose)\n      * [Pure Pursuit](#pure-pursuit)\n      * [Stanley Control](#stanly-control)\n      * [LQR steer control](#lqr-steer-control)\n      * Nonlinear Model predictive control with C-GMRES\n\n# Localization\n## Extended Kalman Filter Localization\n\n\u003cimg src=\"./img/ekf.svg\" width=\"640px\"\u003e\n\n\nRed:GPS, Brue:Ground Truth, Green:EKF, Yellow:Dead Reckoning\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/ekf.rs)\n\n```\ncargo run --bin ekf\n```\n\n## Particle Filter Localization\n\n# Mapping\n## Ndt Map\n\n\u003cimg src=\"./img/ndt.svg\" width=\"640px\"\u003e\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/ndt.rs)\n\n```\ncargo run --bin ndt\n```\n\n# SLAM\n## Iterative Closest Point\n## FastSLAM 1.0\n\n\n# Path Planning\n## Bezier Path\n\n\u003cimg src=\"./img/bezier_path.svg\" width=\"640px\"\u003e\n\nBrack:Control points, Green: Path, Red: Start and Goal\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/bezier_path.rs)\n\n```\ncargo run --bin bezier_path\n```\n\n## Cubic Spline\n\n\n\u003cimg src=\"./img/csp.svg\" width=\"640px\"\u003e\n\nBrack:Control points, Green: Path\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/cubic_spline_planner.rs)\n\n```\ncargo run --bin csp\n```\n\n\n## Dynamic Window Approach\n\n\u003cimg src=\"./img/dwa.svg\" width=\"640px\"\u003e\n\nBrack: Obstacles, Green: Trajectry, Yellow: Predected trajectry\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/dwa.rs)\n\n```\ncargo run --bin dwa\n```\n\n## Model Predictive Trajectory Generator\n\n\u003cimg src=\"./img/model_predictive_trajectory_generator.svg\" width=\"640px\"\u003e\n\nGreen: Path\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/model_predictive_trajectory_generator.rs)\n\n\n```\ncargo run --bin model_predictive_trajectory_generator\n```\n\n## Dijkstra algorithm\n\n\u003cimg src=\"./media/dijkstra-motion-planner.gif\" width=\"640px\"\u003e\n\n- [src](./src/bin/dijkstra.rs)\n\n## Potential Field algorithm\n## State Lattice Planner\n## Rapidly-Exploring Random Trees\n\n# Path Tracking\n## Move to Pose\n\u003cimg src=\"./img/move_to_pose.svg\" width=\"640px\"\u003e\n\nGreen: Path, Red: Start and Goal\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/move_to_pose.rs)\n\n```\ncargo run --bin move_to_pose\n```\n\n## Pure Pursuit\n\n\u003cimg src=\"./img/pure_pursuit.svg\" width=\"640px\"\u003e\n\nBrack: Planned path, Green: Tracked path\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/pure_pursuit.rs)\n\n\n```\ncargo run --bin pure_pursuit\n```\n\n## Stanly Control\n\n\u003cimg src=\"./img/stanley_control.svg\" width=\"640px\"\u003e\n\nBrack: Planned path, Green: Tracked path\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/stanley_controller.rs)\n\n\n```\ncargo run --bin stanley_controller\n```\n\n\n## LQR steer control\n\n\u003cimg src=\"./img/lqr_steer_control.svg\" width=\"640px\"\u003e\n\nBrack: Planned path, Green: Tracked path\n\n- [src](https://github.com/rsasaki0109/RustRobotics/blob/master/src/bin/lqr_steer_control.rs)\n\n\n```\ncargo run --bin lqr_steer_control\n```\n\n## Nonlinear Model predictive control with C-GMRES\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsasaki0109%2Frust_robotics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsasaki0109%2Frust_robotics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsasaki0109%2Frust_robotics/lists"}