Neues wobj 45° zu wobj0

  • Hallo,


    sry flls meine Frage zu einfach ist, aber bin ziemlich nue hier.


    Wir haben in einer Anlage einen IRC910SC (Scara). Dieser wurde leider von unserer Konstruktion im 45° Winkel zu den restlichen Teilen in der Anlage angebracht. Um nun vernünftig mit dem Joystick den Roboter verfahren zu können dachte ich mir ich Programmiere einfach ein neues wobj 45° zum World Koordinatensystem.

    Ich habe keine festen Punkte in der Anlage, weshalb ich das Koordinatensystem nur über den Code einpfelgen kann.


    Ich habe es mit dem nachfolgenden Code probiert, doch leider funktioniert es nicht.


    PERS wobjdata wobj1 := [FALSE, TRUE, "", [[0, 0, 0],[ 0.382683, 0, 0, 0.92388]], [[0, 0, 0],[1, 0, 0, 0]]];


    Die Werte der Quaternion habe ich über eine Umrechenseite im Internet.



    Ich wäre euch sehr dankbar für schnelle Unterstützung. Vielen Dank



    Grüße

    Dennis

  • ANZEIGE
  • Guten Morgen,


    ich konnte es jetzt heute Morgen testen.


    So habe ich es eingegeben, Leider hat sich an der Bewegung des Roboters allerdings Null geändert. Wenn ich über wobj0 fahre bewegt er sich immer noch in die 45° Schräge X Rivhtung in die der Roboter schaut.

  • Vielleicht kannst du mir noch schnell bei einem anderen Problem helfen.


    Ich habe eine Position und diese möchte ich mit z.B. einem festen Z-Wert z.B. 200 anfahren. gibt es hierfür eine Möglichkeit?

    Also ich will nicht über Offset arbeiten, da meine Ausgangspositionen unterschiedlich hoch sind ich aber von der einen zur anderen auf einer Höhe fahren möchte.

  • Hallo,

    du kannst mit einem Offset arbeiten, die Z-Koordinate automatisch oder händisch ändern oder halt die darauf folgende Position ebenfalls teachen.


    --------------------------------------------------------------------------------------------------------------------------------------------------

    Offset Verschiebung über die Z-Koordinate der Ausgangsposition. Hier muss das Wobj das selbe sein, ansonsten muss der Code erweitert werden.... .


    CONST robtarget rAusgangsPos:=[[X,Y,350],.....];

    PERS robtarget rZuÄnderndePos:=[[X,Y,186],.........];

    PERS num PosDiff:=164;


    MoveJ rAusgangsPos ,v300,fine,tGripper\WObj:=wStation;
    PosDiff:=Abs(rAusgangsPos.trans.z-rZuÄnderndePos.trans.z);
    .....

    MoveJ Offs( rZuÄnderndePos,0,0,PosDiff) ,v300,fine,tGripper\WObj:=wStation;




    --------------------------------------------------------------------------------------------------------------------------------------------------

    Falls du nicht mit dem Offset arbeiten möchtest kannst du auch direkt die Z-Koordinate im robtarget anpassen, sowohl händisch oder automatisch.


    CONST robtarget rAusgangsPos:=[[X,Y,350],.....];

    PERS robtarget rZuÄnderndePos:=[[X,Y,186],.........];


    rZuÄnderndePos.trans.z:=rAusgangsPos.trans.z;

    .....

    --------------------------------------------------------------------------------------------------------------------------------------------------

    oder du teacht die Position immer neu, wenn sich die Ausgangsposition ändert...



    Gruß Tobi

  • Moin,


    geht das wirklich nur so kompliziert?

    Ich habe gehofft, dass ich wie beim Beispiel Offset arbeiten kann und vlt nur das Offs durch einen anderen Befehl ersetzen muss.


    MoveJ Offs(pAbholen3Pol, 0, 0, 40), vmax, z10, tool0 \WObj:=wobj0;


    Gibt es das Absolut verfahren nicht auch als Befehl?

    Wenn nicht muss ich ja vor jeder fahrbewegung die Position neu berechnen. das bläht ja mein Programm extrem auf

  • Du musst das nicht zwingend berechnen. Dies ist halt nur angenehm, da du keine höhen bestimmen musst. Du kannst auch wie in deinem Beispiel mit einem festen Wert arbeiten.


    Berechnen musst du das auch nur einmal zum Beispiel, wenn sich die Vorposition geändert hat.

    Ansonsten poste mal deinen Code, dann kann man mal schauen was die beste Lösung, im Bezug zum Aufwand, für dich ist.

  • Hallo,

    du kannst das sicherlich mit einem Werkobjekt hinbekommen, allerdings muss dieses dann auch immer aktiv sein, wenn du diese Koordinatenrichtungen nutzen willst. Besser wäre es dem Roboter über die Konfiguration (Motion/Robot) beizubringen, dass sein Basiskoordinatensystem gegenüber deiner gewünschten Welt verdreht ist. Dann brauchst du auch kein extra Werkobjekt und kannst sehr einfach das Weltkoordinatensystem nutzen. Dazu brauchst du nur mit Hilfe einer Funktion (der Name will mir gerade nicht einfallen) dein Werkobjekt invertieren und diese Daten im Basiskoordinatensystem der Roboters eintragen, fädisch.

  • Hallo,
    zur Berechnung der Quaternion kannst Du den Befehl "OrientZYX" verwenden


    Code
    TASK PERS wobjdata wNew:=[FALSE, TRUE, "",[[0, 0, 0],[0.92388, 0, 0, 0.382683]],[[0,0,0],[1,0,0,0]]];
    
    
    wNew.uframe.rot:=OrientZYX(45,0,0);

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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