| # Robot Learning: A Tutorial | |
| This repository contains the source code for the "Robot Learning: A Tutorial" report. This tutorial covers many of the most pressing aspects in modern robot learning, and provides practice examples using `lerobot`, the robot-learning library developed by Hugging Face. | |
| You’re more than welcome to contribute to the next edition of the tutorial! | |
| Simply open an issue, tag @fracapuano, and start a discussion about the scope and content you’d like to add. Check out CONTRIBUTING.md for more details 😊 | |
| All merged pull requests will receive public acknowledgment in the main body of the tutorial. | |
| Items marked with an empty `[ ]` in the following Table of Contents are open for community contribution! | |
| ## Table of Contents | |
| ### 1. Introduction | |
| - [x] 1.1 `lerobot` Dataset | |
| - [x] 1.1.1 The dataset class design | |
| - [x] 1.2 Code Example: Batching a (Streaming) Dataset | |
| - [x] 1.3 Code Example: Collecting Data | |
| ### 2. Classical Robotics | |
| - [x] 2.1 Explicit and Implicit Models | |
| - [x] 2.2 Different Types of Motion | |
| - [x] 2.3 Example: Planar Manipulation | |
| - [x] 2.3.1 Adding Feedback Loops | |
| - [x] 2.4 Limitations of Dynamics-based Robotics | |
| ### 3. Robot (Reinforcement) Learning | |
| - [x] 3.1 A (Concise) Introduction to RL | |
| - [x] 3.2 Real-world RL for Robotics | |
| - [x] 3.3 Code Example: Real-world RL | |
| - [x] 3.4 Limitations of RL in Real-World Robotics: Simulators and Reward Design | |
| ### 4. Robot (Imitation) Learning | |
| - [x] 4.1 A (Concise) Introduction to Generative Models | |
| - [x] 4.1.1 Variational Auto-Encoders | |
| - [x] 4.1.2 Diffusion Models | |
| - [x] 4.1.3 Flow Matching | |
| - [x] 4.2 Action Chunking with Transformers | |
| - [x] 4.2.1 Code Example: Training and Using ACT in Practice | |
| - [x] 4.3 Diffusion Policy | |
| - [x] 4.3.1 Code Example: Training and Using Diffusion Policies in Practice | |
| - [x] 4.4 Optimized Inference | |
| - [x] 4.4.1 Code Example: Using Async Inference | |
| ### 5. Generalist Robot Policies | |
| - [x] 5.1 Preliminaries: Models and Data | |
| - [x] 5.2 Modern VLAs | |
| - [x] 5.2.1 VLMs for VLAs | |
| - [x] 5.3 PI0 | |
| - [ ] 5.3.1 Code Example: Using PI0 | |
| - [x] 5.4 SmolVLA | |
| - [ ] 5.4.1 Code Example: Using SmolVLA | |
| - [ ] 5.5 GR00T (1/2) | |
| - [ ] 5.5.1 Code Example: Using GR00T | |
| - [ ] 5.6 PI05 | |
| - [ ] 5.6.1 Code Example: Using PI05 | |
| - [ ] Large-scale datasets | |
| - [ ] Open-X | |
| - [ ] DROID | |
| - [ ] BEHAVIOR | |
| ### 6. Some Emerging Directions in Robot Learning | |
| - [ ] 6.1 Post training VLAs | |
| - [ ] 6.1.1 From Imitation to Refinement | |
| - [ ] 6.1.2 EXPO | |
| - [ ] 6.2 World Models for robotics | |
| - [ ] 6.2.1 Cosmos | |
| - [ ] 6.2.2 World Models (1X) | |
| - [ ] 6.2.3 Sima and Genie 1 | |
| ### 7. Conclusions | |
| - [x] 7.1 Conclusions | |
| ## License | |
| The written content of this book is licensed under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/). | |
| All source code examples in the `snippets/` directory are licensed under the [MIT License](https://opensource.org/licenses/MIT). | |