Task executor - FontysAtWork/ESA-PROJ GitHub Wiki

This node was made with one main function in mind, executing the tasks that are sent by the task handler. This task handler sends individual tasks on an action server and this node sends the corresponding actions to the arm/move_base/vision.

The node provides a TaskAction class. This class provides the action server and the implementation of the related messages that the node has to send. It also houses the necessary markers that are needed to make the tasks work as they should.

Getting the markers into the program involves using a yaml file with markers in it. This is made by using the GUI and then using the same library that was created, nav_lib, read into the program and made into a vector containing these markers.

Navigation Task

When the action server receives a navigation task to process it first parses this goal to find what type of task it is and set the corresponding variables necessary to complete this task. After retrieving the necessary variables it uses these variables to connect the Task to a specific marker made by the GUI beforehand. If this marker is found it then sends the pose of the marker to the move_base action provided by the robot. After sending the pose it waits for a specified time by the task. After this is sets the task to succeeded and returns the result.

When no marker is found to correspond to the Task it aborts the task by setting the result as aborted and returning this instead. It doesn't wait or make any movements.

Transportation task

This has not been implemented yet.

Diagram

The following diagram shows the communication between the nodes:

/img/refbox/Refbox-Comm.png