Jump to content

Kamerastabilisierung


Recommended Posts

Offenbar habe ich hier das gefunden, was ich benötige, um eine Videokamera in einem schaukelnden Segelboot immer waagerecht auszurichten: ein IMU Brick, der die Bewegungen registriert, und zwei DC Bricks, die die Motoren der Mechanik entsprechend ansteuern.

 

Allerdings wird mir schlecht, wenn ich die Formeln unter "What is this sourcery" anschaue. Ich hoffe, ich komme bei diesem Projekt ohne allzu viel Mathematik aus. Dazu müsste ich die Bricks mit auf die bewegliche Plattform montieren, auf der die Kamera befestigt ist, und die Motoren müssten sich einfach nur so lange drehen, bis alle Winkel auf Null stehen.

 

Sehe ich das alles so richtig?

Link to comment
Share on other sites

Ich habe so den spontanen Einfall, dass eine rein mechanische Realisierung besser funktionieren könnte (Sorry TF)

 

Z.B. eine Art schwimmende Aufhängung mit Gewicht unter der Kamera, dann hält die Schwerkraft deine Kamera gerade. Das funktioniert auch deutlich näher an "Echtzeit" :-D

 

Ich könnte mir vorstellen, dass durch die minimalen Verzögerungen einer Realisierung mit TF das Bild immer noch leicht wackelig und ruckelig sein könnte. Alleine die Bewegungen des Motors sind nicht so sanft im Übergang, wie z.B. ein Pendel, der von der Gravitation "bewegt" wird.

 

Oder spricht was anderes gegen einen solchen Ansatz?

 

 

Link to comment
Share on other sites

Huhu,

 

die Idee ist mir auch schon gekommen. Das ganze wird ja auch im professionellen Sektor eingesetzt. Von daher denke ich auch, dass es die bessere Lösung ist.

Die Idee mit dem Winkel ist an sich der Richtige, du musst aber auch die Trägheit berücksichtigen, die durch die Programmlaufzeit noch verstärkt wird.

Was auch noch wichtig sein könnte ist, dass du die Motoren evtl. etwas gedämpft startest und auch stoppst.

Diese Konstruktion finde ich eigentlich ganz gut:

http://www.youtube.com/watch?v=W-L9ng2pSkk

 

LG Marc

Link to comment
Share on other sites

Ich denke, eine gewisse Verzögerung ist tolerierbar, weil die Kamera ja das Bild auch noch sebst stabilisiert. Und das Abbremsen kommt von allein, die Drehzahl der Motoren soll von der Größe des Winkels abhängen.

Link to comment
Share on other sites

Die Mechanik ist schon seit zwei Jahren fertig. Damals hatte ich versucht, mit Hilfe von Fotozellen den Horizont anzupeilen. Zu hell = Himmel = runter drehen, zu dunkel = Wasser = hoch drehen. War aber nicht praxistauglich, weil: je höher über dem Horizont, desto dunkeler wird der Himmel, je tiefer unter dem Horizont, desto heller wird das Wasser, das ist kontraproduktiv.

 

Ich muss eigentlich nur die alte Steuerelektronik entfernen, die Bricks anschließen und fertig.

Link to comment
Share on other sites

Schöne Idee. Ich würde dir das Servobrick empfehlen. Da kannst dann auch direkt die Winkel angeben und brauchst nur ein Brick für beide Motoren bzw Servos. Spart die mathematischen Berechnungen ;-) allerdings könnte ich mir auch vorstellen, dass du mit den Verzögerungen Probleme bekommst

Link to comment
Share on other sites

Was ist mit einer Steadycam-Lsg. ? Wenn es das Zittern und schaukeln von Kameraffahrten ausgleichen kann, sollte es ev. bei nicht zu starkem Seegang zumindest die Ausschläge dämpfen, die Feinheiten ev. im kameraeigenen Stabi.

Link to comment
Share on other sites

Das Problem an einer Steadycam Lösung ist in meinen Augen, dass ihr Funktionsprinzip u.a.  darin besteht, "weit" unter der Kamera einen Schwerpunkt anzubringen. Das würde für die Realisierung auf einem Boot bedeuten, dass die Kamera recht hoch installiert werden müsste (was  bei Seegang zu größeren horizontalen Bewegungen führt, selbst wenn die Kamera dabei wenig ruckeln sollte.) oder, dass der Schwerpunkt weit unter das Deck reichen müsste. Ist halt die Frage, ob man sich dafür das Deck aufreißen will, um die Steadycam-Konstruktion im Rumpf unterzubringen.

 

Deswegen hatte ich vorgeschlagen, das eher als Pendel zu versuchen, wo der Hauptaufbau über der Kamera liegt. Aber die Argumente dagegen leuchten mir auch ein. Vielleicht ist also eine Lösung mit Imu und Schrittmotoren o.ä. doch besser geeignet.

 

Link to comment
Share on other sites

Nicht unbedingt. Die Kardanaufhängung der "Steadycam" könnte genausogut über der Kamera und deren Schwerpunkt liegen, d.h. die Kamera macht die Masse aus und braucht kein Gegengewicht.

 

Gab es früher auf den Fischerbooten nicht die karadanisch aufgehängten Lampen, die jeden Sturm getrotzt haben ?

Link to comment
Share on other sites

Stimmt, könnte vielleicht auch klappen. Setzt aber m.E. nach voraus, dass die Kamera ein hohes Eigengewicht hat.

 

@Plenz: Wäre das denn eine mögliche Lösung?

Nur theoretisch. M.W. funktioniert Steadycam allein durch Massenträgheit, und dazu gehört, dass die Kamera 100%ig austariert ist, d.h. der Schwerpunkt muss genau im Drehpunkt des Kardangelenks sitzen. Ungenauigkeiten plus Reibung führen dazu, dass die Kamera sich doch verdreht. Für eine halbe Minute Kamerafahrt mag das egal sein, aber wenn man die Kamera auf dem Segelboot montieren und 10 Minuten laufen lassen möchte, dann ist das wohl kaum eine praktikable Lösung.

 

Ich beschäftige mich mit diesem Thema seit drei Jahren (und habe ehrlich gesagt wenig Lust, alle Für und Wider zu diskutieren, die für mich schon seit langem abgehakt sind) und ich bin überzeugt, dass die Gyro-Lösung die beste ist.

 

Die einzige Frage ist die Realisierung:

 

A - IMU bei der Kamera mit DC-Bricks und einfache Motoren (die ich bereits besitze), die die IMU waagerecht drehen

 

B - IMU unten im Boot registriert nur die Winkel und gibt sie über Servo-Bricks an Servos weiter, die genau die selben Winkel einstellen und somit die Kamera waagerecht drehen

 

Link to comment
Share on other sites

Ist das Gyroskop nicht eine kardanische Aufhängung wie in einer Steadycam ?

Verstehe ich das richtig, dass IMU soll quasi als 3D Wasserwaage arbeiten, die Winkeländ. an die Motoren senden und ausgleichen ? Sind einfache Motoren bzw. Servos genau genug anzusteuern um die Kamera immer exakt auszurichten ?

Link to comment
Share on other sites

Hey,

 

@Nic genau das möchte er machen und das funktioniert auch mehr oder weniger gut. Das kommt eben ganz auf die Konstruktion an.

 

@Plenz vor diesem Problem stand ich gestern auch, als ich so über deine Ideen nachgedacht hab. Wahrscheinlich funktionieren beide Lösungen bei ähnlichem Entwicklungsaufwand. Ich glaube aber das es wichtig ist, die Signallaufzeit möglichst gering zu halten.

Link to comment
Share on other sites

@Plenz vor diesem Problem stand ich gestern auch, als ich so über deine Ideen nachgedacht hab. Wahrscheinlich funktionieren beide Lösungen bei ähnlichem Entwicklungsaufwand. Ich glaube aber das es wichtig ist, die Signallaufzeit möglichst gering zu halten.

Da ich bereits zwei Getriebemotoren für 12 Volt von Conrad besitze, ist es ziemlich uninteressant für mich, noch mal zwei kräftige Servos zu kaufen. Zumal Servos mit geringerer Spannung laufen und somit für die gleiche Leistung einen höheren Strom ziehen.

 

Ich vermute, die Lösung für Motoren ist einfacher, weil die Aufgabe nur lautet "bewege den Motor, falls nötig" und der Nullpunkt ergibt sich von selbst. Bei einem Servor muss man vermutlich die Steuerung noch eichen: der Drehwinkel wird durch die Länge eines Impulses geregelt, aber es ist (falls ich mich nicht irre) außer der Nullstellung nicht genormt, welche Impulslänge welchem Drehwinkel entspricht.

 

Die Steuerung muss in der Tat sehr schnell sein (die Idee, eine Webcam zu benutzen, den Horizont per Software zu finden und dementsprechend das Ganze auszurichten, habe ich deshalb nicht lange verfolgt), und es wäre schon klasse, wenn man das direkt in den Bricks programmieren könnte.

Link to comment
Share on other sites

Softwareseitig müsste man einen PID Regler basteln und auf der Hardwareseite muss man bestimmt etwas mit dem convergence speed spielen, um eine sinnvolle Einstellung zu finden. Aber ich denke wenn man es schafft die Position 10-20 mal pro Sekunde nach zuführen, sollten die Bewegungen recht flüssig wirken.

 

Link to comment
Share on other sites

Verstehe noch nicht ganz, wie die Winkeländerungen ü.NN, die vom IMU ermittelt werden auf den DC-Motor umgesetzt werden, beim Servo ist das klar aber beim einfachen Motor ?

Mit dem DC kannst du einen Motor langsam und schnell vorwärts und rückwärts laufen lassen. Der IMU liefert einen Winkel, und dieser Winkel ergibt direkt die Geschwindigkeit, mit der der Motor den IMU verdrehen soll. Sobald der IMU waagerecht gedreht ist, wird der Motor ruhig gestellt.

Voraussetzung ist wie gesagt, dass der Motor die Kamera UND den IMU bewegt, sodass der IMU ständig über den "Erfolg" der Drehung informiert ist.

Link to comment
Share on other sites

Wenn ich das richtig verstanden habe, will er das Verhältnis durch "probieren" oder irgendwie adaptiv in SOftware ermitteln, auf jeden Fall ohne Schrittmotoren und Servos. Wenn ich das richtig sehe ist ja die Motivation auch nicht, dass Servo/Schrittmotor besodners geeignet sind, sondern viel mehr, dass schon normale Motoren da sind ^^

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...