Forum: Mikrocontroller und Digitale Elektronik Kamera nachführung mit Andoid Tracking, Brainstorming


von Frank S. (mangiari)


Lesenswert?

Hallo,

kenne Arduino und die Möglichkeiten mit Android-Handys nur so vom 
Staunen, noch nichts persönlich realisiert. Bin aber in diverser 
Programmierung fit und auch einfache Elektronik ist kein Problem.

Ich würde gerne eine einfache Kamera-Nachführung bauen. Stell ich mir im 
Moment so vor:

- Android Handy ist fest am Stativ installiert und beobachtet mit der 
Kamera die Szenerie.
- Mittels eines OpenCV Object tracking soll nun ein bewegter Gegenstand 
erkannt werden und die Kamera soll in horizontaler Richtung nachgeführt 
werden (Kameraschwenk), also immer zentral auf den Gegenstand halten, 
solange dieser in einem bestimmten Bereich ist. Bei Verlust wird die 
Camera einfach geparkt und sobald wieder was gefunden wird auf das neue 
Objekt ausgerichtet.

Für mich ist das Hauptproblem die Übersicht, was man dazu alles nimmt, 
welche Möglichkeiten es dazu gibt und welche Wege man bestreiet um das 
Budget nicht aus dem Ruder laufen zu lassen. Ich wüsste nichtmal was für 
eine Art Motor man am besten nimmt um eine sanfte Nachführung 
(Video-Aufzeichnung) zu realisieren und wie man diesen anspricht.
Hab auch keine Ahnung welche Möglichkeiten einfache Android-Endgeräte 
haben, externe Komponenten zu steuern.

Vielleicht kann mir jemand, der sich auskennt und ähnliche Projekte 
schon realisiert hat, ein paar Stichworte für die Google-Suche 
hinwerfen, oder Projekte verlinken, die ähnliche Bestandteile haben.
Also was für Motoren, wie steuer ich die an? Wie vermeide ich 
stotteriges Schwenken. Was ist dazu noch alles nötig, was für 
Alternativen gibt es? Ob das ganze dann am Ende hart verkabelt ist, über 
Bluetooth oder sonstwie funktioniert ist mir völlig egal und ich hab 
auch nichts gegen Bastel-Lösungen, z.B. wenn es Geld spart einfach das 
Display zur Ausgabe zu verwenden und damit Fotodioden anzusteuern, die 
am Arduino hängen...

Bin für alle Anregungen und vor allem für bereits umgesetzte ähnliche 
Projekte offen.

von Xavier Lander (Gast)


Lesenswert?

Frank S. schrieb:
> kenne Arduino und die Möglichkeiten mit Android-Handys nur so vom
> Staunen, noch nichts persönlich realisiert. Bin aber in diverser
> Programmierung fit und auch einfache Elektronik ist kein Problem.

Das ist schon ein bisschen anderst als "normales" Programmieren auf 
Android. Gerade bei OpenCV braucht an eigentlich nur eines: 
Rechenleistung, Rechenleistung, Rechenleistung. Da sind Smartphones 
nicht sooo gut, aber ok OpenCV funktioniert, es gibt eine gute 
Portierung.

Frank S. schrieb:
> Mittels eines OpenCV Object tracking soll nun ein bewegter Gegenstand
> erkannt werden und die Kamera soll in horizontaler Richtung nachgeführt
> werden (Kameraschwenk), also immer zentral auf den Gegenstand halten,
> solange dieser in einem bestimmten Bereich ist. Bei Verlust wird die
> Camera einfach geparkt und sobald wieder was gefunden wird auf das neue
> Objekt ausgerichtet.

Das würde ich erstmal am PC realisieren. Hast du sowas shconmal mit 
OpenCV gemacht? Hast du überhautps schonmal mit OpenCV gearbeitet? 
Später irgendwann kann man dann über eine Portierung auf ein mobiles 
Endgerät nachdenken.

Frank S. schrieb:
> Ich wüsste nichtmal was für
> eine Art Motor man am besten nimmt um eine sanfte Nachführung
> (Video-Aufzeichnung) zu realisieren und wie man diesen anspricht.

Google mal nach Servo. Evtl. reichen Modellbauservos, je nach 
Kameragewicht. Ansonsten richtige Servos (BLDC), google da mal nach 
UHU-Servo. Das ist eine günstige Möglichkeit bürstenlose 
Gleichstrommotoren als Servos zu missbrauchen.

> Hab auch keine Ahnung welche Möglichkeiten einfache Android-Endgeräte
> haben, externe Komponenten zu steuern.

Primär WLAN, Bluetooth oder über die Kopfhörerschnittstelle. Alles 
andere ist eher zweifelhaft.

Frank S. schrieb:
> Wie vermeide ich
> stotteriges Schwenken.

Durch gute Regelung. Regelungstechnik ist allerdings ein durchaus 
elitäres Gebiet (genauso wie OpenCV). Hier mal ein Einstieg: 
http://www.rn-wissen.de/index.php/Regelungstechnik
Das ist ein Einstieg. Ich habe in der FH 2 Semester Regelungstechnik 
Grundlagen und später nochmals 2 Semester fortgeschrittene 
Regelungstechnik. Trivial ist was anderes.

von Frank S. (mangiari)


Lesenswert?

Vielen Dank schon mal für die guten Ratschläge. Also vor der 
Programmierung und der OpenCV Lib hab ich jetzt keine Angst. Meine 
Freundin hat sowas mal ganz ordentlich hinbekommen für ein Uni-Projekt 
und ich kann ihre Skills beim Programmieren ungefähr zu meinen in Bezug 
setzen ;)

Klar, die ganze Entwicklung und Feinarbeit muss natürlich am PC 
stattfinden, aber wenn keine echten Aussichten auf Erfolg bestehen, hab 
ich natürlich keine Lust auf den ganzen Krempel. Also ich würde das 
schon von Anfang an immer auch parallel zum proof of Concept mit der 
Zielplatform testen. Sonst steckt man ja unglaublich viel Arbeit rein um 
dann festzustellen dass das so nicht geht.

Alternativ zu nem Android, könnt ich natürlich auch nen kleines Netbook 
benutzen, wenn's das einfacher macht, da hat man auch mehr 
Schnittstellen. Dafür ist die Cam nicht schon so einfach zur Verfügung.

Wenn man bei youtube nach "android openCV object tracking" sucht, sieht 
man sehr beeindruckende Ergebnisse, die weit über das rausgehen was ich 
machen will. Ich brauch auch keine genaue Erkennung irgendwelcher 
Objekte, mir reicht es im statischen Bild der Cam die X-Koordinte mit 
der stärksten farblichen Veränderung zu finden, das sollte genauso 
funktionieren. Noch dazu halt ne Dämpfung, so dass er die letzte 
Koordinate und die Richtung der Bewegung schon weiß und dann eine 
Fortsetzung der Bewegung höher gewichtet als andere Events im Bild.

Es geht darum voll automatisch Video-Footage zu erzeugen. Wenn das 
Nachführen nur jedes dritte mal klappt, ist das auch egal. Footage wird 
ja eh zu 95% wieder entsorgt...

Servos kenne ich natürlich aus dem Modellbau. Aber die haben ja so kurze 
Wege. Und insbesondere sind die (zumindest mit der normalen RC Technik) 
viel zu ruckelig für nen Video-Kamera-Schwenk. Ich brauch irgendwas ganz 
weiches. Am liebsten wäre mir sogar gar keine feste Verbindung sondern 
einfach einen Gleichstrommotor mit Rutsch- oder Flüssigkeitskupplung mit 
dem frei drehbaren Kamera-Stativ zu verbinden, dass das alles smooth 
wird.

Dann brauch ich allerdings ne Rückmeldung in die Software, wo die 
filmende Kamera gerade steht, macht's natürlich nicht einfacher als ne 
reine Positionierung auf ner Skala von 0 - 255.

von Xavier Lander (Gast)


Lesenswert?

Frank S. schrieb:
> Servos kenne ich natürlich aus dem Modellbau. Aber die haben ja so kurze
> Wege. Und insbesondere sind die (zumindest mit der normalen RC Technik)
> viel zu ruckelig für nen Video-Kamera-Schwenk. Ich brauch irgendwas ganz
> weiches. Am liebsten wäre mir sogar gar keine feste Verbindung sondern
> einfach einen Gleichstrommotor mit Rutsch- oder Flüssigkeitskupplung mit
> dem frei drehbaren Kamera-Stativ zu verbinden, dass das alles smooth
> wird.

Okay - ich spreche eher von BLDC Servos, also richtigen 
Positionsgeregelten Servos. Die haben mit dem "Schrott" aus dem 
Modellbau (was anderes wird ja auch nicht benötigt) rein garnichts zu 
tun. Eine Rutsch oder Flüssigkeitskupplung würde ich unter keinen 
Umständen nutzen. Die macht dir deine ganze Regelungstechnik kaputt da 
du sie nur sehr schwer modellieren kannst. Das ruhighalten ist 
regelungstechnisch nicht schwer zu realisieren (wenn man halt mal drin 
ist). Für deine Anwendung reicht ein PID-Regler völlig aus. Lies was ich 
gelinkt habe zum Thema Regelung und von div. Halbleiterherstellern gibt 
es sehr gute Appnotes: Google mal:
Microchip AN964
Atmel AVR221
Ist eine Regelungstechnische Frage, mit PID ist das von dir gesagt gut 
zu machen. Ein gewisses regelungstechnisches und mathematisches 
Verständnis vorrausgesetzt (!) Für Arduino gibt es glaub auch schon 
einen fertigen PID. Rckmeldung an die Software geht ja einfach über 
Schnittstellen wie UART via Blauzahn.

Was für ein Gewicht hast du denn mit deiner Kamera? Wenn du es sauber 
mach willst, dann nimm einen billigen Drehtisch (annäherungsweise sind 
die Spielfrei) aus Ebay z.B. 
http://www.ebay.de/itm/NEW-3-75MM-ROTARY-TABLE-HORIZONTAL-VERTICAL-NEW-ECONOMICAL-TABLE-/270987721028?pt=Industriemaschinen&hash=item3f18207944
und steck da einen Schrittmotor hin. Nichts ist einfach als die 
ansteuerung eines Schrittmotors. Bei Pollin gibt es Schrittmotorkarten 
für 10€, du brauchst ja nur einen Kanal. Für 30€ bekommst nen dicken 
Schrittmotor hinten hin. Da kannst ideal auch 15kg Kameras oder mehr 
hinhängen oder auch mal ein 1000er Teleobjektiv wenn du willst. So kann 
man sich seine eigenen Nachführungen bauen. Ich hab mal für nen Kumpel 
sowas gebaut, nur für 3 Achsen. Hab solche "Rotary Tables" verwendet. 
Genial. Für die Anflanschung des Schrittmotors an den Drehtisch wendest 
dich am besten an http://www.cncecke.de/forum/ und frägst dort am 
Schwarzen Brett ob dir das jemand bohren kann bzw. den 
Schrittmotorhalter anbringen kann. Mit dieser Lösung bist du dann 
absolut präzise und kannst auch größere Gewichte durch die Gegend 
fahren, z.B. wenn du einen Kameraboom o.Ä. verdrehen möchtest. Bei 
Schrittmotoren entfällt dir die lästig kompliziertere Realisierung. 
Schrittmotoren sind stinkeinfach. Kauf / lade dir von O'Reilly Learning 
OpenCV
http://shop.oreilly.com/product/9780596516130.do
hinterher bist da fitt. Lies das Wiki zur Portierung nach Android, da 
sind gute Tutorials dabei. Lies besagte Appnotes.

von Xavier Lander (Gast)


Lesenswert?

Achso bei dem Drehtisch ist die Übersetzung 1:36. Ein Schrittmotor 
schafft max. ca. 3000 U/min. 3000/36 =~ 83 U/Min -> 83/60 =~ 1,4 
U/Sekunde =~ 500°/s

Ich denke dass das für Film genügend ist. 500 Grad pro Sekunde.

von Frank S. (mangiari)


Lesenswert?

Cool perfekt danke, das beschäftigt mich erstmal ne Weile. Smooth frei 
drehbare Kamerasteuerung und die Bildanalyse kann ich auch erstmal 
getrennt machen, ne programmierbar drehbare Kamera reicht mir erstmal 
auch.

Muss mich mal schlau machen was da finanziell auf mich zu kommt, denn 
für um die 200 Euro bekommt man auch nen fertigen stabilen 
Schwenk-Neiger, da kann man sich natürlich einiges sparen an 
Bastelaufwand. Im Gegensatz zur Programmierung braucht man für's reale 
basteln immer so viel Werkzeug und Erfahrung...

Danke nochmal!

von chris (Gast)


Lesenswert?

Hier ein schönes Projekt:
http://www.niklasroy.com/project/88/my-little-piece-of-privacy/
Es wird ein Vorhang mittels einer Kamera nachgeführt. Im Projekt steckt 
alles drinn: Bilderkennung, Regelung. Die Sourcen sind offen und können 
heruntergeladen werden.

von Frank S. (mangiari)


Lesenswert?

Hey! Auf jeden Fall coole Projekte der Mann. Das ist auch etwa das 
bevorzugte Beschäftigungsgebiet meiner Freundin :)

Jetzt muss ich mir erstmal klar werden wie aufwändig ich den 
Tilt-Pan-Head bauen will oder ob ich mir einen fertigen kaufe und den 
räubere, also die Motoren selber ansteuer.

Sieht bissl windig aus das Plastik-Zeug und trozdem ganz schön teuer..

von Xavier Lander (Gast)


Lesenswert?

Frank S. schrieb:
> Muss mich mal schlau machen was da finanziell auf mich zu kommt, denn
> für um die 200 Euro bekommt man auch nen fertigen stabilen
> Schwenk-Neiger, da kann man sich natürlich einiges sparen an
> Bastelaufwand.

Du meinst die besagten Schwenkneiger die man aus England bestellt, so um 
die 200 britische Pfund kosten? Diesen Fehler habe ich einmal gemacht ^^ 
Das eignet sich bestenfalls für eine Überwachungskamera. Wenn ich z.B. 
meine Nikon D7000 mit einem Suppenzoom (also einem minderwertigen 
Zoomobjektiv mit 18-300mm / F4.5-6.8) draufstecke so komme ich auf knapp 
2kg Gewicht. Diese besagten Schwenkneiger eignen sich theoretisch bis 
zu dieser Gewichtsgrenze (sagt zumindest die Produktbeschreibung). In 
der Praxis habe ich allerdings andere Erfahrungswerte machen dürfen. Für 
den Filmbetrieb ist sowas in keinster Weise geeignet. Selbst für 
Timelapse ist das Zeug nicht zu gebrauchen - das Zeug wackelt im Wind. 
Die Ruckelfreiheit entspricht der eines Modellbauservos für 5€ aus 
China. Typische Überwachungskameracharakteristik bekommen die Filme da. 
Für Filmen im künstlerischen Sinne unbrauchbar. Leider.

Frank S. schrieb:
> da kann man sich natürlich einiges sparen an
> Bastelaufwand. Im Gegensatz zur Programmierung braucht man für's reale
> basteln immer so viel Werkzeug und Erfahrung...

Aber nur so kann man lernen und seinen Horizont erweitern. Ist eine 
Philosophiefrage.

In der Summe kommst du mit dem Gebastle auch ca. auf 200€: Drehtisch 
85€, Schrittmotor 30€, Treiberkarte 15€, Motorbefestigung 30€ 
(Arbeitszeit an einer CNC-Fräse), 8€ Wellenkupplung, Adapterplatte 
vielleicht 200x300mm Aluplatte mit zwei bis drei 1/4" Schraube für die 
Befestigung der Kamera und Objektiv verschiebbar in den Schwerpunkt 
incl. Bearbeitung 45€. Kommst auf ca. 200€, das gleiche was ein 
Schwenkneiger kostet dafür halt vernünftig gelöst. Die Ansteuerung via 
Arduino + Bluethooth kommt ja in beiden Fäkken noch dazu. Außerdem musst 
dir überlegen, ob du nicht in beiden Fällen noch einen Drehgeber zur 
Positionsrückmeldung anbringst...

von Frank S. (mangiari)


Lesenswert?

Ich dachte an so ein Teil: 
http://www.riccos-camera.de/product_info.php/products_id/1974 das sieht 
jetzt schon so aus als könnte es das Gewicht einigermaßen stemmen, aber 
halt alles Kunstoff und der Unterschied zwischen langsamstem und 
schnellstem Pan im Beispielvideo ist nicht besonders beeindruckend. Ist 
halt die Frage ob das ein reines Ansteuerproblem ist, oder ob das Teil 
mit seinen Motoren einfach so harte Grenzen hat.
Hier das Video dazu: www.youtube.com/watch?v=4xGWKyGeYqo

Ansteuerung würde ich ja komplett ersetzen wollen. Das Teil wäre halt 
schön kompakt und übersichtlich, gut zu transportieren.

Muss mir mal konkrete Projekte im Netz anschauen in denen Leute sowas 
selber gebaut haben, wie die das realisiert haben und wie gut das 
funktioniert. Ich kenne halt hauptsächlich Projekte in denen es um eine 
reine Positionierung für Standbilder geht, da ist die Qualität des 
Schwenks natürlich völlig egal.

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
Noch kein Account? Hier anmelden.