用途:为 BEARS 的 PUDA 连接机器提供统一的视觉安全门,在运动或执行前验证当前物理场景,不假设所有机器都有 Opentrons 式甲板、槽位或行列坐标。仅验证可见物理状态,不替代协议校验、机器遥测、校准、联锁、回零要求或操作员批准。
适用场景:当工作流依赖可目视检查的条件时使用,如甲板/托盘/夹具/工具/目标放置、需空或禁入区域、可寻址孔位/吸头/通道/样本、相机引导的对齐/取放/检查,或用户仅要求视觉验证而不执行。需从 bears-machines 选择机器专属配置;无合适图像源或关键状态无法目视确认时不应强行使用。
无执行边界:仅验证请求下,允许读取计划协议、检查机器定义、采集被动新帧、裁剪/校正/标注副本、与权威参考比对、哈希证据并报告门结果;禁止回零、点动、扫描、移动、夹取、拾取、分液、去皮、启动运行、复位故障、使能输出或改变机器状态,除非用户另行授权。相机命令本身可能移动硬件,应优先使用已配置的被动流或快照端点;若采集需运动,须先获批准。
机器配置契约:检查前需构建或加载包含 machine_id、image_source、camera_pose、workspace_model、expected_objects、required_states、coordinate_model、reference_sources、safety_gate 的配置。缺失且无法获取时报告限制,不得套用 Opentrons 约定。
机器选择与适配器:加载 bears-machines 选择确切机器后应用匹配适配器。Opentrons OT-2(machine_id: opentrons)使用 puda-opentrons-vision-validation 详细适配器,定义 12 槽甲板、耗材识别、A1–H12 处理、吸头存在检查与透视对齐槽多边形。First Machine(machine_id: first)使用 bears-machines/references/first-machine.md 及 puda machine commands first 的实时输出,仅验证其中或当前协议定义的区域与地址名。Elephant Pro630(machine_id: elephant)使用 bears-machines/references/elephant.md,记录活动相机、位姿、校准、目标描述、夹爪/工具状态、取放区域与禁入区;未知或变更位姿的新图像不能证明机器人坐标,视觉验证本身不得发起扫描、臂运动或夹爪运动。Balance(machine_id: balance)在存在合适相机时可确认容器居中于秤盘且周围看似清空,但不能证明去皮状态、校准质量、串口连接或数据新鲜度。Biologic(machine_id: biologic)仅在相机视图与预期连接图明确可用时验证可见电芯/夹具/线缆放置,图像不能证明通道配置、电气连续性、电压限制或测试就绪。其他或新机器按上述契约用官方驱动/文档与当前工作流创建配置,使用机器原生区域名;无法采集安全新图像时返回 not visible 并保持执行门关闭。
证据策略:每次验证独立,须使用当前用户请求或协议作为预期场景、本次验证采集的新图像、当前机器专属权威参考。不得沿用早前采集的对象身份、占用、朝向或对齐确认。记录采集时间与来源、机器 ID 与相机/位姿标识、图像路径、非零大小与 SHA-256、采集为被动还是需批准命令、对副本所做的裁剪/透视校正/增强。报告中不得暴露相机凭据或秘密连接字符串。
区域与透视对齐:依据机器物理工作区几何标注,从新图像识别可见物理边界交点,为相邻区域建立共享节点/边,相机倾斜时使用透视感知多边形或校准单应性,覆盖完整物理区域且不进入邻区,边界锚定机器/工作区轮廓而非物体足迹,保留未标注证据图并独立核验最终叠加。不规则工作区使用命名多边形或禁入区,边界被遮挡或无法校准时标记该区域 not visible 或 obstructed。
可寻址位置与占用:用户指定位置时,对照确切机器/耗材/夹具定义验证坐标,从可见标记或权威线索确定物理朝向,裁剪完整对象含计数所需边缘行列,必要时内部透视校正,不得在吸头/孔/样本/目标上绘制行列网格,从既定原点计数并在干净裁剪中与相邻位置比较,可加一个小圆/箭头但保留未标注裁剪,赋予明确状态:present、absent、needs confirmation 或 not visible。除非每个位置单独可见且结论与朝向无关,不得由整体架/盘满度推断某位置占用。
验证工作流:1)构建预期场景,列出影响计划动作的每台机器、区域、对象、状态、坐标及需空/禁入区,完成标准是每个物理前提都有命名预期观察或被明确归类为非视觉遥测。2)采集新证据,使用所选机器配置的被动图像源;无被动路径时判断采集命令是否会移动或改变硬件并在需要时获批准,完成标准是存在带来源、时间与哈希的新非空图像。3)保守检查,对每个预期区域/对象/状态报告可见性、占用/状态、观察类别或身份、置信度与支持视觉线索;几何影响安全操作时与官方参考比对确切身份,完成标准是覆盖所有预期区域及意外占用/遮挡/禁入区域。4)预期与观察比对,状态包括 OK(预期状态可见且置信度足够)、needs confirmation(可见但确切身份或条件不确定)、MISMATCH(可见状态与预期冲突)、not visible(取景、位姿、遮挡或分辨率阻碍验证)、obstructed(其他物品阻碍检查或占据需空区域)。5)门控执行,仅当所有必需视觉条件为 OK 且所有非视觉安全前提另行满足时才继续;needs confirmation、MISMATCH、not visible、obstructed 保持门关闭,除非用户明确接受所述风险。用户更正仅适用于当前图像;物理设置变化须重新采集。视觉批准不授权机器人执行,保留任何单独的协议批准要求。
输出格式:报告机器与证据(机器 ID、相机/位姿、采集时间、路径/哈希);预期与观察表(区域、预期、观察、置信度、状态);意外观察(占用、遮挡或不安全区域);坐标检查(请求位置与占用/状态,无网格叠加);非视觉前提(仍未验证的遥测/校准/联锁);门决策(pass、blocked 或 needs confirmation);执行声明(明确说明是否发生任何机器命令或运动)。
常见陷阱:把 OT-2 槽位、A1 朝向或耗材规则套用到其他机器;仅验证请求中为改善相机视野而移动机械臂;把相机图像当作校准、去皮、电气连续性或遥测新鲜度的证明;按物体足迹而非物理工作区轮廓绘制区域框;在位置上绘制完整坐标网格而非检查干净裁剪;复用旧确认作为新场景证据;仅凭颜色报告确切对象身份;相机位姿或工作区校准未知时放行门。
核验清单:已选确切机器与机器配置;已从当前请求/协议提取预期物理场景;已区分视觉与非视觉前提;使用被动采集或另行批准了会运动/改变状态的采集;记录新图像路径、时间、大小、哈希、相机与位姿;用共享透视感知边界对齐物理区域;保留干净未标注证据;未在对象或位置上绘制坐标网格;每个请求位置均对照确切定义验证并赋予状态;检查预期与意外区域;使用当前官方机器参考;对每个不确定、不匹配、遮挡或不可见的必需条件关闭门;最终报告说明是否发生任何命令或运动。