Hallo Freunde, ich suche einen OpenSourcecode für eine IMU. Bekommen tu ich von der IMU Beschleunigungsdaten, Winkelgeschwindigkeit und Quaternien. Diese möchte ich nu in einem C-Programm über einen sogenannten Strapdown-Algorithmus verrechnen. http://www.uav.ethz.ch/research/projects/navigation_algorithms/3DerdfestE_big?hires Kennt einer von euch nen OpenSourceCode wo man sich mal anschauen kann wie andere dies gemacht haben? Danke im Vorraus Smazze
Hi! Erst einmal: das nennt sich Quaternionen ;-) und die geben die Orientierung an, ähnlich wie z.B. Euler Winkel oder eine DCM Matrix. Normalerweise berechnet man aus Beschleunigung + Winkelgeschwindigkeit und evtl einem Magnetometer eben diese Orientierung. Was genau möchtest du also machen? Edit: Ah ok, du willst ein INS basteln. Das funktioniert theoretisch so, dass du über die Orientierung den Gravitationsvektor, Coriolis- und sonstige Beschleunigungen aus den Beschleunigungsdaten abziehst und die übrig bleibende Beschleunigung integrierst ;) Ob es dafür was in open source gibt weiß ich nicht, das ist nicht unbedingt trivial. Was hast du für eine IMU? Wie gesagt, das heißt INS, inertial navigation system, oder trägheitsnavigation. Such mal danach, z.B. in google scholar oder ieee. Da gibts millionen papers. Schöne Grüße, Jan
:
Bearbeitet durch User
Hey Jan, danke erstmal für deine Antwort! Ich habe eine UM7: http://www.chrobotics.com/shop/um7-lt-orientation-sensor Das mir die Quaternionen die Orientierung angeben habe ich soweit verstanden. Was ich irgendwie noch nicht verstanden hab ist, wie ich mit Hilfe von Drehgeschwindigkeit der IMU, Quaternionen und Beschleunigung (Sensorkoordinatensystem) auf eine Geschwindigkeit im Raumkoordinatensystem (Navigationssystem) komme. Im 2D mit Eulerwinkel muss ich ja einfach eine Drehmatrix mit einrechnen: vx+=( ax*cos(phi)+ax*sin(phi) ) /IMUfrequenz; //Geschwindigkeit vy+=( ay*-sin(phi)+ay*cos(phi) ) /IMUfrequenz; x +=vx/IMUfrequenz; //Postion y +=vy/IMUfrequenz; Das += für die Integration die cos und sin stehen jeweils für die Rotationsmatrix Nun sollte das ganze mit Quaternionen im 3D ja ähnlich klappen :) Denke dazu brauch ich dann die Differentialgleichung der Quaternionen ähnlich wie oben mit der Rotationsmatrix, nur das ich nun die die Beschleunigungen in eine Quaternionenform bringen muss?!
Bzw hab ich nun verstanden wie ich meine Beschleunigungsdaten vom inertial-Koordinatensystem in den Bodyframe umrechne. Nun brauch ich wohl erstmal nurnoch die Transformation andersrum.. Aber die wird ja auch schon irgend nen schlauer Mensch aufgestellt haben :P
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.