@@ -6,6 +6,8 @@ project(azure_kinect_ros_driver LANGUAGES C CXX)
6
6
7
7
list (INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_LIST_DIR} /cmake)
8
8
9
+ option (CUDA_SUPPORT "use CUDA support onnxruntime library" ON )
10
+
9
11
## Find catkin macros and libraries
10
12
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
11
13
## is used, also find other catkin packages
@@ -14,6 +16,7 @@ find_package(catkin REQUIRED COMPONENTS
14
16
std_msgs
15
17
sensor_msgs
16
18
image_transport
19
+ image_geometry
17
20
nodelet
18
21
tf2
19
22
tf2_ros
@@ -24,6 +27,7 @@ find_package(catkin REQUIRED COMPONENTS
24
27
camera_info_manager
25
28
)
26
29
30
+ find_package (OpenCV REQUIRED)
27
31
###################################
28
32
## catkin specific configuration ##
29
33
###################################
@@ -77,6 +81,7 @@ set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX ""
77
81
############################
78
82
79
83
message ("Finding K4A SDK binaries" )
84
+ message ("--------------------------------------------${CMAKE_MODULE_PATH} -----------------------------------------" )
80
85
81
86
# Disable cached locations for K4A SDK binaries.
82
87
# Do this to force the search logic to happen correctly.
@@ -92,20 +97,121 @@ find_package(k4a 1.3.0 QUIET MODULE REQUIRED)
92
97
set (K4A_LIBS k4a::k4a;k4a::k4arecord)
93
98
94
99
# Try to find and enable the body tracking SDK
95
- find_package (k4abt 1.0.0 QUIET MODULE)
100
+ find_package (k4abt 1.0.1 QUIET MODULE)
96
101
if (k4abt_FOUND)
97
102
list (APPEND K4A_LIBS k4abt::k4abt)
98
103
message (STATUS "Body Tracking SDK found: compiling support for Body Tracking" )
99
104
target_compile_definitions (${PROJECT_NAME} _node PUBLIC K4A_BODY_TRACKING)
100
105
target_compile_definitions (${PROJECT_NAME} _nodelet PUBLIC K4A_BODY_TRACKING)
106
+ message ("!!! Body Tracking SDK found: body tracking features will be available !!!" )
101
107
else ()
102
108
message ("!!! Body Tracking SDK not found: body tracking features will not be available !!!" )
103
109
endif ()
110
+ if (MSVC AND NOT k4abt_FOUND)
111
+ if (CUDA_SUPPORT)
112
+
113
+ set (KBT "Microsoft.Azure.Kinect.BodyTracking.1.0.1" )
114
+ set (KBT_URL "https://www.nuget.org/api/v2/package/Microsoft.Azure.Kinect.BodyTracking/1.0.1" )
115
+ set (KBT_SHA512 "546ebf82551ca809213c7540c4a7c3ccdd14d1ae0ac5d8475b3a98439c4a68cf3d5b4e3fa70676d524ac820815f77611bf2d8ffba96933ad5b317db392d34f20" )
116
+ file (DOWNLOAD
117
+ ${KBT_URL}
118
+ ${CMAKE_CURRENT_BINARY_DIR} /kbt.nuget
119
+ EXPECTED_HASH SHA512=${KBT_SHA512}
120
+ SHOW_PROGRESS
121
+ )
122
+
123
+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${KBT} " )
124
+ execute_process (COMMAND tar xvzf "${CMAKE_CURRENT_BINARY_DIR} /kbt.nuget"
125
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${KBT} "
126
+ )
127
+
128
+ file (GLOB KBT_ONNX_DLL
129
+ "${CMAKE_CURRENT_BINARY_DIR} /${KBT} /lib/native/amd64/release/onnxruntime.dll"
130
+ )
131
+
132
+ file (GLOB KBT_DLL
133
+ "${CMAKE_CURRENT_BINARY_DIR} /${KBT} /lib/native/amd64/release/k4abt.dll"
134
+ )
135
+
136
+ file (GLOB KBT_LIB
137
+ "${CMAKE_CURRENT_BINARY_DIR} /${KBT} /lib/native/amd64/release/k4abt.lib"
138
+ )
139
+
140
+ file (GLOB KBT_DNN_MODEL
141
+ "${CMAKE_CURRENT_BINARY_DIR} /${KBT} /content/dnn_model_2_0.onnx"
142
+ )
143
+
144
+ add_library (k4abt::k4abt SHARED IMPORTED GLOBAL )
145
+
146
+ target_include_directories (
147
+ k4abt::k4abt
148
+ INTERFACE
149
+ ${CMAKE_CURRENT_BINARY_DIR} /${KBT} /build /native/include
150
+ )
151
+
152
+ set_property (TARGET k4abt::k4abt PROPERTY IMPORTED_CONFIGURATIONS "" )
153
+ set_property (TARGET k4abt::k4abt PROPERTY IMPORTED_LOCATION "${KBT_DLL} " )
154
+ set_property (TARGET k4abt::k4abt PROPERTY IMPORTED_IMPLIB "${KBT_LIB} " )
155
+ set_property (TARGET k4abt::k4abt PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES "${KBT_DNN_MODEL} ;${KBT_ONNX_DLL} " )
156
+ set (k4abt_FOUND TRUE )
157
+ set (k4abt_VERSION "1.0.1" )
158
+ list (APPEND K4A_LIBS k4abt::k4abt)
159
+ target_compile_definitions (${PROJECT_NAME} _node PUBLIC K4A_BODY_TRACKING)
160
+ target_compile_definitions (${PROJECT_NAME} _nodelet PUBLIC K4A_BODY_TRACKING)
161
+
162
+ set (KBT_DEPENDENCIES "Microsoft.Azure.Kinect.BodyTracking.Dependencies.0.9.1" )
163
+ set (KBTD_URL "https://www.nuget.org/api/v2/package/Microsoft.Azure.Kinect.BodyTracking.Dependencies/0.9.1" )
164
+ set (KBTD_SHA512 "5df5ceb2f7905a3e208a085a29ef02feb1820ffe819563af77c272ad7e068cf3a158c0ce610e421829b5f7ebbb628c45f56617344d6d1ef0a31d719253cf881f" )
165
+ file (DOWNLOAD
166
+ ${KBTD_URL}
167
+ ${CMAKE_CURRENT_BINARY_DIR} /kbtd.nuget
168
+ EXPECTED_HASH SHA512=${KBTD_SHA512}
169
+ SHOW_PROGRESS
170
+ )
171
+
172
+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${KBT_DEPENDENCIES} " )
173
+ execute_process (COMMAND tar xvzf "${CMAKE_CURRENT_BINARY_DIR} /kbtd.nuget"
174
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${KBT_DEPENDENCIES} "
175
+ )
176
+
177
+ file (GLOB KBTD_DLLS
178
+ "${CMAKE_CURRENT_BINARY_DIR} /${KBT_DEPENDENCIES} /lib/native/amd64/release/*.dll"
179
+ )
180
+
181
+ file (COPY ${KBTD_DLLS} DESTINATION ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_BIN_DESTINATION} )
182
+ file (COPY ${KBTD_DLLS} DESTINATION ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_LIB_DESTINATION} )
183
+
184
+ set (CUDNN_DEPENDENCIES "Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.0.9.1" )
185
+ set (CUDNN_URL "https://www.nuget.org/api/v2/package/Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN/0.9.1" )
186
+ set (CUDNN_SHA512 "a9986d5d7f06e0445cb65dfe1363c3e827df2c87b80ecfa05894c062714bf2092b3f87defd136cd2a89b9e588e773080ecf7079e8ce7e428426c4a00259c5085" )
187
+ file (DOWNLOAD
188
+ ${CUDNN_URL}
189
+ ${CMAKE_CURRENT_BINARY_DIR} /cudnn.nuget
190
+ EXPECTED_HASH SHA512=${CUDNN_SHA512}
191
+ SHOW_PROGRESS
192
+ )
193
+
194
+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${CUDNN_DEPENDENCIES} " )
195
+
196
+ execute_process (COMMAND tar xvzf "${CMAKE_CURRENT_BINARY_DIR} /cudnn.nuget"
197
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${CUDNN_DEPENDENCIES} "
198
+ )
199
+
200
+ file (GLOB CUDNN_DLLS
201
+ "${CMAKE_CURRENT_BINARY_DIR} /${CUDNN_DEPENDENCIES} /lib/native/amd64/release/*.dll"
202
+ )
203
+ file (COPY ${CUDNN_DLLS} DESTINATION ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_BIN_DESTINATION} )
204
+ file (COPY ${CUDNN_DLLS} DESTINATION ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_LIB_DESTINATION} )
205
+
206
+
207
+ else ()
208
+ message (FATAL_ERROR "Body Tracking SDK needs a NVIDIA GEFORCE GTX 1070 or better" )
209
+ endif ()
210
+ endif ()
104
211
105
212
# This reads the K4A_LIBS and K4A_INSTALL_REQUIRED variables and decides how to install
106
213
# the various shared objects / DLLs
107
214
include (Installk4a)
108
-
109
215
##################################
110
216
###### END AZURE KINECT SDK ######
111
217
##################################
@@ -118,11 +224,13 @@ include_directories(
118
224
target_link_libraries (${PROJECT_NAME} _node
119
225
${K4A_LIBS}
120
226
${catkin_LIBRARIES}
227
+ ${OpenCV_LIBS}
121
228
)
122
229
123
230
target_link_libraries (${PROJECT_NAME} _nodelet
124
231
${K4A_LIBS}
125
232
${catkin_LIBRARIES}
233
+ ${OpenCV_LIBS}
126
234
)
127
235
128
236
#############
0 commit comments