{"id":28153,"library":"robot-descriptions","title":"robot_descriptions","description":"Import open-source robot descriptions (URDF, MJCF, etc.) as Python modules. Provides a registry of 150+ robots with caching and loaders for various frameworks. Current version: 2.0.0 (requires Python >=3.10). Active development with frequent releases adding new descriptions.","status":"active","version":"2.0.0","language":"python","source_language":"en","source_url":"https://github.com/robot-descriptions/robot_descriptions.py","tags":["robot","urdf","mjcf","simulation","mujoco","ros","description"],"install":[{"cmd":"pip install robot-descriptions","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"Required for URDF loading (default loader) and for the `dump_urdf` function.","package":"yourdfpy","optional":false},{"reason":"Required for MJCF loading (if you use the MuJoCo loader).","package":"mujoco","optional":true},{"reason":"Required for the `show_in_meshcat` CLI command.","package":"meshcat","optional":true},{"reason":"Required for loading xacro-based descriptions (e.g., Atlas, PR2).","package":"xacro","optional":true}],"imports":[{"note":"The library is a package; import the top-level module and access descriptions via attributes or iteration.","wrong":"from robot_descriptions import <wrong_submodule>","symbol":"robot_descriptions","correct":"import robot_descriptions"},{"note":"`load_description` is a top-level convenience function. In v2.0.0, the `Description` dataclass moved and changed; `load_description` returns a loader function now.","wrong":"from robot_descriptions.loaders import load_description","symbol":"load_description","correct":"from robot_descriptions import load_description"}],"quickstart":{"code":"import robot_descriptions\nfrom robot_descriptions import load_description\n\n# List available descriptions (returns list of Description objects)\ndescriptions = robot_descriptions.list_descriptions()\nprint(f\"Available: {len(descriptions)} descriptions\")\n\n# Load a specific description by name (e.g., 'panda_mj_description')\nload_fn = load_description('panda_mj_description')\n# load_fn() returns a (robot, model, ...) tuple depending on loader\n# For MuJoCo:\nimport mujoco\nmj_model = load_fn()  # returns mujoco.MjModel\nprint(f\"Robot name: {mj_model.name}\")\n\n# For URDF:\n# from robot_descriptions import panda_urdf_description\n# load_fn = load_description('panda_urdf_description')\n# robot = load_fn()  # returns yourdfpy.URDF\n","lang":"python","description":"Quickstart: import, list descriptions, load a Panda robot in MuJoCo."},"warnings":[{"fix":"Update imports: use `from robot_descriptions import load_description` and call `load_fn()` to get the robot. For custom loaders, adjust to new `Description` fields (check `info` attribute).","message":"v2.0.0 changed the `Description` dataclass signature. Old code accessing `.name` or `.repository` as plain strings may break; now they are typed fields. Also, the `load_description` function now returns a loader callable, not the robot object directly.","severity":"breaking","affected_versions":"<=1.23.0 -> >=2.0.0"},{"fix":"Replace `load_robot(...)` with `load_description(...)` and call the result.","message":"The `load_robot` function (if any) is deprecated; use `load_description` instead.","severity":"deprecated","affected_versions":"<=1.23.0"},{"fix":"Install required loaders: `pip install yourdfpy xacro mujoco` as needed.","message":"Some descriptions require additional dependencies like `xacro` or `yourdfpy`. If you get an ImportError when loading, install the missing package.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Run `pip install robot-descriptions` in your active environment.","cause":"The package is not installed or installed in a different environment.","error":"ImportError: No module named 'robot_descriptions'"},{"fix":"Install yourdfpy: `pip install yourdfpy`","cause":"The default URDF loader (yourdfpy) is missing, but you are trying to load a URDF description.","error":"ModuleNotFoundError: No module named 'yourdfpy'"},{"fix":"Use `robot_descriptions.list_descriptions()` to see available names.","cause":"The description name does not exist in the registry (case-sensitive).","error":"ValueError: Unknown description: 'some_name'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}