Skip to content

unite: cotrain U-Socket + ChainGripper (six-point actions) - #56

Open
aidang3019 wants to merge 4 commits into
aidan/unite-sweeps-3from
aidan/unite-cotrain-1
Open

unite: cotrain U-Socket + ChainGripper (six-point actions)#56
aidang3019 wants to merge 4 commits into
aidan/unite-sweeps-3from
aidan/unite-cotrain-1

Conversation

@aidang3019

@aidang3019 aidang3019 commented Sep 8, 2026

Copy link
Copy Markdown

ChainGripper joins UNITE as a second embodiment in Elmo's six-point action
space [Lx, Ly, Cx, Cy, Rx, Ry] (chain_gripper_control.py at 6bb7b41/bf632fd,
dropped from the tree in the 09-04 cleanup). Ported dependency-free as
egomimic/rldb/zarr/chain_gripper_points.py (bit-identical FK/IK to the
simulator), with the load-time transforms, the points->native decoder and a
per-embodiment observation adapter.

  • model bf/ct_unite_register_separate_nt8_h384_s42: the half-width un-shared
    recipe with both domains (4-D and 6-D decoders); bf/ch_... chain-only row
  • data unite_cotrain_usocket_chain_val01_h16 (one batch per embodiment per
    step) and unite_chain_points_val01_h16_per_emb_proprio
  • Paper-DP baseline in the same six-point space: bf_planar_v2_dp_paper_points6
    • pusht/planar_v2_chain_points_dp_paper
  • evaluator: semantic_blocks_by_embodiment (energy-score blocks must partition
    the width, 4 vs 6)
  • launchers: launch_unite_cotrain.sbatch (per-embodiment dataset roots,
    manifests, SHAs; FAST keeps throughput settings, not the LR override),
    launch_planar_chain.sbatch (chain DP; SLURM_RESTART_COUNT=0 preflight fix,
    quoted ckpt_path), validate_planar_dataset.py --domain
  • rollout driver: --pusher chain_gripper --chain-control-mode points feeds raw
    points to the env's point mode; SIM_ROOT selects the simulator tree;
    per-embodiment decoders from evaluator.native_decoders
  • tests/test_chain_gripper_points.py

Runs (ICE, 2026-09-08): DP chain points6 300k (job 5739575), UNITE cotrain separate h384 150k (5740150), UNITE chain-only control (5740151). Closed-loop protocol as in #55; the chain gripper is rolled out through the simulator's point mode (2133a92 sim tree). Vault note UNITE Cotrain Loop 9-8.

Stacked on #55.

🤖 Generated with Claude Code

https://claude.ai/code/session_013EqNns33pX983azhohZXX3

ChainGripper joins UNITE as a second embodiment in Elmo's six-point action
space [Lx, Ly, Cx, Cy, Rx, Ry] (chain_gripper_control.py at 6bb7b41/bf632fd,
dropped from the tree in the 09-04 cleanup). Ported dependency-free as
egomimic/rldb/zarr/chain_gripper_points.py (bit-identical FK/IK to the
simulator), with the load-time transforms, the points->native decoder and a
per-embodiment observation adapter.

- model bf/ct_unite_register_separate_nt8_h384_s42: the half-width un-shared
  recipe with both domains (4-D and 6-D decoders); bf/ch_... chain-only row
- data unite_cotrain_usocket_chain_val01_h16 (one batch per embodiment per
  step) and unite_chain_points_val01_h16_per_emb_proprio
- Paper-DP baseline in the same six-point space: bf_planar_v2_dp_paper_points6
  + pusht/planar_v2_chain_points_dp_paper
- evaluator: semantic_blocks_by_embodiment (energy-score blocks must partition
  the width, 4 vs 6)
- launchers: launch_unite_cotrain.sbatch (per-embodiment dataset roots,
  manifests, SHAs; FAST keeps throughput settings, not the LR override),
  launch_planar_chain.sbatch (chain DP; SLURM_RESTART_COUNT=0 preflight fix,
  quoted ckpt_path), validate_planar_dataset.py --domain
- rollout driver: --pusher chain_gripper --chain-control-mode points feeds raw
  points to the env's point mode; SIM_ROOT selects the simulator tree;
  per-embodiment decoders from evaluator.native_decoders
- tests/test_chain_gripper_points.py

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013EqNns33pX983azhohZXX3

Copy link
Copy Markdown
Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

aidang3019 and others added 3 commits September 9, 2026 12:46
… from the rollout branch

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013EqNns33pX983azhohZXX3
…n row

Topology B (PerEmbodimentTokenizerUniteGenerativeEncoder): one tokenizer DiT,
condition projection, null input, domain embedding and output norm per
embodiment; one denoiser DiT shared by both; register latent and per-embodiment
decoders unchanged. Built by build_configurable_unite_generative_encoder(
per_embodiment_tokenizer=True); model row ct_unite_register_split_tok_nt8_h384_s42
differs from the topology-A row by exactly that flag (asserted in tests).

Paper-DP cotrain (planar_v2_cotrain_dp_paper_points6): U-Socket common five
zero-padded to six (PadActionWidth / get_planar_paper_padded_transform_list,
PaddedPlanarCommon5NativeDecoder) + ChainGripper six points through the
existing six-wide Paper-DP head; one batch per embodiment per step, EMA, Hobs 2.

launch_unite_cotrain.sbatch now hosts the whole sweep: ICE_FAMILY is derived
from the experiment (unite | planar), the Paper-DP BC rows for both embodiments
and the DP cotrain row are allowlisted, UNITE-only overrides/asserts are gated
on the family.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013EqNns33pX983azhohZXX3
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.

1 participant