13 KiB
更新日志
本项目的重要变更记录在此文件中,版本标签沿用仓库现有的 V主版本.次版本[.修订版本] 格式。
[未发布]
[0.9.2] - 2026-09-08
- 修复custom_boxes因起终点编辑使同步状态持续失效而无法训练:移除训练面板起终点坐标显示与编辑,训练/调参启动时自动重新编译已应用碰撞场景,并自动选择满足净空、最小距离和连通性约束的参考点。
[0.9.1] - 2026-09-08
-
Go2避障训练改为每个episode从同一连通自由区域随机采样起终点并随机化初始朝向,保证障碍/边界净空和最小目标距离;固定三seed评估及浏览器部署仍使用声明的参考起终点,兼顾泛化与可比性。
-
修正基础策略上传存储错误分类:文件打开/写入/关闭失败返回503并提示检查磁盘空间/权限;流读取超时或连接截断仍返回400,均保留临时清理与socket超时复位。
-
完成普通训练与自调参共用单文件.pt/.onnx上传入口:默认服务直接连接、Go2 legacy47模板确认、自动选择内容ID/文件SHA、取消及同文件重试;任务/连接epoch变化保留旧选择并隔离晚到响应,上传中禁止启动。补双面板真实HTTP浏览器验收与4环境×1iteration CPU ONNX-derived PPO/导出/统计恢复检查(仅链路验证)。
-
新增Go2 legacy47单文件.pt/受限MLP ONNX上传后端,无需管理员注册/邻接配置;认证有界二进制接收、CPU限额安全校验、持久化内容SHA来源,复用普通训练/自调参warm-start与rung自身resume。ONNX只继承确定性网络,明确模板假设、合成normalizer count及fresh训练状态;双UI文件选择待接入。
-
修复跨任务奖励preset混入Flat:以持久化来源session恢复权威taskId,读写与训练入口完整验证任务schema;跨任务或损坏来源在创建作业前拒绝,Flat菜单仅展示已确认Flat的preset。
-
修复导航设定拖回起点误触:超过5px后持续记为拖动,取消/Esc/清理/卸载清空整个手势,下一次正常点击不受影响。
-
新增显式multi_ring_raycast三层48射线/97维部署,旧缺省32射线/81维不变;task/ONNX严格模式、pitch/yaw角度及顺序白名单,浏览器观测、真实ORT shape、导航面板/PiP动态线数贯通。
-
multi奖励仅按已验证标准底板顶面几何分类过滤地面,观测保留实际地板距离;缓存静态box/方向并优化解析slab,补真实CPU/WASM/GPU短smoke及48ray整帧基准。仍存在层间/侧后/坑盲区,未实现局部高程图。
-
修复训练CLI未导入仓库任务注册模块导致直接启动Flat/Rough/Obstacle失败;保留独立解释器三seed评估与调参导航速度。事务导入失败面板改为保留完整diagnostic detail,不再用“模型编译失败”摘要掩盖ORT shape/初始化错误。
-
新增已应用场景静态碰撞多实例→权威custom_boxes导出,保留世界坐标并诚实标记AABB/标准底板近似;前后端严格校验布局、摩擦、数量及起终点圆形安全区,贯通任务JSON/ONNX与最小坐标配置。
-
新增 Go2 避障目标贴地呼吸信标、一次性点击设定目标模式、实时目标坐标/距离和目标复位;保持81维观测与异步held-action,输入与地图操纵器互斥。
-
本地训练卡片新增可折叠Loss/Reward趋势,按迭代去重补全并有界保留500点;复用共享Canvas图表,综合指标独立缩放,曲线平滑但保留原值。
-
新增 Go2 前视32射线避障训练任务、自定义地形参数、配套碰撞地图与81维ONNX浏览器部署闭环,支持PiP和射线显示。
-
自定义地图与策略采用候选会话事务,真实ONNX初始化/graph校验或地图绑定失败时保留原场景、策略和物理状态;默认Flat兼容旧无metadata的47维导出。
-
对齐原Go2训练模型的关节armature、足端接触参数和自碰撞mask,补充真实WASM/CPU射线、动力学参数及浏览器回归测试。短训练仅验证链路,不代表避障收敛。
[0.8.3] - 2026-09-04
新增
- 增加视口浮动地图工具栏(
MapViewportTools),在视口上方提供变换模式切换、坐标空间切换和快捷对齐工具。 - 增加三维场景大纲树(
SceneOutliner),直观查看场景中机器人、地图实例及层级结构。 - 增加视口快捷键挂载(
useMapEditorShortcuts),支持快速切换操纵器模式、聚焦对象和撤销操作。 - 增加属性检查器面板(
MapObjectInspector与RobotInspector),支持精确调节地图对象位姿与机器人关节/执行器。 - 增加右侧栏自适应 Tab 与多工具工作区容器(
RightSidebarTabs、WorkspaceToolsPanel)。 - 增加拖拽式连续数值调节输入组件(
ScrubbableNumberInput)与通用垂直双栏拆分面板(VerticalSplitPane)。
变更
- 重构并收敛模型控制侧栏(
ModelControlsSidebar)与工程侧栏(ProjectSidebar),移除冗余的行内变换逻辑。 - 优化地图编辑面板(
MapEditorPanel)与物理地图面板(PhysicalMapPanel),与统一检查器架构对齐。 - 清理已落地的历史设计草案与计划文档。
[0.8.2] - 2026-09-03
新增
- 将自调参工作台重构为高内聚的组件群:Session 列表导航轨(
TuningSessionRail)、控制工具栏(TuningControlToolbar)、Agent 决策时间线(AgentDecisionTimeline)、指标对比看板(MetricsComparisonBoard)、排行榜(TuningLeaderboard)、日志控制台(TuningConsole)与参数差异对比器(RewardConfigDiffEditor)。 - 建立自调参集中式状态管理(
tuningStore.ts)与自适应轮询逻辑(useTuningPolling.ts)。 - 引入标量环形缓冲区(
ScalarRingBuffer.ts),优化长周期 TensorBoard 曲线的高频更新与渲染性能。 - 服务端增加单步执行令牌(Step Token)调度,支持逐轮审批模式下的受控单步推进。
- 服务端增加参数约束 CAS 校验护栏与会话级别约束同步。
- 支持同会话内安全 Trial 的一键回滚与基准重设(Rollback)。
[0.8.1] - 2026-09-03
新增
- 统一地图资产库与多实例堆叠系统(
MapAssetLibrary、MapStackComposer),支持同源地图资产多次放置与独立位姿变换。 - 新增参数化地图实时预览图层(
ParametricMapPreviewLayer),在视口中实时预览程序化地形与碰撞体变换。 - 新增程序地形贴合与落位计算(
sceneSurface.ts),支持认证资产在程序化地形上自动重力落位。 - 引入地图场景草稿事务化编译(
mapSceneDraft、EditableMapDraftCommit),保障物理、视觉与出生点数据同步更新。 - 增强地图对象拾取与选择机制(
compiledMapPick),支持点击穿透、空白取消与实时变换操纵。
[0.8.0] - 2026-09-02
新增
- 增加基于 DeepSeek Agent 的强化学习奖励函数自调参系统(
training_server/tuning/),结合训练曲线与固定评估指标提出受限参数 patch。 - 支持全自动(Automatic)与逐轮审批(Approval)双调度模式,集成多阶段晋级(Successive-Halving)资源淘汰机制。
- 新增固定多场景评估逻辑(
evaluate.py),通过固定 seed 和组合运动指令产出与奖励权重无关的客观综合评分。 - 新增 SQLite/WAL 存储管理,持久化保留调参会话、Trial 状态、参数护栏、审计记录与 TensorBoard 标量数据。
- 新增独立的自调参 Web 工作台(
web_platform/tuning.html,web_platform/src/tuning/),包含实时曲线可视化组件(ScalarChart.tsx)。 - 训练服务支持将最佳配置保存为不可变预设并在普通训练中复用,支持导出最佳
policy.onnx。 - 本地训练面板(
LocalTrainingPanel.tsx)与训练客户端集成自调参能力探测与快速跳转入口。
[0.7.3] - 2026-09-01
新增
- 将默认
Unitree-Go2-Flat训练所需的 PPO 环境、奖励/观测配置、ONNX 导出逻辑和 Go2 模型资产内置到training_server/rl/。
变更
- 训练服务默认使用仓库内置训练器,不再要求单独克隆
unitree_rl_mjlab;仍可通过--trainer-root覆盖。
[0.7.2] - 2026-09-01
变更
- 前端改为“应用壳 + 业务域 + 共享组件”的目录结构,并补充架构与依赖边界文档。
- 拆分工程侧栏、模型控制侧栏、执行器控制和通用侧栏容器,降低单文件职责和跨域耦合。
- 将地图、控制器、强化学习、本地训练和遥测面板及测试与各自业务域共置。
- 将遥测模块从仿真调度目录独立到
telemetry/,保留通过显式接口与SimulationSession集成。
[0.7.1] - 2026-09-01
新增
- 增加浏览器内仿真遥测记录模块,可配置记录 Body、采样频率和样本上限。
- 记录位置、移动速度、机身侧倾/俯仰/偏航角、角速度、累计里程、接触与驱动指标。
- 增加实时数据与摘要面板,并支持导出稳定列结构的 CSV 和 Schema V1 JSON。
- 提供
TelemetrySource、registerDataChannel及记录生命周期接口,便于扩展业务指标和其他仿真后端。 - 仿真重置使用数据分段,避免跨重置计算错误速度;达到样本上限时自动停止。
[0.6.1] - 2026-08-28
新增
- 固定并强制使用 Node.js、npm、Prettier 和 Ruff 开发工具版本。
- 为核心导入、仿真数学、状态管理和训练客户端增加覆盖率门槛。
- Git 标签触发的自动构建、校验和与 GitHub Release 工作流。
- 本地训练服务随机 Bearer Token 鉴权、Host 校验和任务历史上限。
- 训练进程启动/取消竞态回归测试和 SIGTERM 受控退出。
变更
- Playwright CI 改用版本固定的 Chromium。
- TypeScript、TSX、配置和文档统一使用 Prettier 格式化。
- Python 训练服务统一使用 Ruff 检查和格式化。
[0.6.0] - 2026-08-28
变更
- 将仓库重构为以
web_platform/为核心的 Web 应用仓库。 - MuJoCo 运行时改为依赖官方
@mujoco/mujoconpm 包。 - 移除原生 C++、Python、MJX、Unity、桌面模拟器、CMake 和上游测试镜像。
- 将训练桥接服务和 Python 控制器示例提升到仓库根目录。
[0.5.2] - 2026-08-28
变更
- 优化响应式工作区、可访问性、首屏加载、纹理兼容性和视口交互。
- 增加碰撞体、坐标系、关节轴、质心和惯量辅助可视化。
未发布 — Obstacle DeepSeek 自调参
- 新增Obstacle专属四标量schema与真实reward/导航command应用,保持Flat与护栏CAS语义;导出/浏览器执行配套目标速度。
- 增加固定3seed/1000步、首terminal前捕获的客观导航评价,固定权重和成功/跌倒硬门槛;custom保持权威地图并诚实标注;真实checkpoint/观测统计加载、逐seed进程隔离和失败关闭。
- 自调参界面支持任务选择、专属参数/评估展示、terrain/sensor/custom配置交接及最佳Obstacle策略事务导入;增加mock Agent、打分算例、CAS、argv配置与GPU评估验证。
未发布 — 已训练基础策略迁移与持续导航
- 普通训练与自调参增加已验证基础策略选择、checkpoint/SHA和兼容观测展示;管理员本地注册来源,内容寻址只读快照,拒绝客户端任意路径、symlink、unsafe反序列化及失效来源。
- 严格迁移47维actor到47/81/97:新增列零初始化,保留源归一化统计/count;新trial重置critic/optimizer/iteration,同trial晋级只resume自己的checkpoint,导出保留无路径来源metadata。
- 服务重启后的非终态session等待显式恢复,审计原状态并使旧pending proposal失效重提;保留来源、约束和Approval模式,防重复resume worker。
- 移除浏览器Obstacle交互导航20秒截止,保留训练/固定三seed评估协议及跌倒/越界安全停止;设点不自动启用策略,明确显示暂停/未启用/错误状态。
- 新增来源安全、SHA快照、trial续训/重启、双面板和真实WASM/ORT持续换目标回归;4env×1iteration仅证明初始化与优化,空旷地图实测不代表复杂障碍收敛。
未发布 — 基础策略目录刷新安全修复
- 修复普通训练在刷新服务目录后清掉失效来源、静默降级随机初始化的问题;保留已选内容ID,不按同别名自动替换新内容。
- 两种训练面板统一对目录缺项、验证失败及任务不兼容来源显示失效提示,禁用启动并在handler再次拦截;必须用户明确从头训练或选择有效来源。显式切换任务仍清空选择。
- 增加两面板A→B、not-ready、缺项及兼容性变更的真实组件刷新回归,验证失效时零启动请求及用户明确选择后的请求体。