9.1 KiB
9.1 KiB
版本演进
本项目使用同一条 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 |
v1.0.0 |
比赛最终部署 | last_not_slalom_1050、model_6800/model_84、最终路线和触控屏 |
v1.0.1 |
比赛成果媒体补充 | 最终机器人图片与 1050 分比赛视频 |
原先临时归档为
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 的比赛最终部署
- 归档
last_not_slalom_1050最终 ROS 2/C++ 真机工程;1050是比赛成绩,不是模型编号。 - Rough 使用
model_6800,Wall 使用model_84,Crawl 按比赛配置使用 IK 后端。 - 保留最终五份路线、1 号场地抽样 PCD、Odin 驱动、CAN 硬件桥、命令仲裁、导航和 Orin 触控屏 UI。
- 最终配置默认命令源为
NAV、定位模式为relocal,但真实 Odin1hao.bin不在备份中,重定位闭环需要从比赛设备补回。 - 排除嵌套 Git、日志、备份、候选策略、构建产物和开发草稿;TensorRT engine 仅代表比赛机环境。
v1.0.1 的比赛成果媒体补充
- 保持
v1.0.0的比赛最终代码和部署内容不变。 - 补充最终机器人图片和比赛视频,成绩为 1050 分、第七名(前 5%)。
main当前指向该补丁版本;代码复现仍应优先查看v1.0.0,完整成果展示可查看v1.0.1。
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。
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状态不变。