Skip to content

feat: add Sharpa sim2real and HORA training support - #354

Merged
TATP-233 merged 25 commits into
mainfrom
feat/sharpa_sim2real
May 4, 2026
Merged

TATP-233 merged 25 commits into
mainfrom
feat/sharpa_sim2real

Conversation

@Mingrui-Yu

@Mingrui-Yu Mingrui-Yu commented Apr 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • add Sharpa in-hand PPO, APPO, HORA, and distillation configs and training entrypoints
  • extend the MuJoCo backend and Sharpa env support for sim2real randomization, contact force observations, and object setup changes
  • move Sharpa HORA owner/runtime resolution out of training scripts and into owner-selected runtime helpers
  • expose Sharpa MuJoCo model metadata through backend contract methods instead of env-level MuJoCo internals
  • keep HORA APPO shared IPC on the ADR-0005 obs/critic contract and derive HORA model priv_info from critic
  • add documentation, support-matrix updates, and Sharpa-focused tests and benchmarks

Validation

  • uv run pytest tests/algos/test_hora_contract.py tests/benchmark/test_sharpa_init_dr_benchmark.py tests/scripts/test_check_docs.py::test_sharpa_domain_randomization_doc_matches_owner_config -q
  • uv run pytest tests/scripts/test_check_docs.py -q
  • uv run pytest tests/test_sharpa.py tests/envs/test_sharpa.py tests/envs/test_env_configs.py::test_sharpa_grasp_env_initializes_dr_once_with_grasp_provider -q
  • uv run pytest tests/algos/test_hora_imports.py tests/scripts/test_train_scripts.py::test_hora_distill_script_delegates_teacher_owner_resolution tests/scripts/test_train_scripts.py::test_hora_distill_task_owner_overrides_root_config_defaults tests/scripts/test_train_scripts.py::test_hora_distill_teacher_owner_defaults_support_ppo_and_appo tests/scripts/test_train_scripts.py::test_hora_distill_teacher_run_slug_omits_teacher_run_name tests/envs/test_sharpa.py::test_sharpa_env_uses_backend_contract_for_mujoco_metadata -q
  • uv run pytest tests/scripts/test_train_scripts.py::test_play_wrapper_preserves_hora_priv_info_and_proprio_history tests/scripts/test_train_scripts.py::test_play_wrapper_timeout_bootstrap_preserves_hora_priv_info tests/scripts/test_train_scripts.py::test_hora_distill_task_owner_overrides_root_config_defaults tests/scripts/test_train_scripts.py::test_hora_distill_teacher_owner_defaults_support_ppo_and_appo tests/scripts/test_train_scripts.py::test_hora_distill_teacher_run_slug_omits_teacher_run_name -q
  • uv run pytest tests/base/test_sim_backend_smoke.py tests/algos/test_hora_imports.py tests/scripts/test_train_scripts.py tests/test_sharpa.py tests/envs/test_sharpa.py tests/envs/test_env_configs.py tests/benchmark/test_sharpa_init_dr_benchmark.py tests/scripts/test_check_docs.py::test_sharpa_domain_randomization_doc_matches_owner_config -q
  • uv run pytest tests/ipc tests/algos/test_hora_contract.py tests/algos/test_hora_imports.py tests/algos/test_appo_runner_unit.py tests/scripts/test_train_scripts.py tests/test_sharpa.py tests/envs/test_sharpa.py tests/envs/test_env_configs.py tests/benchmark/test_sharpa_init_dr_benchmark.py tests/scripts/test_check_docs.py::test_sharpa_domain_randomization_doc_matches_owner_config tests/base/test_sim_backend_smoke.py -q

Impact

  • Sharpa HORA PPO runtime dispatch is now selected by owner YAML via algo.runtime_resolver; missing custom runtime resolvers fail fast.
  • HORA distillation script no longer parses teacher owner YAML or owns HORA actor-class checks directly.
  • Sharpa env no longer imports MuJoCo or reads self._backend.model; MuJoCo-specific metadata is accessed through SimBackend.
  • APPO shared rollout storage no longer transports priv_info as an IPC field; HORA derives its internal tensor from the env-owned critic observation.
  • Sharpa Motrix remains unsupported for this task because the required randomization and metadata contracts are MuJoCo-only today.

Checklist

  • Owner/config logic stays outside long-lived training script rules.
  • Backend-specific model metadata access is isolated behind backend contract methods.
  • Docs and benchmark overrides match env.domain_rand.scale_list and Sharpa interval body_force DR.
  • Targeted tests cover HORA state contract, HORA runtime selection, HORA APPO IPC, Sharpa metadata isolation, backend metadata getters, docs, and benchmark construction.

@TATP-233
TATP-233 merged commit b273efd into main May 4, 2026
10 checks passed
@TATP-233
TATP-233 deleted the feat/sharpa_sim2real branch May 4, 2026 20:55
TATP-233 added a commit that referenced this pull request May 4, 2026
feat: add Sharpa sim2real and HORA training support
TATP-233 added a commit that referenced this pull request May 30, 2026
feat: add Sharpa sim2real and HORA training support
TATP-233 added a commit that referenced this pull request Sep 4, 2026
feat: add Sharpa sim2real and HORA training support
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants