Bewegungsfolge am Bahnobjekt

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi zusammen.

Habe mir die Doku vom Siemens zu diesem Thema kreuz und quer durchgelesen, zuerst von vorne nach hinten, dann von hinten nach vorne, dann von rechts nach links und dann von links nach rechts. Danach habe ich einen Pitch, Roll, und Yaw definiert, und unter diesem Betrachtungswinkel nochmal schräg gelesen.

Bin daraus aber net schlau geworden.

Ich kann ja einem externen Bewegungswert folgen, zum Beispiel einem Conveyor-Belt. Wunderbar. Wenn ich jetzt an die Frame-Transformation denke. Und ich habe ein imaginäres Förderband, was einfach streng geradeas im Raum ausgerichtet ist, und seinen Bezugspunkt (Nullbeginn) am Fußpunkt meiner Roboterkinematik hat. Und die Frametransformation ist 1:1, also ohne Yaw, Roll und Pitch und andere Unanständigkeiten.

Wo meint dann der Roboter hinfahren zu müssen ? Wovon geht er dann aus, wo guckt bei ihm dieser Basis-Vektor dann hin ? Ist es dann seine X-Achse ?
 
Servus,

Bewegt sich das Förderband in die positive Richtung (X+) und ist keine Verschiebung zwischen OCS und BCS, dann bewegt sich der Roboter ebenfalls in X+.
Für Deltakinematik und Conveyor Tracking verwendete ich damals die Handling Advanced Library mit dem „Einfachsegment“.

Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus,

Bewegt sich das Förderband in die positive Richtung (X+) und ist keine Verschiebung zwischen OCS und BCS, dann bewegt sich der Roboter ebenfalls in X+.
Für Deltakinematik und Conveyor Tracking verwendete ich damals die Handling Advanced Library mit dem „Einfachsegment“.

Danke. Heißt für mich, um das Objekt in der Y-Richtung mitfahren zu lassen, müsste ich eine Frametransformation mit 90° Drehung um die Z-Achse vorgeben ?
 
Servus,

Ja genau, du kannst auch die Funktion „Einmessen“ am Bahnobjekt verwenden da kannst du 3 Punkte im BCS anfahren und dafür Positionen im OCS vorgeben, dann übernimmt der Scout die Berechnung der Frames.
Ist in Handbuch von „Handling Advanced“ sehr gut beschrieben. Da ist auch ein Beispiel für Conveyor Tracking mit drin.

Edit: Es wird nicht das Objekt mitgefahren lassen sondern der TCP vom Roboter. Dieser ist immer der Ausgangspunkt vom OCS.
Auf das BCS bezieht sich die Frame.

Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
Zuletzt bearbeitet:
Also dies das.

Wenn ich einen Befehl absetze:

Code:
                myRetDINT :=    _setPathObjectOcs   (
                                                    pathObject      := toPath,
                                                    ocsNumber       := 1,
                                                    trackingIn      := toFollow, // TO#NIL,
                                                    ocsSettingType  := USER_DEFAULT, //DIRECT , //
                                                    x               := REAL#0.0,
                                                    y               := REAL#0.0,
                                                    z               := REAL#0.0,
                                                    roll            := REAL#0.0,
                                                    pitch           := REAL#0.0,
                                                    yaw             := REAL#90.0,
                                                    nextCommand     := IMMEDIATELY,
                                                    commandId       := _getCommandId()
                                                    );

Wird er fehlerfrei übersetzt. Dabei sind sowohl toPath als auch toFollow in meinem Beispiel Bahnobjekte. Wo gebe ich das denn an, daß ich der X-Achse folgen möchte, und nicht etwa der Y-Achse ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also als „ocssettingtype“ musst du DIRECT benutzen. Da bei „User Default“ der Frame aus den Vorbelegungswerten des Bahnobjekts genommen wird und somit deine Parameter wie „Yaw“ usw. nicht wirksam sind.

Das OCS (Objektkoordinatensystem) auf einem Förderband sieht so aus:
Stell dir vor du stehst hinter deinem Förderband und wenn du es einschaltest verfährt es nach vorne, diese Richtung ist X+.
Wenn es Rückwärts fährt ist dies X-.
Links vom Förderband Zentrum ist Y+ und rechts ist Y-. Z+ ist nach oben und Z- nach unten. Du folgst also der X Richtung des OCS mit deinem TCP (Tool Center Point).


Wie gesagt, bezieht sich der OCS Frame auf deinen TCP. Je nachdem wie dieser Frame eingestellt ist verfährt der TCP wenn sich das OCS in X+ bewegt in die X, Y oder sogar in Z Richtung.

Wenn ich morgen zeit hab kann ich mal ein bisschen Code und ein Beispiel posten.

Mit welcher Kinematik möchtest du Conveyor Tracken ?
Anbei noch ein Link von meinem damaligen Beitrag vielleicht kannst du es dir mit dem Bildschema besser vorstellen.
Ich habe aber dann kurz darauf mit der Handling Advanced Bibliothek angefangen. Und nicht mehr mit den Systembefehlen.



https://r.tapatalk.com/shareLink?sh...-forum.de/showthread.php?t=92672&share_type=t


Edit: toFollow kann auch eine Positionierachse sein.

Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
Danke. Ja, kannst gerne noch hinzufügen wie du es geplant / umgesetzt hast.

Die AdvancedMotion Bibliothek ist sehr umfangreich, und ich bin mir nicht sicher, ob ich die CPU mit diesem Rechenaufwand belasten möchte. Hinzu kommt, daß ich die Schrittweiterschaltung und Teileabfragen eigentlich auf der CPU handeln möchte.

DIRECT oder USER_DEFAULT ist eigentlich schnuppe, wenn USER_DEFAULT korrekt definiert ist. Mich interessiert jedoch folgendes - lt. Handbuch kann ich nur eine technologische Achse, oder zum Beispiel einen externen Geber, als Quelle für den Bewegugsfolge-Leitwert angeben. Jetzt in meinem Beispiel hat der Befehl einfach ein ganzes Bahnojekt am trackingIn Interface akzeptiert. Frage, welche Achse von diesem Bahnobjekt nimmt er denn für die Bewegungsfolge ? Ich will beispielsweise, daß mein Bahnobjekt der Achse Y von dem Folgeobjekt folgt.

In den Verschaltungen des übergeordneten Bahnobjekts kann ich ebenfalls ein PathObject bei Bewegungsfolge angeben, allerdings muss ich dort eine konkrete kartesiche Achse auswählen. Nimmt der Befehl _SetObjectOCS() einen Bezug auf diese Verschaltung, oder wie arbeitet er ?
 
Zuletzt bearbeitet:
Danke. Ja, kannst gerne noch hinzufügen wie du es geplant / umgesetzt hast.

Die AdvancedMotion Bibliothek ist sehr umfangreich, und ich bin mir nicht sicher, ob ich die CPU mit diesem Rechenaufwand belasten möchte. Hinzu kommt, daß ich die Schrittweiterschaltung und Teileabfragen eigentlich auf der CPU handeln möchte.

DIRECT oder USER_DEFAULT ist eigentlich schnuppe, wenn USER_DEFAULT korrekt definiert ist. Mich interessiert jedoch folgendes - lt. Handbuch kann ich nur eine technologische Achse, oder zum Beispiel einen externen Geber, als Quelle für den Bewegugsfolge-Leitwert angeben. Jetzt in meinem Beispiel hat der Befehl einfach ein ganzes Bahnojekt am trackingIn Interface akzeptiert. Frage, welche Achse von diesem Bahnobjekt nimmt er denn für die Bewegungsfolge ? Ich will beispielsweise, daß mein Bahnobjekt der Achse Y von dem Folgeobjekt folgt.

In den Verschaltungen des übergeordneten Bahnobjekts kann ich ebenfalls ein PathObject bei Bewegungsfolge angeben, allerdings muss ich dort eine konkrete kartesiche Achse auswählen. Nimmt der Befehl _SetObjectOCS() einen Bezug auf diese Verschaltung, oder wie arbeitet er ?


Ja die Handling Advanced Bib. ist sehr CPU lastig, vorallem noch in verbindung mit der CTC (Computed Torque Control) Bib.
Die möglichkeiten die man aber mit den Basic Segment hat sind meiner Meinung nach sehr gut und verständlich umgesetzt worden.


Dass der Befehl ein Bahnobjekt am trackingIn annimmt habe ich nicht gewusst, hast du es schonmal auf die Steuerung geladen und den Befehl ausgeführt ? Evtl. Kommt es dann zu einer Fehlermeldung. Ich habe als Leitwerte Förderbänder gehabt, welche eben nur einen Positionswert ausgeben.

Um dir besser folgen zu können könntest du mal eben deinen Anwendungsfall genauer beschreiben.
Welche Kinematik ? Was möchtest du wie Tracken ?
Wenn es nur ein Förderband ist kannst du die Koordinaten des OCS in dieser Grafik sehen welche ich in meinem Beitrag gepostet habe.
Der Leitwert ist immer entlang der X Achse des OCS. Je nachdem wie deine Kinematik verdreht ist, Einstellungen des BCS im Reiter „Verschiebung“ verfährt deine Kinematik mit dem Förderband in X oder Y mit.


Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
Zurück
Oben