Công thức clutch ở thiết kế §3.2 đã dùng E_rot = E0_rot · exp(s_r · log(P0_rot⁻¹ · P_rot)) — phải hiểu exp/log map mới debug được bug hướng (loại bug kinh điển nhất của teleop).
log: R → φ, exp: φ → Rexp về; "xoay một nửa" = exp(0.5·log R), KHÔNG phải nhân 0.5 vào quaternionR0·exp(δ) khác exp(δ)·R0 chỗ nào? Clutch dùng dạng nào, vì sao?tests/test_retarget.py pass: P=P0 → E=E0 · xoay 30° một trục → EE xoay s·30° cùng trục · drift reset khi re-engageDashboard chỉ hiển thị, không bấm tick được. Tick = sửa 3-nghien-cuu/ghi-chu-hoc/so3-exp-log.md rồi build lại; tick việc tuần trong 2-van-hanh/checklist-tuan.md.
(chưa viết — tự viết sau khi học, ≤5 dòng)
(chưa có — điền khi debug gặp thật)
3-nghien-cuu/ghi-chu-hoc/so3-exp-log.md — thêm dòng vào "Keyword cần nắm" (hoặc giải thích lại bằng lời mình), viết "TL;DR", "Bẫy đã gặp thật"; xong chạy lại build là card này cập nhật.Vì sao damping λ cứu kỳ dị, manipulability là gì — không hiểu thì lúc arm rung gần vùng duỗi thẳng chỉ biết chỉnh λ mò.
Dashboard chỉ hiển thị, không bấm tick được. Tick = sửa 3-nghien-cuu/ghi-chu-hoc/svd-dls-ik.md rồi build lại; tick việc tuần trong 2-van-hanh/checklist-tuan.md.
(chưa viết — tự viết sau khi học, ≤5 dòng)
(chưa có — điền khi debug gặp thật)
3-nghien-cuu/ghi-chu-hoc/svd-dls-ik.md — thêm dòng vào "Keyword cần nắm" (hoặc giải thích lại bằng lời mình), viết "TL;DR", "Bẫy đã gặp thật"; xong chạy lại build là card này cập nhật.Cutoff frequency, phase lag, trade-off latency ↔ smoothness. Đủ để trả lời câu reviewer kinh điển "why not Kalman?" (One-Euro: không cần model động học, 2 tham số, latency thấp hơn ở tần số cao — và mình đo được).
mincutoff, betamincutoff và beta mỗi cái điều khiển gì? Arm rung khi giữ yên tay thì chỉnh cái nào?latency_probe.py mở rộng: bơm sine giả lập tay rung, đo amplitude + lag theo (mincutoff, beta) → hình ablation filterDashboard chỉ hiển thị, không bấm tick được. Tick = sửa 3-nghien-cuu/ghi-chu-hoc/loc-tin-hieu-one-euro.md rồi build lại; tick việc tuần trong 2-van-hanh/checklist-tuan.md.
(chưa viết — tự viết sau khi học, ≤5 dòng)
(chưa có — điền khi debug gặp thật)
3-nghien-cuu/ghi-chu-hoc/loc-tin-hieu-one-euro.md — thêm dòng vào "Keyword cần nắm" (hoặc giải thích lại bằng lời mình), viết "TL;DR", "Bẫy đã gặp thật"; xong chạy lại build là card này cập nhật.Clutch xử lý full pose, không chỉ rotation: vị trí scale bằng s_p (cộng vector thuần), quay scale bằng s_r (exp/log). Câu hỏi reviewer/advisor sẽ hỏi: vì sao không dùng twist/screw interpolation trên SE(3) cho cả cụm? Trả lời được (decoupled scaling cho phép s_p ≠ s_r — tay người cần scale…
Toàn bộ note (artifact, TL;DR) nằm trong card 1.1 — ghi chú chung nhà.
3-nghien-cuu/ghi-chu-hoc/so3-exp-log.md, đánh dấu "(mục 1.4)" như các dòng có sẵn.Cả hệ đứng trên pose 6-DoF của ARCore mà chưa có dòng nào về nó hoạt động thế nào, sai kiểu gì. Cần cho 3 việc: debug M3 (tracking nhảy/lost khi vung nhanh, thiếu texture, mờ chuyển động); tham số drift thực cho simulation của mệnh đề 3.1 (giả định "drift trong 1 phiên clutch bị chặn" phải có…
scripts/drift_probe.py: (a) đứng yên 60s — jitter + drift tĩnh · (b) vòng kín về điểm đánh dấu — sai số đóng vòng · (c) vung nhanh — đếm tracking lostDashboard chỉ hiển thị, không bấm tick được. Tick = sửa 3-nghien-cuu/ghi-chu-hoc/vio-arcore-drift.md rồi build lại; tick việc tuần trong 2-van-hanh/checklist-tuan.md.
(chưa viết — tự viết sau khi học, ≤5 dòng)
(chưa có — điền khi debug gặp thật)
3-nghien-cuu/ghi-chu-hoc/vio-arcore-drift.md — thêm dòng vào "Keyword cần nắm" (hoặc giải thích lại bằng lời mình), viết "TL;DR", "Bẫy đã gặp thật"; xong chạy lại build là card này cập nhật.Roadmap §2.3 mới phủ bus protocol; chưa có gì về control loop bên trong servo — mà "sai số servo giá rẻ" chính là fallback claim (residual calibration, overview) và là thứ phải characterize trước khi đổ lỗi cho IK/filter khi arm không bám.
scripts/servo_char.py: 1 khớp đi-về cùng target ×20, 2 chiều tiếp cận → std vị trí + backlash; chạy đủ 6 servo sau M1Dashboard chỉ hiển thị, không bấm tick được. Tick = sửa 3-nghien-cuu/ghi-chu-hoc/servo-sts3215.md rồi build lại; tick việc tuần trong 2-van-hanh/checklist-tuan.md.
(chưa viết — tự viết sau khi học, ≤5 dòng)
(chưa có — điền khi debug gặp thật)
3-nghien-cuu/ghi-chu-hoc/servo-sts3215.md — thêm dòng vào "Keyword cần nắm" (hoặc giải thích lại bằng lời mình), viết "TL;DR", "Bẫy đã gặp thật"; xong chạy lại build là card này cập nhật.Không có phần này thì bảng kết quả chỉ là con số trần, reviewer bắn thủng được.
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §2.1 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Jerk = đạo hàm bậc 3 của tín hiệu 50Hz nhiễu → tính naive ra rác. Chuẩn ngành:
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §2.2 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §2.3 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Karpathy Zero-to-Hero không dạy CNN (micrograd → makemore → GPT đều là MLP/Transformer trên text) — mà encoder ảnh của ACT là ResNet18. Không vá thì mục tiêu "đọc code ACT như đọc truyện" đứt đúng ở nửa đầu forward pass, và mọi quyết định camera/augmentation ở M5 thành cầu may.
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §2.4 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Ứng viên claim số 1 của paper là interface × chất lượng data × policy (overview) — nhưng chưa có định nghĩa vận hành "chất lượng data" là gì. Chốt sớm bộ metric trên demo (không phải trên policy) để mọi dataset từ M5 trở đi tự ghi kèm số:
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §2.5 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Formal hóa mapping §3.2 và chứng minh 2 tính chất:
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §3.1 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Skim "Bilateral teleoperation: An historical survey" (Hokayem & Spong 2006) — biết passivity, transparency, time-delay nghĩa là gì và vì sao hệ unilateral của mình né được cả cụm vấn đề đó (1 câu trong paper). Thêm v2.1: skim Fitts' law (1 trang Wikipedia đủ) — vocabulary chuẩn khi…
3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §3.2 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §4.1 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.3-nghien-cuu/ghi-chu-hoc/ theo template 5 phần (Keyword · TL;DR · Câu hỏi · Bẫy · Artifact, xem README), thêm 1 dòng vào bảng File của README với mục §4.2 — card này sẽ tự nhận keyword, câu hỏi, artifact khi build lại.Lịch tuần cụ thể (tick từng ô): checklist-tuan.md.
| Thời gian | Mục | Giờ | Checkpoint "đã đủ" |
|---|---|---|---|
| 8/2026 (M3–M4) | 1.1 + 1.2 + 1.3 | ~12h | Unit test retarget pass; giải thích DLS bằng SVD không nhìn tài liệu; vẽ được lag One-Euro theo tham số |
| 8–9/2026 (bám M1–M4) | 1.4 + 1.5 + 1.6 | ~6h | drift_probe có số drift/đóng vòng của chính phone mình; bảng repeatability 6 servo; trả lời được vì sao tách s_p/s_r |
| 11–12/2026 (trước ACT) | 2.4 | ~4h | Notebook ResNet18 trên frame demo của mình; giải thích ảnh→vector vào Transformer |
| 12/2026–1/2027 (M5, trước Tết) | 2.3 + 2.5 | ~7h | Nói được compounding error + map loss ACT ↔ code; demo_stats.py chạy trên 30 demo đầu |
| 12/2026 (release cuối 2026) | 3.1 | ~3h | Nửa trang mệnh đề + sim kiểm chứng (tham số drift lấy từ 1.5); thành mục toán của blog |
| 3–6/2027 (pha 3) | 4.1 + 4.2 | ~5h | Giải thích plot tune theo từng khâu; note RL vs IL bằng vocabulary MDP |
| 6–7/2027 (trước M6) | 2.1 + 2.2 | ~13h | stats.py + smoothness.py chạy trên data giả; protocol 1 trang có Latin square; bảng kết quả mẫu có CI |
| 7–8/2027 (viết) | 3.2 | ~2h | 1 câu định vị hệ unilateral vs teleop cổ điển |
Tạo 10/07/2026. Cột Chính giữ nguyên lựa chọn của roadmap-hoc-tap.md — file này không đổi lựa chọn, chỉ thêm ba thứ roadmap chưa nói: vì sao chọn, backup khi bí, và nổi tiếng nhưng bỏ qua (kèm lý do, cố tình không kèm link để đỡ cám dỗ).
Ba quy tắc dùng (chống trôi, khớp roadmap §0 và §8):
| Vai trò | Tài liệu | Vì sao / liên quan dự án |
|---|---|---|
| Chính | Python for Everybody ch.1–10 | Free, bài tập tự chấm; ch.6–10 (string, file, dict, tuple) đúng dạng thao tác config/dataset sẽ gặp hằng ngày trong LeRobot |
| Công cụ | pythontutor.com + VS Code debugger | Nhìn biến/stack từng bước — nền của mọi kỹ thuật trong brainstorm-hieu-code.md §4 |
| Luyện | exercism.org Python | Sau khi tự giải được đọc solution người khác = luyện đọc code có đáp án |
| Backup | Automate the Boring Stuff | Nếu sau ~2 tuần py4e thấy khô: đổi hẳn 1 lần (sách này thực dụng, script hóa việc thật), không học song song |
| Đúng-lúc | asyncio | KHÔNG học riêng — học qua docs websockets đúng tuần M3 cần đến |
Bỏ qua: CS50P (bài bản nhưng ~12 tuần lecture — quỹ 5–10h/tuần không cho phép) · Fluent Python (sách Python nâng cao hay nhất, nhưng cho người đã vững — hẹn sau 2027) · LeetCode (luyện phỏng vấn, không nằm trên đường tới robot).
| Vai trò | Tài liệu | Vì sao / liên quan dự án |
|---|---|---|
| Warm-up | 3B1B Essence of Linear Algebra (~3h) + quaternion Ben Eater (~1h) | Trực giác ma trận-là-phép-biến-đổi và quaternion tương tác — đọc MR đỡ vấp một nửa |
| Chính | Modern Robotics Ch.2–6 + bài tập chọn lọc | PDF free; dùng product-of-exponentials — đúng công thức FK/IK sẽ code cho SO-101; có thư viện MR Python để đối chiếu fk_check.py (M1); exp/log SO(3) ăn thẳng vào ghi chú so3-exp-log.md đã lên lịch 8/2026 |
| Backup | Bản Coursera của MR (Lynch giảng) | Đọc chay bí → xem video + quiz; cùng sách nên không tính là đổi tài liệu |
| Backup nhanh | QUT Robot Academy (Peter Corke) | Video 5–10′/khái niệm khi cần trực giác nhanh một mục lẻ, không cày tuần tự |
Bỏ qua: Craig Introduction to Robotics (kinh điển nhưng dạy DH parameters — trộn formalism với PoE của MR sẽ rối đầu) · Corke RVC trọn sách (từ điển tốt, đọc tuần tự thì lạc đề) · Tedrake Underactuated (control/dynamics nâng cao — sau 9/2027) · MIT 6.4212 (đã nằm trong danh sách cấm v2, chỉ tra cứu).
Điện servo + web stack (WebXR/websockets/One-Euro/Buss) giữ nguyên roadmap §2.3–2.4, không cần backup — đều là docs chính chủ ngắn. JS chỉ mức "sửa được ví dụ": kẹt cú pháp thì tra javascript.info như từ điển, cấm học JS bài bản.
Giữ nguyên 4 mục roadmap §2.1: HF Robotics Course (bản đồ hệ sinh thái, học lúc chờ hàng M0) · LeRobot docs SO-101 + assemble (đọc TRƯỚC khi hàng về — lỗi gãy servo khi lắp là lỗi phổ biến nhất) · il_robots (xương sống M2/M5) · Robot Learning: A Tutorial (đọc lướt lấy bản đồ, quay lại pha 2).
Không có backup — docs chính chủ của stack mình dùng; bí thì đọc thẳng code (bài tập mức 2 của brainstorm-hieu-code.md) và hỏi Discord LeRobot.
| Vai trò | Tài liệu | Vì sao / liên quan dự án |
|---|---|---|
| Warm-up | 3B1B Neural networks playlist (~2h) | Trực giác backprop bằng hình trước khi tự code nó trong micrograd |
| Chính 1 | PyTorch Learn the Basics (~10h) | Dừng đúng lúc tự viết được vòng train MLP — đủ cho bước BC tay không |
| Chính 2 | Karpathy Zero to Hero FULL (~20h) | Xây từ đạo hàm → GPT bằng code thuần, đúng nghĩa "hiểu từ gốc, không hộp đen"; ACT = Transformer + CVAE — học xong, đọc lerobot/policies/act là đọc lại thứ mình từng tự viết (mức 3 của lộ trình đọc code); checkpoint pha 2 "build lại GPT-mini không copy" chấm theo đây |
| Tra cứu | Understanding Deep Learning (Prince, PDF free) | Từ điển khi cần định nghĩa/hình chuẩn (VAE, attention…); CẤM đọc tuần tự |
Bỏ qua: fast.ai (dạy top-down qua thư viện fastai che mất PyTorch — ngược chiều mục tiêu hiểu gốc) · CS231n (CV-centric, dài, không phải đường IL) · Goodfellow Deep Learning (2016, nặng lý thuyết, không code) · Andrew Ng DL Specialization (Keras/TF — khác stack).
ACT/SmolVLA/BC: theo đúng thứ tự 6 bước roadmap §3 — paper nhóm A đọc 3-pass, đối chiếu code từng khối (đây chính là mức 3 của brainstorm-hieu-code.md §6).
| Trụ | Chính | Backup khi bí | Bỏ qua + lý do |
|---|---|---|---|
| ROS 2 | Official Jazzy tutorials: CLI tools → client libraries → port teleop thành node graph | Articulated Robotics (Josh Newans) — mental model nhanh khi docs khô | Khóa ROS Udemy (không hơn official, tốn tiền) · MoveIt/Nav2 (arm đứng yên trên bàn — chỉ mở MoveIt nếu DLS-IK tự viết thật sự không đủ) |
| Control | Brian Douglas playlist cho trực giác + MR Ch.11 làm nguồn bài tập (cặp này = 1 lựa chọn, roadmap cho phép) | Steve Brunton Control Bootcamp — khi cần state-space sâu hơn (cảnh báo: dễ quá đà so với nhu cầu tune PID 1 arm) | Ogata Modern Control Engineering (textbook đầy đủ classical control — quá khổ cho artifact "plot tracking error trước/sau tune") |
| RL | HF Deep RL Course units chính → PPO trên MuJoCo SO-101 (mo-phong.md tầng 2–3) | Spinning Up — đọc Key Concepts + trang PPO như từ điển | Sutton–Barto trọn sách (cấm v2 — chỉ tra chương được dẫn) · David Silver lectures (kinh điển nhưng 2015, thiên lý thuyết) · CS285 (sau 9/2027 nếu còn theo RL) |
Giữ nguyên roadmap §5 (Wilson CI, Wilcoxon n≥8, TOST, SPARC/LDLJ, ≥3 seed; template Experiments của GELLO/robomimic; Overleaf ieeeconf; talk Simon Peyton Jones; outline ngược 5 paper ICRA). Bổ sung nhẹ:
so101-phone-teleop từ M0 (init, branch, commit message tử tế — 6-code/README); kẹt lệnh thì tra docs. Bỏ: đọc Pro Git trọn sách.Bỏ qua (nhóm "sách dev phải đọc" trên mạng): Clean Code (nhiều lời khuyên gây tranh cãi, không phải giai đoạn này) · Pragmatic Programmer, A Philosophy of Software Design (đáng đọc — sau 2027, khi đã có vài nghìn dòng code của mình) · Design Patterns/GoF (quá sớm, Python-idiomatic khác Java-patterns).
Python nền (§0): ~25–35h trong 5–6 tuần tới, tính là giờ build. Các phần khác không thêm giờ — chỉ thêm lựa chọn backup và ranh giới. Nếu §0 làm quỹ tuần căng: giảm giờ MR tháng 7–8 (MR chính thức cần từ 8/2026), KHÔNG giảm giờ theo lịch M0–M1.