Kinematik Datei - Berechnung für B-Achse hinzufügen
- zinsade
- Offline
- New Member
-
Less
More
- Posts: 17
- Thank you received: 2
18 Mar 2023 10:36 #266979
by zinsade
Kinematik Datei - Berechnung für B-Achse hinzufügen was created by zinsade
Hallo in das Forum
In den Kinematik-Dateien werden doch die Berechnungen der Achsen zueinander durchgeführt.
An welcher Stelle kann man der B-Achse eine Formel bzw. eine Berechnung mit auf den Weg geben?
Info zur Maschine:
Mein Antrieb der B-Achse ist ein Kugel-Gewinde-Linearantrieb mit einer Closed-Loop-Stepper Kombi Nema34/HSS86.
Die Drehbewegung wird über einen Kurbeltrieb bzw. Kurbelschwinge realisiert.
Meine Maschine ist ein 6-Achsen Eigenbau Fahrständer.
Sie hat eine 5-Achsen XYZBC- und eine 4-Achsen XYZA Kinematik.
Die A-Achse ist auf der Linken Seite auf dem Starrtisch aufgebaut.
Die B-Achse ist als Schwenktisch auf der rechten Seite neben dem Starrtisch montiert mit der C-Achse darauf.
Verfahrwege:
X 0 bis -802mm
Y 0 bis -394mm
Z 0 bis -394mm
A +-360 Grad unendlich
B 2 bis -92Grad
C +-360 Grad unendlich
Die Antriebe werden über eine 5i25 mit zwei 7i76 gesteuert.
Ich benutze momentan die Version 2.8.4 auf Buster mit Axis-Gui.
Es soll aber nun bald auf die Version 2.9 gehen.
Nach langem Suchen habe ich diesen Thread gefunden:
forum.linuxcnc.org/24-hal-components/290...d-kinematics?start=0
Dort wird die Datei "trivkins.c" verändert und der Z-Achse eine Korrektur mit gegeben.
Die Datei wurde dort in "kk1000skins.c" umbenannt.
Nun sehen in V2.9 die "trivkins" und auch die Anderen wie z.B. die "xyzbc-trt-kins.c" etwas anders aus.
Wahrscheinlich wegen der "Switchkins" Umstellung?.
Nun habe ich nicht wirklich eine Ahnung von Programmieren in C.
Jedoch würde ich mich da gern etwas einarbeiten wollen um das Problem zu lösen.
Meine Vermutung ist, das es diese Datei ist:
V2.9 >linuxcnc-master/src/emc/kinematics/trtfuncs.c<
Oder in welcher Datei und an welcher Stelle muss ich da was ändern oder hinzufügen?
Anbei mal zum Verständnis die Geogebradatei mit Bild und Foto vom Schwenktisch.
Man sieht am Drehpunkt der Achse meinen Versuch das Problem über einen Drehencoder und PID zu lösen, was eigentlich das Beste wäre.
Alle meine Versuche ergaben kein befriedigentes Ergebnis. Die Achse zitterte gewaltig und war nicht ruhig zu bekommen.
Einzig mit sehr geringen P-Werten war sie ruhig, aber unbrauchbar langsam. Da möchte ich jedoch parallel noch weiter experimentieren.
Deshalb nun der Versuch das über die Kinematikdatei lösen zu wollen.
MfG
Peter
In den Kinematik-Dateien werden doch die Berechnungen der Achsen zueinander durchgeführt.
An welcher Stelle kann man der B-Achse eine Formel bzw. eine Berechnung mit auf den Weg geben?
Info zur Maschine:
Mein Antrieb der B-Achse ist ein Kugel-Gewinde-Linearantrieb mit einer Closed-Loop-Stepper Kombi Nema34/HSS86.
Die Drehbewegung wird über einen Kurbeltrieb bzw. Kurbelschwinge realisiert.
Meine Maschine ist ein 6-Achsen Eigenbau Fahrständer.
Sie hat eine 5-Achsen XYZBC- und eine 4-Achsen XYZA Kinematik.
Die A-Achse ist auf der Linken Seite auf dem Starrtisch aufgebaut.
Die B-Achse ist als Schwenktisch auf der rechten Seite neben dem Starrtisch montiert mit der C-Achse darauf.
Verfahrwege:
X 0 bis -802mm
Y 0 bis -394mm
Z 0 bis -394mm
A +-360 Grad unendlich
B 2 bis -92Grad
C +-360 Grad unendlich
Die Antriebe werden über eine 5i25 mit zwei 7i76 gesteuert.
Ich benutze momentan die Version 2.8.4 auf Buster mit Axis-Gui.
Es soll aber nun bald auf die Version 2.9 gehen.
Nach langem Suchen habe ich diesen Thread gefunden:
forum.linuxcnc.org/24-hal-components/290...d-kinematics?start=0
Dort wird die Datei "trivkins.c" verändert und der Z-Achse eine Korrektur mit gegeben.
Die Datei wurde dort in "kk1000skins.c" umbenannt.
Nun sehen in V2.9 die "trivkins" und auch die Anderen wie z.B. die "xyzbc-trt-kins.c" etwas anders aus.
Wahrscheinlich wegen der "Switchkins" Umstellung?.
Nun habe ich nicht wirklich eine Ahnung von Programmieren in C.
Jedoch würde ich mich da gern etwas einarbeiten wollen um das Problem zu lösen.
Meine Vermutung ist, das es diese Datei ist:
V2.9 >linuxcnc-master/src/emc/kinematics/trtfuncs.c<
Oder in welcher Datei und an welcher Stelle muss ich da was ändern oder hinzufügen?
Anbei mal zum Verständnis die Geogebradatei mit Bild und Foto vom Schwenktisch.
Man sieht am Drehpunkt der Achse meinen Versuch das Problem über einen Drehencoder und PID zu lösen, was eigentlich das Beste wäre.
Alle meine Versuche ergaben kein befriedigentes Ergebnis. Die Achse zitterte gewaltig und war nicht ruhig zu bekommen.
Einzig mit sehr geringen P-Werten war sie ruhig, aber unbrauchbar langsam. Da möchte ich jedoch parallel noch weiter experimentieren.
Deshalb nun der Versuch das über die Kinematikdatei lösen zu wollen.
MfG
Peter
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4170
- Thank you received: 1825
18 Mar 2023 11:22 - 18 Mar 2023 11:22 #266981
by Aciera
Replied by Aciera on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Für eigene Kinematikmodelle würde ich eine bestehende Kinemaikkomponente wie 'millturn.comp' oder 'xyzab_tdr_kins.comp' im Ordner '/home/user/linuxcnc-dev-march/src/hal/components' anschauen. Diese basieren auf der 'userkins.comp' Vorlage (ebenfalls im gleichen Ordner zu finden.) Vorteil ist, dass du fast keine C-programmierkenntnisse benötigst und die Komponente mit 'halcompile' installiert werden kann.
Hier ist die Dokumentation zur xyzab_tdr_kins: forum.linuxcnc.org/10-advanced-configura...mill?start=80#263694
Hier ist die Dokumentation zur xyzab_tdr_kins: forum.linuxcnc.org/10-advanced-configura...mill?start=80#263694
Last edit: 18 Mar 2023 11:22 by Aciera.
Please Log in or Create an account to join the conversation.
- zinsade
- Offline
- New Member
-
Less
More
- Posts: 17
- Thank you received: 2
18 Mar 2023 12:32 #266990
by zinsade
Replied by zinsade on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Vielen Dank,
Das hatte ich mir schon mal übersetzen lassen und auch angeschaut.
Da habe ich aber das gleiche Problem, weil ich den genauen Ort nicht weiß.
Ich muss ja die Linearbewegung meiner B-Achse (Kugelrollspindel-Weg 275mm) in eine Drehbewegung 90 Grad umrechnen lassen.
An welcher Stelle muss die Formel eingebaut werden?
hier?
pos->b = j[4];
und hier?
j[4] = pos->b;
Hast du da mal ein kleines Beispiel?
Gruß Peter
Das hatte ich mir schon mal übersetzen lassen und auch angeschaut.
Da habe ich aber das gleiche Problem, weil ich den genauen Ort nicht weiß.
Ich muss ja die Linearbewegung meiner B-Achse (Kugelrollspindel-Weg 275mm) in eine Drehbewegung 90 Grad umrechnen lassen.
An welcher Stelle muss die Formel eingebaut werden?
hier?
pos->b = j[4];
und hier?
j[4] = pos->b;
Hast du da mal ein kleines Beispiel?
Gruß Peter
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4170
- Thank you received: 1825
18 Mar 2023 16:03 - 18 Mar 2023 16:06 #267011
by Aciera
Replied by Aciera on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Ja, genau.
Die FORWARD Kinematik berechnet den Winkelwert 'pos->b' für einen gegebenen Jointwert 'j[4]'. Stellung der Kugelrollspindel wäre der j[4] Wert.
pos->b = deine_funktion(j[4])
Die INVERSE Kinematik berechnet dann die Stellung der Kugelrollspindel für einen gegebenen Winkelwert.
j[4] = deine_inverse_funktion(pos->b)
Die FORWARD Kinematik berechnet den Winkelwert 'pos->b' für einen gegebenen Jointwert 'j[4]'. Stellung der Kugelrollspindel wäre der j[4] Wert.
pos->b = deine_funktion(j[4])
Die INVERSE Kinematik berechnet dann die Stellung der Kugelrollspindel für einen gegebenen Winkelwert.
j[4] = deine_inverse_funktion(pos->b)
Last edit: 18 Mar 2023 16:06 by Aciera.
Please Log in or Create an account to join the conversation.
- zinsade
- Offline
- New Member
-
Less
More
- Posts: 17
- Thank you received: 2
18 Mar 2023 18:00 - 18 Mar 2023 18:02 #267018
by zinsade
Replied by zinsade on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Ah, super.
Dann werde ich mich da mal versuchen rein zu fuchsen.
Dann ist es ja wahrscheinlich die gleiche Stelle in der >trtfuncs.c<
Vorwärts in Zeile 285 > pos->b = joints[JB]; <
und
Rückwärts in Zeile 332 > P.b = pos->b; <
Das wird allerdings eine Weile dauern.
Leider kommt jetzt erstmal die Gartenarbeit und andere Dinge dazwischen.
Vielen Dank!
Gruß Peter
Dann werde ich mich da mal versuchen rein zu fuchsen.
Dann ist es ja wahrscheinlich die gleiche Stelle in der >trtfuncs.c<
Vorwärts in Zeile 285 > pos->b = joints[JB]; <
und
Rückwärts in Zeile 332 > P.b = pos->b; <
Das wird allerdings eine Weile dauern.
Leider kommt jetzt erstmal die Gartenarbeit und andere Dinge dazwischen.
Vielen Dank!
Gruß Peter
Last edit: 18 Mar 2023 18:02 by zinsade.
Please Log in or Create an account to join the conversation.
- zinsade
- Offline
- New Member
-
Less
More
- Posts: 17
- Thank you received: 2
31 Jan 2025 15:04 #320232
by zinsade
Replied by zinsade on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Hallo zusammen,
es geht gerade ein Stückchen weiter.
Die B-Achse meines Schwenktisches wird ja mit einem linearen Kugelrollantrieb angetrieben.
Nun habe ich die Berechnung in der "trtfuncs.c" verändert. Die geänderte Datei ist angehängt.
Für die "trtfuncs.c" gibt es ja die Möglichkeit die Rotationsmittelpunkte der einzelnen Drehachen in der HAL zu definieren.
Das passiert, so glaube ich, in dieser Passage der trtfuncs.c aus der Version Linuxcnc-Version 2.9.3:
// Note: 'principal' joints are used
double x_rot_point = *(haldata->x_rot_point);
double y_rot_point = *(haldata->y_rot_point);
double z_rot_point = *(haldata->z_rot_point);
double dx = *(haldata->x_offset);
double dz = *(haldata->z_offset);
double dt = *(haldata->tool_offset);
Gibt es die Möglichkeit weitere eigene "halpins?" ähnlich des "x-rot-point" einfach selbst zu erstellen?
Die Parameter für die Berechnung müssten wie die Drehpunkte in der HAL dfiniert werden können.
MfG Peter
es geht gerade ein Stückchen weiter.
Die B-Achse meines Schwenktisches wird ja mit einem linearen Kugelrollantrieb angetrieben.
Nun habe ich die Berechnung in der "trtfuncs.c" verändert. Die geänderte Datei ist angehängt.
Für die "trtfuncs.c" gibt es ja die Möglichkeit die Rotationsmittelpunkte der einzelnen Drehachen in der HAL zu definieren.
Das passiert, so glaube ich, in dieser Passage der trtfuncs.c aus der Version Linuxcnc-Version 2.9.3:
// Note: 'principal' joints are used
double x_rot_point = *(haldata->x_rot_point);
double y_rot_point = *(haldata->y_rot_point);
double z_rot_point = *(haldata->z_rot_point);
double dx = *(haldata->x_offset);
double dz = *(haldata->z_offset);
double dt = *(haldata->tool_offset);
Gibt es die Möglichkeit weitere eigene "halpins?" ähnlich des "x-rot-point" einfach selbst zu erstellen?
Die Parameter für die Berechnung müssten wie die Drehpunkte in der HAL dfiniert werden können.
MfG Peter
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4170
- Thank you received: 1825
31 Jan 2025 17:52 #320244
by Aciera
Replied by Aciera on topic Kinematik Datei - Berechnung für B-Achse hinzufügen
Ja neue halpins kannst du analog den bestehenden Pins in der selben Datei definieren.
Please Log in or Create an account to join the conversation.
Time to create page: 0.069 seconds