PnCConf rework
12 Mar 2013 04:04 #31261
by arvidb
Replied by arvidb on topic PnCConf rework
Peter, can you confirm that "assumption a)" in my
message above
is correct?
Please Log in or Create an account to join the conversation.
12 Mar 2013 07:58 #31268
by PCW
Replied by PCW on topic PnCConf rework
Its not guaranteed but most configurations follow that rule.
Please Log in or Create an account to join the conversation.
18 Mar 2013 09:26 #31526
by arvidb
Replied by arvidb on topic PnCConf rework
I just wanted to let you know that I'm still working on this. Much of it is ready, I "only" have to put things together!
I've learned a lot about gtk programming today; signals, treeviews etc. Also struggling with Python imports.
Maybe after next weekend I'll have something to show.
I've learned a lot about gtk programming today; signals, treeviews etc. Also struggling with Python imports.
Maybe after next weekend I'll have something to show.
Please Log in or Create an account to join the conversation.
24 Mar 2013 07:29 #31784
by arvidb
Replied by arvidb on topic PnCConf rework
I'm a bit confused about the handling of axes vs joints.
The HAL component axis.N actually handles joints, according to the man page . So axis.N.home-sw-in signals a _joint_ home (and homing must be made to joint positions, which is reasonable I guess).
And if I understand the documentation correctly, the .ini file's [AXIS_N] section name is also a misnomer, and instead map directly to the HAL axis component.
First I thought that there are values in the [AXIS_N] section that simply didn't make sense for joints, like TYPE and UNITS, and MAX_VELOCITY, MAX_ACCELERATION and BACKLASH (since they are in machine units). But then I realised that machine units and machine coordinates aren't the same thing, so even if a joint's backlash varies with its axis'/axes' position(s) in the machine coordinate frame, it can still be expressed in machine units in the joint's coordinate frame.
Ok, so perhaps I'm not so confused? Anyway, I guess the documentation should be changed to reflect that [AXIS_<num>] actually sets up joints, and not axes? (The word axis is used throughout the manual section on [AXIS_<num>].)
The HAL component axis.N actually handles joints, according to the man page . So axis.N.home-sw-in signals a _joint_ home (and homing must be made to joint positions, which is reasonable I guess).
And if I understand the documentation correctly, the .ini file's [AXIS_N] section name is also a misnomer, and instead map directly to the HAL axis component.
First I thought that there are values in the [AXIS_N] section that simply didn't make sense for joints, like TYPE and UNITS, and MAX_VELOCITY, MAX_ACCELERATION and BACKLASH (since they are in machine units). But then I realised that machine units and machine coordinates aren't the same thing, so even if a joint's backlash varies with its axis'/axes' position(s) in the machine coordinate frame, it can still be expressed in machine units in the joint's coordinate frame.
Ok, so perhaps I'm not so confused? Anyway, I guess the documentation should be changed to reflect that [AXIS_<num>] actually sets up joints, and not axes? (The word axis is used throughout the manual section on [AXIS_<num>].)
Please Log in or Create an account to join the conversation.
24 Mar 2013 09:04 #31786
by arvidb
Replied by arvidb on topic PnCConf rework
*sigh* But that can't be right: how do one home, say, an inverted tripod machine if homing is not synchronized?
Hmm, but then again, if such a machine is not homed (i.e. the absolute position of each joint is not known), it is impossible to do synchronized movement anyway.
Boy this is dizzying!
This would mean that one would have to use absolute feedback on a stiff hexapod machine?
Hmm, but then again, if such a machine is not homed (i.e. the absolute position of each joint is not known), it is impossible to do synchronized movement anyway.
Boy this is dizzying!
This would mean that one would have to use absolute feedback on a stiff hexapod machine?
Please Log in or Create an account to join the conversation.
24 Mar 2013 11:06 #31788
by cmorley
Replied by cmorley on topic PnCConf rework
You have discovered that axis and joints are not properly separated ideas in Linuxcnc.
There is actually a branch of linuxcnc that is a work in progress to separate the concepts.
Chris M
There is actually a branch of linuxcnc that is a work in progress to separate the concepts.
Chris M
Please Log in or Create an account to join the conversation.
24 Mar 2013 22:58 #31805
by arvidb
Replied by arvidb on topic PnCConf rework
Well, I could at least fix the
[AXIS_<num>]
documentation section, if someone told me how to (and if there is a consensus that that section actually controls joints, not axes).
Please Log in or Create an account to join the conversation.
25 Mar 2013 08:23 - 25 Mar 2013 08:25 #31817
by arvidb
Replied by arvidb on topic PnCConf rework
Ok, so I'm slowly getting somewhere:
Hardware selection:
Joint configuration:
And this would generate a config something like this (but aligned - weird that the code tag doesn't use a monospaced font? Oh, it's just the preview that doesn't show the code section properly...):
These are actual outputs from the program, but the HAL generation was an earlier experiment and I haven't gotten it integrated with the main program yet. Glade/gtk is quite complicated, and it takes time to get where I want! Although I guess I'm getting more familiar with it all the time.
As you can see the program is a complete redesign, although very much inspired by pncconf. Actually, there's no reason why this program could only handle Mesa hardware...
Hardware selection:
Joint configuration:
And this would generate a config something like this (but aligned - weird that the code tag doesn't use a monospaced font? Oh, it's just the preview that doesn't show the code section properly...):
#*********************************************************
# AXIS X
#*********************************************************
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [AXIS_0]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout0-minlim [AXIS_0]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [AXIS_0]OUTPUT_MAX_LIMIT
setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D
setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2
setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
setp hm2_5i25.0.encoder.00.scale [AXIS_0]ENCODER_SCALE
setp hm2_5i25.0.encoder.00.index-invert 0
setp hm2_5i25.0.encoder.00.index-mask 0
setp hm2_5i25.0.encoder.00.index-mask-invert 0
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
net x-enable <= axis.0.amp-enable-out
net x-enable => hm2_5i25.0.7i77.0.1.analogena
net x-enable => pid.x.enable
net x-min => axis.0.neg-lim-sw-in
net x-max => axis.0.pos-lim-sw-in
net x-pos-cmd <= axis.0.motor-pos-cmd
net x-pos-cmd => pid.x.command
net x-index-enable <=> hm2_5i25.0.encoder.00.index-enable
net x-index-enable <=> axis.0.index-enable
net x-index-enable => pid.x.index-enable
net x-pos-rawcount <= hm2_5i25.0.encoder.00.rawcount
net x-home => axis.0.home-sw-in
net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
net x-vel-fb => pid.x.command-deriv
net x-output <= pid.x.output
net x-output => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-fb <= hm2_5i25.0.encoder.00.position
net x-pos-fb => pid.x.feedback
net x-pos-fb => axis.0.motor-pos-fb
These are actual outputs from the program, but the HAL generation was an earlier experiment and I haven't gotten it integrated with the main program yet. Glade/gtk is quite complicated, and it takes time to get where I want! Although I guess I'm getting more familiar with it all the time.
As you can see the program is a complete redesign, although very much inspired by pncconf. Actually, there's no reason why this program could only handle Mesa hardware...
Last edit: 25 Mar 2013 08:25 by arvidb.
Please Log in or Create an account to join the conversation.
25 Mar 2013 11:41 - 25 Mar 2013 11:43 #31823
by cmorley
Replied by cmorley on topic PnCConf rework
Looking pretty good.
I would name it something snappy like: machine builder.
In your hardware tree how will you select which connector the 7i77 is on? If there are optional sserial boards how will you select which sserial channels they are on?
Will you allow deselection of components to free up GPIO?
Forgive me if I am getting ahead of you - I understand WIP.
One thing I always wanted was to have sane defaults for imperial and metric units. PNCconf just converts the imperial units and it doesn't always make sense. Something to keep in mind.
Even nicer if you could switch units per page - sometimes metric units are used on an other wise imperial machine.
I like the single signal / pin per line - nice and clean.
I would add a checkbox to invert the index direction and latch style.
and on a linear axis max velocity is usually shown in mm/min
Chris M
I would name it something snappy like: machine builder.
In your hardware tree how will you select which connector the 7i77 is on? If there are optional sserial boards how will you select which sserial channels they are on?
Will you allow deselection of components to free up GPIO?
Forgive me if I am getting ahead of you - I understand WIP.
One thing I always wanted was to have sane defaults for imperial and metric units. PNCconf just converts the imperial units and it doesn't always make sense. Something to keep in mind.
Even nicer if you could switch units per page - sometimes metric units are used on an other wise imperial machine.
I like the single signal / pin per line - nice and clean.
I would add a checkbox to invert the index direction and latch style.
and on a linear axis max velocity is usually shown in mm/min
Chris M
Last edit: 25 Mar 2013 11:43 by cmorley.
Please Log in or Create an account to join the conversation.
25 Mar 2013 17:14 #31833
by andypugh
(See the Hostmot2 manpage. Note that even the online development docs seem to be out of date in this area)
However, this may not help if the configurator doesn't poll hardware to interrogate the boards.
Replied by andypugh on topic PnCConf rework
This would be a good time to switch to identifying sserial boards by serial number, rather than attached port.If there are optional sserial boards how will you select which sserial channels they are on?
(See the Hostmot2 manpage. Note that even the online development docs seem to be out of date in this area)
However, this may not help if the configurator doesn't poll hardware to interrogate the boards.
Off topic, but I saw a great example of this the other day "The temperature rose by 2 C (36 F) through the day"One thing I always wanted was to have sane defaults for imperial and metric units. PNCconf just converts the imperial units
Please Log in or Create an account to join the conversation.
Time to create page: 0.103 seconds