{
  "id": "unitree-sdk2-python-example-obstacles-avoid-obstacles-avoid-move-py",
  "name": "Unitree SDK2 Python: Go2 obstacle avoidance motion",
  "summary": "Enable the upstream Go2 obstacle-avoidance client and issue its example motion commands. Inspect the pinned source and setup before use.",
  "framework": "unitree-sdk2-python",
  "kind": "official_example",
  "source_registry": "official-robot-workflows-v1",
  "capabilities": [
    "obstacle-avoidance",
    "robot-workflow"
  ],
  "robot_types": [
    "legged"
  ],
  "robot_scope": "Pinned source targets Unitree Go2 obstacle-avoidance APIs; inspect model/firmware and hardware setup before use.",
  "source": {
    "repository": "https://github.com/unitreerobotics/unitree_sdk2_python",
    "commit": "814556d15970dd2ecf1c9984e845ca02ab07e206",
    "tag": "master",
    "path": "example/obstacles_avoid/obstacles_avoid_move.py",
    "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/example/obstacles_avoid/obstacles_avoid_move.py",
    "raw_url": "https://raw.githubusercontent.com/unitreerobotics/unitree_sdk2_python/814556d15970dd2ecf1c9984e845ca02ab07e206/example/obstacles_avoid/obstacles_avoid_move.py",
    "sha256": "79697b82289389ffc99bb3cab9956c6a52452e80b1a898951d230a0adc899f6d",
    "bytes": 1074,
    "authors": [
      "Unitree Robotics"
    ]
  },
  "license": {
    "spdx": "BSD-3-Clause",
    "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/LICENSE",
    "sha256": "a5d73fc4aca9074e3e6fe0b1a0ba763cf9514b2249b7390ed20fe8d53630bf25",
    "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": 1559
  },
  "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/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/README.md",
    "setup_evidence": [
      {
        "path": "README.md",
        "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/README.md",
        "sha256": "0fa9e0fb386718da0619c6ddbf29b0ae01bfd49a61f36cb1c14000e4c4a7fe3d",
        "bytes": 5550,
        "purpose": "DDS installation and hardware/network setup"
      },
      {
        "path": "setup.py",
        "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/setup.py",
        "sha256": "f2c73b2981ee918dd8b3810267691d0294ebedf86d7897330819e8a5fefb19b5",
        "bytes": 711,
        "purpose": "author, Python and package declarations"
      },
      {
        "path": "LICENSE",
        "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/LICENSE",
        "sha256": "a5d73fc4aca9074e3e6fe0b1a0ba763cf9514b2249b7390ed20fe8d53630bf25",
        "bytes": 1559,
        "purpose": "upstream attribution"
      }
    ]
  },
  "requirements": {
    "python": "Python >=3.8 as declared by pinned setup.py",
    "packages": [
      "Pinned unitree_sdk2py checkout",
      "cyclonedds==0.10.2",
      "numpy",
      "opencv-python"
    ],
    "display": "Physical Unitree robot matching the selected source path, compatible firmware/SDK message type, CycloneDDS setup and correct network interface are required. High-level motion, direct joint and arm examples can issue real actuator commands.",
    "execution_domain": "hardware",
    "source_imports": [
      "sys",
      "time",
      "unitree_sdk2py.core.channel",
      "unitree_sdk2py.go2.obstacles_avoid.obstacles_avoid_client"
    ]
  },
  "invocation": {
    "entrypoint": "python example/obstacles_avoid/obstacles_avoid_move.py",
    "notes": "Use the exact robot model and firmware expected by the selected upstream source, read its operator prompts and motion prerequisites, and pass the appropriate network interface as its positional argument when required. Direct joint examples may change robot control mode. Hub has not installed the SDK, connected to a robot or verified execution."
  },
  "popularity": {
    "metric": "github_stars",
    "repository_stars": 825,
    "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",
    "robot_discovery": {
      "scope": "Pinned source names the GO2 SDK interface/model. Discovery only; firmware, joint layout, control mode, model variant and runtime compatibility remain unverified.",
      "method": "reviewed_pinned_text_declaration",
      "compatibility_inferred": false,
      "evidence": [
        {
          "url": "https://github.com/unitreerobotics/unitree_sdk2_python/blob/814556d15970dd2ecf1c9984e845ca02ab07e206/example/obstacles_avoid/obstacles_avoid_move.py",
          "sha256": "79697b82289389ffc99bb3cab9956c6a52452e80b1a898951d230a0adc899f6d",
          "bytes": 1074,
          "quote": "from unitree_sdk2py.go2.obstacles_avoid.obstacles_avoid_client import ObstaclesAvoidClient",
          "labels": [
            "go2"
          ],
          "match_in": "text"
        }
      ]
    }
  },
  "robots": [
    "go2"
  ],
  "artifact": {
    "kind": "workflow",
    "format": "python",
    "workflow_role": "obstacle-avoidance"
  }
}
