{"id":28383697,"url":"https://github.com/ami-iit/amp-rsl-rl","last_synced_at":"2025-06-25T14:30:42.346Z","repository":{"id":285809705,"uuid":"955978514","full_name":"ami-iit/amp-rsl-rl","owner":"ami-iit","description":"🔁 AMP-RSL-RL: Adversarial Motion Priors for robotic RL (PPO + motion imitation)","archived":false,"fork":false,"pushed_at":"2025-06-20T16:20:15.000Z","size":110,"stargazers_count":112,"open_issues_count":4,"forks_count":3,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-20T17:28:32.422Z","etag":null,"topics":["amp","isaaclab","pytorch","rl","rls-rl"],"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/ami-iit.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}},"created_at":"2025-03-27T14:01:00.000Z","updated_at":"2025-06-20T15:37:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"b90cc7f5-1c05-41da-a960-fa1e88fa55e5","html_url":"https://github.com/ami-iit/amp-rsl-rl","commit_stats":null,"previous_names":["ami-iit/amp-rsl-rl"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ami-iit/amp-rsl-rl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ami-iit%2Famp-rsl-rl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ami-iit%2Famp-rsl-rl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ami-iit%2Famp-rsl-rl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ami-iit%2Famp-rsl-rl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ami-iit","download_url":"https://codeload.github.com/ami-iit/amp-rsl-rl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ami-iit%2Famp-rsl-rl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261500540,"owners_count":23168069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["amp","isaaclab","pytorch","rl","rls-rl"],"created_at":"2025-05-30T07:10:18.868Z","updated_at":"2025-06-25T14:30:42.316Z","avatar_url":"https://github.com/ami-iit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AMP-RSL-RL\n\nAMP-RSL-RL is a reinforcement learning library that extends the Proximal Policy Optimization (PPO) implementation of [RSL-RL](https://github.com/leggedrobotics/rsl_rl) to incorporate Adversarial Motion Priors (AMP). This framework enables humanoid agents to learn motor skills from motion capture data using adversarial imitation learning techniques.\n\n---\n\n## 📦 Installation\n\nThe repository is available on PyPI under the package name **amp-rl-rsl**. You can install it directly using pip:\n\n```bash\npip install amp-rsl-rl\n```\n\nAlternatively, if you prefer to clone the repository and install it locally, follow these steps:\n\n1. Clone the repository:\n    ```bash\n    git clone https://github.com/\u003cyour-username\u003e/amp_rsl_rl.git\n    cd amp_rsl_rl\n    ```\n\n2. Install the package:\n    ```bash\n    pip install .\n    ```\n\nFor editable/development mode:\n\n```bash\npip install -e .\n```\n\nIf you want to run the examples, please install with:\n\n```bash\npip install .[examples]\n```\n\nThe required dependencies include:\n\n- `numpy`\n- `scipy`\n- `torch`\n- `rsl-rl-lib`\n\nThese will be automatically installed via pip.\n\n---\n\n## 📂 Project Structure\n\n```\namp_rsl_rl/\n│\n├── algorithms/        # AMP and PPO implementations\n├── networks/          # Neural networks for policy and discriminator\n├── runners/           # Training and evaluation routines\n├── storage/           # Replay buffer for experience collection\n├── utils/             # Dataset loaders and motion tools\n```\n\n---\n\n## 📁 Dataset Structure\n\nThe AMP-RSL-RL framework expects motion capture datasets in `.npy` format. Each `.npy` file must contain a Python dictionary with the following keys:\n\n- **`joints_list`**: `List[str]`  \n  A list of joint names. These should correspond to the joint order expected by the agent.\n\n- **`joint_positions`**: `List[np.ndarray]`  \n  A list where each element is a NumPy array representing the joint positions at a frame. All arrays should have the same shape `(N,)`, where `N` is the number of joints.\n\n- **`root_position`**: `List[np.ndarray]`  \n  A list of 3D vectors representing the position of the base (root) of the agent in world coordinates for each frame.\n\n- **`root_quaternion`**: `List[np.ndarray]`  \n  A list of unit quaternions in **`xyzw`** format (SciPy convention), representing the base orientation of the agent for each frame.\n\n- **`fps`**: `float`  \n  The number of frames per second in the original dataset. This is used to resample the data to match the simulator's timestep.\n\n### Example\n\nHere’s an example of how the structure might look when loaded in Python:\n\n```python\n{\n    \"joints_list\": [\"hip\", \"knee\", \"ankle\"],\n    \"joint_positions\": [np.array([0.1, -0.2, 0.3]), np.array([0.11, -0.21, 0.31]), ...],\n    \"root_position\": [np.array([0.0, 0.0, 1.0]), np.array([0.01, 0.0, 1.0]), ...],\n    \"root_quaternion\": [np.array([0.0, 0.0, 0.0, 1.0]), np.array([0.0, 0.0, 0.1, 0.99]), ...],\n    \"fps\": 120.0\n}\n```\n\nAll lists must have the same number of entries (i.e. one per frame). The dataset should represent smooth motion captured over time.\n\n---\n\n## 📚 Supported Dataset\n\nFor a ready-to-use motion capture dataset, you can use the [AMP Dataset on Hugging Face](https://huggingface.co/datasets/ami-iit/amp-dataset). This dataset is curated to work seamlessly with the AMP-RSL-RL framework.\n\n---\n\n## 🧑‍💻 Authors\n\n- **Giulio Romualdi** – [@GiulioRomualdi](https://github.com/GiulioRomualdi)\n- **Giuseppe L'Erario** – [@Giulero](https://github.com/Giulero)\n\n---\n\n## 📄 License\n\nBSD 3-Clause License © 2025 Istituto Italiano di Tecnologia\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fami-iit%2Famp-rsl-rl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fami-iit%2Famp-rsl-rl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fami-iit%2Famp-rsl-rl/lists"}