For a sorting machine where the objects to be sorted have various sizes, color, shapes, and patterns, is it more optimal (in terms of minimal time of the overall process and maximal precision and accuracy) to use a sorting algorithm or to use different dimensions in the physical design to do the sorting?
It really depends on the objects you are sorting, and the flexibility you're looking for as the system is maintained over the years.
Using physical methods to sort is very reliable. Many times you can align the parts, such as by using curves, chutes, vibration, and parts feeding mechanisms. Look up vibratory bowl feeders and cap feeders for examples. You can sometimes pre-sort a large collection of different products into smaller groups of products, too, and the solution for one group may be different from the solution for the other groups. If you can properly orient and align the objects, it may be simpler to use physical sorting methods than trying to identify the different parts using software. But this isn't a black-and-white statement. For instance, if one of your parts is always higher than the rest of the parts, a simple through-beam sensor located higher than all but the tallest product, tied to an ejecting cylinder is quite straightforward to implement. In this case, there is both software and hardware involved. However, as the product mix changes over time, you may have to redesign the hardware sorting mechanisms to accomodate those changes. This redesign can sometimes be quite difficult.
If you want the most flexibility (as in the case where the parts you are sorting may change over time), then a vision-guided system offers this. However, even these systems will benefit by first controlling the fed parts before they encounter the vision system. This is especially true if the objects have different visual characteristics when viewed from one side as compared to being viewed from another side. You can use speed changes of conveyors to guarantee spacing between parts to facilitate the vision processing, plus other parts feeding techniques that reduce the area in which your vision system must operate. So again, it is a combination of mechanical and software means.
The software-guided sorting usually takes longer to set up and train, and you'll have to deal with things like color variations, structured lighting, and possibly speed issues. But it offers greater flexibility as requirements change. Many robotics manufacturers offer very powerful vision-based add-ons (Fanuc is one), which help shorten the vision-to-robot integration time.
Therefore "it depends."
You would have to do both. It's very very challenging to move an object without using hardware, and it's incredibly hard to see the colour of a brick with hardware.
You'd have to break it down into a few pieces:
- Shape and size (you can't detect the size and shape with a robot easily)
- Movement of pieces