Welcome! Log In Create A New Profile

Advanced

A few ideas...

Posted by garak 
A few ideas...
September 14, 2010 08:42PM
I've been reading up everything I can find on reprap and I can't wait to have the money to start building my own machine. In the mean while I've been doing some brainstorming.

One thing I've been thinking about is how to make Mendel smarter. Currently the only feedback the software has is the endstops and the temp probe on the extruder. So if anything goes wrong the machine just continues on.

One idea I have is to mount a cheap web cam on the extruder and have QR codes or something similar all over the print bed. Code for this could be borrowed from an Augmented reality project like ARToolkit. This would require a PC to be actively involved with the print process. With advanced machine vision software the print could be verified layer by layer as it is printed and errors could possibly be corrected on the fly automatically. Really cheap webcams could be used as you don't need high resolution as the camera moves across the area you want to image.

Other ideas are to use optical mouse sensors running along the axis or optical encoder strips like in cheap inkjet printers.

Another big thing I want to improve on is print speed. I've been thinking about ways to change the extruder nozzle to vary volume. I've been thinking of things from just varying the output diameter to even changing the the shape. One design I'm thinking about is to start with a slot shape and have to pivoting arms that reduce it down to a circle. It would be mechanically complex but would allow for much faster printing. My thoughts are that the nozzle could be squeezed down to do the detail work and then opened up to do the fill. By using a slotted shape the thickness would remain the same as the detail but a much larger area would be covered per pass. The fill passes would have to be perpendicular to the slot. Which brings up problems with turning and makes it impossible to do a continuous print. I'm also thinking that it could be driven off the extruder motor, reversing the extruder would cycle between wide and narrow with a pair of limit switches indicating the position or even a pot, which would allow variable nozzle width.

Just some thoughts.
Re: A few ideas...
September 14, 2010 09:38PM
I think an encoder strip for the axes would be very nice to have.

For boosting print speed, I've been thinking along similar lines. The best method I can think of is a dual-extruder setup, with one nozzle for infill and one for detail work. That's much simpler than a transforming nozzle.

The infill nozzle could just be made from a pinched tube of stainless steel. With the tip pressed around an 0.35 mm strip of material, you'd have a nice opening of just the right size. Then, angle the nozzle at 45 degrees to the axis of motion, and it will be able to extrude as though it were several 0.5mm nozzles running in parallel, in either an up-down or side-side direction. The fine detail nozzle can then fill in any of the gaps, as necessary.

The resulting infill pattern would look like this:



Edited 1 time(s). Last edit at 09/14/2010 09:41PM by jbayless.
Re: A few ideas...
September 15, 2010 02:42AM
@garak,

I have written a C/C++ application using openCV to monitor the mendel axis movements. Essentially, the vision-app reads the gcode, and sets the target position, then tracks the respective axes, and determines how far the axis is from target position.

In the next few days, I will focus on completing my extruder, and then return to computer-vision control of mendel.

The next step, will be to modify host software to communicate with vision-app, so that the vision control portion can correct overshoot (or undershoot) i.e. complete feedback loop, with camera-in-the-loop.

There is more information on [mariushermanbotha.wordpress.com]

Regards
Marius Botha
Pretoria, South Africa
[mariushermanbotha.wordpress.com]
Re: A few ideas...
September 15, 2010 01:13PM
We should get in touch with johnny lee of wiimote fame. we could mount some IR LEDs onto the x carriage or extruder and just use a spare wiimote (if you have a wii). a cheap webcam would be ideal, but the wiimote would be great for experimentation.
Re: A few ideas...
September 15, 2010 01:18PM
garak,
I agree wholeheartedly with your ideas. Try reading this thread Team Open Air

I was thinking that the position sensing can go in several ways, and can even start with some simpler steps. One goal I agree with you, feedback on the quality of the current piece being laid down. This is especially useful when the controlling computer is on a local network, and you want to monitor progress and watch for failures remotely from another room. This would require a camera, preferably mounted on the extruder carrier, and processed in something more powerful than a microcontroller.

The second use for just such a camera, computer, and software combination is 3D scanning of old objects to make or replace. The software will be a bit more complex, but if designed for both, it would not be anywhere near double the effort.

On the simpler scale, and important consideration is to find exactly where on edge or corner of the object being built is located in X-Y-Z space. If at any time the microcontroller thinks that the stepper motors might have slipped, or periodically to verify their position, the reprap should re-test the location of some reference point on the part, and come the current X,Y,Z value needed to just block a beam from a LED on the extruder to a detector on the frame. This way, if a drive slips, you can still correct the position back again, and perhaps produce a slightly flawed, but still usable part. This is VERY important for adding onto a part or other object placed on the table for further build up. This might be a box where the lid has to be made while the rest is laying on its side, or a steel framework or armature inside a large plastic piece, or making a part too big for the build platform to do in a single run.

As soon as people start mounting multiple extruders in a single reprap, the next use for an LED beam and detector should become apparent. If you use a carousel of extruder heads and a grabber to pick one to work with, you will have repeatability errors. These can be greatly reduced by using one or two LED laser beams to find the exact X,Y,Z position to have the tip of the extruder (or milling bit) just block the beams. That way, a small delta X, delta Y, and delta Z can be added on to all gcode moves until the next head change to keep each layer aligned.

I have also been suggesting 3, not just 2, orifices sizes for a single extruder head. Just like the rotating stage of a microscope, 3 different end nozzles would rotate around until the desired width was in the extruding position, then thin outlines can be followed with thicker reinforcing, then rapid bulk fill.

Mike
Re: A few ideas...
September 15, 2010 02:21PM
Is there an advantage to using computer vision over having an encoder wheel on the pulleys?
Re: A few ideas...
September 15, 2010 02:43PM
Depends on the type of encoder wheel you use. The less expensive ones that we used on the FIRST Robotics Challenge steering controls were incremental encoders. They are great for telling you how much you have moved, or rotated, since the last time they were calibrated. But just like stepper motor slip, a lost few pulses or extra noise can through the count off, and you would never know it without direct feedback from the zero stops, beam edge detection, or vision system. However, lose of pulses should be more rare than steppers missing a step, since there is no 'force' involved in generating a pulse. But noise is more a problem for encoders than steppers.

On the other hand, they do sell absolute encoders, both for linear and rotation. They have the advantage that even after a power glitch, they will jump right back to the correct, absolute position reading. Unfortunately, they are expensive, especially for long linear encoders. I am still hoping to find cheap, linear, incremental encoder tape to make the X and Y axes in particular more accurate and repeatable, but so far the only tapes are precision stainless steel for high quality CNC upgrades.

Mike
Re: A few ideas...
September 15, 2010 05:36PM
Would optical mouse cameras have a high enough resolution, (arduino playground) to act as a linear encoder???,
referencing on every layer, by going to limit swithes may help reduce loss of steps accumalating, but add some time to the
build, roborealm is very good at video processing, it was free but costs about $85 now, for heavy collisions could the current be monitored.


Random Precision
Re: A few ideas...
September 15, 2010 07:22PM
John,
yes, optical mice have an excellent optical encoder pickup. But of course they lack a corresponding scale. Simply measuring mouse movements against a textured surface will not be very accurate. You need a scale that is accurate over distance.

Also, don't be distracted by the low price of optical mice. An linear optical read head, with capacity to read 360 LPI is only $8 in single unit quantities, and can measure done to less than 0.02mm. If the code strip is that accurate over distance, you can measure down to sub mm resolution through out the entire axis range. All you need to do is find or make a code strip. And that seems to be the hard/expensive part.
Re: A few ideas...
September 15, 2010 08:01PM
Ah, I didn't know that skipped readings was a major problem with incremental encoders. I suppose it might be, if the encoder is spinning very fast.

People keep bringing up the optical mouse idea, but I'm pretty sure it doesn't work well. To my knowledge, the reason that optical mice work so well for computers is that the human controlling them is constantly measuring and correcting the cursor position on the screen. I suspect that if you had a robot blindly move a mouse in controlled circles across a mousepad, the cursor would gradually drift off toward some edge of the screen.
Re: A few ideas...
September 15, 2010 08:53PM
rocket_scientist Wrote:
-------------------------------------------------------
...
> Simply measuring mouse
> movements against a textured surface will not be
> very accurate. You need a scale that is accurate
> over distance.
...

Do you need accuracy greater than say one turn? For example, your bot does a fast-as-possible move where there might be an issue where one or two steps are missing?

There's something called binary chain codes [google search]. We could laser print a wheel on a transparency sheet (pic of a three bit wheel), and use several LEDs to read the current position. It won't help if you get off by more than one turn though.
Re: A few ideas...
September 15, 2010 10:00PM
Pica,
I know of that as 'grey code', and it is a simple binary sequence setup up so that every step has only 1 bit changing. That way you can have very fine resolution (16 bits on rotary encoders is usually the max) and it will tell you exactly where you are without any problem from missed codes. It is the way that absolute encoders work. But absolute encoders are much more expensive. In this case it would mean printing a strip 16 lines wide, with 10cm/216 wide steps or printing accuracy. It also means the encoder has to have 16 detectors, all aligned to within 1/2 a step size, and a 16 bit wide parallel interface, or a serial interface. All that means money.

Yes, you can use a laser printer to print a lower resolution strip and use fewer detectors, but if you are using an absolute encoder at all, it usually will be used as the ultimate accuracy/repeatability element of you motion control system. With a 600DPI laser printer, using a single dot and space resolution, you get 1 inch/300 or 0.0033 inch (0.08mm) resolution, which is fairly good. For a 10 cm plus build zone, you would need 100.0/0.08 or 1181 steps. Rounding up to the next higher power of two give 211, so you would need 11 detectors in parallel to do this. The accuracy is good, but the detector array might be tough.

Mike
Re: A few ideas...
September 15, 2010 10:21PM
I have to confess, I'm not sure I understand the problem. Maybe thats because no one wants to upload their video of a bad print to youtube. So the 3-D printer runs too fast and we loose count of steps, and then all of a sudden we have an unplanned overhang on the part we are printing? Slowing down the print head is undesirable or not practical, or the error occurs at slow speed too? Recalibrating our location every layer or three by backing up until we are at the endstops won't work, is too slow, or allows everything to cool too much?

How about another toothed pulley on the axis, which gets geared down so that a small movement on the belt produces a large turn in a gear, and we can then sense that the step we ordered to be done actually occurred?
Re: A few ideas...
September 15, 2010 10:22PM
Hm... What about a rotary encoder?

With three detectors, the problem of skipped steps can be avoided, can't it?


For example, with an encoder like this, you can always tell when the fine resolution detector has missed a step. The encoder will need to skip two or three steps before it can get confused, right?
Re: A few ideas...
September 15, 2010 11:46PM
dose any one remember seeing an article about a guy who used a optical mouse to scan a picture so if you had a very long bar code on the one rail you in theory you could make a fairly accurate optical position system.

ok guess it was not has good has i remember, but here is the link but i think it could be a good idea.mouse camera


[mike-mack.blogspot.com]
Re: A few ideas...
September 16, 2010 03:06AM
I suppose a small stepper, like the tiny one's in some cd drives could be used as a crude encoder by reading the pulses, but not so good at slow speed perhaps.

I did mess about with the mouse thingy a while back, the result was pretty good but I did not do any tests for "slippage" it would make an interesting project one day.

I know someone who has been working on "in process feedback using cameras, he has been on it for some time, but as with all these things takes a lot of messing about to implement.

Edit, you will already know about the strips in printers so will not mention them.

Edited 1 time(s). Last edit at 09/16/2010 03:10AM by johnrpm.


Random Precision
Sorry, only registered users may post in this forum.

Click here to login