Hallo.
ich bin auf der Suche nach ein paar Tips, wie ein Roboterarm kalibriert wird. Genaugenommen handelt sich es nicht um einen Roboterarm, sondern einen Gelenkmessarm, aber der Unterschied ist ja nur, das der Gelenkmessarm keine Antriebe hat.
Die Lage das Endeffektors kann man ja nach dem Verfahren von Denavit- Hartenberg berechnen. Bekannt sein müssen die einzelnen Strecken und die Parameter der Drehgelenke. Das Ganze mechanisch hinreichen genau zu vermessen ist kaum möglich, ich habe mal gesehen, das der Endefektor (als Spitze ausgebildet) in einer konischen Pfanne, deren Lage genau bekannt war, positioniert wurde und die Zwischengelenke dann in alle möglichen Richtungen bewegt wurden.
Dann wird wohl auch oft eine Kugel mit bekannten Radius benutzt die in verschiedenen Stellungen angetastet wird und wo wiederum mit den Daten die einzelnen Gelenkparameter korrigiert werden.
Also das Problem ist, ich habe so einen Arm, von dem mir alle mechanischen Daten im Prinzip bekannt sind, allerdings nicht mit der Genauigkeit, die erforderlich wäre. Wie kann ich den mit vertretbarem Aufwand kalibrieren?

Gibt es in dieser Richtung Software, wo man zB. die mechanischen Werte eingeben kann und die dann die entsprechenden Parameter generiert (eventuell mit Simulation)?

Jetzt bitte nicht lachen, aber ich hatte mal folgende Idee:
Den Endeffektor mit der Spitze in einer Pfanne positionieren, wie oben beschrieben. Danach den Arm in alle möglichen Richtungen bewegen und die Werte aufzeichnen lassen (Spitze berührt dabei immer den gleichen Punkt).
Für die Koordinaten des Endeffektors werde ich jetzt eine Reihe von Werten haben, die von der wirklichen Lage abweichen. Jetzt eine Software schreiben, die einzelne Parameter nach den Zufalsprinzip in begrenzten Bereich ändert. Die Software so lange laufen lassen, bis für die Lage des Endeffektors immer der gleiche Wert rauskommt.
Mal abgesehen davon, das die berechnung wahrscheinlich ewig dauern würde, aber würde man theoretischerweise irgendwann auf die richtigen Korrekturwerte kommen?

Danke fürs Lesen.

Gruß ralf33