romankalyna GitHub avatar

dreamwaq-isaaclab

romankalyna

This repository reproduces DreamWaQ's asymmetric actor-critic and CENet estimator in Isaac Lab on a Unitree Go2, enabling a proprioception-only policy to match a privileged baseline with minimal performance loss.

Stars

5

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-28

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It demonstrates a clean single-phase training pipeline that replaces privileged terrain and velocity inputs with learned latent context from proprioceptive history, achieving near-privileged locomotion on real-world hardware constraints.

Who it is for

  • Robotics researchers studying sim-to-real transfer
  • RL practitioners working on quadruped locomotion
  • Engineers deploying learned controllers on legged robots
  • Students learning a modular implementation of a known ICRA 2023 method

Use cases

  • Deploying robust locomotion on a Unitree Go2 without external sensors
  • Benchmarking proprioceptive state estimation for legged robots
  • Curriculum-based training of quadrupedal gaits across varied terrains
  • Reproducing and extending DreamWaQ results in NVIDIA Isaac Lab

Strengths

  • Achieves comparable locomotion performance using only 64-D policy inputs versus 235-D privileged inputs
  • Provides rigorous verification: unit tests, gradient checks, and per-component pass/fail gates
  • Includes detailed training curves, velocity estimation plots, and evaluation rollouts
  • Code is self-contained within a single task package without modifying Isaac Lab framework files

Considerations

  • Trained with a single seed, so results lack statistical significance
  • Uses 2048 parallel environments vs. the original paper's 4096, limited by 8 GB VRAM
  • Does not implement the AdaBoost adaptive-bootstrapping gate from the original paper
  • β hyperparameter fixed at 0.5; not swept due to posterior collapse at β=1

README quick start

DreamWaQ in Isaac Lab - Unitree Go2

A reproduction of the two core contributions of DreamWaQ (Nahrendra, Yu & Myung, ICRA 2023) in NVIDIA Isaac Lab on a Unitree Go2: an asymmetric actor-critic and CENet, a context-aided estimator that lets the deployed policy run on proprioception alone.

Result: the proprioception-only policy matched a privileged baseline on terrain difficulty and episode length, trailing it by ~3 reward and ~0.1 m/s tracking error. CENet recovered true body velocity to MSE ≈ 0.006 (m/s)² from proprioceptive history alone.

https://github.com/user-attachments/assets/daabeb17-dc1e-4bb3-8c0d-82a0601c9b6a

Trained Go2 robots crossing discrete-obstacle terrain in Isaac Sim, each tracking its own velocity command.


The problem

In simulation an RL policy can see privileged information - the exact terrain under the robot, its true base velocity. A real quadruped has neither. It has joint encoders and an IMU. So a policy trained on privileged inputs cannot be deployed.

DreamWaQ's answer is to have the robot infer that hidden state from its own recent proprioceptive history, and to train the policy, the value function, and the estimator together in a single phase - no teacher-student distillation.

Method

Asymmetric actor-critic. The actor sees only what hardware can measure (45-D proprioception) plus CENet's outputs. The critic, used only during training, additionally sees a 187-D terrain height scan and the true base velocity.

GroupDimContentsSeen by
policy45ang. velocity, gravity, command, joint pos/vel, last actionactor + critic
height_scan18717×11 terrain height grid (privileged)critic only
privileged_vel3true base linear velocitycritic + CENet target

Actor input 64 (45 + 3 velocity + 16 latent) · Critic input 235 (45 + 187 + 3)

CENet. A shared encoder over the last 5 proprioceptive frames (225-D) splits into two heads: a velocity head regressing 3-D body velocity, and a β-VAE head producing a 16-D latent context. Trained with a hybrid loss:

L = MSE(v̂, v) + MSE(ô, o) + β · KL( z ‖ N(0, I) )

CENet's outputs are detached before reaching the actor, so the policy's gradient cannot reshape the estimator - it learns only from its own prediction error.

Results

Both policies: 2000 iterations, se

Description

Reproduction of DreamWaQ (ICRA 2023) in NVIDIA Isaac Lab - asymmetric actor-critic + CENet for proprioception-only quadrupedal locomotion on a Unitree Go2

Related repositories

Similar projects matched by category, topics, and programming language.

lopopolo
Featured
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI & Machine LearningAI Agents
2,390
slvDev
Featured
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI & Machine LearningLarge Language Models
1,960
littledivy
Featured
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI & Machine Learning
1,482