Skip to content

Commit fec923b

Browse files
authored
Merge pull request #206 from IntelligentRoboticsLabs/ros2
Port to ROS2
2 parents c918863 + 8b7bcf1 commit fec923b

22 files changed

+796
-724
lines changed

darknet_ros/CMakeLists.txt

Lines changed: 59 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
cmake_minimum_required(VERSION 2.8.12)
1+
cmake_minimum_required(VERSION 3.5)
22
project(darknet_ros)
33

4-
# Set c++11 cmake flags
5-
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
6-
set(CMAKE_C_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-variable -Wfatal-errors -fPIC ${CMAKE_C_FLAGS}")
4+
set(CMAKE_CXX_STANDARD 17)
5+
76

87
# Define path of darknet folder here.
98
find_path(DARKNET_PATH
@@ -45,46 +44,40 @@ if ( X11_FOUND )
4544
endif ( X11_FOUND )
4645

4746
# Find rquired packeges
48-
find_package(Boost REQUIRED COMPONENTS thread)
4947
find_package(OpenCV REQUIRED)
5048
include_directories(${OpenCV_INCLUDE_DIRS})
51-
find_package(catkin REQUIRED
52-
COMPONENTS
53-
cv_bridge
54-
roscpp
55-
rospy
49+
50+
find_package(ament_cmake REQUIRED)
51+
find_package(rclcpp REQUIRED)
52+
find_package(rclpy REQUIRED)
53+
find_package(rclcpp_action REQUIRED)
54+
find_package(std_msgs REQUIRED)
55+
find_package(image_transport REQUIRED)
56+
find_package(cv_bridge REQUIRED)
57+
find_package(sensor_msgs REQUIRED)
58+
find_package(darknet_ros_msgs REQUIRED)
59+
find_package(ament_index_cpp REQUIRED)
60+
61+
set(dependencies
62+
rclcpp
63+
rclpy
64+
rclcpp_action
5665
std_msgs
57-
actionlib
58-
darknet_ros_msgs
5966
image_transport
67+
cv_bridge
68+
sensor_msgs
69+
darknet_ros_msgs
70+
ament_index_cpp
6071
)
6172

6273
# Enable OPENCV in darknet
6374
add_definitions(-DOPENCV)
6475
add_definitions(-O4 -g)
6576

66-
catkin_package(
67-
INCLUDE_DIRS
68-
include
69-
LIBRARIES
70-
${PROJECT_NAME}_lib
71-
CATKIN_DEPENDS
72-
cv_bridge
73-
roscpp
74-
actionlib
75-
rospy
76-
std_msgs
77-
darknet_ros_msgs
78-
image_transport
79-
DEPENDS
80-
Boost
81-
)
82-
8377
include_directories(
8478
${DARKNET_PATH}/src
8579
${DARKNET_PATH}/include
8680
include
87-
${Boost_INCLUDE_DIRS}
8881
${catkin_INCLUDE_DIRS}
8982
)
9083

@@ -145,6 +138,8 @@ if (CUDA_FOUND)
145138
${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
146139
${DARKNET_CUDA_FILES}
147140
)
141+
142+
ament_target_dependencies(${PROJECT_NAME}_lib ${dependencies})
148143

149144
target_link_libraries(${PROJECT_NAME}_lib
150145
cuda
@@ -156,24 +151,27 @@ if (CUDA_FOUND)
156151
cuda_add_executable(${PROJECT_NAME}
157152
src/yolo_object_detector_node.cpp
158153
)
154+
155+
ament_target_dependencies(${PROJECT_NAME} ${dependencies})
159156

160157
else()
161158

162159
add_library(${PROJECT_NAME}_lib
163160
${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
164161
)
162+
ament_target_dependencies(${PROJECT_NAME}_lib ${dependencies})
165163

166164
add_executable(${PROJECT_NAME}
167165
src/yolo_object_detector_node.cpp
168166
)
167+
ament_target_dependencies(${PROJECT_NAME} ${dependencies})
169168

170169
endif()
171170

172171
target_link_libraries(${PROJECT_NAME}_lib
173172
m
174173
pthread
175174
stdc++
176-
${Boost_LIBRARIES}
177175
${OpenCV_LIBRARIES}
178176
${catkin_LIBRARIES}
179177
${OpenCV_LIBS}
@@ -183,23 +181,17 @@ target_link_libraries(${PROJECT_NAME}
183181
${PROJECT_NAME}_lib
184182
)
185183

186-
add_dependencies(${PROJECT_NAME}_lib
187-
darknet_ros_msgs_generate_messages_cpp
188-
)
189184

190-
install(TARGETS ${PROJECT_NAME}_lib
191-
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
192-
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
193-
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
185+
install(TARGETS ${PROJECT_NAME}_lib ${PROJECT_NAME}
186+
ARCHIVE DESTINATION lib
187+
LIBRARY DESTINATION lib
188+
RUNTIME DESTINATION lib/${PROJECT_NAME}
194189
)
195190

196-
install(TARGETS ${PROJECT_NAME}
197-
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
198-
)
199191

200192
install(
201-
DIRECTORY include/${PROJECT_NAME}/
202-
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
193+
DIRECTORY include/
194+
DESTINATION include/
203195
FILES_MATCHING PATTERN "*.h"
204196
)
205197

@@ -220,11 +212,14 @@ if (NOT EXISTS "${FILE}")
220212
execute_process(COMMAND wget http://pjreddie.com/media/files/yolov3.weights -P ${PATH})
221213
endif()
222214

215+
install(DIRECTORY yolo_network_config/cfg yolo_network_config/weights DESTINATION share/${PROJECT_NAME}/yolo_network_config/)
216+
install(DIRECTORY launch config DESTINATION share/${PROJECT_NAME}/)
217+
223218
#############
224219
## Testing ##
225220
#############
226221

227-
if(CATKIN_ENABLE_TESTING)
222+
if(BUILD_TESTING)
228223
# Download yolov2.weights
229224
set(PATH "${CMAKE_CURRENT_SOURCE_DIR}/yolo_network_config/weights")
230225
set(FILE "${PATH}/yolov2.weights")
@@ -234,15 +229,24 @@ if(CATKIN_ENABLE_TESTING)
234229
execute_process(COMMAND wget http://pjreddie.com/media/files/yolov2.weights -P ${PATH})
235230
endif()
236231

237-
find_package(rostest REQUIRED)
238-
239-
# Object detection in images.
240-
add_rostest_gtest(${PROJECT_NAME}_object_detection-test
241-
test/object_detection.test
242-
test/test_main.cpp
243-
test/ObjectDetection.cpp
244-
)
245-
target_link_libraries(${PROJECT_NAME}_object_detection-test
246-
${catkin_LIBRARIES}
247-
)
232+
find_package(ament_lint_auto REQUIRED)
233+
ament_lint_auto_find_test_dependencies()
234+
235+
find_package(ament_cmake_gtest REQUIRED)
236+
237+
#ament_add_gtest(${PROJECT_NAME}_object_detection-test
238+
# test/object_detection.test
239+
# test/test_main.cpp
240+
# test/ObjectDetection.cpp
241+
#)
242+
#target_link_libraries(${PROJECT_NAME}_object_detection-test
243+
# ${PROJECT_NAME}_lib
244+
#)
248245
endif()
246+
247+
248+
ament_export_include_directories(include)
249+
ament_export_libraries(${PROJECT_NAME}_lib)
250+
ament_export_dependencies(${dependencies})
251+
252+
ament_package()

darknet_ros/config/ros.yaml

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,26 @@
1-
subscribers:
2-
3-
camera_reading:
4-
topic: /camera/rgb/image_raw
5-
queue_size: 1
6-
7-
actions:
8-
9-
camera_reading:
10-
name: /darknet_ros/check_for_objects
11-
12-
publishers:
13-
14-
object_detector:
15-
topic: /darknet_ros/found_object
16-
queue_size: 1
17-
latch: false
18-
19-
bounding_boxes:
20-
topic: /darknet_ros/bounding_boxes
21-
queue_size: 1
22-
latch: false
23-
24-
detection_image:
25-
topic: /darknet_ros/detection_image
26-
queue_size: 1
27-
latch: true
28-
29-
image_view:
30-
31-
enable_opencv: true
32-
wait_key_delay: 1
33-
enable_console_output: true
1+
darknet_ros:
2+
ros__parameters:
3+
subscribers:
4+
camera_reading:
5+
topic: /camera/rgb/image_raw
6+
queue_size: 1
7+
actions:
8+
camera_reading:
9+
topic: /darknet_ros/check_for_objects
10+
publishers:
11+
object_detector:
12+
topic: /darknet_ros/found_object
13+
queue_size: 1
14+
latch: false
15+
bounding_boxes:
16+
topic: /darknet_ros/bounding_boxes
17+
queue_size: 1
18+
latch: false
19+
detection_image:
20+
topic: /darknet_ros/detection_image
21+
queue_size: 1
22+
latch: true
23+
image_view:
24+
enable_opencv: true
25+
wait_key_delay: 3
26+
enable_console_output: true
Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
1-
yolo_model:
2-
3-
config_file:
4-
name: yolov2-tiny-voc.cfg
5-
weight_file:
6-
name: yolov2-tiny-voc.weights
7-
threshold:
8-
value: 0.3
9-
detection_classes:
10-
names:
11-
- aeroplane
12-
- bicycle
13-
- bird
14-
- boat
15-
- bottle
16-
- bus
17-
- car
18-
- cat
19-
- chair
20-
- cow
21-
- diningtable
22-
- dog
23-
- horse
24-
- motorbike
25-
- person
26-
- pottedplant
27-
- sheep
28-
- sofa
29-
- train
30-
- tvmonitor
1+
darknet_ros:
2+
ros__parameters:
3+
yolo_model:
4+
5+
config_file:
6+
name: yolov2-tiny-voc.cfg
7+
weight_file:
8+
name: yolov2-tiny-voc.weights
9+
threshold:
10+
value: 0.3
11+
detection_classes:
12+
names:
13+
- aeroplane
14+
- bicycle
15+
- bird
16+
- boat
17+
- bottle
18+
- bus
19+
- car
20+
- cat
21+
- chair
22+
- cow
23+
- diningtable
24+
- dog
25+
- horse
26+
- motorbike
27+
- person
28+
- pottedplant
29+
- sheep
30+
- sofa
31+
- train
32+
- tvmonitor
33+

0 commit comments

Comments
 (0)