Hey, Ich arbeite immoment mit nem Beschleunigungssensor und würde gerne die 9,81 bzw die 1g aus meinen Achsen rausrechnen... Jetzt dachte ich mir es gibt ja sehr viele Entwickler die mit Sensoren arbeiten und es muss doch eigendlich ne Bibliothek dafür geben? Oder zumindest beschreibungen wie man so etwa macht? Jetzt weiß ich aber nicht genau nach was ich googeln soll um das zu finden und da dacht ich mir, wenn es so etwas gibt könnt ihr mir hier bestimmt weiter helfen. grüße Jan
Jan L. schrieb: > Oder zumindest beschreibungen wie man so etwa macht? Was hast du da für einen Sensor bzw. wie ist er eingebaut. Im schlimmsten Fall geht es nämlich gar nicht, weil du die Beschleunigung des Sensors nicht von der Erdbeschleunigung trennen kannst. Rausrechnen kannst du die Erdbeschleunigung nur dann, wenn der Sensor selbst nicht beschleunigt ist, d.h. nur die Erdbeschleunigung auf den Sensor wirkt. Oder aber, wenn du aus anderen Quellen die aktueller Lage des Sensors im Raum kennst. Das ganze ist ein bischen so wie Mathe. Du kennst nur das Endergebnis einer Multiplikation: 84 Ob dieses Ergebnis aber entstanden ist, indem du 2*42 gerechnet hast, oder 4*21 oder 3*28 oder ... kannst du nicht wissen. Und so ähnlich ist es auch hier: Was du misst und feststellen kannst ist die Resultierende einer Vektoraddition. Und von einem Vektor kennst du auch noch seine Länge. Das reicht aber nicht um eine eindeutige Vektorzerlegung zu machen.
ich bin mir nicht sicher was du mit "Was hast du da für einen Sensor bzw. wie ist er eingebaut." meinst. allerdings hab ich auch noch ein gyroscop und magnetfeldsensor mit deren Hilfe ich schon quaternionen und winkel bekomme wo mit ich die lage der sensoren ja bestimmen kann.
Also wenn du weißt wo unten ist kannst du ja per Vektorsubtraktion einfach auf Null kommmen. Du mußt natürlich wissen wie beide Sensoren zueinander ausgerichtet sind.
Jan L. schrieb: > ich bin mir nicht sicher was du mit "Was hast du da für einen Sensor > bzw. wie ist er eingebaut." meinst. Was du alles zur Verfügung hast, bzw. was du eigentlich vom Beschleunigungs-Sensor bekommst. Im 2D-Fall hast du folgendes Problem: (siehe Bild) Du musst wissen, welcher der grünenn Pfeile der richtige ist (welche Richtung, seine Länge kennst du ja), damit du den aus dem gemessenen Beschleunigungsvektor abziehen kannst damit dir dann der richtige gelbe Pfeil übrig bleibt, der die Eigenbeschleunigung des Systems darstellt. Also die gemessene Beschleunigung (rot) bereinigt um die Erdbeschleunigung (grün).
Uwe schrieb: > Also wenn du weißt wo unten ist kannst du ja per Vektorsubtraktion > einfach auf Null kommmen. Und wie weiss man das, wenn das Objekt z.B. nach vorne beschleunigt? Bisher jedenfalls kenne ich niemanden, der an der Relativitätstheorie vorbeigekommen ist, und nach der ist es ununterscheidbar, ob ein Aufzug nach oben beschleunigt oder sich im Erdgravitationsfeld befindet. Aber es gibt ja immer wieder geniale Amateure, die eine Physik jenseits Einstein begründen wollen. Gruss Reinhard
Reinhard Kern schrieb: > Bisher jedenfalls kenne ich niemanden, der an der Relativitätstheorie > vorbeigekommen ist, und nach der ist es ununterscheidbar, ob ein Aufzug > nach oben beschleunigt oder sich im Erdgravitationsfeld befindet. Richtig. Aber wir wissen, dass sein Quadrocopter nicht höher als 300 Meter über der Erdoberfläche sein wird, d.h. es gibt in seinem System IMMER einen Beschleunigungsvektor, der mit 9.81 m/s^2 in irgendeine Richtung zieht (Aus Sicht des Quadrocopters. Aus Sicht der am Boden stehenden Piloten zieht g immer nach unten. Aber der Copter musss ja nicht waagrecht ausgerichtet sein) Wenn er den abzieht, dann bleibt eine Beschleunigung übrig. Nämlich die, die der Copter tatsächlich erfährt, wenn er in irgendeine Richtung beschleunigt wird (im Copter eigenen Bezugssystem) Ob ihm das dann was nützt, ist eine andere Frage. Aber sobald er die Lageinformation hat, kann er g prinzipiell rausrechnen. BLöd nur, wenn das Ziel der ganzen Sache letzten Endes darin besteht, die Lageinformation zu erhalten.
Karl Heinz Buchegger schrieb: > es gibt in seinem System IMMER einen > Beschleunigungsvektor, der mit 9.81 m/s^2 in irgendeine Richtung zieht Nein. Nimm einfach mal an, das Fliegzeug beschleunigt mit 1g nach vorne. Da nützt nicht mal ein künstlicher Horizont was - der zeigt ja auch nichts anderes an als der Sensor. Höchstens mit dem tatsächlichen Horizont könnte man was anfangen, aber z.B. zwischen den Häusern einer Stadt wird das auch unübersichtlich. Übrigens könntest du auch erfahrene Piloten fragen - die wissen nämlich bei einem "White Out" (Fliegen im Nebel) auch nicht was wo ist. Die einzig "sichere" Methode (bei einem Hubschrauber) wäre wahrscheinlich das Abschalten allen Antriebs, dann fällt das Ding über kurz oder lang senkrecht nach unten, und da der Luftwiderstand den freien Fall bremst bekommst du tatsächlich eine Information darüber wo unten ist. Vorübergehend. Gruss Reinhard PS man braucht da kein Flugzeug mit 6 Freiheitsgraden, schon in einem Auto lässt sich nicht feststellen, ob es beschleunigt oder bergauf fährt.
Reinhard Kern schrieb: > Nein. Nimm einfach mal an, das Fliegzeug beschleunigt mit 1g nach vorne. Zur Ergänzung: in dem Fall misst du 1,4g in einer bestimmten Richtung. Du könntest annehmen, dass sich das zusammensetzt aus 1g Schwerkraft und 1g Beschleunigung senkrecht dazu, aber erstens ist das schon ein Trugschluss, weil es viele andere Lösungen gibt, und selbst wenn es zufällig zutrifft weisst du eben nicht, was davon Schwerkraft ist und was Beschleunigung. Einstein ist schon ein harter Brocken. Gruss Reinhard
Reinhard Kern schrieb: > Karl Heinz Buchegger schrieb: >> es gibt in seinem System IMMER einen >> Beschleunigungsvektor, der mit 9.81 m/s^2 in irgendeine Richtung zieht > > Nein. Doch, den gibt es schon. > Nimm einfach mal an, das Fliegzeug beschleunigt mit 1g nach vorne. Dann gibt es noch einen Beschleuingungsvektor. Dein Sensor mißt halt die Summe der beiden. Am Anfang von Karl Heinz' Posting ist es noch nicht so ganz klar, aber wenn du es komplett liest, merkst du, daß er eigentlich das gleiche meint wie du. > Da nützt nicht mal ein künstlicher Horizont was - der zeigt ja auch > nichts anderes an als der Sensor. Doch, natürlich tut er das. Wenn er die Beschleunigung für seine Anzeige nutzen würde, wäre er wäre vollkommen nutzlos, da ein Flugzeug höchstens beim exakten Geradeausflug mit konstanter Geschwindigkeit und ohne Wind komplett unbeschleunigt fliegt. Schon in einer Kurve würde er Unsinn anzeigen. Deshalb mißt er nicht die Beschleunigungen, sondern arbeitet mit einem Kreisel, dessen Rotationsachse bei Drehungen des Flugzeugs immer gleich bleibt. Beschleunigungen sind dem völlig egal. > Übrigens könntest du auch erfahrene Piloten fragen - die wissen nämlich > bei einem "White Out" (Fliegen im Nebel) auch nicht was wo ist. Und genau dafür gibt's dann Instrumente wie den künstlichen Horizont. Der ist ja nicht nur zur Deko da. > PS man braucht da kein Flugzeug mit 6 Freiheitsgraden, schon in einem > Auto lässt sich nicht feststellen, ob es beschleunigt oder bergauf > fährt. Mit einem Kreisel schon.
Reinhard Kern schrieb: > Karl Heinz Buchegger schrieb: >> es gibt in seinem System IMMER einen >> Beschleunigungsvektor, der mit 9.81 m/s^2 in irgendeine Richtung zieht > > Nein. Wir reden aneinander vorbei. Da er wohl das Erdgravitationsfeld nicht verlsst, gibt es IMMER einen Vektor der Erdbeschleunigung. Und wenn er weiß, wie sein Teil in der Luft liegt, dann kann er den auch rausrechnen. > Nimm einfach mal an, das Fliegzeug beschleunigt mit 1g nach vorne. Ja, und. Dann misst er eben nicht mehr 1g sondern einen Vektor anderer Länge und in einer anderen Richtung. Aber den Erd-vektor kann er trotzdem abziehen und übrig bleibt ihm der Beschleunigungsvektor "nach vorne".
Reinhard Kern schrieb: > Reinhard Kern schrieb: >> Nein. Nimm einfach mal an, das Fliegzeug beschleunigt mit 1g nach vorne. > > Zur Ergänzung: in dem Fall misst du 1,4g in einer bestimmten Richtung. > Du könntest annehmen, dass sich das zusammensetzt aus 1g Schwerkraft und > 1g Beschleunigung senkrecht dazu Genau darum geht es. >, aber erstens ist das schon ein > Trugschluss, weil es viele andere Lösungen gibt und warum denkst du, reite ich so darauf herum, dass er wissen muss wie sein Teil in der Luft liegt, er also eine Lageinformation braucht? > Einstein ist schon ein harter Brocken. Einstein hat nichts damit zu tun, dass man einen Vektor immer in Komponenten zerlegen kann. Und von einer der gesuchten Komponenten kennt er die Vektorlänge. Was er noch braucht ist die Richtung. Und genau darum geht es: Aus dem Beschleunigungssensor kriegt er die nicht raus. Also muss er zusehen, wo er die herkriegt. Genau das sagt meine Zeichnung da oben für den 2D Fall aus: Wenn du von der Erdbeschleunigung die Richtung relativ zum Fluggerät feststellen kannst (oder was gleichwertig ist: die Fluglage im Raum), dann kannst du den g-Vektor abziehen und übrig bleibt die Beschleunigung, die das Objekt selbst erfährt ohne Schwerkraft. Aber die Richtung braucht er. Aus dem Beschleunigungsvektor alleine kriegt er die nicht raus.
Übernacht haben wohl die modellbauer übernommen xD aber naja :P rein von der logik her dachte ich, das ich irgendwie mit meiner Lage (Quaternionen, Eulerwinkel oder Rotationsmatrizen) die erdbeschleunigung "einfach" abziehen kann. Die frage ist nur wie. Zuerst einmal müsste ich es ja hinbekommen das ich mit der Lage immer weiß auf welche achsen gerade die Erdbeschleunigung einwirkt und danach müsste man noch herrausbekommen wie es sich auf die verschiedenen Achsen verteilt... oder is da schon ein Denkfehler drin?
ich hab von den Fachbegriffen die du so um dich wirfst, nicht viel Ahnung: aber: kennst du jetzt die "Lage" von dem ding ? also die wikel zur "sekrechten" (wie schief das ding in der luft hängt) auf dieser senkrechten ist ja dein 1g Vektor der 2. Vektor ist die gemessene Beschleunigung (beide sind ja schon im "nullpunkt") diese 2 Vektoren kann man einfach subtrahieren (so "einfach" Vektoren eben subtrahiert werden..) (mathe ist bei mir schon fast 20 Jahre her, man möge mir verzeihen wenn es nicht stimmt...)
>Da er wohl das Erdgravitationsfeld nicht verlsst, gibt es IMMER einen >Vektor der Erdbeschleunigung. Im freien Fall zeigt auch der Beschleunigungssensor nichts, also Null an.
Rolf Magnus schrieb: > Deshalb mißt er nicht die Beschleunigungen, sondern arbeitet > mit einem Kreisel, dessen Rotationsachse bei Drehungen des Flugzeugs > immer gleich bleibt. Beschleunigungen sind dem völlig egal. Da hast du kurzfristig recht, der bleibt sozusagen einfach stehen - aber wonach richtet er sich längerfristig? Da findet sich bei Wikipedia auch nichts Näheres drüber, aber ich nehme mal an, das das Flugzeug meistens oder im Durchschnitt Normallage haben muss, damit er funktioniert. Ob es sowas modellflugtauglich gibt, würde ich sowieso bezweifeln. Der TO schreibt das zwar nicht ausdrücklich, aber wie ein Profientwickler aus der Luftfahrt hört er sich auch nicht an. Gruss Reinhard
Matthias Lipinsky schrieb: >>Da er wohl das Erdgravitationsfeld nicht verlsst, gibt es IMMER einen >>Vektor der Erdbeschleunigung. > > Im freien Fall zeigt auch der Beschleunigungssensor nichts, also Null > an. Aber er hat eine Lage aus der Inertial-Platform. Und wenn er da dann den Erdbeschleunigungsvektor vom gemessenen 0-Vektor in Richtung 'unten' abzieht, kriegt er einen Vektor raus, der .... tada ... ihm exakt angibt, dass sein Fluggerät nach unten beschleunigt. So wie es ja auch tatsächlich ist.
Reinhard Kern schrieb: > Da hast du kurzfristig recht, der bleibt sozusagen einfach stehen - aber > wonach richtet er sich längerfristig? Die Inertial Platformen, die mittels Kalman-Filter Beschleuigungssensoren und Gyro-Daten miteinander verrechnen, sind mitlerweile erstaunlich gut. Wohl auch deswegen, weil die Gyros mit den Jahren besser wurden (weniger Drift haben). Kurz gesagt: die korrigieren sich gegenseitig. Die Gyros sorgen für die Kurzzeitstabilität während die Beschleunigungssensoren für die Langzeitstabilität sorgen (weil man wohl davon ausgehen kann, dass ein Fluggerät meistens waagrecht fliegt). Mittels Kalaman-Filter werden die Dinge zusammengebracht. Mehr versteh ich aber auch nicht davon. Ausser eben der Beobachtung, dass Quadrocopter-Bauer diesen Teil der Stabilisierung im Griff haben. Da gibt es erstaunliche Videos auf Youtube in denen Quadrocopter eigenständig Manöver fliegen, die ohne stabile Inertial-Platform-Referenz sicher nicht möglich wären. http://www.youtube.com/watch?v=rJ8I1XWrjE4 > oder im Durchschnitt Normallage haben muss, damit er funktioniert. Ob es > sowas modellflugtauglich gibt, würde ich sowieso bezweifeln. Das ist schon klar, dass Boing bei seinen Inertial Platformen einen etwas höheren Aufwand treibt. > Der TO > schreibt das zwar nicht ausdrücklich, aber wie ein Profientwickler aus > der Luftfahrt hört er sich auch nicht an. :-) Das sicher nicht
Karl Heinz Buchegger schrieb: > Kurz gesagt: die korrigieren > sich gegenseitig. Die Gyros sorgen für die Kurzzeitstabilität während > die Beschleunigungssensoren für die Langzeitstabilität sorgen Wenn du recht hast, was ich ohne Weiterbildung auch nicht beurteilen kann, sollte man das besser Münchhausen-Filter nennen. Gruss Reinhard
Reinhard Kern schrieb: > Rolf Magnus schrieb: >> Deshalb mißt er nicht die Beschleunigungen, sondern arbeitet >> mit einem Kreisel, dessen Rotationsachse bei Drehungen des Flugzeugs >> immer gleich bleibt. Beschleunigungen sind dem völlig egal. > > Da hast du kurzfristig recht, der bleibt sozusagen einfach stehen - aber > wonach richtet er sich längerfristig? Da findet sich bei Wikipedia auch > nichts Näheres drüber, aber ich nehme mal an, das das Flugzeug meistens > oder im Durchschnitt Normallage haben muss, damit er funktioniert Es würde auch längerfristig stehen. Aber da kein Kreisel perfekt ist, kann er über Beschleunigungen (inkl. Schwerkraft) beeinflusst werden. Selbst wenn er perfekt wäre, würde die Krümmung der Erdoberfläche (bei Flügen über lange Distanzen) und die Erdrotation (bei Flügen über längere Zeit) eine Abweichung vom Erdhorizont verursachen. Dafür gibt es in mechanischen künstlichen Horizonten eine automatische Aufrichtung, die den Horizont ganz leicht in Richtung Nullposition drückt. Idealerweise wird damit im Geradeausflug eine Drift unterdrückt und bei Beschleunigungen kein zu großer Fehler eingeführt. (Allerdings steht das auch bei Wikipedia.)
Reinhard Kern schrieb: > Rolf Magnus schrieb: >> Deshalb mißt er nicht die Beschleunigungen, sondern arbeitet >> mit einem Kreisel, dessen Rotationsachse bei Drehungen des Flugzeugs >> immer gleich bleibt. Beschleunigungen sind dem völlig egal. > > Da hast du kurzfristig recht, der bleibt sozusagen einfach stehen - aber > wonach richtet er sich längerfristig? Da findet sich bei Wikipedia auch > nichts Näheres drüber, Unter http://de.wikipedia.org/wiki/Inertiales_Navigationssystem findet man zumindest Infos darüber, in welchem Rahmen die Drift von Kreisel- bzw. Drehratensensoren-basierter Navigation etwa liegt: "Die Sensor-Genauigkeit einfacher INS auf der Basis von MEMS und Faserkreiseln liegt etwa zwischen 1°/s und 0,01°/h Kreiseldrift. Mit Laserkreisel-Navigationssystemen erreicht man etwa 0,001°/h bis 1°/h Kreiseldrift. Daraus folgt für hochwertige Navigationssysteme eine Ortsabweichung von ca. 0,05 NM/h bis 3 NM/h (nautische Meilen pro Stunde) bei freier erdnaher Navigation und Höhenstützung. Bevor Satellitennavigation zur Positionskorrektur des INS zur Verfügung stand, wurde im Luftverkehr INS allein genutzt. Die Abweichung der INS-Geräte betrug dabei Anfang der 1970er Jahre maximal 10 Seemeilen in 5 Stunden Flug, z. B. bei einer Ozeanüberquerung." Wenn das so klappt, sollte doch ein künstlicher Horizont auch lange genug seine Lage einigermaßen halten können. Karl Heinz Buchegger schrieb: > Die Inertial Platformen, die mittels Kalman-Filter > Beschleuigungssensoren und Gyro-Daten miteinander verrechnen, sind > mitlerweile erstaunlich gut. Wohl auch deswegen, weil die Gyros mit den > Jahren besser wurden (weniger Drift haben). Meinst du hier mit "Gyro" wirklich ein echtes Gyroskop, oder nur einen Drehratensensor? > Da gibt es erstaunliche Videos auf Youtube in denen Quadrocopter > eigenständig Manöver fliegen, die ohne stabile > Inertial-Platform-Referenz sicher nicht möglich wären. > > http://www.youtube.com/watch?v=rJ8I1XWrjE4 Ich fand ja das hier noch beeindruckender, da das Ziel sich hier nebenher auch noch bewegt und dynamisch per Kamera erfaßt werden muß: http://www.youtube.com/watch?v=3CR5y8qZf0Y
Rolf Magnus schrieb: >> Die Inertial Platformen, die mittels Kalman-Filter >> Beschleuigungssensoren und Gyro-Daten miteinander verrechnen, sind >> mitlerweile erstaunlich gut. Wohl auch deswegen, weil die Gyros mit den >> Jahren besser wurden (weniger Drift haben). > > Meinst du hier mit "Gyro" wirklich ein echtes Gyroskop, oder nur einen > Drehratensensor? Drehratensensor. Also das, was im Modellbau als 'Kreisel' bekannt ist, obwohl da schon lange keine rotierenden Teile mehr enthalten sind. Die erste Inertialplatform hat meines Wissens Dr. Draper vom heutigen Draper-Labor am MIT gebaut. Einer der ersten Tests war eine USA-Überquerung von Boston nach Los Angeles, die die IMU ganz alleine machen musste. Als die IMU dann wieder unter die Wolkendecke ging und der Pilot wieder ins Cockpit zurück durfte um zur Landung zu übernehmen, waren sie im Anflug auf den Airport LA. Nach 3000 Meilen Flug und 11 Stunden Flugzeit. Das muss so Anfang der 50-er Jahre gewesen sein und war ausschlaggebend, dass das MIT den Auftrag für die Onboard Ausrüstung und Navigation der Apollo der NASA bekam. Und da mussten dann die Kreisel höchsten Ansprüchen genügen. Dr. Draper hat einen nach dem anderen immer wieder in die Fertigung zurückgehen lassen weil er nicht seinen Ansprüchen genügte. http://www.youtube.com/watch?v=Y7sMe52fEAc (Ab 04:56)
also es gibt neue erkenntnisse. Da ich es einfach nich hinbekomme den sensor so auszurichten das wirklich nur die X oder Y achse beschleunigt hatte ich die idee diese beiden Achsen einfach zusammen zu fassen (wurzel(x² + y²))womit ich ein bischen näher an den richtigen Wert komme allerdings befürchte ich einfach das irgendwo noch ein denk fehler in der eigendlichen formel ist.... ps mit gyro meine ich das "Teil" was mit die winkel beschleunigung gibt was für eine Art das jetzt ist d.h. wie diese beschleunigung gemessen wird kann ich nich sagen weil in der Spezifikation nicht die genauen Bauteile stehen....
>allerdings befürchte ich einfach das irgendwo noch ein denk fehler
z-achse vergessen, vielleicht?
oder "fliegst" du in 2D
immoment is z aussen vor wobei vielleicht geben die paar mini werte noch genau den ausschlag xD aber eigendlich sollte z 0 sein
Hallo, in der Android-Referenz gibt es ein Beispiel, wie man bei den Sensoren in den Android-Handys die Erdbeschleunigung berechnen bzw. eliminieren kann: http://developer.android.com/reference/android/hardware/SensorEvent.html Dabei wird ein Hochpass verwendet, um g zu eliminieren. Das dürfte jedoch nur dann funktionieren, wenn die Ausrichtung des Sensors sich wesentlich langsamer ändert als die Beschleunigung entlang der x,y oder z-Achse. Viele Grüße Michael
>> Also wenn du weißt wo unten ist kannst du ja per Vektorsubtraktion >> einfach auf Null kommmen. >Und wie weiss man das, wenn das Objekt z.B. nach vorne beschleunigt? durch die Kalibrierung des Gyros im Stillstand. (muß natürlich für längere Späße nen guter bzw. echter Gyro sein)
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.