How deepmodeling/uni-lab-os works
Uni-Lab-OS is a laboratory automation platform: it configures a lab system, connects device drivers and resources, and runs experimental workflows across equipment. Its documented capabilities include multiple protocols and cloud connectivity. The sampled startup code loads configuration and a device graph, and the sampled web controller dispatches action goals to a host node. Other major subsystems are represented from the README and file tree; their internal wiring is not asserted where source was not sampled.
Main entry points: main.py System launcher · host_node.py Host node · base_device_node.py Device nodes · devices Equipment drivers
Components 16
System startup
- System launcher
unilabos/app/main.py - Configuration
unilabos/config/config.py
Experiment workflows
- Workflow conversion
unilabos/workflow - Protocol compilers
unilabos/compile
Device runtime
- Host node
unilabos/ros/nodes/presets/host_node.py - Device nodes
unilabos/ros/nodes/base_device_node.py - Equipment drivers
unilabos/devices - Device communications
unilabos/device_comms - Device registry
unilabos/registry/registry.py
Lab resources
- Resource tracking
unilabos/resources - Resource visualization
unilabos/ros/nodes/presets/resource_mesh_manager.py
User and cloud interfaces
- Action controller
unilabos/app/web/controller.py - Web API
unilabos/app/web/api.py - Workstation reports
unilabos/devices/workstation/workstation_http_service.py
Other components
- Operator
- Cloud services
Connections 14
- Operator → System launcher: starts system
- System launcher → Configuration: loads config
- Operator → Web API: requests control
- Web API → Action controller: routes requests
- Action controller → Host node: sends action goal
- Host node → Device nodes: manages devices
- Device nodes → Equipment drivers: invokes drivers
- Equipment drivers → Device communications: uses interfaces
- System launcher → Device registry: loads device system
- System launcher → Resource tracking: loads resource graph
- Resource visualization → Resource tracking: publishes resource poses
- Operator → Workflow conversion: provides workflow
- Workstation reports → Cloud services: reports completion
- System launcher → Cloud services: requests remote resources