On 11 June 2010 13:46, Viesturs Lācis <[email protected]> wrote:

> 13     double xy_tan = atan2(pos->tran.y - old.y,pos->tran.x - old.x);

I have been thinking about this some more, and it is too simplistic
and may be causing problems.

What happens when X and Y are stationary? atan2(0,0) is undefined.
Then as soon as one axis moves fractionally the kinematics will try to
send the head shooting off to the correct tangential position.

I am not sure how to handle this,it might be that EMC handles such
situations and limits the rates of change of the axes, or it might
have to be handled inside the Kinematics module.

I don't know if a kinematics module can know anything more about the
machine state than is contained in the emc_pose structure that is
passed to it. In this case the kinematic module needs to know the
direction of travel (and, preferably, the _intended_ direction of
travel...)

At the very least xy_tan (which is the angular direction of the
current path in the XY plane, or the tangent to the current curve)
needs to hold its last value if the X and Y axes are stopped.

-- 
atp

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to