This commit is contained in:
2026-01-12 15:49:25 +07:00
parent f5e7e1f1e0
commit 145fb2088e
29 changed files with 3091 additions and 771 deletions

View File

@@ -205,20 +205,64 @@ Cần làm rõ:
- Thực thi control loop (executeCycle)
4. **Planning Layer**
- `nav_core::BaseGlobalPlanner`: Interface cho global planners (A*, D*, etc.)
- `nav_core::BaseLocalPlanner`: Interface cho local planners (DWA, TEB, MKT, etc.)
- `nav_core::RecoveryBehavior`: Interface cho recovery behaviors
- Plugin system sử dụng `boost::dll` để dynamic loading
- `robot_nav_core::BaseGlobalPlanner`: Interface cho global planners
- **Global Planner Implementations**:
- `custom_planner` - Custom path planner với curve support và merge path calculation
- `dock_planner` - Docking-specific planner với dock calculation utilities
- `two_points_planner` - Simple planner cho two-point navigation
- `robot_nav_core::BaseLocalPlanner`: Interface cho local planners
- **Local Planner Implementation**:
- `pnkx_local_planner` - Main local planner với multiple behaviors:
- Position planning (MKT algorithm)
- Docking planning
- Go straight planning
- Rotate planning
- `robot_nav_core::RecoveryBehavior`: Interface cho recovery behaviors
- Plugin system sử dụng `boost::dll``robot::PluginLoaderHelper` để dynamic loading
5. **Costmap Layer**
- `robot_costmap_2d::Costmap2DROBOT`: Global và local costmap
- Costmap layers: static map, obstacles, inflation
- `robot_costmap_2d::Costmap2DROBOT`: Global và local costmap wrapper
- `robot_costmap_2d::LayeredCostmap`: Layered costmap system
- **Costmap Layers** (8 implementations):
- `StaticLayer` - Static map từ OccupancyGrid
- `ObstacleLayer` - Dynamic obstacles từ sensors
- `InflationLayer` - Cost inflation cho robot footprint
- `VoxelLayer` - 3D voxel grid cho obstacles
- `CriticalLayer` - Critical zones marking
- `DirectionalLayer` - Directional cost preferences
- `PreferredLayer` - Preferred path zones
- `UnpreferredLayer` - Unpreferred zones
- Frame management: map (global), odom (local)
- Thread-safe access với mutex
- Observation buffer cho sensor data
6. **Algorithms Layer**
- `mkt_algorithm`: Diff drive và bicycle kinematics algorithms
- `score_algorithm`: Trajectory scoring và goal checking
- `kalman`: Filtering algorithms
- **MKT Algorithm** (`mkt_algorithm`):
- Differential drive kinematics:
- `diff_go_straight` - Go straight behavior
- `diff_predictive_trajectory` - Predictive trajectory following
- `diff_rotate_to_goal` - Rotate to goal
- Bicycle model kinematics:
- `bicycle_go_straight` - Go straight với bicycle model
- `bicycle_pure_pursuit` - Pure pursuit control
- `bicycle_rotate_to_goal` - Rotate behavior
- **MKT Plugins** (`mkt_plugins`):
- `goal_checker` - Goal checking algorithms
- `simple_goal_checker` - Simple goal checking
- `standard_traj_generator` - Standard trajectory generation
- `limited_accel_generator` - Acceleration-limited trajectory generation
- `kinematic_parameters` - Kinematics parameter management
- `xy_theta_iterator` - Trajectory iteration utilities
- `velocity_iterator` - Velocity space iteration
- `one_d_velocity_iterator` - 1D velocity iteration
- **Score Algorithm** (`score_algorithm`):
- Trajectory scoring và evaluation
- Goal checking utilities
- Trajectory generator interface
- **Kalman Filter** (`kalman`):
- State estimation
- Sensor fusion
- Noise filtering
7. **Data Sources** ⚠️ (Interface cần định nghĩa)
- Localization source (Pnkx Loc)
@@ -250,19 +294,23 @@ Cần làm rõ:
- `pause()`, `resume()`, `cancel()` - Điều khiển trạng thái
- `getRobotPose(...)` - Lấy vị trí robot
- `nav_core::BaseGlobalPlanner`
- `robot_nav_core::BaseGlobalPlanner`
- `makePlan(start, goal, plan)` - Tạo global path
- `initialize(name, costmap_robot)` - Khởi tạo với costmap
- **Implementations**: `custom_planner`, `dock_planner`, `two_points_planner`
- `nav_core::BaseLocalPlanner`
- `computeVelocityCommands(cmd_vel)` - Tính toán velocity command
- `robot_nav_core::BaseLocalPlanner`
- `computeVelocityCommands(odom, cmd_vel)` - Tính toán velocity command
- `setPlan(plan)` - Set global path để follow
- `isGoalReached()` - Kiểm tra đã đến goal chưa
- `swapPlanner(name)` - Thay đổi planner động
- `swapPlanner(name)` - Thay đổi planner động (position, docking, go_straight, rotate)
- `setTwistLinear/Angular(...)` - Set velocity limits
- `getTwistLinear/Angular(...)` - Get velocity limits
- **Implementation**: `pnkx_local_planner` với multiple behaviors
- `nav_core::RecoveryBehavior`
- `robot_nav_core::RecoveryBehavior`
- `runBehavior()` - Thực thi recovery behavior
- `initialize(name, tf, global_costmap, local_costmap)` - Khởi tạo
- `robot_costmap_2d::Costmap2DROBOT`
- Wrapper cho costmap với robot footprint
@@ -290,9 +338,15 @@ Cần làm rõ:
**Plugin mechanism:**
- Sử dụng `boost::dll` để dynamic loading plugins
- Factory pattern với `boost::function``boost::dll::import`
- Factory pattern với `boost::function``boost::dll::import_alias`
- `robot::PluginLoaderHelper` để tìm library path từ plugin name
- Config file YAML để specify plugin names
- Plugin interfaces: `BaseGlobalPlanner`, `BaseLocalPlanner`, `RecoveryBehavior`
- Plugin interfaces:
- `robot_nav_core::BaseGlobalPlanner` - Global planners
- `robot_nav_core::BaseLocalPlanner` - Local planners
- `robot_nav_core::RecoveryBehavior` - Recovery behaviors
- `robot_costmap_2d::Layer` - Costmap layers
- Plugin registration với `BOOST_DLL_ALIAS` macro
### 4. Cơ chế giao tiếp & đồng bộ
@@ -340,36 +394,99 @@ Cần làm rõ:
**Đã hoàn thành:**
1.**Interface Layer**: `BaseNavigation` interface
2.**Implementation Layer**: `MoveBase` core logic
3.**Planning Layer**: Plugin system cho global/local planners và recovery
4.**Costmap Layer**: Global và local costmap với layers
5.**Algorithms Layer**: MKT algorithms, score algorithm, kalman
6.**API Layer**: C API wrapper cho .NET integration
7.**Supporting Libraries**: tf3, robot_time, geometry_msgs, robot_nav_2d_utils
1.**Interface Layer**:
- `move_base_core::BaseNavigation` - Abstract interface hoàn chỉnh
- `move_base_core::common.h` - Common types và utilities
2.**Implementation Layer**:
- `move_base::MoveBase` - Core implementation với state machine
- `executeCycle()` - Control loop implementation
- State management (PLANNING, CONTROLLING, CLEARING, PAUSED)
- Threading với planner thread và control loop
3.**Planning Layer - Plugin System**:
- **Global Planners** (3 implementations):
- `custom_planner` - Custom path planning với curve support
- `dock_planner` - Docking-specific planner
- `two_points_planner` - Simple two-point planner
- **Local Planners** (1 implementation):
- `pnkx_local_planner` - Main local planner với:
- `pnkx_docking_local_planner` - Docking behavior
- `pnkx_go_straight_local_planner` - Go straight behavior
- `pnkx_rotate_local_planner` - Rotate behavior
- **Recovery Behaviors**: Interface đã định nghĩa
- Plugin loading với `boost::dll``robot::PluginLoaderHelper`
4.**Costmap Layer**:
- `robot_costmap_2d::Costmap2DROBOT` - Global và local costmap
- **Costmap Layers** (8 implementations):
- `static_layer` - Static map layer
- `obstacle_layer` - Dynamic obstacles
- `inflation_layer` - Cost inflation
- `voxel_layer` - 3D voxel grid
- `critical_layer` - Critical zones
- `directional_layer` - Directional costs
- `preferred_layer` - Preferred paths
- `unpreferred_layer` - Unpreferred zones
- Layered costmap system với plugin support
5.**Algorithms Layer**:
- **MKT Algorithm**:
- Differential drive kinematics (go_straight, rotate, predictive)
- Bicycle model kinematics (go_straight, rotate, pure pursuit)
- **MKT Plugins**:
- `goal_checker` - Goal checking algorithms
- `standard_traj_generator` - Standard trajectory generation
- `kinematic_parameters` - Kinematics parameter management
- `xy_theta_iterator` - Trajectory iteration
- `limited_accel_generator` - Acceleration-limited trajectories
- **Score Algorithm**: Trajectory scoring và goal checking
- **Kalman Filter**: State estimation và filtering
6.**API Layer**:
- `nav_c_api` - C API wrapper cho .NET/C# P/Invoke
- Wrapper functions cho BaseNavigation methods
7.**Supporting Libraries**:
- `tf3` - Transform system (buffer_core, transforms)
- `robot_time` - Time management (Time, Duration, Timer, Rate)
- `robot_cpp` - Core utilities:
- `robot::init()` - Initialization
- `robot::NodeHandle` - YAML config loading
- `robot::PluginLoaderHelper` - Plugin discovery
- `robot_nav_2d_utils` - 2D navigation utilities (conversions, path_ops, polygons, bounds, tf_help)
- `robot_nav_2d_msgs` - 2D navigation messages
- `geometry_msgs` - Geometry message types (29 types)
- `robot_nav_msgs` - Navigation messages (24 types)
- `robot_sensor_msgs` - Sensor messages (30 types)
- `laser_geometry` - Laser scan geometry utilities
- `voxel_grid` - Voxel grid implementation
- `data_convert` - Data conversion utilities
- `nav_grid` - Navigation grid utilities
**Đang triển khai / Cần bổ sung:** ⚠️
1. ⚠️ **Data Sources Interfaces**:
- `ILocalizationSource` interface
- `IOdometrySource` interface
- `IMapProvider` interface
- Integration với Pnkx Loc, odometry sources
- `ILocalizationSource` interface - Cần định nghĩa
- `IOdometrySource` interface - Cần định nghĩa
- `IMapProvider` interface - Cần định nghĩa
- Integration với Pnkx Loc, odometry sources - Hiện tại dùng trực tiếp qua MoveBase methods
2. ⚠️ **Base Controller**:
- `IBaseController` interface
- Diff drive controller implementation
- Steer drive controller implementation
- Velocity command execution
- `IBaseController` interface - Cần định nghĩa
- Diff drive controller implementation - Cần implement
- Steer drive controller implementation - Cần implement
- Velocity command execution - Hiện tại chỉ có `setTwistLinear/Angular` trong local planner
3. ⚠️ **Control Loop**:
- Control loop trong MoveBase (executeCycle)
- State machine management hoàn chỉnh
- Threading và synchronization
3. ⚠️ **User Controller Plugin System**:
- Factory để load user controller plugins - Cần implement
- Interface cho User Controller - Cần định nghĩa
- Integration với BaseNavigation - Cần implement
4. ⚠️ **User Controller Plugin System**:
- Factory để load user controller plugins
- Integration với BaseNavigation
4. ⚠️ **Testing & Documentation**:
- Unit tests cho các modules - Một số đã có (costmap, bounds, etc.)
- Integration tests - Cần bổ sung
- Simulation environment - TODO
**Lộ trình tiếp theo:**
@@ -406,38 +523,144 @@ pnkx_nav_core/
├── src/
│ ├── Navigations/
│ │ ├── Cores/
│ │ │ ├── move_base_core/ # BaseNavigation interface
│ │ │ ├── nav_core/ # Planner interfaces
│ │ │ ├── nav_core_adapter/ # Adapter utilities
│ │ │ └── nav_core2/ # Additional nav utilities
│ │ │ ├── move_base_core/ # BaseNavigation interface
│ │ │ │ ├── include/move_base_core/
│ │ │ │ │ ├── navigation.h # BaseNavigation abstract class
│ │ │ │ │ └── common.h # Common types (TFListenerPtr, etc.)
│ │ │ ├── robot_nav_core/ # Planner interfaces ✅
│ │ │ │ ├── include/robot_nav_core/
│ │ │ │ │ ├── base_global_planner.h
│ │ │ │ │ ├── base_local_planner.h
│ │ │ │ │ └── recovery_behavior.h
│ │ │ ├── robot_nav_core_adapter/ # Adapter utilities ✅
│ │ │ │ ├── include/robot_nav_core_adapter/
│ │ │ │ │ ├── global_planner_adapter.h
│ │ │ │ │ ├── local_planner_adapter.h
│ │ │ │ │ └── costmap_adapter.h
│ │ │ └── robot_nav_core2/ # Additional nav utilities ✅
│ │ │ ├── include/robot_nav_core2/
│ │ │ │ ├── global_planner.h
│ │ │ │ ├── local_planner.h
│ │ │ │ └── costmap.h
│ │ ├── Libraries/
│ │ │ ├── robot_costmap_2d/ # Costmap system
│ │ │ ── tf3/ # Transform system
│ │ │ ├── robot_time/ # Time management
│ │ │ ├── geometry2/ # Geometry utilities
│ │ │ └── ... # Other supporting libraries
│ │ │ ├── nav_grid/ # Navigation grid utilities ✅
│ │ │ ── (costmap, tf3, robot_time ở Libraries/)
│ │ └── Packages/
│ │ └── move_base/ # MoveBase implementation
│ │ └── move_base/ # MoveBase implementation
│ │ ├── include/move_base/
│ │ │ └── move_base.h
│ │ └── src/
│ │ ├── move_base.cpp
│ │ └── move_base_main.cpp
│ │
│ ├── Algorithms/
│ │ ├── Cores/
│ │ │ └── score_algorithm/ # Trajectory scoring
│ │ └── Libraries/
│ │ ├── mkt_algorithm/ # MKT kinematics algorithms
│ │ ├── kalman/ # Kalman filtering
│ │ └── angles/ # Angle utilities
│ │ │ └── score_algorithm/ # Trajectory scoring
│ │ │ ├── include/score_algorithm/
│ │ ├── score_algorithm.h
│ │ ├── goal_checker.h
│ │ │ │ └── trajectory_generator.h
│ │ ├── Libraries/
│ │ │ ├── mkt_algorithm/ # MKT kinematics algorithms ✅
│ │ │ │ ├── include/mkt_algorithm/
│ │ │ │ │ ├── diff/ # Differential drive
│ │ │ │ │ │ ├── diff_go_straight.h
│ │ │ │ │ │ ├── diff_predictive_trajectory.h
│ │ │ │ │ │ └── diff_rotate_to_goal.h
│ │ │ │ │ └── bicycle/ # Bicycle model
│ │ │ │ │ ├── bicycle.h
│ │ │ │ │ ├── go_straight.h
│ │ │ │ │ └── rotate_to_goal.h
│ │ │ ├── mkt_plugins/ # MKT plugin components ✅
│ │ │ │ ├── include/mkt_plugins/
│ │ │ │ │ ├── goal_checker.h
│ │ │ │ │ ├── standard_traj_generator.h
│ │ │ │ │ ├── kinematic_parameters.h
│ │ │ │ │ └── xy_theta_iterator.h
│ │ │ ├── mkt_msgs/ # MKT message types ✅
│ │ │ ├── kalman/ # Kalman filtering ✅
│ │ │ └── angles/ # Angle utilities ✅
│ │ └── Packages/
│ │ ├── global_planners/
│ │ │ ├── custom_planner/ # Custom global planner ✅
│ │ │ ├── dock_planner/ # Docking planner ✅
│ │ │ └── two_points_planner/ # Two points planner ✅
│ │ └── local_planners/
│ │ └── pnkx_local_planner/ # PNKX local planner ✅
│ │ ├── include/pnkx_local_planner/
│ │ │ ├── pnkx_local_planner.h
│ │ │ ├── pnkx_docking_local_planner.h
│ │ │ ├── pnkx_go_straight_local_planner.h
│ │ │ └── pnkx_rotate_local_planner.h
│ │
│ ├── Libraries/
│ │ ├── costmap_2d/ # Costmap system ✅
│ │ │ ├── include/robot_costmap_2d/
│ │ │ │ ├── costmap_2d_robot.h
│ │ │ │ ├── layered_costmap.h
│ │ │ │ └── layer.h
│ │ │ ├── plugins/ # Costmap layers ✅
│ │ │ │ ├── static_layer.cpp
│ │ │ │ ├── obstacle_layer.cpp
│ │ │ │ ├── inflation_layer.cpp
│ │ │ │ ├── voxel_layer.cpp
│ │ │ │ ├── critical_layer.cpp
│ │ │ │ ├── directional_layer.cpp
│ │ │ │ ├── preferred_layer.cpp
│ │ │ │ └── unpreferred_layer.cpp
│ │ │ └── config/ # Costmap configs
│ │ ├── tf3/ # Transform system ✅
│ │ ├── robot_time/ # Time management ✅
│ │ ├── robot_cpp/ # Core utilities ✅
│ │ │ ├── include/robot/
│ │ │ │ ├── init.h # Initialization
│ │ │ │ ├── node_handle.h # NodeHandle (YAML config)
│ │ │ │ └── plugin_loader_helper.h # Plugin loader
│ │ ├── robot_nav_2d_utils/ # 2D nav utilities ✅
│ │ ├── robot_nav_2d_msgs/ # 2D nav messages ✅
│ │ ├── geometry2/ # Geometry utilities ✅
│ │ │ ├── robot_tf3_geometry_msgs/
│ │ │ └── robot_tf3_sensor_msgs/
│ │ ├── common_msgs/ # Message types ✅
│ │ │ ├── robot_geometry_msgs/
│ │ │ ├── robot_nav_msgs/
│ │ │ ├── robot_sensor_msgs/
│ │ │ ├── robot_std_msgs/
│ │ │ ├── robot_protocol_msgs/
│ │ │ └── robot_visualization_msgs/
│ │ ├── laser_geometry/ # Laser geometry ✅
│ │ ├── voxel_grid/ # Voxel grid ✅
│ │ ├── data_convert/ # Data conversion ✅
│ │ └── xmlrpcpp/ # XML-RPC utilities ✅
│ │
│ └── APIs/
│ └── c_api/ # C API wrapper
├── build/ # Build artifacts
└── doc/ # Documentation
│ └── c_api/ # C API wrapper
│ ├── include/nav_c_api.h
│ └── src/nav_c_api.cpp
├── build/ # Build artifacts
├── config/ # Configuration files
├── examples/ # Example code
└── doc/ # Documentation
├── architecture_discussion.md
├── implementation_plan.md
└── folders.md
```
## Ghi chú
- ✅ Kiến trúc cốt lõi đã được triển khai với plugin system linh hoạt
-**3 Global Planners** đã triển khai: custom_planner, dock_planner, two_points_planner
-**1 Local Planner** đã triển khai: pnkx_local_planner với 4 behaviors (position, docking, go_straight, rotate)
-**8 Costmap Layers** đã triển khai: static, obstacle, inflation, voxel, critical, directional, preferred, unpreferred
-**MKT Algorithms** hỗ trợ cả differential drive và bicycle model
-**Plugin System** hoàn chỉnh với `boost::dll``robot::PluginLoaderHelper`
- ⚠️ Cần bổ sung data sources interfaces và base controller
- 🔄 Kiến trúc được thiết kế để dễ dàng thay đổi thuật toán và mô hình kinematics thông qua plugin system
- 📦 Tất cả components được build bằng CMake, không phụ thuộc ROS
- 📦 Tất cả components được build bằng CMake, hỗ trợ cả Catkin và Standalone CMake
- 🔌 Plugin system sử dụng `boost::dll` cho dynamic loading
- 🎯 MoveBase đã có control loop (`executeCycle`) và state machine hoàn chỉnh
- 📚 Có đầy đủ message types: geometry_msgs (29), nav_msgs (24), sensor_msgs (30), std_msgs (32)

View File

@@ -1,53 +1,99 @@
Mô tả cấu trúc:
# Cấu trúc thư mục pnkx_nav_core
├── common_msgs/
│ ├── build/
│ ├── geometry_msgs/
│ │ ├── include/
│ │ └── test/
│ ├── CMakeLists.txt
│ ├── robot_nav_msgs/
│ │ ├── include/
│ │ └── test/
├── CMakeLists.txt
├── robot_sensor_msgs/
│ │ ├── cfg/
│ │ ├── include/
│ │ └── test/
├── CMakeLists.txt
├── robot_std_msgs/
│ ├── include/
│ │ ── CMakeLists.txt
└── CMakeLists.txt (root)
|
├── Navigations/
├── Cores/
│ │ └── move_base_core/
│ │ ├── build/
│ │ ── example/
│ │ ├── include/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ └── README.md
Mô tả cấu trúc thư mục thực tế của dự án:
```
pnkx_nav_core/
├── src/
│ ├── Navigations/
│ ├── Cores/
│ │ │ ├── move_base_core/ # BaseNavigation interface
│ │ │ ├── robot_nav_core/ # Planner interfaces (BaseGlobalPlanner, BaseLocalPlanner, RecoveryBehavior)
│ │ ├── robot_nav_core_adapter/ # Adapter utilities (global_planner_adapter, local_planner_adapter, costmap_adapter)
│ │ └── robot_nav_core2/ # Additional nav utilities (global_planner, local_planner, costmap)
│ │ ├── Libraries/
│ │ │ └── nav_grid/ # Navigation grid utilities
│ │ └── Packages/
│ └── move_base/ # MoveBase implementation
│ ├── Algorithms/
│ │ ── Cores/
│ │ └── score_algorithm/ # Trajectory scoring và goal checking
│ │ ├── Libraries/
│ │ │ ├── mkt_algorithm/ # MKT kinematics (diff drive & bicycle)
│ │ ├── mkt_plugins/ # MKT plugin components
│ │ │ ├── mkt_msgs/ # MKT message types
│ │ ├── kalman/ # Kalman filtering
│ │ ── angles/ # Angle utilities
│ │ └── Packages/
│ │ ├── global_planners/
│ │ │ ├── custom_planner/ # Custom global planner
│ │ │ ├── dock_planner/ # Docking planner
│ │ │ └── two_points_planner/ # Two points planner
│ │ └── local_planners/
│ │ └── pnkx_local_planner/ # PNKX local planner
│ │
│ ├── Libraries/
│ │ ├── geometry_msgs/
│ │ │ ├── build/
│ │ │ ├── include/
│ │ │ └── CMakeLists.txt
│ │ ── libtf2/
│ │ ├── .vscode/
│ │ ├── include/
│ │ ├── samples/
│ │ ├── src/
│ │ ├── .gitignore
│ │ ├── DEBIAN_PACKAGING.md
│ │ ├── libtf2_2.0.0_amd64.deb
│ │ ├── Makefile
│ │ ── README.md
├── Packages/
│ │ ── move_base/
│ │ ├── build/
│ │ ├── include/
│ │ ├── src/
│ │ └── CMakeLists.txt
│ └── CMakeLists.txt (root)
│ │ ├── costmap_2d/ # Costmap system với 8 layers
│ │ ├── tf3/ # Transform system
│ │ ├── robot_time/ # Time management
│ │ ├── robot_cpp/ # Core utilities (init, NodeHandle, PluginLoaderHelper)
│ │ ── robot_nav_2d_utils/ # 2D navigation utilities
│ │ ├── robot_nav_2d_msgs/ # 2D navigation messages
│ │ ├── geometry2/ # Geometry utilities (tf3_geometry_msgs, tf3_sensor_msgs)
│ │ ├── common_msgs/ # Message types
│ │ ├── robot_geometry_msgs/ # Geometry messages (29 types)
│ │ ├── robot_nav_msgs/ # Navigation messages (24 types)
│ │ ├── robot_sensor_msgs/ # Sensor messages (30 types)
│ │ ├── robot_std_msgs/ # Standard messages (32 types)
│ │ ├── robot_protocol_msgs/ # Protocol messages
│ │ ── robot_visualization_msgs/ # Visualization messages
│ │ └── utils/ # Message utilities
│ │ ── laser_geometry/ # Laser geometry utilities
│ │ ├── voxel_grid/ # Voxel grid
│ │ ├── data_convert/ # Data conversion
│ │ └── xmlrpcpp/ # XML-RPC utilities
│ │
│ └── APIs/
│ └── c_api/ # C API wrapper cho .NET/C#
├── build/ # Build artifacts
├── config/ # Configuration files
├── examples/ # Example code
└── doc/ # Documentation
├── architecture_discussion.md
├── implementation_plan.md
├── folders.md
└── readme.md
```
## Chi tiết các thư mục chính
### Navigations/
- **Cores/**: Interfaces và core utilities
- `move_base_core`: BaseNavigation interface
- `robot_nav_core`: Planner interfaces
- `robot_nav_core_adapter`: Adapter layer
- `robot_nav_core2`: Additional utilities
- **Libraries/**: Navigation libraries
- `nav_grid`: Grid utilities
- **Packages/**: Implementations
- `move_base`: MoveBase implementation
### Algorithms/
- **Cores/**: Core algorithms
- `score_algorithm`: Trajectory scoring
- **Libraries/**: Algorithm libraries
- `mkt_algorithm`: Kinematics algorithms
- `mkt_plugins`: Plugin components
- `kalman`: Filtering
- **Packages/**: Algorithm implementations
- `global_planners/`: 3 planners
- `local_planners/`: 1 planner với multiple behaviors
### Libraries/
- **costmap_2d/**: Costmap system với 8 layers
- **tf3/**: Transform system
- **robot_cpp/**: Core utilities (init, NodeHandle, PluginLoaderHelper)
- **common_msgs/**: Message type definitions
- Các utilities khác: time, geometry, sensors, etc.