An einem kleinen Quadrokopter habe ich einen Ultraschall-Abstandsmesser, der die Flughöhe messen soll. Das Klappt prinzipiell ganz gut, aaaaber: Um mich vorwärts zu bewegen, muss ich das Gerät ja neigen, der gemessene Abstand wird als bei gleicher Flughöhe größer. Aus dem Kompass bekomme ich Pitch- und Rollwinkel. Solange ich nur vorwärts fliege, kann ich ganz einfach mit dem Cosinus meine tatsächliche Höhe über dem Boden berechnen. Klappt schon gut. Nun möchte ich aber auch in der Kurve meine Flughöhe korrekt bestimmen, wenn das Gerät um Pitch- und Rollachse geneigt ist. Da habe ich gerade ein Problem. Wie muss ich da vorgehen? In Sachen Vektorrechnung bin ich leider nicht mehr ganz fit, ist schon lange her. Im Grunde muss ich wohl den Schnittwinkel zwischen der Pitch-Roll-Ebene und der Senkrechten (in richtung Erdmittelpunkt) bestimmen. Aber da stehe ich mal eben auf dem Schlauch. Ich finde auch keine Beispiele, evtl. suche ich aber auch noch nach dem falschen Begriff. Für einen ordentlichen Schubs in die richtige Richtung, evtl. mit Beispiel wäre ich sehr dankbar!
JA wo sind denn die ganzen klugen Köpfe heute!? Ich habe ja den Verdacht, dass man hiermit weiterkommen müsste, komme aber immernoch nicht drauf! http://de.wikipedia.org/wiki/Kugelkoordinaten
Bin gerade auch am Grübeln. Aber wäre es möglich, ein kombiniertes Pitch und Roll in zwei Einzeprobleme zu "zerlegen" und diese kombiniert zu betrachten? Also z.B. erst aufgrund des Pitchwertes des Sensors eine virtuelle Linie bilden, die den Pitch kompensiert hat und diese dann noch mit dem Roll-Wert korrigieren? Also erst die Achse "nach vorne ziehen" und dann zur Mitte... Das ware dann eigentlich nur die eine Rechnung, die du für den Pitch bereits durchführst, nochmal auf den Rollwert durchführen.. oder sehe ich das gerade zu einfach?
nochmal überlegt: Wäre das nicht? hx = messwert * cos(Pitch) h = hx * cos(Roll) --> h = messwert * cos(Pitch) * cos(Roll)
Genau das habe ich auch schon überlegt, das wäre einfach nur Messergebnis * cos(pitch) * cos(roll) http://de.wikipedia.org/wiki/Kugelkoordinaten#Umrechnungen Ich grübel noch, wie ich pitch/roll in dieses KO legen müsste. Dann käme ich aber auf sin*sin oder sin*cos. Aber so in der richtung müsste es wohl sein.
Tatsache, das scheint wirklich schon alles zu sein. Vielen Dank euch beiden! Werde mich dann nochmal ein bisschen mit den trigonometrischen Zusammenhängen vergnügen, nur so zum Spaß ;) Nach langer Zeit schön zu sehen, dass man sowas gelegentlich doch brauchen kann... cos(x)*cos(y) = (cos(x-y)+cos(x+y))/2
Warum stellst du die gleiche Frage nochmal? Was hat dir denn an den damals gegebenen Antworten nicht gepasst? Oder hat es nicht funktioniert?
GeneigterLeser schrieb: > Tatsache, das scheint wirklich schon alles zu sein. Vielen Dank euch > beiden! Ich fürchte, du bist da auf dem Holzweg. Wenn deine Überlegung richtig wäre, würdest du über glattem Wasser keine US-Höhenmessung machen können, weil der Schall nicht zum Flieger zurückreflektiert wird. Solange dein Neigungswinkel kleiner als der Öffnungswinkel deines Schallkegels ist, funktioniert dort aber die Höhenmessung. Das liegt daran, dass der erste zurückkommende Reflex als Höhe ausgewertet wird. Und der kommt von dem Punkt mit geringstem Abstand, i.e. vom Nadir. Nix mit cos() und Roll und Pitch.
"Damals" war ca. 30min früher und ich hatte den Eindruck, als ob sich im Bereich DSP so garnichts bewegt. Und in der Forenübersicht war der Thread leider ratz fatz durchgelaufen. Die Sache trieb mich gerade in den Wahnsinn, da war ich so dreist die Frage im stärker belebten Teil des Forums nochmal zu stellen. Martins Hinweis kam dann auch erst später. Vielleicht findet sich ja ein Mod, der den Thread zusammenführen kann... Bin jedenfalls froh, dass sich doch noch ein Antwort gefunden hat und werde es gleich morgen umsetzen. Kann dann ja nochmal berichten.
GeneigterLeser schrieb: > "Damals" war ca. 30min früher Ist mir dann auch aufgefallen ;-) Was Aufrechter Leser schreibt, ist allerdings richtig. Die Mathematik, die wir hier gefunden haben, stimmt nur, wenn dein US ein scharfer Strahl wäre, der immer exakt in die Richtung zurückreflektiert wird, von der er kam. Und da der US weder ein Laserstrahl ist, noch exakt im gleichen Winkel zurückgeworfen wird, wie er auftrifft, wundere ich mich gerade ein wenig, dass du geschrieben hast, dass das mit dem Pitch bereits funktioniert hat.
Aufrechter Leser schrieb: > Ich fürchte, du bist da auf dem Holzweg. Wenn deine Überlegung richtig > wäre, würdest du über glattem Wasser keine US-Höhenmessung machen > können, weil der Schall nicht zum Flieger zurückreflektiert wird. > Solange dein Neigungswinkel kleiner als der Öffnungswinkel deines > Schallkegels ist, funktioniert dort aber die Höhenmessung. Das liegt > daran, dass der erste zurückkommende Reflex als Höhe ausgewertet wird. > Und der kommt von dem Punkt mit geringstem Abstand, i.e. vom Nadir. Nix > mit cos() und Roll und Pitch. Tja, eine absolut ebene Fläche dürfte eher der Extremfall sein. Du meinst, weil der Schall einfach im gleichen Winkel reflektiert wird kommt nichts mehr zum Empfänger zurück? Dennoch vergrößert sich durch eine nicht senkrechte Abstrahlung die Laufzeit, was natürlich zu einem falschen (d.h. zu großen) Messergebnis führt! Der Öffnungswinkel spielt sicherlich noch eine Rolle, das gebe ich zu.
Aber ist ja egal.. bissle rumspielen macht Spass und schlau :-) Und wenn es am Ende nicht so genau ist, wie erwartet, aber dennoch ein Effekt erkennbar ist, dann ist das doch auch schon gut.
Schlumpf schrieb: > Aber ist ja egal.. bissle rumspielen macht Spass und schlau :-) > Und wenn es am Ende nicht so genau ist, wie erwartet, aber dennoch ein > Effekt erkennbar ist, dann ist das doch auch schon gut. Genau... Ich bin jedenfalls schon auf's Ergebnis gespannt. Was für ein Kompass ist das eigentlich?
Schlumpf schrieb: > Und da der US weder ein Laserstrahl ist, noch exakt im gleichen Winkel > zurückgeworfen wird, wie er auftrifft, wundere ich mich gerade ein > wenig, dass du geschrieben hast, dass das mit dem Pitch bereits > funktioniert hat. Nun, die absolute Genauigkeit ist schwer zu beurteilen. Es ist aber so, dass der Fehler hiermit merklich verringert wird. Und das gute ist, dass es um so besser funktioniert, desto niedriger man fliegt, wo es wiederum wichtiger ist... Im Endeffekt alles nur Spielerei zwecks Erkenntnisgewinn :) Genauso wie die trigonometrischen Zusammenhänge auch nur für eine optimale Berechnung auf einem 8bit-AVR intressant sein kann, obwohl der das so oder so schafft.
GeneigterLeser schrieb: > Dennoch vergrößert sich durch eine nicht senkrechte Abstrahlung die > Laufzeit, was natürlich zu einem falschen (d.h. zu großen) Messergebnis > führt! Da der US nicht als Strahl sondern eher als (größerer) Teil einer Kugelwellen abgestrahlt wird, wird bei nicht zu extremer Fluglage immer ein Teil der Keule im Nadir auf den Boden treffen und reflektiert. Dieser Teil kommt zuerst am Empfänger an und sollte von der Auswerteelektronik als Impuls erkannt und in Abstand umgerechnet werden. Wenn die ermittelte Höhe von der Lage abhängt, ist wahrscheinlich die Flankendetektion im Empfänger nicht in Ordnung. Leg den US-Sensor mal in einem großen Raum auf den Boden und lass ihn gegen die kahle Decke pingen. Und dann guck dir an, wie sich die Höhenausgabe ändert, wenn du den US-Geber neigst.
Martin schrieb: > Danke Weil du dir nicht den ganzen Abend den Kopf zerbrochen hast um am Ende zu sehen, dass der Kompass nicht neigungskompensiert ist? ;)
Nutz Dir die Neigungskompensation überhaupt etwas? Ein bisschen Winkel berechnen im 3-dimensionalen Raum ist doch nicht das Problem. Mit dem Ansatz kannst Du Dich im sterilen Labor oder bestenfalls in einer Turnhalle, bewegen. Wenn das Teil in einer Kurve gegen ein Hindernis kracht: "Senkrecht gesehen war aber noch viel Platz", wirst Du den Unterschied kennenlernen. Kein Problem wenn Du eine funktionsfähige Bremse implementiert hast;-)
GeneigterLeser schrieb: > Im Endeffekt alles nur Spielerei zwecks Erkenntnisgewinn :) Turnhalle kommt schon sehr gut hin. Aufrechter Leser schrieb: > Leg den US-Sensor mal in einem großen Raum auf den Boden und lass ihn > gegen die kahle Decke pingen. Und dann guck dir an, wie sich die > Höhenausgabe ändert, wenn du den US-Geber neigst. Ja, ändert sich.
GeneigterLeser schrieb: > Martin schrieb: >> Danke > > Weil du dir nicht den ganzen Abend den Kopf zerbrochen hast um am Ende > zu sehen, dass der Kompass nicht neigungskompensiert ist? ;) Nein war ein ganz ehrliches Danke :D Die ganze 3D-Lageregelung interessiert mich eh. Vor allem im Zusammenhang mit der Singularitär im Gier-Nick-Roll-System bei senkrechtem Flug und der Umgehung des Problems mit Quaternionen. Ich frage mich gerade ob man statt des senkrechten Abstandes des Sensors zur Oberfläche nicht besser den senkrechten Mindestabstand z.B. der Motorgondeln oder eines gedachten Kreises um den Kopter herum bestimmen sollte.
>Ich frage mich gerade ob man statt des senkrechten Abstandes des Sensors >zur Oberfläche nicht besser den senkrechten Mindestabstand z.B. der >Motorgondeln oder eines gedachten Kreises um den Kopter herum bestimmen >sollte. Falscher Ansatz. Der gedachte, senkrechte Kreis um Deinen Flieger ist frei, sonst hättest Du das bereits gehört;-) Ich unterstelle mal, dass der Bereich - vor Dir in Flugrichtung - viel interessanter ist. Räumlich gesehen geht es um die Halbkugel, in Flugrichtung, vor Dir. Hiervon kannst Du, wie bereits gesagt, den Kreisbogen um den Flieger selbst ausklammern. Eventuell kannst Du sogar den Bereich: vorne, oben teilweise ignorieren, es sei denn Du willst gerade steigen.
wo ist denn beim qc die flugrichtung? Braucht es dann 6 sensoren?
>wo ist denn beim qc die flugrichtung?
Wenn Du diese Frage mit: "nirgends" beantwortest, so musst Du einfach
das gesamte Kugelvolumen rund um den qc betrachten.
Von der Sensorik und der dafür nötigen Rechenleistung eine echte
Herausforderung.
Viel Spaß dabei.
Amateur schrieb: > wo ist denn beim qc die flugrichtung? > > Wenn Du diese Frage mit: "nirgends" beantwortest, so musst Du einfach > das gesamte Kugelvolumen rund um den qc betrachten. > > Von der Sensorik und der dafür nötigen Rechenleistung eine echte > Herausforderung. > > Viel Spaß dabei. Wohl eher überall! Sensorik ist nur für das gewicht ein problem, Rechenleistung ist heutzutage doch genug vorhanden. Ausserdem kann man ja die momentane flugrichtung priorisieren. Braucht halt nur genug Hirnschmalz...
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.