Improved pick and place algorithm
One of the reasons why Phystech is investing in collaborative robotics is precisely because of its great versatility. It is the wide spectrum of applications that makes us work passionately in this field. We know that with our talent we can offer our clients value to their activities and improve processes.
Undoubtedly one of the main activities in which a collaborative robot is in great demand is pick-and-place or pick-and-place. It seems like a simple task, so much so that it is widely used in tutorials or courses that are taught to teach the basic concepts of programming a collaborative robot. However, the challenges are greater depending on the need in the process. Starting from an arrangement of objects in disorder to bring them to an orderly structure is far from being a trivial task. Much more, if it is required to do this work quickly and efficiently.
That is why we decided to investigate more about it, and we came across the following article:
Aminzadeh, V., Wurdemann, H., Dai, JS, Reed, J. and Purnell, G. (2010), «A new algorithm for pick-and-place operation», Industrial Robot, Vol. 37 No. 6, pp. 527-531. https://doi.org/10.1108/01439911011081678
The article addresses the issue of pick-and-place in a theoretical way. There are many simple algorithms that do this job. The authors make an evaluation of these and propose an improved algorithm. His article describes in detail the algorithm and the performance of some computational experiments – simulations.
The algorithm developed in this paper minimizes the distance travelled by the robot by choosing the right assignment between the disarrayed products and the structured positions.
The problem – mathematical description
How do we go from a set of n disarrayed products in a conveyor into a structured (organized) state.
Let the total distance «c» traveled by the robot when picking a product to its final position, be our optimization parameter. The problem can be described as follows:
First step – the algorithm
After studying the article, we developed a simulation program in Python 3 that is robust enough that it could simulate any implementation of a pick-and-place. This is very important if we want to compare results among different algorithms.
Our results are shown in the graph below.
Experimentation in the laboratory
Having implemented the algorithm in a simulation, the next step is its implementation in real life. But this part will be the subject of another blog.