Gyro Frage // Raupenbot

Hi,

ich bin gerade dabei einen kleinen Roboter zu bauen der Kettenantrieb hat. Dafür habe ich mir einen günstigen RC Panzer gekauft und auseinandergebaut. Leider komme ich nicht weiter mit der Steuerung
der Kurven. Ich hab es schon mit delay versucht aber die Motoren sind nicht genau und er dreht sich immer in einem anderen Winkel auch wenn
das delay jedesmal gleich ist.
Ich hab mir überlegt einen Gyro zu benutzen für die Z Achse, macht das sinn ? Hab das hier entdeckt.

würde das klappen? Oder gibt es da andere Probleme dann.

Vielen dank schon mal ...

Syd...

Willkommen im Club der Tankbot Bauer !

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1283788762

Ich würde ein 3 Achsen Kompassmodul nehmen. Eventuell eins mit zusätzlicher Neigungskorrektur.
Bei der Benutzung eines Kompassmoduls kannst Du dann auch den Delay Befehl weglassen !

  1. Abfrage der aktuellen Fahrrichtung
  2. Festlegung der neuen Sollfahrrichtung
  3. Roboter in oder gegen den Uhrzeigersinn drehen bis der Kompass die neue Sollfahrrichtung anzeigt. While-Schleife.
  4. Nicht zu schnell drehen damit der Kompass auch mitkommt !

Kompass Modul - HMC5843:
http://www.watterott.com/de/Kompass-Modul-HMC5843

Kompass Modul mit Neigungskorrekur - HMC6343:
http://www.watterott.com/de/Kompass-Modul-mit-Neigungskorrekur-HMC6343

Frage. Was für einen Motortreiber benutzt Du ?

Hi,

danke für den Link und den Hinweis, als Treiber benutze ich das Shield
von Adafruit.
Noch ne Frage zu dem Kompass, der Gyro den ich gefunden habe kann ja 300°/sec verarbeiten wie schnell ist der Kompass den? Und funktioniert der Kompass auch zuverlässig? Hab ein iPhone und da gibt es öfters Probleme mit dem Kompass.

Edit:
Das ist der Panzer den ich zerlegt habe dafür :wink:

Laut Datenblatt:
Output Rate = 50Hz (10Hz typ.)

Wenn du nicht zufällig einen Hochgeschwindigkeitspanzer baust, der mit Mach 1 durch den Garten hinter einer MIG hersaust, wird es wohl ausreichen denke ich :slight_smile:

Was das iPhone betrifft:
Bist du sicher das es einen echten Kompass besitzt?
Es kann gut sein, dass es gar keinen hat und lediglich deine Bewegungsrichtung aus den sich verändernden GPS Daten errechnet.

Das ist schlecht. Im Auto fällt es nicht auf, weil du ja schnell fährst, und dein GPS so viele Messpunkte in kurzer Zeit bekommt, also recht zuverlässig deine Bewegung nachvollziehen kann.

Wenn du zu Fuß unterwegs bist, ist es ein Problem: GPS geht nur auf ca. 10m genau. Wenn du also mit 1,3 m/sec = 5km/h spazierst, wirst du zu langsam sein, als das dein GPS Chip zuverlässig eine Richtung errechnen
könnte. Drum ist das ungenau.

GPS gibt dir nur einen Punkt, keine Richtung! Deshalb ja ein eigenes Kompass-Modul :slight_smile:

:slight_smile:

ne dann sind 50Hz schon ok, aber dann braucht man ja einen mit
Neigungskompensation oder? Der kostet 130?, der Gyro nur 30?
ist das mit dem Kompass viel besser?
Das iPhone hat einen richtigen Kompass
http://www.apple.com/de/iphone/iphone-3gs/specs.html
siehe punkt² wenn es GPS wäre würde ein Magnet wahrscheinlich
keinen Einfluss haben :slight_smile:

Hier noch ein paar Bilder.
Sorry für die schlechte quali.
Die Tarnfarbe werde ich noch ändern, da darf sich meine Freundin austoben :wink:

Ich hab sowas noch nie gebaut, beschäftige mich im Moment eher mit GPS und Kompass, dazu kommt demnächst noch ein Diskussions-Thread zur Kursberechnung :slight_smile:
Das könnte für dich interessant sein.

Das Gyro gibt dir ja nur Lageänderungen aus.

Vereinfacht:
Eine Kugel auf einer Platte mit Rand außen rum.

Wenn du jetzt die Platte neigst, rollt die Kugel gegen die Wand. Die Position, wo die Kugel die Wand berührt, wird gemessen. Daraus wird berechnet, wie die Platte geneigt gewesen sein muss, damit die Kugel da die Wand berührt hat. (bitte, stark vereinfacht)

Das Gyro kann dir also keine absolute Position angeben. Es kennt immer nur realtive Veränderungen. Wie exakt das funktioniert weiß ich nicht. Habe damit keine eigenen Erfahrungen.

Ich könnte mir aber gut vorstellen, dass es das ein oder andere Problem gibt.

Zum einen die Dauer der Fahrt. Wenn sich in den Gyro-Daten ein Messfehler einschleicht (und wenn es ein blöder Rundungsfehler ist, so richtig viele Floating-Stellen kann der Arduino nämlich nicht), werden die immer falscher werden, wenn du versuchst deine aktuelle Position zu bestimmen.

Zum anderen glaube ich, dass ein kettengetriebenes Fahrzeug einen anderen Fahrkomfort bietet, als etwas mit vielen Federn und Reifen mit Luft drinn => dein Panzer wird das Gyroskop ziemlich durschschütteln

Von da her denke ich, dass das Gyro in deiner MIG (siehe oben :wink: ) wesentlich besser aufgehoben wäre, weil du dann die Fluglage analysieren könntest (drehen um die eigene Achse, neigen...)

Aber bitte, ich habe es noch nie getestet! Vielleicht klappt es mit dem Gyro ja auch wunderbar. Es hätte vor allem den Vorteil, dass du von GPS unabhängig wärst. In einem Haus vermutlich der Normalfall.

Wo willst du denn deinen Panzer fahren lassen, und wie groß sollen die Strecken und die Geschwindigkeit sein?

Willst du bestimtme Waypoints autonom "abklappern" (<= was ein Wortspiel :wink: )?

Ein sehr billiger Weg an Gyros / Schwerkraftsensorik zu kommen, ist ein billiges Wii-Nunchuck auf der Bucht zu schiessen, und auseinanderzubauen.

Es kennt immer nur realtive Veränderungen. Wie exakt das funktioniert weiß ich nicht. Habe damit keine eigenen Erfahrungen.

So stark vereinfacht, dass es nicht wirklich stimmt.

Mounted on a small BGA package just 7 by 7 by 3 mm (147 mm3), the ADXRS is much smaller than available gyros, which range in overall size from 15,138 to 159,975 mm3. The Coriolis effect is a phenomenon in which a moving object, subject to a rotation, experiences linear acceleration that's proportional to the rate of rotation.

To make the gyro, an 8-µg polysilicon proof mass is suspended 2 µm over the silicon substrate containing the signal-conditioning electronics. Some 5000 interdigitated fingers, spaced 1.6 µm apart, move in response to the rate of angular rotation, allowing capacitance changes on the order of an incredible 12 zF (1 zeptofarad = 10[ch8722]21 F) to be measured. The device senses acceleration with 30 µg of resolution and can detect deflection distances of a mere 0.00016 Å. It has a shuttle motion of 3000 g at 15 kHz.

Jetzt bin ich ein wenig verwirrt :wink:
Ich dachte immer Gyros sind (alte Geräte)
Kreisel die sich schnell drehen und dadurch Ihre Lage nicht verändern
und durch diesen Fixpunkt hat man ja dann die Differenz zur drehnung des "Gehäuses", oder?
Ich möchte diesen Sensor am Anfang eigentlich nur nutzen um den Bot richtig drehen zu können, zb. Hindernis dreh dich 10° nach rechts etc...

Ich glaube du meinst einen Kreiselkompass?

Ich bin überzeugt, dass ein Kompass dir schneller eine Drehung um irgendwelche ° gibt :wink:

Ok :slight_smile:

aber reicht auch das Modul ohne Neigungskompensation ?

Ein Gyroskop ist ein Neigungswinkelmesser, was hat der mit einem x-y problem zu tun? In deinem Falle kannst du doch mit der normalen Arduino Boardmitteln viel mehr erreichen...

Kalibrier mal die Motoren, oder bau andere ein. Das Problem an deinem Problem :wink: ist, dass du einen billigen Panzer mit DC-Motoren benutzt, das natürlich nicht genau steuerbar wird, und du dann ein GPS oder Gyromodul draufbaust, um die Steuerung auszugleichen. Das find ich schon sehr komisch.

Hi,

wie soll ich den die Motoren genau kalibrieren? Auch denke ich wäre das schwer wenn sich der Untergrund ändert reagieren die Motoren doch dann anders. Ich hab bestimmt 2h getestet und selbst auf dem gleichen Untergrund (Laminat) dreht sich der Bot immer in einen anderen Winkel
auch wenn die Motoren immer genau die gleiche Zeit an sind.

Du verstehst schon wie ein DC-Motor funktioniert, und was der Unterschied zu einem Stepper ist?

Wie ich schon schrieb, du kaufst einen Billigbausatz, und wunderst dich das Billig DC-Motoren eingebaut sind, die weder genau ansteuerbar noch laufgenau sind.

Ich frage mich wie du dann mit dem Gyroskop genaue Motorsteuerung gewährleisten möchtest, wenn schon im Testbetrieb solche Probleme auftreten.

Ja ich weiß was ein Stepper und ein DC Motor ist :wink:
Nur wollte ich für meine ersten Gehversuche auf dem Gebiet kein
Vermögen für eine teure Plattform ausgeben.
Deswegen suche ich ja nach einer (günstigen) Möglichkeit das zu kompensieren. Wenn man jetzt wie schon vorhin vorgeschlagen einen Kompass nimmt und dem Arduino sagt dreh dich nach rechts 45°
würde das doch gehen er dreht dann halt solange bis die richtige Gradzahl erreicht ist und stoppt dann die Motoren.

Gehen tut es schon, aber irgendwie passt mir

Nur wollte ich für meine ersten Gehversuche auf dem Gebiet kein
Vermögen für eine teure Plattform ausgeben.

und

Wenn man jetzt wie schon vorhin vorgeschlagen einen Kompass nimmt

nicht ganz zusammen.

Aber das Schöne an Arduino und DIY ist ja, dass jeder machen kann was er möchte.

Freu mich auf Updates und lass mal was sehen wie er im Endeffekt dann läuft!

Sensors Buying Guide: Accelerometers, Gyros, and IMUs:
http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=167

Ich bin jedenfalls zu der Erkenntnis gekommen das für mich selber der Kompass die beste Lösung ist. Nur muss es mindestens ein 3 Achsen Kompass sein. Ein Gyro wird in erster Linie zur Flugstabilisierung eingesetzt. Das weis ich von meinem Koaxialmodelhubschrauber. Der steht dank Gyro fast wie eine EINS in der Luft. Da ist dann nichts mit wildem drehen um die eigene Achse.

Der Roboter dreht sich halt nur solange bis die neue Sollfahrrichtung erreicht ist, was fortlaufend durch Kompassabfrage überprüft wird. War es ein Tick zuviel wird halt ein Stück zurück gedreht.
Das Adafruit Motorshield unterstützt 8 verschiedene Geschwindigkeiten wenn ich mich nicht irre.

Was für Sensoren benutzt Du den ?

3-Axis Digital Compass IC HMC5843 Datasheet:

Es gibt auch die Möglichkeit der mechanischen Neigungskorrektur mit zwei ineinader gelagerten Ringen. Das Board im Zentrum des inneren Ringes. Einer kann sich nach vorne und hinten drehen der andere hingegen zur Seite.

Wenn du eh schon einen Kompass nimmst,

schau dir mal folgende Seiten an:
http://blog.deathpod3000.com/2009/04/30/how-to-calculate-distance-and-bearing-to-a-latitude-longitude-waypoint-in-excel/
http://blog.deathpod3000.com/2009/05/19/calculating-bearing-and-distance-to-a-latitude-longitude-waypoint-with-avr-atmega-c/

Vermutlich wirst du das später mal brauchen :wink:

PS:
@Megaionstorm
Ich finde die Idee mit den zwei Ringen ausgezeichnet. So könnte man einen 2-Achsen Kompass schön waagrecht halten.

Aber eine prinzipielle Frage stelle ich mir noch:
Wenn man einen DC Motor nimmt, bekommt man doch um die Motoren rum Magnetfelder, oder? Und wenn man zwei Ringe aus Metall macht, spielt man noch mehr an Magnetfeldern rum.
Wie weit weg muss denn so ein kleiner Kompass von einem Motor sein, damit der nicht das Ergebnis verfälscht?
Oder kann man die Motoren so in Alu Einwickeln, dass sie den Kompass nicht mehr stören???

Hi,

danke für die vielen Antworten ich denke ich werde es mal mit dem Kompass versuchen, da lerne ich dann auch gleich I²C :wink:

Ich melde mich sobald ich es zu laufen gebracht habe, oder auch wenn ich es nicht habe und hilfe brauche :wink:

BTW: Kennt jemand noch einen deutschen Versand der Sparkfun Produkte hat ausser TinkerSoup?

Sparkfun Artikel bei Watterott:

Sparkfun Artikel bei Lipoly:
http://www.lipoly.de/index.php?main_page=index&cPath=880_883