cmake_minimum_required(VERSION 3.0.2) project(slam_hdl_graph) add_compile_options(-std=c++11) find_package(catkin REQUIRED COMPONENTS laser_geometry fast_gicp geodesy geometry_msgs interactive_markers message_generation ndt_omp nmea_msgs pcl_ros roscpp rospy sensor_msgs std_msgs tf_conversions ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake") # 帮助找到 FindG2O.cmake 文件 catkin_python_setup() #find_package(Boost REQUIRED COMPONENTS system) catkin_package( # INCLUDE_DIRS include # LIBRARIES slam # CATKIN_DEPENDS roscpp # DEPENDS system_lib ) find_package(PCL REQUIRED) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) message(STATUS "PCL_INCLUDE_DIRS:" ${PCL_INCLUDE_DIRS}) message(STATUS "PCL_LIBRARY_DIRS:" ${PCL_LIBRARY_DIRS}) message(STATUS "PCL_DEFINITIONS:" ${PCL_DEFINITIONS}) find_package(G2O REQUIRED) include_directories(SYSTEM ${G2O_INCLUDE_DIR} ${G2O_INCLUDE_DIRS}) link_directories(${G2O_LIBRARY_DIRS}) link_libraries(${G2O_LIBRARIES}) find_package(OpenMP) if (OPENMP_FOUND) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() find_library(VGICP_CUDA_FOUND NAMES fast_vgicp_cuda) message(STATUS "VGICP_CUDA_FOUND:" ${VGICP_CUDA_FOUND}) if(VGICP_CUDA_FOUND) add_definitions(-DUSE_VGICP_CUDA) endif() find_package(ndt_omp REQUIRED) # find_package(PCL REQUIRED) # find_package(G2O REQUIRED) include_directories(SYSTEM ${G2O_INCLUDE_DIR} ${G2O_INCLUDE_DIRS}) link_directories(${G2O_LIBRARY_DIRS}) link_libraries(${G2O_LIBRARIES}) include_directories( ${catkin_INCLUDE_DIRS} ) # add_executable(${PROJECT_NAME}_node src/slam_node.cpp) add_executable(odom_laser_node src/odom_laser/odom_laser.cpp) target_link_libraries(odom_laser_node ${catkin_LIBRARIES} ${PCL_LIBRARIES} ) add_executable(laser2cloud_node src/slam_hdl_graph/laser2cloud.cpp) # add_library(laser_odom src/laser_odom.cpp) target_link_libraries(laser2cloud_node ${catkin_LIBRARIES} ${PCL_LIBRARIES} ) # add_executable(slam_hdl_graph_node src/slam_hdl_graph/slam_hdl_graph.cpp) add_executable(slam_hdl_graph_node src/slam_hdl_graph/slam_hdl_graph.cpp src/slam_hdl_graph/hdl_graph_slam/map_cloud_generator.cpp src/slam_hdl_graph/hdl_graph_slam/information_matrix_calculator.cpp src/slam_hdl_graph/hdl_graph_slam/graph_slam.cpp src/slam_hdl_graph/hdl_graph_slam/keyframe.cpp src/slam_hdl_graph/hdl_graph_slam/registrations.cpp src/slam_hdl_graph/g2o/robust_kernel_io.cpp ) add_library(slam_hdl_graph_lib src/slam_hdl_graph/slam_hdl_graph.cpp src/slam_hdl_graph/hdl_graph_slam/map_cloud_generator.cpp src/slam_hdl_graph/hdl_graph_slam/information_matrix_calculator.cpp src/slam_hdl_graph/hdl_graph_slam/graph_slam.cpp src/slam_hdl_graph/hdl_graph_slam/keyframe.cpp src/slam_hdl_graph/hdl_graph_slam/registrations.cpp src/slam_hdl_graph/g2o/robust_kernel_io.cpp ) target_link_libraries(slam_hdl_graph_node ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${G2O_TYPES_DATA} ${G2O_CORE_LIBRARY} ${G2O_STUFF_LIBRARY} ${G2O_SOLVER_PCG} ${G2O_SOLVER_CSPARSE} # be aware of that CSPARSE is released under LGPL ${G2O_SOLVER_CHOLMOD} # be aware of that cholmod is released under GPL ${G2O_TYPES_SLAM3D} ${G2O_TYPES_SLAM3D_ADDONS} glog ) target_link_libraries(slam_hdl_graph_lib ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${G2O_TYPES_DATA} ${G2O_CORE_LIBRARY} ${G2O_STUFF_LIBRARY} ${G2O_SOLVER_PCG} ${G2O_SOLVER_CSPARSE} # be aware of that CSPARSE is released under LGPL ${G2O_SOLVER_CHOLMOD} # be aware of that cholmod is released under GPL ${G2O_TYPES_SLAM3D} ${G2O_TYPES_SLAM3D_ADDONS} glog ) ########### ## Build ## ########### include_directories(include) # vscode 可以找到头文件,但是编译找不到,在这行括号中加 include 即可 include_directories( ${PCL_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} )