{
  "id": "pythonrobotics-localization-extended-kalman-filter-extended-kalman-filter-py",
  "name": "PythonRobotics: extended kalman filter",
  "summary": "Official PythonRobotics python main example for extended kalman filter. Inspect the pinned source and upstream setup before use.",
  "framework": "pythonrobotics",
  "kind": "official_example",
  "source_registry": "ecosystem-examples-v1",
  "capabilities": [
    "classical-robotics-algorithm",
    "navigation"
  ],
  "robot_types": [
    "source-defined"
  ],
  "robot_scope": "Discovery labels inferred from this source path; inspect its robot configuration for compatibility. Project-wide categories are not a supported-robot list.",
  "source": {
    "repository": "https://github.com/AtsushiSakai/PythonRobotics",
    "commit": "cdd0cc888802b584c2d654ca85e3c5460973487d",
    "tag": "master",
    "path": "Localization/extended_kalman_filter/extended_kalman_filter.py",
    "url": "https://github.com/AtsushiSakai/PythonRobotics/blob/cdd0cc888802b584c2d654ca85e3c5460973487d/Localization/extended_kalman_filter/extended_kalman_filter.py",
    "raw_url": "https://raw.githubusercontent.com/AtsushiSakai/PythonRobotics/cdd0cc888802b584c2d654ca85e3c5460973487d/Localization/extended_kalman_filter/extended_kalman_filter.py",
    "sha256": "fa9bb52dbb63e6e959ba4e7bcf20cbe8d6ce69e88453ad0f605a21fc6979a28e",
    "bytes": 4279,
    "authors": [
      "Atsushi Sakai"
    ]
  },
  "license": {
    "spdx": "MIT",
    "url": "https://github.com/AtsushiSakai/PythonRobotics/blob/cdd0cc888802b584c2d654ca85e3c5460973487d/LICENSE",
    "sha256": "ca6f10832a25c1cd07fa62872458ca336a6ea83ee2f2236216086bd7a5bbf264",
    "scope": "Selected PythonRobotics algorithm demonstration source under the pinned MIT license text, Copyright (c) 2016 - now Atsushi Sakai and other contributors. Preserve repository license and each selected file's author notices. This is source-text scope only; dependencies, mathematical references, generated plots and any external assets retain separate terms. GitHub's automated classifier reports NOASSERTION; the MIT identity here comes from the exact reviewed LICENSE bytes, not that classifier."
  },
  "access": {
    "mode": "source_reference",
    "hub_prepare": false,
    "instructions": "Fetch the pinned repository, verify this source checksum, and use upstream installation and invocation. This record does not install or execute code.",
    "setup_url": "https://github.com/AtsushiSakai/PythonRobotics/blob/cdd0cc888802b584c2d654ca85e3c5460973487d/README.md"
  },
  "requirements": {
    "python": "Upstream README and requirements/environment.yml declare Python 3.13.x; no interpreter/package combination was installed or tested.",
    "packages": [
      "matplotlib==3.11.2 (pinned repository requirements declaration; selected entrypoints use pyplot)",
      "numpy==2.5.3 (pinned repository requirements declaration; applicable selected sources import NumPy directly or through local dependencies)",
      "scipy==1.18.1 (pinned repository requirements declaration; selected Hybrid A* source imports scipy.spatial)",
      "cvxpy==1.9.3 (pinned repository requirements declaration; selected MPC source calls solver=cvxpy.CLARABEL)",
      "ecos==2.0.14 (pinned repository requirements declaration; not substituted for the selected MPC source's CLARABEL solver)",
      "Matching pinned in-repository helpers for applicable selected sources, including SLAM, localization, RRT*, Hybrid A*, and tracking; a single source-file reference is not a complete runnable bundle"
    ],
    "display": "Mathematical planning, tracking, localization and SLAM demonstrations with hard-coded maps, trajectories, landmark observations or simulated dynamics; no physical robot controller or exact supported robot model is identified. Matplotlib animation is enabled in selected sources and needs suitable display/backend setup. Inspect each record's source_imports. SLAM/tracking sources import local utils.angle; EKF localization imports utils.plot; RRT* imports RRT.rrt; Stanley imports PathPlanning.CubicSpline; Hybrid A* and MPC also need their original local helpers and declared SciPy/cvxpy dependencies. These local helper dependencies are not newly downloaded or counted as additional skills. The pure-pursuit/Stanley headers use the term PID speed control, but their complete reviewed speed-control functions implement only Kp * (target - current), without integral or derivative terms. Use the exact upstream checkout/layout and read its setup. EKF SLAM and FastSLAM1 import utils.angle without modifying sys.path; the pinned project root must be available on Python's module search path. Python/package versions, GUI/backend availability and transitive dependency compatibility were not tested.",
    "execution_domain": "computation-or-algorithm-simulation",
    "source_imports": [
      "math",
      "matplotlib.pyplot",
      "numpy",
      "pathlib",
      "sys",
      "utils.plot"
    ]
  },
  "invocation": {
    "entrypoint": "python Localization/extended_kalman_filter/extended_kalman_filter.py",
    "notes": "Run a selected Python main only after independent upstream dependency, GUI/backend and local-helper setup review. These are numerical algorithm demonstrations, not commands for physical robots or ready deployment policies. The repository recommends pip requirements/requirements.txt or conda requirements/environment.yml; those are upstream declarations and were not executed. Keep the exact checkout layout and the upstream project root on Python's module search path for local imports. Sources were only read, hashed and statically parsed; no Hub adapter, installation, simulation result, robot-model support or compatible runtime combination is asserted."
  },
  "popularity": {
    "metric": "github_stars",
    "repository_stars": 30720,
    "checked_at": "2026-10-18",
    "meaning": "Dated repository interest, not robot-skill usage, compatibility or runtime success."
  },
  "evidence": {
    "level": "source_reviewed",
    "runtime_verification": "not_run",
    "checked_at": "2026-10-18",
    "inspection": "Fetched and SHA-256 checked this immutable source; statically parsed Python or located native main; verified pinned license bytes and checked explicit per-file license identifiers. No upstream code executed.",
    "entrypoint_kind": "python_main",
    "inspection_method": "automated_static"
  },
  "aliases": [
    "EKF localization",
    "Extended Kalman Filter localization"
  ]
}
