Autoxing REST API Book
  • English
  • zh-CN
GitHub
  • English
  • zh-CN
GitHub
  • 入门指南

    • 入门指南
    • 开始移动
    • WebSocket 入门指南
    • Robot Admin (单机版)
  • 参考手册

    • REST API 设计原则
    • 地图 (Map) API
    • 移动 (Move) API
    • 当前地图与位姿 API
    • 叠加层 (Overlays)
    • 建图 (Mapping) API
    • 服务 API (Service API)
    • 转发 ROS 服务 API (Forwarded ROS Services API)
    • 物联网 (IoT) 设备
    • 设备信息 API
    • 机器人参数 (Robot Parameters) API
    • 系统设置 (System Settings)
    • 应用商店 API
    • 主机名 (Hostname) API
    • Lidar 陆标 (Landmarks)
    • WebSocket 参考 (WebSocket Reference)
    • 子图 (Submaps)
  • 其他

    • 弃用说明
    • 更新日志

物联网 (IoT) 设备

机器人可以使用两种协议与自动门、电梯和网关进行通信: ESP-NOW 或 BLE (蓝牙低功耗)。

我们建议使用 ESP-NOW,因为它可以在数十个设备之间实现无连接通信,并且通常比 BLE 提供更好的信号强度。

自动门与网关

从机器人的角度来看,自动门和网关在功能上是完全相同的;机器人在导航过程中可以触发它们自动开启。

必须在门上安装硬件控制器,以便与附近的机器人进行通信。 每个控制器由一个 MAC 地址标识。门的 MAC 地址及其物理位置(建模为多边形)必须在地图的 overlay (叠加层) 字段中指定。

利用这些信息,机器人与门的交互如下:

  • 机器人端:
    • 机器人持续检查其全局路径是否与自动门的多边形相交。
    • 如果在前方路径上检测到门,机器人会定期广播 Open Door {MAC} for {ROBOT SN} (为某 SN 机器人开启某 MAC 地址的门) 命令。
    • 如果门报告其状态为“开启” (open),机器人则继续前进。否则,门的多边形将被视为不可通过的障碍物。
    • 机器人成功通过后,将停止发送开门请求。
  • 门端:
    • 门会定期广播其状态(开启、关闭、正在开启或正在关闭)以及预计关闭时间 (ETC)。示例包括:
      • Door {MAC} is closed (门已关闭)
      • Door {MAC} is opening (门正在开启)
      • Door {MAC} is open, ETC in 3 seconds (门已开启,3 秒后关闭)
      • Door {MAC} is closing (门正在关闭)
    • 如果门控制器收到开门命令,它会触发门开启。
    • 如果连续三秒未收到开门命令,门将自动关闭。

提示

附近自动门的状态可以通过 Nearby Auto Doors (附近自动门) WebSocket 话题进行监控。

蓝牙 API

与 ESP-NOW 设备不同,机器人不会直接与基于蓝牙的物联网设备交互。 相反,蓝牙 API 旨在促进通信通道的建立。 这允许用户和设备使用他们自己定义的协议进行通信。

连接到蓝牙设备

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"address": "00:11:22:33:FF:EE"}' \
  http://192.168.25.25:8090/bluetooth/connect

参数

class BluetoothConnectRequest {
  address: string; // 设备的 MAC 地址 (例如:"00:11:22:33:FF:EE")。
}

蓝牙连接建立后,使用 WebSockets 与设备通信。

$ wscat -c ws://192.168.25.25:8090/ws/v2/topics
> {"enable_topic": "/bluetooth/outbound" }
> {"enable_topic": "/bluetooth_state" }
< {"topic": "/bluetooth_state", "stamp": 1644835395.429, "connected_devices": ["00:11:22:33:FF:EE", ... ] }
> {"topic": "/bluetooth/inbound", "device_address": "00:11:22:33:FF:EE", "data": "..." }
< {"topic": "/bluetooth/outbound", "device_address": "00:11:22:33:FF:EE", "data": "..." }
< {"topic": "/bluetooth/outbound", "device_address": "00:11:22:33:FF:EE", "data": "..." }
< {"topic": "/bluetooth/outbound", "device_address": "00:11:22:33:FF:EE", "data": "..." }
  • /bluetooth_state: 当前蓝牙连接状态。
  • /bluetooth/inbound: 将数据从机器人发送到连接的 BLE 设备。
  • /bluetooth/outbound: 从 BLE 设备接收到的数据。

断开蓝牙设备连接

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"address": "00:11:22:33:FF:EE"}' \
  http://192.168.25.25:8090/bluetooth/disconnect

参数

class BluetoothDisconnectRequest {
  address: string; // 设备的 MAC 地址 (例如:"00:11:22:33:FF:EE")。
}
Edit this page
最后更新: 2026/6/17 13:24
Contributors: FengZhaolin
Prev
转发 ROS 服务 API (Forwarded ROS Services API)
Next
设备信息 API