8#include "config/parameters.hpp"
9#include "custom_interfaces/msg/operational_status.hpp"
10#include "custom_interfaces/msg/path_point_array.hpp"
11#include "custom_interfaces/msg/pose.hpp"
12#include "custom_interfaces/msg/velocities.hpp"
13#include "utils/utils.hpp"
14#include "rclcpp/rclcpp.hpp"
16#include "std_msgs/msg/float64_multi_array.hpp"
41 void path_callback(
const custom_interfaces::msg::PathPointArray &msg);
54 std::map<std::string, std::shared_ptr<rclcpp::PublisherBase>>
publisher_map_;
68 rclcpp::Subscription<custom_interfaces::msg::Velocities>::SharedPtr
velocity_sub_;
Class responsible for the ROS2 communication of the control module.
std::shared_ptr< std::vector< double > > _execution_times_
std::shared_ptr< ControlSolver > control_solver_
void vehicle_state_callback(const custom_interfaces::msg::Velocities &msg)
Called when a new velocity is received.
rclcpp::Subscription< custom_interfaces::msg::PathPointArray >::SharedPtr path_point_array_sub_
virtual void publish_command(common_lib::structures::ControlCommand cmd)=0
Adapters override this function to publish control commands in their environment.
std::map< std::string, std::shared_ptr< rclcpp::PublisherBase > > publisher_map_
ControlParameters params_
void vehicle_pose_callback(const custom_interfaces::msg::Pose &msg)
Called when a new vehicle pose is received.
rclcpp::Publisher< std_msgs::msg::Float64MultiArray >::SharedPtr execution_time_pub_
void path_callback(const custom_interfaces::msg::PathPointArray &msg)
Called when a new path is received.
rclcpp::TimerBase::SharedPtr control_timer_
rclcpp::Subscription< custom_interfaces::msg::Pose >::SharedPtr vehicle_pose_sub_
rclcpp::Subscription< custom_interfaces::msg::Velocities >::SharedPtr velocity_sub_
void control_timer_callback()
Function that publishes control commands on timer ticks.