Hi Rob,

Thanks for taking a look! Perhaps this information could help you get a 
predictable case set up. While testing, I'm able to always reproduce the 
error -7 when my [AXIS_0]HOME_OFFSET is set to 2.7499, [AXIS_0]HOME set to 
2.5 and a program that simply moves to 2.5 in X:

%
G0 X2.5
%

The error that is produced in /var/log/linuxcnc.log:
user line can't have zero length! xyz start = 
2.500000007435e+00,2.499999999910e+00,-2.559125863375e-10, end = 
2.500000000000e+00,2.499999999910e+00,-2.559125863375e-10

-John


On Thursday, January 24, 2019 at 12:33:02 PM UTC-7, Robert Ellenberg wrote:
>
> Hi John,
>
> I'm taking another look at this now, and seeing some weird behavior with 
> the example NGC file in LinuxCNC 2.7.x too (hits an acceleration violation 
> in the A axis around line 1600). I suspect that there is an issue with the 
> floating point comparisons as well, in particular since LinuxCNC handles 
> the case of rotary + linear motion differently than a pure rotary motion. 
> As such, a motion that has some rotary motion and a pathologically small 
> linear motion could be triggering the problem. I don't currently have a 
> machinekit build on my dev PC, but I will set one up and do further testing 
> in simulation shortly.
>
> Best,
> Rob
>
> On Thu, Jan 24, 2019 at 10:26 AM <jo...@pocketnc.com <javascript:>> wrote:
>
>> Hey Robert,
>>
>> Have you had a chance to look at this any closer? We hit this error 100% 
>> of the time on the Pocket NC for specific values of various HOME_OFFSETs 
>> (our current solution is to tweak those values by .0001" until the error 
>> goes away). The error occurs immediately after pressing the run button on 
>> any program after homing the machine. Any jogging before running the 
>> program and it runs fine. I've done a little digging into the code base to 
>> see what could be causing the issue, but don't have a good enough sense of 
>> the overall flow of data. Any insights would be appreciated. I've located 
>> several floating point equality comparisons that would result in a more 
>> precise comparison than the 1e-20 the trajectory planner is comparing 
>> against, but haven't had any luck when changing from direct equality (or 
>> inequality) operations to a difference comparison (i.e. changing x == y to 
>> abs(x-y) < epsilon).
>>
>> Here are a few places I've tried adjusting:
>>
>> https://github.com/machinekit/machinekit/blob/1dfa0045ba95fd68e744826d684efa513cbffa97/src/emc/motion/control.c#L449
>>
>> https://github.com/machinekit/machinekit/blob/1dfa0045ba95fd68e744826d684efa513cbffa97/src/emc/rs274ngc/interp_convert.cc#L2465
>>  
>> (and several other similar instances in that same file)
>>
>> https://github.com/machinekit/machinekit/blob/1dfa0045ba95fd68e744826d684efa513cbffa97/src/emc/nml_intf/canon_position.cc#L73
>>  
>> (as well as !=)
>>
>> I don't know the best way to go about debugging this. Do you know how I 
>> could find where the zero length moves are being added to the trajectory 
>> planner and what normally prevents that from happening? 
>>
>> Yours and Schooner's insights have been helpful so far. Maybe we can work 
>> together to figure out what is going on.
>>
>> -John
>>
>> On Saturday, February 25, 2017 at 1:16:32 PM UTC-7, Robert Ellenberg 
>> wrote:
>>>
>>> Hi All,
>>>
>>> My guess is that this is a mismatch between canon and the TP in how a 
>>> zero length segment is defined. I recall running into a similar issue with 
>>> LinuxCNC. If we're lucky, it's been fixed already in another branch and 
>>> it's a matter of porting the fix over to Machinekit. I'll take a look this 
>>> weekend.
>>>
>>> Best,
>>> Rob
>>>
>>> On Sat, Feb 25, 2017 at 10:08 AM schoo...@btinternet.com <
>>> schoo...@btinternet.com> wrote:
>>>
>>>>
>>>> On 25/02/17 11:47, schoo...@btinternet.com wrote:
>>>>
>>>>
>>>> On 25/02/17 07:55, icecube45 wrote:
>>>>
>>>> It's seemingly a different line each time I run the file, this time it 
>>>> was line 20462, which is either the middle of 
>>>>
>>>>> G1 X-9.794 Y-69.769 A29.4549
>>>>>
>>>>> G1 X-10.971 Y-71.809 A29.5489
>>>>>
>>>>> G1 X-13.951 Y-71.809 A29.6678
>>>>>
>>>>> or the middle of 
>>>>
>>>>>  
>>>>
>>>> G1 X31.776 Y-64.609 A48.9986
>>>>
>>>> G1 X34.755 Y-64.609 A49.1175
>>>>
>>>> G1 X35.933 Y-62.569 A49.2115
>>>>
>>>>
>>>> defendant on if comments count as lines or not.. 
>>>> Nothing seems out of the ordinary here, which is why I'm so confused.
>>>>
>>>>
>>>> The error is defined as TP_ERR_ZERO_LENGTH
>>>>
>>>> https://github.com/machinekit/machinekit/blob/master/src/emc/tp/tp_types.h#L61
>>>>
>>>> The trajectory planner is dark magic with which I have no particular 
>>>> familiarity.
>>>> It was certainly not developed to squirt plastic in tens of thousands 
>>>> of extremely small moves.
>>>>
>>>> My only guess might be that depending upon what blending settings you 
>>>> have, it may not recognise  a commanded move(s) as
>>>> any sort of move at all.
>>>> But I could be completely wrong.
>>>>
>>>> Hopefully Robert or someone with more knowledge will chime in.
>>>>
>>>>
>>>> Just to flesh this out a bit
>>>>
>>>> This is the code which is throwing the error
>>>>
>>>> https://github.com/machinekit/machinekit/blob/master/src/emc/tp/tp.c#L1937
>>>>
>>>> if (tc.target < TP_POS_EPSILON) {
>>>>     rtapi_print_msg(RTAPI_MSG_DBG,"failed to create line id %d, 
>>>> zero-length segment\n",tp->nextId);
>>>>     return TP_ERR_ZERO_LENGTH;
>>>>     }
>>>>
>>>> If you switched on debugging, you should see this message in 
>>>> /var/log/linuxcnc.log
>>>>
>>>> This is why I am surmising that an extremely small move, with some 
>>>> rounding down from the tp settings, 
>>>> could be causing the error.
>>>>
>>>> TP_POS_EPSILON is defined here
>>>>
>>>> https://github.com/machinekit/machinekit/blob/master/src/emc/tp/tp_types.h#L44
>>>> as 1e-12 ( which is 10 to -12 or 0.000 000 000 001 !! )
>>>>
>>>> Why this is occurring I don't know, but you can switch on debugging and 
>>>> confirm that this is indeed the bit causing it.
>>>>
>>>> You can also switch off blending (G64 P0) or adjust the blend tolerance 
>>>> settings ( G64 Pn.nn ) and see if it improves.
>>>>
>>>>
>>>>
>>>>
>>>> On Friday, February 24, 2017 at 4:47:47 AM UTC-8, Schooner wrote: 
>>>>>
>>>>>
>>>>> On 24/02/17 12:03, icecube45 wrote:
>>>>>
>>>>> Does anyone have any idea what this error code is? It occasionally 
>>>>> happens, yet I can't isolate what is actually causing it, nor what the -7 
>>>>> error code actually means.
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/machinekit/machinekit/blob/master/src/emc/motion/command.c#L953
>>>>>
>>>>> It means that it does not like one of the parameters to a linear move.
>>>>>
>>>>> EMCMOT_COMMAND_BAD_EXEC means there was an error trying to initiate 
>>>>> the command.
>>>>> This would suggest the command was valid syntax but the acc, vel, move 
>>>>> extent or some other factor was not.
>>>>>
>>>>> Unless you can tell us what the move asked for was, it is impossible 
>>>>> to guess.
>>>>>
>>>>> line xxxx should be a number, it may not strictly equate to the line 
>>>>> number but should be a number non the less.
>>>>>
>>>>>
>>>>>
>>>>> I'd appreciate any advice on how to fix this error - it's popping up 
>>>>> randomly and stopping my prints.
>>>>>
>>>>> For reference, I'm on a BeBoPr++ lineardelta configuration.
>>>>> -- 
>>>>> website: http://www.machinekit.io blog: http://blog.machinekit.io 
>>>>> github: https://github.com/machinekit
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Machinekit" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to machinekit+...@googlegroups.com.
>>>>> Visit this group at https://groups.google.com/group/machinekit.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>> -- 
>>>> website: http://www.machinekit.io blog: http://blog.machinekit.io 
>>>> github: https://github.com/machinekit
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Machinekit" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to machinekit+...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/machinekit.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>> -- 
>>>> website: http://www.machinekit.io blog: http://blog.machinekit.io 
>>>> github: https://github.com/machinekit
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Machinekit" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to machinekit+...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/machinekit.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>> -- 
>>>> website: http://www.machinekit.io blog: http://blog.machinekit.io 
>>>> github: https://github.com/machinekit
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Machinekit" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to machinekit+...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/machinekit.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> -- 
>> website: http://www.machinekit.io blog: http://blog.machinekit.io 
>> github: https://github.com/machinekit
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Machinekit" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to machinekit+...@googlegroups.com <javascript:>.
>> Visit this group at https://groups.google.com/group/machinekit.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to machinekit+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to