RViz Screenshot Loop
If the task is not RViz-specific, use gui-screenshot-loop instead.
When To Use
- •You need to see RViz or other GUI state while debugging ROS.
- •You want to verify fixed frame, display status, or visual artifacts after running ROS commands.
Prereqs
- •X11 session.
- •MCP server
screenshotis configured in~/.codex/config.tomland points to~/.codex/mcp-servers/screenshot/server.py.
Quick Discovery
- •List monitors:
xrandr --listmonitors - •List windows:
wmctrl -l - •Find RViz windows:
xdotool search --name '.*RViz.*'
Tool Calls (MCP)
Use the MCP tool screenshot.screenshot:
- •Full screen:
- •
{"mode":"full"}
- •
- •Monitor by index:
- •
{"mode":"monitor","monitor":1}
- •
- •Monitor by name:
- •
{"mode":"monitor","monitor_name":"DP-2"}
- •
- •Window by title (if multiple matches, provide index):
- •
{"mode":"window","window_title":"RViz","window_index":0}
- •
- •Window by id (most reliable):
- •
{"mode":"window","window_id":"0x064001f6"}
- •
- •Region:
- •
{"mode":"region","x":2600,"y":50,"width":1800,"height":1000}
- •
Optional:
- •
max_width=0to keep full resolution.
Workflow
- •Run your ROS or sim command.
- •Capture RViz with
mode="window"(preferwindow_id). - •Read the RViz text/status (Global Status, TF, fixed frame, PointCloud status).
- •If the user asked for sim bringup, use
sim-startupskill first, then capture RViz. - •If debugging TF or topics, use
ros2-debuggingskill first, then capture RViz to confirm.
Failure Handling
- •If window title matches multiple IDs, pick the correct one from
wmctrl -land usewindow_id.