Base aus 3 Positionen berechnen

  • Hallo Zusammen,


    ich suche eine Lösung um ein Base aus 3 Positionen (Koordinaten) zu berechnen.
    Bei ABB gibt es einen schönen Befehl um dies recht einfach zu berechnen "DefFrame (X1,X2,Y\origin:=1)".
    Welche Möglichkeiten habe ich bei Kuka ?


    Hintergrund ist, das ich ein Vermessungsprogramm in Process Simulate vorbereiten möchte, das dann auf der Baustelle nur noch nachgeteached werden muss (Spitze-Spitze, X1, X2, Y). Abschließend wird dann nur noch das Base berechnet und fertig kalibriert ist die Geschichte.


    Grüße aus dem Vogelsberg
    Michael

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Michael,
    ich habe von einem Kuka-Kollegen ein paar gute Programme bekommen. Da ist auch eine Base-Berechnung dabei. Die habe ich schon des öfteren verwendet.
    Die Funktion nennt sich: CalcBase
    Drei Punkte und eine Base werden dafür benötigt.
    Gruß Paulaner

  • Hallo Paul,
    das ist genau das Richtige. Sind auch noch andere schöne Sachen dabei :)
    Diese Version von CalcBase hat auch IN-Parameter bei DEFFCT.
    Hast Du auch noch ein Beispiel für einen Aufruf der Funktion für die KRC4 ?
    Bei dem KUKA bin ich halt nicht so fit, bin mehr ABB lastig.


    Beste Grüße
    Michael

  • Aufruf sieht so aus:


    ;BASE_DATA[1] ist koordinatensystem station xxxx
    iErgebnis=CalcBase (XPos_X1,XPos_X2,XPos_Y,BASE_DATA[1])


    iErgebnis ist eine INT Variable. Damit kann das Ergebnis geprüft werden.

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Moin Zusammen,


    habe Probleme mit der Funktion CalcBase "iErgebnis=CalcBase (XPos_X1,XPos_X2,XPos_Y,BASE_DATA[1])", ist anscheinend bei der KRC4 nicht mehr lauffähig, bekomme mehrer Fehlermeldungen.

    Möchte jetzt eine andere Variante von CalcBase testen, mir ist nur nicht ganz klar wie ich sie im Vermessungsprogramm aufrufe.

    Folgende Daten habe ich:


    XPos_X1 --> Base-Ursprung X1, E6Pos wurde online vermessen

    XPos_X2 --> X-Ebene, E6Pos wurde online vermessen

    XPos_Y --> Y-Ebene, E6Pos wurde online vermessen

    BASE_DATA[1] - Ziel der Berechnung


    Hier die Funktion:


    DEFFCT FRAME CALCBASE (PT_IN_WORLD[]:OUT)
    FRAME PT_IN_WORLD[], NEW_BASE
    INT I
    REAL P_X[3], P_XY[3], P_Y[3], P_Z[3], T[3,3], P1P2, P1P3
    P_X[1]  = PT_IN_WORLD[2].X - PT_IN_WORLD[1].X
    P_X[2]  = PT_IN_WORLD[2].Y - PT_IN_WORLD[1].Y
    P_X[3]  = PT_IN_WORLD[2].Z - PT_IN_WORLD[1].Z


    NORM_VEK (P_X[], 3)

    P_XY[1]  = PT_IN_WORLD[3].X - PT_IN_WORLD[1].X
    P_XY[2]  = PT_IN_WORLD[3].Y - PT_IN_WORLD[1].Y
    P_XY[3]  = PT_IN_WORLD[3].Z - PT_IN_WORLD[1].Z


    NORM_VEK (P_XY[], 3)


    KREUZ_PROD (P_X[], P_XY[], P_Z[])


    NORM_VEK (P_Z[], 3)


    KREUZ_PROD (P_Z[], P_X[], P_Y[])


    For I=1 To 3
    T[I,1] = P_X[I]
    T[I,2] = P_Y[I]
    T[I,3] = P_Z[I]
    Endfor
    MAT_TO_RPY (T[,], NEW_BASE.A, NEW_BASE.B, NEW_BASE.C)


    NEW_BASE.X = PT_IN_WORLD[1].X
    NEW_BASE.Y = PT_IN_WORLD[1].Y
    NEW_BASE.Z = PT_IN_WORLD[1].Z


    Return (NEW_BASE)
    ENDFCT


    Habe das Programme mal im Anhang.


    Schonmal vielen Dank für die Hilfe.


    Gruß

    Michael

  • Hallo Michael,

    wir haben die Routine umgeschrieben beim Wechsel von KRC2 auf KRC4.

    Musst nur txt in src ändern, sonst darf ich sie nicht einfügen hier im Forum.


    Gruß

    Dateien

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

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