103 lines
3.1 KiB
CMake
103 lines
3.1 KiB
CMake
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(pipe_msgs 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 pipe_msgs 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(DIRECTORY
|
|
launch/.
|
|
DESTINATION share/${PROJECT_NAME}/launch
|
|
)
|
|
|
|
|
|
|
|
ament_package()
|