Inverse Kinematik Kr6

  • Grüß Gott,


    im Rahmen eines Projekts muss ich mich mit der inversen Kinematik am Beispiel eines Kr6 Roboters beschäftigen.
    Da ich hierfür wenig Zeit habe, suche ich C-Code um es schneller zu verstehen.


    Ich hoffe Ihr könnt mir helfen, da ich im Netz bis jetzt relativ wenige Code-Schnipsel dazu gefunden habe.
    Falls mir also jemand weiterhelfen kann mit Links oder vielleicht schon mal damit gearbeitet hat und mir mit seinem Code weiterhelfen möchte wäre ich sehr verbunden!


    Nur kurz noch etwas zu meiner Arbeit, Ziel ist es eine Robotersteuerung für eben jenen Roboter zu entwerfen für das iPad, unter Ausnutzung der Beschleunigungssensoren.

  • Schritt für Schritt zum Roboterprofi!
  • Da der Roboter eine Zentralhand hat kann man die inverse Kinematik relativ einfach analytisch lösen.


    Der Punkt an dem sich A4 und A5 schneiden (= 05) entkoppelt A1 bis A3 von A4 bis A5
    Die Lage von 05 lässt sich aus der Orientierung und Lage des TCP und der Länge von 05 zum TCP (= l5) berechnen.
    r05 = rTCP - ATCP * (0,0,-l5)T
    Dabei sind:
    r05 : Vektor zu 05
    rTCP : Vektor zum TCP
    (0,0,-l5)T : Vektor mit l5 als negative z-Komponente
    ATCP : Rotationsmatrix aus a,b,c des TCP


    Aus r05 kann man dann A1 bis A3 analytisch rechnen:
    A1 aus dem ATan2
    A3 aus dem Cosinussatz
    A2 aus Sinussatz mit A1 und A3


    Wenn man das hat kann man die Rotationsmatrix vom Roboterfuß bis 05 aus A1,A2,A3 rechnen.
    Damit ist die Rotationsmatrix von 05 bis zum TCP bekannt, die nur mehr von A4,A5,A6 abhängig ist.
    Daraus bestimmt sich A4,A5,A6 mit http://de.wikipedia.org/wiki/R…hnung_aus_Rotationsmatrix


    Bei der analytischen Berechnung von A1 bis A3 muss man noch Fallunterscheidungen treffen bezüglich des Arcuscosinus und Arcussinus
    Und die Unterscheidungen nach Status und Turn muss man noch einarbeiten.


    Ein paar Skizzen dazu:
    http://www.robotik.jku.at/educ…terial/RP/Praktikum_3.pdf

    Einmal editiert, zuletzt von atw12az5 ()

  • Hat noch jemand einen anderen Tipp für mich?
    Ich probiere es jetzt mit einer numerischen Methode, die drei Achsen für die Positionierung habe ich schon hinbekommen.
    Mir fehlen jetzt noch die drei Achsen für die Orientierung, da komm ich garnicht weiter...

  • Hallo,


    falls du es numerisch machen willst, weiss ich das der Code aus der Robotics Toolbox von Peter Corke korrekt funktioniert:


    http://petercorke.com/Robotics_Toolbox.html


    Du kannst ja den Quellcode anschauen und das gleiche Verfahren nutzen. Oder du schaust dir gleich die analytische Lösung beim als Beispiel integrierten Puma560 an. Der ist kinemtisch vom Aufbau her identisch zu deinem Roboter.


    Gruß
    Fubini

    Einmal editiert, zuletzt von fubini ()

  • Hallo,
    noch ein Tipp, ich glaube es gibt für EMC2 (http://www.linuxcnc.org/) auch ein Roboter Kinematikmodul, das wäre ein C Quellcode. Ich weiß leider auf die schnelle nicht, wer das geschrieben hat oder wo man das Modul finden könnten, aber es gibt so was irgendwo.


    Grüße
    Flo

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden