PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Algorithmus für Spinnenbeinbewegung



Yosuke
14.12.2009, 18:57
Hallo,

Ich will einen Bot bauen, der sich ähnlich einer Spinne bewegen soll (8 Beine, 2 Kniegelenke je Bein). Dazu versuche ich zuerst einmal den Algorithmus zu finden bevor ich mir um die mechanische/elektronische/Microcontrollerumsetzung Gedanken mache. Das Modell, welches ich zum Rechnen verwende: http://ytomoe.dyndns.org/spider/spider1.jpg

Ich habe auf Youtube ein paar Videos gefunden wo man sehr schön erkennen kann wie sich die Spinnen bewegen.http://www.youtube.com/watch?v=o2vYxuNzH3U&NR=1 und http://www.youtube.com/watch?v=f96ITTEsGmA&feature=related

Das Problem: Ich habe noch keinen Ansatz wie ich diese Bewegungen "generisch" beschreiben kann. (Im folgenden Text referenzierte Abbildungen findet man hier: http://ytomoe.dyndns.org/spider/spider2.jpg)
- Das vordere Beinpaar wird fast komplett durchgestreckt wenn ein Schritt begonnen wird (siehe Abb. 2), wird aber ab ca. 1/2 bis 2/3 des möglichen Wegs wieder vom Boden abgehoben.
- Das hintere Beinpaar wird beim Beginnen eines Schrittes fast so weit "vorne" wie möglich aufgesetzt - dabei ist der Aufsetzpunkt teilweise sogar schon unter dem Körper (siehe Abb. 3).
- Die seitlichen Beinpaare werden etwa 1/4 des möglichen Wegs vom Körper entfernt aufgesetzt (siehe Abb. 2)

Es ist auch total unterschiedlich welche Beine nacheinander nach vorne gesetzt werden. (Also so etwas wie 3:3, 2:4 oder 1:5 Beinbewegung habe ich nicht feststellen können)

Der Algorithmus sollte die Bewegungen aller Beine berechnen können.
Ich bin an Ideen und Anregungen jeglicher Art interessiert.

mfg
Yosuke

yaro
14.12.2009, 21:44
Hi Yosuke,
ein interessantes Projekt hast du da vor. 8 Beine mit je 4 Gelenken wird allerdings technisch sehr schwer realisierbar sein und ist mit enormen Kosten verbunden.
Willst du nicht erstmal versuchen, einen Hexapoden zu Bauen?
Ich bin gerade dabei einen Hexapoden zu Bauen (Mathematik und Software ist schon fertig, aber der Sponsor lässt sich Zeit mit den mechanischen Teilen)...und ich kann dir Sagen: eine ordendliche Steuerung von 6 Beinen mit je 3 Gelenken hinzubekommen ist eine immens große Aufgabe! Allein in die Mathematik habe ich mindestens 100 Arbeits-Stunden investiert.... und dann kommt noch die Mechanik, die Elektronik und die Programmierung dazu.....es ist ein riesiges Projekt.....
Ich weiß zwar nicht wieviel Erfahrung du hast, aber würde dir empfehlen, erstmal mit etwas leichterem, eher machbarem anzufangen.

Gruß, Yaro

PicNick
15.12.2009, 08:32
Vielleicht findest du da ein paar Tips bzw Ansätze :-)
http://www.rn-wissen.de/index.php/Spinnenbeine_%28Hexapods%29

Yosuke
15.12.2009, 21:34
Hm, diese Seite kenne ich schon, dort hat man aber beim Bein keine (echten) Freiheitsgrade, weil es nur 1 Knie gibt. Ausserdem ist es nur "2D"-Berechnung.

Zur Berechnung hätte ich mal eine kleine Frage: Ich habe komplett mit 3D angefangen -> ich kann die Bodenplatte (Körper der Spinne) in allen 3 Achsen (x,y,z) gleichzeitig drehen. Damit sind natürlich alle Berechnungen viel komplexer.
Das fängt bei der Kleinigkeit an, dass man für die "erreichbare" Fläche eines Beins (der Bereich wo sich die "Schuhspitze" bewegen kann) einige hundert Additionen und Multiplikationen braucht (nebst ein paar zig Winkelfunktionen). Ausserdem ist dann der kleinst mögliche und größt mögliche "Radius" kein Radius mehr sondern eine Ellipse.

Ich hätte zwar die "Bodenplatte" gerne drehbar gemacht, aber ich habe das ungute Gefühl, dass ich da mit dem Microcontroller dann ein Problem bekomme. Der sollte eine komplette Berechnung von allen Beinen in max. 50ms hinbekommen (am Besten in weniger als 20ms wegen den Servos - ich will sie ja sehr fein ansteuern).

Hat jemand Erfahrung wie schnell die schnellsten Microprocessoren sind? Ich habe einen 4-5Jahre alten Motorola (Freescale) HCS12 (16 Bit, 50MHz, 256k Flash, 12k RAM, genaueres: http://www.emacinc.com/sbc_microcontrollers/ipac_hcs12.htm)
Ich glaube der könnte damit Probleme haben. Ein Bekannter hat gemeint, dass die Motorola/Freescale nicht mehr so verbreitet sind. Gibt es neuere, schnellere Microprozessoren von anderen Herstellern die ich mir ansehen sollte? Programmiert wird in C (Am Besten unter Linux)
Ich habe ein Entwicklunsboard mit einem ATMega2560 gesehen, welches aussah als sei es ziemlich neu, dieser ist aber nur ein 8 Bit Prozessor, geizt mit RAM (8k) und Takt (16MHz) -> von dem her schätze ich, dass er auf einem Entwicklungsstand von etwa vor 10 Jahren ist, wenn ich mir meinen HCS12 ansehe.

nomad
20.03.2010, 08:44
hi,
(1)microcontrollern: guck mal bei parallax -> propeller -> PropellerProfessionalDevelopmentBoard 32Bit, 8 cores (8 cogs)
8 servos out, etc.
(2) nimm doch als master fuer den algo -> ein Netbook den kannst du dann via rs232 das
Board ansteuern.
gruss nomad

XBert
20.03.2010, 11:05
Wenn ich das richtig verstanden habe möchtest du so etwas nur mit 8 Beinen bauen: http://forums.trossenrobotics.com/showthread.php?t=3712

Ich weiß zwar nicht wie man die Schrittfolgen machen könnte, allerdings sollte die Bein-Kinematik mit Rotations-matrizen lösbar sein.

Falls dir die Rechenpower eines AVR nicht reicht, kannst du auch einen ARM verwenden. (du könntest sogar den Linux Kernel portieren)

LG