Purpose of Forward Command Controller
I recently stumbled across the forward_command_controller/ForwardCommandController
ros controller while doing some research online. From the documentation, it seems that it can take multiple joints as input and simply forwards them over to the hardware interface node. But how is that different than what the position_controllers/JointGroupPositionController
does for positions? Or the velocity_controllers/JointGroupVelocityController
does for velocities, etc?
It seems like there is some redundancy here, and according to the controller documentation, the above controllers even use the forward command controller behind the scenes. This question applies to both ros1 and ros2.