How to make a "Virtual" Pallet


Thread Starter

Kris Grindstaff

I am trying to figure out how to create a frame to use in palletizing. If I have a tray with 12 rows and 18 columns, and I know the X,Y,Z, and Theta coordinates (in millimeters) for the position in each of the four corners, how can I calculate the X,Y,Z and Theta positions for each position on the tray? There should be 216 total positions.

Kris, this should be very straightforward, but I'm unclear as what you mean by the "theta" address. Please e-mail me the definition
The theta is the angle of rotation of the robot which you would palletize with; it is not needed for this problem. Take a very simple case: a 2x1 pallet on the XY plane.
- Number the the parts as on a "BattleShip" board
Let's assume the coordinates (X,Y) are:

A0 A1 (0,0) (200,0)
No problem -both positions are known.

- Next simplest case, expand it to 3x1
A0 A1 A2 (0,0) (?) (200,0)

- you know the 2 ends, so you only need the X for A1:

X(A1) = [X(A2) - X(A0)]/2

Divide by 2 as it is halfway between the first part and the last part in that row. Easy so far!

- Now go to a generic pallet with 'N' columns, (START THE NUMBERING AT ZERO,
it makes the math easier) and figure out the position of part 'n':
X(An) = [X(AN) - X(A0)]/N

Extrapolate this and you've the formula for any size pallet, in any number of dimensions.

X(An) = [X(AN) - X(A0)]/N
X(Bn) = [X(BN) - X(B0)]/N
Y(An) = [Y(AN) - Y(A0)]/N
Y(Bn) = [Y(BN) - Y(B0)]/N
Z(An) = [Z(AN) - Z(A0)]/N
Z(Bn) = [Z(BN) - Z(B0)]/N

Do you mean that z,theta are the polar coordinates? If so then the coordinates for the position xn,ym are given by: xn = x1+(n-1)*(x18-x1)/17 ym = y1+(m-1)*(y12-y1)/11 znm = SQRT(xn^2+ym^2) Thetanm = ARCTAN(ym/xn) If you mean that you want to determine coordinates for numbered positions then there is a preliminary step to determine the x,y coordinate positions. Suppose the positions are numbered from 1 to 216 starting at the bottom left hand corner and progressing left to right, bottom to top then the coordinates for any position P
x coordinate position n = 1+REMAINDER((P-1)/18))
y coordinate position m = 1+INT((P-1)/18))

I hope that's what you wanted.... I hope it's right!! .... you'd better check it.