{"id":40708888,"url":"https://github.com/leggedrobotics/pace-sim2real","last_synced_at":"2026-01-21T12:38:19.508Z","repository":{"id":327519189,"uuid":"1051165000","full_name":"leggedrobotics/pace-sim2real","owner":"leggedrobotics","description":"PACE: A systematic approach for sim-to-real transfer of legged robots, identifying actuator and joint dynamics with standard joint encoders.","archived":false,"fork":false,"pushed_at":"2025-12-02T07:07:42.000Z","size":47202,"stargazers_count":233,"open_issues_count":0,"forks_count":10,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-12-07T09:58:48.315Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leggedrobotics.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":"2025-09-05T14:41:15.000Z","updated_at":"2025-12-06T23:08:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/leggedrobotics/pace-sim2real","commit_stats":null,"previous_names":["leggedrobotics/pace-sim2real"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/leggedrobotics/pace-sim2real","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fpace-sim2real","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fpace-sim2real/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fpace-sim2real/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fpace-sim2real/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leggedrobotics","download_url":"https://codeload.github.com/leggedrobotics/pace-sim2real/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fpace-sim2real/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28632942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-21T12:38:18.825Z","updated_at":"2026-01-21T12:38:19.499Z","avatar_url":"https://github.com/leggedrobotics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚙️ PACE — Sim-to-Real Transfer for Legged Robots\n![License](https://img.shields.io/badge/license-Apache%202.0-blue)\n![Python](https://img.shields.io/badge/python-3.10+-green)\n![Status](https://img.shields.io/badge/status-active_development-orange)\n\nPACE is a framework for **sim-to-real transfer of diverse robotic systems**, combining data-driven system identification with evolutionary optimization.\nIt enables accurate actuator modeling and robust adaptation between simulation to reality by explicitly learning physically meaningful dynamics parameters.\n\n---\n\n## 🤖🐾 What is PACE?\n\nPACE (Precise Adaptation through Continuous Evolution) bridges the gap between simulation and real hardware by:\n\n* Estimating actuator and joint dynamics directly from measured data\n* Using CMA-ES for parameter optimization\n* Applying learned parameters to improve sim-to-real locomotion performance\n* Supporting multiple robot platforms and actuator types\n\nIt is designed to integrate seamlessly with **NVIDIA Isaac Lab** and follows its task and environment conventions.\n\n---\n\n## 📦 Installation\n\n### 1. Install Isaac Lab\n\nFollow the official Isaac Lab installation guide:\n[https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html](https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html)\n\nWe recommend using the **conda** or **uv** installation method, as this simplifies running Python scripts from the terminal and managing dependencies.\n\n### 2. Clone this repository\n\nClone or copy this project separately from the Isaac Lab installation (i.e. outside the `IsaacLab` directory):\n\n```bash\ngit clone https://github.com/leggedrobotics/pace-sim2real.git\ncd pace-sim2real\n```\n\n### 3. Install PACE in editable mode\n\nUsing a Python interpreter that has Isaac Lab installed:\n\n```bash\n# Use 'PATH_TO_isaaclab.sh|bat -p' instead of 'python'\n# if Isaac Lab is not installed in a Python venv or conda environment\npython -m pip install -e source/pace_sim2real\n```\n### ⚠️ Isaac Sim version compatibility\n\nPACE is developed and tested against **Isaac Sim 5.0 / Isaac Lab (latest)**.\n\nIf you run the examples on older versions (e.g. Isaac Sim 4.5), you may encounter warnings such as:\n\n```bash\nSetting joint viscous friction coefficients are not supported in Isaac Sim \u003c 5.0\n```\n\nThese warnings are expected and indicate that certain physics properties (e.g. joint viscous friction) are not supported by the older simulator version. While the examples may still run, the physical fidelity and sim-to-real accuracy will be reduced.\n\n✅ Recommended: Isaac Sim 5.0 or newer  \n⚠️ Legacy support: May run with limitations on \u003c 5.0\n\n---\n\n## 📚 Documentation\n\nThe full PACE documentation is available online:\n\n👉 https://pace.filipbjelonic.com\n\nThis documentation site is built using **MkDocs** with the **Material for MkDocs** theme.\n\n---\n\n## 🐾 Running an Example: ANYmal D\n\n### 1. Activate the Isaac Lab environment\n\n```bash\nconda activate \u003cisaaclab_env\u003e\ncd path/to/pace-sim2real\n```\n\n### 2. Collect excitation data\n\n(Alternatively, place your own real-world data in `data/`)\n\n```bash\npython scripts/pace/data_collection.py\n```\n\nThis will collect simulation data and store results in:\n\n```\ndata/anymal_d_sim/chirp_data.pt\n```\n\n### 3. Run PACE parameter fitting\n\n```bash\npython scripts/pace/fit.py\n```\n\nThis will estimate the actuator and joint parameters using CMA-ES and store results in:\n\n```\nlogs/pace/anymal_d_sim/\n```\n\n---\n\n## 🧭 Usage\n\nRecommended imports for custom projects:\n\n```python\nfrom pace_sim2real import PaceCfg, PaceSim2realEnvCfg, CMAESOptimizer\nfrom pace_sim2real.utils import PaceDCMotorCfg, PaceDCMotor\nimport pace_sim2real.tasks  # registers environments\n```\n\nPlease refer to the official documentation for further information.\n\n⚠️ PACE is under active development. APIs may evolve as the framework matures.\n\n---\n\n## 📜 License\n\n© 2025 ETH Zurich, Robotic Systems Lab, Filip Bjelonic\n\nThis project is licensed under the Apache License, Version 2.0.\nSee the LICENSE file for details.\n\n---\n\n## 👥 Maintainers\n\nThe PACE project is actively maintained by:\n\n- Filip Bjelonic (ETH Zurich, RSL)\n- René Zurbrügg (ETH Zurich, RSL)\n- Oliver Fischer (ETH Zurich, RSL)\n\nThe maintainers are responsible for reviewing contributions, managing issues, and guiding the technical direction of the framework.\n\n---\n\n## 🙏 Acknowledgements\n\nWe would like to thank the RSL Learning Group for many insightful discussions that influenced the development of PACE. We are especially grateful to Konrad and Matthias for valuable technical input related to electronics and system integration.\n\nWe also acknowledge Zichong, Stephan, Efe, Yuntao, René, Clemens, Ryo, Alexander, and Fabio for employing and extending the PACE framework in their own research, providing valuable feedback and practical insights.\n\nWe further thank Oliver Fischer and René Zurbrügg for their direct contributions to the codebase and their ongoing support as project maintainers.\n\nWe also thank the early testers — Oliver, Clemens and Yasmine — who evaluated the framework prior to its public release and provided valuable feedback on usability, stability, and documentation improvements.\n\n---\n\n## 🛠 Code Formatting\n\nWe provide a pre-commit configuration to automatically format and lint the codebase.\n\n### Install pre-commit\n\n```bash\npip install pre-commit\n```\n\n### Enable hooks\n\n```bash\npre-commit install\n```\n\n### Run manually\n\n```bash\npre-commit run --all-files\n```\n\n---\n\n## 🧩 Troubleshooting\n\n### Pylance: Missing Indexing of Extensions\n\nIn some VS Code versions, indexing for Isaac Lab extensions may be incomplete. Add your extension path to `.vscode/settings.json`:\n\n```json\n{\n  \"python.analysis.extraPaths\": [\n    \"\u003cpath-to-ext-repo\u003e/source/pace_sim2real\"\n  ]\n}\n```\n\n---\n\n### Pylance: Crash / High Memory Usage\n\nIf Pylance crashes due to excessive indexing, exclude unused omniverse packages by commenting them out in:\n\n`.vscode/settings.json` → `python.analysis.extraPaths`\n\nExamples of packages that can often be safely excluded:\n\n```json\n\"\u003cpath-to-isaac-sim\u003e/extscache/omni.anim.*\",\n\"\u003cpath-to-isaac-sim\u003e/extscache/omni.kit.*\",\n\"\u003cpath-to-isaac-sim\u003e/extscache/omni.graph.*\",\n\"\u003cpath-to-isaac-sim\u003e/extscache/omni.services.*\"\n```\n\n---\n\n## 🤝 Contributing \u0026 Feedback\n\nInternal feedback is highly welcome during this phase.\nPlease report issues, unclear steps, or suggestions directly via GitHub issues or internal channels.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute.\n\n---\n\n## 📖 How to cite\n\nIf you use **PACE Sim2Real** in your research, please cite our [paper](https://arxiv.org/pdf/2509.06342):\n\n\u003e F. Bjelonic, F. Tischhauser, and M. Hutter,  \n\u003e _Towards Bridging the Gap: Systematic Sim-to-Real Transfer for Diverse Legged Robots_, arXiv:2509.06342, 2025.\n\n```bibtex\n@article{bjelonic2025towards,\n  title         = {Towards Bridging the Gap: Systematic Sim-to-Real Transfer for Diverse Legged Robots},\n  author        = {Bjelonic, Filip and Tischhauser, Fabian and Hutter, Marco},\n  journal       = {arXiv preprint arXiv:2509.06342},\n  year          = {2025},\n  eprint        = {2509.06342},\n  archivePrefix = {arXiv},\n  primaryClass  = {cs.RO},\n}\n```\n\n---\n\n**PACE** — bringing simulation and reality closer, one parameter at a time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fpace-sim2real","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleggedrobotics%2Fpace-sim2real","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fpace-sim2real/lists"}