LingBot-VLA Pick-and-Place Toys

This is a post-trained LingBot-VLA 1.0 checkpoint for the AlvinAi/pick_and_place_toys LeRobot v3.0 dataset.

Training

  • Base model: robbyant/lingbot-vla-4b
  • Dataset: 80 episodes, 70,588 frames, 30 FPS
  • Robot: SO follower, 5 arm joints + 1 gripper
  • Cameras: front and side
  • Action horizon: 50
  • Normalization: mean/std
  • Optimizer steps: 10,000
  • Global batch size: 16
  • Learning rate: 2e-5, constant
  • Hardware: 4 x NVIDIA GH200
  • Training time: 4:24:44

The five arm actions were trained as deltas relative to the current arm state. The gripper action remained absolute.

No held-out validation or real-robot success-rate evaluation has been performed yet. The final training loss should not be interpreted as a deployment success rate.

Exact embodiment mapping

The raw LeRobot observation.state and action vectors both have six dimensions in this exact order:

Raw index Dataset name Unified LingBot-VLA feature Training action representation
0 shoulder_pan.pos arm.position[0] delta
1 shoulder_lift.pos arm.position[1] delta
2 elbow_flex.pos arm.position[2] delta
3 wrist_flex.pos arm.position[3] delta
4 wrist_roll.pos arm.position[4] delta
5 gripper.pos effector.position[0] absolute

For every predicted horizon step t, the model's arm training target was:

action.arm.position[t] = raw_action[t, 0:5] - observation.state[0:5]

The gripper target was:

action.effector.position[t] = raw_action[t, 5:6]

During deployment, LingBot-VLA's FeatureTransform.unapply() adds the current arm state back to the predicted arm deltas. The returned raw action therefore has shape [horizon, 6] and is again in the dataset's original absolute joint/gripper convention.

Camera mapping

Raw LeRobot key Raw shape Unified LingBot-VLA key Model camera order
observation.images.front 480 x 640 x 3 observation.images.camera_top 0
observation.images.side 480 x 640 x 3 observation.images.camera_side 1

Both cameras are RGB. At runtime they are resized and padded to the model's 224 x 224 visual input.

Padding and masks

The five physical arm dimensions are placed in an arm.position slot of size 6, so that slot has one padding dimension. The one gripper dimension is placed in an effector.position slot of size 1. This seven-dimensional grouped representation is then padded to max_state_dim=75 and max_action_dim=75; joint_mask ensures that only the six physical dimensions contribute as real joints. Runtime state and returned action vectors remain six-dimensional.

Runtime observation keys

After calling reset("pick_and_place_toys"), the policy server expects an observation containing at least:

observation = {
    "observation.state": state_float32,          # shape (6,)
    "observation.images.front": front_rgb_uint8, # shape (H, W, 3)
    "observation.images.side": side_rgb_uint8,   # shape (H, W, 3)
    "task": "pick and place toys",
}

The complete machine-readable mapping is included as robot_config.yaml. Do not change the joint order, camera mapping, delta-action rule, or normalization statistics without retraining or explicitly converting the inputs and outputs.

Additional files

  • norm_stats.json: normalization statistics for this embodiment
  • robot_config.yaml: LingBot-VLA feature mapping
  • lingbotvla_cli.yaml: complete training configuration and provenance

The original training configuration contains local absolute paths as provenance. Use the explicit paths shown below when deploying elsewhere.

Download

hf download Aikwed/lingbot-vla-pick-and-place-toys \
  --local-dir /path/to/lingbot-vla-pick-and-place-toys

Deployment

Use the official Robbyant/lingbot-vla codebase. Copy the included robot mapping into that checkout:

cp /path/to/lingbot-vla-pick-and-place-toys/robot_config.yaml \
  configs/robot_configs/pick_and_place_toys.yaml

export QWEN25_PATH=/path/to/Qwen2.5-VL-3B-Instruct

python -m deploy.lingbot_vla_policy \
  --model_path /path/to/lingbot-vla-pick-and-place-toys \
  --norm_path /path/to/lingbot-vla-pick-and-place-toys/norm_stats.json \
  --use_length 25

License and attribution

This checkpoint is derived from LingBot-VLA. The upstream project and checkpoint are distributed under Apache-2.0. See LICENSE and retain the upstream attribution when redistributing.

Downloads last month
21
Safetensors
Model size
4B params
Tensor type
F32
·
Video Preview
loading

Model tree for Aikwed/lingbot-vla-pick-and-place-toys

Finetuned
(1)
this model

Dataset used to train Aikwed/lingbot-vla-pick-and-place-toys