MODULE 5 — Chủ đề mở rộng và Capstone RL–UAV (Lecture 24 + tổng hợp)

Bản ôn nhanh theo module

MODULE 5 — Chủ đề mở rộng và Capstone RL–UAV (Lecture 24 + tổng hợp)

📚 Đọc kèm 00A · 00C (sân khấu VN + quy định) · 06.

Lab ──► claim hẹp ──► fail-safe ──► baseline công bằng ──► paper (đừng bay gần trường học / chợ VN khi chưa chứng minh)

Mục tiêu module.
(1) Nhìn bài toán robot khi rời phòng lab: an toàn, pháp lý, đạo đức, kinh tế.
(2) Ghép toàn bộ Module 1–4 thành một kiến trúc dự án nghiên cứu RL–UAV có baseline, metric và lộ trình làm việc.


Lecture 24 — Robotics: Law, Ethics, Economics

0. Mục tiêu học

Biết năm nhóm câu hỏi phi thuật toán cần xuất hiện trong luận án / paper khi hệ có thể bay ngoài lab; viết được một đoạn limitation trung thực.

1. Câu hỏi trung tâm

Khi thuật toán rời phòng thí nghiệm — ai chịu trách nhiệm nếu sự cố, dữ liệu có xâm phạm quyền riêng tư, và việc triển khai có đáng làm?

2. Trực giác

Drone giao hàng nghe tiện. Nhưng nếu đường bay cắt ngang sân trường lúc tan học, câu chuyện không còn chỉ là LQR hay PPO.
Một bài báo kỹ thuật tốt vẫn cần đoạn limitation / safety case / dual-use — không phải để “cho đủ formal”, mà để bạn tự ràng buộc phạm vi claim.

3. Cốt lõi — khung năm nhóm cho nghiên cứu sinh

3.1. An toàn và trách nhiệm (safety & liability)

  • Fail-safe là một phần hệ thống, không phải phụ lục: geofence, return-to-launch (RTL), kill switch, người giám sát trong tầm nhìn.
  • Hỏi rõ: khi estimator lệch và policy vẫn xuất action, lớp nào được phép ghi đè?
  • Trong paper: nêu điều kiện vận hành bạn không chứng minh an toàn (ví dụ: gần người, gió > X m/s, mất VIO).

3.2. Quyền riêng tư (privacy)

  • Camera UAV thu hình không gian công cộng / tư. Cần cân nhắc consent, lưu trữ, xóa dữ liệu, che mặt khi publish demo.
  • Dataset bay thật: ghi rõ khu vực, thời gian, quy trình ẩn danh.

3.3. Quy định (regulation)

  • Vùng cấm bay, bay trong tầm nhìn mắt (VLOS), trần độ cao, yêu cầu chứng nhận — khác nhau theo quốc gia / địa phương.
  • Nghiên cứu học thuật vẫn phải tuân thủ quy định địa phương khi bay thật.

🇻🇳 Gợi ý Việt Nam: đưa no-fly (sân bay, khu hạn chế) vào map planner như ràng buộc cứng — không phải cost mềm.
Checklist VLOS/BVLOS / độ cao / ảnh có người: xem 00C §5. Đối chiếu văn bản Cục Hàng không hiện hành trước mọi chuyến bay thật.

3.4. Kinh tế và lao động (economics / labor)

  • Tự động hóa phân phối lại lợi ích và rủi ro. Với nghiên cứu: chi phí sim vs thật, chi phí tái lập thí nghiệm, tiếp cận phần cứng.
  • Tránh claim “thay thế hoàn toàn” khi mới có kết quả sim.
  • Bối cảnh VN: drone phun thuốc nông nghiệp đã phổ biến — tách claim của bạn (mapping/coverage path) khỏi phun tải nặng, trừ khi đề tài mở rộng.

3.5. Dual-use

  • Tránh vật cản / bám mục tiêu / tracking có thể dùng cho giám sát.
  • Trong luận án: nêu intended use và giới hạn bạn chủ động không tối ưu hóa (ví dụ: không tối ưu tàng hình, không tối ưu theo dõi người ngoài ngữ cảnh thí nghiệm có kiểm soát).
  • Thời sự quốc tế cho thấy cùng stack dân sự–quân sự: hãy có đoạn dual-use ngắn, không né.

Mức kỳ vọng với NCS: không cần trở thành luật sư. Cần một đoạn trung thực: rủi ro, biện pháp giảm thiểu, phạm vi triển khai bạn không claim.

4. Mẫu đoạn limitation (có thể chỉnh cho thesis)

Hệ thống được đánh giá trong mô phỏng / không gian bay có kiểm soát, với người giám sát và geofence. Chúng tôi không claim an toàn vận hành gần đám đông, trường học, chợ, hay trong điều kiện gió vượt ngưỡng thử nghiệm (ví dụ gió sườn đồi / gió mùa). Dữ liệu hình ảnh (nếu có) được thu trong khu vực cho phép, có quy trình ẩn danh khi có người, và xử lý theo quy định Việt Nam hiện hành. Các kỹ thuật tránh vật cản / theo dõi quỹ đạo có thể bị lạm dụng ngoài mục đích nghiên cứu nông nghiệp–đô thị đã nêu; phạm vi công bố giới hạn ở phương pháp và thí nghiệm đã mô tả.

5. Checklist

  1. Khi bay thật: đã có geofence, RTL/kill switch, người giám sát chưa?
  2. Demo/video có mặt người lạ không — đã xử lý quyền riêng tư chưa?
  3. Trong manuscript đã có đoạn limitation đủ cụ thể chưa (không chỉ một câu chung chung)?

Capstone A — Bài tập lớn của khóa gốc (để hiểu tinh thần tích hợp)

Khóa Princeton kết thúc bằng nhiệm vụ trên Crazyflie + camera:

  • Bay qua “rừng” ống PVC không biết trước vị trí.
  • Dùng vision cổ điển và/hoặc mạng nơ-ron để phát hiện vật cản / mục tiêu.
  • Đáp gần một mục tiêu (ví dụ cuốn sách).

Pipeline điển hình của sinh viên:

camera
  → phát hiện ống (cạnh / contour / detector)
  → chiến lược né (rẽ / dừng / đi tiếp)
  → vượt sang phía kia arena
  → phát hiện mục tiêu → tiếp cận → hạ cánh

Bài học chuyển sang nghiên cứu:
Thuật toán đơn lẻ “đẹp trên giấy” chưa đủ. Estimator, controller, perception và logic nhiệm vụ phải sống chung trên máy có trễ, nhiễu và tài nguyên hạn chế. Capstone của bạn (phần sau) giữ tinh thần đó, nhưng nâng lên mức nghiên cứu có baseline và metric.


Capstone B — Dự án khung cho NCS: “RL–UAV có nền robotics”

0. Mục tiêu học phần này

Biên soạn được một đề cương dự án (có thể cắt thành 1–2 bài báo) bám Module 1–4: có kiến trúc, lộ trình, metric, và checklist “đủ nền chưa”.

1. Mục tiêu hệ thống

UAV (sim trước; thật sau nếu có điều kiện) hoàn thành nhiệm vụ \(T\), ví dụ:

  • tới goal có tránh vật cản,
  • hạ cánh trên đệm / marker,
  • bám theo mục tiêu động,

với đủ ba thành phần:

  1. baseline cổ điển rõ ràng;
  2. policy RL;
  3. đánh giá generalization và (nếu được) lớp an toàn.

2. Kiến trúc đề xuất (không end-to-end motor ngay ngày đầu)

                 ┌─────────────────────────────────────────┐
                 │              HIGH LEVEL                 │
                 │   goal, local map, mode (explore/goal)  │
                 └─────────────────┬───────────────────────┘
                                   │ reference (pos / vel / waypoints)
                 ┌─────────────────▼───────────────────────┐
                 │         RL POLICY  π_θ  (học)           │
                 │  obs z = [ x̂_EKF | flow | depth |       │
                 │            goal_vec | ... ]             │
                 │  act a = [v_cmd] hoặc [attitude+thrust] │
                 └─────────────────┬───────────────────────┘
                                   │ a  (+ tùy chọn residual)
                 ┌─────────────────▼───────────────────────┐
                 │        SAFETY / RESIDUAL                │
                 │   u = sat(u_LQR + a)  hoặc CBF / shield │
                 └─────────────────┬───────────────────────┘
                                   │
                 ┌─────────────────▼───────────────────────┐
                 │  LOW-LEVEL (PID/LQR attitude trên FC)   │
                 └─────────────────┬───────────────────────┘
                                   ▼
                                motors

Vì sao kiến trúc này?
- Tôn trọng underactuation và vòng attitude tần số cao (Module 1).
- Cho phép baseline LQR/PID công bằng (Module 1).
- Cho phép quan sát trung thực từ estimator/vision (Module 3–4).
- Chừa chỗ cho safety layer — gần các hướng “safe RL / shielding”.

3. Lộ trình 8 tuần (nén, có tiêu chí hoàn thành)

Tuần Việc làm Module Tiêu chí “xong”
1 Env double integrator hoặc quadrotor phẳng; PID/LQR hover 1 Bay ổn định được quanh hover trong sim
2 Thêm vật cản; baseline RRT + tracking; chốt metric 2 Có số success/crash/time của baseline
3 Nhiễu hóa state + EKF đơn giản; RL nhìn \(\hat{x}\) 3 Policy không còn phụ thuộc state privileged
4 PPO/SAC goal-reaching; so với LQR/RRT; ablate reward 1+4 Bảng so sánh tối thiểu 3 phương pháp
5 Thêm obs ảnh hoặc depth synthetic; CNN encoder 4 Chạy được policy có nhánh vision
6 Domain randomization (mass, wind, latency); held-out maps 4 Báo cáo train vs test rõ ràng
7 Residual RL trên LQR hoặc bật safety shield 1+5 Đo tần suất ghi đè / near-miss
8 Viết số liệu + limitation (law/ethics ngắn) 5 Có draft section Experiments + Limitations

Có thể kéo dài tuần 5–7 nếu hướng chính là vision-based hoặc safe RL.

4. Metric tối thiểu (tránh đánh giá “cảm tính”)

Metric Ý nghĩa
Success rate @ ngưỡng khoảng cách goal Hoàn thành nhiệm vụ
Crash / near-miss rate An toàn
Path length / thời gian hoàn thành Hiệu quả
Năng lượng proxy \(\sum \|u\|^2\) hoặc tích phân thrust Tốn kém điều khiển
Generalization gap (train maps vs test maps; các mức gió) Không overfit
Tần suất intervention của shield (nếu có) Policy có “sống nhờ lớp an toàn” hay không

Mỗi metric cần kèm: số seed, số episode, khoảng tin cậy hoặc ít nhất mean ± std.

5. Checklist “đủ nền chưa?” trước khi train lớn

Nền Module 1

  • [ ] Viết được động lực học / underactuation của quadrotor ở mức đủ dùng
  • [ ] Có baseline LQR hoặc PID ổn định
  • [ ] Biết action của policy nằm ở tầng nào (waypoint / vel / attitude)

Nền Module 2–3

  • [ ] Có ít nhất một baseline planning (RRT+track hoặc tương đương) nếu task có vật cản
  • [ ] Phân biệt \(x\) và \(z\); đã mô phỏng nhiễu đo hoặc estimator

Nền Module 4–5

  • [ ] Reward không chỉ “tới đích”; có phạt đụng và phạt không mượt
  • [ ] Eval held-out; không chỉ một seed gió / một map
  • [ ] Có kế hoạch fail-safe nếu triển khai thật
  • [ ] Đã phác đoạn limitations

Nếu còn ô trống — đừng tăng kích thước mạng. Hãy vá nền trước.

6. Mẫu khung MDP để điền trước khi code

Task name:
Horizon / dt:
State x (nếu privileged):
Observation z (onboard):
Action a (tầng nào? đơn vị? bound?):
Low-level controller bên dưới policy:
Reward r = ...
Termination / crash condition:
Randomization khi train:
Held-out khi test:
Baselines:
Safety layer (có/không):

In tờ này dán cạnh màn hình khi chỉnh env — giảm loạn siêu tham số không mục tiêu.

7. Ví dụ điền mẫu (goal reaching 2D tránh vật cản)

Task name: planar_goal_obstacle
Horizon / dt: 10 s / 0.02 s
State x (privileged): [y, z, θ, vy, vz, ω]
Observation z (onboard): x̂ từ EKF giả lập + vector tới goal + 8 tia khoảng cách
Action a: [Δθ_cmd, ΔF_cmd]  (tầng attitude+thrust setpoint; bound theo Crazyflie-scale)
Low-level: LQR/PID bám setpoint 100 Hz
Reward r = +1.5*tiến_tới_goal - 0.01‖a‖² - 5*va_chạm - 0.02‖ω‖
Termination: tới goal (‖p-g‖<0.15) hoặc đụng hoặc timeout
Randomization train: vị trí cột, gió ngang ∈ [-0.5,0.5], mass ±10%
Held-out test: layout cột chưa thấy; gió ∈ [-1,1]
Baselines: (i) LQR điểm-tới-điểm không né; (ii) RRT+LQR track; (iii) RL thuần
Safety layer: sat(u_LQR + a) với giới hạn thrust; kill khi gần tường < d_min

Dùng ví dụ này như “đáp án mẫu” về mức độ cụ thể — MDP nghiên cứu của bạn cần rõ ít nhất đến mức trên.

8. Cách đọc lại ebook theo tình huống (không cần đọc tuần tự lần 2)

Bạn đang kẹt ở… Mở lại
Policy giật / dao động quanh hover Module 1 — PD, damping, reward smooth
Bay được trong open space nhưng đụng vật cản Module 2 — C-space, RRT baseline, cost map
Sim đẹp, onboard Estimator lệch là hỏng Module 3 — \(z \neq x\), EKF/PF, noise hóa obs
Ảnh/sim khác domain Module 4 — flow vs CNN, overfit/domain gap
Không biết claim tới đâu khi viết paper Module 5 — Lec 24 + metric + limitations
Muốn residual / shield Module 1 (LQR) + Module 5 (kiến trúc)

Phụ lục A — Cheat-sheet công thức mang theo

Hệ tuyến tính + LQR
\[ \dot{x}=Ax+Bu,\quad u=-Kx,\quad K=R^{-1}B^\top P,\quad \text{ARE}(P)=0 \]

Bayes filter
\[ \overline{bel}(x_t)=\int p(x_t\mid x_{t-1},u_t)\,bel(x_{t-1})\,dx_{t-1} \]
\[ bel(x_t)=\eta\,p(z_t\mid x_t)\,\overline{bel}(x_t) \]

Kalman update
\[ K=P^-C^\top(CP^-C^\top+R)^{-1},\quad \hat{x}=\hat{x}^-+K(z-C\hat{x}^-) \]

Optical flow (ràng buộc độ sáng)
\[ I_x u + I_y v + I_t = 0 \]

Bellman / RL
\[ V^\pi(s)=\mathbb{E}[r+\gamma V^\pi(s')],\quad \pi^\star \approx \arg\max_\pi \mathbb{E}\Big[\sum_t \gamma^t r_t\Big] \]

Differential flatness (nhớ ý, không cần thuộc mọi công thức):
plan \((x,y,z,\psi)\) đủ mượt → suy được attitude và thrust khả thi.


Phụ lục B — Đọc thêm khi cần đào đúng chỗ

Nhu cầu Tài liệu
Dynamics / control Spong et al. — Robot Dynamics and Control
Planning / RRT LaValle — Planning Algorithms (PDF miễn phí)
KF / PF / SLAM Thrun et al. — Probabilistic Robotics
Mobile robots tổng quan Siegwart & Nourbakhsh
Video khung khóa YouTube: Introduction to Robotics @ Princeton
Min-snap / agile flight Mellinger & Kumar; các bài drone racing

Phụ lục C — Mục lục ebook sau vòng QA

Ebook_Robotics/
├── 00_MucLuc_va_CachHoc.md       # cách học + thuật ngữ thống nhất
├── 01_Dynamics_Control.md        # Lec 1–5
├── 02_Motion_Planning.md         # Lec 6–10
├── 03_Estimation_SLAM.md         # Lec 11–16  (đã mở rộng)
├── 04_Vision_Learning.md         # Lec 17–23  (đã mở rộng)
└── 05_BroaderTopics_Capstone.md  # Lec 24 + Capstone NCS

Lời kết của người hướng dẫn

Bạn đã vững RL. Điểm nghẽn thường gặp khi chuyển sang UAV không phải “thiếu một loss mới”, mà là:

  1. đặt policy đúng tầng trên máy bay thật;
  2. baseline cổ điển trung thực;
  3. dùng observation trung thực (estimation + vision);
  4. đánh giá generalization / safety thay vì chỉ success trên env train.

Ebook cố ý viết để bạn đọc tuần tự một lần, rồi quay lại đúng module khi manuscript cần ngôn ngữ: LQR, RRT, EKF, optical flow, residual, shield, reality gap.

Bước làm việc tiếp theo gợi ý: điền mẫu khung MDP ở mục 6 Capstone B, rồi gửi lại (hoặc tự đối chiếu) với checklist “đủ nền chưa”. Chỗ nào còn trống — học lại đúng lecture tương ứng, không nhảy cóc.

Chúc nghiên cứu vững và mọi chuyến bay (sim rồi thật) đều có lớp an toàn rõ ràng.