From fbb396708c8a80e5928f02d0fb5e6fa07789e312 Mon Sep 17 00:00:00 2001 From: eastzio <3156045992@qq.com> Date: Mon, 27 Jul 2026 19:17:19 +0800 Subject: [PATCH] =?UTF-8?q?[docs]=20=E5=85=A8=E9=9D=A2=E6=A0=A1=E5=87=86?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=B4=E6=98=8E=E4=B8=8E=E8=B7=A8=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E8=B5=84=E6=BA=90=E8=BE=B9=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 2 ++ 01_doc/README.md | 13 ++++++----- 01_doc/training_evolution.md | 2 +- 01_doc/version_history.md | 6 ++--- 03_hardware/README.md | 2 ++ 04_firmware/README.md | 2 ++ 05_software/real/README.md | 4 ++-- 05_software/real/sim2real/DEPLOYMENT.md | 6 +++-- .../real/sim2real/FACTS_AND_ASSUMPTIONS.md | 6 +++-- .../real/sim2real/ORIN_NANO_DEPLOYMENT.md | 4 +++- 05_software/real/sim2real/README.md | 23 ++++++++++--------- .../real/sim2real_ros2/DEPLOYMENT_GUIDE.md | 4 ++-- 05_software/real/sim2real_ros2/README.md | 14 +++++------ .../real/sim2real_ros2/docs/MIGRATION_PLAN.md | 12 ++++------ .../real/sim2real_ros2_v2/DEPLOYMENT_GUIDE.md | 6 ++--- 05_software/real/sim2real_ros2_v2/README.md | 2 +- .../sim2real_ros2_v2/docs/ARCHITECTURE.md | 2 +- .../sim2real_ros2_v2/docs/MIGRATION_PLAN.md | 10 ++++---- .../docs/REMOTE_CONTROL_USAGE.md | 4 ++-- .../sim2real_ros2_v2/docs/WEB_DEBUG_USAGE.md | 2 +- .../real/sim2real_ros2_v2/map/README.md | 2 ++ .../tools/pcd_map_viewer/README.md | 18 +++++---------- .../tools/pcd_map_viewer/README_zh.md | 6 ++++- .../tools/win_web_debug/README.md | 6 ++--- .../tools/win_web_debug/README_zh.md | 4 +++- .../real/sim2real_ros2_v3/DEPLOYMENT_GUIDE.md | 4 ++-- 05_software/real/sim2real_ros2_v3/README.md | 4 ++-- .../sim2real_ros2_v3/docs/MIGRATION_PLAN.md | 10 ++++---- .../real/sim2real_ros2_v3/map/README.md | 2 ++ 05_software/real/sim2real_v2/DEPLOYMENT.md | 4 ++-- .../real/sim2real_v2/FACTS_AND_ASSUMPTIONS.md | 8 ++++--- .../real/sim2real_v2/ORIN_NANO_DEPLOYMENT.md | 4 +++- 05_software/real/sim2real_v2/README.md | 2 +- 05_software/train/README.md | 4 ++-- .../train/rc_mjlab/tools/nav_tools/README.md | 2 ++ 06_assets/README.md | 10 +++++--- README.md | 18 ++++++++++----- 37 files changed, 131 insertions(+), 103 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1f3e33f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Keep structured point-cloud assets byte-identical across platforms. +*.pcd -text diff --git a/01_doc/README.md b/01_doc/README.md index e6cd42b..a41e45e 100644 --- a/01_doc/README.md +++ b/01_doc/README.md @@ -2,13 +2,14 @@ 本目录用于保存 16DOF 轮足项目自身的技术文档和使用说明。 -后续建议按主题组织: +当前文档结构: ```text 01_doc/ -├─ architecture/ # 系统架构和数据流 -├─ control/ # 控制与强化学习原理 -├─ deployment/ # Sim2Sim 和 Sim2Real 部署 -├─ hardware/ # 接线、标定和硬件兼容性 -└─ user_guide/ # 安装、运行和调试说明 +├─ architecture/ +│ └─ early_software_stack.md # 第一代训练—仿真—真机闭环 +├─ training_evolution.md # v0.4~v0.6 训练架构演进 +└─ version_history.md # 全项目 Tag 与里程碑 ``` + +具体运行说明放在对应工程目录内,避免在顶层重复并逐渐失真:训练见 `05_software/train/rc_mjlab/`,真机部署见 `05_software/real/`。 diff --git a/01_doc/training_evolution.md b/01_doc/training_evolution.md index d03baad..2e39b44 100644 --- a/01_doc/training_evolution.md +++ b/01_doc/training_evolution.md @@ -34,4 +34,4 @@ 比赛得分:1050 ``` -`model_6800.onnx` 是比赛最终部署工件,不用模型编号替代训练代码版本号。它将在最终比赛部署版本中与运行配置一起归档。 +`model_6800.onnx` 是比赛最终部署工件,不用模型编号替代训练代码版本号。它已随比赛部署归档;当前规范目录为 `05_software/real/sim2real_ros2_v3/policies/`。 diff --git a/01_doc/version_history.md b/01_doc/version_history.md index 1c3d778..2dad10f 100644 --- a/01_doc/version_history.md +++ b/01_doc/version_history.md @@ -1,6 +1,6 @@ # 版本演进 -本项目使用同一条 `16dof` 主线和里程碑 Tag 保存线性演进,不在源码目录中复制历史版本。 +本项目使用里程碑 Tag 保存时间演进;同一架构的小步迭代不复制目录。ROS 2 的无后缀、`_v2`、`_v3` 目录分别代表三个架构大版本,并在 `v1.1.0` 中同时保留。 | Tag | 阶段 | 核心内容 | | --- | --- | --- | @@ -19,7 +19,7 @@ | `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` | ROS 2 v3 比赛最终部署 | last_not_slalom_1050、model_6800/model_84、最终路线和触控屏 | +| `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 | @@ -68,7 +68,7 @@ ## `v1.0.0` 的比赛最终部署 -- 将原始 `sim2real_ros2_v2(last_not_slalom_1050)` 正式整理为 `real/sim2real_ros2_v3`;这是第三版、最终 ROS 2/C++ 真机工程,`1050` 是比赛成绩,不是模型编号。 +- 首次归档原始 `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` 不在备份中,重定位闭环需要从比赛设备补回。 diff --git a/03_hardware/README.md b/03_hardware/README.md index 0e3ece3..e0ac833 100644 --- a/03_hardware/README.md +++ b/03_hardware/README.md @@ -3,3 +3,5 @@ 本目录用于保存 16DOF 轮足机器人的自研电路、接线图、BOM、传感器与计算平台说明。 第三方硬件资料不作为自研成果提交。 + +当前目录仅有范围说明,尚未归档 16DOF 平台的自研原理图、PCB、BOM 或正式接线图,不应将本目录视为已完成的硬件开源包。 diff --git a/04_firmware/README.md b/04_firmware/README.md index 3bc98c5..ea05624 100644 --- a/04_firmware/README.md +++ b/04_firmware/README.md @@ -3,3 +3,5 @@ 本目录用于保存运行在 MCU 或其他嵌入式控制器上的固件源码和构建工程。 编译生成的 `.hex`、`.bin`、`.elf`、`.axf` 等文件不进入源码目录,可在需要时作为 Release 附件发布。 + +当前 16DOF 主线尚未在本目录归档 MCU/Keil 工程;该目录是预留入口。8DOF 大疆 A 板 Keil 工程由 `8dof` 分支和 `v0.1.0` 保存。 diff --git a/05_software/real/README.md b/05_software/real/README.md index 365d8ee..f8c822f 100644 --- a/05_software/real/README.md +++ b/05_software/real/README.md @@ -22,7 +22,7 @@ ## `sim2real_v2` -Python Sim2Real v2,保留 `53D -> 16D` 策略接口,并增加电机反馈新鲜度、Odin odom 诊断、命令平滑、Web 运行时诊断和安全监控工具。该版本对应重排主线的 `v0.9.0`。 +Python Sim2Real v2,保留 `53D -> 16D` 策略接口,并增加电机反馈新鲜度、Odin odom 诊断、命令平滑、Web 运行时诊断和安全监控工具,对应 `v0.9.0`。 部署说明见 [`sim2real_v2/README.md`](sim2real_v2/README.md) 与 [`sim2real_v2/DEPLOYMENT.md`](sim2real_v2/DEPLOYMENT.md)。 @@ -40,7 +40,7 @@ Python Sim2Real v2,保留 `53D -> 16D` 策略接口,并增加电机反馈新 `v0.12.0` 仍在同一路径上形成里程计导航联调快照:固定纯里程计模式,加入 odom fallback 的 TF 冲突保护、A_min 路线和多地图工具;默认 Rough 策略为 `model_9600`,默认站姿回到比赛站姿。当前该目录保持 `v0.12.0` 快照,阶段说明见 [`sim2real_ros2_v2/README.md`](sim2real_ros2_v2/README.md)。 -### `sim2real_ros2_v3`(最终比赛版,`v1.0.0`) +### `sim2real_ros2_v3`(最终比赛版;代码快照 `v1.0.0`,规范目录 `v1.1.0`) 第三版来自原始目录 `sim2real_ros2_v2(last_not_slalom_1050)`,整理时正式命名为 `sim2real_ros2_v3`。它是 1050 分比赛最终部署,包含 `model_6800` Rough、`model_84` Wall、最终路线、完整 Odin 驱动、CAN 和触控屏。部署说明见 [`sim2real_ros2_v3/README.md`](sim2real_ros2_v3/README.md)。 diff --git a/05_software/real/sim2real/DEPLOYMENT.md b/05_software/real/sim2real/DEPLOYMENT.md index f787b7b..8c38a54 100644 --- a/05_software/real/sim2real/DEPLOYMENT.md +++ b/05_software/real/sim2real/DEPLOYMENT.md @@ -1,10 +1,12 @@ # `sim2real` 部署说明 +> 版本范围:第一代 Python Sim2Real(`v0.3.0`)。本文“当前”均指该快照。 + ## 模型 当前只使用: -- `sim2real/policies/model_rough.pt` +- `policies/model_rough.pt` ## 模型契约 @@ -38,7 +40,7 @@ ## 纯 Python 命令 -默认前提:当前目录就是 `sim2real/` +默认前提:当前目录是 `05_software/real/sim2real/` ```bash python -m pip install -r requirements-orin.txt diff --git a/05_software/real/sim2real/FACTS_AND_ASSUMPTIONS.md b/05_software/real/sim2real/FACTS_AND_ASSUMPTIONS.md index 5de97bd..ae327d2 100644 --- a/05_software/real/sim2real/FACTS_AND_ASSUMPTIONS.md +++ b/05_software/real/sim2real/FACTS_AND_ASSUMPTIONS.md @@ -1,9 +1,11 @@ # `FACTS_AND_ASSUMPTIONS` +> 版本范围:第一代 Python Sim2Real(`v0.3.0`)。事实项只适用于该快照。 + ## 已确认 -- 当前部署模型:`sim2real/policies/model_rough.pt` -- 源模型:`model_2000.pt` +- 当前部署模型:`policies/model_rough.pt` +- 原始说明记录的源模型名:`model_2000.pt`;同名文件未随本目录归档 - actor 输入:`53D` - actor 输出:`16D` - 当前 actor 不吃 `base_lin_vel` diff --git a/05_software/real/sim2real/ORIN_NANO_DEPLOYMENT.md b/05_software/real/sim2real/ORIN_NANO_DEPLOYMENT.md index 42104c6..298844e 100644 --- a/05_software/real/sim2real/ORIN_NANO_DEPLOYMENT.md +++ b/05_software/real/sim2real/ORIN_NANO_DEPLOYMENT.md @@ -1,5 +1,7 @@ # `Orin Nano` 部署说明 +> 版本范围:第一代 Python Sim2Real(`v0.3.0`)。本文不是最终 ROS 2 v3 部署指南。 + ## 是否必须转 ONNX 不必须。 @@ -26,7 +28,7 @@ ## 纯 Python 部署命令 -默认前提:当前目录就是 `sim2real/` +默认前提:当前目录是 `05_software/real/sim2real/` ```bash python3 -m pip install -r requirements-orin.txt diff --git a/05_software/real/sim2real/README.md b/05_software/real/sim2real/README.md index 8d13446..424a572 100644 --- a/05_software/real/sim2real/README.md +++ b/05_software/real/sim2real/README.md @@ -1,11 +1,13 @@ # `sim2real` -当前版本只部署现在这套 `53D -> 16D` 模型,不再兼容旧版 `crawl`、多策略和历史观测。 +本目录是第一代 Python Sim2Real 快照,对应 `v0.3.0`。下文“当前”均指该历史快照,不指仓库 `main` 的最终 ROS 2 v3。 + +该快照只部署当时的 `53D -> 16D` Rough 模型,不兼容更早的 Crawl、多策略和其他历史观测契约。 ## 当前部署模型 -- 使用文件:`sim2real/policies/model_rough.pt` -- 来源文件:`model_2000.pt` +- 使用文件:`policies/model_rough.pt` +- 原始说明记录的来源名:`model_2000.pt`;该同名源文件未随本目录归档,仓库只保留重命名后的 `policies/model_rough.pt` ## 当前 actor 输入 @@ -52,7 +54,7 @@ ## 启动命令 -默认前提:当前目录就是 `sim2real/` +默认前提:当前目录是 `05_software/real/sim2real/` 纯 `python`: @@ -65,13 +67,12 @@ python main.py python web/server.py --host 0.0.0.0 --port 8080 ``` -Windows 本机: +Windows 本机可使用目标虚拟环境中的 Python;不要依赖个人机器的绝对安装路径: ```bash -D:\Minicoda3\envs\py10\python.exe -m pip install -r requirements-orin.txt -D:\Minicoda3\envs\py10\python.exe tools\alignment_check.py --policy policies\model_rough.pt --manifest deployment_manifest.yaml -D:\Minicoda3\envs\py10\python.exe tools\standalone_check.py -D:\Minicoda3\envs\py10\python.exe main.py -D:\Minicoda3\envs\py10\python.exe web\server.py --host 0.0.0.0 --port 8080 +python -m pip install -r requirements-orin.txt +python tools\alignment_check.py --policy policies\model_rough.pt --manifest deployment_manifest.yaml +python tools\standalone_check.py +python main.py +python web\server.py --host 0.0.0.0 --port 8080 ``` -#sim2real/policies/model_rough.pt \ No newline at end of file diff --git a/05_software/real/sim2real_ros2/DEPLOYMENT_GUIDE.md b/05_software/real/sim2real_ros2/DEPLOYMENT_GUIDE.md index 17b4c70..527dc6e 100644 --- a/05_software/real/sim2real_ros2/DEPLOYMENT_GUIDE.md +++ b/05_software/real/sim2real_ros2/DEPLOYMENT_GUIDE.md @@ -1,6 +1,6 @@ -# ROS2 C++ Sim2Real 运动控制栈 - 部署指南 +# ROS 2/C++ Sim2Real 初版部署指南 -本工作区提供了一个自包含、独立的 C++ ROS2 Humble 实现,用于在 Jetson Orin 目标机上部署轮腿四足机器人控制策略。 +本工作区保存 `v0.10.0` 的 ROS 2 Humble/C++ 初版。控制栈主体源码已归档,但 Odin 驱动源码在该快照中缺失,因此不是自包含部署包;完成真实传感器闭环前必须补充兼容驱动。 --- diff --git a/05_software/real/sim2real_ros2/README.md b/05_software/real/sim2real_ros2/README.md index 25d4398..2df84df 100644 --- a/05_software/real/sim2real_ros2/README.md +++ b/05_software/real/sim2real_ros2/README.md @@ -1,6 +1,6 @@ # ROS 2/C++ Sim2Real 初版 -本目录归档 `real/sim2real_ros2`,对应重排主线的 `v0.10.0`。这是轮腿机器人 Sim2Real 部署栈从 Python 运行时迁移到 ROS 2 + C++ 的第一版系统工程。 +本目录归档 `real/sim2real_ros2`,对应 `v0.10.0`。这是轮腿机器人 Sim2Real 部署栈从 Python 运行时迁移到 ROS 2 + C++ 的第一版系统工程。 本工程保留当前 `sim2real` 已验证的部署契约,同时将运行时热路径迁移到 C++: @@ -26,7 +26,7 @@ - `src/sim2real_bringup` 统一启动文件与运行时参数配置。 - `src/odin_ros_driver` - Odin 传感器 ROS 2 驱动(含 IMU、点云、里程计发布)。 + 仅保留依赖边界说明;原始 `v0.10.0` 快照没有归档 Odin 驱动源码,不能独立提供 IMU、点云和里程计发布。 - `docs` 架构说明与迁移计划。 @@ -58,11 +58,11 @@ Nav2 / cmd_vel ------------------------------> sim2real_runtime 迁移过程中以下文件被视为真值源: -- `sim2real/deployment_manifest.yaml` -- `sim2real/interface/motor_mapping.py` -- `sim2real/interface/real_io.py` -- `sim2real/policy/policy_runner.py` -- `sim2real/web/session.py` +- `../sim2real/deployment_manifest.yaml` +- `../sim2real/interface/motor_mapping.py` +- `../sim2real/interface/real_io.py` +- `../sim2real/policy/policy_runner.py` +- `../sim2real/web/session.py` ## 注意事项 diff --git a/05_software/real/sim2real_ros2/docs/MIGRATION_PLAN.md b/05_software/real/sim2real_ros2/docs/MIGRATION_PLAN.md index d39e093..75a512e 100644 --- a/05_software/real/sim2real_ros2/docs/MIGRATION_PLAN.md +++ b/05_software/real/sim2real_ros2/docs/MIGRATION_PLAN.md @@ -1,5 +1,7 @@ # 迁移计划 +> 版本范围:ROS 2/C++ 初版(`v0.10.0`)。这是历史迁移记录,不是最终比赛版验收报告;本快照未归档 Odin 驱动源码。 + ## Phase 1: 硬件核心迁移 ✅ 已完成 将当前高频热路径从 Python 迁出。 @@ -39,11 +41,7 @@ ## Phase 3: ROS 2 系统集成 ✅ 已完成 -参考的源项目: - -- `00_ reference/odin_ros_driver` -- `00_ reference/EDULITE_A3/el_a3_ros` -- `00_ reference/rl_sar` +参考过的外部项目包括 Odin ROS 驱动、EDULITE A3 ROS 工程和 RL-SAR;这些外部参考目录不属于本仓库公开内容。 交付物: @@ -76,5 +74,5 @@ | 策略运行时 | `sim2real_runtime_node` | 50Hz ONNX 推理 + 53D 观测 + raw_action clip | | 里程计中继 | `odom_relay_node` | /odin1/odometry → /odom + odom→base_link TF | | 导航栈 | Nav2 全套节点 | AMCL + costmap + DWB + Navfn + BT + lifecycle | -| 传感器驱动 | `odin_ros_driver` | IMU + 点云 + 里程计原始发布 | -| 点云转换 | `pointcloud_to_laserscan` | /odin1/cloud_slam → /scan (供 AMCL 使用) | +| 传感器驱动 | 外部 Odin 驱动 | 本快照未归档源码,不能视为自包含组件 | +| 点云转换 | `pointcloud_to_laserscan` | 外部 ROS 包;/odin1/cloud_slam → /scan(供 AMCL 使用) | diff --git a/05_software/real/sim2real_ros2_v2/DEPLOYMENT_GUIDE.md b/05_software/real/sim2real_ros2_v2/DEPLOYMENT_GUIDE.md index 17b4c70..3bed06a 100644 --- a/05_software/real/sim2real_ros2_v2/DEPLOYMENT_GUIDE.md +++ b/05_software/real/sim2real_ros2_v2/DEPLOYMENT_GUIDE.md @@ -1,6 +1,6 @@ -# ROS2 C++ Sim2Real 运动控制栈 - 部署指南 +# ROS 2/C++ Sim2Real v2 部署指南 -本工作区提供了一个自包含、独立的 C++ ROS2 Humble 实现,用于在 Jetson Orin 目标机上部署轮腿四足机器人控制策略。 +本工作区保存 `v0.12.0` 里程计联调快照,包含 ROS 2 Humble/C++ 主体和 Odin 驱动。系统依赖、设备标定和 TensorRT engine 仍与目标机环境绑定,不能仅凭源码声明在新设备上已复现。 --- @@ -90,7 +90,7 @@ chmod +x start_sim2real.sh 强烈推荐使用 Docker 隔离依赖,避免 Jetson Orin 上的库版本冲突。 ### 步骤 1:构建镜像 -确保在 `sim2real_ros2` 目录中(包含 `Dockerfile`): +确保在 `sim2real_ros2_v2` 目录中(包含 `Dockerfile`): ```bash # 使用标准 docker build: docker build -t sim2real_ros2:latest . diff --git a/05_software/real/sim2real_ros2_v2/README.md b/05_software/real/sim2real_ros2_v2/README.md index 26febb3..9026bc6 100644 --- a/05_software/real/sim2real_ros2_v2/README.md +++ b/05_software/real/sim2real_ros2_v2/README.md @@ -1,6 +1,6 @@ # ROS 2 Sim2Real v2:里程计导航联调 -本目录归档 `real/sim2real_ros2_v2(odom)`,对应重排主线的 `v0.12.0`。该阶段在 `v0.11.1` 的 Odin/TensorRT 与站姿调参基础上,固定纯里程计模式,增加 odom fallback 的 TF 冲突保护、A_min 路线和地图工具。 +本目录归档原始 `real/sim2real_ros2_v2(odom)`,对应 `v0.12.0`。该阶段在 `v0.11.1` 的 Odin/TensorRT 与站姿调参基础上,固定纯里程计模式,增加 odom fallback 的 TF 冲突保护、A_min 路线和地图工具。 本工程保留当前 `sim2real` 已验证的部署契约,同时将运行时热路径迁移到 C++: diff --git a/05_software/real/sim2real_ros2_v2/docs/ARCHITECTURE.md b/05_software/real/sim2real_ros2_v2/docs/ARCHITECTURE.md index f3b1d00..00e5184 100644 --- a/05_software/real/sim2real_ros2_v2/docs/ARCHITECTURE.md +++ b/05_software/real/sim2real_ros2_v2/docs/ARCHITECTURE.md @@ -1,4 +1,4 @@ -# sim2real_ros2 架构说明 +# sim2real_ros2_v2 架构说明 ## 设计目标 diff --git a/05_software/real/sim2real_ros2_v2/docs/MIGRATION_PLAN.md b/05_software/real/sim2real_ros2_v2/docs/MIGRATION_PLAN.md index d39e093..b4958b7 100644 --- a/05_software/real/sim2real_ros2_v2/docs/MIGRATION_PLAN.md +++ b/05_software/real/sim2real_ros2_v2/docs/MIGRATION_PLAN.md @@ -1,5 +1,7 @@ # 迁移计划 +> 版本范围:ROS 2 v2 里程计联调快照(`v0.12.0`)。完成标记表示该快照中的代码迁移状态,不等于已在任意新硬件环境复现。 + ## Phase 1: 硬件核心迁移 ✅ 已完成 将当前高频热路径从 Python 迁出。 @@ -39,11 +41,7 @@ ## Phase 3: ROS 2 系统集成 ✅ 已完成 -参考的源项目: - -- `00_ reference/odin_ros_driver` -- `00_ reference/EDULITE_A3/el_a3_ros` -- `00_ reference/rl_sar` +参考过的外部项目包括 Odin ROS 驱动、EDULITE A3 ROS 工程和 RL-SAR;外部参考目录不属于本仓库公开内容。 交付物: @@ -77,4 +75,4 @@ | 里程计中继 | `odom_relay_node` | /odin1/odometry → /odom + odom→base_link TF | | 导航栈 | Nav2 全套节点 | AMCL + costmap + DWB + Navfn + BT + lifecycle | | 传感器驱动 | `odin_ros_driver` | IMU + 点云 + 里程计原始发布 | -| 点云转换 | `pointcloud_to_laserscan` | /odin1/cloud_slam → /scan (供 AMCL 使用) | +| 点云转换 | `pointcloud_to_laserscan` | 外部 ROS 包;/odin1/cloud_slam → /scan(供 AMCL 使用) | diff --git a/05_software/real/sim2real_ros2_v2/docs/REMOTE_CONTROL_USAGE.md b/05_software/real/sim2real_ros2_v2/docs/REMOTE_CONTROL_USAGE.md index 9f2cfc5..c0f5472 100644 --- a/05_software/real/sim2real_ros2_v2/docs/REMOTE_CONTROL_USAGE.md +++ b/05_software/real/sim2real_ros2_v2/docs/REMOTE_CONTROL_USAGE.md @@ -1,6 +1,6 @@ -# sim2real_ros2 遥控器调用说明 +# sim2real_ros2_v2 遥控器调用说明 -本文档说明如何在 `sim2real_ros2` 中调用已接入的 SBUS UART 遥控器节点,以及执行后系统会产生什么效果。 +本文档说明如何在 `sim2real_ros2_v2` 中调用已接入的 SBUS UART 遥控器节点,以及执行后系统会产生什么效果。 ## 1. 当前接入关系 diff --git a/05_software/real/sim2real_ros2_v2/docs/WEB_DEBUG_USAGE.md b/05_software/real/sim2real_ros2_v2/docs/WEB_DEBUG_USAGE.md index 7b06eab..2650e66 100644 --- a/05_software/real/sim2real_ros2_v2/docs/WEB_DEBUG_USAGE.md +++ b/05_software/real/sim2real_ros2_v2/docs/WEB_DEBUG_USAGE.md @@ -1,4 +1,4 @@ -# sim2real_ros2 Web UDP 调试说明 +# sim2real_ros2_v2 Web UDP 调试说明 本文档说明本次新增的最小 Web 调试链路。 diff --git a/05_software/real/sim2real_ros2_v2/map/README.md b/05_software/real/sim2real_ros2_v2/map/README.md index 1329097..9d8ce3f 100644 --- a/05_software/real/sim2real_ros2_v2/map/README.md +++ b/05_software/real/sim2real_ros2_v2/map/README.md @@ -7,3 +7,5 @@ | `map_b.pcd` | 1,080,047 | 4 | 270,012 | 8,680,283 B | `F17FC7E188C772D48E8D3FE20E3A934AFCDF59357C27BCCDCAC3C7E9AD1D1CB7` | `F3052431F217DE8FFFE87726F8E547A59C65048B0285F02AF4803C5F4E4C1B42` | | `A_min.pcd` | 683,908 | 3 | 227,969 | 7,300,173 B | `77C884B17D78C4D157F84093BFEA0729FA25382C70E706C4BA12913A3C90ED20` | `CC4556D472BE6E5B232B9BFEE43F5F337D710F88E88D9B90994368C580327DC1` | | `C.pcd` | 3,186,653 | 11 | 289,696 | 9,040,786 B | `C5C7E60B06A0FFEA15E55C14B8CFAFBC8525371C8C3AC9C72821AB736AED8A6C` | `1FC4124642D934460811DBF62EBE9C5C9CF30668BC42E4782B18F3C002ED1A25` | + +大小和 SHA-256 均按 Git 中保存的字节计算;根目录 `.gitattributes` 禁止对 `*.pcd` 做跨平台换行转换。 diff --git a/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README.md b/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README.md index b81c06b..021fb9e 100644 --- a/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README.md +++ b/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README.md @@ -9,7 +9,7 @@ This is not the Nano runtime Web UI. Use it before a run to inspect the map and From the repository root: ```powershell -python .\tools\pcd_map_viewer\server.py --http-port 8090 +python .\05_software\real\sim2real_ros2_v2\tools\pcd_map_viewer\server.py --http-port 8090 ``` Open: @@ -84,21 +84,15 @@ waypoints: obstacle_name: wall_1 ``` -Default runtime route: +The current `v0.12.0` runtime route is configured separately in `src/sim2real_bringup/config/runtime.yaml`: ```text -map/routes/map1/test_route.yaml +map/routes/A_min/A_min_route.json ``` -## Runtime Test - -```bash -ros2 topic pub --once /route_runner/cmd std_msgs/msg/String "{data: reload}" -ros2 topic pub --once /route_runner/cmd std_msgs/msg/String "{data: start}" -ros2 topic pub --once /route_runner/cmd std_msgs/msg/String "{data: stop}" -``` +The editor can also save YAML, but the archived runtime does not provide the `/route_runner/cmd` interface described by an earlier draft. Use the current JSON task file and Web/navigation controls documented by this snapshot. See also: -- [Maps And Routes](../../docs/ROUTES_AND_MAPS.md) -- [Common Commands](../../docs/COMMANDS.md) +- [Archived map data](../../map/README.md) +- [ROS 2 v2 snapshot](../../README.md) diff --git a/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README_zh.md b/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README_zh.md index bf6b0e2..d63f239 100644 --- a/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README_zh.md +++ b/05_software/real/sim2real_ros2_v2/tools/pcd_map_viewer/README_zh.md @@ -7,7 +7,7 @@ 在仓库根目录: ```powershell -python .\tools\pcd_map_viewer\server.py --http-port 8090 +python .\05_software\real\sim2real_ros2_v2\tools\pcd_map_viewer\server.py --http-port 8090 ``` 打开: @@ -26,3 +26,7 @@ http://127.0.0.1:8090 - `tolerance` 不保存 `z` 和 `action`。 + +当前 `v0.12.0` 运行配置使用 `map/routes/A_min/A_min_route.json`。编辑器也能保存 YAML,但本快照没有旧文档曾描述的 `/route_runner/cmd` 控制接口。 + +地图抽样边界见 [`../../map/README.md`](../../map/README.md),版本说明见 [`../../README.md`](../../README.md)。 diff --git a/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README.md b/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README.md index bc0f3d1..34e1201 100644 --- a/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README.md +++ b/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README.md @@ -15,7 +15,7 @@ Use this tool only when you want the browser and HTTP server to run on Windows w From the repository root: ```powershell -python .\tools\win_web_debug\server.py --nano-host --http-port 8088 +python .\05_software\real\sim2real_ros2_v2\tools\win_web_debug\server.py --nano-host --http-port 8088 ``` Or from this folder: @@ -40,5 +40,5 @@ src/sim2real_runtime/src/web_udp_bridge_node.py See: -- [Runtime Web](../../docs/RUNTIME_WEB.md) -- [Common Commands](../../docs/COMMANDS.md) +- [Runtime Web and UDP bridge](../../docs/WEB_DEBUG_USAGE.md) +- [ROS 2 v2 snapshot](../../README.md) diff --git a/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README_zh.md b/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README_zh.md index 28b9585..27b23c2 100644 --- a/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README_zh.md +++ b/05_software/real/sim2real_ros2_v2/tools/win_web_debug/README_zh.md @@ -13,7 +13,7 @@ http://:18080 在仓库根目录: ```powershell -python .\tools\win_web_debug\server.py --nano-host --http-port 8088 +python .\05_software\real\sim2real_ros2_v2\tools\win_web_debug\server.py --nano-host --http-port 8088 ``` 打开: @@ -21,3 +21,5 @@ python .\tools\win_web_debug\server.py --nano-host --http-port 8088 ```text http://127.0.0.1:8088 ``` + +运行时 Web 与 UDP 配置见 [`../../docs/WEB_DEBUG_USAGE.md`](../../docs/WEB_DEBUG_USAGE.md)。 diff --git a/05_software/real/sim2real_ros2_v3/DEPLOYMENT_GUIDE.md b/05_software/real/sim2real_ros2_v3/DEPLOYMENT_GUIDE.md index b2d5d38..d632aaf 100644 --- a/05_software/real/sim2real_ros2_v3/DEPLOYMENT_GUIDE.md +++ b/05_software/real/sim2real_ros2_v3/DEPLOYMENT_GUIDE.md @@ -1,6 +1,6 @@ -# ROS2 C++ Sim2Real 运动控制栈 - 部署指南 +# ROS 2/C++ Sim2Real v3 比赛部署指南 -本工作区提供了一个自包含、独立的 C++ ROS2 Humble 实现,用于在 Jetson Orin 目标机上部署轮腿四足机器人控制策略。 +本工作区保存最终比赛 ROS 2 Humble/C++ 部署主体。比赛使用的 Odin `1hao.bin` 未随备份归档,TensorRT engine 也与比赛机环境绑定,因此默认 `relocal` 闭环不是开箱即用;缺少真实地图时应按主 README 使用纯里程计模式。 --- diff --git a/05_software/real/sim2real_ros2_v3/README.md b/05_software/real/sim2real_ros2_v3/README.md index 77a1743..01e3aaa 100644 --- a/05_software/real/sim2real_ros2_v3/README.md +++ b/05_software/real/sim2real_ros2_v3/README.md @@ -2,9 +2,9 @@ 本目录由原始 `sim2real_ros2_v2(last_not_slalom_1050)` 整理而来,正式作为 ROS 2/C++ 第三版(v3),对应 RC_WheelLeg 在 RoboCon 仿生足式障碍赛使用的最终部署栈。`1050` 是比赛得分,不是模型编号;比赛 Rough 策略为 `model_6800.onnx`。 -该里程碑对应重排主线的 `v1.0.0`,是 1050 分比赛最终版本。训练架构和策略来源见 `v0.6.0`,比赛 Rough 模型首次归档见 `v0.8.0`,导航打点与路线演进见 `v0.8.1`,ROS 2 迁移过程见 `v0.10.0`~`v0.12.0`。 +比赛代码快照首次归档于 `v1.0.0`,当时暂存于无后缀目录;`v1.1.0` 恢复无后缀初版并将本工程规范为 v3。训练架构和策略来源见 `v0.6.0`,比赛 Rough 模型首次归档见 `v0.8.0`,导航打点与路线演进见 `v0.8.1`,ROS 2 迁移过程见 `v0.10.0`~`v0.12.0`。 -当前 `main` 的 `v1.0.1` 只是在 `v1.0.0` 基础上补充比赛机器人图片和比赛视频,本目录代码仍以 `v1.0.0` 为比赛部署基线。 +`v1.0.1` 只在比赛代码快照基础上补充机器人图片和比赛视频,没有改变本目录运行逻辑。 ## 系统闭环 diff --git a/05_software/real/sim2real_ros2_v3/docs/MIGRATION_PLAN.md b/05_software/real/sim2real_ros2_v3/docs/MIGRATION_PLAN.md index d39e093..4ea26d4 100644 --- a/05_software/real/sim2real_ros2_v3/docs/MIGRATION_PLAN.md +++ b/05_software/real/sim2real_ros2_v3/docs/MIGRATION_PLAN.md @@ -1,5 +1,7 @@ # 迁移计划 +> 版本范围:最终比赛 ROS 2 v3。本文继承自迁移阶段,用于解释架构来源,不是比赛部署资产完整性或新环境复现证明。 + ## Phase 1: 硬件核心迁移 ✅ 已完成 将当前高频热路径从 Python 迁出。 @@ -39,11 +41,7 @@ ## Phase 3: ROS 2 系统集成 ✅ 已完成 -参考的源项目: - -- `00_ reference/odin_ros_driver` -- `00_ reference/EDULITE_A3/el_a3_ros` -- `00_ reference/rl_sar` +参考过的外部项目包括 Odin ROS 驱动、EDULITE A3 ROS 工程和 RL-SAR;外部参考目录不属于本仓库公开内容。 交付物: @@ -77,4 +75,4 @@ | 里程计中继 | `odom_relay_node` | /odin1/odometry → /odom + odom→base_link TF | | 导航栈 | Nav2 全套节点 | AMCL + costmap + DWB + Navfn + BT + lifecycle | | 传感器驱动 | `odin_ros_driver` | IMU + 点云 + 里程计原始发布 | -| 点云转换 | `pointcloud_to_laserscan` | /odin1/cloud_slam → /scan (供 AMCL 使用) | +| 点云转换 | `pointcloud_to_laserscan` | 外部 ROS 包;/odin1/cloud_slam → /scan(供 AMCL 使用) | diff --git a/05_software/real/sim2real_ros2_v3/map/README.md b/05_software/real/sim2real_ros2_v3/map/README.md index b27c03c..4f72baf 100644 --- a/05_software/real/sim2real_ros2_v3/map/README.md +++ b/05_software/real/sim2real_ros2_v3/map/README.md @@ -4,6 +4,8 @@ `1hao.pcd` 是 `v0.8.1` 导航工具中同一份抽样点云,包含 199,215 点、大小 9,876,010 字节,SHA-256 为 `48B231C52BECA51316F352300C8B2046133E92359E0855227D93DEB0D927AD34`。它用于本地规划和路线显示,不替代原始高密度点云。 +上述大小和 SHA-256 按 Git 中保存的 LF 字节计算;根目录 `.gitattributes` 禁止对 `*.pcd` 做跨平台换行转换。 + ## 缺失的 Odin 重定位地图 比赛配置需要 Odin 专用二进制地图 `1hao.bin`,但源备份没有该文件。源目录中另有两个名称和时间不同的 `.bin`,无法证明它们就是比赛使用地图,因此没有复制或重命名。 diff --git a/05_software/real/sim2real_v2/DEPLOYMENT.md b/05_software/real/sim2real_v2/DEPLOYMENT.md index d22391e..36985e3 100644 --- a/05_software/real/sim2real_v2/DEPLOYMENT.md +++ b/05_software/real/sim2real_v2/DEPLOYMENT.md @@ -1,13 +1,13 @@ # 真机部署与验证指南 -本文档面向当前目录 `shiji/sim2real (10)/sim2real`,用于减少上机排错时间。默认不修改已验证的电机映射、方向、零位和策略观测。 +本文档面向仓库中的 `05_software/real/sim2real_v2`(`v0.9.0`),用于减少上机排错时间。默认不修改该快照中已验证的电机映射、方向、零位和策略观测。 ## 1. 前期环境 推荐在 Orin / Linux 上运行: ```bash -cd sim2real +cd 05_software/real/sim2real_v2 python -m pip install -r requirements-orin.txt ``` diff --git a/05_software/real/sim2real_v2/FACTS_AND_ASSUMPTIONS.md b/05_software/real/sim2real_v2/FACTS_AND_ASSUMPTIONS.md index a23e313..57fdbdf 100644 --- a/05_software/real/sim2real_v2/FACTS_AND_ASSUMPTIONS.md +++ b/05_software/real/sim2real_v2/FACTS_AND_ASSUMPTIONS.md @@ -1,10 +1,12 @@ # `FACTS_AND_ASSUMPTIONS` +> 版本范围:Python Sim2Real v2(`v0.9.0`)。事实项只适用于该快照。 + ## 已确认 -- 当前部署模型:默认优先使用 `sim2real/policies/model_rough.onnx` -- 当前源模型/fallback:`sim2real/policies/model_rough.pt` -- 源模型:`model_2000.pt` +- 当前部署模型:默认优先使用 `policies/model_rough.onnx` +- 当前源模型/fallback:`policies/model_rough.pt` +- 原始说明记录的源模型名:`model_2000.pt`;同名文件未随本目录归档 - actor 输入:`53D` - actor 输出:`16D` - 当前 actor 不吃 `base_lin_vel` diff --git a/05_software/real/sim2real_v2/ORIN_NANO_DEPLOYMENT.md b/05_software/real/sim2real_v2/ORIN_NANO_DEPLOYMENT.md index 42104c6..4a4a382 100644 --- a/05_software/real/sim2real_v2/ORIN_NANO_DEPLOYMENT.md +++ b/05_software/real/sim2real_v2/ORIN_NANO_DEPLOYMENT.md @@ -1,5 +1,7 @@ # `Orin Nano` 部署说明 +> 版本范围:Python Sim2Real v2(`v0.9.0`)。本文不是最终 ROS 2 v3 部署指南。 + ## 是否必须转 ONNX 不必须。 @@ -26,7 +28,7 @@ ## 纯 Python 部署命令 -默认前提:当前目录就是 `sim2real/` +默认前提:当前目录是 `05_software/real/sim2real_v2/` ```bash python3 -m pip install -r requirements-orin.txt diff --git a/05_software/real/sim2real_v2/README.md b/05_software/real/sim2real_v2/README.md index f0a0a83..6345dec 100644 --- a/05_software/real/sim2real_v2/README.md +++ b/05_software/real/sim2real_v2/README.md @@ -1,6 +1,6 @@ # Python Sim2Real v2 -本目录归档 `real/sim2real_v2` 版本,对应 Python 真机部署从第一代闭环继续演进后的版本节点。该阶段保持 `53D -> 16D` 策略契约,重点完善电机反馈判断、IMU/Odin 可观测性、Web 调试和运行时诊断;后续 ROS 2/C++ 版本另行归档。 +本目录归档 Python Sim2Real v2,对应 `v0.9.0`。该阶段从第一代闭环继续演进,保持 `53D -> 16D` 策略契约,重点完善电机反馈判断、IMU/Odin 可观测性、Web 调试和运行时诊断;后续 ROS 2/C++ 版本另行归档。下文“当前”均指该版本快照。 ## 当前控制链路 diff --git a/05_software/train/README.md b/05_software/train/README.md index 691d434..441f01e 100644 --- a/05_software/train/README.md +++ b/05_software/train/README.md @@ -1,8 +1,8 @@ # 强化学习与仿真工程 -`rc_mjlab/` 保存 16DOF 轮足机器人的当前训练与 Sim2Sim 工程。历史快照由 Git Tag 保留,不在目录中复制 `old`、`new` 或 `final` 版本。 +`rc_mjlab/` 保存 16DOF 轮足机器人的训练、MuJoCo、Sim2Sim 和导航工具累积工作树。历史训练架构由 Git Tag 保留,不在目录中复制 `old`、`new` 或 `final` 版本。 -当前内容对应 `v0.8.1`:训练代码保持 `v0.6.0` 的比赛架构,包含后期 MuJoCo、Sim2Sim、比赛最终 Rough ONNX 策略,并补充完整导航打点工具、路线迭代和抽样 PCD。训练过程可能先获得基模,再调整奖励、课程和环境参数继续训练;模型 checkpoint 的变化不等同于软件架构变化。 +当前工作树由多个里程碑累积:训练主体以 `v0.6.0` 的 `best` 比赛架构为基础,`v0.7.0`~`v0.8.1` 依次补充 MuJoCo、Sim2Sim、比赛 Rough ONNX 和导航打点工具。训练过程可能先获得基模,再调整奖励、课程和环境参数继续训练;模型 checkpoint 的变化不等同于软件架构变化。 ## 内容 diff --git a/05_software/train/rc_mjlab/tools/nav_tools/README.md b/05_software/train/rc_mjlab/tools/nav_tools/README.md index 346cab4..70f73b1 100644 --- a/05_software/train/rc_mjlab/tools/nav_tools/README.md +++ b/05_software/train/rc_mjlab/tools/nav_tools/README.md @@ -63,6 +63,8 @@ uv run --with-requirements .\sim2sim\requirements.txt ` | `pcd/1hao.pcd` | 9,163,893 | 46 | 199,215 | 9,876,010 B | `48B231C52BECA51316F352300C8B2046133E92359E0855227D93DEB0D927AD34` | | `pcd/2hao.pcd` | 10,043,048 | 52 | 193,136 | 9,719,736 B | `714516A7A726D46311A58507149FBC93D622616BE79C59FFED622274D6526B1F` | +表中的大小和 SHA-256 对应 Git 仓库保存的 LF 字节。Windows 若使用 `core.autocrlf=true`,旧检出可能把 ASCII PCD 转成 CRLF,导致工作区大小和哈希变化;仓库通过根目录 `.gitattributes` 将 `*.pcd` 标记为不做文本换行转换。已有旧工作区需要重新检出后再核对哈希。 + 复现抽样: ```powershell diff --git a/06_assets/README.md b/06_assets/README.md index a412585..e90eb72 100644 --- a/06_assets/README.md +++ b/06_assets/README.md @@ -26,8 +26,12 @@ ### 最终比赛视频 - 视频:[`videos/比赛视频.mp4`](videos/比赛视频.mp4) -- 代码基线:[`v1.0.0`](../tree/v1.0.0) -- 媒体补充:[`v1.0.1`](../tree/v1.0.1) +- 代码初次归档 Tag:`v1.0.0` +- 媒体补充 Tag:`v1.0.1` +- 规范三代目录 Tag:`v1.1.0` - 成绩:Robocon 仿生足式障碍赛 1050 分,第七名(前 5%) +- 时长:约 39.7 秒 +- 画面:1906 × 1080 +- 编码:H.264/AAC -该视频约 50.6 MB。当前先随仓库提交,后续同步 GitHub 时若超过平台单文件限制,建议改用 Git LFS 或作为 Release 附件发布。 +该视频约 50.6 MB,已随仓库提交。它低于 GitHub 100 MB 单文件硬限制,但超过 GitHub 建议的 50 MB 阈值;公开同步时优先考虑 Git LFS 或 Release 附件,避免普通 Git 历史持续膨胀。 diff --git a/README.md b/README.md index 11aafd9..0b01d17 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ RC_WheelLeg 是山东华宇工学院 16DOF 串联轮足机器人项目。 -当前 `16dof` 分支用于整理 16DOF 机械、强化学习训练、Sim2Sim、Sim2Real、ROS 2 部署和比赛版本。机械资料、比赛训练架构、后期 MuJoCo/Sim2Sim 和导航打点工具已经完成整理。 +当前对外入口为 `main`,`16dof` 与 `16dof-rebuild` 保留同一条 16DOF 版本演进主线。机械资料、训练、MuJoCo/Sim2Sim、导航工具和三代 ROS 2 真机工程已整理至 `v1.1.0`。 ## 平台概览 @@ -41,7 +41,8 @@ RC_WheelLeg/ - [x] 整理导航地图、打点工具、路线迭代和抽样 PCD - [x] 整理 Python Sim2Real v2、ROS 2/C++ 初版、导航原型、Odin/TensorRT 调参版与 odom 联调版 - [ ] 核对比赛机械与仿真模型参数 -- [ ] 整理 URDF/MJCF 机器人描述 +- [x] 整理 MJCF 机器人描述与网格 +- [ ] 补充独立 URDF,并核对其与 CAD/MJCF 的参数一致性 - [x] 整理统一训练、ROS 2 和比赛版本 机械资料入口见 [`02_mechanical/README.md`](02_mechanical/README.md)。 @@ -54,19 +55,24 @@ RC_WheelLeg/ 第一代 Sim2Real 真机测试记录,时长约 41 秒。点击预览图播放或下载原视频。 -## 比赛最终成果(v1.0.1) +## 比赛最终成果媒体(v1.0.1) [![比赛最终机器人](06_assets/images/cf94fb6d9cfa01079a4f9fe082428dc.png)](06_assets/images/cf94fb6d9cfa01079a4f9fe082428dc.png) 最终比赛视频:[`06_assets/videos/比赛视频.mp4`](06_assets/videos/比赛视频.mp4) -代码部署基线为 `v1.0.0`,`v1.0.1` 补充最终机器人图片和比赛视频。Robocon 仿生足式障碍赛成绩为 1050 分、第七名(前 5%)。更多媒体说明见 [`06_assets/README.md`](06_assets/README.md)。 +比赛代码最初归档于 `v1.0.0`,`v1.0.1` 补充最终机器人图片和比赛视频,`v1.1.0` 进一步把最终工程明确命名为 `sim2real_ros2_v3`。Robocon 仿生足式障碍赛成绩为 1050 分、第七名(前 5%)。更多媒体说明见 [`06_assets/README.md`](06_assets/README.md)。 ## 版本管理 版本里程碑与主要变化见 [`01_doc/version_history.md`](01_doc/version_history.md)。 - `8dof` 分支和 `v0.1.0` Tag 保存第一代 8DOF 实机版本。 -- `16dof` 分支承载第二代轮足平台的完整演进。 -- 线性演进阶段使用 Commit、Tag 和 Release 保存,不复制 `old`、`final` 或 `v2` 目录。 +- `main` 是当前对外版本,`16dof` 和 `16dof-rebuild` 保存并同步第二代轮足平台的完整演进。 +- 同一架构内的小步迭代使用 Commit、Tag 和 Release 保存,不复制 `old`、`new` 或 `final` 目录。 +- `sim2real_ros2`、`sim2real_ros2_v2`、`sim2real_ros2_v3` 是三个明确的架构大版本,不是随意复制的临时备份目录。 - 只有需要长期并行维护的不兼容路线才建立独立分支。 + +## 开源边界 + +仓库当前尚未设置覆盖自研代码的顶层许可证;Odin 驱动和本地 mjlab 各自保留上游许可证。同步到 GitHub 公共发布前,需要由权利人确定顶层许可证,并核对第三方模型、SDK 静态库和媒体文件的再分发权限。