# Catkin Build Instructions ## Vấn đề Thư mục này có `CMakeLists.txt` ở root để hỗ trợ **standalone CMake build**. Tuy nhiên, **catkin workspace không được phép có CMakeLists.txt ở root**. Khi chạy `catkin_make` trong thư mục này, bạn sẽ gặp lỗi: ``` The specified base path contains a CMakeLists.txt but "catkin_make" must be invoked in the root of workspace ``` ## Giải pháp ### Option 1: Sử dụng script tự động (Khuyến nghị) ```bash # Chạy script setup ./setup_catkin_workspace.sh # Build trong workspace mới cd ../pnkx_nav_catkin_ws catkin_make source devel/setup.bash ``` ### Option 2: Tạo workspace thủ công ```bash # Tạo workspace mkdir -p ~/pnkx_nav_catkin_ws/src cd ~/pnkx_nav_catkin_ws/src # Link các packages có package.xml ln -s /path/to/pnkx_nav_core/src/Navigations/Packages/move_base move_base # ... link các packages khác nếu cần # Build cd ~/pnkx_nav_catkin_ws catkin_make ``` ## Build Systems Project này hỗ trợ **2 build systems**: 1. **Standalone CMake** (mặc định) - Build trực tiếp trong thư mục này: `mkdir build && cd build && cmake .. && make` - Không cần catkin workspace 2. **Catkin** (cho ROS integration) - Cần tạo workspace riêng (xem hướng dẫn trên) - Packages tự động detect catkin mode khi build trong workspace ## Chi tiết Xem `src/Navigations/Packages/move_base/BUILD_INSTRUCTIONS.md` để biết chi tiết về cách build package `move_base` với cả hai hệ thống.