yuck - https://sourceforge.net/tracker/?func=detail&atid=106744&aid=3018318&group_id=6744
from the var file alone I don't think you can tell the difference between G92 and G92.2...
cradek: I've located G92 preview bug but have no idea how to solve it
micges: yes I think the problem is you cannot tell g92 vs g92.2 from the var file
I doubt that's it
path is ok and preview is not
ok - this is odd. How come when i hit the estop - the tool-prepare goes high some times?
tool prepare is hooked into the ladder - not to an external pin.
I want your machine.
doesn't make sense. tool-prepar is an internal emc pin
In C, what is 0/0 ? I am guessing NaN?
probably - what are you doing?
Dividing Adjacent by Hypotenuse of a triangle that might be of zero size.
This is Visteurs waterjet kinematics, which needs to hold an angle when there is not enough information to work out the traverse direction.
his approach is bad and is not going to work
Well, actually, it is my approach, and I realise it is bad, but can't think of a better one within the limitations of what a kinematics module knows.
fixing a /0 is not going to help solve the fundamental problems with the way he's chosen to try doing it
yeah, those limitations are the problem, and you just can't do this at the kins level (IMO)
Any scope for adding a velocity vector to EmcPose?
what will you do at corners?
you can't have your rotaries jump from one position to another instantly when you turn a corner
skunkworks: it's 'flexible' not 'flexable'
this needs to be in the gcode, or if you really don't want to do that (why?), it has to be in the interpreter
at least I surely hope so :D
No, but a corner requires movements in the X and Y joints too, so I am hoping that the velocity limits on those axes might catch it.
skunkworks: the youtube vid description
A g-code preprocessor that is aware of nozzle length and fly height and swivel-head geometry that can track curves and spirals sounds to me like a far harder problem than solving it at the kinematics level.
And, if I might remind you, Mr cradek, it was you who said it was an easy kinematics problem in the first place!
if so, I didn't understand the question :-)
Anyway.. Given that any sharp corner with a head-tilt converts it to an inside or outside sweep in X and Y, I am hopeful that it might still work.
I have a stepwise low-pass filter for the current heading, where the gain is directly proportional to how far the axes moved in the last thread, so it should ignore tiny dithers and "tend" towards a true heading.
When I started on this I was rather assuming that the kins modules were passed rather more information than they actually are.
Is there, actually, any possiblity of adding current velocity vector to the EmcPose structure? My assumption is that it wouldn't break anything. But I am also assuming that something upstream has the information
I don't know how hard that is, sorry
imho, velocity doesn't belong in the 'pose' structure, it's something specific. where do you really want velocity information that it's not available currently?
Well, I guess it isn't velocity as such. What we want is current direction-of-travel
(oh, you want it as an input to kinematics?)
Yes, we want the kinematics module to know where is it going (or where it has been) rather than just where it is now.
The application is very similar to tool diameter offset, but not similar enough to be any help.
I do actually think that it can be done (at least badly) by differentiating position within the kins module.
I'm dubious on that :)
Thinking aloud: Currently we are storing the last position, and comparing it to the new position every thread cycle. How about if we were only to store the old position if it was more than (say) .1mm from the new position, and were to only calculate the heading at that point too.
The alternative would be a 0.1mm shift register, and a polynomial curve fit to the history. That would have to work :-)
andypugh: an interesting thing that might work in HAL
actually two parts
err, two versions
I am listening, I don't stop till things work...
Viz that video I just posted to the other channel, which is something utterly overtaken by events including PCW sending me samples :-)
in one, you write a module that has two functions, a "latch" function which you run before the motion controller so it can save the "before" motor pos commands
and then a processing function that runs after motion, which then has the new command position
I guess that's like kinematics, but it's guaranteed to run exactly once per thread execution
Does that add anything that can't be inside a suitably elaborate kins module?
I have been assuming that the kins modules run once per thread too.
(I'm not absolutely sure that kins isn't run more than once in the motion controller)
yeah, I dunno
it would make sense ...
I can see it might run forwards then reverse (or the other way round)
well, technically you're right - you can have an extra HAL function in kins, so you can put "latch" there
I guess it is easy enough to answer by having ForwardKins and InverseKins send timestamps to stdio
the main issue though is that kins provides an internal mathematical transform, which may have additional corrections applied afterwards (such as screw mapping or backlash)
EMC: 03cradek 07v2.4_branch * r5ac91f2d7835 10/src/emc/ (5 files in 4 dirs): remove SPLINE canon calls and use NURBS instead
it technically should be part of the motion controller code, but it's a separately linked module to make it easier to swap around in the configs
(otherwise you need a bunch of separate motion controllers, depending on the kins)
SWPLinux: Let us see how we get on with the kludge, last message from the Estonian was that it was actually working...
oh, well in that case carry on ;)
EMC: 03jepler 07v2.4_branch * r5f64a07f5997 10/src/emc/task/emccanon.cc: avoid division by zero
EMC: 03jepler 07v2.4_branch * r7ed7a64c8446 10/src/emc/rs274ngc/ (interp_internal.cc interp_internal.hh interp_read.cc): Make it possible to check whether Q is specified
EMC: 03jepler 07v2.4_branch * r1897c1992869 10/src/emc/rs274ngc/interp_convert.cc: G5 without P, Q is an error; diagnose it
EMC: 03jepler 07v2.4_branch * r5ee9249f3bb7 10/src/emc/ (3 files in 3 dirs): provide a function to calculate nurbs tangent
EMC: 03jepler 07v2.4_branch * r8cdc465a037c 10/src/emc/rs274ngc/gcodemodule.cc: remove outdated comments
EMC: 03jepler 07v2.4_branch * rd27fb2504436 10/src/emc/task/emccanon.cc: fix G1 followed by G5.x
EMC: 03jepler 07v2.4_branch * r677e20ce008f 10/src/hal/utils/comp.g: don't emit MODULE_LICENSE repeatedly
EMC: 03swpadnos 07master * r19977b1ba2ba 10/src/hal/components/thc.comp: mode change (to 644)
alex_joni: thanks! :) you know me and spelling
hmm. probably won't be able to trouble shoot that problem until after the fest
what does changing the mode of the comp file do? Just curious...
jthornton: makes it the same as all the others in the directory - you can't execute source
I imagine you copied it to a vfat-formatted USB flash drive at some point in its life
I can image that it was copied all over the place LOL while working on it
I suppose a kudge would be to make the tool-prepared go true during a estop..
I must be doing something wrong.
speaking of tool changers is there a way to gracefully abort a tool change?
I don't think so
I was manually setting tool-prepared to true - to get out of the tool change
I guess I could try that and bailing from the current program if one is running
* jthornton wanders out to the shop to make a network cable for the Zotac
there was a fair amount of thought that went into the toolchange logic for the Mazak
for things like recovering from a partially completed change, etc
I'll take a gander at that too
I wouldn't think noise would make an internal pin of emc to trip.
[23:42:27] <cradek> http://timeguy.com/cradek-files/emc/0002-Save-state-of-G92-correctly-across-restarts.patch