Scara kinematics
30 Jun 2019 13:54 #138238
by andypugh
Replied by andypugh on topic Scara kinematics
I think that the interesting pins are the three joint.N.motor-pos-cmd pins.
If those jump by more than a f-error then that's the problem.
Also log the motor-pos-fb pins. Perhaps this is an encoder reset?
If those jump by more than a f-error then that's the problem.
Also log the motor-pos-fb pins. Perhaps this is an encoder reset?
Please Log in or Create an account to join the conversation.
30 Jun 2019 22:32 #138259
by sliptonic
Replied by sliptonic on topic Scara kinematics
I'm not sure how to interpret this. Does it make sense?
imgur.com/t2aejTN
BTW, I have run both Machinekit and Linuxcnc on this machine. At the moment, I'm set up for machinekit because I'm testing a remote UI being developed to embed in FreeCAD. If you think that's related, I can reinstall with linuxcnc. Any issues building with Debian Buster?
imgur.com/t2aejTN
BTW, I have run both Machinekit and Linuxcnc on this machine. At the moment, I'm set up for machinekit because I'm testing a remote UI being developed to embed in FreeCAD. If you think that's related, I can reinstall with linuxcnc. Any issues building with Debian Buster?
Please Log in or Create an account to join the conversation.
30 Jun 2019 22:38 #138260
by andypugh
Hard to say at that scale. Can you save the raw data file and post it here?
(in Halscope it is file-> save data file )
Then we can open it locally and poke through the data.
But, clearly, something mad happens at one point.
Replied by andypugh on topic Scara kinematics
I'm not sure how to interpret this. Does it make sense?
imgur.com/t2aejTN
Hard to say at that scale. Can you save the raw data file and post it here?
(in Halscope it is file-> save data file )
Then we can open it locally and poke through the data.
But, clearly, something mad happens at one point.
Please Log in or Create an account to join the conversation.
30 Jun 2019 23:25 - 30 Jun 2019 23:28 #138262
by sliptonic
Replied by sliptonic on topic Scara kinematics
Attached. The more I play, the more I'm beginning to suspect that it's joint 1 related. Maybe just tuning that servo but I still don't understand why it's only in world mode.
Attachments:
Last edit: 30 Jun 2019 23:28 by sliptonic. Reason: attach
Please Log in or Create an account to join the conversation.
02 Jul 2019 19:39 #138428
by andypugh
It really looks like, for some reason, axis.1 wants to flip from 1.9 to 180-1.9 and axis.0 from -13 to 90 + -13.
So it is an elbow inversion. Which leads me to suspect that your home angles are not right, if this is not an obvious elbow inversion the actual robot.
(Or there is some other wierd thing going on in the maths)
Replied by andypugh on topic Scara kinematics
axis.0.motor-pos-cmd axis.0.f-error axis.1.motor-pos-cmd axis.1.f-error
-13.40773781 0.002209398 1.908533303 -0.028721848
-13.40768487 0.002262324 1.907574159 -0.029680982
-13.40763193 0.002315259 1.906615004 -0.030640127
-13.40757897 0.002368205 1.905655839 -0.031599281
-13.40752601 0.002421162 1.904696664 -0.032558446
-13.40747303 0.002474128 1.903737479 -0.030303336
-13.40742004 0.002527104 1.902778284 -0.031262521
-13.40736705 0.002580091 1.901819078 -0.029007431
-1.648651279 0.002633088 -28.08839273 -0.029966637
45.38594605 11.76134886 -148.0460426 -30.01374987
57.1441282 58.78394619 -178.0346557 -149.9456854
57.14354085 70.52112833 -178.0336964 -179.8925128
-13.34700013 70.49054099 1.806428571 -179.840125
-13.30800013 -0.039 1.742142857 0.064285714
-13.26900013 -0.039 1.690714286 0.051428571
-13.23900013 -0.03 1.645714286 0.045
-13.21200013 -0.027 1.62 0.025714286
-13.18800013 -0.024 1.5975 0.0225
-13.17000013 -0.018 1.584642857 0.012857143
-13.15800013 -0.012 1.568571429 0.016071429
-13.14600013 -0.012 1.555714286 0.012857143
-13.13700013 -0.009 1.539642857 0.016071429
-13.12800013 -0.009 1.517142857 0.0225
-13.12200013 -0.006 1.481785714 0.035357143
-13.11300013 -0.009 1.44 0.041785714
-13.10700013 -0.006 1.391785714 0.048214286
-13.09800013 -0.009 1.337142857 0.054642857
-13.08900013 -0.009 1.2825 0.054642857
It really looks like, for some reason, axis.1 wants to flip from 1.9 to 180-1.9 and axis.0 from -13 to 90 + -13.
So it is an elbow inversion. Which leads me to suspect that your home angles are not right, if this is not an obvious elbow inversion the actual robot.
(Or there is some other wierd thing going on in the maths)
Please Log in or Create an account to join the conversation.
02 Jul 2019 21:53 #138442
by sliptonic
Replied by sliptonic on topic Scara kinematics
Interesting. That helps to clarify a little bit. Playing with it a bit more I can now say that the error happens when joint1 goes from >=90 to < 90 degrees.
My configuration matches the description in scarakins.c. Ie when both joints are extending directly along the X axis away from the pedestal they are at 0 degrees.
This matches the scara sample config as well: /sim/axis/vismach/scara which is really confusing. Jogging the joint in a positive direction results in a counter-clockwise motion (for both joints) That seems exactly backwards to me but it matches the sample config. I can't tell if the sample has the same following problem at the same point because it won't enter teleop even with all joints homed.
The problem doesn't seem to be related to physical inversion of the elbow but it does make a difference which way the the elbow is oriented. With joint0 positive and joint1 negative, it works and I can cross the -90 degree point without error. Perhaps this is just a limitation of the scarakins and I'm not understanding how it should behave.
But with joint1 positive, it doesn't
My configuration matches the description in scarakins.c. Ie when both joints are extending directly along the X axis away from the pedestal they are at 0 degrees.
This matches the scara sample config as well: /sim/axis/vismach/scara which is really confusing. Jogging the joint in a positive direction results in a counter-clockwise motion (for both joints) That seems exactly backwards to me but it matches the sample config. I can't tell if the sample has the same following problem at the same point because it won't enter teleop even with all joints homed.
The problem doesn't seem to be related to physical inversion of the elbow but it does make a difference which way the the elbow is oriented. With joint0 positive and joint1 negative, it works and I can cross the -90 degree point without error. Perhaps this is just a limitation of the scarakins and I'm not understanding how it should behave.
But with joint1 positive, it doesn't
Attachments:
Please Log in or Create an account to join the conversation.
02 Jul 2019 22:02 #138443
by andypugh
Replied by andypugh on topic Scara kinematics
The LinuxCNC 2.8 version of the scara vismach does home and go in to world mode.
I see that you are using Machinekit? That has not had the major updates for non-cartesian machines that are in the LinuxCNC 2.8 version.
You _might_ be able to switch it to world-mode with the $ shortcut, but I don't have a machinekit install to test with.
I see that you are using Machinekit? That has not had the major updates for non-cartesian machines that are in the LinuxCNC 2.8 version.
You _might_ be able to switch it to world-mode with the $ shortcut, but I don't have a machinekit install to test with.
Please Log in or Create an account to join the conversation.
02 Jul 2019 23:07 #138457
by sliptonic
Replied by sliptonic on topic Scara kinematics
$ sign is a neat trick! It works, but only the first time. I can home and then $ into teleop but it won't work again after exiting teleop or re-homing. (Strange that my actual config doesn't have this problem. No matter.)
The sample scara config puts the home position for both joints at 0 and that's only place you can enter teleop in the example.
I changed the home position so after homing it ends up in 'bent left' position and it gives the same following error when joint1 passes 90 degrees! So I guess this is just a matter of using it right.
Note to future self and other scara users. Scarakins assumes the arm is 'bent to the right' like this.
Now if I could only figure out where the machine limits and come from.
In the correct orientation and homed, I have machine limits of X:+230 to +400 Y:-390 to +390 I guess that means it assumes the center of the pedestal is at world coordinates X0Y0.
The sample scara config puts the home position for both joints at 0 and that's only place you can enter teleop in the example.
I changed the home position so after homing it ends up in 'bent left' position and it gives the same following error when joint1 passes 90 degrees! So I guess this is just a matter of using it right.
Note to future self and other scara users. Scarakins assumes the arm is 'bent to the right' like this.
Now if I could only figure out where the machine limits and come from.
In the correct orientation and homed, I have machine limits of X:+230 to +400 Y:-390 to +390 I guess that means it assumes the center of the pedestal is at world coordinates X0Y0.
Attachments:
Please Log in or Create an account to join the conversation.
02 Jul 2019 23:50 #138465
by andypugh
Replied by andypugh on topic Scara kinematics
This might warrant a bug report.
I also found that if you jog in world mode in such a way as to straighten the elbow then it doesn't know how to bend it again.
I also found that if you jog in world mode in such a way as to straighten the elbow then it doesn't know how to bend it again.
Please Log in or Create an account to join the conversation.
03 Jul 2019 14:42 #138533
by sliptonic
Replied by sliptonic on topic Scara kinematics
Done. Thanks Andy!
github.com/LinuxCNC/linuxcnc/issues/620
github.com/LinuxCNC/linuxcnc/issues/620
Please Log in or Create an account to join the conversation.
Time to create page: 0.123 seconds