DSPRelated.com
Forums

Coordinated Motion

Started by James Williams October 8, 2004
So what you are saying is that once the time for the major axis has been
determine to set the velocity, then calculate the velocity for the minor
axis and send the destination postion + each independent velocity to the
servo units, then they should follow the path on their own without any need
to check the real time coordination during the move.  In essents the 2 axis
move independent of each other once they have been set up.

I take it that the servo units are accurate enough to ensure that they will
move in a uniform distance over the time neccessary to finish the move.
Otherwise multiaxis checking would be needed.

"Jerry Avins" <jya@ieee.org> wrote in message
news:2sp4dkF1nsivuU1@uni-berlin.de...
> James Williams wrote: > > > I should clarify what I was asking. I have a 2 axis system for which I
want
> > to move a pen. X ans Y for example. When using stepping motors this is > > easy to do because you just move 1 step on the major controlling axis,
then
> > only move a step on the minor axis when its integer error is possible. > > Hence, the bresenham integer algorithm for staying on a line or circle. > > > > However, with servos you can't just command it to move 1 step. Instead
you
> > determine a velocity and position for each axis and command them to
move.
> > My question is once the two axis have been command to move, they then
run
> > independent, but what types of checks and balances are normally used to
make
> > sure that during the movement, the minor axis is remaining on the line
with
> > respect to the major axis move. Hence what type of check is being used
to
> > ensure that the coordinated move of the two axis remain on the vector
path
> > or line from point 1 to point 2 that is not requiring huge time
consuming
> > calculations. Is it that you just monitor the velocity of each axis and > > make adjustments if one is out of sych with the major or what. It seems > > difficult if not impossible to find information of this subject. I am > > wanting to make a small CNC router at home, but I would like to use
servos
> > because they have better speeds over stepper motor systems, but I just
can't
> > figure out how to cooridnate 2 or 3 axis. I know how to calculate the > > vector of the path, the velocity that the major axis must move and the > > velocity of the minor axis with respect to the major axis. But not how
to
> > easily check the two or three axis once motion has begun. I am trying
to
> > fine a descent method that will provide good performance on a 16bit DSP > > process. > > > > Is there any good reference sites on this subject that uses a servo
system
> > to do 3 axis coordinated motion for linear interpelation and circular > > interpelation? > > > > Thanks, > > > > > > James. > > Nowadays, most servos get position information from an incremental > encoder, rather than from an analog device like a slide wire. In effect, > they behave in some respects like steppers with hundreds or even > thousands of steps per turn. The way to make an X-Y table follow a line > or a curve is to compute each point on the curve and use the coordinates > as the command inputs of Z and Y servos, choosing the update speed to > achieve the desired velocity. It is sufficient for some purposes > maintain some maximum speed along the axis of fastest motion. For > others, for example, milling or exposing film on a Gerber plotter, speed > along the curve itself needs to be controlled. Usually, approximating > sqrt(a^2 + b^2) as [max(a,b) + c*min(a,b)] where c is 1/2 or 3/8 is good > enough for that. (http://www.dspguru.com/comp.dsp/tricks/alg/mag_est.htm > has more detail.) > > You rely on the servo to go to the commanded position accurately enough > in the time available, just as you would with stepper motors. Instead of > inputting a step command to a stepper, you move the analog servo ahead > to the next encoded position, and do it rapidly enough so that the > motion is continuous. For the fastest motion, watch the encoder to > confirm arrival, then update the command before the servo can slow down. > The servo will accelerate at the maximum possible rate as long as this > regime id followed. We do the same thing (or nearly, open loop) when we > ramp steppers. > > Jerry > -- > When a discovery is new, people say, "It isn't true." > When it becomes demonstrably true, they say, "It isn't useful." > Later, when its utility is evident, they say, "So what? It's old." > a paraphrase of William James > &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
James Williams wrote:

> So what you are saying is that once the time for the major axis has been > determine to set the velocity, then calculate the velocity for the minor > axis and send the destination postion + each independent velocity to the > servo units, then they should follow the path on their own without any need > to check the real time coordination during the move. In essents the 2 axis > move independent of each other once they have been set up. > > I take it that the servo units are accurate enough to ensure that they will > move in a uniform distance over the time neccessary to finish the move. > Otherwise multiaxis checking would be needed.
One way is to determine the time for the major axis updates and then to update both axes at that rate. You get the same zig-zag trajectory as with steppers, but the steps can be much finer. There's little to be lost by moving along both axes or only one, even when the optimum step location on the minor axis would fall between two major-axis steps. If the grid is coarse enough for that to matter, it's too coarse anyway. Jerry -- When a discovery is new, people say, "It isn't true." When it becomes demonstrably true, they say, "It isn't useful." Later, when its utility is evident, they say, "So what? It's old." a paraphrase of William James &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;