Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 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
227ff12
add workstation template and battery example
TablewareBox Aug 19, 2025
02c7936
feat: add sk & ak
Xuwznln Aug 20, 2025
9f823a4
update workstation base
TablewareBox Aug 21, 2025
14bc2e6
Create workstation_architecture.md
TablewareBox Aug 21, 2025
ae3c110
refactor: workstation_base 重构为仅含业务逻辑,通信和子设备管理交给 ProtocolNode
TablewareBox Aug 21, 2025
5ec8a57
refactor: ProtocolNode→WorkstationNode
TablewareBox Aug 25, 2025
7d8e6d0
Add:msgs.action (#83)
ZiWei09 Aug 26, 2025
1ec642e
update: Workstation dev 将版本号从 0.10.3 更新为 0.10.4 (#84)
ZiWei09 Aug 26, 2025
332b33c
simplify resource system
TablewareBox Aug 27, 2025
82d9ef6
uncompleted refactor
TablewareBox Aug 27, 2025
ce5bab3
example for use WorkstationBase
TablewareBox Aug 27, 2025
cd84e26
feat: websocket
Xuwznln Aug 28, 2025
bbbdb06
feat: websocket test
Xuwznln Aug 28, 2025
1902735
feat: workstation example
Xuwznln Aug 28, 2025
68513b5
feat: action status
Xuwznln Aug 29, 2025
a312de0
fix: station自己的方法注册错误
Xuwznln Aug 30, 2025
bdddbd5
fix: 还原protocol node处理方法
Xuwznln Aug 30, 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
e500628
重新规定了版位推荐的入参
ElijahChang929 Sep 18, 2025
01f8816
update registry with nested obj
Xuwznln Sep 18, 2025
da4bd92
fix protocol node log_message, added create_resource return value
Xuwznln Sep 18, 2025
6f8f070
fix protocol node log_message, added create_resource return value
Xuwznln Sep 18, 2025
2eaa0ca
try fix add protocol
Xuwznln Sep 18, 2025
a1a55a2
fix resource_add
Xuwznln Sep 18, 2025
41eaa88
修复移液站错误的aspirate注册表
Xuwznln Sep 18, 2025
ace98a4
Feature/xprbalance-zhida (#80)
Andy6M Sep 19, 2025
762c3c7
重新补全zhida注册表
Xuwznln Sep 19, 2025
768f438
PRCXI9320 json
Xuwznln Sep 19, 2025
eb70ad0
PRCXI9320 json
Xuwznln Sep 19, 2025
62f3a6d
PRCXI9320 json
Xuwznln Sep 19, 2025
7aab2ea
fix resource download
Xuwznln Sep 19, 2025
67ca45a
remove class for resource
Xuwznln Sep 19, 2025
091c9fa
Merge branch 'workstation_dev' into dev
Xuwznln Sep 19, 2025
304aebb
bump version to 0.10.6
Xuwznln Sep 19, 2025
2889e9b
更新所有注册表
Xuwznln Sep 19, 2025
4b5a83e
修复protocolnode的兼容性
Xuwznln Sep 19, 2025
301bea6
修复protocolnode的兼容性
Xuwznln Sep 19, 2025
94a7b8a
Update install md
Xuwznln Sep 19, 2025
f8ef6e0
Add Defaultlayout
ElijahChang929 Sep 19, 2025
13fd1ac
更新物料接口
Xuwznln Sep 22, 2025
f13156e
fix dict to tree/nested-dict converter
TablewareBox Sep 18, 2025
0dc2488
coin_cell_station draft
h840473807 Sep 22, 2025
34f05f2
refactor: rename "station_resource" to "deck"
TablewareBox Sep 24, 2025
a8419dc
add standardized BIOYOND resources: bottle_carrier, bottle
TablewareBox Sep 24, 2025
63ab1af
refactor and add BIOYOND resources tests
TablewareBox Sep 25, 2025
5c47cd0
add BIOYOND deck assignment and pass all tests
TablewareBox Sep 25, 2025
c3b9583
fix: update resource with correct structure; remove deprecated liquid…
TablewareBox Sep 25, 2025
ad2e143
feat: 将新威电池测试系统驱动与配置文件并入 workstation_dev_YB2 (#92)
Andy6M Sep 25, 2025
a8cc02a
add bioyond studio draft
TablewareBox Sep 25, 2025
a632fd4
bioyond station with communication init and resource sync
TablewareBox Sep 25, 2025
196e0f7
fix bioyond station and registry
TablewareBox Sep 26, 2025
622e579
fix: update resource with correct structure; remove deprecated liquid…
TablewareBox Sep 25, 2025
c6c2da6
frontend_docs
LccLink Sep 26, 2025
a5397ff
create/update resources with POST/PUT for big amount/ small amount data
TablewareBox Sep 26, 2025
14b7d52
create/update resources with POST/PUT for big amount/ small amount data
TablewareBox Sep 26, 2025
709eb0d
Merge branch 'dev' of https://github.com/dptech-corp/Uni-Lab-OS into dev
TablewareBox Sep 26, 2025
10aabb7
refactor: add itemized_carrier instead of carrier consists of Resourc…
TablewareBox Sep 29, 2025
9bbae96
Merge branch 'workstation_dev_YB2' of https://github.com/dptech-corp/…
TablewareBox Sep 29, 2025
7b426ed
create warehouse by factory func
TablewareBox Sep 30, 2025
2476821
update bioyond launch json
TablewareBox Sep 30, 2025
3fe8f4c
add child_size for itemized_carrier
TablewareBox Sep 30, 2025
1c9d2ee
fix bioyond resource io
TablewareBox Sep 30, 2025
cfc1ee6
Workstation templates: Resources and its CRUD, and workstation tasks …
TablewareBox Sep 30, 2025
5610c28
更新物料接口
Xuwznln Oct 9, 2025
54cfaf1
Workstation dev yb2 (#100)
ZiWei09 Oct 10, 2025
a8f6527
修复to_plr_resources
Xuwznln Oct 10, 2025
a1783f4
Merge remote-tracking branch 'origin/workstation_dev_YB2' into dev
Xuwznln Oct 10, 2025
67c0127
add update remove
Xuwznln Oct 10, 2025
609b600
支持选择器注册表自动生成
Xuwznln Oct 10, 2025
1f49924
修复资源添加
Xuwznln Oct 10, 2025
df33e1a
修复transfer_resource_to_another生成
Xuwznln Oct 10, 2025
0c42d60
更新transfer_resource_to_another参数,支持spot入参
Xuwznln Oct 10, 2025
704e13f
新增test_resource动作
Xuwznln Oct 10, 2025
174b191
fix host_node error
Xuwznln Oct 10, 2025
4b43734
fix host_node test_resource error
Xuwznln Oct 10, 2025
93f0e08
fix host_node test_resource error
Xuwznln Oct 10, 2025
6fc7ed1
过滤本地动作
Xuwznln Oct 10, 2025
7f40f14
移动内部action以兼容host node
Xuwznln Oct 10, 2025
387866b
修复同步任务报错不显示的bug
Xuwznln Oct 10, 2025
3a11eb9
feat: 允许返回非本节点物料,后面可以通过decoration进行区分,就不进行warning了
Xuwznln Oct 10, 2025
81fd829
update todo
Xuwznln Oct 10, 2025
88c4d1a
modify bioyond/plr converter, bioyond resource registry, and tests
TablewareBox Oct 10, 2025
25d46dc
pass the tests
TablewareBox Oct 10, 2025
c8d16c7
update todo
Xuwznln Oct 11, 2025
5f18789
add conda-pack-build.yml
Xuwznln Oct 12, 2025
dec474e
add auto install script for conda-pack-build.yml
Xuwznln Oct 12, 2025
15ce0d6
update conda-pack-build.yml
Xuwznln Oct 12, 2025
299f010
update conda-pack-build.yml
Xuwznln Oct 12, 2025
0b8bdf5
update conda-pack-build.yml
Xuwznln Oct 12, 2025
9aa97ed
update conda-pack-build.yml
Xuwznln Oct 12, 2025
3d95c98
update conda-pack-build.yml
Xuwznln Oct 12, 2025
040073f
Add version in __init__.py
Xuwznln Oct 12, 2025
434b9e9
Update conda-pack-build.yml
Xuwznln Oct 12, 2025
6422fa5
Update conda-pack-build.yml (with mamba)
Xuwznln Oct 12, 2025
43b992e
Update conda-pack-build.yml
Xuwznln Oct 12, 2025
ec882df
Fix FileNotFoundError
Xuwznln Oct 12, 2025
05a3ff6
Try fix 'charmap' codec can't encode characters in position 16-23: ch…
Xuwznln Oct 12, 2025
2455ca1
Fix unilabos msgs search error
Xuwznln Oct 12, 2025
65abc5d
Fix environment_check.py
Xuwznln Oct 12, 2025
18b0bb3
Update recipe.yaml
Xuwznln Oct 12, 2025
40fb1ea
Merge branch 'main' into dev
Xuwznln Oct 12, 2025
9fa3688
Update registry. Update uuid loop figure method. Update install docs.
Xuwznln Oct 12, 2025
4989f65
Fix nested conda pack
Xuwznln Oct 12, 2025
00e668e
Fix one-key installation path error
Xuwznln Oct 12, 2025
7c7f1b3
Bump version to 0.10.7
Xuwznln Oct 12, 2025
b263a7e
Workshop bj (#99)
ZiWei09 Oct 12, 2025
0f976a1
电池装配工站二次开发教程(带目录)上传至dev (#94)
lixinyu1011 Oct 12, 2025
2d4ecec
Update prcxi driver & fix transfer_liquid mix_times (#90)
shiyubo0410 Oct 12, 2025
0fe62d6
Update registry from pr
Xuwznln Oct 12, 2025
735be06
fix ony-key script not exist
Xuwznln Oct 12, 2025
54f7518
clean files
Xuwznln Oct 12, 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: 5 additions & 3 deletions .conda/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package:
name: unilabos
version: 0.10.4
version: 0.10.7

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 @@ -32,11 +31,14 @@ requirements:
- python ==3.11.11
- pip
- setuptools
- zstd
- zstandard
run:
- conda-forge::python ==3.11.11
- compilers
- cmake
- zstd
- zstandard
- ninja
- if: unix
then:
Expand All @@ -61,7 +63,7 @@ requirements:
- uvicorn
- gradio
- flask
- websocket
- websockets
- ipython
- jupyter
- jupyros
Expand Down
338 changes: 207 additions & 131 deletions .github/workflows/conda-pack-build.yml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ configs/
temp/
output/
unilabos_data/
pyrightconfig.json
## Python

# Byte-compiled / optimized / DLL files
Expand Down Expand Up @@ -246,3 +247,5 @@ local_test2.py
ros-humble-unilabos-msgs-0.9.13-h6403a04_5.tar.bz2
*.bz2
test_config.py


15 changes: 15 additions & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
156 Xuwznln <18435084+Xuwznln@users.noreply.github.com>
39 Junhan Chang <changjh@dp.tech>
9 wznln <18435084+Xuwznln@users.noreply.github.com>
8 Guangxin Zhang <guangxin.zhang.bio@gmail.com>
5 ZiWei <131428629+ZiWei09@users.noreply.github.com>
2 Junhan Chang <changjh@pku.edu.cn>
2 Xie Qiming <97236197+Andy6M@users.noreply.github.com>
1 Harvey Que <103566763+Mile-Away@users.noreply.github.com>
1 Junhan Chang <1700011741@pku.edu.cn>
1 LccLink <1951855008@qq.com>
1 h840473807 <47357934+h840473807@users.noreply.github.com>
1 lixinyu1011 <61094742+lixinyu1011@users.noreply.github.com>
1 shiyubo0410 <shiyubo@dp.tech>
1 王俊杰 <1800011822@pku.edu.cn>
1 王俊杰 <43375851+wjjxxx@users.noreply.github.com>
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 接口进行调用,以实现复杂的移液流程。
2 changes: 1 addition & 1 deletion docs/concepts/02-topology-and-chemputer-compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Uni-Lab 的组态图当前支持 node-link json 和 graphml 格式,其中包
对用户来说,“直接操作设备执行单个指令”不是个真实需求,真正的需求是**“执行对实验有意义的单个完整动作”——加入某种液体多少量;萃取分液;洗涤仪器等等。就像实验步骤文字书写的那样。**

而这些对实验有意义的单个完整动作,**一般需要多个设备的协同**,还依赖于他们的**物理连接关系(管道相连;机械臂可转运)**。
于是 Uni-Lab 实现了抽象的“工作站”,即注册表中的 `workstation` 设备(`ProtocolNode`类)来处理编译、规划操作。以泵骨架组成的自动有机实验室为例,设备管道连接关系如下:
于是 Uni-Lab 实现了抽象的“工作站”,即注册表中的 `workstation` 设备(`WorkstationNode`类)来处理编译、规划操作。以泵骨架组成的自动有机实验室为例,设备管道连接关系如下:

![topology](image/02-topology-and-chemputer-compile/topology.png)

Expand Down
Loading
Loading