Arbeitsraumüberwachung

  • Hallo zusammen,


    ich habe einen KR150-L110-2 mit KRC2 Steuerung (Mein erster 6-achs Roboter *freu*. Bisher immer nur 4-achs Palletierer gehabt). Daran ein Werkzeug welches 900mm lang ist. Als TCP habe ich das Ende des Werkzeuges definiert
    (--> TOOL_DATA[1]={x 0.0,y 0.0,z 900.0,a 0.0,b 0.0,c 0.0})


    Im Arbeitsbereich des Roboters gibt es einen quarderförmigen Arbeitsraum, in welchem ein anderer Linearantrieb mit Handlingswerkzeug verfährt. Ist der Roboter in diesem Arbeitsraum, soll ein Ausgang gesetzt werden, um den anderen Linearantrieb zu stoppen, etc. . OK --> Das ist alles noch kein Problem. ;)


    Jetzt zu meinem "Problem":
    Angenommen das Werkzeug ist parallel zum Boden und zeigt vom Roboter weg. Dann kann ich über meine Arbeitsraumüberwachung feststellen, ob der TCP im zu überwachenden Arbeitsraum ist. Drehe ich das Werkzeug jetzt aber nach innen, das es (immer noch parallel zum Boden) zum Roboter zeigt, kann es sein, das der TCP außerhalb meines Arbeitsraumes ist, aber das Handgelenk innerhalb des zu überwachenden Arbeitsraumes. Das ist schlecht und darf nur sein, wenn auch dieser Fall als Arbeitsraum-"verletzung" erkannt wird. Leider habe ich nicht den Platz, um den Arbeitsraum so weit vorzuziehen, das unabhängig von der Stellung der Handgelenksachsen der Arbeitsraum sicher überwacht wird.


    Zusammengefasst folgende Frage:
    Gibt es eine Möglichkeit den TCP und gleichzeitig das Handgelenk arbeitsraumtechnisch zu überwachen? Oder wie könnte man das anders machen?


    Bin für jede Anregung dankbar!


    Gruß HarryH

  • Schritt für Schritt zum Roboterprofi!
  • Moin,


    nen achsspezifischen Arbeitsraum, hm... Man könnte sich sicherlich was basteln. Aber das ist ja auch Fummelkram :down:


    Ich möchte nochmal die Frage stellen:
    Gibt es eine Möglichkeit den TCP und GELEICHZEITIG das Handgelenk arbeitsraumtechnisch zu überwachen?


    Gruß HarryH

  • ....moin moin,


    man könnte ja in Abhängigkeit der Werkzeugstellung in Achse 4, 5 und 6 mit Axworkspace arbeiten.
    Darauf hin dann den Workspace Mode wechseln Inside/Outside.
    Oder zwischen unterschiedlichen Workspaces wechseln

    Die Abnahme von GOTO Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • Hallo zusammen,


    wenn es möglich ist, 2 TCPs gleichzeitg bezüglich des Arbeitsraums zu überwachen, dann hätte ich eine Lösung:


    TCP 1 ist der normale Werkzeug TCP
    TCP 2 liegt genau in der Drehachse von Achse 5. d.h bei jeder Handgelegkstellung liegt dieser TCP im Handgelenk.


    Damit müsste sich doch die Position des Handgelenks im Arbeitsraum überwachen lassen.


    mfg
    Andi

  • Hi zusammen,


    hatten aktuell fast identisches Problem (Tool ca 900 mm in Z+).


    Leider stellte sich nach längerem Probieren und Studieren heraus, daß nur ein Tool "gleichzeitig" überwacht werden kann und zwar immer nur das im Programm aktuell verwendete. :???:


    Vermute das ist zu Rechenintensiv noch n Tool zu überwachen, aber meiner Meinung nach macht in den meisten Fällen erst dann eine kartesische Arbeitsraumüberwachung Sinn.


    Wir hatten leider keinen Meter Platz und haben nach altbewährter Methode, vor Bewegungen in den Arbeitsraum, Ausgangssignale gesetzt.


    :gutenacht:

  • Noch ein Versuch:


    IDEE:
    Wie wärs, wenn man die Koordinaten des aktuellen Punkts der A5 mit den Winkelfunktionen+Robotermaße berechnet. Das wären in Summe erst mal 4 Rechenoperationen (Achsen 1 bis 4 sind nur relevant).


    Dann vergleicht man diesen Punkt, ob er sich in oder außerhalb eines kubischen Raumes befindet. Den hat man natürlich vorher mathematisch beschrieben. Die ganzen Berechnungen und Vorgaben sind bezüglich des Welt-KS.


    UMSETZUNG:
    Man könnte doch in der SPS.sub eine Routine programmieren, die das überwacht (aktuelle Achswinkel können ausgelesen werden).


    Über einen Zähler könnte man auch festlegen, dass diese Routine nur alle 20 SPS-Zyklen ausgeführt wird. Dann wäre die ganze Sache auch nicht so Rechenintensiv. Oder die Berechnung wier über ein internes bzw. externes Signal gestartet.


    Leider bin ich kein KUKA-freak, deshalb ist das ganze erst mal nur Theorie!!! :kopfkratz:


    mfg und schönes WE
    Andi

  • Tja, scheinbar kann man nur den aktuell verwendeten TCP überwachen. Das hatte ich auch schon vermutet und in der Doku auch nichts anderers gelesen.
    Danke nochmal für alle Anregungen zu dem Thema! :danke:


    andi
    Oh ha, deine Idee is ja was für Mathematiker und für solche die sehr viel Zeit haben :biggrins: Trotzdem ein interessanter Versuch. Aber beim Lesen deines Vorschlags fiel mir ein, das doch bekannt ist in welchem Punkt das Handgelenk (Drehachse Achse 5) liegt. Das ist bei einem KR150 250mm in negativer Z-Richtung vom Toolkoordinatensystem (Vorausgesetzt das Tool-KS wurde nicht verdreht). Jetzt muss man "nur" noch aus dem besagten Punkt und der Orientierung des Tool-KS den Punkt im Weltkoordinatensystem umrechnen. Und dann kann man den Punkt ja über die SPS.sub überwachen. ... Aber das hört sich auch nicht so einfach an.


    Oder weiß einer wie man einen Punkt im Tool-KS auf Welt-Koordinaten umrechnen kann?


    Gruß HarryH


  • Ging die Umrechnung zwischen verschiedenen Koordinatensystemen nicht einfach mit dem Doppelpunkt-Operator?


    Ja, im Prinzip schon, bei der Berücksichtigung des $TOOL-Frame ist zwar für die Berechnung der sog. inverse FRAME erforderlich. Solange im Tool die Komponenten A,B und C auf 0 stehen (wie bei HarryH), ist dessen Berechnung aber relativ einfach.
    Das eigentliche Problem ist meiner Meinung, dass eine solche 'selbstgebaute' Arbeitsraumüberwachung in der sps.sub stehen müßte. Die Berechnung braucht dabei lesenden Zugriff auf $TOOL, $BASE und $POS_ACT. Die ersten beiden dieser Systemvariablen sind nur gültig, wenn ein Programm angewählt wird, $POS_ACT ist z.B. dann ungültig, wenn ein Programm angewählt wird bis zum Start der ersten Bewegung (i.d.R. auf HOME). Beim Lesen einer ungültigen Variable in der sps.sub wird der SUBMIT-Interpreter gestoppt, was meines Wissens nicht unterbunden werden kann. Und ein durch einen ungültigen befehl gestoppter SUBMIT-Interpreter ist nicht wirklich gut...

  • Ich brauchte in der SPS auch ma die $pos_act, die schnellste Methode herauszufinden ob die gültig gesetzt ist ist mit $on_path. $on_path ist unter Umständen auch ohne angewähltes Programm TRUE, aber nie wenn $pos_act nicht gelesen werden kann.

    If you and DEAD people can read Hex, how many people can read Hex?

  • Hallo,


    wenn man den Arbetsraumüberwachungsmodus auf 'inside_stop (in verbotenen Bereich reingefahren führt zum Stop) setzt, aber nur dann, wird automatisch der Drehpunkt A4/A5 überwacht, weil ein Automobilhersteller das mal haben wollte.In dem Fall muss man den erlaubten Bereich sowohl mit einem unveränderten Tool als auch mit dem benutzten Tool abfahren, um sicherzustellen, dass man den Quader des verbotenen Bereichs richtig setzt. Wenn ich sowas machen muss, ist das immer mit viel probieren verbunden, bis der Arbeitsbereich festliegt, weil ich die Definition des verbotenen Bereichs immer mit dem unveränderten Tool mache und dann prüfen muss, ob die Sache auch mit meinem Programm-Tool klappt. Kommst Du damit weiter?

    Einmal editiert, zuletzt von PAW ()

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