From b263a7e6791b83a32d8efdf99cae849d4018b27e Mon Sep 17 00:00:00 2001 From: ZiWei <131428629+ZiWei09@users.noreply.github.com> Date: Sun, 12 Oct 2025 22:54:38 +0800 Subject: [PATCH] Workshop bj (#99) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add LaiYu Liquid device integration and tests Introduce LaiYu Liquid device implementation, including backend, controllers, drivers, configuration, and resource files. Add hardware connection, tip pickup, and simplified test scripts, as well as experiment and registry configuration for LaiYu Liquid. Documentation and .gitignore for the device are also included. * feat(LaiYu_Liquid): 重构设备模块结构并添加硬件文档 refactor: 重新组织LaiYu_Liquid模块目录结构 docs: 添加SOPA移液器和步进电机控制指令文档 fix: 修正设备配置中的最大体积默认值 test: 新增工作台配置测试用例 chore: 删除过时的测试脚本和配置文件 * add * 重构: 将 LaiYu_Liquid.py 重命名为 laiyu_liquid_main.py 并更新所有导入引用 - 使用 git mv 将 LaiYu_Liquid.py 重命名为 laiyu_liquid_main.py - 更新所有相关文件中的导入引用 - 保持代码功能不变,仅改善命名一致性 - 测试确认所有导入正常工作 * 修复: 在 core/__init__.py 中添加 LaiYuLiquidBackend 导出 - 添加 LaiYuLiquidBackend 到导入列表 - 添加 LaiYuLiquidBackend 到 __all__ 导出列表 - 确保所有主要类都可以正确导入 * 修复大小写文件夹名字 --- UniLab_LaiYu_控制架构详解.md | 259 ++ XYZ_集成功能说明.md | 221 ++ test/experiments/laiyu_liquid.json | 148 + test/experiments/test_laiyu.json | 394 +++ .../liquid_transform_xyz/macro_device.xacro | 150 + .../liquid_transform_xyz/meshes/base_link.STL | Bin 0 -> 2475284 bytes .../liquid_transform_xyz/meshes/x_link.STL | Bin 0 -> 1309584 bytes .../liquid_transform_xyz/meshes/y_link.STL | Bin 0 -> 324084 bytes .../liquid_transform_xyz/meshes/z_link.STL | Bin 0 -> 213884 bytes unilabos/devices/laiyu_liquid/__init__.py | 307 ++ .../devices/laiyu_liquid/backend/__init__.py | 9 + .../laiyu_liquid/backend/laiyu_backend.py | 334 +++ .../laiyu_liquid/backend/rviz_backend.py | 209 ++ .../laiyu_liquid/config/deckconfig.json | 2620 +++++++++++++++++ .../devices/laiyu_liquid/config/deckconfig.md | 14 + .../laiyu_liquid/controllers/__init__.py | 25 + .../controllers/pipette_controller.py | 1073 +++++++ .../controllers/xyz_controller.py | 1183 ++++++++ .../devices/laiyu_liquid/core/__init__.py | 44 + .../laiyu_liquid/core/abstract_protocol.py | 529 ++++ .../laiyu_liquid/core/laiyu_liquid_main.py | 881 ++++++ .../laiyu_liquid/core/laiyu_liquid_res.py | 954 ++++++ .../devices/laiyu_liquid/docs/CHANGELOG.md | 69 + .../hardware/SOPA气动式移液器RS485控制指令.md | 267 ++ .../docs/hardware/步进电机控制指令.md | 162 + .../docs/hardware/硬件连接配置指南.md | 1281 ++++++++ unilabos/devices/laiyu_liquid/docs/readme.md | 269 ++ .../devices/laiyu_liquid/drivers/__init__.py | 30 + .../drivers/sopa_pipette_driver.py | 1079 +++++++ .../drivers/xyz_stepper_driver.py | 663 +++++ .../devices/laiyu_liquid/tests/__init__.py | 13 + .../laiyu_liquid/tests/test_deck_config.py | 315 ++ .../devices/liquid_handling/rviz_backend.py | 304 ++ unilabos/registry/devices/laiyu_liquid.yaml | 1963 ++++++++++++ .../resources/common/resource_container.yaml | 91 + unilabos/resources/plr_additional_res_reg.py | 2 + 36 files changed, 15862 insertions(+) create mode 100644 UniLab_LaiYu_控制架构详解.md create mode 100644 XYZ_集成功能说明.md create mode 100644 test/experiments/laiyu_liquid.json create mode 100644 test/experiments/test_laiyu.json create mode 100644 unilabos/device_mesh/devices/liquid_transform_xyz/macro_device.xacro create mode 100644 unilabos/device_mesh/devices/liquid_transform_xyz/meshes/base_link.STL create mode 100644 unilabos/device_mesh/devices/liquid_transform_xyz/meshes/x_link.STL create mode 100644 unilabos/device_mesh/devices/liquid_transform_xyz/meshes/y_link.STL create mode 100644 unilabos/device_mesh/devices/liquid_transform_xyz/meshes/z_link.STL create mode 100644 unilabos/devices/laiyu_liquid/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/backend/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/backend/laiyu_backend.py create mode 100644 unilabos/devices/laiyu_liquid/backend/rviz_backend.py create mode 100644 unilabos/devices/laiyu_liquid/config/deckconfig.json create mode 100644 unilabos/devices/laiyu_liquid/config/deckconfig.md create mode 100644 unilabos/devices/laiyu_liquid/controllers/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/controllers/pipette_controller.py create mode 100644 unilabos/devices/laiyu_liquid/controllers/xyz_controller.py create mode 100644 unilabos/devices/laiyu_liquid/core/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/core/abstract_protocol.py create mode 100644 unilabos/devices/laiyu_liquid/core/laiyu_liquid_main.py create mode 100644 unilabos/devices/laiyu_liquid/core/laiyu_liquid_res.py create mode 100644 unilabos/devices/laiyu_liquid/docs/CHANGELOG.md create mode 100644 unilabos/devices/laiyu_liquid/docs/hardware/SOPA气动式移液器RS485控制指令.md create mode 100644 unilabos/devices/laiyu_liquid/docs/hardware/步进电机控制指令.md create mode 100644 unilabos/devices/laiyu_liquid/docs/hardware/硬件连接配置指南.md create mode 100644 unilabos/devices/laiyu_liquid/docs/readme.md create mode 100644 unilabos/devices/laiyu_liquid/drivers/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/drivers/sopa_pipette_driver.py create mode 100644 unilabos/devices/laiyu_liquid/drivers/xyz_stepper_driver.py create mode 100644 unilabos/devices/laiyu_liquid/tests/__init__.py create mode 100644 unilabos/devices/laiyu_liquid/tests/test_deck_config.py create mode 100644 unilabos/devices/liquid_handling/rviz_backend.py create mode 100644 unilabos/registry/devices/laiyu_liquid.yaml diff --git a/UniLab_LaiYu_控制架构详解.md b/UniLab_LaiYu_控制架构详解.md new file mode 100644 index 00000000..efa3333f --- /dev/null +++ b/UniLab_LaiYu_控制架构详解.md @@ -0,0 +1,259 @@ +# UniLab 控制 LaiYu_Liquid 设备架构详解 + +## 概述 + +UniLab 通过分层架构控制 LaiYu_Liquid 设备,实现了从高级实验协议到底层硬件驱动的完整控制链路。 + +## 🏗️ 架构层次 + +### 1. 应用层 (Application Layer) +- **实验协议**: 用户定义的实验流程 +- **设备抽象**: 通过 `LaiYu_Liquid` 类提供统一接口 + +### 2. 控制层 (Control Layer) +- **LaiYuLiquidBackend**: 设备业务逻辑控制器 +- **PipetteController**: 移液器控制器 +- **XYZController**: 三轴运动控制器 + +### 3. 驱动层 (Driver Layer) +- **SOPAPipetteDriver**: SOPA 移液器驱动 +- **XYZStepperDriver**: 三轴步进电机驱动 + +### 4. 硬件层 (Hardware Layer) +- **串口通信**: 通过 `/dev/cu.usbserial-3130` 等串口设备 +- **物理设备**: 移液器和三轴运动平台 + +## 🔧 核心组件详解 + +### LaiYu_Liquid 主类 +```python +class LaiYu_Liquid: + """LaiYu液体处理设备的主要接口类""" + + def __init__(self, config: LaiYuLiquidConfig): + self.config = config + self.deck = LaiYuLiquidDeck(config) + self.backend = LaiYuLiquidBackend(config, self.deck) +``` + +**核心功能**: +- 设备配置管理 +- 工作台资源管理 +- 硬件控制接口封装 + +### LaiYuLiquidBackend 控制器 +```python +class LaiYuLiquidBackend: + """设备后端控制逻辑""" + + async def setup(self): + """初始化硬件控制器""" + # 初始化移液器控制器 + self.pipette_controller = PipetteController( + port=self.config.port, + address=self.config.address + ) + + # 初始化XYZ控制器 + self.xyz_controller = XYZController( + port=self.config.port, + baudrate=self.config.baudrate, + machine_config=MachineConfig() + ) +``` + +**核心功能**: +- 硬件初始化和连接 +- 移液操作控制 +- 运动控制 +- 错误处理和状态管理 + +## 🎯 控制流程 + +### 1. 设备初始化流程 +``` +用户代码 → LaiYu_Liquid.setup() → LaiYuLiquidBackend.setup() + ↓ +PipetteController 初始化 ← → XYZController 初始化 + ↓ ↓ +SOPAPipetteDriver.connect() XYZStepperDriver.connect() + ↓ ↓ +串口连接 (/dev/cu.usbserial-3130) +``` + +### 2. 移液操作流程 +``` +用户调用 aspirate(volume) → LaiYuLiquidBackend.aspirate() + ↓ +检查设备状态 (连接、枪头、体积) + ↓ +PipetteController.aspirate(volume) + ↓ +SOPAPipetteDriver.aspirate_volume() + ↓ +串口命令发送到移液器硬件 +``` + +### 3. 运动控制流程 +``` +用户调用 move_to(position) → LaiYuLiquidBackend.move_to() + ↓ +坐标转换和安全检查 + ↓ +XYZController.move_to_work_coord() + ↓ +XYZStepperDriver.move_to() + ↓ +串口命令发送到步进电机 +``` + +## 🔌 硬件通信 + +### 串口配置 +- **端口**: `/dev/cu.usbserial-3130` (macOS) +- **波特率**: 115200 (移液器), 可配置 (XYZ控制器) +- **协议**: SOPA协议 (移液器), 自定义协议 (XYZ) + +### 通信协议 +1. **SOPA移液器协议**: + - 地址寻址: `address` 参数 + - 命令格式: 二进制协议 + - 响应处理: 异步等待 + +2. **XYZ步进电机协议**: + - G代码风格命令 + - 坐标系管理 + - 实时状态反馈 + +## 🛡️ 安全机制 + +### 1. 连接检查 +```python +def _check_hardware_ready(self): + """检查硬件是否就绪""" + if not self.is_connected: + raise DeviceError("设备未连接") + if not self.is_initialized: + raise DeviceError("设备未初始化") +``` + +### 2. 状态验证 +- 移液前检查枪头状态 +- 体积范围验证 +- 位置边界检查 + +### 3. 错误处理 +- 硬件连接失败自动切换到模拟模式 +- 异常捕获和日志记录 +- 优雅的错误恢复 + +## 📊 配置管理 + +### LaiYuLiquidConfig +```python +@dataclass +class LaiYuLiquidConfig: + port: str = "/dev/cu.usbserial-3130" + address: int = 1 + baudrate: int = 115200 + max_volume: float = 1000.0 + min_volume: float = 0.1 + # ... 其他配置参数 +``` + +### 配置文件支持 +- **YAML**: `laiyu_liquid.yaml` +- **JSON**: `laiyu_liquid.json` +- **环境变量**: 动态配置覆盖 + +## 🔄 异步操作 + +所有硬件操作都是异步的,支持: +- 并发操作 +- 非阻塞等待 +- 超时处理 +- 取消操作 + +```python +async def aspirate(self, volume: float) -> bool: + """异步吸液操作""" + try: + # 硬件操作 + result = await self.pipette_controller.aspirate(volume) + # 状态更新 + self._update_volume_state(volume) + return result + except Exception as e: + logger.error(f"吸液失败: {e}") + return False +``` + +## 🎮 实际使用示例 + +```python +# 1. 创建设备配置 +config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=1, + baudrate=115200 +) + +# 2. 初始化设备 +device = LaiYu_Liquid(config) +await device.setup() + +# 3. 执行移液操作 +await device.pick_up_tip() +await device.aspirate(100.0) # 吸取100μL +await device.move_to((50, 50, 10)) # 移动到目标位置 +await device.dispense(100.0) # 分配100μL +await device.drop_tip() + +# 4. 清理 +await device.stop() +``` + +## 🔍 调试和监控 + +### 日志系统 +- 详细的操作日志 +- 错误追踪 +- 性能监控 + +### 状态查询 +```python +# 实时状态查询 +print(f"连接状态: {device.is_connected}") +print(f"当前位置: {device.current_position}") +print(f"当前体积: {device.current_volume}") +print(f"枪头状态: {device.tip_attached}") +``` + +## 📈 扩展性 + +### 1. 新设备支持 +- 继承抽象基类 +- 实现标准接口 +- 插件式架构 + +### 2. 协议扩展 +- 新通信协议支持 +- 自定义命令集 +- 协议适配器 + +### 3. 功能扩展 +- 新的移液模式 +- 高级运动控制 +- 智能优化算法 + +## 🎯 总结 + +UniLab 通过精心设计的分层架构,实现了对 LaiYu_Liquid 设备的完整控制: + +1. **高层抽象**: 提供简洁的API接口 +2. **中层控制**: 实现复杂的业务逻辑 +3. **底层驱动**: 处理硬件通信细节 +4. **安全可靠**: 完善的错误处理机制 +5. **易于扩展**: 模块化设计支持功能扩展 + +这种架构使得用户可以专注于实验逻辑,而无需关心底层硬件控制的复杂性。 \ No newline at end of file diff --git a/XYZ_集成功能说明.md b/XYZ_集成功能说明.md new file mode 100644 index 00000000..301b1136 --- /dev/null +++ b/XYZ_集成功能说明.md @@ -0,0 +1,221 @@ +# XYZ步进电机与移液器集成功能说明 + +## 概述 + +本文档描述了XYZ步进电机控制器与SOPA移液器的集成功能,实现了移液器在Z轴方向的精确运动控制,特别是在吸头装载过程中的自动定位功能。 + +## 新增功能 + +### 1. XYZ控制器集成 + +#### 初始化参数 +```python +controller = PipetteController( + port="/dev/ttyUSB0", # 移液器串口 + address=4, # 移液器Modbus地址 + xyz_port="/dev/ttyUSB1" # XYZ控制器串口(可选) +) +``` + +#### 连接管理 +- 自动检测并连接XYZ步进电机控制器 +- 支持独立的移液器操作(不依赖XYZ控制器) +- 提供连接状态查询功能 + +### 2. Z轴运动控制 + +#### 相对运动功能 +```python +# 向下移动10mm(用于吸头装载) +success = controller.move_z_relative(-10.0, speed=2000, acceleration=500) + +# 向上移动5mm +success = controller.move_z_relative(5.0, speed=1500) +``` + +#### 参数说明 +- `distance_mm`: 移动距离(毫米),负值向下,正值向上 +- `speed`: 运动速度(100-5000 rpm) +- `acceleration`: 加速度(默认500) + +#### 步距转换 +- 转换比例: 1mm = 1638.4步 +- 支持精确的毫米到步数转换 +- 自动处理位置计算和验证 + +### 3. 安全检查机制 + +#### 运动限制 +- **移动距离限制**: 单次移动最大15mm +- **速度限制**: 100-5000 rpm +- **位置限制**: Z轴位置范围 -50000 到 50000步 +- **单次移动步数限制**: 最大20000步(约12mm) + +#### 安全检查功能 +```python +def _check_xyz_safety(self, axis: MotorAxis, target_position: int) -> bool: + """执行XYZ轴运动前的安全检查""" + # 检查电机使能状态 + # 检查错误状态 + # 验证位置限制 + # 验证移动距离 +``` + +### 4. 增强的吸头装载功能 + +#### 自动Z轴定位 +```python +def pickup_tip(self) -> bool: + """装载吸头(包含Z轴自动定位)""" + # 检查当前吸头状态 + # 执行Z轴下降运动(10mm) + # 执行移液器吸头装载 + # 更新吸头状态 +``` + +#### 工作流程 +1. 检查是否已有吸头装载 +2. 如果配置了XYZ控制器,执行Z轴下降10mm +3. 执行移液器的吸头装载动作 +4. 更新吸头状态和统计信息 + +### 5. 紧急停止功能 + +#### 全系统停止 +```python +def emergency_stop(self) -> bool: + """紧急停止所有运动""" + # 停止移液器运动 + # 停止XYZ步进电机运动 + # 记录停止状态 +``` + +#### 使用场景 +- 检测到异常情况时立即停止 +- 用户手动中断操作 +- 系统故障保护 + +### 6. 状态监控 + +#### 设备状态查询 +```python +status = controller.get_status() +# 返回包含移液器和XYZ控制器状态的字典 +{ + 'pipette': { + 'connected': True, + 'tip_status': 'tip_attached', + 'current_volume': 0.0, + # ... + }, + 'xyz_controller': { + 'connected': True, + 'port': '/dev/ttyUSB1' + } +} +``` + +## 使用示例 + +### 基本使用流程 + +```python +from unilabos.devices.LaiYu_Liquid.controllers.pipette_controller import PipetteController + +# 1. 创建控制器实例 +controller = PipetteController( + port="/dev/ttyUSB0", + address=4, + xyz_port="/dev/ttyUSB1" # 可选 +) + +# 2. 连接设备 +if controller.connect(): + print("设备连接成功") + + # 3. 初始化 + if controller.initialize(): + print("设备初始化成功") + + # 4. 装载吸头(自动Z轴定位) + if controller.pickup_tip(): + print("吸头装载成功") + + # 5. 执行液体操作 + controller.aspirate(100.0) # 吸取100μL + controller.dispense(100.0) # 排出100μL + + # 6. 弹出吸头 + controller.eject_tip() + + # 7. 断开连接 + controller.disconnect() +``` + +### 手动Z轴控制 + +```python +# 精确的Z轴运动控制 +controller.move_z_relative(-5.0, speed=1000) # 下降5mm +time.sleep(1) # 等待运动完成 +controller.move_z_relative(5.0, speed=1000) # 上升5mm +``` + +## 集成测试 + +### 测试脚本 +使用 `test_xyz_pipette_integration.py` 脚本进行完整的集成测试: + +```bash +python test_xyz_pipette_integration.py +``` + +### 测试项目 +1. **连接状态测试** - 验证设备连接 +2. **Z轴运动测试** - 验证运动控制 +3. **吸头装载测试** - 验证集成功能 +4. **安全检查测试** - 验证安全机制 +5. **紧急停止测试** - 验证停止功能 +6. **液体操作测试** - 验证基本功能 + +## 配置要求 + +### 硬件要求 +- SOPA移液器(支持Modbus RTU通信) +- XYZ步进电机控制器(可选) +- 串口连接线 + +### 软件依赖 +- Python 3.7+ +- pymodbus库 +- pyserial库 + +### 串口配置 +- 波特率: 9600 +- 数据位: 8 +- 停止位: 1 +- 校验位: None + +## 注意事项 + +### 安全提醒 +1. **首次使用前必须进行安全检查** +2. **确保Z轴运动范围内无障碍物** +3. **紧急情况下立即使用紧急停止功能** +4. **定期检查设备连接状态** + +### 故障排除 +1. **连接失败**: 检查串口配置和设备电源 +2. **运动异常**: 检查电机使能状态和位置限制 +3. **吸头装载失败**: 检查Z轴位置和吸头供应 +4. **通信错误**: 检查Modbus地址和通信参数 + +## 更新记录 + +- **2024-01**: 初始版本,实现基本集成功能 +- **2024-01**: 添加安全检查和紧急停止功能 +- **2024-01**: 完善错误处理和状态监控 + +## 技术支持 + +如有技术问题,请联系开发团队或查阅相关技术文档。 \ No newline at end of file diff --git a/test/experiments/laiyu_liquid.json b/test/experiments/laiyu_liquid.json new file mode 100644 index 00000000..4835460f --- /dev/null +++ b/test/experiments/laiyu_liquid.json @@ -0,0 +1,148 @@ +{ + "nodes": [ + { + "id": "laiyu_liquid_station", + "name": "LaiYu液体处理工作站", + "children": [ + "module_1_8tubes", + "module_2_96well_deep", + "module_3_beaker", + "module_4_96well_tips" + ], + "parent": null, + "type": "device", + "class": "laiyu_liquid", + "position": { + "x": 500, + "y": 200, + "z": 0 + }, + "config": { + "total_modules": 4, + "total_wells": 201, + "safety_margin": { + "x": 5.0, + "y": 5.0, + "z": 5.0 + }, + "protocol_type": ["LiquidHandlingProtocol", "PipettingProtocol", "TransferProtocol"] + }, + "data": { + "status": "Ready", + "version": "1.0" + } + }, + { + "id": "module_1_8tubes", + "name": "8管位置模块", + "children": [], + "parent": "laiyu_liquid_station", + "type": "container", + "class": "opentrons_24_tuberack_nest_1point5ml_snapcap", + "position": { + "x": 100, + "y": 100, + "z": 0 + }, + "config": { + "module_type": "tube_rack", + "wells_count": 8, + "well_diameter": 29.0, + "well_depth": 117.0, + "well_volume": 77000.0, + "well_shape": "circular", + "layout": "2x4" + }, + "data": { + "max_volume": 77000.0, + "current_volume": 0.0, + "wells": ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"] + } + }, + { + "id": "module_2_96well_deep", + "name": "96深孔板", + "children": [], + "parent": "laiyu_liquid_station", + "type": "plate", + "class": "nest_96_wellplate_2ml_deep", + "position": { + "x": 300, + "y": 100, + "z": 0 + }, + "config": { + "module_type": "96_well_deep_plate", + "wells_count": 96, + "well_diameter": 8.2, + "well_depth": 39.4, + "well_volume": 2080.0, + "well_shape": "circular", + "layout": "8x12" + }, + "data": { + "max_volume": 2080.0, + "current_volume": 0.0, + "plate_type": "deep_well" + } + }, + { + "id": "module_3_beaker", + "name": "敞口玻璃瓶", + "children": [], + "parent": "laiyu_liquid_station", + "type": "container", + "class": "container", + "position": { + "x": 500, + "y": 100, + "z": 0 + }, + "config": { + "module_type": "beaker_holder", + "wells_count": 1, + "well_diameter": 85.0, + "well_depth": 120.0, + "well_volume": 500000.0, + "well_shape": "circular", + "supported_containers": ["250ml", "500ml", "1000ml"] + }, + "data": { + "max_volume": 500000.0, + "current_volume": 0.0, + "container_type": "beaker", + "wells": ["A1"] + } + }, + { + "id": "module_4_96well_tips", + "name": "96吸头架", + "children": [], + "parent": "laiyu_liquid_station", + "type": "container", + "class": "tip_rack", + "position": { + "x": 700, + "y": 100, + "z": 0 + }, + "config": { + "module_type": "tip_rack", + "wells_count": 96, + "well_diameter": 8.2, + "well_depth": 60.0, + "well_volume": 6000.0, + "well_shape": "circular", + "layout": "8x12", + "tip_type": "standard" + }, + "data": { + "max_volume": 6000.0, + "current_volume": 0.0, + "tip_capacity": "1000μL", + "tips_available": 96 + } + } + ], + "links": [] +} \ No newline at end of file diff --git a/test/experiments/test_laiyu.json b/test/experiments/test_laiyu.json new file mode 100644 index 00000000..fa439407 --- /dev/null +++ b/test/experiments/test_laiyu.json @@ -0,0 +1,394 @@ +{ + "nodes": [ + { + "id": "liquid_handler", + "name": "liquid_handler", + "parent": null, + "type": "device", + "class": "liquid_handler", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "data": {}, + "children": [ + "deck" + ], + "config": { + "deck": { + "_resource_child_name": "deck", + "_resource_type": "pylabrobot.resources.opentrons.deck:OTDeck", + "name": "deck" + }, + "backend": { + "type": "UniLiquidHandlerRvizBackend" + + }, + "simulator": true, + "total_height": 300 + } + }, + { + "id": "deck", + "name": "deck", + "sample_id": null, + "children": [ + "tip_rack", + "plate_well", + "tube_rack", + "bottle_rack" + ], + "parent": "liquid_handler", + "type": "deck", + "class": "TransformXYZDeck", + "position": { + "x": 0, + "y": 0, + "z": 18 + }, + "config": { + "type": "TransformXYZDeck", + "size_x": 624.3, + "size_y": 565.2, + "size_z": 900, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + } + }, + "data": {} + }, + { + "id": "tip_rack", + "name": "tip_rack", + "sample_id": null, + "children": [ + "tip_rack_A1" + ], + "parent": "deck", + "type": "tip_rack", + "class": "tiprack_box", + "position": { + "x": 150, + "y": 7, + "z": 103 + }, + "config": { + "type": "TipRack", + "size_x": 134, + "size_y": 96, + "size_z": 7.0, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "tip_rack", + "model": "tiprack_box", + "ordering": [ + "A1" + ] + }, + "data": {} + }, + + + + + { + "id": "tip_rack_A1", + "name": "tip_rack_A1", + "sample_id": null, + "children": [], + "parent": "tip_rack", + "type": "container", + "class": "", + "position": { + "x": 11.12, + "y": 75, + "z": -91.54 + }, + "config": { + "type": "TipSpot", + "size_x": 9, + "size_y": 9, + "size_z": 95, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "tip_spot", + "model": null, + "prototype_tip": { + "type": "Tip", + "total_tip_length": 95, + "has_filter": false, + "maximal_volume": 1000.0, + "fitting_depth": 3.29 + } + }, + "data": { + "tip": null, + "tip_state": null, + "pending_tip": null + } + }, + + + { + "id": "plate_well", + "name": "plate_well", + "sample_id": null, + "children": [ + "plate_well_A1" + ], + "parent": "deck", + "type": "plate", + "class": "plate_96", + "position": { + "x": 161, + "y": 116, + "z": 48.5 + }, + "pose": { + "position_3d": { + "x": 161, + "y": 116, + "z": 48.5 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + } + }, + "config": { + "type": "Plate", + "size_x": 127.76, + "size_y": 85.48, + "size_z": 45.5, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": "plate_96", + "ordering": [ + "A1" + ] + }, + "data": {} + }, + + + + + + { + "id": "plate_well_A1", + "name": "plate_well_A1", + "sample_id": null, + "children": [], + "parent": "plate_well", + "type": "device", + "class": "", + "position": { + "x": 10.1, + "y": 70, + "z": 6.1 + }, + "config": { + "type": "Well", + "size_x": 8.2, + "size_y": 8.2, + "size_z": 38, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "well", + "model": null, + "max_volume": 2000, + "material_z_thickness": null, + "compute_volume_from_height": null, + "compute_height_from_volume": null, + "bottom_type": "unknown", + "cross_section_type": "rectangle" + }, + "data": { + "liquids": [["water", 50.0]], + "pending_liquids": [["water", 50.0]], + "liquid_history": [] + } + }, + + + { + "id": "tube_rack", + "name": "tube_rack", + "sample_id": null, + "children": [ + "tube_rack_A1" + ], + "parent": "deck", + "type": "container", + "class": "tube_container", + "position": { + "x": 0, + "y": 127, + "z": 0 + }, + "config": { + "type": "Plate", + "size_x": 151, + "size_y": 75, + "size_z": 75, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "model": "tube_container", + "ordering": [ + "A1" + ] + }, + "data": {} + }, + + + { + "id": "tube_rack_A1", + "name": "tube_rack_A1", + "sample_id": null, + "children": [], + "parent": "tube_rack", + "type": "device", + "class": "", + "position": { + "x": 6, + "y": 38, + "z": 10 + }, + "config": { + "type": "Well", + "size_x": 34, + "size_y": 34, + "size_z": 117, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "tube", + "model": null, + "max_volume": 2000, + "material_z_thickness": null, + "compute_volume_from_height": null, + "compute_height_from_volume": null, + "bottom_type": "unknown", + "cross_section_type": "rectangle" + }, + "data": { + "liquids": [["water", 50.0]], + "pending_liquids": [["water", 50.0]], + "liquid_history": [] + } + } + + + , + + + { + "id": "bottle_rack", + "name": "bottle_rack", + "sample_id": null, + "children": [ + "bottle_rack_A1" + ], + "parent": "deck", + "type": "container", + "class": "bottle_container", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "Plate", + "size_x": 130, + "size_y": 117, + "size_z": 8, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "tube_rack", + "model": "bottle_container", + "ordering": [ + "A1" + ] + }, + "data": {} + }, + + + { + "id": "bottle_rack_A1", + "name": "bottle_rack_A1", + "sample_id": null, + "children": [], + "parent": "bottle_rack", + "type": "device", + "class": "", + "position": { + "x": 25, + "y": 18.5, + "z": 8 + }, + "config": { + "type": "Well", + "size_x": 80, + "size_y": 80, + "size_z": 117, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "tube", + "model": null, + "max_volume": 2000, + "material_z_thickness": null, + "compute_volume_from_height": null, + "compute_height_from_volume": null, + "bottom_type": "unknown", + "cross_section_type": "rectangle" + }, + "data": { + "liquids": [["water", 50.0]], + "pending_liquids": [["water", 50.0]], + "liquid_history": [] + } + } + + + ], + "links": [] +} \ No newline at end of file diff --git a/unilabos/device_mesh/devices/liquid_transform_xyz/macro_device.xacro b/unilabos/device_mesh/devices/liquid_transform_xyz/macro_device.xacro new file mode 100644 index 00000000..c1ca35f2 --- /dev/null +++ b/unilabos/device_mesh/devices/liquid_transform_xyz/macro_device.xacro @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/unilabos/device_mesh/devices/liquid_transform_xyz/meshes/base_link.STL b/unilabos/device_mesh/devices/liquid_transform_xyz/meshes/base_link.STL new file mode 100644 index 0000000000000000000000000000000000000000..902bd36144f67d0902699a6a60d55dc0abfb7c52 GIT binary patch literal 2475284 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∓r~F{QAvGkNBhk0-mxvEfAZWGy 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 IbeR_(ZIiHiDrbMLJ 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�si)|XC>mYO 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

u=AAhSn`eNajwvQIb}=5a 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%0A@QABYNE+ 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


o4<>8QrD7|L0^@p~Bv@fWeo+ql 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

~E9)RIt31D# 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Ým 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

-xmkztlY~?dNGEZl=c725ZI>67(9oN}qU<%2gPN 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 z\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Ξ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 literal 0 HcmV?d00001 diff --git a/unilabos/device_mesh/devices/liquid_transform_xyz/meshes/z_link.STL b/unilabos/device_mesh/devices/liquid_transform_xyz/meshes/z_link.STL new file mode 100644 index 0000000000000000000000000000000000000000..6a304f9f170aeb70fc3606f3bb4537494e409912 GIT binary patch literal 213884 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≪A)A4Yb7hk zFn?nqLCutqk0fdjmVHqYj;^en3;A0S32LTgqZ&ag$8h#{wK9sN zA>p{?Uijq9*$7&B1dlyP%^WfN`(W{*vP{b=&UVdr-yhVFh`Fl}V>?LDD%Pll82f`7 z5-|rCV(bqRw2HNMA;v7BhD4l8j)I_-eUIaV8WQ$5jt>&FatvpGS1a|EhJ@ob{yxaE zXyx9V{e7_bkY~6_A7eYHA>lmEc6_3q2jlza_HOLObO9R#FsFOkN7^PzJytPNF&)+oQdKK;~=P+ z5~4HPE3wcwKuJipm3`-kB0JPnN;o2_s>@(Tq{{QhB-5kpk_+QM-sKq7y9Ns z2}f5}&X}CxNKi8+@C32LTX; zNHa&w{yx|Umn$oeg0UUckZ>N4?I1xbkLIyIs3GC;IQ9n#T5*oa9``t>h6Lx8#o~*T z^PuLX`ukv6UrA;Sdx9FpO6OM-k~3C6s^`HkV0|TxXj`#{ivl~+s0V|^u! zXj}CyCqd1W5S?SttEKSK)>qPqwv}s}GXn`~riADuYReZ9tG2$9#(|}M_Fmy$Vcvllb~iw$VU=hEph)!8jnZG8fo&8yPPDbnG*8R5#9ckG#0uY<<^AVDjy2FEO+hJ@F1MJH0p?8&tKD``aA$|E>?kOVbTLUa;dEph)!8qv1mOf)>iFXvjlbw(O}+eLDGd0|Vk{?+mPN(>2Vri64!_|CKMM65_iwpF~*zWB&* zzL211O6dP5;X9qa7VRM+*;f3T%c8VcV^;(mee>ETM*k-W%2tyY4{}w6gE+8&%5oRx4>p*k8UeE#sTn&a!Cb7$+qfiMS_|sAv)XPJDtvr_K=WlE6#T9 z{;P!uYNmwf98vJGLqf8x>^ny-32LT<=p@kcB?;F`R*qrLq9mx967rD*dT>d?(Up~R zA!kt%)JzHaNCIb0<<*|f+xixjWaYBt7@OsIesPKfHB&-#5?BGONJzF-%rV7B%)9Z< zOcK;g3DHS>Ie$f7{7YmB3CXsKxw81kZ>^D_W=e=og6k_1l5J(*`5iP8)JzG{NucFR z60Vi39K-xt8VPEqgnT4{9$b=ebYZv#zlvu_1DBr$w z-12;bvs#NN3BCR1#}l-&?~Lx`tX9gBhJ^i%?_yv=JEX3F!)R2hzabJBt z^v5m=K12I5xdSr611}KoPFS<)k+!?_NUBGd;4Hnv~mn{7KM)m zH6$Fjd@J-Of>!QL&GUV&sF@?;{BZ=rw5*)dV>_rJ;XEGOL4sBun?rvrs3GC;nEi3d z_^nIrKRee~C4W?R)vBH?%Nw+niCHTWEO$zXPU4)pzFNd@6C@iFDIq!uw0udzwUU)%n6oGe zYNmvIB!M1Wl5lio<*dwElms-&2d+6Sug}1GZxiybzKfa+wS5 z)moL>HXpme#oyiK1HONs?FU@u@n=f&jUSx6{g;n^>RTj}9(}l65^i7fQL){4zP77L ziI1!ph2F;puK6qb*Ldmir6#v~_ucoO{In~U8b(CQlcu8&YDoOur|-A_fU{m)=-vkj zT19R5-M*fX#?cjVv0HwuL|Xp-{ZP7TZLvqbOQi7VBzB2%Ax&akXL;OL68*#?4EmNhHI*&u#fiC+SW4{9vS z2gmxH(M_d&xzaBMHUs7XPJ|YTjCMx^XvjnXyr;l}>?8duyvZthxtjv(?tQ-lq zRvOo;5-sX$4>2dM+y_%)bFE0wYIChT4Q7TJu z)7({SRc4=AA5B9-5z!bN36BG5Jc~;9xETp*NGKv2k4GkGrIydvikd0mvDrtLgk)QV zyrJdPkO+Tee2ncNK`Y7YmLFX1(W|rGb(=BaZ+gkqjXrjA@j;DcmFqlCADakTSxz5cd)I9a_AmG7 z;)5E?D%X9JJ~k1wvg{trJEN5^>I3(bWtHo`nJ3tTqDgeMTFHmJJF6|rN^M%7qiQ=u z?Al7+X=OQURij&cP-9s>)Hmz34~Sh`sVrJqP9M?VD^Y3(HJ0T=Ip($2VgX{;Rw|2D zmeWV{_e!mo4{9vS2m5BR0I_Q;l|?Jd=|g4f+@b$Qbju8&a=DVR{CD?TwVB$)dR64U zsdQNr4Mg-{64LaP~DGMtFqc2iE)N&K1j5AkP&G$+LhF|Bd>AN-#Q|V zkkAOnN2^Q|UU3$~_|Ljl*2o{^avdeQBNW}HnGl6GkymzNCj_F9C8@Tu8wqAfZAYP# z(7Tq8srwm`ac$POEGwV2k4(_Ya^|kyRa2k7FKalj0BogleQr-5n+RH2P9M>R9lb+X zF`&k>%I&jc6G1D>9)s)XDn6J+i!2|G+dP4pdLXjps(=2`I&sWb_n@=V*7~;)U0!L{ zHeq?O_>UW(vikmOUUXPU>^|(>JkB9^c>nu#$83?0eb>JndfC5Tb?>kK;X(V7Hxsn7 ztdbUso%8>Ab(4!fSaaeoHI`NGiT`@#y(b^{km_R-K`YDY;~tOyz18twc}MXe)o;%ocUYVdtCLgiJ+C`^l_&s|Lj-XqWGZ3vV1I_|JF0#bo0ko zADf8IsuHz7B2KT5cqvx4DjJmgn0Gw$%x8S%RQJaQf>xH($4#TZe=Yi5KB%#*c0Bad z+nxDa*L`C3v5BCS<@9mZ#U6Zc%gA5(pvJO%yy2(*=`9ccl6`C%7`T(8_Z9xX0U%UDn)PP-D6D$MfHM z(t3PsA|mtGR#i?PF`|}r3@&U{G$3L;p0pn4n+RH2P9HHdEN_@|$$}coYDdf~TkH91 z6G1D>=_6*iWt|fj)L52}m>;*+^X?{sR+iI8%+$*|w=bx%EFUq?Z>`TCn+RH2P9Jf` zS=MvZf*Q;65$CI|^?7g;K`YDYBhIzUdahkiV_81pyt}1yu;g;Coh4{xIeo<7u77ry z8h6hJTW zNw6#tZ+g&9wK|$wk=X2m?Vy!>YlfSRRnw4Qo7SyRtTc+=^gFlBvSQR;@zAY`tf+7F zvDSbHeRU>+1v0c_Uief~etVNF8=Zq+cZe_5p zR795qt#n*-`)m)kSg9R4%hVdK`>FH69wec-&HEtHS#@*!+DSw=);rD&wcHsK^UB`$ z-u&w`?VyH)qWxNHykc9l5 z|LuFt)QV-%inWD{@WHyvht2>;ZU=pkP^@&065abCK`V}eo`_hLv%bnw#^@Yw+5O)W z%qtS%qnw?`T9KfY?|`&_GYxM$HkpRen+yYh@@~J&ZLgM7LqfBX zX3^PpwD{0!bF5h3uxdL{>W>x?RI6_}iRdTnk*$%QpjFIW*tsJiE6vDip?v5JAX&AY zZ#gyU51q+Gu%xwznpe#Si5NF!O*BTgD+^YeW2HXu^{Z!XmFt;$^g%1q;k%rpMuHj= z%9!=_`MT}>i0Z8B%3$=tp7MG}R-0Q+4GEQ`Gxg|$1g*NLubUC$gHcr6eD%vH00@E_ z5{lva`h3mw1g$ip*1HDZjcex{y!J(9ZRT3(ylq*nmA`e%Hxab5oGXBOMPGi~rpB^- zFc-?swss8$f>xH(N8Ony1T~iBLoN4sTr4&bw6dH&UK@Kd_l`X*MVT7Q@}YiOkMm6g ztt_XHPrl+7%U_K>Ecu|uvV17>JxeSWn+RH2P9Js0tN5VCvV8DNy;y7_I;*+@sQr<9 zeZ_~ZiU#Y17&lm#)V;oepq1tHQFkB{i=P{!aaK`YDYBW8w`=Mrixs~s_~U|q6_pq1tH z5i{J%b0RgCHW9S4oIYZv)^CtyZl}hwe8fE8)FZ2VTg|FF~cp7Hi? z?!{A>ha~InHpx%_>T}BRE8p-cao#6E&6E(Ggx~xXcla+!NVe4rzw)x;<2UYfW=8$r#K5S@gd z82N5QAc(D+SBE86tHVK;<7eIBYKP-}eKiwBP%|Y&C*k{7bY}_)$+n6p6d%vJ{x!k} z32LT<=p=qr^Gf&RkdSPv=*{Beh98#?64Xoy(TylsA|E6q+bXgW?Fb)@pk_+AhNb1D z2Nf$4l5G{E3;iKWjVS#~&6E(`daw}cK@yT}6|+R~5m}Ob-Uw=@gyA=y@O_Y>No=M7vdYNmv1*yj}q$+mjo z_s&LtFt4bY5~5oVmMl@9laOpHJ>lqFD1F`tYNmwf%qz9}wCIy>MXaJGTNk?CMfNr8 z>)tWTI)2rUeRnUM3Cj3CTWQTr9pGGwG`$ zRxFEFI)3w*-=pP+M#35rl6|}*^nK@67Om_%W`^EJAyi*!NZ22Uc-~TDk!8_J#}(a} zsqF)VH6$eac($YVdGTQlt>i=fA2W6JLBbjml6^dV#Ci50R!ybP-}--Ftg_-f_<(K8 z@^Rd&|JQz=am0|YhJ<7vPak@EQY!(LMJpXY^}Ofo=S(ezgf%22`*`~JX5`iBHLt9p zm3-X!&;M$FJ)%fhLqf8Tr;nPuB}=TKmD>^H* z#T$OSoaaZv8WNIyJPEyb=UovmmPIT3KJL{&Tl<5A>MIQi`&$#W)}fKGhJ<7vPvRnxQ=g3aie=GC$K#zy`)6F^rqu@tYe-1;@$_-`xW4)K zXba1tm5!_B=l;rnsXjdNx)NLWKcvX3W$ z^LZG&UC>#t%|`CLoF8WNIyJbmEo+%&Y3kDq+p zv#=H=VGRk%K3;t6VqMZSv~oMz+NUE_Uuj6#-A0fX)^NKdtRW%U$Fm)^ z2a6ADXeA%&|J*eQW|xFDBqaNI_Qz-AJbR6}&WUsC{-ZDVn*Dn|?G}e*Wm(6Md+@9G z|MA8DwVppnSVKaxkEf5i0$8yuTIu);zVfpD$9?)X)dvY{NJ#ea^l?M2LvQoQ;=>wR z$%k5g(>LC>`XFHq3CTXbSX}V^iyeIV-oLRt{eK-(_GF%L!;2_K55=z9p4M~PThMNc z}O3 zMMv3exd^q8bWfZYt$uOz`***8v7JZVcfageD6it2(e{%h*E3w??zurcH{un4cciIn zgN|THv11U#7b1UO8T}zbXBOos>5asS8WY;NaY@m>zE<5%5eb$QdwuJc7s4$RQP1s% zdgAOLq7AEW)mUkCMyw8tsH@^4*Hz}>#o`M=JTqeTziX_t(o^=4kPnv>zh(q+&&Xe8 zyR4*94@x%O6ROqyg81vG88s%f(sN0>&rCmR~6Rh;R!@ z55&quXv(^_=2g4q2)eE3OO~u&8a2{iX=-Z^N%l1dODeT0HIg4$)mRn6^hRPyjs0mB zbxApkM((;+JFbalQ4%aEYgJob2w!uM?up36RULx|(rA3tylQJ-(OzZ7dvStzTEyw) zHCA;D9+s8Y(JU#Wdz+divXT#FgJjb^As@G>nMjR^n#ZN2oJG}+{~0y<>&*626U~Dp zSW+2-rRC?vh?13CDB0`lp3uIPzgqb4W3CkQ(gXI-e&1&fTfX3BPdt3*`y9LVj2Hd! zzU2I+WR9SfWtFs8d^@h{{B~7pEUVmyAM?DEu6K{eS09@QT3JpX?~nC@-$YA|<*fTh z&Uo+zPpCdN5xW0oZIyEKabO>|O3j)Ge`l`S5k5@plAx947ORzGMUCa!AA9Tmh*+7} zwUx?>=r$|M=|k5Y?m=oSXMbENvgZNoJ~y#zE0q;l(yT0}551epUu%k$SF^JG@Y6nW zc>9c7@5TD9`XE8g93eVZGLcu`iq>nzNW!wLVl8pz*Z=N>>VpI|b42?1cI1_R5hr0e ztv+%_yyLR^AfZ0DW{zk+4yuomB_>SQcAT_sNBC$&lnYJzBauF$<*OR2T@sdM6;aq) z_Xi1T=7{v6eG-3_jfCZ_)dR{LljD&@^mEh95zWW)E75xOdHix*2x%<;?A?Cz@ZEp; zkK$Xir|wJ6cb?4=w6dH&B2LS%*1V#|vdWDw#%!JUp{G|Ln+RH2P9L#ju%p&zJF={7 z2h07)8M+eAc5EV)C2Omcn~$=0B_Fm*&6?XBBU_c2tfT@tjioFyrz94l%p*Z$aB z_XmhwTdAywZnLtSJ`^YSAT^e=Kb}(Nn2Z&OU0bOv-D{v(jYRrTg!0esDzdN4ORiO1 zL+?wD%rA4vNKhkxCe*%HUFJH4cKP~O@6ubB)myDca8GbH=!p-U5v!XSA0+gojjcF> zdmp`KO@zO#jqND2k77bAj^N%0H6$W#TaMdif>xd}=K3S&5@|?ymN+s&E7kUzKl!+s z=u$&M{*>*b4-&Le)c@hsr_2!4kWkz-YDXU=daDndah-cSZH7>0Skn`nOV&N2_d2Z! z&JyAK%#H1UW?gRhE3?mRI~qZ&h~eJG{%9H!5w|k0j6PTvt+?V?w>w8|u4Gge3C}B| z50*tM`PR91B&Z=FfAixbR(&U3|F~O~^@sZ3>x5XTZGHXtyVP~bx+S|SYDk1{tN=C< zwBmKb+Fr4uhJ;6Lt^n3dPtZ!WU9WdZP(woglqI7N60}kb*XwrrpoWA;+USEsZ?(Qo zSbI>cG>Ux9(Gxk+Mjs?R9%U82as9FOqUchyE;sy@kv94uL92*iyRuk&P&=q05pgSH zbM!%iR=%1T32I1qq#c={m3(g;A5B9-{?;qxb=$M$E{j%*p~vRhKF7yeLqc)$2;NNe zRv$Ryj8E>&WVSP=MmyRZ(-XaBU2gbmGto$BtmPGCMj@{nv$iR( znUcF@bf#u~P3{bxBi4Hv(a&Z6kdR&5>b-Keg%d?jI*67!sub#D6tb9(KC+LIptsnGv^*V|^q9)t6l59F^+m5g8)#ubq3DZ4s z`$t@4JANam*BtAsyJ*w)e66VQicGDI6+l^8jx8raE7f+sR@9JCNse^i4idCtM0$ed zMz57?b=948Pf$ZbC28$5-*VTNR*L#X;~wsjpoWAZt!tcl!aW%8mfVhaPY%7=w}ZV# zLh>=!yU5|u$COxGeE?VYYcIJ9_jNzZ4S9b}AAx9A;TwAZBv_VYw0r}>vPeYK_Z`Ev z2aPBaw2HoI`vE;c4T;E}{rM3^f>xX75^6|j?(&S$*NOzKVti~MRQHS4990yYee&m= z?tM^0Lhai)K3Z9{Vr_dLtd)B3k1q50I`6J)*b}S?3CX&%e>U4&YkRBQa~KJoA+>)Y z4T+G;mjr$+(X67j8^$>`ELXClFtogtMXQKmH~Zwfkj1J8^}Cwxb(E}o8+31_WZh-q zdpUc;8d>R14&4dLl2md}&<6?K4Kwe9gstR5cdGdA&)$dc3XzrX(QpkT8xM`O;$0{t zJ(#T5f(48(vUn>%tU4MK#Y-JznoB5Wz*GNb{I>NO3ruV`7 zmLx0E`pr|ad`RwyU23L;de(P^t)n|7Y^CGsP2a256V}K|J@~wOciU{O7E>Q2)U)$G zT$X5CNmi`p+o4+NUM^Xw9l8@tvi$k}tG*r9ObJK2i*9KL30sL)4SgS3@535dkx)B) zuiE-O+mUhQ4*r_qwXp!`USgMw z8d>RnbJx(mRhPaU)=UY_`9HoLwi2z9+KB3EWsR&zNIp8Ej=}C8`o0~CXr0eX-)OFt zKgG@WxA%lKveNSnCS2PwRwQgCns?pzKCF=y2|f$3CL;UVlOd8tM2s{(%JDX$T6CpR zS<*;WL`}$d8?_x_&6H3{W46nRgspU35z)NT$I3(<=f%p;u%>#0r29)oLw z8WOR}FNEikd4g7Ya@PK2tv?wrJ+~{3#)Pdjy0m)LagW+HK@AD}^B9~bXyrC}?XxCa zuHxewDsGI3to0|`K@ADl_Q=ttl}j31P7MjmM@PuYx!`r;x*gQ8+|994MD;wdGEQ-m ztbA1zBzrFDeORM%O{jg6HLu88f7a2ph6H`5y$O0(J4|mTs3GB!JYTJAMS@n2g6EPo zq3Eh6DvPakn?`~f67=1-oCK{bd+oEX6*ZRGn_aC|;vO8=efo}x?j*JRoIkjXuG`8N z&hie^tXHmosF@=~r@bjzX_tdOs$6zh=tIozN<#O~Aw zh*nz@`geC}qWUOb?V0);h*H)Z5qs|YI&Na!4r%WH<-4`-yhxVsBNHmi-+3YJFSwNN zn7YqfSteu^KK3{IXc`hBm*dTc;v^r6E{SI4@6!%|^-z8H`;+sFkch+hXK`YA{D?e?hhEQW!<;FLE_Vs1K z^s$McmF4uIHmGLuL5*dV+edd3K`YB$pD)!Tv109>UC~vM&QXe?K5!R59?BnU9K8d7fk(-8AI1VMROz|xrlFONJC8@g8WNIy zJf4Dxdu!`lqHi3Q?~-ZUS=K0uF<;KLIifZZw6ff0hT*$p(%4Gn#+YwkDa|*~Xg*Pk zY$bwLmeWVHVfZfDl!%#OTj!5#$0mYSmeWVZH`j>~_i|;b8NhNK=k0jf$2c#uk0PpT z*-buS>bKJ869dQz`xNJ#F9cvA16KHJwcv{FgBqF-M@lCXw^WFOCV1mWign}$~M zq1}XaJ4jeVLb8vik2*7ymRmzB`OsDPx<5!*Lqf8Tw;t3xAWENGLo4}EhOYA}`n(a= zkdW--{THF7nSQrVqe!D!->J_L75CP*Z%C7%mE|0@{1!GfmObYG^3hLyOZwPEX#TL3 z<@CWXbW>wl=_7kY|J_}Nru?=gjbzVJMl zw4R`y}q?aQ?f32ImqwI5yrhLBc&KE9YCT zMM+RICFG+KWqim731_0LJZ@U88bQsJShoYCHttVc|CZtrrE)#~TXa`yx!!w5&6JRj z)`NvmpOf&+AS=#xC3hP^&6JQ2XQJw)Kf7g3t$VpNBm2%n$-1*9B2o9R(mDxhNcf!S zx!ug}iUh459Q&fW(`_WEnG!lvk3^i8%2`+%5^+u}=kt-Eh6LN>He}05(8_Cx(FZkC zLidZ#5@pRPjn)jd3cAUCtz;GBqLf7|tp>DS8GXdHOu2tgn&_Kyzo6uZLRnvr1T`e0 zpUS<8MVIFKsb{r1A6u^6 z)m?1TNY=QM95rn6x=tE{Dogh|$|~B_)A)%{O-O)JKir(2K*0!$|H6-YJGeIkj z|BJ?aIo66A5=U%DS#zqas9`5N>V2)0C5~?R=;ZkxR4%#KzkFXTBd|)St%mxa})_`=7{v6r_AwIDh~`WrIf>}OCHlPGHyuPf`$VM6ygL%q%n{j+=)ooWyp?5IRuSoP#z`L} zsF@?u2X_ZaSe8{peOrB#K1fhAN2Cw-ISI?Mir$0|64cBQ_OZUYQ$*2gtv`G`+Yw{D zrLbgfq9A#O1GC{PAk+uFLK@EwJOKnA`y$QYBPVIN%?W+DRkyoyA(KYeGamVo(^j@vi zWM(+%twoaNiCSdi$E*H7Q!}SaU9nw44d0Q4GHI! z-iF!tAPHKzR_(5rz%o|U%n`glaU@L3%262mgBlW%(`9^&?I1xbj}OJIZ#hS2M7oR* zon`Fr$m5)ZOVa4-eXuNAF&BD*8WIudQbUdA%>=EYq%v-1bGK51j$rzS)_fj3{YHcx=v|qZ&ag%l_R!HOox&oT0Jpb5!l~((-)kX||;0 zZqtx(N#kAKj*rTsl{0aisi`3m^W&aopQzy^cO7?~y-0^#Y8yT#JxC1+j}^VowC_O@ zwBoGY6V#CKC}>|RX#GKgR-RYJS~)W`>oY!^`ByO8LceKveJCzr||Rc9TU{d5$PlQFt6%$1&O_$Ci{3dCn{FDb9pwp zj+=>`739lTsq!w_dx)03Lhgx}7t5UvvXX4twN=SI;XW6kyGk`XOMcWB|E7JWvN_S*@ydMB-~mO^5^+#Ghr+FQ2V@Y?}?~u zxnE3Hyr*n)bZNyq-8K`}$Oj4UWz9#|Ew`0u=fX%>BP$ZhvH85xJ%XBFMJNjDHOXq9 z&ryA>{4Q@<`7Pa~$6D#_&surOO7}hH6>Hv~=v80uL$#7-j_}HIGa*`5q96L(msYly zb5u`QBP$Y*KIaO`{27ArVapXOtqjJNTO%JN{4Vz+6SflVaWfLu$clvD<$h$sR-!#i zj0E#lvC{s92w$p&ELf*w>1Ltwbx^y>9ObYus|rkD4*OvfNDAO7!M4jy19(q1neP z{oV%&TZ#Vc8CTYy%8C~{jTn$Q(X(@6GeQnI7o`6z@nQ^MCfBf(l}4z8<=@>H6C|5*R}I;|D`xuhfe zAfadb=6$#<`LmT|*KqVvN0dhDzDBLiGLr3YB>V-JDN)al+2>tIem9Y<)HiiiQ=SHl znfq|(qY&~T&6IG@c0|ct#%kK8HZyen;pb1~gM|Bk^g+T_qWP3*A6;u?MZ(!L`XFH| z(aPO+9o4nN8d;I3R~9qc5S;_4ecPIxV62EjV-s8 zTRzMs#fPkP73W&jYqd5L&DY9vlxk%{QE1m{L#<5MO8zvj==kWv8d;Ih_;1&0oevVW z60KROU8Qz}&n&Xy>?42e%Bv%+nG*GSr*B8;a}u@^U9SN8*{Ae}HL@b18GPu$;)8^( zMAx0d86VcjiiBb{+@2szeRWSwIWfk8GcNyY-Jzq+PNFGYDe95ZeOz&QLp+o_%LBB z5nczY<^6kc^cEP+Wcr21Z-mh=TRvV0L8WHY%n^PA&HDOWR(JyqeH6LPqDy-c5x?@4 zcLmu8-zU^!H4xHF3ALlGGLA^dO7!~9W&V!ia&4tHS>8-oBbtOGqBi%jniBQRJ@{R1 zj&KjUT-UZmxAdO8g{JkbWxpLrzUK*RriA^Kc62^S*h;k9H&4_ajD5HDJBuW@9vpm- zsQuABE7MjorRB=2IikxF`PfzcR9_Od@^Qb-YV=X_wM5#r5}kzZB>z^u_gr@*=&N7) z){bTM0pEumUy9v8(8_XtwWof`Y^iooV_81>7#y;t@xnEa^}+d-Pnu8 zCW3F!w%mN^TXe-ouUVHH{@R$a{{T+hR=d(m)N&8xX<@8a%omrk6jak1~>H8>_Wffm@!PkdKP%}rQ zkNV}s5-SpxWff!QBzp`iPe68=wP0tB3-=K170=IU;>T59%Aa zrO!!N&UUQ7aoWC->ntg=k76}Pqz^s87G!n;v4Hb^&9J5twiY8P|?2f&aZ&SH`aIRH`Yr{bU%!Jh!}mS<@Fou zt%Yuf=$=qJ)CRRh8eLn)Rdu-o*VnkBeJxtPF2DLeQL87^FLe8ATUI7mQhqo53-NVs z)l6321CVTbBcbonceN6sy*HPXYdE!|)~bB@T{Y1!CiWqMC1pEm%M0NaiZDG8OB12l zswhO zXh*G8X}M~mU++nl+7hD>RZQZj?!X?E!ePZl=C5XHJ;9~J!wbP1~cF#!DcOh0LsL|cO z_804iR?=dj+PGG_57{*#!IBn>X!!wKEmZrt>i=djQ;&2uGeC9S>GbqG$bVV#JREF z)w(yn7|`vptL56q*KzOfXRSzBqjF71_VFaX80)Ja#9x+0D;@VQ5F=p?3CTX5#5vK1 zpN#j6vMgHZxPE)l_#X*tNJ#eaB+d>WKOOJEVp+7ZZ||PRya+<|t#{V6a_w(T)L5-p z7Oiw#(e>_moToCng|LQ%WFOCV)E*oNTgiud)BEjlos(Ho2y0lbWFJo-$3|bMPvQ(v zR(CoJ%gX!4I_@>&NLWKcvX3WmPPF_-@t0-MO2_M2)O`-Z8WNIyJbipK+HiWbo@LQW z$Jc9WF(j-ZA=$^%$JfKhtKzDgWzovMb+#LcdVVd@b-DJpCTgs-W@u|_TIsl=tMhL9 zAYly&$v&P$?epTp8d}N6dZjOhgf%22`*`{|E&AeHHLsL$^)AMeeUjzF>+6xQM&*+B z@gy!5?;ZG9%`0m}Se6g3`bWYV5|Vv935^Z4o@LQW$Gtiq32R75_VJD=d1Vc)>{}~? zkx+f5Az^=OqQFS2VGRk%KAt}C z7V~XoobM{N9Ov40m;Xp;UE(|1OoWdKQQx_|WLdP*ao>NJK1f(YLb8u1QC9$ZCwbG* zO2>Uy;7C|QLb8u1fwMu0mCh5gQp+XB`J>zeyFN#enBG-t+Q-ue&T6eJ`LLCI_+HhK zu!e+WA5Y?f7=!PMd6#9;O2=cpfHeaNYe-1;@$~W4@Ua(j7R#cQefu}z#e#(DTkp$g z<=Wqx!1}7)l};=9P~3daL|Zc~sUab`Cu$E4gsoJP`rr3{v^7H^tYNv5eLQ0ozi8;! z295K!2Oukr)aib}NN8rz*^7i^A5TK-g*dYnAJ))HzUxd~&x0haAtBkv(?^}#HSe~v zXr<$IKK8jb&jy9ChJ<7vPaoQE|8A~JT3NKR@0h8p4-$2DF0pdC_O~W#%a<&RRytni z<33h}u!e+WAMbi_AZ#Tcb*8R9YL*nj8kQ^B$J0lwt#)FKwNhEiIGrbCWm(6yURj@` zNLWKcvX7^an5oNm6j&CmbiA%C4~>L1BqaNIC8E!xW+h9kp_P2p6`*~9u!e+WAMbqZ zuq;}+9oi2X3Drs(67~loV^w;Pgk|}t>qq+lVGYZb?BiLh+JnW1HMEis^}p}&S}aId zLqf8T=Py6JzhdKP`%ABw68YNmvIv>q&k`kVxxao2qZ@}d4OS<(nv0771svc zp5^on8(MMZ)g1}$Y)%RJNP<~HLb9#6tD4_@ajdAB5~A}8@<%nV^fq%6l5G{exutgG z{w@h>riAE5lq``C5|VAjUDbS(wb~(qnknHL_IX7@vaPt++Y{7G3DKG`QUJq)$py+CSMMAQzA_{HaH~Iqv zHB&-#o}JIAdG(F#!B&=NTSae{<9R(uf|@BIx)CL>r=$ zDc?Oo%^ZHQh_Cdn3tiE*N6VZ%RKda&5={v)}OEa(uBM5#=_`9Fab>0`Mw;gk@Pp6!zb9`g^Jm64cBQ=|gQ$ z%``8Puq>Elz+eDLbfZ@*Eq_3nv}_@(W~Ui$9) z|LL~xJ7ifo_NA}hX!|FQxpz4pZ?<{TqgKED{`((X>lH8AriR30-*-YhE&G7lgQuVI z*wt50{i))E1g$K~_hRuE*T3)Tkx&2nP^-s0@E5l)d*$C4YPeWj<#xAOef_V0e)aFC z{nj>XLgF*`{DtjHU+Lu9j!RtawyU$Ad;IEzx8I>7X!SRrxbF5n|LHEZ9d|hE+Ncv-2IP|L}6REK*;H}I`>esKj{i9#LW3APp`@HtxVUPdA)#Wbn%rj~A;VWKs`|8)ZV=1>ME_{g>9X|CY zr>w4W&gmynL*kUzUupZ#Uw(&LE4BEQUq5B_fv>%An*^=?;9ZwTt!{LW&+k0)-+yy; z-kI0ge%(tixqZsJex;Q4k)2Dlh`#xLm)pMY=dy;2#W6qsiJiNj{=n6x-u{qnYDn}x zKJkI4>^%8ak0{Y4K`YCdSGV}!rFL%nh{qO!8q10_+q77`@5C!CANQd<6k@I&Dwj1} zEFOEWn=E%?h0E z)bYjQelLH_^1kO^qpY!h;tm%sV@>5+merGK$G4vHsO9f`;Qj~y^Mg;? zriMiCKK$pwu_~ z?Yr(io-L1dtlSQ2NQA$A&0|SKJ65$FyK`2mdrw3=R%k~n%T~1q_q!fkxd&}kTidLn zXZP20$+2($#KEl}{lL|8&R%YR{J5Xl|FzfTIEYN#_t=hn+xNJMyG5?{iG$0$xHZ2P1b^HFtNZu{>?lVsVMpsRuvU$u9}awL|5yhKt4H zZ~ytj-?;yucnr4I+DgRgl0Uougcox5`S@2)S^ej$zjE7FstK)PR%#_J7O%Pe=MR0o z`k1qlkDhq&KRUKZ(iJe!y;DM`8{r;0QCpPc2 ziWwYz{)iv_Xy=)Kd(YJyfA4O4w7SsA*W17M_3v8B?TMei@~xJ?^XJ!CUE}{edW#wo zuY2(??%)5EJSQ#|ufN)Dm%sYF<5zoc+1B}^d8bvJA6rf@7SH|3Qxj zZe!50BK@BpcEbMkZ+73>^51^aqn1yJ6~N8k^x|!5Nc28duYBn8@rxIfxr79*EGyEB z#UuX5{g!`z=qrVw#$a;)z2NwgB_u4%>VYTSe*66Azq|S%LCqYIKE8U*PaJ&lj0YAU zBrMD7eSdrN?bV&%Reg}4W{yZ7I-ke?iVqT&Wp#tA-UL3B9VV!mBU(Fl+zt|!W%Zor zT_3TEb~J*TIU;>TbeHZA5|(9k(FTmMooDBrMD7Z7;t@%eRt=ji6?Z zNFSey+Cv`DVS^CK2T}%^ZbkX|84a_ zf|@xZeJ~SASe8}v=Kit2`4`m(32Nqu^r19FCbqIn%PO+69arA!Ps{eEnIl>|S|+kA z%d(2mg;+6nshK0vM?`n&{vcslRxwMoo?R?RP%}rQkI0gx^NNIJS;cJE@@=soLCqYI zK6Ho0hw3impMK`udlx+6J^L4V^}ipoteN@`FZX}ym#dqh^jsAJOuqV@1NUtbXy~XQMwzP%}rQkLdHIdys@>S^eD0 zzR+@^^m!wwnIqE2!=vT@QTN={+UM*&yY#JPS*eCsxnUk(EJ#o@N2Cw7oP=drsfKrY z?K9VT)uKzy9Fabzv2t0aWu=H5`_jK$kB=@^*31#<;~!7D=ko90w^%B#j(zG2_pb1^ zrkv^Vu`-d(+e!J6m5?&Z{2&(Hy%}ekf3Ic zNFV2)_9x5l|K*2c#4i>kEXyjM@-EL6YL1D#0zu6jkv`%(ygT}$u6#Uq@7a6rIr(jS zD$BC0-g@2(_da^HRXM&`kf3IcNFQ}~u=pThSytaU_pkR}eD$|fA0()mBhrWNrM^_O zMeQJASyty<ra-a z^CWu*A=mA{7nT=&*Ov}IF8-y4I|wW(`rzNLy}Zq1pLFn;51-iiAQ9KpW%na}-0bA5 zEidxRuR6H#V{X(DwEBxDes${(Z@OKnZR`%7eWm3eU-Iz5d;apoB{d|t+p<{v;2GcB zx%|IgX!ZX@J4nzfp4H#}-Y0HWeVq8g3oW1i2aDC4zw%2H{0FW&$DhmZO1H(os<+ChR=|Mrk;ZolK2CsiL$ z3gW^+C|1;v;ErefYWbfZb?{&Q?YaX&tGm4Z7q?GX?o=OlxXz;vt`fx4!Ur`ZxF@?< z{L>50Iyml}%a;BiL946({z=WswrtXa@;eed#MV-@eYD-Lcl{F*i7Ib@F@P zd073yz59FJ{TgsZhYqf@`r=DYIXLYVCoW0Q zD)s{~GhFGPuD$y0*FXK>YPUOKNezj<9Y1yF<5$b8$qi$ z@0PVs{&x3}ATAx}+D8XL4GHg&XLKJH#BaUxONSmiA!wy`JmC)?TF2lY1o6*7>;^$A z`Pe)E_sSWdCu+-g>iN8tMM6=y$ZH>5&mVCjwW;cZ6-PT`%tr zX+`f{9LYhK?_=dkpTvo~Z{E^1r!+5q+bgzC|MWA89M^_hy0RPz)#P6!xRZF_G;7!s)R2&@uV;_7ni96!+;VDIuD-WD-;UT@*wW5~y#L^h zpWM3Be@pr4FZxcoPk*cxH6$+k#LsWt{bJ9Wi7qw&&qKekb;;YDR;*Z3A1i7|eDI^^ zZ2jHphw@66c@%@vV0r zp7TM1R-0?Zx^Mlbw{2bXvyUuw-%LnMD=hopH-*2YnBxuFjj(O$$A#utb54L{r z+W$V|gJsd`ZU6Y1tw-PczswNcPt;h`9+`HUB}Ykn`wu&7hTy1`KRq8KLdPxl?VyH) zM)1o%>0jd3%#)^dI;4ggIcQme>K7nPf$Zb z^VsvBk)vxfK`Zsgj~^c-G;81JL32J>7Oj|XeXZhbS$-eTn9x}9>P+q1d-mM9R#CJ@ zk@g&{NS}ZCxicpLgJZk zeeK@=TiLt7eOHco-%CxI5HD{-N!r+JLUku~UHA1@6G@X@F{8mClQEdYkdQ8Qm$DfK zF?iC3RK|ElXz04`>rd41h#93K)fC!mD;`GaJ$~o8e&_$Y);iav_x^nD?xS@a-}86w z*ZE(YbG_nuyCu3yD8F8j$#y?h`E;*nI49CWLfWRg8YCE{TG#!Zp$0u9eCKCKu!Lv5 zV7m0~<>&nWs4Eh_FEZ3%?J{b-&FLY*`z_tNBEcw~8R|We9umB7)YTxtDE7)OK@W*o zGp4&|!@45DsPW#u+k1~&dj2=gNWY3=1TAfG?y1R+TA%y)Js)h}|Cr@#ajG7^;|EVp z9^Lr?u{27|=?<3it8_8Ciak@%+#VXmLt=b=MS@W}?h)M8VBU3i$+e*VRxbxVBz&K0 z*d8PprQ@!JZmvG{ywA?P;-~+T>gu)6KXvZRmz-AWt)45D(6xKs_Me(N<-OBF)HOoA z)Gmq3@A~xIk3W1)qPw{w!6+TC=ZYQ@e|F<%=T155OCuUii&3nRZm#xy@v(DyZ&URi zcDjow`;FTjH~0Lb&a7zALxQ8As}Z%E?!GEr*{)IE^XwAzkcb*7^fk{lsU-|AQ=MI1ADXD(gPF;c?5{GU7k+~myGmrmqf>GnOOAm?3!{0x*+ZR7wX+aW< zV#{`O*z7vvQ5ZPoe2}m!OA)Y+nOfop6-2w|mHbm2xmwevYi4!>$H%Lc&jo z4a-4-QM`iG)u4xjpAZ{rkYE(A=yf#|waLO_suR&3^CC{&?(ZvgMGpztuIa8upKz3} zw$*C>0vpX7Nb-nKHeqR9*S~*RZY*Hp`S5}Q+h~@YxD`{L^bUinJH-XN)OXz znYx7UT56p8?yKyeN7f9!UuQyhDor?tT@C))<}bQ&4SM=SU4w*dN3nd}T+u_qcS%*I zF2RzM@Lj+mK@SPd$If9_g9M}W4vp?w4mIc@5i`+<1_?&#jTqg#9cn07e(#EJ^N9Ak zv|A2(Nbs$jE zudBhl^Q~{CR4)fTB$SeCx~oBgQ952fJFB$6dE$>!tEt``r852M**~s~L3&7xYmi`+ z>dM;Pa?nG9W$F^4F@M&EuTE>{py$us@MT_K&wK6LB^VXy&cE{Y&-epGm^q%Ib{Ldd0_Q@j9Q=LqfGa+goJDbO}bq z*=MeYE4gM{pRM>vWroNlh@VY*rk&fZv`F^f}0d910OZR@yO za~7}hK@SPp_l|IsQmWT3Jxo{jy(1i@lw5Daa@fOkW&8N*grml5mma3eUoTw^&H$RP ze2xmbjIJ(04++i3uIX`tQA)}6HYDsJA=}4SCmbaW*V~Y=hv~}p@h%ao)b!lER$j4g zPwz3v9w(yS=e-hEPQ3Pw-&g5b_u(3j9uni_=o8Mnv}b!+%u2F2rHAQ8?2r}cS>CidPt}i>KY^% zrT*qJbv5XT-%+KHF{Lg+4++14G3<#X7^UOx3quWiNJy{V6PXsHIMTWroN>6mR!a5R zhaM7IqyAxnQA)}4N;g;ZkdS@v2uCR;*WpmZ9;PeX$5$sDC5=DacbTs2dq+5mS0=l; zqKE0~DtG zbY=Va>V%`D;kFqP_Ap)9KE68PsPPu0hv~|$UuWnOj`9vG!}*FHrmK|v+H9EM6-B zdPqdSx)%hal#+Y?P{SS)vVDAY!co$2&mR)@FkRU`zB=J3Y1CVg9;Pe%-Vu&cO7(t4 z57U)>?+8aJC0}71mfRkuE8E9cCmbaWeKCDFYWw$!OvLCa_l>$5^vDLWWP4SjL~#TU zh|X-_bT!g!j}wgI2<{T}kcbt|$Q4KujM6x-UwhS=-uGx#SF}gV!5Ss8WV&09ej7MS zwL7X&Jc=@*^4T6}6oOH#w=O{s3H9B&1_?%u_jYKY~-C0aFI*RV%XBz%S&YLIZ0Xt!+a z)gSx&{67AQRsZp|H`~sk+rLXVzna5qgv&9@nR+`k2DW?2jBvWr2)dd>Me9%QDJG;& zLNlMWb9{|pl;*KIQ7eb?t{J0F&=WaKQ6l1-Va4v|iUgxHKh`zq=@BF4UusY!Y8NAwk=#j6y6rEqP>nOfV&- zT!?`N36HMT2}eo8Be+APTw(qw>oyUZE8QO5T-l>2%y6A`$vAn^3QKe>jTlXixymMO>g3FTKak#ndS!}d7AD9sohV$mARZ{#qQT;MS}#R2Dzd}$u9}p!xm&(jB>4K;ypk8tCgqU_ibr?#kYxVYtJjcy`J~K0v>$i-v28cyRDJ@3X&KjyHx1io+^t)ZQl`eA|@##)8+Afs$6Cw|v@NYGOwaycIOxjiRa@A=qNS0rpJ%I{id4HER! zh^+CgStqZ*W0xbPu}H$UqWng7)*wMojmR1w zKX;?)`<{7V(jZ}5QGQQ6YmlI)Mr4f-Mfx8I9hHNGZAJM__N+mIo*I!g{wM0`mM@&V zUK%89E6V#1WDOGZ)QGIHU$pmYquoQJAz@ol-XS4tkf5hVWR15)zy11|drqW5!nUHk zS3}kyK~Igy8kgShkd^&o97=WDOGZ)QGIH5Hrs%4>%;vq9kl9O6PX(-rO`K=&2D|Lvuq6 zjZ}_@e&szWtzUiZvb9%yWnHpw*y1NW4HDn`&QU4q)i+(Z_PB>1m+ZMmUsQ;p2BTI^ ze{Ul8K72L8oz$&9q+8dQwx${l*>144|+(1J*Qk% zHIheZF^YYmTMqUm6Zc)aTEB9xRJ$a?P9+!J)#wo=DvoD6QW_A&!*rt@>G=Qqgo;KX z7!`dw9iQCR?A3o|YIk-GInMf>9UZXB=-lD$5?S(#aF2tg86y~F zdsw@A8rSd9+g6lpUqMRslx7}T^z;esIZ)SdS|S`}JJ+rn!|l;~$34C8u5|hKy7Hnw zxdrJlO(N%N=Q!8i)c)G;MU{8z{Z93epvScG?&G-}{OxRy(z2~6zr&q1NYGOwvIc)U zld!EQzgeC&NYGOwvc^;KYny~^MfnZ+tU-dF8j&>~AHRZs(Ei#cVOvpthd*nOpr=M; zjk6>D{o7yLBy20nyDel567JUU9$A9~JvAb0 zcvet3M0hV0+e%lqXC=kWer?m!C;Ux<)d@$5_UszpK3n_3=|-R3ROhJ0e!9+~cX7!j zCqa*CmDa~|$v1xDA=96I^6d0W*dC>2TT$M-FKdvXr$%IrufFn#>F0m*;G{vqwxYbF zVAdc(PmRbLpNQ*Mn_PTyT5piBttjt|m^DbyQzNp*kKX$a)BO(lSQ=3zY%9upH)ahI z^wfx~vGGkWogV)5dy)nT+lum4=e9jS&{HF_hWcXuvpC_sg1AFdo)+*^dgUHVA?Wem z0E%KtPGA3aHAwh9`k@BXVwCS83<-Kj=xuWCQZOV`T0d)`GU-`YMX?sT<)DXzpLDEi z_$doUu@1W$%&&JTP`WH%m!OA)_fZ(;iUgx{T;JNO6ZVks(_*U=jJoMV51rreLEoup z&_lvI3k)?#FzSvsZ9Tum-<@00pofI_A{c6rVAOf*|8)MNzg=I^pofH7Ry#TjHApZ@ zPsh85cH5jD66*PN4HAsvDCla?L&DFC56eMCP?XJn1IcRFW1kAfjV4+&j!FrCV=s4OX0z8ayleAS?} zyF|iFIISL0Y9s|m`ZEm@wwc>D`3z3zk%oyVQ?a`QYtioss~oKLEioc8LYd4#ol=tT6KJ*@&g=n+3IH8AxXN)1i z?}{)d{7y@oeEMgx^92_Yes5-|!L%5~FVu83m|vE|v+GcU9ul&5`|`ItR|loFIO!9P zQV(^n?B2%bCFmg`d-esF8KXIIHl8_i-n){M@KemgHfLIlia9tv^)e(F z6+JQS6rrebf*uml^V1X9Lk$v)in*lo#FlGoal$dkZwYa9Ia>cNPUs=QuN{pOjJkI- z90}=NH+N{ICo(NYseFI6+dC?RdiYuA-Y@k&_N!>8?wr^bCh7_v67196l9ON*XQD1a z4+(zfYn))zV1`=^F8(e~qKB9BghuLlCwxCW<;&c5HRvIsF@MZGH)&p!ya$AOIQ6;&JtR~*S z`TmfOd!Fx>gB}v0m)?)6Yd9@NEnd|ufA4||D!rW^5?p0=b47wtA2|0{ORu@$KPwva zkl=jW)!^vVnffo!J1V8i(cC5IA)(%W#?z0jT1wKLZj>D`{geYjT4OG zny5?ALqcPI^YdyNBp9XhqgQHO4W0pF)tBDEQD2H0895u!Ln2n0%k^~$2}bGoCU~~i zIZMA-iid>sK6+NI?=me$seB$?PGA2nPJaL7?U#S`*1UR+)?B{e$h->Um!Y}@JtR0D z#|cL9%TQf{9uk}}x3%&=xVS|IBPSdE@15{%NitA56L{LA)S{^cIeO>^Hv-ublUEsppz&!T0db#uiL zMMC4|$Ik8^rRyx^q0m%s7A z*H<)1Fp4$OEeAa$WPkIEFRf_w2}iM=x*8m{@%wZ6lpno!FoL@TM=FUpODuo!6DL+i z6bVLYR`Pc{yBhS6&|K-Sdv*zWNUYwk+~Y{7FKkjhe=sdZvDQUo--6*W%K zLqaKCv+J)a8YCE{UzVD|hq+>DMXS{m71v19PGduY9ujWN)d@z$wcZg8dPumB4K+wG zDy~_V)^sn?zl#%kNO(LBHApZjuDy@+5_(8@#u#dlU{u^gC_ScI4thxFY^QVkP=f@c zq+Rb<^pNlwb*RxN-1}6A*F5w~mA=dVs$S`+@xDtB3H8v8UiFU^4HAqRF9$s&)ZgkF zBpB5%`RtCn2)C4N%~4D#_1QEZ%A%)6aE8mzl5wQkZfDUl=H0I{!Esk3tTB65Epk%s zxY=&Y(RpjDOT^kO-9@Sq)+jlf`l%q@E%wtpvi&qfzKiU5okRR4l05Nr+nk?`izn#t zP6G))Ni4!o#LM=R>q8Ac3oehJ*_Q2RtA~Vg;%Azb6F=8S?OC2w4thxVy?~(x2}ZF@ zT@636p|t#zMQfMm*1CkAL-ccx{`!;%f0byMD|$%yOH`{9jPm~EL&DD_%HwATW$Woi z*Lt@c^pNO3J7{Wg%HH7j4Wz+ZceMWPwjc@io^gUvex80s z>PxXh4HArE`MMe!ANoq2((>29WUJ@vD`P_qdPs2GbTvpY%Dev$HRvHRKBD}Dq0;h` zfU^C>-cZBOq{^cn?T!59-UtvNay{1>&Iw zJtWu{x*8-HrSYh5@(wlVAu-lnJhb1S$sPQ?Gzq~kt{VvE*gB}uUC$9#&^KaBv z86?6kQ9Lt9V|HaC-j+*G{OOH6**b^Y)*VH^MK>hm=@X(e@q@*6dVaon;ogT$^|YbV z()*6G(>ft+y-}&-dONpiNYK+KL}%iq8|{*=m%JzT`60nKHT5Q|H1sxb(~zL2Pe>yZ zS3L8ur19K!>sCm}b`|L~LK>NP;kkRK_Ze>7?Cnz$d|Q_7 z6ule-J$+)<9x(<}In*Ys(OTP-F*qRFG1zHMmAs6>RE`*fdg3=l>3W-N?6u0YV!Cq!rB4L>;`X&kZJ11BV8J1Tl* z($M|`O+$j7J|Q|2(c66!8;}-=&2D|V>#O47w6?RAz@olzV@E)k{;k zU=QsOv47$$Ek?12b_te{Gm*=&dR>v=tkltn-4JKB%P1co))hS@Y;%>7Yqv%WR{%L* znP96$U8NS(*^(*M%c1;|aF5ZdW}IMDXrwl;mb`dKxCN^kB$BPDXxU`vl_g6~Pqbi) z(%SIe<%&eKN206kkvu9PqpVTwSBa2^gzbD*V>y@>qd3xH4HxU(N5)z=$VEMoqNiAu zE8EiJlc(bZqip9E{9UZqe-VGBL62=|@LAQS86y~FJ8Rs0^tzQB^V)rp9^2B08d;jn zC1V7mY-bJ6ZmMO~&$n({SL#Z(G+b|Wg0FAYVT;piSkE}ZE2|eXHOfB5sb2(HLi^I z-Z$2WsSet-yrP7^^ZzJk8Nr2y@1%2YlL8w?X2w)EJRMz=l22u9h?8g6fuLv4U@muzXcZR!MD5FFT)ODi{*>m?n{Pbw{kJW92s$s}gGNlgGB(!*8E9%^0EDb(HO_ z@#E-IJGE-#PTy zmPWTd#t25)&Kf&M`scTOm(SwZmPY)tNY9Jrbvp@qYJ}+6DLv}x@$DESVOvr0%OX9| znl(t!QzNoQ{9>8LZ=5vFN!V6Y{IW>Ty=M&)^wfx~u@e3EqUgWsyCiHYDt^h7r>vTW z1U)q(YkcpVr%XS;%WmpdY3+k?Ue3G!ciQNt3g8P+EXL4MqBcvLBh78R12TnXt7&YiJ+%OWR123 zQ{N?FTTyCFukA{kCxV_Dku}t3^Pk0u2%HU4FHswap7kro>#Pu-IhQcXG3R=7nQ{w~ z@R~{C8DKl&))6dOj!md^IGLcdy%3S9+gMQL1&lcQ+)cA=-V3dc(SMPDoIDb;3Cejr1F5 zm@9gi?sz%a@zFL;)F!lB}&?}IgtcCJ!0+;6UvpN*vDoH8Xvu= zIgiwFf}XGo5jCCGjKjJj!6@0DF}k^8A7#&1O77ELf*ummaE}=$7^PbGOw=XlAtBp6 ze|5r9s<(PMl$Ps6<6Q5Ft43LeT@89js222w^y=-wsP60&XU<7`u5H-+Z0iib-jmL? zg`lTKS-pn%vmS6{GlmT+?hH z#M^`Tc@XrF*zkbumml-t!&;52zIOk~1CO|I;rbrID83&TSJi^}-8*hvxG4xm{o5%| zS>AS!LsPn4;t^YHGkM1DXD*z3=b8yUB;p&%%le*puH8q!_D?5!Z1nbp=Nz+BhhP-n zsB4vB%!|(HvklqeYe?_aY=fT@g4n6+xm0v{d zGA%}R-v&JO{ZF18wfieqzINP>6Go{P^lfV8y-T$1vEugd8=xfAHU}N~;x<=TMw{RN zh#Obb6PXsH)ZhI6XwzI5L=(hyZNIXIgnG|k@34QXu}}2fLw~*1^x7W5D89iL_c>2H zb?y7!xMq6d8`q>Uc+98vOKI_4LXEC_p8A|tWAiuOv-W_8?lL{?5j#!jA<@-nN9|Oj zmIR|Ty7t}lxvj>dqa1IJa%g$ns+>D&2;{PZ>>G%NoywDv&3H-R||4ylBRiQ z5Ss_FE(m%^+<5y=^GC0|w$0TGe*f6%!|(aPLZ4t1_f&`(?xBA={o51XweY#9D@H{x zNnd4GuDZnip11Y%i7)v4!YglDlXi#k?kObRaqv^-4?Qi<5>4|bCu}->z#czeI5x_` zv>3&`8k%OKARZUQdxBupPha|{^Kbg>TT*Ge#94>lymI^3|9Eo2ZEMmlP~ItmgugnU z$N39B^23$=KfKvw`WHKQ2u5*tho;%@#Pe5nz35?+!#)*r3HFm9@xLGSxcToK^tQG= zKKb~=S9ZMYiIew5IY=;yyE`<^E1q!p$`gZlR}l1&xO9tc=U?%$eD-OY8xJ~Y{f2+O z%S3HXf>GQLqG^t83AG13B#!*z!{`6+!+ak6-bwdgSbFPDlRm+y?miQLcFp(K{`0<1 zo$PSMjuS@x{do_a_nEUxT>aB$Ed0|RPnx{qnwU+oX9bCWf8}QLkGkAv&b@Ctbzz?q zwwoLuk-L>$4*ZtAt6PNDPAsD4KidL36S7&a&!Q`Hk?p}D_bJmn! z+wzcj>BBdf|JYe?YWvl-ce>=t24ZV8f@CZEMHY?vu+T=&2ETzgK>ZmV|9Z z@u}&iAwf@#$QmCxYTd#X@ob`gC6KVKC_OLgXSth(1U)sPXsomv+7G#;Wm{2vCOv5s zf}R?YHGUrV)i%h_K`xT8ttdXZ9xF=_^wfx~adX@yyCm+XMpZ46u&t=>^SdPIsS#OY z^Jl(uvgYq^Ua$7xlijuz#pk!1h6Ft|B5SuN2SHH^R zJoPI*ji=|>{q}&O)S9z5sz}gNBeF*HsfkLjF-XF;qSTtRH^WHKQzNp*wb8F`Lcela zrWK{u^m}Y^Rs%s#jmR3;eB|)S(=I7!5&16J10MUV$(AQ> zoqi3Iu&pTX?vXV}&{HF_#_f-}a^Z&44o(^*Y%9w9fn*I5^wfx~p|;jlRQ;EPZAE!^ zkF23c6ZF)GQjQgugM@8Gd3TRejzZ8=BeF)+?$qr;!nUHkyGLn{LeNtqvPSf)srwZP z+lun;9$A9~JvAb0TpfM)u(t08k#=-YTDIGA%zyI%mn>%u5|M84)QGIXo=C#BqM{b& zFM85ttp*8tYDCu9{IORqT-Ekn61Ei;t(o@I&*dONPmRbLy`EUoGOeiSmF0Mjci*L_ zMwD`_xEv&GD=J18>MF`n2zqKn)?nWyVOvo#OO%#v8WQx>h^!I4Wa@rJ!nUGfwk!Ru zX-LphBeKRPHa>E)?c!N+ZMbQCeNSy`Th|tNZ85G0A9wiV(i;S1$a^i3d-vdi`Z@_Q!E ziPE~_kN;$Ohlk{AJwBdGzR|f?t~~SY2T%U_+Q~dUB;qQ?vaf42%}Lu`x$=-x51!m{ z|J^zSqvDza+Wf!PY(9P0CHtjv)S{HbE^)-mcAYMMdZ$FtV_QW0qF5aGRn1k+oI$8!}9D}#&6zx_;m8agBHGU z@p1F?kmzb`@z~c-?|;eH(}*I$DBHQsuRrF%>D>ozluAyI?S7e>Cdx5EIm$H|UOVx% zn%w45j)}`b4~fuAS6DI;?J+@nlVwqyywr2B*d!loqv})Jka>;jk$u$dyUH+=cFV1;_`c)|{30?zinhmzO za^bH|I(YJ+bKlq@7!@NeUBAp4SN`z53&-#Emel68DCMwA?0NBn7M}H%BN9Q6Z4ta) zn&+#}{qo4k5AXPtMr~1NRLm>oc)ZWI>B;NY?Rw;7tLskMol(5L+a=b%{C}_f!_jY; zY_{n~&Y_0{uRu4=`yYPg%6C3~@Z=7F+G3X{nE_9J2AFJ@J>q8>~-AX(}h?8{N!)?Ocw3+~F0|!#?;+uK-ew%Ht^IinSi^-Nmo%|BTS5kzSy8ri-Pn6P z>v)%-r$*$f&h2&4RJ$Z>D@r@A{^p54YF8N~=&2D|LuF7|R1Olh6{Y7>fA#Diw;Ckq zsS!nE#Tq1RD@r>y&&m-Rg`lTKWQ{2KRHaurNZ3}Cc4psx^NVM7RS0@&MAnEhOx@-r zY%9t;vzIn61U)q(Yup)a@#(f-1(BYUQCha!a-=T|WDOFLZt>KJtZ_-y(}UYLe@WO@ zRMbNHPD9opK~Igy8f)WCj;q>!MZ&hCqBZBw+VIs&S%U;UHKJ&&Sc8OZMMbYfIYOfl z^wfx~5hb6xu1MHcRE(}t>rF#~o*I!gq6MdJa}u@{6|+R?3r$0Uo*I!gG%ozRHtxhN zZ?OG+*U$a;bJyE`@L%qho)Gf!91mjNo*E(AMAqp=E#LRAH(yVUDv>nWs19K|r){Os zATjSKA6NP6L|gI>A=-o$7N<;0wxhx>b?E4%C8Buxgy|d^|6P>TBT~uxZKJsEyJTt) z)|Cm@f{64*lBtYdPFV7yr#St|I?9#vYnpnw1#h@)$7%X|(!$E|7hbvh3-;M6)#88c z^_O$^yYx}X-sd-8PseXR=+C1)6n$g-{qG>?A@QPp=Mw!VTkR9XZ+6;XdUFuh#J?mM zb^L`dOB#n?D&m(BDV^KmUwTNymEzr%!(*SgR}epo+=#d-{*vfMef~6+@AT`R6~rY$ zTo=*GS<}osUE-^!N#m9S_YC5ilNJ_gMAOWoLi-$PFLJKnnGvCP&a51F z?XlAVE)!$Qn_GiQAlnZAIxmp8G<)cL#!=8j&^h=Ka=fztXjE zJ>RaCm+iJ3^N%_G`u3|NBqH77sS#P@k7K^Nvh7zSY%3~iVg8the!A5lK~Igy8b6Nt zO81`CcS+b*RJ7*&V@^K4)gVDnjVKxm)*xY9QPC?=j?gFsJvAb0M9C+vD-yO96{D-v zdee}gr$%IrXu*lwoP=#f=^mT=LfUPi5cJfDtl`yIG>6`5oR8;YmLGB8tF&%UYhT*u z@4IWPGC-tN-(f3Tua`%J><_)<_sgd1gyz>8@r0K=DA7X=5{_bShXl((LiV}Gp1wRJ zly`Ytj_(|>$DHhO!k!u-dZp05+~NP~pzaSalR61~Z9w^_gauRm7Nu*VuERKB_f2}ijW>Kdw1c@)(r zN_(X9x#}RI(wAB^i`w4*aaScz&YSn;>!5u?+M-kKb~IG)zkSe|C0*M(p6^;l z3l0c*q@kRc7|+#ir|z(R%lloD2&XIhd+&bi`b!VYJLz;a>`@enaSalV68#s~Zn=Kb z>+=pxT@8C&4%am6YF1yDuDNwiWAMK3I${1hhu)OzZJ&R_d>mi$aYgG-)}e>Qi}$!b z(ck#?M^aC$6O0NvX-F>#6phGxn$1_?&F4u=}_kg)BUS~{h6OMV&k zzGvT^X{x1^pJ?R{uBM2-(PS}w{}S|>cXvat~S~B6+I1?P%RZLn989xkG_y>^@Xm6 z>qqm_^uRk)PQGyA)#vQ z)1Ze$lssvi^z^NJ1kWsI|MKoR6y?RyY^GqEhYF<(Dkgz?}s1b_taj%w! z8uBpR?ce;nl*7IMbmLw*m=>cr+jU#eXSLtneZZX0qG$fq3+8-IeDM?Zo$C_zyzm=m zXs%7QaN_A_-pjfoVeRXFcV=&9a5+@FjN)pbn=5)q_}sP2KOfuEV3g0)%E>rE4+*b> zzPtVBdKx4c<#XaNSM-qZjIqO)`x+z|^}9!JnR>~GesfGOSM-qZnBQmdUsfR)%Lyaz$ zuiGBJx(ynDXm^|61IoqoM|!2IW*C|2B0fEUdNXR2S6279N zlCMs**Or!bok6{4NJOtoSDmCGyS+x1u7t=Q5?WuiS2k1oJBQNn@AGc1>~X!B@U_gL z1_?)r)^WGsP(vO?^@)1PotD#8lyg|u@XE4A)HQTHi8b0@DNHq8uJv`Uc(FZ1oA5Qj zVO^1MlyW%UOYBh;3Drosp4iD12}iLOQm&@@ul|H*USEE0uOTM8z2cRwA(yLz9YX2W z2$io~fgB|qC2e1AQ(n>&7K^gvQB->kabC4++qB|3&weDrc_$&eT(j)t${y+AYGg@i zbqx}}&bT_^sD8;4HPL@HM=4jod*|Pk>!R*gI_`1aA?D=yw>O@#Hr5ZxKJlez6xt=9 z5uskLo|4enPAT30(PyN&q)sqO>lG2wQ?&l%u^wlc)N0>2`HZ!3j!O2K?>u8|oN8u(tZ!psotRDE81U!QS8~ zmC4$}lG8)NdZN1;BpBu6)izJ%kcWipa9F!eOXJSDYRBWe+C#?&xhftKu92LPI;Tg}vOP6IbRp8YHu_RodD+&gUnzMN)g|bu z5uyjgywg&yWc%p^AMXSH2?eU}8IB03S(@sT_lozW|kt=T{` zhBSsN8J3VW%^Df6D-z@F!L%4T8#4XA)&K@G;}s_P3w%z z+>V!=gywvuG(4X(Ek?12b~V^i)QI#;%XSHRNU(h41f!hNc)yZ|gv&JS?M#bN&f$=V zx>^ouSu2*%NVe9A(VEE~wqT^SBtmJ0MzMXo+8#xN=|(R}$Ls4WX~;vuwto+*hD%Q@ zX)($g(x0irR!C=YC-K`TH~gxL62<_Y@04Y zPmLJ1APL)w8gFx*ot1Z;>9w+ytrctho9t?DFCG%s81`MJ#V8-Iua=Y(c}UnEmYiuZ z%H^xC`lKNb374sy4HmsFx%2J==0!aJt{<(n{mGqwTIOIKFD>YG$*P3t?rv{;zWi_I z<6chEu&pTTWeq;@OHYl+8aZG2nn@6;@9KF<+wGd693PaUcxpr*wR&o~eR4UzMfW$l z7q~19+ln%spXDS$PmSQrpxmW5k;?OMni*cQ;e-E8Q8Aj!wJevT5XD0xwC7Ea6MiOD z8hlo@OSl}0Vmaaoyvs%v3Ii`c<25dFooTlCIC`xTE!Nx8#26UQv<5<=J!k zGp0*0DxT%#)9M9ToGR~|T>9zs%(n9GbXleno^nMG2|h1APB3b`u0kVyJ5#0AbI2EN z_m-4HJ@TV~WQ!P%!@(?|Z@a%El*ZsPz$=}cgsP7QEGpW;4ZyCu%?S682y57Dzp(v%K_E1VHMVGM0xiaCahJ{#^#k6EQ z%E#TWh8ptp3DLd+S%^iZWx`iEzjw}#>;LAV`PW1tQm*tyUi+IPtrNA579D@rd!^qc z>`|0x6RMHC3h&ny2}g;(>GxZ&|BE}@H%8L$8`qURiXtJqURQm>_4bOBpSXV8S6@+S zL3^xWqElDt+HRYxGCG4Ovw>~@R+~MYAW!^FwI~}ooVT`8?h-1Y(h?!NZJTucy0m#G zSMCjc!rDU(5{?o*UUGXBMPj@h7(|3_^oe%Nmuvk)0^_cv zD?Qb88Rwl`k#Lj<*I`|w9d{*NYm~k_&>+$F#6;KoRlk>*(0DYVoav9gUiUX?4p(22 ztuwN0tvGDw*!b$$$?j+@M&9CY?pHd~OI^P|ZA(vUhGDMg zA;H#6CGTiBEkDB zQ6ii}5wmrPTFo;VTTu2U(c3*Ib_sj>gnotB3C(?)Yen#Cq_l@?A4M@&)LWfUTFkrc za{idQ#;ietIW&>#E1h-xi(Z6nMX7Bx9$k(ZK~In9tlR5^TFt9_r^Iod*FW_1h(xR4YmxOG$N4FeKOF40rbC`+iV{eh)w|fH0c6n?oC!WEF1U)q(mm|KnJ@FU1N!V7D&jwk81U)sPt*iI~xW6<`!nUG(*3KI7 zrSU@0QzNoQeE)pGUrZ-qTTwo1XAKhc)QGI%(WG(Z8dX}dJ%9N4I3Z7;@M=IQ>rd{D z?tRi=4t?AjLqZ-Bwn=2lX-R|q)mK$>T`4yIS)9=0>$|2sx*V;4(<(fTB1MtVRaITT z8fq|CjB+`K1U-F1cQaNeL_5muKP2cO;p=d#6O3{{9uoAB@O8h{2}XH54hhaO?1|FT zRp%kWw5Z|UJ|yTN;VYi26O3XGyZwqD64KLNNOcX5R7Q=LoF28guKX)q)?qhS^pH@m ztk*6HMsYlLHRvJXyBx!klVB7_vo-QsF^IH=Q(94uV*5Dfk}lECK7}xy3GMoIPrGwn zv|#!@C=J_+@~^&J4ifa#h^+D3xPN|gyPFjW+lulp$gDwvo*I!gE{rm0*Iv~c3EPTt z$+HFtdTK=0aEoXbjb5^>U%##^+tEYQJ;FeLc2|ay6_t=ISBxF0veQZe3LqdI_UJeqB@>m&a&_g2T;8N4wl9OPR$NW%( z9uje8==SzSRjq251fz7^qpO=MdPqo5_vq`na$1byNQ*rIW3IxliF74JGl0g5*M=Ge zv)|`6LceiH*v`L-;@89!zb4Y1DtS~U-?fVK{IaeT4GDT`ME0yn>9$# zQzNoQ^uTg0!!@e3WUI|>yKU4HhlJAV6QZq=sC4y1{m1!b4t;!_kcWhA5;=G5as6DW z9J#I(oBz!2>dV6(ZjB*94+&~Jef^uBLMkmt+U-Bopohe`1_?&F9}hL?A;G@ja+LK| zx+bHvB3H$ZT1YnABN2Lbuy{z=&ct$DXZS_*c&UZ@yziyhR#fCRJw=eqL4uwdku}<@ z2C2uBu&t=5!}Nq$)*wMojmR1o##Mt|V+K+=NZ3|XjK}$p{&szPrHBMQH6m+#A+9q_ zVkMW)~NWkvAdqrQ5^v{q^ocnx#S-qXM z@5JZ28Y3K~lx&yUokn}4Ri8c5pv}AbO%p9xB^)IU+gT&pV;b#|H0+TEZ9fgMI^ig3 z*v`bie{1iR3!?whBMnE%j=$v@mZlja92NhTJHJ^Y#&}vY#D40#>)ux0p?S@20h5M2B)AiNT|)$; zOdoUL{_DGhYxnMJU#QZ~&+a1rue4|Xe_s5e9?>*24~g+|^oUX>*PFBlxk_!&=Bg0) zt{f4SdW=fT9CkJ6ArbYK=)9kPX1e{Vt=$skl!pC^9;R!(_Dcduq^qH{80B_qztfNj ztpN1h@brC*+duqQ>;1inSDx~s^%_zAJG^-fN1_|`*7P-x;|_Z1tUb~yqiJRy5@8SS zRQvZqhbU2@oxVz<+~&H~xm@MYK2FN7_Gr_-QL?ok74UG3OAPS8UlRy2t&JL8pHkzkbD zKYz!BxuS$ya&cJFdU!gjS^m0U5(8tS3llE=)DdV}Vr7!#>I zG#ila67-PZ_o~JTMvdo+9un3YjM{V!Ks`<+WR%O7&mZwCc%r<0HP-DK6W*)V<3lyd zeGZ$31U-F1+Ih#tC&yY^8dt=+odjnF?sM2QBgJ$+u(ku<&)bw+|SwZ@9-FrRTq(9|#KA~J?;@bAx zPB+DUFXzg;u`4ICqratc!52Y(!C zs~kIp773mcxdU#~kf5heNF$#)SK@cGG`<^kMuKM<)jDby1U-GiEvwY?3PToawAMC0 z;|vLT`h;?oiS`?Ai}BUBiF2hHz&%DbccG5!G5KzLBIxN8Du-6f`72{8jNXnX!4)$1 zD(@2X^a*L?mHrL+-udFMVoo8!HN0yfmz)GWeL@i4{ z|MdGclVe`p%(H>C+vD?v&-boo9r?<_G9;1zTf8CtlweHN9UjZ_4_QpWxH+GZ@AA# zd*79L@>7pF`%mJVUKd8m8Flp`8!W%-W!tR(@2~fXTi^7Qvwt4Z8wSPvlK8}i8!rF! z+uN-F$qD)<(wXnx^xt0-(MJSDf>GUaTy^T>zWVMBcbWY4#=A_mKed^E{ta8NU%KRk zdA9$>du%ZOp?$YmzxIFUn=i@M*Hv^}gpLmhdrXs%Eh2q)c~Q0N{Awn1PGq}$d4@|& z`cEc2_mOa!NX)KTDp&sYnQVOvKs$oT{`itcZT^!9dej~!Vqc_WKmTHnL6t$I34Jku zxgy<4v;;jQSR>;EqsDXPbk!T!YNpvsayjTBVY{?oWNn;Klyjvolyu9%Txst<)vmrb zVGZ{yQCWi?656{@^zf@zBp9W=`$P=CQROIo&&L}2-kFK|w}h0IJS1GcVNYaQjB;*= zwM!2P_P1{Bl3>)JJr-5Hs^Lg?N#$tAU9olCBh4E6Hxu?mk12#~AJ38IB3H?y654LR zAC+jAJh!(fMJZQf1iy)tw5HCl_WyTIWV?L)F2IbCMxSt*NaUPFji&pu`qDy-;ADG` zc%|f>(o_0rW{7^3%AtN0?VoJ*7?w}b`cry)r{qdkrHvL$dc)a=9;Yk9xgE}M(O;8> zdN_0Fx*GOfdPrE$EjTL&2}ZeghZ^*dVEIx-mAcZ7YpS2P?v}pCB3oaXGRT|nQSM{Ienk%n*VXX*A0!xMZS`r_ZfeD{%Fvhaq8w=j zAUpKtRB!x3-i)w^glr$rkyeV@P3h_jC${x{6xkyD<&)Vp0D5W!zpj$BG{YqgeS<@J z*Bm9=x$?I;oToIyCG|exl9R~&Drz^a4chNbB)k3IVY2lNu37rBqTY+gw1{Y%bX;HR z>Js#j7|#_wB&@BkFm^RaFsfEpx#T``>U&o{59<3`<3x}mHthu@Fk3*Vn>ZEsWq9a8DUT86+*U;=SclmeL?@?KzdN zPS_La7DBd<=iKPO`V&V}R9jccZtE%$rLH>HeU#Q1F{rDwzEa86w#vJ0=c?M~Nxe_F zxF@Xk@EJ$8#+g;+Gh=p{*S#ENN}Fl*+3fkj6;H+J|T@v zoZa5rz9a6dsaMORHju4!Wozb>oxf5!MlgzVW!|4!b*1}i^pMc}D2@D;N=4QPMsY@M znqNi!MVuJrp@&3_fTWS<_A!D{vQ;CQxUJRrX53k{$Ez3RUAFb|7bM3BMme{ch&OUm zIrJVcJtSOj`Ag$t1fyK*nYaeeGtfiA?VryEV+5nzdopopTUYN~w@&XHq&}(@3s)~% z)u`U`+J^)^eM0S#iKwGgS9*(?1XoL1;YcH|+ey&VC!~>y-?w$8x3NiZ<>YxRmz)GW zeL@X!AnQ(*8*@pOV3cfWWFpS7A{KQ9wWs|Z zmC}{1--fEU{0p)rnm)lO{+eu>$K~f_7H^32AU!1Xn^PM3>)9>Q^a)0Ff2BTb_w=01 z;wEv;>?+PiO!%TJfalk@t?0ok)WqfNFx*f*^a^32Vz3P zGlQZ$kL8k+pr=nrBNN}xb+x#@tt)wS#nidd^>5X}?2h}|R~$C|+4AeYdeO?!sdnul z!F%^j)8=YXA5A;nN9Sjdwrx*DIIbcf(zuefY~e8YK8+MALjD+Wdv*ed()@iKi2o z7Nb}TP4lRYpEA8<#}A)#;MKdOUZQfSMoI8lil+I@Eiaxv;E_Li>Z#A)xI-|iTDy&Q z3vvDQ?`JEw8nyY3B6`V`9=DBXmoF3V*(mq+m*A`>52I9aY2+`zlc1+hs75l;_QWQ7 zVmYhH;~JIi(VV|WPlBF4A&pF6E-7a9dP$XF zlx%5aB6?yX)D!6;5xqTWB$MledYG%|r}8CvNV4+;0Ne1~_8V3d1kCN6JF z{$l(R=JN%zulAtHfCF!cX36&!gQAeq+q6W$@VR=M5D$a08Bi}_PK~J9$ zoryR*rxB&|ISJX0iZgX;k6dyR^z;eQnb`RIlccfPTW41XHMT`7N_O{&#`Te_C-1ZI z(gjh=^pLP#Uc+yPvq01fyhobsq0#9Gid9zo%U%`g(h`V7dMsHIkm$&R<0&K~JBE z*(iN~G|wTLOEf-6$aYkeDQV|}X^@B9>x5>u{M#+{& zCN|tVxB1iZmAm305$Pw5d?#*yY~2QX#9WruBr9%mr2J6M!6iB zK*=ZckZ`@_Z<&q}jB>4K;W9%O0* z+3wT&UT)KnphvW7*M#g$>>uxB=xp%ect3-Ld%L1Mn&S#vXpo?%Pe>yZUvAs{*kj_& zuy)Rn$D>xZ=a~E@WfJuC329^^YIjBDP>I&fBU* z*{UnqabGnZ&tI@7K~J9$or$<7oN}eR$RuPtD((*_jc=T+enoSqhfTG{?<9yrfaY6iG4zJ9_KpO{<{4Q;(f36 zj*@NdLK=IG;%kB==&2ET57R%6K6_>RTZ)8jMa3Sb`2HXXdTK=0_;Hls=60-;u&pTV z8#ntJEeU#RMA2BW1_|4Wik)>)j?gFsJvAb0M9HVFD-yO96*~l@JxI_~BeI58$Zm5I zwiV^Qyz~2NB zB|%S($Qn(Q!B<&G*j7}uCch30f}R>tG*+xZ!nUHKSE3w|t3uFIBeI6>N4c&@*j7}G zu2SpyEo>9?)QGGRWtghI)E*>kE6O_^=YB%5`U*RoV1Yol|9_2D(KSw zO(WvQApScDdPu~MH%od~Kktik^G+K~ZVKYg_?HBuq88Bpw?*VFL5QS>L|oTBM;du2 zoy#LPw*~R@$Q_Ap)cZ>N$NkzMq;YK!O*8X!iPro=3FW str: + """ + 获取模块版本 + + Returns: + str: 版本号 + """ + return __version__ + + +def get_supported_resources() -> dict: + """ + 获取支持的资源类型 + + Returns: + dict: 支持的资源类型字典 + """ + return { + "tip_racks": { + "LaiYuLiquidTipRack": LaiYuLiquidTipRack, + }, + "containers": { + "LaiYuLiquidContainer": LaiYuLiquidContainer, + }, + "decks": { + "LaiYuLiquidDeck": LaiYuLiquidDeck, + }, + "devices": { + "LaiYuLiquid": LaiYuLiquid, + } + } + + +def create_quick_setup() -> tuple: + """ + 快速创建基本设置 + + Returns: + tuple: (backend, controllers, resources) 的元组 + """ + # 创建后端 + backend = LiquidHandlerRvizBackend() + + # 创建控制器(使用默认端口进行演示) + pipette_controller = PipetteController(port="/dev/ttyUSB0", address=4) + xyz_controller = XYZController(port="/dev/ttyUSB1", auto_connect=False) + + # 创建测试资源 + tip_rack_1000 = create_tip_rack_1000ul("tip_rack_1000") + tip_rack_200 = create_tip_rack_200ul("tip_rack_200") + well_plate = create_96_well_plate("96_well_plate") + + controllers = { + 'pipette': pipette_controller, + 'xyz': xyz_controller + } + + resources = { + 'tip_rack_1000': tip_rack_1000, + 'tip_rack_200': tip_rack_200, + 'well_plate': well_plate + } + + return backend, controllers, resources + + +def validate_installation() -> bool: + """ + 验证模块安装是否正确 + + Returns: + bool: 安装是否正确 + """ + try: + # 检查核心类是否可以导入 + from .core.laiyu_liquid_main import LaiYuLiquid, LaiYuLiquidConfig + from .backend import LaiYuLiquidBackend + from .controllers import XYZController, PipetteController + from .drivers import XYZStepperController, SOPAPipette + + # 尝试创建基本对象 + config = LaiYuLiquidConfig() + backend = create_laiyu_backend("validation_test") + + print("模块安装验证成功") + return True + + except Exception as e: + print(f"模块安装验证失败: {e}") + return False + + +def print_module_info(): + """打印模块信息""" + print(f"LaiYu_Liquid 集成模块") + print(f"版本: {__version__}") + print(f"作者: {__author__}") + print(f"描述: {__description__}") + print(f"") + print(f"支持的资源类型:") + + resources = get_supported_resources() + for category, types in resources.items(): + print(f" {category}:") + for type_name, type_class in types.items(): + print(f" - {type_name}: {type_class.__name__}") + + print(f"") + print(f"主要功能:") + print(f" - 硬件集成: LaiYuLiquidBackend") + print(f" - 抽象接口: LaiYuLiquid") + print(f" - 资源管理: 各种资源类和创建函数") + print(f" - 协议执行: transfer_liquid 和相关函数") + print(f" - 配置管理: deck.json 和加载函数") + + +# 模块初始化时的检查 +def _check_dependencies(): + """检查依赖项""" + try: + import pylabrobot + import asyncio + import json + import logging + return True + except ImportError as e: + import logging + logging.warning(f"缺少依赖项 {e}") + return False + + +# 执行依赖检查 +_dependencies_ok = _check_dependencies() + +if not _dependencies_ok: + import logging + logging.warning("某些依赖项缺失,模块功能可能受限") + + +# 模块级别的日志配置 +import logging + +def setup_logging(level: str = "INFO"): + """ + 设置模块日志 + + Args: + level: 日志级别 (DEBUG, INFO, WARNING, ERROR) + """ + logger = logging.getLogger("LaiYu_Liquid") + logger.setLevel(getattr(logging, level.upper())) + + if not logger.handlers: + handler = logging.StreamHandler() + formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + + return logger + + +# 默认日志设置 +_logger = setup_logging() \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/backend/__init__.py b/unilabos/devices/laiyu_liquid/backend/__init__.py new file mode 100644 index 00000000..4bf29392 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/backend/__init__.py @@ -0,0 +1,9 @@ +""" +LaiYu液体处理设备后端模块 + +提供设备后端接口和实现 +""" + +from .laiyu_backend import LaiYuLiquidBackend, create_laiyu_backend + +__all__ = ['LaiYuLiquidBackend', 'create_laiyu_backend'] \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/backend/laiyu_backend.py b/unilabos/devices/laiyu_liquid/backend/laiyu_backend.py new file mode 100644 index 00000000..5e8041c0 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/backend/laiyu_backend.py @@ -0,0 +1,334 @@ +""" +LaiYu液体处理设备后端实现 + +提供设备的后端接口和控制逻辑 +""" + +import logging +from typing import Dict, Any, Optional, List +from abc import ABC, abstractmethod + +# 尝试导入PyLabRobot后端 +try: + from pylabrobot.liquid_handling.backends import LiquidHandlerBackend + PYLABROBOT_AVAILABLE = True +except ImportError: + PYLABROBOT_AVAILABLE = False + # 创建模拟后端基类 + class LiquidHandlerBackend: + def __init__(self, name: str): + self.name = name + self.is_connected = False + + def connect(self): + """连接设备""" + pass + + def disconnect(self): + """断开连接""" + pass + + +class LaiYuLiquidBackend(LiquidHandlerBackend): + """LaiYu液体处理设备后端""" + + def __init__(self, name: str = "LaiYu_Liquid_Backend"): + """ + 初始化LaiYu液体处理设备后端 + + Args: + name: 后端名称 + """ + if PYLABROBOT_AVAILABLE: + # PyLabRobot 的 LiquidHandlerBackend 不接受参数 + super().__init__() + else: + # 模拟版本接受 name 参数 + super().__init__(name) + + self.name = name + self.logger = logging.getLogger(__name__) + self.is_connected = False + self.device_info = { + "name": "LaiYu液体处理设备", + "version": "1.0.0", + "manufacturer": "LaiYu", + "model": "LaiYu_Liquid_Handler" + } + + def connect(self) -> bool: + """ + 连接到LaiYu液体处理设备 + + Returns: + bool: 连接是否成功 + """ + try: + self.logger.info("正在连接到LaiYu液体处理设备...") + # 这里应该实现实际的设备连接逻辑 + # 目前返回模拟连接成功 + self.is_connected = True + self.logger.info("成功连接到LaiYu液体处理设备") + return True + except Exception as e: + self.logger.error(f"连接LaiYu液体处理设备失败: {e}") + self.is_connected = False + return False + + def disconnect(self) -> bool: + """ + 断开与LaiYu液体处理设备的连接 + + Returns: + bool: 断开连接是否成功 + """ + try: + self.logger.info("正在断开与LaiYu液体处理设备的连接...") + # 这里应该实现实际的设备断开连接逻辑 + self.is_connected = False + self.logger.info("成功断开与LaiYu液体处理设备的连接") + return True + except Exception as e: + self.logger.error(f"断开LaiYu液体处理设备连接失败: {e}") + return False + + def is_device_connected(self) -> bool: + """ + 检查设备是否已连接 + + Returns: + bool: 设备是否已连接 + """ + return self.is_connected + + def get_device_info(self) -> Dict[str, Any]: + """ + 获取设备信息 + + Returns: + Dict[str, Any]: 设备信息字典 + """ + return self.device_info.copy() + + def home_device(self) -> bool: + """ + 设备归零操作 + + Returns: + bool: 归零是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行归零操作") + return False + + try: + self.logger.info("正在执行设备归零操作...") + # 这里应该实现实际的设备归零逻辑 + self.logger.info("设备归零操作完成") + return True + except Exception as e: + self.logger.error(f"设备归零操作失败: {e}") + return False + + def aspirate(self, volume: float, location: Dict[str, Any]) -> bool: + """ + 吸液操作 + + Args: + volume: 吸液体积 (微升) + location: 吸液位置信息 + + Returns: + bool: 吸液是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行吸液操作") + return False + + try: + self.logger.info(f"正在执行吸液操作: 体积={volume}μL, 位置={location}") + # 这里应该实现实际的吸液逻辑 + self.logger.info("吸液操作完成") + return True + except Exception as e: + self.logger.error(f"吸液操作失败: {e}") + return False + + def dispense(self, volume: float, location: Dict[str, Any]) -> bool: + """ + 排液操作 + + Args: + volume: 排液体积 (微升) + location: 排液位置信息 + + Returns: + bool: 排液是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行排液操作") + return False + + try: + self.logger.info(f"正在执行排液操作: 体积={volume}μL, 位置={location}") + # 这里应该实现实际的排液逻辑 + self.logger.info("排液操作完成") + return True + except Exception as e: + self.logger.error(f"排液操作失败: {e}") + return False + + def pick_up_tip(self, location: Dict[str, Any]) -> bool: + """ + 取枪头操作 + + Args: + location: 枪头位置信息 + + Returns: + bool: 取枪头是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行取枪头操作") + return False + + try: + self.logger.info(f"正在执行取枪头操作: 位置={location}") + # 这里应该实现实际的取枪头逻辑 + self.logger.info("取枪头操作完成") + return True + except Exception as e: + self.logger.error(f"取枪头操作失败: {e}") + return False + + def drop_tip(self, location: Dict[str, Any]) -> bool: + """ + 丢弃枪头操作 + + Args: + location: 丢弃位置信息 + + Returns: + bool: 丢弃枪头是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行丢弃枪头操作") + return False + + try: + self.logger.info(f"正在执行丢弃枪头操作: 位置={location}") + # 这里应该实现实际的丢弃枪头逻辑 + self.logger.info("丢弃枪头操作完成") + return True + except Exception as e: + self.logger.error(f"丢弃枪头操作失败: {e}") + return False + + def move_to(self, location: Dict[str, Any]) -> bool: + """ + 移动到指定位置 + + Args: + location: 目标位置信息 + + Returns: + bool: 移动是否成功 + """ + if not self.is_connected: + self.logger.error("设备未连接,无法执行移动操作") + return False + + try: + self.logger.info(f"正在移动到位置: {location}") + # 这里应该实现实际的移动逻辑 + self.logger.info("移动操作完成") + return True + except Exception as e: + self.logger.error(f"移动操作失败: {e}") + return False + + def get_status(self) -> Dict[str, Any]: + """ + 获取设备状态 + + Returns: + Dict[str, Any]: 设备状态信息 + """ + return { + "connected": self.is_connected, + "device_info": self.device_info, + "status": "ready" if self.is_connected else "disconnected" + } + + # PyLabRobot 抽象方法实现 + def stop(self): + """停止所有操作""" + self.logger.info("停止所有操作") + pass + + @property + def num_channels(self) -> int: + """返回通道数量""" + return 1 # 单通道移液器 + + def can_pick_up_tip(self, tip_rack, tip_position) -> bool: + """检查是否可以拾取吸头""" + return True # 简化实现,总是返回True + + def pick_up_tips(self, tip_rack, tip_positions): + """拾取多个吸头""" + self.logger.info(f"拾取吸头: {tip_positions}") + pass + + def drop_tips(self, tip_rack, tip_positions): + """丢弃多个吸头""" + self.logger.info(f"丢弃吸头: {tip_positions}") + pass + + def pick_up_tips96(self, tip_rack): + """拾取96个吸头""" + self.logger.info("拾取96个吸头") + pass + + def drop_tips96(self, tip_rack): + """丢弃96个吸头""" + self.logger.info("丢弃96个吸头") + pass + + def aspirate96(self, volume, plate, well_positions): + """96通道吸液""" + self.logger.info(f"96通道吸液: 体积={volume}") + pass + + def dispense96(self, volume, plate, well_positions): + """96通道排液""" + self.logger.info(f"96通道排液: 体积={volume}") + pass + + def pick_up_resource(self, resource, location): + """拾取资源""" + self.logger.info(f"拾取资源: {resource}") + pass + + def drop_resource(self, resource, location): + """放置资源""" + self.logger.info(f"放置资源: {resource}") + pass + + def move_picked_up_resource(self, resource, location): + """移动已拾取的资源""" + self.logger.info(f"移动资源: {resource} 到 {location}") + pass + + +def create_laiyu_backend(name: str = "LaiYu_Liquid_Backend") -> LaiYuLiquidBackend: + """ + 创建LaiYu液体处理设备后端实例 + + Args: + name: 后端名称 + + Returns: + LaiYuLiquidBackend: 后端实例 + """ + return LaiYuLiquidBackend(name) \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/backend/rviz_backend.py b/unilabos/devices/laiyu_liquid/backend/rviz_backend.py new file mode 100644 index 00000000..44e7be46 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/backend/rviz_backend.py @@ -0,0 +1,209 @@ + +import json +from typing import List, Optional, Union + +from pylabrobot.liquid_handling.backends.backend import ( + LiquidHandlerBackend, +) +from pylabrobot.liquid_handling.standard import ( + Drop, + DropTipRack, + MultiHeadAspirationContainer, + MultiHeadAspirationPlate, + MultiHeadDispenseContainer, + MultiHeadDispensePlate, + Pickup, + PickupTipRack, + ResourceDrop, + ResourceMove, + ResourcePickup, + SingleChannelAspiration, + SingleChannelDispense, +) +from pylabrobot.resources import Resource, Tip + +import rclpy +from rclpy.node import Node +from sensor_msgs.msg import JointState +import time +from rclpy.action import ActionClient +from unilabos_msgs.action import SendCmd +import re + +from unilabos.devices.ros_dev.liquid_handler_joint_publisher import JointStatePublisher + + +class LiquidHandlerRvizBackend(LiquidHandlerBackend): + """Chatter box backend for device-free testing. Prints out all operations.""" + + _pip_length = 5 + _vol_length = 8 + _resource_length = 20 + _offset_length = 16 + _flow_rate_length = 10 + _blowout_length = 10 + _lld_z_length = 10 + _kwargs_length = 15 + _tip_type_length = 12 + _max_volume_length = 16 + _fitting_depth_length = 20 + _tip_length_length = 16 + # _pickup_method_length = 20 + _filter_length = 10 + + def __init__(self, num_channels: int = 8): + """Initialize a chatter box backend.""" + super().__init__() + self._num_channels = num_channels +# rclpy.init() + if not rclpy.ok(): + rclpy.init() + self.joint_state_publisher = None + + async def setup(self): + self.joint_state_publisher = JointStatePublisher() + await super().setup() + async def stop(self): + pass + + def serialize(self) -> dict: + return {**super().serialize(), "num_channels": self.num_channels} + + @property + def num_channels(self) -> int: + return self._num_channels + + async def assigned_resource_callback(self, resource: Resource): + pass + + async def unassigned_resource_callback(self, name: str): + pass + + async def pick_up_tips(self, ops: List[Pickup], use_channels: List[int], **backend_kwargs): + + for op, channel in zip(ops, use_channels): + offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" + row = ( + f" p{channel}: " + f"{op.resource.name[-30:]:<{LiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{LiquidHandlerRvizBackend._offset_length}} " + f"{op.tip.__class__.__name__:<{LiquidHandlerRvizBackend._tip_type_length}} " + f"{op.tip.maximal_volume:<{LiquidHandlerRvizBackend._max_volume_length}} " + f"{op.tip.fitting_depth:<{LiquidHandlerRvizBackend._fitting_depth_length}} " + f"{op.tip.total_tip_length:<{LiquidHandlerRvizBackend._tip_length_length}} " + # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " + f"{'Yes' if op.tip.has_filter else 'No':<{LiquidHandlerRvizBackend._filter_length}}" + ) + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + x = coordinate.x + y = coordinate.y + z = coordinate.z + 70 + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "pick") + # goback() + + + + + async def drop_tips(self, ops: List[Drop], use_channels: List[int], **backend_kwargs): + + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + x = coordinate.x + y = coordinate.y + z = coordinate.z + 70 + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "drop_trash") + # goback() + + async def aspirate( + self, + ops: List[SingleChannelAspiration], + use_channels: List[int], + **backend_kwargs, + ): + # 执行吸液操作 + pass + + for o, p in zip(ops, use_channels): + offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" + row = ( + f" p{p}: " + f"{o.volume:<{LiquidHandlerRvizBackend._vol_length}} " + f"{o.resource.name[-20:]:<{LiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{LiquidHandlerRvizBackend._offset_length}} " + f"{str(o.flow_rate):<{LiquidHandlerRvizBackend._flow_rate_length}} " + f"{str(o.blow_out_air_volume):<{LiquidHandlerRvizBackend._blowout_length}} " + f"{str(o.liquid_height):<{LiquidHandlerRvizBackend._lld_z_length}} " + # f"{o.liquids if o.liquids is not None else 'none'}" + ) + for key, value in backend_kwargs.items(): + if isinstance(value, list) and all(isinstance(v, bool) for v in value): + value = "".join("T" if v else "F" for v in value) + if isinstance(value, list): + value = "".join(map(str, value)) + row += f" {value:<15}" + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + x = coordinate.x + y = coordinate.y + z = coordinate.z + 70 + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "") + + + async def dispense( + self, + ops: List[SingleChannelDispense], + use_channels: List[int], + **backend_kwargs, + ): + + for o, p in zip(ops, use_channels): + offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" + row = ( + f" p{p}: " + f"{o.volume:<{LiquidHandlerRvizBackend._vol_length}} " + f"{o.resource.name[-20:]:<{LiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{LiquidHandlerRvizBackend._offset_length}} " + f"{str(o.flow_rate):<{LiquidHandlerRvizBackend._flow_rate_length}} " + f"{str(o.blow_out_air_volume):<{LiquidHandlerRvizBackend._blowout_length}} " + f"{str(o.liquid_height):<{LiquidHandlerRvizBackend._lld_z_length}} " + # f"{o.liquids if o.liquids is not None else 'none'}" + ) + for key, value in backend_kwargs.items(): + if isinstance(value, list) and all(isinstance(v, bool) for v in value): + value = "".join("T" if v else "F" for v in value) + if isinstance(value, list): + value = "".join(map(str, value)) + row += f" {value:<{LiquidHandlerRvizBackend._kwargs_length}}" + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + x = coordinate.x + y = coordinate.y + z = coordinate.z + 70 + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "") + + async def pick_up_tips96(self, pickup: PickupTipRack, **backend_kwargs): + pass + + async def drop_tips96(self, drop: DropTipRack, **backend_kwargs): + pass + + async def aspirate96( + self, aspiration: Union[MultiHeadAspirationPlate, MultiHeadAspirationContainer] + ): + pass + + async def dispense96(self, dispense: Union[MultiHeadDispensePlate, MultiHeadDispenseContainer]): + pass + + async def pick_up_resource(self, pickup: ResourcePickup): + # 执行资源拾取操作 + pass + + async def move_picked_up_resource(self, move: ResourceMove): + # 执行资源移动操作 + pass + + async def drop_resource(self, drop: ResourceDrop): + # 执行资源放置操作 + pass + + def can_pick_up_tip(self, channel_idx: int, tip: Tip) -> bool: + return True + \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/config/deckconfig.json b/unilabos/devices/laiyu_liquid/config/deckconfig.json new file mode 100644 index 00000000..ddda7e0f --- /dev/null +++ b/unilabos/devices/laiyu_liquid/config/deckconfig.json @@ -0,0 +1,2620 @@ +{ + "name": "LaiYu_Liquid_Deck", + "size_x": 340.0, + "size_y": 250.0, + "size_z": 160.0, + "coordinate_system": { + "origin": "top_left", + "x_axis": "right", + "y_axis": "down", + "z_axis": "up", + "units": "mm" + }, + "children": [ + { + "id": "module_1_8tubes", + "name": "8管位置模块", + "type": "tube_rack", + "position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "size": { + "x": 151.0, + "y": 75.0, + "z": 75.0 + }, + "wells": [ + { + "id": "A1", + "position": { + "x": 23.0, + "y": 20.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "A2", + "position": { + "x": 58.0, + "y": 20.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "A3", + "position": { + "x": 93.0, + "y": 20.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "A4", + "position": { + "x": 128.0, + "y": 20.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "B1", + "position": { + "x": 23.0, + "y": 55.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "B2", + "position": { + "x": 58.0, + "y": 55.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "B3", + "position": { + "x": 93.0, + "y": 55.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + }, + { + "id": "B4", + "position": { + "x": 128.0, + "y": 55.0, + "z": 0.0 + }, + "diameter": 29.0, + "depth": 117.0, + "volume": 77000.0, + "shape": "circular" + } + ], + "well_spacing": { + "x": 35.0, + "y": 35.0 + }, + "grid": { + "rows": 2, + "columns": 4, + "row_labels": ["A", "B"], + "column_labels": ["1", "2", "3", "4"] + }, + "metadata": { + "description": "8个试管位置,2x4排列", + "max_volume_ul": 77000, + "well_count": 8, + "tube_type": "50ml_falcon" + } + }, + { + "id": "module_2_96well_deep", + "name": "96深孔板", + "type": "96_well_plate", + "position": { + "x": 175.0, + "y": 11.0, + "z": 48.5 + }, + "size": { + "x": 127.1, + "y": 85.6, + "z": 45.5 + }, + "wells": [ + { + "id": "A01", + "position": { + "x": 175.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A02", + "position": { + "x": 184.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A03", + "position": { + "x": 193.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A04", + "position": { + "x": 202.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A05", + "position": { + "x": 211.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A06", + "position": { + "x": 220.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A07", + "position": { + "x": 229.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A08", + "position": { + "x": 238.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A09", + "position": { + "x": 247.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A10", + "position": { + "x": 256.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A11", + "position": { + "x": 265.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "A12", + "position": { + "x": 274.0, + "y": 11.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B01", + "position": { + "x": 175.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B02", + "position": { + "x": 184.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B03", + "position": { + "x": 193.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B04", + "position": { + "x": 202.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B05", + "position": { + "x": 211.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B06", + "position": { + "x": 220.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B07", + "position": { + "x": 229.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B08", + "position": { + "x": 238.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B09", + "position": { + "x": 247.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B10", + "position": { + "x": 256.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B11", + "position": { + "x": 265.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "B12", + "position": { + "x": 274.0, + "y": 20.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C01", + "position": { + "x": 175.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C02", + "position": { + "x": 184.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C03", + "position": { + "x": 193.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C04", + "position": { + "x": 202.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C05", + "position": { + "x": 211.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C06", + "position": { + "x": 220.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C07", + "position": { + "x": 229.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C08", + "position": { + "x": 238.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C09", + "position": { + "x": 247.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C10", + "position": { + "x": 256.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C11", + "position": { + "x": 265.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "C12", + "position": { + "x": 274.0, + "y": 29.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D01", + "position": { + "x": 175.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D02", + "position": { + "x": 184.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D03", + "position": { + "x": 193.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D04", + "position": { + "x": 202.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D05", + "position": { + "x": 211.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D06", + "position": { + "x": 220.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D07", + "position": { + "x": 229.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D08", + "position": { + "x": 238.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D09", + "position": { + "x": 247.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D10", + "position": { + "x": 256.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D11", + "position": { + "x": 265.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "D12", + "position": { + "x": 274.0, + "y": 38.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E01", + "position": { + "x": 175.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E02", + "position": { + "x": 184.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E03", + "position": { + "x": 193.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E04", + "position": { + "x": 202.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E05", + "position": { + "x": 211.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E06", + "position": { + "x": 220.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E07", + "position": { + "x": 229.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E08", + "position": { + "x": 238.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E09", + "position": { + "x": 247.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E10", + "position": { + "x": 256.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E11", + "position": { + "x": 265.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "E12", + "position": { + "x": 274.0, + "y": 47.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F01", + "position": { + "x": 175.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F02", + "position": { + "x": 184.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F03", + "position": { + "x": 193.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F04", + "position": { + "x": 202.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F05", + "position": { + "x": 211.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F06", + "position": { + "x": 220.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F07", + "position": { + "x": 229.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F08", + "position": { + "x": 238.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F09", + "position": { + "x": 247.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F10", + "position": { + "x": 256.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F11", + "position": { + "x": 265.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "F12", + "position": { + "x": 274.0, + "y": 56.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G01", + "position": { + "x": 175.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G02", + "position": { + "x": 184.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G03", + "position": { + "x": 193.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G04", + "position": { + "x": 202.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G05", + "position": { + "x": 211.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G06", + "position": { + "x": 220.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G07", + "position": { + "x": 229.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G08", + "position": { + "x": 238.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G09", + "position": { + "x": 247.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G10", + "position": { + "x": 256.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G11", + "position": { + "x": 265.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "G12", + "position": { + "x": 274.0, + "y": 65.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H01", + "position": { + "x": 175.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H02", + "position": { + "x": 184.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H03", + "position": { + "x": 193.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H04", + "position": { + "x": 202.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H05", + "position": { + "x": 211.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H06", + "position": { + "x": 220.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H07", + "position": { + "x": 229.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H08", + "position": { + "x": 238.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H09", + "position": { + "x": 247.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H10", + "position": { + "x": 256.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H11", + "position": { + "x": 265.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + }, + { + "id": "H12", + "position": { + "x": 274.0, + "y": 74.0, + "z": 48.5 + }, + "diameter": 8.2, + "depth": 39.4, + "volume": 2080.0, + "shape": "circular" + } + ], + "well_spacing": { + "x": 9.0, + "y": 9.0 + }, + "grid": { + "rows": 8, + "columns": 12, + "row_labels": ["A", "B", "C", "D", "E", "F", "G", "H"], + "column_labels": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] + }, + "metadata": { + "description": "深孔96孔板", + "max_volume_ul": 2080, + "well_count": 96, + "plate_type": "deep_well_plate" + } + }, + { + "id": "module_3_beaker", + "name": "敞口玻璃瓶", + "type": "beaker_holder", + "position": { + "x": 65.0, + "y": 143.5, + "z": 0.0 + }, + "size": { + "x": 130.0, + "y": 117.0, + "z": 110.0 + }, + "wells": [ + { + "id": "A1", + "position": { + "x": 65.0, + "y": 143.5, + "z": 0.0 + }, + "diameter": 80.0, + "depth": 145.0, + "volume": 500000.0, + "shape": "circular", + "container_type": "beaker" + } + ], + "supported_containers": [ + { + "type": "beaker_250ml", + "diameter": 70.0, + "height": 95.0, + "volume": 250000.0 + }, + { + "type": "beaker_500ml", + "diameter": 85.0, + "height": 115.0, + "volume": 500000.0 + }, + { + "type": "beaker_1000ml", + "diameter": 105.0, + "height": 145.0, + "volume": 1000000.0 + } + ], + "metadata": { + "description": "敞口玻璃瓶固定座,支持250ml-1000ml烧杯", + "max_beaker_diameter": 80.0, + "max_beaker_height": 145.0, + "well_count": 1, + "access_from_top": true + } + }, + { + "id": "module_4_96well_tips", + "name": "96枪头盒", + "type": "96_tip_rack", + "position": { + "x": 165.62, + "y": 115.5, + "z": 103.0 + }, + "size": { + "x": 134.0, + "y": 96.0, + "z": 7.0 + }, + "wells": [ + { + "id": "A01", + "position": { + "x": 165.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A02", + "position": { + "x": 174.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A03", + "position": { + "x": 183.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A04", + "position": { + "x": 192.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A05", + "position": { + "x": 201.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A06", + "position": { + "x": 210.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A07", + "position": { + "x": 219.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A08", + "position": { + "x": 228.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A09", + "position": { + "x": 237.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A10", + "position": { + "x": 246.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A11", + "position": { + "x": 255.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "A12", + "position": { + "x": 264.62, + "y": 115.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B01", + "position": { + "x": 165.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B02", + "position": { + "x": 174.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B03", + "position": { + "x": 183.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B04", + "position": { + "x": 192.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B05", + "position": { + "x": 201.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B06", + "position": { + "x": 210.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B07", + "position": { + "x": 219.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B08", + "position": { + "x": 228.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B09", + "position": { + "x": 237.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B10", + "position": { + "x": 246.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B11", + "position": { + "x": 255.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "B12", + "position": { + "x": 264.62, + "y": 124.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C01", + "position": { + "x": 165.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C02", + "position": { + "x": 174.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C03", + "position": { + "x": 183.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C04", + "position": { + "x": 192.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C05", + "position": { + "x": 201.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C06", + "position": { + "x": 210.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C07", + "position": { + "x": 219.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C08", + "position": { + "x": 228.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C09", + "position": { + "x": 237.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C10", + "position": { + "x": 246.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C11", + "position": { + "x": 255.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "C12", + "position": { + "x": 264.62, + "y": 133.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D01", + "position": { + "x": 165.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D02", + "position": { + "x": 174.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D03", + "position": { + "x": 183.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D04", + "position": { + "x": 192.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D05", + "position": { + "x": 201.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D06", + "position": { + "x": 210.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D07", + "position": { + "x": 219.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D08", + "position": { + "x": 228.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D09", + "position": { + "x": 237.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D10", + "position": { + "x": 246.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D11", + "position": { + "x": 255.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "D12", + "position": { + "x": 264.62, + "y": 142.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E01", + "position": { + "x": 165.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E02", + "position": { + "x": 174.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E03", + "position": { + "x": 183.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E04", + "position": { + "x": 192.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E05", + "position": { + "x": 201.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E06", + "position": { + "x": 210.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E07", + "position": { + "x": 219.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E08", + "position": { + "x": 228.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E09", + "position": { + "x": 237.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E10", + "position": { + "x": 246.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E11", + "position": { + "x": 255.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "E12", + "position": { + "x": 264.62, + "y": 151.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F01", + "position": { + "x": 165.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F02", + "position": { + "x": 174.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F03", + "position": { + "x": 183.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F04", + "position": { + "x": 192.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F05", + "position": { + "x": 201.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F06", + "position": { + "x": 210.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F07", + "position": { + "x": 219.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F08", + "position": { + "x": 228.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F09", + "position": { + "x": 237.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F10", + "position": { + "x": 246.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F11", + "position": { + "x": 255.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "F12", + "position": { + "x": 264.62, + "y": 160.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G01", + "position": { + "x": 165.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G02", + "position": { + "x": 174.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G03", + "position": { + "x": 183.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G04", + "position": { + "x": 192.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G05", + "position": { + "x": 201.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G06", + "position": { + "x": 210.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G07", + "position": { + "x": 219.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G08", + "position": { + "x": 228.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G09", + "position": { + "x": 237.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G10", + "position": { + "x": 246.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G11", + "position": { + "x": 255.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "G12", + "position": { + "x": 264.62, + "y": 169.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H01", + "position": { + "x": 165.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H02", + "position": { + "x": 174.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H03", + "position": { + "x": 183.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H04", + "position": { + "x": 192.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H05", + "position": { + "x": 201.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H06", + "position": { + "x": 210.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H07", + "position": { + "x": 219.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H08", + "position": { + "x": 228.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H09", + "position": { + "x": 237.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H10", + "position": { + "x": 246.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H11", + "position": { + "x": 255.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + }, + { + "id": "H12", + "position": { + "x": 264.62, + "y": 178.5, + "z": 103.0 + }, + "diameter": 9.0, + "depth": 95.0, + "volume": 6000.0, + "shape": "circular" + } + ], + "well_spacing": { + "x": 9.0, + "y": 9.0 + }, + "grid": { + "rows": 8, + "columns": 12, + "row_labels": ["A", "B", "C", "D", "E", "F", "G", "H"], + "column_labels": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] + }, + "metadata": { + "description": "标准96孔枪头盒", + "max_volume_ul": 6000, + "well_count": 96, + "plate_type": "tip_rack" + } + } + ], + "deck_metadata": { + "total_modules": 4, + "total_wells": 201, + "deck_area": { + "used_x": 299.62, + "used_y": 260.5, + "used_z": 103.0, + "efficiency_x": 88.1, + "efficiency_y": 104.2, + "efficiency_z": 64.4 + }, + "safety_margins": { + "x_min": 10.0, + "x_max": 10.0, + "y_min": 10.0, + "y_max": 10.0, + "z_clearance": 20.0 + }, + "calibration_points": [ + { + "id": "origin", + "position": {"x": 0.0, "y": 0.0, "z": 0.0}, + "description": "工作台左上角原点" + }, + { + "id": "module_1_ref", + "position": {"x": 23.0, "y": 20.0, "z": 0.0}, + "description": "模块1试管架基准孔A1" + }, + { + "id": "module_2_ref", + "position": {"x": 175.0, "y": 11.0, "z": 48.5}, + "description": "模块2深孔板基准孔A01" + }, + { + "id": "module_3_ref", + "position": {"x": 65.0, "y": 143.5, "z": 0.0}, + "description": "模块3敞口玻璃瓶中心" + }, + { + "id": "module_4_ref", + "position": {"x": 165.62, "y": 115.5, "z": 103.0}, + "description": "模块4枪头盒基准孔A01" + } + ], + "version": "2.0", + "created_by": "Doraemon Team", + "last_updated": "2025-09-29" + } +} \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/config/deckconfig.md b/unilabos/devices/laiyu_liquid/config/deckconfig.md new file mode 100644 index 00000000..7359e625 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/config/deckconfig.md @@ -0,0 +1,14 @@ + goto 171 178 57 H1 + goto 171 117 57 A1 + goto 172 178 130 + goto 173 179 133 + goto 173 180 133 +goto 173 180 138 +goto 173 180 125 (+10mm,在空的上面边缘) +goto 173 180 130 取不到 +goto 173 180 133 取不到 +goto 173 180 135 +goto 173 180 137 取到了!!!! +goto 173 180 131 弹出枪头 H1 + +goto 173 117 137 A1 (+10mm,可以取到新枪头了!!!!) \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/controllers/__init__.py b/unilabos/devices/laiyu_liquid/controllers/__init__.py new file mode 100644 index 00000000..d50b1eca --- /dev/null +++ b/unilabos/devices/laiyu_liquid/controllers/__init__.py @@ -0,0 +1,25 @@ +""" +LaiYu_Liquid 控制器模块 + +该模块包含了LaiYu_Liquid液体处理工作站的高级控制器: +- 移液器控制器:提供液体处理的高级接口 +- XYZ运动控制器:提供三轴运动的高级接口 +""" + +# 移液器控制器导入 +from .pipette_controller import PipetteController + +# XYZ运动控制器导入 +from .xyz_controller import XYZController + +__all__ = [ + # 移液器控制器 + "PipetteController", + + # XYZ运动控制器 + "XYZController", +] + +__version__ = "1.0.0" +__author__ = "LaiYu_Liquid Controller Team" +__description__ = "LaiYu_Liquid 高级控制器集合" \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/controllers/pipette_controller.py b/unilabos/devices/laiyu_liquid/controllers/pipette_controller.py new file mode 100644 index 00000000..6c314a3a --- /dev/null +++ b/unilabos/devices/laiyu_liquid/controllers/pipette_controller.py @@ -0,0 +1,1073 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +移液控制器模块 +封装SOPA移液器的高级控制功能 +""" + +# 添加项目根目录到Python路径以解决模块导入问题 +import sys +import os + +# 无论如何都添加项目根目录到路径 +current_file = os.path.abspath(__file__) +# 从 .../Uni-Lab-OS/unilabos/devices/LaiYu_Liquid/controllers/pipette_controller.py +# 向上5级到 .../Uni-Lab-OS +project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(current_file))))) +# 强制添加项目根目录到sys.path的开头 +sys.path.insert(0, project_root) + +import time +import logging +from typing import Optional, List, Dict, Tuple +from dataclasses import dataclass +from enum import Enum + +from unilabos.devices.laiyu_liquid.drivers.sopa_pipette_driver import ( + SOPAPipette, + SOPAConfig, + SOPAStatusCode, + DetectionMode, + create_sopa_pipette, +) +from unilabos.devices.laiyu_liquid.drivers.xyz_stepper_driver import ( + XYZStepperController, + MotorAxis, + MotorStatus, + ModbusException +) + +logger = logging.getLogger(__name__) + + +class TipStatus(Enum): + """枪头状态""" + NO_TIP = "no_tip" + TIP_ATTACHED = "tip_attached" + TIP_USED = "tip_used" + + +class LiquidClass(Enum): + """液体类型""" + WATER = "water" + SERUM = "serum" + VISCOUS = "viscous" + VOLATILE = "volatile" + CUSTOM = "custom" + + +@dataclass +class LiquidParameters: + """液体处理参数""" + aspirate_speed: int = 500 # 吸液速度 + dispense_speed: int = 800 # 排液速度 + air_gap: float = 10.0 # 空气间隙 + blow_out: float = 5.0 # 吹出量 + pre_wet: bool = False # 预润湿 + mix_cycles: int = 0 # 混合次数 + mix_volume: float = 50.0 # 混合体积 + touch_tip: bool = False # 接触壁 + delay_after_aspirate: float = 0.5 # 吸液后延时 + delay_after_dispense: float = 0.5 # 排液后延时 + + +class PipetteController: + """移液控制器""" + + # 预定义液体参数 + LIQUID_PARAMS = { + LiquidClass.WATER: LiquidParameters( + aspirate_speed=500, + dispense_speed=800, + air_gap=10.0 + ), + LiquidClass.SERUM: LiquidParameters( + aspirate_speed=200, + dispense_speed=400, + air_gap=15.0, + pre_wet=True, + delay_after_aspirate=1.0 + ), + LiquidClass.VISCOUS: LiquidParameters( + aspirate_speed=100, + dispense_speed=200, + air_gap=20.0, + delay_after_aspirate=2.0, + delay_after_dispense=2.0 + ), + LiquidClass.VOLATILE: LiquidParameters( + aspirate_speed=800, + dispense_speed=1000, + air_gap=5.0, + delay_after_aspirate=0.2, + delay_after_dispense=0.2 + ) + } + + def __init__(self, port: str, address: int = 4, xyz_port: Optional[str] = None): + """ + 初始化移液控制器 + + Args: + port: 移液器串口端口 + address: 移液器RS485地址 + xyz_port: XYZ步进电机串口端口(可选,用于枪头装载等运动控制) + """ + self.config = SOPAConfig( + port=port, + address=address, + baudrate=115200 + ) + self.pipette = SOPAPipette(self.config) + self.tip_status = TipStatus.NO_TIP + self.current_volume = 0.0 + self.max_volume = 1000.0 # 默认1000ul + self.liquid_class = LiquidClass.WATER + self.liquid_params = self.LIQUID_PARAMS[LiquidClass.WATER] + + # XYZ步进电机控制器(用于运动控制) + self.xyz_controller: Optional[XYZStepperController] = None + self.xyz_port = xyz_port + self.xyz_connected = False + + # 统计信息 + self.tip_count = 0 + self.aspirate_count = 0 + self.dispense_count = 0 + + def connect(self) -> bool: + """连接移液器和XYZ步进电机控制器""" + try: + # 连接移液器 + if not self.pipette.connect(): + logger.error("移液器连接失败") + return False + logger.info("移液器连接成功") + + # 连接XYZ步进电机控制器(如果提供了端口) + if self.xyz_port: + try: + self.xyz_controller = XYZStepperController(self.xyz_port) + if self.xyz_controller.connect(): + self.xyz_connected = True + logger.info(f"XYZ步进电机控制器连接成功: {self.xyz_port}") + else: + logger.warning(f"XYZ步进电机控制器连接失败: {self.xyz_port}") + self.xyz_controller = None + except Exception as e: + logger.warning(f"XYZ步进电机控制器连接异常: {e}") + self.xyz_controller = None + self.xyz_connected = False + else: + logger.info("未配置XYZ步进电机端口,跳过运动控制器连接") + + return True + except Exception as e: + logger.error(f"设备连接失败: {e}") + return False + + def initialize(self) -> bool: + """初始化移液器""" + try: + if self.pipette.initialize(): + logger.info("移液器初始化成功") + # 检查枪头状态 + self._update_tip_status() + return True + return False + except Exception as e: + logger.error(f"移液器初始化失败: {e}") + return False + + def disconnect(self): + """断开连接""" + # 断开移液器连接 + self.pipette.disconnect() + logger.info("移液器已断开") + + # 断开 XYZ 步进电机连接 + if self.xyz_controller and self.xyz_connected: + try: + self.xyz_controller.disconnect() + self.xyz_connected = False + logger.info("XYZ 步进电机已断开") + except Exception as e: + logger.error(f"断开 XYZ 步进电机失败: {e}") + + def _check_xyz_safety(self, axis: MotorAxis, target_position: int) -> bool: + """ + 检查 XYZ 轴移动的安全性 + + Args: + axis: 电机轴 + target_position: 目标位置(步数) + + Returns: + 是否安全 + """ + try: + # 获取当前电机状态 + motor_position = self.xyz_controller.get_motor_status(axis) + + # 检查电机状态是否正常 (不是碰撞停止或限位停止) + if motor_position.status in [MotorStatus.COLLISION_STOP, + MotorStatus.FORWARD_LIMIT_STOP, + MotorStatus.REVERSE_LIMIT_STOP]: + logger.error(f"{axis.name} 轴电机处于错误状态: {motor_position.status.name}") + return False + + # 检查位置限制 (扩大安全范围以适应实际硬件) + # 步进电机的位置范围通常很大,这里设置更合理的范围 + if target_position < -500000 or target_position > 500000: + logger.error(f"{axis.name} 轴目标位置超出安全范围: {target_position}") + return False + + # 检查移动距离是否过大 (单次移动不超过 20000 步,约12mm) + current_position = motor_position.steps + move_distance = abs(target_position - current_position) + if move_distance > 20000: + logger.error(f"{axis.name} 轴单次移动距离过大: {move_distance}步") + return False + + return True + + except Exception as e: + logger.error(f"安全检查失败: {e}") + return False + + def move_z_relative(self, distance_mm: float, speed: int = 2000, acceleration: int = 500) -> bool: + """ + Z轴相对移动 + + Args: + distance_mm: 移动距离(mm),正值向下,负值向上 + speed: 移动速度(rpm) + acceleration: 加速度(rpm/s) + + Returns: + 移动是否成功 + """ + if not self.xyz_controller or not self.xyz_connected: + logger.error("XYZ 步进电机未连接,无法执行移动") + return False + + try: + # 参数验证 + if abs(distance_mm) > 15.0: + logger.error(f"移动距离过大: {distance_mm}mm,最大允许15mm") + return False + + if speed < 100 or speed > 5000: + logger.error(f"速度参数无效: {speed}rpm,范围应为100-5000") + return False + + # 获取当前 Z 轴位置 + current_status = self.xyz_controller.get_motor_status(MotorAxis.Z) + current_z_position = current_status.steps + + # 计算移动距离对应的步数 (1mm = 1638.4步) + mm_to_steps = 1638.4 + move_distance_steps = int(distance_mm * mm_to_steps) + + # 计算目标位置 + target_z_position = current_z_position + move_distance_steps + + # 安全检查 + if not self._check_xyz_safety(MotorAxis.Z, target_z_position): + logger.error("Z轴移动安全检查失败") + return False + + logger.info(f"Z轴相对移动: {distance_mm}mm ({move_distance_steps}步)") + logger.info(f"当前位置: {current_z_position}步 -> 目标位置: {target_z_position}步") + + # 执行移动 + success = self.xyz_controller.move_to_position( + axis=MotorAxis.Z, + position=target_z_position, + speed=speed, + acceleration=acceleration, + precision=50 + ) + + if not success: + logger.error("Z轴移动命令发送失败") + return False + + # 等待移动完成 + if not self.xyz_controller.wait_for_completion(MotorAxis.Z, timeout=10.0): + logger.error("Z轴移动超时") + return False + + # 验证移动结果 + final_status = self.xyz_controller.get_motor_status(MotorAxis.Z) + final_position = final_status.steps + position_error = abs(final_position - target_z_position) + + logger.info(f"Z轴移动完成,最终位置: {final_position}步,误差: {position_error}步") + + if position_error > 100: + logger.warning(f"Z轴位置误差较大: {position_error}步") + + return True + + except ModbusException as e: + logger.error(f"Modbus通信错误: {e}") + return False + except Exception as e: + logger.error(f"Z轴移动失败: {e}") + return False + + def emergency_stop(self) -> bool: + """ + 紧急停止所有运动 + + Returns: + 停止是否成功 + """ + success = True + + # 停止移液器操作 + try: + if self.pipette and self.connected: + # 这里可以添加移液器的紧急停止逻辑 + logger.info("移液器紧急停止") + except Exception as e: + logger.error(f"移液器紧急停止失败: {e}") + success = False + + # 停止 XYZ 轴运动 + try: + if self.xyz_controller and self.xyz_connected: + self.xyz_controller.emergency_stop() + logger.info("XYZ 轴紧急停止") + except Exception as e: + logger.error(f"XYZ 轴紧急停止失败: {e}") + success = False + + return success + + def pickup_tip(self) -> bool: + """ + 装载枪头 - Z轴向下移动10mm进行枪头装载 + + Returns: + 是否成功 + """ + if self.tip_status == TipStatus.TIP_ATTACHED: + logger.warning("已有枪头,无需重复装载") + return True + + logger.info("开始装载枪头 - Z轴向下移动10mm") + + # 使用相对移动方法,向下移动10mm + if self.move_z_relative(distance_mm=10.0, speed=2000, acceleration=500): + # 更新枪头状态 + self.tip_status = TipStatus.TIP_ATTACHED + self.tip_count += 1 + self.current_volume = 0.0 + logger.info("枪头装载成功") + return True + else: + logger.error("枪头装载失败 - Z轴移动失败") + return False + + def eject_tip(self) -> bool: + """ + 弹出枪头 + + Returns: + 是否成功 + """ + if self.tip_status == TipStatus.NO_TIP: + logger.warning("无枪头可弹出") + return True + + try: + if self.pipette.eject_tip(): + self.tip_status = TipStatus.NO_TIP + self.current_volume = 0.0 + logger.info("枪头已弹出") + return True + return False + except Exception as e: + logger.error(f"弹出枪头失败: {e}") + return False + + def aspirate(self, volume: float, liquid_class: Optional[LiquidClass] = None, + detection: bool = True) -> bool: + """ + 吸液 + + Args: + volume: 吸液体积(ul) + liquid_class: 液体类型 + detection: 是否开启液位检测 + + Returns: + 是否成功 + """ + if self.tip_status != TipStatus.TIP_ATTACHED: + logger.error("无枪头,无法吸液") + return False + + if self.current_volume + volume > self.max_volume: + logger.error(f"吸液量超过枪头容量: {self.current_volume + volume} > {self.max_volume}") + return False + + # 设置液体参数 + if liquid_class: + self.set_liquid_class(liquid_class) + + try: + # 设置吸液速度 + self.pipette.set_max_speed(self.liquid_params.aspirate_speed) + + # 执行液位检测 + if detection: + if not self.pipette.liquid_level_detection(): + logger.warning("液位检测失败,继续吸液") + + # 预润湿 + if self.liquid_params.pre_wet and self.current_volume == 0: + logger.info("执行预润湿") + self._pre_wet(volume * 0.2) + + # 吸液 + if self.pipette.aspirate(volume, detection=False): + self.current_volume += volume + self.aspirate_count += 1 + + # 吸液后延时 + time.sleep(self.liquid_params.delay_after_aspirate) + + # 吸取空气间隙 + if self.liquid_params.air_gap > 0: + self.pipette.aspirate(self.liquid_params.air_gap, detection=False) + self.current_volume += self.liquid_params.air_gap + + logger.info(f"吸液完成: {volume}ul, 当前体积: {self.current_volume}ul") + return True + else: + logger.error("吸液失败") + return False + + except Exception as e: + logger.error(f"吸液异常: {e}") + return False + + def dispense(self, volume: float, blow_out: bool = False) -> bool: + """ + 排液 + + Args: + volume: 排液体积(ul) + blow_out: 是否吹出 + + Returns: + 是否成功 + """ + if self.tip_status != TipStatus.TIP_ATTACHED: + logger.error("无枪头,无法排液") + return False + + if volume > self.current_volume: + logger.error(f"排液量超过当前体积: {volume} > {self.current_volume}") + return False + + try: + # 设置排液速度 + self.pipette.set_max_speed(self.liquid_params.dispense_speed) + + # 排液 + if self.pipette.dispense(volume): + self.current_volume -= volume + self.dispense_count += 1 + + # 排液后延时 + time.sleep(self.liquid_params.delay_after_dispense) + + # 吹出 + if blow_out and self.liquid_params.blow_out > 0: + self.pipette.dispense(self.liquid_params.blow_out) + logger.debug(f"执行吹出: {self.liquid_params.blow_out}ul") + + # 接触壁 + if self.liquid_params.touch_tip: + self._touch_tip() + + logger.info(f"排液完成: {volume}ul, 剩余体积: {self.current_volume}ul") + return True + else: + logger.error("排液失败") + return False + + except Exception as e: + logger.error(f"排液异常: {e}") + return False + + def transfer(self, volume: float, + source_well: Optional[str] = None, + dest_well: Optional[str] = None, + liquid_class: Optional[LiquidClass] = None, + new_tip: bool = True, + mix_before: Optional[Tuple[int, float]] = None, + mix_after: Optional[Tuple[int, float]] = None) -> bool: + """ + 液体转移 + + Args: + volume: 转移体积 + source_well: 源孔位 + dest_well: 目标孔位 + liquid_class: 液体类型 + new_tip: 是否使用新枪头 + mix_before: 吸液前混合(次数, 体积) + mix_after: 排液后混合(次数, 体积) + + Returns: + 是否成功 + """ + try: + # 装载新枪头 + if new_tip: + self.eject_tip() + if not self.pickup_tip(): + return False + + # 设置液体类型 + if liquid_class: + self.set_liquid_class(liquid_class) + + # 吸液前混合 + if mix_before: + cycles, mix_vol = mix_before + self.mix(cycles, mix_vol) + + # 吸液 + if not self.aspirate(volume): + return False + + # 排液 + if not self.dispense(volume, blow_out=True): + return False + + # 排液后混合 + if mix_after: + cycles, mix_vol = mix_after + self.mix(cycles, mix_vol) + + logger.info(f"液体转移完成: {volume}ul") + return True + + except Exception as e: + logger.error(f"液体转移失败: {e}") + return False + + def mix(self, cycles: int = 3, volume: Optional[float] = None) -> bool: + """ + 混合 + + Args: + cycles: 混合次数 + volume: 混合体积 + + Returns: + 是否成功 + """ + volume = volume or self.liquid_params.mix_volume + + logger.info(f"开始混合: {cycles}次, {volume}ul") + + for i in range(cycles): + if not self.aspirate(volume, detection=False): + return False + if not self.dispense(volume): + return False + + logger.info("混合完成") + return True + + def _pre_wet(self, volume: float): + """预润湿""" + self.pipette.aspirate(volume, detection=False) + time.sleep(0.2) + self.pipette.dispense(volume) + time.sleep(0.2) + + def _touch_tip(self): + """接触壁(需要与运动控制配合)""" + # TODO: 实现接触壁动作 + logger.debug("执行接触壁") + time.sleep(0.5) + + def _update_tip_status(self): + """更新枪头状态""" + if self.pipette.get_tip_status(): + self.tip_status = TipStatus.TIP_ATTACHED + else: + self.tip_status = TipStatus.NO_TIP + + def set_liquid_class(self, liquid_class: LiquidClass): + """设置液体类型""" + self.liquid_class = liquid_class + if liquid_class in self.LIQUID_PARAMS: + self.liquid_params = self.LIQUID_PARAMS[liquid_class] + logger.info(f"液体类型设置为: {liquid_class.value}") + + def set_custom_parameters(self, params: LiquidParameters): + """设置自定义液体参数""" + self.liquid_params = params + self.liquid_class = LiquidClass.CUSTOM + + def calibrate_volume(self, expected: float, actual: float): + """ + 体积校准 + + Args: + expected: 期望体积 + actual: 实际体积 + """ + factor = actual / expected + self.pipette.set_calibration_factor(factor) + logger.info(f"体积校准系数: {factor}") + + def get_status(self) -> Dict: + """获取状态信息""" + return { + 'tip_status': self.tip_status.value, + 'current_volume': self.current_volume, + 'max_volume': self.max_volume, + 'liquid_class': self.liquid_class.value, + 'statistics': { + 'tip_count': self.tip_count, + 'aspirate_count': self.aspirate_count, + 'dispense_count': self.dispense_count + } + } + + def reset_statistics(self): + """重置统计信息""" + self.tip_count = 0 + self.aspirate_count = 0 + self.dispense_count = 0 + +# ============================================================================ +# 实例化代码块 - 移液控制器使用示例 +# ============================================================================ + +if __name__ == "__main__": + # 配置日志 + import logging + + # 设置日志级别 + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' + ) + + def interactive_test(): + """交互式测试模式 - 适用于已连接的设备""" + print("\n" + "=" * 60) + print("🧪 移液器交互式测试模式") + print("=" * 60) + + # 获取用户输入的连接参数 + print("\n📡 设备连接配置:") + port = input("请输入移液器串口端口 (默认: /dev/ttyUSB0): ").strip() or "/dev/ttyUSB0" + address_input = input("请输入移液器设备地址 (默认: 4): ").strip() + address = int(address_input) if address_input else 4 + + # 询问是否连接 XYZ 步进电机控制器 + xyz_enable = input("是否连接 XYZ 步进电机控制器? (y/N): ").strip().lower() + xyz_port = None + if xyz_enable in ['y', 'yes']: + xyz_port = input("请输入 XYZ 控制器串口端口 (默认: /dev/ttyUSB1): ").strip() or "/dev/ttyUSB1" + + try: + # 创建移液控制器实例 + if xyz_port: + print(f"\n🔧 创建移液控制器实例 (移液器端口: {port}, 地址: {address}, XYZ端口: {xyz_port})...") + pipette = PipetteController(port=port, address=address, xyz_port=xyz_port) + else: + print(f"\n🔧 创建移液控制器实例 (端口: {port}, 地址: {address})...") + pipette = PipetteController(port=port, address=address) + + # 连接设备 + print("\n📞 连接移液器设备...") + if not pipette.connect(): + print("❌ 设备连接失败,请检查连接") + return + print("✅ 设备连接成功") + + # 初始化设备 + print("\n🚀 初始化设备...") + if not pipette.initialize(): + print("❌ 设备初始化失败") + return + print("✅ 设备初始化成功") + + # 交互式菜单 + while True: + print("\n" + "=" * 50) + print("🎮 交互式操作菜单:") + print("1. 📋 查看设备状态") + print("2. 🔧 装载枪头") + print("3. 🗑️ 弹出枪头") + print("4. 💧 吸液操作") + print("5. 💦 排液操作") + print("6. 🌀 混合操作") + print("7. 🔄 液体转移") + print("8. ⚙️ 设置液体类型") + print("9. 🎯 自定义参数") + print("10. 📊 校准体积") + print("11. 🧹 重置统计") + print("12. 🔍 液体类型测试") + print("99. 🚨 紧急停止") + print("0. 🚪 退出程序") + print("=" * 50) + + choice = input("\n请选择操作 (0-12, 99): ").strip() + + if choice == "0": + print("\n👋 退出程序...") + break + elif choice == "1": + # 查看设备状态 + status = pipette.get_status() + print("\n📊 设备状态信息:") + print(f" 🎯 枪头状态: {status['tip_status']}") + print(f" 💧 当前体积: {status['current_volume']}ul") + print(f" 📏 最大体积: {status['max_volume']}ul") + print(f" 🧪 液体类型: {status['liquid_class']}") + print(f" 📈 统计信息:") + print(f" 🔧 枪头使用次数: {status['statistics']['tip_count']}") + print(f" ⬆️ 吸液次数: {status['statistics']['aspirate_count']}") + print(f" ⬇️ 排液次数: {status['statistics']['dispense_count']}") + + elif choice == "2": + # 装载枪头 + print("\n🔧 装载枪头...") + if pipette.xyz_connected: + print("📍 使用 XYZ 控制器进行 Z 轴定位 (下移 10mm)") + else: + print("⚠️ 未连接 XYZ 控制器,仅执行移液器枪头装载") + + if pipette.pickup_tip(): + print("✅ 枪头装载成功") + if pipette.xyz_connected: + print("📍 Z 轴已移动到装载位置") + else: + print("❌ 枪头装载失败") + + elif choice == "3": + # 弹出枪头 + print("\n🗑️ 弹出枪头...") + if pipette.eject_tip(): + print("✅ 枪头弹出成功") + else: + print("❌ 枪头弹出失败") + + elif choice == "4": + # 吸液操作 + try: + volume = float(input("请输入吸液体积 (ul): ")) + detection = input("是否启用液面检测? (y/n, 默认y): ").strip().lower() != 'n' + print(f"\n💧 执行吸液操作 ({volume}ul)...") + if pipette.aspirate(volume, detection=detection): + print(f"✅ 吸液成功: {volume}ul") + print(f"📊 当前体积: {pipette.current_volume}ul") + else: + print("❌ 吸液失败") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "5": + # 排液操作 + try: + volume = float(input("请输入排液体积 (ul): ")) + blow_out = input("是否执行吹出操作? (y/n, 默认n): ").strip().lower() == 'y' + print(f"\n💦 执行排液操作 ({volume}ul)...") + if pipette.dispense(volume, blow_out=blow_out): + print(f"✅ 排液成功: {volume}ul") + print(f"📊 剩余体积: {pipette.current_volume}ul") + else: + print("❌ 排液失败") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "6": + # 混合操作 + try: + cycles = int(input("请输入混合次数 (默认3): ") or "3") + volume_input = input("请输入混合体积 (ul, 默认使用当前体积的50%): ").strip() + volume = float(volume_input) if volume_input else None + print(f"\n🌀 执行混合操作 ({cycles}次)...") + if pipette.mix(cycles=cycles, volume=volume): + print("✅ 混合完成") + else: + print("❌ 混合失败") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "7": + # 液体转移 + try: + volume = float(input("请输入转移体积 (ul): ")) + source = input("源孔位 (可选, 如A1): ").strip() or None + dest = input("目标孔位 (可选, 如B1): ").strip() or None + new_tip = input("是否使用新枪头? (y/n, 默认y): ").strip().lower() != 'n' + + print(f"\n🔄 执行液体转移 ({volume}ul)...") + if pipette.transfer(volume=volume, source_well=source, dest_well=dest, new_tip=new_tip): + print("✅ 液体转移完成") + else: + print("❌ 液体转移失败") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "8": + # 设置液体类型 + print("\n🧪 可用液体类型:") + liquid_options = { + "1": (LiquidClass.WATER, "水溶液"), + "2": (LiquidClass.SERUM, "血清"), + "3": (LiquidClass.VISCOUS, "粘稠液体"), + "4": (LiquidClass.VOLATILE, "挥发性液体") + } + + for key, (liquid_class, description) in liquid_options.items(): + print(f" {key}. {description}") + + liquid_choice = input("请选择液体类型 (1-4): ").strip() + if liquid_choice in liquid_options: + liquid_class, description = liquid_options[liquid_choice] + pipette.set_liquid_class(liquid_class) + print(f"✅ 液体类型设置为: {description}") + + # 显示参数 + params = pipette.liquid_params + print(f"📋 参数设置:") + print(f" ⬆️ 吸液速度: {params.aspirate_speed}") + print(f" ⬇️ 排液速度: {params.dispense_speed}") + print(f" 💨 空气间隙: {params.air_gap}ul") + print(f" 💧 预润湿: {'是' if params.pre_wet else '否'}") + else: + print("❌ 无效选择") + + elif choice == "9": + # 自定义参数 + try: + print("\n⚙️ 设置自定义参数 (直接回车使用默认值):") + aspirate_speed = input("吸液速度 (默认500): ").strip() + dispense_speed = input("排液速度 (默认800): ").strip() + air_gap = input("空气间隙 (ul, 默认10.0): ").strip() + pre_wet = input("预润湿 (y/n, 默认n): ").strip().lower() == 'y' + + custom_params = LiquidParameters( + aspirate_speed=int(aspirate_speed) if aspirate_speed else 500, + dispense_speed=int(dispense_speed) if dispense_speed else 800, + air_gap=float(air_gap) if air_gap else 10.0, + pre_wet=pre_wet + ) + + pipette.set_custom_parameters(custom_params) + print("✅ 自定义参数设置完成") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "10": + # 校准体积 + try: + expected = float(input("期望体积 (ul): ")) + actual = float(input("实际测量体积 (ul): ")) + pipette.calibrate_volume(expected, actual) + print(f"✅ 校准完成,校准系数: {actual/expected:.3f}") + except ValueError: + print("❌ 请输入有效的数字") + + elif choice == "11": + # 重置统计 + pipette.reset_statistics() + print("✅ 统计信息已重置") + + elif choice == "12": + # 液体类型测试 + print("\n🧪 液体类型参数对比:") + liquid_tests = [ + (LiquidClass.WATER, "水溶液"), + (LiquidClass.SERUM, "血清"), + (LiquidClass.VISCOUS, "粘稠液体"), + (LiquidClass.VOLATILE, "挥发性液体") + ] + + for liquid_class, description in liquid_tests: + params = pipette.LIQUID_PARAMS[liquid_class] + print(f"\n📋 {description} ({liquid_class.value}):") + print(f" ⬆️ 吸液速度: {params.aspirate_speed}") + print(f" ⬇️ 排液速度: {params.dispense_speed}") + print(f" 💨 空气间隙: {params.air_gap}ul") + print(f" 💧 预润湿: {'是' if params.pre_wet else '否'}") + print(f" ⏱️ 吸液后延时: {params.delay_after_aspirate}s") + + elif choice == "99": + # 紧急停止 + print("\n🚨 执行紧急停止...") + success = pipette.emergency_stop() + if success: + print("✅ 紧急停止执行成功") + print("⚠️ 所有运动已停止,请检查设备状态") + else: + print("❌ 紧急停止执行失败") + print("⚠️ 请手动检查设备状态并采取必要措施") + + # 紧急停止后询问是否继续 + continue_choice = input("\n是否继续操作?(y/n): ").strip().lower() + if continue_choice != 'y': + print("🚪 退出程序") + break + + else: + print("❌ 无效选择,请重新输入") + + # 等待用户确认继续 + input("\n按回车键继续...") + + except KeyboardInterrupt: + print("\n\n⚠️ 用户中断操作") + except Exception as e: + print(f"\n❌ 发生异常: {e}") + finally: + # 断开连接 + print("\n📞 断开设备连接...") + try: + pipette.disconnect() + print("✅ 连接已断开") + except: + print("⚠️ 断开连接时出现问题") + + def demo_test(): + """演示测试模式 - 完整功能演示""" + print("\n" + "=" * 60) + print("🎬 移液控制器演示测试") + print("=" * 60) + + try: + # 创建移液控制器实例 + print("1. 🔧 创建移液控制器实例...") + pipette = PipetteController(port="/dev/ttyUSB0", address=4) + print("✅ 移液控制器实例创建成功") + + # 连接设备 + print("\n2. 📞 连接移液器设备...") + if pipette.connect(): + print("✅ 设备连接成功") + else: + print("❌ 设备连接失败") + return False + + # 初始化设备 + print("\n3. 🚀 初始化设备...") + if pipette.initialize(): + print("✅ 设备初始化成功") + else: + print("❌ 设备初始化失败") + return False + + # 装载枪头 + print("\n4. 🔧 装载枪头...") + if pipette.pickup_tip(): + print("✅ 枪头装载成功") + else: + print("❌ 枪头装载失败") + + # 设置液体类型 + print("\n5. 🧪 设置液体类型为血清...") + pipette.set_liquid_class(LiquidClass.SERUM) + print("✅ 液体类型设置完成") + + # 吸液操作 + print("\n6. 💧 执行吸液操作...") + volume_to_aspirate = 100.0 + if pipette.aspirate(volume_to_aspirate, detection=True): + print(f"✅ 吸液成功: {volume_to_aspirate}ul") + print(f"📊 当前体积: {pipette.current_volume}ul") + else: + print("❌ 吸液失败") + + # 排液操作 + print("\n7. 💦 执行排液操作...") + volume_to_dispense = 50.0 + if pipette.dispense(volume_to_dispense, blow_out=True): + print(f"✅ 排液成功: {volume_to_dispense}ul") + print(f"📊 剩余体积: {pipette.current_volume}ul") + else: + print("❌ 排液失败") + + # 混合操作 + print("\n8. 🌀 执行混合操作...") + if pipette.mix(cycles=3, volume=30.0): + print("✅ 混合完成") + else: + print("❌ 混合失败") + + # 获取状态信息 + print("\n9. 📊 获取设备状态...") + status = pipette.get_status() + print("设备状态信息:") + print(f" 🎯 枪头状态: {status['tip_status']}") + print(f" 💧 当前体积: {status['current_volume']}ul") + print(f" 📏 最大体积: {status['max_volume']}ul") + print(f" 🧪 液体类型: {status['liquid_class']}") + print(f" 📈 统计信息:") + print(f" 🔧 枪头使用次数: {status['statistics']['tip_count']}") + print(f" ⬆️ 吸液次数: {status['statistics']['aspirate_count']}") + print(f" ⬇️ 排液次数: {status['statistics']['dispense_count']}") + + # 弹出枪头 + print("\n10. 🗑️ 弹出枪头...") + if pipette.eject_tip(): + print("✅ 枪头弹出成功") + else: + print("❌ 枪头弹出失败") + + print("\n" + "=" * 60) + print("✅ 移液控制器演示测试完成") + print("=" * 60) + + return True + + except Exception as e: + print(f"\n❌ 测试过程中发生异常: {e}") + return False + + finally: + # 断开连接 + print("\n📞 断开连接...") + pipette.disconnect() + print("✅ 连接已断开") + + # 主程序入口 + print("🧪 移液器控制器测试程序") + print("=" * 40) + print("1. 🎮 交互式测试 (推荐)") + print("2. 🎬 演示测试") + print("0. 🚪 退出") + print("=" * 40) + + mode = input("请选择测试模式 (0-2): ").strip() + + if mode == "1": + interactive_test() + elif mode == "2": + demo_test() + elif mode == "0": + print("👋 再见!") + else: + print("❌ 无效选择") + + print("\n🎉 程序结束!") + print("\n💡 使用说明:") + print("1. 确保移液器硬件已正确连接") + print("2. 根据实际情况修改串口端口号") + print("3. 交互模式支持实时操作和参数调整") + print("4. 在实际使用中需要配合运动控制器进行位置移动") diff --git a/unilabos/devices/laiyu_liquid/controllers/xyz_controller.py b/unilabos/devices/laiyu_liquid/controllers/xyz_controller.py new file mode 100644 index 00000000..2526f485 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/controllers/xyz_controller.py @@ -0,0 +1,1183 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +XYZ三轴步进电机控制器 +支持坐标系管理、限位开关回零、工作原点设定等功能 + +主要功能: +- 坐标系转换层(步数↔毫米) +- 限位开关回零功能 +- 工作原点示教和保存 +- 安全限位检查 +- 运动控制接口 + +""" + +import json +import os +import time +from typing import Optional, Dict, Tuple, Union +from dataclasses import dataclass, asdict +from pathlib import Path +import logging + +# 添加项目根目录到Python路径以解决模块导入问题 +import sys +import os + +# 无论如何都添加项目根目录到路径 +current_file = os.path.abspath(__file__) +# 从 .../Uni-Lab-OS/unilabos/devices/LaiYu_Liquid/controllers/xyz_controller.py +# 向上5级到 .../Uni-Lab-OS +project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(current_file))))) +# 强制添加项目根目录到sys.path的开头 +sys.path.insert(0, project_root) + +# 导入原有的驱动 +from unilabos.devices.laiyu_liquid.drivers.xyz_stepper_driver import XYZStepperController, MotorAxis, MotorStatus + +logger = logging.getLogger(__name__) + + +@dataclass +class MachineConfig: + """机械配置参数""" + # 步距配置 (基于16384步/圈的步进电机) + steps_per_mm_x: float = 204.8 # X轴步距 (16384步/圈 ÷ 80mm导程) + steps_per_mm_y: float = 204.8 # Y轴步距 (16384步/圈 ÷ 80mm导程) + steps_per_mm_z: float = 3276.8 # Z轴步距 (16384步/圈 ÷ 5mm导程) + + # 行程限制 + max_travel_x: float = 340.0 # X轴最大行程 + max_travel_y: float = 250.0 # Y轴最大行程 + max_travel_z: float = 160.0 # Z轴最大行程 + + # 安全移动参数 + safe_z_height: float = 0.0 # Z轴安全移动高度 (mm) - 液体处理工作站安全高度 + z_approach_height: float = 5.0 # Z轴接近高度 (mm) - 在目标位置上方的预备高度 + + # 回零参数 + homing_speed: int = 100 # 回零速度 (rpm) + homing_timeout: float = 30.0 # 回零超时时间 + safe_clearance: float = 1.0 # 安全间隙 (mm) + position_stable_time: float = 3.0 # 位置稳定检测时间(秒) + position_check_interval: float = 0.2 # 位置检查间隔(秒) + + # 运动参数 + default_speed: int = 100 # 默认运动速度 (rpm) + default_acceleration: int = 1000 # 默认加速度 + + +@dataclass +class CoordinateOrigin: + """坐标原点信息""" + machine_origin_steps: Dict[str, int] = None # 机械原点步数位置 + work_origin_steps: Dict[str, int] = None # 工作原点步数位置 + is_homed: bool = False # 是否已回零 + timestamp: str = "" # 设定时间戳 + + def __post_init__(self): + if self.machine_origin_steps is None: + self.machine_origin_steps = {"x": 0, "y": 0, "z": 0} + if self.work_origin_steps is None: + self.work_origin_steps = {"x": 0, "y": 0, "z": 0} + + +class CoordinateSystemError(Exception): + """坐标系统异常""" + pass + + +class XYZController(XYZStepperController): + """XYZ三轴控制器""" + + def __init__(self, port: str, baudrate: int = 115200, + machine_config: Optional[MachineConfig] = None, + config_file: str = "machine_config.json", + auto_connect: bool = True): + """ + 初始化XYZ控制器 + + Args: + port: 串口端口 + baudrate: 波特率 + machine_config: 机械配置参数 + config_file: 配置文件路径 + auto_connect: 是否自动连接设备 + """ + super().__init__(port, baudrate) + + # 机械配置 + self.machine_config = machine_config or MachineConfig() + self.config_file = config_file + + # 坐标系统 + self.coordinate_origin = CoordinateOrigin() + self.origin_file = "coordinate_origin.json" + + # 连接状态 + self.is_connected = False + + # 加载配置 + self._load_config() + self._load_coordinate_origin() + + # 自动连接设备 + if auto_connect: + self.connect_device() + + def connect_device(self) -> bool: + """ + 连接设备并初始化 + + Returns: + bool: 连接是否成功 + """ + try: + logger.info(f"正在连接设备: {self.port}") + + # 连接硬件 + if not self.connect(): + logger.error("硬件连接失败") + return False + + self.is_connected = True + logger.info("设备连接成功") + + # 使能所有轴 + enable_results = self.enable_all_axes(True) + success_count = sum(1 for result in enable_results.values() if result) + logger.info(f"轴使能结果: {success_count}/{len(enable_results)} 成功") + + # 获取系统状态 + try: + status = self.get_system_status() + logger.info(f"系统状态获取成功: {len(status)} 项信息") + except Exception as e: + logger.warning(f"获取系统状态失败: {e}") + + return True + + except Exception as e: + logger.error(f"设备连接失败: {e}") + self.is_connected = False + return False + + def disconnect_device(self): + """断开设备连接""" + try: + if self.is_connected: + self.disconnect() # 使用父类的disconnect方法 + self.is_connected = False + logger.info("设备连接已断开") + except Exception as e: + logger.error(f"断开连接失败: {e}") + + def _load_config(self): + """加载机械配置""" + try: + if os.path.exists(self.config_file): + with open(self.config_file, 'r', encoding='utf-8') as f: + config_data = json.load(f) + # 更新配置参数 + for key, value in config_data.items(): + if hasattr(self.machine_config, key): + setattr(self.machine_config, key, value) + logger.info("机械配置加载完成") + except Exception as e: + logger.warning(f"加载机械配置失败: {e},使用默认配置") + + def _save_config(self): + """保存机械配置""" + try: + with open(self.config_file, 'w', encoding='utf-8') as f: + json.dump(asdict(self.machine_config), f, indent=2, ensure_ascii=False) + logger.info("机械配置保存完成") + except Exception as e: + logger.error(f"保存机械配置失败: {e}") + + def _load_coordinate_origin(self): + """加载坐标原点信息""" + try: + if os.path.exists(self.origin_file): + with open(self.origin_file, 'r', encoding='utf-8') as f: + origin_data = json.load(f) + self.coordinate_origin = CoordinateOrigin(**origin_data) + logger.info("坐标原点信息加载完成") + except Exception as e: + logger.warning(f"加载坐标原点失败: {e},使用默认设置") + + def _save_coordinate_origin(self): + """保存坐标原点信息""" + try: + # 更新时间戳 + from datetime import datetime + self.coordinate_origin.timestamp = datetime.now().isoformat() + + with open(self.origin_file, 'w', encoding='utf-8') as f: + json.dump(asdict(self.coordinate_origin), f, indent=2, ensure_ascii=False) + logger.info("坐标原点信息保存完成") + except Exception as e: + logger.error(f"保存坐标原点失败: {e}") + + # ==================== 坐标转换方法 ==================== + + def mm_to_steps(self, axis: MotorAxis, mm: float) -> int: + """毫米转步数""" + if axis == MotorAxis.X: + return int(mm * self.machine_config.steps_per_mm_x) + elif axis == MotorAxis.Y: + return int(mm * self.machine_config.steps_per_mm_y) + elif axis == MotorAxis.Z: + return int(mm * self.machine_config.steps_per_mm_z) + else: + raise ValueError(f"未知轴: {axis}") + + def steps_to_mm(self, axis: MotorAxis, steps: int) -> float: + """步数转毫米""" + if axis == MotorAxis.X: + return steps / self.machine_config.steps_per_mm_x + elif axis == MotorAxis.Y: + return steps / self.machine_config.steps_per_mm_y + elif axis == MotorAxis.Z: + return steps / self.machine_config.steps_per_mm_z + else: + raise ValueError(f"未知轴: {axis}") + + def work_to_machine_steps(self, x: float = None, y: float = None, z: float = None) -> Dict[str, int]: + """工作坐标转机械坐标步数""" + machine_steps = {} + + if x is not None: + work_steps = self.mm_to_steps(MotorAxis.X, x) + machine_steps['x'] = self.coordinate_origin.work_origin_steps['x'] + work_steps + + if y is not None: + work_steps = self.mm_to_steps(MotorAxis.Y, y) + machine_steps['y'] = self.coordinate_origin.work_origin_steps['y'] + work_steps + + if z is not None: + work_steps = self.mm_to_steps(MotorAxis.Z, z) + machine_steps['z'] = self.coordinate_origin.work_origin_steps['z'] + work_steps + + return machine_steps + + def machine_to_work_coords(self, machine_steps: Dict[str, int]) -> Dict[str, float]: + """机械坐标步数转工作坐标""" + work_coords = {} + + for axis_name, steps in machine_steps.items(): + axis = MotorAxis[axis_name.upper()] + work_origin_steps = self.coordinate_origin.work_origin_steps[axis_name] + relative_steps = steps - work_origin_steps + work_coords[axis_name] = self.steps_to_mm(axis, relative_steps) + + return work_coords + + def check_travel_limits(self, x: float = None, y: float = None, z: float = None) -> bool: + """检查行程限制""" + if x is not None and (x < 0 or x > self.machine_config.max_travel_x): + raise CoordinateSystemError(f"X轴超出行程范围: {x}mm (0 ~ {self.machine_config.max_travel_x}mm)") + + if y is not None and (y < 0 or y > self.machine_config.max_travel_y): + raise CoordinateSystemError(f"Y轴超出行程范围: {y}mm (0 ~ {self.machine_config.max_travel_y}mm)") + + if z is not None and (z < 0 or z > self.machine_config.max_travel_z): + raise CoordinateSystemError(f"Z轴超出行程范围: {z}mm (0 ~ {self.machine_config.max_travel_z}mm)") + + return True + + # ==================== 回零和原点设定方法 ==================== + + def home_axis(self, axis: MotorAxis, direction: int = -1) -> bool: + """ + 单轴回零到限位开关 - 使用步数变化检测 + + Args: + axis: 要回零的轴 + direction: 回零方向 (-1负方向, 1正方向) + + Returns: + bool: 回零是否成功 + """ + if not self.is_connected: + logger.error("设备未连接,无法执行回零操作") + return False + + try: + logger.info(f"开始{axis.name}轴回零") + + # 使能电机 + if not self.enable_motor(axis, True): + raise CoordinateSystemError(f"{axis.name}轴使能失败") + + # 设置回零速度模式,根据方向设置正负 + speed = self.machine_config.homing_speed * direction + if not self.set_speed_mode(axis, speed): + raise CoordinateSystemError(f"{axis.name}轴设置回零速度失败") + + + + # 智能回零检测 - 基于步数变化 + start_time = time.time() + limit_detected = False + final_position = None + + # 步数变化检测参数(从配置获取) + position_stable_time = self.machine_config.position_stable_time + check_interval = self.machine_config.position_check_interval + last_position = None + stable_start_time = None + + logger.info(f"{axis.name}轴开始移动,监测步数变化...") + + while time.time() - start_time < self.machine_config.homing_timeout: + status = self.get_motor_status(axis) + current_position = status.steps + + # 检查是否明确触碰限位开关 + if (direction < 0 and status.status == MotorStatus.REVERSE_LIMIT_STOP) or \ + (direction > 0 and status.status == MotorStatus.FORWARD_LIMIT_STOP): + # 停止运动 + self.emergency_stop(axis) + time.sleep(0.5) + + # 记录机械原点位置 + final_position = current_position + limit_detected = True + logger.info(f"{axis.name}轴检测到限位开关信号,位置: {final_position}步") + break + + # 检查是否发生碰撞 + if status.status == MotorStatus.COLLISION_STOP: + raise CoordinateSystemError(f"{axis.name}轴回零时发生碰撞") + + # 步数变化检测逻辑 + if last_position is not None: + # 检查位置是否发生变化 + if abs(current_position - last_position) <= 1: # 允许1步的误差 + # 位置基本没有变化 + if stable_start_time is None: + stable_start_time = time.time() + logger.debug(f"{axis.name}轴位置开始稳定在 {current_position}步") + elif time.time() - stable_start_time >= position_stable_time: + # 位置稳定超过指定时间,认为已到达限位 + self.emergency_stop(axis) + time.sleep(0.5) + + final_position = current_position + limit_detected = True + logger.info(f"{axis.name}轴位置稳定{position_stable_time}秒,假设已到达限位开关,位置: {final_position}步") + break + else: + # 位置发生变化,重置稳定计时 + stable_start_time = None + logger.debug(f"{axis.name}轴位置变化: {last_position} -> {current_position}") + + last_position = current_position + time.sleep(check_interval) + + # 超时处理 + if not limit_detected: + logger.warning(f"{axis.name}轴回零超时({self.machine_config.homing_timeout}秒),强制停止") + self.emergency_stop(axis) + time.sleep(0.5) + + # 获取当前位置作为机械原点 + try: + status = self.get_motor_status(axis) + final_position = status.steps + logger.info(f"{axis.name}轴超时后位置: {final_position}步") + except Exception as e: + logger.error(f"获取{axis.name}轴位置失败: {e}") + return False + + # 记录机械原点位置 + self.coordinate_origin.machine_origin_steps[axis.name.lower()] = final_position + + # 从限位开关退出安全距离 + try: + clearance_steps = self.mm_to_steps(axis, self.machine_config.safe_clearance) + safe_position = final_position + (clearance_steps * -direction) # 反方向退出 + + if not self.move_to_position(axis, safe_position, + self.machine_config.default_speed): + logger.warning(f"{axis.name}轴无法退出到安全位置") + else: + self.wait_for_completion(axis, 10.0) + logger.info(f"{axis.name}轴已退出到安全位置: {safe_position}步") + except Exception as e: + logger.warning(f"{axis.name}轴退出安全位置时出错: {e}") + + status_msg = "限位检测成功" if limit_detected else "超时假设成功" + logger.info(f"{axis.name}轴回零完成 ({status_msg}),机械原点: {final_position}步") + return True + + except Exception as e: + logger.error(f"{axis.name}轴回零失败: {e}") + self.emergency_stop(axis) + return False + + def home_all_axes(self, sequence: list = None) -> bool: + """ + 全轴回零 (液体处理工作站安全回零) + + 液体处理工作站回零策略: + 1. Z轴必须首先回零,避免与容器、试管架等碰撞 + 2. 然后XY轴回零,确保移动路径安全 + 3. 严格按照Z->X->Y顺序执行,不允许更改 + + Args: + sequence: 回零顺序,液体处理工作站固定为Z->X->Y,不建议修改 + + Returns: + bool: 全轴回零是否成功 + """ + if not self.is_connected: + logger.error("设备未连接,无法执行回零操作") + return False + + # 液体处理工作站安全回零序列:Z轴绝对优先 + safe_sequence = [MotorAxis.Z, MotorAxis.X, MotorAxis.Y] + + if sequence is not None and sequence != safe_sequence: + logger.warning(f"液体处理工作站不建议修改回零序列,使用安全序列: {[axis.name for axis in safe_sequence]}") + + sequence = safe_sequence # 强制使用安全序列 + + logger.info("开始全轴回零") + + try: + for axis in sequence: + if not self.home_axis(axis): + logger.error(f"全轴回零失败,停止在{axis.name}轴") + return False + + # 轴间等待时间 + time.sleep(0.5) + + # 标记为已回零 + self.coordinate_origin.is_homed = True + self._save_coordinate_origin() + + logger.info("全轴回零完成") + return True + + except Exception as e: + logger.error(f"全轴回零异常: {e}") + return False + + def set_work_origin_here(self) -> bool: + """将当前位置设置为工作原点""" + if not self.is_connected: + logger.error("设备未连接,无法设置工作原点") + return False + + try: + if not self.coordinate_origin.is_homed: + logger.warning("建议先执行回零操作再设置工作原点") + + # 获取当前各轴位置 + positions = self.get_all_positions() + + for axis in MotorAxis: + axis_name = axis.name.lower() + current_steps = positions[axis].steps + self.coordinate_origin.work_origin_steps[axis_name] = current_steps + + logger.info(f"{axis.name}轴工作原点设置为: {current_steps}步 " + f"({self.steps_to_mm(axis, current_steps):.2f}mm)") + + self._save_coordinate_origin() + logger.info("工作原点设置完成") + return True + + except Exception as e: + logger.error(f"设置工作原点失败: {e}") + return False + + # ==================== 高级运动控制方法 ==================== + + def move_to_work_coord_safe(self, x: float = None, y: float = None, z: float = None, + speed: int = None, acceleration: int = None) -> bool: + """ + 安全移动到工作坐标系指定位置 (液体处理工作站专用) + 移动策略:Z轴先上升到安全高度 -> XY轴移动到目标位置 -> Z轴下降到目标位置 + + Args: + x, y, z: 工作坐标系下的目标位置 (mm) + speed: 运动速度 (rpm) + acceleration: 加速度 (rpm/s) + + Returns: + bool: 移动是否成功 + """ + if not self.is_connected: + logger.error("设备未连接,无法执行移动操作") + return False + + try: + # 检查坐标系是否已设置 + if not self.coordinate_origin.work_origin_steps: + raise CoordinateSystemError("工作原点未设置,请先调用set_work_origin_here()") + + # 检查行程限制 + self.check_travel_limits(x, y, z) + + # 设置运动参数 + speed = speed or self.machine_config.default_speed + acceleration = acceleration or self.machine_config.default_acceleration + + # 步骤1: Z轴先上升到安全高度 + if z is not None: + safe_z_steps = self.work_to_machine_steps(None, None, self.machine_config.safe_z_height) + if not self.move_to_position(MotorAxis.Z, safe_z_steps['z'], speed, acceleration): + logger.error("Z轴上升到安全高度失败") + return False + logger.info(f"Z轴上升到安全高度: {self.machine_config.safe_z_height} mm") + + # 等待Z轴移动完成 + self.wait_for_completion(MotorAxis.Z, 10.0) + + # 步骤2: XY轴移动到目标位置 + xy_success = True + if x is not None: + machine_steps = self.work_to_machine_steps(x, None, None) + if not self.move_to_position(MotorAxis.X, machine_steps['x'], speed, acceleration): + xy_success = False + + if y is not None: + machine_steps = self.work_to_machine_steps(None, y, None) + if not self.move_to_position(MotorAxis.Y, machine_steps['y'], speed, acceleration): + xy_success = False + + if not xy_success: + logger.error("XY轴移动失败") + return False + + if x is not None or y is not None: + logger.info(f"XY轴移动到目标位置: X:{x} Y:{y} mm") + # 等待XY轴移动完成 + if x is not None: + self.wait_for_completion(MotorAxis.X, 10.0) + if y is not None: + self.wait_for_completion(MotorAxis.Y, 10.0) + + # 步骤3: Z轴下降到目标位置 + if z is not None: + machine_steps = self.work_to_machine_steps(None, None, z) + if not self.move_to_position(MotorAxis.Z, machine_steps['z'], speed, acceleration): + logger.error("Z轴下降到目标位置失败") + return False + logger.info(f"Z轴下降到目标位置: {z} mm") + self.wait_for_completion(MotorAxis.Z, 10.0) + + logger.info(f"安全移动到工作坐标 X:{x} Y:{y} Z:{z} (mm) 完成") + return True + + except Exception as e: + logger.error(f"安全移动失败: {e}") + return False + + def move_to_work_coord(self, x: float = None, y: float = None, z: float = None, + speed: int = None, acceleration: int = None) -> bool: + """ + 移动到工作坐标 (已禁用) + + 此方法已被禁用,请使用 move_to_work_coord_safe() 方法。 + + Raises: + RuntimeError: 方法已禁用 + """ + error_msg = "Method disabled, use move_to_work_coord_safe instead" + logger.error(error_msg) + raise RuntimeError(error_msg) + + def move_relative_work_coord(self, dx: float = 0, dy: float = 0, dz: float = 0, + speed: int = None, acceleration: int = None) -> bool: + """ + 相对当前位置移动 + + Args: + dx, dy, dz: 相对移动距离 (mm) + speed: 运动速度 (rpm) + acceleration: 加速度 (rpm/s) + + Returns: + bool: 移动是否成功 + """ + if not self.is_connected: + logger.error("设备未连接,无法执行移动操作") + return False + + try: + # 获取当前工作坐标 + current_work = self.get_current_work_coords() + + # 计算目标坐标 + target_x = current_work['x'] + dx if dx != 0 else None + target_y = current_work['y'] + dy if dy != 0 else None + target_z = current_work['z'] + dz if dz != 0 else None + + return self.move_to_work_coord_safe(target_x, target_y, target_z, speed, acceleration) + + except Exception as e: + logger.error(f"相对移动失败: {e}") + return False + + def get_current_work_coords(self) -> Dict[str, float]: + """获取当前工作坐标""" + if not self.is_connected: + logger.error("设备未连接,无法获取当前坐标") + return {'x': 0.0, 'y': 0.0, 'z': 0.0} + + try: + # 获取当前机械坐标 + positions = self.get_all_positions() + machine_steps = {axis.name.lower(): pos.steps for axis, pos in positions.items()} + + # 转换为工作坐标 + return self.machine_to_work_coords(machine_steps) + + except Exception as e: + logger.error(f"获取工作坐标失败: {e}") + return {'x': 0.0, 'y': 0.0, 'z': 0.0} + + def get_current_position_mm(self) -> Dict[str, float]: + """获取当前位置坐标(毫米单位)""" + return self.get_current_work_coords() + + def wait_for_move_completion(self, timeout: float = 30.0) -> bool: + """等待所有轴运动完成""" + if not self.is_connected: + return False + + for axis in MotorAxis: + if not self.wait_for_completion(axis, timeout): + return False + return True + + # ==================== 系统状态和配置方法 ==================== + + def get_system_status(self) -> Dict: + """获取系统状态信息""" + status = { + "connection": { + "is_connected": self.is_connected, + "port": self.port, + "baudrate": self.baudrate + }, + "coordinate_system": { + "is_homed": self.coordinate_origin.is_homed, + "machine_origin": self.coordinate_origin.machine_origin_steps, + "work_origin": self.coordinate_origin.work_origin_steps, + "timestamp": self.coordinate_origin.timestamp + }, + "machine_config": asdict(self.machine_config), + "current_position": {} + } + + if self.is_connected: + try: + # 获取当前位置 + positions = self.get_all_positions() + for axis, pos in positions.items(): + axis_name = axis.name.lower() + status["current_position"][axis_name] = { + "steps": pos.steps, + "mm": self.steps_to_mm(axis, pos.steps), + "status": pos.status.name if hasattr(pos.status, 'name') else str(pos.status) + } + + # 获取工作坐标 + work_coords = self.get_current_work_coords() + status["current_work_coords"] = work_coords + + except Exception as e: + status["position_error"] = str(e) + + return status + + def update_machine_config(self, **kwargs): + """更新机械配置参数""" + for key, value in kwargs.items(): + if hasattr(self.machine_config, key): + setattr(self.machine_config, key, value) + logger.info(f"更新配置参数 {key}: {value}") + else: + logger.warning(f"未知配置参数: {key}") + + # 保存配置 + self._save_config() + + def reset_coordinate_system(self): + """重置坐标系统""" + self.coordinate_origin = CoordinateOrigin() + self._save_coordinate_origin() + logger.info("坐标系统已重置") + + def __enter__(self): + """上下文管理器入口""" + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """上下文管理器出口""" + self.disconnect_device() + + +def interactive_control(controller: XYZController): + """ + 交互式控制模式 + + Args: + controller: 已连接的控制器实例 + """ + print("\n" + "="*60) + print("进入交互式控制模式") + print("="*60) + + # 显示当前状态 + def show_status(): + try: + current_pos = controller.get_current_position_mm() + print(f"\n当前位置: X={current_pos['x']:.2f}mm, Y={current_pos['y']:.2f}mm, Z={current_pos['z']:.2f}mm") + except Exception as e: + print(f"获取位置失败: {e}") + + # 显示帮助信息 + def show_help(): + print("\n可用命令:") + print(" move <轴> <距离> - 相对移动,例: move x 10.5") + print(" goto - 绝对移动到指定坐标,例: goto 10 20 5") + print(" home [轴] - 回零操作,例: home 或 home x") + print(" origin - 设置当前位置为工作原点") + print(" status - 显示当前状态") + print(" speed <速度> - 设置运动速度(rpm),例: speed 2000") + print(" limits - 显示行程限制") + print(" config - 显示机械配置") + print(" help - 显示此帮助信息") + print(" quit/exit - 退出交互模式") + print("\n提示:") + print(" - 轴名称: x, y, z") + print(" - 距离单位: 毫米(mm)") + print(" - 正数向正方向移动,负数向负方向移动") + + # 安全回零操作 + def safe_homing(): + print("\n系统安全初始化...") + print("为确保操作安全,系统将执行回零操作") + print("提示: 已安装限位开关,超时后将假设回零成功") + + # 询问用户是否继续 + while True: + user_choice = input("是否继续执行回零操作? (y/n/skip): ").strip().lower() + if user_choice in ['y', 'yes', '是']: + print("\n开始执行全轴回零...") + print("回零过程可能需要一些时间,请耐心等待...") + + # 执行回零操作 + homing_success = controller.home_all_axes() + + if homing_success: + print("回零操作完成,系统已就绪") + # 设置当前位置为工作原点 + if controller.set_work_origin_here(): + print("工作原点已设置为回零位置") + else: + print("工作原点设置失败,但可以继续操作") + return True + else: + print("回零操作失败") + print("这可能是由于通信问题,但限位开关应该已经起作用") + + # 询问是否继续 + retry_choice = input("是否仍要继续操作? (y/n): ").strip().lower() + if retry_choice in ['y', 'yes', '是']: + print("继续操作,请手动确认设备位置安全") + return True + else: + return False + + elif user_choice in ['n', 'no', '否']: + print("用户取消回零操作,退出交互模式") + return False + elif user_choice in ['skip', 's', '跳过']: + print("跳过回零操作,请注意安全!") + print("建议在开始操作前手动执行 'home' 命令") + return True + else: + print("请输入 y(继续)/n(取消)/skip(跳过)") + + # 安全回原点操作 + def safe_return_home(): + print("\n系统安全关闭...") + print("正在将所有轴移动到安全位置...") + + try: + # 移动到工作原点 (0,0,0) - 使用安全移动方法 + if controller.move_to_work_coord_safe(0, 0, 0, speed=500): + print("已安全返回工作原点") + show_status() + else: + print("返回原点失败,请手动检查设备位置") + except Exception as e: + print(f"返回原点时出错: {e}") + + # 当前运动速度 + current_speed = controller.machine_config.default_speed + + try: + # 1. 首先执行安全回零 + if not safe_homing(): + return + + # 2. 显示初始状态和帮助 + show_status() + show_help() + + while True: + try: + # 获取用户输入 + user_input = input("\n请输入命令 (输入 help 查看帮助): ").strip().lower() + + if not user_input: + continue + + # 解析命令 + parts = user_input.split() + command = parts[0] + + if command in ['quit', 'exit', 'q']: + print("准备退出交互模式...") + # 执行安全回原点操作 + safe_return_home() + print("退出交互模式") + break + + elif command == 'help' or command == 'h': + show_help() + + elif command == 'status' or command == 's': + show_status() + print(f"当前速度: {current_speed} rpm") + print(f"是否已回零: {controller.coordinate_origin.is_homed}") + + elif command == 'move' or command == 'm': + if len(parts) != 3: + print("格式错误,正确格式: move <轴> <距离>") + print(" 例如: move x 10.5") + continue + + axis = parts[1].lower() + try: + distance = float(parts[2]) + except ValueError: + print("距离必须是数字") + continue + + if axis not in ['x', 'y', 'z']: + print("轴名称必须是 x, y 或 z") + continue + + print(f"{axis.upper()}轴移动 {distance:+.2f}mm...") + + # 执行移动 + kwargs = {f'd{axis}': distance, 'speed': current_speed} + if controller.move_relative_work_coord(**kwargs): + print(f"{axis.upper()}轴移动完成") + show_status() + else: + print(f"{axis.upper()}轴移动失败") + + elif command == 'goto' or command == 'g': + if len(parts) != 4: + print("格式错误,正确格式: goto ") + print(" 例如: goto 10 20 5") + continue + + try: + x = float(parts[1]) + y = float(parts[2]) + z = float(parts[3]) + except ValueError: + print("坐标必须是数字") + continue + + print(f"移动到坐标 ({x}, {y}, {z})...") + print("使用安全移动策略: Z轴先上升 → XY移动 → Z轴下降") + + if controller.move_to_work_coord_safe(x, y, z, speed=current_speed): + print("安全移动到目标位置完成") + show_status() + else: + print("移动失败") + + elif command == 'home': + if len(parts) == 1: + # 全轴回零 + print("开始全轴回零...") + if controller.home_all_axes(): + print("全轴回零完成") + show_status() + else: + print("回零失败") + elif len(parts) == 2: + # 单轴回零 + axis_name = parts[1].lower() + if axis_name not in ['x', 'y', 'z']: + print("轴名称必须是 x, y 或 z") + continue + + axis = MotorAxis[axis_name.upper()] + print(f"{axis_name.upper()}轴回零...") + + if controller.home_axis(axis): + print(f"{axis_name.upper()}轴回零完成") + show_status() + else: + print(f"{axis_name.upper()}轴回零失败") + else: + print("格式错误,正确格式: home 或 home <轴>") + + elif command == 'origin' or command == 'o': + print("设置当前位置为工作原点...") + if controller.set_work_origin_here(): + print("工作原点设置完成") + show_status() + else: + print("工作原点设置失败") + + elif command == 'speed': + if len(parts) != 2: + print("格式错误,正确格式: speed <速度>") + print(" 例如: speed 2000") + continue + + try: + new_speed = int(parts[1]) + if new_speed <= 0: + print("速度必须大于0") + continue + if new_speed > 10000: + print("速度不能超过10000 rpm") + continue + + current_speed = new_speed + print(f"运动速度设置为: {current_speed} rpm") + + except ValueError: + print("速度必须是整数") + + elif command == 'limits' or command == 'l': + config = controller.machine_config + print("\n行程限制:") + print(f" X轴: 0 ~ {config.max_travel_x} mm") + print(f" Y轴: 0 ~ {config.max_travel_y} mm") + print(f" Z轴: 0 ~ {config.max_travel_z} mm") + + elif command == 'config' or command == 'c': + config = controller.machine_config + print("\n机械配置:") + print(f" X轴步距: {config.steps_per_mm_x:.1f} 步/mm") + print(f" Y轴步距: {config.steps_per_mm_y:.1f} 步/mm") + print(f" Z轴步距: {config.steps_per_mm_z:.1f} 步/mm") + print(f" 回零速度: {config.homing_speed} rpm") + print(f" 默认速度: {config.default_speed} rpm") + print(f" 安全间隙: {config.safe_clearance} mm") + + else: + print(f"未知命令: {command}") + print("输入 help 查看可用命令") + + except KeyboardInterrupt: + print("\n\n用户中断,退出交互模式") + break + except Exception as e: + print(f"命令执行错误: {e}") + print("输入 help 查看正确的命令格式") + + finally: + # 确保正确断开连接 + try: + controller.disconnect_device() + print("设备连接已断开") + except Exception as e: + print(f"断开连接时出错: {e}") + + +def run_tests(): + """运行测试函数""" + print("=== XYZ控制器测试 ===") + + # 1. 测试机械配置 + print("\n1. 测试机械配置") + config = MachineConfig( + steps_per_mm_x=204.8, # 16384步/圈 ÷ 80mm导程 + steps_per_mm_y=204.8, # 16384步/圈 ÷ 80mm导程 + steps_per_mm_z=3276.8, # 16384步/圈 ÷ 5mm导程 + max_travel_x=340.0, + max_travel_y=250.0, + max_travel_z=160.0, + homing_speed=100, + default_speed=100 + ) + print(f"X轴步距: {config.steps_per_mm_x} 步/mm") + print(f"Y轴步距: {config.steps_per_mm_y} 步/mm") + print(f"Z轴步距: {config.steps_per_mm_z} 步/mm") + print(f"行程限制: X={config.max_travel_x}mm, Y={config.max_travel_y}mm, Z={config.max_travel_z}mm") + + # 2. 测试坐标原点数据结构 + print("\n2. 测试坐标原点数据结构") + origin = CoordinateOrigin() + print(f"初始状态: 已回零={origin.is_homed}") + print(f"机械原点: {origin.machine_origin_steps}") + print(f"工作原点: {origin.work_origin_steps}") + + # 设置示例数据 + origin.machine_origin_steps = {'x': 0, 'y': 0, 'z': 0} + origin.work_origin_steps = {'x': 16384, 'y': 16384, 'z': 13107} # 5mm, 5mm, 2mm (基于16384步/圈) + origin.is_homed = True + origin.timestamp = "2024-09-26 12:00:00" + print(f"设置后: 已回零={origin.is_homed}") + print(f"机械原点: {origin.machine_origin_steps}") + print(f"工作原点: {origin.work_origin_steps}") + + # 3. 测试离线功能 + print("\n3. 测试离线功能") + + # 创建离线控制器(不自动连接) + offline_controller = XYZController( + port='/dev/tty.usbserial-3130', + machine_config=config, + auto_connect=False + ) + + # 测试单位转换 + print("\n单位转换测试:") + test_distances = [1.0, 5.0, 10.0, 25.5] + for distance in test_distances: + x_steps = offline_controller.mm_to_steps(MotorAxis.X, distance) + y_steps = offline_controller.mm_to_steps(MotorAxis.Y, distance) + z_steps = offline_controller.mm_to_steps(MotorAxis.Z, distance) + print(f"{distance}mm -> X:{x_steps}步, Y:{y_steps}步, Z:{z_steps}步") + + # 反向转换验证 + x_mm = offline_controller.steps_to_mm(MotorAxis.X, x_steps) + y_mm = offline_controller.steps_to_mm(MotorAxis.Y, y_steps) + z_mm = offline_controller.steps_to_mm(MotorAxis.Z, z_steps) + print(f"反向转换: X:{x_mm:.2f}mm, Y:{y_mm:.2f}mm, Z:{z_mm:.2f}mm") + + # 测试坐标系转换 + print("\n坐标系转换测试:") + offline_controller.coordinate_origin = origin # 使用示例原点 + work_coords = [(0, 0, 0), (10, 15, 5), (50, 30, 20)] + + for x, y, z in work_coords: + try: + machine_steps = offline_controller.work_to_machine_steps(x, y, z) + print(f"工作坐标 ({x}, {y}, {z}) -> 机械步数 {machine_steps}") + + # 反向转换验证 + work_coords_back = offline_controller.machine_to_work_coords(machine_steps) + print(f"反向转换: ({work_coords_back['x']:.2f}, {work_coords_back['y']:.2f}, {work_coords_back['z']:.2f})") + except Exception as e: + print(f"转换失败: {e}") + + # 测试行程限制检查 + print("\n行程限制检查测试:") + test_positions = [ + (50, 50, 25, "正常位置"), + (250, 50, 25, "X轴超限"), + (50, 350, 25, "Y轴超限"), + (50, 50, 150, "Z轴超限"), + (-10, 50, 25, "X轴负超限"), + (50, -10, 25, "Y轴负超限"), + (50, 50, -5, "Z轴负超限") + ] + + for x, y, z, desc in test_positions: + try: + offline_controller.check_travel_limits(x, y, z) + print(f"{desc} ({x}, {y}, {z}): 有效") + except CoordinateSystemError as e: + print(f"{desc} ({x}, {y}, {z}): 超限 - {e}") + + print("\n=== 离线功能测试完成 ===") + + # 4. 硬件连接测试 + print("\n4. 硬件连接测试") + print("尝试连接真实设备...") + + # 可能的串口列表 + possible_ports = [ + '/dev/ttyCH341USB0' # CH340 USB串口转换器 + ] + + connected_controller = None + + for port in possible_ports: + try: + print(f"尝试连接端口: {port}") + controller = XYZController( + port=port, + machine_config=config, + auto_connect=True + ) + + if controller.is_connected: + print(f"成功连接到 {port}") + connected_controller = controller + + # 获取系统状态 + status = controller.get_system_status() + print("\n系统状态:") + print(f" 连接状态: {status['connection']['is_connected']}") + print(f" 是否已回零: {status['coordinate_system']['is_homed']}") + + if 'current_position' in status: + print(" 当前位置:") + for axis, pos_info in status['current_position'].items(): + print(f" {axis.upper()}轴: {pos_info['steps']}步 ({pos_info['mm']:.2f}mm)") + + # 测试基本移动功能 + print("\n测试基本移动功能:") + try: + # 获取当前位置 + current_pos = controller.get_current_position_mm() + print(f"当前工作坐标: {current_pos}") + + # 小幅移动测试 + print("执行小幅移动测试 (X+1mm)...") + if controller.move_relative_work_coord(dx=1.0, speed=500): + print("移动成功") + time.sleep(1) + new_pos = controller.get_current_position_mm() + print(f"移动后坐标: {new_pos}") + else: + print("移动失败") + + except Exception as e: + print(f"移动测试失败: {e}") + + break + + except Exception as e: + print(f"连接 {port} 失败: {e}") + continue + + if not connected_controller: + print("未找到可用的设备端口") + print("请检查:") + print(" 1. 设备是否正确连接") + print(" 2. 串口端口是否正确") + print(" 3. 设备驱动是否安装") + else: + # 进入交互式控制模式 + interactive_control(connected_controller) + + print("\n=== XYZ控制器测试完成 ===") + + +# ==================== 测试和示例代码 ==================== +if __name__ == "__main__": + run_tests() \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/core/__init__.py b/unilabos/devices/laiyu_liquid/core/__init__.py new file mode 100644 index 00000000..87214f83 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/core/__init__.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +LaiYu液体处理设备核心模块 + +该模块包含LaiYu液体处理设备的核心功能组件: +- LaiYu_Liquid.py: 主设备类和配置管理 +- abstract_protocol.py: 抽象协议定义 +- laiyu_liquid_res.py: 设备资源管理 + +作者: UniLab团队 +版本: 2.0.0 +""" + +from .laiyu_liquid_main import ( + LaiYuLiquid, + LaiYuLiquidConfig, + LaiYuLiquidBackend, + LaiYuLiquidDeck, + LaiYuLiquidContainer, + LaiYuLiquidTipRack, + create_quick_setup +) + +from .laiyu_liquid_res import ( + LaiYuLiquidDeck, + LaiYuLiquidContainer, + LaiYuLiquidTipRack +) + +__all__ = [ + # 主设备类 + 'LaiYuLiquid', + 'LaiYuLiquidConfig', + 'LaiYuLiquidBackend', + + # 设备资源 + 'LaiYuLiquidDeck', + 'LaiYuLiquidContainer', + 'LaiYuLiquidTipRack', + + # 工具函数 + 'create_quick_setup' +] \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/core/abstract_protocol.py b/unilabos/devices/laiyu_liquid/core/abstract_protocol.py new file mode 100644 index 00000000..9959c364 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/core/abstract_protocol.py @@ -0,0 +1,529 @@ +""" +LaiYu_Liquid 抽象协议实现 + +该模块提供了液体资源管理和转移的抽象协议,包括: +- MaterialResource: 液体资源管理类 +- transfer_liquid: 液体转移函数 +- 相关的辅助类和函数 + +主要功能: +- 管理多孔位的液体资源 +- 计算和跟踪液体体积 +- 处理液体转移操作 +- 提供资源状态查询 +""" + +import logging +from typing import Dict, List, Optional, Union, Any, Tuple +from dataclasses import dataclass, field +from enum import Enum +import uuid +import time + +# pylabrobot 导入 +from pylabrobot.resources import Resource, Well, Plate + +logger = logging.getLogger(__name__) + + +class LiquidType(Enum): + """液体类型枚举""" + WATER = "water" + ETHANOL = "ethanol" + DMSO = "dmso" + BUFFER = "buffer" + SAMPLE = "sample" + REAGENT = "reagent" + WASTE = "waste" + UNKNOWN = "unknown" + + +@dataclass +class LiquidInfo: + """液体信息类""" + liquid_type: LiquidType = LiquidType.UNKNOWN + volume: float = 0.0 # 体积 (μL) + concentration: Optional[float] = None # 浓度 (mg/ml, M等) + ph: Optional[float] = None # pH值 + temperature: Optional[float] = None # 温度 (°C) + viscosity: Optional[float] = None # 粘度 (cP) + density: Optional[float] = None # 密度 (g/ml) + description: str = "" # 描述信息 + + def __str__(self) -> str: + return f"{self.liquid_type.value}({self.description})" + + +@dataclass +class WellContent: + """孔位内容类""" + volume: float = 0.0 # 当前体积 (ul) + max_volume: float = 1000.0 # 最大容量 (ul) + liquid_info: LiquidInfo = field(default_factory=LiquidInfo) + last_updated: float = field(default_factory=time.time) + + @property + def is_empty(self) -> bool: + """检查是否为空""" + return self.volume <= 0.0 + + @property + def is_full(self) -> bool: + """检查是否已满""" + return self.volume >= self.max_volume + + @property + def available_volume(self) -> float: + """可用体积""" + return max(0.0, self.max_volume - self.volume) + + @property + def fill_percentage(self) -> float: + """填充百分比""" + return (self.volume / self.max_volume) * 100.0 if self.max_volume > 0 else 0.0 + + def can_add_volume(self, volume: float) -> bool: + """检查是否可以添加指定体积""" + return (self.volume + volume) <= self.max_volume + + def can_remove_volume(self, volume: float) -> bool: + """检查是否可以移除指定体积""" + return self.volume >= volume + + def add_volume(self, volume: float, liquid_info: Optional[LiquidInfo] = None) -> bool: + """ + 添加液体体积 + + Args: + volume: 要添加的体积 (ul) + liquid_info: 液体信息 + + Returns: + bool: 是否成功添加 + """ + if not self.can_add_volume(volume): + return False + + self.volume += volume + if liquid_info: + self.liquid_info = liquid_info + self.last_updated = time.time() + return True + + def remove_volume(self, volume: float) -> bool: + """ + 移除液体体积 + + Args: + volume: 要移除的体积 (ul) + + Returns: + bool: 是否成功移除 + """ + if not self.can_remove_volume(volume): + return False + + self.volume -= volume + self.last_updated = time.time() + + # 如果完全清空,重置液体信息 + if self.volume <= 0.0: + self.volume = 0.0 + self.liquid_info = LiquidInfo() + + return True + + +class MaterialResource: + """ + 液体资源管理类 + + 该类用于管理液体处理过程中的资源状态,包括: + - 跟踪多个孔位的液体体积和类型 + - 计算总体积和可用体积 + - 处理液体的添加和移除 + - 提供资源状态查询 + """ + + def __init__( + self, + resource: Resource, + wells: Optional[List[Well]] = None, + default_max_volume: float = 1000.0 + ): + """ + 初始化材料资源 + + Args: + resource: pylabrobot 资源对象 + wells: 孔位列表,如果为None则自动获取 + default_max_volume: 默认最大体积 (ul) + """ + self.resource = resource + self.resource_id = str(uuid.uuid4()) + self.default_max_volume = default_max_volume + + # 获取孔位列表 + if wells is None: + if hasattr(resource, 'get_wells'): + self.wells = resource.get_wells() + elif hasattr(resource, 'wells'): + self.wells = resource.wells + else: + # 如果没有孔位,创建一个虚拟孔位 + self.wells = [resource] + else: + self.wells = wells + + # 初始化孔位内容 + self.well_contents: Dict[str, WellContent] = {} + for well in self.wells: + well_id = self._get_well_id(well) + self.well_contents[well_id] = WellContent( + max_volume=default_max_volume + ) + + logger.info(f"初始化材料资源: {resource.name}, 孔位数: {len(self.wells)}") + + def _get_well_id(self, well: Union[Well, Resource]) -> str: + """获取孔位ID""" + if hasattr(well, 'name'): + return well.name + else: + return str(id(well)) + + @property + def name(self) -> str: + """资源名称""" + return self.resource.name + + @property + def total_volume(self) -> float: + """总液体体积""" + return sum(content.volume for content in self.well_contents.values()) + + @property + def total_max_volume(self) -> float: + """总最大容量""" + return sum(content.max_volume for content in self.well_contents.values()) + + @property + def available_volume(self) -> float: + """总可用体积""" + return sum(content.available_volume for content in self.well_contents.values()) + + @property + def well_count(self) -> int: + """孔位数量""" + return len(self.wells) + + @property + def empty_wells(self) -> List[str]: + """空孔位列表""" + return [well_id for well_id, content in self.well_contents.items() + if content.is_empty] + + @property + def full_wells(self) -> List[str]: + """满孔位列表""" + return [well_id for well_id, content in self.well_contents.items() + if content.is_full] + + @property + def occupied_wells(self) -> List[str]: + """有液体的孔位列表""" + return [well_id for well_id, content in self.well_contents.items() + if not content.is_empty] + + def get_well_content(self, well_id: str) -> Optional[WellContent]: + """获取指定孔位的内容""" + return self.well_contents.get(well_id) + + def get_well_volume(self, well_id: str) -> float: + """获取指定孔位的体积""" + content = self.get_well_content(well_id) + return content.volume if content else 0.0 + + def set_well_volume( + self, + well_id: str, + volume: float, + liquid_info: Optional[LiquidInfo] = None + ) -> bool: + """ + 设置指定孔位的体积 + + Args: + well_id: 孔位ID + volume: 体积 (ul) + liquid_info: 液体信息 + + Returns: + bool: 是否成功设置 + """ + if well_id not in self.well_contents: + logger.error(f"孔位 {well_id} 不存在") + return False + + content = self.well_contents[well_id] + if volume > content.max_volume: + logger.error(f"体积 {volume} 超过最大容量 {content.max_volume}") + return False + + content.volume = max(0.0, volume) + if liquid_info: + content.liquid_info = liquid_info + content.last_updated = time.time() + + logger.info(f"设置孔位 {well_id} 体积: {volume}ul") + return True + + def add_liquid( + self, + well_id: str, + volume: float, + liquid_info: Optional[LiquidInfo] = None + ) -> bool: + """ + 向指定孔位添加液体 + + Args: + well_id: 孔位ID + volume: 添加的体积 (ul) + liquid_info: 液体信息 + + Returns: + bool: 是否成功添加 + """ + if well_id not in self.well_contents: + logger.error(f"孔位 {well_id} 不存在") + return False + + content = self.well_contents[well_id] + success = content.add_volume(volume, liquid_info) + + if success: + logger.info(f"向孔位 {well_id} 添加 {volume}ul 液体") + else: + logger.error(f"无法向孔位 {well_id} 添加 {volume}ul 液体") + + return success + + def remove_liquid(self, well_id: str, volume: float) -> bool: + """ + 从指定孔位移除液体 + + Args: + well_id: 孔位ID + volume: 移除的体积 (ul) + + Returns: + bool: 是否成功移除 + """ + if well_id not in self.well_contents: + logger.error(f"孔位 {well_id} 不存在") + return False + + content = self.well_contents[well_id] + success = content.remove_volume(volume) + + if success: + logger.info(f"从孔位 {well_id} 移除 {volume}ul 液体") + else: + logger.error(f"无法从孔位 {well_id} 移除 {volume}ul 液体") + + return success + + def find_wells_with_volume(self, min_volume: float) -> List[str]: + """ + 查找具有指定最小体积的孔位 + + Args: + min_volume: 最小体积 (ul) + + Returns: + List[str]: 符合条件的孔位ID列表 + """ + return [well_id for well_id, content in self.well_contents.items() + if content.volume >= min_volume] + + def find_wells_with_space(self, min_space: float) -> List[str]: + """ + 查找具有指定最小空间的孔位 + + Args: + min_space: 最小空间 (ul) + + Returns: + List[str]: 符合条件的孔位ID列表 + """ + return [well_id for well_id, content in self.well_contents.items() + if content.available_volume >= min_space] + + def get_status_summary(self) -> Dict[str, Any]: + """获取资源状态摘要""" + return { + "resource_name": self.name, + "resource_id": self.resource_id, + "well_count": self.well_count, + "total_volume": self.total_volume, + "total_max_volume": self.total_max_volume, + "available_volume": self.available_volume, + "fill_percentage": (self.total_volume / self.total_max_volume) * 100.0, + "empty_wells": len(self.empty_wells), + "full_wells": len(self.full_wells), + "occupied_wells": len(self.occupied_wells) + } + + def get_detailed_status(self) -> Dict[str, Any]: + """获取详细状态信息""" + well_details = {} + for well_id, content in self.well_contents.items(): + well_details[well_id] = { + "volume": content.volume, + "max_volume": content.max_volume, + "available_volume": content.available_volume, + "fill_percentage": content.fill_percentage, + "liquid_type": content.liquid_info.liquid_type.value, + "description": content.liquid_info.description, + "last_updated": content.last_updated + } + + return { + "summary": self.get_status_summary(), + "wells": well_details + } + + +def transfer_liquid( + source: MaterialResource, + target: MaterialResource, + volume: float, + source_well_id: Optional[str] = None, + target_well_id: Optional[str] = None, + liquid_info: Optional[LiquidInfo] = None +) -> bool: + """ + 在两个材料资源之间转移液体 + + Args: + source: 源资源 + target: 目标资源 + volume: 转移体积 (ul) + source_well_id: 源孔位ID,如果为None则自动选择 + target_well_id: 目标孔位ID,如果为None则自动选择 + liquid_info: 液体信息 + + Returns: + bool: 转移是否成功 + """ + try: + # 自动选择源孔位 + if source_well_id is None: + available_wells = source.find_wells_with_volume(volume) + if not available_wells: + logger.error(f"源资源 {source.name} 没有足够体积的孔位") + return False + source_well_id = available_wells[0] + + # 自动选择目标孔位 + if target_well_id is None: + available_wells = target.find_wells_with_space(volume) + if not available_wells: + logger.error(f"目标资源 {target.name} 没有足够空间的孔位") + return False + target_well_id = available_wells[0] + + # 检查源孔位是否有足够液体 + if not source.get_well_content(source_well_id).can_remove_volume(volume): + logger.error(f"源孔位 {source_well_id} 液体不足") + return False + + # 检查目标孔位是否有足够空间 + if not target.get_well_content(target_well_id).can_add_volume(volume): + logger.error(f"目标孔位 {target_well_id} 空间不足") + return False + + # 获取源液体信息 + source_content = source.get_well_content(source_well_id) + transfer_liquid_info = liquid_info or source_content.liquid_info + + # 执行转移 + if source.remove_liquid(source_well_id, volume): + if target.add_liquid(target_well_id, volume, transfer_liquid_info): + logger.info(f"成功转移 {volume}ul 液体: {source.name}[{source_well_id}] -> {target.name}[{target_well_id}]") + return True + else: + # 如果目标添加失败,回滚源操作 + source.add_liquid(source_well_id, volume, source_content.liquid_info) + logger.error("目标添加失败,已回滚源操作") + return False + else: + logger.error("源移除失败") + return False + + except Exception as e: + logger.error(f"液体转移失败: {e}") + return False + + +def create_material_resource( + name: str, + resource: Resource, + initial_volumes: Optional[Dict[str, float]] = None, + liquid_info: Optional[LiquidInfo] = None, + max_volume: float = 1000.0 +) -> MaterialResource: + """ + 创建材料资源的便捷函数 + + Args: + name: 资源名称 + resource: pylabrobot 资源对象 + initial_volumes: 初始体积字典 {well_id: volume} + liquid_info: 液体信息 + max_volume: 最大体积 + + Returns: + MaterialResource: 创建的材料资源 + """ + material_resource = MaterialResource( + resource=resource, + default_max_volume=max_volume + ) + + # 设置初始体积 + if initial_volumes: + for well_id, volume in initial_volumes.items(): + material_resource.set_well_volume(well_id, volume, liquid_info) + + return material_resource + + +def batch_transfer_liquid( + transfers: List[Tuple[MaterialResource, MaterialResource, float]], + liquid_info: Optional[LiquidInfo] = None +) -> List[bool]: + """ + 批量液体转移 + + Args: + transfers: 转移列表 [(source, target, volume), ...] + liquid_info: 液体信息 + + Returns: + List[bool]: 每个转移操作的结果 + """ + results = [] + + for source, target, volume in transfers: + result = transfer_liquid(source, target, volume, liquid_info=liquid_info) + results.append(result) + + if not result: + logger.warning(f"批量转移中的操作失败: {source.name} -> {target.name}") + + success_count = sum(results) + logger.info(f"批量转移完成: {success_count}/{len(transfers)} 成功") + + return results \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/core/laiyu_liquid_main.py b/unilabos/devices/laiyu_liquid/core/laiyu_liquid_main.py new file mode 100644 index 00000000..96092556 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/core/laiyu_liquid_main.py @@ -0,0 +1,881 @@ +""" +LaiYu_Liquid 液体处理工作站主要集成文件 + +该模块实现了 LaiYu_Liquid 与 UniLabOS 系统的集成,提供标准化的液体处理接口。 +主要包含: +- LaiYuLiquidBackend: 硬件通信后端 +- LaiYuLiquid: 主要接口类 +- 相关的异常类和容器类 +""" + +import asyncio +import logging +import time +from typing import List, Optional, Dict, Any, Union, Tuple +from dataclasses import dataclass +from abc import ABC, abstractmethod + +# 基础导入 +try: + from pylabrobot.resources import Deck, Plate, TipRack, Tip, Resource, Well + PYLABROBOT_AVAILABLE = True +except ImportError: + # 如果 pylabrobot 不可用,创建基础的模拟类 + PYLABROBOT_AVAILABLE = False + + class Resource: + def __init__(self, name: str): + self.name = name + + class Deck(Resource): + pass + + class Plate(Resource): + pass + + class TipRack(Resource): + pass + + class Tip(Resource): + pass + + class Well(Resource): + pass + +# LaiYu_Liquid 控制器导入 +try: + from .controllers.pipette_controller import ( + PipetteController, TipStatus, LiquidClass, LiquidParameters + ) + from .controllers.xyz_controller import ( + XYZController, MachineConfig, CoordinateOrigin, MotorAxis + ) + CONTROLLERS_AVAILABLE = True +except ImportError: + CONTROLLERS_AVAILABLE = False + # 创建模拟的控制器类 + class PipetteController: + def __init__(self, *args, **kwargs): + pass + + def connect(self): + return True + + def initialize(self): + return True + + class XYZController: + def __init__(self, *args, **kwargs): + pass + + def connect_device(self): + return True + +logger = logging.getLogger(__name__) + + +class LaiYuLiquidError(RuntimeError): + """LaiYu_Liquid 设备异常""" + pass + + +@dataclass +class LaiYuLiquidConfig: + """LaiYu_Liquid 设备配置""" + port: str = "/dev/cu.usbserial-3130" # RS485转USB端口 + address: int = 1 # 设备地址 + baudrate: int = 9600 # 波特率 + timeout: float = 5.0 # 通信超时时间 + + # 工作台尺寸 + deck_width: float = 340.0 # 工作台宽度 (mm) + deck_height: float = 250.0 # 工作台高度 (mm) + deck_depth: float = 160.0 # 工作台深度 (mm) + + # 移液参数 + max_volume: float = 1000.0 # 最大体积 (μL) + min_volume: float = 0.1 # 最小体积 (μL) + + # 运动参数 + max_speed: float = 100.0 # 最大速度 (mm/s) + acceleration: float = 50.0 # 加速度 (mm/s²) + + # 安全参数 + safe_height: float = 50.0 # 安全高度 (mm) + tip_pickup_depth: float = 10.0 # 吸头拾取深度 (mm) + liquid_detection: bool = True # 液面检测 + + # 取枪头相关参数 + tip_pickup_speed: int = 30 # 取枪头时的移动速度 (rpm) + tip_pickup_acceleration: int = 500 # 取枪头时的加速度 (rpm/s) + tip_approach_height: float = 5.0 # 接近枪头时的高度 (mm) + tip_pickup_force_depth: float = 2.0 # 强制插入深度 (mm) + tip_pickup_retract_height: float = 20.0 # 取枪头后的回退高度 (mm) + + # 丢弃枪头相关参数 + tip_drop_height: float = 10.0 # 丢弃枪头时的高度 (mm) + tip_drop_speed: int = 50 # 丢弃枪头时的移动速度 (rpm) + trash_position: Tuple[float, float, float] = (300.0, 200.0, 0.0) # 垃圾桶位置 (mm) + + # 安全范围配置 + deck_width: float = 300.0 # 工作台宽度 (mm) + deck_height: float = 200.0 # 工作台高度 (mm) + deck_depth: float = 100.0 # 工作台深度 (mm) + safe_height: float = 50.0 # 安全高度 (mm) + position_validation: bool = True # 启用位置验证 + emergency_stop_enabled: bool = True # 启用紧急停止 + + +class LaiYuLiquidDeck: + """LaiYu_Liquid 工作台管理""" + + def __init__(self, config: LaiYuLiquidConfig): + self.config = config + self.resources: Dict[str, Resource] = {} + self.positions: Dict[str, Tuple[float, float, float]] = {} + + def add_resource(self, name: str, resource: Resource, position: Tuple[float, float, float]): + """添加资源到工作台""" + self.resources[name] = resource + self.positions[name] = position + + def get_resource(self, name: str) -> Optional[Resource]: + """获取资源""" + return self.resources.get(name) + + def get_position(self, name: str) -> Optional[Tuple[float, float, float]]: + """获取资源位置""" + return self.positions.get(name) + + def list_resources(self) -> List[str]: + """列出所有资源""" + return list(self.resources.keys()) + + +class LaiYuLiquidContainer: + """LaiYu_Liquid 容器类""" + + def __init__(self, name: str, size_x: float = 0, size_y: float = 0, size_z: float = 0, container_type: str = "", volume: float = 0.0, max_volume: float = 1000.0, lid_height: float = 0.0): + self.name = name + self.size_x = size_x + self.size_y = size_y + self.size_z = size_z + self.lid_height = lid_height + self.container_type = container_type + self.volume = volume + self.max_volume = max_volume + self.last_updated = time.time() + self.child_resources = {} # 存储子资源 + + @property + def is_empty(self) -> bool: + return self.volume <= 0.0 + + @property + def is_full(self) -> bool: + return self.volume >= self.max_volume + + @property + def available_volume(self) -> float: + return max(0.0, self.max_volume - self.volume) + + def add_volume(self, volume: float) -> bool: + """添加体积""" + if self.volume + volume <= self.max_volume: + self.volume += volume + self.last_updated = time.time() + return True + return False + + def remove_volume(self, volume: float) -> bool: + """移除体积""" + if self.volume >= volume: + self.volume -= volume + self.last_updated = time.time() + return True + return False + + def assign_child_resource(self, resource, location=None): + """分配子资源 - 与 PyLabRobot 资源管理系统兼容""" + if hasattr(resource, 'name'): + self.child_resources[resource.name] = { + 'resource': resource, + 'location': location + } + + +class LaiYuLiquidTipRack: + """LaiYu_Liquid 吸头架类""" + + def __init__(self, name: str, size_x: float = 0, size_y: float = 0, size_z: float = 0, tip_count: int = 96, tip_volume: float = 1000.0): + self.name = name + self.size_x = size_x + self.size_y = size_y + self.size_z = size_z + self.tip_count = tip_count + self.tip_volume = tip_volume + self.tips_available = [True] * tip_count + self.child_resources = {} # 存储子资源 + + @property + def available_tips(self) -> int: + return sum(self.tips_available) + + @property + def is_empty(self) -> bool: + return self.available_tips == 0 + + def pick_tip(self, position: int) -> bool: + """拾取吸头""" + if 0 <= position < self.tip_count and self.tips_available[position]: + self.tips_available[position] = False + return True + return False + + def has_tip(self, position: int) -> bool: + """检查位置是否有吸头""" + if 0 <= position < self.tip_count: + return self.tips_available[position] + return False + + def assign_child_resource(self, resource, location=None): + """分配子资源到指定位置""" + self.child_resources[resource.name] = { + 'resource': resource, + 'location': location + } + + +def get_module_info(): + """获取模块信息""" + return { + "name": "LaiYu_Liquid", + "version": "1.0.0", + "description": "LaiYu液体处理工作站模块,提供移液器控制、XYZ轴控制和资源管理功能", + "author": "UniLabOS Team", + "capabilities": [ + "移液器控制", + "XYZ轴运动控制", + "吸头架管理", + "板和容器管理", + "资源位置管理" + ], + "dependencies": { + "required": ["serial"], + "optional": ["pylabrobot"] + } + } + + +class LaiYuLiquidBackend: + """LaiYu_Liquid 硬件通信后端""" + + def __init__(self, config: LaiYuLiquidConfig, deck: Optional['LaiYuLiquidDeck'] = None): + self.config = config + self.deck = deck # 工作台引用,用于获取资源位置信息 + self.pipette_controller = None + self.xyz_controller = None + self.is_connected = False + self.is_initialized = False + + # 状态跟踪 + self.current_position = (0.0, 0.0, 0.0) + self.tip_attached = False + self.current_volume = 0.0 + + def _validate_position(self, x: float, y: float, z: float) -> bool: + """验证位置是否在安全范围内""" + try: + # 检查X轴范围 + if not (0 <= x <= self.config.deck_width): + logger.error(f"X轴位置 {x:.2f}mm 超出范围 [0, {self.config.deck_width}]") + return False + + # 检查Y轴范围 + if not (0 <= y <= self.config.deck_height): + logger.error(f"Y轴位置 {y:.2f}mm 超出范围 [0, {self.config.deck_height}]") + return False + + # 检查Z轴范围(负值表示向下,0为工作台表面) + if not (-self.config.deck_depth <= z <= self.config.safe_height): + logger.error(f"Z轴位置 {z:.2f}mm 超出安全范围 [{-self.config.deck_depth}, {self.config.safe_height}]") + return False + + return True + except Exception as e: + logger.error(f"位置验证失败: {e}") + return False + + def _check_hardware_ready(self) -> bool: + """检查硬件是否准备就绪""" + if not self.is_connected: + logger.error("设备未连接") + return False + + if CONTROLLERS_AVAILABLE: + if self.xyz_controller is None: + logger.error("XYZ控制器未初始化") + return False + + return True + + async def emergency_stop(self) -> bool: + """紧急停止所有运动""" + try: + logger.warning("执行紧急停止") + + if CONTROLLERS_AVAILABLE and self.xyz_controller: + # 停止XYZ控制器 + await self.xyz_controller.stop_all_motion() + logger.info("XYZ控制器已停止") + + if self.pipette_controller: + # 停止移液器控制器 + await self.pipette_controller.stop() + logger.info("移液器控制器已停止") + + return True + except Exception as e: + logger.error(f"紧急停止失败: {e}") + return False + + async def move_to_safe_position(self) -> bool: + """移动到安全位置""" + try: + if not self._check_hardware_ready(): + return False + + safe_position = ( + self.config.deck_width / 2, # 工作台中心X + self.config.deck_height / 2, # 工作台中心Y + self.config.safe_height # 安全高度Z + ) + + if not self._validate_position(*safe_position): + logger.error("安全位置无效") + return False + + if CONTROLLERS_AVAILABLE and self.xyz_controller: + await self.xyz_controller.move_to_work_coord(*safe_position) + self.current_position = safe_position + logger.info(f"已移动到安全位置: {safe_position}") + return True + else: + # 模拟模式 + self.current_position = safe_position + logger.info("模拟移动到安全位置") + return True + + except Exception as e: + logger.error(f"移动到安全位置失败: {e}") + return False + + async def setup(self) -> bool: + """设置硬件连接""" + try: + if CONTROLLERS_AVAILABLE: + # 初始化移液器控制器 + self.pipette_controller = PipetteController( + port=self.config.port, + address=self.config.address + ) + + # 初始化XYZ控制器 + machine_config = MachineConfig() + self.xyz_controller = XYZController( + port=self.config.port, + baudrate=self.config.baudrate, + machine_config=machine_config + ) + + # 连接设备 + pipette_connected = await asyncio.to_thread(self.pipette_controller.connect) + xyz_connected = await asyncio.to_thread(self.xyz_controller.connect_device) + + if pipette_connected and xyz_connected: + self.is_connected = True + logger.info("LaiYu_Liquid 硬件连接成功") + return True + else: + logger.error("LaiYu_Liquid 硬件连接失败") + return False + else: + # 模拟模式 + logger.info("LaiYu_Liquid 运行在模拟模式") + self.is_connected = True + return True + + except Exception as e: + logger.error(f"LaiYu_Liquid 设置失败: {e}") + return False + + async def stop(self): + """停止设备""" + try: + if self.pipette_controller and hasattr(self.pipette_controller, 'disconnect'): + await asyncio.to_thread(self.pipette_controller.disconnect) + + if self.xyz_controller and hasattr(self.xyz_controller, 'disconnect'): + await asyncio.to_thread(self.xyz_controller.disconnect) + + self.is_connected = False + self.is_initialized = False + logger.info("LaiYu_Liquid 已停止") + + except Exception as e: + logger.error(f"LaiYu_Liquid 停止失败: {e}") + + async def move_to(self, x: float, y: float, z: float) -> bool: + """移动到指定位置""" + try: + if not self.is_connected: + raise LaiYuLiquidError("设备未连接") + + # 模拟移动 + await asyncio.sleep(0.1) # 模拟移动时间 + self.current_position = (x, y, z) + logger.debug(f"移动到位置: ({x}, {y}, {z})") + return True + + except Exception as e: + logger.error(f"移动失败: {e}") + return False + + async def pick_up_tip(self, tip_rack: str, position: int) -> bool: + """拾取吸头 - 包含真正的Z轴下降控制""" + try: + # 硬件准备检查 + if not self._check_hardware_ready(): + return False + + if self.tip_attached: + logger.warning("已有吸头附着,无法拾取新吸头") + return False + + logger.info(f"开始从 {tip_rack} 位置 {position} 拾取吸头") + + # 获取枪头架位置信息 + if self.deck is None: + logger.error("工作台未初始化") + return False + + tip_position = self.deck.get_position(tip_rack) + if tip_position is None: + logger.error(f"未找到枪头架 {tip_rack} 的位置信息") + return False + + # 计算具体枪头位置(这里简化处理,实际应根据position计算偏移) + tip_x, tip_y, tip_z = tip_position + + # 验证所有关键位置的安全性 + safe_z = tip_z + self.config.tip_approach_height + pickup_z = tip_z - self.config.tip_pickup_force_depth + retract_z = tip_z + self.config.tip_pickup_retract_height + + if not (self._validate_position(tip_x, tip_y, safe_z) and + self._validate_position(tip_x, tip_y, pickup_z) and + self._validate_position(tip_x, tip_y, retract_z)): + logger.error("枪头拾取位置超出安全范围") + return False + + if CONTROLLERS_AVAILABLE and self.xyz_controller: + # 真实硬件控制流程 + logger.info("使用真实XYZ控制器进行枪头拾取") + + try: + # 1. 移动到枪头上方的安全位置 + safe_z = tip_z + self.config.tip_approach_height + logger.info(f"移动到枪头上方安全位置: ({tip_x:.2f}, {tip_y:.2f}, {safe_z:.2f})") + move_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + tip_x, tip_y, safe_z + ) + if not move_success: + logger.error("移动到枪头上方失败") + return False + + # 2. Z轴下降到枪头位置 + pickup_z = tip_z - self.config.tip_pickup_force_depth + logger.info(f"Z轴下降到枪头拾取位置: {pickup_z:.2f}mm") + z_down_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + tip_x, tip_y, pickup_z + ) + if not z_down_success: + logger.error("Z轴下降到枪头位置失败") + return False + + # 3. 等待一小段时间确保枪头牢固附着 + await asyncio.sleep(0.2) + + # 4. Z轴上升到回退高度 + retract_z = tip_z + self.config.tip_pickup_retract_height + logger.info(f"Z轴上升到回退高度: {retract_z:.2f}mm") + z_up_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + tip_x, tip_y, retract_z + ) + if not z_up_success: + logger.error("Z轴上升失败") + return False + + # 5. 更新当前位置 + self.current_position = (tip_x, tip_y, retract_z) + + except Exception as move_error: + logger.error(f"枪头拾取过程中发生错误: {move_error}") + # 尝试移动到安全位置 + if self.config.emergency_stop_enabled: + await self.emergency_stop() + await self.move_to_safe_position() + return False + + else: + # 模拟模式 + logger.info("模拟模式:执行枪头拾取动作") + await asyncio.sleep(1.0) # 模拟整个拾取过程的时间 + self.current_position = (tip_x, tip_y, tip_z + self.config.tip_pickup_retract_height) + + # 6. 标记枪头已附着 + self.tip_attached = True + logger.info("吸头拾取成功") + return True + + except Exception as e: + logger.error(f"拾取吸头失败: {e}") + return False + + async def drop_tip(self, location: str = "trash") -> bool: + """丢弃吸头 - 包含真正的Z轴控制""" + try: + # 硬件准备检查 + if not self._check_hardware_ready(): + return False + + if not self.tip_attached: + logger.warning("没有吸头附着,无需丢弃") + return True + + logger.info(f"开始丢弃吸头到 {location}") + + # 确定丢弃位置 + if location == "trash": + # 使用配置中的垃圾桶位置 + drop_x, drop_y, drop_z = self.config.trash_position + else: + # 尝试从deck获取指定位置 + if self.deck is None: + logger.error("工作台未初始化") + return False + + drop_position = self.deck.get_position(location) + if drop_position is None: + logger.error(f"未找到丢弃位置 {location} 的信息") + return False + drop_x, drop_y, drop_z = drop_position + + # 验证丢弃位置的安全性 + safe_z = drop_z + self.config.safe_height + drop_height_z = drop_z + self.config.tip_drop_height + + if not (self._validate_position(drop_x, drop_y, safe_z) and + self._validate_position(drop_x, drop_y, drop_height_z)): + logger.error("枪头丢弃位置超出安全范围") + return False + + if CONTROLLERS_AVAILABLE and self.xyz_controller: + # 真实硬件控制流程 + logger.info("使用真实XYZ控制器进行枪头丢弃") + + try: + # 1. 移动到丢弃位置上方的安全高度 + safe_z = drop_z + self.config.tip_drop_height + logger.info(f"移动到丢弃位置上方: ({drop_x:.2f}, {drop_y:.2f}, {safe_z:.2f})") + move_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + drop_x, drop_y, safe_z + ) + if not move_success: + logger.error("移动到丢弃位置上方失败") + return False + + # 2. Z轴下降到丢弃高度 + logger.info(f"Z轴下降到丢弃高度: {drop_z:.2f}mm") + z_down_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + drop_x, drop_y, drop_z + ) + if not z_down_success: + logger.error("Z轴下降到丢弃位置失败") + return False + + # 3. 执行枪头弹出动作(如果有移液器控制器) + if self.pipette_controller: + try: + # 发送弹出枪头命令 + await asyncio.to_thread(self.pipette_controller.eject_tip) + logger.info("执行枪头弹出命令") + except Exception as e: + logger.warning(f"枪头弹出命令失败: {e}") + + # 4. 等待一小段时间确保枪头完全脱离 + await asyncio.sleep(0.3) + + # 5. Z轴上升到安全高度 + logger.info(f"Z轴上升到安全高度: {safe_z:.2f}mm") + z_up_success = await asyncio.to_thread( + self.xyz_controller.move_to_work_coord, + drop_x, drop_y, safe_z + ) + if not z_up_success: + logger.error("Z轴上升失败") + return False + + # 6. 更新当前位置 + self.current_position = (drop_x, drop_y, safe_z) + + except Exception as drop_error: + logger.error(f"枪头丢弃过程中发生错误: {drop_error}") + # 尝试移动到安全位置 + if self.config.emergency_stop_enabled: + await self.emergency_stop() + await self.move_to_safe_position() + return False + + else: + # 模拟模式 + logger.info("模拟模式:执行枪头丢弃动作") + await asyncio.sleep(0.8) # 模拟整个丢弃过程的时间 + self.current_position = (drop_x, drop_y, drop_z + self.config.tip_drop_height) + + # 7. 标记枪头已脱离,清空体积 + self.tip_attached = False + self.current_volume = 0.0 + logger.info("吸头丢弃成功") + return True + + except Exception as e: + logger.error(f"丢弃吸头失败: {e}") + return False + + async def aspirate(self, volume: float, location: str) -> bool: + """吸取液体""" + try: + if not self.is_connected: + raise LaiYuLiquidError("设备未连接") + + if not self.tip_attached: + raise LaiYuLiquidError("没有吸头附着") + + if volume <= 0 or volume > self.config.max_volume: + raise LaiYuLiquidError(f"体积超出范围: {volume}") + + # 模拟吸取 + await asyncio.sleep(0.3) + self.current_volume += volume + logger.debug(f"从 {location} 吸取 {volume} μL") + return True + + except Exception as e: + logger.error(f"吸取失败: {e}") + return False + + async def dispense(self, volume: float, location: str) -> bool: + """分配液体""" + try: + if not self.is_connected: + raise LaiYuLiquidError("设备未连接") + + if not self.tip_attached: + raise LaiYuLiquidError("没有吸头附着") + + if volume <= 0 or volume > self.current_volume: + raise LaiYuLiquidError(f"分配体积无效: {volume}") + + # 模拟分配 + await asyncio.sleep(0.3) + self.current_volume -= volume + logger.debug(f"向 {location} 分配 {volume} μL") + return True + + except Exception as e: + logger.error(f"分配失败: {e}") + return False + + +class LaiYuLiquid: + """LaiYu_Liquid 主要接口类""" + + def __init__(self, config: Optional[LaiYuLiquidConfig] = None, **kwargs): + # 如果传入了关键字参数,创建配置对象 + if kwargs and config is None: + # 从kwargs中提取配置参数 + config_params = {} + for key, value in kwargs.items(): + if hasattr(LaiYuLiquidConfig, key): + config_params[key] = value + self.config = LaiYuLiquidConfig(**config_params) + else: + self.config = config or LaiYuLiquidConfig() + + # 先创建deck,然后传递给backend + self.deck = LaiYuLiquidDeck(self.config) + self.backend = LaiYuLiquidBackend(self.config, self.deck) + self.is_setup = False + + @property + def current_position(self) -> Tuple[float, float, float]: + """获取当前位置""" + return self.backend.current_position + + @property + def current_volume(self) -> float: + """获取当前体积""" + return self.backend.current_volume + + @property + def is_connected(self) -> bool: + """获取连接状态""" + return self.backend.is_connected + + @property + def is_initialized(self) -> bool: + """获取初始化状态""" + return self.backend.is_initialized + + @property + def tip_attached(self) -> bool: + """获取吸头附着状态""" + return self.backend.tip_attached + + async def setup(self) -> bool: + """设置液体处理器""" + try: + success = await self.backend.setup() + if success: + self.is_setup = True + logger.info("LaiYu_Liquid 设置完成") + return success + except Exception as e: + logger.error(f"LaiYu_Liquid 设置失败: {e}") + return False + + async def stop(self): + """停止液体处理器""" + await self.backend.stop() + self.is_setup = False + + async def transfer(self, source: str, target: str, volume: float, + tip_rack: str = "tip_rack_1", tip_position: int = 0) -> bool: + """液体转移""" + try: + if not self.is_setup: + raise LaiYuLiquidError("设备未设置") + + # 获取源和目标位置 + source_pos = self.deck.get_position(source) + target_pos = self.deck.get_position(target) + tip_pos = self.deck.get_position(tip_rack) + + if not all([source_pos, target_pos, tip_pos]): + raise LaiYuLiquidError("位置信息不完整") + + # 执行转移步骤 + steps = [ + ("移动到吸头架", self.backend.move_to(*tip_pos)), + ("拾取吸头", self.backend.pick_up_tip(tip_rack, tip_position)), + ("移动到源位置", self.backend.move_to(*source_pos)), + ("吸取液体", self.backend.aspirate(volume, source)), + ("移动到目标位置", self.backend.move_to(*target_pos)), + ("分配液体", self.backend.dispense(volume, target)), + ("丢弃吸头", self.backend.drop_tip()) + ] + + for step_name, step_coro in steps: + logger.debug(f"执行步骤: {step_name}") + success = await step_coro + if not success: + raise LaiYuLiquidError(f"步骤失败: {step_name}") + + logger.info(f"液体转移完成: {source} -> {target}, {volume} μL") + return True + + except Exception as e: + logger.error(f"液体转移失败: {e}") + return False + + def add_resource(self, name: str, resource_type: str, position: Tuple[float, float, float]): + """添加资源到工作台""" + if resource_type == "plate": + resource = Plate(name) + elif resource_type == "tip_rack": + resource = TipRack(name) + else: + resource = Resource(name) + + self.deck.add_resource(name, resource, position) + + def get_status(self) -> Dict[str, Any]: + """获取设备状态""" + return { + "connected": self.backend.is_connected, + "setup": self.is_setup, + "current_position": self.backend.current_position, + "tip_attached": self.backend.tip_attached, + "current_volume": self.backend.current_volume, + "resources": self.deck.list_resources() + } + + +def create_quick_setup() -> LaiYuLiquidDeck: + """ + 创建快速设置的LaiYu液体处理工作站 + + Returns: + LaiYuLiquidDeck: 配置好的工作台实例 + """ + # 创建默认配置 + config = LaiYuLiquidConfig() + + # 创建工作台 + deck = LaiYuLiquidDeck(config) + + # 导入资源创建函数 + try: + from .laiyu_liquid_res import ( + create_tip_rack_1000ul, + create_tip_rack_200ul, + create_96_well_plate, + create_waste_container + ) + + # 添加基本资源 + tip_rack_1000 = create_tip_rack_1000ul("tip_rack_1000") + tip_rack_200 = create_tip_rack_200ul("tip_rack_200") + plate_96 = create_96_well_plate("plate_96") + waste = create_waste_container("waste") + + # 添加到工作台 + deck.add_resource("tip_rack_1000", tip_rack_1000, (50, 50, 0)) + deck.add_resource("tip_rack_200", tip_rack_200, (150, 50, 0)) + deck.add_resource("plate_96", plate_96, (250, 50, 0)) + deck.add_resource("waste", waste, (50, 150, 0)) + + except ImportError: + # 如果资源模块不可用,创建空的工作台 + logger.warning("资源模块不可用,创建空的工作台") + + return deck + + +__all__ = [ + "LaiYuLiquid", + "LaiYuLiquidBackend", + "LaiYuLiquidConfig", + "LaiYuLiquidDeck", + "LaiYuLiquidContainer", + "LaiYuLiquidTipRack", + "LaiYuLiquidError", + "create_quick_setup", + "get_module_info" +] \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/core/laiyu_liquid_res.py b/unilabos/devices/laiyu_liquid/core/laiyu_liquid_res.py new file mode 100644 index 00000000..f6adcb13 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/core/laiyu_liquid_res.py @@ -0,0 +1,954 @@ +""" +LaiYu_Liquid 资源定义模块 + +该模块提供了 LaiYu_Liquid 工作站专用的资源定义函数,包括: +- 各种规格的枪头架 +- 不同类型的板和容器 +- 特殊功能位置 +- 资源创建的便捷函数 + +所有资源都基于 deck.json 中的配置参数创建。 +""" + +import json +import os +from typing import Dict, List, Optional, Tuple, Any +from pathlib import Path + +# PyLabRobot 资源导入 +try: + from pylabrobot.resources import ( + Resource, Deck, Plate, TipRack, Container, Tip, + Coordinate + ) + from pylabrobot.resources.tip_rack import TipSpot + from pylabrobot.resources.well import Well as PlateWell + PYLABROBOT_AVAILABLE = True +except ImportError: + # 如果 PyLabRobot 不可用,创建模拟类 + PYLABROBOT_AVAILABLE = False + + class Resource: + def __init__(self, name: str): + self.name = name + + class Deck(Resource): + pass + + class Plate(Resource): + pass + + class TipRack(Resource): + pass + + class Container(Resource): + pass + + class Tip(Resource): + pass + + class TipSpot(Resource): + def __init__(self, name: str, **kwargs): + super().__init__(name) + # 忽略其他参数 + + class PlateWell(Resource): + pass + + class Coordinate: + def __init__(self, x: float, y: float, z: float): + self.x = x + self.y = y + self.z = z + +# 本地导入 +from .laiyu_liquid_main import LaiYuLiquidDeck, LaiYuLiquidContainer, LaiYuLiquidTipRack + + +def load_deck_config() -> Dict[str, Any]: + """ + 加载工作台配置文件 + + Returns: + Dict[str, Any]: 配置字典 + """ + # 优先使用最新的deckconfig.json文件 + config_path = Path(__file__).parent / "controllers" / "deckconfig.json" + + # 如果最新配置文件不存在,回退到旧配置文件 + if not config_path.exists(): + config_path = Path(__file__).parent / "config" / "deck.json" + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except FileNotFoundError: + # 如果找不到配置文件,返回默认配置 + return { + "name": "LaiYu_Liquid_Deck", + "size_x": 340.0, + "size_y": 250.0, + "size_z": 160.0 + } + + +# 加载配置 +DECK_CONFIG = load_deck_config() + + +class LaiYuTipRack1000(LaiYuLiquidTipRack): + """1000μL 枪头架""" + + def __init__(self, name: str): + """ + 初始化1000μL枪头架 + + Args: + name: 枪头架名称 + """ + super().__init__( + name=name, + size_x=127.76, + size_y=85.48, + size_z=30.0, + tip_count=96, + tip_volume=1000.0 + ) + + # 创建枪头位置 + self._create_tip_spots( + tip_count=96, + tip_spacing=9.0, + tip_type="1000ul" + ) + + def _create_tip_spots(self, tip_count: int, tip_spacing: float, tip_type: str): + """ + 创建枪头位置 - 从配置文件中读取绝对坐标 + + Args: + tip_count: 枪头数量 + tip_spacing: 枪头间距 + tip_type: 枪头类型 + """ + # 从配置文件中获取枪头架的孔位信息 + config = DECK_CONFIG + tip_module = None + + # 查找枪头架模块 + for module in config.get("children", []): + if module.get("type") == "tip_rack": + tip_module = module + break + + if not tip_module: + # 如果配置文件中没有找到,使用默认的相对坐标计算 + rows = 8 + cols = 12 + + for row in range(rows): + for col in range(cols): + spot_name = f"{chr(65 + row)}{col + 1:02d}" + x = col * tip_spacing + tip_spacing / 2 + y = row * tip_spacing + tip_spacing / 2 + + # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的Tip需要特定参数 + tip = Tip( + has_filter=False, + total_tip_length=95.0, # 1000ul枪头长度 + maximal_volume=1000.0, # 最大体积 + fitting_depth=8.0 # 安装深度 + ) + else: + # 模拟类只需要name + tip = Tip(name=f"tip_{spot_name}") + + # 创建枪头位置 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的TipSpot需要特定参数 + tip_spot = TipSpot( + name=spot_name, + size_x=9.0, # 枪头位置宽度 + size_y=9.0, # 枪头位置深度 + size_z=95.0, # 枪头位置高度 + make_tip=lambda: tip # 创建枪头的函数 + ) + else: + # 模拟类只需要name + tip_spot = TipSpot(name=spot_name) + + # 将吸头位置分配到吸头架 + self.assign_child_resource( + tip_spot, + location=Coordinate(x, y, 0) + ) + return + + # 使用配置文件中的绝对坐标 + module_position = tip_module.get("position", {"x": 0, "y": 0, "z": 0}) + + for well_config in tip_module.get("wells", []): + spot_name = well_config["id"] + well_pos = well_config["position"] + + # 计算相对于模块的坐标(绝对坐标减去模块位置) + relative_x = well_pos["x"] - module_position["x"] + relative_y = well_pos["y"] - module_position["y"] + relative_z = well_pos["z"] - module_position["z"] + + # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的Tip需要特定参数 + tip = Tip( + has_filter=False, + total_tip_length=95.0, # 1000ul枪头长度 + maximal_volume=1000.0, # 最大体积 + fitting_depth=8.0 # 安装深度 + ) + else: + # 模拟类只需要name + tip = Tip(name=f"tip_{spot_name}") + + # 创建枪头位置 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的TipSpot需要特定参数 + tip_spot = TipSpot( + name=spot_name, + size_x=well_config.get("diameter", 9.0), # 使用配置中的直径 + size_y=well_config.get("diameter", 9.0), + size_z=well_config.get("depth", 95.0), # 使用配置中的深度 + make_tip=lambda: tip # 创建枪头的函数 + ) + else: + # 模拟类只需要name + tip_spot = TipSpot(name=spot_name) + + # 将吸头位置分配到吸头架 + self.assign_child_resource( + tip_spot, + location=Coordinate(relative_x, relative_y, relative_z) + ) + + # 注意:在PyLabRobot中,Tip不是Resource,不需要分配给TipSpot + # TipSpot的make_tip函数会在需要时创建Tip + + +class LaiYuTipRack200(LaiYuLiquidTipRack): + """200μL 枪头架""" + + def __init__(self, name: str): + """ + 初始化200μL枪头架 + + Args: + name: 枪头架名称 + """ + super().__init__( + name=name, + size_x=127.76, + size_y=85.48, + size_z=30.0, + tip_count=96, + tip_volume=200.0 + ) + + # 创建枪头位置 + self._create_tip_spots( + tip_count=96, + tip_spacing=9.0, + tip_type="200ul" + ) + + def _create_tip_spots(self, tip_count: int, tip_spacing: float, tip_type: str): + """ + 创建枪头位置 + + Args: + tip_count: 枪头数量 + tip_spacing: 枪头间距 + tip_type: 枪头类型 + """ + rows = 8 + cols = 12 + + for row in range(rows): + for col in range(cols): + spot_name = f"{chr(65 + row)}{col + 1:02d}" + x = col * tip_spacing + tip_spacing / 2 + y = row * tip_spacing + tip_spacing / 2 + + # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的Tip需要特定参数 + tip = Tip( + has_filter=False, + total_tip_length=72.0, # 200ul枪头长度 + maximal_volume=200.0, # 最大体积 + fitting_depth=8.0 # 安装深度 + ) + else: + # 模拟类只需要name + tip = Tip(name=f"tip_{spot_name}") + + # 创建枪头位置 + if PYLABROBOT_AVAILABLE: + # PyLabRobot的TipSpot需要特定参数 + tip_spot = TipSpot( + name=spot_name, + size_x=9.0, # 枪头位置宽度 + size_y=9.0, # 枪头位置深度 + size_z=72.0, # 枪头位置高度 + make_tip=lambda: tip # 创建枪头的函数 + ) + else: + # 模拟类只需要name + tip_spot = TipSpot(name=spot_name) + + # 将吸头位置分配到吸头架 + self.assign_child_resource( + tip_spot, + location=Coordinate(x, y, 0) + ) + + # 注意:在PyLabRobot中,Tip不是Resource,不需要分配给TipSpot + # TipSpot的make_tip函数会在需要时创建Tip + + +class LaiYu96WellPlate(LaiYuLiquidContainer): + """96孔板""" + + def __init__(self, name: str, lid_height: float = 0.0): + """ + 初始化96孔板 + + Args: + name: 板名称 + lid_height: 盖子高度 + """ + super().__init__( + name=name, + size_x=127.76, + size_y=85.48, + size_z=14.22, + container_type="96_well_plate", + volume=0.0, + max_volume=200.0, + lid_height=lid_height + ) + + # 创建孔位 + self._create_wells( + well_count=96, + well_volume=200.0, + well_spacing=9.0 + ) + + def get_size_z(self) -> float: + """获取孔位深度""" + return 10.0 # 96孔板孔位深度 + + def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): + """ + 创建孔位 - 从配置文件中读取绝对坐标 + + Args: + well_count: 孔位数量 + well_volume: 孔位体积 + well_spacing: 孔位间距 + """ + # 从配置文件中获取96孔板的孔位信息 + config = DECK_CONFIG + plate_module = None + + # 查找96孔板模块 + for module in config.get("children", []): + if module.get("type") == "96_well_plate": + plate_module = module + break + + if not plate_module: + # 如果配置文件中没有找到,使用默认的相对坐标计算 + rows = 8 + cols = 12 + + for row in range(rows): + for col in range(cols): + well_name = f"{chr(65 + row)}{col + 1:02d}" + x = col * well_spacing + well_spacing / 2 + y = row * well_spacing + well_spacing / 2 + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=well_spacing * 0.8, + size_y=well_spacing * 0.8, + size_z=self.get_size_z(), + max_volume=well_volume + ) + + # 添加到板 + self.assign_child_resource( + well, + location=Coordinate(x, y, 0) + ) + return + + # 使用配置文件中的绝对坐标 + module_position = plate_module.get("position", {"x": 0, "y": 0, "z": 0}) + + for well_config in plate_module.get("wells", []): + well_name = well_config["id"] + well_pos = well_config["position"] + + # 计算相对于模块的坐标(绝对坐标减去模块位置) + relative_x = well_pos["x"] - module_position["x"] + relative_y = well_pos["y"] - module_position["y"] + relative_z = well_pos["z"] - module_position["z"] + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=well_config.get("diameter", 8.2) * 0.8, # 使用配置中的直径 + size_y=well_config.get("diameter", 8.2) * 0.8, + size_z=well_config.get("depth", self.get_size_z()), + max_volume=well_config.get("volume", well_volume) + ) + + # 添加到板 + self.assign_child_resource( + well, + location=Coordinate(relative_x, relative_y, relative_z) + ) + + +class LaiYuDeepWellPlate(LaiYuLiquidContainer): + """深孔板""" + + def __init__(self, name: str, lid_height: float = 0.0): + """ + 初始化深孔板 + + Args: + name: 板名称 + lid_height: 盖子高度 + """ + super().__init__( + name=name, + size_x=127.76, + size_y=85.48, + size_z=41.3, + container_type="deep_well_plate", + volume=0.0, + max_volume=2000.0, + lid_height=lid_height + ) + + # 创建孔位 + self._create_wells( + well_count=96, + well_volume=2000.0, + well_spacing=9.0 + ) + + def get_size_z(self) -> float: + """获取孔位深度""" + return 35.0 # 深孔板孔位深度 + + def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): + """ + 创建孔位 - 从配置文件中读取绝对坐标 + + Args: + well_count: 孔位数量 + well_volume: 孔位体积 + well_spacing: 孔位间距 + """ + # 从配置文件中获取深孔板的孔位信息 + config = DECK_CONFIG + plate_module = None + + # 查找深孔板模块(通常是第二个96孔板模块) + plate_modules = [] + for module in config.get("children", []): + if module.get("type") == "96_well_plate": + plate_modules.append(module) + + # 如果有多个96孔板模块,选择第二个作为深孔板 + if len(plate_modules) > 1: + plate_module = plate_modules[1] + elif len(plate_modules) == 1: + plate_module = plate_modules[0] + + if not plate_module: + # 如果配置文件中没有找到,使用默认的相对坐标计算 + rows = 8 + cols = 12 + + for row in range(rows): + for col in range(cols): + well_name = f"{chr(65 + row)}{col + 1:02d}" + x = col * well_spacing + well_spacing / 2 + y = row * well_spacing + well_spacing / 2 + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=well_spacing * 0.8, + size_y=well_spacing * 0.8, + size_z=self.get_size_z(), + max_volume=well_volume + ) + + # 添加到板 + self.assign_child_resource( + well, + location=Coordinate(x, y, 0) + ) + return + + # 使用配置文件中的绝对坐标 + module_position = plate_module.get("position", {"x": 0, "y": 0, "z": 0}) + + for well_config in plate_module.get("wells", []): + well_name = well_config["id"] + well_pos = well_config["position"] + + # 计算相对于模块的坐标(绝对坐标减去模块位置) + relative_x = well_pos["x"] - module_position["x"] + relative_y = well_pos["y"] - module_position["y"] + relative_z = well_pos["z"] - module_position["z"] + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=well_config.get("diameter", 8.2) * 0.8, # 使用配置中的直径 + size_y=well_config.get("diameter", 8.2) * 0.8, + size_z=well_config.get("depth", self.get_size_z()), + max_volume=well_config.get("volume", well_volume) + ) + + # 添加到板 + self.assign_child_resource( + well, + location=Coordinate(relative_x, relative_y, relative_z) + ) + + +class LaiYuWasteContainer(Container): + """废液容器""" + + def __init__(self, name: str): + """ + 初始化废液容器 + + Args: + name: 容器名称 + """ + super().__init__( + name=name, + size_x=100.0, + size_y=100.0, + size_z=50.0, + max_volume=5000.0 + ) + + +class LaiYuWashContainer(Container): + """清洗容器""" + + def __init__(self, name: str): + """ + 初始化清洗容器 + + Args: + name: 容器名称 + """ + super().__init__( + name=name, + size_x=100.0, + size_y=100.0, + size_z=50.0, + max_volume=5000.0 + ) + + +class LaiYuReagentContainer(Container): + """试剂容器""" + + def __init__(self, name: str): + """ + 初始化试剂容器 + + Args: + name: 容器名称 + """ + super().__init__( + name=name, + size_x=50.0, + size_y=50.0, + size_z=100.0, + max_volume=2000.0 + ) + + +class LaiYu8TubeRack(LaiYuLiquidContainer): + """8管试管架""" + + def __init__(self, name: str): + """ + 初始化8管试管架 + + Args: + name: 试管架名称 + """ + super().__init__( + name=name, + size_x=151.0, + size_y=75.0, + size_z=75.0, + container_type="tube_rack", + volume=0.0, + max_volume=77000.0 + ) + + # 创建孔位 + self._create_wells( + well_count=8, + well_volume=77000.0, + well_spacing=35.0 + ) + + def get_size_z(self) -> float: + """获取孔位深度""" + return 117.0 # 试管深度 + + def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): + """ + 创建孔位 - 从配置文件中读取绝对坐标 + + Args: + well_count: 孔位数量 + well_volume: 孔位体积 + well_spacing: 孔位间距 + """ + # 从配置文件中获取8管试管架的孔位信息 + config = DECK_CONFIG + tube_module = None + + # 查找8管试管架模块 + for module in config.get("children", []): + if module.get("type") == "tube_rack": + tube_module = module + break + + if not tube_module: + # 如果配置文件中没有找到,使用默认的相对坐标计算 + rows = 2 + cols = 4 + + for row in range(rows): + for col in range(cols): + well_name = f"{chr(65 + row)}{col + 1}" + x = col * well_spacing + well_spacing / 2 + y = row * well_spacing + well_spacing / 2 + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=29.0, + size_y=29.0, + size_z=self.get_size_z(), + max_volume=well_volume + ) + + # 添加到试管架 + self.assign_child_resource( + well, + location=Coordinate(x, y, 0) + ) + return + + # 使用配置文件中的绝对坐标 + module_position = tube_module.get("position", {"x": 0, "y": 0, "z": 0}) + + for well_config in tube_module.get("wells", []): + well_name = well_config["id"] + well_pos = well_config["position"] + + # 计算相对于模块的坐标(绝对坐标减去模块位置) + relative_x = well_pos["x"] - module_position["x"] + relative_y = well_pos["y"] - module_position["y"] + relative_z = well_pos["z"] - module_position["z"] + + # 创建孔位 + well = PlateWell( + name=well_name, + size_x=well_config.get("diameter", 29.0), + size_y=well_config.get("diameter", 29.0), + size_z=well_config.get("depth", self.get_size_z()), + max_volume=well_config.get("volume", well_volume) + ) + + # 添加到试管架 + self.assign_child_resource( + well, + location=Coordinate(relative_x, relative_y, relative_z) + ) + + +class LaiYuTipDisposal(Resource): + """枪头废料位置""" + + def __init__(self, name: str): + """ + 初始化枪头废料位置 + + Args: + name: 位置名称 + """ + super().__init__( + name=name, + size_x=100.0, + size_y=100.0, + size_z=50.0 + ) + + +class LaiYuMaintenancePosition(Resource): + """维护位置""" + + def __init__(self, name: str): + """ + 初始化维护位置 + + Args: + name: 位置名称 + """ + super().__init__( + name=name, + size_x=50.0, + size_y=50.0, + size_z=100.0 + ) + + +# 资源创建函数 +def create_tip_rack_1000ul(name: str = "tip_rack_1000ul") -> LaiYuTipRack1000: + """ + 创建1000μL枪头架 + + Args: + name: 枪头架名称 + + Returns: + LaiYuTipRack1000: 1000μL枪头架实例 + """ + return LaiYuTipRack1000(name) + + +def create_tip_rack_200ul(name: str = "tip_rack_200ul") -> LaiYuTipRack200: + """ + 创建200μL枪头架 + + Args: + name: 枪头架名称 + + Returns: + LaiYuTipRack200: 200μL枪头架实例 + """ + return LaiYuTipRack200(name) + + +def create_96_well_plate(name: str = "96_well_plate", lid_height: float = 0.0) -> LaiYu96WellPlate: + """ + 创建96孔板 + + Args: + name: 板名称 + lid_height: 盖子高度 + + Returns: + LaiYu96WellPlate: 96孔板实例 + """ + return LaiYu96WellPlate(name, lid_height) + + +def create_deep_well_plate(name: str = "deep_well_plate", lid_height: float = 0.0) -> LaiYuDeepWellPlate: + """ + 创建深孔板 + + Args: + name: 板名称 + lid_height: 盖子高度 + + Returns: + LaiYuDeepWellPlate: 深孔板实例 + """ + return LaiYuDeepWellPlate(name, lid_height) + + +def create_8_tube_rack(name: str = "8_tube_rack") -> LaiYu8TubeRack: + """ + 创建8管试管架 + + Args: + name: 试管架名称 + + Returns: + LaiYu8TubeRack: 8管试管架实例 + """ + return LaiYu8TubeRack(name) + + +def create_waste_container(name: str = "waste_container") -> LaiYuWasteContainer: + """ + 创建废液容器 + + Args: + name: 容器名称 + + Returns: + LaiYuWasteContainer: 废液容器实例 + """ + return LaiYuWasteContainer(name) + + +def create_wash_container(name: str = "wash_container") -> LaiYuWashContainer: + """ + 创建清洗容器 + + Args: + name: 容器名称 + + Returns: + LaiYuWashContainer: 清洗容器实例 + """ + return LaiYuWashContainer(name) + + +def create_reagent_container(name: str = "reagent_container") -> LaiYuReagentContainer: + """ + 创建试剂容器 + + Args: + name: 容器名称 + + Returns: + LaiYuReagentContainer: 试剂容器实例 + """ + return LaiYuReagentContainer(name) + + +def create_tip_disposal(name: str = "tip_disposal") -> LaiYuTipDisposal: + """ + 创建枪头废料位置 + + Args: + name: 位置名称 + + Returns: + LaiYuTipDisposal: 枪头废料位置实例 + """ + return LaiYuTipDisposal(name) + + +def create_maintenance_position(name: str = "maintenance_position") -> LaiYuMaintenancePosition: + """ + 创建维护位置 + + Args: + name: 位置名称 + + Returns: + LaiYuMaintenancePosition: 维护位置实例 + """ + return LaiYuMaintenancePosition(name) + + +def create_standard_deck() -> LaiYuLiquidDeck: + """ + 创建标准工作台配置 + + Returns: + LaiYuLiquidDeck: 配置好的工作台实例 + """ + # 从配置文件创建工作台 + deck = LaiYuLiquidDeck(config=DECK_CONFIG) + + return deck + + +def get_resource_by_name(deck: LaiYuLiquidDeck, name: str) -> Optional[Resource]: + """ + 根据名称获取资源 + + Args: + deck: 工作台实例 + name: 资源名称 + + Returns: + Optional[Resource]: 找到的资源,如果不存在则返回None + """ + for child in deck.children: + if child.name == name: + return child + return None + + +def get_resources_by_type(deck: LaiYuLiquidDeck, resource_type: type) -> List[Resource]: + """ + 根据类型获取资源列表 + + Args: + deck: 工作台实例 + resource_type: 资源类型 + + Returns: + List[Resource]: 匹配类型的资源列表 + """ + return [child for child in deck.children if isinstance(child, resource_type)] + + +def list_all_resources(deck: LaiYuLiquidDeck) -> Dict[str, List[str]]: + """ + 列出所有资源 + + Args: + deck: 工作台实例 + + Returns: + Dict[str, List[str]]: 按类型分组的资源名称字典 + """ + resources = { + "tip_racks": [], + "plates": [], + "containers": [], + "positions": [] + } + + for child in deck.children: + if isinstance(child, (LaiYuTipRack1000, LaiYuTipRack200)): + resources["tip_racks"].append(child.name) + elif isinstance(child, (LaiYu96WellPlate, LaiYuDeepWellPlate)): + resources["plates"].append(child.name) + elif isinstance(child, (LaiYuWasteContainer, LaiYuWashContainer, LaiYuReagentContainer)): + resources["containers"].append(child.name) + elif isinstance(child, (LaiYuTipDisposal, LaiYuMaintenancePosition)): + resources["positions"].append(child.name) + + return resources + + +# 导出的类别名(向后兼容) +TipRack1000ul = LaiYuTipRack1000 +TipRack200ul = LaiYuTipRack200 +Plate96Well = LaiYu96WellPlate +Plate96DeepWell = LaiYuDeepWellPlate +TubeRack8 = LaiYu8TubeRack +WasteContainer = LaiYuWasteContainer +WashContainer = LaiYuWashContainer +ReagentContainer = LaiYuReagentContainer +TipDisposal = LaiYuTipDisposal +MaintenancePosition = LaiYuMaintenancePosition \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/docs/CHANGELOG.md b/unilabos/devices/laiyu_liquid/docs/CHANGELOG.md new file mode 100644 index 00000000..a0f2b632 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/docs/CHANGELOG.md @@ -0,0 +1,69 @@ +# 更新日志 + +本文档记录了 LaiYu_Liquid 模块的所有重要变更。 + +## [1.0.0] - 2024-01-XX + +### 新增功能 +- ✅ 完整的液体处理工作站集成 +- ✅ RS485 通信协议支持 +- ✅ SOPA 气动式移液器驱动 +- ✅ XYZ 三轴步进电机控制 +- ✅ PyLabRobot 兼容后端 +- ✅ 标准化资源管理系统 +- ✅ 96孔板、离心管架、枪头架支持 +- ✅ RViz 可视化后端 +- ✅ 完整的配置管理系统 +- ✅ 抽象协议实现 +- ✅ 生产级错误处理和日志记录 + +### 技术特性 +- **硬件支持**: SOPA移液器 + XYZ三轴运动平台 +- **通信协议**: RS485总线,波特率115200 +- **坐标系统**: 机械坐标与工作坐标自动转换 +- **安全机制**: 限位保护、紧急停止、错误恢复 +- **兼容性**: 完全兼容 PyLabRobot 框架 + +### 文件结构 +``` +LaiYu_Liquid/ +├── core/ +│ └── LaiYu_Liquid.py # 主模块文件 +├── __init__.py # 模块初始化 +├── abstract_protocol.py # 抽象协议 +├── laiyu_liquid_res.py # 资源管理 +├── rviz_backend.py # RViz后端 +├── backend/ # 后端驱动 +├── config/ # 配置文件 +├── controllers/ # 控制器 +├── docs/ # 技术文档 +└── drivers/ # 底层驱动 +``` + +### 已知问题 +- 无 + +### 依赖要求 +- Python 3.8+ +- PyLabRobot +- pyserial +- asyncio + +--- + +## 版本说明 + +### 版本号格式 +采用语义化版本控制 (Semantic Versioning): `MAJOR.MINOR.PATCH` + +- **MAJOR**: 不兼容的API变更 +- **MINOR**: 向后兼容的功能新增 +- **PATCH**: 向后兼容的问题修复 + +### 变更类型 +- **新增功能**: 新的功能特性 +- **变更**: 现有功能的变更 +- **弃用**: 即将移除的功能 +- **移除**: 已移除的功能 +- **修复**: 问题修复 +- **安全**: 安全相关的修复 \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/docs/hardware/SOPA气动式移液器RS485控制指令.md b/unilabos/devices/laiyu_liquid/docs/hardware/SOPA气动式移液器RS485控制指令.md new file mode 100644 index 00000000..6db19eb1 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/docs/hardware/SOPA气动式移液器RS485控制指令.md @@ -0,0 +1,267 @@ +# SOPA气动式移液器RS485控制指令合集 + +## 1. RS485通信基本配置 + +### 1.1 支持的设备型号 +- **仅SC-STxxx-00-13支持RS485通信** +- 其他型号主要使用CAN通信 + +### 1.2 通信参数 +- **波特率**: 9600, 115200(默认值) +- **地址范围**: 1~254个设备,255为广播地址 +- **通信接口**: RS485差分信号 + +### 1.3 引脚分配(10位LIF连接器) +- **引脚7**: RS485+ (RS485通信正极) +- **引脚8**: RS485- (RS485通信负极) + +## 2. RS485通信协议格式 + +### 2.1 发送数据格式 +``` +头码 | 地址 | 命令/数据 | 尾码 | 校验和 +``` + +### 2.2 从机回应格式 +``` +头码 | 地址 | 数据(固定9字节) | 尾码 | 校验和 +``` + +### 2.3 格式详细说明 +- **头码**: + - 终端调试: '/' (0x2F) + - OEM通信: '[' (0x5B) +- **地址**: 设备节点地址,1~254,多字节ASCII(注意:地址不可为47,69,91) +- **命令/数据**: ASCII格式的命令字符串 +- **尾码**: 'E' (0x45) +- **校验和**: 以上数据的累加值,1字节 + +## 3. 初始化和基本控制指令 + +### 3.1 初始化指令 +```bash +# 初始化活塞驱动机构 +HE + +# 示例(OEM通信): +# 主机发送: 5B 32 48 45 1A +# 从机回应开始: 2F 02 06 0A 30 00 00 00 00 00 00 45 B6 +# 从机回应完成: 2F 02 06 00 30 00 00 00 00 00 00 45 AC +``` + +### 3.2 枪头操作指令 +```bash +# 顶出枪头 +RE + +# 枪头检测状态报告 +Q28 # 返回枪头存在状态(0=不存在,1=存在) +``` + +## 4. 移液控制指令 + +### 4.1 位置控制指令 +```bash +# 绝对位置移动(微升) +A[n]E +# 示例:移动到位置0 +A0E + +# 相对抽吸(向上移动) +P[n]E +# 示例:抽吸200微升 +P200E + +# 相对分配(向下移动) +D[n]E +# 示例:分配200微升 +D200E +``` + +### 4.2 速度设置指令 +```bash +# 设置最高速度(0.1ul/秒为单位) +s[n]E +# 示例:设置最高速度为2000(200ul/秒) +s2000E + +# 设置启动速度 +b[n]E +# 示例:设置启动速度为100(10ul/秒) +b100E + +# 设置断流速度 +c[n]E +# 示例:设置断流速度为100(10ul/秒) +c100E + +# 设置加速度 +a[n]E +# 示例:设置加速度为30000 +a30000E +``` + +## 5. 液体检测和安全控制指令 + +### 5.1 吸排液检测控制 +```bash +# 开启吸排液检测 +f1E # 开启 +f0E # 关闭 + +# 设置空吸门限 +$[n]E +# 示例:设置空吸门限为4 +$4E + +# 设置泡沫门限 +![n]E +# 示例:设置泡沫门限为20 +!20E + +# 设置堵塞门限 +%[n]E +# 示例:设置堵塞门限为350 +%350E +``` + +### 5.2 液位检测指令 +```bash +# 压力式液位检测 +m0E # 设置为压力探测模式 +L[n]E # 执行液位检测,[n]为灵敏度(3~40) +k[n]E # 设置检测速度(100~2000) + +# 电容式液位检测 +m1E # 设置为电容探测模式 +``` + +## 6. 状态查询和报告指令 + +### 6.1 基本状态查询 +```bash +# 查询固件版本 +V + +# 查询设备状态 +Q[n] +# 常用查询参数: +Q01 # 报告加速度 +Q02 # 报告启动速度 +Q03 # 报告断流速度 +Q06 # 报告最大速度 +Q08 # 报告节点地址 +Q11 # 报告波特率 +Q18 # 报告当前位置 +Q28 # 报告枪头存在状态 +Q29 # 报告校准系数 +Q30 # 报告空吸门限 +Q31 # 报告堵针门限 +Q32 # 报告泡沫门限 +``` + +## 7. 配置和校准指令 + +### 7.1 校准参数设置 +```bash +# 设置校准系数 +j[n]E +# 示例:设置校准系数为1.04 +j1.04E + +# 设置补偿偏差 +e[n]E +# 示例:设置补偿偏差为2.03 +e2.03E + +# 设置吸头容量 +C[n]E +# 示例:设置1000ul吸头 +C1000E +``` + +### 7.2 高级控制参数 +```bash +# 设置回吸粘度 +][n]E +# 示例:设置回吸粘度为30 +]30E + +# 延时控制 +M[n]E +# 示例:延时1000毫秒 +M1000E +``` + +## 8. 复合操作指令示例 + +### 8.1 标准移液操作 +```bash +# 完整的200ul移液操作 +a30000b200c200s2000P200E +# 解析:设置加速度30000 + 启动速度200 + 断流速度200 + 最高速度2000 + 抽吸200ul + 执行 +``` + +### 8.2 带检测的移液操作 +```bash +# 带空吸检测的200ul抽吸 +a30000b200c200s2000f1P200f0E +# 解析:设置参数 + 开启检测 + 抽吸200ul + 关闭检测 + 执行 +``` + +### 8.3 液面检测操作 +```bash +# 压力式液面检测 +m0k200L5E +# 解析:压力模式 + 检测速度200 + 灵敏度5 + 执行检测 + +# 电容式液面检测 +m1L3E +# 解析:电容模式 + 灵敏度3 + 执行检测 +``` + +## 9. 错误处理 + +### 9.1 状态字节说明 +- **00h**: 无错误 +- **01h**: 上次动作未完成 +- **02h**: 设备未初始化 +- **03h**: 设备过载 +- **04h**: 无效指令 +- **05h**: 液位探测故障 +- **0Dh**: 空吸 +- **0Eh**: 堵针 +- **10h**: 泡沫 +- **11h**: 吸液超过吸头容量 + +### 9.2 错误查询 +```bash +# 查询当前错误状态 +Q # 返回状态字节和错误代码 +``` + +## 10. 通信示例 + +### 10.1 基本通信流程 +1. **执行命令**: 主机发送命令 → 从机确认 → 从机执行 → 从机回应完成 +2. **读取数据**: 主机发送查询 → 从机确认 → 从机返回数据 + +### 10.2 快速指令表 +| 操作 | 指令 | 说明 | +|------|------|------| +| 初始化 | `HE` | 初始化设备 | +| 退枪头 | `RE` | 顶出枪头 | +| 吸液200ul | `a30000b200c200s2000P200E` | 基本吸液 | +| 带检测吸液 | `a30000b200c200s2000f1P200f0E` | 开启空吸检测 | +| 吐液200ul | `a300000b500c500s6000D200E` | 基本分配 | +| 压力液面检测 | `m0k200L5E` | pLLD检测 | +| 电容液面检测 | `m1L3E` | cLLD检测 | + +## 11. 注意事项 + +1. **地址限制**: RS485地址不可设为47、69、91 +2. **校验和**: 终端调试时不关心校验和,OEM通信需要校验 +3. **ASCII格式**: 所有命令和参数都使用ASCII字符 +4. **执行指令**: 大部分命令需要以'E'结尾才能执行 +5. **设备支持**: 只有SC-STxxx-00-13型号支持RS485通信 +6. **波特率设置**: 默认115200,可设置为9600 \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/docs/hardware/步进电机控制指令.md b/unilabos/devices/laiyu_liquid/docs/hardware/步进电机控制指令.md new file mode 100644 index 00000000..e7013484 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/docs/hardware/步进电机控制指令.md @@ -0,0 +1,162 @@ +# 步进电机B系列控制指令详解 + +## 基本通信参数 +- **通信方式**: RS485 +- **协议**: Modbus +- **波特率**: 115200 (默认) +- **数据位**: 8位 +- **停止位**: 1位 +- **校验位**: 无 +- **默认站号**: 1 (可设置1-254) + +## 支持的功能码 +- **03H**: 读取寄存器 +- **06H**: 写入单个寄存器 +- **10H**: 写入多个寄存器 + +## 寄存器地址表 + +### 状态监控寄存器 (只读) +| 地址 | 功能码 | 内容 | 说明 | +|------|--------|------|------| +| 00H | 03H | 电机状态 | 0000H-待机/到位, 0001H-运行中, 0002H-碰撞停, 0003H-正光电停, 0004H-反光电停 | +| 01H | 03H | 实际步数高位 | 当前电机位置的高16位 | +| 02H | 03H | 实际步数低位 | 当前电机位置的低16位 | +| 03H | 03H | 实际速度 | 当前转速 (rpm) | +| 05H | 03H | 电流 | 当前工作电流 (mA) | + +### 控制寄存器 (读写) +| 地址 | 功能码 | 内容 | 说明 | +|------|--------|------|------| +| 04H | 03H/06H/10H | 急停指令 | 紧急停止控制 | +| 06H | 03H/06H/10H | 失能控制 | 1-使能, 0-失能 | +| 07H | 03H/06H/10H | PWM输出 | 0-1000对应0%-100%占空比 | +| 0EH | 03H/06H/10H | 单圈绝对值归零 | 归零指令 | +| 0FH | 03H/06H/10H | 归零指令 | 定点模式归零速度设置 | + +### 位置模式寄存器 +| 地址 | 功能码 | 内容 | 说明 | +|------|--------|------|------| +| 10H | 03H/06H/10H | 目标步数高位 | 目标位置高16位 | +| 11H | 03H/06H/10H | 目标步数低位 | 目标位置低16位 | +| 12H | 03H/06H/10H | 保留 | - | +| 13H | 03H/06H/10H | 速度 | 运行速度 (rpm) | +| 14H | 03H/06H/10H | 加速度 | 0-60000 rpm/s | +| 15H | 03H/06H/10H | 精度 | 到位精度设置 | + +### 速度模式寄存器 +| 地址 | 功能码 | 内容 | 说明 | +|------|--------|------|------| +| 60H | 03H/06H/10H | 保留 | - | +| 61H | 03H/06H/10H | 速度 | 正值正转,负值反转 | +| 62H | 03H/06H/10H | 加速度 | 0-60000 rpm/s | + +### 设备参数寄存器 +| 地址 | 功能码 | 内容 | 默认值 | 说明 | +|------|--------|------|--------|------| +| E0H | 03H/06H/10H | 设备地址 | 0001H | Modbus从站地址 | +| E1H | 03H/06H/10H | 堵转电流 | 0BB8H | 堵转检测电流阈值 | +| E2H | 03H/06H/10H | 保留 | 0258H | - | +| E3H | 03H/06H/10H | 每圈步数 | 0640H | 细分设置 | +| E4H | 03H/06H/10H | 限位开关使能 | F000H | 1-使能, 0-禁用 | +| E5H | 03H/06H/10H | 堵转逻辑 | 0000H | 00-断电, 01-对抗 | +| E6H | 03H/06H/10H | 堵转时间 | 0000H | 堵转检测时间(ms) | +| E7H | 03H/06H/10H | 默认速度 | 1388H | 上电默认速度 | +| E8H | 03H/06H/10H | 默认加速度 | EA60H | 上电默认加速度 | +| E9H | 03H/06H/10H | 默认精度 | 0064H | 上电默认精度 | +| EAH | 03H/06H/10H | 波特率高位 | 0001H | 通信波特率设置 | +| EBH | 03H/06H/10H | 波特率低位 | C200H | 115200对应01C200H | + +### 版本信息寄存器 (只读) +| 地址 | 功能码 | 内容 | 说明 | +|------|--------|------|------| +| F0H | 03H | 版本号 | 固件版本信息 | +| F1H-F4H | 03H | 型号 | 产品型号信息 | + +## 常用控制指令示例 + +### 读取电机状态 +``` +发送: 01 03 00 00 00 01 84 0A +接收: 01 03 02 00 01 79 84 +说明: 电机状态为0001H (正在运行) +``` + +### 读取当前位置 +``` +发送: 01 03 00 01 00 02 95 CB +接收: 01 03 04 00 19 00 00 2B F4 +说明: 当前位置为1638400步 (100圈) +``` + +### 停止电机 +``` +发送: 01 10 00 04 00 01 02 00 00 A7 D4 +接收: 01 10 00 04 00 01 40 08 +说明: 急停指令 +``` + +### 位置模式运动 +``` +发送: 01 10 00 10 00 06 0C 00 19 00 00 00 00 13 88 00 00 00 00 9F FB +接收: 01 10 00 10 00 06 41 CE +说明: 以5000rpm速度运动到1638400步位置 +``` + +### 速度模式 - 正转 +``` +发送: 01 10 00 60 00 04 08 00 00 13 88 00 FA 00 00 F4 77 +接收: 01 10 00 60 00 04 C1 D4 +说明: 以5000rpm速度正转 +``` + +### 速度模式 - 反转 +``` +发送: 01 10 00 60 00 04 08 00 00 EC 78 00 FA 00 00 A0 6D +接收: 01 10 00 60 00 04 C1 D4 +说明: 以5000rpm速度反转 (EC78H = -5000) +``` + +### 设置设备地址 +``` +发送: 00 06 00 E0 00 02 C9 F1 +接收: 00 06 00 E0 00 02 C9 F1 +说明: 将设备地址设置为2 +``` + +## 错误码 +| 状态码 | 含义 | +|--------|------| +| 0001H | 功能码错误 | +| 0002H | 地址错误 | +| 0003H | 长度错误 | + +## CRC校验算法 +```c +public static byte[] ModBusCRC(byte[] data, int offset, int cnt) { + int wCrc = 0x0000FFFF; + byte[] CRC = new byte[2]; + for (int i = 0; i < cnt; i++) { + wCrc ^= ((data[i + offset]) & 0xFF); + for (int j = 0; j < 8; j++) { + if ((wCrc & 0x00000001) == 1) { + wCrc >>= 1; + wCrc ^= 0x0000A001; + } else { + wCrc >>= 1; + } + } + } + CRC[1] = (byte) ((wCrc & 0x0000FF00) >> 8); + CRC[0] = (byte) (wCrc & 0x000000FF); + return CRC; +} +``` + +## 注意事项 +1. 所有16位数据采用大端序传输 +2. 步数计算: 实际步数 = 高位<<16 | 低位 +3. 负数使用补码表示 +4. PWM输出K脚: 0%开漏, 100%接地, 其他输出1KHz PWM +5. 光电开关需使用NPN开漏型 +6. 限位开关: LF正向, LB反向 \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/docs/hardware/硬件连接配置指南.md b/unilabos/devices/laiyu_liquid/docs/hardware/硬件连接配置指南.md new file mode 100644 index 00000000..64529097 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/docs/hardware/硬件连接配置指南.md @@ -0,0 +1,1281 @@ +# LaiYu液体处理设备硬件连接配置指南 + +## 📋 文档概述 + +本指南提供LaiYu液体处理设备的完整硬件连接配置方案,包括快速入门、详细配置、连接验证和故障排除。适用于设备初次安装、配置变更和问题诊断。 + +--- + +## 🚀 快速入门指南 + +### 基本配置步骤 + +1. **确认硬件连接** + - 将RS485转USB设备连接到计算机 + - 确保XYZ控制器和移液器通过RS485总线连接 + - 检查设备供电状态 + +2. **获取串口信息** + ```bash + # macOS/Linux + ls /dev/cu.* | grep usbserial + + # 常见输出: /dev/cu.usbserial-3130 + ``` + +3. **基本配置参数** + ```python + # 推荐的默认配置 + config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", # 🔧 替换为实际串口号 + address=4, # 移液器地址(固定) + baudrate=115200, # 推荐波特率 + timeout=5.0 # 通信超时 + ) + ``` + +4. **快速连接测试** + ```python + device = LaiYuLiquid(config) + success = await device.setup() + print(f"连接状态: {'成功' if success else '失败'}") + ``` + +--- + +## 🏗️ 硬件架构详解 + +### 系统组成 + +LaiYu液体处理设备采用RS485总线架构,包含以下核心组件: + +| 组件 | 通信协议 | 设备地址 | 默认波特率 | 功能描述 | +|------|----------|----------|------------|----------| +| **XYZ三轴控制器** | RS485 (Modbus) | X轴=1, Y轴=2, Z轴=3 | 115200 | 三维运动控制 | +| **SOPA移液器** | RS485 | 4 (推荐) | 115200 | 液体吸取分配 | +| **RS485转USB** | USB/串口 | - | 115200 | 通信接口转换 | + +### 地址分配策略 + +``` +RS485总线地址分配: +├── 地址 1: X轴步进电机 (自动分配) +├── 地址 2: Y轴步进电机 (自动分配) +├── 地址 3: Z轴步进电机 (自动分配) +├── 地址 4: SOPA移液器 (推荐配置) +└── 禁用地址: 47('/'), 69('E'), 91('[') +``` + +### 通信参数规范 + +| 参数 | XYZ控制器 | SOPA移液器 | 说明 | +|------|-----------|------------|------| +| **数据位** | 8 | 8 | 固定值 | +| **停止位** | 1 | 1 | 固定值 | +| **校验位** | 无 | 无 | 固定值 | +| **流控制** | 无 | 无 | 固定值 | + +--- + +## ⚙️ 配置参数详解 + +### 1. 核心配置类 + +#### LaiYuLiquidConfig 参数说明 + +```python +@dataclass +class LaiYuLiquidConfig: + # === 通信参数 === + port: str = "/dev/cu.usbserial-3130" # 串口设备路径 + address: int = 4 # 移液器地址(推荐值) + baudrate: int = 115200 # 通信波特率(推荐值) + timeout: float = 5.0 # 通信超时时间(秒) + + # === 工作台物理尺寸 === + deck_width: float = 340.0 # 工作台宽度 (mm) + deck_height: float = 250.0 # 工作台高度 (mm) + deck_depth: float = 160.0 # 工作台深度 (mm) + + # === 运动控制参数 === + max_speed: float = 100.0 # 最大移动速度 (mm/s) + acceleration: float = 50.0 # 加速度 (mm/s²) + safe_height: float = 50.0 # 安全移动高度 (mm) + + # === 移液参数 === + max_volume: float = 1000.0 # 最大移液体积 (μL) + min_volume: float = 0.1 # 最小移液体积 (μL) + liquid_detection: bool = True # 启用液面检测 + + # === 枪头操作参数 === + tip_pickup_speed: int = 30 # 取枪头速度 (rpm) + tip_pickup_acceleration: int = 500 # 取枪头加速度 (rpm/s) + tip_pickup_depth: float = 10.0 # 枪头插入深度 (mm) + tip_drop_height: float = 10.0 # 丢弃枪头高度 (mm) +``` + +### 2. 配置文件位置 + +#### A. 代码配置(推荐) +```python +# 在Python代码中直接配置 +from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig + +config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", # 🔧 修改为实际串口 + address=4, # 🔧 移液器地址 + baudrate=115200, # 🔧 通信波特率 + timeout=5.0 # 🔧 超时时间 +) +``` + +#### B. JSON配置文件 +```json +{ + "laiyu_liquid_config": { + "port": "/dev/cu.usbserial-3130", + "address": 4, + "baudrate": 115200, + "timeout": 5.0, + "deck_width": 340.0, + "deck_height": 250.0, + "deck_depth": 160.0, + "max_speed": 100.0, + "acceleration": 50.0, + "safe_height": 50.0 + } +} +``` + +#### C. 实验协议配置 +```json +// test/experiments/laiyu_liquid.json +{ + "device_config": { + "type": "laiyu_liquid", + "config": { + "port": "/dev/cu.usbserial-3130", + "address": 4, + "baudrate": 115200 + } + } +} +``` + +### 2. 串口设备识别 + +#### 自动识别方法(推荐) + +```python +import serial.tools.list_ports + +def find_laiyu_device(): + """自动查找LaiYu设备串口""" + ports = serial.tools.list_ports.comports() + + for port in ports: + # 根据设备描述或VID/PID识别 + if 'usbserial' in port.device.lower(): + print(f"找到可能的设备: {port.device}") + print(f"描述: {port.description}") + print(f"硬件ID: {port.hwid}") + return port.device + + return None + +# 使用示例 +device_port = find_laiyu_device() +if device_port: + print(f"检测到设备端口: {device_port}") +else: + print("未检测到设备") +``` + +#### 手动识别方法 + +| 操作系统 | 命令 | 设备路径格式 | +|---------|------|-------------| +| **macOS** | `ls /dev/cu.*` | `/dev/cu.usbserial-XXXX` | +| **Linux** | `ls /dev/ttyUSB*` | `/dev/ttyUSB0` | +| **Windows** | 设备管理器 | `COM3`, `COM4` 等 | + +#### macOS 详细识别 +```bash +# 1. 列出所有USB串口设备 +ls /dev/cu.usbserial-* + +# 2. 查看USB设备详细信息 +system_profiler SPUSBDataType | grep -A 10 "Serial" + +# 3. 实时监控设备插拔 +ls /dev/cu.* && echo "--- 请插入设备 ---" && sleep 3 && ls /dev/cu.* +``` + +#### Linux 详细识别 +```bash +# 1. 列出串口设备 +ls /dev/ttyUSB* /dev/ttyACM* + +# 2. 查看设备信息 +dmesg | grep -i "usb.*serial" +lsusb | grep -i "serial\|converter" + +# 3. 查看设备属性 +udevadm info --name=/dev/ttyUSB0 --attribute-walk +``` + +#### Windows 详细识别 +```powershell +# PowerShell命令 +Get-WmiObject -Class Win32_SerialPort | Select-Object Name, DeviceID, Description + +# 或在设备管理器中查看"端口(COM和LPT)" +``` + +### 3. 控制器特定配置 + +#### XYZ步进电机控制器 +- **地址范围**: 1-3 (X轴=1, Y轴=2, Z轴=3) +- **通信协议**: Modbus RTU +- **波特率**: 9600 或 115200 +- **数据位**: 8 +- **停止位**: 1 +- **校验位**: None + +#### XYZ控制器配置 (`controllers/xyz_controller.py`) + +XYZ控制器负责三轴运动控制,提供精确的位置控制和运动规划功能。 + +**主要功能:** +- 三轴独立控制(X、Y、Z轴) +- 位置精度控制 +- 运动速度调节 +- 安全限位检测 + +**配置参数:** +```python +xyz_config = { + "port": "/dev/ttyUSB0", # 串口设备 + "baudrate": 115200, # 波特率 + "timeout": 1.0, # 通信超时 + "max_speed": { # 最大速度限制 + "x": 1000, # X轴最大速度 + "y": 1000, # Y轴最大速度 + "z": 500 # Z轴最大速度 + }, + "acceleration": 500, # 加速度 + "home_position": [0, 0, 0] # 原点位置 +} +``` + +```python +def __init__(self, port: str, baudrate: int = 115200, + machine_config: Optional[MachineConfig] = None, + config_file: str = "machine_config.json", + auto_connect: bool = True): + """ + Args: + port: 串口端口 (如: "/dev/cu.usbserial-3130") + baudrate: 波特率 (默认: 115200) + machine_config: 机械配置参数 + config_file: 配置文件路径 + auto_connect: 是否自动连接 + """ +``` + +#### SOPA移液器 +- **地址**: 通常为 4 或更高 +- **通信协议**: 自定义协议 +- **波特率**: 115200 (推荐) +- **响应时间**: < 100ms + +#### 移液器控制器配置 (`controllers/pipette_controller.py`) + +移液器控制器负责精确的液体吸取和分配操作,支持多种移液模式和参数配置。 + +**主要功能:** +- 精确体积控制 +- 液面检测 +- 枪头管理 +- 速度调节 + +**配置参数:** +```python +@dataclass +class SOPAConfig: + # 通信参数 + port: str = "/dev/ttyUSB0" # 🔧 修改串口号 + baudrate: int = 115200 # 🔧 修改波特率 + address: int = 1 # 🔧 修改设备地址 (1-254) + timeout: float = 5.0 # 🔧 修改超时时间 + comm_type: CommunicationType = CommunicationType.TERMINAL_DEBUG +``` + +## 🔍 连接验证与测试 + +### 1. 编程方式验证连接 + +#### 创建测试脚本 +```python +#!/usr/bin/env python3 +""" +LaiYu液体处理设备连接测试脚本 +""" + +import sys +import os +sys.path.append('/Users/dp/Documents/DPT/HuaiRou/Uni-Lab-OS') + +from unilabos.devices.laiyu_liquid.core.LaiYu_Liquid import ( + LaiYuLiquid, LaiYuLiquidConfig +) + +def test_connection(): + """测试设备连接""" + + # 🔧 修改这里的配置参数 + config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", # 修改为你的串口号 + address=1, # 修改为你的设备地址 + baudrate=9600, # 修改为你的波特率 + timeout=5.0 + ) + + print("🔌 正在测试LaiYu液体处理设备连接...") + print(f"串口: {config.port}") + print(f"波特率: {config.baudrate}") + print(f"设备地址: {config.address}") + print("-" * 50) + + try: + # 创建设备实例 + device = LaiYuLiquid(config) + + # 尝试连接和初始化 + print("📡 正在连接设备...") + success = await device.setup() + + if success: + print("✅ 设备连接成功!") + print(f"连接状态: {device.is_connected}") + print(f"初始化状态: {device.is_initialized}") + print(f"当前位置: {device.current_position}") + + # 获取设备状态 + status = device.get_status() + print("\n📊 设备状态:") + for key, value in status.items(): + print(f" {key}: {value}") + + else: + print("❌ 设备连接失败!") + print("请检查:") + print(" 1. 串口号是否正确") + print(" 2. 设备是否已连接并通电") + print(" 3. 波特率和设备地址是否匹配") + print(" 4. 串口是否被其他程序占用") + + except Exception as e: + print(f"❌ 连接测试出错: {e}") + print("\n🔧 故障排除建议:") + print(" 1. 检查串口设备是否存在:") + print(" macOS: ls /dev/cu.*") + print(" Linux: ls /dev/ttyUSB* /dev/ttyACM*") + print(" 2. 检查设备权限:") + print(" sudo chmod 666 /dev/cu.usbserial-*") + print(" 3. 检查设备是否被占用:") + print(" lsof | grep /dev/cu.usbserial") + + finally: + # 清理连接 + if 'device' in locals(): + await device.stop() + +if __name__ == "__main__": + import asyncio + asyncio.run(test_connection()) +``` + +### 2. 命令行验证工具 + +#### 串口通信测试 +```bash +# 安装串口调试工具 +pip install pyserial + +# 使用Python测试串口 +python -c " +import serial +try: + ser = serial.Serial('/dev/cu.usbserial-3130', 9600, timeout=1) + print('串口连接成功:', ser.is_open) + ser.close() +except Exception as e: + print('串口连接失败:', e) +" +``` + +#### 设备权限检查 +```bash +# macOS/Linux 检查串口权限 +ls -la /dev/cu.usbserial-* + +# 如果权限不足,修改权限 +sudo chmod 666 /dev/cu.usbserial-* + +# 检查串口是否被占用 +lsof | grep /dev/cu.usbserial +``` + +### 3. 连接状态指示器 + +设备提供多种方式检查连接状态: + +#### A. 属性检查 +```python +device = LaiYuLiquid(config) + +# 检查连接状态 +print(f"设备已连接: {device.is_connected}") +print(f"设备已初始化: {device.is_initialized}") +print(f"枪头已安装: {device.tip_attached}") +print(f"当前位置: {device.current_position}") +print(f"当前体积: {device.current_volume}") +``` + +#### B. 状态字典 +```python +status = device.get_status() +print("完整设备状态:", status) + +# 输出示例: +# { +# 'connected': True, +# 'initialized': True, +# 'position': (0.0, 0.0, 50.0), +# 'tip_attached': False, +# 'current_volume': 0.0, +# 'last_error': None +# } +``` + +## 🛠️ 故障排除指南 + +### 1. 连接问题诊断 + +#### 🔍 问题诊断流程 +```python +def diagnose_connection_issues(): + """连接问题诊断工具""" + import serial.tools.list_ports + import serial + + print("🔍 开始连接问题诊断...") + + # 1. 检查串口设备 + ports = list(serial.tools.list_ports.comports()) + if not ports: + print("❌ 未检测到任何串口设备") + print("💡 解决方案:") + print(" - 检查USB连接线") + print(" - 确认设备电源") + print(" - 安装设备驱动") + return + + print(f"✅ 检测到 {len(ports)} 个串口设备") + for port in ports: + print(f" 📍 {port.device}: {port.description}") + + # 2. 测试串口访问权限 + for port in ports: + try: + with serial.Serial(port.device, 9600, timeout=1): + print(f"✅ {port.device}: 访问权限正常") + except PermissionError: + print(f"❌ {port.device}: 权限不足") + print("💡 解决方案: sudo chmod 666 " + port.device) + except Exception as e: + print(f"⚠️ {port.device}: {e}") + +# 运行诊断 +diagnose_connection_issues() +``` + +#### 🚫 常见连接错误 + +| 错误类型 | 症状 | 解决方案 | +|---------|------|----------| +| **设备未找到** | `FileNotFoundError: No such file or directory` | 1. 检查USB连接
2. 确认设备驱动
3. 重新插拔设备 | +| **权限不足** | `PermissionError: Permission denied` | 1. `sudo chmod 666 /dev/ttyUSB0`
2. 添加用户到dialout组
3. 使用sudo运行 | +| **设备占用** | `SerialException: Device or resource busy` | 1. 关闭其他程序
2. `lsof /dev/ttyUSB0`查找占用
3. 重启系统 | +| **驱动问题** | 设备管理器显示未知设备 | 1. 安装CH340/CP210x驱动
2. 更新系统驱动
3. 使用原装USB线 | + +### 2. 通信问题解决 + +#### 📡 通信参数调试 +```python +def test_communication_parameters(): + """测试不同通信参数""" + import serial + + port = "/dev/cu.usbserial-3130" # 修改为实际端口 + baudrates = [9600, 19200, 38400, 57600, 115200] + + for baudrate in baudrates: + print(f"🔄 测试波特率: {baudrate}") + try: + with serial.Serial(port, baudrate, timeout=2) as ser: + # 发送测试命令 + test_cmd = b'\x01\x03\x00\x00\x00\x01\x84\x0A' + ser.write(test_cmd) + + response = ser.read(100) + if response: + print(f" ✅ 成功: 收到 {len(response)} 字节") + print(f" 📦 数据: {response.hex()}") + return baudrate + else: + print(f" ❌ 无响应") + except Exception as e: + print(f" ❌ 错误: {e}") + + return None +``` + +#### ⚡ 通信故障排除 + +| 问题类型 | 症状 | 诊断方法 | 解决方案 | +|---------|------|----------|----------| +| **通信超时** | `TimeoutError` | 检查波特率和设备地址 | 1. 调整超时时间
2. 验证波特率
3. 检查设备地址 | +| **数据校验错误** | `CRCError` | 检查数据完整性 | 1. 更换USB线
2. 降低波特率
3. 检查电磁干扰 | +| **协议错误** | 响应格式异常 | 验证命令格式 | 1. 检查协议版本
2. 确认设备类型
3. 更新固件 | +| **间歇性故障** | 时好时坏 | 监控连接稳定性 | 1. 检查连接线
2. 稳定电源
3. 减少干扰源 | + +### 3. 设备功能问题 + +#### 🎯 设备状态检查 +```python +def check_device_health(): + """设备健康状态检查""" + from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend + + config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200, + timeout=5.0 + ) + + try: + backend = LaiYuLiquidBackend(config) + backend.connect() + + # 检查项目 + checks = { + "设备连接": lambda: backend.is_connected(), + "XYZ轴状态": lambda: backend.xyz_controller.get_all_positions(), + "移液器状态": lambda: backend.pipette_controller.get_status(), + "设备温度": lambda: backend.get_temperature(), + "错误状态": lambda: backend.get_error_status(), + } + + print("🏥 设备健康检查报告") + print("=" * 40) + + for check_name, check_func in checks.items(): + try: + result = check_func() + print(f"✅ {check_name}: 正常") + if result: + print(f" 📊 数据: {result}") + except Exception as e: + print(f"❌ {check_name}: 异常 - {e}") + + backend.disconnect() + + except Exception as e: + print(f"❌ 无法连接设备: {e}") +``` + +### 4. 高级故障排除 + +#### 🔧 日志分析工具 +```python +import logging + +def setup_debug_logging(): + """设置调试日志""" + logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler('laiyu_debug.log'), + logging.StreamHandler() + ] + ) + + # 启用串口通信日志 + serial_logger = logging.getLogger('serial') + serial_logger.setLevel(logging.DEBUG) + + print("🔍 调试日志已启用,日志文件: laiyu_debug.log") +``` + +#### 📊 性能监控 +```python +def monitor_performance(): + """性能监控工具""" + import time + import psutil + + print("📊 开始性能监控...") + + start_time = time.time() + start_cpu = psutil.cpu_percent() + start_memory = psutil.virtual_memory().percent + + # 执行设备操作 + # ... 你的设备操作代码 ... + + end_time = time.time() + end_cpu = psutil.cpu_percent() + end_memory = psutil.virtual_memory().percent + + print(f"⏱️ 执行时间: {end_time - start_time:.2f} 秒") + print(f"💻 CPU使用: {end_cpu - start_cpu:.1f}%") + print(f"🧠 内存使用: {end_memory - start_memory:.1f}%") +``` + +## 📝 配置文件模板 + +### 1. 基础配置模板 + +#### 标准配置(推荐) +```python +from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend, LaiYuLiquid + +# 创建标准配置 +config = LaiYuLiquidConfig( + # === 通信参数 === + port="/dev/cu.usbserial-3130", # 🔧 修改为实际串口 + address=4, # 移液器地址(推荐) + baudrate=115200, # 通信波特率(推荐) + timeout=5.0, # 通信超时时间 + + # === 工作台尺寸 === + deck_width=340.0, # 工作台宽度 (mm) + deck_height=250.0, # 工作台高度 (mm) + deck_depth=160.0, # 工作台深度 (mm) + + # === 运动控制参数 === + max_speed=100.0, # 最大移动速度 (mm/s) + acceleration=50.0, # 加速度 (mm/s²) + safe_height=50.0, # 安全移动高度 (mm) + + # === 移液参数 === + max_volume=1000.0, # 最大移液体积 (μL) + min_volume=0.1, # 最小移液体积 (μL) + liquid_detection=True, # 启用液面检测 + + # === 枪头操作参数 === + tip_pickup_speed=30, # 取枪头速度 (rpm) + tip_pickup_acceleration=500, # 取枪头加速度 (rpm/s) + tip_pickup_depth=10.0, # 枪头插入深度 (mm) + tip_drop_height=10.0, # 丢弃枪头高度 (mm) +) + +# 创建设备实例 +backend = LaiYuLiquidBackend(config) +device = LaiYuLiquid(backend) +``` + +### 2. 高级配置模板 + +#### 多设备配置 +```python +# 配置多个LaiYu设备 +configs = { + "device_1": LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200, + deck_width=340.0, + deck_height=250.0, + deck_depth=160.0 + ), + "device_2": LaiYuLiquidConfig( + port="/dev/cu.usbserial-3131", + address=4, + baudrate=115200, + deck_width=340.0, + deck_height=250.0, + deck_depth=160.0 + ) +} + +# 创建设备实例 +devices = {} +for name, config in configs.items(): + backend = LaiYuLiquidBackend(config) + devices[name] = LaiYuLiquid(backend) +``` + +#### 自定义参数配置 +```python +# 高精度移液配置 +precision_config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200, + timeout=10.0, # 增加超时时间 + + # 精密运动控制 + max_speed=50.0, # 降低速度提高精度 + acceleration=25.0, # 降低加速度 + safe_height=30.0, # 降低安全高度 + + # 精密移液参数 + max_volume=200.0, # 小体积移液 + min_volume=0.5, # 提高最小体积 + liquid_detection=True, + + # 精密枪头操作 + tip_pickup_speed=15, # 降低取枪头速度 + tip_pickup_acceleration=250, # 降低加速度 + tip_pickup_depth=8.0, # 减少插入深度 + tip_drop_height=5.0, # 降低丢弃高度 +) +``` + +### 3. 实验协议配置 + +#### JSON配置文件模板 +```json +{ + "experiment_name": "LaiYu液体处理实验", + "version": "1.0", + "devices": { + "laiyu_liquid": { + "type": "LaiYu_Liquid", + "config": { + "port": "/dev/cu.usbserial-3130", + "address": 4, + "baudrate": 115200, + "timeout": 5.0, + "deck_width": 340.0, + "deck_height": 250.0, + "deck_depth": 160.0, + "max_speed": 100.0, + "acceleration": 50.0, + "safe_height": 50.0, + "max_volume": 1000.0, + "min_volume": 0.1, + "liquid_detection": true + } + } + }, + "deck_layout": { + "tip_rack": { + "type": "tip_rack_96", + "position": [10, 10, 0], + "tips": "1000μL" + }, + "source_plate": { + "type": "plate_96", + "position": [100, 10, 0], + "contents": "样品" + }, + "dest_plate": { + "type": "plate_96", + "position": [200, 10, 0], + "contents": "目标" + } + } +} +``` + +### 4. 完整配置示例 +```json +{ + "laiyu_liquid_config": { + "communication": { + "xyz_controller": { + "port": "/dev/cu.usbserial-3130", + "baudrate": 115200, + "timeout": 5.0 + }, + "pipette_controller": { + "port": "/dev/cu.usbserial-3131", + "baudrate": 115200, + "address": 4, + "timeout": 5.0 + } + }, + "mechanical": { + "deck_width": 340.0, + "deck_height": 250.0, + "deck_depth": 160.0, + "safe_height": 50.0 + }, + "motion": { + "max_speed": 100.0, + "acceleration": 50.0, + "tip_pickup_speed": 30, + "tip_pickup_acceleration": 500 + }, + "safety": { + "position_validation": true, + "emergency_stop_enabled": true, + "deck_width": 300.0, + "deck_height": 200.0, + "deck_depth": 100.0, + "safe_height": 50.0 + } + } +} +``` + +### 5. 完整使用示例 + +#### 基础移液操作 +```python +async def basic_pipetting_example(): + """基础移液操作示例""" + + # 1. 设备初始化 + config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200 + ) + + backend = LaiYuLiquidBackend(config) + device = LaiYuLiquid(backend) + + try: + # 2. 设备设置 + await device.setup() + print("✅ 设备初始化完成") + + # 3. 回到原点 + await device.home_all_axes() + print("✅ 轴归零完成") + + # 4. 取枪头 + tip_position = (50, 50, 10) # 枪头架位置 + await device.pick_up_tip(tip_position) + print("✅ 取枪头完成") + + # 5. 移液操作 + source_pos = (100, 100, 15) # 源位置 + dest_pos = (200, 200, 15) # 目标位置 + volume = 100.0 # 移液体积 (μL) + + await device.aspirate(volume, source_pos) + print(f"✅ 吸取 {volume}μL 完成") + + await device.dispense(volume, dest_pos) + print(f"✅ 分配 {volume}μL 完成") + + # 6. 丢弃枪头 + trash_position = (300, 300, 20) + await device.drop_tip(trash_position) + print("✅ 丢弃枪头完成") + + except Exception as e: + print(f"❌ 操作失败: {e}") + + finally: + # 7. 清理资源 + await device.cleanup() + print("✅ 设备清理完成") + +# 运行示例 +import asyncio +asyncio.run(basic_pipetting_example()) +``` + +#### 批量处理示例 +```python +async def batch_processing_example(): + """批量处理示例""" + + config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200 + ) + + backend = LaiYuLiquidBackend(config) + device = LaiYuLiquid(backend) + + try: + await device.setup() + await device.home_all_axes() + + # 定义位置 + tip_rack = [(50 + i*9, 50, 10) for i in range(12)] # 12个枪头位置 + source_wells = [(100 + i*9, 100, 15) for i in range(12)] # 12个源孔 + dest_wells = [(200 + i*9, 200, 15) for i in range(12)] # 12个目标孔 + + # 批量移液 + for i in range(12): + print(f"🔄 处理第 {i+1} 个样品...") + + # 取枪头 + await device.pick_up_tip(tip_rack[i]) + + # 移液 + await device.aspirate(50.0, source_wells[i]) + await device.dispense(50.0, dest_wells[i]) + + # 丢弃枪头 + await device.drop_tip((300, 300, 20)) + + print(f"✅ 第 {i+1} 个样品处理完成") + + print("🎉 批量处理完成!") + + except Exception as e: + print(f"❌ 批量处理失败: {e}") + + finally: + await device.cleanup() + +# 运行批量处理 +asyncio.run(batch_processing_example()) +``` + +## 🔧 调试与日志管理 + +### 1. 调试模式配置 + +#### 启用全局调试 +```python +import logging +from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend + +# 配置全局日志 +logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler('laiyu_debug.log'), + logging.StreamHandler() + ] +) + +# 创建调试配置 +debug_config = LaiYuLiquidConfig( + port="/dev/cu.usbserial-3130", + address=4, + baudrate=115200, + timeout=10.0, # 增加超时时间便于调试 + debug_mode=True # 启用调试模式 +) +``` + +#### 分级日志配置 +```python +def setup_logging(log_level="INFO"): + """设置分级日志""" + + # 日志级别映射 + levels = { + "DEBUG": logging.DEBUG, + "INFO": logging.INFO, + "WARNING": logging.WARNING, + "ERROR": logging.ERROR + } + + # 创建日志记录器 + logger = logging.getLogger('LaiYu_Liquid') + logger.setLevel(levels.get(log_level, logging.INFO)) + + # 文件处理器 + file_handler = logging.FileHandler('laiyu_operations.log') + file_formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(funcName)s:%(lineno)d - %(message)s' + ) + file_handler.setFormatter(file_formatter) + + # 控制台处理器 + console_handler = logging.StreamHandler() + console_formatter = logging.Formatter('%(levelname)s - %(message)s') + console_handler.setFormatter(console_formatter) + + logger.addHandler(file_handler) + logger.addHandler(console_handler) + + return logger + +# 使用示例 +logger = setup_logging("DEBUG") +logger.info("开始LaiYu设备操作") +``` + +### 2. 通信监控 + +#### 串口通信日志 +```python +def enable_serial_logging(): + """启用串口通信日志""" + import serial + + # 创建串口日志记录器 + serial_logger = logging.getLogger('serial.communication') + serial_logger.setLevel(logging.DEBUG) + + # 创建专用的串口日志文件 + serial_handler = logging.FileHandler('laiyu_serial.log') + serial_formatter = logging.Formatter( + '%(asctime)s - SERIAL - %(message)s' + ) + serial_handler.setFormatter(serial_formatter) + serial_logger.addHandler(serial_handler) + + print("📡 串口通信日志已启用: laiyu_serial.log") + return serial_logger +``` + +#### 实时通信监控 +```python +class CommunicationMonitor: + """通信监控器""" + + def __init__(self): + self.sent_count = 0 + self.received_count = 0 + self.error_count = 0 + self.start_time = time.time() + + def log_sent(self, data): + """记录发送数据""" + self.sent_count += 1 + logging.debug(f"📤 发送 #{self.sent_count}: {data.hex()}") + + def log_received(self, data): + """记录接收数据""" + self.received_count += 1 + logging.debug(f"📥 接收 #{self.received_count}: {data.hex()}") + + def log_error(self, error): + """记录错误""" + self.error_count += 1 + logging.error(f"❌ 通信错误 #{self.error_count}: {error}") + + def get_statistics(self): + """获取统计信息""" + duration = time.time() - self.start_time + return { + "运行时间": f"{duration:.2f}秒", + "发送次数": self.sent_count, + "接收次数": self.received_count, + "错误次数": self.error_count, + "成功率": f"{((self.sent_count - self.error_count) / max(self.sent_count, 1) * 100):.1f}%" + } +``` + +### 3. 性能监控 + +#### 操作性能分析 +```python +import time +import functools + +def performance_monitor(operation_name): + """性能监控装饰器""" + def decorator(func): + @functools.wraps(func) + async def wrapper(*args, **kwargs): + start_time = time.time() + start_memory = psutil.Process().memory_info().rss / 1024 / 1024 # MB + + try: + result = await func(*args, **kwargs) + + end_time = time.time() + end_memory = psutil.Process().memory_info().rss / 1024 / 1024 # MB + + duration = end_time - start_time + memory_delta = end_memory - start_memory + + logging.info(f"⏱️ {operation_name}: {duration:.3f}s, 内存变化: {memory_delta:+.1f}MB") + + return result + + except Exception as e: + end_time = time.time() + duration = end_time - start_time + logging.error(f"❌ {operation_name} 失败 ({duration:.3f}s): {e}") + raise + + return wrapper + return decorator + +# 使用示例 +@performance_monitor("移液操作") +async def monitored_pipetting(): + await device.aspirate(100.0, (100, 100, 15)) + await device.dispense(100.0, (200, 200, 15)) +``` + +#### 系统资源监控 +```python +import psutil +import threading +import time + +class SystemMonitor: + """系统资源监控器""" + + def __init__(self, interval=1.0): + self.interval = interval + self.monitoring = False + self.data = [] + + def start_monitoring(self): + """开始监控""" + self.monitoring = True + self.monitor_thread = threading.Thread(target=self._monitor_loop) + self.monitor_thread.daemon = True + self.monitor_thread.start() + print("📊 系统监控已启动") + + def stop_monitoring(self): + """停止监控""" + self.monitoring = False + if hasattr(self, 'monitor_thread'): + self.monitor_thread.join() + print("📊 系统监控已停止") + + def _monitor_loop(self): + """监控循环""" + while self.monitoring: + cpu_percent = psutil.cpu_percent() + memory = psutil.virtual_memory() + + self.data.append({ + 'timestamp': time.time(), + 'cpu_percent': cpu_percent, + 'memory_percent': memory.percent, + 'memory_used_mb': memory.used / 1024 / 1024 + }) + + time.sleep(self.interval) + + def get_report(self): + """生成监控报告""" + if not self.data: + return "无监控数据" + + avg_cpu = sum(d['cpu_percent'] for d in self.data) / len(self.data) + avg_memory = sum(d['memory_percent'] for d in self.data) / len(self.data) + max_memory = max(d['memory_used_mb'] for d in self.data) + + return f""" +📊 系统资源监控报告 +================== +监控时长: {len(self.data) * self.interval:.1f}秒 +平均CPU使用率: {avg_cpu:.1f}% +平均内存使用率: {avg_memory:.1f}% +峰值内存使用: {max_memory:.1f}MB + """ + +# 使用示例 +monitor = SystemMonitor() +monitor.start_monitoring() + +# 执行设备操作 +# ... 你的代码 ... + +monitor.stop_monitoring() +print(monitor.get_report()) +``` + +### 4. 错误追踪 + +#### 异常处理和记录 +```python +import traceback + +class ErrorTracker: + """错误追踪器""" + + def __init__(self): + self.errors = [] + + def log_error(self, operation, error, context=None): + """记录错误""" + error_info = { + 'timestamp': time.time(), + 'operation': operation, + 'error_type': type(error).__name__, + 'error_message': str(error), + 'traceback': traceback.format_exc(), + 'context': context or {} + } + + self.errors.append(error_info) + + # 记录到日志 + logging.error(f"❌ {operation} 失败: {error}") + logging.debug(f"错误详情: {error_info}") + + def get_error_summary(self): + """获取错误摘要""" + if not self.errors: + return "✅ 无错误记录" + + error_types = {} + for error in self.errors: + error_type = error['error_type'] + error_types[error_type] = error_types.get(error_type, 0) + 1 + + summary = f"❌ 共记录 {len(self.errors)} 个错误:\n" + for error_type, count in error_types.items(): + summary += f" - {error_type}: {count} 次\n" + + return summary + +# 全局错误追踪器 +error_tracker = ErrorTracker() + +# 使用示例 +try: + await device.move_to(x=1000, y=1000, z=100) # 可能超出范围 +except Exception as e: + error_tracker.log_error("移动操作", e, {"target": (1000, 1000, 100)}) +``` + +--- + +## 📚 总结 + +本文档提供了LaiYu液体处理设备的完整硬件连接配置指南,涵盖了从基础设置到高级故障排除的所有方面。 + +### 🎯 关键要点 + +1. **标准配置**: 使用 `port="/dev/cu.usbserial-3130"`, `address=4`, `baudrate=115200` +2. **设备架构**: XYZ轴控制器(地址1-3) + SOPA移液器(地址4) +3. **连接验证**: 使用提供的测试脚本验证硬件连接 +4. **故障排除**: 参考故障排除指南解决常见问题 +5. **性能监控**: 启用日志和监控确保稳定运行 + +### 🔗 相关文档 + +- [LaiYu控制架构详解](./UniLab_LaiYu_控制架构详解.md) +- [XYZ集成功能说明](./XYZ_集成功能说明.md) +- [设备API文档](./readme.md) + +### 📞 技术支持 + +如遇到问题,请: +1. 检查硬件连接和配置 +2. 查看调试日志 +3. 参考故障排除指南 +4. 联系技术支持团队 + +--- + +*最后更新: 2024年1月* \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/docs/readme.md b/unilabos/devices/laiyu_liquid/docs/readme.md new file mode 100644 index 00000000..4927138a --- /dev/null +++ b/unilabos/devices/laiyu_liquid/docs/readme.md @@ -0,0 +1,269 @@ +# LaiYu_Liquid 液体处理工作站 + +## 概述 + +LaiYu_Liquid 是一个完全集成到 UniLabOS 的自动化液体处理工作站,基于 RS485 通信协议,专为精确的液体分配和转移操作而设计。本模块已完成生产环境部署准备,提供完整的硬件控制、资源管理和标准化接口。 + +## 系统组成 + +### 硬件组件 +- **XYZ三轴运动平台**: 3个RS485步进电机驱动(地址:X轴=0x01, Y轴=0x02, Z轴=0x03) +- **SOPA气动式移液器**: RS485总线控制,支持精密液体处理操作 +- **通信接口**: RS485转USB模块,默认波特率115200 +- **机械结构**: 稳固工作台面,支持离心管架、96孔板等标准实验耗材 + +### 软件架构 +- **驱动层**: 底层硬件通信驱动,支持RS485协议 +- **控制层**: 高级控制逻辑和坐标系管理 +- **抽象层**: 完全符合UniLabOS标准的液体处理接口 +- **资源层**: 标准化的实验器具和耗材管理 + +## 🎯 生产就绪组件 + +### ✅ 核心驱动程序 (`drivers/`) +- **`sopa_pipette_driver.py`** - SOPA移液器完整驱动 + - 支持液体吸取、分配、检测 + - 完整的错误处理和状态管理 + - 生产级别的通信协议实现 + +- **`xyz_stepper_driver.py`** - XYZ三轴步进电机驱动 + - 精确的位置控制和运动规划 + - 安全限位和错误检测 + - 高性能运动控制算法 + +### ✅ 高级控制器 (`controllers/`) +- **`pipette_controller.py`** - 移液控制器 + - 封装高级液体处理功能 + - 支持多种液体类型和处理参数 + - 智能错误恢复机制 + +- **`xyz_controller.py`** - XYZ运动控制器 + - 坐标系管理和转换 + - 运动路径优化 + - 安全运动控制 + +### ✅ UniLabOS集成 (`core/LaiYu_Liquid.py`) +- **完整的液体处理抽象接口** +- **标准化的资源管理系统** +- **与PyLabRobot兼容的后端实现** +- **生产级别的错误处理和日志记录** + +### ✅ 资源管理系统 +- **`laiyu_liquid_res.py`** - 标准化资源定义 + - 96孔板、离心管架、枪头架等标准器具 + - 自动化的资源创建和配置函数 + - 与工作台布局的完美集成 + +### ✅ 配置管理 (`config/`) +- **`config/deck.json`** - 工作台布局配置 + - 精确的空间定义和槽位管理 + - 支持多种实验器具的标准化放置 + - 可扩展的配置架构 + +- **`__init__.py`** - 模块集成和导出 + - 完整的API导出和版本管理 + - 依赖检查和安装验证 + - 专业的模块信息展示 + + + +## 🚀 核心功能特性 + +### 液体处理能力 +- **精密体积控制**: 支持1-1000μL精确分配 +- **多种液体类型**: 水性、有机溶剂、粘稠液体等 +- **智能检测**: 液位检测、气泡检测、堵塞检测 +- **自动化流程**: 完整的吸取-转移-分配工作流 + +### 运动控制系统 +- **三轴精密定位**: 微米级精度控制 +- **路径优化**: 智能运动规划和碰撞避免 +- **安全机制**: 限位保护、紧急停止、错误恢复 +- **坐标系管理**: 工作坐标与机械坐标的自动转换 + +### 资源管理 +- **标准化器具**: 支持96孔板、离心管架、枪头架等 +- **状态跟踪**: 实时监控液体体积、枪头状态等 +- **自动配置**: 基于JSON的灵活配置系统 +- **扩展性**: 易于添加新的器具类型 + +## 📁 目录结构 + +``` +LaiYu_Liquid/ +├── __init__.py # 模块初始化和API导出 +├── readme.md # 本文档 +├── backend/ # 后端驱动模块 +│ ├── __init__.py +│ └── laiyu_backend.py # PyLabRobot兼容后端 +├── core/ # 核心模块 +│ ├── core/ +│ │ └── LaiYu_Liquid.py # 主设备类 +│ ├── abstract_protocol.py # 抽象协议 +│ └── laiyu_liquid_res.py # 设备资源定义 +├── config/ # 配置文件目录 +│ └── deck.json # 工作台布局配置 +├── controllers/ # 高级控制器 +│ ├── __init__.py +│ ├── pipette_controller.py # 移液控制器 +│ └── xyz_controller.py # XYZ运动控制器 +├── docs/ # 技术文档 +│ ├── SOPA气动式移液器RS485控制指令.md +│ ├── 步进电机控制指令.md +│ └── hardware/ # 硬件相关文档 +├── drivers/ # 底层驱动程序 +│ ├── __init__.py +│ ├── sopa_pipette_driver.py # SOPA移液器驱动 +│ └── xyz_stepper_driver.py # XYZ步进电机驱动 +└── tests/ # 测试文件 +``` + +## 🔧 快速开始 + +### 1. 安装和验证 + +```python +# 验证模块安装 +from unilabos.devices.laiyu_liquid import ( + LaiYuLiquid, + LaiYuLiquidConfig, + create_quick_setup, + print_module_info +) + +# 查看模块信息 +print_module_info() + +# 快速创建默认资源 +resources = create_quick_setup() +print(f"已创建 {len(resources)} 个资源") +``` + +### 2. 基本使用示例 + +```python +from unilabos.devices.LaiYu_Liquid import ( + create_quick_setup, + create_96_well_plate, + create_laiyu_backend +) + +# 快速创建默认资源 +resources = create_quick_setup() +print(f"创建了以下资源: {list(resources.keys())}") + +# 创建96孔板 +plate_96 = create_96_well_plate("test_plate") +print(f"96孔板包含 {len(plate_96.children)} 个孔位") + +# 创建后端实例(用于PyLabRobot集成) +backend = create_laiyu_backend("LaiYu_Device") +print(f"后端设备: {backend.name}") +``` + +### 3. 后端驱动使用 + +```python +from unilabos.devices.laiyu_liquid.backend import create_laiyu_backend + +# 创建后端实例 +backend = create_laiyu_backend("LaiYu_Liquid_Station") + +# 连接设备 +await backend.connect() + +# 设备归位 +await backend.home_device() + +# 获取设备状态 +status = await backend.get_status() +print(f"设备状态: {status}") + +# 断开连接 +await backend.disconnect() +``` + +### 4. 资源管理示例 + +```python +from unilabos.devices.LaiYu_Liquid import ( + create_centrifuge_tube_rack, + create_tip_rack, + load_deck_config +) + +# 加载工作台配置 +deck_config = load_deck_config() +print(f"工作台尺寸: {deck_config['size_x']}x{deck_config['size_y']}mm") + +# 创建不同类型的资源 +tube_rack = create_centrifuge_tube_rack("sample_rack") +tip_rack = create_tip_rack("tip_rack_200ul") + +print(f"离心管架: {tube_rack.name}, 容量: {len(tube_rack.children)} 个位置") +print(f"枪头架: {tip_rack.name}, 容量: {len(tip_rack.children)} 个枪头") +``` + +## 🔍 技术架构 + +### 坐标系统 +- **机械坐标**: 基于步进电机的原始坐标系统 +- **工作坐标**: 用户友好的实验室坐标系统 +- **自动转换**: 透明的坐标系转换和校准 + +### 通信协议 +- **RS485总线**: 高可靠性工业通信标准 +- **Modbus协议**: 标准化的设备通信协议 +- **错误检测**: 完整的通信错误检测和恢复 + +### 安全机制 +- **限位保护**: 硬件和软件双重限位保护 +- **紧急停止**: 即时停止所有运动和操作 +- **状态监控**: 实时设备状态监控和报警 + +## 🧪 验证和测试 + +### 功能验证 +```python +# 验证模块安装 +from unilabos.devices.laiyu_liquid import validate_installation +validate_installation() + +# 查看模块信息 +from unilabos.devices.laiyu_liquid import print_module_info +print_module_info() +``` + +### 硬件连接测试 +```python +# 测试SOPA移液器连接 +from unilabos.devices.laiyu_liquid.drivers import SOPAPipette, SOPAConfig + +config = SOPAConfig(port="/dev/cu.usbserial-3130", address=4) +pipette = SOPAPipette(config) +success = pipette.connect() +print(f"SOPA连接状态: {'成功' if success else '失败'}") +``` + +## 📚 维护和支持 + +### 日志记录 +- **结构化日志**: 使用Python logging模块的专业日志记录 +- **错误追踪**: 详细的错误信息和堆栈跟踪 +- **性能监控**: 操作时间和性能指标记录 + +### 配置管理 +- **JSON配置**: 灵活的JSON格式配置文件 +- **参数验证**: 自动配置参数验证和错误提示 +- **热重载**: 支持配置文件的动态重载 + +### 扩展性 +- **模块化设计**: 易于扩展和定制的模块化架构 +- **插件接口**: 支持第三方插件和扩展 +- **API兼容**: 向后兼容的API设计 + + diff --git a/unilabos/devices/laiyu_liquid/drivers/__init__.py b/unilabos/devices/laiyu_liquid/drivers/__init__.py new file mode 100644 index 00000000..cedd47a0 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/drivers/__init__.py @@ -0,0 +1,30 @@ +""" +LaiYu_Liquid 驱动程序模块 + +该模块包含了LaiYu_Liquid液体处理工作站的硬件驱动程序: +- SOPA移液器驱动程序 +- XYZ步进电机驱动程序 +""" + +# SOPA移液器驱动程序导入 +from .sopa_pipette_driver import SOPAPipette, SOPAConfig, SOPAStatusCode + +# XYZ步进电机驱动程序导入 +from .xyz_stepper_driver import StepperMotorDriver, XYZStepperController, MotorAxis, MotorStatus + +__all__ = [ + # SOPA移液器 + "SOPAPipette", + "SOPAConfig", + "SOPAStatusCode", + + # XYZ步进电机 + "StepperMotorDriver", + "XYZStepperController", + "MotorAxis", + "MotorStatus", +] + +__version__ = "1.0.0" +__author__ = "LaiYu_Liquid Driver Team" +__description__ = "LaiYu_Liquid 硬件驱动程序集合" \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/drivers/sopa_pipette_driver.py b/unilabos/devices/laiyu_liquid/drivers/sopa_pipette_driver.py new file mode 100644 index 00000000..3cfed55f --- /dev/null +++ b/unilabos/devices/laiyu_liquid/drivers/sopa_pipette_driver.py @@ -0,0 +1,1079 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +SOPA气动式移液器RS485控制驱动程序 + +基于SOPA气动式移液器RS485控制指令合集编写的Python驱动程序, +支持完整的移液器控制功能,包括移液、检测、配置等操作。 + +仅支持SC-STxxx-00-13型号的RS485通信。 +""" + +import serial +import time +import logging +import threading +from typing import Optional, Union, Dict, Any, Tuple, List +from enum import Enum, IntEnum +from dataclasses import dataclass +from contextlib import contextmanager + +# 配置日志 +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class SOPAError(Exception): + """SOPA移液器异常基类""" + pass + + +class SOPACommunicationError(SOPAError): + """通信异常""" + pass + + +class SOPADeviceError(SOPAError): + """设备异常""" + pass + + +class SOPAStatusCode(IntEnum): + """状态码枚举""" + NO_ERROR = 0x00 # 无错误 + ACTION_INCOMPLETE = 0x01 # 上次动作未完成 + NOT_INITIALIZED = 0x02 # 设备未初始化 + DEVICE_OVERLOAD = 0x03 # 设备过载 + INVALID_COMMAND = 0x04 # 无效指令 + LLD_FAULT = 0x05 # 液位探测故障 + AIR_ASPIRATE = 0x0D # 空吸 + NEEDLE_BLOCK = 0x0E # 堵针 + FOAM_DETECT = 0x10 # 泡沫 + EXCEED_TIP_VOLUME = 0x11 # 吸液超过吸头容量 + + +class CommunicationType(Enum): + """通信类型""" + TERMINAL_DEBUG = "/" # 终端调试,头码为0x2F + OEM_COMMUNICATION = "[" # OEM通信,头码为0x5B + + +class DetectionMode(IntEnum): + """液位检测模式""" + PRESSURE = 0 # 压力式检测(pLLD) + CAPACITIVE = 1 # 电容式检测(cLLD) + + +@dataclass +class SOPAConfig: + """SOPA移液器配置参数""" + # 通信参数 + port: str = "/dev/ttyUSB0" + baudrate: int = 115200 + address: int = 1 + timeout: float = 5.0 + comm_type: CommunicationType = CommunicationType.TERMINAL_DEBUG + + # 运动参数 (单位: 0.1ul/秒) + max_speed: int = 2000 # 最高速度 200ul/秒 + start_speed: int = 200 # 启动速度 20ul/秒 + cutoff_speed: int = 200 # 断流速度 20ul/秒 + acceleration: int = 30000 # 加速度 + + # 检测参数 + empty_threshold: int = 4 # 空吸门限 + foam_threshold: int = 20 # 泡沫门限 + block_threshold: int = 350 # 堵塞门限 + + # 液位检测参数 + lld_speed: int = 200 # 检测速度 (100~2000) + lld_sensitivity: int = 5 # 检测灵敏度 (3~40) + detection_mode: DetectionMode = DetectionMode.PRESSURE + + # 吸头参数 + tip_volume: int = 1000 # 吸头容量 (ul) + calibration_factor: float = 1.0 # 校准系数 + compensation_offset: float = 0.0 # 补偿偏差 + + def __post_init__(self): + """初始化后验证参数""" + self._validate_address() + + def _validate_address(self): + """ + 验证设备地址是否符合协议要求 + + 协议要求: + - 地址范围:1~254 + - 禁用地址:47, 69, 91 (对应ASCII字符 '/', 'E', '[') + """ + if not (1 <= self.address <= 254): + raise ValueError(f"设备地址必须在1-254范围内,当前地址: {self.address}") + + forbidden_addresses = [47, 69, 91] # '/', 'E', '[' + if self.address in forbidden_addresses: + forbidden_chars = {47: "'/' (0x2F)", 69: "'E' (0x45)", 91: "'[' (0x5B)"} + char_desc = forbidden_chars[self.address] + raise ValueError( + f"地址 {self.address} 不可用,因为它对应协议字符 {char_desc}。" + f"请选择其他地址(1-254,排除47、69、91)" + ) + + +class SOPAPipette: + """SOPA气动式移液器驱动类""" + + def __init__(self, config: SOPAConfig): + """ + 初始化SOPA移液器 + + Args: + config: 移液器配置参数 + """ + self.config = config + self.serial_port: Optional[serial.Serial] = None + self.is_connected = False + self.is_initialized = False + self.lock = threading.Lock() + + # 状态缓存 + self._last_status = SOPAStatusCode.NOT_INITIALIZED + self._current_position = 0 + self._tip_present = False + + def connect(self) -> bool: + """ + 连接移液器 + + Returns: + bool: 连接是否成功 + """ + try: + self.serial_port = serial.Serial( + port=self.config.port, + baudrate=self.config.baudrate, + bytesize=serial.EIGHTBITS, + parity=serial.PARITY_NONE, + stopbits=serial.STOPBITS_ONE, + timeout=self.config.timeout + ) + + if self.serial_port.is_open: + self.is_connected = True + logger.info(f"已连接到SOPA移液器,端口: {self.config.port}, 地址: {self.config.address}") + + # 查询设备信息 + version = self.get_firmware_version() + if version: + logger.info(f"固件版本: {version}") + + return True + else: + raise SOPACommunicationError("串口打开失败") + + except Exception as e: + logger.error(f"连接失败: {str(e)}") + self.is_connected = False + return False + + def disconnect(self): + """断开连接""" + if self.serial_port and self.serial_port.is_open: + self.serial_port.close() + self.is_connected = False + self.is_initialized = False + logger.info("已断开SOPA移液器连接") + + def _calculate_checksum(self, data: bytes) -> int: + """计算校验和""" + return sum(data) & 0xFF + + def _build_command(self, command: str) -> bytes: + """ + 构建完整命令字节串 + + 根据协议格式:头码 + 地址 + 命令/数据 + 尾码 + 校验和 + + Args: + command: 命令字符串 + + Returns: + bytes: 完整的命令字节串 + """ + header = self.config.comm_type.value # '/' 或 '[' + address = str(self.config.address) # 设备地址 + tail = "E" # 尾码固定为 'E' + + # 构建基础命令字符串:头码 + 地址 + 命令 + 尾码 + cmd_str = f"{header}{address}{command}{tail}" + + # 转换为字节串 + cmd_bytes = cmd_str.encode('ascii') + + # 计算校验和(所有字节的累加值) + checksum = self._calculate_checksum(cmd_bytes) + + # 返回完整命令:基础命令字节 + 校验和字节 + return cmd_bytes + bytes([checksum]) + + def _send_command(self, command: str) -> bool: + """ + 发送命令到移液器 + + Args: + command: 要发送的命令 + + Returns: + bool: 命令是否发送成功 + """ + if not self.is_connected or not self.serial_port: + raise SOPACommunicationError("设备未连接") + + with self.lock: + try: + full_command_bytes = self._build_command(command) + # 转换为可读字符串用于日志显示 + readable_cmd = ''.join(chr(b) if 32 <= b <= 126 else f'\\x{b:02X}' for b in full_command_bytes) + logger.debug(f"发送命令: {readable_cmd}") + + self.serial_port.write(full_command_bytes) + self.serial_port.flush() + + # 等待响应 + time.sleep(0.1) + return True + + except Exception as e: + logger.error(f"发送命令失败: {str(e)}") + raise SOPACommunicationError(f"发送命令失败: {str(e)}") + + def _read_response(self, timeout: float = None) -> Optional[str]: + """ + 读取设备响应 + + Args: + timeout: 超时时间 + + Returns: + Optional[str]: 设备响应字符串 + """ + if not self.is_connected or not self.serial_port: + return None + + timeout = timeout or self.config.timeout + + try: + # 设置读取超时 + self.serial_port.timeout = timeout + + response = b'' + start_time = time.time() + + while time.time() - start_time < timeout: + if self.serial_port.in_waiting > 0: + chunk = self.serial_port.read(self.serial_port.in_waiting) + response += chunk + + # 检查是否收到完整响应(以'E'结尾) + if response.endswith(b'E') or len(response) >= 20: + break + + time.sleep(0.01) + + if response: + decoded_response = response.decode('ascii', errors='ignore') + logger.debug(f"收到响应: {decoded_response}") + return decoded_response + + except Exception as e: + logger.error(f"读取响应失败: {str(e)}") + + return None + + def _send_query(self, query: str) -> Optional[str]: + """ + 发送查询命令并获取响应 + + Args: + query: 查询命令 + + Returns: + Optional[str]: 查询结果 + """ + try: + self._send_command(query) + return self._read_response() + except Exception as e: + logger.error(f"查询失败: {str(e)}") + return None + + # ==================== 基础控制方法 ==================== + + def initialize(self) -> bool: + """ + 初始化移液器 + + Returns: + bool: 初始化是否成功 + """ + try: + logger.info("初始化SOPA移液器...") + + # 发送初始化命令 + self._send_command("HE") + + # 等待初始化完成 + time.sleep(2.0) + + # 检查状态 + status = self.get_status() + if status == SOPAStatusCode.NO_ERROR: + self.is_initialized = True + logger.info("移液器初始化成功") + + # 应用配置参数 + self._apply_configuration() + return True + else: + logger.error(f"初始化失败,状态码: {status}") + return False + + except Exception as e: + logger.error(f"初始化异常: {str(e)}") + return False + + def _apply_configuration(self): + """应用配置参数""" + try: + # 设置运动参数 + self.set_acceleration(self.config.acceleration) + self.set_start_speed(self.config.start_speed) + self.set_cutoff_speed(self.config.cutoff_speed) + self.set_max_speed(self.config.max_speed) + + # 设置检测参数 + self.set_empty_threshold(self.config.empty_threshold) + self.set_foam_threshold(self.config.foam_threshold) + self.set_block_threshold(self.config.block_threshold) + + # 设置吸头参数 + self.set_tip_volume(self.config.tip_volume) + self.set_calibration_factor(self.config.calibration_factor) + + # 设置液位检测参数 + self.set_detection_mode(self.config.detection_mode) + self.set_lld_speed(self.config.lld_speed) + + logger.info("配置参数应用完成") + + except Exception as e: + logger.warning(f"应用配置参数失败: {str(e)}") + + def eject_tip(self) -> bool: + """ + 顶出枪头 + + Returns: + bool: 操作是否成功 + """ + try: + logger.info("顶出枪头") + self._send_command("RE") + time.sleep(1.0) + return True + except Exception as e: + logger.error(f"顶出枪头失败: {str(e)}") + return False + + def get_tip_status(self) -> bool: + """ + 获取枪头状态 + + Returns: + bool: True表示有枪头,False表示无枪头 + """ + try: + response = self._send_query("Q28") + if response and len(response) > 10: + # 解析响应中的枪头状态 + status_char = response[10] if len(response) > 10 else '0' + self._tip_present = (status_char == '1') + return self._tip_present + except Exception as e: + logger.error(f"获取枪头状态失败: {str(e)}") + + return False + + # ==================== 移液控制方法 ==================== + + def move_absolute(self, position: float) -> bool: + """ + 绝对位置移动 + + Args: + position: 目标位置(微升) + + Returns: + bool: 移动是否成功 + """ + try: + if not self.is_initialized: + raise SOPADeviceError("设备未初始化") + + pos_int = int(position) + logger.debug(f"绝对移动到位置: {pos_int}ul") + + self._send_command(f"A{pos_int}E") + time.sleep(0.5) + + self._current_position = pos_int + return True + + except Exception as e: + logger.error(f"绝对移动失败: {str(e)}") + return False + + def aspirate(self, volume: float, detection: bool = False) -> bool: + """ + 抽吸液体 + + Args: + volume: 抽吸体积(微升) + detection: 是否开启液体检测 + + Returns: + bool: 抽吸是否成功 + """ + try: + if not self.is_initialized: + raise SOPADeviceError("设备未初始化") + + vol_int = int(volume) + logger.info(f"抽吸液体: {vol_int}ul, 检测: {detection}") + + # 构建命令 + cmd_parts = [] + cmd_parts.append(f"a{self.config.acceleration}") + cmd_parts.append(f"b{self.config.start_speed}") + cmd_parts.append(f"c{self.config.cutoff_speed}") + cmd_parts.append(f"s{self.config.max_speed}") + + if detection: + cmd_parts.append("f1") # 开启检测 + + cmd_parts.append(f"P{vol_int}") + + if detection: + cmd_parts.append("f0") # 关闭检测 + + cmd_parts.append("E") + + command = "".join(cmd_parts) + self._send_command(command) + + # 等待操作完成 + time.sleep(max(1.0, vol_int / 100.0)) + + # 检查状态 + status = self.get_status() + if status == SOPAStatusCode.NO_ERROR: + self._current_position += vol_int + logger.info(f"抽吸成功: {vol_int}ul") + return True + elif status == SOPAStatusCode.AIR_ASPIRATE: + logger.warning("检测到空吸") + return False + elif status == SOPAStatusCode.NEEDLE_BLOCK: + logger.error("检测到堵针") + return False + else: + logger.error(f"抽吸失败,状态码: {status}") + return False + + except Exception as e: + logger.error(f"抽吸失败: {str(e)}") + return False + + def dispense(self, volume: float, detection: bool = False) -> bool: + """ + 分配液体 + + Args: + volume: 分配体积(微升) + detection: 是否开启液体检测 + + Returns: + bool: 分配是否成功 + """ + try: + if not self.is_initialized: + raise SOPADeviceError("设备未初始化") + + vol_int = int(volume) + logger.info(f"分配液体: {vol_int}ul, 检测: {detection}") + + # 构建命令 + cmd_parts = [] + cmd_parts.append(f"a{self.config.acceleration}") + cmd_parts.append(f"b{self.config.start_speed}") + cmd_parts.append(f"c{self.config.cutoff_speed}") + cmd_parts.append(f"s{self.config.max_speed}") + + if detection: + cmd_parts.append("f1") # 开启检测 + + cmd_parts.append(f"D{vol_int}") + + if detection: + cmd_parts.append("f0") # 关闭检测 + + cmd_parts.append("E") + + command = "".join(cmd_parts) + self._send_command(command) + + # 等待操作完成 + time.sleep(max(1.0, vol_int / 200.0)) + + # 检查状态 + status = self.get_status() + if status == SOPAStatusCode.NO_ERROR: + self._current_position -= vol_int + logger.info(f"分配成功: {vol_int}ul") + return True + else: + logger.error(f"分配失败,状态码: {status}") + return False + + except Exception as e: + logger.error(f"分配失败: {str(e)}") + return False + + # ==================== 液位检测方法 ==================== + + def liquid_level_detection(self, sensitivity: int = None) -> bool: + """ + 执行液位检测 + + Args: + sensitivity: 检测灵敏度 (3~40) + + Returns: + bool: 检测是否成功 + """ + try: + if not self.is_initialized: + raise SOPADeviceError("设备未初始化") + + sens = sensitivity or self.config.lld_sensitivity + + if self.config.detection_mode == DetectionMode.PRESSURE: + # 压力式液面检测 + command = f"m0k{self.config.lld_speed}L{sens}E" + else: + # 电容式液面检测 + command = f"m1L{sens}E" + + logger.info(f"执行液位检测, 模式: {self.config.detection_mode.name}, 灵敏度: {sens}") + + self._send_command(command) + time.sleep(2.0) + + # 检查检测结果 + status = self.get_status() + if status == SOPAStatusCode.NO_ERROR: + logger.info("液位检测成功") + return True + elif status == SOPAStatusCode.LLD_FAULT: + logger.error("液位检测故障") + return False + else: + logger.warning(f"液位检测异常,状态码: {status}") + return False + + except Exception as e: + logger.error(f"液位检测失败: {str(e)}") + return False + + # ==================== 参数设置方法 ==================== + + def set_max_speed(self, speed: int) -> bool: + """设置最高速度 (0.1ul/秒为单位)""" + try: + self._send_command(f"s{speed}E") + self.config.max_speed = speed + logger.debug(f"设置最高速度: {speed} (0.1ul/秒)") + return True + except Exception as e: + logger.error(f"设置最高速度失败: {str(e)}") + return False + + def set_start_speed(self, speed: int) -> bool: + """设置启动速度 (0.1ul/秒为单位)""" + try: + self._send_command(f"b{speed}E") + self.config.start_speed = speed + logger.debug(f"设置启动速度: {speed} (0.1ul/秒)") + return True + except Exception as e: + logger.error(f"设置启动速度失败: {str(e)}") + return False + + def set_cutoff_speed(self, speed: int) -> bool: + """设置断流速度 (0.1ul/秒为单位)""" + try: + self._send_command(f"c{speed}E") + self.config.cutoff_speed = speed + logger.debug(f"设置断流速度: {speed} (0.1ul/秒)") + return True + except Exception as e: + logger.error(f"设置断流速度失败: {str(e)}") + return False + + def set_acceleration(self, accel: int) -> bool: + """设置加速度""" + try: + self._send_command(f"a{accel}E") + self.config.acceleration = accel + logger.debug(f"设置加速度: {accel}") + return True + except Exception as e: + logger.error(f"设置加速度失败: {str(e)}") + return False + + def set_empty_threshold(self, threshold: int) -> bool: + """设置空吸门限""" + try: + self._send_command(f"${threshold}E") + self.config.empty_threshold = threshold + logger.debug(f"设置空吸门限: {threshold}") + return True + except Exception as e: + logger.error(f"设置空吸门限失败: {str(e)}") + return False + + def set_foam_threshold(self, threshold: int) -> bool: + """设置泡沫门限""" + try: + self._send_command(f"!{threshold}E") + self.config.foam_threshold = threshold + logger.debug(f"设置泡沫门限: {threshold}") + return True + except Exception as e: + logger.error(f"设置泡沫门限失败: {str(e)}") + return False + + def set_block_threshold(self, threshold: int) -> bool: + """设置堵塞门限""" + try: + self._send_command(f"%{threshold}E") + self.config.block_threshold = threshold + logger.debug(f"设置堵塞门限: {threshold}") + return True + except Exception as e: + logger.error(f"设置堵塞门限失败: {str(e)}") + return False + + def set_tip_volume(self, volume: int) -> bool: + """设置吸头容量""" + try: + self._send_command(f"C{volume}E") + self.config.tip_volume = volume + logger.debug(f"设置吸头容量: {volume}ul") + return True + except Exception as e: + logger.error(f"设置吸头容量失败: {str(e)}") + return False + + def set_calibration_factor(self, factor: float) -> bool: + """设置校准系数""" + try: + self._send_command(f"j{factor}E") + self.config.calibration_factor = factor + logger.debug(f"设置校准系数: {factor}") + return True + except Exception as e: + logger.error(f"设置校准系数失败: {str(e)}") + return False + + def set_detection_mode(self, mode: DetectionMode) -> bool: + """设置液位检测模式""" + try: + self._send_command(f"m{mode.value}E") + self.config.detection_mode = mode + logger.debug(f"设置检测模式: {mode.name}") + return True + except Exception as e: + logger.error(f"设置检测模式失败: {str(e)}") + return False + + def set_lld_speed(self, speed: int) -> bool: + """设置液位检测速度""" + try: + if 100 <= speed <= 2000: + self._send_command(f"k{speed}E") + self.config.lld_speed = speed + logger.debug(f"设置检测速度: {speed}") + return True + else: + logger.error("检测速度超出范围 (100~2000)") + return False + except Exception as e: + logger.error(f"设置检测速度失败: {str(e)}") + return False + + # ==================== 状态查询方法 ==================== + + def get_status(self) -> SOPAStatusCode: + """ + 获取设备状态 + + Returns: + SOPAStatusCode: 当前状态码 + """ + try: + response = self._send_query("Q") + if response and len(response) > 8: + # 解析状态字节 + status_char = response[8] if len(response) > 8 else '0' + try: + status_code = int(status_char, 16) if status_char.isdigit() or status_char.lower() in 'abcdef' else 0 + self._last_status = SOPAStatusCode(status_code) + except ValueError: + self._last_status = SOPAStatusCode.NO_ERROR + + return self._last_status + except Exception as e: + logger.error(f"获取状态失败: {str(e)}") + + return SOPAStatusCode.NO_ERROR + + def get_firmware_version(self) -> Optional[str]: + """ + 获取固件版本信息 + 处理SOPA移液器的双响应帧格式 + + Returns: + Optional[str]: 固件版本字符串,获取失败返回None + """ + try: + if not self.is_connected: + logger.debug("设备未连接,无法查询版本") + return "设备未连接" + + # 清空串口缓冲区,避免残留数据干扰 + if self.serial_port and self.serial_port.in_waiting > 0: + logger.debug(f"清空缓冲区中的 {self.serial_port.in_waiting} 字节数据") + self.serial_port.reset_input_buffer() + + # 发送版本查询命令 - 使用VE命令 + command = self._build_command("VE") + logger.debug(f"发送版本查询命令: {command}") + self.serial_port.write(command) + + # 等待响应 + time.sleep(0.3) # 增加等待时间 + + # 读取所有可用数据 + all_data = b'' + timeout_count = 0 + max_timeout = 15 # 增加最大等待时间到1.5秒 + + while timeout_count < max_timeout: + if self.serial_port.in_waiting > 0: + data = self.serial_port.read(self.serial_port.in_waiting) + all_data += data + logger.debug(f"接收到 {len(data)} 字节数据: {data.hex().upper()}") + timeout_count = 0 # 重置超时计数 + else: + time.sleep(0.1) + timeout_count += 1 + + # 检查是否收到完整的双响应帧 + if len(all_data) >= 26: # 两个13字节的响应帧 + logger.debug("收到完整的双响应帧") + break + elif len(all_data) >= 13: # 至少一个响应帧 + # 继续等待一段时间看是否有第二个帧 + if timeout_count > 5: # 等待0.5秒后如果没有更多数据就停止 + logger.debug("只收到单响应帧") + break + + logger.debug(f"总共接收到 {len(all_data)} 字节数据: {all_data.hex().upper()}") + + if len(all_data) < 13: + logger.warning("接收到的数据不足一个完整响应帧") + return "版本信息不可用" + + # 解析响应数据 + version_info = self._parse_version_response(all_data) + logger.info(f"解析得到版本信息: {version_info}") + return version_info + + except Exception as e: + logger.error(f"获取固件版本失败: {str(e)}") + return "版本信息不可用" + + def _parse_version_response(self, data: bytes) -> str: + """ + 解析版本响应数据 + + Args: + data: 原始响应数据 + + Returns: + str: 解析后的版本信息 + """ + try: + # 将数据转换为十六进制字符串用于调试 + hex_data = data.hex().upper() + logger.debug(f"收到版本响应数据: {hex_data}") + + # 查找响应帧的起始位置 + responses = [] + i = 0 + while i < len(data) - 12: + # 查找帧头 0x2F (/) + if data[i] == 0x2F: + # 检查是否是完整的13字节帧 + if i + 12 < len(data) and data[i + 11] == 0x45: # 尾码 E + frame = data[i:i+13] + responses.append(frame) + i += 13 + else: + i += 1 + else: + i += 1 + + if len(responses) < 2: + # 如果只有一个响应帧,尝试解析 + if len(responses) == 1: + return self._extract_version_from_frame(responses[0]) + else: + return f"响应格式异常: {hex_data}" + + # 解析第二个响应帧(通常包含版本信息) + version_frame = responses[1] + return self._extract_version_from_frame(version_frame) + + except Exception as e: + logger.error(f"解析版本响应失败: {str(e)}") + return f"解析失败: {data.hex().upper()}" + + def _extract_version_from_frame(self, frame: bytes) -> str: + """ + 从响应帧中提取版本信息 + + Args: + frame: 13字节的响应帧 + + Returns: + str: 版本信息字符串 + """ + try: + # 帧格式: 头码(1) + 地址(1) + 数据(9) + 尾码(1) + 校验和(1) + if len(frame) != 13: + return f"帧长度错误: {frame.hex().upper()}" + + # 提取数据部分 (索引2-10,共9字节) + data_part = frame[2:11] + + # 尝试不同的解析方法 + version_candidates = [] + + # 方法1: 查找可打印的ASCII字符 + ascii_chars = [] + for byte in data_part: + if 32 <= byte <= 126: # 可打印ASCII范围 + ascii_chars.append(chr(byte)) + + if ascii_chars: + version_candidates.append(''.join(ascii_chars)) + + # 方法2: 解析为版本号格式 (如果前几个字节是版本信息) + if len(data_part) >= 3: + # 检查是否是 V.x.y 格式 + if data_part[0] == 0x56: # 'V' + version_str = f"V{data_part[1]}.{data_part[2]}" + version_candidates.append(version_str) + + # 方法3: 十六进制表示 + hex_version = ' '.join(f'{b:02X}' for b in data_part) + version_candidates.append(f"HEX: {hex_version}") + + # 返回最合理的版本信息 + for candidate in version_candidates: + if candidate and len(candidate.strip()) > 1: + return candidate.strip() + + return f"原始数据: {frame.hex().upper()}" + + except Exception as e: + logger.error(f"提取版本信息失败: {str(e)}") + return f"提取失败: {frame.hex().upper()}" + + def get_current_position(self) -> float: + """ + 获取当前位置 + + Returns: + float: 当前位置 (微升) + """ + try: + response = self._send_query("Q18") + if response and len(response) > 10: + # 解析位置信息 + pos_str = response[8:14].strip() + try: + self._current_position = int(pos_str) + except ValueError: + pass + except Exception as e: + logger.error(f"获取位置失败: {str(e)}") + + return self._current_position + + def get_device_info(self) -> Dict[str, Any]: + """ + 获取设备完整信息 + + Returns: + Dict[str, Any]: 设备信息字典 + """ + info = { + 'firmware_version': self.get_firmware_version(), + 'current_position': self.get_current_position(), + 'tip_present': self.get_tip_status(), + 'status': self.get_status(), + 'is_connected': self.is_connected, + 'is_initialized': self.is_initialized, + 'config': { + 'address': self.config.address, + 'baudrate': self.config.baudrate, + 'max_speed': self.config.max_speed, + 'tip_volume': self.config.tip_volume, + 'detection_mode': self.config.detection_mode.name + } + } + + return info + + # ==================== 高级操作方法 ==================== + + def transfer_liquid(self, source_volume: float, dispense_volume: float = None, + with_detection: bool = True, pre_wet: bool = False) -> bool: + """ + 完整的液体转移操作 + + Args: + source_volume: 从源容器抽吸的体积 + dispense_volume: 分配到目标容器的体积(默认等于抽吸体积) + with_detection: 是否使用液体检测 + pre_wet: 是否进行预润湿 + + Returns: + bool: 操作是否成功 + """ + try: + if not self.is_initialized: + raise SOPADeviceError("设备未初始化") + + dispense_volume = dispense_volume or source_volume + + logger.info(f"开始液体转移: 抽吸{source_volume}ul -> 分配{dispense_volume}ul") + + # 预润湿(如果需要) + if pre_wet: + logger.info("执行预润湿操作") + if not self.aspirate(source_volume * 0.1, with_detection): + return False + if not self.dispense(source_volume * 0.1): + return False + + # 执行液位检测(如果启用) + if with_detection: + if not self.liquid_level_detection(): + logger.warning("液位检测失败,继续执行") + + # 抽吸液体 + if not self.aspirate(source_volume, with_detection): + logger.error("抽吸失败") + return False + + # 可选的延时 + time.sleep(0.5) + + # 分配液体 + if not self.dispense(dispense_volume, with_detection): + logger.error("分配失败") + return False + + logger.info("液体转移完成") + return True + + except Exception as e: + logger.error(f"液体转移失败: {str(e)}") + return False + + @contextmanager + def batch_operation(self): + """批量操作上下文管理器""" + logger.info("开始批量操作") + try: + yield self + finally: + logger.info("批量操作完成") + + def reset_to_home(self) -> bool: + """回到初始位置""" + return self.move_absolute(0) + + def emergency_stop(self): + """紧急停止""" + try: + if self.serial_port and self.serial_port.is_open: + # 发送停止命令(如果协议支持) + self.serial_port.write(b'\x03') # Ctrl+C + logger.warning("执行紧急停止") + except Exception as e: + logger.error(f"紧急停止失败: {str(e)}") + + def __enter__(self): + """上下文管理器入口""" + if not self.is_connected: + self.connect() + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """上下文管理器出口""" + self.disconnect() + + def __del__(self): + """析构函数""" + self.disconnect() + + +# ==================== 工厂函数和便利方法 ==================== + +def create_sopa_pipette(port: str = "/dev/ttyUSB0", address: int = 1, + baudrate: int = 115200, **kwargs) -> SOPAPipette: + """ + 创建SOPA移液器实例的便利函数 + + Args: + port: 串口端口 + address: RS485地址 + baudrate: 波特率 + **kwargs: 其他配置参数 + + Returns: + SOPAPipette: 移液器实例 + """ + config = SOPAConfig( + port=port, + address=address, + baudrate=baudrate, + **kwargs + ) + + return SOPAPipette(config) diff --git a/unilabos/devices/laiyu_liquid/drivers/xyz_stepper_driver.py b/unilabos/devices/laiyu_liquid/drivers/xyz_stepper_driver.py new file mode 100644 index 00000000..146cbb4e --- /dev/null +++ b/unilabos/devices/laiyu_liquid/drivers/xyz_stepper_driver.py @@ -0,0 +1,663 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +XYZ三轴步进电机B系列驱动程序 +支持RS485通信,Modbus协议 +""" + +import serial +import struct +import time +import logging +from typing import Optional, Tuple, Dict, Any +from enum import Enum +from dataclasses import dataclass + +# 配置日志 +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class MotorAxis(Enum): + """电机轴枚举""" + X = 1 + Y = 2 + Z = 3 + + +class MotorStatus(Enum): + """电机状态枚举""" + STANDBY = 0x0000 # 待机/到位 + RUNNING = 0x0001 # 运行中 + COLLISION_STOP = 0x0002 # 碰撞停 + FORWARD_LIMIT_STOP = 0x0003 # 正光电停 + REVERSE_LIMIT_STOP = 0x0004 # 反光电停 + + +class ModbusFunction(Enum): + """Modbus功能码""" + READ_HOLDING_REGISTERS = 0x03 + WRITE_SINGLE_REGISTER = 0x06 + WRITE_MULTIPLE_REGISTERS = 0x10 + + +@dataclass +class MotorPosition: + """电机位置信息""" + steps: int + speed: int + current: int + status: MotorStatus + + +class ModbusException(Exception): + """Modbus通信异常""" + pass + + +class StepperMotorDriver: + """步进电机驱动器基类""" + + # 寄存器地址常量 + REG_STATUS = 0x00 + REG_POSITION_HIGH = 0x01 + REG_POSITION_LOW = 0x02 + REG_ACTUAL_SPEED = 0x03 + REG_EMERGENCY_STOP = 0x04 + REG_CURRENT = 0x05 + REG_ENABLE = 0x06 + REG_PWM_OUTPUT = 0x07 + REG_ZERO_SINGLE = 0x0E + REG_ZERO_COMMAND = 0x0F + + # 位置模式寄存器 + REG_TARGET_POSITION_HIGH = 0x10 + REG_TARGET_POSITION_LOW = 0x11 + REG_POSITION_SPEED = 0x13 + REG_POSITION_ACCELERATION = 0x14 + REG_POSITION_PRECISION = 0x15 + + # 速度模式寄存器 + REG_SPEED_MODE_SPEED = 0x61 + REG_SPEED_MODE_ACCELERATION = 0x62 + + # 设备参数寄存器 + REG_DEVICE_ADDRESS = 0xE0 + REG_DEFAULT_SPEED = 0xE7 + REG_DEFAULT_ACCELERATION = 0xE8 + + def __init__(self, port: str, baudrate: int = 115200, timeout: float = 1.0): + """ + 初始化步进电机驱动器 + + Args: + port: 串口端口名 + baudrate: 波特率 + timeout: 通信超时时间 + """ + self.port = port + self.baudrate = baudrate + self.timeout = timeout + self.serial_conn: Optional[serial.Serial] = None + + def connect(self) -> bool: + """ + 建立串口连接 + + Returns: + 连接是否成功 + """ + try: + self.serial_conn = serial.Serial( + port=self.port, + baudrate=self.baudrate, + bytesize=serial.EIGHTBITS, + parity=serial.PARITY_NONE, + stopbits=serial.STOPBITS_ONE, + timeout=self.timeout + ) + logger.info(f"已连接到串口: {self.port}") + return True + except Exception as e: + logger.error(f"串口连接失败: {e}") + return False + + def disconnect(self) -> None: + """关闭串口连接""" + if self.serial_conn and self.serial_conn.is_open: + self.serial_conn.close() + logger.info("串口连接已关闭") + + def __enter__(self): + """上下文管理器入口""" + if self.connect(): + return self + raise ModbusException("无法建立串口连接") + + def __exit__(self, exc_type, exc_val, exc_tb): + """上下文管理器出口""" + self.disconnect() + + @staticmethod + def calculate_crc(data: bytes) -> bytes: + """ + 计算Modbus CRC校验码 + + Args: + data: 待校验的数据 + + Returns: + CRC校验码 (2字节) + """ + crc = 0xFFFF + for byte in data: + crc ^= byte + for _ in range(8): + if crc & 0x0001: + crc >>= 1 + crc ^= 0xA001 + else: + crc >>= 1 + return struct.pack(' bytes: + """ + 发送Modbus命令并接收响应 + + Args: + slave_addr: 从站地址 + data: 命令数据 + + Returns: + 响应数据 + + Raises: + ModbusException: 通信异常 + """ + if not self.serial_conn or not self.serial_conn.is_open: + raise ModbusException("串口未连接") + + # 构建完整命令 + command = bytes([slave_addr]) + data + crc = self.calculate_crc(command) + full_command = command + crc + + # 清空接收缓冲区 + self.serial_conn.reset_input_buffer() + + # 发送命令 + self.serial_conn.write(full_command) + logger.debug(f"发送命令: {' '.join(f'{b:02X}' for b in full_command)}") + + # 等待响应 + time.sleep(0.01) # 短暂延时 + + # 读取响应 + response = self.serial_conn.read(256) # 最大读取256字节 + if not response: + raise ModbusException("未收到响应") + + logger.debug(f"接收响应: {' '.join(f'{b:02X}' for b in response)}") + + # 验证CRC + if len(response) < 3: + raise ModbusException("响应数据长度不足") + + data_part = response[:-2] + received_crc = response[-2:] + calculated_crc = self.calculate_crc(data_part) + + if received_crc != calculated_crc: + raise ModbusException("CRC校验失败") + + return response + + def read_registers(self, slave_addr: int, start_addr: int, count: int) -> list: + """ + 读取保持寄存器 + + Args: + slave_addr: 从站地址 + start_addr: 起始地址 + count: 寄存器数量 + + Returns: + 寄存器值列表 + """ + data = struct.pack('>BHH', ModbusFunction.READ_HOLDING_REGISTERS.value, start_addr, count) + response = self._send_command(slave_addr, data) + + if len(response) < 5: + raise ModbusException("响应长度不足") + + if response[1] != ModbusFunction.READ_HOLDING_REGISTERS.value: + raise ModbusException(f"功能码错误: {response[1]:02X}") + + byte_count = response[2] + values = [] + for i in range(0, byte_count, 2): + value = struct.unpack('>H', response[3+i:5+i])[0] + values.append(value) + + return values + + def write_single_register(self, slave_addr: int, addr: int, value: int) -> bool: + """ + 写入单个寄存器 + + Args: + slave_addr: 从站地址 + addr: 寄存器地址 + value: 寄存器值 + + Returns: + 写入是否成功 + """ + data = struct.pack('>BHH', ModbusFunction.WRITE_SINGLE_REGISTER.value, addr, value) + response = self._send_command(slave_addr, data) + + return len(response) >= 8 and response[1] == ModbusFunction.WRITE_SINGLE_REGISTER.value + + def write_multiple_registers(self, slave_addr: int, start_addr: int, values: list) -> bool: + """ + 写入多个寄存器 + + Args: + slave_addr: 从站地址 + start_addr: 起始地址 + values: 寄存器值列表 + + Returns: + 写入是否成功 + """ + byte_count = len(values) * 2 + data = struct.pack('>BHHB', ModbusFunction.WRITE_MULTIPLE_REGISTERS.value, + start_addr, len(values), byte_count) + + for value in values: + data += struct.pack('>H', value) + + response = self._send_command(slave_addr, data) + + return len(response) >= 8 and response[1] == ModbusFunction.WRITE_MULTIPLE_REGISTERS.value + + +class XYZStepperController(StepperMotorDriver): + """XYZ三轴步进电机控制器""" + + # 电机配置常量 + STEPS_PER_REVOLUTION = 16384 # 每圈步数 + + def __init__(self, port: str, baudrate: int = 115200, timeout: float = 1.0): + """ + 初始化XYZ三轴步进电机控制器 + + Args: + port: 串口端口名 + baudrate: 波特率 + timeout: 通信超时时间 + """ + super().__init__(port, baudrate, timeout) + self.axis_addresses = { + MotorAxis.X: 1, + MotorAxis.Y: 2, + MotorAxis.Z: 3 + } + + def degrees_to_steps(self, degrees: float) -> int: + """ + 将角度转换为步数 + + Args: + degrees: 角度值 + + Returns: + 对应的步数 + """ + return int(degrees * self.STEPS_PER_REVOLUTION / 360.0) + + def steps_to_degrees(self, steps: int) -> float: + """ + 将步数转换为角度 + + Args: + steps: 步数 + + Returns: + 对应的角度值 + """ + return steps * 360.0 / self.STEPS_PER_REVOLUTION + + def revolutions_to_steps(self, revolutions: float) -> int: + """ + 将圈数转换为步数 + + Args: + revolutions: 圈数 + + Returns: + 对应的步数 + """ + return int(revolutions * self.STEPS_PER_REVOLUTION) + + def steps_to_revolutions(self, steps: int) -> float: + """ + 将步数转换为圈数 + + Args: + steps: 步数 + + Returns: + 对应的圈数 + """ + return steps / self.STEPS_PER_REVOLUTION + + def get_motor_status(self, axis: MotorAxis) -> MotorPosition: + """ + 获取电机状态信息 + + Args: + axis: 电机轴 + + Returns: + 电机位置信息 + """ + addr = self.axis_addresses[axis] + + # 读取状态、位置、速度、电流 + values = self.read_registers(addr, self.REG_STATUS, 6) + + status = MotorStatus(values[0]) + position_high = values[1] + position_low = values[2] + speed = values[3] + current = values[5] + + # 合并32位位置 + position = (position_high << 16) | position_low + # 处理有符号数 + if position > 0x7FFFFFFF: + position -= 0x100000000 + + return MotorPosition(position, speed, current, status) + + def emergency_stop(self, axis: MotorAxis) -> bool: + """ + 紧急停止电机 + + Args: + axis: 电机轴 + + Returns: + 操作是否成功 + """ + addr = self.axis_addresses[axis] + return self.write_single_register(addr, self.REG_EMERGENCY_STOP, 0x0000) + + def enable_motor(self, axis: MotorAxis, enable: bool = True) -> bool: + """ + 使能/失能电机 + + Args: + axis: 电机轴 + enable: True为使能,False为失能 + + Returns: + 操作是否成功 + """ + addr = self.axis_addresses[axis] + value = 0x0001 if enable else 0x0000 + return self.write_single_register(addr, self.REG_ENABLE, value) + + def move_to_position(self, axis: MotorAxis, position: int, speed: int = 5000, + acceleration: int = 1000, precision: int = 100) -> bool: + """ + 移动到指定位置 + + Args: + axis: 电机轴 + position: 目标位置(步数) + speed: 运行速度(rpm) + acceleration: 加速度(rpm/s) + precision: 到位精度 + + Returns: + 操作是否成功 + """ + addr = self.axis_addresses[axis] + + # 处理32位位置 + if position < 0: + position += 0x100000000 + + position_high = (position >> 16) & 0xFFFF + position_low = position & 0xFFFF + + values = [ + position_high, # 目标位置高位 + position_low, # 目标位置低位 + 0x0000, # 保留 + speed, # 速度 + acceleration, # 加速度 + precision # 精度 + ] + + return self.write_multiple_registers(addr, self.REG_TARGET_POSITION_HIGH, values) + + def set_speed_mode(self, axis: MotorAxis, speed: int, acceleration: int = 1000) -> bool: + """ + 设置速度模式运行 + + Args: + axis: 电机轴 + speed: 运行速度(rpm),正值正转,负值反转 + acceleration: 加速度(rpm/s) + + Returns: + 操作是否成功 + """ + addr = self.axis_addresses[axis] + + # 处理负数 + if speed < 0: + speed = 0x10000 + speed # 补码表示 + + values = [0x0000, speed, acceleration, 0x0000] + + return self.write_multiple_registers(addr, 0x60, values) + + def home_axis(self, axis: MotorAxis) -> bool: + """ + 轴归零操作 + + Args: + axis: 电机轴 + + Returns: + 操作是否成功 + """ + addr = self.axis_addresses[axis] + return self.write_single_register(addr, self.REG_ZERO_SINGLE, 0x0001) + + def wait_for_completion(self, axis: MotorAxis, timeout: float = 30.0) -> bool: + """ + 等待电机运动完成 + + Args: + axis: 电机轴 + timeout: 超时时间(秒) + + Returns: + 是否在超时前完成 + """ + start_time = time.time() + + while time.time() - start_time < timeout: + status = self.get_motor_status(axis) + if status.status == MotorStatus.STANDBY: + return True + time.sleep(0.1) + + logger.warning(f"{axis.name}轴运动超时") + return False + + def move_xyz(self, x: Optional[int] = None, y: Optional[int] = None, z: Optional[int] = None, + speed: int = 5000, acceleration: int = 1000) -> Dict[MotorAxis, bool]: + """ + 同时控制XYZ轴移动 + + Args: + x: X轴目标位置 + y: Y轴目标位置 + z: Z轴目标位置 + speed: 运行速度 + acceleration: 加速度 + + Returns: + 各轴操作结果字典 + """ + results = {} + + if x is not None: + results[MotorAxis.X] = self.move_to_position(MotorAxis.X, x, speed, acceleration) + + if y is not None: + results[MotorAxis.Y] = self.move_to_position(MotorAxis.Y, y, speed, acceleration) + + if z is not None: + results[MotorAxis.Z] = self.move_to_position(MotorAxis.Z, z, speed, acceleration) + + return results + + def move_xyz_degrees(self, x_deg: Optional[float] = None, y_deg: Optional[float] = None, + z_deg: Optional[float] = None, speed: int = 5000, + acceleration: int = 1000) -> Dict[MotorAxis, bool]: + """ + 使用角度值同时移动多个轴到指定位置 + + Args: + x_deg: X轴目标角度(度) + y_deg: Y轴目标角度(度) + z_deg: Z轴目标角度(度) + speed: 移动速度 + acceleration: 加速度 + + Returns: + 各轴移动操作结果 + """ + # 将角度转换为步数 + x_steps = self.degrees_to_steps(x_deg) if x_deg is not None else None + y_steps = self.degrees_to_steps(y_deg) if y_deg is not None else None + z_steps = self.degrees_to_steps(z_deg) if z_deg is not None else None + + return self.move_xyz(x_steps, y_steps, z_steps, speed, acceleration) + + def move_xyz_revolutions(self, x_rev: Optional[float] = None, y_rev: Optional[float] = None, + z_rev: Optional[float] = None, speed: int = 5000, + acceleration: int = 1000) -> Dict[MotorAxis, bool]: + """ + 使用圈数值同时移动多个轴到指定位置 + + Args: + x_rev: X轴目标圈数 + y_rev: Y轴目标圈数 + z_rev: Z轴目标圈数 + speed: 移动速度 + acceleration: 加速度 + + Returns: + 各轴移动操作结果 + """ + # 将圈数转换为步数 + x_steps = self.revolutions_to_steps(x_rev) if x_rev is not None else None + y_steps = self.revolutions_to_steps(y_rev) if y_rev is not None else None + z_steps = self.revolutions_to_steps(z_rev) if z_rev is not None else None + + return self.move_xyz(x_steps, y_steps, z_steps, speed, acceleration) + + def move_to_position_degrees(self, axis: MotorAxis, degrees: float, speed: int = 5000, + acceleration: int = 1000, precision: int = 100) -> bool: + """ + 使用角度值移动单个轴到指定位置 + + Args: + axis: 电机轴 + degrees: 目标角度(度) + speed: 移动速度 + acceleration: 加速度 + precision: 精度 + + Returns: + 移动操作是否成功 + """ + steps = self.degrees_to_steps(degrees) + return self.move_to_position(axis, steps, speed, acceleration, precision) + + def move_to_position_revolutions(self, axis: MotorAxis, revolutions: float, speed: int = 5000, + acceleration: int = 1000, precision: int = 100) -> bool: + """ + 使用圈数值移动单个轴到指定位置 + + Args: + axis: 电机轴 + revolutions: 目标圈数 + speed: 移动速度 + acceleration: 加速度 + precision: 精度 + + Returns: + 移动操作是否成功 + """ + steps = self.revolutions_to_steps(revolutions) + return self.move_to_position(axis, steps, speed, acceleration, precision) + + def stop_all_axes(self) -> Dict[MotorAxis, bool]: + """ + 紧急停止所有轴 + + Returns: + 各轴停止结果字典 + """ + results = {} + for axis in MotorAxis: + results[axis] = self.emergency_stop(axis) + return results + + def enable_all_axes(self, enable: bool = True) -> Dict[MotorAxis, bool]: + """ + 使能/失能所有轴 + + Args: + enable: True为使能,False为失能 + + Returns: + 各轴操作结果字典 + """ + results = {} + for axis in MotorAxis: + results[axis] = self.enable_motor(axis, enable) + return results + + def get_all_positions(self) -> Dict[MotorAxis, MotorPosition]: + """ + 获取所有轴的位置信息 + + Returns: + 各轴位置信息字典 + """ + positions = {} + for axis in MotorAxis: + positions[axis] = self.get_motor_status(axis) + return positions + + def home_all_axes(self) -> Dict[MotorAxis, bool]: + """ + 所有轴归零 + + Returns: + 各轴归零结果字典 + """ + results = {} + for axis in MotorAxis: + results[axis] = self.home_axis(axis) + return results diff --git a/unilabos/devices/laiyu_liquid/tests/__init__.py b/unilabos/devices/laiyu_liquid/tests/__init__.py new file mode 100644 index 00000000..7ff58fe2 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/tests/__init__.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +LaiYu液体处理设备测试模块 + +该模块包含LaiYu液体处理设备的测试用例: +- test_deck_config.py: 工作台配置测试 + +作者: UniLab团队 +版本: 2.0.0 +""" + +__all__ = [] \ No newline at end of file diff --git a/unilabos/devices/laiyu_liquid/tests/test_deck_config.py b/unilabos/devices/laiyu_liquid/tests/test_deck_config.py new file mode 100644 index 00000000..04688302 --- /dev/null +++ b/unilabos/devices/laiyu_liquid/tests/test_deck_config.py @@ -0,0 +1,315 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +测试脚本:验证更新后的deck配置是否正常工作 +""" + +import sys +import os +import json + +# 添加项目根目录到Python路径 +project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.insert(0, project_root) + +def test_config_loading(): + """测试配置文件加载功能""" + print("=" * 50) + print("测试配置文件加载功能") + print("=" * 50) + + try: + # 直接测试配置文件加载 + config_path = os.path.join(os.path.dirname(__file__), "controllers", "deckconfig.json") + fallback_path = os.path.join(os.path.dirname(__file__), "config", "deck.json") + + config = None + config_source = "" + + if os.path.exists(config_path): + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + config_source = "config/deckconfig.json" + elif os.path.exists(fallback_path): + with open(fallback_path, 'r', encoding='utf-8') as f: + config = json.load(f) + config_source = "config/deck.json" + else: + print("❌ 配置文件不存在") + return False + + print(f"✅ 配置文件加载成功: {config_source}") + print(f" - 甲板尺寸: {config.get('size_x', 'N/A')} x {config.get('size_y', 'N/A')} x {config.get('size_z', 'N/A')}") + print(f" - 子模块数量: {len(config.get('children', []))}") + + # 检查各个模块是否存在 + modules = config.get('children', []) + module_types = [module.get('type') for module in modules] + module_names = [module.get('name') for module in modules] + + print(f" - 模块类型: {', '.join(set(filter(None, module_types)))}") + print(f" - 模块名称: {', '.join(filter(None, module_names))}") + + return config + except Exception as e: + print(f"❌ 配置文件加载失败: {e}") + return None + +def test_module_coordinates(config): + """测试各模块的坐标信息""" + print("\n" + "=" * 50) + print("测试模块坐标信息") + print("=" * 50) + + if not config: + print("❌ 配置为空,无法测试") + return False + + modules = config.get('children', []) + + for module in modules: + module_name = module.get('name', '未知模块') + module_type = module.get('type', '未知类型') + position = module.get('position', {}) + size = module.get('size', {}) + + print(f"\n模块: {module_name} ({module_type})") + print(f" - 位置: ({position.get('x', 0)}, {position.get('y', 0)}, {position.get('z', 0)})") + print(f" - 尺寸: {size.get('x', 0)} x {size.get('y', 0)} x {size.get('z', 0)}") + + # 检查孔位信息 + wells = module.get('wells', []) + if wells: + print(f" - 孔位数量: {len(wells)}") + + # 显示前几个和后几个孔位的坐标 + sample_wells = wells[:3] + wells[-3:] if len(wells) > 6 else wells + for well in sample_wells: + well_id = well.get('id', '未知') + well_pos = well.get('position', {}) + print(f" {well_id}: ({well_pos.get('x', 0)}, {well_pos.get('y', 0)}, {well_pos.get('z', 0)})") + else: + print(f" - 无孔位信息") + + return True + +def test_coordinate_ranges(config): + """测试坐标范围的合理性""" + print("\n" + "=" * 50) + print("测试坐标范围合理性") + print("=" * 50) + + if not config: + print("❌ 配置为空,无法测试") + return False + + deck_size = { + 'x': config.get('size_x', 340), + 'y': config.get('size_y', 250), + 'z': config.get('size_z', 160) + } + + print(f"甲板尺寸: {deck_size['x']} x {deck_size['y']} x {deck_size['z']}") + + modules = config.get('children', []) + all_coordinates = [] + + for module in modules: + module_name = module.get('name', '未知模块') + wells = module.get('wells', []) + + for well in wells: + well_pos = well.get('position', {}) + x, y, z = well_pos.get('x', 0), well_pos.get('y', 0), well_pos.get('z', 0) + all_coordinates.append((x, y, z, f"{module_name}:{well.get('id', '未知')}")) + + if not all_coordinates: + print("❌ 没有找到任何坐标信息") + return False + + # 计算坐标范围 + x_coords = [coord[0] for coord in all_coordinates] + y_coords = [coord[1] for coord in all_coordinates] + z_coords = [coord[2] for coord in all_coordinates] + + x_range = (min(x_coords), max(x_coords)) + y_range = (min(y_coords), max(y_coords)) + z_range = (min(z_coords), max(z_coords)) + + print(f"X坐标范围: {x_range[0]:.2f} ~ {x_range[1]:.2f}") + print(f"Y坐标范围: {y_range[0]:.2f} ~ {y_range[1]:.2f}") + print(f"Z坐标范围: {z_range[0]:.2f} ~ {z_range[1]:.2f}") + + # 检查是否超出甲板范围 + issues = [] + if x_range[1] > deck_size['x']: + issues.append(f"X坐标超出甲板范围: {x_range[1]} > {deck_size['x']}") + if y_range[1] > deck_size['y']: + issues.append(f"Y坐标超出甲板范围: {y_range[1]} > {deck_size['y']}") + if z_range[1] > deck_size['z']: + issues.append(f"Z坐标超出甲板范围: {z_range[1]} > {deck_size['z']}") + + if x_range[0] < 0: + issues.append(f"X坐标为负值: {x_range[0]}") + if y_range[0] < 0: + issues.append(f"Y坐标为负值: {y_range[0]}") + if z_range[0] < 0: + issues.append(f"Z坐标为负值: {z_range[0]}") + + if issues: + print("⚠️ 发现坐标问题:") + for issue in issues: + print(f" - {issue}") + return False + else: + print("✅ 所有坐标都在合理范围内") + return True + +def test_well_spacing(config): + """测试孔位间距的一致性""" + print("\n" + "=" * 50) + print("测试孔位间距一致性") + print("=" * 50) + + if not config: + print("❌ 配置为空,无法测试") + return False + + modules = config.get('children', []) + + for module in modules: + module_name = module.get('name', '未知模块') + module_type = module.get('type', '未知类型') + wells = module.get('wells', []) + + if len(wells) < 2: + continue + + print(f"\n模块: {module_name} ({module_type})") + + # 计算相邻孔位的间距 + spacings_x = [] + spacings_y = [] + + # 按行列排序孔位 + wells_by_row = {} + for well in wells: + well_id = well.get('id', '') + if len(well_id) >= 3: # 如A01格式 + row = well_id[0] + col = int(well_id[1:]) + if row not in wells_by_row: + wells_by_row[row] = {} + wells_by_row[row][col] = well + + # 计算同行相邻孔位的X间距 + for row, cols in wells_by_row.items(): + sorted_cols = sorted(cols.keys()) + for i in range(len(sorted_cols) - 1): + col1, col2 = sorted_cols[i], sorted_cols[i + 1] + if col2 == col1 + 1: # 相邻列 + pos1 = cols[col1].get('position', {}) + pos2 = cols[col2].get('position', {}) + spacing = abs(pos2.get('x', 0) - pos1.get('x', 0)) + spacings_x.append(spacing) + + # 计算同列相邻孔位的Y间距 + cols_by_row = {} + for well in wells: + well_id = well.get('id', '') + if len(well_id) >= 3: + row = ord(well_id[0]) - ord('A') + col = int(well_id[1:]) + if col not in cols_by_row: + cols_by_row[col] = {} + cols_by_row[col][row] = well + + for col, rows in cols_by_row.items(): + sorted_rows = sorted(rows.keys()) + for i in range(len(sorted_rows) - 1): + row1, row2 = sorted_rows[i], sorted_rows[i + 1] + if row2 == row1 + 1: # 相邻行 + pos1 = rows[row1].get('position', {}) + pos2 = rows[row2].get('position', {}) + spacing = abs(pos2.get('y', 0) - pos1.get('y', 0)) + spacings_y.append(spacing) + + # 检查间距一致性 + if spacings_x: + avg_x = sum(spacings_x) / len(spacings_x) + max_diff_x = max(abs(s - avg_x) for s in spacings_x) + print(f" - X方向平均间距: {avg_x:.2f}mm, 最大偏差: {max_diff_x:.2f}mm") + + if spacings_y: + avg_y = sum(spacings_y) / len(spacings_y) + max_diff_y = max(abs(s - avg_y) for s in spacings_y) + print(f" - Y方向平均间距: {avg_y:.2f}mm, 最大偏差: {max_diff_y:.2f}mm") + + return True + +def main(): + """主测试函数""" + print("LaiYu液体处理设备配置测试") + print("测试时间:", os.popen('date').read().strip()) + + # 运行所有测试 + tests = [ + ("配置文件加载", test_config_loading), + ] + + config = None + results = [] + + for test_name, test_func in tests: + try: + if test_name == "配置文件加载": + result = test_func() + config = result if result else None + results.append((test_name, bool(result))) + else: + result = test_func(config) + results.append((test_name, result)) + except Exception as e: + print(f"❌ 测试 {test_name} 执行失败: {e}") + results.append((test_name, False)) + + # 如果配置加载成功,运行其他测试 + if config: + additional_tests = [ + ("模块坐标信息", test_module_coordinates), + ("坐标范围合理性", test_coordinate_ranges), + ("孔位间距一致性", test_well_spacing) + ] + + for test_name, test_func in additional_tests: + try: + result = test_func(config) + results.append((test_name, result)) + except Exception as e: + print(f"❌ 测试 {test_name} 执行失败: {e}") + results.append((test_name, False)) + + # 输出测试总结 + print("\n" + "=" * 50) + print("测试总结") + print("=" * 50) + + passed = sum(1 for _, result in results if result) + total = len(results) + + for test_name, result in results: + status = "✅ 通过" if result else "❌ 失败" + print(f" {test_name}: {status}") + + print(f"\n总计: {passed}/{total} 个测试通过") + + if passed == total: + print("🎉 所有测试通过!配置更新成功。") + return True + else: + print("⚠️ 部分测试失败,需要进一步检查。") + return False + +if __name__ == "__main__": + success = main() + sys.exit(0 if success else 1) \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/rviz_backend.py b/unilabos/devices/liquid_handling/rviz_backend.py new file mode 100644 index 00000000..05078a13 --- /dev/null +++ b/unilabos/devices/liquid_handling/rviz_backend.py @@ -0,0 +1,304 @@ + +import json +from typing import List, Optional, Union + +from pylabrobot.liquid_handling.backends.backend import ( + LiquidHandlerBackend, +) +from pylabrobot.liquid_handling.standard import ( + Drop, + DropTipRack, + MultiHeadAspirationContainer, + MultiHeadAspirationPlate, + MultiHeadDispenseContainer, + MultiHeadDispensePlate, + Pickup, + PickupTipRack, + ResourceDrop, + ResourceMove, + ResourcePickup, + SingleChannelAspiration, + SingleChannelDispense, +) +from pylabrobot.resources import Resource, Tip + +import rclpy +from rclpy.node import Node +from sensor_msgs.msg import JointState +import time +from rclpy.action import ActionClient +from unilabos_msgs.action import SendCmd +import re + +from unilabos.devices.ros_dev.liquid_handler_joint_publisher import JointStatePublisher + + +class UniLiquidHandlerRvizBackend(LiquidHandlerBackend): + """Chatter box backend for device-free testing. Prints out all operations.""" + + _pip_length = 5 + _vol_length = 8 + _resource_length = 20 + _offset_length = 16 + _flow_rate_length = 10 + _blowout_length = 10 + _lld_z_length = 10 + _kwargs_length = 15 + _tip_type_length = 12 + _max_volume_length = 16 + _fitting_depth_length = 20 + _tip_length_length = 16 + # _pickup_method_length = 20 + _filter_length = 10 + + def __init__(self, num_channels: int = 8 , tip_length: float = 0 , total_height: float = 310): + """Initialize a chatter box backend.""" + super().__init__() + self._num_channels = num_channels + self.tip_length = tip_length + self.total_height = total_height +# rclpy.init() + if not rclpy.ok(): + rclpy.init() + self.joint_state_publisher = None + + async def setup(self): + self.joint_state_publisher = JointStatePublisher() + await super().setup() + + print("Setting up the liquid handler.") + + async def stop(self): + print("Stopping the liquid handler.") + + def serialize(self) -> dict: + return {**super().serialize(), "num_channels": self.num_channels} + + @property + def num_channels(self) -> int: + return self._num_channels + + async def assigned_resource_callback(self, resource: Resource): + print(f"Resource {resource.name} was assigned to the liquid handler.") + + async def unassigned_resource_callback(self, name: str): + print(f"Resource {name} was unassigned from the liquid handler.") + + async def pick_up_tips(self, ops: List[Pickup], use_channels: List[int], **backend_kwargs): + print("Picking up tips:") + # print(ops.tip) + header = ( + f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " + f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{'tip type':<{UniLiquidHandlerRvizBackend._tip_type_length}} " + f"{'max volume (µL)':<{UniLiquidHandlerRvizBackend._max_volume_length}} " + f"{'fitting depth (mm)':<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " + f"{'tip length (mm)':<{UniLiquidHandlerRvizBackend._tip_length_length}} " + # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " + f"{'filter':<{UniLiquidHandlerRvizBackend._filter_length}}" + ) + # print(header) + + for op, channel in zip(ops, use_channels): + offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" + row = ( + f" p{channel}: " + f"{op.resource.name[-30:]:<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{op.tip.__class__.__name__:<{UniLiquidHandlerRvizBackend._tip_type_length}} " + f"{op.tip.maximal_volume:<{UniLiquidHandlerRvizBackend._max_volume_length}} " + f"{op.tip.fitting_depth:<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " + f"{op.tip.total_tip_length:<{UniLiquidHandlerRvizBackend._tip_length_length}} " + # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " + f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerRvizBackend._filter_length}}" + ) + # print(row) + # print(op.resource.get_absolute_location()) + + self.tip_length = ops[0].tip.total_tip_length + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + offset_xyz = ops[0].offset + x = coordinate.x + offset_xyz.x + y = coordinate.y + offset_xyz.y + z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z + # print("moving") + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "pick",channels=use_channels) + # goback() + + + + + async def drop_tips(self, ops: List[Drop], use_channels: List[int], **backend_kwargs): + print("Dropping tips:") + header = ( + f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " + f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{'tip type':<{UniLiquidHandlerRvizBackend._tip_type_length}} " + f"{'max volume (µL)':<{UniLiquidHandlerRvizBackend._max_volume_length}} " + f"{'fitting depth (mm)':<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " + f"{'tip length (mm)':<{UniLiquidHandlerRvizBackend._tip_length_length}} " + # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " + f"{'filter':<{UniLiquidHandlerRvizBackend._filter_length}}" + ) + # print(header) + + for op, channel in zip(ops, use_channels): + offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" + row = ( + f" p{channel}: " + f"{op.resource.name[-30:]:<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{op.tip.__class__.__name__:<{UniLiquidHandlerRvizBackend._tip_type_length}} " + f"{op.tip.maximal_volume:<{UniLiquidHandlerRvizBackend._max_volume_length}} " + f"{op.tip.fitting_depth:<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " + f"{op.tip.total_tip_length:<{UniLiquidHandlerRvizBackend._tip_length_length}} " + # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " + f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerRvizBackend._filter_length}}" + ) + # print(row) + + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + offset_xyz = ops[0].offset + x = coordinate.x + offset_xyz.x + y = coordinate.y + offset_xyz.y + z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z + # print(x, y, z) + # print("moving") + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "drop_trash",channels=use_channels) + # goback() + + async def aspirate( + self, + ops: List[SingleChannelAspiration], + use_channels: List[int], + **backend_kwargs, + ): + print("Aspirating:") + header = ( + f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " + f"{'vol(ul)':<{UniLiquidHandlerRvizBackend._vol_length}} " + f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{'flow rate':<{UniLiquidHandlerRvizBackend._flow_rate_length}} " + f"{'blowout':<{UniLiquidHandlerRvizBackend._blowout_length}} " + f"{'lld_z':<{UniLiquidHandlerRvizBackend._lld_z_length}} " + # f"{'liquids':<20}" # TODO: add liquids + ) + for key in backend_kwargs: + header += f"{key:<{UniLiquidHandlerRvizBackend._kwargs_length}} "[-16:] + # print(header) + + for o, p in zip(ops, use_channels): + offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" + row = ( + f" p{p}: " + f"{o.volume:<{UniLiquidHandlerRvizBackend._vol_length}} " + f"{o.resource.name[-20:]:<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{str(o.flow_rate):<{UniLiquidHandlerRvizBackend._flow_rate_length}} " + f"{str(o.blow_out_air_volume):<{UniLiquidHandlerRvizBackend._blowout_length}} " + f"{str(o.liquid_height):<{UniLiquidHandlerRvizBackend._lld_z_length}} " + # f"{o.liquids if o.liquids is not None else 'none'}" + ) + for key, value in backend_kwargs.items(): + if isinstance(value, list) and all(isinstance(v, bool) for v in value): + value = "".join("T" if v else "F" for v in value) + if isinstance(value, list): + value = "".join(map(str, value)) + row += f" {value:<15}" + # print(row) + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + offset_xyz = ops[0].offset + x = coordinate.x + offset_xyz.x + y = coordinate.y + offset_xyz.y + z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z + # print(x, y, z) + # print("moving") + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "",channels=use_channels) + + + async def dispense( + self, + ops: List[SingleChannelDispense], + use_channels: List[int], + **backend_kwargs, + ): + # print("Dispensing:") + header = ( + f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " + f"{'vol(ul)':<{UniLiquidHandlerRvizBackend._vol_length}} " + f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{'flow rate':<{UniLiquidHandlerRvizBackend._flow_rate_length}} " + f"{'blowout':<{UniLiquidHandlerRvizBackend._blowout_length}} " + f"{'lld_z':<{UniLiquidHandlerRvizBackend._lld_z_length}} " + # f"{'liquids':<20}" # TODO: add liquids + ) + for key in backend_kwargs: + header += f"{key:<{UniLiquidHandlerRvizBackend._kwargs_length}} "[-16:] + # print(header) + + for o, p in zip(ops, use_channels): + offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" + row = ( + f" p{p}: " + f"{o.volume:<{UniLiquidHandlerRvizBackend._vol_length}} " + f"{o.resource.name[-20:]:<{UniLiquidHandlerRvizBackend._resource_length}} " + f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " + f"{str(o.flow_rate):<{UniLiquidHandlerRvizBackend._flow_rate_length}} " + f"{str(o.blow_out_air_volume):<{UniLiquidHandlerRvizBackend._blowout_length}} " + f"{str(o.liquid_height):<{UniLiquidHandlerRvizBackend._lld_z_length}} " + # f"{o.liquids if o.liquids is not None else 'none'}" + ) + for key, value in backend_kwargs.items(): + if isinstance(value, list) and all(isinstance(v, bool) for v in value): + value = "".join("T" if v else "F" for v in value) + if isinstance(value, list): + value = "".join(map(str, value)) + row += f" {value:<{UniLiquidHandlerRvizBackend._kwargs_length}}" + # print(row) + coordinate = ops[0].resource.get_absolute_location(x="c",y="c") + offset_xyz = ops[0].offset + x = coordinate.x + offset_xyz.x + y = coordinate.y + offset_xyz.y + z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z + # print(x, y, z) + # print("moving") + self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "",channels=use_channels) + + async def pick_up_tips96(self, pickup: PickupTipRack, **backend_kwargs): + print(f"Picking up tips from {pickup.resource.name}.") + + async def drop_tips96(self, drop: DropTipRack, **backend_kwargs): + print(f"Dropping tips to {drop.resource.name}.") + + async def aspirate96( + self, aspiration: Union[MultiHeadAspirationPlate, MultiHeadAspirationContainer] + ): + if isinstance(aspiration, MultiHeadAspirationPlate): + resource = aspiration.wells[0].parent + else: + resource = aspiration.container + print(f"Aspirating {aspiration.volume} from {resource}.") + + async def dispense96(self, dispense: Union[MultiHeadDispensePlate, MultiHeadDispenseContainer]): + if isinstance(dispense, MultiHeadDispensePlate): + resource = dispense.wells[0].parent + else: + resource = dispense.container + print(f"Dispensing {dispense.volume} to {resource}.") + + async def pick_up_resource(self, pickup: ResourcePickup): + print(f"Picking up resource: {pickup}") + + async def move_picked_up_resource(self, move: ResourceMove): + print(f"Moving picked up resource: {move}") + + async def drop_resource(self, drop: ResourceDrop): + print(f"Dropping resource: {drop}") + + def can_pick_up_tip(self, channel_idx: int, tip: Tip) -> bool: + return True + diff --git a/unilabos/registry/devices/laiyu_liquid.yaml b/unilabos/registry/devices/laiyu_liquid.yaml new file mode 100644 index 00000000..1c6546e1 --- /dev/null +++ b/unilabos/registry/devices/laiyu_liquid.yaml @@ -0,0 +1,1963 @@ +laiyu_liquid: + category: + - liquid_handler + - workstation + - laiyu_liquid + class: + action_value_mappings: + add_liquid: + feedback: {} + goal: + asp_vols: asp_vols + dis_vols: dis_vols + flow_rates: flow_rates + offsets: offsets + reagent_sources: reagent_sources + targets: targets + use_channels: use_channels + goal_default: + asp_vols: + - 0.0 + blow_out_air_volume: + - 0.0 + dis_vols: + - 0.0 + flow_rates: + - 0.0 + is_96_well: false + liquid_height: + - 0.0 + mix_liquid_height: 0.0 + mix_rate: 0 + mix_time: 0 + mix_vol: 0 + none_keys: + - '' + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + reagent_sources: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + spread: '' + targets: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + use_channels: + - 0 + handles: {} + placeholder_keys: + reagent_sources: unilabos_resources + targets: unilabos_resources + result: {} + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerAdd_Feedback + type: object + goal: + properties: + asp_vols: + items: + type: number + type: array + blow_out_air_volume: + items: + type: number + type: array + dis_vols: + items: + type: number + type: array + flow_rates: + items: + type: number + type: array + is_96_well: + type: boolean + liquid_height: + items: + type: number + type: array + mix_liquid_height: + type: number + mix_rate: + maximum: 2147483647 + minimum: -2147483648 + type: integer + mix_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + mix_vol: + maximum: 2147483647 + minimum: -2147483648 + type: integer + none_keys: + items: + type: string + type: array + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + reagent_sources: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: reagent_sources + type: object + type: array + spread: + type: string + targets: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: targets + type: object + type: array + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + required: + - asp_vols + - dis_vols + - reagent_sources + - targets + - use_channels + - flow_rates + - offsets + - liquid_height + - blow_out_air_volume + - spread + - is_96_well + - mix_time + - mix_vol + - mix_rate + - mix_liquid_height + - none_keys + title: LiquidHandlerAdd_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerAdd_Result + type: object + required: + - goal + title: LiquidHandlerAdd + type: object + type: LiquidHandlerAdd + aspirate: + feedback: {} + goal: + flow_rates: flow_rates + resources: resources + use_channels: use_channels + vols: vols + goal_default: + blow_out_air_volume: + - 0.0 + flow_rates: + - 0.0 + liquid_height: + - 0.0 + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + resources: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + spread: '' + use_channels: + - 0 + vols: + - 0.0 + handles: {} + placeholder_keys: + resources: unilabos_resources + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerAspirate_Feedback + type: object + goal: + properties: + blow_out_air_volume: + items: + type: number + type: array + flow_rates: + items: + type: number + type: array + liquid_height: + items: + type: number + type: array + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + resources: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: resources + type: object + type: array + spread: + type: string + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + vols: + items: + type: number + type: array + required: + - resources + - vols + - use_channels + - flow_rates + - offsets + - liquid_height + - blow_out_air_volume + - spread + title: LiquidHandlerAspirate_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerAspirate_Result + type: object + required: + - goal + title: LiquidHandlerAspirate + type: object + type: LiquidHandlerAspirate + dispense: + feedback: {} + goal: + flow_rates: flow_rates + resources: resources + use_channels: use_channels + vols: vols + goal_default: + blow_out_air_volume: + - 0 + flow_rates: + - 0.0 + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + resources: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + spread: '' + use_channels: + - 0 + vols: + - 0.0 + handles: {} + placeholder_keys: + resources: unilabos_resources + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerDispense_Feedback + type: object + goal: + properties: + blow_out_air_volume: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + flow_rates: + items: + type: number + type: array + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + resources: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: resources + type: object + type: array + spread: + type: string + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + vols: + items: + type: number + type: array + required: + - resources + - vols + - use_channels + - flow_rates + - offsets + - blow_out_air_volume + - spread + title: LiquidHandlerDispense_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerDispense_Result + type: object + required: + - goal + title: LiquidHandlerDispense + type: object + type: LiquidHandlerDispense + drop_tip: + feedback: {} + goal: + use_channels: use_channels + goal_default: + allow_nonzero_volume: false + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + tip_spots: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + use_channels: + - 0 + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerDropTips_Feedback + type: object + goal: + properties: + allow_nonzero_volume: + type: boolean + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + tip_spots: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: tip_spots + type: object + type: array + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + required: + - tip_spots + - use_channels + - offsets + - allow_nonzero_volume + title: LiquidHandlerDropTips_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerDropTips_Result + type: object + required: + - goal + title: LiquidHandlerDropTips + type: object + type: LiquidHandlerDropTips + move_to: + feedback: {} + goal: + channel: channel + dis_to_top: dis_to_top + well: well + goal_default: + channel: 0 + dis_to_top: 0.0 + well: + category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + handles: {} + placeholder_keys: + well: unilabos_resources + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerMoveTo_Feedback + type: object + goal: + properties: + channel: + maximum: 2147483647 + minimum: -2147483648 + type: integer + dis_to_top: + type: number + well: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: well + type: object + required: + - well + - dis_to_top + - channel + title: LiquidHandlerMoveTo_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerMoveTo_Result + type: object + required: + - goal + title: LiquidHandlerMoveTo + type: object + type: LiquidHandlerMoveTo + pick_up_tip: + feedback: {} + goal: + tip_rack: tip_rack + use_channels: use_channels + goal_default: + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + tip_spots: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + use_channels: + - 0 + handles: {} + placeholder_keys: + tip_rack: unilabos_resources + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerPickUpTips_Feedback + type: object + goal: + properties: + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + tip_spots: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: tip_spots + type: object + type: array + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + required: + - tip_spots + - use_channels + - offsets + title: LiquidHandlerPickUpTips_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerPickUpTips_Result + type: object + required: + - goal + title: LiquidHandlerPickUpTips + type: object + type: LiquidHandlerPickUpTips + setup: + feedback: {} + goal: + string: string + goal_default: + string: '' + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: StrSingleInput_Feedback + type: object + goal: + properties: + string: + type: string + required: + - string + title: StrSingleInput_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: StrSingleInput_Result + type: object + required: + - goal + title: StrSingleInput + type: object + type: StrSingleInput + stop: + feedback: {} + goal: + string: string + goal_default: + string: '' + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: StrSingleInput_Feedback + type: object + goal: + properties: + string: + type: string + required: + - string + title: StrSingleInput_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: StrSingleInput_Result + type: object + required: + - goal + title: StrSingleInput + type: object + type: StrSingleInput + transfer: + feedback: {} + goal: + source: source + target: target + tip_position: tip_position + tip_rack: tip_rack + volume: volume + goal_default: + asp_flow_rates: + - 0.0 + asp_vols: + - 0.0 + blow_out_air_volume: + - 0.0 + delays: + - 0 + dis_flow_rates: + - 0.0 + dis_vols: + - 0.0 + is_96_well: false + liquid_height: + - 0.0 + mix_liquid_height: 0.0 + mix_rate: 0 + mix_stage: '' + mix_times: + - 0 + mix_vol: 0 + none_keys: + - '' + offsets: + - x: 0.0 + y: 0.0 + z: 0.0 + sources: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + spread: '' + targets: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + tip_racks: + - category: '' + children: [] + config: '' + data: '' + id: '' + name: '' + parent: '' + pose: + orientation: + w: 1.0 + x: 0.0 + y: 0.0 + z: 0.0 + position: + x: 0.0 + y: 0.0 + z: 0.0 + sample_id: '' + type: '' + touch_tip: false + use_channels: + - 0 + handles: {} + placeholder_keys: + source: unilabos_resources + target: unilabos_resources + tip_rack: unilabos_resources + result: + success: success + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: LiquidHandlerTransfer_Feedback + type: object + goal: + properties: + asp_flow_rates: + items: + type: number + type: array + asp_vols: + items: + type: number + type: array + blow_out_air_volume: + items: + type: number + type: array + delays: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + dis_flow_rates: + items: + type: number + type: array + dis_vols: + items: + type: number + type: array + is_96_well: + type: boolean + liquid_height: + items: + type: number + type: array + mix_liquid_height: + type: number + mix_rate: + maximum: 2147483647 + minimum: -2147483648 + type: integer + mix_stage: + type: string + mix_times: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + mix_vol: + maximum: 2147483647 + minimum: -2147483648 + type: integer + none_keys: + items: + type: string + type: array + offsets: + items: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: offsets + type: object + type: array + sources: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: sources + type: object + type: array + spread: + type: string + targets: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: targets + type: object + type: array + tip_racks: + items: + properties: + category: + type: string + children: + items: + type: string + type: array + config: + type: string + data: + type: string + id: + type: string + name: + type: string + parent: + type: string + pose: + properties: + orientation: + properties: + w: + type: number + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + - w + title: orientation + type: object + position: + properties: + x: + type: number + y: + type: number + z: + type: number + required: + - x + - y + - z + title: position + type: object + required: + - position + - orientation + title: pose + type: object + sample_id: + type: string + type: + type: string + required: + - id + - name + - sample_id + - children + - parent + - type + - category + - pose + - config + - data + title: tip_racks + type: object + type: array + touch_tip: + type: boolean + use_channels: + items: + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: array + required: + - asp_vols + - dis_vols + - sources + - targets + - tip_racks + - use_channels + - asp_flow_rates + - dis_flow_rates + - offsets + - touch_tip + - liquid_height + - blow_out_air_volume + - spread + - is_96_well + - mix_stage + - mix_times + - mix_vol + - mix_rate + - mix_liquid_height + - delays + - none_keys + title: LiquidHandlerTransfer_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: LiquidHandlerTransfer_Result + type: object + required: + - goal + title: LiquidHandlerTransfer + type: object + type: LiquidHandlerTransfer + module: unilabos.devices.laiyu_liquid.core.LaiYu_Liquid:LaiYuLiquid + status_types: + current_position: list + current_volume: float + is_connected: bool + is_initialized: bool + tip_attached: bool + type: python + config_info: + - default: /dev/cu.usbserial-3130 + description: RS485转USB端口 + name: port + type: string + - default: 1 + description: 设备地址 + name: address + type: integer + - default: 9600 + description: 波特率 + name: baudrate + type: integer + - default: 5.0 + description: 通信超时时间 (秒) + name: timeout + type: number + - default: 340.0 + description: 工作台宽度 (mm) + name: deck_width + type: number + - default: 250.0 + description: 工作台高度 (mm) + name: deck_height + type: number + - default: 160.0 + description: 工作台深度 (mm) + name: deck_depth + type: number + - default: 77000.0 + description: 最大体积 (μL) + name: max_volume + type: number + - default: 0.1 + description: 最小体积 (μL) + name: min_volume + type: number + - default: 100.0 + description: 最大速度 (mm/s) + name: max_speed + type: number + - default: 50.0 + description: 加速度 (mm/s²) + name: acceleration + type: number + - default: 50.0 + description: 安全高度 (mm) + name: safe_height + type: number + - default: 10.0 + description: 吸头拾取深度 (mm) + name: tip_pickup_depth + type: number + - default: true + description: 液面检测功能 + name: liquid_detection + type: boolean + - default: 10.0 + description: X轴最小安全边距 (mm) + name: safety_margin_x_min + type: number + - default: 10.0 + description: X轴最大安全边距 (mm) + name: safety_margin_x_max + type: number + - default: 10.0 + description: Y轴最小安全边距 (mm) + name: safety_margin_y_min + type: number + - default: 10.0 + description: Y轴最大安全边距 (mm) + name: safety_margin_y_max + type: number + - default: 20.0 + description: Z轴安全间隙 (mm) + name: safety_margin_z_clearance + type: number + description: LaiYu液体处理工作站,基于RS485通信协议的自动化液体处理设备。集成XYZ三轴运动平台和SOPA气动式移液器,支持精确的液体分配和转移操作。具备完整的硬件控制、资源管理和标准化接口,适用于实验室自动化液体处理、样品制备、试剂分配等应用场景。设备通过RS485总线控制步进电机和移液器,提供高精度的位置控制和液体处理能力。 + handles: [] + icon: '' + init_param_schema: + config: + properties: + acceleration: + default: 50.0 + description: 加速度 + type: number + address: + default: 1 + description: 设备地址 + type: integer + baudrate: + default: 9600 + description: 波特率 + type: integer + deck_depth: + default: 160.0 + description: 工作台深度 + type: number + deck_height: + default: 250.0 + description: 工作台高度 + type: number + deck_width: + default: 340.0 + description: 工作台宽度 + type: number + liquid_detection: + default: true + description: 液面检测功能 + type: boolean + max_speed: + default: 100.0 + description: 最大速度 + type: number + max_volume: + default: 77000.0 + description: 最大体积 + type: number + min_volume: + default: 0.1 + description: 最小体积 + type: number + port: + default: /dev/cu.usbserial-3130 + description: RS485转USB端口 + type: string + safe_height: + default: 50.0 + description: 安全高度 + type: number + safety_margin_x_max: + default: 10.0 + description: X轴最大安全边距 + type: number + safety_margin_x_min: + default: 10.0 + description: X轴最小安全边距 + type: number + safety_margin_y_max: + default: 10.0 + description: Y轴最大安全边距 + type: number + safety_margin_y_min: + default: 10.0 + description: Y轴最小安全边距 + type: number + safety_margin_z_clearance: + default: 20.0 + description: Z轴安全间隙 + type: number + timeout: + default: 5.0 + description: 通信超时时间 + type: number + tip_pickup_depth: + default: 10.0 + description: 吸头拾取深度 + type: number + required: + - port + type: object + data: + properties: + current_position: + description: 当前XYZ位置 + items: + type: number + type: array + current_volume: + description: 当前液体体积 + type: number + is_connected: + description: 设备连接状态 + type: boolean + is_initialized: + description: 设备初始化状态 + type: boolean + tip_attached: + description: 是否装载吸头 + type: boolean + required: + - current_position + - tip_attached + - current_volume + - is_connected + - is_initialized + type: object + model: + mesh: laiyu_liquid_handler + type: device + version: 1.0.0 \ No newline at end of file diff --git a/unilabos/registry/resources/common/resource_container.yaml b/unilabos/registry/resources/common/resource_container.yaml index a0b129ec..9f62fa56 100644 --- a/unilabos/registry/resources/common/resource_container.yaml +++ b/unilabos/registry/resources/common/resource_container.yaml @@ -72,3 +72,94 @@ tiprack_96_high: type: resource registry_type: resource version: 1.0.0 + +# 抽象资源类型定义 +tip_rack: + category: + - tip_rack + - labware + class: + module: unilabos.resources.tip_rack:TipRack + type: unilabos + description: 枪头架资源,用于存放和管理移液器枪头 + handles: + - data_key: tip_access + data_source: handle + data_type: mechanical + handler_key: access + io_type: target + label: access + side: NORTH + - data_key: tip_pickup + data_source: handle + data_type: mechanical + handler_key: pickup + io_type: target + label: pickup + side: SOUTH + registry_type: resource + version: 1.0.0 + +plate: + category: + - plate + - labware + class: + module: unilabos.resources.plate:Plate + type: unilabos + description: 实验板,用于放置样品和试剂 + handles: + - data_key: plate_access + data_source: handle + data_type: mechanical + handler_key: access + io_type: target + label: access + side: NORTH + - data_key: sample_wells + data_source: handle + data_type: fluid + handler_key: wells + io_type: target + label: wells + side: CENTER + registry_type: resource + version: 1.0.0 + +maintenance: + category: + - maintenance + - position + class: + module: unilabos.resources.maintenance:Maintenance + type: unilabos + description: 维护位置,用于设备维护和校准 + handles: + - data_key: maintenance_access + data_source: handle + data_type: mechanical + handler_key: access + io_type: target + label: access + side: NORTH + registry_type: resource + version: 1.0.0 + +disposal: + category: + - disposal + - waste + class: + module: unilabos.resources.disposal:Disposal + type: unilabos + description: 废料处理位置,用于处理实验废料 + handles: + - data_key: disposal_access + data_source: handle + data_type: fluid + handler_key: access + io_type: target + label: access + side: NORTH + registry_type: resource + version: 1.0.0 diff --git a/unilabos/resources/plr_additional_res_reg.py b/unilabos/resources/plr_additional_res_reg.py index 2b482d22..11532e72 100644 --- a/unilabos/resources/plr_additional_res_reg.py +++ b/unilabos/resources/plr_additional_res_reg.py @@ -7,3 +7,5 @@ def register(): from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Container # noinspection PyUnresolvedReferences from unilabos.devices.workstation.workstation_base import WorkStationContainer + + from unilabos.devices.liquid_handling.rviz_backend import UniLiquidHandlerRvizBackend