uni-projekt: frage an die mathe-gurus

hallo zusammen,

wir sitzen gerade an einem interessanten projekt zum thema interaktion. das geht über zwei semester, da kann also was wirklich anständiges dabei rauskommen. doch im moment hängen wir seit ner weile an einem mathematischen problemchen, von dem ich hoffe, daß das einer von euch lösen kann…

es geht im gesamten darum, aus zwei kamerabildern die 3d-koordinaten eines punktes in einem definierten raum zu berechnen. die kameras sind sowohl nach unten, also auch zueinander nach innen geneigt. das brauchen wir, um unser spielfeld möglichst großflächig zu erfassen.

die idee hinter der geometrie ist folgende: ein punkt in einem kamerabild (x, y im kamerabild sind bekannt) entspricht einem vektor von der kamera aus gesehen. wir wissen also schonmal, daß sich unser gesuchter punkt auf diesem vektor befindet, nur nicht, wie weit er von der kamera entfernt ist. von der anderen kamera aus gesehen haben wir einen anderen winkel zu dem gesuchten punkt, es definiert sich also wieder ein vektor. die beiden vektoren schneiden sich im idealfall in dem punkt und wir können den ortsvektor des gesuchten punktes berechnen. im realfall sind die beiden vektoren windschief, dann müssen wir den kleinsten abstand suchen, diesen halbieren und bekommen so eine näherung der 3d-koordinate.

gegeben haben wir außerdem die ortskoordinaten unserer kameras und den sichtvektor der kameras (normale zur bildebene). auch kennen wir die öffnungswinkel der kameras in horizontaler und vertikaler richtung. daraus können wir den winkelunterschied vom sichtvektor zu unserem gesuchten vektor berechnen und bekommen zwei winkel (in x und in y-richtung des kamerakoordinatensystems) heraus.

woran wir jetzt im detail scheitern ist die umrechnung des sichtvektors anhand der beiden winkeldifferenzen in wieder einen neuen vektoren, weil das kamerasystem ja gegen unser spielfeldsystem geneigt ist. eine drehung des sichtvektors um die globale y-achse zum beispiel würde auch eine drehung um die x-achse implizieren und die rechnung so ziemlich ungenau machen.

wir sind für jede hilfe überaus dankbar! für fragen und erklärende grafiken könnt ihr euch gerne an mich wenden!

vielen dank, stefan.

Hallo Stefan,

leider ist mein Wissen etwas zu stark eingerostet, aber wenn Ihr Kameratracking implementieren wollt, könnt Ihr ja auch mal in die Sourcen des AR-Toolkits reinschauen, da müsste sowas drin sein :wink:

Was genau habt Ihr denn vor wenn ich fragen darf ?

Matse

das tracking ist nicht das problem, das haben wir relativ gut im griff… unsere größte sorge ist im moment die sache mit der mathematik. wir haben eine gewisse vorstellung davon, wie das funktionieren soll (und wird), aber an den details hängen wir uns auf.

es gibt ja diverse große Mathematik Foren, da würde ich mal nachfragen, da kann euch bestimmt jemand helfen.

die beiden vektoren mit dem vektorprodukt multiplizieren. den neuen vektor als normieren und als normierten normalenvektor benutzen.

d(g,h)=|(q0-p0)*n0|

q0= fester punkt der ersten gerade (z.b. aupunkt)
p0= fester punkt der zweiten gerade (z.b. aufpunkt)
n0= normierter normalenvektor (siehe oben)

ich hoffe, ich konnte euch weiterhelfen

greez alex