Xiaomi-Robotics-0

Xiaomi-Robotics-0 is an advanced vision-language-action (VLA) model with 4.7B parameters, specifically engineered for high-performance robotic reasoning and seamless real-time execution. It is pre-trained on large-scale cross-embodiment robot trajectories and vision-language data, enabling generalizable action generation across complex robotic tasks.

Key Features

  • Strong Generalization: Pre-trained on diverse cross-embodiment trajectories to handle complex, unseen tasks.
  • Real-Time Ready: Optimized with asynchronous execution to minimize inference latency during real-robot rollouts.
  • Flexible Deployment: Fully compatible with the Hugging Face transformers ecosystem and optimized for consumer-grade GPUs.

Sample Usage

The model can be loaded and run using the transformers library. As the model uses custom code, trust_remote_code=True is required.

import torch
from transformers import AutoModel, AutoProcessor

# 1. Load model and processor 
model_path = "XiaomiRobotics/Xiaomi-Robotics-0"
model = AutoModel.from_pretrained(
    model_path, 
    trust_remote_code=True, 
    attn_implementation="flash_attention_2", 
    dtype=torch.bfloat16
).cuda().eval()
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True, use_fast=False)


# 2. Construct the prompt with multi-view inputs
language_instruction = "Pick up the red block."
instruction = (
    f"<|im_start|>user
The following observations are captured from multiple views.
"
    f"# Base View
<|vision_start|><|image_pad|><|vision_end|>
"
    f"# Left-Wrist View
<|vision_start|><|image_pad|><|vision_end|>
"
    f"Generate robot actions for the task:
{language_instruction} /no_cot<|im_end|>
"
    f"<|im_start|>assistant
<cot></cot><|im_end|>
"
)

# 3. Prepare inputs
# Assuming `image_base`, `image_wrist` (PIL images), and `proprio_state` (numpy array) are already loaded
inputs = processor(
    text=[instruction],
    images=[image_base, image_wrist], # [PIL.Image, PIL.Image]
    videos=None,
    padding=True,
    return_tensors="pt",
).to(model.device)

# Add proprioceptive state and action mask
robot_type = "libero" # Choose based on dataset/robot type
inputs["state"] = torch.from_numpy(proprio_state).to(model.device, model.dtype).view(1, 1, -1)
inputs["action_mask"] = processor.get_action_mask(robot_type).to(model.device, model.dtype)

# 4. Generate action 
with torch.no_grad():
    outputs = model(**inputs)
    
# Decode raw outputs into actionable control commands
action_chunk = processor.decode_action(outputs.actions, robot_type=robot_type)
print(f"Generated Action Chunk Shape: {action_chunk.shape}")

Citation

If you find this project useful, please consider citing:

@misc{robotics2026xiaomi,
  title        = {Xiaomi-Robotics-0: An Open-Sourced Vision-Language-Action Model with Real-Time Execution},
  author       = {Xiaomi Robotics},
  howpublished={\url{https://xiaomi-robotics-0.github.io}},
  year         = {2026},
  note={Project Website}
}
Downloads last month
64
Safetensors
Model size
5B params
Tensor type
BF16
·
Video Preview
loading

Collection including XiaomiRobotics/Xiaomi-Robotics-0-SimplerEnv-WidowX

Paper for XiaomiRobotics/Xiaomi-Robotics-0-SimplerEnv-WidowX