# native_robot_control **Repository Path**: BaudLab/native_robot_control ## Basic Information - **Project Name**: native_robot_control - **Description**: 不依赖任何庞大的前端框架(如Vue/React)或复杂的构建工具,仅用 C++17 和原生 HTML/JS/CSS,构建一个轻量级、高性能的工业机器人控制系统。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-01-16 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工业机器人 Web 控制台 一个使用 C++17 和原生 Web 技术构建的轻量级、高性能工业机器人控制系统。 ## 特性 - ✨ **零前端依赖**: 不使用 Vue/React 等框架,纯原生 HTML/CSS/JavaScript - 🚀 **高性能后端**: C++17 + WebSocket++ 实现实时通信 - 🎨 **现代化界面**: 工业风格的中文控制面板 - 🔄 **实时状态更新**: 5Hz 频率推送机器人状态 - 🎯 **轻量级架构**: 清晰的前后端职责分离 ## 系统架构 ``` C++ 后端 (WebSocket 服务器) ↓ JSON 消息 Web 前端 (原生 JS) ``` ## 快速开始 ### 依赖项 - CMake 3.10+ - C++17 编译器 - Boost (system) - WebSocket++ - nlohmann/json (已包含在项目中) ### 编译 ```bash mkdir build && cd build cmake .. make ``` ### 运行 1. 启动后端服务器: ```bash ./robot_server ``` 2. 在浏览器中打开 `ui/index.html` 服务器默认监听 `ws://localhost:9002` ## 项目结构 ``` native_robot_control/ ├── src/ │ ├── main.cpp # WebSocket 服务器主程序 │ ├── RobotController.h # 机器人控制器头文件 │ ├── RobotController.cpp # 机器人控制器实现 │ └── json.hpp # nlohmann/json 库 ├── ui/ │ └── index.html # Web 控制界面 ├── CMakeLists.txt # CMake 配置 └── README.md ``` ## 功能特性 ### 后端 - WebSocket 实时通信 - 6轴机器人状态模拟 - 温度监控 - 紧急停止机制 - 线程安全的状态管理 ### 前端 - 实时连接状态显示 - 6个关节角度控制滑块 - 系统状态监控面板 - 温度实时显示 - 紧急停止按钮 - 系统重置功能 ## 通信协议 ### 前端 → 后端 (控制指令) ```json // 设置关节角度 { "command": "set_joint", "joint": 0, "angle": 45.5 } // 紧急停止 { "command": "emergency_stop" } // 重置系统 { "command": "reset" } ``` ### 后端 → 前端 (状态广播) ```json { "joints": [0.0, 45.5, 0.0, 0.0, 0.0, 0.0], "emergency_stop": false, "temperature": 35.0 } ``` ## 技术栈 - **后端**: C++17, WebSocket++, nlohmann/json, Boost.Asio - **前端**: HTML5, CSS3, Vanilla JavaScript - **构建**: CMake ## 开发说明 ### 添加新功能 1. 在 `RobotController` 中添加状态和方法 2. 在 `main.cpp` 的 `on_message` 中添加消息处理 3. 在 `ui/index.html` 中添加对应的 UI 和 JavaScript 代码 ### 修改通信端口 在 `main.cpp` 中修改: ```cpp server.listen(9002); // 修改为你需要的端口 ``` 在 `ui/index.html` 中修改: ```javascript const ws = new WebSocket('ws://localhost:9002'); // 对应修改 ``` ## 博客文章 详细的实现讲解请参考博客文章: [从零构建工业机器人Web控制台](https://gitee.com/BaudLab/native_robot_control) ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 作者 BaudLab --- ⭐ 如果这个项目对你有帮助,请给个 Star!