diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ad1df1..2c8cae8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,7 @@
-cmake_minimum_required(VERSION 2.8.3)
+cmake_minimum_required(VERSION 2.8.12)
project(msckf_vio)
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+add_compile_options(-std=c++11 -Wall)
# Modify cmake module path if new .cmake files are required
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake")
@@ -18,11 +17,13 @@ find_package(catkin REQUIRED COMPONENTS
tf_conversions
random_numbers
message_generation
+ nodelet
image_transport
cv_bridge
message_filters
pcl_conversions
pcl_ros
+ std_srvs
)
## System dependencies are found with CMake's conventions
@@ -32,17 +33,15 @@ find_package(OpenCV REQUIRED)
find_package(Cholmod REQUIRED)
find_package(SPQR REQUIRED)
+##################
+## ROS messages ##
+##################
add_message_files(
FILES
FeatureMeasurement.msg
CameraMeasurement.msg
TrackingInfo.msg
-
- #DebugImuState.msg
- #DebugCamState.msg
- #DebugState.msg
- #DebugMsckfInfo.msg
)
generate_messages(
@@ -50,18 +49,24 @@ generate_messages(
std_msgs
)
+###################################
+## catkin specific configuration ##
+###################################
catkin_package(
INCLUDE_DIRS include
-# LIBRARIES msckf_vio
+ LIBRARIES msckf_vio image_processor
CATKIN_DEPENDS
roscpp std_msgs tf nav_msgs sensor_msgs geometry_msgs
- eigen_conversions tf_conversions message_runtime
+ eigen_conversions tf_conversions random_numbers message_runtime
image_transport cv_bridge message_filters pcl_conversions
pcl_ros std_srvs
- DEPENDS
- Boost EIGEN3 OpenCV
+ DEPENDS Boost EIGEN3 OpenCV CHOLMOD SPQR
)
+###########
+## Build ##
+###########
+
include_directories(
include
${catkin_INCLUDE_DIRS}
@@ -72,10 +77,6 @@ include_directories(
${SPQR_INCLUDES}
)
-link_directories(
- ${catkin_LIBRARY_DIRS}
-)
-
# Msckf Vio
add_library(msckf_vio
src/msckf_vio.cpp
@@ -129,19 +130,45 @@ target_link_libraries(image_processor_nodelet
${catkin_LIBRARIES}
)
-# Feature initialization test
-catkin_add_gtest(test_feature_init
- test/feature_initialization_test.cpp
-)
-add_dependencies(test_feature_init
- ${${PROJECT_NAME}_EXPORTED_TARGETS}
- ${catkin_EXPORTED_TARGETS}
-)
-target_link_libraries(test_feature_init
- ${catkin_LIBRARIES}
+#############
+## Install ##
+#############
+
+install(TARGETS
+ msckf_vio msckf_vio_nodelet image_processor image_processor_nodelet
+ ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+ LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+ RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
-# Math utils test
-catkin_add_gtest(test_math_utils
- test/math_utils_test.cpp
+install(DIRECTORY include/${PROJECT_NAME}/
+ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+ PATTERN "*_nodelet.h" EXCLUDE
)
+
+install(FILES nodelets.xml
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+
+#############
+## Testing ##
+#############
+
+if(CATKIN_ENABLE_TESTING)
+ # Feature initialization test
+ catkin_add_gtest(test_feature_init
+ test/feature_initialization_test.cpp
+ )
+ add_dependencies(test_feature_init
+ ${${PROJECT_NAME}_EXPORTED_TARGETS}
+ ${catkin_EXPORTED_TARGETS}
+ )
+ target_link_libraries(test_feature_init
+ ${catkin_LIBRARIES}
+ )
+
+ # Math utils test
+ catkin_add_gtest(test_math_utils
+ test/math_utils_test.cpp
+ )
+endif()
diff --git a/package.xml b/package.xml
index 9200202..66d6b26 100644
--- a/package.xml
+++ b/package.xml
@@ -22,8 +22,6 @@
eigen_conversions
tf_conversions
random_numbers
- message_generation
- message_runtime
nodelet
image_transport
cv_bridge
@@ -31,11 +29,15 @@
pcl_conversions
pcl_ros
std_srvs
+ message_generation
+ message_runtime
libpcl-all-dev
libpcl-all
suitesparse
+ rosunit
+