You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(demos): auto-headless when no display (macOS, headless hosts)
The GUI run mode launched the Gazebo/RViz client even with no X
server, which aborts the whole required launch on macOS Docker
Desktop. Detect a missing DISPLAY and fall back to headless, printing
what still works (REST API, Web UI). Covers turtlebot3 and moveit.
Copy file name to clipboardExpand all lines: demos/turtlebot3_integration/README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ This demo demonstrates:
23
23
## Prerequisites
24
24
25
25
- Docker and docker-compose
26
-
- X11 display server (Linux with GUI, or XQuartz on macOS)
26
+
-(Optional) X11 display server for the Gazebo GUI on Linux with a desktop. Not needed on macOS or headless hosts - the demo falls back to headless automatically.
**Note:** By default, the demo runs in **daemon mode** with **Gazebo GUI** enabled. This allows you to interact with ROS 2 while the demo is running.
47
47
48
+
**On macOS:** Docker Desktop has no X server, so `run-demo.sh` detects this and starts **headless automatically** - no XQuartz needed. The Gazebo 3D window is not shown, but the simulation, Nav2, ros2_medkit, the REST API (`http://localhost:8080`) and the Web UI (`http://localhost:3000`) all run. Drive the demo from the Web UI and the helper scripts (`./send-nav-goal.sh`, fault injection). The same auto-fallback applies to any host without a `DISPLAY` (for example a headless Linux server).
0 commit comments