Alternatively, we can program a list of waypoints and send them to the robot with only the press of a button, even when we are not in front of a computer with RViz. In this section, we will learn how to do this by using actionlib. We already discussed actionlib in Chapter 3, ROS Architecture and Concepts - II.
However, actionlib has a very similar interface to services, but if the server is taking a long time to process the request, the client can cancel the request during execution. In addition, it will also be receiving periodic feedback about how the request is progressing.