Hallo zusammen,
ich habe mir ein Programm gebaut, um die Nachgiebigkeiten der Gelenke infolge von Prozesskräften herauszuregeln. Dazu werden über den RSI die TCP-Position und die Achswinkel an einen Rechner geschickt. Dieser berechnet anhand der Kinematik innerhalb eines Mehrkörpermodells die Momente, die auf die einzelnen Gelenke wirken. Anhand von Steifigkeitskennlinien wird die Abdrängung der jeweiligen Gelenke ermittelt und über eine Vorwärtstransformation mit angepassten Gelenkwinkeln der tatsächliche TCP berechnet. Der Versatz wird dann entsprechend ausgeregelt. Das ganze funktioniert auch wunderbar, aber:
Das Ergebnis der Vorwärtstransformation ist, auch wenn ich nur die vom Roboter übermittelten Achswinkel berücksichtige und die Kräfte außen vor lasse, nicht identisch mit der TCP-Position des Roboters. Das Ergebnis weicht etwas 0,2-0,4 mm von der realen Position ab. Vom Prinzip besteht die Transformation aus den jeweiligen Längen der einzelnen Achsen, die jeweils über den Achswinkel verbunden sind. Die Position wird im Base-System berechnet. Von der Theorie her simpel, aber irgendwas läuft da verkehrt. Zur Berechnung der Baseposition transformiere ich ABC um Z,Y',X''.
Sind die glatten Werte der Achslängen, die in machine.dat und robcorr.dat zu finden sind, auch wirklich exakt die, mit denen der Roboter rechnet? Oder wird da im nachhinein etwas für absolutgenaue Roboter angepasst? Erscheint mir unwahrscheinlich, aber ich suche hier leider seit Tagen die Nadel im Heuhaufen.
Ein schönes Wochenende