Job Orchestration
Compiled RobotRoss knowledge page generated from RobotRoss source code, architecture notes, and operational documentation.
Job Orchestration Subsystem
1. Role
The Job Orchestration subsystem is the central "brain" of the RobotRoss artist side. It is primarily implemented in bob_ross.py and coordinates all other subsystems to fulfill drawing orders.
2. Main Orchestrator: bob_ross.py
This script manages the high-level workflow of a drawing job:
- Order Intake: Accepts commands like
sketch,write,draw, orsvg. - Readiness Check: Verifies hardware connection, calibration state, and local model (Ollama) availability.
- Locking Mechanism: Uses
/tmp/robot_ross_running.lockto ensure only one job runs at a time. - Narration Generation: Calls Apertus 8B to generate poetic commentary based on the job prompt.
- Video Proof Control: Triggers OBS Studio recording via WebSocket.
- Execution Control: Spawns hardware-level scripts (
huenit_svg.py, etc.) to move the arm. - Cleanup: Releases the job lock and triggers post-processing of the video proof.
3. Job Lifecycle
The full job lifecycle is documented in Overview.
4. Notes and Open Points
- Error Recovery: The current implementation of
bob_ross.pyuses a job lock but does not explicitly document how it handles mid-job hardware failures or power loss. If a job is interrupted, the lock might remain, requiring manual intervention. - Hyphenation Logic:
bob_ross.pyincludes a custom_hyphenate_wordfunction for text wrapping. It is unclear if this logic is optimized for all languages or only English/German.
Sources:
~/.openclaw/workspace/skills/robot-ross/bob_ross.pyAGENTS/CONTEXT/robot_ross_artist.md