Roy bb0c68fd18 Add PLC communication guide (#264)
* Add post process station and related resources

- Created JSON configuration for post_process_station and its child post_process_deck.
- Added YAML definitions for post_process_station, bottle carriers, bottles, and deck resources.
- Implemented Python classes for bottle carriers, bottles, decks, and warehouses to manage resources in the post process.
- Established a factory method for creating warehouses with customizable dimensions and layouts.
- Defined the structure and behavior of the post_process_deck and its associated warehouses.

* feat(post_process): add post_process_station and related warehouse functionality

- Introduced post_process_station.json to define the post-processing station structure.
- Implemented post_process_warehouse.py to create warehouse configurations with customizable layouts.
- Added warehouses.py for specific warehouse configurations (4x3x1).
- Updated post_process_station.yaml to reflect new module paths for OpcUaClient.
- Refactored bottle carriers and bottles YAML files to point to the new module paths.
- Adjusted deck.yaml to align with the new organizational structure for post_process_deck.

* Add PLC communication guide for AI4M

Add a comprehensive developer guide (docs/developer_guide/add_PLC.md) describing the PLC integration standard used by Uni-Lab for workstation devices, using the AI4M implementation as reference. Covers rationale for using OPC UA, the opcua_nodes_*.csv node-table format, communication base classes (BaseOpcUaClient / OpcUaClientWithSubscription), data types, and subscription/cache/reconnect behavior. Documents driver patterns for AI4MDevice, three handshake paradigms (pulse, parameter handshake, id-based), registry/graph configuration (YAML/JSON), debugging tips (KEPServerEX sim, standalone run), and a checklist for onboarding new PLC-controlled equipment.
2026-05-23 23:35:54 +08:00
2026-05-14 18:22:09 +08:00
2026-05-08 00:08:04 +08:00
2026-05-23 21:36:37 +08:00
2026-05-23 23:35:54 +08:00
2026-05-14 18:22:09 +08:00
2026-01-27 13:31:24 +08:00
2026-02-02 17:19:07 +08:00
2026-05-20 18:14:13 +08:00
2026-05-14 18:22:09 +08:00
2025-04-17 15:19:47 +08:00
2026-03-21 19:26:24 +08:00
2026-03-19 14:14:40 +08:00
2026-03-19 14:14:40 +08:00
2025-11-15 03:16:04 +08:00
2025-04-17 14:19:48 +08:00
2026-01-27 13:31:24 +08:00
2026-01-07 20:40:02 +08:00
2026-01-27 13:31:24 +08:00
2026-01-27 13:31:24 +08:00
2026-05-14 18:22:09 +08:00

Uni-Lab Logo

Uni-Lab-OS

English | 中文

GitHub Stars GitHub Forks GitHub Issues GitHub License

Uni-Lab-OS is a platform for laboratory automation, designed to connect and control various experimental equipment, enabling automation and standardization of experimental workflows.

Key Features

  • Multi-device integration management
  • Automated experimental workflows
  • Cloud connectivity capabilities
  • Flexible configuration system
  • Support for multiple experimental protocols

Documentation

Detailed documentation can be found at:

Quick Start

1. Setup Conda Environment

Uni-Lab-OS recommends using mamba for environment management. Choose the package that fits your needs:

Package Use Case Contents
unilabos Recommended for most users Complete package, ready to use
unilabos-env Developers (editable install) Environment only, install unilabos via pip
unilabos-full Simulation/Visualization unilabos + ROS2 Desktop + Gazebo + MoveIt
# Create new environment
mamba create -n unilab python=3.11.14
mamba activate unilab

# Option A: Standard installation (recommended for most users)
mamba install uni-lab::unilabos -c robostack-staging -c conda-forge

# Option B: For developers (editable mode development)
mamba install uni-lab::unilabos-env -c robostack-staging -c conda-forge
# Then install unilabos and dependencies:
git clone https://github.com/deepmodeling/Uni-Lab-OS.git && cd Uni-Lab-OS
pip install -e .
uv pip install -r unilabos/utils/requirements.txt

# Option C: Full installation (simulation/visualization)
mamba install uni-lab::unilabos-full -c robostack-staging -c conda-forge

When to use which?

  • unilabos: Standard installation for production deployment and general usage (recommended)
  • unilabos-env: For developers who need pip install -e . editable mode, modify source code
  • unilabos-full: For simulation (Gazebo), visualization (rviz2), and Jupyter notebooks

2. Clone Repository (Optional, for developers)

# Clone the repository (only needed for development or examples)
git clone https://github.com/deepmodeling/Uni-Lab-OS.git
cd Uni-Lab-OS
  1. Start Uni-Lab System

Please refer to Documentation - Boot Examples

  1. Best Practice

See Best Practice Guide

Message Format

Uni-Lab-OS uses pre-built unilabos_msgs for system communication. You can find the built versions on the GitHub Releases page.

Citation

If you use Uni-Lab-OS in academic research, please cite:

@article{gao2025unilabos,
    title = {UniLabOS: An AI-Native Operating System for Autonomous Laboratories},
    doi = {10.48550/arXiv.2512.21766},
    publisher = {arXiv},
    author = {Gao, Jing and Chang, Junhan and Que, Haohui and Xiong, Yanfei and
              Zhang, Shixiang and Qi, Xianwei and Liu, Zhen and Wang, Jun-Jie and
              Ding, Qianjun and Li, Xinyu and Pan, Ziwei and Xie, Qiming and
              Yan, Zhuang and Yan, Junchi and Zhang, Linfeng},
    year = {2025}
}

License

This project uses a dual licensing structure:

  • Main Framework: GPL-3.0 - see LICENSE
  • Device Drivers (unilabos/devices/): DP Technology Proprietary License

See NOTICE for complete licensing details.

Project Statistics

Stars Trend

Star History Chart

Contact Us

Description
No description provided
Readme GPL-3.0 225 MiB
Languages
Python 86.8%
Jupyter Notebook 10.1%
HTML 2.4%
Shell 0.2%
CSS 0.2%
Other 0.2%