#include "ros2.hpp" namespace io { ROS2::ROS2() { rclcpp::init(0, nullptr); publish2nav_ = std::make_shared(); subscribe2nav_ = std::make_shared(); publish_spin_thread_ = std::make_unique([this]() { publish2nav_->start(); }); subscribe_spin_thread_ = std::make_unique([this]() { subscribe2nav_->start(); }); } ROS2::~ROS2() { rclcpp::shutdown(); publish_spin_thread_->join(); subscribe_spin_thread_->join(); } void ROS2::publish(const Eigen::Vector4d & target_pos) { publish2nav_->send_data(target_pos); } std::vector ROS2::subscribe_enemy_status() { return subscribe2nav_->subscribe_enemy_status(); } std::vector ROS2::subscribe_autoaim_target() { return subscribe2nav_->subscribe_autoaim_target(); } } // namespace io