Lab Orchestrator Documentation
Lab Orchestrator is a general-purpose orchestrator for scientific laboratories that integrates with SiLA servers and uses pythonLab as a process description language. It manages and schedules complex laboratory workflows, coordinating devices, labware containers, and process steps.
Documentation Contents
- Getting Started - Installation and quick start guide
- Configuration - How to configure Lab Orchestrator and lab resources
- Writing Processes - Guide to creating PythonLab workflows
- SiLA Integration - Using the SiLA server interface
- API Reference - Core classes and methods
- Deployment - Running in production with Docker
Quick Links
Key Features
- Job Shop Scheduling: Optimal scheduling of laboratory processes with device allocation
- SiLA 2 Integration: Standard protocol for laboratory automation
- PythonLab Processes: Intuitive Python-based process description language
- Workflow Visualization: NetworkX-based workflow graphs
- Real-time Monitoring: Dash web interface for process tracking
- Database Integration: Experiment tracking and status reporting
- Container Management: Track labware containers through complex workflows
Architecture Overview
Lab Orchestrator is built around five main components:
- SchedulingInstance (JSSP) - Central data structure holding processes, steps, containers, and devices
- ScheduleManager - Handles scheduling logic and device allocation
- WFGManager - Manages workflow graphs for visualization
- WorkerInterface - Executes process steps by interfacing with lab devices
- WorkerObserver - Monitors execution and triggers rescheduling
Getting Help
- Check the documentation sections listed above
- Run tests to see example configurations:
invoke test - View example processes in
tests/test_data/ - Report issues at the project repository