-         

Ergebnis 1 bis 6 von 6

Thema: Profis gesucht die keine Angst vor Vektorechnung haben

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.05.2008
    Alter
    38
    Beiträge
    9

    Profis gesucht die keine Angst vor Vektorechnung haben

    Anzeige

    Hallo Mathematiker,

    Ich baue einen Roboter mit 4-Achsen Armen (Movit MR-999E siehe anhang)die ich irgendwann auch mal mit C-programmieren möchte. Mein problem ist wie ich es hinbekommen kann das er nach ein Objekt (Kamera liefert die koord an MCBSTR9 bord der mit dem Roboter verbunden)im 3D-Raum greift und selbst den schnellsten Weg errechnet.

    ich denke ich muss eine Gleichung (Matrix) erstellen, mit 4 Variabelen (für die 4 verschiedenen Achsen) und den entsrechenden Strecken, um dem Arm mathematisch zu simulieren. Dann müsste man ihn "nur" noch mit dieser Formel alle Möglichkeiten durchrechnen lassen wie er von mit dem Greifer von A nach B kommt...

    Das war meine idee vll könntet ihr mir weiter helfen oder habt bessere Vorschläge.

    MfG Nonoboy
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fertige_roboter_arm.jpg  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    830
    da es bei 3 achsen (die drehung des handgelenkes lasse ich außen vor, da sie für die bewegung im raum erstmal nicht relevant ist außen vor) sowiso nur eine achswinkelkombination gibt (ja, der cossinsatz hat zwei lösungen, aber eine davon ist unmöglich da dein arm nicht überstreckt werden kann) in der der greifer diese position erreichen kann.

    wenn du nun ausgangs und endposition kennst kannst du mit allen achsen mit maximaler beschleunigung losfahren, die längsamste bestimmt die benötigte zeit sowiso. wenn du aber unbedingt eine gerade haben willst kannst du zwischenpunkte errechnen und den roboter diese einzeln abfahren lassen. allerdings ist dies nicht die schnellste sondern nur eine möglichkeit.

    die einzige optimierngsmöglichkeit ergibt sich bei bewegungen bei denen der arm ausgestrecht ist und nur die schulter weit gedreht wird. bei einer solchen bewegung kann es sinnvoll sein den arm anzuziehen (verringert das trägheitsmoment und damit steigt bei gleichbleibendem Drehmoment die mögliche beschleunigung).
    um die 4. achse (drehen des handgelenks) anzusteuern brauchst du noch einen eigenen parameter den du dem roboter geben musst


    google nach inverser kinematik, oder benutze die sufu, da gab es bereits einiges zu dem thema.

    mfg clemens
    Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris...

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Ich würde sagen Du musst n Matrizen für n Freiheitsgrade aufstellen, die mindestens 3 Dimensionen haben...nämlich für jedes Gelenk eine.
    Wenn Du die Richtung Deines Greifers auch noch berücksichtigen willst, was Sinn macht, dann bist Du schon bei 6 Dimensionen pro Matrix. Kann aber sein, dass man da noch was wegoptimieren kann, kommt darauf an.
    Alle Möglichkeiten durchzurechnen ist natürlich "geringfügig" suboptimal, zumal Du dann imernoch kein Entscheidungskriterium hast, welches die beste Lösung ist. Das ist nämlich ein ganz anderes Problem.
    Mit den Grundlagen zu beiden Problemen wurden Bände gefüllt, ich befürchte, um eine gutes Buch wirst Du da nicht herum kommen...
    Aber vielleicht ist ja jemand hier, der sich die Zeit nimmt...
    Gruß

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557

    Re: Profis gesucht die keine Angst vor Vektorechnung haben

    Hei nonoboy,

    na das ähnliche Posting gabs ja schon mal von Dir, Du schlimmer Abschreiber und Mehrfachposter.

    Zitat Zitat von nonoboy
    ... Roboter mit 4-Achsen ... wie ... selbst den schnellsten Weg errechnet ...
    Nun, so einfach ist das nicht. Wenn Du den wirklich schnellsten Weg rechnen möchtest, dann ist das etwas schwierig. Warum? Weil Du dann die Gelenke (die einzelnen Gelenkantriebe) volles Rohr fahren lässt und (nur) prüfst, ob die Struktur noch innerhalb eines zulässigen Hüllraumes ist - und bleibt. Das ist ein ziemliches, nein - ein unziemliches Hin- und Herspringen in zwei Koordinatenwelten.

    Einen einfacheren schnellen Weg, aber nicht den wirklich schnellsten aller möglichen Wege, habe ich schon programmiert. Dabei wird die Bewegungsspur des TCP im Raum mit einer Bahnsteuerung abgefahren. Bei der Vorrechnung der einzelnen Gelenke - also noch im TCP-Pfad - berechne ich die Bahn für eine relativ schnelle Bewegung - geschätzt aus Erfahrung. Nach der Koordinatentransformation in die Gelenke bekomme ich meine Rückkopplung, ob ich bei einem Gelenk schon an oder über der maximalen Geschwindigkeit bin. Von diesem Maximum wird die Fahrt der anderen Gelenke zurückgerechnet, damit eine harmonische, hübsche und trotzdem schnelle Bewegung geht. Warum das Ganze so? Weil dann die Bahn keine extremen Abweichungen von einer vermuteten Bahn hat - sprich: der Vielachser taumelt nicht mit spastischen Zuckungen - sondern der TCP fährt sinnvoll und trotzdem s..schnell von einem Punkt zum anderen.

    Leider ist ein kleines Problem dabei: die entsprechenden Geschwindigkeiten und Beschleunigungen sollten Funktionen sein. Oder andersrum: die Bahnen sollten ableitbare Funktionen sein - und eine dreidimensionale Raumspur ist halt wirklich keine Funktion und schon gar nicht eine differenzierbare. Um auf ableitbare Funktionen zu kommen, wird die Bahn parameterisiert. Also relativ wenig Vektorrechnerei, aber trotz Allem ein bisschen tricky . Sonst könnt das ja jeder . Und wenn man schnell rechnen möchte (ohne Cray oder so), dann braucht man für die Koordinatentransformation auch keine Matritzen. Nicht mal transzendente Funktionen. Die sehen zwar irre mathematisch aus, aber wer Mathe kann, kann es auch einfacher . Und der hat auch keine Angst vor Vektorrechnung .
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Zuerst überlegst Du Dir, wie der Koordinatenraum aussieht. Er ist sehr Wahrscheinlich das Kartesische Produkt aus S1 (Kreisring) und Intervallen I, also zB
    S1 x S1 x I x I.

    Der Koordinatenraum ist 4-dimensional, wenn jede der Achsen eine Dimension liefert.

    Ein Punkt P' im R^3 (Anschauungsraum) der anzufahren ist, werden dann in den Koordinatenraum abgebildet und wird zu einem oder mehreren Punkten P.

    Um von P' zu Q' zu kommen, fährt man dann von einem P zu einem Q im Koordinatenraum.

    Dazu müssen P und Q natürlich in der gleichen Zusammenhangskomponente des K-Raumes liegen. Nehmen wir mal an, daß der K-Raum zusammenhängend ist, dann kann immer ein Weg von P nach Q gefunden werden.

    Im K-Raum findet man eine Verbindung, indem man eines der Ps mit einem der Qs verbindet. Wie die Verbindung aussieht, ist zunächst egal. Für einen konvexen K-Raum tut es eine Strecke von P nach Q, für nicht-konvexen K-Raum gehen endlich viele Strecken hintereinander, wobei jede Strecke ganz im K-Raum liegen muss.

    Nun will man nicht irgendeine Strecke, sondern zB eine die im R^3 möglichst kurz ist.

    Dazu muss man den K-Raum mit der richtigen Topologie versehen, welche man durch das totale Differenzial der Abbildung der beiden Räume erhält. In der Regel ist eine Strecke also nicht die kürzeste Verbindung zweier Punkte im K-Raum (K-Raum ist also gekrümmt, ähnlich wie die Raumzeit).

    Von der initialen Verbindung von P und Q durch mehrere Strecken gelangt man durch Variation immer näher an die kürzeste Verbindung (die wieder komplett innerhalt des K-Raumes liegen muss). In der Praxis dürften wenige Iterationsschritte genügen, und für einfach strukturierte K-Räume ist vielleicht sogar ein expliziter Ausdruck zu finden und praktikabel.

    Zudem sind u.U. Nebenbedingungen zu beachten, etwa wen sich in der Kurve ein Knick ergibt. Über die Krümmung der Kurve (Topologie beachten) kann man zB die (Winkel)-Beschleinigung im R^3 erhalten, für die es wahrscheinlich Obergrenzen gibt, ebenso wie für die Geschwindigkeit. Es kommt also eine 5-te Dimension (die Zeit) hinzu, die man genauso behandeln kann wie die anderen Dimensionen, nur daß sie identisch zu R ist. Hier können dann Bedingungen an die Kurzvenkrümmung (Beschleunigung) und partielle Ableitung (Geschwindigkeit) formuliert und kontrolliert werden.
    Disclaimer: none. Sue me.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    19.05.2008
    Alter
    38
    Beiträge
    9
    Hallo Leute danke euch für eure antworten,
    ich habe jetzt die koord. wie im Anhang festgelegt ist das richtig so. und habe die Matrix auch aber habe noch ein kleines Problemschen die koord von den Greifer sind 2D, oder müssen auch 3d sein.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken movit_001.jpg  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •