Robotics
LeRobot
Safetensors
xvla
openarm

Incline_new_60epi

X-VLA finetuned on a bimanual OpenArm ramp-loading dataset. The run went the full 20,000 steps and ended on its own.

Load

The default branch holds the final checkpoint, 020000:

--policy.path=leapshared/Incline_new_60epi

Each earlier checkpoint is a branch of the same repo, with the weights at the branch root:

--policy.path=leapshared/Incline_new_60epi --policy.pretrained_revision=014000

--policy.path takes a repo id or a local directory and reads config.json from the root only — it has no subfolder syntax, which is why these are branches rather than a checkpoints/ folder.

Only the weights and the pre/post-processors are here. Optimizer state was not uploaded, so this repo serves inference, not resumption.

The camera rename is not optional

The base checkpoint names its three views image, image2 and image3, and make_policy does not overwrite them with the dataset's names. Training and rollout both need the same map, or they fail before the first step:

--rename_map='{"observation.images.follower_d455f": "observation.images.image", "observation.images.left_wrist": "observation.images.image2", "observation.images.right_wrist": "observation.images.image3"}'

Order matters: only the first view is concatenated with the language embeddings, so the chest camera belongs in the image slot. On rollout the flag must be passed again — the saved rename step is overwritten by whatever the CLI supplies, and the name check runs after the arms have already travelled to their home pose.

RTC inference is not supported by this policy; use --inference.type=sync.

Checkpoints

Checkpoint Epochs Train loss Revision to pass
003500 0.84 ≈0.043 --policy.pretrained_revision=003500
007000 1.68 0.022 --policy.pretrained_revision=007000
010500 2.51 ≈0.013 --policy.pretrained_revision=010500
014000 3.35 0.011 --policy.pretrained_revision=014000
017500 4.19 0.010 --policy.pretrained_revision=017500
020000 4.79 0.010 default branch, no revision needed

Losses marked ≈ are read from the nearest logged step, since logging ran every 200 steps and the checkpoints do not land on those boundaries.

Training

Base model lerobot/xvla-base
Policy type xvla, action_mode=auto, bf16
Dataset leapshared/Incline_new_20260902_203009 — 60 episodes, 66,823 frames, 30 fps, bi_openarm_follower
Cameras follower_d455f, left_wrist, right_wrist, renamed as above
State / action 16 dimensions, padded to the model's 20
Chunking chunk_size=32, n_action_steps=32
Trained modules vision encoder, language encoder, policy transformer and soft prompts — nothing frozen
Optimizer xvla-adamw, lr 1e-4, weight decay 1e-4, grad clip 10.0
Schedule cosine decay, 500 warmup steps, 20,000 decay steps
Batch size 16
Image transforms off

Measured on one 32 GB card: 24.77 GiB resident, 3.13 step/s, 1 hour 47 minutes end to end. Final step logged loss:0.010 grdn:0.941.

Task

Place the four metal weights on the blue cart on the ramp.

Downloads last month
44
Safetensors
Model size
0.9B params
Tensor type
BF16
·
Video Preview
loading

Model tree for leapshared/Incline_new_60epi

Finetuned
(48)
this model

Dataset used to train leapshared/Incline_new_60epi