runtime/rbs_skill_servers/CMakeLists.txt

159 lines
4.9 KiB
Text
Raw Normal View History

2023-02-03 07:04:12 +00:00
cmake_minimum_required(VERSION 3.8)
project(rbs_skill_servers)
2022-01-31 21:28:39 +04:00
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++17
2022-01-31 21:28:39 +04:00
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
2022-01-31 21:28:39 +04:00
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(moveit_core REQUIRED)
find_package(moveit_ros_planning REQUIRED)
find_package(moveit_ros_planning_interface REQUIRED)
find_package(moveit_msgs REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(geometry_msgs REQUIRED)
2023-02-03 07:04:12 +00:00
find_package(rbs_skill_interfaces REQUIRED)
find_package(rmw REQUIRED)
2023-04-21 23:28:57 +03:00
find_package(tf2_eigen REQUIRED)
find_package(tf2_msgs REQUIRED)
find_package(tinyxml2_vendor REQUIRED)
find_package(TinyXML2 REQUIRED)
2023-12-11 18:31:12 +03:00
find_package(Eigen3 3.3 REQUIRED)
find_package(rbs_utils REQUIRED)
2023-05-16 23:10:19 +02:00
# Default to Fortress
set(SDF_VER 12)
2023-12-30 23:41:03 +03:00
# If the user didn't specify a GZ distribution, pick the one matching the ROS
# distribution according to REP 2000
2023-05-16 23:10:19 +02:00
if(NOT DEFINED ENV{GZ_VERSION} AND DEFINED ENV{ROS_DISTRO})
if("$ENV{ROS_DISTRO}" STREQUAL "humble")
set(ENV{GZ_VERSION} "fortress")
endif()
endif()
# Find libsdformat matching the picked GZ distribution
if("$ENV{GZ_VERSION}" STREQUAL "fortress")
find_package(sdformat12 REQUIRED)
set(SDF_VER ${sdformat12_VERSION_MAJOR})
message(STATUS "Compiling against Gazebo Fortress (libSDFormat 12)")
elseif("$ENV{GZ_VERSION}" STREQUAL "garden")
find_package(sdformat13 REQUIRED)
set(SDF_VER ${sdformat13_VERSION_MAJOR})
message(STATUS "Compiling against Gazebo Garden (libSDFormat 13)")
2023-12-30 23:41:03 +03:00
# No GZ distribution specified, find any version of libsdformat we can
2023-05-16 23:10:19 +02:00
else()
foreach(major RANGE 13 9)
find_package(sdformat${major} QUIET)
if(sdformat${major}_FOUND)
# Next `find_package` call will be a noop
set(SDF_VER ${major})
message(STATUS "Compiling against libSDFormat ${major}")
break()
endif()
endforeach()
endif()
2023-12-30 23:41:03 +03:00
include_directories(SYSTEM ${TINYXML2_INCLUDE_DIR})
2023-12-30 23:41:03 +03:00
link_directories(${TINYXML2_LIBRARY_DIRS})
2022-01-31 21:28:39 +04:00
set(deps
2023-12-30 23:41:03 +03:00
rclcpp
rclcpp_action
moveit_core
moveit_ros_planning
moveit_ros_planning_interface
moveit_msgs
geometry_msgs
tf2_ros
rclcpp_components
rbs_skill_interfaces
tf2_eigen
tf2_msgs
tinyxml2_vendor
geometric_shapes
sdformat${SDF_VER})
2022-01-31 21:28:39 +04:00
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
2023-12-30 23:41:03 +03:00
# -- GripperActionServer --
add_library(gripper_action_server SHARED src/gripper_control_action_server.cpp)
2023-12-30 23:41:03 +03:00
target_include_directories(
gripper_action_server
PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
target_compile_definitions(gripper_action_server
2023-12-30 23:41:03 +03:00
PRIVATE "GRIPPER_ACTION_SERVER_CPP_BUILDING_DLL")
ament_target_dependencies(gripper_action_server ${deps})
2023-12-30 23:41:03 +03:00
rclcpp_components_register_node(
gripper_action_server PLUGIN "rbs_skill_actions::GripperControlActionServer"
EXECUTABLE gripper_control_action_server)
2023-12-11 18:31:12 +03:00
2023-12-30 23:41:03 +03:00
# -- PickPlacePoseLoader --
add_library(pick_place_pose_loader SHARED src/pick_place_pose_loader.cpp)
target_include_directories(
pick_place_pose_loader
PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
target_compile_definitions(pick_place_pose_loader
PRIVATE "PICK_PLACE_POSE_LOADER_CPP_BUILDING_DLL")
2024-04-18 13:29:36 +00:00
ament_target_dependencies(pick_place_pose_loader ${deps} Eigen3
2023-12-30 23:41:03 +03:00
rbs_utils)
rclcpp_components_register_node(
pick_place_pose_loader PLUGIN "rbs_skill_actions::GetGraspPickPoseServer"
EXECUTABLE pick_place_pose_loader_service_server)
# -- MoveitActionServers --
add_executable(move_to_joint_states_action_server
src/move_to_joint_states_action_server.cpp)
ament_target_dependencies(move_to_joint_states_action_server ${deps})
add_executable(move_topose_action_server src/move_topose_action_server.cpp)
ament_target_dependencies(move_topose_action_server ${deps})
2022-02-07 18:34:33 +04:00
2023-12-30 23:41:03 +03:00
add_executable(move_cartesian_path_action_server
src/move_cartesian_path_action_server.cpp)
2022-03-16 00:49:48 +04:00
ament_target_dependencies(move_cartesian_path_action_server ${deps})
2023-12-30 23:41:03 +03:00
install(DIRECTORY include/ DESTINATION include)
install(DIRECTORY launch config DESTINATION share/${PROJECT_NAME})
2022-01-31 21:28:39 +04:00
install(
2023-12-30 23:41:03 +03:00
TARGETS move_topose_action_server
gripper_action_server
pick_place_pose_loader
move_to_joint_states_action_server
move_cartesian_path_action_server
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
2023-12-30 23:41:03 +03:00
RUNTIME DESTINATION lib/${PROJECT_NAME})
2023-04-21 23:28:57 +03:00
2023-12-30 23:41:03 +03:00
ament_export_include_directories(include)
2024-04-18 13:29:36 +00:00
ament_python_install_package(${PROJECT_NAME})
install(PROGRAMS
scripts/test_cartesian_controller.py
DESTINATION lib/${PROJECT_NAME}
)
2022-01-31 21:28:39 +04:00
ament_package()