Touch Sensor and automated calibration
January 04, 2008 09:46AM
One of the calibration problems is adjusting the baseplate to be parralel to XY toolhead moving plane.

I think this procedure can be simplified very much, if we'll equip th toolhead with the some kind of toucvh sensor. So we can just make 4 touches in 4 corners, measure the internal coordinates, compare them and show the tip like "screw up driver #1", "screw down driver #2" and then repeat the process till the internal coordinates will be same.

Touch sensor can be used in some other manner, when you need feedback of some kind. For example, we can print 10 layers, wait a minute for cool down, and then measure actual height of the printed detail. It may be helpful to avoid error accumulation, when we use theoretically calculated height instead experimental one - I saw this accumulation several times.

It can also be used for easy gathering the experimental information about the real plastics and getting experimental adjusting coefficients.


Is it reasonable?

How such a sensor can be made at all? What principle should be used?

Is it hard to incorporate it into the desight? Is it too hard to do?
Re: Touch Sensor and automated calibration
January 04, 2008 04:39PM
i think that would be a very interesting and useful device. it would be great for many things.

i'm not entirely sure how one would go about it, but i imagine that you could do it pretty easily with some sort of tactile sensor or something. you'd probably want to research this to find out the best route.

the best way to go about implementing it would be to create a SNAP device for it. our network protocol is based around the idea of a ring of devices. you could have a touch sensor device that could have a variety of commands.

there is obviously some work that would have to be done, but it would be very easy to integrate this into the Arduino electronics.

the majority of the work would probably be in writing the host software code, firmware code, and documenting the whole thing.
Re: Touch Sensor and automated calibration
January 04, 2008 05:07PM
A simple Micro-switch will work as a sensor if you just need 1 plane and if you were going to mod the host software then simply interface it to the Z opto input and switch it in for setup calibration as it should only be needed once.

You can very easily build a wobble sensor that will detect all the axis and can be used as a scanning probe these are common place in the CNC world both hobby and industrial.


Ian
[www.bitsfrombytes.com]
Re: Touch Sensor and automated calibration
January 05, 2008 09:15PM
nice.

do you have any links where we could read more about these things?
mccoyn
Re: Touch Sensor and automated calibration
January 05, 2008 10:09PM
Pull apart a TV remote control and cut up the PCB. You should get dozens of touch sensors. I believe you just need to apply a small force on the center of the contact.

Hook it up to a multimeter to see what the characteristics are. I suspect you will need to attach a small object to the center so you press on that and not the edges.
Re: Touch Sensor and automated calibration
January 06, 2008 06:39PM
Let's separate things.

There are three possible touch sensor implementation ways:
1) special dedicated device (as far as I understand, it's way Zach proposed, is it correct? (sorry, my english is far from perfect)).
2) incorporate sensor(s) into extruder toolhead
3) incorporate sensor(s) into carriage
special device is simple way to implement it, but it has several vital limitations. Ian Adkins, what type is commonly used in wobble sensor you are talking about?

There are two problems baseplate calibration process should achieve:
1) baseplate should be parralel to XY toolhead moving plane
2) zero position should be determined (i.e. position, when toolhead touches baseplate)
First goal can be achieved with dedicated snap toolhead, but second isn't. Zero position depends on the toolhead's height - so zero-position for SNAP and zero-position for extruder will be different for sure. And, after all, other toolheads approaching, with their own heights.

Zero-position I talking about works as the endstop. We have several of them in our design. Do we really need them, if we have touch sensors of some kind?

There are two reasons RepRap need endstops:
1) to avoid reprap self-destruction
2) to get some kind of "base positions" to avoid error-accumulating and to perform adjusting after current coordinate loss.
Current endstops solves second problem mainly. First problem still should be solved. It's really clear for bottom z-axis endstop (as far as I understand, this problem was discussed already) - we now need some kind of z-endstop adjusting. Despite the fact we will have several toolheads (so we need z-endstop readjusting for each toolhead, isn't it?), we have some kind of plastic thing on the plate, isn't it? I mean, thing we just printing.

Imagine you print half of solid parralelipiped block - toolhead cannot wove trought it to touch the baseplate, isn't it? Toolhead now should stop as far as it touches top plate of printed block. It's true for other axes, too.

So, touch sensors could solve the problem #1 much better then endstops do. But we still need them for solving problem #2 - touch sensors cannot achieve this.

There are two problems with switch-like sensor
1) the force, needed for activation
2) the distance, needed for activation
Microswitch and film-based switch are good answers to problem #1, but they maybe still had problem #2. If you need to move your head to 1mm to activate the sensor, you loose accuracy, isn't it?



And finally 2 more questions to think about:

Maybe some kind of pressure-measure sensor will be better than "digital" switch-like sensor? It maybe usefull for milling (i.e., move milling toolhead as fast as needed to keep constant material resistance).

If incorporating sensors into carriage/toolhead is usefull, how we can do it? If we just mount it on springed switch of some kind, we will have some gap, and mounting will be not-rigid.
VDX
Re: Touch Sensor and automated calibration
January 07, 2008 02:15AM
Hi Assargadon,

... look at the behaviour of low-cost CNC-systems with manually or semi-automatically changed mills:

With every mill-exchange you have another 0-position, so the home-/limit-switch is 'on the other end' - eg. the limiter is activated, when the reprap-base-plate is at the absolute bottom ...

For determining the 'workpiece-0-position' you move the toolhead/base manually to a representative position in respect to the workpiece and set the actual 0-pos.

Another way is a special 0-switch mounted in one edge of the working-area, so you can set and check the 0-pos. automatically without interfering with the actual workpiece ...

A third way is a camera and manually or automated measuring the tool-point per image-recognition.

On my CNC-3Dmill/repstrap i use the first method, so my 'home-pos' is top-left-back and i have to define the '0-pos' manually every time i change the tool or the workpiece.

For my tripod i'll apply three limit-switches on top-position off the linear axes, so my 'home-pos' is top-middle of the working-area.

Viktor
Re: Touch Sensor and automated calibration
January 10, 2008 06:59AM
Victor, you illustrate my ideas very vell smiling smiley

> With every mill-exchange you have another
> 0-position, so the home-/limit-switch is 'on the
> other end' - eg. the limiter is activated, when
> the reprap-base-plate is at the absolute bottom
> ...
Yes. It's the way to obtain 0-position for avoiding error accumulation and it's way to avoid self-destruction via moving plate too far to bottom.

But we have 2 endstops per axe on RepRap, isn't it? So, what about top-limiting endstop?

> For determining the 'workpiece-0-position' you
> move the toolhead/base manually to a
> representative position in respect to the
> workpiece and set the actual 0-pos.
Yes. And this step will be much easier if we have Touch Sensor attached to TOOLHEAD or CARRIAGE. "move the toolhead/base manually to a representative position" can be made authomatically in this case (if only we have special part of plate, guaranteed from workpieces).

> Another way is a special 0-switch mounted in one
> edge of the working-area, so you can set and check
> the 0-pos. automatically without interfering with
> the actual workpiece ...
Why do we need this? It can be used for 0-pos for "avoiding error accumulation", but absolute bottom is much more usable for this.

But this system is useless for self-destruction as a result of moving plate too far to the top. Self-destruction in this case is result of toolhead-vs-baseplate collision. And it depends on both toolhead height and workpiece form. So we NEED information about workpiece.

> A third way is a camera and manually or automated
> measuring the tool-point per image-recognition.
I thinking about this, but as far as I understand it's much more difficult and less accurate method.

> On my CNC-3Dmill/repstrap i use the first method,
> so my 'home-pos' is top-left-back and i have to
> define the '0-pos' manually every time i change
> the tool or the workpiece.
Do you have 3 only endstops in your mill/repstrap?
We have 6 of them in RepRap.
Re: Touch Sensor and automated calibration
January 10, 2008 07:30AM
This is how I did it:

[hydraraptor.blogspot.com]

I added a tool sensor to one corner of the table so each time I change a milling tool it self calibrates. When doing FDM I only do it once when I attach the extruder and save the value in software.


[www.hydraraptor.blogspot.com]
VDX
Re: Touch Sensor and automated calibration
January 10, 2008 07:39AM
Hi Assargadon,


> > For determining the 'workpiece-0-position' you
> > move the toolhead/base manually to a
> > representative position in respect to the
> > workpiece and set the actual 0-pos.
> Yes. And this step will be much easier if we have
> Touch Sensor attached to TOOLHEAD or CARRIAGE.
> "move the toolhead/base manually to a
> representative position" can be made
> authomatically in this case (if only we have
> special part of plate, guaranteed from
> workpieces).

... you have to select, if you are interested in an 'automatic-nulling' on the actual printed sheet or more in respect to the bottom-plate - then you have to calculate the actual height, what could be wrong some hundred microns



> > Another way is a special 0-switch mounted in
> one
> > edge of the working-area, so you can set and
> check
> > the 0-pos. automatically without interfering
> with
> > the actual workpiece ...
> Why do we need this? It can be used for 0-pos for
> "avoiding error accumulation", but absolute bottom
> is much more usable for this.

... this is mostly used to set the actual toolpoint after changing a mill or switching to another tool-head, which isn't on the same height, as the previous - for example after exchanging a syringe or switching between material- and support-extruder.



> > A third way is a camera and manually or
> automated
> > measuring the tool-point per image-recognition.
> I thinking about this, but as far as I understand
> it's much more difficult and less accurate
> method.

... i built special mciroscope-cameras with a very big object-distance, very low distortion and ten times bigger aea of sharpness, then normal.

So picture one or two cameras (for absolute X,Y-measuring) sitting horizontally in an edge of the working area with an object-field of 5x3 mm, which can determine the position and absolute height of the tool-tip with an accuracy of some microns!


> > On my CNC-3Dmill/repstrap i use the first
> method,
> > so my 'home-pos' is top-left-back and i have to
> > define the '0-pos' manually every time i change
> > the tool or the workpiece.
> Do you have 3 only endstops in your
> mill/repstrap?
> We have 6 of them in RepRap.

... the CNC has 6 too, but in the last 25 years driving similar systems i didn't crash into or use them anyway, so i sort of 'forgot' on them winking smiley

In my actual tripod-design there are only three switches planned, but it's not a big deal to attach a second limiter per axis, so maybe i'll apply them too ...

Viktor
Re: Touch Sensor and automated calibration
January 10, 2008 01:10PM
Heh. I lost the point already. I even don't understand - is it discussion (with several opposite points) or it's conversation (with several non-opposite ideas).

So, we need some kind of structure for this...topic smiling smiley

First of all, I avoid now toolhead-dependent functions like workpiece shape understanding (dedicated instrument can be used for this) and constant force keeping (usefull (maybe) for mill toolhead, so only this toolhead should be especially equipped).

Secondly, I propose to make some kind of "voting". I propose to make a decision "need", "not need", "need in future", "maybe need" and so on, on every function listed:

1) obtaining 0-poz (independent of workpiece and toolhead)
2) hardrware alerting on out-of-axis moving attempt
3) autodetection of toolhead height
4) semiautomatic calibration of baseplate parallelism
5) z-axis toolhead-workpiece collision detection (independent on toolhead)
6) x and y axis toolhead-workpiece collision detection (independent on toolhead)


NB: Why do you need 5 at all?

a) One-layer/slice height may be differ if you printing thin wall and if you printing a solid block. As the result of error accumulation, higher wall you printing - worse result you obtaining. You can avoid this by measuring REAL height every, for example, 10 layers.

b) One-layer/slice height may be differ on different instances of RepRap. You can calibrate your own one by printing 100-layers-hight solid block, using height-adjusting procedure, listed above. You will know a real height of this block after printing.

c) For preventing collision with workpiece - such a collision as fatal as collision with baseplate, isn't it?


NB: Why do you need 6 at all?

a1) For preventing collision with workpiece only, as far as I understand. Now we have only one toolhead and we using very simple process of extruding, it's prewent us from x-y collisions. But maybe we change this style somehow, so top semispace will be non-empty


P.S. My idea was, generally, using the feedback information instead of theoretical information as often as possible. I think, it's the way humans work. So we can use instructions like "move head down until collision happend, then move it up on 0.1mm" instead of "moove toolhead down to 150.7mm - I thing top of workpiece 0.1 mm under"
Re: Touch Sensor and automated calibration
January 10, 2008 02:06PM
When extruding you build up the object layer by layer. The nozzle is slightly closer to the object than the diameter of the filament, so the height of the workpiece is simply the height the extruder was when it made the last layer. It may shrink a little bit but that just makes the next layer a bit thicker.

When milling the only uncertainty is the height of the raw material. I measure the material with calipers and start the milling half a millimeter above. That means I mill fresh air for a while but once it bites the workpiece height is again then defined by the height of the cutter.

So with a single calibration that measures the length of the tool relative to the base there is no need to measure anything else. The machine works open loop and defines the shape of the object. There is no need for a measuring system.

Collisions only happen due to software bugs or machine breakdowns. I have damaged several drills and my extruder this way, but I am writing my own software. With tried and tested s/w it should not happen.

It would be nice to detect collisions but it is a bit tool head dependent. With FDM there should be virtually no force on the extruder laterally or vertically but with milling there are significant forces.

I can detect if my XY steppers slip because they have shaft encoders. It may be too late by then though. A simple scheme with a mill is to measure the spindle current and set a limit on it.

Strain gauges built into the tool head mounting might be a good idea for detecting collisions.

Edited 1 time(s). Last edit at 01/10/2008 02:07PM by nophead.


[www.hydraraptor.blogspot.com]
Re: Touch Sensor and automated calibration
January 10, 2008 02:32PM
nophead, yes, there are several ways of implementation of every function listed above. The best way of implementation depends on needed function set.

So, I propose to describe you opinion about every listed function...you forget to accomplish it smiling smiley

P.S. "layer by layer" is simpest way, but not ONLY way. I propose not discuss it here - separate topic will be good for it.

P.P.S. After all, "pure FDM" is not only purpose plastic extruder can be used for. For example, I want to incorporate something (axe, chip, motor) into the workpiece. I propose not discuss it here - separate topic will be good for it.

P.P.P.S. As far as I understand, "When extruding you build up the object layer by layer. The nozzle is slightly closer to the object than the diameter of the filament, so the height of the workpiece is simply the height the extruder was when it made the last layer. It may shrink a little bit but that just makes the next layer a bit thicker." is too idealistic...if only your Z-step 0.1 mm longer then "real" layer height, it will be 1mm distance from toolhead to workpiece after 10 layers, 2mm after 20 layers...and so on. I saw such a situation with my own eyes, that's why I'm so sure it's true. I propose not discuss it here...and so on.
Re: Touch Sensor and automated calibration
January 10, 2008 03:23PM
Well in summary you only need 1). I.e. three limit switches and that is what the machine has. Nothing else is required to make it work for FDM, laser sintering or milling, etc.

2) Can simply be done in s/w. Steppers don't run away with hardware faults like a servo could.

3) Being able to measure the tool height makes milling quicker to set up but is not essential, you can use tools with collars and remember the height of each one. Or you use a jog function to zero the tool when it is changed.

4) Setting up for FDM only needs to be done once and can be done manually.

There are no cumulative errors with a stepper motor system that is working correctly so you can run them completely open loop and get repeatable accuracy. In this case to about 0.1mm. The step size is defined by the number of teeth on the pulley or the pitch of the thread.

5,6) Nice to have if you write s/w with bugs like I do, but not required with tested s/w.


[www.hydraraptor.blogspot.com]
VDX
Re: Touch Sensor and automated calibration
January 10, 2008 03:28PM
Hi Assargadon,

> 1) obtaining 0-poz (independent of workpiece and
> toolhead)

= a 'must have' for stepper-driven 'optimistic' systems - as long as no errors occure you can calculate all positions and paths from the 0,0,0 on ...


> 2) hardrware alerting on out-of-axis moving
> attempt

= nice to have - when your optimismus or the software fails ...


> 3) autodetection of toolhead height

= needed when automatically changing tools ...


> 4) semiautomatic calibration of baseplate
> parallelism

= build your frame with tuning-screws, then it's no point ...


> 5) z-axis toolhead-workpiece collision detection
> (independent on toolhead)
> 6) x and y axis toolhead-workpiece collision
> detection (independent on toolhead)

= nice to have, but commonly not implemented ...

All my CNC-mills with much more motor-power then reprap didn't have any colision-detection - the frame is stable enough so the motors simply stall, and when it went wrong, then the workpiece and/or the mill will brake or i route through the basis-plate ...

Viktor
Re: Touch Sensor and automated calibration
January 12, 2008 03:24AM
I agree with nophead design in whats need it's not worth designing systems to cope with bad initial design i.e. get the design working correctly first then see what's needed.

Auto cutter/tool head height measurement is very handy but is a luxury.

A full 3 axis digitizing probe is a very useful scanning tool that would be good to have in the RepRap tool kit to allow scanning of items to allow replication without the need to draw the item especially useful on compound curve items such as propellers etc.


Ian
[www.bitsfrombytes.com]
Re: Touch Sensor and automated calibration
January 25, 2008 06:33PM
Hurro guys

sorry to interrupt but you had such a great discussion going I couldn't resist

X & Y isn't a problem as I read, most of you have hinted at. End stops can be used to resync whenever. Or as per an earlier discussion a center opto interrupter plate could be used to scale/sync and continually check for error.

The Z axis is the problematic one. Particularly as Victor points out, at or around tool changes.

However as pointed out a way to determine when the tool head has come into contact with the base plate (at a safe clear corner) just after tool change or at commencment of run should tell us where the Z zero point is. I recall the suggestion of a micro switch.

Ummm problem with mechanical switches is the distance taken to actuate the switch will be significant if we want 0.1 of a mm resolution.

What about using force sensing with QTC thingys.

[www.peratech.co.uk]

Thoughts for what they are worth.

aka47

Sorry if the text is slurring a little, too much rum again.


Necessity hopefully becomes the absentee parent of successfully invented children.
Re: Touch Sensor and automated calibration
January 25, 2008 07:13PM
QTCs give an analogue signal so you would have to set an arbitrary threshold which, being analogue, may be subject to drift.

I use a three point contact device. A metal disk pushed upwards against three gold contacts. When the tool strikes it any movement is bound to break one of the contacts. With a 0.05 step on my z-axis I get a repeatable result with a max variation of one step which you would expect as the length of the tool may fall between two steps.

It also fails safe. I.e. the only possible failure is not making contact when it should, which means sensing bottom early rather than late.

[hydraraptor.blogspot.com]
[hydraraptor.blogspot.com]

For the top limit I actually use a small microswitch. It has hysteresis of several steps as you would expect. I step fast till I see it close and then step the other way slowly looking for it to open. At that point I AND my position variable with 7 rather than zeroing it. That it because I know what phase of the motor I am calling position 0 so the microswitch only needs a resolution 8 times less than the step size.

That is an attribute of steppers. With a servo you might be able to use a shaft encoder index pulse to allow the limit switch to only need a resolution better than one revolution of the servo.

My X-Y limit switches are hall effect. They seem repeatable to 6um but they have much greater hysteresis.

[hydraraptor.blogspot.com]

Edited 1 time(s). Last edit at 01/25/2008 07:15PM by nophead.


[www.hydraraptor.blogspot.com]
CAVEMAN
Re: Touch Sensor and automated calibration
January 25, 2008 07:25PM
what about putting something like this on the stage and then driving the current toolhead into it until you detect contact? or maybe even the other way use these in the toolhead to carriage mounts and then detect x y and z...

[www.allelectronics.com]
Re: Touch Sensor and automated calibration
January 25, 2008 07:30PM
Again it is analogue so you don't get an absolute position when you touch. You have to set a threshold bigger than the noise and drift in your analogue circuit.


[www.hydraraptor.blogspot.com]
Re: Touch Sensor and automated calibration
January 26, 2008 09:05AM
Just had a look at your touch down tool length measuring thingy.

I think that is pretty cool.

I certainly like the idea of breaking the contact rather than waiting for a contact to make. A simple but very effective way to achieve the desired results and resolution.

The links you provided and their onward links re probe heads were rather interesting too. I can see some mileage in a touch probe tool head for replicating something to hand.

Thinking about your comments re oxidization what about gold plating the disk to match the pins. I believe there are gold plating kits about for PCB work that could probably be pressed into service.

cheers

aka47


Necessity hopefully becomes the absentee parent of successfully invented children.
Re: Touch Sensor and automated calibration
January 26, 2008 11:40AM
Yes I made a touch probe as well but I have not tested it yet :-



Not had any problems with oxidation yet.

The disc in the middle could actually be a small PCB with gold plated pads. By placing a small SMT transistor and a resistor on the back you can get away with only a two wire connection back to the micro.


[www.hydraraptor.blogspot.com]
Re: Touch Sensor and automated calibration
January 26, 2008 05:41PM
Having looked at the designs using the ball bearings I think any spherical or even hemispherical bits would do particularly the hemispherical type of bolt heads.

Folk not wanting to go the PC board route could then wire the bolt's together using wire or crimp up ring terminals.

A quick rummage around on t'internet threw up these folk:-

[www.goldn.co.uk]

They even seem to do a battery powered felt tip pen for quick gold plating.

aka47


Necessity hopefully becomes the absentee parent of successfully invented children.
Re: Touch Sensor and automated calibration
February 12, 2008 06:51AM
For total over-engineering, why not go the whole hog and build on multiple laser scanners that are permanently on the toolhead and that can scan objects within the print area and also keep an eye on the position of the toolhead and the table at all times.

This is hardly elegant in engineering terms but would be a fantastic addition for the paranoid and would have the added feature of making your reprap look like a mini disco for automatons. You might not want to use it around anyone with epilepsy though... winking smiley
Re: Touch Sensor and automated calibration
February 12, 2008 07:51PM
But...that'd be half the fun...

If you're going to do that, it might actually be cheaper to attach a webcam and program the thing to see what it's doing, and recalibrate on the fly to compensate.
Sorry, only registered users may post in this forum.

Click here to login