Files

10 KiB
Raw Permalink Blame History

版本演进

本项目使用里程碑 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.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 声称已复现。

v1.0.0 的比赛最终部署

  • 首次归档原始 sim2real_ros2_v2(last_not_slalom_1050) 最终 ROS 2/C++ 真机工程;该 Tag 中暂存于无后缀 real/sim2real_ros2,目录命名在 v1.1.0 才修正为 real/sim2real_ros2_v31050 是比赛成绩,不是模型编号。
  • Rough 使用 model_6800Wall 使用 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.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 状态不变。