Rotation Head
-
Afternoon All
Working on a rig with a rotation head and finding out rather rapidly that the performance of the rotation head is critical to the performance of the overall system.
I've been experimenting with adding rotational commands into standard 3D printer gcode. Between moves gives an expected rough motion. If I try to break up the linear moves then the maximum rotation speed is the instant speed setting of the axis, as the linear axis would not be accelerating, or decelerating at the start of the rotation. It would make it easier if the rotation could be not so aligned with the linear motion. Is there a way to allow non-synchronised rotation or would that only work with the parallel gcide streams that has been discussed before?
-
@doctrucker what's the purpose of the rotating head? Does the head need to be rotated to stay lined up with the movement direction during extruding moves? Or something else?
-
@dc42 precisely that. Rotation about z-axis.
-
@doctrucker other users have implemented that using a GCode preprocessor. You need to decide what you want the system to do when the GCode commands a sharp change in direction. e.g. 90 degrees. One option is to start the rotation at the end of the first segment, and complete it at the start of the second segment. So split the first segment into the main part and the end part where rotation occurs, and split the second segment into the first part where rotation occurs followed by the main part. How long you make those short segments depends on how fast the head can rotate and whether you are prepared for the linear axes to slow down for the rotation.
-
@dc42 That's what I've been doing.
Assuming a sequence of vectors with a change of direction; each vector split into three. with half of the angular motion from the transition from the previous vector in the first segment, no rotation in the middle, and half of the rotation for the transition to the next vector in the final part. Alternate methods for vectors with no pre or post transition, and a special case if the total transition can't be completed within the length of the vector.
The issue is I want the rotation to have minimal impact on the rotation on the linear motion of the head. If the rotational axis needs to do any acceleration this will cause the linear motion to be locked into the same acceleration, causing a stutter in motion. The initial answer is to limit the rotation speed to the instant speed of the rotation axis, but this in turn limits the print head speed where tight corners are required.
I think more pictures are required to help explain this because I don't think the solution is particularly easy to implement without a complete understanding of how the machine will move for a given sequence of gcode. There's a nasty mix of acceleration moves where I'd want them to get upto a specific speed by a certain point regardless of x/y motion and then synchronise with X/Y motion as the head accelerates/decelerates and jolts for the corner.
-
@doctrucker
Since you are already using a postprocessor, why not add some XY motion without extrusion at the same time the head turns around? Some sort of volontary overshooting where the stutters don't have an effect on real print-moves. -
@doctrucker
I was wondering, if adding a finer segmentation to straight tracks would eliminate the stuttering?
See M669 S & T params -
@o_lampe said in Rotation Head:
why not add some XY motion without extrusion
or you could add a FW retraction with a loooong Z-lift and do the head rotation meanwhile?
Sorry for the three replies, coffee is just kicking in... -
@o_lampe comments are all good, sometimes you get too close to the wood to see the trees!
In this case the rotation head is being fed material by syringes, through some flexible tubing and the material being deposited is gloopy nasty (from a mechanical handling piint of view rather than toxic) stuff. My primary aim is to favour a consistant rate of extrusion of the material as far as possible, with x/y traverse speeds the next priority and finally the rotation head.
In this case the stopping a flow of material and then coming back to it would likely leave undesirable visual Artifacts.
-
@doctrucker
it's just my wild imagination, but you could also lock the rotation (by a solenoid) and connect the rotation-motor via spring. (preloading the spring with the next position) Then release the lock at the turningpoint of the XY track. Speeding up the rotation is the goal.Maybe use a different drive for the rotor? DC motors with encoder are much faster and have more power.