Roy 19ca6b5db8 v0.11.3
ci(deps): bump actions/deploy-pages from 4 to 5 (#251)

Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

ci(deps): bump actions/configure-pages from 5 to 6 (#252)

Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

ci(deps): bump actions/upload-pages-artifact from 4 to 5 (#260)

Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

ci(deps): bump conda-incubator/setup-miniconda from 3 to 4 (#261)

Bumps [conda-incubator/setup-miniconda](https://github.com/conda-incubator/setup-miniconda) from 3 to 4.
- [Release notes](https://github.com/conda-incubator/setup-miniconda/releases)
- [Changelog](https://github.com/conda-incubator/setup-miniconda/blob/main/CHANGELOG.md)
- [Commits](https://github.com/conda-incubator/setup-miniconda/compare/v3...v4)

---
updated-dependencies:
- dependency-name: conda-incubator/setup-miniconda
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

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:45:17 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 22:28:31 +08:00
2026-05-23 23:45:17 +08:00
2026-05-23 23:45:17 +08:00
2025-04-17 15:19:47 +08:00
2026-03-22 04:25:07 +08:00
2026-03-22 04:25:07 +08:00
2026-03-22 04:25:07 +08:00
2025-11-15 03:15:44 +08:00
2025-04-17 14:19:48 +08:00
2026-01-07 20:46:23 +08:00
2026-05-23 23:45:17 +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%