-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Mathe Profis gesucht die keine Angst vor Vektorechnung haben

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.10.2004
    Ort
    Bad Harzburg
    Alter
    29
    Beiträge
    302

    Mathe Profis gesucht die keine Angst vor Vektorechnung haben

    Anzeige

    Hallo Mathematiker,

    Ich baue einen Roboter mit 2 5-Achsen Armen die ich irgendwann auch mal programmieren möchte. Mein problem ist wie ich es hinbekommen kann das er nach ein Objekt im 3D-Raum greift und selbst den schnellsten Weg errechnet.

    In der Schule hatten wir das Wunder der Vektorrechnung, und so dachte ich mir das man evtl eine Gleichung erstellen könnte, mit 5 Variabelen (für die 5 verschiedenen Winkel) 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...

    Leider fällt mir kein ansatz dafür ein und ich habe auch noch kein blassen wie ich daraus einen minimumrechnung machen soll.

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

    MfG Jan

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Hm es wäre hilfreich wenn du dazuschreibenwürdest, wie der Arm genau aufgebaut ist. Dann kann ichs mir auch leichter vorstellen. Eine Skizze wäre da ziemlich hilfreich.

    Ich hab mich zwar noch nicht genaur damit befasst, aber wenn du die Objektkoordinaten hast, dann könntest du eine Vektorkette (mit dem Ortsvektor des Objekts) bilden. Dann kannst du vermute ich mal, die Position des Greifers in Abhängigkeit der Winkel berechnen.

    Genauer kann ich mich erst damit befassen, wenn du eine Skizze herzeigst.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    vergiss die Vektorrechnung. Schau dir lineare Algebra, Translations- und Rotationsmatrix an. Es gibt genug Beispiele im Netz. Übrigens OpenGL und 3DX machen es imo nicht anders.

    Gruß

    Jens

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Die Rotationsmatrix aus OpenGl ist mir wohl bekannt, aber du musst ja die Vektorkoordinate des Punkts mit dieser multiplizieren um auf die neue Koordinate zu kommen.
    Ich glaub nicht dass man um Vektorenrechnung herumkommt. Wenigstens der Ansatz basiert auf diesen. Mit einer Linearkombination die den Ortsvektor des Punkts ergibt kann man ein lineares Gleichungssystem aufsstellen.

    Das Problem ist nicht so trivial, da ja immerhin der kürzeste Weg herausgefunden werden soll. Aber ohne skizze gehts für mich einfach nicht. Ich müsst schon wissen, wo die Drehgelenke sind.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.10.2004
    Ort
    Bad Harzburg
    Alter
    29
    Beiträge
    302
    also mit Translations- und Rotationsmatrix hatte ich bisher noch nichts gemacht, da müsste ich mich erstmal reinarbeiten, aber das sollte kein hinderniss sein.

    klar skizze hab ich vergessen sorry^^, dachte das man das problem erstmal algemein betrachten kann um ein ansatzpunkt zu finden, was wohl etwas kurzsichtig war.

    anbei skizze
    leider fehlt da der untere teil des arms noch, aber mas siecht ja anhand der löcher wo die achse ist

    und den rest zu meinen projekt findet ihr hier:
    http://www.roboternetz.de/phpBB2/zei...423&highlight=

    MfG Jan
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 14.jpg  

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Wenn ich des jetzt richtig sehe,

    kannst du ihn ganz unten zur Seite neigen,
    eins weiter oben, beim Motor, kannst du den ganzen Roboter um die "Hochachse drehen,
    noch eins weiter oben abknicken
    und ganz oben das letzte Stück drehen?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    31.03.2007
    Ort
    Dortmund
    Alter
    32
    Beiträge
    31
    Hallo Devil!

    Deine Idee mit der Vektorrechnung ist schon recht solide. Rotationsmatrizen sind auch nur eine Form von Vektorrechnung und die machen nichts, was du nicht auch durch Addition von einzelnen Vektoren erreichen kannst.
    Das System hat mit einem Arm 5 Freiheitsgrade. Das heißt, dass der Punkt, an dem die Hand des Roboterarms gerade ist, eine Funktion von 5 Variablen ist, die auch eine Zeitableitung hat (bzw. 5 partielle) (welche wichtig sind, wenn du den schnellsten Weg haben willst).
    Anfangs würde ich das Problem auf "Finde überhaupt den Punkt" reduzieren. Dazu das Problem erstmal unterteilen in Winkeländerung und Positions- und Winkelveränderung. Bei erstem drehst du einfach an den zuständigen Motoren. Beim zweiten reduzierst du das Problem auf eine Winkeländerung indem du die Hand an ihre neue Position fährst, was ja das eigentliche Problem ist. Das könnte man anfangs machen, indem man erstmal überprüft ob man schon durch Veränderung einzelner Freiheitsgrade sein Ziel erreicht. Wenn nicht (was wahrscheinlich ist), dann schiebt man die Hand an einen Punkt, der auf einer Linie wäre mit dem Bewegungsbogen der Hand, wenn man einen anderen Freiheitsgrad verändert, um dann hinterher genau diesen so zu verändern...
    Also es ist ganz praktisch das Problem in viele kleinere Probleme zu zerlegen. So kommt man u.U. auch auf die eine Wunderformel....

    Hoffe, du ziehst einen Denkanstoß aus meinem Text,
    Markus

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Mein problem ist wie ich es hinbekommen kann das er nach ein Objekt im 3D-Raum greift und selbst den schnellsten Weg errechnet.
    Auf dem kürzesten Weg nach einem Objekt greifen muss auch ohne Mathematik klappen - ich kann's ja schliesslich auch

    Die Lösung weiss ich leider nicht, aber vielleicht kann man das Problem ja in kleiner Gruppen zerlegen.

    Dein Roboterarm hat 5 Freiheitsgrade, aber der Raum hat ja nur 3 Dimensionen x,y und z.

    Wenn du das anze Mathematisch angehen willst, brauchts du du einen Bezugspunk (0,0,0), die aktuelle Position deines Greifers (x1,y1,z1) und die des zu greifenden Objekts (x2,y2,z2)
    Den Vektor (x,y,z) den dein Greifer zurücklegen muss auszurechnen ist dann kein grosser Zauber.

    Dann kommt aber das eigentliche Problem, nämlich die Berechnung der einzelnen Bewegungen.

    Ich vermute mal bei den 5 Freiheitsgraden hast du die Drehung des Greifers um die eigene Achse mitgezählt.
    Die sollte für das Ansteuern der richtigen Position ja erst mal keine Rolle spielen. Demnach bleiben 4 Freiheitsgrade über.

    Kannst du da aufdröseln welche der 4 restlichen Freiheitsgrade für welche Richtung x,y,z zuständig sind?
    Vieleicht kannst du ja mal posten welche Gelenke von 1-4 für welche Richtung zuständig sind.
    Dein Skizze ist zwar toll, aber ich verstehe sie nicht so richtig.



    Ich habe mir gerade mal kurz den anderen Thread zu deinem Roboter angesehen.
    Irgendwie sehe ich da noch ein viel grösseres Problem.
    Der Roboter ist ja fahrbar, d.h. theoretisch kommen da nochmal 2 Freiheitsgrade dazu, weil er dem Objekt ja auch entgegenfahren könnte.

    Ok, man muss die Dinge ja nicht komplzierter machen als sie eh schon sind und kann das erst mal weglassen.

    Dann verstehe ich aber noch nicht so ganz, wie du an die Koordinaten des zu greifenden Objekts kommen willst.
    Soll der Roboter über Kamera und irgendwelche Sensoren selber feststellen, wo sich das Objekt befindet?

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    31.03.2007
    Ort
    Dortmund
    Alter
    32
    Beiträge
    31
    Hallo recycle!

    Dein Roboterarm hat 5 Freiheitsgrade, aber der Raum hat ja nur 3 Dimensionen x,y und z.
    Im Prinzip gibt es für ein Objekt im Raum sogar 6 Freiheitsgrade: den Ortsvektor der Hand und seinen Richtungsvektor, der auch aus 3 Komponenten besteht. Wenn deine 5 Freiheitsgrade linear unabhängig wären, also wenn es keine 2 Freiheitsgrade gibt, die die gleiche Raumgröße verändern, dann fehlt nur noch einer um alles machen zu können.

    Kannst du da aufdröseln welche der 4 restlichen Freiheitsgrade für welche Richtung x,y,z zuständig sind?
    Wahrscheinlich wird leider nie ein Freiheitsgrad für eine Größe allein verantwortlich sein. Ein Ansatz wäre hier, dass man alle partiellen Ableitungen von (x1,y1,z1) nach den einzelnen Freiheitsgraden untersucht; in Worten "Wie verändert sich die Position der Hand, wenn ich an Freiheitsgrad1 drehe". Heraus bekommt man dann 5 Vektoren, die Auskunft über den momentan möglichen Handlungsspielraum geben. Eine Linearkombination dieser Vektoren (heißt: a*V1+b*V2+....) kann man dann zu (x1,y1,z1) addieren und man muss auf (x2,y2,z2) kommen. Durch Lösung dieses Gleichungssystems hat man dann a, b, c, d und e raus, welche einem sagen wie viel man welche Freiheitsgrade ändern muss um ans Ziel zu kommen.
    Wichtig ist, dass sich die partiellen Ableitungen nach jeder Bewegung ändern: man muss also sehr kleine Zeitschritte nehmen und die Rechnung jedesmal von neuem durchführen.

    Gruß,
    Markus

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Des war auch mein ansatz. Aber bilde mal die partitiellen Ableitungen. Keine Ahnung was für ein Controller verwendet wird, aber nachdem ja Trigonometrische Funktionen vorkommen, wäre die einfach losfahr Methode vielleicht schneller.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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