# [ERROR] [turtlebot3_gazebo]: No robot spawned. Check TURTLEBOT3_MODEL environment variable.

- **ID:** `ros2/turtlebot3-gazebo-no-robot-spawned`
- **Domain:** ros2
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

The TURTLEBOT3_MODEL environment variable is not set or set to an invalid model name (e.g., 'burger', 'waffle', 'waffle_pi') before launching Gazebo simulation.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| ROS2 Humble (Ubuntu 22.04) | active | — | — |
| ROS2 Iron (Ubuntu 22.04) | active | — | — |
| turtlebot3 2.2.x | active | — | — |
| Gazebo 11.x | active | — | — |

## Workarounds

1. **export TURTLEBOT3_MODEL=burger** (90% success)
   ```
   export TURTLEBOT3_MODEL=burger
   ```
2. **Add export to .bashrc: echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc && source ~/.bashrc** (95% success)
   ```
   Add export to .bashrc: echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc && source ~/.bashrc
   ```

## Dead Ends

- **** — The launch file reads TURTLEBOT3_MODEL at startup; without it, no robot URDF is loaded. (95% fail)
- **** — Only 'burger', 'waffle', 'waffle_pi' are valid; typos or unsupported models cause spawn failure. (90% fail)
- **** — The environment variable must be set in the same shell session before launch, not sourced from a different workspace. (80% fail)
