Beiträge von MOM

    Erste Vermutung:

    Batterie auf dem Main Board hat Geist aufgegeben


    Zweite Vermutung:

    Kontakte der einzelnen Platinen sind verschmutzt (oxidiert9 und sollten gereinigt werden

    (für Reinigung habe ich bei Platinen immer einen Glasfaserradierer verwendet)

    (1) Eine Transformationsmatrix (4x4) besteht aus mehreren Komponenten(Rotationsmatrix, Vektor und Füller (0,0,0,1):

    Rotationsmatrix (mit (Vektor)):

    a11, a12, a13, (X)

    a21, a22, a23, (Y)

    a31, a32, a33, (Z)

    0,0,0,1


    (2) entspricht der Rotationsmatrix und wird durch Transponieren (Zeilen mit Spalten vertauschen) erreicht Vektor und Füller ignorieren):

    a11, a21, a31, a14

    a12, a22, a32, a24

    a13, a23, a33, a34


    (erster Schritt)


    Hintergrund:

    eine Transformationsmatrix gibt die Verschiebung und Verdrehung zwischen Bezugs- und Zielkoordinatensystem an! Durch das Invertieren wird Ziel- und Bezugskoordinatensystem vertauscht

    (Bezugskoordinatensystem: Zeilen; Zielkoordinatensystem: Spalten - jetzt verkehrt rum)


    Berechnung der Verschiebung (vierte Spalte):

    Hier handelt es sich eine Multiplikation einer 3x3 Matrix mit einem Vektor!

    daraus ergibt sich (nach (2) und vierte Spalte aus (1)):

    a14 = -(a11*X+a21*Y+a31*Z)

    a24 = -(a12*X+a22*Y+a32*Z)

    a34 = -(a13*X+a23*Y+a33*Z)

    Es geht ja in die andere Richtung, daher "-"


    Bei der 4.Zeile ändert sich nichts


    Zum besseren Verständnis ist immer eine kleine Skizze hilfreich!


    Ich hoffe, dass ich nicht weiter verwirrt habe

    Mit einer Interbus Master-Slave Karte konnte man das machen. Master setzt einen Ausgang, dieser konnte dann als Eingang im Slaveteil zurück gelesen werden

    "=" ist eine Zuweisung

    "==" ist ein Vergleich


    Da bei deinem Ausdruck eine Zuweisung erfolgt (aber ein Vergleich erwartet wird) stimmt die Anzahl deiner Klammern nicht mehr

    Was für ein neckisches Spiel machen wir hier?


    RobSpace hat sein Problem geschildert und nachgelegt, sonst aber nichts, alle anderen haben nur Vermutungen angestellt (ich wahrscheinlich auch)


    RobSpace

    Was ist eigentlich das Problem?

    Nach deinem "-" in Post #3 vermute ich, dass es hier um eine Inverse handelt!

    Somit:

    Alle Karten auf den Tisch

    Ich muss schon sagen, dass ABB wesentlich strukturierter vorgeht...

    Das glaube ich nicht!

    Mathematik ist unabhängig von den Roboterherstellern!


    Für die Framearithmetik müssen die Frames in Transformationsmatrizen umgerechnet werden und dann gilt, dass die Reihenfolge der Matrizenmultiplikation (nicht kommutativ) eingehalten werden muss!


    Falsche Reihenfolge - falsche Ergebnisse (es gibt auch hier Ausnahmen)


    Daher einen kleinen Tip(p):


    Koordinatensysteme nicht mit Namen, sondern einem Index versehen

    anstatt Kwelt K0 verwenden

    anstatt Kkorr K1 verwenden


    die Transformationsmatrix hier wäre dann T01, eine zweite wäre dann T12 (von K1 nach K2)


    Überleg mal, bei Rückfragen stehe ich gerne zu Verfügung (außerdem gibt es bereits genügend Beispiele im deutschen und englischem Forum)

    In deiner KSS Installations CD (deswegen meine vorige Frage) gibt es auch dieses Verzeichnis:

    ..\INTERNAT\TOOLS\KUKALOGVIEWER\

    Hier findest Du den externen Logviewer. Mit dem kannst Du Logs aus KRCDiags extrahieren und anzeigen lassen (alte Fehlermeldungen - evtl aus Archiven).


    Kurze History:

    unter Win95 und allen KSS Versionen (V1. bis V4) wurden die Logmeldungen in einer Access Datenbank gespeichert, aktuelle Logmeldungen konnten nur mit dem internen Logviewer in eine Textdatei, allerdings nur in der aktuell in der BOF eingestellten Sprache exportiert werden.


    Ältere Logmeldungen konnten nur durch direktes Lesen der Datenbank (passwortgeschützt) ausgegeben werden (ohne Übersetzung, nur mit Sprachschlüssel).


    Beim Umstieg auf WinXP wurde der Windows Log Mechanismus (eventlogs - .evt) verwendet. Ab hier war dann eine Anzeige der aktuellen Meldungen innerhalb der Bedieneroberfläche für aktuelle Meldungen bzw. über den externen Logviewer für ältere Meldungen möglich, allerdings auch mit Problemen:

    Teilweis konnte beim Herunterfahren der Steuerung nicht mehr alle Daten geschrieben werden und somit war die evt Datei nicht mehr lesbar. Für WinXP gab es Tool (Fixevt.exe); hiermit wurde das Leseproblem behoben (allerdings gibt es diesen Tool nicht mehr)


    Laut Aussage von einigen Moderatoren soll der ultimative Logviewer (Version 8.7) über XPert heruntergeladen werden können. Dieser funktioniert ab KSS V5.* bis KSS V8.7.

    Probiere doch mal 0 (dann wird $NULLFRAME ausgewählt)


    Du brauchst nur in das Feld mit W und B tippen. Es geht dann ein Fenster auf und dann entsprechendes Werkzeug auswählen

    Der Doppelpunktoperator ist einfach gesprochen die Multiplikation zweier Matrizen:

    m = m1*m2 (Reihenfolge darf nicht vertauscht werden; außer bei Einheitsmatrix)


    mit Doppelpunktoperator würde hier geschrieben:

    m = m1:m2


    Da dein pOffset als A= B = C = 0 hat, heißt das, dass bei pOffset als Rotatationsmatrix eine Einheitssmatrix steht und somit keine Orientierungsänderung stattfindet, deine Werte werden auf das

    XStartpos angewendet und bewirken daher eine nicht gewünschte Verschiebung (B und C ungleich 0)


    DECL E6POS XStartpos={X 529.990,Y -34.7600,Z 407.010,A 0.0,B -24.1200,C 180.000,S 2,T 10,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

    mit

    XStartpos.x = XStartpos.x + pOffset.x und

    XStartpos.z = XStartpos.z + pOffset.z


    sollte es funktionieren, da hier im Gegensatz zum Doppelpunktoperator die Orientierung von XStartpos keine Rolle spielt


    Kurz zusammengefasst:

    Doppelpunktoperator multipliziert nicht nur die Rotationsmatrizen, sondern bezieht auch die korrigierten Offsets mit ein


    die direkte Zuweisung (z.B. XStartpos.x = XStartpos.x + pOffset.x) addiert diese in die tatsächliche Richtung auf