From 2745fcf45ae30d197256fa8fbcf33652f7d8e1c0 Mon Sep 17 00:00:00 2001 From: gongbaojiding-1123 <310524940+gongbaojiding-1123@users.noreply.github.com> Date: Thu, 22 Oct 2026 21:16:49 +0800 Subject: [PATCH 1/8] feat(rma): add locomotion pipeline and reproducible experiment portfolio --- .gitignore | 10 + README.md | 4 + README_zh.md | 3 + deploy_cpp/CMakeLists.txt | 41 + deploy_cpp/include/DoubleBuffer.hpp | 54 + deploy_cpp/include/TensorRTPolicy.hpp | 80 + deploy_cpp/src/main_control_loop.cpp | 192 ++ deploy_cpp/src/policy_worker.cpp | 52 + deploy_cpp/tests/test_double_buffer.cpp | 39 + docs/rma/README.md | 115 + docs/rma/REPRODUCING.md | 60 + docs/rma/THIRD_PARTY_NOTICES.md | 14 + docs/rma/VALIDATION.md | 41 + .../rma/EXP-000_teacher_full_baseline.md | 54 + experiments/rma/EXP-001_forward_v1.md | 49 + experiments/rma/EXP-002_diagnosis_plan.md | 40 + experiments/rma/TEMPLATE.md | 15 + legged_gym/go2_config.py | 10 + requirements-rma-export.txt | 4 + results/rma/baseline/seed123.json | 61 + results/rma/baseline/seed456.json | 61 + results/rma/baseline/seed789.json | 61 + results/rma/evaluation_summary.csv | 7 + results/rma/figures/forward_v1_training.png | Bin 0 -> 291350 bytes results/rma/figures/velocity_comparison.png | Bin 0 -> 76934 bytes .../rma/forward_v1/checkpoint_metadata.json | 20 + .../rma/forward_v1/config_snapshot/base.yaml | 239 ++ .../config_snapshot/composed_unresolved.yaml | 438 +++ .../forward_v1/config_snapshot/mujoco.yaml | 29 + .../rma/forward_v1/config_snapshot/rma.yaml | 60 + .../config_snapshot/rma_forward.yaml | 20 + results/rma/forward_v1/run_configuration.json | 35 + results/rma/forward_v1/seed123.json | 62 + results/rma/forward_v1/seed456.json | 62 + results/rma/forward_v1/seed789.json | 62 + results/rma/forward_v1/training_metrics.csv | 3001 +++++++++++++++++ results/rma/forward_v1/training_summary.json | 37 + results/rma/provenance.json | 91 + rsl_rl/unilab_rma/__init__.py | 4 + rsl_rl/unilab_rma/actor_critic_rma.py | 81 + rsl_rl/unilab_rma/adaptation_module.py | 77 + rsl_rl/unilab_rma/deployment.py | 16 + rsl_rl/unilab_rma/env_adapter.py | 57 + rsl_rl/unilab_rma/evaluation_diagnostics.py | 83 + rsl_rl/unilab_rma/experiment_report.py | 114 + rsl_rl/unilab_rma/ppo.py | 47 + rsl_rl/unilab_rma/rendering.py | 110 + rsl_rl/unilab_rma/runner.py | 146 + rsl_rl/unilab_rma/scene_contract.py | 46 + rsl_rl/unilab_rma/tensorrt_runtime.py | 129 + rsl_rl/unilab_rma/training_log.py | 115 + scripts/evaluate_rma.py | 212 ++ scripts/export_onnx.py | 99 + scripts/report_rma.py | 22 + scripts/train_rma.py | 104 + .../conf/ppo/task/go2_joystick_flat/rma.yaml | 60 + .../task/go2_joystick_flat/rma_forward.yaml | 20 + src/unilab/envs/mdp/rma.py | 54 + tests/rma/test_core.py | 191 ++ tests/rma/test_evaluation_diagnostics.py | 94 + tests/rma/test_experiment_report.py | 24 + tests/rma/test_rendering.py | 315 ++ tests/rma/test_tensorrt_runtime.py | 120 + tests/rma/test_training_log.py | 98 + 64 files changed, 7661 insertions(+) create mode 100644 deploy_cpp/CMakeLists.txt create mode 100644 deploy_cpp/include/DoubleBuffer.hpp create mode 100644 deploy_cpp/include/TensorRTPolicy.hpp create mode 100644 deploy_cpp/src/main_control_loop.cpp create mode 100644 deploy_cpp/src/policy_worker.cpp create mode 100644 deploy_cpp/tests/test_double_buffer.cpp create mode 100644 docs/rma/README.md create mode 100644 docs/rma/REPRODUCING.md create mode 100644 docs/rma/THIRD_PARTY_NOTICES.md create mode 100644 docs/rma/VALIDATION.md create mode 100644 experiments/rma/EXP-000_teacher_full_baseline.md create mode 100644 experiments/rma/EXP-001_forward_v1.md create mode 100644 experiments/rma/EXP-002_diagnosis_plan.md create mode 100644 experiments/rma/TEMPLATE.md create mode 100644 legged_gym/go2_config.py create mode 100644 requirements-rma-export.txt create mode 100644 results/rma/baseline/seed123.json create mode 100644 results/rma/baseline/seed456.json create mode 100644 results/rma/baseline/seed789.json create mode 100644 results/rma/evaluation_summary.csv create mode 100644 results/rma/figures/forward_v1_training.png create mode 100644 results/rma/figures/velocity_comparison.png create mode 100644 results/rma/forward_v1/checkpoint_metadata.json create mode 100644 results/rma/forward_v1/config_snapshot/base.yaml create mode 100644 results/rma/forward_v1/config_snapshot/composed_unresolved.yaml create mode 100644 results/rma/forward_v1/config_snapshot/mujoco.yaml create mode 100644 results/rma/forward_v1/config_snapshot/rma.yaml create mode 100644 results/rma/forward_v1/config_snapshot/rma_forward.yaml create mode 100644 results/rma/forward_v1/run_configuration.json create mode 100644 results/rma/forward_v1/seed123.json create mode 100644 results/rma/forward_v1/seed456.json create mode 100644 results/rma/forward_v1/seed789.json create mode 100644 results/rma/forward_v1/training_metrics.csv create mode 100644 results/rma/forward_v1/training_summary.json create mode 100644 results/rma/provenance.json create mode 100644 rsl_rl/unilab_rma/__init__.py create mode 100644 rsl_rl/unilab_rma/actor_critic_rma.py create mode 100644 rsl_rl/unilab_rma/adaptation_module.py create mode 100644 rsl_rl/unilab_rma/deployment.py create mode 100644 rsl_rl/unilab_rma/env_adapter.py create mode 100644 rsl_rl/unilab_rma/evaluation_diagnostics.py create mode 100644 rsl_rl/unilab_rma/experiment_report.py create mode 100644 rsl_rl/unilab_rma/ppo.py create mode 100644 rsl_rl/unilab_rma/rendering.py create mode 100644 rsl_rl/unilab_rma/runner.py create mode 100644 rsl_rl/unilab_rma/scene_contract.py create mode 100644 rsl_rl/unilab_rma/tensorrt_runtime.py create mode 100644 rsl_rl/unilab_rma/training_log.py create mode 100644 scripts/evaluate_rma.py create mode 100644 scripts/export_onnx.py create mode 100644 scripts/report_rma.py create mode 100644 scripts/train_rma.py create mode 100644 src/unilab/conf/ppo/task/go2_joystick_flat/rma.yaml create mode 100644 src/unilab/conf/ppo/task/go2_joystick_flat/rma_forward.yaml create mode 100644 src/unilab/envs/mdp/rma.py create mode 100644 tests/rma/test_core.py create mode 100644 tests/rma/test_evaluation_diagnostics.py create mode 100644 tests/rma/test_experiment_report.py create mode 100644 tests/rma/test_rendering.py create mode 100644 tests/rma/test_tensorrt_runtime.py create mode 100644 tests/rma/test_training_log.py diff --git a/.gitignore b/.gitignore index 36ea87ed9..f63c2ba4e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,15 @@ # Python __pycache__/ + +# RMA experiment runtime/build artifacts. Curated small reports live in results/rma/. +build/ +build-*/ +*.pt +*.pth +*.onnx +*.engine +*.plan +events.out.tfevents.* dist/ .eggs/ *.egg-info/ diff --git a/README.md b/README.md index 2fbfad7e6..7d608d776 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ Contract-driven infrastructure for robot learning across physics backends and ha

Languages: English | 简体中文

+> **Fork experiment: Go2 RMA locomotion.** See the [experiment portfolio](docs/rma/README.md) +> for teacher/student code, reproducible evaluation data, learning curves and C++ mock deployment. +> Current forward-speed tracking has not reached the target; failures and reproduction limits are documented. +

CI Project Page diff --git a/README_zh.md b/README_zh.md index 4654bd779..158c83643 100644 --- a/README_zh.md +++ b/README_zh.md @@ -6,6 +6,9 @@

语言:简体中文 | English

+> **本 fork 的 Go2 RMA 运动控制实验**:[查看项目展示与实验记录](docs/rma/README.md)。 +> 包含教师/学生代码、真实评估数据、训练曲线和 C++ mock 部署;当前前进速度跟踪尚未达标。 +

CI Project Page diff --git a/deploy_cpp/CMakeLists.txt b/deploy_cpp/CMakeLists.txt new file mode 100644 index 000000000..aff515c28 --- /dev/null +++ b/deploy_cpp/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.20) +project(unilab_rma_deploy LANGUAGES CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +option(WITH_TENSORRT "Build TensorRT 10 policy inference" OFF) +option(ENABLE_TSAN "Enable thread sanitizer on supported Unix compilers" OFF) +find_package(Threads REQUIRED) +add_executable(control_loop src/main_control_loop.cpp) +add_executable(test_double_buffer tests/test_double_buffer.cpp) +foreach(target control_loop test_double_buffer) + target_include_directories(${target} PRIVATE include) + target_link_libraries(${target} PRIVATE Threads::Threads) + if(MSVC) + target_compile_options(${target} PRIVATE /W4 /EHsc) + else() + target_compile_options(${target} PRIVATE -Wall -Wextra -Wpedantic) + if(ENABLE_TSAN) + target_compile_options(${target} PRIVATE -fsanitize=thread -g) + target_link_options(${target} PRIVATE -fsanitize=thread) + endif() + endif() +endforeach() +if(WITH_TENSORRT) + find_package(CUDAToolkit REQUIRED) + find_path(TENSORRT_INCLUDE NvInfer.h HINTS ${TENSORRT_ROOT}/include REQUIRED) + find_library(TENSORRT_LIBRARY nvinfer HINTS ${TENSORRT_ROOT}/lib ${TENSORRT_ROOT}/lib64 REQUIRED) + target_compile_definitions(control_loop PRIVATE WITH_TENSORRT) + target_include_directories(control_loop PRIVATE ${TENSORRT_INCLUDE}) + target_link_libraries(control_loop PRIVATE ${TENSORRT_LIBRARY} CUDA::cudart) + add_executable(policy_worker src/policy_worker.cpp) + target_include_directories(policy_worker PRIVATE include ${TENSORRT_INCLUDE}) + target_link_libraries(policy_worker PRIVATE ${TENSORRT_LIBRARY} CUDA::cudart) + if(MSVC) + target_compile_options(policy_worker PRIVATE /W4 /EHsc) + else() + target_compile_options(policy_worker PRIVATE -Wall -Wextra -Wpedantic) + endif() +endif() +enable_testing() +add_test(NAME double_buffer_consistency COMMAND test_double_buffer) +add_test(NAME mock_control_loop COMMAND control_loop --seconds 1) diff --git a/deploy_cpp/include/DoubleBuffer.hpp b/deploy_cpp/include/DoubleBuffer.hpp new file mode 100644 index 000000000..9d475c208 --- /dev/null +++ b/deploy_cpp/include/DoubleBuffer.hpp @@ -0,0 +1,54 @@ +#pragma once +#include +#include +#include + +// Single producer / single consumer, latest-value mailbox, exactly two payload slots. +// Publication alone is insufficient: slot ownership prevents payload data races. +// Nonblocking try operations: caller retains last valid value on read failure. +template class DoubleBuffer { + static_assert(std::is_trivially_copyable_v, "Payload must be trivially copyable"); + static_assert(std::atomic::is_always_lock_free, "Requires lock-free atomic"); + enum { Free=0, Writing=1, Ready=2, Reading=3 }; + struct alignas(64) Slot { + std::atomic state{Free}; + T value{}; + }; + std::array slots_{}; + std::atomic published_{-1}; +public: + bool tryWrite(const T& value) noexcept { + const int previous=published_.load(std::memory_order_acquire); + const int first=previous<0?0:1-previous; + for(int attempt=0;attempt<2;++attempt){ + const int index=attempt==0?first:1-first; + auto& slot=slots_[index]; + int state=slot.state.load(std::memory_order_acquire); + if(state!=Free && state!=Ready) continue; + if(!slot.state.compare_exchange_strong(state,Writing, + std::memory_order_acq_rel,std::memory_order_relaxed)) continue; + slot.value=value; + // Announce while Writing, then release the payload. A reader of an + // old index cannot consume a recycled slot before its publication; + // Ready acquire also orders the publication before its next read. + published_.store(index,std::memory_order_release); + slot.state.store(Ready,std::memory_order_release); + return true; + } + return false; + } + bool tryRead(T& value) noexcept { + const int index=published_.load(std::memory_order_acquire); + if(index<0) return false; + auto& slot=slots_[index]; + int state=Ready; + if(!slot.state.compare_exchange_strong(state,Reading, + std::memory_order_acq_rel,std::memory_order_relaxed)) return false; + value=slot.value; + slot.state.store(Free,std::memory_order_release); + return true; + } + DoubleBuffer()=default; + DoubleBuffer(const DoubleBuffer&)=delete; + DoubleBuffer& operator=(const DoubleBuffer&)=delete; +}; diff --git a/deploy_cpp/include/TensorRTPolicy.hpp b/deploy_cpp/include/TensorRTPolicy.hpp new file mode 100644 index 000000000..a6adfdf0b --- /dev/null +++ b/deploy_cpp/include/TensorRTPolicy.hpp @@ -0,0 +1,80 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class TensorRTPolicy { + struct Logger : nvinfer1::ILogger { + void log(Severity severity,const char* msg) noexcept override { + if(severity<=Severity::kERROR) std::fprintf(stderr,"TensorRT: %s\n",msg); + } + } logger_; + std::unique_ptr runtime_; + std::unique_ptr engine_; + std::unique_ptr context_; + cudaStream_t stream_{}; + void *obs_{},*history_{},*action_{}; + static void check(cudaError_t result){ + if(result!=cudaSuccess) throw std::runtime_error(cudaGetErrorString(result)); + } + void cleanup() noexcept { + if(stream_) cudaStreamSynchronize(stream_); + if(obs_) cudaFree(obs_); + if(history_) cudaFree(history_); + if(action_) cudaFree(action_); + if(stream_) cudaStreamDestroy(stream_); + } + void require(const char* name,nvinfer1::TensorIOMode mode,std::initializer_list shape){ + if(engine_->getTensorIOMode(name)!=mode || engine_->getTensorDataType(name)!=nvinfer1::DataType::kFLOAT || + engine_->getTensorLocation(name)!=nvinfer1::TensorLocation::kDEVICE) + throw std::runtime_error(std::string("Engine IO type/mode mismatch: ")+name); + const auto dims=engine_->getTensorShape(name); + if(dims.nbDims!=static_cast(shape.size())) throw std::runtime_error("Engine rank mismatch"); + int i=0; + for(int d:shape) if(dims.d[i++]!=d) throw std::runtime_error("Engine shape mismatch"); + } +public: + explicit TensorRTPolicy(const std::string& path){ + try { + std::ifstream file(path,std::ios::binary); + if(!file) throw std::runtime_error("Cannot open TensorRT engine"); + std::vector bytes((std::istreambuf_iterator(file)),{}); + runtime_.reset(nvinfer1::createInferRuntime(logger_)); + if(!runtime_) throw std::runtime_error("Cannot create TensorRT runtime"); + engine_.reset(runtime_->deserializeCudaEngine(bytes.data(),bytes.size())); + if(!engine_) throw std::runtime_error("Cannot deserialize engine"); + if(engine_->getNbIOTensors()!=3) throw std::runtime_error("Expected exactly 3 IO tensors"); + require("observation",nvinfer1::TensorIOMode::kINPUT,{1,49}); + require("history",nvinfer1::TensorIOMode::kINPUT,{1,50,49}); + require("action",nvinfer1::TensorIOMode::kOUTPUT,{1,12}); + context_.reset(engine_->createExecutionContext()); + if(!context_) throw std::runtime_error("Cannot create execution context"); + check(cudaStreamCreate(&stream_)); + check(cudaMalloc(&obs_,49*sizeof(float))); + check(cudaMalloc(&history_,2450*sizeof(float))); + check(cudaMalloc(&action_,12*sizeof(float))); + if(!context_->setTensorAddress("observation",obs_) || + !context_->setTensorAddress("history",history_) || + !context_->setTensorAddress("action",action_)) throw std::runtime_error("Cannot bind IO"); + } catch(...) { cleanup(); throw; } + } + ~TensorRTPolicy(){ cleanup(); } + void infer(const std::array& obs,const std::array& history, + std::array& action){ + check(cudaMemcpyAsync(obs_,obs.data(),sizeof(obs),cudaMemcpyHostToDevice,stream_)); + check(cudaMemcpyAsync(history_,history.data(),sizeof(history),cudaMemcpyHostToDevice,stream_)); + if(!context_->enqueueV3(stream_)) throw std::runtime_error("enqueueV3 failed"); + check(cudaMemcpyAsync(action.data(),action_,sizeof(action),cudaMemcpyDeviceToHost,stream_)); + check(cudaStreamSynchronize(stream_)); + } + TensorRTPolicy(const TensorRTPolicy&)=delete; + TensorRTPolicy& operator=(const TensorRTPolicy&)=delete; +}; diff --git a/deploy_cpp/src/main_control_loop.cpp b/deploy_cpp/src/main_control_loop.cpp new file mode 100644 index 000000000..d69873e57 --- /dev/null +++ b/deploy_cpp/src/main_control_loop.cpp @@ -0,0 +1,192 @@ +// Timing/IO framework. MOCK ROBOT ONLY: no Unitree SDK commands are sent. +// C++17, TensorRT 10 optional, static FP32 IO with optional internal FP16 engine. +#include "DoubleBuffer.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef WITH_TENSORRT +#include "TensorRTPolicy.hpp" +#endif + +using Clock=std::chrono::steady_clock; +std::int64_t nowNs(){return std::chrono::duration_cast(Clock::now().time_since_epoch()).count();} +struct Sensor { + // q,dq in joint order FL FR RL RR; q0 is supplied in actuator order FR FL RR RL. + std::array q{},dq{}; + std::array gyro{},gravity{0,0,-1},command{}; + std::int64_t stamp{}; +}; +struct Command { + std::array target{}; + std::int64_t stamp{}; + std::uint64_t sequence{}; +}; +struct ControlConfig { + std::array q0{},kp{},kd{},limit{}; + ControlConfig(){kp.fill(35);kd.fill(.5);limit.fill(10);} + void load(const std::string& path){ + std::ifstream f(path); + if(!f) throw std::runtime_error("Cannot read control config"); + for(int i=0;i<12;++i){ + if(!(f>>q0[i]>>kp[i]>>kd[i]>>limit[i]) || !std::isfinite(q0[i]) || + !std::isfinite(kp[i]) || !std::isfinite(kd[i]) || !std::isfinite(limit[i]) || + kp[i]<0 || kd[i]<0 || limit[i]<=0) throw std::runtime_error("Invalid control config row"); + } + std::string extra; + if(f>>extra) throw std::runtime_error("Control config must contain exactly 12 rows of q0 kp kd torque_limit"); + } +}; +// Joint -> actuator index, based on copied YAML; verify against materialized scene before real use. +constexpr std::array jointToAct{3,4,5,0,1,2,9,10,11,6,7,8}; + +int main(int argc,char** argv){ + try { + int seconds=5; + std::string enginePath, configPath; + for(int i=1;i3600) throw std::runtime_error("seconds must be 1..3600"); + ControlConfig cfg; + if(!configPath.empty()) cfg.load(configPath); + if(!enginePath.empty() && configPath.empty()) throw std::runtime_error("Engine requires matching home/PD config"); +#ifdef WITH_TENSORRT + std::unique_ptr policy; + if(!enginePath.empty()){ + policy=std::make_unique(enginePath); + // Trigger lazy CUDA/kernel initialization before timed control starts. + std::array warmObs{}; + std::array warmHistory{}; + std::array warmAction{}; + policy->infer(warmObs,warmHistory,warmAction); + for(float a:warmAction) if(!std::isfinite(a)) throw std::runtime_error("Non-finite warm-up action"); + std::cout<<"TensorRT engine loaded; IO checked; warm-up complete\n"; + } +#else + if(!enginePath.empty()) throw std::runtime_error("Rebuild with WITH_TENSORRT=ON"); +#endif + std::cout<<"MOCK ROBOT ONLY; "<<(enginePath.empty()?"zero-action mock policy":"TensorRT policy") + <<"; 50 Hz policy / 1000 Hz PD requested\n"; + DoubleBuffer sensors; + DoubleBuffer commands; + std::atomic stop{false}; + std::atomic fastTicks{0},slowTicks{0},stale{0},fastMiss{0},slowMiss{0}; + // Thread-owned statistics; main reads them only after both joins. + std::uint64_t commandsPublished=0,commandsConsumed=0; + float maxActionAbs=0.f,maxTargetOffset=0.f,maxTorqueAbs=0.f; +#ifdef WITH_TENSORRT + std::uint64_t inferenceCalls=0; + double inferenceTotalMs=0.,inferenceMaxMs=0.; +#endif + std::string failure; // Written only by slow thread; read after join. + const auto end=Clock::now()+std::chrono::seconds(seconds); + std::thread fast([&]{ + Sensor s; + for(int j=0;j<12;++j) s.q[j]=cfg.q0[jointToAct[j]]; + Command active; + auto deadline=Clock::now(); + while(!stop.load(std::memory_order_acquire) && Clock::now()active.sequence){ + active=candidate; + ++commandsConsumed; + } + const bool fresh=active.sequence>0 && s.stamp>=active.stamp && s.stamp-active.stamp<100000000; + if(!fresh) ++stale; + for(int j=0;j<12;++j){ + const int a=jointToAct[j]; + float torque=fresh?cfg.kp[a]*(active.target[a]-s.q[j])-cfg.kd[a]*s.dq[j]:0.f; + torque=std::clamp(torque,-cfg.limit[a],cfg.limit[a]); + maxTorqueAbs=std::max(maxTorqueAbs,std::abs(torque)); + // Mock plant, no gravity/contact. Replace with timestamped SDK sensor/command IO. + s.dq[j]+=(torque-.2f*s.dq[j])/.2f*.001f; + s.q[j]+=s.dq[j]*.001f; + } + ++fastTicks; + deadline+=std::chrono::milliseconds(1); + if(Clock::now()>deadline){++fastMiss;deadline=Clock::now();} + std::this_thread::sleep_until(deadline); + } + stop.store(true,std::memory_order_release); + }); + std::thread slow([&]{ + try { + std::array history{}; + std::array previous{}; + auto deadline=Clock::now(); + std::uint64_t sequence=0; + float phase=0.f; + while(!stop.load(std::memory_order_acquire)){ + Sensor s; + if(sensors.tryRead(s) && nowNs()-s.stamp<20000000){ + std::array obs{}; + for(int i=0;i<3;++i){obs[i]=s.gyro[i];obs[3+i]=s.gravity[i];obs[42+i]=s.command[i];} + for(int j=0;j<12;++j){obs[6+j]=s.q[j]-cfg.q0[jointToAct[j]];obs[18+j]=s.dq[j];obs[30+j]=previous[j];} + // Reset phase on process start. Real runtime must match environment phase resets. + constexpr float offsets[4]={0,.5f,.5f,0}; + for(int i=0;i<4;++i) obs[45+i]=std::fmod(phase+offsets[i],1.f); + // Shift left explicitly; no overlapping std::copy ranges. + for(int i=0;i<2450-49;++i) history[i]=history[i+49]; + std::copy(obs.begin(),obs.end(),history.end()-49); + std::array action{}; +#ifdef WITH_TENSORRT + if(policy){ + const auto started=Clock::now(); + policy->infer(obs,history,action); + const double elapsed=std::chrono::duration(Clock::now()-started).count(); + ++inferenceCalls; + inferenceTotalMs+=elapsed; + inferenceMaxMs=std::max(inferenceMaxMs,elapsed); + } +#endif + Command cmd; + cmd.stamp=s.stamp; // Sensor age includes inference latency. + cmd.sequence=++sequence; + for(int i=0;i<12;++i){ + if(!std::isfinite(action[i])) throw std::runtime_error("Non-finite model action"); + action[i]=std::clamp(action[i],-1.f,1.f); + cmd.target[i]=cfg.q0[i]+.25f*action[i]; + maxActionAbs=std::max(maxActionAbs,std::abs(action[i])); + maxTargetOffset=std::max(maxTargetOffset,std::abs(cmd.target[i]-cfg.q0[i])); + } + if(commands.tryWrite(cmd)){ + previous=action; + ++commandsPublished; + } + phase=std::fmod(phase+.04f,1.f); // Same float32 0.02s * 2Hz update as training. + ++slowTicks; + } + deadline+=std::chrono::milliseconds(20); + if(Clock::now()>deadline){++slowMiss;deadline=Clock::now();} + std::this_thread::sleep_until(deadline); + } + } catch(const std::exception& e){failure=e.what();stop.store(true,std::memory_order_release);} + }); + fast.join();slow.join(); + std::cout<<"PD ticks="<0) std::cout<<"TensorRT calls="< +#include +#include +#include + +int main(int argc,char** argv){ + static_assert(sizeof(float)==4 && std::numeric_limits::is_iec559, + "The worker protocol requires IEEE754 float32"); + try { + if(argc!=3 || std::string(argv[1])!="--engine") + throw std::runtime_error("Usage: policy_worker --engine file.engine"); + const std::uint32_t endian=1; + if(*reinterpret_cast(&endian)!=1) + throw std::runtime_error("The worker protocol requires little endian"); + TensorRTPolicy policy(argv[2]); + std::array obs{}; + std::array history{}; + std::array action{}; + policy.infer(obs,history,action); // Finish CUDA initialization before handshake. + for(float value:action) if(!std::isfinite(value)) + throw std::runtime_error("Non-finite warm-up output"); + const std::array dimensions{49,50,12}; + std::cout.write("RMA1",4); + std::cout.write(reinterpret_cast(dimensions.data()),sizeof(dimensions)); + std::cout.flush(); + while(true){ + std::cin.read(reinterpret_cast(obs.data()),sizeof(obs)); + if(std::cin.gcount()==0 && std::cin.eof()) break; + if(!std::cin) throw std::runtime_error("Incomplete observation frame"); + std::cin.read(reinterpret_cast(history.data()),sizeof(history)); + if(!std::cin) throw std::runtime_error("Incomplete history frame"); + for(float value:obs) if(!std::isfinite(value)) + throw std::runtime_error("Non-finite observation input"); + for(float value:history) if(!std::isfinite(value)) + throw std::runtime_error("Non-finite history input"); + policy.infer(obs,history,action); + for(float value:action) if(!std::isfinite(value)) + throw std::runtime_error("Non-finite action output"); + std::cout.write(reinterpret_cast(action.data()),sizeof(action)); + std::cout.flush(); + if(!std::cout) throw std::runtime_error("Cannot write action frame"); + } + return 0; + } catch(const std::exception& error){ + std::cerr<<"TensorRT worker: "< +#include +#include +#include +#include +struct Payload {std::uint64_t sequence{};std::array values{};}; +int main(){ + DoubleBuffer buffer; + Payload first; + if(buffer.tryRead(first)) return 1; + std::atomic done{false}; + std::atomic errors{0}; + std::uint64_t count=0; + std::thread writer([&]{ + for(std::uint64_t i=1;i<=200000;++i){ + Payload p;p.sequence=i;p.values.fill(i); + while(!buffer.tryWrite(p)) std::this_thread::yield(); + } + done.store(true,std::memory_order_release); + }); + std::thread reader([&]{ + std::uint64_t last=0; + auto verify=[&](const Payload& p){ + if(p.sequence<=last) ++errors; + for(auto v:p.values) if(v!=p.sequence) ++errors; + last=p.sequence;++count; + }; + while(!done.load(std::memory_order_acquire)){ + Payload p; + if(buffer.tryRead(p)) verify(p); + } + Payload p; + if(buffer.tryRead(p)) verify(p); + }); + writer.join();reader.join(); + std::cout<<"snapshots="<0?0:1; +} diff --git a/docs/rma/README.md b/docs/rma/README.md new file mode 100644 index 000000000..bc1e4b421 --- /dev/null +++ b/docs/rma/README.md @@ -0,0 +1,115 @@ +# Go2 RMA Locomotion Lab + +基于 UniLab 的 Go2 强化学习运动控制实验:教师 PPO、历史观测适应、模型导出与 C++ 模拟部署。 + +> 当前状态:工程组件已有测试与运行记录;教师尚未学会稳定跟踪 0.5 m/s 前进指令。 +> 本仓库保留失败结果和可复现的诊断,不声称完成鲁棒行走、真机部署或跨物理引擎泛化。 + +## 这个项目解决什么问题 + +目标是研究如何让四足机器人按速度指令运动,以及如何通过历史观测估计摩擦、负载相关的隐变量。 +当前第一项任务是定位“策略原地踏步但没有向前移动”的原因。 + +```mermaid +flowchart LR + P["训练特权参数:摩擦、负载"] --> E["教师 Encoder"] + E --> Z["隐变量 z:8 维"] + H["过去 50 步观测:50 × 49"] --> A["学生 Adaptation MLP"] + A --> ZH["估计隐变量 z_hat:8 维"] + O["当前观测:49 维"] --> ACT["共享 Actor"] + Z --> ACT + ZH --> ACT + ACT --> U["12 维动作"] +``` + +教师评估使用真实特权参数,学生使用历史估计隐变量;两条路径是分别选择的。 +部署图只保留 Adaptation + Actor,教师 Encoder 与 Critic 不进入部署图。 + +本分支在 UniLab fork 中加入增量实验层,保留 `unilab` 导入,不修改上游项目的归属。 +训练脚本使用项目内的独立 PPO 实现,不是官方 RSL-RL 的训练入口。 + +## 已观察到的结果 + +所有评估固定机体系指令 `(0.5, 0, 0)`,每个种子使用 8 个环境、每环境 1000 个控制步。 + +| 模型 | 评估种子 | 平均前向速度 (m/s) | 前向 RMSE (m/s) | 提前终止次数 | +|---|---:|---:|---:|---:| +| 原始教师 | 123 | -0.006058 | 0.510957 | 0 | +| 原始教师 | 456 | -0.011667 | 0.517436 | 1 | +| 原始教师 | 789 | -0.004922 | 0.511072 | 1 | +| 前进配置教师 v1 | 123 | 0.015686 | 0.489772 | 2 | +| 前进配置教师 v1 | 456 | 0.013730 | 0.490668 | 0 | +| 前进配置教师 v1 | 789 | 0.012254 | 0.491959 | 0 | + +前进配置 v1 已完成 3000 次更新、4,608,000 次环境转移,初始化种子为 42。 +三个评估种子不是三个独立训练种子,表格不构成跨训练种子的显著性结论。 +不同配置使用不同奖励权重,因此不能直接用总奖励比较任务效果。 +提前终止次数不是经独立检测标注的跌倒率。 + +![固定前进指令评估](../../results/rma/figures/velocity_comparison.png) + +![前进配置教师训练曲线](../../results/rma/figures/forward_v1_training.png) + +原始数值、训练记录及分析见 [results](../../results/rma/) 和 [实验记录](../../experiments/rma/)。 +曲线展示奖励而非实际速度;当前训练器尚未逐步记录前向速度曲线。 + +## 代码结构 + +```text +rsl_rl/unilab_rma/ 教师/学生网络、PPO、GAE、历史缓冲与 UniLab 适配 +scripts/ 训练、评估、导出与结果汇总 +legged_gym/ Go2 接口常量,并非重新实现 legged_gym +src/unilab/... RMA 事件与任务配置;原有 UniLab 框架保持上游归属 +deploy_cpp/ TensorRT 接口、双缓冲与 50/1000Hz mock 控制框架 +tests/rma/ 算法与接口测试 +experiments/ 问题、假设、对照设计与结论 +results/ 精选 JSON、CSV、配置记录与图表 +docs/ 使用说明、接口契约与复现边界 +``` + +## 复现与依赖 + +完整说明见 [复现指南](REPRODUCING.md) 和 [验证记录](VALIDATION.md)。 + +已发布的实测数据基于本地 UniLab 1.3.3 工作副本、MuJoCo CPU 物理环境和 PyTorch。 +本 fork 基线为 UniLab 1.3.4,基线 commit 与关键文件差异见 [provenance.json](../../results/rma/provenance.json)。 +原始运行副本未携带 Git 历史,且部分配置/运行时文件与 fork 不同;因此不能把旧实测冒充为当前分支端到端验证。 +不建议为了运行本仓库直接升级已经验证过的仿真环境。 + +核心测试与结果图表可以独立运行;真实 Go2 训练仍需要完整 UniLab、依赖与机器人资产。 +在匹配的环境中执行: + +```bash +cd /path/to/this/UniLab +uv run --no-sync python -m unittest discover -s tests/rma -p 'test_*.py' +``` + +评估已存在的前进配置教师: + +```bash +uv run --no-sync python scripts/evaluate_rma.py \ + --policy teacher --checkpoint runs/rma/teacher_forward_v1.pt \ + --task go2_joystick_flat/rma_forward \ + --num-envs 8 --steps 1000 --seed 123 \ + --command 0.5 0 0 --diagnostics +``` + +在上述命令追加 `--render` 可看画面,追加 `--render-speed 0.5` 可慢放。 +训练默认不打开可视化。实验模型权重和已安装运行环境不包含在本仓库中。 +以上是已有完整 1.3.3 运行环境的评估入口;1.3.4 环境接入必须单独完成兼容性验证。 + +## 接下来如何改进 + +1. 保留当前基线,补齐逐步速度、动作饱和和 PPO 更新诊断。 +2. 在一致训练预算下分别检验指令范围、摆腿奖励和速度跟踪权重。 +3. 教师速度跟踪通过后,比较学生自身 rollout 与教师表现。 +4. 将 ONNX / TensorRT 的数值一致性与任务表现分别验收。 + +本仓库当前不是自动课程调度器;现有 `rma_forward` 是静态前进任务配置。 +详细设计见 [下一项实验](../../experiments/rma/EXP-002_diagnosis_plan.md)。 + +## 来源与贡献范围 + +UniLab 是上游仿真与任务框架;本项目贡献范围为 RMA 增量实现、实验配置、诊断、导出/模拟部署及实验分析。 +上游来源、许可证与本地源码快照的限制见 [来源说明](THIRD_PARTY_NOTICES.md)。 +AI 工具参与了代码和文档辅助;已验证范围和未验证项以测试记录及实验数据为准。 diff --git a/docs/rma/REPRODUCING.md b/docs/rma/REPRODUCING.md new file mode 100644 index 000000000..c227d9b5b --- /dev/null +++ b/docs/rma/REPRODUCING.md @@ -0,0 +1,60 @@ +# RMA 实验复现与验证范围 + +## 先区分两个代码版本 + +旧实测来自没有 Git 历史的本地 UniLab 1.3.3 工作副本。 +本分支从用户 fork 的 `c19b8810059e3c495dc5394a5652d3c82c00f70f`(1.3.4)开始,导入 RMA 增量代码。 +`results/rma/provenance.json` 保存了运行依赖、来源文件哈希和关键框架文件差异。 +存在差异时,不应把旧模型成绩标成当前 Git commit 上重跑的结果。 + +## 复现表格和图表 + +在有 PyTorch 和 matplotlib 的 Python 环境中,从项目根目录执行: + +```bash +uv run --no-sync python scripts/report_rma.py +``` + +输入是 `results/rma/baseline/seed*.json`、`results/rma/forward_v1/seed*.json` +和 `results/rma/forward_v1/training_metrics.csv`。 +输出是 `results/rma/evaluation_summary.csv` 与 `results/rma/figures/*.png`。 +训练图使用真实的 3000 行 CSV,平滑线为包含启动区间的尾随 100 次更新均值。 +没有填补不存在的模型速度曲线,也没有生成虚构视频。 + +## 核心算法/接口测试与 C++ mock + +```bash +uv run --no-sync python -m unittest discover -s tests/rma -p 'test_*.py' +cmake -S deploy_cpp -B build/rma -DCMAKE_BUILD_TYPE=Release +cmake --build build/rma -j2 +ctest --test-dir build/rma --output-on-failure +``` + +这些测试验证算法接口、历史缓冲、概率/终止处理、导出接口和并发 mock。 +它们不能证明 Go2 速度跟踪、真机安全、硬实时或 TensorRT 在目标设备上的精度与延迟。 + +## 真实评估协议 + +保留原 checkpoint,固定 `(0.5, 0, 0)`,每个种子运行 8 环境 × 1000 个控制步, +种子为 123、456、789,模型权重不变。完整参数见 EXP-001。 +加入 `--diagnostics` 才输出各轴速度、各轴 RMSE 与奖励分项。 +统计包含启动和重置过程;下一阶段应提前约定稳态统计窗口,并同时保留全程指标。 +日志若使用 `tee` 保存,会混有启动文字,不是纯 JSON 文件。 + +当前静态配置继承的上游基础奖励定义在 1.3.3 与 1.3.4 有变化。 +历史配置快照应与原运行环境一起用于追溯,不能单独覆盖新版本的全部框架文件。 +重新运行当前分支得到的结果,应另起实验编号,并保存当前 commit 和完整配置。 + +## 训练与 checkpoint 语义 + +3000 次更新 × 64 环境 × 24 rollout 长度 = 4,608,000 次环境转移。 +策略/更新 CUDA 不等于物理仿真也在 GPU;本次物理环境为 CPU。 +当前 `--checkpoint` 只恢复网络权重,未恢复 optimizer/RNG/环境状态,属于 warm-start。 +当前保存行为每 20 次覆盖同一路径;旧运行没有保存全部历史 checkpoint,无法补算其历史速度曲线。 + +## 环境和资产 + +机器人资源通过上游资产流程获取,路径与 home keyframe 必须匹配。 +不要将 `.venv`、mesh、完整运行目录或大模型文件直接加入 Git。 +本分支没有发布训练权重;checkpoint SHA256 用于之后核对同一模型。 +环境安装方式以 fork 上游说明为准;复现旧数据需匹配 provenance 中记录的版本及配置。 diff --git a/docs/rma/THIRD_PARTY_NOTICES.md b/docs/rma/THIRD_PARTY_NOTICES.md new file mode 100644 index 000000000..93021e5ba --- /dev/null +++ b/docs/rma/THIRD_PARTY_NOTICES.md @@ -0,0 +1,14 @@ +# 来源与贡献范围 + +- 上游框架:UniLab,仓库 `https://github.com/unilabsim/UniLab`。 +- 用户 fork:`https://github.com/gongbaojiding-1123/UniLab`。 +- 原有 UniLab 源码、许可证和归属保持不变;许可证见仓库根目录 `LICENSE`。 +- RMA 增量:`rsl_rl/unilab_rma`、RMA 脚本与配置、`deploy_cpp`、相关测试与本组实验文档。 +- `legged_gym/go2_config.py` 只声明接口常量,不是完整 legged_gym 的移植。 +- 当前训练器是本项目独立 PPO;不能将其结果归属于官方 RSL-RL 的默认实现。 +- RMA 的教师隐变量/历史适应思路属于已有研究,本项目不宣称发明该方法。 +- 机器人资源、TensorRT/CUDA、PyTorch 等依赖仍遵循其各自许可,未随实验结果重新分发。 +- 代码和文档使用了 AI 辅助,结果数据来自已保存的训练 CSV 与用户提供的评估输出。 + +原运行目录未携带 Git 历史,无法证明它与某个上游 commit 完全一致。 +本分支保留关键文件差异记录,不通过猜测补填上游 commit。 diff --git a/docs/rma/VALIDATION.md b/docs/rma/VALIDATION.md new file mode 100644 index 000000000..488266e04 --- /dev/null +++ b/docs/rma/VALIDATION.md @@ -0,0 +1,41 @@ +# RMA 分支验证记录 + +日期:2026-10-22。 + +## 已通过 + +- 导入本地 RMA 增量层及精选实验数据;数据汇总严格匹配 6 份 JSON 和 3000 行训练 CSV。 +- `uv run --no-sync python scripts/report_rma.py`:生成汇总 CSV 与两张静态图;图表已人工查看。 +- `uv run --no-sync python -m unittest discover -s tests/rma -p 'test_*.py'`:33 项通过,格式化后重跑仍通过。 +- `cmake -S deploy_cpp -B build/rma -DCMAKE_BUILD_TYPE=Release`:配置成功。 +- `cmake --build build/rma -j2`:构建成功。 +- `ctest --test-dir build/rma --output-on-failure`:2/2 通过(并发一致性和 mock 控制)。 +- `make check` 中的 ruff format/check、`mypy src/unilab`:通过。 + +核心测试与报告脚本使用现有 WSL Python 环境。C++ 为 GNU 11.4.0、CMake 生成的 Release 构建。 +没有追加 Go2 长训,没有更改用户运行目录的策略参数或仿真配置。 + +## 完整门禁尚未通过 + +在本 fork 1.3.4 源码上,复用了已有 1.3.3 的 WSL 环境运行完整门禁: + +```bash +UV_PROJECT_ENVIRONMENT=/home/abc/my_unilab/.venv UV_NO_SYNC=1 make check +UV_PROJECT_ENVIRONMENT=/home/abc/my_unilab/.venv UV_NO_SYNC=1 make test-all +``` + +Pyright 报告上游现有框架文件的 10 项错误和 3 项警告,包括缺失的 packed-reset/capability API、 +未解析导入与可选值检查。报错位置没有被本次改动修改。 +依赖/源码版本不一致是已观察到的限制,尚未证明这是所有错误的唯一原因。 +`make test-all` 因前置类型检查未通过而未到达后续全仓测试阶段,不能报告成全仓测试通过。 +未为通过门禁而升级正在使用的训练环境或更改上游框架代码。 + +若创建 PR,应保持 Draft;本地核心验证不替代完整门禁和当前 head 的远端 CI。 +1.3.4 分支下的真实 Go2 训练、旧 checkpoint 行为兼容、TensorRT/真机与跨引擎测试未在本次执行。 + +## 历史数据边界 + +发布的运动指标是已有本地 1.3.3 运行副本产生的结果,不是当前 1.3.4 分支重跑的结果。 +`results/rma/forward_v1/config_snapshot` 是训练完成后从仍在使用的工作副本采集的配置, +并非训练开始时自动保存的不可变快照;不能据此补造完整历史溯源。 +原运行配置、CSV、checkpoint 与来源 SHA256 记录见 `results/rma/provenance.json`。 diff --git a/experiments/rma/EXP-000_teacher_full_baseline.md b/experiments/rma/EXP-000_teacher_full_baseline.md new file mode 100644 index 000000000..1572cffe3 --- /dev/null +++ b/experiments/rma/EXP-000_teacher_full_baseline.md @@ -0,0 +1,54 @@ +# EXP-000:旧教师固定前进指令评估 + +记录整理:2026-10-22。原始评估目录日期:2026-10-21。 +本记录由已有 JSON 整理,本次没有重新训练或重新评估。 + +## 问题与设置 + +- 模型:旧 `teacher_full.pt`,教师策略;不是新前进配置模型。 +- 目标指令:机体系 `(0.5 m/s, 0 m/s, 0 rad/s)`。 +- 每次 8 环境 × 1000 策略步,共 8000 次环境转移。 +- 三个评估种子:123、456、789。它们不是三个训练种子。 +- 原始 JSON 中未保存完整训练配置、训练 commit 或 checkpoint 校验和;本记录不补造这些信息。 + +## 原始数据 + +实际 WSL 目录: +`/home/abc/my_unilab/runs/rma/circling_diagnosis/verified_20261021_225308/` + +仓库中发布的对应数据: + +- `results/rma/baseline/seed123.json` +- `results/rma/baseline/seed456.json` +- `results/rma/baseline/seed789.json` + +| 评估种子 | 平均 vx (m/s) | 前向 RMSE (m/s) | 平面速度 RMSE (m/s) | 提前终止次数 | +|---|---:|---:|---:|---:| +| 123 | -0.006058 | 0.510957 | 0.514638 | 0 | +| 456 | -0.011667 | 0.517436 | 0.522385 | 1 | +| 789 | -0.004922 | 0.511072 | 0.515623 | 1 | + +表格数值仅为展示做了四舍五入,原始 JSON 保留精度。 +统计包含启动与重置后的过渡过程;不是单独截取的稳态数据。 +提前终止次数不等于经独立接触检测标注的跌倒次数。 + +种子 123 的乘权重、尚未乘控制 dt 的奖励分项: + +- `tracking_lin_vel`:0.360382。 +- `swing_feet_z`:1.272840。 +- `similar_to_default`:-0.183316。 + +## 结论与局限 + +事实:该模型在这三组测试中,平均前向速度接近零,未实现目标速度跟踪。 +辅助摆腿奖励的贡献较高,值得检查是否存在“原地踏步也获得收益”的路径。 +奖励分项大小本身不证明这是唯一原因,也不直接给出哪个奖励权重应设为多少。 +没有由此证明 PPO 公式错误、需要更换仿真器或需要修改部署线程。 + +## 下一步 + +1. 核对后续新模型实际使用的任务与配置。 +2. 用相同固定指令、种子、环境数与步数评估新模型;保留新日志和本基线。 +3. 若仍不前进,按 `EXP-002_diagnosis_plan.md` 设计单因素对照及控制链路诊断。 + +后续前进配置结果现已收集,见 `EXP-001_forward_v1.md`。 diff --git a/experiments/rma/EXP-001_forward_v1.md b/experiments/rma/EXP-001_forward_v1.md new file mode 100644 index 000000000..15b62d76d --- /dev/null +++ b/experiments/rma/EXP-001_forward_v1.md @@ -0,0 +1,49 @@ +# EXP-001:前进配置教师仍未跟踪目标速度 + +日期:2026-10-22。状态:训练与三个种子的评估已完成,运动目标未达成。 + +## 假设与改动 + +原始教师在固定前进指令下几乎不前进。初始假设是辅助摆腿奖励与任务范围可能影响学习。 +本次将 vx 指令收窄到 `[0.3, 0.6]`、vy/wz 置零,速度跟踪权重由 1 改为 2,摆腿奖励权重由 4 改为 0.25。 +这是组合实验,不能将结果归因于单独某一项改动。 + +## 训练证据 + +运行配置记录确认: + +- 教师 PPO,从头训练,初始化种子 42。 +- 环境 64,采样长度 24,更新 3000 次,环境转移 4,608,000 次。 +- 策略/更新设备 CUDA,物理环境设备 CPU,后端 MuJoCo。 +- 模型 `teacher_forward_v1.pt`;训练运行配置、CSV 与 checkpoint 元数据另存于 `results/rma/forward_v1/`。 + +3000 是优化迭代次数,不是环境交互总步数。已完成这一预算,但这不等于证明预算足以收敛。 +每 500 次更新的平均每步奖励约为 0.02093、0.02190、0.02167、0.02149、0.02197、0.02147。 +曲线在早期提高后长期处于平台,没有支持继续无条件加训必然成功的趋势。 + +## 测试协议 + +教师策略、固定机体系指令 `(0.5, 0, 0)`,每种子 8 环境 × 1000 控制步。 +三个评估种子为 123、456、789,模型权重相同。统计包含启动和回合重置后的过渡过程。 + +| 种子 | 平均 vx (m/s) | 前向 RMSE (m/s) | 平面速度 RMSE (m/s) | 提前终止次数 | +|---|---:|---:|---:|---:| +| 123 | 0.015686 | 0.489772 | 0.493154 | 2 | +| 456 | 0.013730 | 0.490668 | 0.493155 | 0 | +| 789 | 0.012254 | 0.491959 | 0.494027 | 0 | + +## 结论 + +- 目标 0.5 m/s 下,三个条件的平均前向速度都只有约 0.014 m/s,尚未学会任务要求的前进。 +- 相比旧模型有小幅变化,但不能把小幅改善描述为已经学会走路。 +- 仅凭最终 checkpoint 不能区分“预算不够”和“局部最优/探索或控制问题”。 +- 降低摆腿奖励并增加跟踪奖励后问题仍存在;不能继续将唯一原因认定为摆腿奖励过强。 +- 原始、新配置的奖励权重不同,总 reward 不可直接横向比较。 +- 三个评估种子不能替代多个训练种子,也不支持统计显著性结论。 + +## 下一步 + +先看已有训练 CSV 的趋势,并设计逐步速度、策略输出范围和控制链路诊断。 +在采样预算相同的前提下做单因素对照,或采用预先约定的延长预算对照。 +当前 `--checkpoint` 只加载权重,没有恢复 optimizer/RNG,不能把它描述为精确续训。 +不自动追加长训、不覆盖原模型,不把失败结果隐藏掉。 diff --git a/experiments/rma/EXP-002_diagnosis_plan.md b/experiments/rma/EXP-002_diagnosis_plan.md new file mode 100644 index 000000000..2d529eada --- /dev/null +++ b/experiments/rma/EXP-002_diagnosis_plan.md @@ -0,0 +1,40 @@ +# EXP-002:先诊断平台,再选择对照实验 + +状态:计划,尚未训练,不含预测值冒充实测。 + +## 证据 + +EXP-001 已完成 3000 更新、4.608M 环境转移,前向速度约 0.014 m/s。 +训练 CSV 的每 500 更新均值约为 0.02093、0.02190、0.02167、0.02149、0.02197、0.02147。 +约 500 次以后奖励长期平台,现有结果不能支持“继续挂机一定会学会”。 +也不能据此反向断言 4.608M 对所有配置都足够。 + +## 第一项可审查的交付:诊断 + +不先改变奖励/控制/优化参数,计划增加仅在评估时启用的记录: + +- 每步、每环境 vx/vy/wz、目标值、done 与回合步数。 +- 每关节归一化动作分布与接近边界的比例;若要定位 PD,另记录目标/实测角和扭矩。 +- 同时报告全程误差与预先定义的启动窗口外误差。 + +验收:不启用记录时动作与原评估一致;记录字段、单位和坐标系明确;重置不跨回合串联。 +当前指标没有提供扭矩饱和证据,不得把“疑似饱和”写成已确认问题。 + +## 后续对照候选 + +| 候选 | 保持不变 | 唯一变化 | 目的 | +|---|---|---|---| +| 预算对照 | 配置、初始化种子、环境数、优化设置 | 总训练预算,并保存中间模型 | 检查延长训练是否改善任务指标 | +| 指令消融 | 原奖励、控制器与 PPO | 指令收窄为前进 | 检查任务范围影响 | +| 辅助奖励消融 | 前进指令和其他项 | 摆腿奖励权重 | 检查辅助奖励影响 | +| 跟踪奖励消融 | 其余项 | 速度跟踪权重 | 检查任务激励影响 | + +不同时执行所有候选;先根据诊断选择最有信息量的一项。 +训练预算对照需要连续轨迹或明确标记 warm-start;当前入口不是完整恢复。 +每次保存配置快照、commit、种子、训练总转移数、checkpoint 哈希和相同协议下的评估。 + +## 判断标准 + +主要指标是固定指令下的实际速度与前向 RMSE;侧向/转向误差和提前终止作为辅助指标。 +多个独立训练种子用于检验训练稳定性,不能用三个评估种子替代。 +当前还没有通过指标;任何新增阈值需在实验前约定,并明确是本项目标准。 diff --git a/experiments/rma/TEMPLATE.md b/experiments/rma/TEMPLATE.md new file mode 100644 index 000000000..b78b99c89 --- /dev/null +++ b/experiments/rma/TEMPLATE.md @@ -0,0 +1,15 @@ +# 实验编号: + +- 日期 / 状态: +- 问题与已有证据: +- 可被推翻的假设: +- 相对哪个基线,只改变哪一项: +- 代码 commit / 未提交补丁: +- 完整配置快照 / 依赖信息: +- 训练命令 / 初始化种子 / 总环境转移数 / 设备: +- 日志目录 / checkpoint / SHA256: +- 评估指令 / 种子 / 环境数 / 步数 / 统计窗口: +- 实验前约定的主要指标: +- 逐种子结果 / 原始数据 / 图表 / 视频: +- 结论支持什么、不支持什么: +- 下一项最小实验: diff --git a/legged_gym/go2_config.py b/legged_gym/go2_config.py new file mode 100644 index 000000000..e17cc1ccb --- /dev/null +++ b/legged_gym/go2_config.py @@ -0,0 +1,10 @@ +"""RMA contract only; canonical simulation config remains in unilab/conf YAML.""" + +OBS_DIM = 49 +CRITIC_DIM = 52 +PRIVILEGED_DIM = 2 +HISTORY_LENGTH = 50 +LATENT_DIM = 8 +NUM_ACTIONS = 12 +POLICY_PERIOD_S = 0.02 +ACTION_SCALE = 0.25 diff --git a/requirements-rma-export.txt b/requirements-rma-export.txt new file mode 100644 index 000000000..baf3d05bc --- /dev/null +++ b/requirements-rma-export.txt @@ -0,0 +1,4 @@ +# Install inside the original, working UniLab environment. +onnx>=1.16,<2 +onnxruntime<1.20; python_version < '3.11' +onnxruntime>=1.20; python_version >= '3.11' diff --git a/results/rma/baseline/seed123.json b/results/rma/baseline/seed123.json new file mode 100644 index 000000000..446ec94a6 --- /dev/null +++ b/results/rma/baseline/seed123.json @@ -0,0 +1,61 @@ +{ + "policy": "teacher", + "seed": 123, + "completed_episodes": 8, + "mean_completed_episode_return": 22.94372197985649, + "mean_completed_episode_length_steps": 636.25, + "mean_step_reward": 0.03588731563591864, + "planar_velocity_rmse_m_per_s": 0.5146384602254557, + "unfinished_episodes": 8, + "mean_unfinished_episode_return": 12.943596839904785, + "student_latent_mse_vs_teacher": null, + "student_action_rmse_vs_teacher": null, + "terminations": 0, + "total_transitions": 8000, + "command_override": [ + 0.5, + 0.0, + 0.0 + ], + "diagnostics": { + "velocity_axes": [ + "vx_m_per_s", + "vy_m_per_s", + "yaw_rate_rad_per_s" + ], + "velocity_frame": "robot body; clean critic local_linvel xy and gyro z", + "initial_command_env0": [ + 0.5, + 0.0, + 0.0 + ], + "mean_command": [ + 0.5, + 0.0, + 0.0 + ], + "mean_measured_velocity": [ + -0.006058229419679051, + 0.005980759545039106, + 0.014841998879314587 + ], + "tracking_rmse_by_axis": [ + 0.5109570487642697, + 0.061446229894282584, + 0.11541315228345941 + ], + "mean_absolute_yaw_rate_rad_per_s": 0.06477700540811179, + "weighted_reward_terms_before_dt": { + "tracking_lin_vel": 0.3603822733908892, + "tracking_ang_vel": 0.1920580652654171, + "lin_vel_z": -0.011202149931981695, + "ang_vel_xy": -0.023651930230640574, + "base_height": -0.004054067645105533, + "action_rate": -0.008745710445419946, + "similar_to_default": -0.18331554384529591, + "contact": 0.2000549937337637, + "swing_feet_z": 1.2728398969173431 + }, + "reward_terms_note": "weighted terms BEFORE control-dt scaling; not per-step rewards" + } +} diff --git a/results/rma/baseline/seed456.json b/results/rma/baseline/seed456.json new file mode 100644 index 000000000..3b134fb90 --- /dev/null +++ b/results/rma/baseline/seed456.json @@ -0,0 +1,61 @@ +{ + "policy": "teacher", + "seed": 456, + "completed_episodes": 9, + "mean_completed_episode_return": 17.958606203397114, + "mean_completed_episode_length_steps": 509.6666666666667, + "mean_step_reward": 0.035673840930336154, + "planar_velocity_rmse_m_per_s": 0.5223854549035621, + "unfinished_episodes": 8, + "mean_unfinished_episode_return": 15.470402717590332, + "student_latent_mse_vs_teacher": null, + "student_action_rmse_vs_teacher": null, + "terminations": 1, + "total_transitions": 8000, + "command_override": [ + 0.5, + 0.0, + 0.0 + ], + "diagnostics": { + "velocity_axes": [ + "vx_m_per_s", + "vy_m_per_s", + "yaw_rate_rad_per_s" + ], + "velocity_frame": "robot body; clean critic local_linvel xy and gyro z", + "initial_command_env0": [ + 0.5, + 0.0, + 0.0 + ], + "mean_command": [ + 0.5, + 0.0, + 0.0 + ], + "mean_measured_velocity": [ + -0.011666606367917325, + 0.014149421059863528, + 0.018934832205886893 + ], + "tracking_rmse_by_axis": [ + 0.5174359250308406, + 0.07174000046007187, + 0.143143680448307 + ], + "mean_absolute_yaw_rate_rad_per_s": 0.06684632264653795, + "weighted_reward_terms_before_dt": { + "tracking_lin_vel": 0.3547401953712106, + "tracking_ang_vel": 0.19153448170423507, + "lin_vel_z": -0.014624936374981188, + "ang_vel_xy": -0.025369600676742265, + "base_height": -0.006269701974932105, + "action_rate": -0.008777687560716459, + "similar_to_default": -0.18115082198753954, + "contact": 0.20040749409794809, + "swing_feet_z": 1.2732026720046996 + }, + "reward_terms_note": "weighted terms BEFORE control-dt scaling; not per-step rewards" + } +} diff --git a/results/rma/baseline/seed789.json b/results/rma/baseline/seed789.json new file mode 100644 index 000000000..6706f4473 --- /dev/null +++ b/results/rma/baseline/seed789.json @@ -0,0 +1,61 @@ +{ + "policy": "teacher", + "seed": 789, + "completed_episodes": 8, + "mean_completed_episode_return": 17.56580749154091, + "mean_completed_episode_length_steps": 496.875, + "mean_step_reward": 0.03569934609872871, + "planar_velocity_rmse_m_per_s": 0.5156226711943084, + "unfinished_episodes": 8, + "mean_unfinished_episode_return": 18.13353729248047, + "student_latent_mse_vs_teacher": null, + "student_action_rmse_vs_teacher": null, + "terminations": 1, + "total_transitions": 8000, + "command_override": [ + 0.5, + 0.0, + 0.0 + ], + "diagnostics": { + "velocity_axes": [ + "vx_m_per_s", + "vy_m_per_s", + "yaw_rate_rad_per_s" + ], + "velocity_frame": "robot body; clean critic local_linvel xy and gyro z", + "initial_command_env0": [ + 0.5, + 0.0, + 0.0 + ], + "mean_command": [ + 0.5, + 0.0, + 0.0 + ], + "mean_measured_velocity": [ + -0.004921973013823731, + 0.005795657981586174, + -0.0007342302818937725 + ], + "tracking_rmse_by_axis": [ + 0.5110722221933418, + 0.06835146357993736, + 0.15672107160305368 + ], + "mean_absolute_yaw_rate_rad_per_s": 0.07771462473009702, + "weighted_reward_terms_before_dt": { + "tracking_lin_vel": 0.36330923438072205, + "tracking_ang_vel": 0.1901205448284745, + "lin_vel_z": -0.013487572537051164, + "ang_vel_xy": -0.028084615291387307, + "base_height": -0.004377204851363786, + "action_rate": -0.008941495961428927, + "similar_to_default": -0.18495080276578665, + "contact": 0.19976249381899833, + "swing_feet_z": 1.2716167651414871 + }, + "reward_terms_note": "weighted terms BEFORE control-dt scaling; not per-step rewards" + } +} diff --git a/results/rma/evaluation_summary.csv b/results/rma/evaluation_summary.csv new file mode 100644 index 000000000..94c3ebbc7 --- /dev/null +++ b/results/rma/evaluation_summary.csv @@ -0,0 +1,7 @@ +model,seed,target_vx_m_s,mean_vx_m_s,vx_rmse_m_s,planar_rmse_m_s,terminations,total_transitions +baseline,123,0.5,-0.006058229419679051,0.5109570487642697,0.5146384602254557,0,8000 +baseline,456,0.5,-0.011666606367917325,0.5174359250308406,0.5223854549035621,1,8000 +baseline,789,0.5,-0.004921973013823731,0.5110722221933418,0.5156226711943084,1,8000 +forward_v1,123,0.5,0.015685936529645686,0.4897715884761797,0.49315400810945587,2,8000 +forward_v1,456,0.5,0.013729549131713991,0.49066846115678453,0.49315459737476025,0,8000 +forward_v1,789,0.5,0.012253768285125432,0.49195942077463545,0.49402653605180963,0,8000 diff --git a/results/rma/figures/forward_v1_training.png b/results/rma/figures/forward_v1_training.png new file mode 100644 index 0000000000000000000000000000000000000000..a3729661ef46ab1e495caad2435efdb0c02644da GIT binary patch literal 291350 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