2.2.4.1. SLAM ROS Package

2.2.4.1.1. slam

Package for SLAM

Maintainers:
Version:

2.0.0

License:

TODO

2.2.4.1.1.1. Dependencies

Build:
Build export:
Build tool:

catkin

Execution:

2.2.4.1.1.2. Package definition files

2.2.4.1.1.2.1. CMakeLists.txt

  1cmake_minimum_required(VERSION 3.21.0)
  2project(slam VERSION 2.0.0 LANGUAGES CXX CUDA)
  3
  4if(NOT CMAKE_BUILD_TYPE)
  5    message(STATUS "No build type selected, default to Release")
  6    set(CMAKE_BUILD_TYPE Release)
  7endif()
  8
  9# Set Flags for Debug and Release
 10set(CMAKE_CXX_FLAGS_DEBUG "-std=c++17 -g -fopenmp -Wall")
 11set(CMAKE_CXX_FLAGS_RELEASE "-std=c++17 -O3 -fopenmp")
 12set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-std=c++17 -fopenmp -O2 -g -DNDEBUG")
 13
 14
 15find_package(catkin REQUIRED COMPONENTS
 16  roscpp
 17  rospy
 18  roslib
 19  std_msgs
 20  utilities
 21  as_can_msgs
 22  gps_common
 23  novatel_oem7_msgs
 24  tf2_ros
 25)
 26
 27# CUDA
 28set(CMAKE_CUDA_ARCHITECTURES 60 61 62 70 72 75 86 89 90)
 29set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)
 30option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
 31find_package(CUDA REQUIRED)
 32find_package(CUDAToolkit REQUIRED)
 33get_filename_component(CUDA_LIB_DIR ${CUDA_LIBRARIES} DIRECTORY)
 34include_directories("${CUDA_INCLUDE_DIRS}")
 35find_package(Eigen3 REQUIRED)
 36find_package(nlohmann_json 3.2.0 REQUIRED)
 37find_package(OpenCV REQUIRED)
 38
 39catkin_package(
 40  CATKIN_DEPENDS roscpp rospy roslib std_msgs utilities as_can_msgs gps_common novatel_oem7_msgs tf2_ros
 41)
 42
 43include_directories(
 44  ${catkin_INCLUDE_DIRS}
 45  ${CMAKE_CURRENT_SOURCE_DIR}/include
 46  ${EIGEN3_INCLUDE_DIR}
 47  ${nlohmann_json_INCLUDE_DIRS}
 48  ${OpenCV_INCLUDE_DIRS}
 49)
 50
 51add_library(slam_landmark_sensors src/sensor/landmarks.cpp)
 52add_library(slam_wheelspeed_sensor src/sensor/wheelspeed.cpp)
 53add_library(slam_steering_sensors src/sensor/steering.cpp)
 54add_library(slam_novatel_sensors src/sensor/novatel.cpp)
 55add_library(slam_aceinna_sensors src/sensor/aceinna.cpp)
 56add_library(slam_sensors src/sensor/sensor.cpp)
 57add_library(slam_utils src/utils.cpp)
 58add_library(slam_data_association src/data_association.cpp)
 59add_library(slam_ukf src/ukf.cpp)
 60add_library(slam_sigma_points src/sigma_points.cpp)
 61
 62add_executable(slam src/slam.cpp)
 63
 64target_link_directories(slam PUBLIC ${OpenCV_LIBRARIES})
 65
 66target_link_libraries(slam
 67  ${catkin_LIBRARIES}
 68  slam_wheelspeed_sensor
 69  slam_novatel_sensors
 70  slam_sensors
 71  slam_landmark_sensors
 72  slam_aceinna_sensors
 73  slam_steering_sensors
 74  slam_utils
 75  slam_ukf
 76  slam_data_association
 77  nlohmann_json::nlohmann_json
 78  ${CUDA_LIBRARIES}
 79  ${CUDA_cublas_LIBRARY}
 80  ${OpenCV_LIBS})
 81
 82target_link_libraries(slam_ukf
 83  ${catkin_LIBRARIES}
 84  slam_wheelspeed_sensor
 85  slam_novatel_sensors
 86  slam_sensors
 87  slam_landmark_sensors
 88  slam_aceinna_sensors
 89  slam_steering_sensors
 90  slam_utils
 91  slam_sigma_points
 92  slam_data_association
 93  nlohmann_json::nlohmann_json
 94  ${CUDA_LIBRARIES}
 95  ${CUDA_cublas_LIBRARY}
 96  ${OpenCV_LIBS})
 97
 98if (${OpenCV_VERSION} VERSION_GREATER_EQUAL 4.7.0)
 99    message(STATUS "Build with -DBATCHED_NMS")
100    add_definitions(-DBATCHED_NMS)
101endif ()

2.2.4.1.1.2.2. package.xml

 1<?xml version="1.0"?>
 2<package format="2">
 3  <name>slam</name>
 4  <version>2.0.0</version>
 5  <description>Package for SLAM</description>
 6
 7  <maintainer email="ole.kettern@curemannheim.de">Ole Kettern</maintainer>
 8  <maintainer email="martina.scheffler@curemannheim.de">Martina Scheffler</maintainer>
 9  <maintainer email="lennart.mueller@curemannheim.de">Lennart Müller</maintainer>
10  <maintainer email="philipp.wolf@curemannheim.de">Philipp Wolf</maintainer>
11  <maintainer email="maximilian.floto@curemannheim.de">Maximilian Floto</maintainer>
12
13  <license>TODO</license>
14
15  <buildtool_depend>catkin</buildtool_depend>
16  <build_depend>roscpp</build_depend>
17  <build_depend>rospy</build_depend>
18  <build_depend>roslib</build_depend>
19  <build_depend>std_msgs</build_depend>
20  <build_depend>utilities</build_depend>
21  <build_depend>as_can_msgs</build_depend>
22  <build_depend>gps_common</build_depend>
23  <build_depend>novatel_oem7_msgs</build_depend>
24  <build_depend>tf2_ros</build_depend>
25  <build_export_depend>roscpp</build_export_depend>
26  <build_export_depend>rospy</build_export_depend>
27  <build_export_depend>roslib</build_export_depend>
28  <build_export_depend>std_msgs</build_export_depend>
29  <build_export_depend>utilities</build_export_depend>
30  <build_export_depend>as_can_msgs</build_export_depend>
31  <build_export_depend>gps_common</build_export_depend>
32  <build_export_depend>novatel_oem7_msgs</build_export_depend>
33  <build_export_depend>tf2_ros</build_export_depend>
34  <exec_depend>roscpp</exec_depend>
35  <exec_depend>rospy</exec_depend>
36  <exec_depend>roslib</exec_depend>
37  <exec_depend>std_msgs</exec_depend>
38  <exec_depend>utilities</exec_depend>
39  <exec_depend>as_can_msgs</exec_depend>
40  <exec_depend>gps_common</exec_depend>
41  <exec_depend>novatel_oem7_msgs</exec_depend>
42  <exec_depend>tf2_ros</exec_depend>
43
44  <export>
45  </export>
46</package>