PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ROBO, balancierender zweirad Roboter



plani
28.02.2008, 11:09
Hallo allerseits

Nach einigem Mitlesen hier wollte ich einmal mein Projekt vorstellen:

http://de.youtube.com/watch?v=3hJyiDPR9Gw

Die Optik ist ein bisschen vom n-Bot abgeschaut. Den Antrieb besorgen zwei
Maxon Getriebemotoren. Der Motortreiber verfügt über einen eigenen
AtTiny2313 Controller. Dieser erhält die Befehle vom Hauptcontroller über eine IIC Verbindung. Der Hauptcontroller ist ein ATmega8. Als Sensoren
kommen ein Piezogyro aus dem Modellflieger und ein Inklinometer zum Einsatz.
Die Signale von den Sensoren werden in der Software zusammengewurstelt (Komplementärfilter, für Kalman war ich zu doof).
Funktioniert aber ansonsten ganz ordentlich. Die Auflösung der Sensorik könnte allenfalls noch etwas feiner sein.
Programmiert ist das ganze mit Bascom AVR.
Was Noch Fehlt: Eine schlaue Odometrie (könnte auch der ATtiny auf dem Driverboard übernehmen).
Dann würde es auch möglich werden gezielt herumzufahren.
Wenn ich dann mal wieder Zeit habe.....

Gruss
Plani

Peach303
28.02.2008, 12:24
Sieht cool aus!

malthy
28.02.2008, 14:16
Sehr schön!

Hast Du geplant, den Code irgendwann offenzulegen? Ich hätte Interesse.

Viele Grüße,
Malte

Festblatte
28.02.2008, 14:33
sieht schick aus

hätte nicht gedacht das man so ein ruhiges verhalten hinbekommt

uwente
28.02.2008, 14:53
kann ich mich nur anschließen, wie verhält sich so ein ding eigentlich auf einer gefällstrecke?

plani
28.02.2008, 19:02
@malthy
Eigentlich nicht, zumindest noch nicht, denn der Code ist nicht sehr leserlich und daher trau ich mich nicht das eifach so zu Veröffentlichen.
Es müsste noch einiges auskommentiert werden, und dazu habe ich im Moment nicht Zeit.

@Festblatte
Es ginge sogar noch Ruhiger, dazu muss ich aber die Sensorik noch etwas überarbeiten.

@uwente
So wie der Stand im Moment ist würde der Roboter auf einer Gefällstrecke
enifach davonrollen. Die Motoren haben noch keine Decoder, daher hat der
Controller eigentlich keine Ahnung, ob der Roboter nun steht oder fährt.
Alles was ihn interessiert ist, dass er senkrecht steht.
Mit einer Geschwindigkeitsmessung währe es dann schon möglich, dass der
Roboter auch auf einer schiefen Ebene Manövrierfähig ist.
Der Geschwindigkeitsregler würde dann dem jetzt vorhandenen Lageregler
den Sollwert vorgeben.

daniel.weber
29.02.2008, 13:18
sieht sehr hübsch aus, auf dem Video ist aber nicht wirklich eine Fahrt zu erkennen, würde ich aber gerne mal sehen :)

JanB
29.02.2008, 16:14
Hallo,
balanciert wunderbar ruhig, dein Robo ! Wirklich Klasse.
Ich habe auch einen balancierenden Zweirad-Robot gebaut.
Mit Lego-NXT, der steht allerdings ziemlich unruhig.
Ich verwende einen Gyro + Odometrie. Jetzt würde ich gern
auch noch einen Beschleunigungssensor einsetzen um die
Lage direkter messen zu können. Kannst du mir etwas genaueres
über das Komplementärfilter sagen ? Mit Kalman habe ich versucht
mich auseinanderzusetzen, aber das ist mir zu hoch. Ich verwende
jetzt einen simplen PD-Regler. Geht zwar, aber eben nur ziemlich
wackelig. Deshalb wäre so ein Filter sicher sinnvoll. Vielleicht hast
du ein Beispiel oder so.

Gruß Jan

plani
29.02.2008, 18:57
@JanB

Ich habe das Filter bei Francisco Lobos Spider Projekt abgeschrieben:


' This is the simplified filtered based on trevor's blackwell project.
' It works OK, but should be changed in the future to a more robust kalman filter.
rate_est = RawGyro - rate_bias ' Real Rate is determine by de-drifting the gyro input.
rate_bias = rate_bias + (rate_est * dt * 0.3) ' the gyro input bias is determine by a proportional integral value from the gyro input.
angle_est = angle_est + (rate_est * dt ) ' Our angle is integrated from the gyro.
angle_est = angle_est + ((rawangle - angle_est) * dt * 0.1) ' We fuse the readings from the gyro 'de-drifted' and the accel 'long term average'.


Ich habe dann die Konstanten getuned, bis die Ausgabe stimmt.....

JanB
01.03.2008, 18:10
@plani:
Vielen Dank für das Beispiel.
Sieht ja einfach und verständlich aus.
Ich werde es mal probieren damit.

Gruß Jan