Hyperbolischer Spiegel < Gleichungssysteme < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo liebes Forum,
habe mich angemeldet weil ich leider mit meiner Aufgabe nicht weiterkomme.
Und zwar habe ich als Aufgabe bekommen die Distanzfunktion der Omnidirektionale Kamerasystem eines Roboters zu kalibrieren anhand der Spiegelfunktion. Es soll eine Funktion gefunden werden, die mir bei einem gegeben Pixel auf meiner Bildebene die Distanz des Spiegelsmittelpunkts zu dem reellen Punkt im Raum liefert. Wobei die Neigung des Spiegels variieren kann. Doch der erste Schritt für mich ist erstmal die Bestimmung der Spiegelung einer Geraden.
Der Spiegel ist ein Hyperbol und ist beschrieben durch die Funktion:
[mm] \bruch{z^2}{789.3274} [/mm] - [mm] \bruch{(x^2+y^2)}{548.1440} [/mm] = 1
Nun zu meiner Frage. Ich habe vor den Hyperbol mit einer x-beliebigen Geraden zu schneiden und daraus die resultierende Spiegelung zu berechnen. Die gespiegelte Gerade wird durch den Ausfallswinkel bestimmt. Wie bestimme ich nun die gespiegelte Gerade?
Ich habe die Idee eine Ebene zu konstruiren, die den Schnittpunkt der Geraden mit dem Hyperbol tangiert. Auf dieser Ebene würde ich den Normalenvektor bilden und den Winkel zwischen der Geraden und dem Normalenvektor bilden und somit die Richtung der gespiegelten Gerade bestimmen. Ist das der richtige Ansatz oder wie gehe ich da vor, da ich für die Ebene ja nur einen Punkt habe, den Schnittpunkt der Geraden mit dem Hyperbol. Ich bräuchte ja mindestens zwei Punkte um die Ebene zu bestimmen. Weiterhin kann ja auch der Ausfallswinkel um die Gerade "wandern", somit hätte ich ja sehr viele Richtungen in denen es gespiegelt werden kann.
Danke schonmal im vorraus für die Hilfe, und falls es im falschen Unterforum gelandet ist, bitte ich einen Moderator es zu verschieben.
|
|
|
|
> Hallo liebes Forum,
> habe mich angemeldet weil ich leider mit meiner Aufgabe
> nicht weiterkomme.
> Und zwar habe ich als Aufgabe bekommen die Distanzfunktion
> der Omnidirektionale Kamerasystem eines Roboters zu
> kalibrieren anhand der Spiegelfunktion. Es soll eine
> Funktion gefunden werden, die mir bei einem gegeben Pixel
> auf meiner Bildebene die Distanz des Spiegelsmittelpunkts
> zu dem reellen Punkt im Raum liefert. Wobei die Neigung des
> Spiegels variieren kann. Doch der erste Schritt für mich
> ist erstmal die Bestimmung der Spiegelung einer Geraden.
>
> Der Spiegel ist ein Hyperbol und ist beschrieben durch die
> Funktion:
>
> [mm]\bruch{z^2}{789.3274}[/mm] - [mm]\bruch{(x^2+y^2)}{548.1440}[/mm] = 1
>
> Nun zu meiner Frage. Ich habe vor den Hyperbol mit einer
> x-beliebigen Geraden zu schneiden und daraus die
> resultierende Spiegelung zu berechnen. Die gespiegelte
> Gerade wird durch den Ausfallswinkel bestimmt. Wie bestimme
> ich nun die gespiegelte Gerade?
> Ich habe die Idee eine Ebene zu konstruiren, die den
> Schnittpunkt der Geraden mit dem Hyperbol tangiert. Auf
> dieser Ebene würde ich den Normalenvektor bilden und den
> Winkel zwischen der Geraden und dem Normalenvektor bilden
> und somit die Richtung der gespiegelten Gerade bestimmen.
> Ist das der richtige Ansatz oder wie gehe ich da vor, da
> ich für die Ebene ja nur einen Punkt habe, den
> Schnittpunkt der Geraden mit dem Hyperbol. Ich bräuchte ja
> mindestens zwei Punkte um die Ebene zu bestimmen. Weiterhin
> kann ja auch der Ausfallswinkel um die Gerade "wandern",
> somit hätte ich ja sehr viele Richtungen in denen es
> gespiegelt werden kann.
>
> Danke schonmal im vorraus für die Hilfe, und falls es im
> falschen Unterforum gelandet ist, bitte ich einen Moderator
> es zu verschieben.
Hallo und
Deine gesamte Anordnung verstehe ich zwar nicht ganz, aber
auf die konkrete Frage, die sich auf die Spiegelung
eines eintreffenden Lichtstrahls an einer Hyberboloidfläche
bezieht, kann ich sehr wohl antworten.
Zuerst musst du natürlich darauf achten, von den Schnitt-
punkten des einfallenden Strahls mit der Fläche den
richtigen (ersten) auszuwählen. Eine Gerade könnte diese
Fläche ja allenfalls auch in zwei Punkten schneiden (oder auch
in gar keinem).
Wenn du den richtigen Auftreffpunkt S hast, stellst du die
Gleichung der Tangentialebene T an die Fläche in diesem
Punkt auf.
Die Geradengleichung für den reflektierten Strahl kannst
du dann aufstellen, indem du etwa den (gegebenen) Start-
punkt A des einfallenden Strahls an der Ebene T spiegelst,
Ergebnispunkt [mm] \overline{A} [/mm] . Die Gerade durch [mm] \overline{A} [/mm] und S ist
dann die Trägergerade des reflektierten Strahls.
LG Al-Chwarizmi
|
|
|
|
|
Danke für die Antwort, das hilft doch schonmal weiter. Doch wie stelle ich die Gleichung für die Tangentialebene auf wenn ich doch nur einen Punkt habe?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:43 Mi 31.10.2012 | Autor: | chrisno |
Berechne die partiellen Ableitungen in diesem Punkt. Damit hast Du zwei tangentiale Vektoren, die Du für die Ebene brauchst.
|
|
|
|
|
Ich habe grad auf Wikipedia gelesen das doch die Tangentialebene eines Punktes auf einem Ellipsoiden doch schon durch:
Schnittpunkt mit Ellipsoid: [mm] \vektor{x_{0} \\ y_{0} \\ z_{0}}
[/mm]
dann ist die Tangentialebene an dem Punkt doch:
1 = [mm] \bruch{x_{0}*x}{a^{2}} [/mm] + [mm] \bruch{y_{0}*y}{b^{2}} [/mm] + [mm] \bruch{z_{0}*z}{c^{2}}
[/mm]
das heißt ja, das ich gar keine partielle Ableitung brauche und somit die Ebene schon habe, da ich ja die Paramter a,b,c durch meine Spiegelfunktion schon habe.
Dann muss ich ja nur noch den Normalenvektor auf der Ebene berechnen mit dem Schnittpunkt und kann dann meinen Ausgangspunkt an dem Normalenvektor spiegeln.
|
|
|
|
|
> Ich habe grad auf Wikipedia gelesen das doch die
> Tangentialebene eines Punktes auf einem Ellipsoiden doch
> schon durch:
>
> Schnittpunkt mit Ellipsoid: [mm]\vektor{x_{0} \\ y_{0} \\ z_{0}}[/mm]
>
> dann ist die Tangentialebene an dem Punkt doch:
>
> 1 = [mm]\bruch{x_{0}*x}{a^{2}}[/mm] + [mm]\bruch{y_{0}*y}{b^{2}}[/mm] +
> [mm]\bruch{z_{0}*z}{c^{2}}[/mm]
>
> das heißt ja, das ich gar keine partielle Ableitung
> brauche und somit die Ebene schon habe, da ich ja die
> Paramter a,b,c durch meine Spiegelfunktion schon habe.
>
> Dann muss ich ja nur noch den Normalenvektor auf der Ebene
> berechnen mit dem Schnittpunkt und kann dann meinen
> Ausgangspunkt an dem Normalenvektor spiegeln.
Hallo,
zuerst hattest du einen Spiegel in der Form eines
Rotationshyperboloids; jetzt sprichst du von einem
Ellipsoid.
Beachte den Vorzeichenwechsel, der natürlich auch
in die Gleichung der Tangentialebene eingeht !
Und: Spiegeln an der Tangentialebene ist nicht dasselbe
wie spiegeln am Normalenvektor !
LG Al-Chwarizmi
|
|
|
|
|
Hallo,
ja das mit der Ellipse und dem Vorzeichenwechsel ist mir bewusst. Ich habe halt nur das Beispiel von Wikipedia verwendet.
Aber ich muss doch an dem Normalenvektor der Ebene spiegeln damit ich den ausfallen (gespiegelten) Strahl bestimmen kann oder verstehe ich das jetzt ganz falsch?
Also um mein Problem genauer zu beschreiben. Es geht um einen Roboter der für die Ortung eine omnidirektionale Kamera verwendet. Nun kann der Spiegel ja "verstellt" sein. Das heißt er könnte ja in allen Achsen verdreht also nicht gerade ausgerichtet sein. Momentan bestimmen wir für jeden Pixel in der Bildebene eine Distanz. Das heißt: Falls ich ein Objekt an Pixel x,y erkennen, dann ist das erkannte Objekt d mm weit vom Roboter weg. Diese Distanzen werden einmal berechnet und liegen dann in einer Lookup Tabelle bereit.
Nun möchte ich eine Funktion bekommen, die mir das "verdrehte" des Spiegels in die Distanzfunktion reinmodelliert. Das heißt bei der Kalibrierung möchte ich eine vordefinierte Länge erkennen und anhand meiner optimalen Lookup Tabelle bestimmen können, in wie weit sich der Spiegel verdreht hat und diese Parameter so bestimmen, das die Funktion diesen Fehler wieder herausrechnet.
|
|
|
|
|
> Hallo,
> ja das mit der Ellipse und dem Vorzeichenwechsel ist mir
> bewusst. Ich habe halt nur das Beispiel von Wikipedia
> verwendet.
OK, ich wollte nur auf den Unterschied hinweisen.
Ansonsten ist die Bestimmung der Gleichung der
Tangentialebene analog.
> Aber ich muss doch an dem Normalenvektor der Ebene spiegeln
> damit ich den ausfallen (gespiegelten) Strahl bestimmen
> kann oder verstehe ich das jetzt ganz falsch?
Nein. Um zu einem einfallenden Strahl den reflektierten
Strahl zu erhalten, musst du diesen nicht am Normalenvektor
der Tangentialebene, sondern an dieser selbst spiegeln,
so wie ich dies schon beschrieben hatte.
> Also um mein Problem genauer zu beschreiben. Es geht um
> einen Roboter der für die Ortung eine omnidirektionale
> Kamera verwendet. Nun kann der Spiegel ja "verstellt" sein.
> Das heißt er könnte ja in allen Achsen verdreht also
> nicht gerade ausgerichtet sein. Momentan bestimmen wir für
> jeden Pixel in der Bildebene eine Distanz. Das heißt:
> Falls ich ein Objekt an Pixel x,y erkennen, dann ist das
> erkannte Objekt d mm weit vom Roboter weg. Diese Distanzen
> werden einmal berechnet und liegen dann in einer Lookup
> Tabelle bereit.
Die Einzelheiten der "omnidirektionalen Kamera" - was immer
du damit auch meinen magst, kümmern mich eigentlich
kaum. Um die damit gewonnenen Daten auswerten zu können,
musst du dich ohnehin um die eigentliche Geometrie
kümmern, zu der ich mich schon geäußert habe.
> Nun möchte ich eine Funktion bekommen, die mir das
> "verdrehte" des Spiegels in die Distanzfunktion
> reinmodelliert. Das heißt bei der Kalibrierung möchte ich
> eine vordefinierte Länge erkennen und anhand meiner
> optimalen Lookup Tabelle bestimmen können, in wie weit
> sich der Spiegel verdreht hat und diese Parameter so
> bestimmen, das die Funktion diesen Fehler wieder
> herausrechnet.
Damit man allenfalls deine Probleme im Detail genauer
verstehen könnte, müsstest du deine Gerätschaften
genauer beschreiben. Vielleicht geht es ja noch darum,
gewisse "Kamera-Koordinaten" in "echte Raumkoordinaten"
umzurechnen ...
LG Al-Chw.
|
|
|
|
|
Hallo und danke nochmal für die Antwort.
Also ich werde mal versuchen, soweit die Aufgabenstellung zu erklären.
Es geht um einen Spiegel und eine Kamera. Die Kamera ist nach oben gerichtet und schaut
auf den hyperbolischen Spiegel. Nun soll für jeden Pixel im Kamerabild eine Distanz angegeben werden können. Das heißt, es sollen keine Raumkoordinaten bestimmt werden, es soll lediglich für Pixel (x,y) im Bild ein Wert bestimmt werden, der aussagt, dass der Punk im Raum, den Pixel (x,y) wiederspiegelt, n Zentimeter vom Mittelpunkt des Spiegels entfernt ist.
Das ist der erste Schritt. Wir gehen dabei von einem optimal positionierten Spiegel und Kamera aus.
Nun sollen Referenzpunkt eingemessen werden. Das heißt, zB Linien die im Abstand von einem Meter erkannt werden sollen. Beim optimalen Ansatz, sollten nun die Werte an den Pixel, wo Linien erkannt sind, auch die richten Werte stehen. Nun gehen wir davon aus, das der Spiegel "schief" hängt und die ein Meter Marke nicht bei einem Meter erkannt wird, sondern bei 1,2 Meter.
Nun soll die Distanzfunktion soweit verändert werden, das die Neigung des Spiegels parametrisiert werden kann. Das heißt, ich messe einen Wert, und falls der gemessene Wert nicht meiner optimalen Distanzfunktion enspricht, aber ich weiß das meine Messungen stimmen, dann müssen die Parameter der Neigung soweit angepasst werden, dass die Distanzfunktion wieder stimmt. Das heißt, ich passe meine Distanzfunktion der Neigung des Spiegels an.
Ich hoffe das reicht an Informationen, falls mehr erwünscht ist, sagt mir bitte was ihr noch wissen wollt.
Schonmal danke für die Hilfe.
|
|
|
|
|
Hallo,
ich habe bzgl meines Problems noch eine Frage..
Nach Absprache und einigen Überlegungen, reicht es wenn ich die Rechnung im 2 Dimensionalen bereche.
Nun stellt sich für mich die Frage, wie ich den Hyperbol in den 2 dimensionalen Raum transformiere.
Ich müsste ihn im Mittelpunkt mit einer Ebene schneiden. Aber wie bekomme ich aus der 3 dimensionalen Darstellung eine 2 dimensionale Darstellung des "Profils".
Danke schonmal
|
|
|
|
|
> Hallo,
> ich habe bzgl meines Problems noch eine Frage..
> Nach Absprache und einigen Überlegungen, reicht es wenn
> ich die Rechnung im 2 Dimensionalen bereche.
> Nun stellt sich für mich die Frage, wie ich den Hyperbol
> in den 2 dimensionalen Raum transformiere.
> Ich müsste ihn im Mittelpunkt mit einer Ebene schneiden.
> Aber wie bekomme ich aus der 3 dimensionalen Darstellung
> eine 2 dimensionale Darstellung des "Profils".
>
> Danke schonmal
Hallo,
deine Gleichung des Hyberboloids hatte die Form:
$ [mm] \bruch{z^2}{a^2}\ [/mm] -\ [mm] \bruch{(x^2+y^2)}{b^2} [/mm] $ = 1
Wenn du [mm] r:=\sqrt{x^2+y^2} [/mm] setzt, kommst du zur
Gleichung einer Hyperbel in der r-z-Ebene:
$ [mm] \bruch{z^2}{a^2}\ [/mm] -\ [mm] \bruch{r^2}{b^2} [/mm] $ = 1
Diese Hyperbel stellt einen Mittenschnitt dar, welcher
bei Rotation um die z-Achse die Hyperboloidfläche
erzeugt.
LG
Al-Chwarizmi
|
|
|
|