diff --git a/src/beacon_positioning/CMakeLists.txt b/src/beacon_positioning/CMakeLists.txt index 8841d161..480f22e6 100644 --- a/src/beacon_positioning/CMakeLists.txt +++ b/src/beacon_positioning/CMakeLists.txt @@ -24,14 +24,14 @@ find_package(rclcpp REQUIRED) find_package(std_msgs REQUIRED) find_package(positioning_systems_api REQUIRED) find_package(rosidl_default_generators REQUIRED) -find_package(beacon_positioning REQUIRED) +#find_package(beacon_positioning REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME} "msg/TrackerPosition.msg" # message for tracker position ) add_executable(tracker_position src/tracker_position.cpp) -ament_target_dependencies(tracker_position rclcpp std_msgs beacon_positioning) +ament_target_dependencies(tracker_position rclcpp std_msgs) target_link_libraries(tracker_position positioning_systems_api::serial_communication diff --git a/src/height/CMakeLists.txt b/src/height/CMakeLists.txt index 8cd4b7d9..d059c6d6 100644 --- a/src/height/CMakeLists.txt +++ b/src/height/CMakeLists.txt @@ -19,7 +19,6 @@ endif() find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(TerabeeApi REQUIRED) -find_package(height REQUIRED) add_executable(height_reader src/height_reader.cpp) target_include_directories(height_reader PUBLIC @@ -32,7 +31,7 @@ target_include_directories(height_reader PUBLIC ament_target_dependencies( height_reader rclcpp - height + TerabeeApi ) install(TARGETS height_reader diff --git a/src/height/package.xml b/src/height/package.xml index 78221ce1..8a5fefe4 100644 --- a/src/height/package.xml +++ b/src/height/package.xml @@ -3,9 +3,9 @@ height 0.0.0 - TODO: Package description + package to read Terabee node ubuntu - TODO: License declaration + Apache License 2.0 ament_cmake diff --git a/src/height/src/height_reader.cpp b/src/height/src/height_reader.cpp index 6b157114..3ba06530 100644 --- a/src/height/src/height_reader.cpp +++ b/src/height/src/height_reader.cpp @@ -1,10 +1,79 @@ -#include +#include +#include -int main(int argc, char ** argv) +#include "rclcpp/rclcpp.hpp" + +#include +#include +#include + +using namespace std::chrono_literals; + +using terabee::DistanceData; +using terabee::ITerarangerEvoMini; + +std::ostream &operator<<(std::ostream &os, const DistanceData &d) { - (void) argc; - (void) argv; + os << "["; + for (size_t i = 0; i < d.distance.size(); i++) + { + os << d.distance[i] << ", "; + } + os << "\b\b" + << " ]"; + return os; +} + +class HeightReader : public rclcpp::Node +{ +public: + HeightReader() : rclcpp::Node("height_reader") + { + rcl_interfaces::msg::ParameterDescriptor descriptor = rcl_interfaces::msg::ParameterDescriptor{}; + descriptor.description = "serial port for the USB port of the height sensor"; + + this->declare_parameter("height_serial_port", "/dev/ttyACM0", descriptor); + + factory = terabee::ITerarangerFactory::getFactory(); + evo_mini = factory->createTerarangerEvoMini(this->get_parameter("height_serial_port").as_string()); + + if (!evo_mini) + { + RCLCPP_ERROR(this->get_logger(), "Failed to create Evo Mini!"); + return; + } + + evo_mini->setPixelMode(ITerarangerEvoMini::Px4Mode); + + if (!evo_mini->initialize()) + { + RCLCPP_ERROR(this->get_logger(), "Failed to initialize evo mini!"); + return; + } + + RCLCPP_INFO(this->get_logger(), "Succesfully initialized Evo mini!"); + + timer_ = this->create_wall_timer(500ms, std::bind(&HeightReader::read_height, this)); + } + +private: + void read_height() + { + std::cout << "Distance = " << evo_mini->getDistance() << std::endl; + } + + rclcpp::TimerBase::SharedPtr timer_; + + std::unique_ptr factory; + std::unique_ptr evo_mini; +}; + +int main(int argc, char **argv) +{ + + rclcpp::init(argc, argv); + rclcpp::spin(std::make_shared()); + rclcpp::shutdown(); - printf("hello world height package\n"); return 0; } diff --git a/src/object_detection/CMakeLists.txt b/src/object_detection/CMakeLists.txt index d5009b96..35d60383 100644 --- a/src/object_detection/CMakeLists.txt +++ b/src/object_detection/CMakeLists.txt @@ -23,7 +23,7 @@ find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(TerabeeApi REQUIRED) find_package(rosidl_default_generators REQUIRED) -find_package(object_detection REQUIRED) +#find_package(object_detection REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME} "msg/LidarReading.msg" @@ -31,13 +31,13 @@ rosidl_generate_interfaces(${PROJECT_NAME} ) add_executable(lidar_reader src/lidar_reader.cpp) -ament_target_dependencies(lidar_reader rclcpp object_detection) +ament_target_dependencies(lidar_reader rclcpp) target_link_libraries(lidar_reader ${TerabeeApi_LIBRARIES}) target_include_directories(lidar_reader PUBLIC ${TerabeeApi_INCLUDE_DIRS}) add_executable(multiflex_reader src/multiflex_reader.cpp) -ament_target_dependencies(multiflex_reader rclcpp object_detection) +ament_target_dependencies(multiflex_reader rclcpp) target_link_libraries(multiflex_reader ${TerabeeApi_LIBRARIES}) target_include_directories(multiflex_reader PUBLIC ${TerabeeApi_INCLUDE_DIRS})