Habe mir als erstes Projekt eine Anzeige für das Motorrad ausgesucht die
mir Roll und Pitch Winkel ausgibt. Also für Schräglagen- und
Wheeliewinkel.
Nun stellt sich das Ganze doch als ultra kompliziert heraus und ich bin
kurz davor das ganze sein zu lassen........... Sad
Habe das ganze mit dem MPU6050 halbwegs hinbekommen allerdings sehr
ungenau über die Integration der Winkelgeschwindigkeit vom Gyroskop. Da
das ganze aber schon ne Stunde genau laufen soll war das nix weil der
Drift schon sehr sehr sehr groß ist (Bei mir zumindest).
JETZT DIE EIGENTLICH FRAGE:
Gibt es wirklich keinen Sensor auf diesem Planeten der mir den Roll und
Pitch Angle/Neigung um X und Y Achse WÄHREND EINER BESCHLEUNIGUNG
ausgeben kann?
Muss das immer über IMU geschehen? Wenn ja hat jemand vlt ein komplettes
Beispiel wie das mit einem MPU6050 genau gemacht wird? Bei mir Driftet
das ganze viel zu stark. Und für die den Wheeliewinkel weiß ich
überhaupt nicht wie ich das ganze machen soll...
Wie wird das denn bei Dronen gemacht? Die Beschleunigen doch noch viel
stärker und brauchen doch auch diese Daten oder nicht? Verstehe nicht
warum es dazu keine Beispiele gibt ... Versuche schon seit 5 Tagen das
Problem zu lösen und drehe bald durch :D
Vielen Dank!
Mirco
Hallo,
den Winkel misst man auch nicht über die Integration von dem Gyro
sondern über die (Erd)beschleunigungsmessung. Aus den drei
Beschleunigungen kann man mit Winkelfunktionen den Winkel von dem
Motorrad berechnen.
Dieser wird jedoch durch das Beschleunigen und Abbremsen von dem
Motorrad verfälscht. Das kann man jedoch mehr oder weniger gut
kompensieren indem man Gyro&Beschleunigungswerte verwendet und diese in
einem Kalman-Filter fusioniert.
Klingt kompliziert? -> gibt eine fertige Arduino Library dazu :-)
Meinen Code brauche ich glaube ich nicht hochladen :D. Wie gesagt ist
wirklich sehr ungenau...
Wo finde ich solche Libarys den? Ich benutze übrigens einen Arduino
Mirco Gemmeke schrieb:> und in dem Sketch ist dann der Karma Filter angewendet und das ganze> sollte dann auch während der Beschleunigung genau sein?
Du hast nie gesagt wie genau es sein muss ;-)
Das kann ich dir leider nicht sagen. Musst du einfach probieren. Das
Programm ist ja in kurzer Zeit geschrieben und eine Runde fahren zählt
ja nicht als Arbeit
Wolfgang schrieb:> Mit Karma Filter kommst du da nicht weiter.
Mit gutem Karma findet er auch Leute in dem Forum hier die ihm helfen.
So rein klassisch, wenn man grade auf dem Motorrad sitzt: mit y> 0
beschleunigen, z quer zur Fahrtrichtung, X= 1g
z bleibt immer 0, sonst würde man umkippen.
X vergrößert sich bei Kurvenfahrten
Beim beschleunigen/bremsen ist x 1g und y > bzw< 0.
Bergauf und bergab ist y auch > bzw < 0, aber x entsprechend kleiner,
die Quadrate in Summe 1.
So kann man indirekt diese Fälle unterscheiden.
Beschleunigungen am Berg sehen jedoch teilweise ähnlich aus ... Und wenn
ich die Maschine neige (mit mir als Gegengewicht), z.b. bei
Geradeausfahrt, dann muss ich z auch berücksichtigen ...
Sensor fusion ist das Stichwort ! Mit den gyro haben sie schon die
Basis, nur das driften muss du noch kompensieren. Das geht einfach ueber
die acc-sensoren : arctg(acc-x,acc-y) gibt auch die Neigungswinkel aus.
Diese wird naturlich beinflusst durch der Beschleunigung, aber die
Mittelwerte ueber langere Zeit ist richtig ! Beide zusammen gibt dan die
Losung :
Neigungswinkel = 0.99*(Gyro-Integration)+0.01 Arctg(Acc-x,Acc-y)
Grosse von 0.99/0.01 bestimmt die Menge von driftcompensation.
Wie immer steckt den Teufel in detail : gans wichtig ist die
offset-compensation : Beim Stillstand gibt den gyro immer noch eine
offset an. Diese muss vermessen werden und compensiert. Auch die acc hat
einen offset, diese muss auch kompensiert werden.
Jetzt ist G. schrieb:> Eigentlich ist die Neigung doch schon ueber Geradeausgeschwindigkeit,> Geradeausbeschleuningung und Kurvenradius gegeben ..
Aber nicht der Pitch-Winkel. Wie genau man den Kurvenradius messen kann
oder müßte anhand der Stellung des Lenkers kann ich jetzt aber schlecht
abschätzen, vielleicht hilft da aber auch ein Kompass.
RP6conrad schrieb:> Acc-y
Mit Y meinst Du sicher quer zur Fahrtrichtung. Wann sollte da jemals
eine Beschleunigung auftreten bei einem Motorrad? Es würde umkippen.
Allenfalls wenn der Fahrer ein Gegengewicht aufbaut, also sich seitlich
ans Motorrad klammert oder extrem seitlich überbeugt. Das kommt aber als
Messunsicherheit hinzu und ist kein Indiz für irgendwas.
Jetzt ist G. schrieb:> Ja, das Winkelmass. Also Stuetzrollen (oder so) flexibel montieren, und> den Winkel messen...
Ist aber ein anderer Winkel. Darüber wurde auch noch gar nicht
gesprochen: Soll der Winkel zur Straße oder zur Horizontalen gemessen
werden?
Vielleicht ginge statt den Stützrädern ein geschickt angebrachter
Laser-Entfernungsmesser auf jeder Seite.
Ich kann mich noch daran erinnern, dass es genau so eine Diskusson hier
schon mal gab. War glaub diese:
Beitrag "Schräglagensensor für's Motorrad: Wie funktioniert so etwas?"
Man könnte Kameras anbringen und versuchen den Horizont zu erkennen
und/oder aus Bauwerken horizontale und vertikale Linien zu extrahieren
(eine Häufung von Linien die alle parallel oder orthogonal zueinander
verlaufen).
Das wird allerdings schwierig im hügeligen Gelände, aber dann könnte man
immer noch versuchen Sonne, Mond und Sterne anzupeilen oder bei
Bewölkung die Richtung mehrere bekannter geostationärer Satelliten.
Wir schreiben hier über Wheelies: Fahren auf dem Hinterrad.
Kurze Anmerkungen dazu:
# Längsachse des Fahrzeugs != Achse in Fahrtrichtung
# Querachse des Fahrzeugs repäsentiert nicht (allein) die
Zentripetalkräfte.
# Sagitalachse des Fahrzeugs zeigt auch ohne Umkippen einen Wert != 0
an, da Zentripetalkräfte auch hier einwirken.
# "Kippen" des Motorrad mit gleichzeitigem Ausgleich durch andere Kräfte
(z.B. Gewichtsverlagerung) ist ein normaler Betriebszustand beim Wheelie
Tja, wer misst misst Mist…
Metrologie (nicht Meteorologie) ist ein spannender Bereich. Ist halt
immer alles nicht so einfach. Messen kann man immer nur die
physikalischen Größen, die einem zur Verfügung stehen und die decken
sich nicht unbedingt mit der Begriffswelt unseres Alltags.
Also entweder man stellt einen äusseren Bezugsrahmen her zu dem man
relativ misst, oder man lebt mit den Kräften die bei einer inertialen
Messung zur Verfügung stehen. Abhängig von der Auflösung kann einem da
dann auch die Korioliskraft durch die Erddrehung den Messwert versauen…
Mirco Gemmeke schrieb:> Gibt es wirklich keinen Sensor auf diesem Planeten der mir den Roll und> Pitch Angle/Neigung um X und Y Achse WÄHREND EINER BESCHLEUNIGUNG> ausgeben kann?
Na ja, 2 (Laserintertial)gyroskope aka Kreiselkompasse. Muss man nur
gelegentlich nullen.
Ein normales Gyro (Erd)Beschleunigungsmesser jedenfalls nicht.
Mirco Gemmeke schrieb:> Gibt es wirklich keinen Sensor auf diesem Planeten der mir den Roll und> Pitch Angle/Neigung um X und Y Achse WÄHREND EINER BESCHLEUNIGUNG> ausgeben kann?
Gibt es. Aber nur als IMU mit GPS. In dem Fall hast du nämlich eine
globale Informationsquelle. Zb die Geradeausgeschwindigkeit und
Position. In dem Fall macht Dynamik tatsächlich die Winkelbestimmung
besser. Kostet aber, geht bei 1000 Euro los, zb bei xsens.
Kannst du auch selbst bastelen, mit ein MPU6050 und ein GPS module.
Kostet < 25€. Aber hier auch gibt ein Problem : diese GPS hat auch ein
relatif grosse "lag". Mit eine Ublox M8n habe ich ca 400 ms "lag"
vermessen, selbst bei eine output auf 10 Hz ! Den "lag" erkannt men
durch die Zeitverschiebung von IMU heading und GPS-heading.
GPS / IMU Versuchen : https://www.youtube.com/watch?v=5vCAOM6f5UE
Ich werfe Mal den BNO055 in den Raum da ich den vor kurzem Mal gesehen
habe. Da übernimmt der M0 auf dem Chip die Fusionierung für dich. So wie
ich das lese bekommt man da auch die bereinigten Winkel.
Ansonsten wurde ja Kalman schon genannt. Direction Cousine Matrix ist
auch noch ein Stichwort.
RP6conrad schrieb:> Den "lag" erkannt men durch die Zeitverschiebung von IMU heading und GPS-> heading.
Das GPS-Heading wird immer eine Verzögerung haben, weil es ja gar nicht
direkt gemessen wird, sondern nur aus der Differenz der aktuellen
Position und früher gemessenen Positionen berechnet werden kann. Damit
ist das Heading immer erstens ein veralteter Wert und zweitens kein
Momentanwert, sondern ein Durchschnitt über eine gewisse Zeit.
Klar kann man das selbst bauen, aber das Zustandsraummodell mit GPS ist
nicht mehr trivial und die Fusion wird sicher nicht mehr durch
Komplementärfilter gemacht.
Fürs laggende GPS Signal braucht man einen time delayed Kalman Filter,
das aktuelle heading wird eh über den Gyro berechnet und ist somit mehr
oder weniger akkurat.
Einfach eine Schippe beliebige alte Bauelemente in den Ansaugtrakt
schütten. Nach einer kurzen Testfahrt ist die Beschleunigung und der
Wheelie-Winkel (hahahaha, wer will den so'n Scheiß wissen) gleich Null
und die Berechnung wird viel einfacher.
RP6conrad schrieb:> Aber hier auch gibt ein Problem : diese GPS hat auch ein> relatif grosse "lag". Mit eine Ublox M8n habe ich ca 400 ms "lag"> vermessen, selbst bei eine output auf 10 Hz !
Das dynamische Verhalten hängt natürlich vom beim Navigation Mode
eingestellten dynamischen Modell ab.
Mit welcher Einstellung hast du die 400ms gemessen?
Ich habe das standard eingestellte Platform genutzt (Portable). Ich gehe
davon aus das "lag" und "genauigkeit" von ein gps stark zusammen hangen
: Bei kleine "lag" wird die genauigkeit negatif beinflusst. Steht auch
so in der Manual von Ublox. In meine gps-rover habe ich ein IMU, diese
ist recht schnell fur die actuelle Heading (lag < 20 ms). Damit kan ich
leben mit den grosse GPS-lag.
Rolf M. schrieb:> Jan K. schrieb:>> das aktuelle heading wird eh über den Gyro berechnet>> Oder über einen Kompass.
Nö, der ist zu langsam und rauscht ordentlich. Der wird normalerweise
nur benutzt um den Gyro Drift zu kompensieren.
Ich melde mich mal wieder zurück :D.
Es geht um den Winkel zur horizontalen nicht zur Straße.
Da ich mit dem ganzen Spaß wie gesagt erst angefangen habe schließe ich
es aus das ich verschiedene Sensorsignale (GPS+Gyro+Acc) selber weiter
auswerte und verschiedene Filter anwenden gescheit anwenden kann.
Das ist für mich am Anfang noch zu schwierig. Dabei muss ich zu viel
berücksichtigen da kommt nachher nix gescheites bei rum.
Aber ich habe mich ein wenig schlau gemacht und es gibt (zumindest laut
Versprechung der Datenblätter) da doch einen "dynamischen
Neigungssensor".
Allen voran den hier:
https://www.hillcrestlabs.com/downloads/bno080-datasheet
Da steht unter 2.1.1
----------------------------------------------------------------
"2.1.1 Acceleration Outputs
The 3-axis accelerometer measures the acceleration of the device (note
that the accelerometer will measure
gravity as acceleration). BNO08X calibrates the accelerometer output to
improve the data reported. BNO08X will
report this acceleration aligned to the coordinate frame of the device.
BNO08X can (after fusing data with the
gyroscope) separate gravity from this acceleration, thus providing the
BNO08X with the following acceleration
outputs:
• Calibrated Acceleration (m/s2
). Acceleration of the device including gravity
• Linear acceleration (m/s2
). Acceleration of the device with gravity removed <------ !!!!!!
• Gravity (m/s2
)
• Raw uncalibrated accelerometer data (ADC units). Used for testing"
------------------------------------------------------------
Damit sollte ich ja in der Lage sein die Einflüsse der Beschleunigung zu
entfernen und nur mit der Aufteilung der Erdanziehungskraft den Winkel
auszurechnen.
Allerdings ist es eigenartig das da "Calibrated Acceleration" steht. Die
Erdanziehungskraft wird ja von jedem Beschleunigungssensor mit erfasst.
Das ist ja das Problem :D. Das calibrated müsste also eigentlich vor
Linear acceleration.
Allerdings.... steht da auch immer nur für tragbare Geräte und das macht
mich ein wenig stutzig ...
Hat schon jemand Erfahrungen mit dem Sensor?
Vielen Dank für eure Beiträge
Mirco
Nein, so einfach ist es nicht. Du hast diesen 3 Achsen sensor auf einem
Motorrad. Vorwaerts = x, hinauf = y, nach links = z.
Das Motorrad steht. die Erdbeschleunigung erscheint nur auf dem y. x & z
sind Null.
Du faehrst ohne Beschleunigung im Kreis. Die Beschleunigung in x ist
Null, der Wert von y etwas groesser wie die Erdbeschleunigung. z ist
immer noch Null.
Es gibt so keinen Unterschied zwischen einer Links- oder Rechtskurve.
Und dann gibt's auch noch Bodenwellen. Die wackeln auch an der Y
Beschleunigung.
Verstehe nicht so ganz was du meinst ...
sobald mir das Ding relativ genau die Erdbeschleunigung in den
verschiedenen Achsen während der Bewegung/Beschleunigung ausgeben kann
und damit nicht mehr von der Beschleunigung in Kurvenfahrten
beeinträchtigt wird kann ich meinen Winkel ja berechnen dann wäre es ja
so als würde ich stehen.
Ob ich mich nach links oder rechts lehne ist mir eig egal.
Die Frage ist halt ob er das kann. So wie ich die Beschreibung im
Datenblatt verstehe schon ... allerdings verstehe ich nicht warum ich
dazu im Internet kaum was finde... ob es gescheit funktioniert.
Bei dem Vorgänger BNO055 gab es ja zahlreiche Probleme das eben genau
das nicht funktioniert...
Aber über den BNO080 finde ich halt irgendwie nicht wirklich was außer
die Versprechung das es geht :D. Aber kaum Erfahrungsberichte.
Mit den Bodenwellen muss ich dann vermutlich leben... aber zum Glück
sind die Straßen in Deutschland ja relativ gut ... und bei Bodenwellen
fahre ich mit dem Motorrad ja eh vorsichtig.
Jetzt ist G. schrieb:> Nein, so einfach ist es nicht.
Deshalb wird ja die Sensorfusion mit dem Gyro und dem Magnetometer
gemacht.
> Du hast diesen 3 Achsen sensor auf einem Motorrad. Vorwaerts = x, hinauf> y, nach links = z.
Typisch im Fahrzeugbereich (zumindest beim PKW) ist eher y nach links
und z nach oben.
> Das Motorrad steht. die Erdbeschleunigung erscheint nur auf dem y. x & z> sind Null.> Du faehrst ohne Beschleunigung im Kreis. Die Beschleunigung in x ist> Null, der Wert von y etwas groesser wie die Erdbeschleunigung. z ist> immer noch Null.
Das gilt aber nur, wenn der Fahrer auch in der Kurve exakt gerade auf
dem Motorrad sitzen bleibt und der Reifen eine Breite von 0 hat. Das
wurde übrigens auch in dem von mir oben verlinkten Thread thematisiert.
> Es gibt so keinen Unterschied zwischen einer Links- oder Rechtskurve.
Für den Accelerometer nicht, aber für den Gyro und den Magnetometer
schon.
Mirco Gemmeke schrieb:>> Die Frage ist halt ob er das kann. So wie ich die Beschreibung im> Datenblatt verstehe schon ... allerdings verstehe ich nicht warum ich> dazu im Internet kaum was finde... ob es gescheit funktioniert.>> Bei dem Vorgänger BNO055 gab es ja zahlreiche Probleme das eben genau> das nicht funktioniert...>> Aber über den BNO080 finde ich halt irgendwie nicht wirklich was außer> die Versprechung das es geht :D. Aber kaum Erfahrungsberichte.
Der kann das nicht perfekt. Um die Gravitation abzuziehen brauchst du
die Lage im Raum, relativ zur Gravitation. Das ist ein Henne Ei Problem.
Das versucht jede andere IMU genauso mehr oder weniger gut. Wie gesagt,
ohne GPS ist es nicht möglich, beliebig lange eine korrekte Orientierung
zu berechnen.
Mirco Gemmeke schrieb:> Das ist für mich am Anfang noch zu schwierig. Dabei muss ich zu viel> berücksichtigen da kommt nachher nix gescheites bei rum.
Die Idee mit dem MPU nicht umgesetzt?
Die Arduino Lib macht alle. Sensor auslesen, kalibrieren, fusionieren,..
Du musst den Sensor nur anstecken (4 Kabel. Noch nicht mal Widerstände
oder dergleichen) und das Testprogramm downloaden -> Fertig.
Guten Tag,
erstmal wieder vielen Dank für eure Beiträge.
Seid wirklich eine fleißige Community :). Und vielen Dank das ihr so
geduldig mit mir Greenhorn seid :).
@MiMa:
leider nicht... habe mir die Sachen runtergeladen die du gepostet hast.
Aber so komplett plug & play ist es irgendwie nicht. Vermutlich bin ich
einfach ein wenig zu blöd :D.
Waren ja der Link hier:
https://github.com/TKJElectronics/KalmanFilter/tree/master/examples/MPU6050
Generell finde ich es bei den Libarys und Sketches von Github ein wenig
komisch. Die Leute schreiben so schöne Programme aber es gibt dann keine
gescheite Datein über z.B. die Befehle die man aus der Libary verwenden
kann :D.
Liegt wahrscheinlich an mir da ja anscheinend sonst keiner Probleme
damit hat aber z.B. bei dem Link oben.... Wo sehe ich quasi was ich
machen muss damit das Ding läuft?.
Muss doch irgendwie ne Anleitung geben. Zum Beispiel finde ich auch nix
zu dem Testprogramm was du meintest. Außerdem weiß ich nicht was das
i2c.ino sein soll....
Und welches Testprogramm?
Nochmal zum BNO080: So wie ich das bis jetzt verstanden haben kann er
das auch nicht soooo super gut richtig? Weil dann will ich die 30 Euro
auch nicht einfach so verpulvern.
Habe mich jetzt mal durch alle Links von dem Github link durchgeklickt
und schließlich noch das hier gefunden.
http://arduino.cc/forum/index.php/topic,58048.0.html
Dort verwendet er aber ein anderes Board. Ich nehme das GY-521. Ist das
egal?
Auch schreibt er das 3,3V angeschlossen werden müssen sonst wird es
zerstört. Ich habe an Vcc einfach die 5v angeschlossen. Habe ich in
einigen Videos aber auch so gesehen.
Mirco Gemmeke schrieb:> leider nicht... habe mir die Sachen runtergeladen die du gepostet hast.> Aber so komplett plug & play ist es irgendwie nicht. Vermutlich bin ich> einfach ein wenig zu blöd :D.
Einfacher/schneller als mit diesem Sensor und der Lib wirst du es nicht
schaffen.
Öffne die Arduino IDE (Die hast du hoffentlich schon heruntergeladen und
installiert?). Dann gibt es irgendwo Add lib oder so ähnlich. Dann
einfach die verlinkte MPU lib nehmen und unter examples das Testprogramm
öffnen.
Das sollte, selbst für absolute Neulinge in einer halben Stunde machbar
sein :-)
Ja klar hab ich Arduino installiert ... habe es ja auch schon getestet
und auch schon das ein oder andere gemacht :D.
Versteh das folgende bitte nicht falsch :). Ich fasse mich nur kurz.
Nicht das du denkst das ich eingeschnappt bin oder so.
Bin sehr froh das du/ihr mir helft.
Also:
Das hier war dein Link:
https://github.com/TKJElectronics/KalmanFilter/tree/master/examples/MPU6050
1. Wo ist da eine MPU.h?
Das ist doch nur ein Beispielsketch. Also keine eigene bib oder. Für den
Sketch allerdings braucht man seine "Kalman.h" Bib. Die hab ich auch
runtergeladen und installiert.
2. Wenn ich jetzt MPU6050.ino ausführe sagt der mir beim kompilieren das
er mit i2cwrite nix anfangen kann.
3. Deswegen hab ich den code von i2c.ino einfach vor void.setup gehauen
dann gabs nur kaudawelsch und nach umstellern der Seriellen Konsole auf
115200 Baud bekomme ich jetzt Werte raus.
Allerdings schmiert mein Arduino(also das Programm am PC, der
Microcontorller glaube nicht) dann immer nach einer gewissen zeit ab und
brauch plötzlich 500 mb arbeitsspeicher ist das dann weil die Serielle
Konsole so schnell "vollläuft".
Also hab ich dann das ganze getrennt ausgeführt erst das i2c.ino dann
das mpu6050.ino und es klappt!!!!!!!
An dieser Stelle schon mal vielen vielen vielen vielen Dank!!!!!!!!!!!!
Vor allem an MiMa!
--------------------------------------------------------------------
Jetzt muss ich mich noch ein wenig mit dem Code auseinandersetzen...
Mir werden im Moment 4 Winkel für Roll und 4 Winkel für Pitch ausgegeben
die alle unterschiedlich berechnet werden.
Gibt es davon jetzt schon einen den ich am besten für meinen Zwecke
verwende? Vermutlich nicht direkt oder?
Wahrscheinlich muss ich z.B. für die Berechnung im Stand eine andere
Winkelberechnung verwenden korrekt? In dem Fall reicht ja der
Beschleunigungsmesser. Das Gyro führt in dem Fall ja nur zu Fehlern.
Aufgabe für mich wäre es also je nach Situation einen der 4 Ausgegebenen
Winkel pro Achse auszuwählen?!
Dafür muss ich dann wissen wie welcher Winkel berechnet wird ... dafür
muss ich dann aber die Befehle aus der Kalman.h Bib kennen.
--------------------------------------------------------------------
Das wiederum führt mich zu einer schon oben gestellten Frage.
Wie finde ich jetzt die einzelnen Befehle und deren Funktionsweise
heraus?
Muss ich mir dafür den Code von der Bib angucken oder gibt es da ein
Textdokument zu das ich einfach nicht finde....
Nochmal vielen Dank!
Mirco Gemmeke schrieb:> Das wiederum führt mich zu einer schon oben gestellten Frage.>> Wie finde ich jetzt die einzelnen Befehle und deren Funktionsweise> heraus?> Muss ich mir dafür den Code von der Bib angucken oder gibt es da ein> Textdokument zu das ich einfach nicht finde....
Sowohl die Beschleunigungssensoren als auch die Gyros liefern, jeder für
sich, für deine Anwendung das falsche. Der Kalan Filter kombiniert
jedoch ALLE! Werte zu drei Winkeln.
Roll und Pitch sind davon brauchbar, yaw nur bedingt.
Soweit ich mich erinnere gibt es ein example welches "plug and play"
genau diese kombinierten Werte liefert.
Diese kannst du einfach verwenden. Da musst du nichts mehr selber
berechnen :-)
Kalman ist nicht das Zauberwort.
Auch Kalman verarbeitet nur Neigung und Rotationsbeschleunigung, wobei
die Neigung auch als von der Schwerkraft gegeben angesehen wird.
Die einzige wahre Lösung ist ein Kreiselsystem, welches in der Luftfahrt
als künstlicher Horizont verwendet wird.
Selbst die neusten Urlaubs-Flieger haben dies n och an Bord.
Diese Kreisel gibt es auch mit elektronischem Ausgang, aber das Prinzip
ist unumgänglich.
BB
BB schrieb:> Die einzige wahre Lösung ist ein Kreiselsystem, welches in der Luftfahrt> als künstlicher Horizont verwendet wird.
Wäre mir da nicht so sicher. Kalman leistet erstaunliches.
Ob der gemessene Winkel nun 45° oder 47° ist doch auch egal. Zumal diese
Lösung keine 5€ kostet.
Die käuflichen Motorräder mit Wheelie-Control haben doch wohl kaum ein
Kreiselsystem eingebaut. Diese Aufgabe übernimmt bestimmt ein MPU o.Ä.
mit entsprechend Software.
Abstandsensor ist raus weil einen die Straße ja nicht interessiert.
Zum Kreiselinstrument: Weiter oben wurde das glaube schon angeführt. Das
ist doch ne riesen Kiste oder nicht? Glaube auch das das die modernen
Motorräder irgendwie anders machen.
Oder gibts die Dinger auch in klein ?
Ich werde das ganze mal testen und dann melde ich mich nochmal
So ich beende das Projekt für mich jetzt...
Ergebnisse waren eine Katastrophe ... mit den Vibrationen geht der
Winkel im Leerlauf teilweise auf 60°. Man muss auch dazu sagen es ein
700ccm Einzylinder ist :D der natürlich übel vibriert.
Ich hab das ganze dann nochmal auf dem Fahrrad getestet und selbst da
sind die Ergebnisse nicht gut..... Wenn man das Ding nur mit der Hand
ein wenig hin und her bewegt sind die Ergebnisse ganz okay... aber
ansonsten auch nicht...
Vielleicht lassen sich damit auch ganz gute Ergebnisse erzielen aber ich
wüsste ehrlich gesagt nicht wo ich da anfangen soll.
Trotzdem vielen Dank für die Beiträge.
Na ja, als erstes machst du vom Signal ein FFT und suchst daraus die
störenden Frequenzen raus. Diese bedämpfst du dann mit passenden
Filtern. Das daraus abgeleitete Signal unterziehst du einem Tiefpass.
Schon hast du ein wunderbares Signal mit dem man arbeiten kann :-)
Geht analog wie auch digital...
Mirco Gemmeke schrieb:> Hier kann man sehen das kein Kreiselsystem verbaut ist.
Ohne jetzt das ganze Thread durchgelesen zu haben, aber ich verstehe
nicht was an einem "Kreiselsystem" so kompliziert sein soll. Im Patent
steht übrigens auch dass sie ein Drehratensensor ("Giersensor")
verwenden und die Bremskraft abhängig von der Schräglage regeln (macht
ja Sinn).
Sowas hier reicht doch dafür voll aus:
http://www.analog.com/media/en/technical-documentation/data-sheets/ADXRS610.pdf
Dann noch die Schräglage mit einem Beschleunigungssensor erfassen (Quer
zur Fahrtrichtung)
z.B. sowas hier:
http://www.analog.com/en/products/adxl354.html
und der Rest ist - wie oben beschrieben - einfache
Signalkonditionierung.
Kein Hexenwerk.
Mirco Gemmeke schrieb:> Ich dachte Kreiselsystem und Gyroskop sind was anderes?
Kreiselinstrument ist die deutsche Übersetzung des Fremdwortes.
Ansonsten identische Bedeutung.
Das ganze gibts dann wahlweise als echten in allen Achsen drehbar
aufgehängten Kreiselkompass (groß und schwer) oder als winzige
mikromechanische Apparaturen die mit winzigen zum Schwingenden
angeregten speziell geformten Strukturen die beim Drehen um ihre Achsen
von Corioliskräften verformt werden so daß sich darüber die
Winkelgeschwindigkeit um die jeweilige Achse messen lässt.
Guten Abend Mirco
Ich habe wollte mir mal vor einiger Zeit dasselbe bauen, hab dann aber
nie die Zeit gefunden es umzusetzen.
Wie du mittlerweile gemerkt hast (wie ich selber auch), ist dein Projekt
deutlich anspruchsvoller wie angenommen.
Ich bin bei meiner Suche dann auf folgenden Blog gestossen:
http://www.revenanteagle.org/checksix/gopro-gyrocam/
Der Maker von dieser Gyrocam, hat da ziemlich vieles ausprobiert, und
ist dann darauf gestossen, dass es fast nicht möglich ist, die Werte des
Accelerometer sauber zu filtern. Er setzt deshalb auf den Gyroskop
Sensor. Zur Kalibration nutzt er den Fakt aus (vereinfacht), dass wenn
keine Rotation um die Z-Achse vorhanden ist, auch keine Neigung
vorhanden sein darf, weswegen dann eine Kalibrierung vollzogen werden
kann.
Auf der oben genannten Seite findest du Source-Code, Schematics usw.
Was du suchst ist im Prinzip genau das selbe Problem, wie mit der
Kamera, ausser dass du den Winkel auslesen möchtest, und nicht die
Kamera um den genannten Winkel drehen willst (d.h. du musst den Code so
anpassen, dass die zurückgegebenen Winkeländerungen zusammensummiert
werden, und nicht als Input für den Servomotor verwendet werden)
Auf dem Video im Blog erkennst du auch, dass das Gane ziemlich gut
funktioniert. Ich denke, die Ergänzung für die Wheelie-Neigung, sollte
dann deutlich einfacher sein, da die Zentripetalkräfte um einiges
kleiner sind.
Gruss,
Trembel
Ach ja, mehr Informationen findest du im Source-Code in der how-it-works
Datei. Das ganze macht der mit einem MPU6050 (Code unterstützt aber auch
andere Sensoren)
Mirco Gemmeke schrieb:> So ich beende das Projekt für mich jetzt...
Schade
Mirco Gemmeke schrieb:> Ergebnisse waren eine Katastrophe ... mit den Vibrationen geht der> Winkel im Leerlauf teilweise auf 60°.
Dann verwendest du keinen Kalman! Dieser liefert dir selbst bei starken
Vibrationen brauchbare Ergebnisse.
Mirco Gemmeke schrieb:> Man muss auch dazu sagen es ein> 700ccm Einzylinder ist :D der natürlich übel vibriert.
Die neue hat, verglichen mit den älteren Husky`s, nahezu keine
Vibration. Bei meiner kannst du alle paar Stunden die Schrauben
nachziehen (Oder eben Loctite verwenden) ;-)
Probier doch mal aus ob das Handy bessere Werte liefert. Die verwenden
nichts anderes als was der MPU bietet, nur die Software ist besser.