Files
RC_WheelLeg/01_doc/version_history.md
T

8.0 KiB
Raw Blame History

版本演进

本项目使用同一条 16dof 主线和里程碑 Tag 保存线性演进,不在源码目录中复制历史版本。

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

原先临时归档为 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.pcdmap6.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.390Crawl 配置使用 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 声称已复现。

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.31.0 扩大到 0.151.25
  • 执行器刚度和阻尼缩放由 0.91.1 扩大到 0.51.5
  • 增加膝部和轮部质量的 0.71.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

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.xml2hao.xmlA_C.xml,并为 1B_FF.json 补齐其引用的 B_C.xml
  • 将两份约 915 MiB 的原始 ASCII PCD 确定性抽样为各小于 10 MB 的预览点云;抽样参数、点数和哈希记录在工具 README。
  • 训练代码、MJCF、比赛策略和历史依赖锁保持 v0.8.0 状态不变。