diff --git a/四足机器狗训练到实机部署全流程指南.md b/四足机器狗训练到实机部署全流程指南.md index a2687b1..d1e0e0d 100644 --- a/四足机器狗训练到实机部署全流程指南.md +++ b/四足机器狗训练到实机部署全流程指南.md @@ -13,10 +13,28 @@ | IsaacLab 源码 | `/opt/IsaacLab` | `v2.3.2` | | IsaacLab 训练与自带 MuJoCo 部署 | `/opt/go2_rl_robotlab` 的 `go1` 分支 | `f40874bc90c72264dbf46989d90e15a9715c1393` | | 自动化 sim2sim 评估 | `/opt/RoboGauge` 的 `go1` 分支 | `66d0eb9010dabc501c52a8b9e5ffb2149dbcb82b` | -| 独立 MuJoCo、ONNX、X5/S100 BPU 部署 | `/opt/go1_pro_deploy/deploy_45dim_rl_gym` | `22a13d6659c59e2793b08c767ab69d8fcc0a406b` | +| 独立 MuJoCo、ONNX、X5/S100 BPU 部署 | `/opt/go1_deploy/deploy_rl_lab` | `22a13d6659c59e2793b08c767ab69d8fcc0a406b` | | 官方公开 SDK | [unitree_legged_sdk](https://github.com/unitreerobotics/unitree_legged_sdk) | | 私有 Go1 PRO SDK | 仅在内部部署机使用,本文不公开协议、密钥和专有接口 | +当前交付镜像只保留 RobotLab 版本,部署目录结构固定为: + +```text +/opt/go1_deploy/ + deploy_rl_lab/ + policy_robotlab_26000.onnx + deploy_go1_onnx_mujoco_lab.py + deploy_go1_rlgym_pro_sdk_lab.py + deploy_go1_rlgym_pro_sdk_lab_fastcpp.py + bpu_quantization/ + bpu_deploy_x5/ + bpu_deploy_s100/ + terrains/ + logs/ +``` + +已删除的 `deploy_45dim/`、`deploy_wtw/`、`sim2sim_mujoco_example/` 和旧 Gym/旧轮次 ONNX 不属于交付结构,本文不再引用。量化机、训练镜像和板端分别使用 `/opt/go1_deploy` 与 `/root/go1_deploy` 作为仓库根目录,子目录均为 `deploy_rl_lab`。 + 本文有两条使用路径: - **路径 A,直接使用交付镜像**:不要重新 clone 或重新安装,使用 `/opt` 下的固定目录和解释器。 @@ -34,7 +52,7 @@ X5 模型: policy_robotlab_26000_int16_gemm.bin S100 模型: policy_robotlab_26000_s100_int16_gemm.hbm ``` -训练目录中的导出文件会保留课程阶段。量化脚本使用 `--name policy_robotlab_26000` 时会生成上面的 X5/S100 短名称;TorchScript/ONNX 是否另存为不带课程后缀的别名必须在发布记录中明确。26000 只是当前均衡基线,不表示轮数越大一定越好。若任务以上楼梯为主,应同时保留 15000 和 26000;若以平地高速或下楼梯为主,可继续比较 33500。最终模型仍应根据多 seed RoboGauge、MuJoCo 回放和真机日志共同选择。 +训练目录仍可保留不同课程阶段的 checkpoint 用于比较,但交付目录只保留最终选定的 26000 版本。量化脚本使用 `--name policy_robotlab_26000` 时会生成上面的 X5/S100 名称。26000 只是当前均衡基线,不表示轮数越大一定越好;更换发布 checkpoint 时,应重新导出 ONNX 并完整执行 RoboGauge、MuJoCo 和量化验收,而不是把多个旧 ONNX 一并放入交付目录。 ### 1.2 全流程 @@ -141,7 +159,7 @@ sudo /opt/envs/go2_rl_robotlab/docker-toolchain/bin/docker image inspect registr /opt/IsaacLab /opt/go2_rl_robotlab /opt/RoboGauge -/opt/go1_pro_deploy +/opt/go1_deploy /opt/envs/go2_rl_robotlab /opt/envs/robogauge ``` @@ -155,7 +173,9 @@ export MPLCONFIGDIR=/tmp/robogauge-matplotlib test -d /opt/IsaacLab test -d /opt/go2_rl_robotlab test -d /opt/RoboGauge -test -d /opt/go1_pro_deploy +test -d /opt/go1_deploy +test -d /opt/go1_deploy/deploy_rl_lab +test -f /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx test -x /opt/envs/go2_rl_robotlab/bin/python test -x /opt/envs/robogauge/bin/python nvidia-smi @@ -179,7 +199,7 @@ export OMNI_KIT_ACCEPT_EULA=YES /opt/go2_rl_robotlab/outputs /opt/RoboGauge/logs /opt/RoboGauge/outputs -/opt/go1_pro_deploy/logs +/opt/go1_deploy/logs /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/cache /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/data /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/logs @@ -191,13 +211,13 @@ Dockerfile 中应使用交付镜像的实际运行 UID/GID(下面的 `APP_UID/ ```dockerfile RUN install -d -m 0775 /opt/go2_rl_robotlab/logs /opt/go2_rl_robotlab/outputs \ /opt/RoboGauge/logs /opt/RoboGauge/outputs \ - /opt/go1_pro_deploy/logs \ + /opt/go1_deploy/logs \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/cache \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/data \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/logs \ && chown -R ${APP_UID}:${APP_GID} /opt/go2_rl_robotlab/logs /opt/go2_rl_robotlab/outputs \ /opt/RoboGauge/logs /opt/RoboGauge/outputs \ - /opt/go1_pro_deploy/logs \ + /opt/go1_deploy/logs \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/cache \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/data \ /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/logs @@ -210,7 +230,7 @@ test -w /opt/go2_rl_robotlab/logs test -w /opt/go2_rl_robotlab/outputs test -w /opt/RoboGauge/logs test -w /opt/RoboGauge/outputs -test -w /opt/go1_pro_deploy/logs +test -w /opt/go1_deploy/logs test -w /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/cache test -w /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/data test -w /opt/envs/go2_rl_robotlab/lib/python3.11/site-packages/isaacsim/kit/logs @@ -252,7 +272,7 @@ find /opt/go2_rl_robotlab/logs/rsl_rl/go1_moe_cts -path '*image_direct_1iter*' - ```bash sudo install -d -o "$USER" -g "$(id -gn)" /opt/envs /opt/IsaacLab -sudo install -d -o "$USER" -g "$(id -gn)" /opt/go2_rl_robotlab /opt/RoboGauge /opt/go1_pro_deploy +sudo install -d -o "$USER" -g "$(id -gn)" /opt/go2_rl_robotlab /opt/RoboGauge /opt/go1_deploy conda create --prefix /opt/envs/go2_rl_robotlab python=3.11 -y conda activate /opt/envs/go2_rl_robotlab @@ -268,7 +288,7 @@ python -m pip install torch==2.7.0 torchvision==0.22.0 --index-url https://downl git clone --branch v2.3.2 --depth 1 https://github.com/isaac-sim/IsaacLab.git /opt/IsaacLab git clone --branch go1 --single-branch https://gitea.qingruxu.xyz/cyy/go2_rl_robotlab.git /opt/go2_rl_robotlab git clone --branch go1 --single-branch https://gitea.qingruxu.xyz/cyy/RoboGauge.git /opt/RoboGauge -git clone --branch main --single-branch https://gitea.qingruxu.xyz/cyy/go1_pro_deploy.git /opt/go1_pro_deploy +git clone --branch main --single-branch https://gitea.qingruxu.xyz/cyy/go1_pro_deploy.git /opt/go1_deploy cd /opt/go2_rl_robotlab @@ -292,7 +312,7 @@ python -m pip install -e /opt/RoboGauge ```bash sudo install -d -o "$USER" -g "$(id -gn)" /opt/go2_rl_robotlab/logs /opt/go2_rl_robotlab/outputs sudo install -d -o "$USER" -g "$(id -gn)" /opt/RoboGauge/logs /opt/RoboGauge/outputs -sudo install -d -o "$USER" -g "$(id -gn)" /opt/go1_pro_deploy/logs +sudo install -d -o "$USER" -g "$(id -gn)" /opt/go1_deploy/logs ``` 记录环境,便于在部署前复现: @@ -573,7 +593,7 @@ OMNI_KIT_ACCEPT_EULA=YES /opt/envs/go2_rl_robotlab/bin/python scripts/rsl_rl/pla 同一 run 下再次导出会覆盖这两个通用文件名。必须在切换到下一个 checkpoint 前复制并带上轮次、课程阶段;导出文件完整写入后才能终止 play: ```bash -cp /exported/policy.onnx /opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx +cp /exported/policy.onnx /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx cp /exported/policy.onnx /opt/RoboGauge/resources/models/go1/policy_robotlab_26000_post_command_curriculum.onnx cp /exported/policy.pt /opt/RoboGauge/resources/models/go1/policy_robotlab_26000_post_command_curriculum.pt ``` @@ -603,10 +623,10 @@ OMNI_KIT_ACCEPT_EULA=YES CUDA_VISIBLE_DEVICES=1 /opt/envs/go2_rl_robotlab/bin/py ### 8.3 检查 ONNX 接口 ```bash -/opt/envs/go2_rl_robotlab/bin/python -c "import onnx, onnxruntime as ort; p='/opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx'; onnx.checker.check_model(onnx.load(p)); s=ort.InferenceSession(p, providers=['CPUExecutionProvider']); print([(x.name,x.shape,x.type) for x in s.get_inputs()]); print([(x.name,x.shape,x.type) for x in s.get_outputs()])" +/opt/envs/go2_rl_robotlab/bin/python -c "import onnx, onnxruntime as ort; p='/opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx'; onnx.checker.check_model(onnx.load(p)); s=ort.InferenceSession(p, providers=['CPUExecutionProvider']); print([(x.name,x.shape,x.type) for x in s.get_inputs()]); print([(x.name,x.shape,x.type) for x in s.get_outputs()])" ``` -预期 ONNX 输入为 `obs: [1, 450] float32`,输出为 `actions: [1, 12] float32`。本次导出的 19500、26000 和 33500 ONNX 均已通过 `onnx.checker.check_model()`。输入输出不匹配时不要继续 sim2sim 或量化。 +预期 ONNX 输入为 `obs: [1, 450] float32`,输出为 `actions: [1, 12] float32`。当前交付的 26000 ONNX 已通过 `onnx.checker.check_model()`。输入输出不匹配时不要继续 sim2sim 或量化。 ### 8.4 独立 MuJoCo 快速检查 @@ -615,12 +635,12 @@ OMNI_KIT_ACCEPT_EULA=YES CUDA_VISIBLE_DEVICES=1 /opt/envs/go2_rl_robotlab/bin/py Linux 不需要 `mjpython`;它主要用于 macOS 的 MuJoCo 图形启动。镜像中用绝对 ONNX 路径执行非交互采样。该脚本会在加载模型前切换工作目录,相对 ONNX 路径可能因此失效: ```bash -cd /opt/go1_pro_deploy/deploy_45dim_rl_gym +cd /opt/go1_deploy/deploy_rl_lab env -u MUJOCO_GL /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ - --onnx /opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx \ + --onnx /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx \ --sample \ --sample-seconds 1 \ - --sample-log-dir /opt/go1_pro_deploy/logs + --sample-log-dir /opt/go1_deploy/logs ``` 采样目录名固定以 `mujoco_stairs_sample_` 开头,用于保存独立 MuJoCo ONNX 推理检查日志;PTQ 使用第 11 节的正式 64 样本校验集。 @@ -629,10 +649,10 @@ env -u MUJOCO_GL /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ ```bash env -u MUJOCO_GL /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ - --onnx /opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx \ + --onnx /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx \ --sample-stairs-level 3 \ --sample-seconds 20 \ - --sample-log-dir /opt/go1_pro_deploy/logs \ + --sample-log-dir /opt/go1_deploy/logs \ --spawn-x -0.6 \ --spawn-z 0.34 ``` @@ -799,13 +819,13 @@ task_name="go1_lab.flat" ## 10. 独立 MuJoCo sim2sim -这里推荐使用 `go1_pro_deploy/deploy_45dim_rl_gym/deploy_go1_onnx_mujoco_lab.py`,因为它与 RobotLab 的 10 帧/450 维 ONNX 接口一致。 +这里推荐使用 `/opt/go1_deploy/deploy_rl_lab/deploy_go1_onnx_mujoco_lab.py`,因为它与 Lab 的 10 帧/450 维 ONNX 接口一致。 ```bash -cd /opt/go1_pro_deploy/deploy_45dim_rl_gym +cd /opt/go1_deploy/deploy_rl_lab MUJOCO_GL=glfw /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ - --onnx /opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx + --onnx /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx ``` 这是带窗口和键盘的交互命令,需要可用的 X11/桌面。Linux 使用普通 `python`;只有 macOS 才通常需要 `mjpython`。脚本内部会 `chdir` 到自身目录,因此 `--onnx` 使用绝对路径。无图形环境应使用 8.4 节的 `--sample` 命令。 @@ -814,8 +834,8 @@ MUJOCO_GL=glfw /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ ```bash MUJOCO_GL=glfw /opt/envs/robogauge/bin/python deploy_go1_onnx_mujoco_lab.py \ - --onnx /opt/go1_pro_deploy/deploy_45dim_rl_gym/policy_robotlab_26000.onnx \ - --terrain /opt/go1_pro_deploy/deploy_45dim_rl_gym/terrains/stairs/stairs_3.xml \ + --onnx /opt/go1_deploy/deploy_rl_lab/policy_robotlab_26000.onnx \ + --terrain /opt/go1_deploy/deploy_rl_lab/terrains/stairs/stairs_3.xml \ --spawn-x -0.6 \ --spawn-z 0.34 ``` @@ -854,13 +874,15 @@ BPU 量化不是把 ONNX 改一个后缀。至少需要: 当前 26000 模型使用 `calibration_data_26000_robotlab_fast64/` 中的 64 个 PTQ 校验样本。这批数据来自 ONNX 推理流程,不是 X5 量化产生的模型 `.bin`。需要重新生成时,先检查供 `make_calibration_data.py` 使用的 ONNX 推理日志: ```bash -find /opt/go1_pro_deploy/logs \ +find /opt/go1_deploy/logs \ -path '*/robotlab_go1_deploy_*/steps.jsonl' \ -type f -print ``` `make_calibration_data.py` 读取日志中的 `mode: RL` 和 45 维 `obs_single`,按部署顺序重建 10 帧/450 维历史,并写出工具链所需的 raw float32 校准输入 `.bin`。这里的 `.bin` 是 PTQ 输入文件;X5 编译完成后生成的模型也使用 `.bin` 后缀,但两者用途完全不同。脚本找不到匹配日志或有效样本不足时会中止,不会绕过数据准备继续编译。 +路径 A 已随镜像提供 `calibration_data_26000_robotlab_fast64/`。量化脚本检测到目录中恰好有 64 个 `.bin` 时直接复用;路径 B 或样本数量不匹配时,才从上述 ONNX 推理日志重新生成。 + 当前量化脚本会保留 actions 输出、降级 opset、包装为 BPU 需要的 4D 输入,并把 MoE grouped Conv 等价替换为 Gemm,以减少 CPU fallback。中间 norm 节点位于 actor 之前,不能随意删除或移到后处理。 量化脚本内部流程如下: @@ -881,19 +903,19 @@ ONNX 推理流程日志 steps.jsonl | 参数 | 含义 | 常用设置 | | --- | --- | --- | | `--policy` | 原始 ONNX 路径,必须在部署仓库内 | `../policy_robotlab_26000.onnx` | -| `--round` | 输出目录和校准目录里的轮次标签,不参与计算 | `26000`、`35k` | +| `--round` | 输出目录和校准目录里的轮次标签,不参与计算 | `26000` | | `--name` | 输出模型 basename;不填时取 ONNX 文件名 | `policy_robotlab_26000` | -| `--history-len` | 历史帧数,用于重建输入维度 | RobotLab 为 `10`,Gym 为 `5` | -| `--flat-dim` | 平铺输入维度;不填时为 `45 * history-len` | RobotLab 为 `450`,Gym 为 `225` | +| `--history-len` | 历史帧数,用于重建输入维度 | Lab 固定为 `10` | +| `--flat-dim` | 平铺输入维度;不填时为 `45 * history-len` | Lab 固定为 `450` | | `--samples` | 校准样本数量,越大越慢但覆盖更稳 | 默认 `64`,必要时 `128` | | `--min-samples` | 最少有效样本数,不足则中止 | 默认 `32` | | `--log-prefix` | 从 `logs/` 下筛选 ONNX 推理日志的目录前缀 | `robotlab_go1_deploy` | -| `--cal-tag` | 校准目录标签,区分 RobotLab/Gym | `robotlab`、`gym` | +| `--cal-tag` | 校准目录标签 | `robotlab` | | `--compare-limit` | 浮点 ONNX 等价对比样本数 | 默认 `64` | | `--quant` | 量化策略 | 默认 `int16`,`int8` 仅作对照 | | `--docker-image` | D-Robotics CPU 工具链镜像 | X5/S100 各自不同 | -量化建议在 Mac 或训练机的 Docker 中完成,不在 X5/S100 板端跑 Docker。本文训练/量化主机的仓库固定为 `/opt/go1_pro_deploy`;板端只负责加载产物做离线测速、数值对齐和实机部署。 +量化建议在 Mac 或训练机的 Docker 中完成,不在 X5/S100 板端跑 Docker。本文训练/量化主机的仓库固定为 `/opt/go1_deploy`;板端只负责加载产物做离线测速、数值对齐和实机部署。 量化脚本内部直接调用 `docker`。运行 X5/S100 脚本前先验收 daemon: @@ -912,13 +934,13 @@ sudo /opt/envs/go2_rl_robotlab/docker-toolchain/bin/docker load \ # sudo /opt/envs/go2_rl_robotlab/docker-toolchain/bin/docker pull openexplorer/ai_toolchain_ubuntu_20_x5_cpu:v1.2.8 ``` -脚本默认会用 `docker run --rm --platform linux/amd64` 启动这个镜像,并把当前仓库挂载到 `/workspace/deploy_go1_pro`。量化机执行: +脚本默认会用 `docker run --rm --platform linux/amd64` 启动这个镜像,并把当前仓库挂载到容器内 `/workspace/go1_deploy`。量化机执行: ```bash -cd /opt/go1_pro_deploy +cd /opt/go1_deploy sudo env PATH=/opt/envs/go2_rl_robotlab/docker-toolchain/bin:${PATH} \ - bash deploy_45dim_rl_gym/bpu_quantization/quantize_policy_x5.sh \ + bash deploy_rl_lab/bpu_quantization/quantize_policy_x5.sh \ --policy ../policy_robotlab_26000.onnx \ --round 26000 \ --name policy_robotlab_26000 \ @@ -939,29 +961,16 @@ X5 关键配置: - int16 时脚本在 YAML 中写入 `optimization: "set_all_nodes_int16"`。 - `hb_mapper checker` 默认会先运行;明确知道模型已检查过时才使用 `--skip-checker`。 -如果要量化旧 Gym 5 帧模型,必须同步修改历史长度、日志前缀和标签: - -```bash -sudo env PATH=/opt/envs/go2_rl_robotlab/docker-toolchain/bin:${PATH} \ - bash deploy_45dim_rl_gym/bpu_quantization/quantize_policy_x5.sh \ - --policy ../policy_35k.onnx \ - --round 35k \ - --history-len 5 \ - --log-prefix rlgym_go1_deploy \ - --cal-tag gym \ - --quant int16 -``` - -以下是 **RDK X5 目标板** 命令。板端软件按交付约定安装在 `/root/go1_pro_deploy`;这是硬件系统路径,不是训练/量化镜像路径,也不应复制回 `/opt` 镜像执行: +以下是 **RDK X5 目标板** 命令。板端软件按交付约定安装在 `/root/go1_deploy`;这是硬件系统路径,不是训练/量化镜像路径,也不应复制回 `/opt` 镜像执行: 板端先做完全离线自检,不连接电机控制: ```bash -cd /root/go1_pro_deploy -PYTHONPATH=/root/go1_pro_deploy \ -python3 deploy_45dim_rl_gym/bpu_deploy_x5/test_bpu_policy.py \ - --bpu-model deploy_45dim_rl_gym/bpu_quantization/mapper_output_26000_gemm/policy_robotlab_26000_int16_gemm.bin \ - --input-bin deploy_45dim_rl_gym/bpu_quantization/calibration_data_26000_robotlab_fast64/00000.bin \ +cd /root/go1_deploy +PYTHONPATH=/root/go1_deploy \ +python3 deploy_rl_lab/bpu_deploy_x5/test_bpu_policy.py \ + --bpu-model deploy_rl_lab/bpu_quantization/mapper_output_26000_gemm/policy_robotlab_26000_int16_gemm.bin \ + --input-bin deploy_rl_lab/bpu_quantization/calibration_data_26000_robotlab_fast64/00000.bin \ --repeat 1000 ``` @@ -981,10 +990,10 @@ sudo /opt/envs/go2_rl_robotlab/docker-toolchain/bin/docker load \ 脚本同样在量化机 Docker 中运行,不在 S100 板端运行 Docker: ```bash -cd /opt/go1_pro_deploy +cd /opt/go1_deploy sudo env PATH=/opt/envs/go2_rl_robotlab/docker-toolchain/bin:${PATH} \ - bash deploy_45dim_rl_gym/bpu_quantization/quantize_policy_s100.sh \ + bash deploy_rl_lab/bpu_quantization/quantize_policy_s100.sh \ --policy ../policy_robotlab_26000.onnx \ --round 26000 \ --name policy_robotlab_26000 \ @@ -1010,16 +1019,16 @@ S100 关键配置: ```bash /usr/hobot/bin/hrt_model_exec model_info \ - --model_file deploy_45dim_rl_gym/bpu_quantization/mapper_output_26000_s100_gemm/policy_robotlab_26000_s100_int16_gemm.hbm + --model_file deploy_rl_lab/bpu_quantization/mapper_output_26000_s100_gemm/policy_robotlab_26000_s100_int16_gemm.hbm ``` 板端测速: ```bash /usr/hobot/bin/hrt_model_exec perf \ - --model_file deploy_45dim_rl_gym/bpu_quantization/mapper_output_26000_s100_gemm/policy_robotlab_26000_s100_int16_gemm.hbm \ + --model_file deploy_rl_lab/bpu_quantization/mapper_output_26000_s100_gemm/policy_robotlab_26000_s100_int16_gemm.hbm \ --model_name policy_robotlab_26000_s100_int16_gemm \ - --input_file deploy_45dim_rl_gym/bpu_quantization/calibration_data_26000_robotlab_fast64/00000.bin \ + --input_file deploy_rl_lab/bpu_quantization/calibration_data_26000_robotlab_fast64/00000.bin \ --frame_count 1000 \ --thread_num 1 ``` @@ -1169,9 +1178,9 @@ pgrep -fl 'keep_sport_alive|Legged_sport|appTransit' X5 示例: ```bash -cd /root/go1_pro_deploy -PYTHONPATH=/root/go1_pro_sdk:/root/go1_pro_deploy \ -python3 deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py \ +cd /root/go1_deploy +PYTHONPATH=/root/go1_pro_sdk:/root/go1_deploy \ +python3 deploy_rl_lab/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py \ --infer-check \ --log-dir logs \ --print-every 50 \ @@ -1182,9 +1191,9 @@ python3 deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py S100 示例: ```bash -cd /root/go1_pro_deploy -PYTHONPATH=/root/go1_pro_sdk:/root/go1_pro_deploy \ -python3 deploy_45dim_rl_gym/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py \ +cd /root/go1_deploy +PYTHONPATH=/root/go1_pro_sdk:/root/go1_deploy \ +python3 deploy_rl_lab/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py \ --infer-check \ --log-dir logs \ --print-every 50 \ @@ -1349,7 +1358,3 @@ loop_dt_ms / recv_ms / policy_ms / work_ms / state_fresh / state_age_ms - [Unitree unitree_legged_sdk](https://github.com/unitreerobotics/unitree_legged_sdk) - 本地 `go2_rl_robotlab/docs/go1.md` - 本地 `RoboGauge/assets/docs/go1_policy_io_zh.md` -- 本地 `go1_pro_deploy/deploy_45dim_rl_gym/README.md` -- 本地 `go1_pro_deploy/deploy_45dim_rl_gym/bpu_quantization/README.md` -- 本地 `go1_pro_deploy/deploy_45dim_rl_gym/bpu_deploy_x5/README.md` -- 本地 `go1_pro_deploy/deploy_45dim_rl_gym/bpu_deploy_s100/README.md`