# contest2026_061_GGBond **Repository Path**: open-vela/contest2026_061_GGBond ## Basic Information - **Project Name**: contest2026_061_GGBond - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev-ai-contest-2026 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-17 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WristSpace:基于 openvela 手表的空间化 AIoT 交互系统 ## 一、作品简介 **WristSpace(腕控空间)** 是一个面向 openvela 手表平台的空间化 AIoT 交互系统。它把传统“点屏幕控制设备”的方式,升级为“空间指向 + 微手势 + AI 识别 + 安全门控”的智能中控交互方式。 在当前版本中,系统通过 PC 上位机模拟 EMG 肌电与 IMU 九轴传感器数据,openvela 手表端负责显示当前设备、候选设备、动作状态、AI 学习过程和可解释决策结果。用户可以通过 PC 端按钮或模拟数据触发手表端响应,实现设备切换、开启、关闭、调高、调低、场景切换、设备添加、动作绑定、样本采集、模型训练和识别演示。 本作品的核心亮点是: - **空间指向控制**:先确定用户想控制的设备,再执行动作,降低误控概率。 - **微手势交互**:抬腕、上摆、下摆、顺时针、逆时针、翻腕等动作映射到 AIoT 控制指令。 - **EMG + IMU 多模态入口**:当前由 PC Mock 模拟,后续可替换为真实肌电和九轴传感器数据。 - **个性化动作学习**:每个设备、每个动作可以独立采集 10 组数据并训练模型。 - **AI 能力展示**:PC 和 AIoT 手表端同步展示模型状态、Top 候选、置信度、安全阈值和输入协议。 - **可解释决策舱**:把一次动作识别拆成“空间锁定、特征融合、安全判定、设备执行”四步,让 AI 结果可观察、可解释、可调试。 - **PC + AIoT 双端联动**:PC 作为当前阶段的数据输入和训练中转站,手表端作为最终交互与显示终端,方便后续迁移到单片机和真实传感器。 当前版本重点验证完整软件闭环:**PC Mock 数据输入 -> openvela 手表端响应 -> AI 学习/训练 -> 模型识别 -> 安全门控 -> 设备状态更新**。 但是由于文件较大,依赖包不能上传,请自行下载。具体说明以及安装流程,详见node_modules文件夹下的README.md文档。 --- ## 二、选题方向 本项目选题方向为: **快应用 / 手表应用创新** 选择该方向的原因如下: 1. **项目主体运行在 openvela 手表快应用环境中** 手表端使用 openvela AIoT 快应用工程实现,核心页面包括主界面、设备中心、AI 学习、动作配置、状态总览和可解释决策舱。系统充分利用手表小屏幕、轻量交互、状态实时反馈等特点,探索手表作为智能家居空间中控入口的可能性。 2. **交互方式区别于传统手表应用** 普通手表应用主要依赖点击、滑动、列表选择等触控方式。本项目将“空间指向”和“微手势”引入手表 AIoT 控制流程,让手表不只是显示终端,而是变成一个腕部空间交互入口。 3. **具有 AIoT 场景创新** 项目面向智能家居控制场景,支持灯光、空调、窗帘、音箱、冰箱、手机等设备的候选切换与动作控制,并支持新增设备和动作绑定。后续可以进一步对接米家或局域网网关,实现真实设备联动。 4. **为真实 AI 硬件接入保留接口** 当前阶段使用 PC Mock 输入 EMG 和 IMU 数据,目的是先验证应用逻辑和通信协议。后续接入真实肌电采集模块、九轴传感器和单片机时,只需要按照统一数据窗口协议输出数据,即可复用现有训练、识别和安全门控逻辑。 --- ## 三、目录结构 建议提交仓库整理为以下结构: ```text WristSpace/ ├─ quickapp/WristSpace/ — openvela 手表端快应用工程 │ ├─ src/pages/index/index.ux — 手表端主页面、子页面、状态机和交互逻辑 │ ├─ src/pages/detail/ — 详情页或辅助页面 │ ├─ common/ — 公共资源文件,例如 logo、图标等 │ ├─ manifest.json — 快应用基础配置 │ ├─ manifest-watch.json — 手表端配置 │ ├─ config-watch.json — 手表模拟器/设备运行配置 │ ├─ package.json — 构建、运行、调试脚本 │ └─ dist/ — 构建生成的 rpk 包 ├─ pc/Aiot_PyCharm/ — PC 上位机与 Mock 数据服务 │ ├─ main.py — HTTP 服务、命令队列、设备/动作管理和同步逻辑 │ ├─ modern_ui.py — PC 上位机图形界面 │ ├─ multimodal_ai.py — EMG + IMU 特征提取、训练和识别逻辑 │ ├─ aiot_config.json — 设备、动作、当前候选设备和安全设置配置 │ ├─ aiot_multimodal_models.json — 采集样本、模型参数、阈值和训练状态 ├─ docs/ — 项目文档 │ ├─ AIOT_Report.docx — 技术报告 │ └─ images/ — 报告截图、架构图和流程图 ├─ scripts/ — 辅助脚本 │ ├─ run_aiot_demo_rect.ps1 — 启动矩形手表模拟器并部署快应用 │ ├─ run_aiot_demo_standalone.ps1 — 独立启动手表端演示 │ ├─ run_aiot_demo.ps1 — 启动矩形手表模拟器 │ ├─ run_aiot_demo_all.ps1 — 同时启动手表端和PC端 ``` 如果按当前本地工程路径对应,可以理解为: ```text E:\OPEN_Vela\Projects\test_demo ``` 对应仓库中的: ```text quickapp/WristSpace/ ``` ```text E:\OpenVela_PyCharm\Aiot_PyCharm ``` 对应仓库中的: ```text pc/Aiot_PyCharm/ ``` --- ## 四、运行方式 本项目采用 **PC 上位机 + openvela AIoT 手表端** 的双端运行方式。 PC 上位机负责: - 启动 HTTP 服务; - 提供按钮式 Mock 指令; - 提供 EMG + IMU 模拟数据输入; - 管理设备、动作、模型和日志; - 执行当前阶段的训练和识别逻辑。 AIoT 手表端负责: - 展示当前设备和设备状态; - 展示候选设备和空间指向结果; - 展示动作执行反馈; - 提供设备中心、动作配置和 AI 学习页面; - 展示 AI 能力、识别结果、安全门控和可解释决策链。 ### 1. 环境准备 需要提前安装并配置: - openvela AIoT 快应用开发环境; - Node.js / npm; - AIoT Toolkit; - openvela 手表模拟器; - Python 3; - PC 上位机所需 Python 依赖。 当前项目已在 Windows 环境下调试通过。 ### 2. 启动 PC 上位机 进入 PC 上位机目录: ```powershell cd E:\OpenVela_PyCharm\Aiot_PyCharm ``` 运行上位机: ```powershell python main.py ``` 启动成功后,PC 端会显示图形界面,并启动 HTTP 服务: ```text http://127.0.0.1:8787/aiot-command ``` openvela 模拟器可通过以下地址访问 PC 服务: ```text http://10.0.2.2:8787/aiot-command ``` PC 上位机界面主要包括: - 手势与联动控制区; - 设备与动作管理区; - AI 数据采集、训练与调试区; - AI 能力展示区; - 双端通信日志区。 ### 3. 启动 openvela AIoT 手表端 进入 openvela 快应用工程目录: ```powershell cd E:\OPEN_Vela\Projects\test_demo ``` 构建项目: ```powershell npm run build ``` 运行矩形手表模拟器并部署应用: ```powershell npm run demo:rect ``` 该命令会完成以下操作: 1. 构建 openvela 快应用; 2. 启动矩形手表模拟器; 3. 推送 `.rpk` 应用包; 4. 启动 `com.application.watch.demo`; 5. 让手表端开始轮询 PC 上位机指令。 如果运行成功,终端会出现类似信息: ```text Done: rectangular wrist-control app is running, visible, and polling PC commands. ``` 手表端主界面应显示: - 当前时间; - openvela AIoT 标识; - PC 连接状态; - 当前候选设备; - 设备状态; - AI 学习、设备中心、状态总览、运行信息入口; - 可解释决策舱入口; - 腕部操作地图。 ### 4. 基础功能演示 PC 上位机启动后,可以点击以下按钮观察 AIoT 手表端响应: ```text 抬腕指向 ``` 作用:切换当前候选设备。 ```text 上摆开启 ``` 作用:开启当前设备。 ```text 下摆关闭 ``` 作用:关闭当前设备。 ```text 顺时针 ``` 作用:对支持连续调节的设备执行调高操作,例如亮度调高、音量调高。 ```text 逆时针 ``` 作用:对支持连续调节的设备执行调低操作。 ```text 翻腕场景 ``` 作用:切换空间场景,例如日常、观影、睡眠、专注等。 ```text 甩腕取消 ``` 作用:取消当前输入,不改变设备状态。 ```text 回正过滤 ``` 作用:模拟手臂回正动作,系统不执行设备控制,避免复位动作误触。 ### 5. 设备和动作管理演示 在 AIoT 手表端进入: ```text 设备中心 -> 本地管理 ``` 可以进行: - 添加设备; - 删除设备; - 模板添加设备; - 配置设备动作; - 同步配置到 PC。 新增设备后,需要进入动作绑定流程。默认动作包括: - 开启; - 关闭; - 调高; - 调低。 每个动作可以绑定: - 已有默认手势; - 自定义动作。 自定义动作会进入后续 AI 数据采集和训练流程。 ### 6. AI 学习与识别演示 进入 AIoT 手表端: ```text AI 学习 ``` 选择某个设备动作后,在 PC 上位机输入 EMG + IMU Mock 数据。 当前数据格式示例: ```text 0.580,0.420,0.200,0.160 | 0.800,9.300,2.100 | 0.150,-0.080,1.200 ``` 含义: ```text EMG 四通道 | 加速度 ax,ay,az | 陀螺仪 gx,gy,gz ``` 采集逻辑: 1. 每个动作固定采集 10 组数据; 2. 达到 10/10 后不能继续写入当前采集集; 3. 点击训练模型; 4. 训练完成后进入识别状态; 5. 在 PC 端独立识别输入框输入实时数据; 6. 系统输出 Top 候选、置信度、阈值和安全门控结果; 7. 通过门控后,AIoT 手表端执行对应动作; 8. 未通过门控时,设备状态保持不变。 ### 7. 可解释决策舱演示 进入 AIoT 手表端: ```text 可解释决策舱 ``` 该页面展示一次动作从输入到执行的完整证据链: ```text 空间锁定 -> 特征融合 -> 安全判定 -> 设备执行 ``` 展示内容包括: - 当前意图; - 当前设备; - 设备区域; - EMG + IMU 输入状态; - 置信度; - 安全阈值; - 执行原因; - 拦截原因; - 当前模型同步状态。 该页面用于说明:本项目的 AI 不是后台黑盒,而是可观察、可解释、可调试的交互决策过程。 --- ## 五、AI Coding 使用说明 本作品在需求分析、方案设计、编码、调试、文档整理和演示设计过程中均使用 AI 辅助开发。 ### 1. 需求拆解阶段 AI 主要参与了以下工作: - 将“空间指向 + 微手势 + 小米 AIoT 联动”的想法拆解成可实现的软件闭环; - 分析仅依赖九轴陀螺仪进行手势识别的不足; - 引入 EMG 肌电信号作为动作意图判断补充; - 明确当前阶段采用 PC Mock,后续迁移到单片机和真实传感器; - 设计“设备选择”和“动作识别”分离的两阶段交互逻辑。 ### 2. 方案设计阶段 AI 辅助完成了系统架构设计,包括: - openvela 手表端页面结构; - PC 上位机 Mock 数据服务; - HTTP JSON 双端通信协议; - 设备、动作、模型配置数据结构; - 10 组样本采集流程; - 模型训练和独立识别流程; - 安全门控与误触过滤逻辑; - 可解释决策舱四步证据链。 核心设计思路是: ```text 先确定设备,再判断动作,最后由安全门控决定是否执行。 ``` ### 3. 编码实现阶段 AI 辅助完成或优化了以下模块: - openvela 快应用页面布局; - 主界面、设备中心、AI 学习、状态总览、运行信息、可解释决策舱等页面; - 手表端状态机; - PC 指令轮询; - PC 上位机 HTTP 服务; - 设备添加和删除; - 动作绑定; - 采集样本锁定; - 训练状态同步; - 识别结果回传; - 低置信度安全拦截; - PC 与 AIoT 双端日志联动。 ### 4. 调试阶段 AI 在调试中主要用于: - 根据运行截图分析 UI 遮挡、白屏、黑屏、点击无响应等问题; - 定位 PC 指令与 AIoT 显示不同步的问题; - 优化矩形表盘适配; - 调整页面安全区,避免标题被圆角遮挡; - 修复设备中心按钮文字显示不完整; - 优化 AI 学习页面和可解释决策舱的信息密度; - 检查采集 10 组后仍继续写入的问题; - 优化 PC 上位机分区布局和日志展示。 ### 5. 文档与演示阶段 AI 辅助生成了: - 系统架构说明; - 采集、训练、识别流程说明; - 项目 README 说明。 完整对话日志、构建记录和调试过程可整理至: ```text logs/ ``` 建议提交时保留: ```text logs/conversation/ logs/build/ logs/debug/ ``` 用于说明 AI Coding 的真实协作过程。 ### 6. AI 对开发效率和质量的帮助 AI 对本项目的实际帮助主要体现在: - **提升需求落地速度**:将概念想法快速拆成可运行的 PC + AIoT 双端系统。 - **降低调试成本**:根据截图和日志快速定位 UI 遮挡、通信不同步和状态机问题。 - **增强系统完整度**:从单一手势控制扩展为设备管理、动作绑定、AI 学习、安全门控和可解释决策。 - **提高文档质量**:同步整理技术报告、运行说明和视频介绍稿,使项目更容易复现和展示。 - **明确工程边界**:区分当前已实现的软件闭环和后续真实 EMG/IMU、米家设备接入,避免把规划能力写成已完成能力。 --- ## 六、当前完成度与后续计划 ### 当前已完成 - openvela 手表端快应用界面; - 矩形手表模拟器运行; - PC Mock 上位机; - HTTP JSON 双端通信; - 设备候选切换; - 默认微手势控制; - 设备添加和删除; - 动作绑定; - EMG + IMU Mock 数据输入; - 10 组样本采集限制; - 模型训练; - 独立识别; - Top 候选和置信度展示; - 安全门控; - 可解释决策舱; - PC 与 AIoT 双端同步。 ### 后续计划 - 接入真实 EMG 肌电采集模块; - 接入真实九轴 IMU 传感器; - 增加传感器校准、滤波和佩戴状态检测; - 将 PC Mock 数据源替换为单片机串口或 BLE 数据源; - 将轻量模型迁移到端侧或边缘侧运行; - 对接米家或局域网网关,实现真实设备控制; - 增加真实设备状态回读; - 统计真实用户动作识别准确率、误报率和漏报率; - 优化手表端输入体验和多设备场景编排能力。 --- ## 七、项目一句话总结 WristSpace 不是把手机遥控器搬到手表上,而是把手表变成一个可学习、可解释、可扩展的腕部空间 AIoT 控制入口。 ```