manipulationumiimitation-learningvladata-collectionmanipulationrobot-learning

UMI là gì? Cách thu data VLA cho robot mà không cần teleop

Hiểu được ý tưởng cốt lõi của Universal Manipulation Interface: tại sao tách data collection ra khỏi robot lại là bước đột phá giúp scale imitation learning cho manipulation.

Nguyễn Anh Tuấn25 tháng 5, 20268 phút đọcCập nhật: 6 thg 6, 2026
UMI là gì? Cách thu data VLA cho robot mà không cần teleop

UMI là gì? Cách thu data VLA cho robot mà không cần teleop

Nếu bạn muốn dạy robot cầm tay làm một việc gì đó — gấp vải, rót nước, lắp ráp linh kiện — bạn cần rất nhiều dữ liệu demo. Bài viết này giải thích tại sao đây là bài toán khó, và tại sao Universal Manipulation Interface (UMI) của Stanford lại là một trong những ý tưởng thú vị nhất để giải quyết nó.

Đây là bài đầu tiên trong series 7 bài về UMI + VLA. Sau khi đọc bài này, bạn sẽ hiểu được tại sao UMI ra đời, pipeline tổng thể hoạt động như thế nào, và những gì bạn cần chuẩn bị để bắt đầu.

Vấn đề: dạy robot làm task thực khó như thế nào?

Hãy tưởng tượng bạn muốn dạy robot cầm tay nhặt một chiếc cốc và đặt vào khay. Nghe đơn giản. Nhưng nếu bạn muốn robot làm được trong 20 vị trí khác nhau, với 10 loại cốc khác nhau, dưới 3 điều kiện ánh sáng khác nhau — bạn cần hàng trăm, thậm chí hàng nghìn demo thành công.

Có hai hướng tiếp cận truyền thống:

1. Lập trình tay (classical programming): Bạn viết code cho từng trường hợp. Giòn, chậm, không generalize sang vật thể mới.

2. Reinforcement Learning (RL): Robot tự học qua thử và sai. Cần hàng triệu lần thử, thường chỉ dùng được trong simulator, chuyển sang thực tế rất khó.

3. Imitation Learning (IL): Người làm demo, robot học theo. Nhanh hơn RL, dễ triển khai hơn. Nhưng vẫn có vấn đề lớn: ai demo và demo như thế nào?

Teleop truyền thống: tốt nhưng không scale được

Cách phổ biến nhất để thu demo imitation learning là teleop — người điều khiển robot từ xa qua joystick, haptic device, hoặc spacemouse. Bạn nhìn camera robot, điều khiển từng khớp, robot làm task, và dữ liệu được ghi lại.

Vấn đề là:

Mỗi demo = robot thật bị chiếm dụng hoàn toàn
1 robot + 1 người = ~1-3 demo/phút
100 demo = vài tiếng robot thật bị chiếm
Robot thật đắt tiền (20.000 - 100.000+ USD)
Robot thật dễ hỏng do va chạm khi teleop

Nếu bạn cần 500 demo cho 5 task khác nhau, với 3 robot khác nhau — bạn đang nhìn vào hàng tháng trời và rủi ro hỏng phần cứng rất thực tế.

Có một câu hỏi đơn giản: tại sao người làm demo lại phải ngồi sau một màn hình để điều khiển robot, thay vì trực tiếp dùng tay làm task đó?

Ý tưởng cốt lõi của UMI

Năm 2024, nhóm nghiên cứu của Chelsea Finn và Cheng Chi tại Stanford công bố Universal Manipulation Interface. Ý tưởng trung tâm:

Đừng điều khiển robot. Hãy cầm một gripper giả có camera, làm task trong đời thực, rồi chuyển demo đó sang robot.

Người vận hành cầm một handheld gripper (được in 3D, gắn camera GoPro và kẹp ngón tay). Họ đứng trước bàn làm việc và trực tiếp thực hiện task — nhặt vật, gấp vải, sắp xếp đồ vật. Camera ghi lại góc nhìn từ cổ tay. Hệ thống SLAM tính toán vị trí và hướng của gripper trong không gian 3D.

Người cầm gripper giả
    → Camera ghi nhìn từ cổ tay
    → GoPro + IMU cung cấp dữ liệu cho SLAM
    → SLAM tính ra trajectory 6DoF
    → Hệ thống kết hợp: pose + gripper width + camera stream
    → Chuyển sang định dạng replay buffer
    → Train policy (Diffusion Policy hoặc VLA)
    → Deploy lên robot thật

Kết quả: thu data nhanh gấp 5-10 lần, không cần robot thật trong giai đoạn collection, có thể thu data ở nhiều địa điểm khác nhau.

Tại sao cách này hoạt động?

Câu hỏi tự nhiên là: nếu người làm demo khác robot về hình học cổ tay, tại sao policy học từ demo của người lại hoạt động trên robot?

UMI giải quyết điều này bằng cách thiết kế handheld gripper có hình học giống gripper trên robot nhất có thể:

  • Khoảng cách từ camera đến fingertip giống nhau
  • Góc camera so với trục gripper giống nhau
  • Phạm vi mở/đóng của ngón tay giống nhau
  • Cách cầm của người được thiết kế để wrist pose khi demo xấp xỉ wrist pose khi robot thực thi

Đây là sự khác biệt quan trọng so với những hướng dẫn "dùng bất kỳ gripper nào": mỗi quyết định thiết kế trong UMI đều hướng đến giảm observation gapgiảm embodiment gap giữa demo và deployment.

Tổng quan pipeline: từ gripper đến robot

Để hiểu toàn bộ series này, hãy nhìn vào big picture trước:

[Part 2] In và lắp gripper
          ↓
[Part 3] Thu demo + chạy SLAM pipeline
          ↓ (scripts_slam_pipeline/00-07)
          ↓ replay_buffer.zarr.zip
[Part 4] Train Diffusion Policy
          ↓ (train.py + eval_real_umi.py)
          ↓ policy checkpoint
[Part 5] Scale lên hai tay (bimanual)
          ↓ (demo_real_bimanual_robots.py)
[Part 6] Upgrade lên D405 (tùy chọn)
[Part 7] Whole-body: UMI + mocap/VR

Mỗi bước có đầu vào và đầu ra rõ ràng. Bạn hoàn toàn có thể dừng ở Part 4 và đã có một working manipulation policy.

Bạn cần gì để bắt đầu?

Hardware cần thiết (toàn series):

Thứ Chi phí ước tính Ghi chú
Máy in 3D Đã có / thuê FDM, PETG hoặc PLA+ là đủ
GoPro (Hero 7+ hoặc Hero 10/11) ~150-400 USD Bản gốc UMI dùng GoPro fisheye
Filament PETG + TPU ~30-50 USD Cho thân gripper + soft fingers
Ốc vít, spring ~10-20 USD M2/M3
Robot arm có SDK (Franka, UR5, v.v.) Đã có Để deploy policy
GPU cho training Đã có / cloud Tối thiểu 12 GB VRAM

Bạn không cần humanoid hay whole-body robot để bắt đầu. Các bước 1-5 chỉ cần một robot arm đơn giản hoặc bimanual arms.

Software:

  • Ubuntu 20.04 / 22.04
  • Python 3.10
  • CUDA 11.8+ (cho training)
  • Git, conda

Kiến thức cần có:

  • Python cơ bản
  • Linux terminal cơ bản (cd, ls, chmod, conda activate)
  • Hiểu khái niệm cơ bản về neural network (không cần sâu)

Bạn không cần biết ROS, SLAM chi tiết, hay kinh nghiệm với robot trước để bắt đầu series này.

Cái bẫy thường gặp khi tiếp cận UMI lần đầu

Có một số hiểu lầm rất phổ biến mà bạn nên tránh ngay từ đầu:

1. "UMI = thay GoPro bằng RealSense là xong"

Không. GoPro trong UMI không chỉ là camera — nó là nguồn dữ liệu cho SLAM (IMU + fisheye 155 độ). RealSense D405 thiếu IMU của GoPro và có FOV hẹp hơn nhiều. Part 6 sẽ giải thích khi nào nên và không nên upgrade sang D405.

2. "Cứ thu thật nhiều demo là policy sẽ tốt"

Chất lượng quan trọng hơn số lượng. 50 demo sạch, đa dạng tốt hơn 200 demo lặp đi lặp lại cùng một kiểu.

3. "Train VLA lớn ngay từ đầu để có kết quả tốt hơn"

Sai. Luôn train Diffusion Policy baseline nhỏ trước. Nếu baseline không học được, VLA lớn cũng không giúp được — vấn đề nằm ở data, không phải model size.

4. "D405 cho depth là magic bullet cho tất cả vấn đề"

Depth hữu ích cho contact estimation và object segmentation. Nhưng nó không thay thế được calibration tốt, data quality, hay policy architecture phù hợp.

Lộ trình 7 bài trong series này

Bài Tiêu đề Level Output
1 UMI là gì? (bài này) Beginner Hiểu concept
2 Lắp gripper đầu tiên: in 3D và assembly Beginner 1 UMI unit hoạt động
3 Thu demo và chạy SLAM pipeline Intermediate replay_buffer.zarr.zip
4 Train Diffusion Policy và test trên robot Intermediate Working policy
5 Lên hai tay: UMI bimanual pipeline Intermediate Bimanual policy
6 Upgrade lên D405: khi nào và cách nào Advanced D405 setup
7 Whole-body: UMI + mocap/VR cho toàn thân Advanced Architecture plan

Nếu bạn chỉ có robot arm đơn giản và muốn kết quả nhanh nhất: đọc bài 1-4, bỏ qua 5-7 cho đến khi cần.

Nguồn tham khảo


Bài viết liên quan

NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Khám phá VnRobo

Bài viết liên quan

Upgrade lên D405: khi nào nên thay GoPro trong UMI và cách làm
manipulation

Upgrade lên D405: khi nào nên thay GoPro trong UMI và cách làm

6/6/20267 phút đọc
NT
Train Diffusion Policy đầu tiên với UMI và test trên robot arm
manipulation

Train Diffusion Policy đầu tiên với UMI và test trên robot arm

3/6/20266 phút đọc
NT
Thu demo đơn tay với UMI và chạy SLAM pipeline chính thức
manipulation

Thu demo đơn tay với UMI và chạy SLAM pipeline chính thức

31/5/20268 phút đọc
NT