Ich möchte die Position eines (Spielzeug) Mootorbootes auf einem See bestimmen. Als Sensoren habe ich eine 9 DOF IMU (Beschleunigung, Gyro, Kompass) und einen GPS Empfänger. Das ganze soll auf einem µC erfolgen - ATmega oder wenn nötig STM32. Um das Rad nicht neu zu erfinden, habe ich mich mal nach Code für die Sensor Fusion umgeschaut. Für die Orientierungsbestimmung aus der IMU gibts recht viel Code, aber für die Positionsbestimmung sieht das ganze schon viel schlechter aus. Habt ihr Tipps, wo man passenden Code finden kann? Das ist ja mittlerweile ein ausgereiftes Feld.
Was du suchst nennt sich Kalman Filter und das ist nichts was man mal eben so programmiert.
Sensor fusion brauchen sie nicht unbedingt. Den GPS gibt position, nur die "heading" fehlt bei stillstand. So eigentlich ist die IMU nur fur heading notwendig ! Positionsdaten von ein IMU sind eigentlich unbrauchbar ueber langere zeit, wegen wegdriften integral von abgelegten weg. Da gibt wel fix und fertige software for so etwas, such mal nach "Ardupilot". Ich habe das mal gemacht mit eine RC-car : https://youtu.be/yMbmp7c2mrw
Jan H. schrieb: > Den GPS gibt position, nur > die "heading" fehlt bei stillstand. So eigentlich ist die IMU nur fur > heading notwendig ! Positionsdaten von ein IMU sind eigentlich > unbrauchbar ueber langere zeit, wegen wegdriften integral von abgelegten > weg. GPS-Positionen können aber auch mal springen, sind dafür absolut. IMU-daten laufen über die Zeit weg, sind dafür aber kurzfristig genau. Deshalb fusioniert man beides, um eine absolute, ziemlich genaue Position zu bekommen. Kevin stimme ich zu. Der Standard dafür ist wohl ein Kalmanfilter. Das ist zwar keine Quantenwissenschaft, aber auch nicht mal so auf die Schnelle programmiert. Damit würde ich mich erstmal befassen. Es solltes aber einige Abschlussarbeiten zu dem Thema zu finden sein.
Kalman Filter habe ich mir aneschaut und werde es implementieren, falls ich nichts fertiges finde. Dachte, es müsste schon viel fertiges geben, weil das in vielen Anwendungen verwendet wird. @ Jah H: Das sieht echt super aus! Hast du die Geschwindigkeit für die Positionsbestimmung verwendet oder nur GPS und Heading? Wie bist du damit umgegangen, dass GPS hin und her springt?
Das Heading macht man natuerlich nicht mit der IMU, die bringt nur Winkelbeschleunigungen. Fuer das Heading nimmt man den Kompass. Dafuer kann man mit dem Kompass die Drigt der Winkelbeschleuningung raisrechnen. Und feststellen, wann der Kompass nur noch Mist bringt. Neben Eisen, zB
Ja, das ist korrekt, mit IMU meinte ich eigentlich eine 9 DOF IMU (Beschleunigung, Gyro, Kompass), also eigentlich MARG.
Dussel schrieb: > GPS-Positionen können aber auch mal springen, sind dafür absolut. > IMU-daten laufen über die Zeit weg, sind dafür aber kurzfristig genau. > Deshalb fusioniert man beides, um eine absolute, ziemlich genaue > Position zu bekommen. Die GPS-Position driftet auch langsam durch die Gegend. Besser ist es, einen Referenzempfänger fest hin zu stellen bzw. Referenzdaten aus anderer Quelle für die Korrektur zu verwenden. (RTK). Wie genau muss es denn werden? [ ] 10 m GPS [ ] 1-2 m GPS mit EGNOS [ ] 1-2 cm RTK
Es soll nicht super genau sein - 1m reicht völlig aus. Die Präzision im Video von @Jan H ist absolut ausreichend. Ich werde zunächst mal nur mit Heading Sensor Fusion und GPS arbeiten - wenn das nicht reicht, dann versuche ich noch die Geschwindigkeit durch den Beschleunigungssensor genauer zu schätzen.
Hi, Schau dir Mal deinen GPS genauer an. Wenn ich mich Recht erinnere haben sie teilweise eine Schnittstelle um IMU Daten einzuspeisen. Vielleicht hast du dann sogar ein tightly coupeld system in dem dann die Pseudoranges ausgewertet werden. Gruß Peter
autopilot schrieb: > Kalman Filter habe ich mir aneschaut und werde es implementieren, falls > ich nichts fertiges finde. Dachte, es müsste schon viel fertiges geben, > weil das in vielen Anwendungen verwendet wird. > > @ Jah H: Das sieht echt super aus! Hast du die Geschwindigkeit für die > Positionsbestimmung verwendet oder nur GPS und Heading? Wie bist du > damit umgegangen, dass GPS hin und her springt? In diesen Fall wird die "ist" heading von 9DOF IMU uebernommen. Das Ziel wird rein ueber GPS-Coordinaten bestimmt ! Bei guten Empfangst (>8 sattelliten) sind die GPS-coördinaten ziemlich stabil. Die "wiederholbarkeit" in ein kurze Zeit ist kleiner wie 50 cm. Absolut position kan naturlich mehr abweichen !Den GPS hat auch eine bestimmte "lag", selbst bei 10 Hz datenrate ist die "lag" um die 0.4s. Da ist den IMU wesentlich schneller (100 Hz rate). GPS module sind jetzt wirklich billig, <10€ (Beitian BN220 / BN 280, hat eine ublox M8 engine). Bei schnell fahren (wie in video) mussen sie weit for das Zielpunkt erreicht ist schon umschalten auf das naechste Ziel punkt. RTK gps ist auch moglich, aber ist eine andere preisklasse (>300 € !).
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.