diff --git a/CMakeLists.txt b/CMakeLists.txt index 95e1ed6..ead07f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0.2) -project(mission_adapters VERSION 1.0.0 LANGUAGES CXX) +project(mission_adapters VERSION 0.2.0 LANGUAGES CXX) # ======================================================== -# Detect build mode +# Build mode detection # ======================================================== if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL) set(BUILDING_WITH_CATKIN TRUE) @@ -12,6 +12,7 @@ else() message(STATUS "Building mission_adapters with Standalone CMake") endif() + # ======================================================== # C++ Standard # ======================================================== @@ -19,18 +20,24 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -# ======================================================== -# Common dependencies -# ======================================================== -find_package(PCL REQUIRED) -find_package(OpenMP REQUIRED) -find_package(Boost REQUIRED COMPONENTS system) -find_package(Eigen REQUIRED) # ======================================================== -# Standalone mode +# Common dependencies +# +# Chỉ những thứ code thật sự dùng: message contract (robot_protocol_msgs / robot_geometry_msgs), +# tiện ích ROS-like (robot_cpp / robot_time) và Boost header (boost::shared_ptr trong message). +# PCL / OpenMP / Eigen của bản trước là di sản copy từ template planner, gói này không dùng. # ======================================================== -if (NOT BUILDING_WITH_CATKIN) +# Boost.DLL cần system + filesystem để nạp plugin theo library_path. +find_package(Boost REQUIRED COMPONENTS system filesystem) +find_package(Threads REQUIRED) +find_package(yaml-cpp REQUIRED) + + +# ======================================================== +# Standalone configuration +# ======================================================== +if(NOT BUILDING_WITH_CATKIN) set(CMAKE_POSITION_INDEPENDENT_CODE ON) @@ -38,174 +45,154 @@ if (NOT BUILDING_WITH_CATKIN) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_BUILD_RPATH "${CMAKE_BINARY_DIR}") - # ⚠️ NOTE: Đây KHÔNG phải package thật -> chỉ để placeholder + # Test/ -> src/AMR_T800/pnkx_nav_core/src + set(PNKX_NAV_CORE_SRC_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/../../pnkx_nav_core/src" + ) + + # Test/ -> T800_ws/devel/lib + set(WORKSPACE_DEVEL_LIB_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/../../../../devel/lib" + ) + + file(GLOB STANDALONE_PACKAGE_INCLUDE_DIRS + LIST_DIRECTORIES true + + ${PNKX_NAV_CORE_SRC_DIR}/*/include + ${PNKX_NAV_CORE_SRC_DIR}/*/*/include + ${PNKX_NAV_CORE_SRC_DIR}/*/*/*/include + ${PNKX_NAV_CORE_SRC_DIR}/*/*/*/*/include + ) + + set(STANDALONE_INCLUDE_DIRS + ${STANDALONE_PACKAGE_INCLUDE_DIRS} + + /usr/local/include + ) + set(PACKAGES_DIR - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs robot_cpp - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert + robot_time + robot_xmlrpcpp ) - find_library(TF3_LIBRARY - NAMES tf3 - PATHS /usr/lib /usr/local/lib /usr/lib/x86_64-linux-gnu - ) - - if(NOT TF3_LIBRARY) - message(FATAL_ERROR "❌ tf3 library not found") + if(EXISTS ${WORKSPACE_DEVEL_LIB_DIR}) + link_directories(${WORKSPACE_DEVEL_LIB_DIR}) endif() + link_directories(/usr/local/lib) + # ======================================================== -# Catkin mode +# Catkin configuration # ======================================================== else() find_package(catkin REQUIRED COMPONENTS - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs robot_cpp - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert + robot_time + robot_geometry_msgs + robot_protocol_msgs + robot_std_msgs ) - find_library(TF3_LIBRARY - NAMES tf3 - PATHS /usr/lib /usr/local/lib /usr/lib/x86_64-linux-gnu - ) - - if(NOT TF3_LIBRARY) - message(FATAL_ERROR "❌ tf3 library not found") - endif() - catkin_package( - INCLUDE_DIRS include - LIBRARIES ${PROJECT_NAME} + INCLUDE_DIRS + include + + LIBRARIES + mission_adapters + CATKIN_DEPENDS - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs robot_cpp - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert - DEPENDS PCL Boost + robot_time + robot_geometry_msgs + robot_protocol_msgs + robot_std_msgs + + DEPENDS + Boost ) - include_directories( - include + include_directories(include) + + # SYSTEM: header của dependency (robot_cpp/console.h khai hàng chục hằng màu không dùng) sẽ ngập + # warning dưới -Wall -Wextra và che mất warning của chính gói này. + include_directories(SYSTEM ${catkin_INCLUDE_DIRS} - ${PCL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ) endif() -# ======================================================== -# Libraries -# ======================================================== -# # utils lib -# add_library(${PROJECT_NAME}_utils SHARED -# src/angle_utils.cpp -# src/config.cpp -# ) - -# main planner lib -add_library(${PROJECT_NAME} SHARED - src/mission_adapters.cpp +# ======================================================== +# Core library +# ======================================================== +add_library(mission_adapters SHARED + src/types.cpp + src/event.cpp + src/mission_manager.cpp + src/mission_executor.cpp + src/event_processor.cpp + src/mission_config.cpp + src/plugin_registry.cpp ) +# Gói này KHÔNG kế thừa cờ -w của pnkx_nav_core: warning ở đây phải nhìn thấy được. +target_compile_options(mission_adapters PRIVATE -Wall -Wextra) + +target_include_directories(mission_adapters + PUBLIC + $ + $ +) + + # ======================================================== -# Catkin linking +# Linking # ======================================================== if(BUILDING_WITH_CATKIN) - # add_dependencies(${PROJECT_NAME}_utils ${catkin_EXPORTED_TARGETS}) - add_dependencies(${PROJECT_NAME} ${catkin_EXPORTED_TARGETS}) + add_dependencies(mission_adapters + ${${PROJECT_NAME}_EXPORTED_TARGETS} + ${catkin_EXPORTED_TARGETS} + ) - # target_include_directories(${PROJECT_NAME}_utils - # PUBLIC - # $ - # $ - # ) - - target_include_directories(${PROJECT_NAME} + target_link_libraries(mission_adapters PUBLIC - $ - $ + ${catkin_LIBRARIES} + + PRIVATE + Boost::boost + Boost::system + Boost::filesystem + Threads::Threads + ${CMAKE_DL_LIBS} + yaml-cpp ) - # target_link_libraries(${PROJECT_NAME}_utils - # PUBLIC ${catkin_LIBRARIES} - # PRIVATE Boost::system - # ${TF3_LIBRARY} - # ) - - target_link_libraries(${PROJECT_NAME} - # PUBLIC ${PROJECT_NAME}_utils - PUBLIC ${catkin_LIBRARIES} - PUBLIC ${PCL_LIBRARIES} - PRIVATE Boost::system - ${TF3_LIBRARY} - OpenMP::OpenMP_CXX - ) - -# ======================================================== -# Standalone linking -# ======================================================== else() - # target_include_directories(${PROJECT_NAME}_utils - # PUBLIC - # $ - # $ - # ) + target_include_directories(mission_adapters + PRIVATE + ${STANDALONE_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ) - target_include_directories(${PROJECT_NAME} + target_link_libraries(mission_adapters PUBLIC - $ - $ + ${PACKAGES_DIR} + + PRIVATE + Boost::boost + Boost::system + Boost::filesystem + Threads::Threads + ${CMAKE_DL_LIBS} + yaml-cpp ) - # target_link_libraries(${PROJECT_NAME}_utils - # PUBLIC ${PACKAGES_DIR} # ⚠️ placeholder - # PRIVATE Boost::system - # ${TF3_LIBRARY} - # ) - - target_link_libraries(${PROJECT_NAME} - # PUBLIC ${PROJECT_NAME}_utils - PUBLIC ${PACKAGES_DIR} # ⚠️ placeholder - PUBLIC ${PCL_LIBRARIES} - PRIVATE Boost::system - ${TF3_LIBRARY} - OpenMP::OpenMP_CXX - ) - - # set_target_properties(${PROJECT_NAME}_utils PROPERTIES - # LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - # BUILD_RPATH "${CMAKE_BINARY_DIR}" - # INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" - # ) - - set_target_properties(${PROJECT_NAME} PROPERTIES + set_target_properties(mission_adapters PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} BUILD_RPATH "${CMAKE_BINARY_DIR}" INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" @@ -213,12 +200,110 @@ else() endif() + +# ======================================================== +# Plugins — mỗi nguồn mission là một .so riêng. +# +# Tên file .so phải khớp khoá `library_path` trong +# `pnkx_nav_core/config/mission_adapters_params.yaml`; tên symbol export phải khớp khoá `type` +# trong `mission_sources`. Lệch một trong hai thì build vẫn sạch còn runtime báo "không tìm thấy". +# ======================================================== +set(MISSION_ADAPTERS_PLUGIN_TARGETS + mission_adapters_goal_source + mission_adapters_vda5050_source +) + +add_library(mission_adapters_goal_source SHARED plugins/goal_source_adapter.cpp) +add_library(mission_adapters_vda5050_source SHARED plugins/vda5050_source_adapter.cpp) + +foreach(plugin_target ${MISSION_ADAPTERS_PLUGIN_TARGETS}) + target_compile_options(${plugin_target} PRIVATE -Wall -Wextra) + + set_target_properties(${plugin_target} PROPERTIES POSITION_INDEPENDENT_CODE ON) + + target_include_directories(${plugin_target} + PUBLIC + $ + ) + + target_link_libraries(${plugin_target} + PUBLIC + mission_adapters + + PRIVATE + Boost::boost + Threads::Threads + ) + + if(NOT BUILDING_WITH_CATKIN) + target_include_directories(${plugin_target} PRIVATE ${STANDALONE_INCLUDE_DIRS}) + target_link_libraries(${plugin_target} PRIVATE ${PACKAGES_DIR}) + + set_target_properties(${plugin_target} PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} + BUILD_RPATH "${CMAKE_BINARY_DIR}" + INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" + ) + endif() +endforeach() + + +# ======================================================== +# Example +# +# Có build để tài liệu không trôi khỏi API: đổi contract mà quên ví dụ thì build gãy ngay. +# ======================================================== +option(BUILD_MISSION_ADAPTERS_EXAMPLES "Build mission_adapters examples" ON) + +if(BUILD_MISSION_ADAPTERS_EXAMPLES) + + add_executable(robot_control_example examples/robot_control_example.cpp) + + target_compile_options(robot_control_example PRIVATE -Wall -Wextra) + + target_link_libraries(robot_control_example + PRIVATE + mission_adapters + Threads::Threads + ) + + if(NOT BUILDING_WITH_CATKIN) + target_include_directories(robot_control_example + PRIVATE + ${STANDALONE_INCLUDE_DIRS} + ) + + target_link_libraries(robot_control_example PRIVATE ${PACKAGES_DIR}) + endif() + + # Demo: chạy một VDA5050 Order qua VDA5050SourceAdapter và in ra các chặng thu được. + # Link thẳng plugin source adapter thay vì nạp qua boost::dll — demo chỉ cần xem kết quả cắt + # chặng, không cần kiểm tra đường nạp plugin. + add_executable(vda5050_order_demo examples/vda5050_order_demo.cpp) + + target_compile_options(vda5050_order_demo PRIVATE -Wall -Wextra) + + target_link_libraries(vda5050_order_demo + PRIVATE + mission_adapters + mission_adapters_vda5050_source + Threads::Threads + ) + + if(NOT BUILDING_WITH_CATKIN) + target_include_directories(vda5050_order_demo PRIVATE ${STANDALONE_INCLUDE_DIRS}) + target_link_libraries(vda5050_order_demo PRIVATE ${PACKAGES_DIR}) + endif() + +endif() + + # ======================================================== # Install # ======================================================== if(BUILDING_WITH_CATKIN) - install(TARGETS ${PROJECT_NAME} + install(TARGETS mission_adapters ${MISSION_ADAPTERS_PLUGIN_TARGETS} ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} @@ -229,15 +314,9 @@ if(BUILDING_WITH_CATKIN) FILES_MATCHING PATTERN "*.h" ) - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/plugins.xml) - install(FILES plugins.xml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} - ) - endif() - else() - install(TARGETS ${PROJECT_NAME} + install(TARGETS mission_adapters ${MISSION_ADAPTERS_PLUGIN_TARGETS} EXPORT ${PROJECT_NAME}-targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib @@ -255,56 +334,71 @@ else() FILES_MATCHING PATTERN "*.h" ) - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/plugins.xml) - install(FILES plugins.xml - DESTINATION share/${PROJECT_NAME} - ) - endif() - endif() + # ======================================================== -# Unit Test +# Tests +# +# Gói này đăng ký test với catkin/ctest (chạy được qua `catkin_make run_tests`) VÀ mở +# EXCLUDE_FROM_ALL để binary có mặt sau `catkin_make` thường — chạy thẳng +# ./devel/lib/mission_adapters/ theo đúng quy trình verify của repo. # ======================================================== -if(CATKIN_ENABLE_TESTING) +if(CATKIN_ENABLE_TESTING AND BUILDING_WITH_CATKIN) - find_package(catkin REQUIRED COMPONENTS - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs - robot_cpp - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert - ) - - message(STATUS "CATKIN_ENABLE_TESTING=${CATKIN_ENABLE_TESTING}") - - if(COMMAND catkin_add_gtest) - message(STATUS "catkin_add_gtest exists") - else() + if(NOT COMMAND catkin_add_gtest) message(FATAL_ERROR "catkin_add_gtest NOT FOUND") endif() - catkin_add_gtest(test_mission_adapters - test/mission_adapters_test.cpp + set(MISSION_ADAPTERS_TESTS + event_bus_test + adapter_test + mission_manager_test + mission_lifecycle_test + plugin_registry_test ) - if(TARGET test_mission_adapters) - target_link_libraries(test_mission_adapters - mission_adapters - ${catkin_LIBRARIES} - pthread - ) + foreach(test_name ${MISSION_ADAPTERS_TESTS}) + catkin_add_gtest(${test_name} test/${test_name}.cpp) - target_include_directories(test_mission_adapters PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${catkin_INCLUDE_DIRS} - ) - endif() + if(TARGET ${test_name}) + set_target_properties(${test_name} PROPERTIES EXCLUDE_FROM_ALL FALSE) + + target_compile_options(${test_name} PRIVATE -Wall -Wextra) + + target_include_directories(${test_name} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/plugins + ${CMAKE_CURRENT_SOURCE_DIR}/test + ) + + target_include_directories(${test_name} SYSTEM + PRIVATE + ${catkin_INCLUDE_DIRS} + ) + + # catkin_add_gtest dùng target_link_libraries dạng plain, nên phần bổ sung cũng phải plain. + # + # Test link thẳng plugin .so để kiểm logic chuyển đổi ở mức unit; đường nạp qua Boost.DLL + # được kiểm riêng trong plugin_registry_test. + target_link_libraries(${test_name} + mission_adapters + ${MISSION_ADAPTERS_PLUGIN_TARGETS} + ${catkin_LIBRARIES} + pthread + ) + + # plugin_registry_test nạp .so từ devel/lib theo library_path, nên cần cả hai plugin đã build. + add_dependencies(${test_name} ${MISSION_ADAPTERS_PLUGIN_TARGETS}) + + # Đường tới cây config và thư mục .so của test, để binary tự trỏ đúng chỗ khi chạy qua ctest + # (ctest không mang theo PNKX_NAV_CORE_CONFIG_DIR hay LD_LIBRARY_PATH của shell). + target_compile_definitions(${test_name} PRIVATE + MISSION_ADAPTERS_TEST_CONFIG_DIR="${CMAKE_CURRENT_SOURCE_DIR}/test/config" + MISSION_ADAPTERS_TEST_LIBRARY_DIR="${CATKIN_DEVEL_PREFIX}/lib" + ) + endif() + endforeach() endif() diff --git a/README.md b/README.md index 5728f22..8f22980 100644 --- a/README.md +++ b/README.md @@ -1,461 +1,195 @@ -# Mission Adapters +# mission_adapters -Mission Adapters là một framework quản lý nhiệm vụ (Mission Management Framework) được xây dựng bằng C++ thuần, hướng tới các hệ thống AGV/AMR và tương thích với mô hình nhiệm vụ của VDA5050. +Lớp mission độc lập ROS: nhận yêu cầu từ nguồn ngoài (goal đơn lẻ, VDA5050 Order), chuyển thành hàng +đợi mission, và giữ trạng thái của hàng đợi đó. -Framework cung cấp: +Gói **không biết** navigation runtime nào đang chạy phía sau. Mission đi xuống qua cổng +`NavigationClient`, kết quả quay về theo `MissionId`. Nhờ vậy cùng một lớp mission dùng lại được cho +runtime khác, và test được mà không cần robot. -* Chuyển đổi Goal hoặc VDA5050 Order thành Mission. -* Quản lý hàng đợi Mission. -* Xử lý Event bất đồng bộ. -* Điều phối Mission theo trạng thái Robot. -* Hỗ trợ Pause / Resume / Cancel / Emergency. -* Tách biệt Mission Scheduling và Mission Execution. -* Không phụ thuộc ROS. +Nguồn mission là plugin nạp bằng Boost.DLL theo khoá `library_path` trong YAML — xem +[docs/PLUGIN_GUIDE.md](docs/PLUGIN_GUIDE.md). ---- - -# Kiến trúc tổng thể +## Luồng runtime ```text -Order / Goal - │ - ▼ -+------------------+ -| EventProcessor | -+------------------+ - │ - ▼ -+------------------+ -| MissionManager | -+------------------+ - │ - ▼ -+------------------+ -| MissionExecutor | -+------------------+ - │ - ▼ - Navigation Stack - (MoveBase, MPPI, - Pure Pursuit...) + host (MQTT / OPC-UA / REST / UI) + │ goalEvent / orderEvent / submitRequest(MissionRequest) + ▼ + ┌──────────────────┐ tra schema ┌────────────────┐ + │ EventProcessor │ ──────────────► │ PluginRegistry │ (các .so nguồn mission) + │ (thread event) │ ◄────────────── └────────────────┘ + └──────────────────┘ ConversionResult + │ submit(missions) / append(missions) + ▼ + ┌──────────────────┐ + │ MissionManager │ hàng đợi + MissionState, cấp MissionId + └──────────────────┘ + │ nextMission() / takePendingCancel() + ▼ + ┌──────────────────┐ + │ MissionExecutor │ thread DUY NHẤT phát lệnh ra ngoài + │ (thread exec) │ + └──────────────────┘ + │ NavigationClient::dispatch(mission) / cancelActive(id) + ▼ + navigation runtime + │ navDoneEvent(id) / navFailedEvent(id) + └──────────────────────────► quay lại EventProcessor ``` ---- +## Bất biến quan trọng -# Thành phần chính +Đây là những tính chất mà bộ test khoá lại; đọc phần này trước khi sửa code. -## Mission +- **Mọi outcome mang `MissionId`.** `navDoneEvent(id)` / `navFailedEvent(id)` chỉ được chấp nhận khi + `id` khớp mission đang chạy. Outcome đến trễ của một mission đã bị thay thế bị loại bỏ kèm log — + nếu không, kết quả của chặng cũ sẽ "hoàn thành" chặng mới mà robot chưa hề chạy. +- **`submit()` với danh sách rỗng là no-op tuyệt đối.** Một order lỗi không phải lệnh huỷ việc đang + chạy; nó không được đụng tới hàng đợi. +- **Mọi đường thoát của một mission đều bảo navigation dừng.** Bị thay thế (preempt), bị huỷ, + emergency, quá hạn — tất cả đều đi qua `NavigationClient::cancelActive()`. Mission layer quên + mission mà không bảo navigation dừng thì robot vẫn chạy tiếp tới goal cũ. +- **Thứ tự sự kiện = thứ tự phát sinh (FIFO).** Phát order rồi huỷ ngay thì huỷ phải được xử lý sau + order, nếu không robot chạy đúng cái người dùng vừa huỷ. Ngoại lệ duy nhất là emergency: nó bật cờ + atomic ngay tại chỗ gọi nên độ trễ phản ứng không phụ thuộc độ dài hàng đợi. +- **`nextMission()` trả mỗi mission đúng một lần**, tại đúng bước chuyển `QUEUED → RUNNING`. Bên gọi + không phải tự khử trùng lặp. +- **Mission bất biến sau khi submit.** `MissionManager` gán `id` rồi chia sẻ dưới dạng + `shared_ptr` — ba thread đọc chung mà không cần khoá. +- **`MissionManager` không bao giờ gọi ra ngoài khi đang giữ khoá.** Nó chỉ ghi "mission này cần + được dừng" vào ô pending-cancel; `MissionExecutor` mới là thread thực hiện lời gọi đó. -Đơn vị thực thi cơ bản. +## State machine + +```text +IDLE ──submit──► QUEUED ──dequeue──► RUNNING ──nav_done──► còn mission? ──có──► QUEUED + │ (nav + action đều xong) │ + │ nav_failed / mission_timeout │ không + ▼ ▼ + FAILED ──submit mới──► QUEUED COMPLETED ──submit mới──► QUEUED + +PAUSED ◄── pause / resume ──► (state trước đó) +cancel (mọi state active) ──► CANCELLED ──submit mới──► QUEUED +EMERGENCY: từ MỌI state; clear_emergency ──► CLEAR_EMERGENCY ──submit mới──► QUEUED +``` + +`nav_done(id)` nghĩa là **cả chặng** hoàn tất — navigation lẫn action. Mission layer không có state +chờ action riêng: action do navigation runtime thực thi, và mission layer giữ nguyên `RUNNING` trọn +chặng. + +Mọi lần đổi trạng thái được log một dòng `from -> to (lý do, mission id)` ở mức info, và chỉ khi +state đổi thật. + +## Kiểu dữ liệu ```cpp +using MissionId = std::uint64_t; // 0 = kInvalidMissionId + class Mission { public: - int sequenceId; - - MissionType type; - - int priority; - - PoseStamped start; - - PoseStamped goal; - - std::vector nodes; - - std::vector edges; - - std::vector actions; + MissionId id; // MissionManager cấp khi submit, đơn điệu tăng + MissionType type; // SIMPLE_GOAL | VDA5050_ORDER + bool has_goal; // false = mission chỉ-có-action, navigation bỏ qua phần di chuyển + robot_geometry_msgs::PoseStamped start; // chỉ hợp lệ khi has_goal + robot_geometry_msgs::PoseStamped goal; // chỉ hợp lệ khi has_goal + std::vector nodes; + std::vector edges; + std::vector actions; // đã sắp theo sequenceId, đi qua nguyên vẹn }; ``` -Mission có thể được tạo từ: +Mission là **self-contained**: consumer không phải suy goal ra từ `nodes.back()`. Adapter VDA5050 +set sẵn `start`/`goal` từ `nodePosition` (theta `[rad]` → quaternion quanh trục z). -* Goal đơn giản -* VDA5050 Order +`has_goal == false` bắt buộc đi kèm ít nhất một action; core từ chối cả lô nếu adapter vi phạm. ---- +## VDA5050 conformance -## Action +`VDA5050SourceAdapter` chịu trách nhiệm ba điểm: -Đại diện cho một hành động tại Node hoặc Edge. +| Điểm | Hành vi | +|---|---| +| `released` (base/horizon) | Chỉ phần base được thực thi. Horizon là dự định của fleet manager, chưa được phép chạy. Order không điền `released` ở đâu cả thì cả order được coi là base, kèm log cảnh báo. | +| `orderId` / `orderUpdateId` | `orderId` mới → thay hàng đợi (`kReplace`). Cùng `orderId` + `orderUpdateId` lớn hơn → chỉ sinh phần vừa release thêm và **nối tiếp** (`kAppend`). `orderUpdateId` không mới hơn → từ chối. | +| `goal` / `start` | Set từ node cuối / node đầu của chặng, trong frame `global_frame` (mặc định `map`). VDA5050 `mapId` là danh tính bản đồ, không phải frame TF, nên không dùng làm `frame_id`. | + +Chặng được cắt tại mỗi node có action: robot chạy tới node đó rồi mới thực hiện action. Action ngay +tại node xuất phát sinh ra một chặng `has_goal == false`. + +## Config + +Bản runtime: `pnkx_nav_core/config/mission_adapters_params.yaml`. +Bản test: `test/config/mission_adapters_params.yaml`, chỉ được đọc khi chạy kèm +`PNKX_NAV_CORE_CONFIG_DIR`. + +| Khoá | Đơn vị / mặc định | Ý nghĩa | +|---|---|---| +| `mission_adapters/mission_sources` | — | Danh sách nguồn mission `{name, type}` | +| `mission_adapters/mission_timeout` | `[s]`, `0.0` | Trần thời gian cho một chặng; `0` = tắt. Quá hạn → chặng thất bại **và** navigation được bảo dừng | +| `mission_adapters/clear_queue_on_failure` | `true` | Một chặng hỏng thì xoá sạch hàng đợi. Đặt `false` chỉ khi các mission độc lập với nhau | +| `/library_path` | — | Tên `.so` của plugin — **thiếu khoá này là lỗi runtime phổ biến nhất** | + +## Dùng ```cpp -class Action -{ -public: - int sequenceId; +mission_adapters::PluginRegistry registry; +robot::NodeHandle nh; +registry.loadFromConfig(nh); // nạp nguồn mission từ YAML - ActionType type; +mission_adapters::MissionConfig config; +config.loadFromParams(nh); - robot_protocol_msgs::Action action; -}; +mission_adapters::MissionManager manager(config); +mission_adapters::EventProcessor processor(manager, registry); +mission_adapters::MissionExecutor executor(manager); + +executor.setNavigationClient(&my_navigation_client); // non-owning, phải sống lâu hơn executor +processor.start(); +executor.start(); + +processor.goalEvent(goal); // hoặc orderEvent(order) / submitRequest(request) +// ... navigation runtime gọi processor.navDoneEvent(mission->id) khi chặng xong ... ``` -Các Action sẽ được sắp xếp theo `sequenceId`. +Ví dụ đầy đủ: [`examples/robot_control_example.cpp`](examples/robot_control_example.cpp) — có build, +nên nó không thể trôi khỏi API. ---- +## Build và test -## GoalAdapter +```bash +catkin_make --pkg mission_adapters +source devel/setup.bash -Chuyển đổi Goal thành Mission. +./devel/lib/mission_adapters/event_bus_test +./devel/lib/mission_adapters/adapter_test +./devel/lib/mission_adapters/mission_manager_test +./devel/lib/mission_adapters/mission_lifecycle_test -```cpp -GoalAdapter adapter; - -auto missions = - adapter.convert(goal); +PNKX_NAV_CORE_CONFIG_DIR=src/AMR_T800/Test/mission_adapters/test/config \ + ./devel/lib/mission_adapters/plugin_registry_test ``` -Kết quả: +Test cũng đăng ký với ctest: `cd build && ctest -R mission_adapters --output-on-failure`. -```text -Goal - └── Mission -``` +## Thread ---- +| Thread | Sở hữu | Đánh thức bởi | +|---|---|---| +| `EventProcessor` | hàng đợi sự kiện, gọi adapter | `EventBus::pop()` chờ sự kiện | +| `MissionExecutor` | mọi lời gọi xuống `NavigationClient` | `MissionManager::waitForWork()` chờ condition variable | +| host | phát sự kiện, nhận outcome | — | -## VDA5050Adapter +Chuyển đổi payload → mission chạy trên thread của `EventProcessor`, không phải thread host: adapter +được phép có state, và chuyển đổi trên nhiều thread host sẽ tranh chấp state đó. -Chuyển đổi Order thành danh sách Mission. +`MissionExecutor` không poll. Trong một vòng nó luôn **cancel trước, dispatch sau** — chặng cũ phải +được bảo dừng trước khi chặng mới bắt đầu. -Ví dụ: +## Chưa có -```text -N1 ---- N2 ---- N3(Action) - | - | - V - Mission A - -N3 ---- N4 ---- N5(Action) - | - | - V - Mission B -``` - -Order sẽ được chia thành nhiều Mission tại các Node chứa Action. - ---- - -## EventBus - -Hàng đợi ưu tiên cho các Event. - -```cpp -std::priority_queue< - Event, - std::vector, - EventCompare>; -``` - -Priority nhỏ hơn sẽ được xử lý trước. - -```cpp -EMERGENCY = 0 -CANCEL = 1 -RESUME = 2 -PAUSE = 3 -NAV_DONE = 4 -ORDER = 5 -``` - ---- - -## EventProcessor - -Tiếp nhận Event từ bên ngoài. - -Ví dụ: - -```cpp -event_processor.orderEvent(order); - -event_processor.pauseEvent(); - -event_processor.resumeEvent(); - -event_processor.cancelEvent(); - -event_processor.emergencyEvent(); -``` - -EventProcessor hoạt động trên một worker thread riêng. - ---- - -## MissionManager - -Quản lý trạng thái và hàng đợi Mission. - -Các trạng thái hỗ trợ: - -```cpp -IDLE -QUEUED -RUNNING -PAUSED -WAITING_ACTION -RECOVERY -COMPLETED -FAILED -CANCELLED -EMERGENCY -``` - -Chức năng: - -* Submit Mission -* Lấy Mission tiếp theo -* Pause -* Resume -* Cancel -* Emergency -* Navigation Done -* Navigation Failed - ---- - -## MissionExecutor - -Thread chuyên lấy Mission từ MissionManager. - -Khi có Mission mới, callback sẽ được gọi. - -```cpp -using MissionCallback = - std::function< - void( - const std::shared_ptr& - ) - >; -``` - -Đăng ký callback: - -```cpp -mission_executor.setMissionCallback( - [&](const std::shared_ptr& mission) - { - executeMission(*mission); - }); -``` - ---- - -# Luồng hoạt động - -## Goal - -```text -Goal - │ - ▼ -GoalAdapter - │ - ▼ -Mission - │ - ▼ -MissionManager - │ - ▼ -MissionExecutor - │ - ▼ -Navigation -``` - ---- - -## Order - -```text -Order - │ - ▼ -VDA5050Adapter - │ - ▼ -Mission A -Mission B -Mission C - │ - ▼ -Mission Queue - │ - ▼ -MissionExecutor -``` - ---- - -# Navigation Feedback - -Khi Navigation hoàn thành: - -```cpp -event_processor.navDoneEvent(); -``` - -Khi Navigation thất bại: - -```cpp -event_processor.navFailedEvent(); -``` - -Ví dụ: - -```cpp -auto state = - move_base_ptr_->getFeedback() - ->navigation_state; - -if(state != prev_state_) -{ - if(state == - State::SUCCEEDED) - { - event_processor.navDoneEvent(); - } - - if(state == - State::ABORTED) - { - event_processor.navFailedEvent(); - } - - prev_state_ = state; -} -``` - ---- - -# Ví dụ sử dụng - -## Khởi tạo - -```cpp -MissionManager mission_manager; - -EventProcessor event_processor( - mission_manager); - -MissionExecutor mission_executor( - mission_manager); -``` - ---- - -## Start - -```cpp -event_processor.start(); - -mission_executor.start(); -``` - ---- - -## Đăng ký callback - -```cpp -mission_executor.setMissionCallback( - [&](const std::shared_ptr& mission) - { - executeMission(*mission); - }); -``` - ---- - -## Nhận Order - -```cpp -robot_protocol_msgs::Order order; - -event_processor.orderEvent(order); -``` - ---- - -## Pause - -```cpp -event_processor.pauseEvent(); -``` - ---- - -## Resume - -```cpp -event_processor.resumeEvent(); -``` - ---- - -## Cancel - -```cpp -event_processor.cancelEvent(); -``` - ---- - -## Emergency Stop - -```cpp -event_processor.emergencyEvent(); -``` - ---- - -# Thread Model - -Framework sử dụng 2 worker thread: - -```text -Thread 1 - └─ EventProcessor - -Thread 2 - └─ MissionExecutor -``` - -Navigation Stack hoạt động độc lập. - -```text -Main Thread - │ - ├─ Navigation - │ - ├─ EventProcessor - │ - └─ MissionExecutor -``` - ---- - -# TODO - -Các chức năng dự kiến bổ sung: - -* Action Executor -* WAITING_ACTION state -* ACTION_DONE event -* ACTION_FAILED event -* Recovery Framework -* Mission Priority Queue -* Mission Persistence -* VDA5050 Instant Actions -* Multi-Robot Fleet Support - ---- - -# License - -Internal Project. +- Mission persistence (mất điện giữa order thì hàng đợi mất). +- VDA5050 instant actions. +- Mission priority queue — hàng đợi hiện là FIFO thuần. +- Multi-robot fleet. diff --git a/build-standalone-codex-5j6ZZh/CMakeCache.txt b/build-standalone-codex-5j6ZZh/CMakeCache.txt new file mode 100644 index 0000000..368bfe6 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeCache.txt @@ -0,0 +1,393 @@ +# This is the CMakeCache file. +# For build in directory: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Build mission_adapters examples +BUILD_MISSION_ADAPTERS_EXAMPLES:BOOL=ON + +//The directory containing a CMake configuration file for Boost. +Boost_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0 + +Boost_FILESYSTEM_LIBRARY_RELEASE:STRING=/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 + +//Path to a file. +Boost_INCLUDE_DIR:PATH=/usr/include + +Boost_SYSTEM_LIBRARY_RELEASE:STRING=/usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=mission_adapters + +//Value Computed by CMake +CMAKE_PROJECT_VERSION:STATIC=0.2.0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MAJOR:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MINOR:STATIC=2 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_PATCH:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_TWEAK:STATIC= + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//The directory containing a CMake configuration file for boost_filesystem. +boost_filesystem_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_filesystem-1.71.0 + +//The directory containing a CMake configuration file for boost_headers. +boost_headers_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0 + +//The directory containing a CMake configuration file for boost_system. +boost_system_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0 + +//Value Computed by CMake +mission_adapters_BINARY_DIR:STATIC=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +//Dependencies for the target +mission_adapters_LIB_DEPENDS:STATIC=general;robot_cpp;general;robot_time;general;robot_xmlrpcpp;general;Boost::system;general;Boost::filesystem;general;dl;general;yaml-cpp; + +//Value Computed by CMake +mission_adapters_SOURCE_DIR:STATIC=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +//Dependencies for the target +mission_adapters_goal_source_LIB_DEPENDS:STATIC=general;mission_adapters;general;robot_cpp;general;robot_time;general;robot_xmlrpcpp; + +//Dependencies for the target +mission_adapters_vda5050_source_LIB_DEPENDS:STATIC=general;mission_adapters;general;robot_cpp;general;robot_time;general;robot_xmlrpcpp; + +//The directory containing a CMake configuration file for yaml-cpp. +yaml-cpp_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/yaml-cpp + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: Boost_DIR +Boost_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=16 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL= +//Have library pthreads +CMAKE_HAVE_PTHREADS_CREATE:INTERNAL= +//Have library pthread +CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1 +//Have include pthread.h +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.16 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding Boost +FIND_PACKAGE_MESSAGE_DETAILS_Boost:INTERNAL=[/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake][cfound components: system filesystem ][v1.71.0()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] +//ADVANCED property for variable: boost_filesystem_DIR +boost_filesystem_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: boost_headers_DIR +boost_headers_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: boost_system_DIR +boost_system_DIR-ADVANCED:INTERNAL=1 + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..278ef39 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake @@ -0,0 +1,88 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "9.4.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-9") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..ee268c0 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeSystem.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeSystem.cmake new file mode 100644 index 0000000..8b384d4 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.15.0-139-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.15.0-139-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-5.15.0-139-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "5.15.0-139-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..69cfdba --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,660 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/a.out b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/a.out new file mode 100755 index 0000000..2881803 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/a.out differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeDirectoryInformation.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..ee2f16e --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeError.log b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeError.log new file mode 100644 index 0000000..9d2a1a9 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeError.log @@ -0,0 +1,58 @@ +Performing C++ SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_a28ea/fast && /usr/bin/make -f CMakeFiles/cmTC_a28ea.dir/build.make CMakeFiles/cmTC_a28ea.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_a28ea.dir/src.cxx.o +/usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_a28ea.dir/src.cxx.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp/src.cxx +Linking CXX executable cmTC_a28ea +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a28ea.dir/link.txt --verbose=1 +/usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_a28ea.dir/src.cxx.o -o cmTC_a28ea +/usr/bin/ld: CMakeFiles/cmTC_a28ea.dir/src.cxx.o: in function `main': +src.cxx:(.text+0x46): undefined reference to `pthread_create' +/usr/bin/ld: src.cxx:(.text+0x52): undefined reference to `pthread_detach' +/usr/bin/ld: src.cxx:(.text+0x63): undefined reference to `pthread_join' +collect2: error: ld returned 1 exit status +make[1]: *** [CMakeFiles/cmTC_a28ea.dir/build.make:87: cmTC_a28ea] Error 1 +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +make: *** [Makefile:121: cmTC_a28ea/fast] Error 2 + + +Source file was: +#include + +void* test_func(void* data) +{ + return data; +} + +int main(void) +{ + pthread_t thread; + pthread_create(&thread, NULL, test_func, NULL); + pthread_detach(thread); + pthread_join(thread, NULL); + pthread_atfork(NULL, NULL, NULL); + pthread_exit(NULL); + + return 0; +} + +Determining if the function pthread_create exists in the pthreads failed with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_95808/fast && /usr/bin/make -f CMakeFiles/cmTC_95808.dir/build.make CMakeFiles/cmTC_95808.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_95808.dir/CheckFunctionExists.cxx.o +/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_95808.dir/CheckFunctionExists.cxx.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx +Linking CXX executable cmTC_95808 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_95808.dir/link.txt --verbose=1 +/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_95808.dir/CheckFunctionExists.cxx.o -o cmTC_95808 -lpthreads +/usr/bin/ld: cannot find -lpthreads +collect2: error: ld returned 1 exit status +make[1]: *** [CMakeFiles/cmTC_95808.dir/build.make:87: cmTC_95808] Error 1 +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +make: *** [Makefile:121: cmTC_95808/fast] Error 2 + + + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeOutput.log b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..24ae17c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeOutput.log @@ -0,0 +1,265 @@ +The system is: Linux - 5.15.0-139-generic - x86_64 +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/3.16.3/CompilerIdCXX/a.out" + +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_333d8/fast && /usr/bin/make -f CMakeFiles/cmTC_333d8.dir/build.make CMakeFiles/cmTC_333d8.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_333d8.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_333d8.dir/testCXXCompiler.cxx.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_333d8 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_333d8.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_333d8.dir/testCXXCompiler.cxx.o -o cmTC_333d8 +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' + + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_7ffbf/fast && /usr/bin/make -f CMakeFiles/cmTC_7ffbf.dir/build.make CMakeFiles/cmTC_7ffbf.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -v -o CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc9t2Bmv.s +GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 3d1eba838554fa2348dba760e4770469 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc9t2Bmv.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +Linking CXX executable cmTC_7ffbf +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7ffbf.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_7ffbf +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_7ffbf' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSNHlRU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_7ffbf /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_7ffbf' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/9] + add: [/usr/include/x86_64-linux-gnu/c++/9] + add: [/usr/include/c++/9/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9] + collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_7ffbf/fast && /usr/bin/make -f CMakeFiles/cmTC_7ffbf.dir/build.make CMakeFiles/cmTC_7ffbf.dir/build] + ignore line: [make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc9t2Bmv.s] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 3d1eba838554fa2348dba760e4770469] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc9t2Bmv.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking CXX executable cmTC_7ffbf] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7ffbf.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_7ffbf ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_7ffbf' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSNHlRU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_7ffbf /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccSNHlRU.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_7ffbf] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_7ffbf.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Determining if the include file pthread.h exists passed with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_6a8e7/fast && /usr/bin/make -f CMakeFiles/cmTC_6a8e7.dir/build.make CMakeFiles/cmTC_6a8e7.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_6a8e7.dir/CheckIncludeFile.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_6a8e7.dir/CheckIncludeFile.cxx.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx +Linking CXX executable cmTC_6a8e7 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6a8e7.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_6a8e7.dir/CheckIncludeFile.cxx.o -o cmTC_6a8e7 +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' + + + +Determining if the function pthread_create exists in the pthread passed with the following output: +Change Dir: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_5e940/fast && /usr/bin/make -f CMakeFiles/cmTC_5e940.dir/build.make CMakeFiles/cmTC_5e940.dir/build +make[1]: Entering directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_5e940.dir/CheckFunctionExists.cxx.o +/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_5e940.dir/CheckFunctionExists.cxx.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx +Linking CXX executable cmTC_5e940 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5e940.dir/link.txt --verbose=1 +/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_5e940.dir/CheckFunctionExists.cxx.o -o cmTC_5e940 -lpthread +make[1]: Leaving directory '/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/CMakeTmp' + + + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx b/build-standalone-codex-5j6ZZh/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx new file mode 100644 index 0000000..13435e0 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx @@ -0,0 +1,28 @@ +#ifdef CHECK_FUNCTION_EXISTS + +# ifdef __cplusplus +extern "C" +# endif + char + CHECK_FUNCTION_EXISTS(void); +# ifdef __CLASSIC_C__ +int main() +{ + int ac; + char* av[]; +# else +int main(int ac, char* av[]) +{ +# endif + CHECK_FUNCTION_EXISTS(); + if (ac > 1000) { + return *av[0]; + } + return 0; +} + +#else /* CHECK_FUNCTION_EXISTS */ + +# error "CHECK_FUNCTION_EXISTS has to specify the function" + +#endif /* CHECK_FUNCTION_EXISTS */ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets-noconfig.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets-noconfig.cmake new file mode 100644 index 0000000..15f18f5 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets-noconfig.cmake @@ -0,0 +1,40 @@ +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Import target "mission_adapters::mission_adapters" for configuration "" +set_property(TARGET mission_adapters::mission_adapters APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(mission_adapters::mission_adapters PROPERTIES + IMPORTED_LINK_DEPENDENT_LIBRARIES_NOCONFIG "yaml-cpp" + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libmission_adapters.so" + IMPORTED_SONAME_NOCONFIG "libmission_adapters.so" + ) + +list(APPEND _IMPORT_CHECK_TARGETS mission_adapters::mission_adapters ) +list(APPEND _IMPORT_CHECK_FILES_FOR_mission_adapters::mission_adapters "${_IMPORT_PREFIX}/lib/libmission_adapters.so" ) + +# Import target "mission_adapters::mission_adapters_goal_source" for configuration "" +set_property(TARGET mission_adapters::mission_adapters_goal_source APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(mission_adapters::mission_adapters_goal_source PROPERTIES + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libmission_adapters_goal_source.so" + IMPORTED_SONAME_NOCONFIG "libmission_adapters_goal_source.so" + ) + +list(APPEND _IMPORT_CHECK_TARGETS mission_adapters::mission_adapters_goal_source ) +list(APPEND _IMPORT_CHECK_FILES_FOR_mission_adapters::mission_adapters_goal_source "${_IMPORT_PREFIX}/lib/libmission_adapters_goal_source.so" ) + +# Import target "mission_adapters::mission_adapters_vda5050_source" for configuration "" +set_property(TARGET mission_adapters::mission_adapters_vda5050_source APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(mission_adapters::mission_adapters_vda5050_source PROPERTIES + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libmission_adapters_vda5050_source.so" + IMPORTED_SONAME_NOCONFIG "libmission_adapters_vda5050_source.so" + ) + +list(APPEND _IMPORT_CHECK_TARGETS mission_adapters::mission_adapters_vda5050_source ) +list(APPEND _IMPORT_CHECK_FILES_FOR_mission_adapters::mission_adapters_vda5050_source "${_IMPORT_PREFIX}/lib/libmission_adapters_vda5050_source.so" ) + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets.cmake new file mode 100644 index 0000000..4ba96ca --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets.cmake @@ -0,0 +1,113 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) + message(FATAL_ERROR "CMake >= 2.6.0 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.6) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_targetsDefined) +set(_targetsNotDefined) +set(_expectedTargets) +foreach(_expectedTarget mission_adapters::mission_adapters mission_adapters::mission_adapters_goal_source mission_adapters::mission_adapters_vda5050_source) + list(APPEND _expectedTargets ${_expectedTarget}) + if(NOT TARGET ${_expectedTarget}) + list(APPEND _targetsNotDefined ${_expectedTarget}) + endif() + if(TARGET ${_expectedTarget}) + list(APPEND _targetsDefined ${_expectedTarget}) + endif() +endforeach() +if("${_targetsDefined}" STREQUAL "${_expectedTargets}") + unset(_targetsDefined) + unset(_targetsNotDefined) + unset(_expectedTargets) + set(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT "${_targetsDefined}" STREQUAL "") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n") +endif() +unset(_targetsDefined) +unset(_targetsNotDefined) +unset(_expectedTargets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target mission_adapters::mission_adapters +add_library(mission_adapters::mission_adapters SHARED IMPORTED) + +set_target_properties(mission_adapters::mission_adapters PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + INTERFACE_LINK_LIBRARIES "robot_cpp;robot_time;robot_xmlrpcpp" +) + +# Create imported target mission_adapters::mission_adapters_goal_source +add_library(mission_adapters::mission_adapters_goal_source SHARED IMPORTED) + +set_target_properties(mission_adapters::mission_adapters_goal_source PROPERTIES + INTERFACE_LINK_LIBRARIES "mission_adapters::mission_adapters" +) + +# Create imported target mission_adapters::mission_adapters_vda5050_source +add_library(mission_adapters::mission_adapters_vda5050_source SHARED IMPORTED) + +set_target_properties(mission_adapters::mission_adapters_vda5050_source PROPERTIES + INTERFACE_LINK_LIBRARIES "mission_adapters::mission_adapters" +) + +if(CMAKE_VERSION VERSION_LESS 2.8.12) + message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") +endif() + +# Load information for each installed configuration. +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/mission_adapters-targets-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(target ${_IMPORT_CHECK_TARGETS} ) + foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} ) + if(NOT EXISTS "${file}" ) + message(FATAL_ERROR "The imported target \"${target}\" references the file + \"${file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + unset(_IMPORT_CHECK_FILES_FOR_${target}) +endforeach() +unset(_IMPORT_CHECK_TARGETS) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..3be5339 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile.cmake @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.16.3/CMakeSystem.cmake" + "CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfigVersion.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/BoostDetectToolset-1.71.0.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_filesystem-1.71.0/boost_filesystem-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_filesystem-1.71.0/boost_filesystem-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_filesystem-1.71.0/libboost_filesystem-variant-shared.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_filesystem-1.71.0/libboost_filesystem-variant-static.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/boost_system-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/boost_system-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/libboost_system-variant-shared.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/libboost_system-variant-static.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/yaml-cpp/yaml-cpp-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/yaml-cpp/yaml-cpp-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/yaml-cpp/yaml-cpp-targets-release.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/yaml-cpp/yaml-cpp-targets.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.16/Modules/CheckCXXSourceCompiles.cmake" + "/usr/share/cmake-3.16/Modules/CheckFunctionExists.c" + "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cxx.in" + "/usr/share/cmake-3.16/Modules/CheckIncludeFileCXX.cmake" + "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.16/Modules/FindBoost.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.16/Modules/FindThreads.cmake" + "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake" + "/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.16.3/CMakeSystem.cmake" + "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" + "CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx" + "CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/vda5050_order_demo.dir/DependInfo.cmake" + "CMakeFiles/robot_control_example.dir/DependInfo.cmake" + "CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake" + "CMakeFiles/mission_adapters_goal_source.dir/DependInfo.cmake" + "CMakeFiles/mission_adapters.dir/DependInfo.cmake" + ) diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile2 b/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile2 new file mode 100644 index 0000000..93db647 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/Makefile2 @@ -0,0 +1,223 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/vda5050_order_demo.dir/all +all: CMakeFiles/robot_control_example.dir/all +all: CMakeFiles/mission_adapters_vda5050_source.dir/all +all: CMakeFiles/mission_adapters_goal_source.dir/all +all: CMakeFiles/mission_adapters.dir/all + +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: + +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/vda5050_order_demo.dir/clean +clean: CMakeFiles/robot_control_example.dir/clean +clean: CMakeFiles/mission_adapters_vda5050_source.dir/clean +clean: CMakeFiles/mission_adapters_goal_source.dir/clean +clean: CMakeFiles/mission_adapters.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/vda5050_order_demo.dir + +# All Build rule for target. +CMakeFiles/vda5050_order_demo.dir/all: CMakeFiles/mission_adapters_vda5050_source.dir/all +CMakeFiles/vda5050_order_demo.dir/all: CMakeFiles/mission_adapters.dir/all + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/depend + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=15,16 "Built target vda5050_order_demo" +.PHONY : CMakeFiles/vda5050_order_demo.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/vda5050_order_demo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 12 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/vda5050_order_demo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : CMakeFiles/vda5050_order_demo.dir/rule + +# Convenience name for target. +vda5050_order_demo: CMakeFiles/vda5050_order_demo.dir/rule + +.PHONY : vda5050_order_demo + +# clean rule for target. +CMakeFiles/vda5050_order_demo.dir/clean: + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/clean +.PHONY : CMakeFiles/vda5050_order_demo.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/robot_control_example.dir + +# All Build rule for target. +CMakeFiles/robot_control_example.dir/all: CMakeFiles/mission_adapters.dir/all + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/depend + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=13,14 "Built target robot_control_example" +.PHONY : CMakeFiles/robot_control_example.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/robot_control_example.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 10 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/robot_control_example.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : CMakeFiles/robot_control_example.dir/rule + +# Convenience name for target. +robot_control_example: CMakeFiles/robot_control_example.dir/rule + +.PHONY : robot_control_example + +# clean rule for target. +CMakeFiles/robot_control_example.dir/clean: + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/clean +.PHONY : CMakeFiles/robot_control_example.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/mission_adapters_vda5050_source.dir + +# All Build rule for target. +CMakeFiles/mission_adapters_vda5050_source.dir/all: CMakeFiles/mission_adapters.dir/all + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/depend + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=11,12 "Built target mission_adapters_vda5050_source" +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/mission_adapters_vda5050_source.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 10 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mission_adapters_vda5050_source.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/rule + +# Convenience name for target. +mission_adapters_vda5050_source: CMakeFiles/mission_adapters_vda5050_source.dir/rule + +.PHONY : mission_adapters_vda5050_source + +# clean rule for target. +CMakeFiles/mission_adapters_vda5050_source.dir/clean: + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/clean +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/mission_adapters_goal_source.dir + +# All Build rule for target. +CMakeFiles/mission_adapters_goal_source.dir/all: CMakeFiles/mission_adapters.dir/all + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/depend + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=9,10 "Built target mission_adapters_goal_source" +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/mission_adapters_goal_source.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 10 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mission_adapters_goal_source.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/rule + +# Convenience name for target. +mission_adapters_goal_source: CMakeFiles/mission_adapters_goal_source.dir/rule + +.PHONY : mission_adapters_goal_source + +# clean rule for target. +CMakeFiles/mission_adapters_goal_source.dir/clean: + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/clean +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/mission_adapters.dir + +# All Build rule for target. +CMakeFiles/mission_adapters.dir/all: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/depend + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=1,2,3,4,5,6,7,8 "Built target mission_adapters" +.PHONY : CMakeFiles/mission_adapters.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/mission_adapters.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 8 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mission_adapters.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : CMakeFiles/mission_adapters.dir/rule + +# Convenience name for target. +mission_adapters: CMakeFiles/mission_adapters.dir/rule + +.PHONY : mission_adapters + +# clean rule for target. +CMakeFiles/mission_adapters.dir/clean: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/clean +.PHONY : CMakeFiles/mission_adapters.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/TargetDirectories.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..ef23745 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,11 @@ +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/install/strip.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/install.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/list_install_components.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/rebuild_cache.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/edit_cache.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/install/local.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/cmake.check_cache b/build-standalone-codex-5j6ZZh/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/CXX.includecache b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/CXX.includecache new file mode 100644 index 0000000..3b20947 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/CXX.includecache @@ -0,0 +1,508 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_geometry_msgs/Point.h +- +robot_geometry_msgs/Quaternion.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_std_msgs/Header.h +- +robot_geometry_msgs/Pose.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +string +- +vector +- +memory +- +robot_protocol_msgs/ActionParameter.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +string +- +vector +- +memory +- +robot_protocol_msgs/Trajectory.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +string +- +vector +- +memory +- +robot_protocol_msgs/NodePosition.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +string +- +vector +- +memory +- +robot_protocol_msgs/Node.h +- +robot_protocol_msgs/Edge.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +string +- +vector +- +memory +- +robot_protocol_msgs/ControlPoint.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +string +- +vector +- +memory +- +robot/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +cstdio +- +cstdarg +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +atomic +- +csignal +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +yaml-cpp/yaml.h +- +robot_xmlrpcpp/XmlRpcValue.h +- +memory +- +string +- +map +- +vector +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +string +- +vector +- +map +- +yaml-cpp/yaml.h +- +filesystem +- +robot/robot.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +robot/init.h +- +robot/console.h +- +robot/node_handle.h +- +robot/plugin_loader_helper.h +- +robot/time.h +- +robot/timer.h +- +robot/duration.h +- +robot/wall_timer.h +- +robot/rate.h +- +robot/exception.h +- +robot/macros.h +- +robot/platform.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +iostream +- +math.h +- +stdexcept +- +climits +- +stdint.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +stdexcept +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +robot/time.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot/time.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +robot/macros.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +robot/platform.h +- +iostream +- +cmath +- +robot/exception.h +- +duration.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +sys/timeb.h +- +sys/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +robot/time.h +- +robot/duration.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +robot/time.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +map +- +string +- +vector +- +time.h +- + +../include/mission_adapters/adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/event.h +atomic +- +condition_variable +- +cstdint +- +memory +- +mutex +- +queue +- +vector +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/event_processor.h +atomic +- +thread +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- +mission_adapters/event.h +- +mission_adapters/mission_manager.h +- +mission_adapters/mission_request.h +- +mission_adapters/plugin_registry.h +- + +../include/mission_adapters/mission_config.h +string +- +robot/node_handle.h +- + +../include/mission_adapters/mission_executor.h +atomic +- +memory +- +mutex +- +thread +- +mission_adapters/mission_manager.h +- +mission_adapters/navigation_client.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_manager.h +condition_variable +- +memory +- +mutex +- +queue +- +vector +- +robot/time.h +- +mission_adapters/mission_config.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_request.h +memory +- +string +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +../include/mission_adapters/navigation_client.h +memory +- +mission_adapters/types.h +- + +../include/mission_adapters/plugin_registry.h +functional +- +map +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/adapter.h +- + +../include/mission_adapters/types.h +cstdint +- +limits +- +memory +- +string +- +vector +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp +mission_adapters/event.h +- +utility +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp +mission_adapters/event_processor.h +- +utility +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp +mission_adapters/mission_config.h +- +cmath +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp +mission_adapters/mission_executor.h +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp +mission_adapters/mission_manager.h +- +chrono +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp +mission_adapters/plugin_registry.h +- +utility +- +boost/dll/import.hpp +- +boost/system/system_error.hpp +- +yaml-cpp/yaml.h +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp +mission_adapters/types.h +- + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake new file mode 100644 index 0000000..b418514 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake @@ -0,0 +1,74 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/types.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "BOOST_ALL_NO_LIB" + "BOOST_FILESYSTEM_DYN_LINK" + "BOOST_SYSTEM_DYN_LINK" + "mission_adapters_EXPORTS" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + "../../../pnkx_nav_core/src/APIs/c_api/include" + "../../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/angles/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include" + "../../../pnkx_nav_core/src/Libraries/costmap_2d/include" + "../../../pnkx_nav_core/src/Libraries/data_convert/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/laser_filter/include" + "../../../pnkx_nav_core/src/Libraries/laser_geometry/include" + "../../../pnkx_nav_core/src/Libraries/robot_cpp/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include" + "../../../pnkx_nav_core/src/Libraries/robot_time/include" + "../../../pnkx_nav_core/src/Libraries/voxel_grid/include" + "../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include" + "../../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Packages/move_base/include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/build.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/build.make new file mode 100644 index 0000000..a550efa --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/build.make @@ -0,0 +1,191 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +# Include any dependencies generated for this target. +include CMakeFiles/mission_adapters.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mission_adapters.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mission_adapters.dir/flags.make + +CMakeFiles/mission_adapters.dir/src/types.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../src/types.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mission_adapters.dir/src/types.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/types.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp + +CMakeFiles/mission_adapters.dir/src/types.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/types.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp > CMakeFiles/mission_adapters.dir/src/types.cpp.i + +CMakeFiles/mission_adapters.dir/src/types.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/types.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp -o CMakeFiles/mission_adapters.dir/src/types.cpp.s + +CMakeFiles/mission_adapters.dir/src/event.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../src/event.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/mission_adapters.dir/src/event.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/event.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp + +CMakeFiles/mission_adapters.dir/src/event.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/event.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp > CMakeFiles/mission_adapters.dir/src/event.cpp.i + +CMakeFiles/mission_adapters.dir/src/event.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/event.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp -o CMakeFiles/mission_adapters.dir/src/event.cpp.s + +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../src/mission_manager.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp + +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp > CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.i + +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp -o CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.s + +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../src/mission_executor.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp + +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp > CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.i + +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp -o CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.s + +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../src/event_processor.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp + +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/event_processor.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp > CMakeFiles/mission_adapters.dir/src/event_processor.cpp.i + +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/event_processor.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp -o CMakeFiles/mission_adapters.dir/src/event_processor.cpp.s + +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../src/mission_config.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp + +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/mission_config.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp > CMakeFiles/mission_adapters.dir/src/mission_config.cpp.i + +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/mission_config.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp -o CMakeFiles/mission_adapters.dir/src/mission_config.cpp.s + +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: CMakeFiles/mission_adapters.dir/flags.make +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../src/plugin_registry.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp + +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp > CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.i + +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp -o CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.s + +# Object files for target mission_adapters +mission_adapters_OBJECTS = \ +"CMakeFiles/mission_adapters.dir/src/types.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/event.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o" \ +"CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o" + +# External object files for target mission_adapters +mission_adapters_EXTERNAL_OBJECTS = + +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/types.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/event.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o +libmission_adapters.so: CMakeFiles/mission_adapters.dir/build.make +libmission_adapters.so: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 +libmission_adapters.so: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 +libmission_adapters.so: /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.6.2 +libmission_adapters.so: CMakeFiles/mission_adapters.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Linking CXX shared library libmission_adapters.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mission_adapters.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mission_adapters.dir/build: libmission_adapters.so + +.PHONY : CMakeFiles/mission_adapters.dir/build + +CMakeFiles/mission_adapters.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mission_adapters.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mission_adapters.dir/clean + +CMakeFiles/mission_adapters.dir/depend: + cd /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mission_adapters.dir/depend + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/cmake_clean.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/cmake_clean.cmake new file mode 100644 index 0000000..6b64d56 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/cmake_clean.cmake @@ -0,0 +1,16 @@ +file(REMOVE_RECURSE + "CMakeFiles/mission_adapters.dir/src/event.cpp.o" + "CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o" + "CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o" + "CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o" + "CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o" + "CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o" + "CMakeFiles/mission_adapters.dir/src/types.cpp.o" + "libmission_adapters.pdb" + "libmission_adapters.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/mission_adapters.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.internal b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.internal new file mode 100644 index 0000000..c16e5ef --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.internal @@ -0,0 +1,207 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters.dir/src/event.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../include/mission_adapters/event.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event.cpp +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/event.h + ../include/mission_adapters/event_processor.h + ../include/mission_adapters/mission_config.h + ../include/mission_adapters/mission_manager.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/plugin_registry.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/event_processor.cpp +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/mission_config.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_config.cpp +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/mission_config.h + ../include/mission_adapters/mission_executor.h + ../include/mission_adapters/mission_manager.h + ../include/mission_adapters/navigation_client.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_executor.cpp +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/mission_config.h + ../include/mission_adapters/mission_manager.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/mission_manager.cpp +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/plugin_registry.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/plugin_registry.cpp +CMakeFiles/mission_adapters.dir/src/types.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/src/types.cpp diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.make new file mode 100644 index 0000000..c803d9c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/depend.make @@ -0,0 +1,207 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../include/mission_adapters/event.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/event.cpp.o: ../src/event.cpp + +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/event.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/event_processor.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/mission_config.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/mission_manager.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/plugin_registry.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o: ../src/event_processor.cpp + +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../include/mission_adapters/mission_config.h +CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o: ../src/mission_config.cpp + +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../include/mission_adapters/mission_config.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../include/mission_adapters/mission_executor.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../include/mission_adapters/mission_manager.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../include/mission_adapters/navigation_client.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o: ../src/mission_executor.cpp + +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../include/mission_adapters/mission_config.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../include/mission_adapters/mission_manager.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o: ../src/mission_manager.cpp + +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../include/mission_adapters/plugin_registry.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o: ../src/plugin_registry.cpp + +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters.dir/src/types.cpp.o: ../src/types.cpp + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/flags.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/flags.make new file mode 100644 index 0000000..a057de1 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIC -Wall -Wextra -std=c++17 + +CXX_DEFINES = -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -Dmission_adapters_EXPORTS + +CXX_INCLUDES = -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/APIs/c_api/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/angles/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/costmap_2d/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/data_convert/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_filter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_geometry/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_cpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_time/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/voxel_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/xmlrpcpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Packages/move_base/include + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/link.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/link.txt new file mode 100644 index 0000000..1f85fe3 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -shared -Wl,-soname,libmission_adapters.so -o libmission_adapters.so CMakeFiles/mission_adapters.dir/src/types.cpp.o CMakeFiles/mission_adapters.dir/src/event.cpp.o CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o -L/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib -L/usr/local/lib -Wl,-rpath,/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib: -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 -ldl /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.6.2 -lpthread diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/progress.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/progress.make new file mode 100644 index 0000000..5b29368 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/progress.make @@ -0,0 +1,9 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 +CMAKE_PROGRESS_8 = 8 + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event.cpp.o new file mode 100644 index 0000000..89c7bf7 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o new file mode 100644 index 0000000..6272d75 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o new file mode 100644 index 0000000..e3b9ad3 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o new file mode 100644 index 0000000..0b08780 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o new file mode 100644 index 0000000..f20eed6 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o new file mode 100644 index 0000000..f411fb8 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/types.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/types.cpp.o new file mode 100644 index 0000000..273fa28 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/src/types.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/CXX.includecache b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/CXX.includecache new file mode 100644 index 0000000..7b16d48 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/CXX.includecache @@ -0,0 +1,278 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_geometry_msgs/Point.h +- +robot_geometry_msgs/Quaternion.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_std_msgs/Header.h +- +robot_geometry_msgs/Pose.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +string +- +vector +- +memory +- +robot_protocol_msgs/ActionParameter.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +string +- +vector +- +memory +- +robot_protocol_msgs/Trajectory.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +string +- +vector +- +memory +- +robot_protocol_msgs/NodePosition.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +string +- +vector +- +memory +- +robot_protocol_msgs/Node.h +- +robot_protocol_msgs/Edge.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +string +- +vector +- +memory +- +robot_protocol_msgs/ControlPoint.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +string +- +vector +- +memory +- +robot/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +yaml-cpp/yaml.h +- +robot_xmlrpcpp/XmlRpcValue.h +- +memory +- +string +- +map +- +vector +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +iostream +- +math.h +- +stdexcept +- +climits +- +stdint.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +stdexcept +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +robot/macros.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +robot/platform.h +- +iostream +- +cmath +- +robot/exception.h +- +duration.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +sys/timeb.h +- +sys/time.h +- + +../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +map +- +string +- +vector +- +time.h +- + +../include/mission_adapters/adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_request.h +memory +- +string +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +../include/mission_adapters/types.h +cstdint +- +limits +- +memory +- +string +- +vector +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp +goal_source_adapter.h +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.h +cmath +- +boost/dll/alias.hpp +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/adapter.h +- + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/DependInfo.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/DependInfo.cmake new file mode 100644 index 0000000..4934c51 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/DependInfo.cmake @@ -0,0 +1,68 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "BOOST_ALL_NO_LIB" + "mission_adapters_goal_source_EXPORTS" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../plugins" + "../../../pnkx_nav_core/src/APIs/c_api/include" + "../../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/angles/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include" + "../../../pnkx_nav_core/src/Libraries/costmap_2d/include" + "../../../pnkx_nav_core/src/Libraries/data_convert/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/laser_filter/include" + "../../../pnkx_nav_core/src/Libraries/laser_geometry/include" + "../../../pnkx_nav_core/src/Libraries/robot_cpp/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include" + "../../../pnkx_nav_core/src/Libraries/robot_time/include" + "../../../pnkx_nav_core/src/Libraries/voxel_grid/include" + "../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include" + "../../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Packages/move_base/include" + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/build.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/build.make new file mode 100644 index 0000000..1b80849 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +# Include any dependencies generated for this target. +include CMakeFiles/mission_adapters_goal_source.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mission_adapters_goal_source.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mission_adapters_goal_source.dir/flags.make + +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: CMakeFiles/mission_adapters_goal_source.dir/flags.make +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../plugins/goal_source_adapter.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp + +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp > CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.i + +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp -o CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.s + +# Object files for target mission_adapters_goal_source +mission_adapters_goal_source_OBJECTS = \ +"CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o" + +# External object files for target mission_adapters_goal_source +mission_adapters_goal_source_EXTERNAL_OBJECTS = + +libmission_adapters_goal_source.so: CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o +libmission_adapters_goal_source.so: CMakeFiles/mission_adapters_goal_source.dir/build.make +libmission_adapters_goal_source.so: libmission_adapters.so +libmission_adapters_goal_source.so: CMakeFiles/mission_adapters_goal_source.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library libmission_adapters_goal_source.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mission_adapters_goal_source.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mission_adapters_goal_source.dir/build: libmission_adapters_goal_source.so + +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/build + +CMakeFiles/mission_adapters_goal_source.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mission_adapters_goal_source.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/clean + +CMakeFiles/mission_adapters_goal_source.dir/depend: + cd /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mission_adapters_goal_source.dir/depend + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/cmake_clean.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/cmake_clean.cmake new file mode 100644 index 0000000..11662ee --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o" + "libmission_adapters_goal_source.pdb" + "libmission_adapters_goal_source.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/mission_adapters_goal_source.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.internal b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.internal new file mode 100644 index 0000000..78210e0 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.internal @@ -0,0 +1,30 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.cpp + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/goal_source_adapter.h diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.make new file mode 100644 index 0000000..3dae5cc --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/depend.make @@ -0,0 +1,30 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../plugins/goal_source_adapter.cpp +CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o: ../plugins/goal_source_adapter.h + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/flags.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/flags.make new file mode 100644 index 0000000..6d59449 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIC -Wall -Wextra -std=c++17 + +CXX_DEFINES = -DBOOST_ALL_NO_LIB -Dmission_adapters_goal_source_EXPORTS + +CXX_INCLUDES = -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/APIs/c_api/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/angles/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/costmap_2d/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/data_convert/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_filter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_geometry/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_cpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_time/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/voxel_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/xmlrpcpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Packages/move_base/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/link.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/link.txt new file mode 100644 index 0000000..fb82082 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -shared -Wl,-soname,libmission_adapters_goal_source.so -o libmission_adapters_goal_source.so CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o -L/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib -L/usr/local/lib -Wl,-rpath,"/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib:" libmission_adapters.so -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp -lpthread diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o new file mode 100644 index 0000000..050c4ab Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/progress.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/progress.make new file mode 100644 index 0000000..b700c2c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_goal_source.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 9 +CMAKE_PROGRESS_2 = 10 + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/CXX.includecache b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/CXX.includecache new file mode 100644 index 0000000..20db836 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/CXX.includecache @@ -0,0 +1,394 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_geometry_msgs/Point.h +- +robot_geometry_msgs/Quaternion.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_std_msgs/Header.h +- +robot_geometry_msgs/Pose.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +string +- +vector +- +memory +- +robot_protocol_msgs/ActionParameter.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +string +- +vector +- +memory +- +robot_protocol_msgs/Trajectory.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +string +- +vector +- +memory +- +robot_protocol_msgs/NodePosition.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +string +- +vector +- +memory +- +robot_protocol_msgs/Node.h +- +robot_protocol_msgs/Edge.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +string +- +vector +- +memory +- +robot_protocol_msgs/ControlPoint.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +string +- +vector +- +memory +- +robot/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +cstdio +- +cstdarg +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +atomic +- +csignal +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +yaml-cpp/yaml.h +- +robot_xmlrpcpp/XmlRpcValue.h +- +memory +- +string +- +map +- +vector +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +string +- +vector +- +map +- +yaml-cpp/yaml.h +- +filesystem +- +robot/robot.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +robot/init.h +- +robot/console.h +- +robot/node_handle.h +- +robot/plugin_loader_helper.h +- +robot/time.h +- +robot/timer.h +- +robot/duration.h +- +robot/wall_timer.h +- +robot/rate.h +- +robot/exception.h +- +robot/macros.h +- +robot/platform.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +iostream +- +math.h +- +stdexcept +- +climits +- +stdint.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +stdexcept +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +robot/time.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot/time.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +robot/macros.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +robot/platform.h +- +iostream +- +cmath +- +robot/exception.h +- +duration.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +sys/timeb.h +- +sys/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +robot/time.h +- +robot/duration.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +robot/time.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +map +- +string +- +vector +- +time.h +- + +../include/mission_adapters/adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_request.h +memory +- +string +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +../include/mission_adapters/types.h +cstdint +- +limits +- +memory +- +string +- +vector +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp +vda5050_source_adapter.h +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h +algorithm +- +cmath +- +string +- +utility +- +yaml-cpp/yaml.h +- +boost/dll/alias.hpp +- +robot/robot.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h +cstddef +- +limits +- +cstdint +- +map +- +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/adapter.h +- + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake new file mode 100644 index 0000000..4c341d6 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake @@ -0,0 +1,68 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "BOOST_ALL_NO_LIB" + "mission_adapters_vda5050_source_EXPORTS" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../plugins" + "../../../pnkx_nav_core/src/APIs/c_api/include" + "../../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/angles/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include" + "../../../pnkx_nav_core/src/Libraries/costmap_2d/include" + "../../../pnkx_nav_core/src/Libraries/data_convert/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/laser_filter/include" + "../../../pnkx_nav_core/src/Libraries/laser_geometry/include" + "../../../pnkx_nav_core/src/Libraries/robot_cpp/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include" + "../../../pnkx_nav_core/src/Libraries/robot_time/include" + "../../../pnkx_nav_core/src/Libraries/voxel_grid/include" + "../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include" + "../../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Packages/move_base/include" + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/build.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/build.make new file mode 100644 index 0000000..27906f1 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +# Include any dependencies generated for this target. +include CMakeFiles/mission_adapters_vda5050_source.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mission_adapters_vda5050_source.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mission_adapters_vda5050_source.dir/flags.make + +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: CMakeFiles/mission_adapters_vda5050_source.dir/flags.make +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../plugins/vda5050_source_adapter.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp + +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp > CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.i + +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp -o CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.s + +# Object files for target mission_adapters_vda5050_source +mission_adapters_vda5050_source_OBJECTS = \ +"CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o" + +# External object files for target mission_adapters_vda5050_source +mission_adapters_vda5050_source_EXTERNAL_OBJECTS = + +libmission_adapters_vda5050_source.so: CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o +libmission_adapters_vda5050_source.so: CMakeFiles/mission_adapters_vda5050_source.dir/build.make +libmission_adapters_vda5050_source.so: libmission_adapters.so +libmission_adapters_vda5050_source.so: CMakeFiles/mission_adapters_vda5050_source.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library libmission_adapters_vda5050_source.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mission_adapters_vda5050_source.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mission_adapters_vda5050_source.dir/build: libmission_adapters_vda5050_source.so + +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/build + +CMakeFiles/mission_adapters_vda5050_source.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mission_adapters_vda5050_source.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/clean + +CMakeFiles/mission_adapters_vda5050_source.dir/depend: + cd /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mission_adapters_vda5050_source.dir/depend + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/cmake_clean.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/cmake_clean.cmake new file mode 100644 index 0000000..3fc197c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o" + "libmission_adapters_vda5050_source.pdb" + "libmission_adapters_vda5050_source.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/mission_adapters_vda5050_source.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.internal b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.internal new file mode 100644 index 0000000..13edfc8 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.internal @@ -0,0 +1,37 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.cpp + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.make new file mode 100644 index 0000000..dee4165 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/depend.make @@ -0,0 +1,37 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../plugins/vda5050_source_adapter.cpp +CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o: ../plugins/vda5050_source_adapter.h + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/flags.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/flags.make new file mode 100644 index 0000000..7eb42b7 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIC -Wall -Wextra -std=c++17 + +CXX_DEFINES = -DBOOST_ALL_NO_LIB -Dmission_adapters_vda5050_source_EXPORTS + +CXX_INCLUDES = -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/APIs/c_api/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/angles/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/costmap_2d/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/data_convert/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_filter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_geometry/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_cpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_time/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/voxel_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/xmlrpcpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Packages/move_base/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/link.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/link.txt new file mode 100644 index 0000000..855b91b --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -shared -Wl,-soname,libmission_adapters_vda5050_source.so -o libmission_adapters_vda5050_source.so CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o -L/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib -L/usr/local/lib -Wl,-rpath,"/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib:" libmission_adapters.so -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp -lpthread diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o new file mode 100644 index 0000000..cf60d64 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/progress.make b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/progress.make new file mode 100644 index 0000000..596289c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 11 +CMAKE_PROGRESS_2 = 12 + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/progress.marks b/build-standalone-codex-5j6ZZh/CMakeFiles/progress.marks new file mode 100644 index 0000000..b6a7d89 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/progress.marks @@ -0,0 +1 @@ +16 diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/CXX.includecache b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/CXX.includecache new file mode 100644 index 0000000..7f7719e --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/CXX.includecache @@ -0,0 +1,484 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_geometry_msgs/Point.h +- +robot_geometry_msgs/Quaternion.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_std_msgs/Header.h +- +robot_geometry_msgs/Pose.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +string +- +vector +- +memory +- +robot_protocol_msgs/ActionParameter.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +string +- +vector +- +memory +- +robot_protocol_msgs/Trajectory.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +string +- +vector +- +memory +- +robot_protocol_msgs/NodePosition.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +string +- +vector +- +memory +- +robot_protocol_msgs/Node.h +- +robot_protocol_msgs/Edge.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +string +- +vector +- +memory +- +robot_protocol_msgs/ControlPoint.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +string +- +vector +- +memory +- +robot/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +cstdio +- +cstdarg +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +atomic +- +csignal +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +yaml-cpp/yaml.h +- +robot_xmlrpcpp/XmlRpcValue.h +- +memory +- +string +- +map +- +vector +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +string +- +vector +- +map +- +yaml-cpp/yaml.h +- +filesystem +- +robot/robot.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +robot/init.h +- +robot/console.h +- +robot/node_handle.h +- +robot/plugin_loader_helper.h +- +robot/time.h +- +robot/timer.h +- +robot/duration.h +- +robot/wall_timer.h +- +robot/rate.h +- +robot/exception.h +- +robot/macros.h +- +robot/platform.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +iostream +- +math.h +- +stdexcept +- +climits +- +stdint.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +stdexcept +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +robot/time.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot/time.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +robot/macros.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +robot/platform.h +- +iostream +- +cmath +- +robot/exception.h +- +duration.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +sys/timeb.h +- +sys/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +robot/time.h +- +robot/duration.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +robot/time.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +functional +- +thread +- +mutex +- +atomic +- +condition_variable +- +memory +- + +../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +map +- +string +- +vector +- +time.h +- + +../include/mission_adapters/adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/event.h +atomic +- +condition_variable +- +cstdint +- +memory +- +mutex +- +queue +- +vector +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/event_processor.h +atomic +- +thread +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- +mission_adapters/event.h +- +mission_adapters/mission_manager.h +- +mission_adapters/mission_request.h +- +mission_adapters/plugin_registry.h +- + +../include/mission_adapters/mission_adapters.h +robot/robot.h +- +mission_adapters/adapter.h +- +mission_adapters/event.h +- +mission_adapters/event_processor.h +- +mission_adapters/mission_executor.h +- +mission_adapters/mission_manager.h +- +mission_adapters/navigation_client.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_config.h +string +- +robot/node_handle.h +- + +../include/mission_adapters/mission_executor.h +atomic +- +memory +- +mutex +- +thread +- +mission_adapters/mission_manager.h +- +mission_adapters/navigation_client.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_manager.h +condition_variable +- +memory +- +mutex +- +queue +- +vector +- +robot/time.h +- +mission_adapters/mission_config.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_request.h +memory +- +string +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +../include/mission_adapters/navigation_client.h +memory +- +mission_adapters/types.h +- + +../include/mission_adapters/plugin_registry.h +functional +- +map +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/adapter.h +- + +../include/mission_adapters/types.h +cstdint +- +limits +- +memory +- +string +- +vector +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp +cstddef +- +memory +- +robot/robot.h +- +mission_adapters/mission_adapters.h +- +mission_adapters/plugin_registry.h +- + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/DependInfo.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/DependInfo.cmake new file mode 100644 index 0000000..1e41081 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/DependInfo.cmake @@ -0,0 +1,61 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../../../pnkx_nav_core/src/APIs/c_api/include" + "../../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/angles/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include" + "../../../pnkx_nav_core/src/Libraries/costmap_2d/include" + "../../../pnkx_nav_core/src/Libraries/data_convert/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/laser_filter/include" + "../../../pnkx_nav_core/src/Libraries/laser_geometry/include" + "../../../pnkx_nav_core/src/Libraries/robot_cpp/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include" + "../../../pnkx_nav_core/src/Libraries/robot_time/include" + "../../../pnkx_nav_core/src/Libraries/voxel_grid/include" + "../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include" + "../../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Packages/move_base/include" + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/build.make b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/build.make new file mode 100644 index 0000000..d28bb25 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +# Include any dependencies generated for this target. +include CMakeFiles/robot_control_example.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/robot_control_example.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/robot_control_example.dir/flags.make + +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: CMakeFiles/robot_control_example.dir/flags.make +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../examples/robot_control_example.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp + +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp > CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.i + +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp -o CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.s + +# Object files for target robot_control_example +robot_control_example_OBJECTS = \ +"CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o" + +# External object files for target robot_control_example +robot_control_example_EXTERNAL_OBJECTS = + +robot_control_example: CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o +robot_control_example: CMakeFiles/robot_control_example.dir/build.make +robot_control_example: libmission_adapters.so +robot_control_example: CMakeFiles/robot_control_example.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable robot_control_example" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/robot_control_example.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/robot_control_example.dir/build: robot_control_example + +.PHONY : CMakeFiles/robot_control_example.dir/build + +CMakeFiles/robot_control_example.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/robot_control_example.dir/cmake_clean.cmake +.PHONY : CMakeFiles/robot_control_example.dir/clean + +CMakeFiles/robot_control_example.dir/depend: + cd /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/robot_control_example.dir/depend + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/cmake_clean.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/cmake_clean.cmake new file mode 100644 index 0000000..2d03313 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o" + "robot_control_example" + "robot_control_example.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/robot_control_example.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.internal b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.internal new file mode 100644 index 0000000..2d0ff38 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.internal @@ -0,0 +1,44 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/event.h + ../include/mission_adapters/event_processor.h + ../include/mission_adapters/mission_adapters.h + ../include/mission_adapters/mission_config.h + ../include/mission_adapters/mission_executor.h + ../include/mission_adapters/mission_manager.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/navigation_client.h + ../include/mission_adapters/plugin_registry.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/robot_control_example.cpp diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.make b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.make new file mode 100644 index 0000000..8adbe95 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/depend.make @@ -0,0 +1,44 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/console.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/init.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/plugin_loader_helper.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/robot.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/rate.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/timer.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/wall_timer.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/event.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/event_processor.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/mission_adapters.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/mission_config.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/mission_executor.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/mission_manager.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/navigation_client.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/plugin_registry.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o: ../examples/robot_control_example.cpp + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o new file mode 100644 index 0000000..702fc80 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/flags.make b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/flags.make new file mode 100644 index 0000000..9e70465 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIE -Wall -Wextra -std=c++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/APIs/c_api/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/angles/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/costmap_2d/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/data_convert/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_filter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_geometry/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_cpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_time/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/voxel_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/xmlrpcpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Packages/move_base/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/link.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/link.txt new file mode 100644 index 0000000..79af6bc --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -rdynamic CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o -o robot_control_example -L/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib -L/usr/local/lib -Wl,-rpath,"/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib" libmission_adapters.so -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp -lpthread diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/progress.make b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/progress.make new file mode 100644 index 0000000..d92f75a --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/robot_control_example.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 13 +CMAKE_PROGRESS_2 = 14 + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/CXX.includecache b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/CXX.includecache new file mode 100644 index 0000000..50c0a0c --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/CXX.includecache @@ -0,0 +1,290 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_geometry_msgs/Point.h +- +robot_geometry_msgs/Quaternion.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- +robot_std_msgs/Header.h +- +robot_geometry_msgs/Pose.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +string +- +vector +- +memory +- +robot_protocol_msgs/ActionParameter.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +string +- +vector +- +memory +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +string +- +vector +- +memory +- +robot_protocol_msgs/Trajectory.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +string +- +vector +- +memory +- +robot_protocol_msgs/NodePosition.h +- +robot_protocol_msgs/Action.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +string +- +vector +- +memory +- +boost/shared_ptr.hpp +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +string +- +vector +- +memory +- +robot_protocol_msgs/Node.h +- +robot_protocol_msgs/Edge.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +string +- +vector +- +memory +- +robot_protocol_msgs/ControlPoint.h +- + +../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +string +- +vector +- +memory +- +robot/time.h +- + +../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +yaml-cpp/yaml.h +- +robot_xmlrpcpp/XmlRpcValue.h +- +memory +- +string +- +map +- +vector +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +iostream +- +math.h +- +stdexcept +- +climits +- +stdint.h +- +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +stdexcept +- +string +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +robot/macros.h +- + +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +robot/platform.h +- +iostream +- +cmath +- +robot/exception.h +- +duration.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +robot_time_decl.h +../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +sys/timeb.h +- +sys/time.h +- + +../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +map +- +string +- +vector +- +time.h +- + +../include/mission_adapters/adapter.h +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/mission_request.h +- +mission_adapters/types.h +- + +../include/mission_adapters/mission_request.h +memory +- +string +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +../include/mission_adapters/types.h +cstdint +- +limits +- +memory +- +string +- +vector +- +robot_geometry_msgs/PoseStamped.h +- +robot_protocol_msgs/Order.h +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp +mission_adapters/mission_request.h +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/mission_adapters/mission_request.h +mission_adapters/types.h +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/mission_adapters/types.h +../plugins/vda5050_source_adapter.h +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h +cstdio +- +string +- + +/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h +cstddef +- +limits +- +cstdint +- +map +- +memory +- +string +- +vector +- +robot/node_handle.h +- +mission_adapters/adapter.h +- + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/DependInfo.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/DependInfo.cmake new file mode 100644 index 0000000..5d562b4 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/DependInfo.cmake @@ -0,0 +1,63 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp" "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../../../pnkx_nav_core/src/APIs/c_api/include" + "../../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/angles/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include" + "../../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include" + "../../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include" + "../../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include" + "../../../pnkx_nav_core/src/Libraries/costmap_2d/include" + "../../../pnkx_nav_core/src/Libraries/data_convert/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include" + "../../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include" + "../../../pnkx_nav_core/src/Libraries/laser_filter/include" + "../../../pnkx_nav_core/src/Libraries/laser_geometry/include" + "../../../pnkx_nav_core/src/Libraries/robot_cpp/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include" + "../../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include" + "../../../pnkx_nav_core/src/Libraries/robot_time/include" + "../../../pnkx_nav_core/src/Libraries/voxel_grid/include" + "../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include" + "../../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include" + "../../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include" + "../../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include" + "../../../pnkx_nav_core/src/Navigations/Packages/move_base/include" + "../include" + "../plugins" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters_vda5050_source.dir/DependInfo.cmake" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/mission_adapters.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/build.make b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/build.make new file mode 100644 index 0000000..23668d2 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/build.make @@ -0,0 +1,100 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +# Include any dependencies generated for this target. +include CMakeFiles/vda5050_order_demo.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/vda5050_order_demo.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/vda5050_order_demo.dir/flags.make + +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: CMakeFiles/vda5050_order_demo.dir/flags.make +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../examples/vda5050_order_demo.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o -c /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp + +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp > CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.i + +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp -o CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.s + +# Object files for target vda5050_order_demo +vda5050_order_demo_OBJECTS = \ +"CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o" + +# External object files for target vda5050_order_demo +vda5050_order_demo_EXTERNAL_OBJECTS = + +vda5050_order_demo: CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o +vda5050_order_demo: CMakeFiles/vda5050_order_demo.dir/build.make +vda5050_order_demo: libmission_adapters_vda5050_source.so +vda5050_order_demo: libmission_adapters.so +vda5050_order_demo: CMakeFiles/vda5050_order_demo.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable vda5050_order_demo" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/vda5050_order_demo.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/vda5050_order_demo.dir/build: vda5050_order_demo + +.PHONY : CMakeFiles/vda5050_order_demo.dir/build + +CMakeFiles/vda5050_order_demo.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/vda5050_order_demo.dir/cmake_clean.cmake +.PHONY : CMakeFiles/vda5050_order_demo.dir/clean + +CMakeFiles/vda5050_order_demo.dir/depend: + cd /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/vda5050_order_demo.dir/depend + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/cmake_clean.cmake b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/cmake_clean.cmake new file mode 100644 index 0000000..37da6cb --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o" + "vda5050_order_demo" + "vda5050_order_demo.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/vda5050_order_demo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.internal b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.internal new file mode 100644 index 0000000..7e36d80 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.internal @@ -0,0 +1,30 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h + ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h + ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h + ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h + ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h + ../include/mission_adapters/adapter.h + ../include/mission_adapters/mission_request.h + ../include/mission_adapters/types.h + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/examples/vda5050_order_demo.cpp + /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins/vda5050_source_adapter.h diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.make b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.make new file mode 100644 index 0000000..b8f5cd2 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/depend.make @@ -0,0 +1,30 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Point.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Pose.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/PoseStamped.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include/robot_geometry_msgs/Quaternion.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Action.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ActionParameter.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/ControlPoint.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Edge.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Node.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/NodePosition.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Order.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include/robot_protocol_msgs/Trajectory.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include/robot_std_msgs/Header.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_cpp/include/robot/node_handle.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/duration.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/exception.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/macros.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/platform.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/robot_time_decl.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/robot_time/include/robot/time.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../../../pnkx_nav_core/src/Libraries/xmlrpcpp/include/robot_xmlrpcpp/XmlRpcValue.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../include/mission_adapters/adapter.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../include/mission_adapters/mission_request.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../include/mission_adapters/types.h +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../examples/vda5050_order_demo.cpp +CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o: ../plugins/vda5050_source_adapter.h + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o new file mode 100644 index 0000000..be4a44b Binary files /dev/null and b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o differ diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/flags.make b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/flags.make new file mode 100644 index 0000000..52efd8d --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIE -Wall -Wextra -std=c++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/APIs/c_api/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Cores/score_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/angles/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/kalman/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_algorithm/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Libraries/mkt_plugins/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/custom_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/dock_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/global_planners/two_points_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Algorithms/Packages/local_planners/pnkx_local_planner/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_map_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_nav_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_protocol_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/common_msgs/robot_visualization_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/costmap_2d/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/data_convert/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_geometry_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/geometry2/robot_tf3_sensor_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_filter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/laser_geometry/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_cpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_nav_2d_utils/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/robot_time/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/voxel_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Libraries/xmlrpcpp/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/move_base_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core2/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Cores/robot_nav_core_adapter/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/nav_grid/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_actionlib_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_clear_costmap_recovery/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Libraries/robot_move_base_msgs/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../pnkx_nav_core/src/Navigations/Packages/move_base/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include -I/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/plugins + diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/link.txt b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/link.txt new file mode 100644 index 0000000..f499c2d --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -rdynamic CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o -o vda5050_order_demo -L/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib -L/usr/local/lib -Wl,-rpath,"/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib" libmission_adapters_vda5050_source.so -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp libmission_adapters.so -lrobot_cpp -lrobot_time -lrobot_xmlrpcpp -lpthread diff --git a/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/progress.make b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/progress.make new file mode 100644 index 0000000..a35c33b --- /dev/null +++ b/build-standalone-codex-5j6ZZh/CMakeFiles/vda5050_order_demo.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 15 +CMAKE_PROGRESS_2 = 16 + diff --git a/build-standalone-codex-5j6ZZh/Makefile b/build-standalone-codex-5j6ZZh/Makefile new file mode 100644 index 0000000..a6dbd11 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/Makefile @@ -0,0 +1,584 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named vda5050_order_demo + +# Build rule for target. +vda5050_order_demo: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 vda5050_order_demo +.PHONY : vda5050_order_demo + +# fast build rule for target. +vda5050_order_demo/fast: + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/build +.PHONY : vda5050_order_demo/fast + +#============================================================================= +# Target rules for targets named robot_control_example + +# Build rule for target. +robot_control_example: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 robot_control_example +.PHONY : robot_control_example + +# fast build rule for target. +robot_control_example/fast: + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/build +.PHONY : robot_control_example/fast + +#============================================================================= +# Target rules for targets named mission_adapters_vda5050_source + +# Build rule for target. +mission_adapters_vda5050_source: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mission_adapters_vda5050_source +.PHONY : mission_adapters_vda5050_source + +# fast build rule for target. +mission_adapters_vda5050_source/fast: + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/build +.PHONY : mission_adapters_vda5050_source/fast + +#============================================================================= +# Target rules for targets named mission_adapters_goal_source + +# Build rule for target. +mission_adapters_goal_source: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mission_adapters_goal_source +.PHONY : mission_adapters_goal_source + +# fast build rule for target. +mission_adapters_goal_source/fast: + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/build +.PHONY : mission_adapters_goal_source/fast + +#============================================================================= +# Target rules for targets named mission_adapters + +# Build rule for target. +mission_adapters: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mission_adapters +.PHONY : mission_adapters + +# fast build rule for target. +mission_adapters/fast: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/build +.PHONY : mission_adapters/fast + +examples/robot_control_example.o: examples/robot_control_example.cpp.o + +.PHONY : examples/robot_control_example.o + +# target to build an object file +examples/robot_control_example.cpp.o: + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.o +.PHONY : examples/robot_control_example.cpp.o + +examples/robot_control_example.i: examples/robot_control_example.cpp.i + +.PHONY : examples/robot_control_example.i + +# target to preprocess a source file +examples/robot_control_example.cpp.i: + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.i +.PHONY : examples/robot_control_example.cpp.i + +examples/robot_control_example.s: examples/robot_control_example.cpp.s + +.PHONY : examples/robot_control_example.s + +# target to generate assembly for a file +examples/robot_control_example.cpp.s: + $(MAKE) -f CMakeFiles/robot_control_example.dir/build.make CMakeFiles/robot_control_example.dir/examples/robot_control_example.cpp.s +.PHONY : examples/robot_control_example.cpp.s + +examples/vda5050_order_demo.o: examples/vda5050_order_demo.cpp.o + +.PHONY : examples/vda5050_order_demo.o + +# target to build an object file +examples/vda5050_order_demo.cpp.o: + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.o +.PHONY : examples/vda5050_order_demo.cpp.o + +examples/vda5050_order_demo.i: examples/vda5050_order_demo.cpp.i + +.PHONY : examples/vda5050_order_demo.i + +# target to preprocess a source file +examples/vda5050_order_demo.cpp.i: + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.i +.PHONY : examples/vda5050_order_demo.cpp.i + +examples/vda5050_order_demo.s: examples/vda5050_order_demo.cpp.s + +.PHONY : examples/vda5050_order_demo.s + +# target to generate assembly for a file +examples/vda5050_order_demo.cpp.s: + $(MAKE) -f CMakeFiles/vda5050_order_demo.dir/build.make CMakeFiles/vda5050_order_demo.dir/examples/vda5050_order_demo.cpp.s +.PHONY : examples/vda5050_order_demo.cpp.s + +plugins/goal_source_adapter.o: plugins/goal_source_adapter.cpp.o + +.PHONY : plugins/goal_source_adapter.o + +# target to build an object file +plugins/goal_source_adapter.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.o +.PHONY : plugins/goal_source_adapter.cpp.o + +plugins/goal_source_adapter.i: plugins/goal_source_adapter.cpp.i + +.PHONY : plugins/goal_source_adapter.i + +# target to preprocess a source file +plugins/goal_source_adapter.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.i +.PHONY : plugins/goal_source_adapter.cpp.i + +plugins/goal_source_adapter.s: plugins/goal_source_adapter.cpp.s + +.PHONY : plugins/goal_source_adapter.s + +# target to generate assembly for a file +plugins/goal_source_adapter.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters_goal_source.dir/build.make CMakeFiles/mission_adapters_goal_source.dir/plugins/goal_source_adapter.cpp.s +.PHONY : plugins/goal_source_adapter.cpp.s + +plugins/vda5050_source_adapter.o: plugins/vda5050_source_adapter.cpp.o + +.PHONY : plugins/vda5050_source_adapter.o + +# target to build an object file +plugins/vda5050_source_adapter.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.o +.PHONY : plugins/vda5050_source_adapter.cpp.o + +plugins/vda5050_source_adapter.i: plugins/vda5050_source_adapter.cpp.i + +.PHONY : plugins/vda5050_source_adapter.i + +# target to preprocess a source file +plugins/vda5050_source_adapter.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.i +.PHONY : plugins/vda5050_source_adapter.cpp.i + +plugins/vda5050_source_adapter.s: plugins/vda5050_source_adapter.cpp.s + +.PHONY : plugins/vda5050_source_adapter.s + +# target to generate assembly for a file +plugins/vda5050_source_adapter.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters_vda5050_source.dir/build.make CMakeFiles/mission_adapters_vda5050_source.dir/plugins/vda5050_source_adapter.cpp.s +.PHONY : plugins/vda5050_source_adapter.cpp.s + +src/event.o: src/event.cpp.o + +.PHONY : src/event.o + +# target to build an object file +src/event.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event.cpp.o +.PHONY : src/event.cpp.o + +src/event.i: src/event.cpp.i + +.PHONY : src/event.i + +# target to preprocess a source file +src/event.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event.cpp.i +.PHONY : src/event.cpp.i + +src/event.s: src/event.cpp.s + +.PHONY : src/event.s + +# target to generate assembly for a file +src/event.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event.cpp.s +.PHONY : src/event.cpp.s + +src/event_processor.o: src/event_processor.cpp.o + +.PHONY : src/event_processor.o + +# target to build an object file +src/event_processor.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event_processor.cpp.o +.PHONY : src/event_processor.cpp.o + +src/event_processor.i: src/event_processor.cpp.i + +.PHONY : src/event_processor.i + +# target to preprocess a source file +src/event_processor.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event_processor.cpp.i +.PHONY : src/event_processor.cpp.i + +src/event_processor.s: src/event_processor.cpp.s + +.PHONY : src/event_processor.s + +# target to generate assembly for a file +src/event_processor.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/event_processor.cpp.s +.PHONY : src/event_processor.cpp.s + +src/mission_config.o: src/mission_config.cpp.o + +.PHONY : src/mission_config.o + +# target to build an object file +src/mission_config.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_config.cpp.o +.PHONY : src/mission_config.cpp.o + +src/mission_config.i: src/mission_config.cpp.i + +.PHONY : src/mission_config.i + +# target to preprocess a source file +src/mission_config.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_config.cpp.i +.PHONY : src/mission_config.cpp.i + +src/mission_config.s: src/mission_config.cpp.s + +.PHONY : src/mission_config.s + +# target to generate assembly for a file +src/mission_config.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_config.cpp.s +.PHONY : src/mission_config.cpp.s + +src/mission_executor.o: src/mission_executor.cpp.o + +.PHONY : src/mission_executor.o + +# target to build an object file +src/mission_executor.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.o +.PHONY : src/mission_executor.cpp.o + +src/mission_executor.i: src/mission_executor.cpp.i + +.PHONY : src/mission_executor.i + +# target to preprocess a source file +src/mission_executor.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.i +.PHONY : src/mission_executor.cpp.i + +src/mission_executor.s: src/mission_executor.cpp.s + +.PHONY : src/mission_executor.s + +# target to generate assembly for a file +src/mission_executor.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_executor.cpp.s +.PHONY : src/mission_executor.cpp.s + +src/mission_manager.o: src/mission_manager.cpp.o + +.PHONY : src/mission_manager.o + +# target to build an object file +src/mission_manager.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.o +.PHONY : src/mission_manager.cpp.o + +src/mission_manager.i: src/mission_manager.cpp.i + +.PHONY : src/mission_manager.i + +# target to preprocess a source file +src/mission_manager.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.i +.PHONY : src/mission_manager.cpp.i + +src/mission_manager.s: src/mission_manager.cpp.s + +.PHONY : src/mission_manager.s + +# target to generate assembly for a file +src/mission_manager.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/mission_manager.cpp.s +.PHONY : src/mission_manager.cpp.s + +src/plugin_registry.o: src/plugin_registry.cpp.o + +.PHONY : src/plugin_registry.o + +# target to build an object file +src/plugin_registry.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.o +.PHONY : src/plugin_registry.cpp.o + +src/plugin_registry.i: src/plugin_registry.cpp.i + +.PHONY : src/plugin_registry.i + +# target to preprocess a source file +src/plugin_registry.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.i +.PHONY : src/plugin_registry.cpp.i + +src/plugin_registry.s: src/plugin_registry.cpp.s + +.PHONY : src/plugin_registry.s + +# target to generate assembly for a file +src/plugin_registry.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/plugin_registry.cpp.s +.PHONY : src/plugin_registry.cpp.s + +src/types.o: src/types.cpp.o + +.PHONY : src/types.o + +# target to build an object file +src/types.cpp.o: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/types.cpp.o +.PHONY : src/types.cpp.o + +src/types.i: src/types.cpp.i + +.PHONY : src/types.i + +# target to preprocess a source file +src/types.cpp.i: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/types.cpp.i +.PHONY : src/types.cpp.i + +src/types.s: src/types.cpp.s + +.PHONY : src/types.s + +# target to generate assembly for a file +src/types.cpp.s: + $(MAKE) -f CMakeFiles/mission_adapters.dir/build.make CMakeFiles/mission_adapters.dir/src/types.cpp.s +.PHONY : src/types.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... install" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... vda5050_order_demo" + @echo "... edit_cache" + @echo "... robot_control_example" + @echo "... install/local" + @echo "... mission_adapters_vda5050_source" + @echo "... mission_adapters_goal_source" + @echo "... mission_adapters" + @echo "... examples/robot_control_example.o" + @echo "... examples/robot_control_example.i" + @echo "... examples/robot_control_example.s" + @echo "... examples/vda5050_order_demo.o" + @echo "... examples/vda5050_order_demo.i" + @echo "... examples/vda5050_order_demo.s" + @echo "... plugins/goal_source_adapter.o" + @echo "... plugins/goal_source_adapter.i" + @echo "... plugins/goal_source_adapter.s" + @echo "... plugins/vda5050_source_adapter.o" + @echo "... plugins/vda5050_source_adapter.i" + @echo "... plugins/vda5050_source_adapter.s" + @echo "... src/event.o" + @echo "... src/event.i" + @echo "... src/event.s" + @echo "... src/event_processor.o" + @echo "... src/event_processor.i" + @echo "... src/event_processor.s" + @echo "... src/mission_config.o" + @echo "... src/mission_config.i" + @echo "... src/mission_config.s" + @echo "... src/mission_executor.o" + @echo "... src/mission_executor.i" + @echo "... src/mission_executor.s" + @echo "... src/mission_manager.o" + @echo "... src/mission_manager.i" + @echo "... src/mission_manager.s" + @echo "... src/plugin_registry.o" + @echo "... src/plugin_registry.i" + @echo "... src/plugin_registry.s" + @echo "... src/types.o" + @echo "... src/types.i" + @echo "... src/types.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-standalone-codex-5j6ZZh/cmake_install.cmake b/build-standalone-codex-5j6ZZh/cmake_install.cmake new file mode 100644 index 0000000..63051a9 --- /dev/null +++ b/build-standalone-codex-5j6ZZh/cmake_install.cmake @@ -0,0 +1,141 @@ +# Install script for directory: /home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so" + RPATH "/usr/local/lib") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/libmission_adapters.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so" + OLD_RPATH "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib:" + NEW_RPATH "/usr/local/lib") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so" + RPATH "/usr/local/lib") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/libmission_adapters_goal_source.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so" + OLD_RPATH "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib:" + NEW_RPATH "/usr/local/lib") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_goal_source.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so" + RPATH "/usr/local/lib") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/libmission_adapters_vda5050_source.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so" + OLD_RPATH "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh:\$ORIGIN:/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/../../../../devel/lib:/usr/local/lib:" + NEW_RPATH "/usr/local/lib") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmission_adapters_vda5050_source.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters/mission_adapters-targets.cmake") + file(DIFFERENT EXPORT_FILE_CHANGED FILES + "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters/mission_adapters-targets.cmake" + "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets.cmake") + if(EXPORT_FILE_CHANGED) + file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters/mission_adapters-targets-*.cmake") + if(OLD_CONFIG_FILES) + message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters/mission_adapters-targets.cmake\" will be replaced. Removing files [${OLD_CONFIG_FILES}].") + file(REMOVE ${OLD_CONFIG_FILES}) + endif() + endif() + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters" TYPE FILE FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets.cmake") + if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^()$") + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/mission_adapters" TYPE FILE FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/CMakeFiles/Export/lib/cmake/mission_adapters/mission_adapters-targets-noconfig.cmake") + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/include/mission_adapters/" FILES_MATCHING REGEX "/[^/]*\\.h$") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/duongtd/T800_ws/src/AMR_T800/Test/mission_adapters/build-standalone-codex-5j6ZZh/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/build-standalone-codex-5j6ZZh/libmission_adapters.so b/build-standalone-codex-5j6ZZh/libmission_adapters.so new file mode 100755 index 0000000..c938493 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/libmission_adapters.so differ diff --git a/build-standalone-codex-5j6ZZh/libmission_adapters_goal_source.so b/build-standalone-codex-5j6ZZh/libmission_adapters_goal_source.so new file mode 100755 index 0000000..560fda0 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/libmission_adapters_goal_source.so differ diff --git a/build-standalone-codex-5j6ZZh/libmission_adapters_vda5050_source.so b/build-standalone-codex-5j6ZZh/libmission_adapters_vda5050_source.so new file mode 100755 index 0000000..c2e9257 Binary files /dev/null and b/build-standalone-codex-5j6ZZh/libmission_adapters_vda5050_source.so differ diff --git a/build-standalone-codex-5j6ZZh/robot_control_example b/build-standalone-codex-5j6ZZh/robot_control_example new file mode 100755 index 0000000..dc752af Binary files /dev/null and b/build-standalone-codex-5j6ZZh/robot_control_example differ diff --git a/build-standalone-codex-5j6ZZh/vda5050_order_demo b/build-standalone-codex-5j6ZZh/vda5050_order_demo new file mode 100755 index 0000000..95cbb8e Binary files /dev/null and b/build-standalone-codex-5j6ZZh/vda5050_order_demo differ diff --git a/cfg/stanley_local_planner_params.yaml b/cfg/stanley_local_planner_params.yaml deleted file mode 100644 index f1bab79..0000000 --- a/cfg/stanley_local_planner_params.yaml +++ /dev/null @@ -1,11 +0,0 @@ -LocalPlannerAdapter: - library_path: liblocal_planner_adapter - yaw_goal_tolerance: 0.017 - xy_goal_tolerance: 0.03 - min_approach_linear_velocity: 0.06 - -StanleyLocalPlanner: -# base_local_planner: "hybrid_local_planner/HybridLocalPlanner" -# HybridLocalPlanner: - library_path: libstanley_local_planner - \ No newline at end of file diff --git a/docs/PLUGIN_GUIDE.md b/docs/PLUGIN_GUIDE.md new file mode 100644 index 0000000..86322f8 --- /dev/null +++ b/docs/PLUGIN_GUIDE.md @@ -0,0 +1,176 @@ +# Viết một nguồn mission mới + +Nguồn mission là plugin duy nhất của gói này. Thêm một loại nguồn (REST, fleet manager riêng, +teach-pendant, file kịch bản...) không cần sửa dòng nào trong `src/`. + +Việc **thực thi action** không thuộc đây: adapter chỉ chuyển dữ liệu, navigation runtime mới là nơi +chạy action. + +## 1. Chọn tên schema + +Schema là chuỗi định danh loại payload, và là thứ core dùng để định tuyến. Đặt tên theo miền dữ +liệu, không theo tên hãng hay giao thức truyền tải: + +``` +vda5050.order # đã có +geometry.pose_stamped # đã có +json.pick_and_place # ví dụ nguồn mới +``` + +Hai adapter khai cùng một schema sẽ bị registry từ chối — định tuyến khi đó phụ thuộc thứ tự nạp, +tức phụ thuộc vào thứ tự dòng trong file YAML. + +## 2. Hiện thực `MissionSourceAdapter` + +```cpp +#include +#include + +namespace mission_plugins +{ + +class PickAndPlaceAdapter : public mission_adapters::MissionSourceAdapter +{ +public: + static mission_adapters::MissionSourceAdapter::Ptr create() + { + return std::make_shared(); + } + + bool configure(const std::string& name, robot::NodeHandle& nh) override + { + // Param riêng nằm trong namespace tên instance. + nh.getParam(name + "/global_frame", global_frame_, std::string("map")); + return !global_frame_.empty(); + } + + std::string schema() const override { return "json.pick_and_place"; } + + bool validate(const mission_adapters::MissionRequest& request, + std::string& reason) const override + { + if (request.raw_payload.empty()) + { + reason = "payload rỗng"; + return false; + } + return true; + } + + mission_adapters::ConversionResult + convert(const mission_adapters::MissionRequest& request) override + { + mission_adapters::ConversionResult result; + // ... parse request.raw_payload, dựng mission ... + return result; + } + +private: + std::string global_frame_ = "map"; +}; + +} // namespace mission_plugins + +BOOST_DLL_ALIAS(mission_plugins::PickAndPlaceAdapter::create, PickAndPlaceAdapter) +``` + +Bốn quy tắc bắt buộc: + +- **State là member, không phải `static` local.** Một tiến trình có thể chạy nhiều instance; state + static sẽ nối chúng lại và order của robot này ảnh hưởng robot kia. +- **`validate()` chặn dữ liệu hỏng trước khi nó tới navigation**: NaN/Inf, quaternion không chuẩn + hoá được, payload thiếu trường. Trả `false` kèm `reason` cụ thể — chuỗi đó đi thẳng vào log. +- **`convert()` trả rỗng nghĩa là "không có việc", KHÔNG phải lỗi và KHÔNG phải lệnh huỷ.** Core sẽ + bỏ qua và giữ nguyên hàng đợi đang chạy. Đây là bất biến A1: một order lỗi từ fleet manager không + được âm thầm xoá order đang chạy. +- **Mission `has_goal == false` phải có ít nhất một action.** Mission không goal và cũng không + action là chặng không có việc gì để làm, và nó sẽ không bao giờ báo kết quả về — mission layer kẹt + `RUNNING` vĩnh viễn. Core kiểm lại điều này và bỏ cả lô nếu phát hiện. + +### `SubmitMode` — thay hay nối tiếp + +`ConversionResult::mode` quyết định mission mới quan hệ thế nào với hàng đợi đang có: + +| mode | Ý nghĩa | Dùng khi | +|---|---|---| +| `kReplace` (mặc định) | Thay toàn bộ hàng đợi, chặng đang chạy bị preempt và được bảo dừng | Yêu cầu mới, độc lập với việc đang làm | +| `kAppend` | Chỉ thêm vào cuối hàng đợi, không đụng chặng đang chạy | Phần nối tiếp của chính yêu cầu đang chạy | + +`kAppend` là hình dạng của VDA5050 order update. Trả `kReplace` cho một bản cập nhật nghĩa là mỗi +lần fleet manager release thêm horizon, robot lại huỷ và chạy lại chặng đang đi. + +## 3. Build thành `.so` riêng + +```cmake +add_library(mission_adapters_pick_and_place SHARED plugins/pick_and_place_adapter.cpp) + +target_compile_options(mission_adapters_pick_and_place PRIVATE -Wall -Wextra) +set_target_properties(mission_adapters_pick_and_place PROPERTIES POSITION_INDEPENDENT_CODE ON) + +target_link_libraries(mission_adapters_pick_and_place + PUBLIC mission_adapters + PRIVATE Boost::boost Threads::Threads +) + +install(TARGETS mission_adapters_pick_and_place + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +) +``` + +Thêm dependency cho plugin thì phải cập nhật **đủ bốn chỗ**: `CMakeLists.txt`, `package.xml`, +install rule, và file YAML. + +## 4. Khai báo trong YAML — **đừng quên `library_path`** + +Trong `pnkx_nav_core/config/mission_adapters_params.yaml`: + +```yaml +mission_adapters: + mission_sources: + - {name: pick_src, type: PickAndPlaceAdapter} # type = tên symbol trong BOOST_DLL_ALIAS + +pick_src: + global_frame: map # param riêng của instance, đọc trong configure() + +PickAndPlaceAdapter: + library_path: libmission_adapters_pick_and_place # BẮT BUỘC +``` + +Ba tên phải khớp nhau: + +| Nơi | Giá trị | +|---|---| +| `BOOST_DLL_ALIAS(..., PickAndPlaceAdapter)` | tên symbol | +| `mission_sources[].type` | **cùng** tên symbol | +| `/library_path` | tên file `.so` (không cần đuôi) | + +**Thiếu `library_path` là lỗi phổ biến nhất**: plugin build sạch, `.so` nằm đúng chỗ, nhưng runtime +báo "không tìm thấy". Registry sẽ nêu đích danh khoá bị thiếu trong log. + +Tên không có đuôi `.so` được resolve qua `PNKX_NAV_CORE_LIBRARY_PATH`, `devel/lib`, rồi +`LD_LIBRARY_PATH` — nên **phải `source devel/setup.bash`** trước khi chạy, nếu không plugin sẽ không +được tìm thấy dù file có thật. + +## 5. Kiểm chứng + +```bash +catkin_make --pkg mission_adapters +source devel/setup.bash + +PNKX_NAV_CORE_CONFIG_DIR=src/AMR_T800/Test/mission_adapters/test/config \ + ./devel/lib/mission_adapters/plugin_registry_test +``` + +Nên có test cho: payload hợp lệ, payload thiếu trường, payload chứa NaN/Inf, payload không sinh +mission nào, và (nếu nguồn có state) hai yêu cầu liên tiếp. + +## 6. Nguồn không cần `.so` + +Nguồn biên dịch thẳng vào host thì bỏ qua bước 3 và 4, đăng ký trực tiếp: + +```cpp +registry.registerAdapter(std::make_shared()); +``` + +Đường này dùng trong test và cho host muốn kiểm soát vòng đời adapter; phần còn lại của luồng +(validate, convert, định tuyến theo schema) giống hệt. diff --git a/examples/robot_control_example.cpp b/examples/robot_control_example.cpp new file mode 100644 index 0000000..cfa9076 --- /dev/null +++ b/examples/robot_control_example.cpp @@ -0,0 +1,101 @@ +/********************************************************************* + * + * Ví dụ tối thiểu: nối mission layer vào một navigation runtime. + * + * Điểm chính của ví dụ là hai chiều dữ liệu, không phải thuật toán: + * + * host --goalEvent/orderEvent--> EventProcessor --> MissionManager + * | + * MissionExecutor + * | + * NavigationClient::dispatch/cancelActive + * | + * host <--navDoneEvent(id)/navFailedEvent(id)-------- navigation runtime + * + * Outcome quay về BẮT BUỘC mang MissionId. Bản trước của ví dụ này poll trường trạng thái của + * navigation rồi suy ra "chặng nào vừa xong" — cách đó gán nhầm kết quả ngay khi có một order thay + * thế order đang chạy. + * + *********************************************************************/ +#include +#include + +#include + +#include +#include + +namespace +{ + +/** + * @brief NavigationClient chỉ ghi log — chỗ để thay bằng runtime thật. + * + * Trong hệ thống thật, dispatch() dựng yêu cầu di chuyển từ mission rồi giao cho navigation runtime, + * và runtime báo ngược kết quả qua navDoneEvent(mission->id) / navFailedEvent(mission->id). + */ +class LoggingNavigationClient : public mission_adapters::NavigationClient +{ +public: + bool dispatch(const std::shared_ptr& mission) override + { + if (!mission) + return false; + + robot::log_info("dispatch mission %lu — %zu action", + static_cast(mission->id), + mission->actions.size()); + return true; + } + + void cancelActive(mission_adapters::MissionId id) override + { + robot::log_info("cancel mission %lu", static_cast(id)); + } +}; + +} // namespace + +int main(int argc, char** argv) +{ + robot::init(argc, argv, "mission_adapters_example"); + + // Nguồn mission được nạp từ YAML: thêm loại nguồn mới không phải sửa file này. + mission_adapters::PluginRegistry registry; + robot::NodeHandle nh; + if (!registry.loadFromConfig(nh)) + { + robot::log_error("could not load enough mission sources — check " + "mission_adapters_params.yaml"); + return 1; + } + + mission_adapters::MissionManager mission_manager; + mission_adapters::EventProcessor event_processor(mission_manager, registry); + mission_adapters::MissionExecutor mission_executor(mission_manager); + + LoggingNavigationClient navigation_client; + mission_executor.setNavigationClient(&navigation_client); + + event_processor.start(); + mission_executor.start(); + + // Nguồn mission thật (MQTT/OPC-UA/REST) gọi các hàm *Event() này từ thread của nó. + robot_geometry_msgs::PoseStamped goal; + goal.header.frame_id = "map"; + goal.pose.position.x = 2.0; // [m] + goal.pose.position.y = 1.0; // [m] + event_processor.goalEvent(goal); + + robot::Rate rate(20); // [Hz] + while (robot::ok()) + { + // Runtime thật gọi navDoneEvent(id) / navFailedEvent(id) ở đây, với id lấy từ chính mission + // mà dispatch() đã nhận — không suy đoán từ trạng thái navigation. + rate.sleep(); + } + + mission_executor.stop(); + event_processor.stop(); + return 0; +} diff --git a/examples/vda5050_order_demo.cpp b/examples/vda5050_order_demo.cpp new file mode 100644 index 0000000..ce9f50e --- /dev/null +++ b/examples/vda5050_order_demo.cpp @@ -0,0 +1,142 @@ +/** + * @file vda5050_order_demo.cpp + * @brief Chạy một VDA5050 Order qua VDA5050SourceAdapter và in ra các chặng thu được. + * + * Order dùng ở đây lấy nguyên toạ độ từ một order thật do fleet manager gửi xuống (4 node, 3 edge, + * edge cuối có NURBS bậc 2), chỉ khác một điểm: gắn thêm một action vào **node thứ 2**. Mục đích là + * thấy tận mắt adapter cắt order thành chặng như thế nào khi có action ở giữa đường. + * + * Chạy: ./devel/lib/mission_adapters/vda5050_order_demo + */ +#include "mission_adapters/mission_request.h" +#include "mission_adapters/types.h" +#include "../plugins/vda5050_source_adapter.h" + +#include +#include + +namespace +{ + +/// Một node released, kèm toạ độ thật lấy từ order của fleet. +robot_protocol_msgs::Node makeNode(int sequence_id, const std::string& id, double x, double y) +{ + robot_protocol_msgs::Node node; + node.sequenceId = sequence_id; + node.nodeId = id; + node.released = true; + node.nodePosition.x = x; + node.nodePosition.y = y; + node.nodePosition.mapId = "97b3bf93-10c5-4c79-2cc9-08deee20817a"; + return node; +} + +robot_protocol_msgs::Edge makeEdge(int sequence_id, const std::string& id, + const std::string& start_id, const std::string& end_id) +{ + robot_protocol_msgs::Edge edge; + edge.sequenceId = sequence_id; + edge.edgeId = id; + edge.released = true; + edge.startNodeId = start_id; + edge.endNodeId = end_id; + return edge; +} + +robot_protocol_msgs::Action makeAction(const std::string& id, const std::string& type) +{ + robot_protocol_msgs::Action action; + action.actionId = id; + action.actionType = type; + action.blockingType = "HARD"; + return action; +} + +void printOrder(const robot_protocol_msgs::Order& order) +{ + std::printf("ORDER GUI XUONG (orderId=%s, orderUpdateId=%d)\n", + order.orderId.c_str(), (int)order.orderUpdateId); + for (const auto& n : order.nodes) + std::printf(" node seq=%-2d %-10s pos=(%7.3f, %7.3f) actions=%zu%s\n", + (int)n.sequenceId, n.nodeId.c_str(), + n.nodePosition.x, n.nodePosition.y, n.actions.size(), + n.actions.empty() ? "" : (" <-- " + n.actions.front().actionType).c_str()); + for (const auto& e : order.edges) + std::printf(" edge seq=%-2d %-10s %s -> %s actions=%zu\n", + (int)e.sequenceId, e.edgeId.c_str(), + e.startNodeId.c_str(), e.endNodeId.c_str(), e.actions.size()); +} + +void printMissions(const std::vector>& missions) +{ + std::printf("\nKET QUA: adapter cat thanh %zu chang\n", missions.size()); + std::printf("%s\n", std::string(78, '-').c_str()); + + int idx = 0; + for (const auto& m : missions) + { + std::printf(" Chang #%d\n", ++idx); + std::printf(" type : %s\n", + m->type == mission_adapters::MissionType::VDA5050_ORDER ? "VDA5050_ORDER" + : "SIMPLE_GOAL"); + std::printf(" has_goal : %s\n", m->has_goal ? "true" : "false"); + if (m->has_goal) + std::printf(" di chuyen : (%7.3f, %7.3f) -> (%7.3f, %7.3f)\n", + m->start.pose.position.x, m->start.pose.position.y, + m->goal.pose.position.x, m->goal.pose.position.y); + else + std::printf(" di chuyen : (khong - chang chi-co-action)\n"); + + std::printf(" nodes : %zu, edges: %zu\n", m->nodes.size(), m->edges.size()); + if (m->actions.empty()) + { + std::printf(" actions : (khong co)\n"); + } + else + { + for (const auto& a : m->actions) + std::printf(" actions : seq=%d %-12s id=%s (%s)\n", + a.sequenceId, a.action.actionType.c_str(), a.action.actionId.c_str(), + a.type == mission_adapters::ActionType::NODE_ACTION ? "NODE_ACTION" + : "EDGE_ACTION"); + } + std::printf("\n"); + } +} + +} // namespace + +int main() +{ + // Toa do lay tu order that: 14:39:21, orderId c16cd9e3..., 4 node / 3 edge. + robot_protocol_msgs::Order order; + order.orderId = "demo-dua-tren-order-that"; + order.orderUpdateId = 0; + + order.nodes.push_back(makeNode(0, "node_A", 10.010, 10.000)); + order.nodes.push_back(makeNode(2, "node_B", 10.260, 10.192)); + order.nodes.push_back(makeNode(4, "node_C", 14.979, 7.599)); + order.nodes.push_back(makeNode(6, "node_D", 12.986, 2.851)); + + // ĐIỂM KHÁC DUY NHẤT so với order thật: mot action gan vao NODE THU 2. + order.nodes[1].actions.push_back(makeAction("act-tai-node-2", "PickUp")); + + order.edges.push_back(makeEdge(1, "edge_AB", "node_A", "node_B")); + order.edges.push_back(makeEdge(3, "edge_BC", "node_B", "node_C")); + order.edges.push_back(makeEdge(5, "edge_CD", "node_C", "node_D")); + + printOrder(order); + + mission_plugins::VDA5050SourceAdapter adapter; + + std::string reason; + const auto request = mission_adapters::MissionRequest::fromOrder(order); + if (!adapter.validate(request, reason)) + { + std::printf("\nAdapter TU CHOI order: %s\n", reason.c_str()); + return 1; + } + + printMissions(adapter.convert(request).missions); + return 0; +} diff --git a/include/mission_adapters/adapter.h b/include/mission_adapters/adapter.h index e69de29..e009146 100644 --- a/include/mission_adapters/adapter.h +++ b/include/mission_adapters/adapter.h @@ -0,0 +1,95 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Interface plugin duy nhất của gói: nguồn mission. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_ADAPTER_H_ +#define MISSION_ADAPTERS_ADAPTER_H_ + +#include +#include +#include + +#include + +#include +#include + +namespace mission_adapters +{ + /// @brief Quan hệ giữa mission mới và hàng đợi đang có. + enum class SubmitMode + { + /// Yêu cầu mới: thay toàn bộ hàng đợi, chặng đang chạy bị preempt (và được bảo dừng). + kReplace, + + /** + * Phần nối tiếp của yêu cầu đang chạy: chỉ thêm vào cuối hàng đợi. + * + * Đây là hình dạng của VDA5050 order update — phần horizon được release thêm. Xử lý nó như + * kReplace sẽ huỷ và chạy lại chặng đang đi, dù tuyến đường không hề đổi. + */ + kAppend + }; + + /// @brief Kết quả chuyển đổi: mission sinh ra và cách chúng vào hàng đợi. + struct ConversionResult + { + std::vector> missions; + SubmitMode mode = SubmitMode::kReplace; + + bool empty() const { return missions.empty(); } + }; + + /** + * @class MissionSourceAdapter + * @brief Biến payload của một nguồn cụ thể thành mission của mission layer. + * + * Plugin được nạp bằng Boost.DLL theo khoá `library_path` trong YAML, giống mọi plugin khác của + * workspace. Contract này là public interface qua ranh giới .so: đổi chữ ký thì phải đổi cả + * registry trong cùng một lần sửa, vì import_alias là dlsym + reinterpret_cast và không có kiểm + * kiểu nào bắt được sự lệch đó lúc biên dịch. + * + * Việc thực thi action KHÔNG thuộc về interface này: adapter chỉ chuyển dữ liệu, navigation + * runtime mới là nơi chạy action (D8). + */ + class MissionSourceAdapter + { + public: + using Ptr = std::shared_ptr; + + virtual ~MissionSourceAdapter() = default; + + /** + * @brief Đọc param riêng của instance. Gọi đúng một lần khi nạp. + * @param name Tên instance trong `mission_sources` — cũng là namespace param của nó. + * @param nh NodeHandle gốc. + * @return false nếu cấu hình không hợp lệ; registry sẽ báo lỗi và không đăng ký adapter này. + */ + virtual bool configure(const std::string& name, robot::NodeHandle& nh) = 0; + + /// @brief Schema mà adapter này xử lý. Core định tuyến theo đúng giá trị này. + virtual std::string schema() const = 0; + + /** + * @brief Kiểm payload TRƯỚC khi convert. + * @param[out] reason Lý do từ chối, dùng cho log. + * @return false -> core từ chối sớm và không đụng vào hàng đợi. + */ + virtual bool validate(const MissionRequest& request, std::string& reason) const = 0; + + /** + * @brief Chuyển payload thành 0..n mission, kèm cách chúng vào hàng đợi. + * + * Trả rỗng nghĩa là **không có việc**, KHÔNG phải lỗi và cũng không phải lệnh huỷ: core sẽ + * bỏ qua, giữ nguyên hàng đợi đang chạy (A1). + */ + virtual ConversionResult convert(const MissionRequest& request) = 0; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_ADAPTER_H_ diff --git a/include/mission_adapters/event.h b/include/mission_adapters/event.h index e69de29..0a6c1dd 100644 --- a/include/mission_adapters/event.h +++ b/include/mission_adapters/event.h @@ -0,0 +1,121 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Sự kiện của mission layer và hàng đợi vận chuyển chúng. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_EVENT_H_ +#define MISSION_ADAPTERS_EVENT_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace mission_adapters +{ + enum class EventType + { + SUBMIT_REQUEST, + NAV_DONE, + NAV_FAILED, + PAUSE, + RESUME, + CANCEL, + EMERGENCY, + CLEAR_EMERGENCY + }; + + struct Event + { + EventType type = EventType::SUBMIT_REQUEST; + uint64_t sequence = 0; ///< thứ tự phát sinh, EventBus tự gán + + /// Chỉ dùng cho NAV_DONE / NAV_FAILED: mission nào vừa kết thúc. + MissionId mission_id = kInvalidMissionId; + + /// Chỉ dùng cho SUBMIT_REQUEST: payload chưa chuyển đổi, adapter sẽ xử lý trên thread worker. + MissionRequest request; + }; + + /** + * @class EventBus + * @brief Hàng đợi sự kiện FIFO, cộng một đường out-of-band riêng cho emergency. + * + * **FIFO là bắt buộc, không phải lựa chọn phong cách.** Bản trước sắp xếp theo priority toàn + * phần nên CANCEL (ưu tiên cao) luôn được xử lý trước SUBMIT (ưu tiên thấp) — phát order rồi huỷ + * ngay thì huỷ chạy trước, order vào hàng đợi sau và robot chạy đúng cái người dùng vừa huỷ. + * Thứ tự xử lý phải bằng thứ tự phát sinh thì quan hệ nhân quả mới còn. + * + * Emergency không đi theo luật đó: nó bật một cờ atomic ngay tại chỗ gọi, nên độ trễ phản ứng + * không phụ thuộc vào việc hàng đợi đang dài bao nhiêu. Sự kiện EMERGENCY vẫn được đẩy vào hàng + * đợi để dòng thời gian trong log không bị thủng. + */ + class EventBus + { + public: + /// @brief Đẩy một sự kiện thường vào cuối hàng đợi. + void push(Event event); + + /** + * @brief Đẩy sự kiện emergency: bật cờ out-of-band trước, rồi mới xếp hàng. + * + * Bên tiêu thụ phải gọi @ref takeEmergency trước khi xử lý sự kiện tiếp theo. + */ + void pushEmergency(Event event); + + /// @brief Lấy sự kiện kế tiếp, chờ nếu hàng đợi rỗng. Trả false khi bus đã stop(). + bool pop(Event& event); + + /** + * @brief Lấy và xoá cờ emergency đang treo. + * @return true nếu có emergency chưa được xử lý. + */ + bool takeEmergency(); + + /// @brief Có emergency đang treo hay không (không xoá cờ). + bool emergencyPending() const; + + void stop(); + void reset(); + + bool empty() const + { + std::lock_guard lock(mutex_); + return queue_.empty(); + } + + size_t size() const + { + std::lock_guard lock(mutex_); + return queue_.size(); + } + + void clear() + { + std::lock_guard lock(mutex_); + queue_ = {}; + } + + private: + mutable std::mutex mutex_; + std::queue queue_; + std::condition_variable cv_; + bool stop_ = false; + uint64_t next_sequence_ = 0; + + /// Ngoài hàng đợi có chủ đích: emergency không được xếp sau một hàng dài sự kiện thường. + std::atomic emergency_pending_{false}; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_EVENT_H_ diff --git a/include/mission_adapters/event_processor.h b/include/mission_adapters/event_processor.h index e69de29..53f63f5 100644 --- a/include/mission_adapters/event_processor.h +++ b/include/mission_adapters/event_processor.h @@ -0,0 +1,93 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Thread tiêu thụ event: biến sự kiện từ host thành lời gọi lên MissionManager. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_EVENT_PROCESSOR_H_ +#define MISSION_ADAPTERS_EVENT_PROCESSOR_H_ + +#include +#include + +#include +#include + +#include +#include +#include +#include + +namespace mission_adapters +{ + /** + * @class EventProcessor + * @brief Thread duy nhất biến sự kiện thành thay đổi trạng thái mission. + * + * Core không biết adapter nào tồn tại: nó chỉ tra @ref PluginRegistry theo + * MissionRequest::schema. Thêm một loại nguồn mới = thêm plugin + một dòng YAML, không sửa file + * nào trong `src/` của gói. + * + * Việc chuyển payload -> mission chạy trên đúng thread này (không phải thread của host) vì + * adapter được phép có state; chuyển đổi trên nhiều thread host sẽ tranh chấp state đó. + */ + class EventProcessor + { + public: + EventProcessor(MissionManager& mission_manager, PluginRegistry& registry); + ~EventProcessor(); + + void start(); + void stop(); + + /** + * @brief Đường vào chung cho mọi nguồn mission. + * + * Nguồn mới chỉ cần dựng MissionRequest với schema của mình rồi gọi hàm này. + */ + void submitRequest(const MissionRequest& request); + + /// @brief Tiện ích cho nguồn goal đơn lẻ. Chỉ dựng envelope, không biết adapter nào xử lý. + void goalEvent(const robot_geometry_msgs::PoseStamped& goal); + + /// @brief Tiện ích cho nguồn VDA5050. + void orderEvent(const robot_protocol_msgs::Order& order); + + void cancelEvent(); + void pauseEvent(); + void resumeEvent(); + + /** + * @brief Báo một chặng đã hoàn tất (nav + action — D8). + * @param id Mission vừa xong. Bắt buộc: outcome không mang ID sẽ bị manager loại bỏ. + */ + void navDoneEvent(MissionId id); + + /// @brief Báo một chặng thất bại. Cũng bắt buộc mang MissionId. + void navFailedEvent(MissionId id); + + void emergencyEvent(); + void clearEmergencyEvent(); + + private: + void spin(); + void process(const Event& event); + + /// Tra adapter theo schema, validate, convert, rồi submit nếu có mission. + void handleRequest(const MissionRequest& request); + + /// Xử lý emergency đang treo (nếu có) trước khi động tới hàng đợi sự kiện thường. + void handlePendingEmergency(); + + EventBus event_bus_; + MissionManager& mission_manager_; + PluginRegistry& registry_; + std::thread worker_; + std::atomic running_{false}; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_EVENT_PROCESSOR_H_ diff --git a/include/mission_adapters/mission_adapters.h b/include/mission_adapters/mission_adapters.h index 6986ef8..c4be640 100644 --- a/include/mission_adapters/mission_adapters.h +++ b/include/mission_adapters/mission_adapters.h @@ -1,245 +1,25 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Header façade — gộp toàn bộ public API của gói. + * + * Giữ lại để code đã include header này không phải sửa. Code mới nên include thẳng header cần dùng + * (types.h / event.h / adapter.h / mission_manager.h / event_processor.h / mission_executor.h). + * + * Author: DuongTD + *********************************************************************/ #ifndef MISSION_ADAPTERS_MISSION_ADAPTERS_H #define MISSION_ADAPTERS_MISSION_ADAPTERS_H -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include -#include -#include -namespace mission_adapters -{ - // ── Priority constants ──────────────────────────────────────────────────── - // Số càng nhỏ = ưu tiên càng cao (min-heap) - static constexpr int PRIORITY_EMERGENCY = 0; - static constexpr int PRIORITY_CANCEL = 1; - static constexpr int PRIORITY_RESUME = 2; - static constexpr int PRIORITY_PAUSE = 3; - static constexpr int PRIORITY_NAV_DONE = 4; - // FIX #4: Dedicated constant — same value as NAV_DONE but semantically correct name. - static constexpr int PRIORITY_NAV_FAILED = 4; - static constexpr int PRIORITY_ORDER = 5; - - enum class MissionState - { - IDLE, - QUEUED, - RUNNING, - PAUSED, - RECOVERY, - COMPLETED, - FAILED, - CANCELLED, - EMERGENCY, - CLEAR_EMERGENCY - }; - - enum class EventType - { - SUBMIT_MISSIONS, - NAV_DONE, - NAV_FAILED, - PAUSE, - RESUME, - CANCEL, - EMERGENCY, - CLEAR_EMERGENCY - }; - - enum class MissionType - { - SIMPLE_GOAL, - VDA5050_ORDER - }; - - enum class ActionType - { - NODE_ACTION, - EDGE_ACTION - }; - - class Action - { - public: - int sequenceId = 0; - ActionType type = ActionType::NODE_ACTION; - robot_protocol_msgs::Action action; - }; - - class Mission - { - public: - int sequenceId = 0; - MissionType type = MissionType::SIMPLE_GOAL; - int priority = 0; - robot_geometry_msgs::PoseStamped start; - robot_geometry_msgs::PoseStamped goal; - std::vector nodes; - std::vector edges; - std::vector actions; - }; - - struct Event - { - EventType type = EventType::SUBMIT_MISSIONS; - int priority = PRIORITY_ORDER; - uint64_t sequence = 0; - std::vector> missions; - }; - - struct EventCompare - { - bool operator()(const Event& lhs, const Event& rhs) const - { - if (lhs.priority != rhs.priority) - return lhs.priority > rhs.priority; - - return lhs.sequence > rhs.sequence; - } - }; - - class EventBus - { - private: - mutable std::mutex mutex_; - std::priority_queue, EventCompare> queue_; - std::condition_variable cv_; - bool stop_ = false; - uint64_t next_sequence_ = 0; - - public: - void push(const Event& event); - void push(Event&& event); - bool pop(Event& event); - void stop(); - void reset(); - - inline bool empty() const - { - std::lock_guard lock(mutex_); - return queue_.empty(); - } - - inline void clear() - { - std::lock_guard lock(mutex_); - while (!queue_.empty()) queue_.pop(); - } - }; - - class VDA5050Adapter - { - public: - std::vector> convert(const robot_protocol_msgs::Order& order); - }; - - class GoalAdapter - { - public: - std::vector> convert(const robot_geometry_msgs::PoseStamped& goal); - }; - - class MissionManager - { - public: - void submit(const std::vector>& missions); - - std::shared_ptr nextMission(); - - void onNavigationDone(); - void onNavigationFailed(); - void cancel(); - void pause(); - void resume(); - void emergency(); - void clearEmergency(); - - MissionState state() const; - - // FIX #3: Returns true if there is any pending work — queue OR active mission. - bool hasMission() const; - - private: - mutable std::mutex mutex_; - MissionState state_ = MissionState::IDLE; - std::queue> mission_queue_; - std::shared_ptr current_mission_; - }; - - class EventProcessor - { - public: - explicit EventProcessor(MissionManager& mission_manager); - ~EventProcessor(); - - void start(); - void stop(); - - void goalEvent(const robot_geometry_msgs::PoseStamped& goal); - void orderEvent(const robot_protocol_msgs::Order& order); - void cancelEvent(); - void pauseEvent(); - void resumeEvent(); - void navDoneEvent(); - void navFailedEvent(); - void emergencyEvent(); - void clearEmergencyEvent(); - - private: - void spin(); - void process(const Event& event); - - private: - EventBus event_bus_; - GoalAdapter goal_adapter_; - VDA5050Adapter vda5050_adapter_; - MissionManager& mission_manager_; - std::thread worker_; - std::atomic running_{false}; - }; - - class MissionExecutor - { - public: - using MissionCallback = std::function&)>; - - explicit MissionExecutor(MissionManager& manager); - ~MissionExecutor(); - - void start(); - void stop(); - - // FIX #1: Must be called BEFORE start(), not inside the run loop. - void setMissionCallback(MissionCallback cb) - { - std::lock_guard lock(mutex_); - mission_callback_ = std::move(cb); - } - - private: - std::shared_ptr mission_execute_; - - // Last mission that was dispatched to the callback. - std::shared_ptr last_dispatched_mission_; - - MissionCallback mission_callback_; - MissionManager& mission_manager_; - mutable std::mutex mutex_; - std::thread worker_; - std::atomic running_{false}; - - void spin(); - }; - -} // namespace mission_adapters +#include +#include +#include +#include +#include +#include +#include #endif // MISSION_ADAPTERS_MISSION_ADAPTERS_H diff --git a/include/mission_adapters/mission_config.h b/include/mission_adapters/mission_config.h new file mode 100644 index 0000000..5291128 --- /dev/null +++ b/include/mission_adapters/mission_config.h @@ -0,0 +1,64 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Tham số vận hành của mission layer. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_MISSION_CONFIG_H_ +#define MISSION_ADAPTERS_MISSION_CONFIG_H_ + +#include + +#include + +namespace mission_adapters +{ + /** + * @struct MissionConfig + * @brief Tham số vận hành, nạp từ `mission_adapters_params.yaml`. + * + * Bản runtime của file nằm ở `pnkx_nav_core/config/`; bản trong `test/config/` chỉ dùng cho test + * và phải chạy kèm PNKX_NAV_CORE_CONFIG_DIR trỏ vào đó. + */ + struct MissionConfig + { + /** + * Trần thời gian cho MỘT chặng (nav + action), tính từ lúc chặng được giao. [s] + * + * 0 = tắt. Quá hạn thì chặng bị đánh dấu thất bại và navigation được bảo dừng — lưới cuối + * cho trường hợp navigation không bao giờ báo kết quả về. + */ + double mission_timeout = 0.0; + + /** + * Một chặng thất bại thì xử lý phần còn lại của hàng đợi thế nào. + * + * `true` (mặc định) = xoá sạch hàng đợi. Đây là hành vi an toàn cho tuyến đường tuần tự + * kiểu VDA5050: chặng 2 hỏng nghĩa là robot không tới được node 2, nên chạy tiếp chặng 3 là + * cắt ngang qua đoạn đường mà fleet manager chưa cho phép đi. + * + * `false` = chỉ bỏ chặng lỗi rồi chạy tiếp chặng sau. Chỉ đặt false khi các mission trong + * hàng đợi ĐỘC LẬP với nhau (nhiều goal rời rạc), không phải các chặng của cùng một tuyến. + */ + bool clear_queue_on_failure = true; + + /** + * @brief Nạp tham số từ namespace @p ns. + * @return false nếu giá trị nạp được không qua @ref validate. + * + * Thiếu khoá không phải lỗi: giá trị mặc định trong struct này là hợp lệ và an toàn. + */ + bool loadFromParams(robot::NodeHandle& nh, const std::string& ns = "mission_adapters"); + + /// @brief Kiểm miền giá trị. Trả false kèm log nêu đích danh tham số sai. + bool validate() const; + + /// @brief In cấu hình đang dùng — để log khởi động nói được vì sao robot hành xử như vậy. + void print() const; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_MISSION_CONFIG_H_ diff --git a/include/mission_adapters/mission_excutor.h b/include/mission_adapters/mission_excutor.h deleted file mode 100644 index e69de29..0000000 diff --git a/include/mission_adapters/mission_executor.h b/include/mission_adapters/mission_executor.h new file mode 100644 index 0000000..753edb1 --- /dev/null +++ b/include/mission_adapters/mission_executor.h @@ -0,0 +1,62 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Thread lấy mission kế tiếp từ MissionManager và đẩy xuống phía navigation. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_MISSION_EXECUTOR_H_ +#define MISSION_ADAPTERS_MISSION_EXECUTOR_H_ + +#include +#include +#include +#include + +#include +#include +#include + +namespace mission_adapters +{ + /** + * @class MissionExecutor + * @brief Thread duy nhất phát lệnh xuống navigation. + * + * Mọi lời gọi ra ngoài (dispatch, cancelActive) đi ra từ đây, nên MissionManager không bao giờ + * gọi ra ngoài khi đang giữ khoá. Thứ tự trong một vòng là bất biến an toàn: **cancel trước, + * dispatch sau** — chặng cũ phải được bảo dừng trước khi chặng mới bắt đầu. + */ + class MissionExecutor + { + public: + explicit MissionExecutor(MissionManager& manager); + ~MissionExecutor(); + + /** + * @brief Gắn cổng navigation. Con trỏ non-owning, phải sống lâu hơn executor. + * + * FIX #1: gọi TRƯỚC start(), không gọi trong vòng lặp. + */ + void setNavigationClient(NavigationClient* client); + + void start(); + void stop(); + + private: + void spin(); + + /// Một vòng công việc. Tách riêng để test gọi trực tiếp, không cần thread. + void step(); + + NavigationClient* navigation_client_ = nullptr; ///< non-owning, có thể null + MissionManager& mission_manager_; + mutable std::mutex mutex_; + std::thread worker_; + std::atomic running_{false}; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_MISSION_EXECUTOR_H_ diff --git a/include/mission_adapters/mission_manager.h b/include/mission_adapters/mission_manager.h index e69de29..2b4fd10 100644 --- a/include/mission_adapters/mission_manager.h +++ b/include/mission_adapters/mission_manager.h @@ -0,0 +1,165 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Trạng thái và hàng đợi mission — nơi duy nhất giữ MissionState. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_MISSION_MANAGER_H_ +#define MISSION_ADAPTERS_MISSION_MANAGER_H_ + +#include +#include +#include +#include +#include + +#include + +#include +#include + +namespace mission_adapters +{ + /** + * @class MissionManager + * @brief Hàng đợi mission và trạng thái của nó. Thread-safe, không tự gọi ra ngoài. + * + * Manager cố ý KHÔNG giữ con trỏ tới navigation: nó chỉ ghi nhận "mission này cần được dừng" + * (@ref takePendingCancel) và để MissionExecutor thực hiện lời gọi đó. Nhờ vậy không có lời gọi + * ra ngoài nào xảy ra khi đang giữ khoá, và mọi lệnh xuống navigation đi ra từ đúng một thread. + */ + class MissionManager + { + public: + MissionManager() = default; + explicit MissionManager(const MissionConfig& config) : config_(config) {} + + /// @brief Đổi tham số vận hành. Gọi trước khi có mission nào đang chạy. + void setConfig(const MissionConfig& config); + + /** + * @brief Nhận một loạt mission mới và cấp @ref MissionId cho từng cái. + * + * Semantics (A1): danh sách rỗng là **no-op tuyệt đối** — không đụng hàng đợi, không đổi + * trạng thái. Một order lỗi không phải là lệnh huỷ việc đang chạy. + * + * Submit khi đang RUNNING là **preempt tường minh**: mission đang chạy được ghi vào ô + * pending-cancel để navigation được bảo dừng, rồi hàng đợi mới thay hàng đợi cũ. + */ + void submit(const std::vector>& missions); + + /** + * @brief Nối thêm mission vào cuối hàng đợi, KHÔNG đụng chặng đang chạy. + * + * Dùng cho phần nối tiếp của một yêu cầu đang chạy (VDA5050 order update release thêm + * horizon). Khác @ref submit ở chỗ không preempt và không yêu cầu dừng navigation — tuyến + * đường không đổi thì robot không có lý do gì phải dừng lại. + */ + void append(const std::vector>& missions); + + /** + * @brief Lấy mission kế tiếp cần chạy. + * @return Mission MỚI, hoặc nullptr nếu chưa tới lượt. + * + * Chỉ trả khác null đúng một lần cho mỗi mission, tại đúng bước chuyển QUEUED -> RUNNING + * (M6). Bên gọi vì thế không cần tự khử trùng lặp. + */ + std::shared_ptr nextMission(); + + /** + * @brief Ghi nhận một chặng hoàn tất (cả navigation lẫn action — D8). + * @param id Mission vừa xong. + * @return false nếu outcome không thuộc mission đang chạy (đến trễ sau khi bị thay thế). + */ + bool onNavigationDone(MissionId id); + + /** + * @brief Ghi nhận một chặng thất bại. + * @return false nếu outcome không thuộc mission đang chạy. + */ + bool onNavigationFailed(MissionId id); + + void cancel(); + void pause(); + void resume(); + void emergency(); + void clearEmergency(); + + MissionState state() const; + + /// @brief Có việc đang treo hay không — hàng đợi HOẶC mission đang chạy. + bool hasMission() const; + + /// @brief Mission đang chạy, kInvalidMissionId nếu không có. + MissionId currentMissionId() const; + + /** + * @brief Lấy và xoá yêu cầu dừng navigation đang treo. + * @return kInvalidMissionId nếu không có yêu cầu nào. + * + * Chỉ MissionExecutor gọi hàm này; nó là cách manager nhờ executor gọi + * NavigationClient::cancelActive() mà bản thân không cần biết navigation là gì. + */ + MissionId takePendingCancel(); + + /** + * @brief Chờ tới khi có việc cho executor: mission mới cần giao, hoặc yêu cầu dừng đang treo. + * @return false nếu bị đánh thức bởi @ref wakeUp (đang dừng), true nếu thật sự có việc. + * + * Thay cho vòng poll: mission layer không có deadline định kỳ nào, poll chỉ thêm độ trễ + * trung bình nửa chu kỳ vào đường phản ứng cancel/emergency. + */ + bool waitForWork(); + + /// @brief Đánh thức mọi thread đang chờ trong @ref waitForWork (dùng khi dừng executor). + void wakeUp(); + + private: + /// Gọi khi đã giữ mutex_. Ghi mission đang chạy vào ô pending-cancel rồi bỏ nó ra. + void requestCancelOfCurrentLocked(); + + /// Gọi khi đã giữ mutex_. Id mission đang chạy, kInvalidMissionId nếu không có. + MissionId currentIdLocked() const; + + /** + * Gọi khi đã giữ mutex_. Đổi trạng thái và ghi log ĐÚNG MỘT LẦN tại mỗi lần đổi thật. + * + * Đây là nơi duy nhất được gán state_: nếu không, mission biến mất khỏi hàng đợi mà không + * có dòng log nào cho biết ai đã làm điều đó và vì sao. + * + * @param reason Lý do ngắn gọn, cho người đọc log lúc 2 giờ sáng. + */ + void setStateLocked(MissionState next, const char* reason, MissionId id = kInvalidMissionId); + + /// Gọi khi đã giữ mutex_. true nếu executor có việc để làm ngay. + bool hasWorkLocked() const; + + /// Gọi khi đã giữ mutex_. true nếu đang có chặng chạy và mission_timeout được bật. + bool timeoutArmedLocked() const; + + /** + * Gọi khi đã giữ mutex_. Đánh dấu chặng đang chạy là thất bại do quá hạn, và ghi yêu cầu + * dừng navigation — khác NAV_FAILED ở chỗ navigation vẫn đang chạy nên phải bảo nó dừng. + */ + void expireCurrentLocked(); + + mutable std::mutex mutex_; + std::condition_variable work_cv_; + bool wake_requested_ = false; + MissionState state_ = MissionState::IDLE; + std::queue> mission_queue_; + std::shared_ptr current_mission_; + MissionId pending_cancel_ = kInvalidMissionId; + + /// Thời điểm chặng hiện tại được giao — mốc tính mission_timeout. + robot::Time mission_start_time_; + + MissionConfig config_; + MissionId next_mission_id_ = 1; ///< 0 dành riêng cho kInvalidMissionId + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_MISSION_MANAGER_H_ diff --git a/include/mission_adapters/mission_request.h b/include/mission_adapters/mission_request.h new file mode 100644 index 0000000..aaf5205 --- /dev/null +++ b/include/mission_adapters/mission_request.h @@ -0,0 +1,77 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Envelope cho payload đầu vào của mission layer. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_MISSION_REQUEST_H_ +#define MISSION_ADAPTERS_MISSION_REQUEST_H_ + +#include +#include + +#include +#include + +namespace mission_adapters +{ + /// @brief Tên schema của các nguồn có sẵn. Nguồn mới tự khai schema riêng, không cần sửa ở đây. + namespace schema + { + constexpr const char* kVda5050Order = "vda5050.order"; + constexpr const char* kPoseStamped = "geometry.pose_stamped"; + } // namespace schema + + /** + * @struct MissionRequest + * @brief Payload đầu vào cùng với tên schema mô tả nó. + * + * Hai nguồn hiện có nhận hai kiểu khác hẳn nhau (Order và PoseStamped) nên không thể có một + * convert() chung nếu không bọc lại. Core chỉ định tuyến theo @ref schema và không bao giờ cần + * biết kiểu thật; thêm nguồn mới = thêm schema mới + plugin mới. + * + * Payload có kiểu dùng cho nguồn nội bộ (tránh serialize thừa); nguồn ngoài (REST/MQTT/file) đi + * bằng @ref raw_payload và tự parse trong plugin của mình. + */ + struct MissionRequest + { + std::string schema; + + std::shared_ptr order; + std::shared_ptr pose; + + std::string raw_payload; + + /// @brief Dựng request từ một VDA5050 Order. + static MissionRequest fromOrder(const robot_protocol_msgs::Order& order) + { + MissionRequest request; + request.schema = schema::kVda5050Order; + request.order = std::make_shared(order); + return request; + } + + /// @brief Dựng request từ một goal đơn lẻ. + static MissionRequest fromPose(const robot_geometry_msgs::PoseStamped& pose) + { + MissionRequest request; + request.schema = schema::kPoseStamped; + request.pose = std::make_shared(pose); + return request; + } + + /// @brief Dựng request từ payload thô của một nguồn ngoài. + static MissionRequest fromRaw(const std::string& schema_name, const std::string& payload) + { + MissionRequest request; + request.schema = schema_name; + request.raw_payload = payload; + return request; + } + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_MISSION_REQUEST_H_ diff --git a/include/mission_adapters/navigation_client.h b/include/mission_adapters/navigation_client.h new file mode 100644 index 0000000..f490e03 --- /dev/null +++ b/include/mission_adapters/navigation_client.h @@ -0,0 +1,55 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Cổng ra phía navigation của mission layer. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_NAVIGATION_CLIENT_H_ +#define MISSION_ADAPTERS_NAVIGATION_CLIENT_H_ + +#include + +#include + +namespace mission_adapters +{ + /** + * @class NavigationClient + * @brief Đường duy nhất để mission layer điều khiển navigation. + * + * Gói này KHÔNG biết navigation runtime nào đang chạy phía sau: bridge phía runtime hiện thực + * interface này, test hiện thực bằng fake. Nhờ vậy chiều phụ thuộc luôn một chiều và mission + * layer test được mà không cần robot. + * + * Bất biến an toàn: mọi đường thoát của một mission — bị thay thế, bị huỷ, emergency — đều phải + * đi qua @ref cancelActive. Mission layer quên mission mà không bảo navigation dừng thì robot + * vẫn chạy tiếp tới goal cũ. + */ + class NavigationClient + { + public: + virtual ~NavigationClient() = default; + + /** + * @brief Giao một mission cho navigation chạy. + * @param mission Mission bất biến, luôn khác null. + * @return false nếu navigation từ chối (goal không hợp lệ, chưa initialize...). Khi đó + * mission layer ghi nhận chặng này thất bại thay vì chờ vô hạn. + */ + virtual bool dispatch(const std::shared_ptr& mission) = 0; + + /** + * @brief Yêu cầu dừng mission đang chạy. + * @param id Mission cần dừng — navigation bỏ qua nếu nó đã chạy sang mission khác. + * + * Kết quả cuối cùng vẫn quay về qua đường outcome bình thường (navDoneEvent / + * navFailedEvent mang cùng @p id), không phải qua giá trị trả về của hàm này. + */ + virtual void cancelActive(MissionId id) = 0; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_NAVIGATION_CLIENT_H_ diff --git a/include/mission_adapters/plugin_registry.h b/include/mission_adapters/plugin_registry.h new file mode 100644 index 0000000..9fabf47 --- /dev/null +++ b/include/mission_adapters/plugin_registry.h @@ -0,0 +1,94 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Nạp và tra cứu MissionSourceAdapter theo schema. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_PLUGIN_REGISTRY_H_ +#define MISSION_ADAPTERS_PLUGIN_REGISTRY_H_ + +#include +#include +#include +#include + +#include + +#include + +namespace mission_adapters +{ + /** + * @class PluginRegistry + * @brief Bảng tra schema -> adapter, nạp từ YAML bằng Boost.DLL. + * + * Cấu hình mong đợi (xem `pnkx_nav_core/config/mission_adapters_params.yaml`): + * + * @code{.yaml} + * mission_adapters: + * mission_sources: + * - {name: goal_src, type: GoalSourceAdapter} + * - {name: vda5050_src, type: VDA5050SourceAdapter} + * + * GoalSourceAdapter: + * library_path: libmission_adapters_goal_source + * @endcode + * + * Khoá `library_path` là thứ hay bị quên nhất: thiếu nó thì plugin build xong vẫn báo "không + * tìm thấy" lúc chạy. Registry vì thế báo lỗi nêu đích danh khoá bị thiếu thay vì chỉ nói + * không nạp được. + */ + class PluginRegistry + { + public: + PluginRegistry() = default; + ~PluginRegistry(); + + PluginRegistry(const PluginRegistry&) = delete; + PluginRegistry& operator=(const PluginRegistry&) = delete; + + /** + * @brief Nạp toàn bộ nguồn khai trong `/mission_sources`. + * @param nh NodeHandle gốc. + * @param ns Namespace chứa danh sách nguồn. + * @return false nếu có bất kỳ nguồn nào không nạp được. Các nguồn còn lại vẫn được đăng ký, + * và mỗi lỗi được log kèm lý do cụ thể. + */ + bool loadFromConfig(robot::NodeHandle& nh, const std::string& ns = "mission_adapters"); + + /** + * @brief Đăng ký một adapter đã dựng sẵn (test, hoặc nguồn biên dịch thẳng vào host). + * @return false nếu adapter null, schema rỗng, hoặc schema đã có chủ. + */ + bool registerAdapter(const MissionSourceAdapter::Ptr& adapter); + + /// @brief Tìm adapter xử lý schema này. nullptr nếu không có. + MissionSourceAdapter* find(const std::string& schema) const; + + size_t size() const { return adapters_.size(); } + + /// @brief Danh sách schema đã đăng ký, dùng cho log và test. + std::vector schemas() const; + + void clear(); + + private: + /// Nạp một nguồn. Trả false kèm log lý do nếu hỏng ở bất kỳ bước nào. + bool loadOne(const std::string& name, const std::string& type, robot::NodeHandle& nh); + + std::map adapters_; + + /** + * Giữ factory của Boost.DLL sống đúng bằng vòng đời registry. + * + * Đây không phải biến thừa: factory nắm shared_library bên trong, thả nó ra là .so bị unload + * trong khi các adapter tạo từ nó vẫn còn sống — vtable trỏ vào vùng nhớ đã gỡ. + */ + std::vector> factories_; + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_PLUGIN_REGISTRY_H_ diff --git a/include/mission_adapters/types.h b/include/mission_adapters/types.h index e69de29..168f51b 100644 --- a/include/mission_adapters/types.h +++ b/include/mission_adapters/types.h @@ -0,0 +1,144 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Kiểu dữ liệu nền của mission layer: trạng thái, mission, action. + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_TYPES_H_ +#define MISSION_ADAPTERS_TYPES_H_ + +#include +#include +#include +#include +#include + +#include +#include + +namespace mission_adapters +{ + /** + * @brief Danh tính của một mission, do MissionManager cấp khi submit và đơn điệu tăng. + * + * Mọi kết quả từ phía navigation phải mang ID này. Không có nó thì outcome trễ của một mission + * đã bị thay thế sẽ được ghi nhận cho mission đang chạy — mission mới "hoàn thành" mà robot + * chưa hề đi. + */ + using MissionId = std::uint64_t; + + /// @brief Mission chưa được submit (hoặc không tồn tại). + static constexpr MissionId kInvalidMissionId = 0; + + /// @brief Trạng thái hàng đợi mission. Tại mỗi thời điểm robot chỉ ở đúng một trạng thái. + enum class MissionState + { + IDLE, + QUEUED, + RUNNING, + PAUSED, + COMPLETED, + FAILED, + CANCELLED, + EMERGENCY, + CLEAR_EMERGENCY + }; + + /// @brief Tên trạng thái, dùng cho log và cho host hiển thị. + const char* toString(MissionState state); + + /// @brief Nguồn gốc mission, quyết định cách consumer diễn giải nodes/edges. + enum class MissionType + { + SIMPLE_GOAL, + VDA5050_ORDER + }; + + /// @brief Action gắn với node (thực hiện tại chỗ) hay với edge (thực hiện dọc đường đi). + enum class ActionType + { + NODE_ACTION, + EDGE_ACTION + }; + + class Action + { + public: + int sequenceId = 0; + ActionType type = ActionType::NODE_ACTION; + robot_protocol_msgs::Action action; + }; + + /** + * @brief Một chặng việc self-contained mà navigation runtime có thể chạy trọn vẹn. + * + * @invariant Bất biến sau khi MissionManager::submit() gán @ref id: từ thời điểm đó mission chỉ + * được chia sẻ dưới dạng std::shared_ptr, nên ba thread (event, exec, + * navigation) đọc chung mà không cần khoá. + */ + class Mission + { + public: + MissionId id = kInvalidMissionId; ///< 0 cho tới khi submit; sau đó không đổi + MissionType type = MissionType::SIMPLE_GOAL; + + /** + * false = mission chỉ-có-action: navigation runtime bỏ qua phần di chuyển và vào thẳng + * thực thi action (D8). @ref start và @ref goal khi đó không mang ý nghĩa. + * + * @invariant has_goal == false thì @ref actions phải khác rỗng — mission không goal cũng + * không action là mission không có việc gì để làm. + */ + bool has_goal = true; + + robot_geometry_msgs::PoseStamped start; ///< chỉ hợp lệ khi has_goal + robot_geometry_msgs::PoseStamped goal; ///< chỉ hợp lệ khi has_goal + + std::vector nodes; + std::vector edges; + + /** + * Action của chặng, đã sắp theo sequenceId. + * + * Mission layer KHÔNG diễn giải `actionType` và không lọc gì — đó là việc của navigation + * runtime (D8). Ở đây chúng chỉ đi qua nguyên vẹn, đúng thứ tự. + */ + std::vector actions; + + /** + * Profile navigation hiệu lực của chặng có goal: `"position"`, `"docking"`, + * `"go_straight"` hoặc `"rotate"`. Mission chỉ-action phải để rỗng. Adapter hiện tại + * luôn ghi `"position"` rõ ràng cho chặng nav thường để trace/runtime biết chính xác + * planner nào sẽ được chọn; bridge vẫn chấp nhận rỗng như `position` để tương thích output + * cũ. + * + * Là **chuỗi** chứ không phải enum, và mission layer **không diễn giải** nó — cùng quy tắc + * với @ref actions. Mission layer không được biết tới navigation nên không có kiểu nào để + * diễn tả "profile"; lớp nối phía navigation mới dịch chuỗi này sang khái niệm của mình. + */ + std::string motion_hint; + + /** + * Marker chọn cặp planner docking. Rỗng hoặc không có override cấu hình thì navigation + * dùng profile docking mặc định. Đây không phải goal_frame: marker là khoá cấu hình, còn + * goal_frame là frame TF được resolve khi chặng bắt đầu. + */ + std::string marker; + + /** + * Đích lấy từ TF frame này thay vì từ @ref goal. Rỗng = dùng @ref goal. + * + * Chặng dò-rồi-tiến-vào không biết đích lúc được sinh ra: bước dò phía trước tạo ra frame + * này, và navigation tra nó tại thời điểm chặng được nhận. + */ + std::string goal_frame; + + /// Quãng đường tương đối [m] so với pose hiện tại; dương = tiến, âm = lùi. NaN = không dùng. + double relative_distance = std::numeric_limits::quiet_NaN(); + }; + +} // namespace mission_adapters + +#endif // MISSION_ADAPTERS_TYPES_H_ diff --git a/package.xml b/package.xml index 16f2806..7e98e01 100644 --- a/package.xml +++ b/package.xml @@ -1,51 +1,41 @@ mission_adapters - 0.7.10 + 0.2.0 - mission_adapters is the second generation of the transform library, which lets - the user keep track of multiple coordinate frames over time. mission_adapters - maintains the relationship between coordinate frames in a tree - structure buffered in time, and lets the user transform points, - vectors, etc between any two coordinate frames at any desired - point in time. + Lớp mission độc lập ROS: nhận yêu cầu từ nguồn ngoài (goal đơn lẻ, VDA5050 Order), chuyển thành + hàng đợi mission, và giữ trạng thái của hàng đợi đó qua một event bus có thread riêng. + + Gói không biết navigation runtime nào đang chạy phía sau — mission được đẩy xuống qua cổng + NavigationClient, kết quả quay về theo MissionId. Nhờ vậy cùng một lớp mission dùng được cho + nhiều runtime khác nhau và test được mà không cần robot. + + Nguồn mission là plugin nạp bằng Boost.DLL theo khoá library_path trong YAML, giống phần còn lại + của workspace; thêm một loại nguồn mới không phải sửa core. - Tully Foote - Eitan Marder-Eppstein - Wim Meeussen - Tully Foote + DuongTD + DuongTD BSD - http://www.ros.org/wiki/mission_adapters - catkin - libconsole-bridge-dev - libconsole-bridge-dev - - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs robot_cpp - tf3 - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert - - robot_costmap_2d - robot_nav_core - robot_nav_core2 - robot_nav_msgs - robot_std_msgs - robot_geometry_msgs robot_cpp - tf3 - robot_tf3_geometry_msgs - robot_visualization_msgs - robot_nav_2d_utils - data_convert + + robot_time + robot_time + + robot_geometry_msgs + robot_geometry_msgs + + + robot_protocol_msgs + robot_protocol_msgs + + robot_std_msgs + robot_std_msgs + + yaml-cpp + yaml-cpp + gtest - \ No newline at end of file + diff --git a/plugins/goal_source_adapter.cpp b/plugins/goal_source_adapter.cpp new file mode 100644 index 0000000..4f58ab1 --- /dev/null +++ b/plugins/goal_source_adapter.cpp @@ -0,0 +1,91 @@ +#include "goal_source_adapter.h" + +#include + +#include + +namespace mission_plugins +{ + +mission_adapters::MissionSourceAdapter::Ptr GoalSourceAdapter::create() +{ + return std::make_shared(); +} + +bool GoalSourceAdapter::configure(const std::string& name, robot::NodeHandle& nh) +{ + (void)nh; // nguồn này chưa có param riêng + name_ = name; + return true; +} + +std::string GoalSourceAdapter::schema() const +{ + return mission_adapters::schema::kPoseStamped; +} + +bool GoalSourceAdapter::validate(const mission_adapters::MissionRequest& request, + std::string& reason) const +{ + if (!request.pose) + { + reason = "request is missing the pose payload"; + return false; + } + + const auto& position = request.pose->pose.position; + const auto& orientation = request.pose->pose.orientation; + + // NaN/Inf từ host phải bị chặn ngay tại biên: lọt xuống dưới thì mọi phép so khoảng cách tới + // goal đều trả false và robot chạy tới khi có người bấm dừng. + if (!std::isfinite(position.x) || !std::isfinite(position.y) || !std::isfinite(position.z)) + { + reason = "goal contains NaN/Inf in position"; + return false; + } + + if (!std::isfinite(orientation.x) || !std::isfinite(orientation.y) || + !std::isfinite(orientation.z) || !std::isfinite(orientation.w)) + { + reason = "goal contains NaN/Inf in orientation"; + return false; + } + + // Quaternion toàn 0 là lỗi hay gặp khi host quên set orientation — nó không phải "hướng bất kỳ", + // nó là dữ liệu hỏng. + const double norm_squared = orientation.x * orientation.x + + orientation.y * orientation.y + + orientation.z * orientation.z + + orientation.w * orientation.w; + + if (std::sqrt(norm_squared) < kMinQuaternionNorm) + { + reason = "goal has a quaternion that cannot be normalized (norm ~ 0)"; + return false; + } + + return true; +} + +mission_adapters::ConversionResult +GoalSourceAdapter::convert(const mission_adapters::MissionRequest& request) +{ + mission_adapters::ConversionResult result; + + if (!request.pose) + return result; + + auto mission = std::make_shared(); + mission->type = mission_adapters::MissionType::SIMPLE_GOAL; + mission->goal = *request.pose; + mission->motion_hint = "position"; + + // Goal đơn lẻ luôn thay việc đang chạy: người dùng bấm một đích mới nghĩa là bỏ đích cũ. + result.mode = mission_adapters::SubmitMode::kReplace; + result.missions.push_back(mission); + return result; +} + +} // namespace mission_plugins + +BOOST_DLL_ALIAS(mission_plugins::GoalSourceAdapter::create, GoalSourceAdapter) diff --git a/plugins/goal_source_adapter.h b/plugins/goal_source_adapter.h new file mode 100644 index 0000000..a2ac091 --- /dev/null +++ b/plugins/goal_source_adapter.h @@ -0,0 +1,55 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Nguồn mission từ một goal đơn lẻ (schema "geometry.pose_stamped"). + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_PLUGINS_GOAL_SOURCE_ADAPTER_H_ +#define MISSION_ADAPTERS_PLUGINS_GOAL_SOURCE_ADAPTER_H_ + +#include +#include +#include + +#include + +#include + +namespace mission_plugins +{ + +/** + * @class GoalSourceAdapter + * @brief Goal đơn lẻ từ host -> đúng một mission. + * + * Không có state giữa các lần gọi, nhưng vẫn không dùng biến static: một tiến trình có thể chạy + * nhiều instance (nhiều robot mô phỏng) và state static sẽ nối chúng lại với nhau. + */ +class GoalSourceAdapter : public mission_adapters::MissionSourceAdapter +{ +public: + /// @brief Factory được PluginRegistry nạp qua boost::dll::import_alias. + static mission_adapters::MissionSourceAdapter::Ptr create(); + + bool configure(const std::string& name, robot::NodeHandle& nh) override; + + std::string schema() const override; + + bool validate(const mission_adapters::MissionRequest& request, + std::string& reason) const override; + + mission_adapters::ConversionResult + convert(const mission_adapters::MissionRequest& request) override; + +private: + /// Dưới ngưỡng này thì quaternion coi như không mang hướng nào. [không đơn vị] + static constexpr double kMinQuaternionNorm = 1e-6; + + std::string name_; +}; + +} // namespace mission_plugins + +#endif // MISSION_ADAPTERS_PLUGINS_GOAL_SOURCE_ADAPTER_H_ diff --git a/plugins/vda5050_source_adapter.cpp b/plugins/vda5050_source_adapter.cpp new file mode 100644 index 0000000..9c3a325 --- /dev/null +++ b/plugins/vda5050_source_adapter.cpp @@ -0,0 +1,577 @@ +#include "vda5050_source_adapter.h" + +#include +#include +#include +#include + +#include + +#include + +#include + +namespace mission_plugins +{ +namespace +{ +bool isNavigationProfile(const std::string& profile) +{ + return profile.empty() || profile == "position" || profile == "docking" || + profile == "go_straight" || profile == "rotate"; +} + + using mission_adapters::Action; + using mission_adapters::ActionType; + using mission_adapters::ConversionResult; + using mission_adapters::Mission; + using mission_adapters::MissionType; + using mission_adapters::SubmitMode; + + /// Gom action của edge và của node cuối vào mission, sắp theo sequenceId của VDA5050. + void collectActions(const std::shared_ptr& mission) + { + for (const auto& edge : mission->edges) + { + for (const auto& action : edge.actions) + { + Action ma; + ma.sequenceId = edge.sequenceId; + ma.type = ActionType::EDGE_ACTION; + ma.action = action; + mission->actions.push_back(std::move(ma)); + } + } + + if (!mission->nodes.empty()) + { + const auto& node = mission->nodes.back(); + for (const auto& action : node.actions) + { + Action ma; + ma.sequenceId = node.sequenceId; + ma.type = ActionType::NODE_ACTION; + ma.action = action; + mission->actions.push_back(std::move(ma)); + } + } + + // stable_sort chứ không sort: `sequenceId` ở đây là của NODE/EDGE sở hữu action, nên mọi + // action trên cùng một node có khoá BẰNG NHAU. Với khoá bằng nhau, std::sort không bảo đảm + // giữ thứ tự — mà thứ tự đó chính là thứ tự trong mảng JSON, thứ VDA5050 quy định là thứ tự + // thực hiện. Bản cũ chạy đúng chỉ nhờ libstdc++ dùng insertion sort cho dải nhỏ. + std::stable_sort(mission->actions.begin(), mission->actions.end(), + [](const Action& a, const Action& b) { + return a.sequenceId < b.sequenceId; + }); + } + +} // namespace + +mission_adapters::MissionSourceAdapter::Ptr VDA5050SourceAdapter::create() +{ + return std::make_shared(); +} + +bool VDA5050SourceAdapter::configure(const std::string& name, robot::NodeHandle& nh) +{ + name_ = name; + + nh.getParam(name + "/global_frame", global_frame_, std::string("map")); + if (global_frame_.empty()) + { + robot::log_error("VDA5050SourceAdapter[%s]: global_frame is empty", name.c_str()); + return false; + } + + if (!loadCompoundActions(name, nh)) + return false; + + last_order_id_.clear(); + last_order_update_id_ = 0; + converted_node_count_ = 0; + return true; +} + +bool VDA5050SourceAdapter::loadCompoundActions(const std::string& name, robot::NodeHandle& nh) +{ + compound_actions_.clear(); + + YAML::Node table; + if (!nh.getParam(name + "/compound_actions", table) || !table.IsMap()) + return true; // Không khai bảng là hợp lệ: adapter chạy y như trước. + + for (auto entry = table.begin(); entry != table.end(); ++entry) + { + const std::string action_type = entry->first.as(); + const YAML::Node& steps_node = entry->second["steps"]; + + if (action_type.empty() || !steps_node || !steps_node.IsSequence() || steps_node.size() == 0) + { + robot::log_error("VDA5050SourceAdapter[%s]: compound action '%s' has no 'steps' list", + name.c_str(), action_type.c_str()); + return false; + } + + Steps steps; + for (std::size_t i = 0; i < steps_node.size(); ++i) + { + const YAML::Node& n = steps_node[i]; + Step step; + + try + { + if (n["action"]) step.action = n["action"].as(); + if (n["move_to"]) step.move_to = n["move_to"].as(); + if (n["move_to_param"]) step.move_to_param = n["move_to_param"].as(); + if (n["move"]) step.move = n["move"].as(); + if (n["profile"]) step.motion_hint = n["profile"].as(); + if (n["marker"]) step.marker = n["marker"].as(); + } + catch (const YAML::Exception& ex) + { + robot::log_error("VDA5050SourceAdapter[%s]: '%s' step %zu is malformed: %s", + name.c_str(), action_type.c_str(), i, ex.what()); + return false; + } + + const int keys = (step.action.empty() ? 0 : 1) + (step.move_to.empty() ? 0 : 1) + + (step.move_to_param.empty() ? 0 : 1) + + (std::isfinite(step.move) ? 1 : 0); + if (keys != 1) + { + // Không đúng một từ khoá thì không có cách diễn giải nào là hiển nhiên đúng. Chặn ở + // boot thay vì đoán lúc order đầu tiên tới. + robot::log_error("VDA5050SourceAdapter[%s]: '%s' step %zu must have exactly one of " + "action / move_to / move_to_param / move (found %d)", + name.c_str(), action_type.c_str(), i, keys); + return false; + } + + if (!isNavigationProfile(step.motion_hint)) + { + robot::log_error("VDA5050SourceAdapter[%s]: '%s' step %zu has invalid profile '%s'", + name.c_str(), action_type.c_str(), i, step.motion_hint.c_str()); + return false; + } + if (!step.action.empty() && !step.motion_hint.empty()) + { + robot::log_error("VDA5050SourceAdapter[%s]: '%s' step %zu is action-only and must " + "not set profile", + name.c_str(), action_type.c_str(), i); + return false; + } + if (!step.marker.empty() && step.motion_hint != "docking") + { + robot::log_error("VDA5050SourceAdapter[%s]: '%s' step %zu sets marker but is not " + "a docking navigation step", + name.c_str(), action_type.c_str(), i); + return false; + } + + steps.push_back(step); + } + + compound_actions_[action_type] = std::move(steps); + } + + // Chống đệ quy: một step sinh ra actionType mà chính nó cũng là compound thì expander sẽ mở rộng + // output của mình — vòng lặp vô hạn lúc convert. + for (const auto& entry : compound_actions_) + { + for (const Step& step : entry.second) + { + if (!step.action.empty() && compound_actions_.count(step.action) != 0) + { + robot::log_error("VDA5050SourceAdapter[%s]: compound '%s' emits '%s' which is itself " + "a compound action — that would recurse", + name.c_str(), entry.first.c_str(), step.action.c_str()); + return false; + } + } + } + + robot::log_info("VDA5050SourceAdapter[%s]: %zu compound action(s) loaded", name.c_str(), + compound_actions_.size()); + return true; +} + +const VDA5050SourceAdapter::Steps* +VDA5050SourceAdapter::findCompound(const std::string& action_type) const +{ + const auto it = compound_actions_.find(action_type); + return it == compound_actions_.end() ? nullptr : &it->second; +} + +std::string VDA5050SourceAdapter::schema() const +{ + return mission_adapters::schema::kVda5050Order; +} + +size_t VDA5050SourceAdapter::countReleasedNodes(const robot_protocol_msgs::Order& order) +{ + // VDA5050: base là tiền tố của danh sách node — dừng ở node đầu tiên chưa release. + size_t count = 0; + while (count < order.nodes.size() && order.nodes[count].released) + ++count; + + return count; +} + +size_t VDA5050SourceAdapter::countReleasedEdges(const robot_protocol_msgs::Order& order, + size_t released_node_count) +{ + if (released_node_count < 2) + return 0; + + size_t count = 0; + const size_t limit = std::min(order.edges.size(), released_node_count - 1); + while (count < limit && order.edges[count].released) + ++count; + + return count; +} + +size_t VDA5050SourceAdapter::executableNodeCount(const robot_protocol_msgs::Order& order) const +{ + const size_t released = countReleasedNodes(order); + if (released > 0) + return released; + + // Không node nào released. Theo VDA5050 order phải có ít nhất một base node, nên trường hợp này + // gần như luôn là host không điền `released`. Coi cả order là base — im lặng không chạy gì sẽ + // khiến fleet manager chờ vô hạn mà không có dấu hiệu nào. + robot::log_warning("VDA5050SourceAdapter[%s]: order '%s' has no released node — treating the " + "whole order as base (did the host leave the 'released' field out?)", + name_.c_str(), order.orderId.c_str()); + return order.nodes.size(); +} + +robot_geometry_msgs::PoseStamped +VDA5050SourceAdapter::toPose(const robot_protocol_msgs::Node& node) const +{ + robot_geometry_msgs::PoseStamped pose; + pose.header.frame_id = global_frame_; + pose.pose.position.x = node.nodePosition.x; // [m] + pose.pose.position.y = node.nodePosition.y; // [m] + pose.pose.position.z = 0.0; + + // theta [rad] quanh trục z -> quaternion. + const double half_theta = 0.5 * node.nodePosition.theta; + pose.pose.orientation.x = 0.0; + pose.pose.orientation.y = 0.0; + pose.pose.orientation.z = std::sin(half_theta); + pose.pose.orientation.w = std::cos(half_theta); + + return pose; +} + +bool VDA5050SourceAdapter::validate(const mission_adapters::MissionRequest& request, + std::string& reason) const +{ + if (!request.order) + { + reason = "request is missing the order payload"; + return false; + } + + const auto& order = *request.order; + + if (order.nodes.empty()) + { + reason = "order has no node"; + return false; + } + + // VDA5050: n node liên thông cần đúng n-1 edge. Thiếu edge nghĩa là đồ thị đứt đoạn, cắt chặng + // theo chỉ số sẽ lấy nhầm edge của đoạn khác. + if (order.nodes.size() > 1 && order.edges.size() < order.nodes.size() - 1) + { + reason = "fewer edges than nodes - 1"; + return false; + } + + for (const auto& node : order.nodes) + { + if (!std::isfinite(node.nodePosition.x) || !std::isfinite(node.nodePosition.y) || + !std::isfinite(node.nodePosition.theta)) + { + reason = "nodePosition contains NaN/Inf at node '" + node.nodeId + "'"; + return false; + } + } + + // Bản cập nhật cũ hơn (hoặc phát lại) của order đang chạy: từ chối thay vì chạy lại tuyến đường. + if (!order.orderId.empty() && order.orderId == last_order_id_ && + order.orderUpdateId <= last_order_update_id_) + { + reason = "orderUpdateId " + std::to_string(order.orderUpdateId) + + " is not newer than the running one (" + std::to_string(last_order_update_id_) + ")"; + return false; + } + + return true; +} + + +bool VDA5050SourceAdapter::expandCompound( + const std::shared_ptr& leg, + std::vector>& out) const +{ + if (compound_actions_.empty() || leg->actions.empty()) + return true; // Không có gì để mở rộng — đường đi thường. + + std::vector buffer; // action thường đang chờ xả + std::vector on_the_leg; // bộ đệm ĐẦU TIÊN: ở lại trên chặng nav + bool first_flush = true; + bool expanded_any = false; + + // Chặng chỉ-action sinh ra từ bộ đệm sau lần xả đầu. + auto flush = [&](void) { + if (buffer.empty()) + return; + if (first_flush) + { + on_the_leg = buffer; + } + else + { + auto extra = std::make_shared(); + extra->type = MissionType::VDA5050_ORDER; + extra->has_goal = false; + extra->actions = buffer; + out.push_back(std::move(extra)); + } + buffer.clear(); + }; + + for (const Action& entry : leg->actions) + { + // Compound chỉ áp cho NODE_ACTION: một chuỗi dò-rồi-tiến-vào không có nghĩa khi gắn vào một + // cạnh mà robot đang đi trên đó. + const Steps* steps = (entry.type == ActionType::NODE_ACTION) + ? findCompound(entry.action.actionType) + : nullptr; + + if (steps == nullptr) + { + if (entry.type == ActionType::EDGE_ACTION && + findCompound(entry.action.actionType) != nullptr) + { + robot::log_warning("VDA5050SourceAdapter[%s]: '%s' is a compound action but sits on " + "an EDGE — running it as a plain action", + name_.c_str(), entry.action.actionType.c_str()); + } + buffer.push_back(entry); + continue; + } + + flush(); + first_flush = false; + expanded_any = true; + + for (const Step& step : *steps) + { + auto sub = std::make_shared(); + sub->type = MissionType::VDA5050_ORDER; + + if (!step.action.empty()) + { + // Action nội bộ: mang NGUYÊN actionParameters của action gốc — handler cần biết dò + // trạm nào, và nó là chỗ duy nhất hiểu ý nghĩa các tham số đó. + Action generated; + generated.type = ActionType::NODE_ACTION; + generated.sequenceId = entry.sequenceId; + generated.action = entry.action; + generated.action.actionType = step.action; + generated.action.actionId = entry.action.actionId + "-" + step.action; + + sub->has_goal = false; + sub->actions.push_back(std::move(generated)); + } + else + { + sub->has_goal = true; + // Mission nav luôn tự mô tả profile hiệu lực. Action-only giữ chuỗi rỗng để không + // bao giờ bị hiểu nhầm là một yêu cầu điều khiển. + sub->motion_hint = step.motion_hint.empty() ? "position" : step.motion_hint; + sub->marker = step.marker; + sub->start = leg->start; + sub->goal = leg->goal; // chỗ dựa; đích thật đến muộn qua goal_frame/relative_distance + + if (!step.move_to.empty()) + { + sub->goal_frame = step.move_to; + } + else if (!step.move_to_param.empty()) + { + // Thay thế xảy ra tại CONVERT: runtime không bao giờ thấy placeholder, và thiếu + // tham số thì order bị từ chối trước khi robot nhúc nhích. + const auto it = std::find_if( + entry.action.actionParameters.begin(), entry.action.actionParameters.end(), + [&step](const robot_protocol_msgs::ActionParameter& p) { + return p.key == step.move_to_param; + }); + + if (it == entry.action.actionParameters.end() || it->value.empty()) + { + robot::log_error("VDA5050SourceAdapter[%s]: compound action '%s' (actionId " + "'%s') requires parameter '%s' but it is missing", + name_.c_str(), entry.action.actionType.c_str(), + entry.action.actionId.c_str(), step.move_to_param.c_str()); + return false; + } + sub->goal_frame = it->value; + } + else + { + sub->relative_distance = step.move; + } + } + + out.push_back(std::move(sub)); + } + } + + flush(); + + if (expanded_any) + leg->actions = on_the_leg; + + return true; +} + +ConversionResult VDA5050SourceAdapter::convert(const mission_adapters::MissionRequest& request) +{ + ConversionResult result; + + std::string reason; + if (!validate(request, reason)) + { + robot::log_warning("VDA5050SourceAdapter[%s]: dropping the order — %s", name_.c_str(), + reason.c_str()); + return result; + } + + const auto& order = *request.order; + + const size_t node_count = executableNodeCount(order); + const size_t edge_count = (countReleasedNodes(order) > 0) + ? countReleasedEdges(order, node_count) + : order.edges.size(); + + // Order update của đúng order đang chạy: chỉ sinh phần vừa được release thêm. + const bool is_update = !order.orderId.empty() && order.orderId == last_order_id_; + + size_t start_node_idx = 0; + if (is_update) + { + if (converted_node_count_ >= node_count) + { + robot::log_info("VDA5050SourceAdapter[%s]: order '%s' update %u released no further " + "node — there is no new work", + name_.c_str(), order.orderId.c_str(), + static_cast(order.orderUpdateId)); + + last_order_update_id_ = order.orderUpdateId; + return result; + } + + // Node cuối đã chuyển đổi trở thành node xuất phát của chặng tiếp theo. + start_node_idx = converted_node_count_ - 1; + result.mode = SubmitMode::kAppend; + } + + // Chặng được cắt tại mỗi node có action: robot chạy tới node đó rồi mới thực hiện action. + std::vector action_node_indices; + for (size_t i = start_node_idx + 1; i < node_count; ++i) + { + if (!order.nodes[i].actions.empty()) + action_node_indices.push_back(i); + } + + // Node xuất phát có action (và chưa từng được chuyển đổi) cũng là một chặng — chặng chỉ-action. + if (!is_update && !order.nodes[start_node_idx].actions.empty()) + action_node_indices.insert(action_node_indices.begin(), start_node_idx); + + auto makeMission = [&](size_t from, size_t to) { + auto mission = std::make_shared(); + mission->type = MissionType::VDA5050_ORDER; + + mission->nodes.assign(order.nodes.begin() + from, order.nodes.begin() + to + 1); + + if (to > from) + { + const size_t edge_to = std::min(to, edge_count); + if (from < edge_to) + mission->edges.assign(order.edges.begin() + from, order.edges.begin() + edge_to); + } + + // D8: chặng một node là chặng chỉ-có-action (action nằm ngay tại node xuất phát) — không có + // quãng đường nào để đi. Quy tắc thuần cấu trúc, adapter không cần biết robot đang ở đâu. + mission->has_goal = (to > from); + + if (mission->has_goal) + { + // Mission self-contained: consumer không phải suy goal ra từ nodes (A4). + mission->start = toPose(order.nodes[from]); + mission->goal = toPose(order.nodes[to]); + mission->motion_hint = "position"; + } + + collectActions(mission); + return mission; + }; + + // Mission không goal mà cũng không action là mission rỗng — không sinh ra nó. + auto isMeaningful = [](const std::shared_ptr& mission) { + return mission->has_goal || !mission->actions.empty(); + }; + + size_t segment_start = start_node_idx; + + for (const size_t action_node_idx : action_node_indices) + { + auto mission = makeMission(segment_start, action_node_idx); + + // Mở rộng TRƯỚC isMeaningful: hàm này gỡ action compound khỏi chặng, và một chặng chỉ-action + // sau khi gỡ có thể trở thành rỗng. + std::vector> expanded; + if (!expandCompound(mission, expanded)) + { + // Thiếu tham số cấu trúc: bỏ CẢ order. Một order chạy nửa vời — robot tới trạm sạc rồi + // không sạc — nguy hiểm hơn là không chạy. + result.missions.clear(); + return result; + } + + if (isMeaningful(mission)) + result.missions.push_back(std::move(mission)); + + for (auto& sub : expanded) + result.missions.push_back(std::move(sub)); + + segment_start = action_node_idx; + } + + // Đoạn còn lại sau node có action cuối cùng. + if (segment_start + 1 < node_count) + { + auto mission = makeMission(segment_start, node_count - 1); + if (isMeaningful(mission)) + result.missions.push_back(std::move(mission)); + } + + if (result.missions.empty()) + return result; + + last_order_id_ = order.orderId; + last_order_update_id_ = order.orderUpdateId; + converted_node_count_ = node_count; + + return result; +} + +} // namespace mission_plugins + +BOOST_DLL_ALIAS(mission_plugins::VDA5050SourceAdapter::create, VDA5050SourceAdapter) diff --git a/plugins/vda5050_source_adapter.h b/plugins/vda5050_source_adapter.h new file mode 100644 index 0000000..6f0a8e9 --- /dev/null +++ b/plugins/vda5050_source_adapter.h @@ -0,0 +1,146 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Nguồn mission từ VDA5050 Order (schema "vda5050.order"). + * + * Author: DuongTD + *********************************************************************/ +#ifndef MISSION_ADAPTERS_PLUGINS_VDA5050_SOURCE_ADAPTER_H_ +#define MISSION_ADAPTERS_PLUGINS_VDA5050_SOURCE_ADAPTER_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +namespace mission_plugins +{ + +/** + * @class VDA5050SourceAdapter + * @brief Cắt một VDA5050 Order thành các chặng, mỗi chặng kết thúc tại một node có action. + * + * Ba điểm conformance mà adapter này chịu trách nhiệm: + * + * 1. **base / horizon** — chỉ phần `released == true` được thực thi. Horizon là dự định của fleet + * manager, chưa được phép chạy; robot đi vào đó là đi vào đoạn đường chưa ai cho phép. + * 2. **orderId / orderUpdateId** — phân biệt yêu cầu MỚI (thay hàng đợi) với bản CẬP NHẬT của yêu + * cầu đang chạy (nối tiếp). Nhầm hai thứ này thì mỗi lần fleet manager release thêm horizon, + * robot lại huỷ và chạy lại chặng đang đi. + * 3. **goal / start self-contained** — mission mang sẵn pose đích, consumer không phải tự đoán từ + * `nodes.back()`. + * + * State là member, không phải static local: nhiều instance trong cùng tiến trình không được nhìn + * thấy order của nhau. + */ +class VDA5050SourceAdapter : public mission_adapters::MissionSourceAdapter +{ +public: + /// @brief Factory được PluginRegistry nạp qua boost::dll::import_alias. + static mission_adapters::MissionSourceAdapter::Ptr create(); + + /** + * @brief Đọc param riêng của instance. + * + * Param (namespace ``): + * - `global_frame` [string, mặc định "map"]: frame gán cho pose sinh ra từ nodePosition. + * - `compound_actions` [map, optional]: action "phải dò rồi mới biết đích" — xem @ref Step. + */ + bool configure(const std::string& name, robot::NodeHandle& nh) override; + + std::string schema() const override; + + bool validate(const mission_adapters::MissionRequest& request, + std::string& reason) const override; + + mission_adapters::ConversionResult + convert(const mission_adapters::MissionRequest& request) override; + +private: + /** + * @struct Step + * @brief Một bước trong chuỗi mở rộng của compound action. + * + * Engine hiểu đúng bốn từ khoá và **không biết** `charge`, `dock_target` hay `LiftFork` nghĩa là + * gì — đó là điều kiện để cùng một engine dùng lại cho model robot khác: thêm model = thêm YAML + * + một `.so` handler, không sửa dòng nào ở đây. + * + * Mỗi step phải có ĐÚNG MỘT trong bốn khoá đầu; sai cú pháp thì `configure()` từ chối lúc **boot**. + */ + struct Step + { + std::string action; ///< `action: ` -> chặng chỉ-action + std::string move_to; ///< `move_to: ` -> chặng nav, frame cố định + std::string move_to_param; ///< `move_to_param: `-> frame lấy từ actionParameters + double move = std::numeric_limits::quiet_NaN(); ///< `move: ` tương đối + + std::string motion_hint; ///< `profile:` -> position | docking | go_straight | rotate + std::string marker; ///< `marker:` -> khoá override planner, chỉ hợp lệ với docking + }; + + /// @brief Chuỗi chặng thay cho một action. Bảng chỉ giữ CẤU TRÚC, dữ liệu tới từ order. + using Steps = std::vector; + + /// @brief Nạp bảng `compound_actions`. Trả false nếu bảng có mà khai sai — lỗi nổ lúc boot. + bool loadCompoundActions(const std::string& name, robot::NodeHandle& nh); + + /// @brief Tra bảng theo actionType. nullptr nếu là action thường. + const Steps* findCompound(const std::string& action_type) const; + + /** + * @brief Mở rộng action của một chặng thành chuỗi chặng, giữ nguyên thứ tự mảng JSON. + * @param leg Chặng nav tới node; action compound sẽ được GỠ khỏi nó. + * @param out Nơi nối thêm chặng sinh ra. + * @return false nếu thiếu tham số cấu trúc — bên gọi phải bỏ CẢ order. + * + * Action thường tích vào bộ đệm; gặp compound thì xả bộ đệm rồi phát chuỗi. Bộ đệm ĐẦU TIÊN nằm + * lại trên chặng nav, các bộ đệm sau thành chặng chỉ-action. Nhờ vậy `[MutedOn, charge, MutedOff]` + * cho ra `MutedOff` **sau** chuỗi charge — gom hết vào chặng nav sẽ bật lại cảm biến an toàn + * trước khi robot lùi vào trạm. + */ + bool expandCompound(const std::shared_ptr& leg, + std::vector>& out) const; + + /// Số node đầu tiên có released == true. 0 nghĩa là không node nào được release. + static size_t countReleasedNodes(const robot_protocol_msgs::Order& order); + + /// Số edge thuộc phần base, không vượt quá `released_node_count - 1`. + static size_t countReleasedEdges(const robot_protocol_msgs::Order& order, + size_t released_node_count); + + /** + * @brief Phần order được phép thực thi. + * @return số node base; 0 nếu order không dùng trường `released` (xem ghi chú trong .cpp). + */ + size_t executableNodeCount(const robot_protocol_msgs::Order& order) const; + + /// Dựng PoseStamped từ nodePosition (theta [rad] -> quaternion quanh trục z). + robot_geometry_msgs::PoseStamped toPose(const robot_protocol_msgs::Node& node) const; + + std::string name_; + + /// Frame gán cho goal/start. VDA5050 `mapId` là danh tính bản đồ, KHÔNG phải frame TF. + std::string global_frame_ = "map"; + + /// actionType -> chuỗi chặng. Rỗng = không action nào cần mở rộng, adapter chạy như trước. + std::map compound_actions_; + + /// Order đang chạy — dùng để nhận ra order update so với order mới. + std::string last_order_id_; + std::uint32_t last_order_update_id_ = 0; + + /// Số node base đã chuyển đổi của order đang chạy; điểm bắt đầu cho phần release thêm. + size_t converted_node_count_ = 0; +}; + +} // namespace mission_plugins + +#endif // MISSION_ADAPTERS_PLUGINS_VDA5050_SOURCE_ADAPTER_H_ diff --git a/src/event.cpp b/src/event.cpp new file mode 100644 index 0000000..4bbcdf0 --- /dev/null +++ b/src/event.cpp @@ -0,0 +1,71 @@ +#include + +#include + +namespace mission_adapters +{ + // ───────────────────────────────────────────────────────────────────────── + // EventBus + // ───────────────────────────────────────────────────────────────────────── + + void EventBus::push(Event event) + { + { + std::lock_guard lock(mutex_); + event.sequence = next_sequence_++; + queue_.push(std::move(event)); + } + cv_.notify_one(); + } + + void EventBus::pushEmergency(Event event) + { + // Bật cờ TRƯỚC khi xếp hàng: bên tiêu thụ thấy được emergency ngay cả khi nó đang bận xử lý + // một sự kiện khác và chưa quay lại hàng đợi. + emergency_pending_.store(true, std::memory_order_release); + push(std::move(event)); + } + + bool EventBus::pop(Event& event) + { + std::unique_lock lock(mutex_); + cv_.wait(lock, [this] { return stop_ || !queue_.empty(); }); + + if (stop_ || queue_.empty()) return false; + + event = std::move(queue_.front()); + queue_.pop(); + return true; + } + + bool EventBus::takeEmergency() + { + return emergency_pending_.exchange(false, std::memory_order_acq_rel); + } + + bool EventBus::emergencyPending() const + { + return emergency_pending_.load(std::memory_order_acquire); + } + + void EventBus::stop() + { + { + std::lock_guard lock(mutex_); + stop_ = true; + } + cv_.notify_all(); + } + + void EventBus::reset() + { + { + std::lock_guard lock(mutex_); + stop_ = false; + next_sequence_ = 0; + queue_ = {}; + } + emergency_pending_.store(false, std::memory_order_release); + } + +} // namespace mission_adapters diff --git a/src/event_processor.cpp b/src/event_processor.cpp new file mode 100644 index 0000000..d8e9462 --- /dev/null +++ b/src/event_processor.cpp @@ -0,0 +1,214 @@ +#include + +#include + +#include + +namespace mission_adapters +{ + // ───────────────────────────────────────────────────────────────────────── + // EventProcessor + // ───────────────────────────────────────────────────────────────────────── + + EventProcessor::EventProcessor(MissionManager& mission_manager, PluginRegistry& registry) + : mission_manager_(mission_manager) + , registry_(registry) + {} + + EventProcessor::~EventProcessor() { stop(); } + + void EventProcessor::start() + { + if (running_) return; + running_ = true; + event_bus_.reset(); + worker_ = std::thread(&EventProcessor::spin, this); + } + + void EventProcessor::stop() + { + running_ = false; + event_bus_.stop(); + if (worker_.joinable()) worker_.join(); + } + + void EventProcessor::spin() + { + Event event; + while (running_) + { + // Emergency được xử lý trước mọi thứ khác, kể cả khi hàng đợi đang dài. + handlePendingEmergency(); + + if (!event_bus_.pop(event)) + continue; + + // Emergency có thể vừa tới trong lúc đang chờ pop(): xử lý nó trước sự kiện vừa lấy ra. + handlePendingEmergency(); + + process(event); + } + } + + void EventProcessor::handlePendingEmergency() + { + if (event_bus_.takeEmergency()) + mission_manager_.emergency(); + } + + void EventProcessor::handleRequest(const MissionRequest& request) + { + MissionSourceAdapter* adapter = registry_.find(request.schema); + if (!adapter) + { + robot::log_error("EventProcessor: no source declares schema '%s'", + request.schema.c_str()); + return; + } + + std::string reason; + if (!adapter->validate(request, reason)) + { + // A1: payload hỏng bị chặn tại đây, hàng đợi đang chạy không bị đụng tới. + robot::log_warning("EventProcessor: rejecting request schema '%s' — %s", + request.schema.c_str(), reason.c_str()); + return; + } + + const ConversionResult result = adapter->convert(request); + + // Bất biến D8, kiểm ở core chứ không chỉ trong adapter: một plugin bên thứ ba sinh ra + // mission không goal và cũng không action sẽ khiến navigation nhận một chặng không có việc + // gì để làm, và chặng đó không bao giờ báo kết quả về. + for (const auto& mission : result.missions) + { + if (!mission) + { + robot::log_error("EventProcessor: adapter for schema '%s' returned a null mission " + "— dropping the whole batch", + request.schema.c_str()); + return; + } + + if (!mission->has_goal && mission->actions.empty()) + { + robot::log_error("EventProcessor: adapter for schema '%s' produced a mission with " + "neither goal nor action — dropping the whole batch", + request.schema.c_str()); + return; + } + } + + if (result.empty()) + { + robot::log_warning("EventProcessor: request schema '%s' produced no mission — the " + "queue is left untouched", request.schema.c_str()); + return; + } + + if (result.mode == SubmitMode::kAppend) + mission_manager_.append(result.missions); + else + mission_manager_.submit(result.missions); + } + + void EventProcessor::process(const Event& event) + { + switch (event.type) + { + case EventType::SUBMIT_REQUEST: handleRequest(event.request); break; + case EventType::NAV_DONE: mission_manager_.onNavigationDone(event.mission_id); break; + case EventType::NAV_FAILED: mission_manager_.onNavigationFailed(event.mission_id); break; + case EventType::PAUSE: mission_manager_.pause(); break; + case EventType::RESUME: mission_manager_.resume(); break; + case EventType::CANCEL: mission_manager_.cancel(); break; + + // Đã được xử lý ngay lúc phát qua cờ out-of-band; lần gọi này là idempotent và chỉ giữ + // cho dòng thời gian trong log liền mạch. + case EventType::EMERGENCY: mission_manager_.emergency(); break; + + case EventType::CLEAR_EMERGENCY: mission_manager_.clearEmergency(); break; + default: + robot::log_error("EventProcessor: event of unknown type"); + break; + } + } + + void EventProcessor::submitRequest(const MissionRequest& request) + { + if (request.schema.empty()) + { + robot::log_error("EventProcessor: request declares no schema"); + return; + } + + Event event; + event.type = EventType::SUBMIT_REQUEST; + event.request = request; + event_bus_.push(std::move(event)); + } + + void EventProcessor::orderEvent(const robot_protocol_msgs::Order& order) + { + submitRequest(MissionRequest::fromOrder(order)); + } + + void EventProcessor::goalEvent(const robot_geometry_msgs::PoseStamped& goal) + { + submitRequest(MissionRequest::fromPose(goal)); + } + + void EventProcessor::pauseEvent() + { + Event event; + event.type = EventType::PAUSE; + event_bus_.push(std::move(event)); + } + + void EventProcessor::resumeEvent() + { + Event event; + event.type = EventType::RESUME; + event_bus_.push(std::move(event)); + } + + void EventProcessor::cancelEvent() + { + Event event; + event.type = EventType::CANCEL; + event_bus_.push(std::move(event)); + } + + void EventProcessor::navDoneEvent(MissionId id) + { + Event event; + event.type = EventType::NAV_DONE; + event.mission_id = id; + event_bus_.push(std::move(event)); + } + + void EventProcessor::navFailedEvent(MissionId id) + { + Event event; + event.type = EventType::NAV_FAILED; + event.mission_id = id; + event_bus_.push(std::move(event)); + } + + void EventProcessor::emergencyEvent() + { + Event event; + event.type = EventType::EMERGENCY; + event_bus_.pushEmergency(std::move(event)); + } + + void EventProcessor::clearEmergencyEvent() + { + // Không đi đường out-of-band: gỡ emergency là hành động có chủ đích của người vận hành, + // phải xếp sau mọi thứ đã phát trước nó. + Event event; + event.type = EventType::CLEAR_EMERGENCY; + event_bus_.push(std::move(event)); + } + +} // namespace mission_adapters diff --git a/src/mission_adapters.cpp b/src/mission_adapters.cpp deleted file mode 100644 index 29b7532..0000000 --- a/src/mission_adapters.cpp +++ /dev/null @@ -1,529 +0,0 @@ -//file mission_adapters.cpp -#include -#include - -namespace mission_adapters -{ - // ───────────────────────────────────────────────────────────────────────── - // EventBus - // ───────────────────────────────────────────────────────────────────────── - - void EventBus::push(const Event& event) - { - std::lock_guard lock(mutex_); - Event queued_event = event; - queued_event.sequence = next_sequence_++; - queue_.push(std::move(queued_event)); - cv_.notify_one(); - } - - void EventBus::push(Event&& event) - { - std::lock_guard lock(mutex_); - event.sequence = next_sequence_++; - queue_.push(std::move(event)); - cv_.notify_one(); - } - - bool EventBus::pop(Event& event) - { - std::unique_lock lock(mutex_); - cv_.wait(lock, [this] { return stop_ || !queue_.empty(); }); - - if (stop_ || queue_.empty()) return false; - - event = queue_.top(); - queue_.pop(); - return true; - } - - void EventBus::stop() - { - { - std::lock_guard lock(mutex_); - stop_ = true; - } - cv_.notify_all(); - } - - void EventBus::reset() - { - std::lock_guard lock(mutex_); - stop_ = false; - next_sequence_ = 0; - while (!queue_.empty()) queue_.pop(); - } - - // ───────────────────────────────────────────────────────────────────────── - // GoalAdapter - // ───────────────────────────────────────────────────────────────────────── - - std::vector> - GoalAdapter::convert(const robot_geometry_msgs::PoseStamped& goal) - { - auto mission = std::make_shared(); - mission->type = MissionType::SIMPLE_GOAL; - mission->priority = 0; - mission->goal = goal; - - return {mission}; - } - - // ───────────────────────────────────────────────────────────────────────── - // VDA5050Adapter - // ───────────────────────────────────────────────────────────────────────── - - std::vector> - VDA5050Adapter::convert(const robot_protocol_msgs::Order& order) - { - std::vector> missions; - std::vector action_node_indices; - - if (order.nodes.empty()) return missions; - - if (order.nodes.size() > 1 && order.edges.size() < order.nodes.size() - 1) - { - robot::log_error("Invalid VDA5050 order: edge count is smaller than node_count - 1"); - return missions; - } - - for (size_t i = 0; i < order.nodes.size(); ++i) - { - if (!order.nodes[i].actions.empty()) - action_node_indices.push_back(i); - } - - size_t start_node_idx = 0; - - for (size_t i = 0; i < action_node_indices.size(); ++i) - { - size_t end_node_idx = action_node_indices[i]; - - auto mission = std::make_shared(); - mission->type = MissionType::VDA5050_ORDER; - mission->priority = 0; - - mission->nodes.assign( - order.nodes.begin() + start_node_idx, - order.nodes.begin() + end_node_idx + 1); - - if (end_node_idx > start_node_idx) - { - mission->edges.assign( - order.edges.begin() + start_node_idx, - order.edges.begin() + end_node_idx); - } - - missions.push_back(mission); - start_node_idx = end_node_idx; - } - - // Remaining segment after the last action node - if (start_node_idx < order.nodes.size() - 1) - { - auto mission = std::make_shared(); - mission->type = MissionType::VDA5050_ORDER; - mission->priority = 0; - - mission->nodes.assign( - order.nodes.begin() + start_node_idx, - order.nodes.end()); - - if (start_node_idx < order.edges.size()) - { - mission->edges.assign( - order.edges.begin() + start_node_idx, - order.edges.end()); - } - - missions.push_back(mission); - } - - // Collect and sort actions - for (auto& mission : missions) - { - for (const auto& edge : mission->edges) - { - for (const auto& action : edge.actions) - { - Action ma; - ma.sequenceId = edge.sequenceId; - ma.type = ActionType::EDGE_ACTION; - ma.action = action; - mission->actions.push_back(std::move(ma)); - } - } - - const auto& node = mission->nodes.back(); - for (const auto& action : node.actions) - { - Action ma; - ma.sequenceId = node.sequenceId; - ma.type = ActionType::NODE_ACTION; - ma.action = action; - mission->actions.push_back(std::move(ma)); - } - - std::sort(mission->actions.begin(), mission->actions.end(), - [](const Action& a, const Action& b) { - return a.sequenceId < b.sequenceId; - }); - } - - return missions; - } - - // ───────────────────────────────────────────────────────────────────────── - // MissionManager - // ───────────────────────────────────────────────────────────────────────── - - void MissionManager::submit(const std::vector>& missions) - { - std::lock_guard lock(mutex_); - - if (state_ == MissionState::EMERGENCY) - return; - - if (!mission_queue_.empty()) - { - mission_queue_ = {}; - current_mission_.reset(); - } - - for (const auto& mission : missions) - mission_queue_.push(mission); - - // FIX #9: Transition to QUEUED from any "inactive" state, including - // COMPLETED and QUEUED itself, so the executor always re-arms. - if (!missions.empty()) - { - switch (state_) - { - case MissionState::IDLE: - case MissionState::COMPLETED: - case MissionState::FAILED: - case MissionState::CANCELLED: - case MissionState::CLEAR_EMERGENCY: - state_ = MissionState::QUEUED; - break; - default: - break; // RUNNING / PAUSED / QUEUED — already active, leave as-is - } - } - } - - std::shared_ptr MissionManager::nextMission() - { - std::lock_guard lock(mutex_); - - if (state_ == MissionState::IDLE || - state_ == MissionState::PAUSED || - state_ == MissionState::FAILED || - state_ == MissionState::CANCELLED || - state_ == MissionState::EMERGENCY || - state_ == MissionState::CLEAR_EMERGENCY) - { - return nullptr; - } - - // FIX #2: Removed the redundant `if(current_mission_ == nullptr)` check. - // The two guards are now a clean early-return then fall-through. - if (current_mission_) - return current_mission_; - - if (mission_queue_.empty()) - return nullptr; - - current_mission_ = mission_queue_.front(); - mission_queue_.pop(); - state_ = MissionState::RUNNING; - - return current_mission_; - } - - void MissionManager::onNavigationDone() - { - std::lock_guard lock(mutex_); - - if (state_ != MissionState::RUNNING) - return; - - current_mission_.reset(); - state_ = mission_queue_.empty() ? MissionState::IDLE : MissionState::QUEUED; - } - - void MissionManager::onNavigationFailed() - { - std::lock_guard lock(mutex_); - - if (state_ != MissionState::RUNNING) - return; - - current_mission_.reset(); - while (!mission_queue_.empty()) mission_queue_.pop(); - state_ = MissionState::FAILED; - } - - void MissionManager::cancel() - { - std::lock_guard lock(mutex_); - current_mission_.reset(); - while (!mission_queue_.empty()) mission_queue_.pop(); - if(state_ == MissionState::EMERGENCY) return; - state_ = MissionState::CANCELLED; - } - - void MissionManager::emergency() - { - std::lock_guard lock(mutex_); - current_mission_.reset(); - while (!mission_queue_.empty()) mission_queue_.pop(); - state_ = MissionState::EMERGENCY; - } - - void MissionManager::clearEmergency() - { - std::lock_guard lock(mutex_); - if(state_ == MissionState::EMERGENCY) - state_ = MissionState::CLEAR_EMERGENCY; - } - - void MissionManager::pause() - { - std::lock_guard lock(mutex_); - if (state_ == MissionState::IDLE || - state_ == MissionState::RUNNING || - state_ == MissionState::QUEUED) - state_ = MissionState::PAUSED; - } - - void MissionManager::resume() - { - std::lock_guard lock(mutex_); - if (state_ != MissionState::PAUSED) return; - - if (current_mission_) - state_ = MissionState::RUNNING; - else if (!current_mission_ && !mission_queue_.empty()) - state_ = MissionState::QUEUED; - else - state_ = MissionState::IDLE; - } - - MissionState MissionManager::state() const - { - std::lock_guard lock(mutex_); - return state_; - } - - // FIX #3: hasMission now reflects ALL pending work, not just the queue. - bool MissionManager::hasMission() const - { - std::lock_guard lock(mutex_); - return current_mission_ != nullptr || !mission_queue_.empty(); - } - - // ───────────────────────────────────────────────────────────────────────── - // EventProcessor - // ───────────────────────────────────────────────────────────────────────── - - EventProcessor::EventProcessor(MissionManager& mission_manager) - : mission_manager_(mission_manager) - {} - - EventProcessor::~EventProcessor() { stop(); } - - void EventProcessor::start() - { - if (running_) return; - running_ = true; - event_bus_.reset(); - worker_ = std::thread(&EventProcessor::spin, this); - } - - void EventProcessor::stop() - { - running_ = false; - event_bus_.stop(); - if (worker_.joinable()) worker_.join(); - } - - void EventProcessor::spin() - { - Event event; - while (running_) - { - if (event_bus_.pop(event)) - process(event); - } - } - - void EventProcessor::process(const Event& event) - { - switch (event.type) - { - case EventType::SUBMIT_MISSIONS: mission_manager_.submit(event.missions); break; - case EventType::NAV_DONE: mission_manager_.onNavigationDone(); break; - case EventType::NAV_FAILED: mission_manager_.onNavigationFailed(); break; - case EventType::PAUSE: mission_manager_.pause(); break; - case EventType::RESUME: mission_manager_.resume(); break; - case EventType::CANCEL: mission_manager_.cancel(); break; - case EventType::EMERGENCY: mission_manager_.emergency(); break; - case EventType::CLEAR_EMERGENCY: mission_manager_.clearEmergency(); break; - default: - robot::log_error("Unknown event type"); - break; - } - } - - void EventProcessor::orderEvent(const robot_protocol_msgs::Order& order) - { - Event event; - event.type = EventType::SUBMIT_MISSIONS; - event.priority = PRIORITY_ORDER; - event.missions = vda5050_adapter_.convert(order); - event_bus_.push(event); - } - - void EventProcessor::goalEvent(const robot_geometry_msgs::PoseStamped& goal) - { - Event event; - event.type = EventType::SUBMIT_MISSIONS; - event.priority = PRIORITY_ORDER; - event.missions = goal_adapter_.convert(goal); - event_bus_.push(event); - } - - void EventProcessor::pauseEvent() - { - Event event; - event.type = EventType::PAUSE; - event.priority = PRIORITY_PAUSE; - event_bus_.push(std::move(event)); - } - - void EventProcessor::resumeEvent() - { - Event event; - event.type = EventType::RESUME; - event.priority = PRIORITY_RESUME; - event_bus_.push(std::move(event)); - } - - void EventProcessor::cancelEvent() - { - Event event; - event.type = EventType::CANCEL; - event.priority = PRIORITY_CANCEL; - event_bus_.push(std::move(event)); - } - - void EventProcessor::navDoneEvent() - { - Event event; - event.type = EventType::NAV_DONE; - event.priority = PRIORITY_NAV_DONE; - event_bus_.push(std::move(event)); - } - - // FIX #4: Use PRIORITY_NAV_FAILED (correct constant name). - void EventProcessor::navFailedEvent() - { - Event event; - event.type = EventType::NAV_FAILED; - event.priority = PRIORITY_NAV_FAILED; - event_bus_.push(std::move(event)); - } - - void EventProcessor::emergencyEvent() - { - Event event; - event.type = EventType::EMERGENCY; - event.priority = PRIORITY_EMERGENCY; - event_bus_.push(std::move(event)); - } - - void EventProcessor::clearEmergencyEvent() - { - Event event; - event.type = EventType::CLEAR_EMERGENCY; - event.priority = PRIORITY_EMERGENCY; - event_bus_.push(std::move(event)); - } - - // ───────────────────────────────────────────────────────────────────────── - // MissionExecutor - // ───────────────────────────────────────────────────────────────────────── - - MissionExecutor::MissionExecutor(MissionManager& manager) - : mission_manager_(manager) - {} - - MissionExecutor::~MissionExecutor() { stop(); } - - void MissionExecutor::start() - { - if (running_) return; - running_ = true; - worker_ = std::thread(&MissionExecutor::spin, this); - } - - void MissionExecutor::stop() - { - running_ = false; - if (worker_.joinable()) worker_.join(); - } - - void MissionExecutor::spin() - { - robot::Rate rate(20); - - while (running_) - { - auto mission = mission_manager_.nextMission(); - - if (mission) - { - bool is_new_mission = false; - - { - std::lock_guard lock(mutex_); - if (mission != last_dispatched_mission_) - { - last_dispatched_mission_ = mission; - mission_execute_ = mission; - is_new_mission = true; - } - } - - if (is_new_mission) - { - MissionCallback callback; - { - std::lock_guard lock(mutex_); - callback = mission_callback_; - } - if (callback) callback(mission); - } - } - else - { - // FIX #5: Only reset the dedup token when the manager is truly - // done (IDLE / CANCELLED / FAILED / EMERGENCY), NOT when - // it is merely PAUSED — the mission hasn't changed there. - auto s = mission_manager_.state(); - if (s == MissionState::IDLE || - s == MissionState::CANCELLED || - s == MissionState::FAILED || - s == MissionState::EMERGENCY) - { - std::lock_guard lock(mutex_); - last_dispatched_mission_.reset(); - } - } - - rate.sleep(); - } - } - -} // namespace mission_adapters diff --git a/src/mission_config.cpp b/src/mission_config.cpp new file mode 100644 index 0000000..41843a8 --- /dev/null +++ b/src/mission_config.cpp @@ -0,0 +1,44 @@ +#include + +#include + +#include + +namespace mission_adapters +{ + bool MissionConfig::loadFromParams(robot::NodeHandle& nh, const std::string& ns) + { + const std::string prefix = ns.empty() ? std::string() : ns + "/"; + + nh.getParam(prefix + "mission_timeout", mission_timeout, mission_timeout); + nh.getParam(prefix + "clear_queue_on_failure", clear_queue_on_failure, + clear_queue_on_failure); + + if (!validate()) + return false; + + print(); + return true; + } + + bool MissionConfig::validate() const + { + if (!std::isfinite(mission_timeout) || mission_timeout < 0.0) + { + robot::log_error("MissionConfig: mission_timeout = %.3f is invalid (needs >= 0 [s], 0 " + "= off)", mission_timeout); + return false; + } + + return true; + } + + void MissionConfig::print() const + { + robot::log_info("MissionConfig: mission_timeout = %.3f [s] (%s), clear_queue_on_failure = %s", + mission_timeout, + mission_timeout > 0.0 ? "on" : "off", + clear_queue_on_failure ? "true" : "false"); + } + +} // namespace mission_adapters diff --git a/src/mission_executor.cpp b/src/mission_executor.cpp new file mode 100644 index 0000000..52786bb --- /dev/null +++ b/src/mission_executor.cpp @@ -0,0 +1,80 @@ +#include + +#include + +namespace mission_adapters +{ + // ───────────────────────────────────────────────────────────────────────── + // MissionExecutor + // ───────────────────────────────────────────────────────────────────────── + + MissionExecutor::MissionExecutor(MissionManager& manager) + : mission_manager_(manager) + {} + + MissionExecutor::~MissionExecutor() { stop(); } + + void MissionExecutor::setNavigationClient(NavigationClient* client) + { + std::lock_guard lock(mutex_); + navigation_client_ = client; + } + + void MissionExecutor::start() + { + if (running_) return; + running_ = true; + worker_ = std::thread(&MissionExecutor::spin, this); + } + + void MissionExecutor::stop() + { + running_ = false; + mission_manager_.wakeUp(); // gỡ thread ra khỏi waitForWork() để join() không treo + if (worker_.joinable()) worker_.join(); + } + + void MissionExecutor::step() + { + NavigationClient* client = nullptr; + { + std::lock_guard lock(mutex_); + client = navigation_client_; + } + + if (!client) + return; + + // Cancel trước dispatch: nếu order mới vừa thay order cũ, robot phải được bảo dừng chặng cũ + // trước khi nhận chặng mới. Đảo thứ tự sẽ có lúc hai lệnh cùng hiệu lực. + const MissionId cancel_id = mission_manager_.takePendingCancel(); + if (cancel_id != kInvalidMissionId) + client->cancelActive(cancel_id); + + const auto mission = mission_manager_.nextMission(); + if (!mission) + return; + + if (!client->dispatch(mission)) + { + // Navigation từ chối: coi như chặng này hỏng, đừng để mission kẹt RUNNING vĩnh viễn. + robot::log_error("MissionExecutor: navigation rejected mission %lu", + static_cast(mission->id)); + mission_manager_.onNavigationFailed(mission->id); + } + } + + void MissionExecutor::spin() + { + while (running_) + { + // M10: chờ đúng lúc có việc thay vì poll. Poll 20 Hz nghĩa là mỗi lệnh cancel phải + // đợi trung bình 25 ms trước khi tới được navigation, không vì lý do gì cả. + if (!mission_manager_.waitForWork()) + continue; + + step(); + } + } + +} // namespace mission_adapters diff --git a/src/mission_manager.cpp b/src/mission_manager.cpp new file mode 100644 index 0000000..bd31380 --- /dev/null +++ b/src/mission_manager.cpp @@ -0,0 +1,389 @@ +#include + +#include + +#include + +namespace mission_adapters +{ +namespace +{ + /** + * @brief Đánh thức thread đang chờ việc khi rời scope, kể cả khi hàm return sớm. + * + * Khai báo ngay sau std::lock_guard nên nó bị huỷ TRƯỚC lock_guard: notify xảy ra khi vẫn còn + * giữ khoá — an toàn, và không có đường nào ra khỏi hàm mà quên đánh thức executor. + */ + class NotifyOnExit + { + public: + explicit NotifyOnExit(std::condition_variable& cv) : cv_(cv) {} + ~NotifyOnExit() { cv_.notify_all(); } + + NotifyOnExit(const NotifyOnExit&) = delete; + NotifyOnExit& operator=(const NotifyOnExit&) = delete; + + private: + std::condition_variable& cv_; + }; + +} // namespace + + // ───────────────────────────────────────────────────────────────────────── + // MissionManager + // ───────────────────────────────────────────────────────────────────────── + + void MissionManager::setConfig(const MissionConfig& config) + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + config_ = config; + } + + bool MissionManager::hasWorkLocked() const + { + return pending_cancel_ != kInvalidMissionId || + (state_ == MissionState::QUEUED && !mission_queue_.empty()); + } + + bool MissionManager::timeoutArmedLocked() const + { + return config_.mission_timeout > 0.0 && + state_ == MissionState::RUNNING && + current_mission_ != nullptr; + } + + MissionId MissionManager::currentIdLocked() const + { + return current_mission_ ? current_mission_->id : kInvalidMissionId; + } + + void MissionManager::setStateLocked(MissionState next, const char* reason, MissionId id) + { + if (state_ == next) + return; // C11: chỉ log khi state đổi thật, không log lặp trong vòng lặp + + robot::log_info("MissionManager: %s -> %s (%s, mission %lu)", + toString(state_), toString(next), reason, + static_cast(id)); + + state_ = next; + } + + void MissionManager::expireCurrentLocked() + { + if (!current_mission_) + return; + + robot::log_warning("MissionManager: mission %lu exceeded %.3f [s] — cancelling the leg", + static_cast(current_mission_->id), + config_.mission_timeout); + + // Khác NAV_FAILED: navigation vẫn đang chạy chặng này nên phải bảo nó dừng, nếu không robot + // tiếp tục đi tới goal của một mission mà mission layer đã bỏ. + const MissionId expired_id = currentIdLocked(); + requestCancelOfCurrentLocked(); + + if (config_.clear_queue_on_failure) + while (!mission_queue_.empty()) mission_queue_.pop(); + + setStateLocked(mission_queue_.empty() ? MissionState::FAILED : MissionState::QUEUED, + "mission_timeout", expired_id); + } + + void MissionManager::requestCancelOfCurrentLocked() + { + if (!current_mission_) + return; + + pending_cancel_ = current_mission_->id; + current_mission_.reset(); + } + + void MissionManager::submit(const std::vector>& missions) + { + // A1: rỗng = không có việc, KHÔNG phải lệnh xoá hàng đợi. Kiểm tra trước khi lấy khoá để + // một order lỗi không bao giờ chạm được vào trạng thái. + if (missions.empty()) + return; + + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ == MissionState::EMERGENCY) + { + robot::log_warning("MissionManager: rejecting submit while in EMERGENCY"); + return; + } + + // Q1 — preempt tường minh: order mới thay order cũ thì chặng đang chạy phải được dừng, + // không chỉ bị quên đi. + requestCancelOfCurrentLocked(); + + mission_queue_ = {}; + + for (const auto& mission : missions) + { + if (!mission) + continue; + + mission->id = next_mission_id_++; + mission_queue_.push(mission); + } + + if (mission_queue_.empty()) + return; + + // PAUSED được giữ nguyên: người vận hành đã chủ động dừng, order mới không được tự chạy. + if (state_ != MissionState::PAUSED) + setStateLocked(MissionState::QUEUED, "submit", mission_queue_.back()->id); + } + + void MissionManager::append(const std::vector>& missions) + { + if (missions.empty()) + return; + + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ == MissionState::EMERGENCY) + { + robot::log_warning("MissionManager: rejecting append while in EMERGENCY"); + return; + } + + for (const auto& mission : missions) + { + if (!mission) + continue; + + mission->id = next_mission_id_++; + mission_queue_.push(mission); + } + + // RUNNING / PAUSED / QUEUED giữ nguyên: đây là phần nối tiếp, không phải yêu cầu mới. + switch (state_) + { + case MissionState::IDLE: + case MissionState::COMPLETED: + case MissionState::FAILED: + case MissionState::CANCELLED: + case MissionState::CLEAR_EMERGENCY: + setStateLocked(MissionState::QUEUED, "append", mission_queue_.back()->id); + break; + default: + break; + } + } + + std::shared_ptr MissionManager::nextMission() + { + std::lock_guard lock(mutex_); + + // M6: chỉ QUEUED mới sinh ra mission mới. RUNNING nghĩa là chặng hiện tại chưa xong nên + // không có gì để giao thêm — dedup nằm ở đây, bên gọi không phải tự nhớ. + if (state_ != MissionState::QUEUED) + return nullptr; + + if (mission_queue_.empty()) + { + setStateLocked(MissionState::IDLE, "queue is empty"); + return nullptr; + } + + current_mission_ = mission_queue_.front(); + mission_queue_.pop(); + setStateLocked(MissionState::RUNNING, "dequeue", current_mission_->id); + mission_start_time_ = robot::Time::now(); // mốc tính mission_timeout + + return current_mission_; + } + + bool MissionManager::onNavigationDone(MissionId id) + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ != MissionState::RUNNING || !current_mission_) + return false; + + // A2: outcome trễ của một mission đã bị thay thế không được tính cho mission đang chạy. + if (id != current_mission_->id) + { + robot::log_warning("MissionManager: dropping NAV_DONE of mission %lu (currently " + "running %lu)", + static_cast(id), + static_cast(current_mission_->id)); + return false; + } + + current_mission_.reset(); + setStateLocked(mission_queue_.empty() ? MissionState::COMPLETED : MissionState::QUEUED, + "nav_done", id); + return true; + } + + bool MissionManager::onNavigationFailed(MissionId id) + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ != MissionState::RUNNING || !current_mission_) + return false; + + if (id != current_mission_->id) + { + robot::log_warning("MissionManager: dropping NAV_FAILED of mission %lu (currently " + "running %lu)", + static_cast(id), + static_cast(current_mission_->id)); + return false; + } + + current_mission_.reset(); + + // M8: mặc định xoá sạch hàng đợi. Với tuyến đường tuần tự, chặng n hỏng nghĩa là robot + // không tới được node n — chạy tiếp chặng n+1 là cắt ngang đoạn chưa được cho phép đi. + if (config_.clear_queue_on_failure) + while (!mission_queue_.empty()) mission_queue_.pop(); + + setStateLocked(mission_queue_.empty() ? MissionState::FAILED : MissionState::QUEUED, + "nav_failed", id); + return true; + } + + void MissionManager::cancel() + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + // A3: huỷ phải dừng được robot, không chỉ xoá hàng đợi trong bộ nhớ. + const MissionId cancelled_id = currentIdLocked(); + requestCancelOfCurrentLocked(); + while (!mission_queue_.empty()) mission_queue_.pop(); + + if (state_ == MissionState::EMERGENCY) return; + setStateLocked(MissionState::CANCELLED, "cancel", cancelled_id); + } + + void MissionManager::emergency() + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + const MissionId stopped_id = currentIdLocked(); + requestCancelOfCurrentLocked(); + while (!mission_queue_.empty()) mission_queue_.pop(); + setStateLocked(MissionState::EMERGENCY, "emergency", stopped_id); + } + + void MissionManager::clearEmergency() + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ == MissionState::EMERGENCY) + setStateLocked(MissionState::CLEAR_EMERGENCY, "clear_emergency"); + } + + void MissionManager::pause() + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ == MissionState::IDLE || + state_ == MissionState::RUNNING || + state_ == MissionState::QUEUED) + setStateLocked(MissionState::PAUSED, "pause", currentIdLocked()); + } + + void MissionManager::resume() + { + std::lock_guard lock(mutex_); + NotifyOnExit notify(work_cv_); + + if (state_ != MissionState::PAUSED) return; + + if (current_mission_) + setStateLocked(MissionState::RUNNING, "resume", current_mission_->id); + else if (!mission_queue_.empty()) + setStateLocked(MissionState::QUEUED, "resume"); + else + setStateLocked(MissionState::IDLE, "resume"); + } + + MissionState MissionManager::state() const + { + std::lock_guard lock(mutex_); + return state_; + } + + // FIX #3: hasMission now reflects ALL pending work, not just the queue. + bool MissionManager::hasMission() const + { + std::lock_guard lock(mutex_); + return current_mission_ != nullptr || !mission_queue_.empty(); + } + + MissionId MissionManager::currentMissionId() const + { + std::lock_guard lock(mutex_); + return current_mission_ ? current_mission_->id : kInvalidMissionId; + } + + MissionId MissionManager::takePendingCancel() + { + std::lock_guard lock(mutex_); + const MissionId id = pending_cancel_; + pending_cancel_ = kInvalidMissionId; + return id; + } + + bool MissionManager::waitForWork() + { + std::unique_lock lock(mutex_); + + while (true) + { + if (wake_requested_) + { + wake_requested_ = false; + return false; + } + + if (hasWorkLocked()) + return true; + + if (!timeoutArmedLocked()) + { + work_cv_.wait(lock); + continue; + } + + // M7: đo bằng robot::Time, không đếm chu kỳ — số chu kỳ không nói gì về thời gian thật + // khi vòng lặp bị nghẽn. + const double remaining = + (mission_start_time_ + robot::Duration(config_.mission_timeout) - robot::Time::now()) + .toSec(); + + if (remaining <= 0.0) + { + expireCurrentLocked(); + continue; + } + + work_cv_.wait_for(lock, std::chrono::duration(remaining)); + } + } + + void MissionManager::wakeUp() + { + { + std::lock_guard lock(mutex_); + wake_requested_ = true; + } + work_cv_.notify_all(); + } + +} // namespace mission_adapters diff --git a/src/plugin_registry.cpp b/src/plugin_registry.cpp new file mode 100644 index 0000000..5e3b9e8 --- /dev/null +++ b/src/plugin_registry.cpp @@ -0,0 +1,180 @@ +#include + +#include + +#include +#include +#include + +#include + +namespace mission_adapters +{ + PluginRegistry::~PluginRegistry() + { + clear(); + } + + void PluginRegistry::clear() + { + // Adapter phải chết trước factory: factory là thứ giữ .so còn nạp, thả ngược thứ tự sẽ gỡ + // thư viện trong khi vẫn còn object của nó. + adapters_.clear(); + factories_.clear(); + } + + bool PluginRegistry::registerAdapter(const MissionSourceAdapter::Ptr& adapter) + { + if (!adapter) + { + robot::log_error("PluginRegistry: adapter null"); + return false; + } + + const std::string schema_name = adapter->schema(); + if (schema_name.empty()) + { + robot::log_error("PluginRegistry: adapter declares an empty schema"); + return false; + } + + const auto existing = adapters_.find(schema_name); + if (existing != adapters_.end()) + { + // Hai nguồn cùng schema thì việc định tuyến trở nên phụ thuộc thứ tự nạp — từ chối thay + // vì im lặng ghi đè. + robot::log_error("PluginRegistry: schema '%s' is already registered by another adapter", + schema_name.c_str()); + return false; + } + + adapters_.emplace(schema_name, adapter); + return true; + } + + MissionSourceAdapter* PluginRegistry::find(const std::string& schema) const + { + const auto it = adapters_.find(schema); + return it == adapters_.end() ? nullptr : it->second.get(); + } + + std::vector PluginRegistry::schemas() const + { + std::vector result; + result.reserve(adapters_.size()); + for (const auto& entry : adapters_) + result.push_back(entry.first); + + return result; + } + + bool PluginRegistry::loadOne(const std::string& name, const std::string& type, + robot::NodeHandle& nh) + { + robot::PluginLoaderHelper loader(nh); + const std::string library_path = loader.findLibraryPath(type); + + if (library_path.empty()) + { + robot::log_error("PluginRegistry: no library found for '%s' — check the key " + "'%s/library_path' in the YAML and that the .so file exists", + type.c_str(), type.c_str()); + return false; + } + + std::function factory; + + try + { + factory = boost::dll::import_alias( + library_path, type, boost::dll::load_mode::append_decorations); + } + catch (const boost::system::system_error& ex) + { + // Sai tên symbol hoặc file không nạp được. Bắt tại đây để một plugin hỏng không giết cả + // tiến trình — nhưng vẫn báo lỗi để không ai tưởng nguồn này đang chạy. + robot::log_error("PluginRegistry: could not load symbol '%s' from '%s': %s", + type.c_str(), library_path.c_str(), ex.what()); + return false; + } + catch (const std::exception& ex) + { + robot::log_error("PluginRegistry: error while loading '%s': %s", + type.c_str(), ex.what()); + return false; + } + + MissionSourceAdapter::Ptr adapter; + try + { + adapter = factory(); + } + catch (const std::exception& ex) + { + robot::log_error("PluginRegistry: factory of '%s' threw an exception: %s", + type.c_str(), ex.what()); + return false; + } + + if (!adapter) + { + robot::log_error("PluginRegistry: factory of '%s' returned null", type.c_str()); + return false; + } + + if (!adapter->configure(name, nh)) + { + robot::log_error("PluginRegistry: '%s' (instance '%s') configure() failed", + type.c_str(), name.c_str()); + return false; + } + + if (!registerAdapter(adapter)) + return false; + + // Chỉ giữ factory sau khi adapter đã vào bảng: nếu đăng ký hỏng thì cũng không giữ .so lại. + factories_.push_back(std::move(factory)); + + robot::log_info("PluginRegistry: loaded '%s' (instance '%s') for schema '%s'", + type.c_str(), name.c_str(), adapter->schema().c_str()); + return true; + } + + bool PluginRegistry::loadFromConfig(robot::NodeHandle& nh, const std::string& ns) + { + const std::string key = ns.empty() ? std::string("mission_sources") + : ns + "/mission_sources"; + + YAML::Node sources; + if (!nh.getParam(key, sources) || !sources.IsSequence() || sources.size() == 0) + { + robot::log_error("PluginRegistry: '%s' is missing or is not a list — no mission source " + "was loaded", key.c_str()); + return false; + } + + bool all_ok = true; + + for (size_t i = 0; i < sources.size(); ++i) + { + const YAML::Node& entry = sources[i]; + + if (!entry.IsMap() || !entry["type"]) + { + robot::log_error("PluginRegistry: '%s[%zu]' is missing the 'type' key", + key.c_str(), i); + all_ok = false; + continue; + } + + const std::string type = entry["type"].as(); + const std::string name = entry["name"] ? entry["name"].as() : type; + + if (!loadOne(name, type, nh)) + all_ok = false; + } + + return all_ok; + } + +} // namespace mission_adapters diff --git a/src/robot_control_test.cpp b/src/robot_control_test.cpp deleted file mode 100644 index be607ee..0000000 --- a/src/robot_control_test.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include -#include - -#include - -using namespace mission_adapters; - -class RobotControlTest -{ - robot::move_base_core::BaseNavigation::Ptr move_base_ptr_; - - mission_adapters::MissionManager mission_manager_; - mission_adapters::EventProcessor event_processor_{mission_manager_}; - mission_adapters::MissionExecutor mission_executor_{mission_manager_}; - - // FIX #7: Fully qualified namespace for the initial value. - robot::move_base_core::State prev_nav_state_ = robot::move_base_core::State::PENDING; - - // Tracks whether the actions of the current mission are complete. - // FIX #8: Stub — replace with real action-done check from your action executor. - bool areActionsDone() const - { - // TODO: query your action executor for completion status. - return true; - } - -public: - explicit RobotControlTest(robot::move_base_core::BaseNavigation::Ptr move_base); - ~RobotControlTest(); - - void run(); - -private: - void executeMission(const Mission& mission); -}; - -RobotControlTest::RobotControlTest(robot::move_base_core::BaseNavigation::Ptr move_base) - : move_base_ptr_(std::move(move_base)) -{} - -RobotControlTest::~RobotControlTest() -{ - event_processor_.stop(); - mission_executor_.stop(); -} - -void RobotControlTest::run() -{ - if (!move_base_ptr_) - { - robot::log_error("RobotControlTest requires a valid BaseNavigation pointer"); - return; - } - - robot::Rate rate(50); - - mission_executor_.setMissionCallback( - [this](const std::shared_ptr& mission) - { - executeMission(*mission); - }); - - event_processor_.start(); - mission_executor_.start(); - - while (robot::ok()) - { - auto feedback = move_base_ptr_->getFeedback(); - if (!feedback) - { - rate.sleep(); - continue; - } - - auto nav_state = feedback->navigation_state; - - if (nav_state != prev_nav_state_ && nav_state == robot::move_base_core::State::SUCCEEDED && areActionsDone()) - { - event_processor_.navDoneEvent(); - } - else if (nav_state != prev_nav_state_ && nav_state == robot::move_base_core::State::ABORTED) - { - event_processor_.navFailedEvent(); - } - prev_nav_state_ = nav_state; - - // Example: receive an order (replace condition with your real source) - if (/* new order available */ false) - { - robot_protocol_msgs::Order order; - // ... populate order ... - event_processor_.orderEvent(order); - } - - rate.sleep(); - } -} - -void RobotControlTest::executeMission(const Mission& mission) -{ - // TODO: send mission goal to move_base_ptr_ - (void)mission; -} diff --git a/src/types.cpp b/src/types.cpp new file mode 100644 index 0000000..6146b3f --- /dev/null +++ b/src/types.cpp @@ -0,0 +1,23 @@ +#include + +namespace mission_adapters +{ + const char* toString(MissionState state) + { + switch (state) + { + case MissionState::IDLE: return "IDLE"; + case MissionState::QUEUED: return "QUEUED"; + case MissionState::RUNNING: return "RUNNING"; + case MissionState::PAUSED: return "PAUSED"; + case MissionState::COMPLETED: return "COMPLETED"; + case MissionState::FAILED: return "FAILED"; + case MissionState::CANCELLED: return "CANCELLED"; + case MissionState::EMERGENCY: return "EMERGENCY"; + case MissionState::CLEAR_EMERGENCY: return "CLEAR_EMERGENCY"; + } + + return "UNKNOWN"; + } + +} // namespace mission_adapters diff --git a/test/adapter_test.cpp b/test/adapter_test.cpp new file mode 100644 index 0000000..cdc817e --- /dev/null +++ b/test/adapter_test.cpp @@ -0,0 +1,527 @@ +#include + +#include + +#include +#include + +#include + +#include "goal_source_adapter.h" +#include "mission_test_utils.h" +#include "vda5050_source_adapter.h" + +namespace +{ +using namespace mission_adapters; +using mission_plugins::GoalSourceAdapter; +using mission_plugins::VDA5050SourceAdapter; +using mission_test::makeAction; +using mission_test::makeGoal; +using mission_test::makeOrder; + +class AdapterTest : public ::testing::Test +{ +protected: + void SetUp() override + { + robot::NodeHandle nh; + ASSERT_TRUE(goal_adapter.configure("goal_src", nh)); + ASSERT_TRUE(order_adapter.configure("vda5050_src", nh)); + } + + /// Chuyển một order, trả về danh sách mission (bỏ phần mode). + std::vector> convertOrder(const robot_protocol_msgs::Order& order) + { + return order_adapter.convert(MissionRequest::fromOrder(order)).missions; + } + + /// Chuyển một order và giữ nguyên cả ConversionResult để kiểm mode. + ConversionResult convertOrderFull(const robot_protocol_msgs::Order& order) + { + return order_adapter.convert(MissionRequest::fromOrder(order)); + } + + GoalSourceAdapter goal_adapter; + VDA5050SourceAdapter order_adapter; +}; + +// ── Schema ────────────────────────────────────────────────────────────────────────────────────── + +TEST_F(AdapterTest, AdaptersDeclareDistinctSchemas) +{ + EXPECT_EQ(goal_adapter.schema(), schema::kPoseStamped); + EXPECT_EQ(order_adapter.schema(), schema::kVda5050Order); + EXPECT_NE(goal_adapter.schema(), order_adapter.schema()); +} + +// ── GoalSourceAdapter ─────────────────────────────────────────────────────────────────────────── + +TEST_F(AdapterTest, GoalAdapterCreatesSingleMission) +{ + const auto missions = goal_adapter.convert(MissionRequest::fromPose(makeGoal(5.5, 9.1))).missions; + + ASSERT_EQ(missions.size(), 1u); + EXPECT_EQ(missions.front()->type, MissionType::SIMPLE_GOAL); + EXPECT_EQ(missions.front()->motion_hint, "position"); + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.x, 5.5); + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.y, 9.1); +} + +TEST_F(AdapterTest, GoalAdapterRejectsMissingPayload) +{ + MissionRequest request; + request.schema = schema::kPoseStamped; + + std::string reason; + EXPECT_FALSE(goal_adapter.validate(request, reason)); + EXPECT_FALSE(reason.empty()); +} + +TEST_F(AdapterTest, GoalAdapterRejectsNonFiniteGoal) +{ + auto goal = makeGoal(1.0, 1.0); + goal.pose.position.x = std::numeric_limits::quiet_NaN(); + goal.pose.orientation.w = 1.0; + + std::string reason; + EXPECT_FALSE(goal_adapter.validate(MissionRequest::fromPose(goal), reason)) + << "a goal containing NaN slipped through the boundary into navigation"; +} + +TEST_F(AdapterTest, GoalAdapterRejectsZeroQuaternion) +{ + auto goal = makeGoal(1.0, 1.0); + + std::string reason; + ASSERT_TRUE(goal_adapter.validate(MissionRequest::fromPose(goal), reason)) << reason; + + // Host quên set orientation: quaternion toàn 0 không phải "hướng bất kỳ", nó là dữ liệu hỏng. + goal.pose.orientation.w = 0.0; + EXPECT_FALSE(goal_adapter.validate(MissionRequest::fromPose(goal), reason)); +} + +// ── VDA5050SourceAdapter ──────────────────────────────────────────────────────────────────────── + +TEST_F(AdapterTest, EmptyOrderIsRejectedByValidate) +{ + robot_protocol_msgs::Order order; + + std::string reason; + EXPECT_FALSE(order_adapter.validate(MissionRequest::fromOrder(order), reason)); + EXPECT_TRUE(convertOrder(order).empty()); +} + +TEST_F(AdapterTest, OrderWithoutActionsCreatesOneTailMission) +{ + const auto missions = convertOrder(makeOrder(4)); + + ASSERT_EQ(missions.size(), 1u); + EXPECT_EQ(missions.front()->nodes.size(), 4u); + EXPECT_EQ(missions.front()->edges.size(), 3u); +} + +TEST_F(AdapterTest, InvalidOrderWithMissingEdgesIsRejected) +{ + auto order = makeOrder(4); + order.edges.pop_back(); + + std::string reason; + EXPECT_FALSE(order_adapter.validate(MissionRequest::fromOrder(order), reason)); + EXPECT_TRUE(convertOrder(order).empty()); +} + +TEST_F(AdapterTest, OrderSplitsAtNodeAction) +{ + auto order = makeOrder(5); + order.nodes[2].actions.push_back(makeAction("dock")); + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 2u); + EXPECT_EQ(missions[0]->nodes.size(), 3u); + EXPECT_EQ(missions[1]->nodes.size(), 3u); +} + +TEST_F(AdapterTest, OrderCollectsAndSortsActions) +{ + auto order = makeOrder(2); + order.edges[0].actions.push_back(makeAction("edge")); + order.nodes[1].actions.push_back(makeAction("node")); + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + ASSERT_EQ(missions.front()->actions.size(), 2u); + EXPECT_EQ(missions.front()->actions[0].type, ActionType::EDGE_ACTION); + EXPECT_EQ(missions.front()->actions[1].type, ActionType::NODE_ACTION); +} + +// ── A4: conformance VDA5050 ───────────────────────────────────────────────────────────────────── + +TEST_F(AdapterTest, MissionCarriesGoalAndStartFromNodes) +{ + auto order = makeOrder(3); + order.nodes[2].nodePosition.x = 7.0; + order.nodes[2].nodePosition.y = 8.0; + order.nodes[2].nodePosition.theta = 0.0; + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + // Mission phải self-contained: consumer không phải tự đoán goal từ nodes.back(). + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.x, 7.0); + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.y, 8.0); + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.orientation.w, 1.0); + EXPECT_EQ(missions.front()->goal.header.frame_id, "map"); + + EXPECT_DOUBLE_EQ(missions.front()->start.pose.position.x, 0.0); +} + +TEST_F(AdapterTest, NodeThetaBecomesQuaternion) +{ + auto order = makeOrder(2); + order.nodes[1].nodePosition.theta = M_PI; // [rad] + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + // theta = pi -> quay 180 độ quanh z: (z, w) = (1, 0). + EXPECT_NEAR(missions.front()->goal.pose.orientation.z, 1.0, 1e-9); + EXPECT_NEAR(missions.front()->goal.pose.orientation.w, 0.0, 1e-9); +} + +TEST_F(AdapterTest, HorizonNodesAreNeverDispatched) +{ + auto order = makeOrder(5); + // Chỉ 3 node đầu là base; hai node cuối là horizon (fleet manager chưa cho phép đi). + order.nodes[3].released = false; + order.nodes[4].released = false; + order.edges[3].released = false; + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + EXPECT_EQ(missions.front()->nodes.size(), 3u) << "the robot was handed the horizon part that " + "is not released yet"; + EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.x, 2.0); +} + +TEST_F(AdapterTest, OrderWithoutReleasedFlagIsTreatedAsFullBase) +{ + auto order = makeOrder(3); + for (auto& node : order.nodes) node.released = false; + for (auto& edge : order.edges) edge.released = false; + + // Host không điền `released`: chạy cả order còn hơn đứng im không dấu hiệu. + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + EXPECT_EQ(missions.front()->nodes.size(), 3u); +} + +TEST_F(AdapterTest, StaleOrderUpdateIdIsRejected) +{ + ASSERT_FALSE(convertOrder(makeOrder(3, "order_A", 2)).empty()); + + std::string reason; + + // Cùng orderId, orderUpdateId cũ hơn -> phát lại/đến trễ, không được chạy lại tuyến đường. + EXPECT_FALSE(order_adapter.validate(MissionRequest::fromOrder(makeOrder(3, "order_A", 1)), + reason)); + EXPECT_FALSE(order_adapter.validate(MissionRequest::fromOrder(makeOrder(3, "order_A", 2)), + reason)); + + // Cùng orderId, update mới hơn -> chấp nhận. + EXPECT_TRUE(order_adapter.validate(MissionRequest::fromOrder(makeOrder(4, "order_A", 3)), + reason)) << reason; + + // orderId khác -> order mới, không so orderUpdateId. + EXPECT_TRUE(order_adapter.validate(MissionRequest::fromOrder(makeOrder(3, "order_B", 0)), + reason)) << reason; +} + +TEST_F(AdapterTest, OrderUpdateAppendsOnlyNewlyReleasedSegment) +{ + // Base ban đầu: 3 node released, 2 node horizon. + auto order = makeOrder(5, "order_A", 0); + order.nodes[3].released = false; + order.nodes[4].released = false; + order.edges[3].released = false; + + const auto first = convertOrderFull(order); + ASSERT_EQ(first.missions.size(), 1u); + EXPECT_EQ(first.mode, SubmitMode::kReplace); + EXPECT_EQ(first.missions.front()->nodes.size(), 3u); + + // Fleet manager release nốt horizon. + auto update = makeOrder(5, "order_A", 1); + const auto second = convertOrderFull(update); + + ASSERT_EQ(second.missions.size(), 1u); + EXPECT_EQ(second.mode, SubmitMode::kAppend) + << "an order update replaced the whole queue -> the robot cancels and redoes the leg it is " + "on"; + + // Chặng mới bắt đầu từ node cuối của phần đã chạy, không lặp lại phần cũ. + EXPECT_EQ(second.missions.front()->nodes.size(), 3u); + EXPECT_DOUBLE_EQ(second.missions.front()->start.pose.position.x, 2.0); + EXPECT_DOUBLE_EQ(second.missions.front()->goal.pose.position.x, 4.0); +} + +TEST_F(AdapterTest, OrderUpdateWithoutNewNodesProducesNoWork) +{ + ASSERT_FALSE(convertOrder(makeOrder(3, "order_A", 0)).empty()); + + // Update không release thêm node nào: không có việc mới, và cũng không được xoá gì. + const auto result = convertOrderFull(makeOrder(3, "order_A", 1)); + EXPECT_TRUE(result.empty()); +} + +TEST_F(AdapterTest, NewOrderIdReplacesQueue) +{ + ASSERT_FALSE(convertOrder(makeOrder(3, "order_A", 0)).empty()); + + const auto result = convertOrderFull(makeOrder(2, "order_B", 0)); + + ASSERT_FALSE(result.empty()); + EXPECT_EQ(result.mode, SubmitMode::kReplace); +} + +// ── D8: goal optional, action đi nguyên vẹn ───────────────────────────────────────────────────── + +TEST_F(AdapterTest, ActionAtFirstNodeBecomesGoallessMission) +{ + auto order = makeOrder(3); + order.nodes[0].actions.push_back(makeAction("pick_at_start")); + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 2u); + + // Chặng đầu: action ngay tại chỗ đứng, không có quãng đường nào để đi. + EXPECT_FALSE(missions[0]->has_goal); + ASSERT_EQ(missions[0]->actions.size(), 1u); + EXPECT_EQ(missions[0]->actions.front().action.actionId, "pick_at_start"); + + // Chặng sau: di chuyển bình thường. + EXPECT_TRUE(missions[1]->has_goal); + EXPECT_DOUBLE_EQ(missions[1]->goal.pose.position.x, 2.0); +} + +TEST_F(AdapterTest, MovingMissionsAlwaysHaveGoal) +{ + const auto missions = convertOrder(makeOrder(3)); + + ASSERT_EQ(missions.size(), 1u); + EXPECT_TRUE(missions.front()->has_goal); +} + +TEST_F(AdapterTest, ActionsPassThroughUnchangedAndInOrder) +{ + auto order = makeOrder(3); + order.edges[0].sequenceId = 1; + order.edges[0].actions.push_back(makeAction("beep")); + order.edges[1].sequenceId = 3; + order.edges[1].actions.push_back(makeAction("horn")); + order.nodes[2].sequenceId = 4; + order.nodes[2].actions.push_back(makeAction("lift")); + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u); + const auto& actions = missions.front()->actions; + + ASSERT_EQ(actions.size(), 3u); + EXPECT_EQ(actions[0].action.actionId, "beep"); + EXPECT_EQ(actions[1].action.actionId, "horn"); + EXPECT_EQ(actions[2].action.actionId, "lift"); + + // Mission layer không diễn giải actionType — nó chỉ chuyển tiếp. + EXPECT_EQ(actions[2].action.actionType, "TEST"); + EXPECT_EQ(actions[2].type, ActionType::NODE_ACTION); +} + +TEST_F(AdapterTest, NonFiniteNodePositionIsRejected) +{ + auto order = makeOrder(3); + order.nodes[1].nodePosition.x = std::numeric_limits::infinity(); + + std::string reason; + EXPECT_FALSE(order_adapter.validate(MissionRequest::fromOrder(order), reason)); +} + +} // namespace + +// ── Compound action: mở rộng thành chuỗi chặng ────────────────────────────────────────────────── + +namespace +{ +/// @brief Gắn một action có tham số vào node. +void addAction(robot_protocol_msgs::Node& node, const std::string& type, + const std::string& param_key = "", const std::string& param_value = "") +{ + robot_protocol_msgs::Action action; + action.actionType = type; + action.actionId = type + "_id"; + + if (!param_key.empty()) + { + robot_protocol_msgs::ActionParameter p; + p.key = param_key; + p.value = param_value; + action.actionParameters.push_back(p); + } + node.actions.push_back(action); +} +} // namespace + +TEST_F(AdapterTest, CompoundActionExpandsIntoASequenceOfLegs) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "charge", "goal_frame", "charger_02_goal"); + + const auto missions = convertOrder(order); + + // nav -> n1 | DetectCharger | docking | startCharging + ASSERT_EQ(missions.size(), 4u); + + EXPECT_TRUE(missions[0]->has_goal); + EXPECT_TRUE(missions[0]->actions.empty()) << "action compound phải được GỠ khỏi chặng nav"; + EXPECT_EQ(missions[0]->motion_hint, "position"); + + ASSERT_EQ(missions[1]->actions.size(), 1u); + EXPECT_EQ(missions[1]->actions[0].action.actionType, "DetectCharger"); + EXPECT_FALSE(missions[1]->has_goal); + + EXPECT_TRUE(missions[2]->has_goal); + EXPECT_EQ(missions[2]->motion_hint, "docking"); + EXPECT_EQ(missions[2]->goal_frame, "charger_02_goal") << "frame phải lấy từ actionParameters"; + EXPECT_EQ(missions[2]->marker, "charger") << "marker phải chọn override planner độc lập TF"; + + ASSERT_EQ(missions[3]->actions.size(), 1u); + EXPECT_EQ(missions[3]->actions[0].action.actionType, "startCharging"); + EXPECT_FALSE(missions[3]->has_goal); +} + +TEST_F(AdapterTest, GeneratedActionsCarryTheOriginalParameters) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "charge", "goal_frame", "charger_02_goal"); + + const auto missions = convertOrder(order); + ASSERT_EQ(missions.size(), 4u); + + // Handler dò cần biết dò trạm nào; nó là chỗ duy nhất hiểu ý nghĩa các tham số đó. + const auto& detect = missions[1]->actions[0].action; + ASSERT_EQ(detect.actionParameters.size(), 1u); + EXPECT_EQ(detect.actionParameters[0].key, "goal_frame"); + EXPECT_EQ(detect.actionParameters[0].value, "charger_02_goal"); + + // actionId suy từ id gốc để truy vết được trong log. + EXPECT_NE(detect.actionId.find("charge_id"), std::string::npos); +} + +TEST_F(AdapterTest, PlainActionsKeepTheirJsonOrderAroundACompound) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "MutedOn"); + addAction(order.nodes[1], "charge", "goal_frame", "charger_goal"); + addAction(order.nodes[1], "MutedOff"); + + const auto missions = convertOrder(order); + + // nav+MutedOn | Detect | docking | startCharging | MutedOff + ASSERT_EQ(missions.size(), 5u); + + ASSERT_EQ(missions[0]->actions.size(), 1u); + EXPECT_EQ(missions[0]->actions[0].action.actionType, "MutedOn"); + + // MutedOff phải nằm SAU chuỗi charge. Gom hết action thường vào chặng nav sẽ bật lại cảm biến + // an toàn trước khi robot lùi vào trạm — đúng thứ MutedOn sinh ra để tránh. + ASSERT_EQ(missions[4]->actions.size(), 1u); + EXPECT_EQ(missions[4]->actions[0].action.actionType, "MutedOff"); + EXPECT_FALSE(missions[4]->has_goal); +} + +TEST_F(AdapterTest, ActionOutsideTheTableRunsAsAPlainAction) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "MutedOn"); + + const auto missions = convertOrder(order); + + ASSERT_EQ(missions.size(), 1u) << "action thường không được mở rộng"; + ASSERT_EQ(missions[0]->actions.size(), 1u); + EXPECT_EQ(missions[0]->actions[0].action.actionType, "MutedOn"); +} + +TEST_F(AdapterTest, RelativeMoveStepBecomesALegWithADistance) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "UnDockFromStation"); + + const auto missions = convertOrder(order); + ASSERT_EQ(missions.size(), 2u); + + EXPECT_TRUE(missions[1]->has_goal); + EXPECT_EQ(missions[1]->motion_hint, "go_straight"); + EXPECT_DOUBLE_EQ(missions[1]->relative_distance, -1.0); + EXPECT_TRUE(missions[1]->goal_frame.empty()); +} + +TEST_F(AdapterTest, FixedFrameStepDoesNotNeedAnyParameter) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "FixedDock"); + + const auto missions = convertOrder(order); + ASSERT_EQ(missions.size(), 2u); + EXPECT_EQ(missions[1]->goal_frame, "dock_target"); + EXPECT_EQ(missions[1]->marker, "trolley"); +} + +TEST_F(AdapterTest, MissingStructuralParameterDropsTheWholeOrder) +{ + auto order = makeOrder(2); + addAction(order.nodes[1], "charge"); // thiếu goal_frame + + // Bỏ CẢ order: một order chạy nửa vời — robot tới trạm sạc rồi không sạc — nguy hiểm hơn là + // không chạy. Và hàng đợi đang chạy không bị đụng tới (A1). + EXPECT_TRUE(convertOrder(order).empty()); +} + +TEST(CompoundConfig, RejectsAStepWithTwoKeywords) +{ + robot::NodeHandle nh; + VDA5050SourceAdapter adapter; + EXPECT_FALSE(adapter.configure("vda5050_bad_step", nh)) + << "không đúng một từ khoá thì không có cách diễn giải nào hiển nhiên đúng"; +} + +TEST(CompoundConfig, RejectsARecursiveCompound) +{ + robot::NodeHandle nh; + VDA5050SourceAdapter adapter; + EXPECT_FALSE(adapter.configure("vda5050_recursive", nh)) + << "expander sẽ mở rộng chính output của mình"; +} + +TEST(CompoundConfig, RejectsInvalidOrActionOnlyProfiles) +{ + robot::NodeHandle nh; + VDA5050SourceAdapter adapter; + EXPECT_FALSE(adapter.configure("vda5050_bad_profile", nh)); +} + +int main(int argc, char** argv) +{ + // Bảng `compound_actions` nằm trong cây config test. `overwrite = 0` để shell vẫn override được + // khi cần chạy tay với cây khác — cùng cách `plugin_registry_test` làm. +#ifdef MISSION_ADAPTERS_TEST_CONFIG_DIR + setenv("PNKX_NAV_CORE_CONFIG_DIR", MISSION_ADAPTERS_TEST_CONFIG_DIR, 0); +#endif + + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/config/mission_adapters_params.yaml b/test/config/mission_adapters_params.yaml new file mode 100644 index 0000000..35c3180 --- /dev/null +++ b/test/config/mission_adapters_params.yaml @@ -0,0 +1,107 @@ +# Config CHỈ dùng cho test của gói. Bản runtime nằm ở +# `pnkx_nav_core/config/mission_adapters_params.yaml` (C2) — sửa tham số vận hành thì sửa ở đó. +# +# Chạy test kèm: PNKX_NAV_CORE_CONFIG_DIR=src/AMR_T800/Test/mission_adapters/test/config + +mission_adapters: + # Nguồn mission. Thêm loại mới chỉ cần thêm một entry ở đây + một plugin .so. + mission_sources: + - {name: goal_src, type: GoalSourceAdapter} + - {name: vda5050_src, type: VDA5050SourceAdapter} + + mission_timeout: 0.0 # [s] 0 = tắt + clear_queue_on_failure: false # false = chỉ bỏ chặng lỗi, giữ phần còn lại của order + +# Bảng symbol -> thư viện cho Boost.DLL. Thiếu khoá library_path là nguyên nhân phổ biến nhất của +# lỗi "plugin build xong nhưng runtime báo không tìm thấy". +GoalSourceAdapter: + library_path: libmission_adapters_goal_source + +VDA5050SourceAdapter: + library_path: libmission_adapters_vda5050_source + +# ── Các case lỗi mà plugin_registry_test cố ý dựng ra ──────────────────────────────────────────── +# +# Mỗi case là một namespace riêng để test gọi loadFromConfig(nh, "") mà không phải sinh +# file YAML lúc chạy. + +registry_test_missing_library_path: + mission_sources: + - {name: bad_src, type: MissingLibraryPathAdapter} + +registry_test_missing_library_file: + mission_sources: + - {name: bad_src, type: MissingLibraryFileAdapter} + +registry_test_wrong_symbol: + mission_sources: + - {name: bad_src, type: WrongSymbolAdapter} + +registry_test_duplicate_schema: + mission_sources: + - {name: goal_a, type: GoalSourceAdapter} + - {name: goal_b, type: GoalSourceAdapter} + +registry_test_entry_without_type: + mission_sources: + - {name: nameless_src} + +registry_test_empty: + mission_timeout: 0.0 + + +# Khai trong mission_sources nhưng KHÔNG có khoá library_path. +MissingLibraryPathAdapter: + description: "cố ý thiếu library_path" + +# library_path trỏ tới file không tồn tại. +MissingLibraryFileAdapter: + library_path: libmission_adapters_does_not_exist + +# Thư viện có thật nhưng symbol không tồn tại trong đó. +WrongSymbolAdapter: + library_path: libmission_adapters_goal_source + +# ── Compound action: action "phải dò rồi mới biết đích" ───────────────────────────────────────── +# +# Bảng chỉ giữ CẤU TRÚC; frame cụ thể tới từ actionParameters của chính order. +vda5050_src: + global_frame: map + compound_actions: + charge: + steps: + - {action: DetectCharger} + - {move_to_param: goal_frame, profile: docking, marker: charger} + - {action: startCharging} + + UnDockFromStation: + steps: + - {move: -1.0, profile: go_straight} + + FixedDock: + steps: + - {move_to: dock_target, profile: docking, marker: trolley} + +# Step có hai từ khoá -> configure() phải từ chối lúc boot. +vda5050_bad_step: + compound_actions: + charge: + steps: + - {action: DetectCharger, move: -1.0} + +# Compound sinh ra một actionType cũng là compound -> đệ quy. +vda5050_recursive: + compound_actions: + charge: + steps: + - {action: PickUp} + PickUp: + steps: + - {move: 0.5} + +# Profile chỉ có nghĩa trên step navigation và phải thuộc bốn profile runtime. +vda5050_bad_profile: + compound_actions: + invalid_name: + steps: + - {move: 0.5, profile: dock} diff --git a/test/event_bus_test.cpp b/test/event_bus_test.cpp new file mode 100644 index 0000000..87d41db --- /dev/null +++ b/test/event_bus_test.cpp @@ -0,0 +1,133 @@ +#include + +#include +#include + +#include + +namespace +{ +using namespace mission_adapters; + +Event makeEvent(EventType type) +{ + Event event; + event.type = type; + return event; +} + +// ───────────────────────────────────────────────────────────────────────────── +// A5 — thứ tự xử lý phải bằng thứ tự phát sinh. +// +// Bản trước sắp theo priority toàn phần: CANCEL (1) luôn đứng trước SUBMIT (5). Phát order rồi huỷ +// ngay thì huỷ được xử lý trước, order vào hàng đợi sau, và robot chạy đúng cái người dùng vừa huỷ. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(EventBusTest, SubmitThenCancelKeepsCausalOrder) +{ + EventBus bus; + + bus.push(makeEvent(EventType::SUBMIT_REQUEST)); + bus.push(makeEvent(EventType::CANCEL)); + + Event event; + ASSERT_TRUE(bus.pop(event)); + EXPECT_EQ(event.type, EventType::SUBMIT_REQUEST); + + ASSERT_TRUE(bus.pop(event)); + EXPECT_EQ(event.type, EventType::CANCEL) << "the cancel was processed before the order it " + "cancels"; +} + +TEST(EventBusTest, PreservesFifoOrderAcrossEventTypes) +{ + EventBus bus; + + const std::vector pushed = { + EventType::PAUSE, + EventType::SUBMIT_REQUEST, + EventType::RESUME, + EventType::NAV_DONE, + EventType::CANCEL, + }; + + for (const auto type : pushed) + bus.push(makeEvent(type)); + + for (size_t i = 0; i < pushed.size(); ++i) + { + Event event; + ASSERT_TRUE(bus.pop(event)) << "event number " << i; + EXPECT_EQ(event.type, pushed[i]) << "wrong order at position " << i; + EXPECT_EQ(event.sequence, i); + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Emergency đi ngoài hàng đợi: độ trễ phản ứng không được phụ thuộc độ dài hàng đợi. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(EventBusTest, EmergencyOvertakesQueue) +{ + EventBus bus; + + for (int i = 0; i < 50; ++i) + bus.push(makeEvent(EventType::SUBMIT_REQUEST)); + + EXPECT_FALSE(bus.emergencyPending()); + bus.pushEmergency(makeEvent(EventType::EMERGENCY)); + + // Thấy được ngay, không phải rút hết 50 sự kiện kia ra trước. + EXPECT_TRUE(bus.emergencyPending()); + EXPECT_EQ(bus.size(), 51u) << "an EMERGENCY event must still sit in the queue to keep the log " + "sequence"; + + EXPECT_TRUE(bus.takeEmergency()); + EXPECT_FALSE(bus.takeEmergency()) << "the emergency flag was consumed twice"; +} + +TEST(EventBusTest, EmergencyEventStillArrivesInOrder) +{ + EventBus bus; + + bus.push(makeEvent(EventType::PAUSE)); + bus.pushEmergency(makeEvent(EventType::EMERGENCY)); + + Event event; + ASSERT_TRUE(bus.pop(event)); + EXPECT_EQ(event.type, EventType::PAUSE); + + ASSERT_TRUE(bus.pop(event)); + EXPECT_EQ(event.type, EventType::EMERGENCY); +} + +TEST(EventBusTest, StopUnblocksPop) +{ + EventBus bus; + Event event; + + std::thread stopper([&bus] { bus.stop(); }); + EXPECT_FALSE(bus.pop(event)); + stopper.join(); +} + +TEST(EventBusTest, ResetDropsPendingEventsAndEmergencyFlag) +{ + EventBus bus; + + bus.push(makeEvent(EventType::PAUSE)); + bus.pushEmergency(makeEvent(EventType::EMERGENCY)); + + bus.reset(); + + EXPECT_TRUE(bus.empty()); + EXPECT_FALSE(bus.emergencyPending()); +} + +} // namespace + +int main(int argc, char** argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/mission_adapters_test.cpp b/test/mission_adapters_test.cpp deleted file mode 100644 index f864927..0000000 --- a/test/mission_adapters_test.cpp +++ /dev/null @@ -1,360 +0,0 @@ -#include - -#include -#include -#include - -#include - -namespace -{ -using namespace mission_adapters; - -robot_geometry_msgs::PoseStamped makeGoal(double x, double y) -{ - robot_geometry_msgs::PoseStamped goal; - goal.pose.position.x = x; - goal.pose.position.y = y; - return goal; -} - -robot_protocol_msgs::Action makeAction(const std::string& id) -{ - robot_protocol_msgs::Action action; - action.actionId = id; - action.actionType = "TEST"; - return action; -} - -robot_protocol_msgs::Node makeNode(int sequence_id, bool add_action = false) -{ - robot_protocol_msgs::Node node; - node.sequenceId = sequence_id; - node.nodeId = "node_" + std::to_string(sequence_id); - node.nodePosition.x = sequence_id; - node.nodePosition.y = sequence_id; - - if (add_action) - node.actions.push_back(makeAction("node_action_" + std::to_string(sequence_id))); - - return node; -} - -robot_protocol_msgs::Edge makeEdge(int sequence_id, bool add_action = false) -{ - robot_protocol_msgs::Edge edge; - edge.sequenceId = sequence_id; - edge.edgeId = "edge_" + std::to_string(sequence_id); - - if (add_action) - edge.actions.push_back(makeAction("edge_action_" + std::to_string(sequence_id))); - - return edge; -} - -robot_protocol_msgs::Order makeOrder(int node_count) -{ - robot_protocol_msgs::Order order; - - for (int i = 0; i < node_count; ++i) - order.nodes.push_back(makeNode(i)); - - for (int i = 0; i < node_count - 1; ++i) - order.edges.push_back(makeEdge(i)); - - return order; -} - -bool waitForState(MissionManager& manager, MissionState expected, std::chrono::milliseconds timeout) -{ - const auto deadline = std::chrono::steady_clock::now() + timeout; - while (std::chrono::steady_clock::now() < deadline) - { - if (manager.state() == expected) - return true; - - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - } - - return manager.state() == expected; -} - -class MissionAdaptersTest : public ::testing::Test -{ -protected: - GoalAdapter goal_adapter; - VDA5050Adapter order_adapter; -}; - -TEST(EventBusTest, PopsHighestPriorityFirst) -{ - EventBus bus; - - Event pause; - pause.type = EventType::PAUSE; - pause.priority = PRIORITY_PAUSE; - bus.push(pause); - - Event cancel; - cancel.type = EventType::CANCEL; - cancel.priority = PRIORITY_CANCEL; - bus.push(cancel); - - Event emergency; - emergency.type = EventType::EMERGENCY; - emergency.priority = PRIORITY_EMERGENCY; - bus.push(emergency); - - Event event; - ASSERT_TRUE(bus.pop(event)); - EXPECT_EQ(event.type, EventType::EMERGENCY); - - ASSERT_TRUE(bus.pop(event)); - EXPECT_EQ(event.type, EventType::CANCEL); - - ASSERT_TRUE(bus.pop(event)); - EXPECT_EQ(event.type, EventType::PAUSE); -} - -TEST(EventBusTest, PreservesFifoOrderForSamePriority) -{ - EventBus bus; - - Event emergency; - emergency.type = EventType::EMERGENCY; - emergency.priority = PRIORITY_EMERGENCY; - bus.push(emergency); - - Event clear_emergency; - clear_emergency.type = EventType::CLEAR_EMERGENCY; - clear_emergency.priority = PRIORITY_EMERGENCY; - bus.push(clear_emergency); - - Event event; - ASSERT_TRUE(bus.pop(event)); - EXPECT_EQ(event.type, EventType::EMERGENCY); - - ASSERT_TRUE(bus.pop(event)); - EXPECT_EQ(event.type, EventType::CLEAR_EMERGENCY); -} - -TEST(EventBusTest, StopUnblocksPop) -{ - EventBus bus; - Event event; - - std::thread stopper([&bus] { bus.stop(); }); - EXPECT_FALSE(bus.pop(event)); - stopper.join(); -} - -TEST(EventBusTest, ResetDropsPendingEvents) -{ - EventBus bus; - - Event pause; - pause.type = EventType::PAUSE; - pause.priority = PRIORITY_PAUSE; - bus.push(pause); - - bus.reset(); - EXPECT_TRUE(bus.empty()); -} - -TEST_F(MissionAdaptersTest, GoalAdapterCreatesSingleMission) -{ - const auto missions = goal_adapter.convert(makeGoal(5.5, 9.1)); - - ASSERT_EQ(missions.size(), 1u); - EXPECT_EQ(missions.front()->type, MissionType::SIMPLE_GOAL); - EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.x, 5.5); - EXPECT_DOUBLE_EQ(missions.front()->goal.pose.position.y, 9.1); -} - -TEST_F(MissionAdaptersTest, EmptyOrderCreatesNoMissions) -{ - robot_protocol_msgs::Order order; - EXPECT_TRUE(order_adapter.convert(order).empty()); -} - -TEST_F(MissionAdaptersTest, OrderWithoutActionsCreatesOneTailMission) -{ - const auto missions = order_adapter.convert(makeOrder(4)); - - ASSERT_EQ(missions.size(), 1u); - EXPECT_EQ(missions.front()->nodes.size(), 4u); - EXPECT_EQ(missions.front()->edges.size(), 3u); -} - -TEST_F(MissionAdaptersTest, InvalidOrderWithMissingEdgesCreatesNoMissions) -{ - auto order = makeOrder(4); - order.edges.pop_back(); - - EXPECT_TRUE(order_adapter.convert(order).empty()); -} - -TEST_F(MissionAdaptersTest, OrderSplitsAtNodeAction) -{ - auto order = makeOrder(5); - order.nodes[2].actions.push_back(makeAction("dock")); - - const auto missions = order_adapter.convert(order); - - ASSERT_EQ(missions.size(), 2u); - EXPECT_EQ(missions[0]->nodes.size(), 3u); - EXPECT_EQ(missions[1]->nodes.size(), 3u); -} - -TEST_F(MissionAdaptersTest, OrderCollectsAndSortsActions) -{ - auto order = makeOrder(2); - order.edges[0].actions.push_back(makeAction("edge")); - order.nodes[1].actions.push_back(makeAction("node")); - - const auto missions = order_adapter.convert(order); - - ASSERT_EQ(missions.size(), 1u); - ASSERT_EQ(missions.front()->actions.size(), 2u); - EXPECT_EQ(missions.front()->actions[0].type, ActionType::EDGE_ACTION); - EXPECT_EQ(missions.front()->actions[1].type, ActionType::NODE_ACTION); -} - -TEST_F(MissionAdaptersTest, ManagerRunsMissionLifecycle) -{ - MissionManager manager; - - manager.submit(goal_adapter.convert(makeGoal(1.0, 2.0))); - EXPECT_EQ(manager.state(), MissionState::QUEUED); - EXPECT_TRUE(manager.hasMission()); - - auto mission = manager.nextMission(); - ASSERT_NE(mission, nullptr); - EXPECT_EQ(manager.state(), MissionState::RUNNING); - - manager.onNavigationDone(); - EXPECT_EQ(manager.state(), MissionState::IDLE); - EXPECT_FALSE(manager.hasMission()); -} - -TEST_F(MissionAdaptersTest, ManagerHandlesPauseResumeCancelAndFailure) -{ - MissionManager manager; - - manager.submit(goal_adapter.convert(makeGoal(1.0, 1.0))); - manager.pause(); - EXPECT_EQ(manager.state(), MissionState::PAUSED); - - manager.resume(); - EXPECT_EQ(manager.state(), MissionState::QUEUED); - - manager.cancel(); - EXPECT_EQ(manager.state(), MissionState::CANCELLED); - EXPECT_FALSE(manager.hasMission()); - - manager.submit(goal_adapter.convert(makeGoal(2.0, 2.0))); - manager.nextMission(); - manager.onNavigationFailed(); - EXPECT_EQ(manager.state(), MissionState::FAILED); - EXPECT_FALSE(manager.hasMission()); -} - -TEST_F(MissionAdaptersTest, NavigationResultIsIgnoredOutsideRunningState) -{ - MissionManager manager; - - manager.submit(goal_adapter.convert(makeGoal(1.0, 1.0))); - manager.emergency(); - manager.onNavigationDone(); - EXPECT_EQ(manager.state(), MissionState::EMERGENCY); - - manager.onNavigationFailed(); - EXPECT_EQ(manager.state(), MissionState::EMERGENCY); - - manager.clearEmergency(); - manager.submit(goal_adapter.convert(makeGoal(2.0, 2.0))); - manager.cancel(); - manager.onNavigationDone(); - EXPECT_EQ(manager.state(), MissionState::CANCELLED); -} - -TEST_F(MissionAdaptersTest, EmergencyClearsAndBlocksNewMissionsUntilCleared) -{ - MissionManager manager; - - manager.submit(goal_adapter.convert(makeGoal(1.0, 1.0))); - manager.emergency(); - EXPECT_EQ(manager.state(), MissionState::EMERGENCY); - EXPECT_FALSE(manager.hasMission()); - - manager.submit(goal_adapter.convert(makeGoal(2.0, 2.0))); - EXPECT_EQ(manager.state(), MissionState::EMERGENCY); - EXPECT_FALSE(manager.hasMission()); - - manager.clearEmergency(); - manager.submit(goal_adapter.convert(makeGoal(3.0, 3.0))); - EXPECT_EQ(manager.state(), MissionState::QUEUED); - EXPECT_TRUE(manager.hasMission()); -} - -TEST_F(MissionAdaptersTest, EventProcessorProcessesGoalAndEmergency) -{ - MissionManager manager; - EventProcessor processor(manager); - - processor.start(); - processor.goalEvent(makeGoal(5.0, 6.0)); - EXPECT_TRUE(waitForState(manager, MissionState::QUEUED, std::chrono::milliseconds(250))); - - processor.emergencyEvent(); - EXPECT_TRUE(waitForState(manager, MissionState::EMERGENCY, std::chrono::milliseconds(250))); - - processor.goalEvent(makeGoal(7.0, 8.0)); - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - EXPECT_EQ(manager.state(), MissionState::EMERGENCY); - - processor.clearEmergencyEvent(); - EXPECT_TRUE(waitForState(manager, MissionState::CLEAR_EMERGENCY, std::chrono::milliseconds(250))); - - processor.stop(); -} - -TEST_F(MissionAdaptersTest, MissionExecutorDispatchesEachMissionOnce) -{ - MissionManager manager; - MissionExecutor executor(manager); - std::atomic callback_count{0}; - - executor.setMissionCallback( - [&callback_count](const std::shared_ptr& mission) - { - ASSERT_NE(mission, nullptr); - ++callback_count; - }); - - manager.submit(goal_adapter.convert(makeGoal(10.0, 10.0))); - executor.start(); - - const auto deadline = std::chrono::steady_clock::now() + std::chrono::milliseconds(250); - while (callback_count.load() < 1 && std::chrono::steady_clock::now() < deadline) - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - - manager.onNavigationDone(); - manager.submit(goal_adapter.convert(makeGoal(11.0, 11.0))); - - const auto second_deadline = std::chrono::steady_clock::now() + std::chrono::milliseconds(250); - while (callback_count.load() < 2 && std::chrono::steady_clock::now() < second_deadline) - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - - executor.stop(); - - EXPECT_EQ(callback_count.load(), 2); -} - -} // namespace - -int main(int argc, char** argv) -{ - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/test/mission_lifecycle_test.cpp b/test/mission_lifecycle_test.cpp new file mode 100644 index 0000000..0ec88ac --- /dev/null +++ b/test/mission_lifecycle_test.cpp @@ -0,0 +1,356 @@ +#include + +#include +#include + +#include +#include + +#include "goal_source_adapter.h" +#include "vda5050_source_adapter.h" +#include "mission_test_utils.h" + +namespace +{ +using namespace mission_adapters; +using mission_test::FakeNavigationClient; +using mission_test::makeGoal; +using mission_test::makeMission; +using mission_test::waitForState; + +/// Chờ tới khi predicate đúng hoặc hết hạn. Trả giá trị cuối cùng của predicate. +template +bool waitFor(Predicate predicate, std::chrono::milliseconds timeout) +{ + const auto deadline = std::chrono::steady_clock::now() + timeout; + while (std::chrono::steady_clock::now() < deadline) + { + if (predicate()) + return true; + + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } + + return predicate(); +} + +constexpr std::chrono::milliseconds kWaitTimeout{500}; + +class MissionLifecycleTest : public ::testing::Test +{ +protected: + void SetUp() override + { + // Đăng ký thẳng thay vì nạp .so: test này kiểm luồng mission, không kiểm đường Boost.DLL + // (việc đó thuộc plugin_registry_test). + ASSERT_TRUE(registry.registerAdapter(std::make_shared())); + ASSERT_TRUE(registry.registerAdapter(std::make_shared())); + } + + /// Một mission dựng thẳng, đóng gói trong vector để submit(). + std::vector> oneMission(double x, double y) + { + return {makeMission(x, y)}; + } + + PluginRegistry registry; +}; + +TEST_F(MissionLifecycleTest, EventProcessorProcessesGoalAndEmergency) +{ + MissionManager manager; + EventProcessor processor(manager, registry); + + processor.start(); + processor.goalEvent(makeGoal(5.0, 6.0)); + EXPECT_TRUE(waitForState(manager, MissionState::QUEUED, kWaitTimeout)); + + processor.emergencyEvent(); + EXPECT_TRUE(waitForState(manager, MissionState::EMERGENCY, kWaitTimeout)); + + processor.goalEvent(makeGoal(7.0, 8.0)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); + + processor.clearEmergencyEvent(); + EXPECT_TRUE(waitForState(manager, MissionState::CLEAR_EMERGENCY, kWaitTimeout)); + + processor.stop(); +} + +TEST_F(MissionLifecycleTest, MissionExecutorDispatchesEachMissionOnce) +{ + MissionManager manager; + MissionExecutor executor(manager); + FakeNavigationClient client; + + executor.setNavigationClient(&client); + manager.submit(oneMission(10.0, 10.0)); + executor.start(); + + ASSERT_TRUE(waitFor([&client] { return client.dispatchCount() == 1u; }, kWaitTimeout)); + + const auto first = client.dispatched().front(); + ASSERT_TRUE(manager.onNavigationDone(first->id)); + manager.submit(oneMission(11.0, 11.0)); + + ASSERT_TRUE(waitFor([&client] { return client.dispatchCount() == 2u; }, kWaitTimeout)); + + // Chặng thứ hai chưa xong -> không được giao thêm lần nào nữa. + std::this_thread::sleep_for(std::chrono::milliseconds(120)); + executor.stop(); + + EXPECT_EQ(client.dispatchCount(), 2u); + EXPECT_TRUE(client.cancelled().empty()); +} + +// ───────────────────────────────────────────────────────────────────────────── +// A3 — cancel/emergency ở tầng mission phải tới được navigation. +// ───────────────────────────────────────────────────────────────────────────── + +TEST_F(MissionLifecycleTest, CancelStopsNavigationExactlyOnce) +{ + MissionManager manager; + MissionExecutor executor(manager); + FakeNavigationClient client; + + executor.setNavigationClient(&client); + manager.submit(oneMission(1.0, 1.0)); + executor.start(); + + ASSERT_TRUE(waitFor([&client] { return client.dispatchCount() == 1u; }, kWaitTimeout)); + const MissionId running_id = client.dispatched().front()->id; + + manager.cancel(); + + ASSERT_TRUE(waitFor([&client] { return !client.cancelled().empty(); }, kWaitTimeout)); + std::this_thread::sleep_for(std::chrono::milliseconds(120)); + executor.stop(); + + ASSERT_EQ(client.cancelled().size(), 1u) << "cancelActive must be called exactly once"; + EXPECT_EQ(client.cancelled().front(), running_id); + EXPECT_EQ(manager.state(), MissionState::CANCELLED); +} + +TEST_F(MissionLifecycleTest, PreemptCancelsOldMissionBeforeDispatchingNewOne) +{ + MissionManager manager; + MissionExecutor executor(manager); + FakeNavigationClient client; + + executor.setNavigationClient(&client); + manager.submit(oneMission(1.0, 1.0)); + executor.start(); + + ASSERT_TRUE(waitFor([&client] { return client.dispatchCount() == 1u; }, kWaitTimeout)); + const MissionId old_id = client.dispatched().front()->id; + + // Order mới thay order cũ trong lúc chặng đầu đang chạy. + manager.submit(oneMission(2.0, 2.0)); + + ASSERT_TRUE(waitFor([&client] { return client.dispatchCount() == 2u; }, kWaitTimeout)); + executor.stop(); + + ASSERT_EQ(client.cancelled().size(), 1u) << "the replaced leg was not told to stop"; + EXPECT_EQ(client.cancelled().front(), old_id); + EXPECT_NE(client.dispatched().back()->id, old_id); +} + +TEST_F(MissionLifecycleTest, RejectedDispatchFailsMissionInsteadOfHanging) +{ + MissionManager manager; + MissionExecutor executor(manager); + FakeNavigationClient client; + + client.setAcceptDispatch(false); + executor.setNavigationClient(&client); + manager.submit(oneMission(3.0, 3.0)); + executor.start(); + + EXPECT_TRUE(waitForState(manager, MissionState::FAILED, kWaitTimeout)) + << "navigation rejected it yet the mission is still stuck in RUNNING"; + + executor.stop(); + EXPECT_EQ(client.dispatchCount(), 1u) << "a rejected mission was handed over again on the next " + "round"; +} + +TEST_F(MissionLifecycleTest, OrderProducingNoMissionLeavesQueueUntouched) +{ + MissionManager manager; + EventProcessor processor(manager, registry); + + processor.start(); + processor.goalEvent(makeGoal(4.0, 4.0)); + ASSERT_TRUE(waitForState(manager, MissionState::QUEUED, kWaitTimeout)); + + // Order thiếu edge -> convert() rỗng -> không được đụng vào hàng đợi hiện tại (A1). + auto invalid_order = mission_test::makeOrder(4); + invalid_order.edges.pop_back(); + processor.orderEvent(invalid_order); + + std::this_thread::sleep_for(std::chrono::milliseconds(80)); + processor.stop(); + + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_TRUE(manager.hasMission()) << "a failed order cleared the queue"; +} + +// ───────────────────────────────────────────────────────────────────────────── +// End-to-end: một Order đi hết đường qua cả ba thành phần. +// ───────────────────────────────────────────────────────────────────────────── + +/// Dựng bộ ba thành phần đã nối dây sẵn, dùng chung cho các test end-to-end bên dưới. +struct MissionStack +{ + explicit MissionStack(PluginRegistry& registry) + : processor(manager, registry) + , executor(manager) + { + executor.setNavigationClient(&client); + processor.start(); + executor.start(); + } + + ~MissionStack() + { + executor.stop(); + processor.stop(); + } + + MissionManager manager; + EventProcessor processor; + MissionExecutor executor; + FakeNavigationClient client; +}; + +TEST_F(MissionLifecycleTest, OrderRunsThreeLegsThenCompletes) +{ + MissionStack stack(registry); + + // Order 4 node, action tại node 1 và node 2 -> cắt thành 3 chặng. + auto order = mission_test::makeOrder(4); + order.nodes[1].actions.push_back(mission_test::makeAction("lift")); + order.nodes[2].actions.push_back(mission_test::makeAction("drop")); + + stack.processor.orderEvent(order); + + for (int leg = 0; leg < 3; ++leg) + { + const size_t expected = static_cast(leg) + 1; + ASSERT_TRUE(waitFor([&stack, expected] { return stack.client.dispatchCount() == expected; }, + kWaitTimeout)) + << "leg number " << leg << " was not handed over"; + + const auto mission = stack.client.dispatched().back(); + stack.processor.navDoneEvent(mission->id); + } + + EXPECT_TRUE(waitForState(stack.manager, MissionState::COMPLETED, kWaitTimeout)); + EXPECT_EQ(stack.client.dispatchCount(), 3u); + EXPECT_TRUE(stack.client.cancelled().empty()); +} + +TEST_F(MissionLifecycleTest, CancelMidOrderThenAcceptNewOrder) +{ + MissionStack stack(registry); + + auto order = mission_test::makeOrder(4); + order.nodes[1].actions.push_back(mission_test::makeAction("lift")); + order.nodes[2].actions.push_back(mission_test::makeAction("drop")); + + stack.processor.orderEvent(order); + ASSERT_TRUE(waitFor([&stack] { return stack.client.dispatchCount() == 1u; }, kWaitTimeout)); + + const MissionId running_id = stack.client.dispatched().front()->id; + stack.processor.cancelEvent(); + + ASSERT_TRUE(waitFor([&stack] { return !stack.client.cancelled().empty(); }, kWaitTimeout)); + EXPECT_EQ(stack.client.cancelled().front(), running_id); + EXPECT_TRUE(waitForState(stack.manager, MissionState::CANCELLED, kWaitTimeout)); + + // Sau khi huỷ vẫn nhận được order mới. + stack.processor.orderEvent(mission_test::makeOrder(2, "order_moi")); + + ASSERT_TRUE(waitFor([&stack] { return stack.client.dispatchCount() == 2u; }, kWaitTimeout)); + EXPECT_EQ(stack.manager.state(), MissionState::RUNNING); + EXPECT_NE(stack.client.dispatched().back()->id, running_id); +} + +// A5 end-to-end: huỷ ngay sau khi phát order thì không mission nào được chạy. +TEST_F(MissionLifecycleTest, OrderThenImmediateCancelDispatchesNothing) +{ + MissionStack stack(registry); + + stack.processor.orderEvent(mission_test::makeOrder(3)); + stack.processor.cancelEvent(); + + // Cho cả hai sự kiện chạy xong rồi mới kết luận. + ASSERT_TRUE(waitForState(stack.manager, MissionState::CANCELLED, kWaitTimeout)); + std::this_thread::sleep_for(std::chrono::milliseconds(120)); + + EXPECT_EQ(stack.client.dispatchCount(), 0u) + << "the cancel was processed before the order so the order still runs — the robot drives " + "what the user just cancelled"; + EXPECT_FALSE(stack.manager.hasMission()); +} + +TEST_F(MissionLifecycleTest, EmergencyOvertakesLongEventQueue) +{ + MissionStack stack(registry); + + // Nhồi hàng đợi bằng nhiều goal rồi mới bấm emergency. + for (int i = 0; i < 50; ++i) + stack.processor.goalEvent(makeGoal(i, i)); + + stack.processor.emergencyEvent(); + + EXPECT_TRUE(waitForState(stack.manager, MissionState::EMERGENCY, kWaitTimeout)) + << "emergency must queue-jump, not wait behind 50 events"; + EXPECT_FALSE(stack.manager.hasMission()); +} + +TEST_F(MissionLifecycleTest, ActionsReachNavigationIntactAndInOrder) +{ + MissionStack stack(registry); + + auto order = mission_test::makeOrder(3); + order.edges[0].sequenceId = 1; + order.edges[0].actions.push_back(mission_test::makeAction("beep")); + order.nodes[1].sequenceId = 2; + order.nodes[1].actions.push_back(mission_test::makeAction("lift")); + + stack.processor.orderEvent(order); + ASSERT_TRUE(waitFor([&stack] { return stack.client.dispatchCount() == 1u; }, kWaitTimeout)); + + const auto mission = stack.client.dispatched().front(); + ASSERT_EQ(mission->actions.size(), 2u) << "the action was lost on the way down to navigation"; + EXPECT_EQ(mission->actions[0].action.actionId, "beep"); + EXPECT_EQ(mission->actions[1].action.actionId, "lift"); + EXPECT_TRUE(mission->has_goal); +} + +TEST_F(MissionLifecycleTest, GoallessMissionReachesNavigationWithItsActions) +{ + MissionStack stack(registry); + + // Action ngay tại node xuất phát -> chặng đầu không có quãng đường nào để đi. + auto order = mission_test::makeOrder(3); + order.nodes[0].actions.push_back(mission_test::makeAction("pick_at_start")); + + stack.processor.orderEvent(order); + ASSERT_TRUE(waitFor([&stack] { return stack.client.dispatchCount() == 1u; }, kWaitTimeout)); + + const auto mission = stack.client.dispatched().front(); + EXPECT_FALSE(mission->has_goal); + ASSERT_EQ(mission->actions.size(), 1u); + EXPECT_EQ(mission->actions.front().action.actionId, "pick_at_start"); +} + +} // namespace + +int main(int argc, char** argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/mission_manager_test.cpp b/test/mission_manager_test.cpp new file mode 100644 index 0000000..2b1eeb3 --- /dev/null +++ b/test/mission_manager_test.cpp @@ -0,0 +1,405 @@ +#include + +#include +#include +#include + +#include + +#include "mission_test_utils.h" + +namespace +{ +using namespace mission_adapters; +using mission_test::makeMission; +using mission_test::makeMissions; + +TEST(MissionManagerTest, ManagerRunsMissionLifecycle) +{ + MissionManager manager; + + manager.submit(std::vector>{makeMission(1.0, 2.0)}); + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_TRUE(manager.hasMission()); + + auto mission = manager.nextMission(); + ASSERT_NE(mission, nullptr); + EXPECT_NE(mission->id, kInvalidMissionId) << "submit must return a MissionId"; + EXPECT_EQ(manager.state(), MissionState::RUNNING); + + EXPECT_TRUE(manager.onNavigationDone(mission->id)); + EXPECT_EQ(manager.state(), MissionState::COMPLETED); + EXPECT_FALSE(manager.hasMission()); +} + +TEST(MissionManagerTest, ManagerHandlesPauseResumeCancelAndFailure) +{ + MissionManager manager; + + manager.submit(std::vector>{makeMission(1.0, 1.0)}); + manager.pause(); + EXPECT_EQ(manager.state(), MissionState::PAUSED); + + manager.resume(); + EXPECT_EQ(manager.state(), MissionState::QUEUED); + + manager.cancel(); + EXPECT_EQ(manager.state(), MissionState::CANCELLED); + EXPECT_FALSE(manager.hasMission()); + + manager.submit(std::vector>{makeMission(2.0, 2.0)}); + const auto mission = manager.nextMission(); + ASSERT_NE(mission, nullptr); + EXPECT_TRUE(manager.onNavigationFailed(mission->id)); + EXPECT_EQ(manager.state(), MissionState::FAILED); + EXPECT_FALSE(manager.hasMission()); +} + +TEST(MissionManagerTest, NavigationResultIsIgnoredOutsideRunningState) +{ + MissionManager manager; + + manager.submit(std::vector>{makeMission(1.0, 1.0)}); + const MissionId queued_id = manager.nextMission()->id; + + manager.emergency(); + EXPECT_FALSE(manager.onNavigationDone(queued_id)); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); + + EXPECT_FALSE(manager.onNavigationFailed(queued_id)); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); + + manager.clearEmergency(); + manager.submit(std::vector>{makeMission(2.0, 2.0)}); + manager.cancel(); + EXPECT_FALSE(manager.onNavigationDone(queued_id)); + EXPECT_EQ(manager.state(), MissionState::CANCELLED); +} + +TEST(MissionManagerTest, EmergencyClearsAndBlocksNewMissionsUntilCleared) +{ + MissionManager manager; + + manager.submit(std::vector>{makeMission(1.0, 1.0)}); + manager.emergency(); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); + EXPECT_FALSE(manager.hasMission()); + + manager.submit(std::vector>{makeMission(2.0, 2.0)}); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); + EXPECT_FALSE(manager.hasMission()); + + manager.clearEmergency(); + manager.submit(std::vector>{makeMission(3.0, 3.0)}); + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_TRUE(manager.hasMission()); +} + +// ───────────────────────────────────────────────────────────────────────────── +// A1 — submit rỗng không được đụng vào hàng đợi đang chạy. +// +// Một order lỗi từ fleet manager (convert() trả rỗng) không phải là lệnh "huỷ mọi thứ". Nếu nó xoá +// queue thì chặng đang chạy mất chủ: robot vẫn đi tới goal cũ vì không ai bảo navigation dừng, còn +// mission layer thì kẹt ở RUNNING mà không còn mission nào để hoàn tất. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(MissionManagerTest, EmptySubmitLeavesRunningMissionUntouched) +{ + MissionManager manager; + + manager.submit(makeMissions(2)); + + const auto running = manager.nextMission(); + ASSERT_NE(running, nullptr); + ASSERT_EQ(manager.state(), MissionState::RUNNING); + + // Order lỗi -> convert() rỗng -> submit rỗng. + manager.submit({}); + + EXPECT_EQ(manager.state(), MissionState::RUNNING); + EXPECT_TRUE(manager.hasMission()) << "an empty submit wiped the running mission and the queue"; + EXPECT_EQ(manager.currentMissionId(), running->id) << "the running mission was replaced"; + EXPECT_EQ(manager.takePendingCancel(), kInvalidMissionId) + << "an empty submit must not ask navigation to stop"; + + // Chặng thứ hai vẫn phải còn trong hàng đợi. + EXPECT_TRUE(manager.onNavigationDone(running->id)); + EXPECT_EQ(manager.state(), MissionState::QUEUED); +} + +// ───────────────────────────────────────────────────────────────────────────── +// A2 — outcome phải mang MissionId. +// +// Không có ID thì kết quả của chặng cũ (đến trễ, sau khi order đã bị thay) được ghi nhận cho chặng +// mới: mission mới "hoàn thành" trong khi robot chưa hề chạy nó. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(MissionManagerTest, StaleOutcomeOfPreemptedMissionIsRejected) +{ + MissionManager manager; + + manager.submit(makeMissions(1)); + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + // Order mới thay order cũ trong lúc chặng đầu đang chạy. + manager.submit(makeMissions(1)); + const auto second = manager.nextMission(); + ASSERT_NE(second, nullptr); + ASSERT_NE(first->id, second->id); + + // Outcome của chặng ĐẦU về muộn, sau khi chặng hai đã bắt đầu. + EXPECT_FALSE(manager.onNavigationDone(first->id)); + EXPECT_EQ(manager.state(), MissionState::RUNNING) << "a late outcome completed the wrong " + "mission"; + EXPECT_EQ(manager.currentMissionId(), second->id); + + // Outcome đúng của chặng hai vẫn được nhận bình thường. + EXPECT_TRUE(manager.onNavigationDone(second->id)); + EXPECT_EQ(manager.state(), MissionState::COMPLETED); +} + +TEST(MissionManagerTest, MissionIdsAreUniqueAndMonotonic) +{ + MissionManager manager; + + manager.submit(makeMissions(3)); + + MissionId previous = kInvalidMissionId; + for (int i = 0; i < 3; ++i) + { + const auto mission = manager.nextMission(); + ASSERT_NE(mission, nullptr) << "leg number " << i; + EXPECT_GT(mission->id, previous); + previous = mission->id; + + ASSERT_TRUE(manager.onNavigationDone(mission->id)); + } + + EXPECT_EQ(manager.state(), MissionState::COMPLETED); +} + +TEST(MissionManagerTest, RunningMissionIsDispatchedOnlyOnce) +{ + MissionManager manager; + + manager.submit(makeMissions(2)); + + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + // M6: trong lúc RUNNING không có mission mới nào để giao. + EXPECT_EQ(manager.nextMission(), nullptr); + EXPECT_EQ(manager.nextMission(), nullptr); + + ASSERT_TRUE(manager.onNavigationDone(first->id)); + const auto second = manager.nextMission(); + ASSERT_NE(second, nullptr); + EXPECT_NE(second->id, first->id); +} + +// ───────────────────────────────────────────────────────────────────────────── +// A3 — mission layer phải có đường bảo navigation dừng. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(MissionManagerTest, CancelRequestsNavigationStopOfRunningMission) +{ + MissionManager manager; + + manager.submit(makeMissions(2)); + const auto running = manager.nextMission(); + ASSERT_NE(running, nullptr); + + manager.cancel(); + + EXPECT_EQ(manager.takePendingCancel(), running->id); + EXPECT_EQ(manager.takePendingCancel(), kInvalidMissionId) << "the stop request was taken twice"; + EXPECT_EQ(manager.state(), MissionState::CANCELLED); + EXPECT_FALSE(manager.hasMission()); +} + +TEST(MissionManagerTest, EmergencyRequestsNavigationStopOfRunningMission) +{ + MissionManager manager; + + manager.submit(makeMissions(1)); + const auto running = manager.nextMission(); + ASSERT_NE(running, nullptr); + + manager.emergency(); + + EXPECT_EQ(manager.takePendingCancel(), running->id); + EXPECT_EQ(manager.state(), MissionState::EMERGENCY); +} + +TEST(MissionManagerTest, PreemptRequestsNavigationStopOfReplacedMission) +{ + MissionManager manager; + + manager.submit(makeMissions(1)); + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + manager.submit(makeMissions(1)); + + EXPECT_EQ(manager.takePendingCancel(), first->id) + << "a new order replaced the old one without telling navigation to stop the old leg"; + EXPECT_EQ(manager.state(), MissionState::QUEUED); +} + +TEST(MissionManagerTest, SubmitWhilePausedKeepsRobotStopped) +{ + MissionManager manager; + + manager.submit(makeMissions(1)); + manager.pause(); + + manager.submit(makeMissions(1)); + + EXPECT_EQ(manager.state(), MissionState::PAUSED) << "a new order started running on its own " + "while PAUSED"; + EXPECT_EQ(manager.nextMission(), nullptr); + + manager.resume(); + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_NE(manager.nextMission(), nullptr); +} + +// ───────────────────────────────────────────────────────────────────────────── +// M8 — một chặng hỏng thì phần còn lại của hàng đợi đi đâu. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(MissionManagerTest, FailureClearsRemainingQueueByDefault) +{ + MissionManager manager; // clear_queue_on_failure mặc định = true + + manager.submit(makeMissions(3)); + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + ASSERT_TRUE(manager.onNavigationFailed(first->id)); + + // Tuyến tuần tự: không tới được chặng 1 thì chặng 2 nằm sau nó cũng không còn ý nghĩa. + EXPECT_EQ(manager.state(), MissionState::FAILED); + EXPECT_FALSE(manager.hasMission()); +} + +TEST(MissionManagerTest, FailureKeepsQueueWhenConfigured) +{ + MissionConfig config; + config.clear_queue_on_failure = false; // các mission trong hàng đợi độc lập với nhau + MissionManager manager(config); + + manager.submit(makeMissions(3)); + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + ASSERT_TRUE(manager.onNavigationFailed(first->id)); + + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_TRUE(manager.hasMission()); + + const auto second = manager.nextMission(); + ASSERT_NE(second, nullptr); + EXPECT_NE(second->id, first->id); +} + +TEST(MissionManagerTest, LastMissionFailureEndsInFailedEvenWhenQueueKept) +{ + MissionConfig config; + config.clear_queue_on_failure = false; + MissionManager manager(config); + + manager.submit(makeMissions(1)); + const auto only = manager.nextMission(); + ASSERT_NE(only, nullptr); + + ASSERT_TRUE(manager.onNavigationFailed(only->id)); + EXPECT_EQ(manager.state(), MissionState::FAILED); +} + +// ───────────────────────────────────────────────────────────────────────────── +// M7 — mission_timeout là lưới cuối khi navigation không bao giờ báo kết quả về. +// ───────────────────────────────────────────────────────────────────────────── + +TEST(MissionManagerTest, TimeoutDisabledByDefaultLetsMissionRunOn) +{ + MissionManager manager; + + manager.submit(makeMissions(1)); + ASSERT_NE(manager.nextMission(), nullptr); + + // waitForWork phải chặn (không có việc); wakeUp là đường ra duy nhất. + std::thread waker([&manager] { + std::this_thread::sleep_for(std::chrono::milliseconds(80)); + manager.wakeUp(); + }); + + EXPECT_FALSE(manager.waitForWork()); + waker.join(); + + EXPECT_EQ(manager.state(), MissionState::RUNNING) << "the mission was cancelled although the " + "timeout is off"; +} + +TEST(MissionManagerTest, TimeoutFailsMissionAndRequestsNavigationStop) +{ + MissionConfig config; + config.mission_timeout = 0.15; // [s] + MissionManager manager(config); + + manager.submit(makeMissions(1)); + const auto running = manager.nextMission(); + ASSERT_NE(running, nullptr); + + const auto started = std::chrono::steady_clock::now(); + + // waitForWork tự thức dậy đúng lúc hết hạn và biến quá hạn thành việc cần làm. + ASSERT_TRUE(manager.waitForWork()); + + const double elapsed = + std::chrono::duration(std::chrono::steady_clock::now() - started).count(); + EXPECT_GE(elapsed, 0.15) << "the leg was cancelled before it expired"; + + EXPECT_EQ(manager.state(), MissionState::FAILED); + EXPECT_EQ(manager.takePendingCancel(), running->id) + << "it expired but navigation was not told to stop — the robot keeps driving to the old " + "goal"; +} + +TEST(MissionManagerTest, TimeoutIsMeasuredPerMissionNotPerQueue) +{ + MissionConfig config; + config.mission_timeout = 0.2; // [s] + config.clear_queue_on_failure = false; + MissionManager manager(config); + + manager.submit(makeMissions(2)); + + const auto first = manager.nextMission(); + ASSERT_NE(first, nullptr); + + // Chặng đầu xong sớm; mốc thời gian phải được gieo lại cho chặng hai. + std::this_thread::sleep_for(std::chrono::milliseconds(120)); + ASSERT_TRUE(manager.onNavigationDone(first->id)); + + const auto second = manager.nextMission(); + ASSERT_NE(second, nullptr); + + // Nếu mốc không được gieo lại, chặng hai sẽ hết hạn gần như tức thì. + const auto started = std::chrono::steady_clock::now(); + ASSERT_TRUE(manager.waitForWork()); + const double elapsed = + std::chrono::duration(std::chrono::steady_clock::now() - started).count(); + + EXPECT_GE(elapsed, 0.19) << "the second leg inherited the clock of the first one"; + EXPECT_EQ(manager.takePendingCancel(), second->id); +} + +} // namespace + +int main(int argc, char** argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/mission_test_utils.h b/test/mission_test_utils.h new file mode 100644 index 0000000..4b23020 --- /dev/null +++ b/test/mission_test_utils.h @@ -0,0 +1,177 @@ +/********************************************************************* + * + * Helper dùng chung cho test của gói: dựng goal/order giả và chờ trạng thái. + * + *********************************************************************/ +#ifndef MISSION_ADAPTERS_TEST_MISSION_TEST_UTILS_H_ +#define MISSION_ADAPTERS_TEST_MISSION_TEST_UTILS_H_ + +#include +#include +#include +#include +#include +#include + +#include + +namespace mission_test +{ + +/** + * @brief NavigationClient giả: ghi lại mọi lệnh xuống navigation để test kiểm thứ tự và số lần. + * + * Không mô phỏng chuyển động — test tự quyết định khi nào outcome quay về. + */ +class FakeNavigationClient : public mission_adapters::NavigationClient +{ +public: + bool dispatch(const std::shared_ptr& mission) override + { + std::lock_guard lock(mutex_); + dispatched_.push_back(mission); + return accept_dispatch_; + } + + void cancelActive(mission_adapters::MissionId id) override + { + std::lock_guard lock(mutex_); + cancelled_.push_back(id); + } + + /// Ép navigation từ chối mọi mission tiếp theo. + void setAcceptDispatch(bool accept) + { + std::lock_guard lock(mutex_); + accept_dispatch_ = accept; + } + + std::vector> dispatched() const + { + std::lock_guard lock(mutex_); + return dispatched_; + } + + std::vector cancelled() const + { + std::lock_guard lock(mutex_); + return cancelled_; + } + + size_t dispatchCount() const + { + std::lock_guard lock(mutex_); + return dispatched_.size(); + } + +private: + mutable std::mutex mutex_; + std::vector> dispatched_; + std::vector cancelled_; + bool accept_dispatch_ = true; +}; + + +/// @brief Goal hợp lệ: quaternion đã chuẩn hoá (w=1) để qua được validate() của adapter. +inline robot_geometry_msgs::PoseStamped makeGoal(double x, double y) +{ + robot_geometry_msgs::PoseStamped goal; + goal.header.frame_id = "map"; + goal.pose.position.x = x; + goal.pose.position.y = y; + goal.pose.orientation.w = 1.0; + return goal; +} + +/// @brief Mission dựng thẳng, không qua adapter — dùng cho test của MissionManager/Executor. +inline std::shared_ptr makeMission(double x, double y) +{ + auto mission = std::make_shared(); + mission->type = mission_adapters::MissionType::SIMPLE_GOAL; + mission->goal = makeGoal(x, y); + return mission; +} + +/// @brief n mission độc lập, goal khác nhau. +inline std::vector> makeMissions(int count) +{ + std::vector> missions; + missions.reserve(static_cast(count)); + for (int i = 0; i < count; ++i) + missions.push_back(makeMission(i, i)); + + return missions; +} + +inline robot_protocol_msgs::Action makeAction(const std::string& id) +{ + robot_protocol_msgs::Action action; + action.actionId = id; + action.actionType = "TEST"; + return action; +} + +/// @brief Node đã released (base). Order thật của fleet manager luôn có ít nhất phần base. +inline robot_protocol_msgs::Node makeNode(int sequence_id, bool add_action = false) +{ + robot_protocol_msgs::Node node; + node.sequenceId = sequence_id; + node.nodeId = "node_" + std::to_string(sequence_id); + node.released = true; + node.nodePosition.x = sequence_id; + node.nodePosition.y = sequence_id; + + if (add_action) + node.actions.push_back(makeAction("node_action_" + std::to_string(sequence_id))); + + return node; +} + +inline robot_protocol_msgs::Edge makeEdge(int sequence_id, bool add_action = false) +{ + robot_protocol_msgs::Edge edge; + edge.sequenceId = sequence_id; + edge.edgeId = "edge_" + std::to_string(sequence_id); + edge.released = true; + + if (add_action) + edge.actions.push_back(makeAction("edge_action_" + std::to_string(sequence_id))); + + return edge; +} + +inline robot_protocol_msgs::Order makeOrder(int node_count, const std::string& order_id = "order_1", + std::uint32_t order_update_id = 0) +{ + robot_protocol_msgs::Order order; + order.orderId = order_id; + order.orderUpdateId = order_update_id; + + for (int i = 0; i < node_count; ++i) + order.nodes.push_back(makeNode(i)); + + for (int i = 0; i < node_count - 1; ++i) + order.edges.push_back(makeEdge(i)); + + return order; +} + +inline bool waitForState(mission_adapters::MissionManager& manager, + mission_adapters::MissionState expected, + std::chrono::milliseconds timeout) +{ + const auto deadline = std::chrono::steady_clock::now() + timeout; + while (std::chrono::steady_clock::now() < deadline) + { + if (manager.state() == expected) + return true; + + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } + + return manager.state() == expected; +} + +} // namespace mission_test + +#endif // MISSION_ADAPTERS_TEST_MISSION_TEST_UTILS_H_ diff --git a/test/plugin_registry_test.cpp b/test/plugin_registry_test.cpp new file mode 100644 index 0000000..3520f0f --- /dev/null +++ b/test/plugin_registry_test.cpp @@ -0,0 +1,287 @@ +/********************************************************************* + * + * Kiểm đường nạp plugin thật: YAML -> library_path -> Boost.DLL -> schema. + * + * Test này cần PNKX_NAV_CORE_CONFIG_DIR trỏ vào test/config của gói: + * + * PNKX_NAV_CORE_CONFIG_DIR=src/AMR_T800/Test/mission_adapters/test/config \ + * ./devel/lib/mission_adapters/plugin_registry_test + * + *********************************************************************/ +#include + +#include +#include +#include +#include + +#include + +#include +#include + +#include "mission_test_utils.h" + +namespace +{ +using namespace mission_adapters; + +/** + * @brief Nguồn mission thứ ba, viết hoàn toàn trong test. + * + * Sự tồn tại của nó là bài kiểm tra thật cho tính plugin: thêm một loại nguồn mới mà không sửa file + * nào trong `src/` của gói. + */ +class DummySourceAdapter : public MissionSourceAdapter +{ +public: + static constexpr const char* kSchema = "test.dummy"; + + bool configure(const std::string& name, robot::NodeHandle& nh) override + { + (void)nh; + name_ = name; + return true; + } + + std::string schema() const override { return kSchema; } + + bool validate(const MissionRequest& request, std::string& reason) const override + { + if (request.raw_payload.empty()) + { + reason = "raw_payload is empty"; + return false; + } + return true; + } + + ConversionResult convert(const MissionRequest& request) override + { + (void)request; + auto mission = std::make_shared(); + mission->type = MissionType::SIMPLE_GOAL; + + ConversionResult result; + result.missions.push_back(mission); + return result; + } + +private: + std::string name_; +}; + +class PluginRegistryTest : public ::testing::Test +{ +protected: + robot::NodeHandle nh; +}; + +// ── Đường nạp bình thường ──────────────────────────────────────────────────────────────────────── + +TEST_F(PluginRegistryTest, LoadsBothSourcesFromConfig) +{ + PluginRegistry registry; + + ASSERT_TRUE(registry.loadFromConfig(nh)) + << "could not load the plugin — check PNKX_NAV_CORE_CONFIG_DIR and devel/lib"; + + EXPECT_EQ(registry.size(), 2u); + EXPECT_NE(registry.find(schema::kPoseStamped), nullptr); + EXPECT_NE(registry.find(schema::kVda5050Order), nullptr); + EXPECT_EQ(registry.find("does.not.exist"), nullptr); +} + +TEST_F(PluginRegistryTest, LoadedAdapterConvertsRealPayload) +{ + PluginRegistry registry; + ASSERT_TRUE(registry.loadFromConfig(nh)); + + auto* adapter = registry.find(schema::kPoseStamped); + ASSERT_NE(adapter, nullptr); + + const auto request = MissionRequest::fromPose(mission_test::makeGoal(3.0, 4.0)); + + std::string reason; + ASSERT_TRUE(adapter->validate(request, reason)) << reason; + + const auto result = adapter->convert(request); + ASSERT_EQ(result.missions.size(), 1u); + EXPECT_DOUBLE_EQ(result.missions.front()->goal.pose.position.x, 3.0); +} + +// ── Các cách hỏng, đều phải báo lỗi rõ ràng chứ không crash ────────────────────────────────────── + +TEST_F(PluginRegistryTest, MissingLibraryPathKeyFailsCleanly) +{ + PluginRegistry registry; + + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_missing_library_path")); + EXPECT_EQ(registry.size(), 0u); +} + +TEST_F(PluginRegistryTest, MissingLibraryFileFailsCleanly) +{ + PluginRegistry registry; + + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_missing_library_file")); + EXPECT_EQ(registry.size(), 0u); +} + +TEST_F(PluginRegistryTest, WrongSymbolNameFailsCleanly) +{ + PluginRegistry registry; + + // Thư viện có thật, symbol thì không: import_alias ném system_error, registry phải nuốt và báo. + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_wrong_symbol")); + EXPECT_EQ(registry.size(), 0u); +} + +TEST_F(PluginRegistryTest, DuplicateSchemaIsRejected) +{ + PluginRegistry registry; + + // Hai instance cùng khai schema "geometry.pose_stamped": cái thứ hai bị từ chối thay vì ghi đè + // im lặng, vì định tuyến khi đó sẽ phụ thuộc thứ tự nạp. + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_duplicate_schema")); + EXPECT_EQ(registry.size(), 1u); +} + +TEST_F(PluginRegistryTest, EntryWithoutTypeFailsCleanly) +{ + PluginRegistry registry; + + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_entry_without_type")); + EXPECT_EQ(registry.size(), 0u); +} + +TEST_F(PluginRegistryTest, MissingSourceListFailsCleanly) +{ + PluginRegistry registry; + + EXPECT_FALSE(registry.loadFromConfig(nh, "registry_test_empty")); + EXPECT_EQ(registry.size(), 0u); +} + +// ── Đăng ký trực tiếp (nguồn biên dịch thẳng vào host, hoặc test) ─────────────────────────────── + +TEST_F(PluginRegistryTest, RejectsNullAndDuplicateManualRegistration) +{ + PluginRegistry registry; + + EXPECT_FALSE(registry.registerAdapter(nullptr)); + + auto first = std::make_shared(); + EXPECT_TRUE(registry.registerAdapter(first)); + + auto second = std::make_shared(); + EXPECT_FALSE(registry.registerAdapter(second)) << "two adapters with the same schema were both " + "accepted"; + + EXPECT_EQ(registry.size(), 1u); +} + +/** + * Nguồn thứ ba đi hết đường: đăng ký -> EventProcessor định tuyến theo schema -> mission vào hàng + * đợi. Không có dòng nào trong `src/` của gói biết tới DummySourceAdapter. + */ +TEST_F(PluginRegistryTest, ThirdPartyAdapterFlowsThroughCoreUnchanged) +{ + PluginRegistry registry; + ASSERT_TRUE(registry.registerAdapter(std::make_shared())); + + MissionManager manager; + EventProcessor processor(manager, registry); + processor.start(); + + processor.submitRequest( + MissionRequest::fromRaw(DummySourceAdapter::kSchema, "{\"job\":\"pick\"}")); + + EXPECT_TRUE(mission_test::waitForState(manager, MissionState::QUEUED, + std::chrono::milliseconds(500))); + + // Payload không hợp lệ -> validate() chặn -> hàng đợi không đổi (A1). + processor.submitRequest(MissionRequest::fromRaw(DummySourceAdapter::kSchema, "")); + std::this_thread::sleep_for(std::chrono::milliseconds(80)); + + EXPECT_EQ(manager.state(), MissionState::QUEUED); + EXPECT_TRUE(manager.hasMission()); + + processor.stop(); +} + +/** + * @brief Plugin hỏng: sinh mission không goal và cũng không action. + * + * Core phải chặn, vì chặng như vậy không có việc gì để làm và sẽ không bao giờ báo kết quả về — + * mission layer kẹt RUNNING vĩnh viễn. + */ +class EmptyMissionAdapter : public MissionSourceAdapter +{ +public: + static constexpr const char* kSchema = "test.empty_mission"; + + bool configure(const std::string&, robot::NodeHandle&) override { return true; } + std::string schema() const override { return kSchema; } + bool validate(const MissionRequest&, std::string&) const override { return true; } + + ConversionResult convert(const MissionRequest&) override + { + auto mission = std::make_shared(); + mission->has_goal = false; // và actions rỗng + + ConversionResult result; + result.missions.push_back(mission); + return result; + } +}; + +TEST_F(PluginRegistryTest, MissionWithoutGoalAndWithoutActionIsRejected) +{ + PluginRegistry registry; + ASSERT_TRUE(registry.registerAdapter(std::make_shared())); + + MissionManager manager; + EventProcessor processor(manager, registry); + + processor.start(); + processor.submitRequest(MissionRequest::fromRaw(EmptyMissionAdapter::kSchema, "payload")); + std::this_thread::sleep_for(std::chrono::milliseconds(80)); + processor.stop(); + + EXPECT_EQ(manager.state(), MissionState::IDLE); + EXPECT_FALSE(manager.hasMission()); +} + +TEST_F(PluginRegistryTest, UnknownSchemaIsIgnoredNotCrashing) +{ + PluginRegistry registry; + MissionManager manager; + EventProcessor processor(manager, registry); + + processor.start(); + processor.submitRequest(MissionRequest::fromRaw("nobody.handles.this", "payload")); + std::this_thread::sleep_for(std::chrono::milliseconds(80)); + processor.stop(); + + EXPECT_EQ(manager.state(), MissionState::IDLE); + EXPECT_FALSE(manager.hasMission()); +} + +} // namespace + +int main(int argc, char** argv) +{ + // Test tự trỏ vào cây config và thư mục .so của chính nó, để chạy được cả qua ctest lẫn khi gọi + // thẳng binary (đúng cách test_costmap đang làm). overwrite = 0 nên biến môi trường do người + // chạy đặt vẫn thắng. +#ifdef MISSION_ADAPTERS_TEST_CONFIG_DIR + setenv("PNKX_NAV_CORE_CONFIG_DIR", MISSION_ADAPTERS_TEST_CONFIG_DIR, 0); +#endif +#ifdef MISSION_ADAPTERS_TEST_LIBRARY_DIR + setenv("PNKX_NAV_CORE_LIBRARY_PATH", MISSION_ADAPTERS_TEST_LIBRARY_DIR, 0); +#endif + + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}