Rough motion in corners using G2/G3
-
A quote from a previous post I made regarding my micro mill
"I was able to get the motors to run over 1200 RPM (1200 mm/m travel speed) but while using my test program they stuttered when interpolating corners below a certain radius (G2/G3) with 16x ms, interpolated. Still almost silent and smooth at 8x Ms. I went all over the place with Accel, and jerk with no apparent effect on the stuttering until down, around 600 mm/m."
Via a search here several days ago I found a couple more things to try, changing a setting or code, but now I can't find it again.
Any suggestions?
Doesn't appear I'm maxing out the processor since I went from 3200 steps/mm to 1600 with no change.
FYI. My test program is a series of rounded corner rectangles of various size and radii with some full arcs thrown in. Using latest released FW.
Original post here https://forum.duet3d.com/topic/11581/duet-controlled-micro-mill/6 -
Stuttering during curves can be caused by two things:
-
Running GCode that chops up curves into tiny segments, so that the rate at which GCodes need to be processed is very high. Not applicable to G2/G3 moves.
-
XY jerk set too low for speed to be maintained at the segment boundaries. This is the usual cause.
The algorithm used by RRF to determine the segment length for G2/G3 moves is:
// Compute how many segments to use // For the arc to deviate up to MaxArcDeviation from the ideal, the segment length should be sqrt(8 * arcRadius * MaxArcDeviation + fsquare(MaxArcDeviation)) // We leave out the square term because it is very small // In CNC applications even very small deviations can be visible, so we use a smaller segment length at low speeds const float arcSegmentLength = constrain<float> ( min<float>(sqrt(8 * arcRadius * MaxArcDeviation), moveBuffer.feedRate * (1.0/MinArcSegmentsPerSec)), MinArcSegmentLength, MaxArcSegmentLength );
I didn't have a micro mill in mind when I wrote that, so it may not be appropriate for your mill. MinArcSegmentLength is set to 0.1, MaxArcSegmentLength is set to 2.0, and MinArcSegmentsPerSec is set to 50. Perhaps your mill needs segments shorter than 0.1mm? I guess I could reduce it on machines with high XY steps/mm.
-
-
David,
This is the code my PP generates for the motion test so no arc chopping. At slower speeds it is smooth. I have changed the Jerk from low to very high with no effect
T0 ; set tool.032 .813 BEM
G21 ; set units to millimeters
G90 ; use absolute coordinates
G0 Z3
G0 Z1.
G0 X37.471 Y18.926
G1 Z0. F800.
G1 X38.721F800
G1 X39.971
G1 X41.221
G2 X42.971 Y17.176 I0. J-1.75
G2 X41.221 Y15.426 I-1.75 J0.
G1 X34.971
G2 X33.221 Y17.176 I0. J1.75
G2 X34.971 Y18.926 I1.75 J0.
G1 X36.221
G1 X36.659 Y18.381
G2 X39.971 Y17.176 I1.437 J-1.205
G2 X36.25 Y16.844 I-1.875 J0.
G3 X33.846 Y18.301 I-1.845 J-0.333
G1 Y16.051
G1 X42.346
G1 Y18.301
G1 X33.724 Y18.551
G3 X33.596 Y18.426 I-0.003 J-0.125
G1 Y15.926
G3 X33.721 Y15.801 I0.125 J0.
G1 X42.471
G3 X42.596 Y15.926 I0. J0.125
G1 Y18.426
G3 X42.474 Y18.551 I-0.125 J0.
G1 X33.731 Y18.801
G3 X33.346 Y18.426 I-0.01 J-0.375
G1 Y15.926
G3 X33.721 Y15.551 I0.375 J0.
G1 X42.471
G3 X42.846 Y15.926 I0. J0.375
G1 Y18.426
G3 X42.481 Y18.801 I-0.375 J0.
G1 X33.738 Y19.051
G3 X33.096 Y18.426 I-0.017 J-0.625
G1 Y15.926
G3 X33.721 Y15.301 I0.625 J0.
G1 X42.471
G3 X43.096 Y15.926 I0. J0.625
G1 Y18.426
G3 X42.471 Y19.051 I-0.625 J0.
G1 X34.346
G1 X36. Y30.
G1 X46.
G1 X56.
G1 X66.
G2 X80. Y16. I0. J-14.
G2 X66. Y2. I-14. J0.
G1 X16.
G2 X2. Y16. I0. J14.
G2 X16. Y30. I14. J0.
G1 X26.
G1 X29.509 Y25.642
G2 X56. Y16. I11.491 J-9.642
G2 X26.237 Y13.342 I-15. J0.
G3 X7. Y25. I-14.762 J-2.659
G1 Y7.
G1 X75.
G1 Y25.
G1 X6.029 Y27.
G3 X5. Y26. I-0.029 J-1.
G1 Y6.
G3 X6. Y5. I1. J0.
G1 X76.
G3 X77. Y6. I0. J1.
G1 Y26.
G3 X76.029 Y27. I-1. J0.
G1 X6.086 Y28.999
G3 X3. Y26. I-0.086 J-2.999
G1 Y6.
G3 X6. Y3. I3. J0.
G1 X76.
G3 X79. Y6. I0. J3.
G1 Y26.
G3 X76.086 Y28.999 I-3. J0.
G1 X6.143 Y30.998
G3 X1. Y26. I-0.143 J-4.998
G1 Y6.
G3 X6. Y1. I5. J0.
G1 X76.
G3 X81. Y6. I0. J5.
G1 Y26.
G3 X76. Y31. I-5. J0.
G1 X11.
G0 Z1. -
@dc42 said in Rough motion in corners using G2/G3:
machines with high XY steps/mm.
What do you consider high X/Y steps/mm? 200?
-
@phaedrux said in Rough motion in corners using G2/G3:
@dc42 said in Rough motion in corners using G2/G3:
machines with high XY steps/mm.
What do you consider high X/Y steps/mm? 200?
200 steps/mm (at x16 microstepping) is standard for printers using 0.9deg motors and 16-tooth pulleys, like my delta. I would consider 400 steps/mm or higher @ x16 microstepping high.
-
Unfortunately I will be down for several days while I move in to a new house (with a big shop ) but will next try reducing the MS to 1/4 or even whole steps and see the effect. I am running very high steps/mm but very slow speeds. Originally 3200 steps/mm and 600 mm/m (with 1 mm lead ball screws). Currently at 1600 steps/mm. The low lead ball screws where more a function of availability. 2 mm lead would have been the first choice considering I was after a full step resolution of .015 mm