pyrobosim.web.headless

A minimal stand-in for the Qt GUI, used by the web frontend.

The web app renders by polling the world directly, but the core world model still calls a small set of GUI hooks (world.gui.canvas.*), and some examples wait for world.gui to be set. HeadlessGui implements exactly the interface that pyrobosim.core accesses on the GUI object:

  • Structural-change hooks (pick/place/open/close/detect/plan) bump a shared change_count, so the web engine can cheaply detect discrete changes.

  • navigate_signal performs navigation on a background thread, mirroring the Qt GUI’s navigation runner, since core delegates navigation to the GUI.

  • show_planner_and_path_signal stashes the supplied path and a snapshot of the planner graphs per robot, which is what the web figure renders.

This module exists purely for compatibility with the Qt GUI, and should be removed when PyRoboSim fully switches over to the web frontend.

Classes

HeadlessCanvas(bump)

No-op stand-in for the Qt WorldCanvas.

HeadlessGui()

Minimal world.gui stand-in so core's GUI hooks work in web mode.