Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
18. Mai 2012, 12:08:07
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: >> Roboterprogrammierer gesucht !? <<

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Positionsunterschied berechnen 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Positionsunterschied berechnen  (Gelesen 1104 mal)
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 133



« am: 13. März 2008, 22:36:06 »

hallo leidensgenossen,

bei mir besteht zwar kein akutes problem, aber ich möchte vorsorgen.
ein robi ( irb 4400 ) soll ein werkstück holen und in eine presse einlegen. soweit sogut. da wir auf grund kleiner losgrößen sehr oft umrüsten, möchte ich diesen vorgang vereinfachen, indem ich eine einrichtroutine erstelle.
Nehmen wir an es gibt ein bewegliches wobj "wTool0"( gleicht tool0 und liegt am robflansch ) und einen stationären tool " tMesspizze"( steht fest im raum ).
mit diesen daten teache ich eine position zb. pTeil1.also movej,pTeil1......tMesspitze\Wobj:=wTool0;
beim nächsten formgleichen aber maßlich anderm werkstück mache ich das gleiche.also movej,pTeil2......tMesspitze\Wobj:=wTool0;
nun habe ich zwei robtargets mit unterschiedlichen positionsdaten.diesen unterschied möchte ich berechnen, um mit diesem ergebnis eine masterposition an der presse korrigieren.
kann ich z.b sagen pteil:=pteil1-pTeil2 und dieses ergebnis mit einem offset eine position am pressentisch anfahren ???

kann mir hier jemand helfen, sofern man meine frage verstanden hat ???? hilfe
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
högi
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 288



« Antworten #1 am: 14. März 2008, 14:45:42 »

Hallöle
Also so ganz verstehe ich nicht was du vorhast.

Soll der Roboter automatisch erkennen welches Teil er im Greifer hat?
Dann brauchst du eine Suchfahrt.

Haben die Teile immer die gleiche Form und unterscheiden sich nur in der Größe?

Grundsätzlich kannst du immer über einen Offset oder Reltool eine Position verschieben, allerdings brauchst du dann drei Werte. Den X,Y und Z Wert.
Einmal an eine Meßspitze fahren wird nicht gehen es sei denn die Teile sind rund und immer gleich dick.

Gruß
Högi



Gespeichert

Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!
Albert Einstein
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 133



« Antworten #2 am: 14. März 2008, 20:37:10 »

Hallo högi,
zunächst einmal ein dankeschön für deine anteilnahme.

nein,er soll nicht automatisch erkennen welches teil er hat. es geht nurum den einrichtvorgang.
ich stelle mir das wie folgt vor.

stell dir vor, es gibt grosse flaschenöffner und kleine flaschenöffner. ich zeige dem roboter mit dem grossen flaschenöffner eine position in einer presse und fertige ca. 5000 stück.
anschliessen muss ich 5000 kleine flaschenöffner fertigen mit der gleichen vorrichtung in der presse. ohne an der presse etwas zu verändern.weil der kleine flaschenöffner aber kürzer ist, muss ich den verfahrweg in Y vom wTisch verändern.
diese veränderrung möchte ich mit einer messpitze ermitteln. einmalig von hand geteacht.
die ermittelten werte,muss ich dann,wie du schon richtig berktest,in meinem fall mit einem Offs verschieben
der greifpunkt,wenn er den öffner holt, ist bei beiden teilen gleich.
um einen unterschied ermitteln zu können,muss ich natürlich beide öffner an der gleiche markanten stelle teachen.(so stelle ich es mir jedenfalls vor).
eigentlich unklar ist mir eigentlich nur der rechenweg.
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
ErikPa
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 30



« Antworten #3 am: 14. März 2008, 21:06:20 »

 smiley
hm, ich bin mir ausch nicht sicher was du machen willst, denn mit nur 2 Punkten kannst Du nicht wirklich eine Position in einem Raum bestimmen.

Um den Unterschied 2er robtargets zu erhalten, solltest Du die x, y und z Werte separat unterscheiden.
Dieses sollte wie volgt funktionieren.
var num nx1 := 0; !entspricht x Wert der 1. Position
var num nx2 := 0; !entspricht x Wert der 2. Position
var num nxDelta := 0;
var num ny1 := 0; !entspricht y Wert der 1. Positon
var num ny2 := 0; !entspricht y Wert der 2. Position
var num nyDelta := 0;
var num nz1 := 0; !entspricht z Wert der 1. Position
var num nz2 := 0; !entspricht z Wert der 2. Position
var num nyDelta := 0;
Const robtarget pPos1 := [100,100,100]...;
oder
var robtarget pPos1 ...
const robtarget pPos2 := [200,200,300]...

Nun kannst Du die jeweiligen jeweiligen Unterschiede berechnen:

nxDelta := pPos2.trans.x - pPos1.trans.x;
! in diesem Fall 200 - 100 = 100

nyDelta := pPos2.trans.y - pPos1.trans.y;
! in diesem Fall 200 - 100 = 100

nzDelta := pPos2.trans.z - pPos1.trans.z;
! in diesem Fall 300 - 100 = 200

Dieses solltest Du jedoch auch in der Standarddokumentation unter Datentypen und Routinen finden.

Ich hoffe Dir damit ein wenig geholfen zu haben.

PS: Mann kann robtargets auch als variablen deklarieren, dass kann manchmal sinnvoll sein, wenn man z.B. einen Punkt auf einer Bahn verschieben will.


m.f.G.
Ralph
Gespeichert

Lieber einen Roboter, als gar keinen Freund
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 133



« Antworten #4 am: 14. März 2008, 21:32:09 »

mahlzeit noch einmal,

könnte ich auch schreiben

VAR pos psDiff:=[0,0,0]

psDiff:=pTeil1.trans-pTeil2.trans ???
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
ErikPa
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 30



« Antworten #5 am: 14. März 2008, 21:58:21 »

jop, so ähnlich kann es gehen
var pos psDiff := [0,0,0];
psDiff.x := pPos2.trans.x - pPos1.trans.x;
psDiff.y := pPos2.trans.y - pPos1.trans.y;
psDiff.x := pPos2.trans.z - pPos1.trans.z;

Dann sind die Unterschiede in der var psDiff abgelegt.
Gruß
Ralph
Gespeichert

Lieber einen Roboter, als gar keinen Freund
ErikPa
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 30



« Antworten #6 am: 14. März 2008, 21:59:23 »

ich meinte natürlich
psDiff.z := pPos2.trans.z - pPos1.trans.z;
Gespeichert

Lieber einen Roboter, als gar keinen Freund
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Positionsunterschied berechnen « 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