Understanding ros_control packages
The ros_control stack contains packages for writing ROS low-level controllers. The first package that we are going to discuss is the controller interface package.
The controller_interface package
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:

Initializating the controller
The first function executing when a controller is loaded is init(). The init() function will not start...