Skip to main content
The TurtleBot3 development container includes three pre-configured simulation worlds, each designed for different testing scenarios and skill levels.

Available worlds

Empty world

A minimal simulation environment with a flat ground plane and no obstacles.
tb3_empty
Use cases:
  • Testing basic robot movement
  • Learning teleoperation controls
  • Verifying sensor functionality
  • Debugging without environmental complexity
  • Quick simulation startup for development
Characteristics:
  • Fastest loading time
  • Minimal computational resources
  • Clean environment for isolated testing
  • Ideal for beginners
Start with the empty world when learning the basics or testing new code before moving to more complex environments.

TurtleBot3 world

An environment specifically designed for TurtleBot3 featuring obstacles, barriers, and confined spaces.
tb3_world
Use cases:
  • Testing obstacle detection and avoidance
  • Navigation algorithm development
  • SLAM in structured environments
  • Collision detection testing
  • Path planning validation
Characteristics:
  • Multiple obstacles of varying sizes
  • Narrow passages for precision navigation
  • Moderate computational requirements
  • Balanced complexity for intermediate users
This world is excellent for testing navigation algorithms before deploying to more complex environments.

House environment

A detailed indoor house simulation with multiple rooms, furniture, and realistic indoor layout.
tb3_house
Use cases:
  • Advanced SLAM mapping
  • Complex autonomous navigation
  • Multi-room exploration
  • Realistic indoor robotics scenarios
  • Final testing before real-world deployment
Characteristics:
  • Multiple interconnected rooms
  • Furniture and household objects
  • Realistic indoor environment
  • Higher computational requirements
  • Suitable for advanced testing
The house environment requires more system resources. Ensure your Docker container has sufficient CPU and memory allocated (4+ cores, 8GB+ RAM recommended).

Launching simulation worlds

Using aliases

The quickest way to launch any world:
tb3_empty

Using full commands

If you prefer explicit commands or need to customize launch parameters:
ros2 launch turtlebot3_gazebo empty_world.launch.py

Accessing the simulation

After launching any world, access the Gazebo GUI through the VNC desktop.
1

Launch a world

Start your chosen simulation environment:
tb3_world
2

Open VNC in browser

Navigate to the VNC desktop in your web browser:
http://localhost:6080
3

Enter password

When prompted, enter the VNC password:
ros
4

View Gazebo

You should see the Gazebo simulator running with your chosen world and the TurtleBot3 robot.

Switching between worlds

To switch to a different world, you must stop the current simulation first.
1

Stop current simulation

Press Ctrl+C in the terminal where the simulation is running.
2

Launch new world

Start the desired world:
tb3_house
If the new simulation doesn’t start cleanly, kill any remaining Gazebo processes:
pkill -9 gz

Software rendering mode

If you experience crashes or poor performance with GPU rendering, use software rendering variants.
tb3_empty_sw
These aliases automatically set LIBGL_ALWAYS_SOFTWARE=1 for stable software-based rendering.

Choosing the right world

For beginners

Start with the empty world to:
  • Learn keyboard teleoperation
  • Understand ROS2 topics and nodes
  • Test basic robot movement
  • Familiarize yourself with the environment

For intermediate users

Use TurtleBot3 world to:
  • Practice SLAM mapping
  • Test navigation algorithms
  • Learn obstacle avoidance
  • Develop path planning skills

For advanced users

Use house environment to:
  • Create complex maps
  • Test multi-room navigation
  • Simulate realistic scenarios
  • Validate production-ready algorithms

Troubleshooting

Simulation won’t start

1

Verify TURTLEBOT3_MODEL

Check that the robot model is set:
echo $TURTLEBOT3_MODEL
Should output: burger
2

Kill existing processes

pkill -9 gz
pkill -9 gzserver
pkill -9 gzclient
3

Relaunch simulation

tb3_empty

No robot visible in Gazebo

1

Source workspace

sb
2

Verify packages

ros2 pkg list | grep turtlebot3
3

Rebuild if needed

cb
sb

Poor performance

  • Allocate more resources in Docker Desktop (Settings → Resources)
  • Use software rendering mode with _sw aliases
  • Choose a simpler world (empty instead of house)
  • Close unnecessary applications on your host system

Build docs developers (and LLMs) love