Hallo,
habe ein Problem mit dem Move Joints-Befehl:
Eine Pipette (einfaches zyl. Bauteil, keine inv. Kinematiken, 6 programmierbare Joints) soll ein im Weltkosy liegendes anderes Bauteil grabben und an seinen vorgesehen Ort bringen (Pos. u. Orient.).
Grabben, "Hinfliegen", Ausrichten, Release --> das alles funktioniert soweit.
Aber leider nur, wenn die Orientierung des Bauteils im Raum mit nur einer Achsdrehung angegeben wird.
Pos. u. Orient. der Bauteile einer Baugruppe werden über eine .txt-Datei eingelesen. Die Werte die dort stehen, sind die Absolutwerte der Bauteile im fertigen Einbauzustand, entnommen aus IGRIP aus den Wertangaben für translation und rotation.
Die 6 Werte werden einem Vektor (z.b. "endlage") zugewiesen, die Bewegung dann ausgeführt über
MOVE JOINTS TO endlage
SIM_UPDATE
Erstaunlicherweise muss, damit sich auch das Koordinatensystem mitdreht (das versteh, wer will), noch den Befehl anhängen
MOVE JOINT 1 BY 0.0 NOSIMUL (der Joint ist frei wählbar)
Anschließend fliegt die Pipette zum Weltkosy zurück und holt sich das nächste Bauteil.
Beispiel: Block - Pos (25.0, 25.0, 10.0), Orient (0.0, 45.0, 0.0)
--> grabben, hinfliegen, loslassen, dann drehung zurück (0, -45, 0), dann Rückflug mit (-25, -25, -10). Nächstes Bauteil ...
Gegenbeispiel: Block - Pos (25.0, 25.0, 10.0), Orient (110.0, -45.0, 95.0)
--> nach dem Hinfliegen und loslassen ist das Bauteil zwar am richtigen Ort, aber nicht in der richtigen Orientierung. Klar, dass die Pipette bei der Rückdrehung (-110, 45, -95) und anschließendem Rückflug nicht im Weltkosy-Ursprung landet, sondern irgendwo in der Pampas. Alle nachfolgenden Bauteile natürlich auch :-(
Gebe ich die Orientierung aber von Hand ein, dann sitzt das Bauteil absolut korrekt.
Hat da irgendjemand eine Idee?
Ich verzweifle bald.
Bin für jeden Tipp dankbar.
Grüße,
netdisaster
[Diese Nachricht wurde von netdisaster am 08. Nov. 2005 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP