diff --git a/opencat/CMakeLists.txt b/opencat/CMakeLists.txt index 8388830..6323a74 100644 --- a/opencat/CMakeLists.txt +++ b/opencat/CMakeLists.txt @@ -16,28 +16,36 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) endif() - -# find dependencies +# Find dependencies find_package(ament_cmake REQUIRED) -# uncomment the following section in order to fill in -# further dependencies manually. -# find_package( REQUIRED) -# service files find_package(rosidl_default_generators REQUIRED) +find_package(type_description_interfaces REQUIRED) +find_package(opencat_msgs REQUIRED) +find_package(rclcpp REQUIRED) + +# Create a library or executable +add_library(${PROJECT_NAME} src/opencat/opencat.cpp) -rosidl_generate_interfaces(${PROJECT_NAME}_srv - "srv/BaseTask.srv" +ament_target_dependencies(${PROJECT_NAME} + type_description_interfaces ) +# Link libraries +target_link_libraries(${PROJECT_NAME} + rclcpp + # type_description_interfaces +) + +# Include directories include_directories(include) -add_library(${PROJECT_NAME} src/opencat/opencat.cpp) -rosidl_target_interfaces(${PROJECT_NAME} - ${PROJECT_NAME}_srv "rosidl_typesupport_cpp") +include_directories(${rclcpp_INCLUDE_DIRS}) +include_directories(${opencat_msgs_INCLUDE_DIRS}) +# Export the targets ament_export_targets(${PROJECT_NAME} HAS_LIBRARY_TARGET) ament_export_dependencies(rosidl_default_generators) -# export lib +# Install the library and headers install( DIRECTORY include/ DESTINATION include @@ -52,14 +60,9 @@ install( INCLUDES DESTINATION include ) +# Testing configuration if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) - # the following line skips the linter which checks for copyrights - # uncomment the line when a copyright and license is not present in all source files - #set(ament_cmake_copyright_FOUND TRUE) - # the following line skips cpplint (only works in a git repo) - # uncomment the line when this package is not in a git repo - #set(ament_cmake_cpplint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() diff --git a/opencat/include/opencat/opencat.hpp b/opencat/include/opencat/opencat.hpp index 74472fe..340f03c 100644 --- a/opencat/include/opencat/opencat.hpp +++ b/opencat/include/opencat/opencat.hpp @@ -6,7 +6,8 @@ **/ #ifndef OPENCAT_H_ #define OPENCAT_H_ -#include "opencat/srv/base_task.hpp" + +#include "opencat_msgs/srv/base_task.hpp" #include "rclcpp/rclcpp.hpp" #include #include @@ -14,7 +15,7 @@ using std::vector; namespace OpenCat { -using namespace opencat::srv; +using namespace opencat_msgs::srv; /** * @brief list all commands available **/ diff --git a/opencat/package.xml b/opencat/package.xml index 9708e49..85a08bc 100644 --- a/opencat/package.xml +++ b/opencat/package.xml @@ -7,6 +7,9 @@ C.C MIT + rclcpp + opencat_msgs + ament_cmake ament_lint_auto diff --git a/opencat_examples/CMakeLists.txt b/opencat_examples/CMakeLists.txt index 95b864a..0d8e70a 100644 --- a/opencat_examples/CMakeLists.txt +++ b/opencat_examples/CMakeLists.txt @@ -22,17 +22,30 @@ find_package(ament_cmake REQUIRED) # uncomment the following section in order to fill in # further dependencies manually. # find_package( REQUIRED) -find_package(opencat_serial REQUIRED) find_package(rclcpp REQUIRED) +find_package(opencat REQUIRED) +find_package(opencat_msgs REQUIRED) +find_package(opencat_serial REQUIRED) +find_package(opencat_server REQUIRED) + +# Add linker directory explicitly +link_directories("/opt/ros/jazzy/lib") add_executable(serial_example src/serial_example.cpp) ament_target_dependencies(serial_example - opencat_serial) + rclcpp + opencat + opencat_msgs + opencat_serial + opencat_server) add_executable(client_example src/client_example.cpp) ament_target_dependencies(client_example + rclcpp + opencat + opencat_msgs opencat_serial - rclcpp) + opencat_server) install( TARGETS serial_example client_example diff --git a/opencat_examples/package.xml b/opencat_examples/package.xml index caf0cd5..217083a 100644 --- a/opencat_examples/package.xml +++ b/opencat_examples/package.xml @@ -7,8 +7,11 @@ C.C MIT - opencat_serial + rclcpp opencat + opencat_msgs + opencat_serial + opencat_server ament_cmake ament_lint_auto diff --git a/opencat_examples/src/client_example.cpp b/opencat_examples/src/client_example.cpp index 7fe5510..6b41c68 100644 --- a/opencat_examples/src/client_example.cpp +++ b/opencat_examples/src/client_example.cpp @@ -1,8 +1,8 @@ #include "opencat/opencat.hpp" -#include "opencat/srv/base_task.hpp" +#include "opencat_msgs/srv/base_task.hpp" #include "rclcpp/rclcpp.hpp" -using namespace opencat::srv; +using namespace opencat_msgs::srv; const vector pee{ -4, 0, 10, 1, 2, 3, 3, 30, 20, 0, 0, 15, -10, 60, -10, 40, 40, 90, 45, 10, 60, 70, 45, 6, 0, 0, 0, 45, 20, 0, diff --git a/opencat_msgs/CMakeLists.txt b/opencat_msgs/CMakeLists.txt new file mode 100644 index 0000000..0511ec7 --- /dev/null +++ b/opencat_msgs/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.5) +project(opencat_msgs) + +# Find dependencies for building the package +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) +find_package(std_msgs REQUIRED) + +# Generate the messages and services from the .srv files +rosidl_generate_interfaces(${PROJECT_NAME} + "srv/BaseTask.srv" # Define the BaseTask service + DEPENDENCIES std_msgs # List any additional dependencies, like std_msgs +) + +# Export dependencies to other packages that depend on this one +ament_export_dependencies(rosidl_default_runtime) + +# Install the service definitions +install(DIRECTORY srv + DESTINATION share/${PROJECT_NAME}/srv +) + +# Declare this as an ament package +ament_package() diff --git a/opencat_msgs/package.xml b/opencat_msgs/package.xml new file mode 100644 index 0000000..fe466a8 --- /dev/null +++ b/opencat_msgs/package.xml @@ -0,0 +1,26 @@ + + + + opencat_msgs + 0.0.1 + Messages and services for OpenCat control. + C.C + MIT + + ament_cmake + rosidl_default_generators + + rosidl_default_runtime + + std_msgs + type_description_interfaces + + ament_lint_auto + ament_lint_common + + rosidl_interface_packages + + + ament_cmake + + diff --git a/opencat/srv/BaseTask.srv b/opencat_msgs/srv/BaseTask.srv similarity index 100% rename from opencat/srv/BaseTask.srv rename to opencat_msgs/srv/BaseTask.srv diff --git a/opencat_serial/CMakeLists.txt b/opencat_serial/CMakeLists.txt index 7c77a91..ec46a68 100644 --- a/opencat_serial/CMakeLists.txt +++ b/opencat_serial/CMakeLists.txt @@ -20,8 +20,11 @@ endif() find_package(ament_cmake REQUIRED) # uncomment the following section in order to fill in # further dependencies manually. +find_package(type_description_interfaces REQUIRED) +find_package(rclcpp REQUIRED) find_package(serial REQUIRED) find_package(opencat REQUIRED) +find_package(opencat_msgs REQUIRED) include_directories(include) add_library( @@ -29,8 +32,11 @@ add_library( src/${PROJECT_NAME}/${PROJECT_NAME}.cpp) ament_target_dependencies(${PROJECT_NAME} + rclcpp opencat - serial) + opencat_msgs + serial + type_description_interfaces) ament_export_targets(${PROJECT_NAME} HAS_LIBRARY_TARGET) ament_export_dependencies(opencat serial) diff --git a/opencat_serial/package.xml b/opencat_serial/package.xml index 2592dea..d76d422 100644 --- a/opencat_serial/package.xml +++ b/opencat_serial/package.xml @@ -9,7 +9,10 @@ ament_cmake + rclcpp + type_description_interfaces opencat + opencat_msgs serial ament_lint_auto ament_lint_common diff --git a/opencat_server/CMakeLists.txt b/opencat_server/CMakeLists.txt index ce8942b..3835d24 100644 --- a/opencat_server/CMakeLists.txt +++ b/opencat_server/CMakeLists.txt @@ -21,8 +21,12 @@ find_package(ament_cmake REQUIRED) # uncomment the following section in order to fill in # further dependencies manually. # find_package( REQUIRED) -find_package(opencat_serial REQUIRED) find_package(rclcpp REQUIRED) +find_package(opencat_msgs REQUIRED) +find_package(opencat_serial REQUIRED) + +# Add linker directory explicitly +link_directories("/opt/ros/jazzy/lib") include_directories(include) add_executable( @@ -31,10 +35,13 @@ add_executable( src/opencat_server/opencat_server.cpp) ament_target_dependencies( opencat_service_node - opencat_serial rclcpp + opencat_msgs + opencat_serial ) +ament_export_dependencies(opencat_msgs) + install( TARGETS opencat_service_node DESTINATION lib/${PROJECT_NAME} diff --git a/opencat_server/include/opencat_server/opencat_server.hpp b/opencat_server/include/opencat_server/opencat_server.hpp index 7b853da..8c054e0 100644 --- a/opencat_server/include/opencat_server/opencat_server.hpp +++ b/opencat_server/include/opencat_server/opencat_server.hpp @@ -1,11 +1,11 @@ #ifndef OPENCAT_CONTROL_H_ #define OPENCAT_CONTROL_H_ -#include "opencat/srv/base_task.hpp" +#include "opencat_msgs/srv/base_task.hpp" #include "opencat_serial/opencat_serial.hpp" -#include +#include #include #include -using namespace opencat::srv; +using namespace opencat_msgs::srv; using std::vector; namespace OpenCat diff --git a/opencat_server/package.xml b/opencat_server/package.xml index dacffec..994e3e8 100644 --- a/opencat_server/package.xml +++ b/opencat_server/package.xml @@ -7,6 +7,8 @@ C.C MIT + rclcpp + opencat_msgs opencat_serial ament_cmake