Full State Diagram: Pick and Place Node
The robotic pipeline used in the project involves two general nodes: a collaborative decision maker, and a pick-and-place node. The design was implemented this way because the resource gathering task can be broken up into many sub pick-and-place tasks that can be directed by the collaborative decision making node.
The collaborative decision maker is responsible for viewing the AprilTags, and understanding from that which blocks are relevant for the task and in which order the task should be completed. This node will do this for completing both our on resource assembly, as well as for mimicking our collaborating team's assembly. Once this node has decided what order to pick up the blocks and where to place them, the collaborative decision making node will then direct the pick-and-place node.
The pick-and-place node takes in inputs of which block to pick up, and where to place that block. For each block that is to be gathered, the pick-and-place node accomplishes picking and placing for each block, and then waits for the collaborative decision maker to send it another task where it will pick and place consecutive blocks until the collaborative decision maker deems that the full resource gathering task is complete.