VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam
VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
  1. Trang chủ
  2. Blog
  3. FM-VLA: Force Memory Dạy VLA Làm Contact-Rich >80%
manipulationvlaforce-sensorcontact-manipulationmemoryvaepi0agibothumanoidnon-markovian

FM-VLA: Force Memory Dạy VLA Làm Contact-Rich >80%

FM-VLA dùng Variational Autoencoder nén lịch sử cảm biến lực thành 8 memory token, giúp robot nhấn nút đúng số lần, lau chùi, tìm vật che khuất — đạt 83.3% success rate với overhead chỉ 3.3ms.

Nguyễn Anh Tuấn5 tháng 8, 202611 phút đọc
FM-VLA: Force Memory Dạy VLA Làm Contact-Rich >80%

Hãy tưởng tượng bạn yêu cầu robot nhấn nút ba lần. Robot nhìn vào nút — trông hoàn toàn giống nhau sau mỗi lần nhấn. Không có gì thay đổi trước mắt. Vậy robot làm sao biết mình đã nhấn một lần, hai lần, hay ba lần rồi?

Đây chính là bài toán non-Markovian trong robotics: những nhiệm vụ mà trạng thái hiện tại của hình ảnh không đủ để quyết định bước tiếp theo. Và đây là điểm yếu chết người của hầu hết các VLA (Vision-Language-Action) model hiện tại.

FM-VLA — từ nhóm nghiên cứu Tsinghua University, Microsoft Research, Fudan University và USTC — giải quyết bài toán này bằng một hướng tiếp cận thanh lịch: thay vì nhìn lại ảnh quá khứ (tốn kém và mù trước những sự kiện không nhìn thấy được), hãy cảm nhận lịch sử thông qua cảm biến lực.

Paper arXiv: FM-VLA: Force-based Memory for Vision-Language-Action Models in Contact-Rich Manipulation — Li et al., 2026.

Vấn đề: VLA Không Nhớ Được Gì Đã Xảy Ra

Các VLA hiện đại như π₀ (pi-zero) hoạt động theo kiểu Markovian — tức là mỗi quyết định chỉ dựa vào frame hiện tại. Điều này ổn với hầu hết nhiệm vụ thông thường: nhặt đồ vật, đặt vào thùng, sắp xếp khay. Nhưng khi nhiệm vụ đòi hỏi đếm số lần tiếp xúc hoặc theo dõi chuỗi sự kiện, robot hoàn toàn mù.

Một số nhóm đã thử giải quyết bằng visual memory — giữ lại ảnh từ các frame trước và đưa vào model. Vấn đề:

  • Chi phí tính toán khủng — mỗi frame ảnh thêm 39–129ms vào inference latency.
  • Mù trước sự kiện không nhìn thấy được — nhấn nút nhiều lần tạo ra thay đổi hình ảnh gần như bằng không. Máy ảnh không thể phân biệt "đã nhấn 1 lần" với "đã nhấn 3 lần" nếu nút trở về vị trí ban đầu.

FM-VLA đặt câu hỏi ngược lại: Điều gì luôn thay đổi khi có tiếp xúc vật lý, dù mắt không nhìn thấy? Câu trả lời: cảm biến lực (force/torque sensor).

Khuyến nghị công cụ

Stack train/deploy cho VLA

Train trên cloud/workstation, deploy bản tối ưu xuống Jetson hoặc robot computer.

Cloud GPU for VLA / policy training Dùng cho imitation learning, diffusion policy, RL và fine-tuning model robotics. Xem cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Máy deploy edge cho perception, logging và inference đã tối ưu. Xem Jetson → Hugging Face / robotics dataset hosting Lưu dataset, checkpoint và model card để workflow LeRobot/VLA dễ chia sẻ hơn. Xem platform →

Kiến Trúc FM-VLA: Ba Tầng Cộng Hưởng

Kiến trúc tổng quan của FM-VLA — nguồn: FM-VLA Project Page
Kiến trúc tổng quan của FM-VLA — nguồn: FM-VLA Project Page

FM-VLA xây dựng trên nền π₀.₅ — bao gồm PaliGemma VLM làm backbone ngôn ngữ-thị giác và một action expert dùng flow-matching. Điểm thêm vào là hai luồng memory bổ sung.

Tầng 1: Thu Thập Lịch Sử Lực

Robot AgiBot G1 (humanoid bimanual 2×7-DoF) được trang bị hai cảm biến 6-axis force/torque ở cổ tay phải, đo ở 30Hz. Mỗi frame cho ra 6 giá trị: lực theo 3 trục (Fx, Fy, Fz) và moment theo 3 trục (Mx, My, Mz).

Trước khi đưa vào model, dữ liệu được lọc bằng Exponential Moving Average (EMA) với hệ số α=0.3 để loại bỏ nhiễu cơ học. Kết quả là một chuỗi thời gian sạch phản ánh mọi sự kiện tiếp xúc đã xảy ra trong tập.

Tầng 2: Force Memory Encoder (VAE)

Đây là trái tim của FM-VLA — một Perceiver-IO Variational Autoencoder được huấn luyện riêng để nén chuỗi lực thành biểu diễn compact.

Kiến trúc VAE:

  • Input: Chuỗi wrench frames được chuẩn hóa quantile → chiếu lên 384 chiều + Fourier positional encoding
  • Encoder: 2 cross-attention blocks + 10 self-attention blocks với K=8 learnable latent tokens
  • Output: 8 tokens, mỗi token 96 chiều, được compress xuống kích thước hidden width của action expert

Điểm quan trọng: VAE này được đông cứng (frozen) sau khi pretrain. Chỉ có các projector layers mới được fine-tune cùng VLA. Điều này giúp tránh catastrophic forgetting.

Tại sao K=8? Nhóm nghiên cứu thử nghiệm nhiều giá trị K. K=4 tạo ra bottleneck thông tin, không đủ để mã hóa toàn bộ episode. K=16+ vượt quá phân phối dữ liệu pretraining. K=8 là điểm cân bằng tối ưu.

Tầng 3: State History Projector

Bên cạnh force memory, FM-VLA còn thêm một luồng ngắn hạn: chiếu 10 frame joint-state gần nhất (tương đương 0.9 giây tại 30Hz) thành 1 token duy nhất qua một linear layer khởi tạo zero.

Token này cung cấp nhận thức không gian ngắn hạn trước khi tiếp xúc — robot biết mình đang ở đâu trong không gian trước khi đọc lịch sử lực.

Tích Hợp vào Action Expert

Sequence đầu vào của action expert được mở rộng thành:

[noisy actions (30 tokens) || force memory (8 tokens) || state window (1 token)]

Tổng cộng chỉ thêm 9 token, giải thích tại sao overhead chỉ là +3.3ms (tổng 64ms, so với baseline 60.7ms).

Training Pipeline: Hai Giai Đoạn

Giai Đoạn 1: Pretrain Force-VAE

Objective: Masked ELBO trên wrench reconstruction
Steps: 100k steps
Batch size: 512
KL weight: β = 1×10⁻³
Free-bits: λ = 0.5 nats (mỗi chiều latent)
Task sampling: Inverse-frequency (tránh overfitting task dễ)

Giai đoạn này hoàn toàn không cần label robot action — chỉ cần chuỗi lực từ các episode teleoperation. VAE học cách tóm lược mọi "sự kiện tiếp xúc" thành dạng compact có thể tái tạo ngược lại.

Một trick quan trọng: Randomized noise padding. Trong training, đoạn đầu của chuỗi lực được pad bằng Gaussian noise ngẫu nhiên (tối đa 10 giây). Điều này ngăn model "đoán mò" thời gian dựa trên độ dài chuỗi — buộc model phải học nội dung tiếp xúc, không phải thời gian tuyệt đối.

Giai Đoạn 2: Fine-tune VLA

Base: π₀.₅ (PaliGemma VLM + flow-matching action expert)
Steps: 50k steps
Batch size: 32
Peak LR: 5×10⁻⁵
Warmup: 1k steps
Hardware: 8×A100 (40GB) GPU

Trong giai đoạn này:

  • VAE encoder đóng băng hoàn toàn (eval mode)
  • Chỉ posterior mean μf được dùng (không có reparameterization noise)
  • VLM, action expert, state projector, force projector đều được train cùng nhau

Dataset thu thập:

Task Số Demo
Tìm khối dưới cốc (Cups) 200
Nhấn nút N lần (Buttons) 350
Lau chén N vòng (Wipe) 200

Tất cả demo được thu thập qua giao diện VR teleoperation trên robot AgiBot G1.

Kết Quả Đánh Giá: 83.3% vs 27.8%

Tín hiệu lực cho 3 tasks — nguồn: FM-VLA Project Page
Tín hiệu lực cho 3 tasks — nguồn: FM-VLA Project Page

Đây là kết quả cốt lõi, so sánh FM-VLA với các baseline:

Phương pháp Cups Buttons Wipe Trung bình
π₀.₅ (không memory) 72.2% 11.1% 0.0% 27.8%
TA-VLA (text summary) 50.0% 11.1% 5.6% 22.2%
π-MEM (visual memory) 77.8% 33.3% 50.0% 53.7%
FM-VLA (ours) 100.0% 72.2% 77.8% 83.3%

Một vài điểm đáng chú ý:

Task Cups (tìm khối dưới cốc): FM-VLA đạt 100% — robot biết chính xác cốc nào đã được nhấc lên (qua spike lực) và dừng tìm kiếm ngay. Baseline visual không thể phân biệt cốc nào đã được kiểm tra.

Task Buttons (nhấn nút đúng N lần): Đây là task khó nhất. π₀.₅ thất bại thảm hại (11.1%) vì không đếm được. FM-VLA đạt 72.2% — mỗi lần nhấn tạo ra một spike lực đặc trưng trong memory, cho phép model đếm chính xác.

Task Wipe (lau chén N vòng): π₀.₅ hoàn toàn thất bại (0%) — không có memory, robot không biết đã lau mấy vòng. FM-VLA đạt 77.8% nhờ tích lũy pattern lực trong memory.

Inference Latency

Phương pháp Overhead
π₀.₅ base 0ms
TA-VLA +3.1ms
π-MEM (1 frame) +39.1ms
π-MEM (4 frames) +129.3ms
FM-VLA +3.3ms

FM-VLA đạt overhead tương đương TA-VLA (tóm tắt text) nhưng performance vượt trội hơn nhiều. Với RTX 4090 ở inference, tổng latency chỉ là 64ms — hoàn toàn thực tế cho real-time control.

Ablation Study: Tại Sao VAE Thắng GRU và Q-Former?

Nhóm nghiên cứu thử nhiều encoder thay thế cho force history:

Encoder Hiệu suất trung bình
GRU 33.3%
Q-Former 57.4%
VAE (frozen, ours) 83.3%

GRU thất bại vì: hidden state thường collapse về 0 khi không có tiếp xúc, mất thông tin về khi nào tiếp xúc xảy ra trong episode dài.

Q-Former khá hơn nhưng vẫn thiếu: không có inductive bias cho time series reconstruction, khó giữ lại event timing chính xác.

VAE thắng vì: được pretrained chuyên biệt để tái tạo chuỗi lực — có inductive bias tốt, latent space có cấu trúc phản ánh contact events, và việc freeze encoder ngăn chặn catastrophic forgetting khi fine-tune.

Ablation theo modality:

Cấu hình Hiệu suất
Force-only 25.9%
State-only 40.7%
Force + State (ours) 83.3%

Force-only thất bại ở các bước trước tiếp xúc (robot không biết đang ở đâu trong không gian). State-only thất bại ở đếm số lần tiếp xúc. Kết hợp cả hai tạo ra synergy: state cho spatial awareness ngắn hạn, force cho event counting dài hạn.

Hiểu Sâu Hơn: Tại Sao Force Memory Hoạt Động Ở Đây?

Cảm biến lực là một side channel không bị ảnh hưởng bởi tính mơ hồ thị giác. Khi robot nhấn nút, ngay cả khi nút trở về vị trí ban đầu (không thể phân biệt qua camera), spike lực vẫn được ghi lại trong memory. Mỗi sự kiện tiếp xúc tạo ra một "dấu ấn" trong không gian latent của VAE.

Quan trọng hơn: cảm biến lực phản ứng tức thì — không có độ trễ như camera (blur, occlusion, lighting change). Trong môi trường công nghiệp hay nhà máy nơi điều kiện ánh sáng không kiểm soát được, đây là lợi thế lớn.

Hạn Chế và Hướng Phát Triển

FM-VLA trong phiên bản hiện tại có một số giới hạn cần nhận thức:

  1. K=8 token cố định có thể không đủ cho episode rất dài (>30 giây contact-rich). Nhóm đề xuất tăng dữ liệu pretraining với trajectory dài hơn.

  2. Chỉ dùng cảm biến cổ tay phải — bimanual tasks phức tạp hơn chưa được khai thác đầy đủ.

  3. Code chưa được release — tính đến tháng 8/2026, repo GitHub qft-333/FM-VLA đang trong trạng thái "Code will be released soon". Theo dõi repo để cập nhật.

  4. Hardware phụ thuộc — cần cảm biến 6-axis F/T ở cổ tay. Không phải robot nào cũng có.

Cách Áp Dụng FM-VLA Khi Code Được Release

Dựa vào kiến trúc đã công bố, đây là workflow bạn sẽ cần chuẩn bị:

Bước 1: Thu thập dữ liệu teleoperation

# Mỗi task cần 200-350 demo với F/T sensor logging
# Robot cần: 6-axis F/T sensor ở cổ tay, 30Hz sampling
# Format dữ liệu: (image, language, joint_state, wrench, action) tuples

Bước 2: Pretrain Force-VAE

# Huấn luyện VAE chỉ trên wrench sequences
# Không cần action labels — chỉ cần chuỗi lực
# 100k steps, batch 512, trên 8xA100 hoặc ít hơn với gradient accumulation

python train_force_vae.py \
  --data_dir ./data/wrench_sequences \
  --latent_tokens 8 \
  --steps 100000 \
  --batch_size 512

Bước 3: Fine-tune VLA với Force Memory

# Load pretrained VAE (frozen)
# Fine-tune π₀.₅ + state projector + force projector
python train_fm_vla.py \
  --base_model pi05 \
  --force_vae_path ./checkpoints/force_vae.pt \
  --data_dir ./data/task_demos \
  --steps 50000 \
  --lr 5e-5

Bước 4: Inference trên robot

# Runtime: VAE encode force history → tokens
# Append tokens vào action expert sequence
# Total latency: ~64ms trên RTX 4090
robot.deploy(
  model="fm_vla",
  force_sensor=wrist_ft_sensor,
  language_instruction="Nhấn nút 3 lần"
)

Tại Sao Đây Là Bước Tiến Lớn?

Hầu hết VLA research hiện tại tập trung vào generalization — làm sao để robot làm được nhiều task khác nhau. FM-VLA giải quyết một vấn đề khác: temporal reasoning — làm sao để robot theo dõi chuỗi sự kiện trong thời gian.

Đây là một bước thiết yếu để robotics tiến vào môi trường thực tế:

  • Lắp ráp sản phẩm (siết ốc đúng số vòng)
  • Chăm sóc người (lau, xoa bóp đúng số lần)
  • Kiểm tra chất lượng (nhấn test button theo quy trình)

Force-based memory còn có một ưu điểm ẩn: privacy-friendly. Trong môi trường nhà ở hay bệnh viện, camera có thể bị hạn chế. Cảm biến lực không ghi hình người — chỉ ghi chuỗi số vô nghĩa với con người nhưng đầy ý nghĩa với robot.

Nếu bạn đang xây dựng pipeline VLA cho contact-rich tasks, FM-VLA cung cấp một blueprint rõ ràng: pretrain một encoder chuyên biệt cho sensor modality của bạn, freeze nó, rồi inject vào VLA backbone đã có. Pattern này tổng quát hóa tốt sang các sensor khác — tactile, audio, temperature.

Bài Viết Liên Quan

  • Force Control trong Robot Manipulation — Từ PD đến Impedance
  • Contact-Rich Manipulation: Curriculum RL cho Task Phức Tạp
  • UniTac-VLA: Tactile Chain-of-Thought cho Contact Manipulation
NT

Nguyễn Anh Tuấn

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

Khám phá VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions

Bài viết liên quan

NEWTutorial
FM-VLA: Force Memory Token cho VLA Contact-Rich Manipulation
vlaforce-sensingmanipulation
wholebody-vla

FM-VLA: Force Memory Token cho VLA Contact-Rich Manipulation

FM-VLA dùng VAE nén lịch sử lực thành Force Memory Tokens, giúp VLA vượt giới hạn Markovian — đếm contact, nhớ tiến trình, đạt 83.3% trên robot AgiBot G1.

31/7/202614 phút đọc
NT
Nghiên cứu
UniTacVLA: Xúc Giác Chain-of-Thought cho Robot Manipulation
vlatactilechain-of-thought
manipulation

UniTacVLA: Xúc Giác Chain-of-Thought cho Robot Manipulation

UniTacVLA tích hợp tactile chain-of-thought và coarse-to-fine prediction vào VLA để xử lý thao tác tiếp xúc phức tạp — ECCV 2026 với code open-source.

6/7/202611 phút đọc
NT
Tutorial
TORL-VLA: Fine-tune VLA với Cảm Biến Xúc Giác và Online RL
vlatactileonline-rl
manipulation

TORL-VLA: Fine-tune VLA với Cảm Biến Xúc Giác và Online RL

Hướng dẫn TORL-VLA — framework kết hợp cảm biến xúc giác (tactile) và Online RL để fine-tune VLA cho thao tác tiếp xúc chính xác cao: latch, trứng, cốc cà phê.

6/7/202613 phút đọc
NT
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam