Skip to content

RoGo-Ops

RoGo-Ops 是机器人的运维与监控平台,当前版本通过 Python + Flask + WebRTC 实现。

仓库地址: https://github.com/StringlightRobotics/RoGo-ops

架构

rogo-ops 下的 web_monitor 是一个基于 Flask 的 Python 应用,演示了如何通过 P2P 控制机器人。

技术栈

  • Backend: Python Flask
  • WebRTC: unitree_webrtc_connect (基于 aiortc)
  • Frontend: HTML/JS (Simple Dashboard)

核心功能

  1. 视频流: 720p 实时回传
  2. 状态订阅:
    • sportmodestate (运动状态)
    • lowstate (底层电机/电池)
    • multiplestate (音量/灯光)
  3. 控制指令:
    • 运动控制 (Move, Stand, Sit, etc.)
    • VUI 控制 (TTS, Volume, Light)

API 端点

该 Demo 提供了一套 HTTP API 用于从前端控制机器人:

方法路径描述
GET/video_feed获取 MJPEG 视频流
GET/api/detailed_status获取机器人详细状态 (IMU, 电池, 关节)
POST/api/command/<cmd>发送预定义指令 (stand, sit, dance, etc.)
POST/api/move发送速度指令 {x, y, z}
POST/api/speak发送 TTS 语音指令
POST/api/vui/color设置 LED 灯效

关键代码实践

连接逻辑位于 demos/web_monitor/app.py:

python
# 连接机器人
state.conn = UnitreeWebRTCConnection(WebRTCConnectionMethod.LocalSTA, ip=ROBOT_IP)
await state.conn.connect()

# 订阅数据通道
state.conn.datachannel.pub_sub.subscribe(RTC_TOPIC['LF_SPORT_MOD_STATE'], on_sportmodestate)
state.conn.datachannel.pub_sub.subscribe(RTC_TOPIC['LOW_STATE'], on_lowstate)

RoGo Engineering Team