Base class for control solvers, that calculate both lateral and longitudinal control commands.
virtual void path_callback(const custom_interfaces::msg::PathPointArray &msg)=0
Called when a new path is sent by Path Planning.
std::shared_ptr< LongitudinalController > longitudinal_controller_
void path_callback(const custom_interfaces::msg::PathPointArray &msg) override
Called when a new path is sent by Path Planning.
std::shared_ptr< LateralController > lateral_controller_
void publish_solver_data(std::shared_ptr< rclcpp::Node > node, std::map< std::string, std::shared_ptr< rclcpp::PublisherBase > > &publisher_map) override
Publishes solver specific data using the provided ControlNode.
common_lib::structures::ControlCommand get_control_command() override
Returns the control command calculated by the solver.
DecoupledController(const ControlParameters ¶ms)
void vehicle_state_callback(const custom_interfaces::msg::Velocities &msg) override
Called when the car state (currently just velocity) is updated.
void vehicle_pose_callback(const custom_interfaces::msg::Pose &msg) override
Called when the car pose is updated by SLAM.
const std::map< std::string, std::function< std::shared_ptr< LateralController >(const ControlParameters &)>, std::less<> > lateral_controller_map
const std::map< std::string, std::function< std::shared_ptr< LongitudinalController >(const ControlParameters &)>, std::less<> > longitudinal_controller_map