Problem mit Achsverdrehung KR6 900sixx

  • Hallo @all


    Ich stehe vor der Aufgabe, mit dem Robi ein Regal zu beladen, 6 Felder waagerecht und 6 Felder senkrecht (also 36 Fächer).
    Meine Strategie sieht vor, das obere linke Fach als Teachposition zu definieren und alle anderen Fächer mit Offsetwerten x und z nach Abstand
    zu berechnen. Funktioniert soweit einwandfrei.
    Jedoch stellt sich nun das Problem, daß die sich Achse 4 in der x-Bewegung entweder in den oberen Reihen einwickelt, bzw., bei teachen mit 180° Verdrehung der Achsen 4,5,6 in den unteren Reihen einwickelt. Welche Möglichkeiten habe ich, der Achse 4 zu sagen, daß sie ab dem 3. Fach waagerecht in der entgegengesetzten Richtung drehen soll (sich quasi wieder "auswickelt")? :denk:


    Vielen Dank.

  • Schritt für Schritt zum Roboterprofi!
  • einfach mal paar Vorpositionen definieren.


    Zum beispiel für jede Reihe,
    oder mehrere Reihen.
    Dabei jeweils die gewünschte Stellung der Achsen wählen.


    Dabei reicht das speichern von einer Greif-Position,
    und die andere als Offset anfahren.
    Diese müssen dann per LIN angefahren werden


    MFG
    Sergej

  • Eine idee ware, zuerst einen axis oder e6axis anzufahren, dann als vorposition auf einen aus dem greifpunkt berechneten frame (ptp) rein ins regal und linear zurueck auf den frame punkt.


    Ist nicht immer praktikabel aber manchmal tut's.




    Gesendet von meinem HTC_Butterfly_s_901s mit Tapatalk

  • Hallo Güttel,


    dein Problem ist denke ich relativ einfach zu lösen.


    Zuerst musst du dir überlegen warum sich der Robi eindreht.
    Das liegt daran, dass du die Position geteacht hast, also Status und Turn mit aufgenommen hast. Diese sind aber nur für deine Position richtig.
    Verschiebst du jetzt deine Position, wird der aufgenommene Status und Turn nicht mehr mit der gewünschten Position zusammenpassen.


    Natürlich gibt es für dieses Problem eine einfache Lösung
    1. Definiere eine Position vor dem Regal, die nicht verschoben wird. Hier soll der Status und Turn fix sein.
    2. Lösche bei der flexible Position den Status und Turn aus dem .dat file. Das hat zur folge das der Roboter die schnellste/einfachste bewegung ausführt.
    Das heißt er wird sich nicht mehr eindrehen.


    So sieht der Punkt davor aus:
    DECL E6POS XDeineVariablePosition={X 372.675537,Y 593.072571,Z 1000.17938,A 1.17246151,B -0.0743027702,C 2.84836435,S 2,T 34,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    und danach sollte er so aussehen (S und T einfach gelöscht):
    DECL E6POS XDeineVariablePosition={X 372.675537,Y 593.072571,Z 1000.17938,A 1.17246151,B -0.0743027702,C 2.84836435,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    Viele Grüße


    RoboFritz

  • Der Ersteller des Beitrags hat aber geschrieben, dass er die obere linke Position als Teachposition definiert hat. ;)
    Ansonsten ist natürlich auch ein Frame möglich. Beim Teachen wird aber halt einen E6POS angelegt...



    Gruß


    RoboFritz


  • Ansonsten ist natürlich auch ein Frame möglich. Beim Teachen wird aber halt einen E6POS angelegt...


    man kann ja "einfach" die E6Pos in ein Frame kopieren, so habe ich das schon gelöst.
    Kann natürlich auch schief gehen, daher alle Positionen gründlich testen.


    ;DECL E6POS pTrayPosCal ; E6POS mit T und SDECL FRAME pTrayPosCal ; Frame ohne T und S

    [...]

    ; +++ Greifen Position im Tray berechnenpTrayPosCal= xpTeachTrayMasterpTrayPosCal.X = pTrayPosCal.X + (iTrayZaehlerX * rTraRasterX)

    [...]

  • Hallo Kollegen,


    vielen Dank für die Hilfe. S und T waren die Lösung des Problems. Stand auch so in der Doku. :roll:


    Nach ein paar versuchen wickelte er sich nicht mehr ein.



    :danke:

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