Object detect and give position

For an industrial project, I try to automatically have the position for a certain number of the same object (we know the shape and dimensions).
But the objects are placed overlap in bulk in a tank.
The number of objects is not defined.
The objects are not always the same.
A camera is automatically positioned over the tank, but it can be moved to do pseudo-3D.
The objective of the code is to give the position of the center of one or more objects as well as its orientation.
The information will be used by a robot to catch them.
I have alerady try findContours and minAreaRect, but it work if objects is spaced but not is they are overlap.