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:

Get Mastering ROS for Robotics Programming - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.