Skip to content

fracapuano/robot-learning-tutorial

Repository files navigation

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

  • 1.1 lerobot Dataset
    • 1.1.1 The dataset class design
  • 1.2 Code Example: Batching a (Streaming) Dataset
  • 1.3 Code Example: Collecting Data

2. Classical Robotics

  • 2.1 Explicit and Implicit Models
  • 2.2 Different Types of Motion
  • 2.3 Example: Planar Manipulation
    • 2.3.1 Adding Feedback Loops
  • 2.4 Limitations of Dynamics-based Robotics

3. Robot (Reinforcement) Learning

  • 3.1 A (Concise) Introduction to RL
  • 3.2 Real-world RL for Robotics
  • 3.3 Code Example: Real-world RL
  • 3.4 Limitations of RL in Real-World Robotics: Simulators and Reward Design

4. Robot (Imitation) Learning

  • 4.1 A (Concise) Introduction to Generative Models
    • 4.1.1 Variational Auto-Encoders
    • 4.1.2 Diffusion Models
    • 4.1.3 Flow Matching
  • 4.2 Action Chunking with Transformers
    • 4.2.1 Code Example: Training and Using ACT in Practice
  • 4.3 Diffusion Policy
    • 4.3.1 Code Example: Training and Using Diffusion Policies in Practice
  • 4.4 Optimized Inference
    • 4.4.1 Code Example: Using Async Inference

5. Generalist Robot Policies

  • 5.1 Preliminaries: Models and Data
  • 5.2 Modern VLAs
    • 5.2.1 VLMs for VLAs
  • 5.3 PI0
    • 5.3.1 Code Example: Using PI0
  • 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

  • 7.1 Conclusions

License

The written content of this book is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

All source code examples in the snippets/ directory are licensed under the MIT License.

About

All the source code for "Robot Learning: A Tutorial". Get involved to be featured in the next iteration!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published