CMakeLists.txt 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. cmake_minimum_required(VERSION 3.0.2)
  2. project(costmap_2d)
  3. find_package(catkin REQUIRED
  4. COMPONENTS
  5. cmake_modules
  6. dynamic_reconfigure
  7. geometry_msgs
  8. laser_geometry
  9. map_msgs
  10. message_filters
  11. message_generation
  12. nav_msgs
  13. pluginlib
  14. roscpp
  15. sensor_msgs
  16. std_msgs
  17. tf2
  18. tf2_geometry_msgs
  19. tf2_ros
  20. tf2_sensor_msgs
  21. visualization_msgs
  22. voxel_grid
  23. )
  24. find_package(Eigen3 REQUIRED)
  25. find_package(Boost REQUIRED COMPONENTS system thread)
  26. include_directories(
  27. include
  28. ${catkin_INCLUDE_DIRS}
  29. ${EIGEN3_INCLUDE_DIRS}
  30. ${Boost_INCLUDE_DIRS}
  31. )
  32. add_definitions(${EIGEN3_DEFINITIONS})
  33. # messages
  34. add_message_files(
  35. DIRECTORY msg
  36. FILES
  37. VoxelGrid.msg
  38. )
  39. generate_messages(
  40. DEPENDENCIES
  41. std_msgs
  42. geometry_msgs
  43. map_msgs
  44. )
  45. # dynamic reconfigure
  46. generate_dynamic_reconfigure_options(
  47. cfg/Costmap2D.cfg
  48. cfg/ObstaclePlugin.cfg
  49. cfg/GenericPlugin.cfg
  50. cfg/InflationPlugin.cfg
  51. cfg/VoxelPlugin.cfg
  52. )
  53. catkin_package(
  54. INCLUDE_DIRS
  55. include
  56. ${EIGEN3_INCLUDE_DIRS}
  57. LIBRARIES costmap_2d layers
  58. CATKIN_DEPENDS
  59. dynamic_reconfigure
  60. geometry_msgs
  61. laser_geometry
  62. map_msgs
  63. message_filters
  64. message_runtime
  65. nav_msgs
  66. pluginlib
  67. roscpp
  68. sensor_msgs
  69. std_msgs
  70. tf2_ros
  71. visualization_msgs
  72. voxel_grid
  73. DEPENDS
  74. EIGEN3
  75. Boost
  76. )
  77. add_library(costmap_2d
  78. src/array_parser.cpp
  79. src/costmap_2d.cpp
  80. src/observation_buffer.cpp
  81. src/layer.cpp
  82. src/layered_costmap.cpp
  83. src/costmap_2d_ros.cpp
  84. src/costmap_2d_publisher.cpp
  85. src/costmap_math.cpp
  86. src/footprint.cpp
  87. src/costmap_layer.cpp
  88. )
  89. add_dependencies(costmap_2d ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  90. target_link_libraries(costmap_2d
  91. ${Boost_LIBRARIES}
  92. ${catkin_LIBRARIES}
  93. )
  94. add_library(layers
  95. plugins/inflation_layer.cpp
  96. plugins/obstacle_layer.cpp
  97. plugins/static_layer.cpp
  98. plugins/voxel_layer.cpp
  99. src/observation_buffer.cpp
  100. )
  101. add_dependencies(layers ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  102. target_link_libraries(layers
  103. costmap_2d
  104. )
  105. add_executable(costmap_2d_markers src/costmap_2d_markers.cpp)
  106. add_dependencies(costmap_2d_markers ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  107. target_link_libraries(costmap_2d_markers
  108. costmap_2d
  109. ${Boost_LIBRARIES}
  110. ${catkin_LIBRARIES}
  111. )
  112. add_executable(costmap_2d_cloud src/costmap_2d_cloud.cpp)
  113. add_dependencies(costmap_2d_cloud ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  114. target_link_libraries(costmap_2d_cloud
  115. costmap_2d
  116. ${Boost_LIBRARIES}
  117. ${catkin_LIBRARIES}
  118. )
  119. add_executable(costmap_2d_node src/costmap_2d_node.cpp)
  120. add_dependencies(costmap_2d_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  121. target_link_libraries(costmap_2d_node
  122. costmap_2d
  123. ${Boost_LIBRARIES}
  124. ${catkin_LIBRARIES}
  125. )
  126. add_executable(laserScan2pointCloud src/laserScan2pointCloud.cpp)
  127. add_dependencies(laserScan2pointCloud ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  128. target_link_libraries(laserScan2pointCloud
  129. costmap_2d
  130. ${Boost_LIBRARIES}
  131. ${catkin_LIBRARIES}
  132. )
  133. ## Configure Tests
  134. if(CATKIN_ENABLE_TESTING)
  135. # Find package test dependencies
  136. find_package(rostest REQUIRED)
  137. # Add the test folder to the include directories
  138. include_directories(test)
  139. # Create targets for test executables
  140. add_executable(costmap_tester EXCLUDE_FROM_ALL test/costmap_tester.cpp)
  141. add_dependencies(tests costmap_tester)
  142. target_link_libraries(costmap_tester costmap_2d ${GTEST_LIBRARIES})
  143. add_executable(footprint_tests EXCLUDE_FROM_ALL test/footprint_tests.cpp)
  144. add_dependencies(tests footprint_tests)
  145. target_link_libraries(footprint_tests costmap_2d ${GTEST_LIBRARIES})
  146. add_executable(obstacle_tests EXCLUDE_FROM_ALL test/obstacle_tests.cpp)
  147. add_dependencies(tests obstacle_tests)
  148. target_link_libraries(obstacle_tests costmap_2d layers ${GTEST_LIBRARIES})
  149. add_executable(static_tests EXCLUDE_FROM_ALL test/static_tests.cpp)
  150. add_dependencies(tests static_tests)
  151. target_link_libraries(static_tests costmap_2d layers ${GTEST_LIBRARIES})
  152. add_executable(inflation_tests EXCLUDE_FROM_ALL test/inflation_tests.cpp)
  153. add_dependencies(tests inflation_tests)
  154. target_link_libraries(inflation_tests costmap_2d layers ${GTEST_LIBRARIES})
  155. catkin_download_test_data(${PROJECT_NAME}_simple_driving_test_indexed.bag
  156. http://download.ros.org/data/costmap_2d/simple_driving_test_indexed.bag
  157. DESTINATION ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/test
  158. MD5 61168cff9425b11e093ea3a627c81c8d)
  159. catkin_download_test_data(${PROJECT_NAME}_willow-full-0.025.pgm
  160. http://download.ros.org/data/costmap_2d/willow-full-0.025.pgm
  161. DESTINATION ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/test
  162. MD5 e66b17ee374f2d7657972efcb3e2e4f7)
  163. add_rostest(test/footprint_tests.launch)
  164. add_rostest(test/inflation_tests.launch)
  165. add_rostest(test/obstacle_tests.launch)
  166. add_rostest(test/simple_driving_test.xml)
  167. add_rostest(test/static_tests.launch)
  168. catkin_add_gtest(array_parser_test test/array_parser_test.cpp)
  169. target_link_libraries(array_parser_test costmap_2d)
  170. catkin_add_gtest(coordinates_test test/coordinates_test.cpp)
  171. target_link_libraries(coordinates_test costmap_2d)
  172. endif()
  173. install( TARGETS
  174. costmap_2d_markers
  175. costmap_2d_cloud
  176. costmap_2d_node
  177. DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  178. )
  179. install(TARGETS
  180. costmap_2d
  181. layers
  182. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  183. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  184. RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
  185. )
  186. install(FILES costmap_plugins.xml
  187. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  188. )
  189. install(FILES test/TenByTen.yaml test/TenByTen.pgm
  190. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/test
  191. )
  192. install(DIRECTORY include/${PROJECT_NAME}/
  193. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  194. PATTERN ".svn" EXCLUDE
  195. )