Skip to content

File controller.hpp

File List > controls > sae_2025_ws > src > payload > include > payload > controller.hpp

Go to the documentation of this file

#ifndef CONTROLLER_HPP
#define CONTROLLER_HPP

#include <memory>
#include <rclcpp/rclcpp.hpp>

/*
Abstract class interface for all payload controllers to implement
All main functionalities should be virtual functions here
*/

class Controller
{
public:
  virtual ~Controller() = default;
  virtual void initialize(rclcpp::Node * node) = 0;
  virtual void drive_command(double linear, double angular) = 0;
  virtual void servo_command(double degree) = 0;
  virtual void safe_shutdown() = 0;
  // TODO: add position_setpoint functionality
};

#endif