Drehen einer "Punktewolke" um A6

  • Hallo Robotergemeinde,

    zuerst wünsche ich ein gesundes und erfolgreiches Neues Jahr. Ich habe eine Aufgabe, die ich zwischen den Jahren mal eben lösen wollte. Bisher scheitere ich allerdings. Folgende Situation:

    Ich habe einen KR200 mit KRC2 ed05 Steuerung. Der Roboter hat eine rotationssymmetrische Vorrichtung angeflanscht, an der um jeweils 90° verdreht (Verdrehung um die Vertikale) die gleichen Bewegungen erforderlich sind (Roboter bewegt sich in BASE-KOS). Die Vorrichtung ist so angeflanscht, dass der Roboterflansch horizontal steht (Z-Achse des TOOL-KOS zeigt aus dem Flansch heraus). Aufgrund der Medienführung musste ich die A6 sowohl in + als auch in - auf 210° beschränken (Software-Endschalter).

    Mein Plan war nun die Bewegungn z.B. an der 0°-Position zu teachen und diese über die Drehung des TOOL KOS (um A) auf die anderen Positionen zu spiegeln. Um die Sache zu testen habe ich es mit einem einzelnen Punkt versucht.


    Nun zum Problem:

    Versuche ich eine Drehung im TOOL KOS komme ich damit max. um 90° (abhängig von der Orientierung der Vorrichtung im Punkt P1). Gebe ich größere Offsets ein kommt immer Unerreichbarer Punkt wegen Software-Endschalter, obwohl die Position in beiden Drehrichtungen noch erreichbar wäre. Leider kann ich die Softwareendschalter nicht erweitern, um zu sehen ob es daran liegt.


    Folgende Varianten habe ich getestet. Leider beide mit dem selben Ergebnis:

    Variante 1:

    $BASE = BASE_DATA[5]

    ...

    TOOL_DATA[2].A = 0

    $TOOL = TOOL_DATA[2]

    PTP XP1


    TOOL_DATA[2].A = 90

    $TOOL = TOOL_DATA[2]

    PTP XP1


    ...


    Variante 2:


    ...

    $BASE = BASE_DATA[5]


    Rotation = $nullframe

    Rotation.A = 90


    TOOL_DATA[2] = TOOL_DATA[2] : Rotation

    $TOOL = TOOL_DATA[2]

    PTP XP1


    TOOL_DATA[2] = TOOL_DATA[2] : Rotation

    $TOOL = TOOL_DATA[2]

    PTP XP1

    ...


    Wenn ich diesen einzelnen Punkt mit dem geometrischen Operator "drehe" funktioniert es seltsamerweise ohne Probleme. Leider ist das keine Lösung für die Aufgabe, da ich im Voraus nicht weiß aus wie vielen Punkten die Bewegungsfolge besteht und ich auch diese Weise immer nur einzelne Punkte ansprechen kann.


    Folgendes funktioniert:

    ...

    $BASE = BASE_DATA[5]



    Rotation = $nullframe

    Rotation.A = 90


    $TOOL = TOOL_DATA[2]

    PTP XP1:Rotation


    Rotation.A = 180

    TOOL_DATA[2] = TOOL_DATA[2] : Rotation

    $TOOL = TOOL_DATA[2]

    PTP XP1:Rotation

    ...



    Ich hoffe, ihr versteht das Problem und freue mich auf eure Rückmeldungen. Könnte es an den SW-Endschaltern liegen?!

    Vielen Dank im Voraus.

    VG

    Andreas

  • Schritt für Schritt zum Roboterprofi!
  • XP1 ist deklariert als E6Pos?

    Wenn ja. wirst Du sicher auf eine Seite Probleme bekommen mit Status / Turn Problematik bei PTP verfahren.

    Ergebnis des geometrischen Operators, wie Du ihn benutzt, müsste ein Frame sein. Evtl. dies der Grund, wieso es damit läuft.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo SJX,

    na klar. Das ist es. Danke für den Hinweis. Ich werde es nachher testen, bin aber sicher, dass du richtig liegst.


    Allerdings stellt mich das gleich vor ein neues Problem. Wie wandle ich eine unbekannte Anzahl von Teachpunkten ohne händischen Eingriff in FRAMEs um?


    Danke im Voraus.

  • Moin,

    das von SJX angesprochene Turn-Problem auf A6 kannst Du konstruktiv lösen.

    Verändere Deine Vorrichtung dahingehend, dass alle Arbeitspositionen mechanisch auf der einen oder anderen Seite des Nullstellung derA6 zum liegen kommen. Damit wechselt der Turn dann nicht mehr. Die A6 ist mechanisch unendlich drehend, somit ist das funktionell kein Problem. Die Softwareendschalter zum Schutz der Energiezuführung legst Du dann halt dahin , wo Dein Arbeitsbereich der absoten +/- 210° endet.

    never touch a running system

  • Hallo zusammen,

    ich möchte dieses Thema nochmals aufgreifen, da die Anlage inzwischen um einen zweiten Roboter erweitert wurde und ich beim zweiten Roboter gerne einen Drehwinkelbereich der A6 von 400° zur Verfügung hätte. Ich habe nun versucht den Software-Endschalter auf -400° ($SOFTN_END[6]) und 0° ($SOFTP_END[6]) zu setzen. Das nimmt er mir aber nicht. Es gelingt mir max. auf -358 und -0,1.


    Die 400° sind bei einer rotationssymmetrischen Vorrichtung natürlich schwer nachvollziehbar, aber an dieser Stelle technisch notwendig.


    Daher die Frage:

    Geht es überhaupt 400° nur im "negativen" Bereich der A6 zu drehen (Grund siehe ältere Kommunikation)?

    bzw. warum komme ich nicht unter die -358°?


    Da die Vorrichtung mit Kabeln und Schläuchen versorgt wird, darf die Achse auch nicht endlos drehen.


    Gibt es mögliche Alternativlösungen oder Ansätze?


    Ich danke euch im Voraus für eure Unterstützung.


    VG
    Andreas

  • Die 400° sind bei einer rotationssymmetrischen Vorrichtung natürlich schwer nachvollziehbar, aber an dieser Stelle technisch notwendig.

    Kannst Du dies mal visualisieren durch ein Photo oder Skizze?

    Standardbereich geht halt mal von +358 nach -358 Grad. Innerhalb sind ja 400 Grad locker möglich.

    Wenn es wegen der mechanischen Befestigung ist, dass Du die Vorrichtung zwingend so montieren musst, könnte man den 0-Punkt über einen MAMES-Versatz noch anpassen.


    Softwareversion und Steuerung?

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Moin,

    seitens Software kannst Du die Achse 6 auch auf unendlich drehend stellen. Die Softwareendlagen müssten dann irgendwie anders überwacht werden, in der sps.sub zum Beispiel. Eventuell ist aber mit der "endlosen Achse" ein anderer Einstellbereich der Softwareendlagen möglich?

    never touch a running system

  • Hallo zusammen,

    anbei mal eine grobe Skizze der Vorrichtung.

    Es gibt 2 Anwendungsfälle:


    1. Es wird jeweils in den Winkelpositionen 0, 90, 180 und 270 etwas bearbeitet. Die Bearbeitungsbahn möchte ich in einem Unterprogramm haben, da sich die Bearbeitungswege von Teil zu Teil unterscheiden können. Innerhalb eines Teils bleiben aber an allen 4 Positionen die Bewegungen identisch. Um den Einrichtaufwand zu reduzieren, möchte ich einen Referenzpunkt an einer Winkelposition (möglichst an keiner bestimmten, sondern variabel) aufnehmen (Teachpunkt). Dieser soll dann auf die anderen Winkelpositionen "verdreht" werden. Im einfachsten Fall ist die Bewegung eine Linie definierter Länge entlang der X-Achse des BASE (bei horizontal ausgerichteter Vorrichtung, wie im Bild zu sehen). Da die Vorrichtung aber auch um die BASE Achsen gekippt sein kann, mache ich aktuell die Bewegungen nicht im BASE sondern im TOOL-KOS, das ich dann entsprechend mitdrehe. Das funktioniert durch den Ansatz nur im negativen Achsabereich der A6 zu drehen auch ganz gut.


    2. Durch eine Erweiterung der Anwendung muss die Vorrichtung nun entsprechend Anwendung 1 verfahren werden und zusätzlich noch die 45° Positionen (Striche in der Skizze ohne Winkelangaben) bearbeitet werden. Dabei erfordert der Prozess, dass 405° ohne zurückdrehen angefahren werden (also einmal 360° + 45°). Das soll eine Anwendung des 2. Roboters sein. Da würde ich natürlich gerne auf dem vorhandenen Programm des ersten Roboters (Anwendung 1) aufbauen.


    SJX: Gibt es eine Dokumentation zur Verwendung von MAMES. Das klingt interessant (auch für andere Anwendungen) und kannte ich bisher nur aus der machine.dat ohne es jemals verwendet zu haben. Ggf. lässt sich das dynamisch einsetzen?! Aber was passiert dann mit dem TOOL-KOS, dass ich auch bei der zweiten Anwendung stets mitdrehen muss.


    Ich hoffe ich konnte etwas Klarheit in die Anwendung bringen. Es sind extrem viele Details zu beachten, die ich hier aus Komplexitätsgründen raus lasse und auch nicht das Problem in der Umsetzung darstellen.


    Vielen Dank und viele Grüße

    Andreas

  • Gibt es eine Dokumentation zur Verwendung von MAMES. Das klingt interessant (auch für andere Anwendungen) und kannte ich bisher nur aus der machine.dat ohne es jemals verwendet zu haben. Ggf. lässt sich das dynamisch einsetzen?! …...

    Lässt sich so nicht dynamisch einsetzen. Und löst Dein Problem, so wie Du es zuletzt schilderst, auch nicht.


    Schlussendlich ist Dein Problem ja immer noch die "Status und Turn" - Problematik,

    zusammen mit den nicht zum voraus bekannten Anzahl Teachpositionen im Unterprogramm,

    was dazu führt, dass Du dafür vermutlich ILF's verwendest mit E6Positionen. (Also mit S und T, Standard halt).


    Und dafür ist es sicher toll, wenn Du alles im Minus der 6. Achse hast.


    Den Vorschlag von Ottosieben mit Endlos-Definition der 6. Achse würde da sicher passen.

    Er ignoriert aber definitiv den in den Madas hinterlegten Softwareendschalterwert der 6. Achse, auch wenn Du -400 eingibst.

    Evtl. würde hierzu auch ein Achsspezifischer Arbeitsraum funktionieren. Noch nie ausprobiert mit endloser Achse.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo zusammen,

    vielen Dank für die Beiträge. Ich werde es mit der Endlos A6 mal testen.


    Nichtsdestotrotz bin ich an der "MAMES"-Sache interessiert. Gibt es hierzu Erfahrungen oder eine Dokumentation. In den Dokumentationen die mir vorliegen, finde ich nichts dazu.


    Wie wirkt sich eine solche Verschiebung z.B. auf das TOOL-KOS aus?


    Viele Grüße

    Andreas

  • Nichtsdestotrotz bin ich an der "MAMES"-Sache interessiert.

    $MAMES kennst Du vom Roboter von Achse 2 und 3.

    Ist ein Versatz elektronischer Nullstellung zur Mechanischen Nullstellung (Justagepatrone).

    "Elektronische Nullstellung" des Roboter ist die gestreckte Lage nach vorne raus.

    Da dies schlecht anzufahren ist in einer Anlage, hat man Achse 2 und 3 je um +-90 Grad versetzt.

    Dies ist ja aber bei Dir nicht das Problem, dass die Problematik kommt von der mechanischen Befestigung vorne am Flansch, wie ich das jetzt beurteilen kann.

    Einen hinterlegten Versatz in den Madas wird erst bei Neujustage übernommen!

    Dies ist bei der Roboterkinematik nicht automatisch möglich wie bei externen Achsen. Darum nicht dynamisch.

    Da die 0 Grad Stellung der Achse verschoben wird verdreht sich auch das Tool-KOS um den hinterlegten Wert.


    Lass bitte in Deinem Falle die Finger davon. Kann viele bei der Roboterkinematik nur verwirren. Externe Achsen wäre was anderes.



    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Danke für die Info.

    Für das aktuelle Problem ist es sicher keine Lösung, aber ich habe oft den Fall, dass Vorrichtungen konstruktionsbedingt (es werden viele Bestandsvorrichtungen verwendet, die nicht mehr "angefasst" werden sollen) verdreht auf der A6 liegen. Für diesen Fall hätte das MAMES Potenzial-sofern ich die Sache richtig interpretiere.

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