Koordinatentransformation

  • Hallo


    hab die Aufgabe eine Kamera von Cognex über der Roboterzelle anzubringen und somit den Roboter KUKA KR3 ein Objekt greifen zu lassen. Die Kommunikation hab ich über Serielle Schnittstelle Com3 gedacht. Und jetzt fehlt mir nur noch eine Kalibrierung und Transformation. Hab hierfür so ein Schachbrettmuster unter die Kamera gelegt wodurch automatisch viele Punkte für die Kalibrierung von der Cam erzeugt werden und ich eine Umrechnung von Pixel in mm bekomme. Und auch somit ein Koordinatensystem der Kamera festlege. Jetzt muss ich nur noch wissen wie ich das RoboterKS mit dem der Cam übereinstimme. Habe mir gedacht, ich nehme ein Tool was ich vermessen habe und fahre damit im KameraKS bekannt Punkte an, also einmal den Ursprung vom CamKS dann einen Punkt entlang der X-Achse und Y-Achse. Jetzt kann ich sehen welche Koordinaten der Punkt in der Welt und im CamKS hat. Wie wird daraus aber jetzt ein Neues KS für beide?? Lege ich mir da eine neues BasisKS an???
    Hoffe jemand hat verstanden worum es geht. :hilfe:


    Mfg Stackus

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,


    kann man die Aufgabe nicht so lösen, dass eine Abnahmeposition unter der Kamera definiert wird (optimal liegendes Bauteil auf Abnahmeposition mit Roboter-Werkzeug ausmessen und Kameraanzeige für das optimal liegende Bauteil als Festwert in Variablenstruktur eintragen)? Die Abweichung in Lage und Drehung des aktuellen liegenden Bauteils mit Kamera ermitteln und diese Abweichung zur optimalen Abnahmeposition hinzurechnen.


    Gruß


    PA

  • Ja so ähnlich würde ich mir das auch vorstellen können. Dachte nur es hat jemadn schonmal so eine Calibrierung und Transformation gemacht, eigentlich egal mit welchem Robotertyp.
    Ich würde jetzt auch ein Viereck mit def. Seiten unter den FOV (field of View) legen und die Ecken mit einen vorher vermessenen Werkzeug anfahren. Danach sollte ein Abweichung des vermessenen Objektes zum späteren zufälligen Objekt berrechenbar sein.
    Erst mal sehn ob das so machbar ist, ist bis jetzt sehr theoretisch. :denk:

  • Hallo,


    würde es wie folgt machen.


    1) Du kalibrierst dir mal die Kamera
    2) von deinem Target (nicht verschobene Position) vermesst du dir eine Base z.B Base[2]
    3) von diesem Target schiesst du mit deiner Kamera ein Bild - Referenzbild (muss gleich liegen wie du die Base vermessen hast!!)
    4) Du hast jetzt mal eine Ausgangsbase und ein Referenzbild. Wenn du jetzt verschobene Positionen hast, musst du einen Algorithmus haben, der dir die Abweichung vom Refernzbild zur verschobene Position bestimmt.
    5) Mit diesem "Vektor" kannst du jetzt eine Baseverschiebung machen und dem Roboter sagen wo er hinzufahren hat.


    Die Abweichung die du von der Kamera erhältst speicherst du in ein Frame
    z.B decl frame verschiebung={x 0,y 0,z 0,a 0,b 0,c 0} - in diesem Frame stehen dann deine Abweichungen die du von der Kamera erhältst - Abweichung Refernzbild zum verschobenem Bild.
    So und jetzt machst du eine Baseverschiebung.
    Base_data[3]=Base_data[4]:verschiebung


    Deine Robotergreifposition teachst du in Base[3]


    Hoffe das es für dich verständlich ist


    Mfg
    Rasputin

  • Erstmal Danke für die Hilfe!


    Ich werde das ganze erstmal austesten müssen, aber das mit der Basisverschiebung habe ich mir auch so vorgestellt. Ausser es gibt bei KUKA ein Tool welches mir gleich ein Transformation erstellt.
    Das Programm auf der Kamera mittels In-Sight funktioniert schonmal und gibt mir jetzt die Abweichung vom eingelernten Referenzbild zum verschobenen Bild aus also X,Y,A. Dann schicke ich diese Werte über die Kalibrierung um die Wert in mm zu erhalten. Anschliessen wandle ich die Werte in einen Sting um sie Seriell an Robotersteuerung zu übertragen.
    Jetzt fehlt mit nur noch die Kommunikation mit der Robotersteuerung, Koordinatentransformation und dem Roboterprogramm. :roll:

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden