Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
09. Februar 2012, 00:05:17
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: >> Roboterprogrammierer gesucht !? <<

Roboterforum für Industrieroboter Anwender  |  Allgemeines zum Thema Industrieroboter  |  Roboterforum allgemein  |  Erfahrungsberichte (Moderator: IrrerPolterer)  |  Thema: Automatische TCP Vermessung - so gehts! 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Automatische TCP Vermessung - so gehts!  (Gelesen 3675 mal)
Robotnik
Deluxe Member
******
Offline Offline

Geschlecht: Männlich
Beiträge: 466


Geht nicht, gibt's nicht!


WWW
« am: 11. Januar 2008, 17:44:46 »

Habs endlich mal umsetzen können - eine automatische Vermessung von Lichttastern am Greifer

Wir haben 3 Lichtaster (Leutze) die in einem Schaltabstand von 100 mm sehr gute Ergebnisse liefern.

Equipment:

1. Eine Kalibrierplatform
2. Eine Messspitze zum Einmessen der Base für die Kalibrierplatte

So geht's:

Die Maße der Kalibrierplatform ist bei uns 100 x 100 mm gewesen
Baseursprung an der Rechten Roboternahen Ecke, X vom Robi weg und Y nach links

Der Sensor wird mittig zur Platte gefahren und die Position abgeteacht (XP_Sensor1)

Dann werden 4 Punkte Nord Sued Ost und West aus dem geteachten Punkt generiert,
diese liegen ca 100 mm vom Plattenmittelpunkt entfernt.

Ein zwei Interrupts schreiben die Fallende und Steigende Flanke bei den Bewegungen mit.

Bewegungen:

N - S     getriggert wird bei Bewegungsstart ein Integerwert nActSearchDir (1)
S - N     (2)
E - W    (3)
W - E    (4)

ACHTUNG: Die Declarationszeilen

DECL INTERRUPT 1 WHEN $MEASPULSE[1]==TRUE DO iMeasPoint(1) ... funzt
DECL INTERRUPT 1 WHEN $MEASPULSE[1]==FALSE DO iMeasPoint(2) ... funzt nicht

Warum? Vielleicht wegen ==FALSE
.... mit vorheriger Zuweisung
$Cycflag[1]= NOT $MEASPULS.... gings dann doch.

Dem Interruptprogramm werden die Parameter 1 oder 2 übergeben (Fallende/Steigende Flanke)

8 Positionen können gespeichert werden. (mPosMeasPoint[nActCalibPoint,nActSearchDir]

DIE RECHNUNG:

Aus gegenüberliegenden gleichflankigen mPosMeasPoints wird der Coronaradius (Bewegung
von der Platte) und der Coreradius (Bewegung zur Platte) berechnet und in Globalen Variablen gespeichert, damit man je nach späterer Suchrichtung einem Offset ergänzen kann


mPosMeasPoint[Sued] wird der Coronaradius bzw Coreradius  in X addiert
mPosMeasPoint[Ost] wird der Coronaradius bzw Coreradius  in X addiert
Ich hab alles in fCenterSpot geschrieben.

Dann kommt die schon im Forum erwähnte Funktion INV_POS () zum Einsatz:

TOOL_DATA
  • = INV_POS (fCenterSpot)

Rückgabewert ist in diesem Fall ein FRAME.

FERTIG

PS: geht auch mit weniger Bewegung und Punkten, aber wegen der Fehlerkorrektur...
      weniger als 1 mm Toleranz - cool

Gespeichert
Robotnik
Deluxe Member
******
Offline Offline

Geschlecht: Männlich
Beiträge: 466


Geht nicht, gibt's nicht!


WWW
« Antworten #1 am: 13. Januar 2008, 11:07:25 »

Gehört eigentlich zu Erfahrungsberichte - bitte verschieben
Gespeichert
kai_n
Elite Member
*******
Offline Offline

Geschlecht: Männlich
Beiträge: 552


« Antworten #2 am: 14. Januar 2008, 04:06:51 »

So geschehen.
Danke für die Anleitung, die hilft bestimmt noch so manchem!
Gespeichert

If you and DEAD people can read Hex, how many people can read Hex?
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Allgemeines zum Thema Industrieroboter  |  Roboterforum allgemein  |  Erfahrungsberichte (Moderator: IrrerPolterer)  |  Thema: Automatische TCP Vermessung - so gehts! « 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