====== Literaturhinweise zu Roboterarmen ====== Download der Arduino Lib für die Servos: [[http://sourceforge.net/projects/dynamixelforarduino/files/?source=navbar]] ===== Zur Berechnung der kinematischen Kette eines Roboters: Die Denavit-Hartenberg-Konvention ===== Hier geht es um die Frage, wo die Hand ist, wenn die Winkel der Servos auf Werte $\theta_i$ eingestellt ist. * Schöner Einstieg[[http://blog.robindeits.com/2012/06/05/denavit-hartenberg-robotic-control/]] * Klare Erklärung zu den Details der Koordinatensysteme: [[https://homepages.thm.de/~hg6458/ROB_ERG.pdf]] (Achtung Fehler im Text: die Achse $x_i$ zeigt nicht "//in Richtung// des nächsten Armteils", sondern vom $Gelenk_{i-1}$ in Richtung $Gelenk_{i}$ * Ein paar mehr Bilder:[[https://homepages.thm.de/~hg6458/Robotik/Denavit-Hartenberg.pdf]] ===== Apache Math ===== Die Apache math library, die die Arbeit macht, gibt es hier: [[http://commons.apache.org/proper/commons-math/download_math.cgi]] ===== Zur Berechnung der inversen Kinematik (Welche Winkel $\theta_i$ muss ich einstellen, damit die Hand an den Punkt x kommt) ===== Da sich allgemein keine eindeutige Umkehrfunktion zur Kinematik eines beliebigen Roboters finden lässt, lässt man in der Regel den Computer //iterativ// (schrittweise ) eine bestmögliche Lösung finden. Dazu kommt z.B. das [[https://de.wikipedia.org/wiki/Newton-Verfahren]] oder eine Abwandlung in Form des [[https://de.wikipedia.org/wiki/Gau%C3%9F-Newton-Verfahren]]. Hier gibt es ein Beispielprogramm für die Berechung passender Armwinkel mittels der algos in org.apache.commons.math3.fitting.leastsquares: [[https://github.com/Zapalot/InverseKinematicExample]] Die Apache math library, die die Arbeit macht, gibt es hier: [[http://commons.apache.org/proper/commons-math/download_math.cgi]] Für die Library Installation ist mal wieder etwas Umbenennerei nötig: [[https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library#non-processing-libraries]] Für die Library Installation ist mal wieder etwas Umbenennerei nötig: [[https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library#non-processing-libraries]]