Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
a66369e
Cleanup registry to be easy-understanding (#76)
TablewareBox Aug 3, 2025
46aa7a7
fix: workstation handlers and vessel_id parsing
TablewareBox Aug 4, 2025
343f394
fix: working dir error when input config path
Xuwznln Aug 4, 2025
5cd0f72
modify default discovery_interval to 15s
Xuwznln Aug 4, 2025
98ce360
feat: add trace log level
Xuwznln Aug 4, 2025
06e6676
feat: 添加ChinWe设备控制类,支持串口通信和电机控制功能 (#79)
ZiWei09 Aug 6, 2025
5b2d066
fix: drop_tips not using auto resource select
Xuwznln Aug 6, 2025
6081dac
fix: discard_tips error
Xuwznln Aug 6, 2025
37d8108
fix: discard_tips
Xuwznln Aug 6, 2025
0605f30
fix: prcxi_res
Xuwznln Aug 6, 2025
e6c556c
add: prcxi res
Xuwznln Aug 6, 2025
01cbbba
feat: workstation example
Xuwznln Aug 7, 2025
662c063
fix pumps and liquid_handler handle
TablewareBox Aug 7, 2025
fe1a029
feat: 优化protocol node节点运行日志
Xuwznln Aug 10, 2025
50e93cb
fix all protocol_compilers and remove deprecated devices
TablewareBox Aug 11, 2025
573bcf1
feat: 新增use_remote_resource参数
Xuwznln Aug 11, 2025
eac9b8a
fix and remove redundant info
TablewareBox Aug 11, 2025
ea60cbe
bugfixes on organic protocols
TablewareBox Aug 12, 2025
f791c1a
fix filter protocol
TablewareBox Aug 12, 2025
e8c1f76
fix protocol node
Xuwznln Aug 12, 2025
e570ba4
临时兼容错误的driver写法
Xuwznln Aug 12, 2025
0063df4
fix: prcxi import error
Xuwznln Aug 12, 2025
a1538da
use call_async in all service to avoid deadlock
TablewareBox Aug 12, 2025
8a669ac
fix: figure_resource
Xuwznln Aug 13, 2025
4b7bde6
Update recipe.yaml
Xuwznln Aug 13, 2025
02c7936
feat: add sk & ak
Xuwznln Aug 20, 2025
cd84e26
feat: websocket
Xuwznln Aug 28, 2025
bbbdb06
feat: websocket test
Xuwznln Aug 28, 2025
68513b5
feat: action status
Xuwznln Aug 29, 2025
cd0428e
fix: build
Xuwznln Aug 30, 2025
78c04ac
fix: missing job_id key
Xuwznln Sep 1, 2025
e3b8164
ws test version 1
Xuwznln Sep 2, 2025
f4d4eb0
ws test version 2
Xuwznln Sep 2, 2025
831f454
ws protocol
Xuwznln Sep 2, 2025
0cfc6f4
增加物料关系上传日志
Xuwznln Sep 3, 2025
5dda940
增加物料关系上传日志
Xuwznln Sep 3, 2025
2a60a6c
修正物料关系上传
Xuwznln Sep 3, 2025
a27b933
修复工站的tracker实例追踪失效问题
Xuwznln Sep 3, 2025
0b56efc
增加handle检测,增加material edge关系上传
Xuwznln Sep 4, 2025
4e52c7d
修复event loop错误
Xuwznln Sep 4, 2025
6ddceb8
修复edge上报错误
Xuwznln Sep 4, 2025
5516502
修复async错误
Xuwznln Sep 4, 2025
961752f
更新schema的title字段
Xuwznln Sep 6, 2025
c25283a
主机节点信息等支持自动刷新
Xuwznln Sep 7, 2025
361eae2
注册表编辑器
Xuwznln Sep 7, 2025
f68340d
修复status密集发送时,消息出错
Xuwznln Sep 10, 2025
a722636
增加addr参数
Xuwznln Sep 10, 2025
8cffd3d
fix: addr param
Xuwznln Sep 10, 2025
81bcc19
fix: addr param
Xuwznln Sep 10, 2025
22b88c8
取消labid 和 强制config输入
Xuwznln Sep 10, 2025
1ae274a
Add action definitions for LiquidHandlerSetGroup and LiquidHandlerTra…
ElijahChang929 Sep 10, 2025
5676dd6
Add LiquidHandlerSetGroup and LiquidHandlerTransferGroup actions to C…
ElijahChang929 Sep 10, 2025
58d1cc4
Add set_group and transfer_group methods to PRCXI9300Handler and upda…
ElijahChang929 Sep 10, 2025
513e848
result_info改为字典类型
Xuwznln Sep 11, 2025
95b6fd0
新增uat的地址替换
Xuwznln Sep 11, 2025
cde7956
runze multiple pump support
Xuwznln Sep 13, 2025
711a7c6
remove runze multiple software obtainer
Xuwznln Sep 13, 2025
c7a0ff6
support multiple backbone
Xuwznln Sep 13, 2025
2493fb9
Update runze pump format
Xuwznln Sep 13, 2025
bdf27a7
Correct runze multiple backbone
Xuwznln Sep 13, 2025
9e214c5
Update runze_multiple_backbone
Xuwznln Sep 13, 2025
b600fc6
Correct runze pump multiple receive method.
Xuwznln Sep 13, 2025
1cd0791
Correct runze pump multiple receive method.
Xuwznln Sep 13, 2025
94cdcbf
对于PRCXI9320的transfer_group,一对多和多对多
ElijahChang929 Sep 14, 2025
2ca0311
移除MQTT,更新launch文档,提供注册表示例文件,更新到0.10.5
Xuwznln Sep 14, 2025
fc669f0
fix import error
Xuwznln Sep 15, 2025
ffa841a
fix dupe upload registry
Xuwznln Sep 15, 2025
779c969
refactor ws client
Xuwznln Sep 15, 2025
4888f02
add server timeout
Xuwznln Sep 16, 2025
50c7777
Fix: run-column with correct vessel id (#86)
TablewareBox Sep 15, 2025
09549d2
resource_update use resource_add
Xuwznln Sep 17, 2025
573c724
新增版位推荐功能
ElijahChang929 Sep 17, 2025
c23cb44
add neware battery station
TablewareBox Sep 18, 2025
104db0f
feat: 添加新威电池测试系统设备支持
Andy6M Sep 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .conda/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package:
name: unilabos
version: 0.10.3
version: 0.10.5

source:
path: ../unilabos
Expand All @@ -10,7 +10,6 @@ build:
python:
entry_points:
- unilab = unilabos.app.main:main
- unilab-register = unilabos.app.register:main
script:
- set PIP_NO_INDEX=
- if: win
Expand All @@ -36,6 +35,7 @@ requirements:
- conda-forge::python ==3.11.11
- compilers
- cmake
- zstd
- ninja
- if: unix
then:
Expand All @@ -60,7 +60,7 @@ requirements:
- uvicorn
- gradio
- flask
- websocket
- websockets
- ipython
- jupyter
- jupyros
Expand All @@ -85,5 +85,5 @@ requirements:

about:
repository: https://github.com/dptech-corp/Uni-Lab-OS
license: GPL-3.0
license: GPL-3.0-only
description: "Uni-Lab-OS"
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# Uni-Lab-OS

<!-- Language switcher -->

**English** | [中文](README_zh.md)

[![GitHub Stars](https://img.shields.io/github/stars/dptech-corp/Uni-Lab-OS.svg)](https://github.com/dptech-corp/Uni-Lab-OS/stargazers)
Expand Down Expand Up @@ -74,4 +75,4 @@ This project is licensed under GPL-3.0 - see the [LICENSE](LICENSE) file for det

## Contact Us

- GitHub Issues: [https://github.com/dptech-corp/Uni-Lab-OS/issues](https://github.com/dptech-corp/Uni-Lab-OS/issues)
- GitHub Issues: [https://github.com/dptech-corp/Uni-Lab-OS/issues](https://github.com/dptech-corp/Uni-Lab-OS/issues)
9 changes: 5 additions & 4 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
# Uni-Lab-OS

<!-- Language switcher -->

[English](README.md) | **中文**

[![GitHub Stars](https://img.shields.io/github/stars/dptech-corp/Uni-Lab-OS.svg)](https://github.com/dptech-corp/Uni-Lab-OS/stargazers)
[![GitHub Forks](https://img.shields.io/github/forks/dptech-corp/Uni-Lab-OS.svg)](https://github.com/dptech-corp/Uni-Lab-OS/network/members)
[![GitHub Issues](https://img.shields.io/github/issues/dptech-corp/Uni-Lab-OS.svg)](https://github.com/dptech-corp/Uni-Lab-OS/issues)
[![GitHub License](https://img.shields.io/github/license/dptech-corp/Uni-Lab-OS.svg)](https://github.com/dptech-corp/Uni-Lab-OS/blob/main/LICENSE)

Uni-Lab-OS是一个用于实验室自动化的综合平台,旨在连接和控制各种实验设备,实现实验流程的自动化和标准化。
Uni-Lab-OS 是一个用于实验室自动化的综合平台,旨在连接和控制各种实验设备,实现实验流程的自动化和标准化。

## 🏆 比赛

Expand All @@ -34,7 +35,7 @@ Uni-Lab-OS是一个用于实验室自动化的综合平台,旨在连接和控

## 快速开始

1. 配置Conda环境
1. 配置 Conda 环境

Uni-Lab-OS 建议使用 `mamba` 管理环境。根据您的操作系统选择适当的环境文件:

Expand All @@ -43,7 +44,7 @@ Uni-Lab-OS 建议使用 `mamba` 管理环境。根据您的操作系统选择适
mamba create -n unilab uni-lab::unilabos -c robostack-staging -c conda-forge
```

2. 安装开发版Uni-Lab-OS:
2. 安装开发版 Uni-Lab-OS:

```bash
# 克隆仓库
Expand Down Expand Up @@ -76,4 +77,4 @@ Uni-Lab-OS 使用预构建的 `unilabos_msgs` 进行系统通信。您可以在

## 联系我们

- GitHub Issues: [https://github.com/dptech-corp/Uni-Lab-OS/issues](https://github.com/dptech-corp/Uni-Lab-OS/issues)
- GitHub Issues: [https://github.com/dptech-corp/Uni-Lab-OS/issues](https://github.com/dptech-corp/Uni-Lab-OS/issues)
92 changes: 53 additions & 39 deletions docs/boot_examples/liquid_handler.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,38 +13,37 @@
```json
{
"nodes": [
{
"id": "PLR_STATION",
"name": "PLR_LH_TEST",
"parent": null,
"type": "device",
"class": "liquid_handler",
"config": {},
"data": {},
"children": [
"deck"
]
},
{
"id": "PLR_STATION",
"name": "PLR_LH_TEST",
"parent": null,
"type": "device",
"class": "liquid_handler",
"config": {},
"data": {},
"children": ["deck"]
},
{
"id": "deck",
"name": "deck",
"type": "container",
"class": null,
"parent": "PLR_STATION",
"children": [
"trash",
"trash_core96",
"teaching_carrier",
"tip_rack",
"plate"
]
"trash",
"trash_core96",
"teaching_carrier",
"tip_rack",
"plate"
]
}
],
"links": []
}
```

配置文件定义了移液站的组成部分,主要包括:

- 移液站本体(LiquidHandler)- 设备类型
- 移液站携带物料实例(deck)- 物料类型

Expand All @@ -55,7 +54,7 @@
使用以下命令启动移液站设备:

```bash
unilab -g test/experiments/plr_test.json --app_bridges ""
unilab -g test/experiments/plr_test.json --ak [通过网页获取的ak值] --sk [通过网页获取的sk值]
```

### 2. 执行枪头插入操作
Expand All @@ -66,35 +65,50 @@ unilab -g test/experiments/plr_test.json --app_bridges ""
ros2 action send_goal /devices/PLR_STATION/pick_up_tips unilabos_msgs/action/_liquid_handler_pick_up_tips/LiquidHandlerPickUpTips "{ tip_spots: [ { id: 'tip_rack_tipspot_0_0', name: 'tip_rack_tipspot_0_0', sample_id: null, children: [], parent: 'tip_rack', type: 'device', config: { position: { x: 7.2, y: 68.3, z: -83.5 }, size_x: 9.0, size_y: 9.0, size_z: 0, rotation: { x: 0, y: 0, z: 0, type: 'Rotation' }, category: 'tip_spot', model: null, type: 'TipSpot', prototype_tip: { type: 'HamiltonTip', total_tip_length: 95.1, has_filter: true, maximal_volume: 1065, pickup_method: 'OUT_OF_RACK', tip_size: 'HIGH_VOLUME' } }, data: { tip: { type: 'HamiltonTip', total_tip_length: 95.1, has_filter: true, maximal_volume: 1065, pickup_method: 'OUT_OF_RACK', tip_size: 'HIGH_VOLUME' }, tip_state: { liquids: [], pending_liquids: [], liquid_history: [] }, pending_tip: { type: 'HamiltonTip', total_tip_length: 95.1, has_filter: true, maximal_volume: 1065, pickup_method: 'OUT_OF_RACK', tip_size: 'HIGH_VOLUME' } } } ], use_channels: [ 0 ], offsets: [ { x: 0.0, y: 0.0, z: 0.0 } ] }"
```

此命令会通过ros通信触发移液站执行枪头插入操作,得到如下的PyLabRobot的输出日志
此命令会通过 ros 通信触发移液站执行枪头插入操作,得到如下的 PyLabRobot 的输出日志

```log
Picking up tips:
pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter
p0: tip_rack_tipspot_0_0 0.0,0.0,0.0 HamiltonTip 1065 8 95.1 Yes
pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter
p0: tip_rack_tipspot_0_0 0.0,0.0,0.0 HamiltonTip 1065 8 95.1 Yes
```

也可以登陆网页,给`tip_spots`选择`tip_rack_tipspot_0_0`,`use_channels`为`0`,`offsets`均填写`0`,同样可观察到上面的日志

## 常见问题

1. **重复插入枪头不成功**:操作编排应该符合实际操作顺序,可自行通过PyLabRobot进行测试
1. **重复插入枪头不成功**:操作编排应该符合实际操作顺序,可自行通过 PyLabRobot 进行测试

## 移液站支持的操作

移液站支持多种操作,以下是当前系统支持的操作列表:

1. **LiquidHandlerAspirate** - 吸液操作
2. **LiquidHandlerDispense** - 排液操作
3. **LiquidHandlerDiscardTips** - 丢弃枪头
4. **LiquidHandlerDropTips** - 卸下枪头
5. **LiquidHandlerDropTips96** - 卸下96通道枪头
6. **LiquidHandlerMoveLid** - 移动盖子
7. **LiquidHandlerMovePlate** - 移动板子
8. **LiquidHandlerMoveResource** - 移动资源
9. **LiquidHandlerPickUpTips** - 插入枪头
10. **LiquidHandlerPickUpTips96** - 插入96通道枪头
11. **LiquidHandlerReturnTips** - 归还枪头
12. **LiquidHandlerReturnTips96** - 归还96通道枪头
13. **LiquidHandlerStamp** - 打印标记
14. **LiquidHandlerTransfer** - 液体转移

这些操作可通过ROS2 Action接口进行调用,以实现复杂的移液流程。
1. **LiquidHandlerProtocolCreation** - 协议创建
2. **LiquidHandlerAspirate** - 吸液操作
3. **LiquidHandlerDispense** - 排液操作
4. **LiquidHandlerDiscardTips** - 丢弃枪头
5. **LiquidHandlerDropTips** - 卸下枪头
6. **LiquidHandlerDropTips96** - 卸下 96 通道枪头
7. **LiquidHandlerMoveLid** - 移动盖子
8. **LiquidHandlerMovePlate** - 移动板子
9. **LiquidHandlerMoveResource** - 移动资源
10. **LiquidHandlerPickUpTips** - 插入枪头
11. **LiquidHandlerPickUpTips96** - 插入 96 通道枪头
12. **LiquidHandlerReturnTips** - 归还枪头
13. **LiquidHandlerReturnTips96** - 归还 96 通道枪头
14. **LiquidHandlerSetLiquid** - 设置液体
15. **LiquidHandlerSetTipRack** - 设置枪头架
16. **LiquidHandlerStamp** - 打印标记
17. **LiquidHandlerTransfer** - 液体转移
18. **LiquidHandlerSetGroup** - 设置分组
19. **LiquidHandlerTransferBiomek** - Biomek 液体转移
20. **LiquidHandlerIncubateBiomek** - Biomek 孵育
21. **LiquidHandlerMoveBiomek** - Biomek 移动
22. **LiquidHandlerOscillateBiomek** - Biomek 振荡
23. **LiquidHandlerTransferGroup** - 分组转移
24. **LiquidHandlerAdd** - 添加操作
25. **LiquidHandlerMix** - 混合操作
26. **LiquidHandlerMoveTo** - 移动到指定位置
27. **LiquidHandlerRemove** - 移除操作

这些操作可通过 ROS2 Action 接口进行调用,以实现复杂的移液流程。
Loading