| # 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). |
|
|