Advantage of using controllers for robot in gazebo
I am little confused that what are the benefit of using controllers, either pre-existing ros controller or creating new one to control the robot mode in gazebo simulator. As i've seen that by using model plugins i can directly send every commands to the robot through model plugins, like trajectorypoints which is important for robot kinematics. Currently i just want to somehow send the trajectory msgs to robot in gazebo from a ros node + visualizing its actions in rviz. And also how can i careate a new controller type if wanted, is their any tutorial for this?
A controller is a set of equations that reduce the error to zero. If you want to follow a line you have your sensors(image plugin) and your motor driver(differential driver plugin) what seat between this two elements and take the decision in how much power to place on each motor is a controller. A controller gives you the first layer of autonomy. Your error following a line is the difference between your actual position and the perfect position over the line.