When developing a pick and place application, a program is needed to determine how the robot behaves. For robots executing the same task over and over again, this is quite easy. But what if it has to deal with many product variations and unexpected situations? To improve our robot’s pick and place performance, we have developed the Application Decision Engine within Smart Robotics, as part of our Task Planning software.
Traditional robot programming involves giving a robot or cobot a list of commands it has to follow in a loop. Take a look at this palletizing example: ‘move to pick location – pick a box – move to pallet – place on pallet – move to pick location’, etc. But what if the robot moves to the pick location and there is no box available? It would continue to blindly follow commands: try to pick a box – which fails because the box is not there – move to the pallet, and place … nothing!
Now, you could add a condition check to avoid this situation. However, if you want to avoid all things that can go wrong, you need a lot of conditions, which results in the robot’s programming being cluttered with exceptions: ‘wait for’, ‘if this… then’. The program becomes too complex and harder to maintain
A solution is to turn it around. Instead of following a list of commands and sometimes check a condition, always check conditions and sometimes follow a list of commands. Confusing, right? Let us take a look at an example:
The robot’s first step is to move to the pick position and pick a box. But first, it asks itself a question: ‘Am I holding a box?’. If ‘yes’, the robot can move to the pallet. If ‘no’, the robot moves to the pick position to pick one, after which it will ask itself again ‘Am I holding a box?’. Now, the answer is ‘yes’, so it will move to the pallet again.
If a pick and place robot continuously asks itself these types of questions, it will always know the corresponding command. This brings several advantages:
This type of program is called a ‘decision tree’: the robot decides upon an action based on a series of questions. At Smart Robotics, we have built a complete framework around the ‘decision tree’ concept to make the programming of our pick and place robots such as the Smart Palletizer, Smart Item Picker and Smart Parcel Picker even easier by reusing software across applications. This is called the Application Decision Engine. For us, creating more intelligence is like growing another branch to the tree.