Help for Linearangular Axis in Kinematics
10 Apr 2016 09:22 #73039
by G0G53Z148
Help for Linearangular Axis in Kinematics was created by G0G53Z148
Dear Linuxcnc professionals
Since I was in many prosecute always good advice to the Forum I turn back to you.
This time with a new problem of kinematics.
My colleague and I have been refurbished on several machines and converted to cnc and rebuilt. But with electronics and software our limits are soon reached o as in this case.
Here e is a 5 axis machine with a swiveling axis with a spindle drive and an axis of rotation. So X Y Z A C. The A axis is precisely the pivot axis is a lever with a spindle driven. The A axis is -20 to +110 degrees taverns can and the turntable in 360deg +.
I've read something in the forum
Link:
forum.linuxcnc.org/forum/10-advanced-con...tup-for-linear-delta
and am going to
Link:
buildbot.linuxcnc.org/doc/scratch/v2.8.0...tion/kinematics.html
encountered.
What I have found is that needs to be rebuilt or expanded kinematics.
I have a few pictures uploaded to the illustration. Whereas, since indeed changes the length of the traveling path with each angle must kinematics adapted so Gcode commands of A50 C100 at all can be performed. Is this at all possible as I introduce myself?
Unfortunately, my software and mathematics is understanding here exhausted I'm looking for someone who wants to help us with the project and we will change the kinematics and we will assist in configuring. would also very nice if you could embed the kinematics simulation shown the machine. This is not a must.
We have tried to understand the English lyrics but I do not look through and translated in Google that is of little use because English is not my native language.
I look forward to reply and for your help
Kind regards
Roland
PS: This text has been translated using Google Translator into English.
Since I was in many prosecute always good advice to the Forum I turn back to you.
This time with a new problem of kinematics.
My colleague and I have been refurbished on several machines and converted to cnc and rebuilt. But with electronics and software our limits are soon reached o as in this case.
Here e is a 5 axis machine with a swiveling axis with a spindle drive and an axis of rotation. So X Y Z A C. The A axis is precisely the pivot axis is a lever with a spindle driven. The A axis is -20 to +110 degrees taverns can and the turntable in 360deg +.
I've read something in the forum
Link:
forum.linuxcnc.org/forum/10-advanced-con...tup-for-linear-delta
and am going to
Link:
buildbot.linuxcnc.org/doc/scratch/v2.8.0...tion/kinematics.html
encountered.
What I have found is that needs to be rebuilt or expanded kinematics.
I have a few pictures uploaded to the illustration. Whereas, since indeed changes the length of the traveling path with each angle must kinematics adapted so Gcode commands of A50 C100 at all can be performed. Is this at all possible as I introduce myself?
Unfortunately, my software and mathematics is understanding here exhausted I'm looking for someone who wants to help us with the project and we will change the kinematics and we will assist in configuring. would also very nice if you could embed the kinematics simulation shown the machine. This is not a must.
We have tried to understand the English lyrics but I do not look through and translated in Google that is of little use because English is not my native language.
I look forward to reply and for your help
Kind regards
Roland
PS: This text has been translated using Google Translator into English.
Please Log in or Create an account to join the conversation.
11 Apr 2016 13:34 #73104
by andypugh
Replied by andypugh on topic Help for Linearangular Axis in Kinematics
This system looks a lot like the B-axis of a Centroid milling machine:
www.centroidcnc.com/cnc_porting_machine.html
As far as I can see you need to solve for the angles of a triangle with two fixed-length sides and one variable-length.
www.mathsisfun.com/algebra/trig-solving-sss-triangles.html
You only ever need to solve for one angle, the others do not matter.
www.centroidcnc.com/cnc_porting_machine.html
As far as I can see you need to solve for the angles of a triangle with two fixed-length sides and one variable-length.
www.mathsisfun.com/algebra/trig-solving-sss-triangles.html
You only ever need to solve for one angle, the others do not matter.
Please Log in or Create an account to join the conversation.
12 Apr 2016 16:41 - 12 Apr 2016 16:43 #73177
by G0G53Z148
Replied by G0G53Z148 on topic Help for Linearangular Axis in Kinematics
Hi Andy!
Thanks for your answer.
The Machine will look like Hermle C30U with Swinging C axis and Rotating A axis
Only the the A-Axis will not driven with Cyclo Gear about the pice in the size Outputtorque 3500n.m they are to Expensive.
The triangle with the calculations was already clear to me. But just where and how do I get Linuxcnc at it this triangle in the A-axis then charged if I motion G1 A +100 F500 to do.
I have the 5axiskins.c to elicit on github trying times how this works but I'm with my knowledge no solution so I'm looking for help.
I'm really just machine operators Simple 3 axis machines I have already established with Step and PNCCONF but at the special functions I had to always get help.
I have somewhere the two start angle and leg lengths to define the need to be accessed when the machine is referenced.
Of course you could always calculate every corner in the program but that is little sense I guess and uncomfortable.
Furthermore, I also do not know where this kinematics find file, then must pass and as I must call them.
Due thus sees you there with a complete "low level user " do the easy has just a few ideas.
I say thank you and best regards
Roland
Thanks for your answer.
The Machine will look like Hermle C30U with Swinging C axis and Rotating A axis
Only the the A-Axis will not driven with Cyclo Gear about the pice in the size Outputtorque 3500n.m they are to Expensive.
The triangle with the calculations was already clear to me. But just where and how do I get Linuxcnc at it this triangle in the A-axis then charged if I motion G1 A +100 F500 to do.
I have the 5axiskins.c to elicit on github trying times how this works but I'm with my knowledge no solution so I'm looking for help.
1/********************************************************************
2 * Description: 5axiskins.c
3 * Trivial kinematics for 3 axis Cartesian machine
4 *
5 * Derived from a work by Fred Proctor & Will Shackleford
6 *
7 * Author:
8 * License: GPL Version 2
9 * System: Linux
10 *
11 * Copyright (c) 2007 Chris Radek
12 *
13 * Last change:
14 ********************************************************************/
15
16 #include "kinematics.h" /* these decls */
17 #include "posemath.h"
18 #include "hal.h"
19 #include "rtapi_math.h"
20
21 #define d2r(d) ((d)*PM_PI/180.0)
22 #define r2d(r) ((r)*180.0/PM_PI)
23
24 struct haldata {
25 hal_float_t *pivot_length;
26 } *haldata;
27
28 static PmCartesian s2r(double r, double t, double p) {
29 PmCartesian c;
30 t = d2r(t), p = d2r(p);
31
32 c.x = r * sin(p) * cos(t);
33 c.y = r * sin(p) * sin(t);
34 c.z = r * cos(p);
35
36 return c;
37 }
38
39 int kinematicsForward(const double *joints,
40 EmcPose * pos,
41 const KINEMATICS_FORWARD_FLAGS * fflags,
42 KINEMATICS_INVERSE_FLAGS * iflags)
43 {
44 PmCartesian r = s2r(*(haldata->pivot_length) + joints[8], joints[5], 180.0 - joints[4]);
45
46 pos->tran.x = joints[0] + r.x;
47 pos->tran.y = joints[1] + r.y;
48 pos->tran.z = joints[2] + *(haldata->pivot_length) + r.z;
49 pos->a = joints[3];
50 pos->b = joints[4];
51 pos->c = joints[5];
52 pos->u = joints[6];
53 pos->v = joints[7];
54 pos->w = joints[8];
55
56 return 0;
57 }
58
59 int kinematicsInverse(const EmcPose * pos,
60 double *joints,
61 const KINEMATICS_INVERSE_FLAGS * iflags,
62 KINEMATICS_FORWARD_FLAGS * fflags)
63 {
64
65 PmCartesian r = s2r(*(haldata->pivot_length) + pos->w, pos->c, 180.0 - pos->b);
66
67 joints[0] = pos->tran.x - r.x;
68 joints[1] = pos->tran.y - r.y;
69 joints[2] = pos->tran.z - *(haldata->pivot_length) - r.z;
70 joints[3] = pos->a;
71 joints[4] = pos->b;
72 joints[5] = pos->c;
73 joints[6] = pos->u;
74 joints[7] = pos->v;
75 joints[8] = pos->w;
76
77 return 0;
78 }
79
80 /* implemented for these kinematics as giving joints preference */
81 int kinematicsHome(EmcPose * world,
82 double *joint,
83 KINEMATICS_FORWARD_FLAGS * fflags,
84 KINEMATICS_INVERSE_FLAGS * iflags)
85 {
86 *fflags = 0;
87 *iflags = 0;
88
89 return kinematicsForward(joint, world, fflags, iflags);
90 }
91
92 KINEMATICS_TYPE kinematicsType()
93 {
94 return KINEMATICS_BOTH;
95 }
96
97 #include "rtapi.h" /* RTAPI realtime OS API */
98 #include "rtapi_app.h" /* RTAPI realtime module decls */
99 #include "hal.h"
100
101 EXPORT_SYMBOL(kinematicsType);
102 EXPORT_SYMBOL(kinematicsForward);
103 EXPORT_SYMBOL(kinematicsInverse);
104 MODULE_LICENSE("GPL");
105
106 int comp_id;
107 int rtapi_app_main(void) {
108 int result;
109 comp_id = hal_init("5axiskins");
110 if(comp_id < 0) return comp_id;
111
112 haldata = hal_malloc(sizeof(struct haldata));
113
114 result = hal_pin_float_new("5axiskins.pivot-length", HAL_IO, &(haldata->pivot_length), comp_id);
115 if(result < 0) goto error;
116
117 *(haldata->pivot_length) = 250.0;
118
119 hal_ready(comp_id);
120 return 0;
121
122 error:
123 hal_exit(comp_id);
124 return result;
125 }
126
127 void rtapi_app_exit(void) { hal_exit(comp_id); }
I'm really just machine operators Simple 3 axis machines I have already established with Step and PNCCONF but at the special functions I had to always get help.
I have somewhere the two start angle and leg lengths to define the need to be accessed when the machine is referenced.
Of course you could always calculate every corner in the program but that is little sense I guess and uncomfortable.
Furthermore, I also do not know where this kinematics find file, then must pass and as I must call them.
Due thus sees you there with a complete "low level user " do the easy has just a few ideas.
I say thank you and best regards
Roland
Last edit: 12 Apr 2016 16:43 by G0G53Z148.
Please Log in or Create an account to join the conversation.
12 Apr 2016 22:30 #73201
by andypugh
5axiskins uses some clever maths, but you can do the same with ordinary trigonometry if you want.
pos->b is the number that is sent out by the B-word in G-code. If you issue a G1 B12 then the value of pos->b will slowly change to 12.
joints[4] is the output value to the motor. ie, the value that appears on the axis.4.motor-position-cmd HAL pin.
In the reverse direction, axis.4.motor-position-fb is converted by the forward kins function into a value for B that is shown on the DRO.
The two sets of equations have to match perfectly or you get following errors.
But that is all there is to it. The maths is up to you.
Replied by andypugh on topic Help for Linearangular Axis in Kinematics
I have the 5axiskins.c to elicit on github trying times how this works but I'm with my knowledge no solution so I'm looking for help.
5axiskins uses some clever maths, but you can do the same with ordinary trigonometry if you want.
pos->b is the number that is sent out by the B-word in G-code. If you issue a G1 B12 then the value of pos->b will slowly change to 12.
joints[4] is the output value to the motor. ie, the value that appears on the axis.4.motor-position-cmd HAL pin.
In the reverse direction, axis.4.motor-position-fb is converted by the forward kins function into a value for B that is shown on the DRO.
The two sets of equations have to match perfectly or you get following errors.
But that is all there is to it. The maths is up to you.
Please Log in or Create an account to join the conversation.
13 Apr 2016 14:29 #73233
by G0G53Z148
Replied by G0G53Z148 on topic Help for Linearangular Axis in Kinematics
Hi Andy,
I think you misunderstood me. The Planned machine has in the normal fashion no B axis. Only when the table is therefore the A axis pivoted to the spindle would for B axis if you were installing a transformation.
Only X Y Z A and C, I refer to the model in the Annex.
So I think you mean the line 49 pos-> a = joints [3];
And again you think it is sufficient to calculate the row insert?
Have you done that before? I still do not. As you very well know your way in the theme you'd me the kinematics please describe for our needs? Unfortunately, there is here with us, although these professionals do not deal with Linuxcnc but only with the adults control systems.
Kind regards
Roland
This text has been translated using Google Translator from German to English.
I think you misunderstood me. The Planned machine has in the normal fashion no B axis. Only when the table is therefore the A axis pivoted to the spindle would for B axis if you were installing a transformation.
Only X Y Z A and C, I refer to the model in the Annex.
So I think you mean the line 49 pos-> a = joints [3];
And again you think it is sufficient to calculate the row insert?
Have you done that before? I still do not. As you very well know your way in the theme you'd me the kinematics please describe for our needs? Unfortunately, there is here with us, although these professionals do not deal with Linuxcnc but only with the adults control systems.
Kind regards
Roland
This text has been translated using Google Translator from German to English.
Please Log in or Create an account to join the conversation.
13 Apr 2016 14:33 #73234
by andypugh
Replied by andypugh on topic Help for Linearangular Axis in Kinematics
Have you read: linuxcnc.org/docs/2.7/html/motion/kinematics.html
Please Log in or Create an account to join the conversation.
13 Apr 2016 15:38 #73237
by G0G53Z148
Replied by G0G53Z148 on topic Help for Linearangular Axis in Kinematics
yes, i have with googletranslator but not understood
no problem i will look for an other reason
no problem i will look for an other reason
Please Log in or Create an account to join the conversation.
14 Apr 2016 17:17 #73317
by G0G53Z148
Replied by G0G53Z148 on topic Help for Linearangular Axis in Kinematics
Hello Again
As non native englisch speaker it is verry hard to combine the syntaxes
does anyone KNOW and WANT TO DO changing Kinematics for an service charge?
Hera are many People they do so knowing all and can only post comments to hide theyr brain.
thank you
ich you want to help please send an private massege to discuss the therm
thank you and have a nice day
As non native englisch speaker it is verry hard to combine the syntaxes
does anyone KNOW and WANT TO DO changing Kinematics for an service charge?
Hera are many People they do so knowing all and can only post comments to hide theyr brain.
thank you
ich you want to help please send an private massege to discuss the therm
thank you and have a nice day
Please Log in or Create an account to join the conversation.
Time to create page: 0.243 seconds