Implementing a finite state machine on a pick-and-place robot.

Introduction

Pick and place is one of the common applications for manipulators. This application refers to a sequence of robot picking an object and placing it.

The following demo from MoveIt (manipulation framework on ROS) shows the pick and place sequence.

The above demo shows a pick and place sequence starting from an initial home pose. The pick motion starts from the home pose to a certain pick pose based on the given object. Then, the place motion moves the robot to a final place pose. The tutorial page also provides the code on how to run a pick and place sequence.

A finite state machine is required to develop a real pick-and-place robot system (not only a demo). Utilizing a state machine enables the handling of different sequences, either normal or abnormal sequences, in use cases. For example, there may be use cases for pick-place a single object and pick-place multiple objects. The state machine makes it easy to design the sequence after the robot reaches the final place pose for certain use cases.

A simple state machine for pick and place

The following image shows a simple state machine for a pick and place robot.

The above state machine handles a “cycle” of pick-and-place sequence.

A more detailed state machine is necessary to handle more error sequences, e.g. robot fails to pick.