cmake_minimum_required(VERSION 3.8) project(find-pose) add_compile_options(-g) # find dependencies find_package(ament_cmake REQUIRED) find_package(Boost REQUIRED COMPONENTS system) # dependencies from PCL find_package(PCL REQUIRED COMPONENTS common io) find_package(depth_image_proc REQUIRED) include_directories(SYSTEM ${PCL_INCLUDE_DIRS} ${rcl_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ) include_directories(${depth_image_proc_INCLUDE_DIRS}) SET(Libraries pcl_conversions ) ####### DEPENDENCIES ####### FIND_PACKAGE(OpenCV REQUIRED) # tested on 2.3.1 # check if version status is "-dev" (SIFT compatibility issue between 4.3.0 vs 4.3.0-dev) FIND_FILE(OpenCV_VERSION_HPP opencv2/core/version.hpp PATHS ${OpenCV_INCLUDE_DIRS} NO_DEFAULT_PATH) FILE(READ ${OpenCV_VERSION_HPP} TMPTXT) STRING(FIND "${TMPTXT}" "-dev" matchres) IF(NOT ${matchres} EQUAL -1) add_definitions(-DOPENCV_DEV) ENDIF(NOT ${matchres} EQUAL -1) SET(NONFREE 1) IF(NOT (OPENCV_NONFREE_FOUND OR OPENCV_XFEATURES2D_FOUND)) SET(NONFREE 0) ELSEIF(OpenCV_VERSION VERSION_GREATER "3.4.2") FIND_FILE(OpenCV_MODULES_HPP opencv2/opencv_modules.hpp PATHS ${OpenCV_INCLUDE_DIRS} NO_DEFAULT_PATH) FILE(READ ${OpenCV_MODULES_HPP} TMPTXT) STRING(FIND "${TMPTXT}" "#define OPENCV_ENABLE_NONFREE" matchres) IF(${matchres} EQUAL -1) SET(NONFREE 0) ENDIF(${matchres} EQUAL -1) ENDIF() ############################################################################ find_package(ament_cmake REQUIRED) find_package(cv_bridge REQUIRED) find_package(rclcpp_components REQUIRED) find_package(pcl_conversions REQUIRED) find_package(pcl_ros REQUIRED) find_package(rclcpp REQUIRED) find_package(sensor_msgs REQUIRED) find_package(pcl_msgs REQUIRED) find_package(image_transport REQUIRED) find_package(message_filters REQUIRED) find_package(yolov3_msg REQUIRED) add_executable(convert_pointcloud_to_depth src/convert_pointcloud_to_depth.cpp) ament_target_dependencies(convert_pointcloud_to_depth ${Libraries} rclcpp_components rclcpp sensor_msgs cv_bridge pcl_conversions image_transport message_filters) target_link_libraries(convert_pointcloud_to_depth ${PCL_LBRARIES} ${Boost_LIBRARIES}) include_directories( include ${catkin_INCLUDE_DIRS} ) SET(SRC_FILES ${SRC_FILES} src/FindObjectROS.cpp ) find_package(Qt5 COMPONENTS Core Widgets REQUIRED) include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS}) #ADD_LIBRARY(find_object ${SRC_FILES}) add_executable(find_pose_node src/FindObjectROS.cpp src/find_pose_node.cpp) set_target_properties(find_pose_node PROPERTIES OUTPUT_NAME find_pose_node) ament_target_dependencies(find_pose_node rclcpp rclcpp_components yolov3_msg cv_bridge sensor_msgs image_transport message_filters tf2_msgs tf2_geometry_msgs ${AMENT_LIBRARIES}) target_link_libraries(find_pose_node Qt5::Core Qt5::Widgets ${OpenCV_LIBRARIES} ${LIBRARIES}) install(TARGETS convert_pointcloud_to_depth find_pose_node DESTINATION lib/${PROJECT_NAME}) ############# ## Install ## ############# install(PROGRAMS launch/find-pose-node.py DESTINATION lib/${PROJECT_NAME} ) ament_package()