-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
163 lines (135 loc) · 3.13 KB
/
CMakeLists.txt
File metadata and controls
163 lines (135 loc) · 3.13 KB
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
cmake_minimum_required(VERSION 2.8.3)
project(jpcm)
set(CMAKE_VERBOSE_MAKEFILE "false")
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++14")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
quadrotor_msgs
geometry_msgs
sensor_msgs
uav_utils
mavros
)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
find_package(Eigen3 REQUIRED)
find_package(GTSAM 4 REQUIRED)
find_package(yaml-cpp)
catkin_package(
)
include_directories(
${catkin_INCLUDE_DIRS}
${EIGEN_INCLUDE_DIRS}
${GTSAM_INCLUDE_DIR}
include/${PROJECT_NAME}
include
GTSAMIntegration
${YAML_CPP_INCLUDE_DIRS}
)
# Create GTSAMIntegration library
add_library(gtsam_integration_lib
GTSAMIntegration/CBF_factor.cpp
GTSAMIntegration/factors.cpp
GTSAMIntegration/GTSAMUtils.cpp
GTSAMIntegration/JPCM.cpp
GTSAMIntegration/Marginalization.cpp
)
target_link_libraries(gtsam_integration_lib
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
# Add dependencies for the library
add_dependencies(gtsam_integration_lib quadrotor_msgs geometry_msgs)
add_executable(gps_imu
src/gps_imu.cpp
app/gps_imu_node.cpp
src/PX4CtrlParam.cpp
src/input.cpp
)
add_dependencies(gps_imu quadrotor_msgs geometry_msgs)
target_link_libraries(gps_imu
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
add_executable(odom_node
app/odom_node.cpp
src/PX4CtrlParam.cpp
)
add_dependencies(odom_node quadrotor_msgs geometry_msgs)
target_link_libraries(odom_node
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
# JPCM_node using the library
add_executable(JPCM_node
app/JPCM_node.cpp
src/controller.cpp
src/input.cpp
src/PX4CtrlFSM.cpp
src/PX4CtrlParam.cpp
)
add_dependencies(JPCM_node quadrotor_msgs)
target_link_libraries(JPCM_node
gtsam_integration_lib
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
catkin_install_python(PROGRAMS thrust_calibrate_scrips/thrust_calibrate.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# test_jpcm using the library
add_executable(test_jpcm
src/controller.cpp
src/PX4CtrlParam.cpp
src/input.cpp
test/test_jpcm.cpp
)
add_dependencies(test_jpcm quadrotor_msgs geometry_msgs)
target_link_libraries(test_jpcm
gtsam_integration_lib
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
# FakeGPS_IMU_fusion_node using the library
add_executable(FakeGPS_IMU_fusion_node
app/FakeGPS_IMU_fusion_node.cpp
src/controller.cpp
src/PX4CtrlParam.cpp
src/input.cpp
)
add_dependencies(FakeGPS_IMU_fusion_node quadrotor_msgs geometry_msgs)
target_link_libraries(FakeGPS_IMU_fusion_node
gtsam_integration_lib
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)
# FactorMPC_node using the library
add_executable(FactorMPC_node
app/FactorMPC_node.cpp
src/controller.cpp
src/input.cpp
src/PX4CtrlFSM.cpp
src/PX4CtrlParam.cpp
)
add_dependencies(FactorMPC_node quadrotor_msgs)
target_link_libraries(FactorMPC_node
gtsam_integration_lib
${catkin_LIBRARIES}
gtsam
gtsam_unstable
${YAML_CPP_LIBRARIES}
)