6 Achsenroboter dreht J6 ab und zu um 360°

  • Hi !


    Ich habe ien Problem mit der Positionsberechnung. Ich möchte vom PC aus Positionen berechnen und den Roboter an diese fahren lassen. Jetzt benötigt eine Position neben x,y,z,a,b,c noch fl1 und fl2. Mit fl2 habe ich meine Probleme. Wenn ich das richtig verstehe werden pro Achse die Anzahl der Umdrehungen in 4bit in fl2 kodiert. Allerdings bezieht sich das eben auf die Achsen selber und nicht auf das x,y,z Koordinatensystem. Jetzt stell sich mir die frage, wie ich fl2 überhaupt ausrechnen kann ohne die Transformation x,y,z,a,b,c=>j1,j2,j3,j4,j5,j6 die der Robotercontroller eigentlich macht, selber auch zu berechnen? Wenn ich weiss ich möchte an eine Position x,y,z,a,b,c fahren, kann J6 ja kompliziert im Raum liegen und für mich ist nicht einfach erkennbar wieviel Drehungen nötig sind.


    Ziel des ganzen wäre zu verhindern dass, wenn ich an eine Position fahre und anschließend an eine andere naheliegende Position z.b. 1cm daneben, sich J6 um 360° dreht. Das würde in meiner Anwendung zu Kolloisionen führen.


    Das merkwürdige ist, dass diese Problematik auch besteht wenn ich relative Fahrbefehle der Art MOVE P_CURR * (10, 0, 0, 0, 0, 0) (0, 0) gebe. Auch dabei gibt es auf einmal 360° Drehungen wenn j6 sich dabei über -180° hinausdrehen würde.


    Gibt es einen Befehl der Art "Fahrt dort hin, aber mit möglichst wenig Drehung der J6"?


    Die Teachbox im Jog Modus kann es abgesehen davon. Wenn man dort vor solch einer Position steht und 1cm in die Richtung bewegt dreht sich j6 nicht um 360° und stattdessen wird rot angepasst. Wie macht die das?


    Thx
    Marc

  • ANZEIGE
  • Hallo,



    Jetzt benötigt eine Position neben x,y,z,a,b,c noch fl1 und fl2.


    wenn du die Flags nicht mitsendest, sucht er sich selber welche (wahrscheinlich die am nächsten zur aktuellen Konfiguration passenden). Die passen dann nicht für deine Anwendung ?



    Jetzt stell sich mir die frage, wie ich fl2 überhaupt ausrechnen kann ohne die Transformation x,y,z,a,b,c=>j1,j2,j3,j4,j5,j6 die der Robotercontroller eigentlich macht, selber auch zu berechnen?


    Wenn die Achsgrenzen für J6 weiter als 360 Grad auseinanderliegen, ist die x,y,z,a,b,c Darstellung gar nicht eindeutig, deshalb braucht man ja die Flags. J6 kann ja mehrfach überdreht sein.


    Wenn man ein bestimmtes Vielfaches der J6-Drehung braucht, kann man z.B. die Joint-Darstellung einer Referenzposition nehmen und auf die Joint-Darstellung der neuen Position ensprechende Vielfache von 360 Grad aufaddieren.



    Das merkwürdige ist, dass diese Problematik auch besteht wenn ich relative Fahrbefehle der Art MOVE P_CURR * (10, 0, 0, 0, 0, 0) (0, 0) gebe. Auch dabei gibt es auf einmal 360° Drehungen wenn j6 sich dabei über -180° hinausdrehen würde.


    Wie er die überdrehte Position anfährt, entscheidet wohl der Type-Parameter im Move-Befehl (detour = mathematisch richtige Drehung, short cut = kürzester Weg).



    Die Teachbox im Jog Modus kann es abgesehen davon. Wenn man dort vor solch einer Position steht und 1cm in die Richtung bewegt dreht sich j6 nicht um 360° und stattdessen wird rot angepasst. Wie macht die das?


    Die Jog-Befehle der Teachbox sind keine normalen Move-Bewegungen. Wenn man mit der Teachbox eine überdrehte Position anfährt, wird sie aber (hoffentlich) mit der richtigen Überdrehung angefahren.


    Grüße


    Urmel

  • Danke erstmal für die Antworten :)


    Ich bin grade nicht am Roboter, aber ich meine mich zu erinnern dass ein Befehl der Art


    MOV (300, 300, 300, 0, 0, 0)


    ohne die fl1 und fl2 zu einer Fehlermeldung führte.


    Oder geht das nur relativ? Also


    MOV P_CURR * (10, 0, 0, 0, 0, 0)

  • Für Move weiß ich das auch nicht.


    Wenn man mit Input Positionen empfängt, geht das auf jeden Fall ohne Flags. Die setzt er dann entweder auf null, oder irgendwie passend.


    Man kann sich dann aber im Roboterprogramm Flags von ähnlichen Positionen holen. Oder man schaut mit PToJ wie der J6-Winkel aussieht und ändert ihn ggf um +/- 360 Grad.

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