From 1c3ab27707e38b50d1e2cff89ec5998ee8a7b336 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 19 Apr 2023 14:00:44 +0000 Subject: [PATCH] add object detection package --- src/object_detection/CMakeLists.txt | 48 +++++++++++++++++++++++ src/object_detection/package.xml | 22 +++++++++++ src/object_detection/src/lidar_reader.cpp | 43 ++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 src/object_detection/CMakeLists.txt create mode 100644 src/object_detection/package.xml create mode 100644 src/object_detection/src/lidar_reader.cpp diff --git a/src/object_detection/CMakeLists.txt b/src/object_detection/CMakeLists.txt new file mode 100644 index 00000000..7c3ff38c --- /dev/null +++ b/src/object_detection/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.5) +project(object_detection) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +# uncomment the following section in order to fill in +# further dependencies manually. +# find_package( REQUIRED) +find_package(rclcpp REQUIRED) +find_package(TerabeeApi REQUIRED) + +add_executable(lidar_reader src/lidar_reader.cpp) +ament_target_dependencies(lidar_reader rclcpp) + +target_link_libraries(lidar_reader ${TerabeeApi_LIBRARIES}) +target_include_directories(lidar_reader PUBLIC ${TerabeeApi_INCLUDE_DIRS}) + +install(TARGETS + lidar_reader + DESTINATION lib/${PROJECT_NAME} +) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/src/object_detection/package.xml b/src/object_detection/package.xml new file mode 100644 index 00000000..02c38d67 --- /dev/null +++ b/src/object_detection/package.xml @@ -0,0 +1,22 @@ + + + + object_detection + 0.0.0 + Package to read the TeraBee lidar and multiflex sensors + sem + Apache License 2.0 + + ament_cmake + + ament_lint_auto + ament_lint_common + + rclcpp + TerabeeApi + TerabeeApi + + + ament_cmake + + diff --git a/src/object_detection/src/lidar_reader.cpp b/src/object_detection/src/lidar_reader.cpp new file mode 100644 index 00000000..29e70f64 --- /dev/null +++ b/src/object_detection/src/lidar_reader.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#include "rclcpp/rclcpp.hpp" + +#include +#include +#include +#include + +using terabee::ITerarangerTowerEvo; +using terabee::TowerDistanceData; +using terabee::ImuData; + +using namespace std::chrono_literals; + +/* This example creates a subclass of Node and uses std::bind() to register a +* member function as a callback from the timer. */ + +class LidarReader : public rclcpp::Node +{ + public: + LidarReader() + : Node("lidar_reader") + { + } + + private: + void timer_callback() + { + RCLCPP_INFO(this->get_logger(), "yeet"); + } +}; + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::spin(std::make_shared()); + rclcpp::shutdown(); + return 0; +}