[solved]scara-switch-kins
29 Apr 2020 21:32 - 18 May 2020 14:17 #166149
by bkt
[solved] scara-switch-kins was created by bkt
****these is the initial problem, plus modified kins give me other problem .... see my solution at the end****
Because my scara have motor of j0 and j1 in same location, i need to add some function for right foward and invers calc ..... using standard 2.8 linuxcnc rip-install all work good.
But I promised a video to dgarret so i've install switch kins and I copy that scarakins and add one pin and calc needed.
Original file here: github.com/LinuxCNC/linuxcnc/blob/dgarr/...nematics/scarakins.c
My file add pin for added reduction because belt from motor of j1 to real position of j1 and j1 adictional calc. No other. After there I ry to launch halcompile of modified scarakins.c (no change name ... but if I change it obtain the same error), and I have these error:
not understand why really ..... because other rip-installa (standard linuxcnc-dev folder) work well.
Yeas I have 2 folder: linuxcnc-dev for rip-install of standard linuxcnc 2.8, an other folder linuxcnc-dgskins for dgarret fork switgh_kins rip-install ....
I don’t think the problem comes from my file. but the shape of the file is different from what I was used to ... so I can’t exclude it ... I attach it as it is ....
thanks in advances for how can suggest me the problem ...
regards
bkt
Because my scara have motor of j0 and j1 in same location, i need to add some function for right foward and invers calc ..... using standard 2.8 linuxcnc rip-install all work good.
But I promised a video to dgarret so i've install switch kins and I copy that scarakins and add one pin and calc needed.
Original file here: github.com/LinuxCNC/linuxcnc/blob/dgarr/...nematics/scarakins.c
My file add pin for added reduction because belt from motor of j1 to real position of j1 and j1 adictional calc. No other. After there I ry to launch halcompile of modified scarakins.c (no change name ... but if I change it obtain the same error), and I have these error:
bkt@bkt-Demo1:~/linuxcnc-skins$ halcompile --compile '/home/bkt/linuxcnc-dgskins/scarakins.c'
Compiling realtime scarakins.c
Linking scarakins.so
/usr/bin/ld:scarakins.ver:2: syntax error in VERSION script
collect2: error: ld returned 1 exit status
/home/bkt/linuxcnc-dgskins/src/Makefile.modinc:118: recipe for target 'scarakins.so' failed
make: *** [scarakins.so] Error 1
not understand why really ..... because other rip-installa (standard linuxcnc-dev folder) work well.
Yeas I have 2 folder: linuxcnc-dev for rip-install of standard linuxcnc 2.8, an other folder linuxcnc-dgskins for dgarret fork switgh_kins rip-install ....
I don’t think the problem comes from my file. but the shape of the file is different from what I was used to ... so I can’t exclude it ... I attach it as it is ....
thanks in advances for how can suggest me the problem ...
regards
bkt
Attachments:
Last edit: 18 May 2020 14:17 by bkt.
Please Log in or Create an account to join the conversation.
29 Apr 2020 22:44 - 29 Apr 2020 22:45 #166155
by dgarrett
Replied by dgarrett on topic scara-switch-kins
I can reproduce the "VERSION script" error message using
halcompile -- but note that halcompile is primarily aimed at
making hal components from .comp files. Making a hal
component or a custom kinematics module from a .c file will
require additional work and maybe some undocumented methods.
I'm not familiar with the details to make halcompile work
for arbitrary c files implementing a kinematics module.
#=============================================
Instead (Method1), recommend to just copy over (replace) the
in-tree file in your rip-install, example:
#=============================================
Alternatively (Method2), in the dgarr/s_kins branch on a RIP install
using rt-preempt, you can use the in-tree scarakins.c but
specify an additional user kinematics type as described in the
docs section on "User kinematics provisions".
See:
asciidoc: github.com/LinuxCNC/linuxcnc/blob/dgarr/...otion/switchkins.txt
html: www.panix.com/~dgarrett/stuff/switchkins.html
An example custom in-tree kinematics file is provided at
github.com/LinuxCNC/linuxcnc/blob/dgarr/...ematics/userkfuncs.c
So you could put your modified kinematics routines in a
similar file using the expected and required function naming
(userkKinematicsSetup, userkKinematicsForward,
userkKinematicsInverse) and invoke make as described in the
docs:
With this method, the kinematics types available when loading
scarakins will be:
type0: in-tree scarakins
type1: identity
type2: your-user-custom-kins
#=============================================
A third method (Method3) would be to add your custom kinematics file
(with a unique name like myscarakins.c) to
the src/emc/kinematics directory and modify the src/Makefile
following the pattern used for other kinematics modules.
halcompile -- but note that halcompile is primarily aimed at
making hal components from .comp files. Making a hal
component or a custom kinematics module from a .c file will
require additional work and maybe some undocumented methods.
I'm not familiar with the details to make halcompile work
for arbitrary c files implementing a kinematics module.
#=============================================
Instead (Method1), recommend to just copy over (replace) the
in-tree file in your rip-install, example:
$ cd src/emc/kinematics
$ cp your_scarakins.c scarakins.c # replace in-tree file
$ cd ../.. # src dir
$ make && sudo make setuid
#=============================================
Alternatively (Method2), in the dgarr/s_kins branch on a RIP install
using rt-preempt, you can use the in-tree scarakins.c but
specify an additional user kinematics type as described in the
docs section on "User kinematics provisions".
See:
asciidoc: github.com/LinuxCNC/linuxcnc/blob/dgarr/...otion/switchkins.txt
html: www.panix.com/~dgarrett/stuff/switchkins.html
An example custom in-tree kinematics file is provided at
github.com/LinuxCNC/linuxcnc/blob/dgarr/...ematics/userkfuncs.c
So you could put your modified kinematics routines in a
similar file using the expected and required function naming
(userkKinematicsSetup, userkKinematicsForward,
userkKinematicsInverse) and invoke make as described in the
docs:
$ userkfuncs=/home/myname/kins/mykins.c make && sudo make setuid
With this method, the kinematics types available when loading
scarakins will be:
type0: in-tree scarakins
type1: identity
type2: your-user-custom-kins
#=============================================
A third method (Method3) would be to add your custom kinematics file
(with a unique name like myscarakins.c) to
the src/emc/kinematics directory and modify the src/Makefile
following the pattern used for other kinematics modules.
Last edit: 29 Apr 2020 22:45 by dgarrett.
Please Log in or Create an account to join the conversation.
30 Apr 2020 01:29 - 30 Apr 2020 02:07 #166182
by dgarrett
Replied by dgarrett on topic scara-switch-kins
i did some more tests and see that you can use halcompile for the
scarakins.c in the master branch but not in the s_kins branch
-- the latter links in several object modules besides scarakins.o
i've looked at it a bit -- halcompile and/or src/Makefile.inc would
need some serious work to handle the multiple object files that
are used in the s_kins branch i think.
i recommend the methods mentioned earlier using make.
scarakins.c in the master branch but not in the s_kins branch
-- the latter links in several object modules besides scarakins.o
i've looked at it a bit -- halcompile and/or src/Makefile.inc would
need some serious work to handle the multiple object files that
are used in the s_kins branch i think.
i recommend the methods mentioned earlier using make.
Last edit: 30 Apr 2020 02:07 by dgarrett.
The following user(s) said Thank You: bkt
Please Log in or Create an account to join the conversation.
30 Apr 2020 06:28 #166190
by bkt
Replied by bkt on topic scara-switch-kins
On the mailing I asked andy to insert s_kins in the next master .... obviously there is work to do here .... I would be happy to continue this, obviously for now on a separate branch on github, although I know that I will have to delegate a lot to collaborators because I have difficulty, because of my job, to find the time to make some healthy sleep.
In any case, I too had thought of replacing the kinematics and compiling again .... but I needed confirmation, I have not studied the / blob / dgarr / s_kins / branch well yet ... in fact you have never answered me.
So I ask you here for permission to work on it. I don't like to take and run. I don't think anyone will take me to the FBI (from the movie "Catch Me If You Can" 2001).
In any case, I too had thought of replacing the kinematics and compiling again .... but I needed confirmation, I have not studied the / blob / dgarr / s_kins / branch well yet ... in fact you have never answered me.
So I ask you here for permission to work on it. I don't like to take and run. I don't think anyone will take me to the FBI (from the movie "Catch Me If You Can" 2001).
Please Log in or Create an account to join the conversation.
30 Apr 2020 06:30 #166191
by bkt
Replied by bkt on topic scara-switch-kins
PLUS I use version of 20-03-2020 ... i need to download last one or is the same?
Thanks
bkt
Thanks
bkt
Please Log in or Create an account to join the conversation.
15 May 2020 17:34 - 15 May 2020 18:17 #167881
by bkt
Replied by bkt on topic scara-switch-kins
Sorry DGarret ... but I ry to start My Scara machine ... Axis interface start right, I can move joint before homing, I can make homing in a right way but when homing end -> Y axis show on screen 360 instead 0 (0mm is correct, 360 is wrong), X axis show 1267 (these is ok), Z axis show 2000 (these is right), A B and C show the correct value = 0 ... than machine goes in following error of 0 and 3 joint ... I think because wrong value of Y axis .... not understand. These is mine X axis declaration in Hal file:
after these joint.0 = X axis, joint.1 = Y axis, joint.2 = Z axis, joint.3 = A axis, joint.4 = B axis and joint.5 = C axis.
these problem came from confusion from C axis to joint.5 instead joint.3??
here the terminal error:
In your branch kins (github.com/LinuxCNC/linuxcnc/blob/dgarr/...nematics/scarakins.c) at row 217:
can be :
these can work??
regards
#*******************
# AXIS X
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
#setp pid.x.maxerror .0005
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command #mult2.0.in0
#setp mult2.0.in1 0.01
#net my-offset0 offset.0.offset <= mult2.0.out
net x-vel-cmd => pid.x.command-deriv
net x-pos-fb => pid.x.feedback
net x-output => pid.x.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [JOINT_0]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout0-minlim [JOINT_0]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [JOINT_0]OUTPUT_MAX_LIMIT
net x-output => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd joint.0.motor-pos-cmd
net x-enable joint.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable hm2_5i25.0.7i77.0.1.analogena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
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.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i25.0.encoder.00.position
net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb #mux2.0.in0
net x-index-enable joint.0.index-enable <=> hm2_5i25.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_5i25.0.encoder.00.rawcounts
after these joint.0 = X axis, joint.1 = Y axis, joint.2 = Z axis, joint.3 = A axis, joint.4 = B axis and joint.5 = C axis.
these problem came from confusion from C axis to joint.5 instead joint.3??
here the terminal error:
Found file(REL): ./n.hal
Note: Using POSIX realtime
!!! switchkins-type 0 is scarakins
identityKinematicsSetup: coordinates:xyzc
Joint 0 ==> Axis X
Joint 1 ==> Axis Y
Joint 2 ==> Axis Z
Joint 3 ==> Axis C
userkKinematicsSetup:
emc/kinematics/userkfuncs.c <xyzc> max_joints=4 allow_duplicates=0 /* THESE CAN BE THE ERROR? I HAVE AND USE 6 AXSIS ANDA MAX JOINT = 4 ?? IN THESE CASE CORRECTION MAYBE KINEMATICS .. SEE END OF MESSAGES*/
...
...
...
hm2/hm2_5i25.0: IO Pin 033 (P2-13): IOPort
hm2/hm2_5i25.0: registered
hm2_5i25.0: initialized AnyIO board at 0000:05:00.0
note: MAXV max: 1000.000 units/sec 60000.000 units/min
note: LJOG max: 1000.000 units/sec 60000.000 units/min
note: LJOG default: 10.000 units/sec 600.000 units/min
note: AJOG max: 200.000 units/sec 12000.000 units/min
note: AJOG default: 5.000 units/sec 300.000 units/min
note: jog_order='XYZABC'
note: jog_invert=set([])
following error axis 0
emc/task/taskintf.cc 947: Error on joint 0, command number 156
emc/task/taskintf.cc 947: Error on joint 3, command number 156
following error axis 3
following error axis 0
emc/task/taskintf.cc 947: Error on joint 0, command number 199
emc/task/taskintf.cc 947: Error on joint 3, command number 199
following error axis 3
following error axis 0
emc/task/taskintf.cc 947: Error on joint 0, command number 224
emc/task/taskintf.cc 947: Error on joint 3, command number 224
following error axis 3
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
task: 12217 cycles, min=0.000007, max=0.064676, avg=0.010048, 0 latency excursions (> 10x expected cycle time of 0.010000s)
hm2_5i25.0: dropping AnyIO board at 0000:05:00.0
hm2/hm2_5i25.0: unregistered
RTAPI_PCI: Unmapped 65536 bytes at 0x7fcbef489000
hm2_pci: driver unloaded
hm2: unloading
Note: Using POSIX realtime
In your branch kins (github.com/LinuxCNC/linuxcnc/blob/dgarr/...nematics/scarakins.c) at row 217:
kp->required_coordinates = "xyzc";
kp->allow_duplicates = 0;
kp->max_joints = strlen(kp->required_coordinates);
can be :
kp->required_coordinates = "xyzabc";
kp->allow_duplicates = 0;
kp->max_joints = strlen(kp->required_coordinates);
these can work??
regards
Last edit: 15 May 2020 18:17 by bkt.
Please Log in or Create an account to join the conversation.
18 May 2020 14:27 - 18 May 2020 18:40 #168153
by bkt
Replied by bkt on topic [solved]scara-switch-kins
after the kind reply of dgarret, i copied his branch from github ... sorry i'm not practical and i don't have time ... so i made a new one in my github adding alter 3 scarakins ... scarakins4, scarakins10 and scarakins11. ... then I modified the makefile and some other points (the grep -Iri 'scarakins' 'path / s_kins' command helped me with this) .... then I committed my version and then downloaded and installed it. .. now my scara resets correctly even if I use 6 axes .... the problem was just that ... in order not to make a mistake I matched the joints and the kinematics (the C axis of the scara is now the joint [5 ] so that there is no sequence error in the XYZABC string) ... I have yet to start it at work, but at least it homing correctly. If then the rest is correct too .... I will make a nice video so as to honor a promise. I put the link to my github just verified that the download runs correctly. For now I am happy with this result.
*** ok it is working code for me pourpose ****
so promised link ... github.com/bkt-it/linuxcnc_s_kins_bkt
Thanks a lot for dgarret suggestion and works!!!
*** ok it is working code for me pourpose ****
so promised link ... github.com/bkt-it/linuxcnc_s_kins_bkt
Thanks a lot for dgarret suggestion and works!!!
Last edit: 18 May 2020 18:40 by bkt.
The following user(s) said Thank You: Aciera
Please Log in or Create an account to join the conversation.
18 May 2020 22:28 #168198
by bkt
Replied by bkt on topic [solved]scara-switch-kins
the short video of machinery ... note 2 added axis:
regards
regards
Please Log in or Create an account to join the conversation.
Time to create page: 0.081 seconds