The basic ROS low-level controller that we want to implement must inherit a base class called controller_interface::Controller from this package. This represents a base class containing four fundamental functions: init() , start(), update(), and stop(). The basic structure of the Controller class is given as follows:
namespace controller_interface { class Controller { public: virtual bool init(hardware_interface *robotHW, ros::NodeHandle &nh); virtual void starting(); virtual void update(); virtual void stopping(); }; }
The workflow of the controller class is shown as follows: