Velocity problems
19 Aug 2013 06:50 #37826
by andypugh
I _think_ that things are different there in the JA3 branch.
I have been playing about with a JA3 config to try to prove this to myself, but I think I might have been editing the wrong files, and / or working in an old JA3 or something.
Replied by andypugh on topic Velocity problems
as you already calculated I need to decrease rotary limit under 30 deg/s. I can accept this for jog. But you (Andy) are wrong in term that this disturbance is only in jog mode. It is in MDI too. And can be problematic for G00 (and fast G01).
I _think_ that things are different there in the JA3 branch.
I have been playing about with a JA3 config to try to prove this to myself, but I think I might have been editing the wrong files, and / or working in an old JA3 or something.
Please Log in or Create an account to join the conversation.
19 Aug 2013 13:32 #37833
by eslavko
Replied by eslavko on topic Velocity problems
I search a lot but JA3 branch seems to be mistery. I find near nothing, and afraid if I install it I cant configure it as ini is different but no documentation found (just one page on wiki meniton how should be). And stability of JA3 is probably in question for "unatendet" run of machine.
Please Log in or Create an account to join the conversation.
19 Aug 2013 17:10 #37835
by andypugh
So, if you can figure out how to configure it, it will be as stable as the normal release (as it gets all the same bug-fixes) but the way it handles non-trivial kins is better.
You can experiment with JA3 without breaking your existing configuration by compiling it as a Run-In-Place system.
The basic steps are:
Install Git to download and manage the LinuxCNC source code
Install a number of other packages to be able to compile LinuxCNC
Configure the Git branch to joints_axes3 and compile.
In a terminal, typeto switch to the run-in-place configuration instead of your normal installed configuration. (and it really does have to be dot space dot slash at the beginning of the command )
In the same terminal, type linuxCNC to start the special version (the menu will still launch the standard installed version)
If you think that you want to try this (and for your machine I think you should) then start at section 2.1.2 here: wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal..._or_8_04_from_source
Then follow sections 2.2, 2.3 and 2.4.
Then, before following the commands in section 2.5, switch to the joints-axes3 branch:[code] git branch --track joints-axes3 origin/joints-axes3
git checkout joints-axes3[/quote]
Then follow the section 2.5 instructions to build the version.
Git is a very clever (and complicated) piece of software that keeps track of all the different files in all the different versions of a software package and switches between them, So you can step backwards through the development phases, or look at different branches of the "tree". It is a tree because different people work on different things at the same time from the same base-version and their versions diverge until they are all combined together in a release version.
This is likely to take some time. Probably a whole evening to get a working JA3 running a demo config. However at that point you will not only be able to run JA3, but any other branch, and you will be able to make any changes you want to LinuxCNC and run those too.
Replied by andypugh on topic Velocity problems
Yes, I am finding the same problem, though the sample configs in that branch do have INI files in the new format. It may be that the documents exxist but that we haven't found them.I search a lot but JA3 branch seems to be mistery. I find near nothing, and afraid if I install it I cant configure it as ini is different but no documentation found
Stability of JA3 is reported to be fine and at least two LinuxCNC integrators have sold JA3 machines to customers.And stability of JA3 is probably in question for "unatendet" run of machine.
So, if you can figure out how to configure it, it will be as stable as the normal release (as it gets all the same bug-fixes) but the way it handles non-trivial kins is better.
You can experiment with JA3 without breaking your existing configuration by compiling it as a Run-In-Place system.
The basic steps are:
Install Git to download and manage the LinuxCNC source code
Install a number of other packages to be able to compile LinuxCNC
Configure the Git branch to joints_axes3 and compile.
In a terminal, type
. ./scripts/rip-environment
In the same terminal, type linuxCNC to start the special version (the menu will still launch the standard installed version)
If you think that you want to try this (and for your machine I think you should) then start at section 2.1.2 here: wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal..._or_8_04_from_source
Then follow sections 2.2, 2.3 and 2.4.
Then, before following the commands in section 2.5, switch to the joints-axes3 branch:[code] git branch --track joints-axes3 origin/joints-axes3
git checkout joints-axes3[/quote]
Then follow the section 2.5 instructions to build the version.
Git is a very clever (and complicated) piece of software that keeps track of all the different files in all the different versions of a software package and switches between them, So you can step backwards through the development phases, or look at different branches of the "tree". It is a tree because different people work on different things at the same time from the same base-version and their versions diverge until they are all combined together in a release version.
This is likely to take some time. Probably a whole evening to get a working JA3 running a demo config. However at that point you will not only be able to run JA3, but any other branch, and you will be able to make any changes you want to LinuxCNC and run those too.
Please Log in or Create an account to join the conversation.
20 Aug 2013 00:32 #37857
by andypugh
Having experimented, they aren't
It looks like even in the JA3 version you would need to set the C and B axis speeds low enough for XY and Z to be able to keep up.
One advantage in JA3 (which might make this acceptable for you) is that the AXIS and JOINT velocity limits are different things.
This means you can have a C axis limit of 30deg/sec but a JOINT-5 limit of 1000 degrees per second. So, you can switch to joint mode to rapidly position a rotary, then switch back to world mode for a coordinated move. (This does work a _lot_ more smoothly in JA3)
Replied by andypugh on topic Velocity problems
I _think_ that things are different there in the JA3 branch.
Having experimented, they aren't
It looks like even in the JA3 version you would need to set the C and B axis speeds low enough for XY and Z to be able to keep up.
One advantage in JA3 (which might make this acceptable for you) is that the AXIS and JOINT velocity limits are different things.
This means you can have a C axis limit of 30deg/sec but a JOINT-5 limit of 1000 degrees per second. So, you can switch to joint mode to rapidly position a rotary, then switch back to world mode for a coordinated move. (This does work a _lot_ more smoothly in JA3)
Please Log in or Create an account to join the conversation.
20 Aug 2013 02:41 - 20 Aug 2013 02:44 #37863
by eslavko
Replied by eslavko on topic Velocity problems
Today I was doing wiring for limit and home switches.
.. and HAL thing to keep running it. It's near done just have to setup two LUT5 components to make slave Y happy when homing.
So seems that JA3 is not so good. Maybe I will try but lack of information (manual) is keeping me off of JA3, and of course knowing that kinematics is not perfect.
Solution with different speeds when is in joint vs world mode can be probably done in HAL too. So if that is only + for JA3 is probably not worth to do.
I just don't understand why this isn't finished correctly (or at least how is proposed here wiki.linuxcnc.org/cgi-bin/wiki.pl?JointsVsAxes) as 5axis is not so new. At least 1'st steps was done years ago.
.. and HAL thing to keep running it. It's near done just have to setup two LUT5 components to make slave Y happy when homing.
So seems that JA3 is not so good. Maybe I will try but lack of information (manual) is keeping me off of JA3, and of course knowing that kinematics is not perfect.
Solution with different speeds when is in joint vs world mode can be probably done in HAL too. So if that is only + for JA3 is probably not worth to do.
I just don't understand why this isn't finished correctly (or at least how is proposed here wiki.linuxcnc.org/cgi-bin/wiki.pl?JointsVsAxes) as 5axis is not so new. At least 1'st steps was done years ago.
Last edit: 20 Aug 2013 02:44 by eslavko.
Please Log in or Create an account to join the conversation.
20 Aug 2013 17:00 #37877
by andypugh
Replied by andypugh on topic Velocity problems
How do you jog?
Please Log in or Create an account to join the conversation.
20 Aug 2013 18:35 #37880
by eslavko
For now with keyboard.
But the next thing is homemade pendant.
I just put together some old board's liing around and got something you see in picture.
It has 20 pushbuttons 5 leds in start of each key row one, 96 pulses/revolution encoder and 4x20 char LCD.
Now I need to write python userspace component for that. (this will be my 1'st python program )
All thing goes in short packets over RS232 at 115200bps with CRC check. The python routine is responsible to send data to LCD so the data on LCD is simple configurable..
If thing will work as I expect I can post this as opensource/free project.
Replied by eslavko on topic Velocity problems
How do you jog?
For now with keyboard.
But the next thing is homemade pendant.
I just put together some old board's liing around and got something you see in picture.
It has 20 pushbuttons 5 leds in start of each key row one, 96 pulses/revolution encoder and 4x20 char LCD.
Now I need to write python userspace component for that. (this will be my 1'st python program )
All thing goes in short packets over RS232 at 115200bps with CRC check. The python routine is responsible to send data to LCD so the data on LCD is simple configurable..
If thing will work as I expect I can post this as opensource/free project.
Please Log in or Create an account to join the conversation.
20 Aug 2013 18:47 #37881
by andypugh
If you were analog jogging then it should be fairly easy to pass the jog speed command through a limit component related to the cosine of the B-axis value (I have realised that both Z and XY velocity limts are dependent only on B angle)
The same functions connected to feed-override ought to be able to limit coordinated movements.
This is not a general solution, but might work in your case.
I still think that the B and C axis limits being discussed will be far less of a problem in practice than you think.
Replied by andypugh on topic Velocity problems
How do you jog?
For now with keyboard.
If you were analog jogging then it should be fairly easy to pass the jog speed command through a limit component related to the cosine of the B-axis value (I have realised that both Z and XY velocity limts are dependent only on B angle)
The same functions connected to feed-override ought to be able to limit coordinated movements.
This is not a general solution, but might work in your case.
I still think that the B and C axis limits being discussed will be far less of a problem in practice than you think.
Please Log in or Create an account to join the conversation.
20 Aug 2013 19:09 #37884
by eslavko
I really dont know what this will mean in real work. So for now I decide to leave as it is (limiting BC) and to do other missing stuff.
Today I finished HAL and LUT so now gantry can be homed and synced without gantrykins.
Now I need to dig into python.... (probably new thread will be oppened with new problems )
Replied by eslavko on topic Velocity problems
If you were analog jogging then it should be fairly easy to pass the jog speed command through a limit component related to the cosine of the B-axis value (I have realised that both Z and XY velocity limts are dependent only on B angle)
The same functions connected to feed-override ought to be able to limit coordinated movements.
This is not a general solution, but might work in your case.
I still think that the B and C axis limits being discussed will be far less of a problem in practice than you think.
I really dont know what this will mean in real work. So for now I decide to leave as it is (limiting BC) and to do other missing stuff.
Today I finished HAL and LUT so now gantry can be homed and synced without gantrykins.
Now I need to dig into python.... (probably new thread will be oppened with new problems )
Please Log in or Create an account to join the conversation.
- lisandromassera
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 1
22 Aug 2013 09:19 #37945
by lisandromassera
Replied by lisandromassera on topic Velocity problems
I have had the same problem as you when I made my 5 axis machine. I solved it by lowering the jog speed when jogging the rotary axes. I used a MUX in HAL so that whenever I tried to jog the B or C axes, the jog speed changed. I´m thinking over my head now, but maybe the rotary joging speed could be recalculated as a function of tool length in HAL.
I don´t think that it is a good idea to change the jogging speed in the middle of a jog to accomodate for joint constraints. Maybe in a regular 5 axis machine this change in speed is smooth, but with more complicated kinematics there could be a big change in speed in a short time, which could lead to an accident.
So, in my opinion, the actual behaviour when jogging is correct. If you try to jog at a speed faster than the machine is able to, you get a following error.
Regarding auto and mdi modes, 5 axis programs are normally written in inverse timing mode, which gives more control over the machine by the program. This adds to the dificulty of making one by hand. However, it is not so hard to write a script which takes as an input the almost finished gcode file, and outputs the finished gcode file whith the correct feeds in order to keep the machine working at maximum speed within it´s constraints. This way, you can work within both axis and joint constraints, without having to lower the axis constraints so that joint constraints are honored even in the worst case scenario.
Hope I made myself clear, I've tried to use the specific vocabulary
Lisandro
I don´t think that it is a good idea to change the jogging speed in the middle of a jog to accomodate for joint constraints. Maybe in a regular 5 axis machine this change in speed is smooth, but with more complicated kinematics there could be a big change in speed in a short time, which could lead to an accident.
So, in my opinion, the actual behaviour when jogging is correct. If you try to jog at a speed faster than the machine is able to, you get a following error.
Regarding auto and mdi modes, 5 axis programs are normally written in inverse timing mode, which gives more control over the machine by the program. This adds to the dificulty of making one by hand. However, it is not so hard to write a script which takes as an input the almost finished gcode file, and outputs the finished gcode file whith the correct feeds in order to keep the machine working at maximum speed within it´s constraints. This way, you can work within both axis and joint constraints, without having to lower the axis constraints so that joint constraints are honored even in the worst case scenario.
Hope I made myself clear, I've tried to use the specific vocabulary
Lisandro
Please Log in or Create an account to join the conversation.
Time to create page: 0.104 seconds