123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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}
- )
|