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. APT-RL: HOUND 6 m/s Với Multi-Skill Locomotion
locomotionlocomotionquadrupedreinforcement-learningparkoursim2realkaist

APT-RL: HOUND 6 m/s Với Multi-Skill Locomotion

KAIST HOUND đạt 6 m/s qua cầu thang 3 bậc nhờ APT-RL — framework 3 giai đoạn: Transformer VAE, PPO curriculum learning, và perceptual distillation. Vừa lên bìa Science Robotics 2026.

Nguyễn Anh Tuấn3 tháng 9, 202611 phút đọc
APT-RL: HOUND 6 m/s Với Multi-Skill Locomotion

Bao giờ bạn tự hỏi tại sao robot bốn chân hay bị "đơ" khi phải chuyển từ leo cầu thang sang nhảy qua vật cản? Câu trả lời nằm ở gait transition — việc chuyển đổi liền mạch giữa các kiểu di chuyển vẫn là bài toán chưa được giải triệt để. Cho đến khi APT-RL xuất hiện.

APT-RL (Action Pretrained Transformer-based Reinforcement Learning) là framework mới nhất từ nhóm nghiên cứu KAIST, vừa được công bố trên Science Robotics — tạp chí robotics uy tín nhất thế giới — số tháng 7 năm 2026. Robot KAIST HOUND trang bị APT-RL đã đạt tốc độ đỉnh 6 m/s khi nhảy xuống cầu thang ba bậc, và hoàn thành quãng đường 1,1 km trong khuôn viên đại học với nhiều loại địa hình phức tạp mà không có bất kỳ hệ thống định vị ngoài nào.

KAIST HOUND trên bìa Science Robotics số tháng 7/2026 — nguồn: skillquadsr.github.io

Vấn Đề Cốt Lõi: Tại Sao Gait Transition Khó Đến Vậy?

Trong locomotion robotics, "gait" là kiểu di chuyển — trot (chạy chéo chân), bound (nhảy về phía trước), gallop (phi nước đại). Mỗi gait phù hợp với tốc độ và địa hình khác nhau:

Gait Tốc độ Địa hình phù hợp Đặc điểm
Trot 1–3 m/s Bằng phẳng đến nhấp nhô Ổn định, tiết kiệm năng lượng
Bound 3–6 m/s Vật cản, cầu thang Nhanh, cần timing chính xác
Dynamic jump Đột biến Độ cao, khoảng cách lớn Agile nhất, rủi ro cao nhất

Vấn đề là mỗi gait có "ngữ pháp" riêng — pattern torque, nhịp điệu, chiến lược cân bằng hoàn toàn khác nhau. Huấn luyện một policy duy nhất biết tất cả gait và biết khi nào cần chuyển đổi là cực kỳ khó. Các phương pháp truyền thống thường rơi vào một trong ba bẫy:

  1. Train riêng từng gait → Cần cơ chế switching phức tạp bên ngoài, thường không mượt, dễ mất ổn định tại điểm chuyển tiếp
  2. Train một policy tổng quát → Thường "hòa" về hiệu suất, không tận dụng được ưu điểm đặc trưng của từng gait
  3. Imitation learning từ motion capture → Tốn chi phí thu thập data, khó scale lên nhiều địa hình

APT-RL giải quyết bằng cách học "ngữ pháp chung" của mọi gait trước, rồi mới dạy cách dùng — giống như bạn học ngữ âm tiếng Nhật trước khi học từ vựng, thay vì học thuộc lòng từng từ riêng lẻ.

APT-RL: Ba Giai Đoạn Học

APT-RL chia quá trình học thành ba giai đoạn tuần tự. Mỗi giai đoạn xây dựng trên kết quả của giai đoạn trước — không thể skip hay đảo thứ tự.

Giai Đoạn 1: Representation Learning — Học "Ngữ Pháp" Của Gait

Mục tiêu: Tìm không gian biểu diễn (latent space) chung cho tất cả gait, dùng data từ trajectory optimization thay vì motion capture tốn kém.

Nhóm nghiên cứu dùng Trajectory Optimization trên mô hình 2D Single Rigid Body Dynamics (sagittal plane) để tạo 180.000 trajectories — 90.000 cho trot và 90.000 cho bound — tương đương 15,5 giờ chuyển động, được tính toán chỉ trong 8 phút. Đây là bí quyết đầu tiên: thay vì quay video robot thật, họ simulate động học đơn giản và dùng đó làm "giáo viên ảo".

Sau đó, một Transformer-based Variational Autoencoder (TVAE) được huấn luyện trên dataset này:

Input: 3 frames lịch sử proprioception (69-dim mỗi frame)
         ↓
   [Transformer Encoder — 4 layers, nhead=3]
         ↓
   Latent distribution (μ, σ) — 16-dim mỗi
         ↓ reparameterize (KL weight λ = 0.1)
   Latent vector z — 16-dim
         ↓
   Gait-Specific Decoders:
       ├── Trot Decoder  → 12-dim joint torques
       └── Bound Decoder → 12-dim joint torques

Điểm mấu chốt: Cả trot và bound đều được mã hóa vào cùng một latent space 16 chiều. Điều này có nghĩa là vector z nắm bắt được "ý định chuyển động" bất kể gait cụ thể là gì — giống như cách tiếng Việt và tiếng Anh đều dùng cùng một bộ não để diễn đạt ý nghĩa, chỉ khác "bộ giải mã" output.

APT-RL Architecture — kiến trúc TVAE và pipeline 3 giai đoạn
APT-RL Architecture — kiến trúc TVAE và pipeline 3 giai đoạn
Kiến trúc 3 giai đoạn của APT-RL — nguồn: paper Science Robotics 2026, arXiv:2607.13579

Giai Đoạn 2: Reinforcement Learning — Học Khi Nào Dùng Gait Nào

Với TVAE đã train xong và được freeze, giai đoạn RL huấn luyện một policy mới trong Isaac Gym bằng PPO.

Policy output — 29 chiều tổng cộng:

  • Latent action (16-dim): Vector z đưa vào decoder đã pretrain để sinh torque
  • Auxiliary action (12-dim): Tinh chỉnh thêm qua PD controller với k_p = 80, k_d = 2
  • Gait selection logit (1-dim): Sigmoid → 0 = trot, 1 = bound, cập nhật ở 2 Hz

Torque thực tế đưa vào motor được tính theo công thức:

τ_input = τ_dec + k_p·(q_default − q_t + 0.2·a_aux) − k_d·q̇_t

Hệ số a_scale = 0.2 giới hạn mức độ ảnh hưởng của auxiliary action để không làm "nhiễu" output của decoder pretrained.

Curriculum learning 7 loại địa hình tăng dần độ khó: flat, rough, stairs, hurdles, stepping stones, gaps, fallen branches. Command velocity range: x ∈ [-1, 7] m/s, y ∈ [-1, 1] m/s. KL regularization trong RL: 2.5×10⁻⁶ để giữ latent action trong vùng TVAE đã học.

Tại sao cần KL regularization trong RL chứ không chỉ trong TVAE training? Vì nếu policy RL tự do "phát minh" ra các giá trị z mới nằm ngoài distribution của TVAE, decoder sẽ sinh ra torque vô nghĩa — giống như bạn bắt decoder tiếng Anh đọc input tiếng Klingon.

Giai Đoạn 3: Perceptual Distillation — Học Nhìn Để Chạy Thật

Policy RL ở Phase 2 sử dụng privileged information — bản đồ địa hình ground truth từ simulator. Robot thật không có thứ đó. Để triển khai lên phần cứng, cần student policy chỉ dùng sensor onboard.

Student policy — sensor input:

  • Intel RealSense D435 depth camera (range 0.3–3.0m) → CNN encoder → 32-dim features
  • 2D LiDAR 40 Hz, 45 bins, range 0.6–5.0m, resolution 0.1m/bin
  • Proprioception: joint positions + velocities + IMU (đo được đến 10+ g acceleration)
  • GRU encoder tổng hợp tất cả thành perception embedding

Training bằng DAgger (Dataset Aggregation) — student học bắt chước teacher policy nhưng với input sensor thực tế, dần dần rollout trên policy của chính mình thay vì luôn copy teacher.

Một chi tiết nhỏ nhưng critical: nhóm KAIST thiết kế vibration absorber 3D-printed để gắn sensor, giảm rung động khi robot chạy tốc độ cao. Không có cái này, depth image sẽ bị blur nghiêm trọng ở 4–6 m/s.

APT-RL Training và Deployment Pipeline
APT-RL Training và Deployment Pipeline
Pipeline từ trajectory optimization → TVAE → RL → perceptual distillation → robot thật — nguồn: arXiv:2607.13579

Kết Quả: Con Số Thực Tế Trên Robot Thật

KAIST HOUND APT-RL — Agile multi-skill locomotion vượt địa hình phức tạp

Tốc độ đỉnh đo được:

  • 4,25 m/s khi leo bậc thang cao 60 cm — Froude number = 3,85
  • 6,0 m/s khi nhảy xuống cầu thang 3 bậc (0,3m cao, 0,58m sâu) — Froude number = 7,69

Froude number là chỉ số vô thứ nguyên: Fr = v² / (g·L) với L là chiều dài chân. Fr > 1 nghĩa là lực ly tâm vượt trọng lực — robot đang thực sự nhảy chứ không chỉ bước. Fr = 7,69 là mức agility chưa từng được báo cáo trên robot bốn chân không có cáp bảo hộ trong điều kiện ngoài trời thực.

Real-world navigation routes:

  • Urban route: 1,1 km trong khuôn viên KAIST với cầu thang nhiều kiểu, hurdle, mặt đất không bằng phẳng
  • Forest route: 0,34 km trong rừng với thân cây ngã, rễ cây, địa hình không có đường mòn

Trong cả hai route, không sử dụng GPS, motion capture, hay bất kỳ localization ngoài nào — chỉ camera depth + 2D LiDAR + IMU.

KAIST HOUND vượt địa hình thực tế — campus và rừng
KAIST HOUND vượt địa hình thực tế — campus và rừng
HOUND vượt cầu thang campus (1,1km) và đường rừng (0,34km) với onboard perception — nguồn: arXiv:2607.13579

So sánh với baseline:

  • Adaptive policy (trot + bound) outperform fixed-gait baselines ở tất cả địa hình khó (level 4–10 trong curriculum)
  • Ưu thế rõ nhất ở hurdles, gaps, và stairs — đúng những địa hình đòi hỏi gait transition thời điểm chính xác

Phân Tích: Tại Sao APT-RL Quan Trọng?

1. Pretrained skill priors thực sự work ở scale lớn. Ý tưởng dùng trajectory optimization làm "giáo viên ảo" không mới, nhưng APT-RL chứng minh nó scale được đến mức agility chưa từng thấy trên hardware thực ngoài trời.

2. Không cần motion capture. Toàn bộ pipeline chỉ cần physics simulator và trajectory optimization — không cần mocap data, không cần retargeting. Đây là lợi thế lớn khi muốn scale lên nhiều platform hoặc nhiều gait hơn.

3. Gait selection tự động ở 2 Hz. Không có heuristic nào quyết định khi nào switch gait — policy tự học từ reward. Điều này có nghĩa là robot có thể học những quy tắc switching mà kỹ sư chưa nghĩ đến.

4. Onboard-only perception. Không external localization, không mocap lab, không magic box nào bên ngoài. Đây là điều kiện của deployment thật, và HOUND vẫn đạt 6 m/s.

Giới Hạn Và Hướng Mở Rộng

Paper công nhận một số điểm chưa hoàn chỉnh:

  • Chỉ 2 gait: trot và bound. Gallop, pronk, và gait phức tạp hơn chưa được tích hợp — về lý thuyết, chỉ cần thêm decoder tương ứng
  • 2D terrain model ở Phase 1: sagittal-plane dynamics không bắt được đầy đủ side-slip hay yaw dynamics
  • Thuần locomotion: Chưa kết hợp với arm hay gripper

Hướng mở rộng tự nhiên từ APT-RL:

  • Kết hợp với loco-manipulation — thêm arm/gripper trong khi vận dụng multi-skill locomotion làm nền
  • Scale lên humanoid bipedal với nhiều gait hơn (walk, jog, sprint, jump)
  • Online adaptation khi terrain thay đổi runtime mà không cần retrain

Cài Đặt Và Tái Hiện Ý Tưởng

APT-RL chưa có GitHub public repo tại thời điểm bài viết. Tuy nhiên, bạn có thể tái hiện ý tưởng cốt lõi với Isaac Lab và TVAE tự implement. Đây là skeleton code cho TVAE:

import torch
import torch.nn as nn

class TVAE(nn.Module):
    """
    Transformer-based VAE học latent space chung cho nhiều gait.
    state_dim=69 (proprioception 3 frames * 23-dim per frame)
    latent_dim=16, n_frames=3
    """
    def __init__(self, state_dim=69, latent_dim=16, n_frames=3):
        super().__init__()
        encoder_layer = nn.TransformerEncoderLayer(
            d_model=state_dim, nhead=3, batch_first=True
        )
        self.encoder = nn.TransformerEncoder(encoder_layer, num_layers=4)
        self.mu_head = nn.Linear(state_dim, latent_dim)
        self.logvar_head = nn.Linear(state_dim, latent_dim)

        # Decoder riêng cho từng gait
        self.trot_decoder = nn.Sequential(
            nn.Linear(latent_dim, 64), nn.ELU(),
            nn.Linear(64, 12)   # 12 joint torques
        )
        self.bound_decoder = nn.Sequential(
            nn.Linear(latent_dim, 64), nn.ELU(),
            nn.Linear(64, 12)
        )

    def encode(self, x):
        # x: [batch, n_frames, state_dim]
        h = self.encoder(x)
        h_last = h[:, -1]   # chỉ dùng frame cuối
        return self.mu_head(h_last), self.logvar_head(h_last)

    def reparameterize(self, mu, logvar):
        std = torch.exp(0.5 * logvar)
        return mu + torch.randn_like(std) * std

    def forward(self, x, gait='trot'):
        mu, logvar = self.encode(x)
        z = self.reparameterize(mu, logvar)
        decoder = self.trot_decoder if gait == 'trot' else self.bound_decoder
        tau_hat = decoder(z)
        return tau_hat, mu, logvar

def tvae_loss(tau_hat, tau_true, mu, logvar, lambda_kl=0.1):
    recon = nn.functional.mse_loss(tau_hat, tau_true)
    kl = -0.5 * torch.mean(1 + logvar - mu.pow(2) - logvar.exp())
    return recon + lambda_kl * kl

Để chạy locomotion baseline trên Isaac Lab (không phải APT-RL đầy đủ, nhưng là điểm khởi đầu tốt):

# Cài Isaac Lab (yêu cầu Isaac Sim 4.x)
pip install isaaclab

# Train quadruped locomotion baseline
python scripts/reinforcement_learning/rsl_rl/train.py \
    --task=Isaac-Velocity-Rough-Anymal-C-v0 \
    --num_envs 4096

Sau khi có TVAE và policy cơ bản, bước tiếp theo là thay thế standard action output bằng (latent_action, aux_action, gait_logit) như trong paper.

Điểm Takeaway

APT-RL là ví dụ điển hình của "divide and conquer" trong robot learning: thay vì đòi hỏi một RL agent học tất cả từ đầu (gait mechanics + terrain reasoning + sensor fusion + gait switching), tách bài toán thành ba giai đoạn có thể học độc lập.

Điều thú vị là cả ba giai đoạn đều dùng công cụ quen thuộc — trajectory optimization, VAE, PPO, DAgger — không có gì exotic cả. Sự sáng tạo nằm ở cách ghép chúng lại và thứ tự thực hiện.

Nếu bạn đang xây dựng locomotion controller cho quadruped hoặc humanoid, APT-RL là blueprint đáng nghiên cứu kỹ — đặc biệt là ý tưởng dùng trajectory optimization để bootstrap representation learning mà không cần motion capture.

Khuyến nghị công cụ

Camera và phụ kiện nên cân nhắc

Ưu tiên camera phù hợp pipeline và calibration, không chỉ thông số trên giấy.

Intel RealSense D455 RGB-D camera cho head perception, mapping nhẹ và dataset collection. Xem D455 → Luxonis OAK-D Stereo/depth camera có compute riêng, hữu ích khi Jetson đang bận inference khác. Xem OAK-D → Wrist camera / USB global shutter camera Camera gần gripper giúp manipulation, grasping và dữ liệu teleop rõ hơn. Xem camera →

Khuyến nghị công cụ

Camera và phụ kiện nên cân nhắc

Ưu tiên camera phù hợp pipeline và calibration, không chỉ thông số trên giấy.

Intel RealSense D455 RGB-D camera cho head perception, mapping nhẹ và dataset collection. Xem D455 → Luxonis OAK-D Stereo/depth camera có compute riêng, hữu ích khi Jetson đang bận inference khác. Xem OAK-D → Wrist camera / USB global shutter camera Camera gần gripper giúp manipulation, grasping và dữ liệu teleop rõ hơn. Xem camera →

Bài Viết Liên Quan

  • RL Locomotion: Nền Tảng Reinforcement Learning Cho Robot Di Chuyển
  • Quadruped Robot: Cách Robot Bốn Chân Học Đi và Chạy
  • Locomotion Parkour: Vượt Vật Cản Với Deep RL
  • Sim-to-Real Transfer: Bridge Khoảng Cách Giữa Simulator và Thực Tế
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

Tutorial
Sim-to-Real cho Locomotion: Thực tế và kinh nghiệm
locomotionsim2realrlPhần 7
locomotion

Sim-to-Real cho Locomotion: Thực tế và kinh nghiệm

Cách chuyển policy locomotion từ sim sang robot thật — domain randomization, actuator network và best practices.

1/3/202613 phút đọc
NT
Nghiên cứu
Robot Parkour: Nhảy, leo cầu thang bằng RL
locomotionrlparkourPhần 5
locomotion

Robot Parkour: Nhảy, leo cầu thang bằng RL

Phân tích Extreme Parkour và SoloParkour — cách dạy robot nhảy, leo trèo và vượt địa hình phức tạp bằng RL.

21/2/20269 phút đọc
NT
Tutorial
Quadruped Locomotion: legged_gym đến Unitree Go2
locomotionquadrupedrlPhần 3
locomotion

Quadruped Locomotion: legged_gym đến Unitree Go2

Hands-on train locomotion policy với legged_gym và deploy lên robot 4 chân Unitree Go2 — từ sim đến real.

13/2/202611 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