摘要: 商用清洁机器人(洗地机、尘推车)在跨层调度时,作为典型的 OT(操作技术)与 IT(信息技术)融合场景,其底层硬件的通信安全性直接决定了整栋建筑保洁任务的连贯性。本文从架构师视角,深度拆解如何在不触碰电梯主板、不破坏原生平衡的前提下,构建一套高可用的机器人梯控 系统。重点探讨非侵入式信号采集逻辑、针对重载底盘的平层校验流程,并分享用于处理防卡轮状态机的底层 Python 代码。
导语: 真正的全自动立体保洁,要求机器人在垂直空间内拥有与平地一样的机动性。在构建跨层通信架构时,必须通过边缘计算节点,实现物理感知与逻辑调度的解耦,规避底盘卡滞的安全风险。

基于边缘计算的非侵入式清洁机器人乘梯架构
一、 流程解构:非侵入式旁路采集与物理隔离 在商用楼宇电梯改造中,改动经过安检认证的电气核心回路是行业禁忌。架构设计宜采用旁路采集模式。 标准交互流程如下:
- 调度层:清洁机器人通过局域网或 MQTT 向云端发起乘梯请求。
- 边缘层:部署在机房的边缘设备接收指令,通过数字输出(DO)通道闭合电梯外呼干接点。
- 感知层:梯控设备严禁读取主板协议,通过外接独立传感器或旁路数字输入(DI)通道,实时监听楼层状态与门禁状态。 这种设计确保了电梯的安全回路独立运行,实现了物理层面的容错。
二、 核心校验:克服水箱液体晃动与精准平层 商用清洁机器人搭载大容量水箱,加减速时会产生液体晃动(Sloshing effect),对底盘平衡造成考验。同时,小尺寸承重轮对地面平整度容忍度较低。如果电梯存在平层误差,机器人的车轮易卡在电梯地坎缝隙中,导致污水溢出或设备受损。 因此,必须在边缘侧加入双重物理硬校验:
- 采集加装的独立传感器传回的物理精准平层 到位信号。
- 采集门机系统的旁路门锁彻底断开信号。
三、 核心代码实战:清洁机器人乘梯防卡滞状态机 以下 Python 代码模拟了边缘梯控设备如何通过软件滤波过滤杂波,并响应清洁机器人的跨层通信请求:
Python
import time
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - [CLEANING_EDGE_CONTROLLER] - %(message)s')
class CleaningRobotElevatorFSM:
def __init__(self):
self.state = "STANDBY"
self.filter_window = 0.08 # 80毫秒软件抗干扰采样窗
self.signal_stable_time = 0
self.door_hold_active = False
def get_non_invasive_signals(self):
"""模拟读取外围独立传感器的物理电平(严禁采集核心主板)"""
# 返回值:precise_leveling(精准平层对齐), door_fully_open(门禁开启)
return {"precise_leveling": 1, "door_fully_open": 1}
def trigger_physical_door_hold(self):
"""触发底层继电器,维持电梯门开启,防止夹碰重载机器人"""
self.door_hold_active = True
logging.info("Hardware Relay Active: Door locked open for cleaning robot.")
def run_security_logic(self, robot_id, target_floor):
signals = self.get_non_invasive_signals()
# 针对精准平层的双重物理校验,保障满载水箱底盘不卡滞
if signals["precise_leveling"] == 1 and signals["door_fully_open"] == 1:
if self.signal_stable_time == 0:
self.signal_stable_time = time.time()
elif (time.time() - self.signal_stable_time) > self.filter_window:
if self.state != "READY_FOR_ROBOT":
logging.info(f"Alignment strictly verified. Vehicle {robot_id} enter floor {target_floor}.")
self.trigger_physical_door_hold()
self.state = "READY_FOR_ROBOT"
else:
self.signal_stable_time = 0
if self.state == "READY_FOR_ROBOT":
logging.warning("Physical misalignment detected. Revoking access to prevent sloshing or stuck wheels.")
self.door_hold_active = False
self.state = "STANDBY"
# 模拟夜间清洁排班中的逻辑轮询
if __name__ == "__main__":
controller = CleaningRobotElevatorFSM()
for _ in range(4):
controller.run_security_logic(robot_id="SCRUBBER_001", target_floor=3)
time.sleep(0.04)

常见问题解答 (FAQ)
问题 1、为什么不能通过电梯主板协议直接获取楼层状态?
回答 1、电梯主板协议通常是封闭的。未经授权的对接不仅稳定性难以保障,更会带来法律与安全合规风险。采用非侵入式外围采集是稳妥的技术路径。
问题 2、如果商场局域网断开,维持开门的指令会失效吗?
回答 2、不会。边缘梯控设备支持本地逻辑托管。一旦确认机器人开始进出,维持指令由本地硬件定时器和边缘状态机共同接管,确保动作闭环。
问题 3、多台清洁设备同时乘梯时如何防死锁?
回答 3、边缘节点需引入基于时间戳的互斥锁与优先级队列。在电梯被一台设备独占的运行周期内,其他请求将被挂起并反馈等待状态。
总结: 跨楼层调度需要对物理特性的尊重。通过非侵入式的边缘架构设计,能够在保障设备完整性的前提下,为商用清洁机器人的立体跨越筑起可靠的数字通道。