注册表概述

核心功能模块

设备类型注册表管理

  • 功能描述: 通过YAML文件定义和管理各类实验设备的类型信息
  • 技术实现: Registry类的单例模式管理,支持多路径加载
  • 支持的设备类型:
    • 泵和阀门设备 (pump_and_valve)
    • 有机化学杂项设备 (organic_miscellaneous)
    • 真空和净化设备 (vacuum_and_purge)
    • 通信接口设备 (device_comms)

资源类型注册表管理

  • 功能描述: 管理实验室物理资源和耗材的类型定义
  • 技术实现: load_resource_types()方法处理resources目录下的YAML文件

动态类型解析和映射

  • 功能描述: 将YAML中的字符串类型名称解析为实际的ROS2消息类
  • 技术实现: _replace_type_with_class()方法进行类型替换

设备动作映射系统

  • 功能描述: 定义设备支持的动作及其目标、反馈和结果参数映射
  • 配置示例: action_value_mappings字段定义动作类型和参数映射

技术架构

注册表文件组织结构

registry/  
├── devices/           # 设备类型定义  
├── device_comms/      # 通信接口定义    
└── resources/         # 资源类型定义  

设备定义规范

每个设备定义包含以下核心字段

  • class: 设备的模块路径和驱动程序语言
  • status_types: 设备状态属性及其ROS2消息类型
  • action_value_mappings: 设备动作映射定义
  • schema: 设备属性的JSON Schema定义

全局访问模式

单例模式: 通过lab_registry全局实例提供系统级访问
构建函数: build_registry()支持自定义注册表路径

集成接口

ROS2设备框架集成

  • 与DeviceNodeResourceTracker集成进行设备资源跟踪
  • 支持PyLabRobot资源创建和状态管理

Web API集成

  • 提供设备和资源信息查询接口
  • 支持JSON Schema生成用于Web界面

扩展性设计

多语言设备驱动支持

  • Python类设备驱动
  • C#类设备驱动支持

自定义注册表路径

  • 支持通过--registry_path参数添加自定义注册表
  • 运行时动态路径管理

使用场景

设备接入场景

开发者可通过创建YAML配置文件快速接入新设备类型,无需修改核心代码

实验室配置场景

支持通过图形化配置或JSON文件定义实验室物理布局和设备连接关系

Was this page helpful?