Hi all, I am looking at doing a retrofit on an XY table with a tangential ultrasonic knife. There are several issues to address, and my current thoughts on how to address them are presented below. Any better ideas, easier ways of doing it, something already implemented which I have missed, or means of making it more generic are appreciated.
The table has conventional X and Y axes, Z is performed pneumatically with just an up and down position. The A or rotational axis should orient the knife tangent to the direction of motion defined by X and Y. My thought is to use a custom kinematics module to handle the rotational axis. There are a couple of issues: 1> It needs to look back far enough in time while the system is in motion to get a position enough different from the current position to calculate a valid slope. Update rates of 1ms or faster for the servo task may result in only an encoder tic or two difference, which likely would be too inaccurate to calculate a valid tangent. For my application an error of even +/- a couple degrees is tolerable, but certainly the closer the better. 2> Handling rotation when going through Pi (180 degrees) in the positive direction or -Pi (-180 degrees) in the negative direction. Doing a raw arctan2 gives a result in the range of -Pi to Pi, which would result in a full de-rotation when passing through those points. The axis has no mechanical restriction as to the number of times it can rotate, so the preferred method would be to add or subtract the difference in the angle from the previous angle. IOW it would allow a spiral to be done without the head ever de-rotating. 3> If the vector angle defined between two vectors exceeds a specified angle, the head needs to lift, rotate to the new angle, and then drop as there is only so far the head can turn within the material being cut. Currently I don't see a way to do this automatically within the kinematics and am considering using a preprocessor to insert the commands for these head lifts. I could use M3 / M5 to both start and stop the ultrasonics and perform the head lift. 4> The time to lift the head could be done with a dwell, but there are sensors to indicate when the head has reached the up and down positions. Based on air pressure and a couple of other things, there is some variation in the time it takes to move from the down position to the up position and vise-versa. Implementing some means of delaying the next motion until the head state condition is satisfied would be preferable. I suppose I could implement a pseudo Z axis which returns the values of 1.0 when in the up position, -1.0 when in the down position and 0.0 for any other state of the two sensors. I suspect faking out the following error on this axis may still present a problem however. Anyway, any input is appreciated. Regards, Eric ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers