{"id":51972036,"url":"https://github.com/gbionics/resolve-robotics-uri-py","last_synced_at":"2026-07-30T00:00:22.969Z","repository":{"id":191713049,"uuid":"685254085","full_name":"gbionics/resolve-robotics-uri-py","owner":"gbionics","description":"Resolve a package:// or model:// URI to an absolute filename in Python.","archived":false,"fork":false,"pushed_at":"2026-06-26T12:58:41.000Z","size":73,"stargazers_count":13,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-06-26T14:21:22.772Z","etag":null,"topics":["gazebo","robotics","ros","ros2","sdf","sdformat","urdf","urdf-descriptions","urdf-models"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gbionics.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-30T20:46:27.000Z","updated_at":"2026-06-26T12:49:55.000Z","dependencies_parsed_at":"2025-05-12T09:56:15.295Z","dependency_job_id":null,"html_url":"https://github.com/gbionics/resolve-robotics-uri-py","commit_stats":null,"previous_names":["ami-iit/resolve-robotics-uri-py","traversaro/resolve-robotics-uri-py","gbionics/resolve-robotics-uri-py"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/gbionics/resolve-robotics-uri-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbionics%2Fresolve-robotics-uri-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbionics%2Fresolve-robotics-uri-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbionics%2Fresolve-robotics-uri-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbionics%2Fresolve-robotics-uri-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbionics","download_url":"https://codeload.github.com/gbionics/resolve-robotics-uri-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbionics%2Fresolve-robotics-uri-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36053559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-29T02:00:04.910Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["gazebo","robotics","ros","ros2","sdf","sdformat","urdf","urdf-descriptions","urdf-models"],"created_at":"2026-07-30T00:00:21.506Z","updated_at":"2026-07-30T00:00:22.921Z","avatar_url":"https://github.com/gbionics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# resolve-robotics-uri-py\n\nPure Python package (that only depends on Python stdlib) to resolve a package:// (ROS-style) or model:// (Gazebo-style) URI to an absolute filename.\n\n## Installation\n\nInstall using onle one of the following commands to install in an existing environment:\n\n### Installation from conda-forge\n\n```bash\nconda install -c conda-forge resolve-robotics-uri-py\n```\n\n### Installation from PyPI\n\n```bash\npython -m pip install resolve-robotics-uri-py\n```\n\n## Usage in Python\n\nAdd `import resolve_robotics_uri_py` to your Python file, then take inspiration from the following examples.\n\nIf you want to get the location of the `iCubGazeboV2_7` iCub model installed from [`icub-models`](https://github.com/robotology/icub-models):\n\n~~~python\nabsolute_path = resolve_robotics_uri_py.resolve_robotics_uri(\"package://iCub/robots/iCubGazeboV2_7/model.urdf\")\n~~~\n\nIf you want to get the location of the `ergoCubSN00`  model installed from [`ergocub-software`](https://github.com/icub-tech-iit/ergocub-software):\n\n~~~python\nabsolute_path = resolve_robotics_uri_py.resolve_robotics_uri(\"package://ergoCub/robots/ergoCubSN000/model.urdf\")\n~~~\n\nIf you want to get the location of the `panda`  model installed by [`moveit_resources_panda_description`](https://index.ros.org/p/moveit_resources_panda_description/):\n\n~~~python\nabsolute_path = resolve_robotics_uri_py.resolve_robotics_uri(\"package://moveit_resources_panda_description/urdf/panda.urdf\")\n~~~\n\n## Command Line usage\n\n`resolve_robotics_uri_py` also install a command line tool called `resolve-robotics-uri-py` for use in scripts, that can be used as:\n\n~~~bash\nresolve-robotics-uri-py package://iCub/robots/iCubGazeboV2_7/model.urdf\n~~~\n\nFor example,  on bash this can be used to easily convert the a urdf specified via `package://` to an sdf (assuming you have Gazebo installed), using the [backtick operator](https://www.redhat.com/sysadmin/backtick-operator-vs-parens):\n~~~bash\ngz sdf -p `resolve-robotics-uri-py package://iCub/robots/iCubGazeboV2_7/model.urdf`\n~~~\n\n### Adding Custom Search Paths\n\nSome packages may not be installed in standard locations, or you may want to use a custom directory structure. In such cases, you have a few options:\n\n#### Option 1: Modify the Native Search Paths\n\nYou can add the search path to one of the natively supported paths of Gazebo or ROS, such as:\n\n* `GZ_SIM_RESOURCE_PATH`\n* `AMENT_PREFIX_PATH`\n\n#### Option 2: Specify Additional Search Paths\n\nIf you prefer not to modify the default ROS or Gazebo search paths, you can use either the `--package_dirs` command line option or set the `RRU_ADDITIONAL_PATHS` environment variable:\n\n##### Using the `--package_dirs` Command Line Option:\n\n~~~bash\nresolve-robotics-uri-py --package_dirs /path/to/packages:/another/path package://my_package/model.urdf\n~~~\n\n##### Setting the `RRU_ADDITIONAL_PATHS` Environment Variable:\n\n~~~bash\nexport RRU_ADDITIONAL_PATHS=/path/to/packages:/another/path\nresolve-robotics-uri-py package://my_package/model.urdf\n~~~\n\nBoth methods accept a colon-separated list of directories (or semicolon-separated on Windows).\n\nIn Python code, you can specify additional paths using the `additional_package_dirs` parameter:\n\n~~~python\nabsolute_path = resolve_robotics_uri_py.resolve_robotics_uri(\n     \"package://my_package/model.urdf\",\n     package_dirs=[\"/path/to/packages\", \"/another/path\"]\n)\n~~~\n\n## Details on how files are searched\n\nYou can find the details on how `resolve-robotics-uri-py` find files in the [rru_spec.md](rru_spec.md) file.\n\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first\nto discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## License\n\n[BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbionics%2Fresolve-robotics-uri-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbionics%2Fresolve-robotics-uri-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbionics%2Fresolve-robotics-uri-py/lists"}