2.1.1.1. Camera Perception ROS Package¶
2.1.1.1.1. camera_perception
¶
The camera_perception package
- Maintainers:
- Version:
1.0.0
- License:
MIT
2.1.1.1.1.1. Dependencies¶
2.1.1.1.1.2. Package definition files¶
2.1.1.1.1.2.1. CMakeLists.txt¶
1cmake_minimum_required(VERSION 3.21.0)
2project(camera_perception VERSION 1.0.0 LANGUAGES CXX CUDA)
3
4# ROS packages
5find_package(catkin REQUIRED COMPONENTS
6 roscpp
7 sensor_msgs
8 std_msgs
9 pcl_ros
10 utilities
11 image_transport
12 cv_bridge
13)
14
15catkin_package(
16 CATKIN_DEPENDS roscpp sensor_msgs std_msgs utilities image_transport
17)
18
19if(NOT CMAKE_BUILD_TYPE)
20 set(CMAKE_BUILD_TYPE Release)
21endif()
22
23# Set Flags for Debug and Release
24set(CMAKE_CXX_FLAGS_DEBUG "-g")
25set(CMAKE_CXX_FLAGS_RELEASE "-O3")
26
27# YOLOv8 Setup
28set(CMAKE_CUDA_ARCHITECTURES 60 61 62 70 72 75 86 89 90)
29set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)
30set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
31# Disable deprecation warnings
32set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
33set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-dev")
34set(CMAKE_CXX_STANDARD 17)
35
36# Modern CMake CUDA integration
37find_package(CUDAToolkit REQUIRED)
38
39# OpenCV
40find_package(OpenCV REQUIRED)
41
42# TensorRT
43set(TensorRT_INCLUDE_DIRS /usr/include/x86_64-linux-gnu)
44set(TensorRT_LIBRARIES /usr/lib/x86_64-linux-gnu)
45
46list(APPEND INCLUDE_DIRS
47 ${CUDAToolkit_INCLUDE_DIRS}
48 ${OpenCV_INCLUDE_DIRS}
49 ${TensorRT_INCLUDE_DIRS}
50 include
51 ${catkin_INCLUDE_DIRS}
52)
53
54list(APPEND ALL_LIBS
55 CUDA::cublas # Linking cuBLAS from the CUDA Toolkit
56 CUDA::cudart # CUDA Runtime library
57 ${OpenCV_LIBRARIES}
58 ${TensorRT_LIBRARIES}
59)
60
61include_directories(${INCLUDE_DIRS})
62include_directories(include)
63
64add_executable(${PROJECT_NAME}
65 src/camera_perception_node.cpp
66 src/yolov8-seg.cpp
67)
68
69# Link directories and libraries correctly
70target_link_libraries(${PROJECT_NAME} PRIVATE nvinfer nvinfer_plugin ${ALL_LIBS} ${catkin_LIBRARIES})
71if (${OpenCV_VERSION} VERSION_GREATER_EQUAL 4.7.0)
72 message(STATUS "Build with -DBATCHED_NMS")
73 add_definitions(-DBATCHED_NMS)
74endif()
2.1.1.1.1.2.2. package.xml¶
1<?xml version="1.0"?>
2<package format="2">
3 <name>camera_perception</name>
4 <version>1.0.0</version>
5 <description>The camera_perception package</description>
6
7 <maintainer email="philipp.wolf@curemannheim.de">Philipp Wolf</maintainer>
8 <maintainer email="maximilian.floto@curemannheim.de">Maximilian Floto</maintainer>
9
10 <license>MIT</license>
11
12
13 <buildtool_depend>catkin</buildtool_depend>
14 <build_depend>roscpp</build_depend>
15 <build_depend>rospy</build_depend>
16 <build_depend>sensor_msgs</build_depend>
17 <build_depend>std_msgs</build_depend>
18 <build_depend>utilities</build_depend>
19 <build_depend>image_transport</build_depend>
20 <build_depend>pcl_ros</build_depend>
21 <build_export_depend>roscpp</build_export_depend>
22 <build_export_depend>rospy</build_export_depend>
23 <build_export_depend>sensor_msgs</build_export_depend>
24 <build_export_depend>std_msgs</build_export_depend>
25 <build_export_depend>utilities</build_export_depend>
26 <exec_depend>roscpp</exec_depend>
27 <exec_depend>rospy</exec_depend>
28 <exec_depend>sensor_msgs</exec_depend>
29 <exec_depend>std_msgs</exec_depend>
30 <exec_depend>utilities</exec_depend>
31 <exec_depend>image_transport</exec_depend>
32 <exec_depend>pcl_ros</exec_depend>
33
34 <export>
35 </export>
36</package>