151 lines
10 KiB
Markdown
151 lines
10 KiB
Markdown
# 版本演进
|
||
|
||
本项目使用里程碑 Tag 保存时间演进;同一架构的小步迭代不复制目录。ROS 2 的无后缀、`_v2`、`_v3` 目录分别代表三个架构大版本,并在 `v1.1.0` 中同时保留。
|
||
|
||
| Tag | 阶段 | 核心内容 |
|
||
| --- | --- | --- |
|
||
| `v0.1.0` | 8DOF 中期检查 | 8DOF 串联足机械与大疆 A 板实机版本 |
|
||
| `v0.2.0` | 16DOF 机械 | 16DOF 串联轮足机械 CAD 与 STEP |
|
||
| `v0.3.0` | 第一代软件闭环 | 早期训练、MJCF、MuJoCo、Sim2Sim、IK 与 Python Sim2Real |
|
||
| `v0.3.1` | 实机记录 | 补充第一代 Sim2Real 实机视频 |
|
||
| `v0.4.0` | 新训练基线 | 第一份完整的新 MJCF、新 mjlab 框架和 Rough 策略工程 |
|
||
| `v0.5.0` | 随机化增强 | 扩大观测、延迟和动力学随机化,加入持续外力扰动 |
|
||
| `v0.6.0` | 比赛训练架构 | 分轴奖励、自适应指令课程、障碍释放课程和比赛站姿 |
|
||
| `v0.7.0` | MuJoCo 工具 | 姿态优化、IK 扫描、动力学、MPC 和 GUI 调试工具 |
|
||
| `v0.8.0` | 后期 Sim2Sim | ONNX 回放、IK/路线检查工具和比赛最终 Rough 策略 |
|
||
| `v0.8.1` | 导航打点工具 | 地图/航点编辑、路线迭代和抽样 PCD 补充包 |
|
||
| `v0.9.0` | Python Sim2Real v2 | 反馈新鲜度、Odin odom 诊断、Web 调试和安全监控增强 |
|
||
| `v0.10.0` | ROS 2/C++ 初版 | 50 Hz C++ 推理、200 Hz CAN 热路径和 ROS 2 系统集成 |
|
||
| `v0.11.0` | ROS 2 导航原型 | 简单导航、PCD 交互定位、任务点和 Web 导航调试 |
|
||
| `v0.11.1` | Odin 与站姿调参 | 完整 Odin 驱动、TensorRT、多策略切换和调参站姿 |
|
||
| `v0.12.0` | 里程计导航联调 | 纯里程计 fallback、A_min 路线、TF 冲突保护和 model_9600 |
|
||
| `v1.0.0` | 比赛最终部署初次归档 | last_not_slalom_1050、model_6800/model_84、最终路线和触控屏;当时暂存于无后缀目录 |
|
||
| `v1.0.1` | 比赛成果媒体补充 | 最终机器人图片与 1050 分比赛视频 |
|
||
| `v1.0.2` | 文档一致性修正 | 统一历史 Tag、当前快照和成果媒体的描述 |
|
||
| `v1.1.0` | 三代目录规范化 | 恢复无后缀初版、保留 v2 里程计版、明确最终比赛 v3,并校准训练 README |
|
||
|
||
> 原先临时归档为 `v0.9.0` 的最终 ROS 2/C++ 比赛部署已保存在 `backup/final-ros2-v0.9.0` 分支和 `backup-v0.9.0-ros2-final` 标签中,重排后已正式归入 `v1.0.0`。
|
||
|
||
## `v0.9.0` 的 Python Sim2Real v2
|
||
|
||
- 归档 `real/sim2real_v2` 真机部署版本,保持 `53D -> 16D` 策略观测和动作契约。
|
||
- 增加电机反馈新鲜度判断、Odin odom 诊断、命令限加速度平滑和 Web 运行时诊断。
|
||
- 保留 Python 策略运行时、ONNX/PT 模型、MJCF、Odin 接口、Web 工具和安全保护链路。
|
||
- 排除运行日志、测试日志、临时 XML 和开发交接草稿;后续 ROS 2/C++ 版本另行归档。
|
||
|
||
## `v0.10.0` 的 ROS 2/C++ Sim2Real 初版
|
||
|
||
- 归档 `real/sim2real_ros2`,将 Python 部署契约迁移到 ROS 2 Humble 与 C++ 运行时。
|
||
- 保留 53D 观测、16D 动作、50 Hz 策略循环和 200 Hz SocketCAN 电机热路径。
|
||
- 增加消息接口、硬件桥、策略运行时、命令仲裁、Nav2 配置、Docker 和 Windows Web 调试工具。
|
||
- 原始快照中的 `src/odin_ros_driver` 为空目录,因此本版本仍需外部 Odin 驱动,不能宣称传感器依赖已自包含。
|
||
- 保留原始候选 ONNX 文件以记录初版部署试验;排除计划、任务和 walkthrough 草稿。
|
||
|
||
## `v0.11.0` 的 ROS 2 Sim2Real v2
|
||
|
||
- 归档 `real/sim2real_ros2_v2`,保持 `v0.10.0` 的 ROS 2/C++ 控制契约。
|
||
- 增加 `simple_nav_node.py`、PCD 点击工具、任务点/任务序列配置和 Web 导航控制入口。
|
||
- 默认命令源从遥控切换为 `NAV`,加入简单导航状态、PCD 位姿和地图显示链路。
|
||
- 原始 `map1.pcd`、`map6.pcd` 分别约 49.05 MiB、44.24 MiB,归档时确定性抽样到 10 MB 以下并记录哈希。
|
||
- 原始快照中的 Odin 驱动仍为空目录;排除设备运行日志和开发草稿。
|
||
|
||
## `v0.11.1` 的 Odin、TensorRT 与站姿调参
|
||
|
||
- 归档 `real/sim2real_ros2_v2(z=0.380 hip=0.670 knee=-1.390)`,在同一 `sim2real_ros2_v2` 目录中记录真实差异。
|
||
- 首次随部署工程保留完整 Odin ROS 驱动、Apache-2.0 许可证、设备标定参数和预编译 SDK 静态库。
|
||
- 策略运行时增加 TensorRT、ONNX 回退、Rough/Crawl 模式切换、事件日志和更完整的电机失效诊断。
|
||
- 默认 Rough 策略为 `NEWmodel_1900`,默认站姿为髋俯仰 `0.670`、膝关节 `-1.390`;Crawl 配置使用 IK 后端。
|
||
- `map_b.pcd` 从 1,080,047 点确定性抽样为 270,012 点,并保留原始和抽样哈希。
|
||
- 排除嵌套 Git、Odin 运行日志、缓存、开发草稿和未被配置引用的候选策略。
|
||
|
||
## `v0.12.0` 的里程计导航联调
|
||
|
||
- 归档 `real/sim2real_ros2_v2(odom)`,继续沿用 `sim2real_ros2_v2` 目录的线性演进。
|
||
- 将 Rough 策略切换为 `model_9600`,默认站姿恢复为髋俯仰 `0.550`、膝关节 `-1.125`。
|
||
- Odin `custom_map_mode` 固定为纯里程计,加入 odom 新鲜度、外部 map/odom TF 冲突和任务结束交接保护。
|
||
- 增加 A_min 路线、PCD 地图编辑工具和三份抽样点云;原始大 PCD 不直接进入 Git。
|
||
- 保留完整 Odin 驱动、标定参数和 SDK 静态库;未找到的 `map_a.bin` 仍不伪造,重定位闭环不在本 Tag 声称已复现。
|
||
|
||
## `v1.0.0` 的比赛最终部署
|
||
|
||
- 首次归档原始 `sim2real_ros2_v2(last_not_slalom_1050)` 最终 ROS 2/C++ 真机工程;该 Tag 中暂存于无后缀 `real/sim2real_ros2`,目录命名在 `v1.1.0` 才修正为 `real/sim2real_ros2_v3`。`1050` 是比赛成绩,不是模型编号。
|
||
- Rough 使用 `model_6800`,Wall 使用 `model_84`,Crawl 按比赛配置使用 IK 后端。
|
||
- 保留最终五份路线、1 号场地抽样 PCD、Odin 驱动、CAN 硬件桥、命令仲裁、导航和 Orin 触控屏 UI。
|
||
- 最终配置默认命令源为 `NAV`、定位模式为 `relocal`,但真实 Odin `1hao.bin` 不在备份中,重定位闭环需要从比赛设备补回。
|
||
- 排除嵌套 Git、日志、备份、候选策略、构建产物和开发草稿;TensorRT engine 仅代表比赛机环境。
|
||
|
||
## `v1.0.1` 的比赛成果媒体补充
|
||
|
||
- 保持 `v1.0.0` 的比赛最终代码和部署内容不变。
|
||
- 补充最终机器人图片和比赛视频,成绩为 1050 分、第七名(前 5%)。
|
||
- 代码复现可查看 `v1.0.0`,包含成果媒体的对应快照可查看 `v1.0.1`。
|
||
|
||
## `v1.0.2` 的文档一致性修正
|
||
|
||
- 统一 ROS 2 历史 Tag、当前工作树和媒体补丁的说明。
|
||
- 该版本仅修正文档,没有改变训练或真机运行代码。
|
||
|
||
## `v1.1.0` 的目录与说明规范化
|
||
|
||
- 从 `v0.10.0` 恢复无后缀 `sim2real_ros2` 初版快照。
|
||
- `sim2real_ros2_v2` 保持 `v0.12.0` 里程计联调快照。
|
||
- 将 `last_not_slalom_1050` 最终比赛部署正式命名为 `sim2real_ros2_v3`。
|
||
- 依据当前源码重新校准 `rc_mjlab` README 中的物理步长、控制频率、环境数、执行器、地形、奖励和随机化说明。
|
||
|
||
## `v0.4.0` 的模型变化
|
||
|
||
- 机械 CAD 不变。
|
||
- MJCF 更新整机质量和惯性参数,旧、新 `wheelleg.xml` 的 SHA-256 不同。
|
||
- mjlab 上游基准从 `00409797` 更新到 `40f8d93e`。
|
||
- 保留轮腿分组执行器随机化所需的本地补丁。
|
||
- 本阶段归档 `model_rough.pt`,不将生成日志、缓存和临时 XML 纳入版本库。
|
||
|
||
## `v0.5.0` 的训练变化
|
||
|
||
- MJCF、mjlab 基准和已有模型文件保持不变。
|
||
- 投影重力噪声由 `±0.05` 扩大到 `±0.08`。
|
||
- 腿与轮动作的最大随机延迟由 2 步增加到 4 步。
|
||
- 地面摩擦随机范围由 `0.3–1.0` 扩大到 `0.15–1.25`。
|
||
- 执行器刚度和阻尼缩放由 `0.9–1.1` 扩大到 `0.5–1.5`。
|
||
- 增加膝部和轮部质量的 `0.7–1.3` 随机缩放。
|
||
- 增加作用于机身的连续随机外力和力矩扰动。
|
||
|
||
## `v0.6.0` 的比赛训练架构
|
||
|
||
- 保持 `v0.4.0` 引入的新 MJCF 和 mjlab 框架不变。
|
||
- 将线速度奖励拆分为 x/y 两轴,并独立配置偏航角速度奖励。
|
||
- 增加自适应 x/y/yaw 指令范围课程。
|
||
- 增加障碍地形逐步释放与更严格的地形晋级逻辑。
|
||
- 增加楼梯横向速度和偏航漂移约束。
|
||
- 默认站姿调整为髋俯仰 `0.550`、膝关节 `-1.125`,初始机身高度为 `0.42 m`。
|
||
- 增加速度误差、轮速跟踪、动作和姿态等训练诊断指标。
|
||
- 该 Tag 保存比赛训练代码架构,不把每次继续训练产生的 checkpoint 误记为新的软件版本。
|
||
|
||
训练阶段的详细关系见 [`training_evolution.md`](training_evolution.md)。
|
||
|
||
## `v0.7.0` 的独立 MuJoCo 工具
|
||
|
||
- 比赛训练架构、MJCF、模型和依赖锁文件保持 `v0.6.0` 状态不变。
|
||
- 增加解析姿态表、RL 友好姿态筛选和 MuJoCo 静态姿态优化。
|
||
- 增加 IK/差速轮参数扫描,可导出 JSON 结果。
|
||
- 增加 Robot、Controller、Dynamics、MPCController 和 GUI 调试链路。
|
||
- 记录历史工具常量与新版 MJCF 质量、比赛默认站姿之间的参数边界,避免将分析结果直接当作已校准真机参数。
|
||
|
||
## `v0.8.0` 的后期 Sim2Sim
|
||
|
||
- 比赛训练任务、MJCF 和 `v0.7.0` 的 MuJoCo 工具保持不变。
|
||
- 策略运行器增加 ONNX 加载,并允许在缺少 `pynput` 时关闭后台键盘监听继续运行。
|
||
- MuJoCo 执行器重建同时兼容新旧 Spec 删除接口。
|
||
- 增加 PT→ONNX 导出、IK 补偿扫描、纯 IK 绕桩和 ONNX 批量路线检查入口。
|
||
- 归档比赛最终 Rough 策略 `model_6800.onnx`;其 SHA-256 为 `3C994BDD3434AD15770A52AC0E8D229F502F00D6511CDD42C2E2C742301AEF13`。
|
||
- Crawl 权重、运行日志、临时 XML 和大量重复路线实验不在本阶段归档。
|
||
|
||
## `v0.8.1` 的导航打点工具
|
||
|
||
- 补充 Pygame 地图/PCD/航点综合编辑器、避障区域编辑器和坐标变换工具。
|
||
- 补充路线安全检查、候选航点优化、XML/航点镜像和批量 Sim2Sim 实验入口。
|
||
- 按源文件时间保留 14 份比赛路线 JSON,不将开发期文件名误解释为正式版本号。
|
||
- 补充 `1hao.xml`、`2hao.xml`、`A_C.xml`,并为 `1B_FF.json` 补齐其引用的 `B_C.xml`。
|
||
- 将两份约 915 MiB 的原始 ASCII PCD 确定性抽样为各小于 10 MB 的预览点云;抽样参数、点数和哈希记录在工具 README。
|
||
- 训练代码、MJCF、比赛策略和历史依赖锁保持 `v0.8.0` 状态不变。
|