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 :-)
Laut dem ausschnitt kann man auch einen einfachen Neigungswinkel sensor verwenden?! Zumindest steht da für Modellflugzeuge und Drohen https://books.google.de/books?id=V7coDgAAQBAJ&pg=PT142&lpg=PT142&dq=neigungswinkel+sensor+drohnen+arduino&source=bl&ots=SerW6T_Vl0&sig=RhoSiaUQFdRa-gBwshRPP9cLTWw&hl=de&sa=X&ved=2ahUKEwjtqNDV5OzcAhWu4YUKHZfqCE8Q6AEwCHoECAcQAQ#v=onepage&q=neigungswinkel%20sensor%20drohnen%20arduino&f=false
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: > Nun stellt sich das Ganze doch als ultra kompliziert heraus und ich bin > kurz davor das ganze sein zu lassen........... Sad Ja sad, Physik lässt sich nicht überlisten Siehe: https://de.wikipedia.org/wiki/%C3%84quivalenzprinzip_(Physik)
Mirco Gemmeke schrieb: > Wo finde ich solche Libarys den? Ich benutze übrigens einen Arduino https://github.com/TKJElectronics/KalmanFilter/tree/master/examples/MPU6050
TOP DANKE MiMa und in dem Sketch ist dann der Karma Filter angewendet und das ganze sollte dann auch während der Beschleunigung genau sein?
Kann es sein das ich da noch irgendwas einbinden muss? Eine die Kalman.lib hab ich aber er sagt das er i2C.write nicht kennt. Im gleichen Ordner "Examples" findet man auch noch das hier https://github.com/TKJElectronics/KalmanFilter/blob/master/examples/MPU6050/I2C.ino Muss ich das irgendwie einbinden?
Mirco Gemmeke schrieb: > und in dem Sketch ist dann der Karma Filter angewendet ... Mit Karma Filter kommst du da nicht weiter. https://de.wikipedia.org/wiki/Karma_(Begriffskl%C3%A4rung) Was du suchst, ist ein Filter, dass maßgeblich von Rudolf E. Kálmán entwickelt wurde. https://de.wikipedia.org/wiki/Kalman-Filter Das Prinzip der Sensorfusion wird hier erklärt (Part 2): http://www.brokking.net/imu.html
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 ...
Ein Winkelsensor, der nicht auf einer IMU beruht ? Ja, das Winkelmass. Also Stuetzrollen (oder so) flexibel montieren, und den Winkel messen...
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.
Eigentlich ist die Neigung doch schon ueber Geradeausgeschwindigkeit, Geradeausbeschleuningung und Kurvenradius gegeben ..
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.
:
Bearbeitet durch User
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?"
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
So was hier: http://www.analog.com/media/en/technical-documentation/data-sheets/ADXRS649.pdf müsste doch können, was Du brauchst?
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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 :-)
Mirco Gemmeke schrieb: > Dafür muss ich dann wissen wie welcher Winkel berechnet wird Ziehs dir rein: http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-1 http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-2
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.
Wie wäre es denn mit zwei Abstandssensoren an den Fußrasten? Die haben keine Probleme mit der Beschleunigung und messen ausschließlich die Schräglage.
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.
Aber: https://www.bosch-mobility-solutions.de/de/produkte-und-services/zweiraeder-und-powersports/fahrsicherheitssysteme/motorrad-stabilit%C3%A4tskontrolle/ Hier kann man sehen das kein Kreiselsystem verbaut ist. Es geht über die Messung der Beschleunigung und Winkelgeschwindigkeit.
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.
:D. Für dich vermutlich nicht... Für mich ist das im Moment noch mehr als Hexenwerk :D Aber trd danke
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.