-
Notifications
You must be signed in to change notification settings - Fork 5
/
CMakeLists.txt
129 lines (106 loc) · 2.93 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
cmake_minimum_required(VERSION 3.0.2)
project(bluerov2_dobmpc)
## Compile as C++11, supported in ROS Kinetic and newer
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "7.6") # Assuming GCC 4.9 supports C++14
add_compile_options(-std=c++11)
else()
add_compile_options(-std=c++14)
endif()
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
rospy
roscpp
roslib
roslaunch
uuv_gazebo_ros_plugins_msgs
nav_msgs
geometry_msgs
message_generation
tf
std_msgs
gazebo_msgs
genmsg
sensor_msgs
pcl_ros
)
find_package(Eigen3 REQUIRED)
find_package(yaml-cpp REQUIRED)
find_package(gazebo_msgs REQUIRED)
find_package(PCL 1.8.1 REQUIRED)
find_package(OpenCV REQUIRED)
set(acados_include "~/acados/include")
set(acados_lib "~/acados/lib")
set(bluerov2_model ${PROJECT_SOURCE_DIR}/scripts/c_generated_code)
add_message_files(
FILES
Reference.msg
Pose.msg
)
generate_messages(
DEPENDENCIES
std_msgs
nav_msgs
geometry_msgs
)
catkin_package(
INCLUDE_DIRS include
LIBRARIES bluerov2_dobmpc
LIBRARIES bluerov2_ampc
# CATKIN_DEPENDS uuv_gazebo_plugins_msgs
# DEPENDS system_lib
CATKIN_DEPENDS gazebo_msgs
message_generation
message_runtime
)
# include_directories(/usr/include/pcl-1.12/)
include_directories(
include
${catkin_INCLUDE_DIRS}
${bluerov2_model}
${acados_include}
${acados_include}/blasfeo/include/
${acados_include}/hpipm/include/
${acados_include}/acados/
${acados_include}/qpOASES_e/
${PCL_CONVERSIONS_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
link_directories(${bluerov2_model})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
# bluerov2_dob_node
add_executable(bluerov2_dob_node
src/bluerov2_dob_node.cpp
src/bluerov2_dob.cpp)
target_link_libraries(bluerov2_dob_node
${bluerov2_model}/libacados_ocp_solver_bluerov2.so
${acados_lib}/libacados.so
${catkin_LIBRARIES}
)
add_dependencies(bluerov2_dob_node uuv_gazebo_ros_plugins_msgs_generate_messages_cpp)
# bluerov2_inspection_node
add_executable(bluerov2_inspection_node src/bluerov2_inspection_node.cpp)
target_link_libraries(bluerov2_inspection_node
${PCL_LIBRARIES}
${catkin_LIBRARIES}
${OpenCV_LIBRARIES}
)
add_dependencies(bluerov2_inspection_node uuv_gazebo_ros_plugins_msgs_generate_messages_cpp)
# bluerov2_ampc_node
add_executable(bluerov2_ampc_node
src/bluerov2_ampc_node.cpp
src/bluerov2_ampc.cpp)
target_link_libraries(bluerov2_ampc_node
${bluerov2_model}/libacados_ocp_solver_bluerov2.so
${acados_lib}/libacados.so
${catkin_LIBRARIES}
)
add_dependencies(bluerov2_ampc_node uuv_gazebo_ros_plugins_msgs_generate_messages_cpp bluerov2_dobmpc_generate_messages_cpp)
# bluerov2_random_node
add_executable(bluerov2_random_node src/bluerov2_random_node.cpp)
target_link_libraries(bluerov2_random_node
${catkin_LIBRARIES}
)