Files
recovery_core/PLAN.md
2026-08-03 22:32:40 +07:00

2.7 KiB
Raw Blame History

Trạng thái recovery_core

Nội dung PLAN.md cũ đã được gỡ. Hai lý do:

  1. Đánh số phase trùng nhưng khác nghĩa. Nó dùng "Phase 1/2/3" cho các mốc riêng của gói, trùng số với Phase 15 của Test/NAV_REFACTOR_PLAN.md — cùng một con số chỉ hai thứ khác hẳn nhau, trong hai file cùng nằm dưới Test/, là bẫy đọc nhầm.
  2. Tick sai. Nó đánh [x] cho RecoveryConfig::validate, RecoveryConfig::fromNodeHandle, MockBehaviorinterface_contract_test.cpp — grep cả ba symbol ra 0 hit, và test/ khi đó chỉ có đúng một file. Một checklist nói dối còn tệ hơn không có checklist.

Nguồn chuẩn hiện tại

Cần gì Đọc ở đâu
Contract, họ output, bất biến an toàn README.md
Quyết định thiết kế và lý do docs/ARCHITECTURE.md
Quy tắc bắt buộc khi viết plugin họ vận tốc docs/SAFETY.md
Cách thêm behavior mới docs/PLUGIN_GUIDE.md
Bối cảnh trong cuộc refactor navigation runtime Test/NAV_REFACTOR_PLAN.md, PHASE 3

Đã xong

  • Contract: bool configure(name, ctx, nh) / bool start(goal, now) / update(now) / cancel(); outputKind() khai họ output; toàn bộ state của base là private.
  • RecoveryContext chỉ chứa cổng (PoseProvider, CollisionChecker, PlanProvider), không chứa con trỏ tới dữ liệu động.
  • RecoveryGoal dùng std::optional + trigger; bỏ quy ước sentinel "0 = dùng default".
  • RecoveryRegistry nạp theo YAML qua Boost.DLL, giữ factory sống đúng vòng đời.
  • adapters/: CostmapPoseProvider, CostmapCollisionChecker.
  • Bộ mặc định 4 plugin / 5 instance: wait, conservative_reset, rotate, aggressive_reset, back_up. regen_path_recovery bị xoá, không thay thế.
  • 9 bộ test GTest đăng ký với ctest, chạy trên cây config riêng của gói.

Chưa xong

  • Họ kPath chưa có behavior nào. Contract đã sẵn sàng (PlanProvider + outputKind() trả kPath), nhưng một behavior sinh đường thoát thật cần thông tin từ global planner — nằm ngoài phạm vi gói này.
  • ClearCostmapRecovery chưa có test tự động. Nó cần Costmap2DROBOT thật (TF + chuỗi layer), không dựng được bằng fake của nav_test_harness. Hiện chỉ được kiểm bằng đọc code; test tích hợp thuộc Phase 5 (kịch bản chạy trên sim).
  • Chưa chạy trên robot thật. Bật từng behavior một, không bật cả bộ cùng lúc.