robot-cloud-system

🤖 Robot Cloud System | 寒枫的机器人云控系统

Docs ROS 2 Humble Python

📌 项目简介

一个面向 移动机器人远程控制、地图可视化、导航调度、任务管理 的 Web 云控系统原型项目。
项目基于 Flask-SocketIO + ROS 2 + SQLite 构建,通过浏览器即可完成机器人运动控制、SLAM 地图查看、导航点管理、任务创建与系统状态查看,适合作为课程设计、实验项目、演示平台或二次开发基础仓库。

🏗️ 项目架构

flowchart LR
    A[Browser Web UI] --> B[Flask / Socket.IO]
    B --> C[ROS 2 Service Nodes]
    C --> D[Robot Topics / Actions]
    B --> E[SQLite Task Storage]
    C --> F[Map / Pose / Lidar Data]
    F --> B
    E --> B

🎯 核心定位

🚀 技术架构栈

🔹 Web 层 | Web Layer

Flask Socket.IO Jinja2 Eventlet

🔹 机器人服务层 | Robot Service Layer

ROS2 rclpy Nav2 tf2

🔹 数据与配置层 | Data & Config

SQLite .env Docs

✨ 核心功能

  1. 🎮 机器人控制:支持浏览器下发线速度和角速度控制命令
  2. 🗺️ 地图可视化:展示 SLAM 地图、机器人位姿和激光雷达数据
  3. 📍 导航点管理:支持添加、删除、清空导航点,并执行多点导航
  4. 📦 任务调度:提供任务创建、查询、删除、状态更新与历史记录
  5. 🧭 路径监控:获取全局路径与局部路径信息,辅助导航调试
  6. 🖥️ 系统状态展示:查看运行时长、网络状态与基础系统信息

🎨 设计理念

📂 项目结构

robot_cloud_system/
├─ app.py                         # Flask-SocketIO 应用入口
├─ config.py                      # 环境变量与运行配置
├─ requirements.txt               # Python 直接依赖
├─ .env.example                   # 配置示例
├─ maps/                          # 示例地图资源
├─ robot_dashboard/
│  ├─ static/                     # 静态资源
│  └─ templates/                  # 页面模板
├─ service_nodes/                 # ROS 2 节点与业务模块
├─ scripts/
│  └─ init_database.py            # 数据库初始化脚本
└─ docs/
   ├─ architecture.md             # 架构说明
   ├─ development.md              # 开发与维护指南
   └─ technical-reference.md      # 技术文档

⚡ 快速开始

1. 准备 ROS 2 环境

source /opt/ros/humble/setup.bash
sudo apt install ros-humble-rosbridge-server
sudo apt install ros-humble-rclpy
sudo apt install ros-humble-geometry-msgs
sudo apt install ros-humble-sensor-msgs
sudo apt install ros-humble-nav-msgs
sudo apt install ros-humble-tf2-ros
sudo apt install ros-humble-std-srvs

2. 安装 Python 依赖

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

3. 初始化配置与数据库

cp .env.example .env
python scripts/init_database.py

4. 启动 rosbridge

ros2 launch rosbridge_server rosbridge_websocket_launch.xml port:=9090

5. 启动系统

python app.py

默认访问地址:

📚 项目文档

🔮 适用场景

🛠️ 后续规划

🐛 问题反馈

如果你在使用过程中发现问题,或有新功能建议,欢迎通过以下方式反馈:

📊 Star History

Star History Chart