ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

SimpleActionServer and SimpleActionClient are designed to be 'simple' examples of how to do things. They are not designed to be a complete API reference.

Any actions taken in a callback received for a new goal should not be long running. The user may, of course, signal another thread to do work, but should not block.

Isn't that exactly the point of actions, that they are long running? Does that mean that the fibonnaci example is actually bad practice?

This approach will not support parallel evaluation because it does not delegate to another thread. But if we were to add that level of complexity it would start to no longer be a beginner tutorial. It's not the best, but in this case it's not going to hurt anything.

Defining long running is somewhat subjective. This example callback runs for a while but doesn't wait on external stimulus etc. Note that in some cases long running can refer to things that last hours.

Thanks for the detailed question but please separate your questions into different questions so that one does not need to try to answer 3 questions at once.