Lecture 1 — Robotics là gì?

Chương A** · mở đầu toàn khóa · bản đồ stack Sense–Think–Act trước khi đụng dynamics

Lecture 1 — Robotics là gì?

Chương A · mở đầu toàn khóa · bản đồ stack Sense–Think–Act trước khi đụng dynamics


Khung 6 câu hỏi

# Câu hỏi Trả lời ngắn
1 Tại sao cần? Muốn máy tự bay/đi trong thế giới vật lý: nhiễu, trễ, sai lầm có giá (rơi máy). Không thể chỉ “phát lại” chuỗi lệnh offline.
2 So với cái khác? Khác script open-loop / tối ưu offline một phát; khác ML thuần trên dataset tĩnh vì phải đóng vòng realtime với dynamics.
3 Giải quyết gì & thế nào? Chia bài toán Sense → Think → Act: ước lượng state \(x\), lập kế hoạch/policy, điều khiển tầng thấp — chạy lặp theo tần số khác nhau.
4 Kết quả ra sao? Một stack rõ tầng: dynamics–control–planning–estimation–vision–decision. RL chỉ là một lớp quyết định trên stack đó.
5 Nên dùng khung này khi nào? Mọi nghiên cứu UAV/robot cần deploy hoặc so baseline trung thực; khi viết MDP phải chỉ được tầng action/obs.
6 Không nên / hiểu sai khi nào? Đừng gộp hết thành một hộp “agent end-to-end” rồi không biết baseline cổ điển đặt đâu; đừng coi sim state \(x\) = obs onboard \(z\).

🖼️ Hình nhanh: Robot = vòng kín với thế giới — không phải “play file lệnh”.

Hình minh họa (seminar-ready)

Hình gốc hoặc minh họa cho ebook — không cắt từ slide Princeton. Dùng Present: bật Slide · F toàn màn.

Vòng kín Sense–Think–Act.
Vòng kín Sense–Think–Act.HiếuTC · gốc
Ngữ cảnh đô thị đặc — GPS/hẻm.
Ngữ cảnh đô thị đặc — GPS/hẻm.Generated for ebook · seminar OK
   Gió / nhiễu (~)
        │
 u ──► [ DYNAMICS f ] ──► x thật (ruộng chè / phố)
        │ cảm biến
        ▼
   z = h(x) + noise
        │
   [ ESTIMATOR ] ──► x̂
        │
   [ PLANNER / POLICY ] ──► reference
        │
   [ CONTROLLER ] ──► u  ★ đóng vòng

0. Mục tiêu học

  1. Phát biểu được bài toán robot tự chủ khác script offline ở điểm nào.
  2. Vẽ lại stack Sense–Think–Act (estimator / planner / controller) từ trí nhớ.
  3. Nêu state quadrotor (~12–13 chiều) và chọn mức cắm RL A / B / C.
  4. Viết được “tờ nháp paper” một dòng: task · obs · action tầng · rủi ro nếu \(\hat{x}\) lệch.

1. Trực giác — nói bằng lời thường

Hình dung hai cách “cho drone bay qua ruộng chè”:

  • Cách A (offline): tối ngồi nhà tính sẵn chuỗi tốc độ motor, sáng mai bấm play. Gió đổi hướng → máy trôi khỏi luống chè như người đi theo bản đồ cũ khi đường đã sửa.
  • Cách B (robotics): mỗi vài ms đọc IMU/GPS/camera → ước lượng mình đang ở đâu → quyết định chỉnh → gửi \(u\) → thế giới đổi → đo lại.

Chỉ B chịu được gió, sai model, trễ truyền. Đó là ngữ cảnh bạn cần stack phía dưới trước khi train RL cho path-planning đa mục tiêu (năng lượng · độ phủ · quỹ đạo · gió).

🇻🇳 Chuyện thật (sân A+B): Path trên giấy lúc nào cũng đẹp — như đường vẽ bằng thước kẻ trên bản đồ Google.
Đưa lên đồi chè Mộc Châu buổi gió sườn, máy open-loop trôi khỏi luống như người đi theo chỉ đường cũ khi đường đã sửa.
Nhét vào hẻm Hà Nội / cao ốc HCM, GPS nhảy một cái là planner vẫn tin mình còn nửa mét clearance.
Chốt: robotics = đóng vòng với thế giới thật; chưa có Sense–Think–Act thì mọi Pareto chỉ là phác thảo. Chi tiết: ../00C.

Ba ứng dụng hay nhắc — UAV, xe tự lái, tay máy — chung một khung: sai lầm có giá vật lý, thông tin không đầy đủ, thời gian thực.


2. Cốt lõi kỹ thuật

2.1 State, observation, estimate

Ký hiệu Nghĩa Ví dụ UAV
\(x\) State đủ để dự đoán tương lai nếu biết \(u\) vị trí, vận tốc, attitude, \(\omega\) (~12–13D)
\(u\) Input / lệnh lực motor, hoặc setpoint attitude+thrust
\(z\) Observation cảm biến IMU, GPS, camera…
\(\hat{x}\) Ước lượng từ estimator cái planner/controller thật sự “thấy”

State quadrotor đầy đủ: vị trí (3) + vận tốc (3) + quaternion/Euler (3–4) + tốc độ góc (3).

2.2 Tách tầng & tần số vòng lặp

Thực tế kỹ thuật: tách estimator / planner / controller — không tối ưu toàn cục nhưng kiểm soát được. Nhiều vòng chạy đồng thời, khác tốc độ:

  attitude control   ████████████████████  ~500 Hz – 1 kHz
  position control   ████████              ~50–100 Hz
  planning / RL      ███                   ~1–10 Hz
  vision             █████                 ~15–30 Hz
                     └─ thời gian ────────►

2.3 Ba mức cắm RL (Sơ đồ)

  ┌─ Mức A: policy → waypoint / mode ─────────────► [planner cổ điển]
  │         tần số thấp · an toàn hơn
  ├─ Mức B: policy → vel / attitude+thrust ───────► [position loop]
  │         ★ phổ biến paper RL–UAV
  └─ Mức C: policy → gần lệnh motor ──────────────► [attitude / mixer]
            sim-to-real khó nhất
Mức Policy xuất gì So với baseline cổ điển Rủi ro sim-to-real Nghĩa với năng lượng / gió
A waypoint / mode gần planner thấp hơn dễ gắn cost map gió–pin ở tầng path
B vel hoặc attitude+thrust phổ biến paper trung bình reward vừa bám quỹ đạo vừa phạt lực
C gần motor “end-to-end” nhất cao nhất domain gap motor/gió lớn

3. Demo — bài tập “khăn giấy” (không cần code)

Lec 01 định hướng: thay code bằng một tờ nháp bạn viết trước khi đọc Lec 2.

┌─────────────────────────────────────────────────────────┐
│  TASK (1 câu): ……………………………………………………………          │
│  (vd: phủ 80% ruộng chè 2 ha, về điểm sạc, gió ≤ 5 m/s) │
├─────────────────────────────────────────────────────────┤
│  OBS dự kiến z:  [ ] GPS  [ ] IMU  [ ] camera  [ ] …    │
│  ACTION mức:     ( ) A waypoint  ( ) B setpoint  ( ) C  │
│  Nếu x̂ lệch 0.5 m ngang: ………………………………………       │
│  (va chéo luống? mất phủ? tốn pin vòng lại?)            │
└─────────────────────────────────────────────────────────┘

🧪 Kỳ vọng demo: Sau khi điền, bạn chỉ rõ được “policy của tôi thay khối nào trên stack” — không còn câu mơ hồ “RL điều khiển drone”. Nếu không chọn được A/B/C → chưa sẵn sàng viết MDP.


4. Gắn RL–UAV / path-planning đa mục tiêu của bạn

“Policy điều khiển drone” chưa đủ nghĩa cho đến khi nêu tầng action + loại obs.

Với bài toán energy / coverage / trajectory / wind của bạn:

  • Tầng path (A hoặc hierarchical): cost map gió + năng lượng + độ phủ sống tự nhiên.
  • Tầng B: reward shaping bám reference + phạt \(\|u\|\), \(\|\Delta u\|\).
  • Đừng train như thể \(z = x\) sim rồi claim onboard — estimator lệch là một “gió giả” nữa.

Chọn mức B thường là điểm khởi động nghiên cứu cân bằng tham vọng / triển khai.


5. Ưu / nhược (câu 5–6)

✅ Nên / khung stack giúp gì ❌ Không / hiểu sai
So sánh paper Baseline cổ điển đặt đúng tầng Gộp end-to-end, không biết so với gì
MDP Action/obs khớp firmware thật Action motor trong sim vượt giới hạn thật
Đa mục tiêu Cost/reward theo tầng (path vs track) Một reward “phủ + pin + gió” không tách tầng
Sim-to-real Biết vòng nào chạy Hz nào Policy 10 Hz thay attitude 500 Hz ngây thơ

6. Lỗi thường gặp

  • ⚠️ Gộp tất cả thành “end-to-end” mà không nêu tầng action — baseline và so sánh không công bằng.
  • ⚠️ Quên các vòng attitude / position / planning chạy tần số khác nhau.
  • ⚠️ Đồng nhất \(x\) trong simulator với \(z\) cảm biến onboard khi viết observation space.

7. Checklist

  1. Robot khác script offline ở điểm nào (vòng kín / giá vật lý / realtime)?
  2. Vẽ lại được sơ đồ \(u \to f \to x \to z \to \hat{x} \to\) policy \(\to\) controller?
  3. State quadrotor gồm những thành phần nào, khoảng bao nhiêu chiều?
  4. Ba mức A/B/C — bạn chọn mức nào cho task hiện tại?
  5. Nếu \(\hat{x}\) lệch 0.5 m, metric phủ / năng lượng của bạn hỏng chỗ nào?

Nhớ một câu: Robot = đóng vòng realtime với vật lý; RL chỉ là một lớp trên stack, không thay thế cả stack.

🔗 Sang bài sau mang theo: Tờ nháp task · obs · mức A/B/C · và câu hỏi “\(u\) vào \(f\) thì \(x\) đổi thế nào?” — Lec 2 trả lời bằng dynamics.


Trước: Mục lục · Sau: Lec02 — Dynamics