Using a service to perform an action. Is it the wrong way around?
I have two different pieces of hardware (grippers) that are run by an action server. Their behavior is slightly different, and I need to write a piece of software that can run both grippers using the same syntax. So I need something like
open_gripper(distance)
close_gripper(distance)
and just need to specify somewhere which piece of hardware we are using.
Now someone suggested using a service to perform the action - the service performs the action in the appropriate way, and returns some feedback, and responds to the main program.
However, I'm still not sure when is the right time to use actions, and when is the right time to use a service. Based on what I've read, this seems like an upside down approach, but I'm not sure. Are there any examples of this sort of setup, or is it considered bad form?