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

Build:
  • roscpp

  • rospy

  • sensor_msgs

  • std_msgs

  • utilities

  • image_transport

  • pcl_ros

Build export:
  • roscpp

  • rospy

  • sensor_msgs

  • std_msgs

  • utilities

Build tool:

catkin

Execution:
  • roscpp

  • rospy

  • sensor_msgs

  • std_msgs

  • utilities

  • image_transport

  • pcl_ros

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>