diff --git a/CHANGELOG.md b/CHANGELOG.md index 75e1dac..4896718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Change log ========== +1.2.0 (2024-08-09) +================== + +* Updated `package.xml` and `CMakeLists.txt` so the same repository can be used for both ROS1 and ROS2 + 1.1.0 (2023-11-21) ================== diff --git a/CMakeLists.txt b/CMakeLists.txt index b948323..9c1522d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,211 +1,61 @@ -cmake_minimum_required(VERSION 3.1) -project(crtk_msgs VERSION 1.1.0) - -## Compile as C++11, supported in ROS Kinetic and newer -# add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - roscpp - rospy - message_generation - std_msgs - geometry_msgs -) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -add_message_files( - FILES - OperatingState.msg - StringStamped.msg - CartesianImpedanceHalfPlaneGains.msg - CartesianImpedance.msg -) - -## Generate services in the 'srv' folder -add_service_files( - FILES - TriggerOperatingState.srv - QueryForwardKinematics.srv - QueryInverseKinematics.srv -) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -generate_messages( - DEPENDENCIES - std_msgs - geometry_msgs - crtk_msgs -) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( -# INCLUDE_DIRS include -# LIBRARIES crtk_state_test - CATKIN_DEPENDS message_runtime std_msgs -# DEPENDS system_lib -) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -# include_directories( -# include -# ${catkin_INCLUDE_DIRS} -# ) - -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/crtk_msgs.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/crtk_msgs_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# install(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark executables and/or libraries for installation -# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_crtk_msgs.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) - - -# install(DIRECTORY include/crtk_msgs/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# PATTERN "*.h") +cmake_minimum_required(VERSION 3.10) +project(crtk_msgs VERSION 1.2.0) + +# first test for ROS1 +set (ROS1_depends std_msgs geometry_msgs) + +find_package (catkin QUIET + COMPONENTS message_generation ${ROS1_depends}) + +# ROS 1 +if (catkin_FOUND) + + ## Generate messages in the 'msg' folder + add_message_files (FILES + OperatingState.msg + StringStamped.msg + CartesianImpedanceHalfPlaneGains.msg + CartesianImpedance.msg + ) + + ## Generate services in the 'srv' folder + add_service_files ( + FILES + TriggerOperatingState.srv + QueryForwardKinematics.srv + QueryInverseKinematics.srv + ) + + ## Generate added messages and services with any dependencies listed here + generate_messages (DEPENDENCIES ${ROS1_depends}) + + catkin_package ( + CATKIN_DEPENDS message_runtime ${ROS1_depends} + ) + +else (catkin_FOUND) + + # look for ROS2 + find_package (ament_cmake QUIET) + if (ament_cmake_FOUND) + set (ROS2_depends ament_cmake rclcpp std_msgs geometry_msgs builtin_interfaces rosidl_default_generators) + foreach (_dep ${ROS2_depends}) + find_package (${_dep} REQUIRED) + endforeach () + + rosidl_generate_interfaces (crtk_msgs + msg/OperatingState.msg + msg/StringStamped.msg + msg/CartesianImpedanceHalfPlaneGains.msg + msg/CartesianImpedance.msg + srv/TriggerOperatingState.srv + srv/QueryForwardKinematics.srv + srv/QueryInverseKinematics.srv + DEPENDENCIES builtin_interfaces std_msgs geometry_msgs + ) + + ament_package () + + endif (ament_cmake_FOUND) + +endif (catkin_FOUND) diff --git a/msg/CartesianImpedance.msg b/msg/CartesianImpedance.msg index 3f504e4..d129422 100644 --- a/msg/CartesianImpedance.msg +++ b/msg/CartesianImpedance.msg @@ -1,4 +1,4 @@ -Header header +std_msgs/Header header # vf pos & ori geometry_msgs/Quaternion force_orientation diff --git a/msg/OperatingState.msg b/msg/OperatingState.msg index 5e42a61..73d21f9 100644 --- a/msg/OperatingState.msg +++ b/msg/OperatingState.msg @@ -3,7 +3,7 @@ # # Standard states include DISABLED, ENABLED, PAUSED and FAULT # -Header header -string state -bool is_homed -bool is_busy +std_msgs/Header header +string state +bool is_homed +bool is_busy diff --git a/msg/StringStamped.msg b/msg/StringStamped.msg index 2c04349..c97cbe3 100644 --- a/msg/StringStamped.msg +++ b/msg/StringStamped.msg @@ -1,2 +1,2 @@ -Header header -string string +std_msgs/Header header +string string diff --git a/package.xml b/package.xml index d363789..a09e8df 100644 --- a/package.xml +++ b/package.xml @@ -1,88 +1,34 @@ - + crtk_msgs - 1.1.0 + 1.2.0 The crtk_msgs package - - - - - Andy Lewis - - - - - MIT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin - message_generation - std_msgs - geometry_msgs - std_msgs - geometry_msgs - message_runtime - - - + Andy Lewis + Anton Deguet + https://crtk-robotics.readthedocs.io/en/latest/ + + catkin + message_generation + std_msgs + geometry_msgs + std_msgs + geometry_msgs + message_runtime + + ament_cmake + builtin_interfaces + rosidl_default_generators + builtin_interfaces + rosidl_default_runtime + rclcpp + std_msgs + geometry_msgs + + rosidl_interface_packages + - - + catkin + ament_cmake