Hi,

at the moment i'm building myself a simple probe and do some tests with
gridprobe.ngc. But i'm still at the problem of using the results as
feedback for emc to use it for correcting the moves.

So is there anything new on this front? :)

Ciao,
     Rainer

Am 21.03.2012 21:53, schrieb Michael Haberler:
> Rainer,
> 
> I'm not sure if I fully understand your question. 
> 
> The way this works is through forward and reverse kinematics (see 
> http://wiki.linuxcnc.org/uploads/EMC_Control_LG.gif)
> 
> when the trajectory planner outputs a new target position it passes it 
> through reverse kins to determine the corresponding axis positions. So thats 
> where the z correction happens - tp runs about 1000 times a sec, so the 
> correction is applied at the same rate
> 
> the probekins module currently searches sequentially through the list of 
> triangles searching for a hit. On a hit, the z value is used to correct the 
> output to the axis control.
> 
> The problem:
> 
> Assume you have two triangles which share an edge. Now program a move which 
> in x,y follows this shared edge. I *think* this border case is responsible 
> for the following error. if you move across triangles in an arbitrary fashion 
> (not tracking edges) it works just fine. Maybe somebody else can dig deeper 
> into this, it might be just a trivial thing.
> 
> The ray/triangle intersection test itself is very fast - its a favorite 
> CG/raytracing community problem. Sequentially testing many triangles might 
> become an issue, but there are standard ways to deal with this, like KD trees.
> 
> -m
> 
> Am 21.03.2012 um 20:06 schrieb Fox Mulder:
> 
>> Today i wrote a little program which calculates the absolute z distance
>> between a distorted plane (stl file) at a given xy location and zero. I
>> used simple triangles and no higher order interpolation. The result was
>> calculated very fast because of the simple maths used (only + - * /) and
>> always correct compared to a cad program.
>>
>> So i think the problems lay beyond the z-depth calculation from the stl
>> file. I wonder how you process a simple move over a distance which may
>> span over 3 triangles.
>>
>> Do you separate this move into three single moves with different start
>> and end z-depths?
>>
>> Or do you check before each step the z-depth of the stl file and correct
>> the commanded z-depth (would be very cpu intensive if done for each
>> single step)?
>>
>> Ciao,
>>     Rainer
>>
>> Am 20.03.2012 00:00, schrieb Michael Haberler:
>>> I ran into a problem with following errors if a move is exactly along a 
>>> triangle edge
>>>
>>> I havent investigated it further but I guess it could be a 
>>> discontinuity/numerical accuracy/stability problem along the edges
>>>
>>> If that is the case, the approach using discrete-triangle based correction 
>>> could be fundamentally flawed 
>>>
>>> one way I guess would work is to create a continuous surface correction 
>>> function, like a cubic spline
>>>
>>>
>>> - Michael
>>>
>>>
>>> Am 19.03.2012 um 21:03 schrieb Fox Mulder:
>>>
>>>> Since the last mail from december it has gotten really quite about this
>>>> very handy feature. But i can see in the git logs that it was further
>>>> developed.
>>>>
>>>> So what is the state of it right now and how could it be used?
>>>>
>>>> Sadly i can't find any info at all on the linuxcnc website.
>>>> I want to do some pcb etching tests in the next few weeks and i think
>>>> this feature would be a great benefit for this purpose. :)
>>>>
>>>> Ciao,
>>>>    Rainer
>>>>
>>>> Am 21.12.2011 08:31, schrieb Michael Haberler:
>>>>> I found the idea quite intriguing, and thought about integrating the 
>>>>> surface correction idea better. After bouncing a few ideas with Andy, 
>>>>> this is what I have so far:
>>>>>
>>>>> probekins: a kinematics module which be default behaves like trivkins
>>>>> it accepts a mesh of triangles which define Z correction values (actually 
>>>>> an approximation of the workpiece surface, or machine surface for that 
>>>>> matter)
>>>>>
>>>>> this mesh might eventually generated by probing, but also used as a 
>>>>> general machine Z correction 
>>>>>
>>>>>
>>>>> this isnt finished or polished, but I'm posting it anyway to see what 
>>>>> folks think about it.
>>>>>
>>>>> see 
>>>>> http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/probekins
>>>>>
>>>>> - Michael
>>>>>
>>>>> --------
>>>>>
>>>>>
>>>>>
>>>>> v0.1 README:
>>>>>
>>>>> Z correction by triangular mesh
>>>>> -------------------------------
>>>>>
>>>>> The probekins kins module is a trivial kinematics module unless loaded 
>>>>> with a Z correction mesh.
>>>>>
>>>>> It helps dealing with warped workpiece surfaces (or machines), and was 
>>>>> inspired by a recent thread on emc-users about PCB milling.
>>>>>
>>>>> the correction mesh is a set of triangles specified by an STL file. This 
>>>>> file might eventually be generated by probing a few points, 
>>>>> and creating a triangular mesh from it, for instance by a Delauney 
>>>>> triangulation,
>>>>>
>>>>> If a point (x,y) lies within the one of the triangles, it's z value is 
>>>>> adjusted by the interpolated value on the enclosing triangle.
>>>>> Points outside any triangle are not corrected for. This means the 
>>>>> correction value currently 'falls off the cliff' at the convex hull of 
>>>>> the 
>>>>> triangles (the enclosing polygon if you will).
>>>>>
>>>>> The triangles are applied in the order specified in the file, so there 
>>>>> could be a 'later' larger triangle enclosing or overlapping
>>>>> an earlier one.
>>>>>
>>>>> The algorithm currently is based on a brute-force test of all triangles 
>>>>> until first match. 
>>>>> The ray/triangle intersection test is very fast, nevertheless this is an 
>>>>> O(number of triangles) implementation.
>>>>> There are numerous ways to optimize this which are left as an exercise 
>>>>> for the reader;).
>>>>>
>>>>> To load an STL Z correction file:
>>>>> ---------------------------------
>>>>> python stlcorr.py <file,stl>
>>>>>
>>>>> To inspect the current correction:
>>>>> ----------------------------------
>>>>> python stlcorr.py
>>>>>
>>>>> To clear the correction:
>>>>> ------------------------
>>>>> python stlcorr.py -c
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Example STL file containing two triangles:
>>>>> --------------------
>>>>> solid
>>>>> facet normal 0 1 1 
>>>>> outer loop
>>>>>   vertex 0 0 0 
>>>>>   vertex 0 5 0
>>>>>   vertex 5 0 2
>>>>> endloop
>>>>> endfacet
>>>>> facet normal 2 3 4
>>>>> outer loop
>>>>>   vertex 1 1 1 
>>>>>   vertex -1 -1 1
>>>>>   vertex 1 -1 2
>>>>> endloop
>>>>> endfacet
>>>>> endsolid
>>>>> -----------------
>>>>> The normal vectors are ignored and can be left out for the purpose of 
>>>>> describing a correction mesh.
>>>>
>>
>>
>> ------------------------------------------------------------------------------
>> This SF email is sponsosred by:
>> Try Windows Azure free for 90 days Click Here 
>> http://p.sf.net/sfu/sfd2d-msazure
>> _______________________________________________
>> Emc-users mailing list
>> Emc-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/emc-users
> 
> 
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here 
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
> 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to