Xiaomi-Robotics-0
Collection
6 items • Updated • 13
How to use XiaomiRobotics/Xiaomi-Robotics-0-SimplerEnv-WidowX with Transformers:
# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("XiaomiRobotics/Xiaomi-Robotics-0-SimplerEnv-WidowX", trust_remote_code=True, dtype="auto")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.
transformers ecosystem and optimized for consumer-grade GPUs.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}")
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}
}