# Tutorials Step-by-step tutorials for common use cases with GenesisLab. ```{toctree} :maxdepth: 2 basic_locomotion creating_tasks custom_observations custom_rewards using_sensors custom_terrains domain_randomization multi_gpu_training ``` ## Available Tutorials ### [Basic Locomotion](basic_locomotion.md) Train a quadruped robot to walk on flat terrain. **What you'll learn**: - Setting up a training environment - Configuring PPO hyperparameters - Monitoring training progress - Evaluating trained policies **Prerequisites**: Installation complete **Time**: 30 minutes --- ### [Creating Custom Tasks](creating_tasks.md) Create your own custom robot learning task. **What you'll learn**: - Task structure and configuration - Setting up scenes - Defining managers - Registering custom tasks **Prerequisites**: Basic concepts **Time**: 45 minutes --- ### [Custom Observations](custom_observations.md) Define custom observation terms for your task. **What you'll learn**: - Writing observation functions - Adding noise and scaling - Using observation history - Privileged observations **Prerequisites**: Creating tasks **Time**: 30 minutes --- ### [Custom Rewards](custom_rewards.md) Design reward functions for your objectives. **What you'll learn**: - Reward function principles - Writing reward terms - Balancing multiple objectives - Debugging rewards **Prerequisites**: Creating tasks **Time**: 45 minutes --- ### [Using Sensors](using_sensors.md) Integrate cameras, LiDAR, and other sensors. **What you'll learn**: - Fake vs Genesis sensors - Configuring cameras - Processing sensor data - Vision-based policies **Prerequisites**: Basic concepts **Time**: 60 minutes --- ### [Custom Terrains](custom_terrains.md) Create procedural and custom terrains. **What you'll learn**: - Terrain generation - Height map manipulation - Terrain curriculum - Loading custom meshes **Prerequisites**: Creating tasks **Time**: 45 minutes --- ### [Domain Randomization](domain_randomization.md) Apply domain randomization for sim-to-real transfer. **What you'll learn**: - Dynamics randomization - Observation noise - Event system - Systematic randomization strategies **Prerequisites**: Custom tasks **Time**: 45 minutes --- ### [Multi-GPU Training](multi_gpu_training.md) Scale training across multiple GPUs. **What you'll learn**: - Multi-GPU setup - Data parallelism - Performance optimization - Troubleshooting **Prerequisites**: Basic training **Time**: 30 minutes --- ## Learning Paths ### Beginner Path 1. [Basic Locomotion](basic_locomotion.md) 2. [Creating Custom Tasks](creating_tasks.md) 3. [Custom Observations](custom_observations.md) 4. [Custom Rewards](custom_rewards.md) ### Advanced Path 1. [Using Sensors](using_sensors.md) 2. [Custom Terrains](custom_terrains.md) 3. [Domain Randomization](domain_randomization.md) 4. [Multi-GPU Training](multi_gpu_training.md) ### Sim-to-Real Path 1. [Custom Tasks](creating_tasks.md) 2. [Using Sensors](using_sensors.md) 3. [Domain Randomization](domain_randomization.md) 4. Deployment (coming soon) ## Tutorial Template Each tutorial follows this structure: 1. **Overview**: What you'll build and learn 2. **Prerequisites**: Required knowledge and setup 3. **Step-by-Step**: Detailed instructions with code 4. **Explanation**: Concepts and design decisions 5. **Exercise**: Try it yourself 6. **Next Steps**: Related tutorials and topics ## Sample Code Repository All tutorial code is available in the `examples/` directory: ``` examples/ ├── tutorials/ │ ├── 01_basic_locomotion/ │ ├── 02_creating_tasks/ │ ├── 03_custom_observations/ │ └── ... └── advanced/ ├── vision_based_navigation/ ├── manipulation/ └── multi_robot/ ``` ## Getting Help - **Stuck on a tutorial?** Check the [FAQ](../overview/faq.md) - **Code not working?** Compare with `examples/` code - **Concept unclear?** Review [basic concepts](../getting_started/basic_concepts.md) - **Need more help?** Ask in GitHub Discussions ## Contributing Tutorials We welcome tutorial contributions! If you have a use case or technique to share: 1. Follow the tutorial template 2. Include working code in `examples/` 3. Test thoroughly 4. Submit a pull request See [contributing guidelines](https://github.com/yourusername/genesislab/blob/main/CONTRIBUTING.md) for details.