- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Sensor Fusion von verschiedenen Winkelpositionsgeber

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Chris,


    Ich dachte bis vor kurzem, das der Kalman-Filter ein statisches Verfahren ist,
    welches verschiedene Sensorinformation zu einer gemeinsamen Information "verheiraten" kann.
    Das war wohl schlecht ausgedrückt. Klar kann ich nur Äpfel mit Äpfel "addieren", im realen Leben gibt es
    beim Mischen Gemüsesalat und in der Mathe nur "Blödsinn".

    Ich habe hierbei mehrere Winkelinformation, welche ich von verschiedenen Sensoren bekomme.
    Derzeit will ich halt mit den Beschleunigungsdaten des CMPS10 den errechneten Winkel des Gyro ADXR620 (analog) stabilisieren.

    Hier mal ein Datenauszug eines erstellten Log. Das Board stand stabil ohne Bewegung.
    accelerometer[0] accelerometer[1] accelerometer[2]
    28670 16380 12355
    8190 24572 4163
    -8195 8188 -12221
    8190 28668 -24509
    12286 12284 28739
    12286 -20484 20547
    -12291 24572 -12222
    8190 24572 24643
    12286 -32772 12355
    -2 -28676 4163
    12286 24572 -16317
    20478 28668 -16317
    16382 16380 24643
    16382 12284 -12221
    12286 -28676 20547
    28670 12284 -28605
    4094 28668 -4030
    -4099 28668 -12221
    -8195 12284 -28605
    4094 -24580 -28605
    -2 24572 4163
    8190 20476 67
    -2 24572 -28605
    16382 16380 -32701
    -2 -16388 -28605
    -32770 -24580 67
    -2 24572 4164
    16382 -28676 -16317
    12286 4092 16451
    -2 28668 16451
    4094 12284 68

    Ich habe schon einige Lösungen gesehen, wo der Mittelwert des letzten Messungen genommen wird.
    Ich könnte, wenn überhaupt einen fliessenden Mittelwert berechnen, da ich sonst zu langsam wäre,
    wenn ich erst 5 Messungen via seriell einlesen muss, um einen Wert zu bekommen.

    Viele Grüße

    R.
    Kaum macht man es richtig, schon funktioniert's ...

  2. #12
    HaWe
    Gast
    erklär doch mal bitte, wie du mit Accelerometerwerten Winkeldaten stabilisieren willst.
    Natürlich nennt man ein Verfahren, das so etwas kann, "sensor fusion", und Kalman-Filter wären tatsächlich ein Verfahren dafür.
    Und es soll ja tatsächlich Lösungen dazu geben, aber mir ist nicht klar, wie du die Verbindung zwischen geradliniger Beschleunigung (durch Gravitation oder Geschwindigkeitsänderung) und Dreh-Winkeln herstellen willst.
    In dem Beispiel oben wird der atan angeführt, ich verstehe aber ehrlich nicht, was der damit zu tun haben soll.

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hi,

    könnte es sein, dass du die / den / das Endianness falsch interpretierst / programmierst? Sieht für mich ein bisschen danach aus.
    Diese Werte sind definitiv von keinem funktionsfähigen Acc, der stabil auf dem Tisch liegt.

    Gruß
    Chris

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hallo,

    @HaWe
    Da dieser Sensor die Beschleunigung misst, kann man anhand der Beschleunigung innerhalb einer Zeiteinheit eine Wegänderung errechnen (1g = 9.81m/s).
    Der Sensor gibt die Wegänderung für jede Achse aus. Mich interessiert nur die Änderung der "X Achse", je nach Betrachtung.

    Schau hier mal nach: http://www.pololu.com/product/1250/resources
    Dort ist ein Projektfile Namens : LSM303DLH-orangutan-example-code

    hier ein Teilstück aus dem Quellcode:

    // Returns a heading (in degrees) given an acceleration vector a due to gravity, a magnetic vector m, and a facing vector p.
    int get_heading(const vector *a, const vector *m, const vector *p)
    {
    vector E;
    vector N;

    // cross magnetic vector (magnetic north + inclination) with "down" (acceleration vector) to produce "east"
    vector_cross(m, a, &E);
    vector_normalize(&E);

    // cross "down" with "east" to produce "north" (parallel to the ground)
    vector_cross(a, &E, &N);
    vector_normalize(&N);

    // compute heading
    int heading = round(atan2(vector_dot(&E, p), vector_dot(&N, p)) * 180 / M_PI);
    if (heading < 0)
    heading += 360;
    return heading;
    }
    Da der Kompass CMPS10 den LSM303 als Beschleunigungs und Magnetfeld Messung verwendet,
    kannst Du sicher auch das hier gebrauchen, um die Sache besser zu Verstehen:
    http://www.pololu.com/file/0J434/LSM...s-app-note.pdf

    @Chris
    Endianness, das ist eine Möglichkeit, das prüfe ich gerade. Den diese Werte machen für mich keinen Sinn, aber der ausgegebene Kompasswert des CMPS ist korrekt.
    Er muss also korrekt arbeiten, da der Drift korriegiert ist.

    Gruss R.

    - - - Aktualisiert - - -

    Vielen Dank Chris für diesen Hinweis:

    Das sieht jetzt besser aus.

    -832 -224 17344
    -656 -240 17472
    -704 -256 17280
    -720 -560 17072
    -672 -560 17504
    -688 -544 17440
    -816 -576 17408
    Code:
                        m_AtmegaStatus.accelerometer[0] =(int) (int)(m_RS232_Buffer[4]  + (int) (m_RS232_Buffer[5] << 8)); // get the Acc X
                        m_AtmegaStatus.accelerometer[1] =(int) (int)(m_RS232_Buffer[6]  + (int) (m_RS232_Buffer[7] << 8)); // get the Acc Y
                        m_AtmegaStatus.accelerometer[2] =(int) (int)(m_RS232_Buffer[8]  + (int) (m_RS232_Buffer[9] << 8)); // get the Acc Z
    So ist es richtig.

    Gruss R.
    Geändert von Ritchie (19.11.2014 um 21:59 Uhr) Grund: Bemerkung und Tabelle überarbeitet, Links eingefügt
    Kaum macht man es richtig, schon funktioniert's ...

  5. #15
    HaWe
    Gast
    das ist mir völlig klar!
    eine Beschleunigung ist die Differenzierung der Geschwindigkeit nach der Zeit bzw. die Geschw. ist die Integration der Beschleunigung über die Zeit ( a = dv / dt oder v = da x dt)
    die doppelte Integration der Beschleunigung über die Zeit ergibt den zurückgelegten Weg ( s = 1/2 da x dt²)

    aber sie ergibt keinen Winkel!
    die Integration oder Differenzierung ergibt immer Vektoren, die bezeichnen einen Wert (Skalar) und eine (geradlinige ) Richtung !

    also wie willst du einen gedrehten Winkel und einen zurückgelgten Weg ( oder gerichtete Geschwindigkeit oder gerichtete Beschleunigung ) zueinander in Beziehung setzen?
    sicherlich geht es irgendwie, wenn man die 3D-Matrix der acc-Werte irgendwie zueinander in Beziehung setzt und weiß, in welcher räumlichen Lage sich der Sensor im 3D Raum befindet, was man auf schrägem Untergrund oder - im Extremfall - fliegenden Objekten aber nie sicher wissen kann)

    Im Übrigen müssen bei einem ruhenden horizontal waagerecht gelagerten acc-Sensor:
    2 Werte Null sein (horizontal geradeaus und horizontal quer zur Orientierung)
    1 Wert 1 g = 9,80665 m/s² betragen (senkrecht zur Lage, gerichtet auf den Erdmittelpunkt). (edit: sry, verschrieben)

    Wo stehen diese Werte bei dir?
    Geändert von HaWe (19.11.2014 um 22:39 Uhr)

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Also ich versteh dein Problem nicht, du gibst dir doch schon selbst die Antwort:

    Im Übrigen müssen bei einem ruhenden horizontal waagerecht gelagerten acc-Sensor:
    2 Werte Null sein (horizontal geradeaus und horizontal quer zur Orientierung)
    1 Wert 1 g = 9,80665 m/s² betragen (senkrecht zur Lage, gerichtet auf den Erdmittelpunkt). (edit: sry, verschrieben)
    Daraus lässt sich der aktuelle Winkel berechnen (bzw. dessen Mittelwert, wenn der Acc in Bewegung ist oder Vibrationen nahe der Resonanz vorhanden sind) mit dem atan.

    Gruß
    Chris
    Geändert von Che Guevara (19.11.2014 um 22:51 Uhr)

  7. #17
    HaWe
    Gast
    NIEMALS lässt sich daraus so einfach der Winkel errechnen !!!
    Oder beweise die mathematischen Zusammenhänge !!
    (Winkel = gedreht um die senkrechte Raumachse = heading)

    ich geb dir mal was zu lesen:
    hier ist eine Publikation, die ich schon etliche Jahre kenne, und die Accelerometer und Gyros per Sensor Fusioning per Kalman Filter integriert. Da siehst du, um was es prinzipiell geht:

    sie ist hier mal wieder zu groß (Mann, Moderatoren, ändert mal die Defaults !!!) , ich verlinke sie woanders, da musst du dich wschl nur registrieren um sie zu lesen...

    http://www.mindstormsforum.de/viewtopic.php?f=78&t=8432
    Geändert von HaWe (19.11.2014 um 23:13 Uhr)

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Sorry, aber so etwas von sich zu geben, OBWOHL
    - schon viele viele Leute das erfolgreich implementiert haben
    - der Zusammenhang u.a. in dem Link, den ich schonmal gepostet hatte, dargestellt ist
    zeugt nicht von viel Ahnung.

    Zitat Zitat von HaWe
    (Mann, Moderatoren, ändert mal die Defaults !!!)
    Anscheinend solltest du mal an deinem Ton feilen, hab das schon in einem anderen Thread beobachtet, dass ein Forum wohl nicht unbedingt der beste Platz für dich ist.

  9. #19
    HaWe
    Gast
    bin daran gewöhnt, bin selber admin und Moderator. Außerdem geht dich das nichts an.
    i.Ü. zeig einfach mal, wie der Zusammenhang zwischen Drehung um die senkrechte Achse und acc-Werten ist, und alles ist gut.

    edit: dass es grundsätzlich iwie geht, bestreite ich nicht, aber wie und warum - das bleibt zu zeigen.
    Geändert von HaWe (19.11.2014 um 23:13 Uhr)

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Also wenn du um die AccZ-Achse (senkrecht) drehst, merkst du das in den Daten nicht, um das gehts hier aber nicht, sind Äpfel und Birnen.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Fusion PID und RC Signale Quadrocopter
    Von jojoho im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 22.04.2013, 23:16
  2. EasyPIC Fusion: Entwicklungssystem für drei Architekturen
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 25.09.2012, 00:00
  3. Kugelautomat @ Fusion Festival 2011
    Von Brantiko im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 26.08.2012, 17:58
  4. IMU Fusion Board - ADXL345 & IMU3000 --> gut geeignet?
    Von Che Guevara im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 25.07.2011, 16:07
  5. LCD Anzeige von verschiedenen Sensoren
    Von alex007 im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 6
    Letzter Beitrag: 05.12.2006, 22:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test