Files
recovery_core/README.md
2026-07-09 16:50:35 +07:00

2.1 KiB

recovery_core

Interface (base class) cho các hành vi recovery của navigation stack ROS-like T800.

Phạm vi

  • package định nghĩa interface, mô phỏng robot_nav_core::RecoveryBehavior nhưng mở rộng thêm global_path: initialize(name, tf, global_path, global_costmap, local_costmap); đồng thời tổng quát hoá output để bao 3 họ recovery.
  • Không chạy roscpp/ROS master thật; dùng bình thường lớp ROS-like robot_* (robot_costmap_2d, tf3, robot_cpp, robot_time, robot_geometry_msgs, robot_nav_msgs).
  • Core interface không publish trực tiếp. Package hiện có thêm các plugin mẫu build thành .so riêng và nạp qua Boost.DLL để kiểm chứng contract end-to-end.

Ba họ recovery

Họ Ví dụ Output Method chính
A regen path (đường thoát) robot_nav_msgs::Path runBehavior()
B clear costmap không có (chỉ status) runBehavior()
C rotation / backup robot_geometry_msgs::Twist mỗi cycle computeCommand(dt)

Cả 3 chia sẻ một RecoveryResult hợp nhất mang cờ output_type.

Cấu trúc

include/recovery_core/   recovery_types.h, recovery_config.h, recovery_behavior.h
src/                     phần chung của contract (types/config/default behavior)
plugins/                 clear_costmap, rotate, backup, regen_path plugin mẫu
test/                    contract test + Boost.DLL loader test
examples/                minimal_recovery.cpp
docs/                    ARCHITECTURE.md, PLUGIN_GUIDE.md, SAFETY.md

Build

Hỗ trợ catkinstandalone CMake (như robot_clear_costmap_recovery).

# catkin (trong workspace)
catkin_make --pkg recovery_core

# standalone
mkdir build && cd build && cmake .. && make

Trạng thái

  • Phase 1 — khung package (interface + stub, build lib rỗng).
  • Phase 2 — triển khai phần chung (types/config/validate + default computeCommand).
  • Phase 3 — plugin mẫu cho 3 họ + export/import Boost.DLL.

Xem PLAN.md để biết chi tiết từng phase.