Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
08. Februar 2012, 16:24:23
Ü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: Werkobjekt im FZG Null vermessen 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Werkobjekt im FZG Null vermessen  (Gelesen 707 mal)
mights
Neuling
*
Offline Offline

Beiträge: 4


« am: 26. Juli 2010, 11:16:36 »

Hallo Leute!

Gibt es beim ABB eine Funktion mittels Soll (CAD) - Ist (TCP) Koordinaten ein Werkobjekt zu ermitteln?

Def.Frame ist leider nicht dafür geeignet, da der Roboter sich im FZG Null bewegen soll. Beim Kuka gibt es die Funktion Indirekte Basevermessung genau sowas suche ich auch beim ABB?

Gruß
Mights

Gespeichert
Markus Hochholzer
Member
***
Offline Offline

Geschlecht: Männlich
Beiträge: 71



WWW
« Antworten #1 am: 26. Juli 2010, 12:23:53 »

Hallo Leute!

Gibt es beim ABB eine Funktion mittels Soll (CAD) - Ist (TCP) Koordinaten ein Werkobjekt zu ermitteln?

Def.Frame ist leider nicht dafür geeignet, da der Roboter sich im FZG Null bewegen soll. Beim Kuka gibt es die Funktion Indirekte Basevermessung genau sowas suche ich auch beim ABB?

Hallo mights,

meines Wissens gibt es eine solche Funktion beim ABB nicht.
Ich habe mir eine "indirekte Basevermessung" aber selbst als WEB-Anwendung programmiert und könnte Dir evtl. helfen.
Gespeichert

Gruß
Markus
Programmiersklave
Special Member
*****
Offline Offline

Beiträge: 243


« Antworten #2 am: 26. Juli 2010, 13:02:03 »

Der ABB bietet aber die Möglichkeiten, sich alle möglichen Frames problemlos selbst zu berechnen.
Mit DefDframe kann man die Differenz zwischen zwei Frames finden, mit PoseMult hat man Kukas Doppelpunkt-Operator und mit PoseInv dreht man den Frame rum.
Wenn ich Dich richtig verstehe, müsstest Du also Deine 3 CAD-Punkte händisch eingeben, dann die drei realen Punkte teachen, daraus mit DefDframe den Korrekturframe berechnen und diesen dann mit PoseMult einfach auf das zu verschiebende Werkobjekt anwenden bzw. als das eine als UFrame und das andere als OFrame nutzen....

Grüße,
Michael
Gespeichert
Micky
Junior Member
****
Offline Offline

Beiträge: 127



« Antworten #3 am: 26. Juli 2010, 16:39:35 »

Hallo mights,

die Funktion die Du suchst heißt "DefAccFrame".

Mit dieser kann man ein Koordinatensystem aus drei bis zehn Originalpositionen und derselben Anzahl an verschobenen Positionen definieren, d.h. CAD-Positionen und reale Positionen.

Nähere Informationen kannst Du dem Handbuch entnehmen.

Gruß

Micky


Gespeichert
mights
Neuling
*
Offline Offline

Beiträge: 4


« Antworten #4 am: 27. Juli 2010, 09:08:41 »

Hallo Leute!

Erstmal danke für die zahlreichen Antworten! Muss sagen, "Roboterforum" macht echt Spaß danke

@ Micky  gutidee

Die genannte Funktion von Dir, könnte durchaus genau das sein was ich suche. Ich bin nächste Woche auf der Baustelle, da werde ich gleich einen Test durchführen.

Was ich leider nicht in der Beschreibung finden kann ist mit welchem Tool die Positionen korrigiert werden?  bzw. kann ich jeden beliebigen referenz TCP benutzen?

Und warum sind die Positionen P6 - P10 eine VAR robtarget ? und nicht CONST?

Hast du es in einer realen Zelle schon einmal getestet bzw. angewandt?

Rapid Referenzhandbuch

Zitat

Ein Koordinatensystem kann definiert werden, wenn eine Gruppe von Zielen an zwei verschiedenen Positionen bekannt ist. Daher werden dieselben physischen Positionen verwendet, aber unterschiedlich ausgedrückt.
Betrachten Sie dies aus zwei verschiedenen Blickwinkeln:


Dieselben physischen Positionen werden in verschiedenen Koordinatensystemen ausgedrückt. Beispielsweise wird eine Anzahl von Positionen aus einer CAD-Zeichnung abgerufen. Diese Positionen werden daher im lokalen CAD-Koordinatensystem ausgedrückt. Dieselben Positionen werden dann im Welt-Koordinatensystem des Roboters ausgedrückt. Aus diesen beiden Positionsgruppen wird das Koordinatensystem zwischen dem CAD-Koordinatensystem und dem Welt-Koordinatensystem des Roboters berechnet.
Eine Anzahl von Positionen bezieht sich auf ein Objekt an einer Originalposition. Nach einer Verschiebung des Objekts werden die Positionen erneut bestimmt (häufig durch Suche). Aus diesen beiden Positionsgruppen (alte Positionen, neue Positionen) wird das Verschiebungs-Koordinatensystem berechnet.
Drei Ziele reichen, um ein Koordinatensystem zu definieren, aber für eine höhere Genauigkeit sollten mehr Punkte verwendet werden.



Grundlegende Beispiele Grundlegende Beispiele für die Funktion DefAccFrame sind unten aufgeführt.
Beispiel 1:

CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
CONST robtarget p4 := [...];
CONST robtarget p5 := [...];
VAR robtarget p6 := [...];
VAR robtarget p7 := [...];
VAR robtarget p8 := [...];
VAR robtarget p9 := [...];
VAR robtarget p10 := [...];
VAR robtarget pWCS{5};
VAR robtarget pCAD{5};
VAR pose frame1;
VAR num max_err;
VAR num mean_err;

! Add positions to robtarget arrays
pCAD{1}:=p1;
...
pCAD{5}:=p5;
pWCS{1}:=p6;
...
pWCS{5}:=p10;
frame1 := DefAccFrame (pCAD, pWCS, 5, max_err, mean_err);


Die fünf Positionen p1- p5. die sich auf ein Objekt beziehen, wurden gespeichert. Die fünf Positionen werden auch in Relation zum Welt-Koordinatensystem als p6-p10 gespeichert. Aus diesen 10 Positionen wird das Koordinatensystem frame1 zwischen dem Objekt und dem Welt-Koordinatensystem berechnet. Das CAD-Koordinatensystem wird im Welt-Koordinatensystem ausgedrückt. Wenn die Eingangsfolge der Targetlists vertauscht wird, also DefAccFrame (pWCS, pCAD....) , wird das Welt-Koordinatensystem im CAD-Koordinatensystem ausgedrückt.
Rückgabewert Datentyp: pose

Das berechnete TargetListOne-Koordinatensystem ausgedrückt im TargetListTwo-Koordinatensystem.
Argumente DefAccFrame (TargetListOne TargetListTwo TargetsInList MaxErr MeanErr)

TargetListOne
Datentyp: robtarget

Datenfeld mit Roboterzielen, das die Positionen enthält, die in Koordinatensystem 1 definiert wurden. Die Mindestanzahl der Roboterziele ist 3, die Höchstanzahl 10.

TargetListTwo
Datentyp: robtarget

Datenfeld mit Roboterzielen, das die Positionen enthält, die in Koordinatensystem 2 definiert wurden. Die Mindestanzahl der Roboterziele ist 3, die Höchstanzahl 10.

TargetsInList
Datentyp: num
Anzahl der Roboterziele in einem Datenfeld.

MaxErr
Datentyp: num
Geschätzter maximaler Fehler in mm.

MeanErr
Datentyp: num
Geschätzter mittlerer Fehler in mm.

Fehlerbehandlung Wenn die Positionen nicht die erforderliche Relation aufweisen oder nicht genau genug angegeben sind, wird die Systemvariable ERRNO auf ERR_FRAME gesetzt. Dieser Fehler kann dann in einer Fehlerbehandlungsroutine behandelt werden.

Syntax:

DefAccFrame’(’
[TargetListOne’:=’] <array {*} (IN) of robtarget>’ ,’
[TargetListTwo’ :=’] <array {*} (IN) of robtarget> ’,’
[TargetsInList’:=’] <expression (IN) of num> ’,’
[MaxErr’:=’] <variable (VAR) of num> ’,’
[MeanErr’:=’] <variable (VAR) of num>’)’

Eine Funktion mit einem Rückgabewert vom Datentyp pose.







Gruß

Mights




 
Gespeichert
Thilbi
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 213



« Antworten #5 am: 27. Juli 2010, 09:28:35 »

Hallo Mights,

p6..P10 sind als VAR deklariert da die robtarget von Dir/dem Roboter ermittelt/vermessen werden müssen. Eine Variable die als CONST deklariert ist kann aber von Programm aus nicht verändert werden.
Wenn du die Variable als VAR od. PERS deklarierst kannst du mittels dem Befehl CRobT die aktuelle Position einer Variablen zuweisen.
Ist die Variable aber als CONST deklariert geht das nur durch drücken der KorrPos-Taste.

Korrigiert wird immer mit dem Tool und Werkobjekt das in dem Moment aktiv war als du die KorrPos-Taste drückst, bzw. was du bei dem Befehl CRobT angegeben hast, da die robtarget sich auf diese Koordinatensysteme beziehen.


Ich hoffe ich konnte dir weiterhelfen.
Gruß
Thilbi
Gespeichert
mights
Neuling
*
Offline Offline

Beiträge: 4


« Antworten #6 am: 27. Juli 2010, 13:44:09 »

Hallo Thilbi,

vielen Dank! hilft mir sehr weiter.

@All

Als danke schön stelle ich mein Wordfile für UE32 ABB Rapid zu verfügung.

Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Werkobjekt im FZG Null vermessen « 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