joses2017smjh/bhl-robustness-ladder

Humanoid locomotion, navigation, and language-guided manipulation in simulation: Isaac Lab/MuJoCo studies, sensor tests, and reproducible evaluation gates.

See the code

README

Humanoid Locomotion & Navigation

Train humanoid policies in Isaac Lab, then measure how they walk, turn, and navigate in MuJoCo. Humanoid Robustness Ladder combines learned control with reproducible evaluations and sensor studies.

Simulated humanoid navigating a maze beside lidar and sensor views

Selected MuJoCo rollout: learned gait, scripted A planner, lidar-built map, and oracle pose/goal. Other sensor panels are display only. Playback is accelerated. This is simulation-to-simulation; physical locomotion transfer remains unvalidated.*

Case study · Results · Setup · Demo gallery · Research overview

Problem and contribution

A policy can earn more training reward and still fall in another simulator. I built task overlays, checkpoint qualification, sensor checks, and experiment drivers to measure that gap before promoting a policy.

The robot design and deployment controller come from Berkeley Humanoid Lite. My work adds locomotion and navigation experiments, MuJoCo scoring, portable regression replay, and published controls and failures.

Selected results

These are saved study results, not new measurements from this documentation refresh.

StudyMeasured resultScope and evidence
Domain randomizationDefault: 0/360 flat falls; no randomization: 77/360.12-DoF biped, three training seeds per setting, part of a 3,600-episode simulation confirmation. Verdict.
Navigation command filter259/288 goals versus 247/288 baseline; 0 versus 9 observed falls.576 matched episodes across three actors; oracle pose/goal. Shared layouts are clustered observations; wall contacts remain. Protocol and results.
Portable replay5/5 seeded trajectories reproduced on a second HPC host.Frozen CPU bundle and runtime; no claim of general cross-platform determinism. Comparison.

Negative findings remain part of the project: the matched IMU-history ablation did not qualify, and stereo-pose navigation remained limited. H3/H4 report · Native sensor report.

October 12 follow-ups: 48 native scheduling simulations completed, with LiDAR–IMU clean goals 0/12 → 11/12 and stereo 0/12 in both schedules. EuRoC replay completed on 1,200 stereo pairs per native mode. Both reports retain timing, order and validation limits.

How it works

flowchart LR
  A[Isaac Lab tasks] --> B[PPO checkpoints]
  B --> C[ONNX export]
  C --> D[MuJoCo controller replay]
  D --> E[Task scores and recordings]
  E --> F[Checkpoint gate]
CodeResponsibility
Task overlaysObservations, rewards, and curricula.
EvaluationMuJoCo replay, sensing, and scoring.
Benchmark scriptsMatched comparisons and checkpoint gates.
Slurm launchersTraining and evaluation jobs on the research cluster.
ResultsSaved scores, provenance, and recordings.

Engineering decisions

  • Gate checkpoints on task outcomes. Reward alone misses falls, wall contacts, and failed goals. Frozen rules keep favorable runs from changing the acceptance criteria.
  • Separate learned control from supervision. A learned gait can sit under a scripted planner or a learned navigator. Each report states its controller, sensors, and use of oracle state.
  • Keep replay portable. A pinned CPU bundle includes the checkpoint, controller, assets, and hashes. Timing claims exclude physics, networking, and real-time scheduling.
  • Treat sensor accuracy and navigation success separately. Better depth on an image benchmark does not by itself establish better closed-loop control.

Setup and testing

The CPU suite uses Python 3.11. Training additionally needs the documented Isaac environment, GPU resources, and cluster configuration. Some historical results reference external assets that are not public downloads; see reproducibility requirements.

git -c url.https://github.com/.insteadOf=git@github.com: clone \
  --recurse-submodules https://github.com/joses2017smjh/bhl-robustness-ladder.git
cd bhl-robustness-ladder
python3.11 -m venv .venv-cpu
source .venv-cpu/bin/activate
python -m pip install torch==2.7.0 torchvision==0.22.0 \
  --index-url https://download.pytorch.org/whl/cpu
python -m pip install -r requirements-test.txt
python -m pip check
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 \
  PYTHONPATH=src:external/Berkeley-Humanoid-Lite/source/berkeley_humanoid_lite_lowlevel \
  python -m pytest -q tests

These commands match the CPU workflow. Tests cover logic and artifact contracts; simulator and asset prerequisites cause documented optional skips. The saved October 8 validation receipt records 1,998 tests plus six subtests passing, with 123 skips. That receipt is historical, not a new full-suite run.

For a frozen trained-policy replay, start with the included portable bundle and its USAGE.txt. Bundle provenance, timing scope, and detailed instructions.

Training and deployment

Slurm launchers describe the original Isaac Sim 5.1 / Isaac Lab 2.3.2 stack; newer campaigns use a separate 6.0 / 3.0 environment. Adapt account, partition, dependencies, and paths before submitting jobs. The research overview retains the full setup and campaign history.

Physical Quest arm teleoperation is a separate project. The sensor rig plan describes pending calibration and hardware validation. Repository boundaries and transfer milestones explain the proposed next step.

Stack and attribution

Python · PyTorch · Isaac Lab / Isaac Sim · MuJoCo · ONNX Runtime · Warp · rsl-rl · Slurm · Apptainer.

Upstream robot code, models, and assets retain their respective licenses. This repository currently has no repository-level license.

Portfolio · Detailed research overview · Findings ledger

computer-vision
domain-randomization
humanoid-robotics
isaac-lab
locomotion
mujoco
multi-robot-systems
navigation
onnx
pytorch
reinforcement-learning
robotics
sim-to-sim
simulation
slurm
smolvla
vision-language-action

joses2017smjh/bhl-robustness-ladder

Humanoid locomotion, navigation, and language-guided manipulation in simulation: Isaac Lab/MuJoCo studies, sensor tests, and reproducible evaluation gates.

See the code

README

Humanoid Locomotion & Navigation

Train humanoid policies in Isaac Lab, then measure how they walk, turn, and navigate in MuJoCo. Humanoid Robustness Ladder combines learned control with reproducible evaluations and sensor studies.

Simulated humanoid navigating a maze beside lidar and sensor views

Selected MuJoCo rollout: learned gait, scripted A planner, lidar-built map, and oracle pose/goal. Other sensor panels are display only. Playback is accelerated. This is simulation-to-simulation; physical locomotion transfer remains unvalidated.*

Case study · Results · Setup · Demo gallery · Research overview

Problem and contribution

A policy can earn more training reward and still fall in another simulator. I built task overlays, checkpoint qualification, sensor checks, and experiment drivers to measure that gap before promoting a policy.

The robot design and deployment controller come from Berkeley Humanoid Lite. My work adds locomotion and navigation experiments, MuJoCo scoring, portable regression replay, and published controls and failures.

Selected results

These are saved study results, not new measurements from this documentation refresh.

StudyMeasured resultScope and evidence
Domain randomizationDefault: 0/360 flat falls; no randomization: 77/360.12-DoF biped, three training seeds per setting, part of a 3,600-episode simulation confirmation. Verdict.
Navigation command filter259/288 goals versus 247/288 baseline; 0 versus 9 observed falls.576 matched episodes across three actors; oracle pose/goal. Shared layouts are clustered observations; wall contacts remain. Protocol and results.
Portable replay5/5 seeded trajectories reproduced on a second HPC host.Frozen CPU bundle and runtime; no claim of general cross-platform determinism. Comparison.

Negative findings remain part of the project: the matched IMU-history ablation did not qualify, and stereo-pose navigation remained limited. H3/H4 report · Native sensor report.

October 12 follow-ups: 48 native scheduling simulations completed, with LiDAR–IMU clean goals 0/12 → 11/12 and stereo 0/12 in both schedules. EuRoC replay completed on 1,200 stereo pairs per native mode. Both reports retain timing, order and validation limits.

How it works

flowchart LR
  A[Isaac Lab tasks] --> B[PPO checkpoints]
  B --> C[ONNX export]
  C --> D[MuJoCo controller replay]
  D --> E[Task scores and recordings]
  E --> F[Checkpoint gate]
CodeResponsibility
Task overlaysObservations, rewards, and curricula.
EvaluationMuJoCo replay, sensing, and scoring.
Benchmark scriptsMatched comparisons and checkpoint gates.
Slurm launchersTraining and evaluation jobs on the research cluster.
ResultsSaved scores, provenance, and recordings.

Engineering decisions

  • Gate checkpoints on task outcomes. Reward alone misses falls, wall contacts, and failed goals. Frozen rules keep favorable runs from changing the acceptance criteria.
  • Separate learned control from supervision. A learned gait can sit under a scripted planner or a learned navigator. Each report states its controller, sensors, and use of oracle state.
  • Keep replay portable. A pinned CPU bundle includes the checkpoint, controller, assets, and hashes. Timing claims exclude physics, networking, and real-time scheduling.
  • Treat sensor accuracy and navigation success separately. Better depth on an image benchmark does not by itself establish better closed-loop control.

Setup and testing

The CPU suite uses Python 3.11. Training additionally needs the documented Isaac environment, GPU resources, and cluster configuration. Some historical results reference external assets that are not public downloads; see reproducibility requirements.

git -c url.https://github.com/.insteadOf=git@github.com: clone \
  --recurse-submodules https://github.com/joses2017smjh/bhl-robustness-ladder.git
cd bhl-robustness-ladder
python3.11 -m venv .venv-cpu
source .venv-cpu/bin/activate
python -m pip install torch==2.7.0 torchvision==0.22.0 \
  --index-url https://download.pytorch.org/whl/cpu
python -m pip install -r requirements-test.txt
python -m pip check
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 \
  PYTHONPATH=src:external/Berkeley-Humanoid-Lite/source/berkeley_humanoid_lite_lowlevel \
  python -m pytest -q tests

These commands match the CPU workflow. Tests cover logic and artifact contracts; simulator and asset prerequisites cause documented optional skips. The saved October 8 validation receipt records 1,998 tests plus six subtests passing, with 123 skips. That receipt is historical, not a new full-suite run.

For a frozen trained-policy replay, start with the included portable bundle and its USAGE.txt. Bundle provenance, timing scope, and detailed instructions.

Training and deployment

Slurm launchers describe the original Isaac Sim 5.1 / Isaac Lab 2.3.2 stack; newer campaigns use a separate 6.0 / 3.0 environment. Adapt account, partition, dependencies, and paths before submitting jobs. The research overview retains the full setup and campaign history.

Physical Quest arm teleoperation is a separate project. The sensor rig plan describes pending calibration and hardware validation. Repository boundaries and transfer milestones explain the proposed next step.

Stack and attribution

Python · PyTorch · Isaac Lab / Isaac Sim · MuJoCo · ONNX Runtime · Warp · rsl-rl · Slurm · Apptainer.

Upstream robot code, models, and assets retain their respective licenses. This repository currently has no repository-level license.

Portfolio · Detailed research overview · Findings ledger

computer-vision
domain-randomization
humanoid-robotics
isaac-lab
locomotion
mujoco
multi-robot-systems
navigation
onnx
pytorch
reinforcement-learning
robotics
sim-to-sim
simulation
slurm
smolvla
vision-language-action