Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
18. Mai 2012, 11:55:15
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Nachträglich Werkobjekt definieren 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Nachträglich Werkobjekt definieren  (Gelesen 1181 mal)
Florian
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 35


« am: 22. Januar 2009, 09:33:54 »

Hallo

ABB S4C

Habe in nächster Zeit eine Anlage in der die Position einzelner Stationen verändert werden soll.
Leider sind die vorhandenen Werkobjekte nicht nachvollziehbar, also nach der Umstellung auch nicht nachteachbar.
Hätte nun vor mir für jede Station ein neues Werkobjekt anzulegen und alle Punkte in die neuen Werkobjekte zu teachen. Also mit altem Werkobjekt anfahren und mit neuem speichern.

Meine Frage hierzu: Gibt es eine Möglichkeit mir das anfahren aller Punkte zu ersparen, also die Punkte vom alten ins neue Werkobjekt umzurechnen? Gehe mal von translatorischer und rotatorischer Verschiebung der Werkobjekte zueinander aus.

Grüsse

Florian
 
Gespeichert
Hermann
Elite Member
*******
Offline Offline

Beiträge: 808


« Antworten #1 am: 22. Januar 2009, 22:00:57 »

Hallo,
ja klar gibt es da eine Möglichkeit.
Code:
  PROC Konvert2 (
    wobjdata wOriginal,
    wobjdata wNeu,
    robtarget pOriginal,
    PERS robtarget pNeu )
   
  VAR pose pos1;
  VAR pose pos2;
  VAR pose pos3;
  VAR pose pos4;
  VAR pose pos5;
  VAR pose pos6;
  VAR pose pos7;
  VAR pose pos8;
  VAR pose pos9;
  VAR pose pos10;
 
    ! wegen der Konfigurationen   
    pNeu := pOriginal;
    ! Die einzelnen Verschiebungsframes kopieren
    pos1:=wOriginal.uframe;
    pos2:=wOriginal.oframe;
    ! Berechnung der Gesamttrafo des Werkobjekts
    pos3:=PoseMult(pos1,pos2);
    ! Die einzelnen Verschiebungsframes kopieren
    pos4:=wNeu.uframe;
    pos5:=wNeu.oframe;
    ! Berechnung der Gesamttrafo des Werkobjekts
    pos6:=PoseMult(pos4,pos5);

    pos7.trans:=pOriginal.trans;
    pos7.rot:=pOriginal.rot;
    ! Weltkoordinaten des Zielpunkts berechnen (bzgl des Nullpunkts)
    pos8:=PoseMult(pos3,pos7);
    ! Koordinaten des Nullpunkts bzgl des Ziel-Werkobjekts berechnen
    pos9:=PoseInv(pos6);
    pos10:=PoseMult(pos9,pos8);
    pNeu.trans := pos10.trans;
    pNeu.rot   := pos10.rot;
  ENDPROC

Berechnet aus POriginal bezüglich woriginal den neuen Punkt pneu bezüglich wneu.
Es muss also Poriginal, Woriginal, und WNeu gegeben sein, heraus kommt Pneu.

Jetzt musst Du nur noch ein Programm schreiben, in dem für jeden Punkt
die Konvertierroutine aufgerufen wird.
Viel Spass dabei.

Hermann

Gespeichert
Florian
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 35


« Antworten #2 am: 23. Januar 2009, 16:29:42 »

Hallo

@Hermann   Danke das ist eine sehr gute Idee.

Ist vielleicht auch folgende Vorgehensweise sinnvoll:

1. Neues Werkobjekt vor dem Umbau einmessen -> wobjalt

2.Gleiches Werkobjekt nach Umbau vermessen    -> wobjneu

Mit diesen Daten hätte ich den Versatz des Umbaus.

Dann mit diesem Versatz mein unbekanntes Werkobjekt verrechnen und alle Punkte wären wieder im richtigen Bezug.

Oder zweite Möglichkeit um die geteachten Punkte des Werkobjekts zu finden:

Mit TCP im unbekannten Werkobjekt auf X=0, Y=0, Z=0 fahren => Ursprung X1
Dann linear in X-Richtung verfahren  => X2
Dann linear in Y-Richtung verfahren  => Y1

Diese Punkte markieren und nach Umbau damit Werkobjekt nachteachen



Gruß
Gespeichert
Florian
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 35


« Antworten #3 am: 29. Januar 2009, 11:41:17 »

Hallo

Hab mittlerweile folgendes probiert:

Um den Versatz des Umbau auszurechnen um damit mein unbekanntes Werkobjekt zu verrechnen verwende ich nun die Punkte die die Werkobjekte definieren.


wobjalt: wird durch die Punkte pvorUmbau definiert
wobjneu: wird durch die Punkte pnachUmbau

PROC Konvert1 ( )
   
   wobjneu:=wobjalt; 
    !Versatz des Umbaus
    pose2:=DefDFrame (pvorUmbau_X1, pvorUmbau_X2, pvorUmbau_Y1,pnachUmbau_X1, pnachUmbau_X2, pnachUmbau_Y1);
    !Versatz auf unbekanntes Werkobjekt verrechnen   
    wobjneu.uframe:=PoseMult(wobjalt.uframe,pose2);
    wobjneu.oframe:=PoseMult(wobjalt.oframe,pose2);

   wobjalt:=wobjneu;
   
  ENDPROC

Kann den Weg den Hermann vorgeschlagen hat leider nicht gehen, da im Programm viele Punkte berechnet werden. Daher scheint mir die Verrechnung der Werkobjekte sicherer zu sein.

Kann man das so machen????


Gruß
Florian


Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Nachträglich Werkobjekt definieren « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS