Advanced Search

Search Results (Searched for: )

  • Aciera
  • Aciera's Avatar
Today 10:24 - Today 10:25
Replied by Aciera on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I'm glad you at least appreciate the dilemma :)

@grandixximo
If Rob Ellenberg is offering advice/cooperation I would not hesitate to accept it. Having written the current planner you'll likely get more sound information (and even opinion) )there in one email than on 40 pages of forum thread. Grotius flatly refused which was a great mistake but I think our clothoid approach was likely doomed to fail anyway.
  • Gogonfa
  • Gogonfa
Today 10:23
Replied by Gogonfa on topic How good is Ethercat motion control?

How good is Ethercat motion control?

Category: EtherCAT

Hi Hakan,

thank you very much for the detailed explanation - it was extremely helpful. It’s absolutely clear to me now how the timing works (lcec.read-all / lcec.write-all, the Sync0-based PDO exchange, and why the position feedback seen by LinuxCNC is inherently delayed by a couple of servo cycles).

Also, thanks a lot for the sketch/diagram … that made the whole sequence much easier to understand.

I’ll now check whether my delta drives provide a real internal following error / tracking error value as a PDO, and if so, I’ll try to map it into LinuxCNC.

Thanks again for taking the time to explain it so thoroughly.
  • ihavenofish
  • ihavenofish
Today 09:59
Replied by ihavenofish on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

Too much navel gazing. where are the machines? where are the beautiful surface finishes? where are the accurate parts and their measurements? That's what most of us want to see.


Maybe the community and the people so eager to have these features could donate some of their time to test and provide feedback? 3000$ is nice but it is not going to be much compensation (even if it were in cash) for donating all the work required here.


This is tricky. A dev should have hardware on hand which I know is hard, but there's also no way I'm installing anything on my machine to test that I don't know already works 100%. A crash at full speed can cause thousands of dollars in damage (ask me how I know).

Double edged catch 22. I appreciate the dilemma.

(side diversion I added g64 beziers to my vibe coded planner. First approximated ones which caused accel violations, and then real ones which seem to work right. I will make a new thread for it to not clog this one up. The source might be helpful to the people coding the "real" one, not sure)



 
  • Aciera
  • Aciera's Avatar
Today 09:35
Replied by Aciera on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

Too much navel gazing. where are the machines? where are the beautiful surface finishes? where are the accurate parts and their measurements? That's what most of us want to see.


Maybe the community and the people so eager to have these features could donate some of their time to test and provide feedback? 3000$ is nice but it is not going to be much compensation (even if it were in cash) for donating all the work required here.
  • endian
  • endian's Avatar
Today 09:30
Replied by endian on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

@ihavenofish I think there's some confusion here worth clearing up, you're right that filtering (like Tormach does) gives you unpredictable deviation, the path ends up wherever the filters spits out, that's not what we're after.

But I think you're mixing up two different things, how the machine speeds up and slows down is jerk control, whether we cut corners is G61 vs G64, these are separate knobs, if you want perfect path following, use G61, the machine will stop at every corner, follow the exact line, no deviation, with proper S-curve planning it'll do that smoothly instead of jerking around, you get accuracy, you give up speed, fair trade.

G64 P is for when you say "I'm okay with cutting corners by up to this much, just keep moving." That's already how LinuxCNC works today, S-curve doesn't change that, it just makes the motion smoother while respecting whatever tolerance you set.

Why Beziers instead of arcs for blending?
Arcs are a 2D thing. Works fine for XYZ, but what's an "arc" when you've got 9 axes moving at once? It doesn't really make sense.
Beziers are just smooth curves that work in any number of dimensions.Also arcs have constant curvature, so when you enter and exit a blend there's a sudden curvature change, the TP deals with this by speeding up and slowing down, which is why you see velocity bobbing up and down through corners, Beziers can match curvature at the transitions, so you get steadier speed through the blend, And on top of that, arcs need sin/cos every servo cycle while Beziers are just a handful of multiplies and adds, In a tight loop running 1kHz+, that matters. Same tolerance as before, just a better curve to fill it with.

This isn't like the clothoid thing, we're not trying to get fancy with exotic geometry, just trying to get smooth motion that respects whatever path constraints you set, does that make more sense?

Just to be clear, the only reason I'm talking about deviation is because S-curve has to work in all modes, including G64 P where the user has asked for corner blending, s-curve isn't only for G61 exact stop, and there will always be a fallback to trapezoidal via HAL pins, some operations like threading, tapping, and probing need the tighter timing that trapezoidal gives you. You can hook planner_type to an M-code and switch modes in your G-code when needed.
 

I think that user should take in mind and just select active motion strategy by type of job ... tapping and threading is great to hase at rigid solid trapeziodal thingy ... but probing from my point of view has to be done outside of servo-thread at hardware layer of servo FPGA to get exact position .. no time or cycle lagging present 

change in CCS can affect mainly finishing turning paths and there it should be correct by postprocesor itself or user ... during slow finish use trapeziodal or 2. option (solved by hal layer)

filltering as simulations of jerk limiting at servo layer is highway to hell ... during the finishing paths mainly at turning there you will need to increase regulator parameters from the controller to servo driver rather you can forgot at product tolerances 

thing must be solved step by step .. phase 1. is really big deal for everybody .. roughing with high speed and low jerk with more laggy tolerance during high mass movement is better ... some jerk during finishing with clear smooth finish at low speed is acceptable for all ... we have regulators for that

I think re-editing the stuff which was coded in oposite of common avaible tp is not a right way ... there we are facing of problem a shiny new stp.c
  • Hakan
  • Hakan
Today 09:20
Replied by Hakan on topic Lichuan 4 axis stepper need help-

Lichuan 4 axis stepper need help-

Category: EtherCAT

Some ideas.
Check syslog: "sudo dmesg | tail -30"
Are pdos configurable? Check the esi/xml file. Adjust configPdos if needed.
It's one slave. Config looks ok in principle.
Try with only the seconds drive, remove 0x1600, 0x1620, 0x1630, same for Rxpdos.
  • Aciera
  • Aciera's Avatar
Today 09:19
Replied by Aciera on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

Another possible scenario to consider might be

- Velocity planner with jerk limitation for G61 (exact stop)
- Velocity planner without jerk limitation for G64 but with bezier path blending

Although I'm not clear on how much easier bezier path blending becomes without the jerk limited velocity planning.

At the end of the day it is clearly up to the people donating their time to decide what they want to achieve.
  • rodw
  • rodw's Avatar
Today 09:18

MAC address not retrieved (after 2 years stop)

Category: Driver Boards

this is a bit tricky because you need non-free in your sources. This is included in our ISO
skip geub-customizer for now
  • ihavenofish
  • ihavenofish
Today 09:11
Replied by ihavenofish on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I really think this conversation is going around in circles. Lets ust step back and let 
grandixximo and his team get on with his coding. Too much navel gazing. where are the machines? where are the beautiful surface finishes? where are the accurate parts and their measurements? That's what most of us want to see.


I'll agree with that. Proof is in the... proof.

Side diversion, "I" just vibe coded a (very) basic control simulation with jerk limited motion including g64. That's the first actual success I have had with it - prior attempts gave me nonsense trajectories.

How this can be applied to linuxcnc... not sure yet. But it's neat.

 
  • Jocman
  • Jocman
Today 09:03

MAC address not retrieved (after 2 years stop)

Category: Driver Boards

Now the linuxcnc error is once again about the mac address (as in my first post)
Then, I tried to install the drivers for the lan card as you suggest, but this is what I get:
joccnc@JocCnc:~$ sudo apt install r8168-dkms
[sudo] password for joccnc:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package r8168-dkms

and trying to follow your tutorial on youtube, as soon as I try to install grub-customizer (at the very beginning of the tutorial) I get this:
joccnc@JocCnc:~$ sudo apt install grub-customizer geany
[sudo] password for joccnc:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package grub-customizer
joccnc@JocCnc:~$
  • rodw
  • rodw's Avatar
Today 08:59
Replied by rodw on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I really think this conversation is going around in circles. Lets ust step back and let 
grandixximo and his team get on with his coding. Too much navel gazing. where are the machines? where are the beautiful surface finishes? where are the accurate parts and their measurements? That's what most of us want to see.
  • Hakan
  • Hakan
Today 08:56
Replied by Hakan on topic How good is Ethercat motion control?

How good is Ethercat motion control?

Category: EtherCAT

@Gogonfa, yes you can just increase ferror limit. Even better if you can use the real following error from the drive, there is often a pdo for that.
Not sure how to feed real ferror into motion but maybe there is a way.

Consequence is to not use PID loops involving linuxcnc. Let the drive do the job, tune it well like Gogonfa seems to have done.
Time sensitive signals like for homing - do it on the drive. Most other signals are not that time critical and can accept a couple of miilisecond delay without problem. Zeroing of encoder counters - on the drive.

Here is how it works.
Hal variable with direction In and Out are exchanged with the Ethercat drive, InOut is not suppported.
There is a distinct time when data is taken into hal: lcec.read-all. And written from hal: lcec.write-all
Data is then exchanged with the drive at the end of lcec.write-all.

It is a double exchange: out an in. Data for the pdos are sent from the ethercat master to the drive and
a few microseconds later data is received from the drives. Data is exchanged with the ethercat clients'
sync manager. The client app need a little time to prepare that so data is sent ahead of the Sync0 event. 

At Sync0 - which is the time that counts for the drive -  the drive now have the new commanded position
and can go ahead and do its thing.
The client puts the current position value (at time Sync0) into the syncmanager for later shipping.

At next data exchange event, next lcec.write-all, the current position is sent to linuxcnc.
However, no-one is interested in the data at this point, it is well beyond the lcec.read-all that reads in data to hal.

At the start of next linuxcnc servo period, the previously read data is read into hal with the lcec.read-all function.
There is no actual data exchange at this point, actual data exchnage only happens at end of lcnec.write-all,
so it uses the data the Ethercat master has kept from the earlier data exchange.

Note that this compares commanded position with current position. Not sure if that's fair,
maybe one should compare commanded position with position at end of the cycle so one can
see the effect of how well the servo actually can control. Delay is then three servo cycles. And my brain hurts.


 







 
  • ihavenofish
  • ihavenofish
Today 08:45
Replied by ihavenofish on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

This is the most important jerk control needed in linuxcnc. Option 2 is making it work fully with g64 and is FAR FAR less important.


I think that this might actually be point were many would beg to disagree.


And this is a problem.
  • billykid
  • billykid's Avatar
Today 08:43
Replied by billykid on topic 7i80db16 7i85s 7i37 firmware

7i80db16 7i85s 7i37 firmware

Category: Driver Boards

Good morning, I received the 7i85s purchased from Eusurplus in a very short time, loaded the indicated firmware, now I wanted to do a configuration with pncconf but if I choose 7i80db 16 I see a maximum of 2 encoders and I can only decrease them. Is there any way to configure it?
  • Aciera
  • Aciera's Avatar
Today 08:41 - Today 08:58
Replied by Aciera on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

This is the most important jerk control needed in linuxcnc. Option 2 is making it work fully with g64 and is FAR FAR less important.


I think that this might actually be the point were many would beg to disagree.
Displaying 1 - 15 out of 281619 results.
Time to create page: 2.160 seconds
Powered by Kunena Forum