Xmm auf der Bahn zurück fahren

  • Hallo Leute,


    ich stehe gerade etwas auf dem Schlauch: es gibt 2 Positionen p10 und p20, die irgendwo im Arbeitsbereich des Roboters geteacht sind. Der Roboter bewegt sich Linear von p10 nach p20. Wenn er p20 erreicht hat, soll er um einen bestimmten Weg in Richtung p10 zurück fahren.
    wie bekomme ich das hin?!


    Viele Grüße
    Michael

    Programmierung<br />Schulung<br />Wartung

  • ANZEIGE
  • Hallo!


    Mit offset würde es gehen.
    Satz nach p20 einfügen.
    MoveL Offs(p10,10, 0,0), v100, z0, toxxxxx\WObj:=woxxxxx;


    Wobei du schauen musst X,Y oder in Z richtung fahren musst.


    MFG


    Tamas

    Einmal editiert, zuletzt von padostms ()

  • :) Ganz so einfach ist das nicht
    Die X,Y oder Z-Richtung ist ja das Problem: in welche Richtung liegt denn P10?! Es wird irgendeine Mischung aus X,Y und Z sein, aber wie komme ich auf die Mischung?!


    Gruß Michael

    Programmierung<br />Schulung<br />Wartung

  • Hallo!


    Oja ist es einfach !Probieren im editor modus dann wieder auf die zeile springen.Habe auch so gemacht bei mir aber normaler weise laut koordinatensystem soll passen.

  • Hallo!
    Offset ist auch im mm.Wo deine Punkt befindet das kannst du schauen wenn du roboter händisch bewegst zum punk p20 oder dort hin wo du diese punkt haben willst, die diferenz zwischen p20 und neue punkt ist dein offset.

  • @Tamas: sorry, habe mich das wohn nicht deutlich genug ausgedrückt - ich möchte das nicht fix teachen. p10 und p20 heißen in Wirklichkeit pStart und pEnde und sind Übergabeparameter an eine Prozedur - heißt ich weiß aktuell noch nicht wo die später mal liegen. Daher brauch ich die Möglichkeit von pEnde 5mm zurück in Richtung pStart zu rechnen.
    Das geht auch ganz sicher irgenwie mit den Vector-Berechnungen, aber ich bekomme es nicht auf die Reihe.


    @Robi_michl: ja an so etwas in der Art habe ich auch schon gedacht (5mm vor erreichen der Zielposition einen Interrupt triggern und in der Traproutine die aktuelle Roboterposition auslesen, speichern und nach erreichen der Zielposition wieder zurück auf die gespeicherte Position fahren) - aber ganz Ehrlich: das muss auch rechnerisch gehen :)


    Viele Grüße
    Michael

    Programmierung<br />Schulung<br />Wartung

  • Alte Vektormathematik rauskramen: auf die Schnelle hinskizziert:
    P10 invertieren (pose_inv, oder so ähnlich) und mit P20 multiplizieren (pose_mult, o.ä.) ergibt den Weg von P20 zu P10, dieses Ergebnis auf die 10mm normieren (also Wurzel aus x hoch 2 plus y hoch 2 plus z hoch 2 ist die Länge, dann X,Y und Z mit dem Verhältnis zu 10mm multiplizieren). Beim ersten Rechenschritt kann es auch sein, dass P10 und P20 getauscht sein müssen.
    Klingt vielleicht etwas wirr, aber so ungefähr sollte es funktionieren.

  • Hi,
    sollte so funktionieren ist aber natürlich ungetestet.
    Bin mir aber nicht sicher bei der Deklaration von "TriggInt" die Variable zulässig ist. Wenns aber immer 5mm sein sollen dann kann man den Parameter für die Distanz auch weg lassen.



    Gruß Z

  • Hi Leute,
    sorry, habe jetzt erst bemerkt, dass meine letzte Antwort anscheinen nicht gespeichert wurde.
    Für die mathematische Lösung bin ich anscheinen zu doof :) egal wie ich die Rechnung umgestellt habe. Die berechnete Position lag nicht ansatzweise zwischen der Start- und Endposition :-/
    Eine andere Lösung (Trigger, Interrupt, Suchfahrt und dergleichen) kommt für mich nicht un Frage - (würde ja nur zeigen, dass ich für die mathematische Lösung zu doof bin :) )


    Trotzdem Danke!
    Gruß Michael

    Programmierung<br />Schulung<br />Wartung


  • ...
    Eine andere Lösung (Trigger, Interrupt, Suchfahrt und dergleichen) kommt für mich nicht un Frage - (würde ja nur zeigen, dass ich für die mathematische Lösung zu doof bin :) )


    Wen juckt's, wenn's funktioniert?
    Mir wäre das schon lieber als gar keine Lösung.
    Im Prinzip heisst das, Du hast hier eine Frage gestellt, für die Du gar keine Antwort benötigst. So kann man seine Mitmenschen auch beschäftigen.

  • Moin,
    Konstantin: die Positionen befinden sich im gleichen Werkobjekt
    Hermann: klar, richtig ist was am Ende geht und die Aufgabe erfüllt - ich würde aber schon gerne wissen wie ich es mathematisch lösen kann. Ob die Lösung letzten Endes wirklich zum Einsatz kommt sei mal dahingestellt, aktuell geht es darum für diesen Prozess verschiedene Szenarien am Ende der Bewegungsbahn auszuprobieren. Eines davon war eben das zurück Fahren um X-mm. Aktuell im Versuchs-Stadium habe ich das sogar mittels Trigger gelöst, sollte sich das als "die Lösung" herausstellen möchte ich das jedoch schon gerne berechnen.
    Gruß Michael

    Programmierung<br />Schulung<br />Wartung

  • Hallo,
    ich habe mich einmal in der Berechnung der Position versucht und dabei folgenden Annahmen getroffen:


      • Alle Punkte liegen im gleichen Werkobjekt

      • Alle Punkte werden mit dem gleichen Tool angefahren

      • Die Orientierung der beiden Punkte sind identisch bzw. muss nicht berücksichtigt werden


    Die neue Position wird durche Verschiebung entlang des Richtungsvektors bezogen auf den Endpunkt berechnet.
    Durch Verwendung einer positiven Distanz liegt der neue Punkt hinter dem Endpunkt und durch Verwendung einer negativen Distanz liegt der neue Punkt vor dem EndPunkt.



    Mfg
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hi Micky,
    Du bis mein Held! :)
    Wenn man´s so sieht schaut es eigentlich ganz einfach aus - hatte mich da wohl an einer falschen Denkweise festgebissen...
    Vielen Dank nochmals - so kann ich das bedenkenlos veröffentlichen :)


    Viele Grüße und ein schönes Pfingst-Wochenende
    Michael

    Programmierung<br />Schulung<br />Wartung

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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