What are the criteria for selecting services or actions? Did they change in ROS2 due to asynchronous services?
In ROS1, this page says that services
- should be used for remote procedure calls that terminate quickly
- should never be used for longer running processes
I'm not sure the specific amount of "long", but I guess this is because services were synchronous in ROS1, am I correct?
Now I think services became asynchronous in ROS2 and this page doesn't say we shouldn't use services for long tasks. Also, seeing this page, I think the point of selecting services or actions are
- whether we cancel tasks
- whether we need feedback
So I guess we can use services for a bit long tasks now. For example, suppose that there is a task that takes 30 seconds, and we don't need to know the progress and don't need to cancel it.
Is it okay to use services for the task? Or are any problems?