Roboterprofis für Ihren Erfolg
Roboterprogrammierer auf Stundenbasis engagieren
jetzt Preise und verfügbare Roboterprogrammierer anfragen

Autor Thema:  DVT Kamera mit einem RV-3SB  (Gelesen 1173 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline SimonMicha

  • Einmalposter
  • *
  • Beiträge: 1
  • Bewertet: 0
DVT Kamera mit einem RV-3SB
« am: 05. Dezember 2008, 11:09:14 »
Hallo,
wir stehen vor folgendem Problem. Und zwar haben wir den Projektauftrag in der Schule den Roboter S-Series RV-3SB in verbindung mit einer Kamera zu programmieren.
Wir wollen es so gestalten, dass wir mit der Kamera einen bestimmten bereich überwachen und dort dann irgend wo einen kleinen Zylinder positionieren können. Die Kamera soll diesen Zylinder erkennen und die position dem Roboter mitteilen.

Kamera: Cognex DVT 510
Software: Framework 2.7

Wir sind jetzt soweit das wir über den Sensor "Objektfind" die Position erkennen und in die Koordinaten des Roboters transformieren. Zusätzlich bekommen wir es hin dass wir die X und Y koordinaten per Datalink ausgeben können. sie werden uns im Terminal angezeigt.

Da keiner bei uns in der Schule irgend wie ne ahnung davon hat hoffen wir hier hilfe zu bekommen.
Das ganze hat schonmal funktioniert nur dann wurde was verändert und es lief nicht mehr, daraus haben wir noch folgendes cosimir Programm.
Nur leider funktioniert das nicht in zusammenhang mit unserer Kamera konfiguration.

Jetzt hoffen wir, dass ihr uns das programm einmal Kommentieren könnt und uns evtl mitteilen könnt wie der Ausgabe String der Kamera gestaltet werden muss.

Anbei einmal das schon vorhandene Cosimir Programm:

10 SPD 1000
20 ACCEL 100,100
30 JOVRD 100
40  CLOSE #1                  'close connection 1
50  DLY 0.25             'delay 0.25 s
60  CLOSE #2             'close connection 2
70  OPEN "COM2:" AS #1           'open connection 1 on COM3:Ethernetconnection to DVT-camera(DataLink) Port 10002
80  OPEN "COM3:" AS #2          'open connection 2 on COM4:Ethernetconnection to DVT-camera(SystemDriver)Port 10003
90 MPOS = 1
100 '------------------------------------------------------------------------------
110 ' Communication with camera
120 '------------------------------------------------------------------------------
130      *SCHLEIFE
140   PRINT #1,"#PSNDeckel";CHR$(13)     
150   PRINT #1,"#PI-2";CHR$(13)         
160 DLY 1
170   PRINT #1,"#YI";CHR$(13)           
180 INPUT #2,MFOUND
190 IF MFOUND=0 THEN *ENDE
200   INPUT #2,MDATAX                   
210 INPUT #2,MDATAY
220 PPICK.X=MDATAX
230 PPICK.Y=MDATAY
240 MOV PPICK,-40
250 MVS PPICK
260 DLY 0.5
270 HCLOSE 1
280 WAIT M_IN(901)=1
290 MVS PPICK, -40
300 MOV PPLACE,-40
310 DLY 0.5
320 MVS PPLACE
330 HOPEN 1
340 WAIT M_IN(900)=1
350 *ENDE
360 END

Hoffe ihr könnt uns Helfen!
schonmal im Voraus    :danke:


 
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


Mitsubishi Roboterservice
Beratung, Verkauf, Inbetriebnahmen, Wartung und Reparatur von Mitsubishi Robotern
ROBTEC GmbH ist Offizielles Robotercenter von Mitsubishi Electric

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1116
  • Bewertet: +16
Re: DVT Kamera mit einem RV-3SB
« am: 05. Dezember 2008, 13:02:11 »
Hallo,

zu der Kamera kann ich leider gar nichts sagen, an dem Roboterprogramm sind allerdings ein paar Sachen auffällig.

Das Roboterprogramm sendet seine Daten an eine andere Stelle, als die woher es seine Eingaben bekommt. Da muss es also Kameraseitig noch eine Verbindung geben.

Wie genau die Verbindungen sind, hängt auch noch von den Roboterparametern NETPORT und COMDEV ab. Auffällig ist in diesem Zusammenhang, dass die beiden OPEN-Befehle COM2 und COM3 öffnen, in den Kommentaren aber von COM3 und COM4 die Rede ist.

Dann hat das Programm drei INPUTs, es erwartet also drei Strings, nicht einen. Wie diese Strings genau aussehen müssen, kann man so auch nicht exakt sagen, weil das u.a. von den Parametern CPRCE13 und evtl. auch CTERME13 abhängen kann.


Gut, nachdem das Programm also etwas irgendwohin gesendet hat, erwartet es eine Zeile, in der eine Zahl steht.

Also etwas in der Form

1<CR>
oder

PRN1<CR>
Das hängt von den Parametern ab.

(Ich schreibe hier <CR> wenn ich das Zeichen mit dem Code 13 meine.)

Ist die Zahl, die geschickt wurde, ungleich 0 geht es weiter, sonst ist das Programm zuende.

In ersterem Fall wird dann auf zwei weitere Zeilen gewartet, die z.B. so aussehen könnten:

123.4<CR>
567.8<CR>

oder

PRN123.4<CR>
PRN567.8<CR>


Warum man das so umständlich macht und nicht einfach nur eine Zeile schickt, kann ich nicht sagen, vielleicht kann es die Kamera nicht besser.

Als Optimierung würde ich jedenfalls vorschlagen, die Zeilen 200 und 210 wegzulassen und die 180 in

180 INPUT #2,MFOUND,MDATAX,MDATAY
zu ändern.

Dann könnten die Daten so aussehen

Nichts gefunden:

0,0,0<CR>
Gefunden

1,12.05,-2.74<CR>

Vorausgesetzt die Kamera kann so etwas.


Grüße

  Urmel

« Letzte Änderung: 05. Dezember 2008, 13:03:51 von Urmel »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline fallon

  • Forum Mitglied LV 10
  • *
  • Beiträge: 92
  • Bewertet: +2
Re: DVT Kamera mit einem RV-3SB
« am: 10. Dezember 2008, 09:40:48 »
Wenn dir die Kamera die Koordinaten auf einen Terminalprogramm anzeigen kann, ist die eigenliche Arbeit getan. Folgende Vorgehensweise hat sich dabei bewährt:

Stelle den Zylinder an einen zentralen Punkt, teache den Roboter auf diese Position. Dieses ist die Referenzposition. wenn du nun eine veränderte Positon findest, einfach die Vektoränderung ausrechnen.

Ein Beispiel:
Referenposition    - (+100.00,+50.00,+250.00,+0.00,+0.00,+0.00)
Erkannte Position - (+150.00,+150.00,+250.00,+0.00,+0.00,+0.00)

Das heißt, du hast eine Verschiebung in x + 50mm, und Y +100mm

Bevor du einen Gegenstand greifst, hast du ja eine Anfahrposition , glaube PPick,-40. In PPick rechnest du die Verschiebung hinein, das war alles.

Die Kamera muss nur immer gleichartige Ausgabestrings erzeugen, zb xxxx,yyyy,zzzz,aaaa,bbbb,cccc.  Das kannst du nun im Robbi in seine einzelteile zerlegen.

  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


xx
Positionsdaten und mit einem wert vergleichen

Begonnen von Weberman

17 Antworten
2416 Aufrufe
Letzter Beitrag 29. August 2014, 08:13:36
von Urmel
xx
Verwendung des MELFA BASIC 4 Befehls: HCLOSE und einem Parameter

Begonnen von MatzeBreisch

3 Antworten
1611 Aufrufe
Letzter Beitrag 14. November 2008, 13:11:58
von MatzeBreisch
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap