New Trajectory Planner - Testers/programs wanted
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
08 Jan 2014 08:20 - 26 Mar 2014 00:24 #42469
by skunkworks
New Trajectory Planner - Testers/programs wanted was created by skunkworks
EDIT::: Rob has now pushed his work to git.linuxcnc.org. The directions for getting his build has now changed. This build also includes a lot of changes regarding segment blending. It is a very impresssive improvement.
there should be debs building in the near future for this branch.
A linuxcnc developer has made some impressive improvements to linuxcnc trajectory planner. At this point we think it may be stable enough to have a wider group test it.
Some history.
Currently the trajectory planner in linuxcnc uses parabolic blends to transition between segments. It also has the limitation that it has to be able to stop by the end of the next segment. (effectively making have 1 segment look-ahead.) For most things - this isn't a problem. As you get into higher speeds like routing and such - the limitation starts to show itself.
Robert (the developer working on this) has added circular blending to the TP. This allows him to calculate what is need to look further ahead in the programmed path. (As I understand it - the math is harder with parabolic blends). He has not solved for every segment-segment transition. Currently he has look-ahead working for
Line-line transitions
Tangent line-arc transitions
Tangent arc-arc transitions
He hopes to study other transitions and add them in the future. His main plan was getting line-line transitions working as that is what a lot of 3d tool paths out of cam software produces. Any unhanded transitions fall back to parabolic blends. (so it still blend but has to slow back down to current TP performance)
Here is an example of the performance increase - this config is 500ipm - 30in/sec^2 (sorry - pretty crappy video)
The current tp peaks somewhere around 100ipm(first run) - the new tp peaks over 400ipm(second run)
To test this you need to build the rip version of linuxcnc.
These are the basic steps..
You will want to get familiar with this
wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal..._to_compile_LinuxCNC
The basic steps in terminal
^ that should launch the run in place version linuxcnc with the new TP...
It is basically the same as the wiki link except it is also pulling the patches from Robs branch.
You are almost done... There are some changes to the ini file
In the [TRAJ] section you need to add a few lines
ARC_BLEND_ENABLE = 1
ARC_BLEND_FALLBACK_ENABLE = 0
ARC_BLEND_OPTIMIZATION_DEPTH = 50
ARC_BLEND_GAP_CYCLES = 4
ARC_BLEND_RAMP_FREQ = 20
So - to run the RIP version
Open terminal
cd linuxcnc-rc3
. ./scripts/rip-environment
linuxcnc
This is still pretty new - so be careful and let us know of any issues..
Also - if you have some gcode programs that you think would be a good test for the new tp - please post them.
sam
there should be debs building in the near future for this branch.
A linuxcnc developer has made some impressive improvements to linuxcnc trajectory planner. At this point we think it may be stable enough to have a wider group test it.
Some history.
Currently the trajectory planner in linuxcnc uses parabolic blends to transition between segments. It also has the limitation that it has to be able to stop by the end of the next segment. (effectively making have 1 segment look-ahead.) For most things - this isn't a problem. As you get into higher speeds like routing and such - the limitation starts to show itself.
Robert (the developer working on this) has added circular blending to the TP. This allows him to calculate what is need to look further ahead in the programmed path. (As I understand it - the math is harder with parabolic blends). He has not solved for every segment-segment transition. Currently he has look-ahead working for
Line-line transitions
Tangent line-arc transitions
Tangent arc-arc transitions
He hopes to study other transitions and add them in the future. His main plan was getting line-line transitions working as that is what a lot of 3d tool paths out of cam software produces. Any unhanded transitions fall back to parabolic blends. (so it still blend but has to slow back down to current TP performance)
Here is an example of the performance increase - this config is 500ipm - 30in/sec^2 (sorry - pretty crappy video)
The current tp peaks somewhere around 100ipm(first run) - the new tp peaks over 400ipm(second run)
To test this you need to build the rip version of linuxcnc.
These are the basic steps..
You will want to get familiar with this
wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal..._to_compile_LinuxCNC
The basic steps in terminal
git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc-rc3
cd linuxcnc-rc3
git branch --track circular-blend-arc-rc3 origin/circular-blend-arc-rc3
git checkout circular-blend-arc-rc3
cd src
./autogen.sh
./configure --enable-run-in-place
make
sudo make setuid
cd ..
. ./scripts/rip-environment
linuxcnc
^ that should launch the run in place version linuxcnc with the new TP...
It is basically the same as the wiki link except it is also pulling the patches from Robs branch.
You are almost done... There are some changes to the ini file
In the [TRAJ] section you need to add a few lines
ARC_BLEND_ENABLE = 1
ARC_BLEND_FALLBACK_ENABLE = 0
ARC_BLEND_OPTIMIZATION_DEPTH = 50
ARC_BLEND_GAP_CYCLES = 4
ARC_BLEND_RAMP_FREQ = 20
So - to run the RIP version
Open terminal
cd linuxcnc-rc3
. ./scripts/rip-environment
linuxcnc
This is still pretty new - so be careful and let us know of any issues..
Also - if you have some gcode programs that you think would be a good test for the new tp - please post them.
sam
Last edit: 26 Mar 2014 00:24 by skunkworks.
The following user(s) said Thank You: Rick G
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
09 Jan 2014 02:02 #42513
by Todd Zuercher
Replied by Todd Zuercher on topic New Trajectory Planner - Testers/programs wanted
After the 4th step in the above, I recieved this error.
digital4@digital4-cnc:~/linuxcnc-beta$ git fetch github-robE
fatal: 'github.com/robEllenberg/linuxcnc-mirror.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
digital4@digital4-cnc:~/linuxcnc-beta$ git fetch github-robE
fatal: 'github.com/robEllenberg/linuxcnc-mirror.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
09 Jan 2014 02:22 #42514
by skunkworks
Replied by skunkworks on topic New Trajectory Planner - Testers/programs wanted
The message board stripped the https:// - I re-edited the original post.
So to fix this problem do a
and so on... as above..
Thanks for testing!!
So to fix this problem do a
git remote rm github-robE
git remote add github-robE https://github.com/robEllenberg/linuxcnc-mirror.git
git fetch github-robE
git checkout -b 3d-blend-arc-techdemo github-robE/circular-blend-arc-beta
and so on... as above..
Thanks for testing!!
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
09 Jan 2014 02:56 #42516
by Todd Zuercher
Replied by Todd Zuercher on topic New Trajectory Planner - Testers/programs wanted
I am using a standard live CD build of Linuxcnc 2.5.
Now I made it down to:
./configure --enable-run-in-place
and recieved the error:
checking for libmodbus3... no
configure: error: libmodbus3 not found!
install with "sudo apt-get install libmodbus-dev" or disable with
"configure --without-libmodbus"
I followed those instructions, then did ./configure --enable-run-in-place again.
It went a bit further and stopped with this error.
checking whether the Boost::Python headers are available... no
configure: error: boost::python is required to build LinuxCNC
I used synaptic to install the Boost.Python Library, then tried the ./configure --enable-run-in-place again and it finished.
The rest seemed to work without a hitch.
Now I made it down to:
./configure --enable-run-in-place
and recieved the error:
checking for libmodbus3... no
configure: error: libmodbus3 not found!
install with "sudo apt-get install libmodbus-dev" or disable with
"configure --without-libmodbus"
I followed those instructions, then did ./configure --enable-run-in-place again.
It went a bit further and stopped with this error.
checking whether the Boost::Python headers are available... no
configure: error: boost::python is required to build LinuxCNC
I used synaptic to install the Boost.Python Library, then tried the ./configure --enable-run-in-place again and it finished.
The rest seemed to work without a hitch.
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
09 Jan 2014 03:09 #42517
by skunkworks
Replied by skunkworks on topic New Trajectory Planner - Testers/programs wanted
That is how I find out what is missing most of the time (which isn't probably the best way )
This is the correct way of finding missing dependance..
wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal...g_build_dependencies
sam
This is the correct way of finding missing dependance..
wiki.linuxcnc.org/cgi-bin/wiki.pl?Instal...g_build_dependencies
sam
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
09 Jan 2014 03:46 #42522
by skunkworks
Replied by skunkworks on topic New Trajectory Planner - Testers/programs wanted
One thing to note. There has been a slight change to G64 with the new TP
Currently if you specify G64P0.005 this means the same as G64P0.005Q0.005
P is how far from path the planner can go Q uses a naive cam detector to combine lines within the given tolerance.
In the new TP if you specify G64P0.005 it is now the same as G64P0.005Q0
so as an example - if you had a program that specified G65P0.005 to compare apples to apples you would want in the new TP to specify G65P0.005Q.005
Clear as mud?
sam
Currently if you specify G64P0.005 this means the same as G64P0.005Q0.005
P is how far from path the planner can go Q uses a naive cam detector to combine lines within the given tolerance.
In the new TP if you specify G64P0.005 it is now the same as G64P0.005Q0
so as an example - if you had a program that specified G65P0.005 to compare apples to apples you would want in the new TP to specify G65P0.005Q.005
Clear as mud?
sam
The following user(s) said Thank You: JZHA1985
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
09 Jan 2014 04:23 #42524
by Todd Zuercher
Replied by Todd Zuercher on topic New Trajectory Planner - Testers/programs wanted
I think you guys working on this are defonately on the right track. It can offer a significant improvement depending on the code used.
I wish that it would be possible to easily extend this to other axis beyond XYZ.
Several of the routers we use have double vertical axis with 2 spindles using Z and W. The new traj planner shaved a min off running the code included (went from 4.5 to 3.5) That was nearly a 25% improvement.
Using the G64P0.005 vs G64P0.005Q0.005 difference was less significant on the new planner run times were, 3:37 vs. 3:30.
PS The same carving with the W code (W is identical to Z) takes about 6 minuts using either planner.
Maybe I need to try harder to build a ZZ configuration that will work for us.
Thanks again I will be playing with this some more.
I wish that it would be possible to easily extend this to other axis beyond XYZ.
Several of the routers we use have double vertical axis with 2 spindles using Z and W. The new traj planner shaved a min off running the code included (went from 4.5 to 3.5) That was nearly a 25% improvement.
Using the G64P0.005 vs G64P0.005Q0.005 difference was less significant on the new planner run times were, 3:37 vs. 3:30.
PS The same carving with the W code (W is identical to Z) takes about 6 minuts using either planner.
Maybe I need to try harder to build a ZZ configuration that will work for us.
Thanks again I will be playing with this some more.
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
09 Jan 2014 04:43 #42528
by skunkworks
Replied by skunkworks on topic New Trajectory Planner - Testers/programs wanted
Sure - this is just the start. it does circular blending for xyz at the moment. He hopes to do abcuvw.
sam
sam
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
09 Jan 2014 23:15 #42547
by Todd Zuercher
Replied by Todd Zuercher on topic New Trajectory Planner - Testers/programs wanted
I know that the axis A-W don't are not included in the new planner (yet). But I did notice some sort of bug there.
When running with the new traj, planner installed and using the the Z and W axis, the W was over shooting some of it's moves.
See the attached pictures.
Picture of Z carving Old on left, New on right.
Picture of W carving Old on left, New on right.
Both W and Z were carved at the same time using the same code on the same machine, new planner first old planner second. Both runs took approximately the same amount of time
When running with the new traj, planner installed and using the the Z and W axis, the W was over shooting some of it's moves.
See the attached pictures.
Picture of Z carving Old on left, New on right.
Picture of W carving Old on left, New on right.
Both W and Z were carved at the same time using the same code on the same machine, new planner first old planner second. Both runs took approximately the same amount of time
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
09 Jan 2014 23:40 #42549
by skunkworks
Replied by skunkworks on topic New Trajectory Planner - Testers/programs wanted
awesome! well - not awesome but this is the stuff we are looking for.
Is the program you posted above exhibiting this issue?
sam
Is the program you posted above exhibiting this issue?
sam
Please Log in or Create an account to join the conversation.
Time to create page: 0.444 seconds