5-Axis - XYZAB vs. XYZAC configuration
12 Aug 2018 01:02 - 12 Aug 2018 01:05 #115933
by Askjerry
5-Axis - XYZAB vs. XYZAC configuration was created by Askjerry
I'm still learning how to configure a 5-Axis machine... I got a working XYZAB configuration... but now that I'm really looking into the kinematics and all... I realize that the B-Axis may actually need to be programmed as a C-Axis. (Not sure yet.)
Here is a video... if the spinning table is pointed up... that would make it a C-Axis... but if I rotate it 90-degrees... as I am in the video... and set that as home... then i think it is a B-Axis. yeah?
Anyway... here is the odd part... I made a copy of the xyzAB configuration and changed all the references to the B-Axis into a C-Axis...
(Just a small snipet of the configuration)
becomes
(Just a small snipet of the configuration modified... I modified the whole thing of course...)
I would think that it would run ok... but LinixCNC (AXIS) fails.
(The above is both the working AB and the failing AC configurations.)
Any idea why???
Thanks,
Jerry
Here is a video... if the spinning table is pointed up... that would make it a C-Axis... but if I rotate it 90-degrees... as I am in the video... and set that as home... then i think it is a B-Axis. yeah?
Anyway... here is the odd part... I made a copy of the xyzAB configuration and changed all the references to the B-Axis into a C-Axis...
(Just a small snipet of the configuration)
net joint-select-b halui.joint.4.select
net b-is-homed halui.joint.4.is-homed
net jog-b-pos halui.jog.4.plus
net jog-b-neg halui.jog.4.minus
net jog-b-analog halui.jog.4.analog
becomes
(Just a small snipet of the configuration modified... I modified the whole thing of course...)
net joint-select-c halui.joint.4.select
net c-is-homed halui.joint.4.is-homed
net jog-c-pos halui.jog.4.plus
net jog-c-neg halui.jog.4.minus
net jog-c-analog halui.jog.4.analog
I would think that it would run ok... but LinixCNC (AXIS) fails.
(The above is both the working AB and the failing AC configurations.)
Any idea why???
Thanks,
Jerry
Last edit: 12 Aug 2018 01:05 by Askjerry. Reason: Clarity
Please Log in or Create an account to join the conversation.
12 Aug 2018 16:05 - 12 Aug 2018 16:11 #115966
by Askjerry
Replied by Askjerry on topic 5-Axis - XYZAB vs. XYZAC configuration
I figured it out... it may not be the most elegant solution... but it is working. I'll post my notes and the current configuration here in case anyone else has this issue.
This is my setup: XYZAC Configuration
In the INI file I have this to tell it which actual axis we are using...
Then further down I had to aparently tell it there were 6 axis... even though I'm not using the B-Axis.
Next I redefined the A-Axis, and changed the B-Axis into a C-Axis...
In the HAL file... I had to change the stepgen.04 to point to AXIS_5 since B-Axis isn't being used... and I have only 5 step generators on this card.
Not sure if I'm doing it right... but so far it seems to behave correctly. The next thing I need to do is learn about the kinematics... to offset the top of the platter (C-Axis) with the hinge point of the cradle (A-Axis) which is about X0, Y0, Z~15mm or so. That will affect the way it calculates the offset for the A rotation. Man... so much more complex when you add a 5th axis!!!
Here is what I came up with...
Jerry
This is my setup: XYZAC Configuration
In the INI file I have this to tell it which actual axis we are using...
[DISPLAY]
GEOMETRY = xyzac
Then further down I had to aparently tell it there were 6 axis... even though I'm not using the B-Axis.
[TRAJ]
AXES = 6
COORDINATES = X Y Z A C
Next I redefined the A-Axis, and changed the B-Axis into a C-Axis...
#----------------------------------------------------------------------------------------
# Axis A --- CRADLE SECTION --- ---
#----------------------------------------------------------------------------------------
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.005
MIN_FERROR = 0.0005
#---------------------------------------------------------
MAX_VELOCITY = 100
MAX_ACCELERATION = 150
STEPGEN_MAXVEL = 1000
STEPGEN_MAXACCEL = 1500
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
#----------- Invert Scale to Change Directions (Make Negative Number)
STEP_SCALE = -26.6667
MIN_LIMIT = -190
MAX_LIMIT = 190
#---------------------------------------------------------
BACKLASH = 6
#---------------------------------------------------------
HOME_OFFSET = 0
#----------------------------------------------------------------------------------------
# Axis C --- Rotary Table Platter --- ---
#----------------------------------------------------------------------------------------
[AXIS_5]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.005
MIN_FERROR = 0.0005
#---------------------------------------------------------
MAX_VELOCITY = 100
MAX_ACCELERATION = 150
STEPGEN_MAXVEL = 1000
STEPGEN_MAXACCEL = 1500
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 26.6667
MIN_LIMIT = -9999
MAX_LIMIT = 9999
#---------------------------------------------------------
BACKLASH = 1
#---------------------------------------------------------
HOME_OFFSET = 0.0
In the HAL file... I had to change the stepgen.04 to point to AXIS_5 since B-Axis isn't being used... and I have only 5 step generators on this card.
#----------------------------------------------------------------------------------------
# AXIS C
#----------------------------------------------------------------------------------------
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.04.dirsetup [AXIS_5]DIRSETUP
setp hm2_5i25.0.stepgen.04.dirhold [AXIS_5]DIRHOLD
setp hm2_5i25.0.stepgen.04.steplen [AXIS_5]STEPLEN
setp hm2_5i25.0.stepgen.04.stepspace [AXIS_5]STEPSPACE
setp hm2_5i25.0.stepgen.04.position-scale [AXIS_5]STEP_SCALE
setp hm2_5i25.0.stepgen.04.step_type 0
setp hm2_5i25.0.stepgen.04.control-type 0
setp hm2_5i25.0.stepgen.04.maxaccel [AXIS_5]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.04.maxvel [AXIS_5]STEPGEN_MAXVEL
net c-pos-fb axis.5.motor-pos-fb <= hm2_5i25.0.stepgen.04.position-fb
net c-pos-cmd axis.5.motor-pos-cmd => hm2_5i25.0.stepgen.04.position-cmd
net c-enable axis.5.amp-enable-out => hm2_5i25.0.stepgen.04.enable
Not sure if I'm doing it right... but so far it seems to behave correctly. The next thing I need to do is learn about the kinematics... to offset the top of the platter (C-Axis) with the hinge point of the cradle (A-Axis) which is about X0, Y0, Z~15mm or so. That will affect the way it calculates the offset for the A rotation. Man... so much more complex when you add a 5th axis!!!
Here is what I came up with...
Jerry
Last edit: 12 Aug 2018 16:11 by Askjerry. Reason: Added link
Please Log in or Create an account to join the conversation.
30 Sep 2018 08:41 #118227
by robh
Replied by robh on topic 5-Axis - XYZAB vs. XYZAC configuration
hi
on our 5axis the 4th axis "B" axis homes facing up to the spindle and this ismostly always named B if it rotates around the Y axis, ie when its at -90 or +90 the length of a part is in the X axis.. if it was in the Y axis then it woul dbe "A" axis
the 5th axis, is alwyas "C" as it rotates around the spindle "Z"
like on a lathe when spindle is a axis it becomes C as it rotates around the "Z"
i am assuming your spindle is on the "Z" axis here by the way!
here is my machine
"B" axis is the Tilt on the table, "C" is the collet chuck if you like.
i have not yet done any TCP on the machine, but i know there is a post on here with someone working on one. for now i have indexer rotates set as say G54 and i program from the cad around that point and let cad take care of things.. the down side is, you need to know center distance well and jigs etc need to be well modeled also as errors can stack up and show if not..
hence TCP has many plus sides as machine can take care of the center of rotate to work it all back.. but you still need to know the center of rotate very well.
on our 5axis the 4th axis "B" axis homes facing up to the spindle and this ismostly always named B if it rotates around the Y axis, ie when its at -90 or +90 the length of a part is in the X axis.. if it was in the Y axis then it woul dbe "A" axis
the 5th axis, is alwyas "C" as it rotates around the spindle "Z"
like on a lathe when spindle is a axis it becomes C as it rotates around the "Z"
i am assuming your spindle is on the "Z" axis here by the way!
here is my machine
"B" axis is the Tilt on the table, "C" is the collet chuck if you like.
i have not yet done any TCP on the machine, but i know there is a post on here with someone working on one. for now i have indexer rotates set as say G54 and i program from the cad around that point and let cad take care of things.. the down side is, you need to know center distance well and jigs etc need to be well modeled also as errors can stack up and show if not..
hence TCP has many plus sides as machine can take care of the center of rotate to work it all back.. but you still need to know the center of rotate very well.
Please Log in or Create an account to join the conversation.
Time to create page: 0.062 seconds