Koordinate verschieben ohne neu zu teachen

  • Hallo,


    ich bin neu in Robotik und habe momentan das folgende Problem. Es geht um Kuka KR5 sixx R650 mit Steuerung KRC2sr, Soft V.7. Wir haben eine Ablagestation mit 3 "Etagen", d.h. 3 Werkstücke liegen genau über einander. Der Roboter hat bei uns eine Transportfunktion: er holt und legt die Werkstücke ab. Die komplette Bahn 3 mal teachen (also 1 mal für jede "Etage") ist aufwendig. :( Deswegen möchte ich das bereits geteachte Programm für die oberste "Etage" kopieren und nur den Endpunkt um - 50 mm verschieben. Deswegen meine Frage: wie kann ich einen bereits geteachten Punkt um 50 mm nach unten verschieben ohne alles neu teachen zu müssen? Wie macht man das??? :huh::kopfkratz:


    Danke und Grüße!

  • Schritt für Schritt zum Roboterprofi!
  • Servus,


    1. du kannst den Punkt im der "dat" kopieren => Punkt einfuegen, umbenennen und dann seinen Z-Wert angleichen


    z.B. DECL E6POS XEP1={X -23.2023907,Y 155.244293,Z 1700.62695,A 90.1193771,B 0.543596089,C -87.6134033,S 18,T 34,E1 0.0,E2
    0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    z.B. DECL E6POS XEP2={X -23.2023907,Y 155.244293,Z 1650.62695,A 90.1193771,B 0.543596089,C -87.6134033,S 18,T 34,E1 0.0,E2
    0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    2. du fährts zum geteachten Punkt (EP1)einen Offset => das kommt daraufan wie genau die Ablage ist und ob eine Base eingemessen wurde
    a: Baseoffset
    z.B LIN {x 0,y 0,z 50,a 0,b 0,c 0}:XStEP1 C_DIS oder PTP {x 0,y 0,z 0,a 0,b 0,c 0}:XStEP1 C_PTP


    b: Tooloffset


    z.B LIN XStEP1:{x 0,y 0,z -50,a 0,b 0,c 0} C_DIS oder PTP XStEP1:{x 0,y 0,z 0,a 0,b 0,c 0} C_PTP


    => bei 3 Ablagepunkten würde ich jeden teachen da der Aufwand m.E. sehr gering ist


    Grüße


    Martl

  • Da gibts viele Möglichkeiten. Aber ohne deine Anlage genau zu kennen, kann man das schwer sagen. Ist deine Etage mit einer eigenen Base versehen? Dann wird es recht einfach, wenn nicht wären folgene Punkte zu prüfen:
    Steht deine Etage rechtwinkelig zu deinem Roboter (nicht so wichtig, aber macht die Sache für den Kopf einfacher)
    Ist die Etage auch über die ganze Strecke waagerecht (sehr wichtig, weil wenn die Etage zu einer Seite abfällt, wird es unterumständen wieder schwer)
    Muss der Roboter sich stark verdrehen bei der jetzigen Etage, wenn ja, wird deine neue Etage generall auch Probleme haben.


    Bei der Variante mit einer eigenen Base. Programm kopieren und dort überall deine BaseAktuell auf BaseNeu ändern.
    Dann die BaseNeu sauber einmessen und das ganze sollte gehen. Aber ich vermute mal, soviel Glück wirst du nicht haben, dass das vom ersten Programmierer vorgesehen wurde?


    Ansonsten kannst du auch auf gut Glück einfach dein Programm kopieren und von allen geteachten Punkten die Höhe abziehen


    Ist dein Punkt per Inline geteacht und heißt P1 muss du in der src den Punkt xP1 suchen und dort bei z die Höhe abziehen.
    Oder du schreibst dir ein Programm, was den Wert einmal abzieht. xP1.z = xP1.z - OffsetHöhe. Aber das Programm nur einmal ausführen, sonst ist dein Punkt schnell im Fussboden.


    Nachteachen wirst du am end eh machen müssen, aber mit der Methode Programm kopieren und dort manuell alle Punkte um die Höhe reduzieren, macht das teachen etwas einfacher, weil du schonmal grobe Punkte hast.

  • Geht aus so:


    Nehmen wir mal an, du hast den Punkt PICKUP mit BASE1 und Tool 1 aufs obere Teil geteacht. 3 Teile liegen aufeinander
    Base 16 errechnet sich aus Base 1
    Dein getachter Punkt richtet sich also nach einer neuen Base.


    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Hallo Leute,

    Ich habe eine Frage, ich habe hier eine krc1 mit V4.1.7 sp08

    Ich möchte das wenn Punkt1 nachgeteacht wird, sich Punkt2 auch ändert. Er soll in Z dann 50mm höher liegen.


    Ich habe den Code geschrieben aber leider ohne Erfolg



    DECL E6POS XP1={X -23.2023907,Y 155.244293,Z 1700.62695,A 90.1193771,B 0.543596089,C -87.6134033,S 18,T 34,E1 0.0,E2

    0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.

    0}


    DECL E6POS XP2= {X xp1.x, Y xp1.y, z xp1.z + 50.0 , ............


    Grüße

  • Mahlzeit der Herr,

    also die 2 Punkte legst in dem dat-File an.

    Bsp:

    DECL POS xP1={x0 ,y 0,z 0,a 0,b 0,c 0}
    DECL POS xP2={x0 ,y 0,z 0,a 0,b 0,c 0}


    Dann musst natürlich in einem Programmcode den Befehl integrieren:

    Das ist davon abhängig, ob die Punkte nur lokal in einem Modul gelten sollen oder global für die ganze Steuerung?

    Dann is die Frage, soll xP2 automatisch angepasst werden, wenn xP1 geändert wurde?

    Das geht nur im sub.sps mit globalen Punkten.


    Ansonsten im lokalen Programm nach dem ILF des xP1 den Zweizeiler einfügen, damit es anschließend geändert wird. Dazu muss das Programm zu Ende gefahren werden.


    Du siehst es gibt einige Möglichkeiten, die aber nur in bestimmten Situationen passen können.


    Grüße

  • DECL POS xP1={x0 ,y 0,z 0,a 0,b 0,c 0}
    DECL POS xP2={x0 ,y 0,z 0,a 0,b 0,c 0}

    Das ist falsch....


    eine POS Struktur beinhaltet Status und Turn


    DECL POS XLinks_P1={X 15.7832537,Y -64.6603317,Z 112.457863,A 16.6937981,B 87.4929276,C -73.3665161,S 2,T 42}



    oder FRAME

    DECL FRAME XLinks_P1={X 15.7832537,Y -64.6603317,Z 112.457863,A 16.6937981,B 87.4929276,C -73.3665161}

  • falsch klingt bisshen zu hart...


    Ich halte KRC für eine Autorität auf diesem Gebiet... Wehn es funcktioniert, alles ist in Ordnung. Einziege Problem ist das es kein LEhrzeichen gibt zwischen X und 0.


    So gehts auch:

    DECL POS xP1={x 0}


    und xP1 Wert wird Touchup geändert... danach gibts Werte fuer ganze Struktur - auch S und T

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