{
  "id": "lerobot-src-lerobot-scripts-lerobot-find-joint-limits-py",
  "name": "LeRobot: Joint and end-effector bounds collection CLI",
  "summary": "Collect joint limits and end-effector bounds through configured robot teleoperation. Inspect the pinned source and setup before use.",
  "framework": "lerobot",
  "kind": "official_example",
  "source_registry": "official-robot-workflows-v1",
  "capabilities": [
    "joint-limits",
    "robot-workflow"
  ],
  "robot_types": [
    "source-defined"
  ],
  "robot_scope": "Generic workflow entrypoint. The explicitly chosen dataset, policy, environment or device configuration determines robot compatibility; no supported-robot list or runtime result is inferred.",
  "source": {
    "repository": "https://github.com/huggingface/lerobot",
    "commit": "7e241bd630a3719a56157a497ce5d08f244784f1",
    "tag": "v0.6.1",
    "path": "src/lerobot/scripts/lerobot_find_joint_limits.py",
    "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/src/lerobot/scripts/lerobot_find_joint_limits.py",
    "raw_url": "https://raw.githubusercontent.com/huggingface/lerobot/7e241bd630a3719a56157a497ce5d08f244784f1/src/lerobot/scripts/lerobot_find_joint_limits.py",
    "sha256": "84e66e67adb9a1d347d17a23c7bbd359a2061d9bc50c723cd082650a273eea51",
    "bytes": 6846,
    "authors": [
      "The Hugging Face team"
    ]
  },
  "license": {
    "spdx": "Apache-2.0",
    "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/LICENSE",
    "sha256": "0583375a0ec642ec79c447781f34322b0cfa66baff31258214d040f1f6d86d7c",
    "scope": "Selected first-party workflow Python source only; preserve all upstream copyright, author and per-file notices. This does not relicense model weights, datasets, Gemma or other third-party model code, robot firmware, simulator binaries, meshes, dependencies or external services; their separate terms and access requirements remain applicable.",
    "bytes": 27627
  },
  "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/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/README.md",
    "setup_evidence": [
      {
        "path": "README.md",
        "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/README.md",
        "sha256": "1292b3b1af5573c1f626ae3c1315ef47e9ea6c131e3224540f090c72553ab538",
        "bytes": 12118,
        "purpose": "project and setup"
      },
      {
        "path": "pyproject.toml",
        "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/pyproject.toml",
        "sha256": "3c2ce5b32fe48ef3c8c879c38e27fa52555074003957c9913d6b071a68f9eee2",
        "bytes": 21952,
        "purpose": "author, Python, CLI and dependency declarations"
      },
      {
        "path": "LICENSE",
        "url": "https://github.com/huggingface/lerobot/blob/7e241bd630a3719a56157a497ce5d08f244784f1/LICENSE",
        "sha256": "0583375a0ec642ec79c447781f34322b0cfa66baff31258214d040f1f6d86d7c",
        "bytes": 27627,
        "purpose": "upstream attribution"
      }
    ]
  },
  "requirements": {
    "python": "Python >=3.12 as declared by pinned pyproject.toml",
    "packages": [
      "Pinned LeRobot checkout",
      "Upstream training/evaluation/core_scripts/hardware and policy/environment extras required by the selected CLI"
    ],
    "display": "Select the specific upstream robot/teleoperator, port, camera, calibration, policy and dataset configuration. Generic CLI entrypoints do not establish support for any particular robot. Hardware commands can record, replay or change motor/calibration state.",
    "execution_domain": "hardware",
    "source_imports": [
      "dataclasses",
      "draccus",
      "lerobot.model",
      "lerobot.robots",
      "lerobot.teleoperators",
      "lerobot.utils.robot_utils",
      "numpy",
      "time"
    ]
  },
  "invocation": {
    "entrypoint": "lerobot-find-joint-limits",
    "notes": "Install the pinned upstream extras for this CLI and select its required robot/teleoperator/environment, policy, dataset, port and calibration arguments. Recording is data collection in this revision; policy deployment uses lerobot-rollout. No Hub installation, robot command or runtime compatibility has been verified."
  },
  "popularity": {
    "metric": "github_stars",
    "repository_stars": 28250,
    "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": "Verified exact source, applicable license and author/setup document bytes at a full Git commit; parsed the Python AST and reviewed this guarded operational entrypoint and its explicit license notices. No upstream code, installation, robot command, dataset, mesh or checkpoint was executed or loaded.",
    "entrypoint_kind": "python_main",
    "inspection_method": "automated_static"
  },
  "artifact": {
    "kind": "workflow",
    "format": "python",
    "workflow_role": "joint-limits"
  }
}
