Kinematik Datei - Berechnung für B-Achse hinzufügen
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.
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.
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.
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.
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.
Time to create page: 0.083 seconds