# ROS_Flutter_Gui_App **Repository Path**: chengyangkj/ROS_Flutter_Gui_App ## Basic Information - **Project Name**: ROS_Flutter_Gui_App - **Description**: 基于flutter的跨平台ros人机交互软件 - **Primary Language**: Dart - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-17 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ROS Flutter GUI App [中文说明](#1-项目简介) | [English](README_EN.md)
主界面 · 瓦片地图 · 图层开关 · 遥控 / 导航入口
地图编辑管理· 障碍与拓扑
SSH 功能
健康诊断
--- ## 3. 功能一览 | 功能 | 说明 | | --- | --- | | 连接与配置 | 连接页配置 IP 与后端端口;设置页:语言、朝向、手柄映射、图像相关、速度上限等仍存本地;ROS 话题/帧名走后端 | | 地图显示 | 瓦片底图;叠加激光、点云、全局/局部路径、轨迹、代价地图、footprint、拓扑等(数据来自 WS) | | 位姿 | 后端在地图坐标系下封装位姿并推送 | | 重定位与导航 | 通过后端 HTTP 发布初始位姿与导航目标;拓扑与地图编辑走 HTTP | | 遥控 | 屏幕摇杆与手柄映射;速度通过机器人 WebSocket 二进制消息下发(`ClientRobotMessage.cmd_vel`) | | 相机 | 图像话题订阅由后端转发到 WS;失败时见占位或无画面 | | 地图编辑 | 障碍与拓扑编辑通过 REST 与后端交互 | | 诊断 | 后端推送 `DiagnosticArray`;主界面可对 ERROR/WARN Toast | | 电池 | 后端推送 'BatteryState' 话题的电池状态 | | 国际化 | 中/英;横竖屏等应用侧设置 | | SSH | 见下文 **§3.1** | ### 3.1 SSH 远程(快捷指令 / 终端)功能说明 SSH 功能用于局域网远程执行命令和打开交互终端,和地图功能共用同一个后端地址。 1. 在连接页连接机器人后,可在主界面使用「SSH 快捷指令」和「SSH 终端」。 2. 前端通过 `/ws/ssh` 与后端通信,再由后端连接机器人 SSH 服务(`SshHost:SshPort`)。 3. 需要在设置 -> SSH 中配置主机、端口、用户名、密码;配置会保存到机器人侧 `gui_app_settings.json`(通过 `/api/settings`)。 4. 公网场景建议使用 HTTPS + WSS,避免明文传输风险。 ### 3.2 地图显示与管理功能说明 1. 软件动态地图为 `map`,存储路径在后端的 `~/.maps/map`。 2. 后端启动时会订阅 `/map` 话题,将收到的数据存储至 `~/.maps/map`。在地图管理界面切换地图时,软件会同时将切换到的地图发布到 `/map` 话题。 3. 下次启动后端时,也会自动发布当前使用地图到 `/map`。理论上,软件后端可替代 ROS 的 map server。 4. 切换地图后,软件默认显示切换后的地图; 5. 在建图时,如果需要显示原始 `/map` 话题内容,请切换至 `map` 地图/由于瓦片地图为了提高绘制效率不会自动更新,软件为了解决这个问题,在开启遥控手柄时会5s强制刷新一次瓦片地图,以实现动态效果。 --- ## 4. 编译与部署 ### 4.1 从源码构建(推荐:仓库根目录一键) ```bash git clone https://github.com/chengyangkj/ROS_Flutter_Gui_App.git cd ROS_Flutter_Gui_App ./build.sh ``` 根目录 `build.sh` 会依次:生成 Dart `protobuf` → 构建 backend → `flutter build web`,并将 Web 产物同步到 `backend/build/install/bin/dist`(供后端静态托管)。 运行前请先安装并配置好 Flutter(`flutter` 命令需在 PATH 中)。仅构建后端时可进入 `backend/` 按该目录 README 使用 CMake;仅构建前端时需先完成协议生成,见 [app/README.md](app/README.md)。 ### 4.2 仅构建后端 ``` cd backend sh ./build.sh ``` ### 4.3 仅构建前端 ```bash cd app flutter pub get flutter build web --release ``` 其他目标(APK、Linux、Windows 等)参见 [app/README.md](app/README.md)。建议 Flutter / Dart 版本与工程 `pubspec.yaml` 中 `environment.sdk` 一致。 --- ## 5. 预构建产物(GitHub Releases) 如果不想手动配置环境编译运行,可在 **Releases** 页面可下载与当前 tag 对应的后端压缩包与多平台客户端,例如(名称随版本变化,以 Release 列表为准): | 类型 | 典型文件名 | | --- | --- | | 后端(含 Web `dist`,x86_64) | `backend-