Re: Probing




Dean and Carl

You guys just picked this time to bring up this topic because you knew that I 
had to get other things done but couldn't resist throwing in my2cw.  

Dean, that is a nice simple probe design for one that trips along it's axis.  
Excellent application of Occams razor.  Thanks for the pic links.

Both of you have good thoughts.  First making the file man readable is an 
excellent start.  By including all of the essential probe info in a "front 
stuff" makes it possible to reproduce the scan easily or set a machine to 
mill to the way that the probe was accomplished.

Several list members have talked a bit about making conversational front ends 
for the emc that hide the actual g-code and run from the conversation screen 
itself.  A probe file format like this would allow for a direct to g-code 
processor.  In this case we would run from some sort of screen that shows the 
point cloud and uses the "front stuff" and a few answers about the machine 
tool and paths to define the tool motion.  

An easy first mill from point cloud processor might simply mill point to 
point following the path of the probe.  A second step might be watermarks 
around the shape at various z heights.  Either of these methods could allow 
for roughing and finishing cuts.

I can already visualize much of the Tcl code that would build an interface to 
produce or read the "front stuff" for the kind of file you describe.  The 
actual probing would simply be an iterated version of the guts of Will's 
existing probe script.  If we design the read/write to be flexible here we 
can add variables to the front stuff without raising an alarm and we can add 
values to a variable without changing the essential nature of the file 
produced.

I recommend that the actual probe data be set up like this. 

xn.nnnn yn.nnnn zn.nnnn an.nnnn bn.nnnn cn.nnnn rn.nnnn pn.nnnn wn.nnnn

with the spaces optional and the number of sig digits settable in the front 
stuff.  Perhaps you could choose 3 to six axes in the front stuff or simply 
use the number and names of axes as defined in the ini for the machine 
running the probe.  

Would we want a delimiter to end sections or would the left bracket of the 
heading for the next section be enough?

As Carl hints at for his hexapod, or for a 4-6 axis cartesian mill,  the 
project may begin with a six position code for each probed point, but it 
doesn't necessarily need to stay that way.  If we imagine a closed model in 
3d space, the shape is the same regardless of it's orientation or how you 
approach it with a probe or a cutter.  The extra abc or rpw info only tells 
us how we arrived at any point in the cloud.

Dean correctly points out that the probing routine in the EMC is a true 
multidimensional thing.  You can probe along any 3d vector.  This feature may 
be an unnecessary complexity for may of us but for others may be critical.  
The traditional probe math that I've seen used for better probes required 
that we know the complete geometry of our probe and how it trips for any kind 
of touch.  Therein lies one of the values of the simplicity of Dean's probe 
when connected to Carl's hexapod.

So with that as my take on both of your posts, here are a couple of thoughts 
I'd like to toss in.

1 - In the hexapod or six axis Cartesian machine, I imagine a 3d probe 
routine that would first take three points in a regular triangle near each 
other and figure a perpendictular to the surface and then probe from that 
perpendictular.  Repeat until the points do not move any more as the machine 
realligns for the new perpendictular and probes again.  At that point it 
would store the values to the probe file.  

Now the probe moves to make the next triangle from two points of the old one 
and repeats the process.  The only change that we would have to make to 
Dean's probe is a smaller tip.  We would also have to watch so that our 
initial three probes can push the tip into the light beam rather than simply 
bending the tip or moving or denting the part being probed.  Perhaps a second 
spring wound part way down the wire probe would be sufficient here.  I 
imagine a ball shaped spring like a mini whip used for cooking. 

I can also see some real advantages to taking a cut with a known angle to the 
surface to be cut.  But tangent, perpendictular, or whatever angle of cut, 
can be figured from the point cloud itself and would not necessarily need to 
be kept.

2 - My notion of successive approximation might speed up the probing of 
complex shapes.  For successive approximation.  The first granularity might 
be rough, say 0.1 using the start point of the cube defined by 

>[Region 0]
>Start_x=nn.nnn
>Start_y=nn.nnn
>Start_z=nn.nnn
>Min_x=nn.nnn
>Max_x=nn.nnn
>Min_y=nn.nnn
>Max_y=nn.nnn
>Min_z=nn.nnn
>Max_z=nn.nnn
>Granularity_x=
>Granularity_y=
>Granularity_z=.

The probe might plunge the first 0.1 triangle and if it finds nothing move to 
the next.  If it finds something it switches to the finer granularity and 
saves points in much the way that you describe regions.  Some vague step 
models that were used to explain the Calculus come to mind here.  You could 
repeat this for finer granularities as needed for the specific project.

3 - I'd eventually like to see provision for more than a 3d cube shaped probe 
area.  My previous thinking was that we might teach or enter the first point, 
and then do the same for the second.  Lines parallel to the line between 
these first two would be the aproximate probe path for that region.  Then you 
could define points 3 .. n and this would be the shape of the region on the 
first plane.  A few points on the third axis might be used to draw a tent 
over the shape.  The idea of this is to allow for quicker probing of odd 
shapes because the polygon would cut off area outside the shape and the tent 
would shorten the length of the probe vector.  

I have probably succeeded in muddying the water here a bit.  Keep talking.  
I'll be out for a week but don't wait for me.  I'd like to see a 
deanprob1.prb file posted by the time I get back.<g>  

BTW - You guys bringing this stuff to NAMES?  Anything I could do to 
encourage that?

Ray


On Sunday 13 January 2002 09:27 pm, you wrote:
> On Sunday 13 January 2002 12:17 am, you wrote:
> > Dean,
> >
> > I have a probe tip on my Stewart Platform 6-axis machine.  Could we
> > consider adding rotation axes as well?  P (pitch, about the X axis), R
> > (roll, about the Y axis), and W (yaW, about the Z axis).
> >
> > So far, I'm not using the probe tip to sense forms, but instead to set
> > the Z-axis reference for accurately carving into warped wood.  One day,
> > though, I hope to get involved in creating "point clouds", and fitting
> > surfaces to them.
> >
> > -- Carl
>
> I am now sitting here imagining a small statue inside a hexapod getting
> probed in cylindrical coordinates.  Is this what you have in mind?
>
> The tcltk interface provides us with:
> emc_probe_move: <x> <y> <z>
>
> So I assume that your current Y,P, & R stays constant as the tool head
> moves towards the probe coordinate.
>
> The problem we have here is defining regions with 6 axis along with
> an appropriate probing "path".
>
> In the 3-axis case I am only considering that Z will be the direction of
> interest.
>
> A simple case could be achieved with the hexapod where the Y,R & P are
> fixed thoughout a probing  "XYZ" region.  But I am not convinced that this
> would be of any value.
>
> Let me ask you the following: With the hexapod & EMC's interperter, can you
> establish a temporary coordinate system where the Z axis is along the bit's
> current axis (assuming your tool head is at some arbitrary Y,R &P) ?
>
> Such a translation would be quite useful (even not considering probing).
> If such a coordinate translation is possible on a hexapod using EMC,
> then it would be easy to accomodate in the file format proposed (as well
> as the probing algorythm)
>
> We simply tilt the tool head to the desired Y,R&P and then move
> to a starting coordinate, then follow the region definition previously
> described.
>
> FYI, Probing will always be imperfect. Consider the following little
> thought experiment:
>
> We are on a 3-axis machine and I take a small cylinder and I cut it
> longitudelly in half and lay it on the table flat side down. I probe this
> 3d surface with a probe shaped like a normal cylidrical router bit.  I then
> create some g-code from this point cloud.
>
> I then machine a block of material using this g-code with a bit that
> matched the probe.  I end up with little ridges along the raising & falling
> arcs of the surface but no ridges along the top.  If I take very small cuts
> I can minimize these ridges but I can't get rid of them.
>
> So I say! Ahah! I'll put it on a hexapod and I'll probe it in cylidrical
> coordinates!  That will get rid of the ridges by keeping the bit
> perpendicular at all times!
>
> But this required that you had some prior knowledge of the object being
> probed!  The whole idea of probing  is that we do not know how to easily
> write a tool path (or a probe path) for some arbitary 3d object.
>
>
> BTW, I put the pics up of my home-brew optical probe switch if anybody is
> interested:
>
> http://web.starlinx.com/dhedin/dcp00468.jpg
> http://web.starlinx.com/dhedin/dcp00469.jpg
> http://web.starlinx.com/dhedin/dcp00470.jpg
> http://web.starlinx.com/dhedin/dcp00471.jpg




Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact