rm_vision/io/ros2/ros2.cpp
2025-12-15 02:33:20 +08:00

37 lines
820 B
C++

#include "ros2.hpp"
namespace io
{
ROS2::ROS2()
{
rclcpp::init(0, nullptr);
publish2nav_ = std::make_shared<Publish2Nav>();
subscribe2nav_ = std::make_shared<Subscribe2Nav>();
publish_spin_thread_ = std::make_unique<std::thread>([this]() { publish2nav_->start(); });
subscribe_spin_thread_ = std::make_unique<std::thread>([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<int8_t> ROS2::subscribe_enemy_status()
{
return subscribe2nav_->subscribe_enemy_status();
}
std::vector<int8_t> ROS2::subscribe_autoaim_target()
{
return subscribe2nav_->subscribe_autoaim_target();
}
} // namespace io