Quantcast
Channel: Reprap Forum - Delta Machines
Viewing all articles
Browse latest Browse all 20291

Re: Grounded Experimental Delta Printer

$
0
0
I thought I doodled the inverse kinematics up at the start of this thread.

[forums.reprap.org]
They need a little updating for the new design.

Nicholas.Seward used essentially the same math, but with some simplifications. I don't think that some of those simplifications still apply (e.g. shoulder joints are no longer cosited in the x-y plane.
Quote
Annirak
You have three input variables: the three angles of the elbow joints, Aa, Ab, Ac. You have three outputs: x,y,z. We need to go the opposite direction.

There are ten givens.
The three base vectors. These are the offsets between the origin and the centre of the horizontal shoulder joint.
Ba =
Bb =
Bc =

The horizontal offset between the horizontal shoulder joint and the vertical shoulder joint; positive if the vertical joint is more central than the horizontal one, negative otherwise.
sx

The length between the nozzle's central axis and the attachment point of the arm.
nx

The height of each arm's nozzle bearing above the nozzle.
nva,nvb,nvc

The scalar lengths of the two arm segments
l1, l2


Note that I am assuming that Ba,Bb,Bc are at the centre of the horizontal shoulder joint's axis, but at the height of the vertical shoulder joint's axis. With that out of the way, here's the math:

Let P be the position vector of the nozzle. P =

Let Ha,Hb,Hc be the vector between each Bx and the nozzle.
Ha = P-Ba
Hb = P-Bb
Hc = P-Bc
(9 subtractions)

Let ra,rb,rc be the cylindrical, radial distance from each, respective shoulder joint's horizontal axis to the nozzle
ra = sqrt(Ha_x^2 + Ha_y^2)
rb = sqrt(Hb_x^2 + Hb_y^2)
rc = sqrt(Hc_x^2 + Hc_y^2)
(6 multiply, 3 add, 3 sqrt)
Where Ha_x is the x-component of Ha, Ha_y is the y-component of Ha, etc.

Let la,lb,lc be the length of each, respective arm from the vertical shoulder to the wrist joint.
la = sqrt( (ra-sx-nx)^2 + (Ha_z + nva)^2 )
lb = sqrt( (rb-sx-nx)^2 + (Hb_z + nvb)^2 )
lc = sqrt( (rc-sx-nx)^2 + (Hc_z + nvc)^2 )
(6 multiply, 6 add, 3 subtract)

This is where it gets different from the previous kinematics I posted. That length is actually the control variable. Let's call the inside-length of arm A LIa, and the outside length of arm A LOa.

We already know that LIa + LOa is constant, so we'll just control LIa, since it is proportional to la, derived above.

So, finally, the control variables are:
LIa = fc(la-gc)/sc
LIb = fc(lb-gc)/sc
LIc = fc(lc-gc)/sc
where:
sc is the proportionality constant between the movement of the arms and the string
gc is the constant separation between the centres of the gears.
fc is the force multiplication constant of the block & tackle arrangement

That should do it.


An important note: If this isn't already obvious, the torque division between the threads and the arm ends should be a power of two in order to simplify the math. Similarly, that requirement can be removed by making them an integral multiple of the length and using an equivalent block & tackle force multiplier.

To be perfectly clear, if dt is the distance between the gear centre and a thread and da is the distance between the gear centre and the arm end, then da/dt should be an integer. This is even better if da/dt is a power of 2.

Viewing all articles
Browse latest Browse all 20291

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>