Ebook Robotics · RL–UAV
MODULE 5 — Chủ đề mở rộng và Capstone RL–UAV (Lecture 24 + tổng hợp)
Bản ôn nhanh theo module
Chế độ Slide · phím ← → · F toàn màn · Esc về đọc · S mở slide
Bản ôn nhanh theo module
📚 Đọ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.
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.
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?
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.
🇻🇳 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: xem00C§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.
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.
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ả.
Khóa Princeton kết thúc bằng nhiệm vụ trên Crazyflie + camera:
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.
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”.
UAV (sim trước; thật sau nếu có điều kiện) hoàn thành nhiệm vụ \(T\), ví dụ:
với đủ ba thành phần:
┌─────────────────────────────────────────┐
│ 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”.
| 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.
| 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.
Nếu còn ô trống — đừng tăng kích thước mạng. Hãy vá nền trước.
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.
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.
| 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) |
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.
| 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 |
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
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à:
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.