# OmniRobLab_Curve **Repository Path**: tinymal/omniroblab_curve ## Basic Information - **Project Name**: OmniRobLab_Curve - **Description**: 数据曲线绘制工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-01 - **Last Updated**: 2026-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OmniRobLab 数据曲线可视化 跨平台网页版数据曲线可视化工具,用于可视化机器人导航与控制系统的记录数据。 ![版本](https://img.shields.io/badge/version-1.0-blue) ![平台](https://img.shields.io/badge/platform-跨平台-green) ## 功能特性 - **多文件数据加载** — 支持加载包含 `file1~file4.txt` 的数据文件夹 - **通道选择** — 按物理含义分组,支持单选/全选,精确定位关注的信号 - **交互式图表** — 鼠标滚轮缩放、拖动平移、底部滑块选择区间 - **多数据集对比** — 勾选对比模式后加载多个文件夹,曲线叠加显示 - **导出图片** — 一键导出当前图表为 PNG - **纯前端实现** — 单 HTML 文件 + 本地 ECharts,无需后端服务 ## 快速开始 ### 方式一:直接打开 双击 `index.html` 即可在浏览器中运行(部分浏览器对 `file://` 协议有文件读取限制,推荐使用方式二)。 ### 方式二:本地 HTTP 服务器(推荐) **Python:** ```bash python -m http.server 8080 ``` **Node.js:** ```bash npx serve -l 8080 ``` 然后在浏览器中访问 `http://localhost:8080`。 ## 使用说明 ### 1. 加载数据 点击左侧 **「📁 加载数据文件夹」** 按钮,选择包含 `file1.txt ~ file4.txt` 的文件夹。 ### 2. 切换数据文件 顶部工具栏提供 4 个标签页: | 标签 | 对应文件 | 内容 | |------|---------|------| | File1 · 姿态 | `file1.txt` | 目标/当前姿态、姿态微分、加速度、步态状态 | | File2 · RL输入 | `file2.txt` | 强化学习网络输入 (60 通道) | | File3 · RL输出 | `file3.txt` | 强化学习网络输出 (60 通道) | | File4 · 电机 | `file4.txt` | 20 个电机的连接状态、目标/当前位置与力矩 | ### 3. 选择通道 左侧面板按分组列出所有通道: - 点击通道标签可单独选中/取消 - 勾选分组标题的复选框可全选/全取消该组 ### 4. 交互操作 | 操作 | 方式 | |------|------| | X 轴缩放 | 鼠标滚轮 / 底部滑块 | | Y 轴缩放 | 鼠标滚轮(在图表区域) | | 拖动平移 | 鼠标按住拖动 | | 重置视图 | 点击「🔍 重置视图」 | | 导出图片 | 点击「📷 导出图片」 | ### 5. 对比模式 勾选左侧 **「对比模式」** 复选框后,可加载多个数据文件夹。所有数据集的曲线将叠加在同一图表中,通过不同色系区分。 ## 数据格式 每行一条记录,各字段以空格分隔,每行采样一个时间步。 ### file1.txt — 姿态数据(14 列) | 列索引 | 字段 | 说明 | |--------|------|------| | 0 ~ 2 | `att_tar[0~2]` | 目标姿态 (roll, pitch, yaw) | | 3 ~ 5 | `att_now[0~2]` | 当前姿态 (roll, pitch, yaw) | | 6 ~ 8 | `datt_now[0~2]` | 姿态微分 (角速度) | | 9 ~ 11 | `acc_n_now[0~2]` | 当前加速度 (x, y, z) | | 12 | `gait_state` | 步态状态 | | 13 | `rc_mode` | 遥控模式 | ### file2.txt — RL 输入(60 列) | 列索引 | 字段 | |--------|------| | 0 ~ 59 | `rl_recordi[0~59]` | ### file3.txt — RL 输出(60 列) | 列索引 | 字段 | |--------|------| | 0 ~ 59 | `rl_recordo[0~59]` | ### file4.txt — 电机数据(100 列) | 列索引 | 字段 | 说明 | |--------|------|------| | 0 ~ 19 | `motor_connect[0~19]` | 电机连接状态 | | 20 ~ 39 | `q_set[0~19]` | 目标关节位置 | | 40 ~ 59 | `t_set[0~19]` | 目标关节力矩 | | 60 ~ 79 | `q_now[0~19]` | 当前关节位置 | | 80 ~ 99 | `t_now[0~19]` | 当前关节力矩 | ## 项目结构 ``` OmniRobLab_curve/ ├── index.html # 主页面(应用入口) ├── echarts.min.js # ECharts 图表引擎(本地) ├── README.md # 本文件 └── Data/ # 示例数据目录 ├── file1.txt ├── file2.txt ├── file3.txt └── file4.txt ``` ## 技术栈 - **HTML5 / CSS3 / JavaScript** — 纯前端,无构建步骤 - **ECharts 5.5.0** — 图表渲染引擎(本地部署) - **File System Access API** — 浏览器文件夹选择 ## 浏览器兼容性 | 浏览器 | 最低版本 | |--------|---------| | Chrome | 86+ | | Edge | 86+ | | Firefox | 111+ | | Safari | 15.2+ | > 需要使用支持 `webkitdirectory` 属性的浏览器(以上主流浏览器均支持)。