From 8c1b2aecae51099303403254ca132dcaa9067bb0 Mon Sep 17 00:00:00 2001 From: cyy_mac Date: Thu, 30 Jul 2026 18:12:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AF=B9=E9=BD=90=E6=96=B0sd?= =?UTF-8?q?k=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deploy_go1_robotlab_bpu_s100_fastcpp.py | 32 +++++++++++++++---- .../deploy_go1_robotlab_bpu_x5_fastcpp.py | 32 +++++++++++++++---- .../deploy_go1_rlgym_bpu_x5_fastcpp.py | 32 +++++++++++++++---- .../deploy_go1_rlgym_pro_sdk.py | 23 ++++++++++++- .../deploy_go1_rlgym_pro_sdk_fastcpp.py | 29 ++++++++++++++--- .../deploy_go1_rlgym_pro_sdk_lab.py | 23 ++++++++++++- .../deploy_go1_rlgym_pro_sdk_lab_fastcpp.py | 29 ++++++++++++++--- 7 files changed, 172 insertions(+), 28 deletions(-) diff --git a/deploy_45dim_rl_gym/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py b/deploy_45dim_rl_gym/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py index 8c0eae7..5a26d50 100644 --- a/deploy_45dim_rl_gym/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py +++ b/deploy_45dim_rl_gym/bpu_deploy_s100/deploy_go1_robotlab_bpu_s100_fastcpp.py @@ -32,6 +32,7 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess import sys @@ -43,6 +44,31 @@ from pathlib import Path import numpy as np +HERE = Path(__file__).parent.resolve() +DEPLOY_ROOT = HERE.parents[1] + + +def _add_sdk_paths(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + fast_root = sdk_root / "fast_lowcmd_cpp" + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + if fast_root.exists(): + sys.path.insert(0, str(fast_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_paths() +SDK_FAST_LOW_CMD = SDK_ROOT / "fast_lowcmd_cpp" if SDK_ROOT is not None else None + from go1_pro_sdk import ( MCUClient, MotorMode, PowerProtectViolation, JOINT_NAMES, ) @@ -50,12 +76,6 @@ from go1_pro_sdk import ( from bpu_policy import BpuInferLibPolicy -HERE = Path(__file__).parent.resolve() -DEPLOY_ROOT = HERE.parents[1] -WORKSPACE_ROOT = HERE.parents[2] -SDK_FAST_LOW_CMD = WORKSPACE_ROOT / "go1_pro_sdk" / "fast_lowcmd_cpp" -if SDK_FAST_LOW_CMD.exists(): - sys.path.insert(0, str(SDK_FAST_LOW_CMD)) try: from fast_lowcmd import FastLowCmdBuilder from fast_mcu import FastMCUClient diff --git a/deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py b/deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py index 5fc94ff..399cafb 100644 --- a/deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py +++ b/deploy_45dim_rl_gym/bpu_deploy_x5/deploy_go1_robotlab_bpu_x5_fastcpp.py @@ -32,6 +32,7 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess import sys @@ -43,6 +44,31 @@ from pathlib import Path import numpy as np +HERE = Path(__file__).parent.resolve() +DEPLOY_ROOT = HERE.parents[1] + + +def _add_sdk_paths(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + fast_root = sdk_root / "fast_lowcmd_cpp" + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + if fast_root.exists(): + sys.path.insert(0, str(fast_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_paths() +SDK_FAST_LOW_CMD = SDK_ROOT / "fast_lowcmd_cpp" if SDK_ROOT is not None else None + from go1_pro_sdk import ( MCUClient, MotorMode, PowerProtectViolation, JOINT_NAMES, ) @@ -50,12 +76,6 @@ from go1_pro_sdk import ( from bpu_policy import BpuInferLibPolicy -HERE = Path(__file__).parent.resolve() -DEPLOY_ROOT = HERE.parents[1] -WORKSPACE_ROOT = HERE.parents[2] -SDK_FAST_LOW_CMD = WORKSPACE_ROOT / "go1_pro_sdk" / "fast_lowcmd_cpp" -if SDK_FAST_LOW_CMD.exists(): - sys.path.insert(0, str(SDK_FAST_LOW_CMD)) try: from fast_lowcmd import FastLowCmdBuilder from fast_mcu import FastMCUClient diff --git a/deploy_45dim_rl_gym/deploy_go1_rlgym_bpu_x5_fastcpp.py b/deploy_45dim_rl_gym/deploy_go1_rlgym_bpu_x5_fastcpp.py index ff68bd6..8dc0557 100644 --- a/deploy_45dim_rl_gym/deploy_go1_rlgym_bpu_x5_fastcpp.py +++ b/deploy_45dim_rl_gym/deploy_go1_rlgym_bpu_x5_fastcpp.py @@ -31,6 +31,7 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess import sys @@ -42,20 +43,39 @@ from pathlib import Path import numpy as np +HERE = Path(__file__).parent.resolve() +DEPLOY_ROOT = HERE.parent + + +def _add_sdk_paths(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + fast_root = sdk_root / "fast_lowcmd_cpp" + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + if fast_root.exists(): + sys.path.insert(0, str(fast_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_paths() +SDK_FAST_LOW_CMD = SDK_ROOT / "fast_lowcmd_cpp" if SDK_ROOT is not None else None + from go1_pro_sdk import ( MotorMode, PowerProtectViolation, JOINT_NAMES, ) -HERE = Path(__file__).parent.resolve() -DEPLOY_ROOT = HERE.parent -WORKSPACE_ROOT = HERE.parents[1] sys.path.insert(0, str(HERE / "bpu_deploy_x5")) from bpu_policy import BpuInferLibPolicy -SDK_FAST_LOW_CMD = WORKSPACE_ROOT / "go1_pro_sdk" / "fast_lowcmd_cpp" -if SDK_FAST_LOW_CMD.exists(): - sys.path.insert(0, str(SDK_FAST_LOW_CMD)) try: from fast_lowcmd import FastLowCmdBuilder from fast_mcu import FastMCUClient diff --git a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk.py b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk.py index 74bd9fb..5b6017f 100644 --- a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk.py +++ b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk.py @@ -31,8 +31,10 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess +import sys import time from collections import deque from datetime import datetime @@ -42,13 +44,32 @@ from pathlib import Path import numpy as np import onnxruntime as ort +HERE = Path(__file__).parent.resolve() + + +def _add_sdk_root_to_path(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_root_to_path() + from go1_pro_sdk import ( MCUClient, LowCmd, MotorCmd, MotorMode, apply_safety, PowerProtectViolation, JOINT_NAMES, ) -HERE = Path(__file__).parent.resolve() DEFAULT_ONNX = HERE / "policy_30k.onnx" SPORT_KILL_CMD = ( 'ssh pi@192.168.123.161 "sudo pkill -9 -f keep_sport_alive; ' diff --git a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_fastcpp.py b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_fastcpp.py index daa7dc0..012fd4e 100644 --- a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_fastcpp.py +++ b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_fastcpp.py @@ -31,6 +31,7 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess import sys @@ -43,15 +44,35 @@ from pathlib import Path import numpy as np import onnxruntime as ort +HERE = Path(__file__).parent.resolve() + + +def _add_sdk_paths(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + fast_root = sdk_root / "fast_lowcmd_cpp" + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + if fast_root.exists(): + sys.path.insert(0, str(fast_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_paths() +SDK_FAST_LOW_CMD = SDK_ROOT / "fast_lowcmd_cpp" if SDK_ROOT is not None else None + from go1_pro_sdk import ( MCUClient, MotorMode, PowerProtectViolation, JOINT_NAMES, ) -HERE = Path(__file__).parent.resolve() -SDK_FAST_LOW_CMD = HERE.parents[1] / "go1_pro_sdk" / "fast_lowcmd_cpp" -if SDK_FAST_LOW_CMD.exists(): - sys.path.insert(0, str(SDK_FAST_LOW_CMD)) try: from fast_lowcmd import FastLowCmdBuilder except ImportError as exc: diff --git a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab.py b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab.py index 4562a59..52c4202 100644 --- a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab.py +++ b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab.py @@ -32,8 +32,10 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess +import sys import time from collections import deque from datetime import datetime @@ -43,13 +45,32 @@ from pathlib import Path import numpy as np import onnxruntime as ort +HERE = Path(__file__).parent.resolve() + + +def _add_sdk_root_to_path(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_root_to_path() + from go1_pro_sdk import ( MCUClient, LowCmd, MotorCmd, MotorMode, apply_safety, PowerProtectViolation, JOINT_NAMES, ) -HERE = Path(__file__).parent.resolve() DEFAULT_ONNX = HERE / "policy_robotlab_6500.onnx" SPORT_KILL_CMD = ( 'ssh pi@192.168.123.161 "sudo pkill -9 -f keep_sport_alive; ' diff --git a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab_fastcpp.py b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab_fastcpp.py index 5bd3d93..01974e3 100644 --- a/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab_fastcpp.py +++ b/deploy_45dim_rl_gym/deploy_go1_rlgym_pro_sdk_lab_fastcpp.py @@ -32,6 +32,7 @@ low-level checks, override the default with --power-factor 1. import argparse import json +import os import signal import subprocess import sys @@ -44,15 +45,35 @@ from pathlib import Path import numpy as np import onnxruntime as ort +HERE = Path(__file__).parent.resolve() + + +def _add_sdk_paths(): + candidates = [] + env_root = os.environ.get("GO1_PRO_SDK_ROOT") + if env_root: + candidates.append(Path(env_root).expanduser()) + for parent in (HERE, *HERE.parents): + candidates.append(parent / "go1_pro_sdk") + + for sdk_root in candidates: + fast_root = sdk_root / "fast_lowcmd_cpp" + if (sdk_root / "go1_pro_sdk").exists(): + sys.path.insert(0, str(sdk_root)) + if fast_root.exists(): + sys.path.insert(0, str(fast_root)) + return sdk_root + return None + + +SDK_ROOT = _add_sdk_paths() +SDK_FAST_LOW_CMD = SDK_ROOT / "fast_lowcmd_cpp" if SDK_ROOT is not None else None + from go1_pro_sdk import ( MCUClient, MotorMode, PowerProtectViolation, JOINT_NAMES, ) -HERE = Path(__file__).parent.resolve() -SDK_FAST_LOW_CMD = HERE.parents[1] / "go1_pro_sdk" / "fast_lowcmd_cpp" -if SDK_FAST_LOW_CMD.exists(): - sys.path.insert(0, str(SDK_FAST_LOW_CMD)) try: from fast_lowcmd import FastLowCmdBuilder from fast_mcu import FastMCUClient