Anpressdruck der Z-Achse

  • Naechste Frage:
    Ich habe einen Vakuum-Sauger am Roboter-Arm befestigt, der einen Gegenstand hochheben soll. Damit das Vakuum erzeugt werden kann, muss der Gummisauger aber einen gewissen Anpressdruck haben, jedoch ohne den Gegenstand oder den Sauger zu zerstoeren.
    Da der Gegenstand nicht immer in einer garantierten Z-Position liegt und evtl. der Untergrund auch nicht 100% stabil ist, waere es noetig, die Aufnahmeposition derart anzufahren, dass der Roboter anhaelt, sobald ein gewisser Widerstand auftritt, ohne dass aber der Roboter in den Kollisionsfehler verfaellt.


    Jetzt habe ich die Compliance Befehle ausfindig gemacht. Ist das der richtige Ansatz fuer solch eine Aufgabe?


    A.

  • ANZEIGE
  • ich hab den sauger an nem pneumatikzylinder hängen. Mit 0,5 Bar Druck kann ich per Suchfahrt fahren, bis der Zylinder Endlage vorn verlässt. Dann Stop, Saugen, Vakuum prüfen, hochfahren, Zylinder in endlage hinten bringen und Teil ablegen....

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Wenn ich Dich richtig verstehe, hast Du eine bewegliche Mechanik in der Pneumatik, die sich nach innen verschieben kann und diese Positionsaenderung meldet?
    So etwas habe ich leider nicht.
    Ich kann zwar pruefen, ob das Vakuum existiert und bis dahin solange herunterfahren, das ist aber unsicher. Die Sauger sind starr.


    Gut waere eben, wenn der Roboter selber diese genannte 'Weichheit' der Bewegung beherrscht um nichts zu beschaedigen.


    A.

  • n ganz normale zylinder mit endlagenschaltern. völlig ohne tricks und absolut betriebssicher

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Um meine Erkenntnisse zurueckfliessen zu lassen:


    - Eine mechanische Loesung mit Zylinder scheidet aus, weil erstens die Verbauung in Z-Richtung zu gross wird, und zweitens dadurch weitere Fehler in X/Y durch die Mechanik entstehen. Wir benoetigen in diesem Fall tatsaechlich die maximale Positioniergenauigkeit des Objektes in der X/Y Ebene.


    - Die Cmp* Befehle greifen genau dieses Thema an. Z.B. folgendes Skript:


    Code
    Servo On
    Ovrd 1
    Mov p1
    CmpG ,,0.05,,,,,
    Cmp Pos,&B100
    Mov p2
    Dly 20.0
    Cmp Off
    End


    Sorgt dafuer, dass von P1 (oben) nach P2 (unten) gefahren wird, wobei der Z-Achsen Weichheits-Faktor (CmpG 0.05) in etwa der Kraft entspricht, die man mit einem Finger aufhalten kann.
    Bezieht sich hier auf einen 6-Achs Knickarm Roboter, mag bei Scara oder anderen unterschiedlich sein, weil das Eigengewicht der Arme ja auch noch eine Rolle spielt.


    Waehrend des 'Dly 20.0', d.h. 20 Sek. warten, ist es moeglich, den Roboter gegen seine Zielrichtung manuell zu bewegen, wobei er eben wie eine Feder nachgibt. Danach wird mit 'Cmp Off' diese Weichheit wieder abgeschaltet, und der Roboter verharrt stoisch in der letzten Position (egal ob echtes Ziel, oder von Hand verbogen, ohne Fehlermeldung).


    Alex.

  • So, nun noch ein paar tiefschuerfende Gedanken zu vorgerueckter Stunde:


    Ist die Weichheit wie in o.g. Beispiel eingeschaltet, ist es mir bisher nicht gelungen mittels R3 Protokoll herauszufinden, ob der Roboter an seinem Anschlag angekommen ist. Stattdessen scheint der Status mehr oder weniger unmittelbar nach Absetzen des Mov Kommandos auf 'Ziel erreicht/not moving' zu stehen, und die aktuelle Position ist immer die Zielposition, obwohl man noch meilenweit davon entfernt ist.


    Ausserdem ist eine Fahrt mit eingeschalteter Weichheit viel langsamer, genauer gesagt, verringert sich die Geschwindigkeit, je mehr man sich dem Ziel naehert.


    Dass der Anschlag erreicht ist, muss aber irgendwie herauszufinden sein, denn im RT Toolbox mit Melfa Basic klappt das ja auch, und die machen glaube ich auch nichts anderes als irgendeinen Zustand zu pollen.


    Also manchmal finde ich es schon nervig, dass man bei einem so teuren Geraet alles reverse engineeren muss...


    Gruebelnd -


    Alex.

  • Am schnellsten ist wahrscheinlich die Lösung mit einem federnd gelagerten Sauger und einem Bit.


    Mit Compliance machen wir nur sehr wenig, im Vergleich zu Echtzeitsteuerung mit Kraftsensor ist das viel zu grob.



    und die aktuelle Position ist immer die Zielposition, obwohl man noch meilenweit davon entfernt ist.


    Bei P_Curr macht das Sinn, ist ja auch die Sollposition. Was ist mit P_Fbc ?



    Dass der Anschlag erreicht ist, muss aber irgendwie herauszufinden sein, denn im RT Toolbox mit Melfa Basic klappt das ja auch, und die machen glaube ich auch nichts anderes als irgendeinen Zustand zu pollen.


    Kandidaten wären eventuell M_CmpDst, M_Ratio oder M_RDst.


    Grüße


    Urmel

  • Hi Urmel,


    danke fuer die Tips. Hier meine Ergebnisse:


    Waehrend einer Fahrt mit 'compliance on' verhalten sich die Variablen so (die ich in einer Schleife 1000 mal hintereinander per R3 Protokoll abgefragt habe):
    - M_Ratio ist immer 100%
    - M_RDst ist immer 0
    - M_CmpDst liefert genau was es sagt, und schwankt bei Erreichen des Triggerpunktes im Bereich von < 0.01mm
    - M_Fbc liefert ebenfalls die 'echte' Position und schwankt ebenfalls im Bereich von <0.01mm


    Ich habe den Roboterarm auf eine Blisterfolie aufsetzen lassen, um genuegend Elasitizitaet zu erhalten. Das erklaert auch die Schwankungen.
    Einen richtigen 'Endpunkt' in diesem SInne gibt es ja nicht, aber ich kann mit einem Threshold ja nun festlegen, ab welcher Abweichung die Fahrt als beendet gesehen werden kann.


    Wie gesagt ist eine Loesung mit federnd gelagertem Sauger nicht moeglich, weil die Federung in der XY Eben zusaetzliches Spiel einbringt und wir die Positioniergenauigkeit des Roboters maximal ausreizen muessen. Zudem bringt diese Mechanik einen weiteren zusaetzlichen Verbau in Z-Richtung, den wir uns ebenfalls nicht leisten koennen.
    Deshalb der ganze Aufwand mit dem compliance Mode. Aber so langsam komme ich schon dahin, wo ich hin will.


    Ach genau: und letztlich kann ich als Trigger ja auch das Signal des Vakuums verwenden. Wenn das existiert, passt ja alles. Nur wenn aus irgendwelchen Gruenden das Vakuum nicht erzeugt werden kann, ist die Abfrage der Positionsabweichung von weiterem Interesse.


    Alex.

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