Tuesday, February 8, 2011

Lego NXT Plotter... And Why Did It Fail

Admittedly, having noticed that the NXT set includes three precisely controllable motors, building a Lego plotter is sort of a "natural idea" to try sooner or later. Two axes, a mechanism to lift and place the pen on the surface, and not too much programming; as Jeremy Clarkson would say facing the bucket of bricks ― how hard can it be?

So I've decided to pursue the idea myself, certainly not being the first neither the last one to do so. The concept of a Lego plotter is actually quite older than the NXT; still in 1990 Lego Group released a Motorized Control Center, set No. 8094, that featured a simple plotter among other models. (More about it on Blakbird's great site.) It used only two motors for X-Y movements, while the pen had to be operated manually.

So, what about this one? Building a plotter offers a couple of choices in design approach, among which the most important is its form, i.e. whether the pen moves along one or two axes.

With the second, "classical" approach, the paper is fixed while the pen moves in both X and Y axes. The aforementioned 8094 model utilizes this approach, as do many commercial plotters. However, its serious drawback is its size, as the drawing board ― and thus the plotter itself ― needs to be larger than the maximum size of the paper.

Trying to avoid large, cumbersome and part-demanding construction, I opted for the other form. Its pen moves along one axis on a rail, while the paper moves underneath perpendicularly. The resulting construction is smaller (as it only has to be as wide as the narrower side of the paper), and less fragile as there are no moving structures that have to provide support for further moving structures. The most common paper format here is A4, so I took its width (21 cm, a bit over 8 inches) as a target for the plotter size.

Having done these basic decisions, the construction is fairly straightforward. The drawing head moves along a rail, driven with a rack & pinion. It carries a small mechanism that grasps the pen, and another rack & pinion to lower or lift the pen from the surface.

Underneath, the paper is moved by two pairs of small touching wheels near the edge, and an extra one in the middle bottom, for stability. The area where the pen lands on the paper is reinforced from the bottom with a long cascade of studless Technic beams to provide a firm drawing surface, rather than wobbling the paper in mid-air.

All NXT motors are driving the pinions and paper wheels directly ― I've avoided gearboxes to reduce the gear slack that necessarily reduces precision. The 8-tooth gears serve nicely as pinions as they tightly sit in the rack teeth and there's very little slack.

Programming the plotter for the basic drawing is fairly simple ― though one could go to great lengths optimizing the movements, angled lines and curves, as many others in Lego community do.

So, after several work hours, the plotter, or at least its prototype, was finished, and equipped with an off-the-shelf Staedtler black technical pen (needs significantly less pressure than a biro to draw, and offers a more consistent line width).

Results? Bad. Pretty bad.

The first obvious trouble is with the behaviour of NXT motors ― as they tend to "zero in" on the desired position with some oscillations. But it is actually rather easy to solve reducing the motor speed, or introducing a tensioning and damping system, as often done with high-precision NXT machinery.

More troublesome weakness is the aggregation of errors that quickly throws the entire plotting off target. When the pen is drawing, it offers a slight tangential resistance to the paper moving underneath, which is enough to rotate it by a couple of degrees after a dozen drawn lines, and jam it into the feeder after a hundred or so (by what time the drawing is useless anyway).

Reducing the pen pressure was not an option as it was already adjusted to the smallest possible force that draws a clear line. Increasing the contact pressure of the feeder wheels might help, but it would only delay rather than solve the problem, and make the mechanism much slower and more difficult to operate for the NXT motor.

One solution could be to introduce the side rails that hinder the paper rotation (like those in the printer feeder trays), but that would complicate the design and make it less "automatic". Nevertheless, though, the first question is now answered: it's not as easy to design as it seems. Q.E.D.

It could probably be improvised and rebuilt to handle these problems, but the "real" solution is to switch to the other, large design form. So that is the direction I will take for the plotter version 0.2, rather than to overcomplicate this compact form, making it anything but compact in the process.

No comments:

Post a Comment