Doors

地图要求

在正确集成门之前,请确保使用“traffic_editor”在导航图上绘制具有正确门名的门位置。操作说明可在 Traffic Editor chapter.

一体化

将 RMF 集成到新环境时需要进行门集成。出于显而易见的原因,只有自动门可以与 RMF 集成,尽管可以触发警报以向指定人员打开手动门,但不建议这样做。自动门可以定义为可远程控制的电动门,可以使用远程触发器或配备计算单元,该计算单元能够使用某些接口在需要时命令门打开和关闭。

可以使用 ROS 2 门节点和门适配器将门与 RMF 集成,我们有时将其称为门监控器。下面的框图显示了每个组件之间的关系和通信模式:

为了处理门控制器模块的特定 API,必须根据要集成的门的品牌和型号来实现门节点。通信协议也将取决于门和控制器模型,可能是某种形式的“REST”、“RPCXML”等。门节点负责使用下面列出的消息和主题通过 ROS 2 发布其状态并接收命令:

Message TypesROS2 TopicDescription
rmf_door_msgs/DoorState/door_statesState of the door published by the door node
rmf_door_msgs/DoorRequest/door_requestsDirect requests subscribed by the door node and published by the door adapter
rmf_door_msgs/DoorRequest/adapter_door_requestsRequests to be sent to the door adapter/supervisor to request safe operation of doors

门适配器位于其余 RMF 核心系统、队列适配器和门节点之间,充当状态监控器,确保门不会执行可能妨碍正在进行的移动机器人任务或意外关闭的请求。它跟踪来自门节点的门状态,并接收来自 adapter_door_requests 主题的请求,这些请求由队列适配器或 RMF 核心系统的其他部分发布。只有当门适配器认为请求足够安全可以执行时,它才会使用请求指示门节点。还应注意,直接发送到门节点的请求(未经过门适配器)将被门适配器否定,以将其返回到之前的状态,以防止移动机器人操作期间发生中断。

门适配器模板

为了使门与 RMF 的集成过程更加简单,我们开源了一个 模板包,用户只需使用特定门控制器的 API 调用更新某些代码块即可。