Forum: Mikrocontroller und Digitale Elektronik Position einer Infrarot Diode mit einer Kamera bestimmen


von Jonas (Gast)


Lesenswert?

Hallo ich will für meine modellbahn Anlage ein Car system bauen und 
dafür muss die Position von jedem Auto bestimmt werden. Deshalb will ich 
fragen ob es mit einem Arduino und einer angeschlossenen Kamera möglich 
ist, dass man die Position  einer IR Diode mit Koordinaten bestimmt. 
Dabei sind nur x- und y- gemeint. Vielen Dank im voraus!

von Jason (Gast)


Lesenswert?

Jonas schrieb:

> Hallo ich will für meine modellbahn Anlage ein Car system bauen und
> dafür muss die Position von jedem Auto bestimmt werden. Deshalb will ich
> fragen ob es mit einem Arduino und einer angeschlossenen Kamera möglich
> ist, dass man die Position  einer IR Diode mit Koordinaten bestimmt.
> Dabei sind nur x- und y- gemeint. Vielen Dank im voraus!

Im Prinzip schon. Kommt jedoch auf die Größe der Anlage an. Wie viele 
Fahrzeuge? Wie schnell muss ein Fahrzeug erfasst werden? Wie genau ist 
die Position zu bestimmen?

von ThomasW (Gast)


Lesenswert?

mit ner Kamera senkrecht von oben brauchst Du eigentlich nur noch ein 
paar Referenzpunkte. Allerdings seh ich da keinen Arduino, eher einen 
RasPi.

von pegel (Gast)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Ein Arduino hat zu wenig Rechenleistung für Bildverarbeitung.

Du nimmst am Besten einen Jetson Nano. Der hat eine dicke GPU, die per 
CUDA Algorithmen rechnen kann, und Du kannst alles mögliche an 
CSI2-Kameramodulen anschließen und nicht nur wie beim PI das originale 
von Boardhersteller, weil die PI Foundation lieber Closed Source 
Software vertreibt.

Optische Bildverarbeitung geht prinzipiell, wird im echten Leben auch 
angewendet, ist aber eher aufwändig. Bevor Du Dich dafür entscheidest, 
solltest Du auch alle alternativen Messverfahren wie Sensoren in der 
Fahrbahn  usw untersuchen.

fchk

von Gerd B. (Gast)


Lesenswert?

Hab ich mal gemacht.
http://www.sebulli.com/campos/index.php?lang=de
Allerdings nur für 1 Objekt. Anstatt IR habe ich eine normale LED 
ausgewertet und die Position dann per IR digital zurückgesendet.
Bei ner kleinen, hellen SMD LED konnte ich die Position sogar auf 1/10 
Subpixel genau auflösen.
Der STM32 kann direkt ein Kamerasignal auswerten und einlesen.

Gruß Gerd

von Gerd B. (Gast)


Lesenswert?

pegel war schneller :)

von pegel (Gast)


Lesenswert?

Gerd B. schrieb:
> pegel war schneller :)

Das schon, aber Du hast es gemacht.
Vielleicht ist das sogar moderner mit einem H7 Board und passender 
Kamera möglich?

von Gerd B. (Gast)


Lesenswert?

H7
ja. Bestimmt. War halt damals das was ich gerade hatte und mit dem ich 
mich schon auskannte. Vielleicht wäre mittlerweile auch was mit dem PI 
einfacher. Vor allem, weil das Kamerainterface einfacher ist.

von Jason (Gast)


Lesenswert?

Wie ich schon schrieb hängt das Projekt vom Umfang der Aufgabe ab. Mit 
einer einfachen Kamera (seriell 115200 Baud) habe ich etwas ähnliches (2 
Objekte infrarot) mit einem 8051-System bereits vor 10 Jahre gelöst.

von ThomasW (Gast)


Lesenswert?

Gerd B. schrieb:
> Vielleicht wäre mittlerweile auch was mit dem PI einfacher. Vor allem,
> weil das Kamerainterface einfacher ist.

und da gibt es auch die Möglichkeit der Mustererkennung. Also direkt die 
Fahrzeuge zu erkennen, ohne extra LED.

P.S. Dein Projekt mit dem STM gefällt mir richtig gut!

von Jonas (Gast)


Lesenswert?

Vielen Dank für die ganzen Antworten! Ich werde jetzt erstenmal gucken 
was ich mit den ganzen Infos anfange :).

von Frank D. (Firma: Spezialeinheit) (feuerstein7)


Lesenswert?

Bei dem Controller der Wii war doch glaube ich auch so eine Minicam 
drinne. Für die gibt es auch schon fertige Libs auch für den Arduino und 
Co.

von Einer K. (Gast)


Lesenswert?

Sipeed Maix Dock
Kamera, 2 Kerne und Mustererkennung, alles drin/machbar

von STK500-Besitzer (Gast)


Lesenswert?

Es gibt auch Projekte mit der Nintendo-WII zu dem Thema.

von PittyJ (Gast)


Lesenswert?

Arduino geht nicht. Versuch mal, da überhaupt eine Kamera 
anzuschliessen.
Aber Raspi sollte gehen. Wir machen so etwas immer mit 2 Kameras, das 
erhöht die Genauigkeit.
Allerdings bezweifel ich (von der naiven Frage ausgehend), dass du die 
Algorithmen beherrscht, um eine Bildauswertung programmieren zu können. 
Denn das ist Echtzeit und Multithreaded für Bildaufnahme, Berechnung, 
Darstellung etc.

von STK500-Besitzer (Gast)


Lesenswert?

PittyJ schrieb:
> Arduino geht nicht. Versuch mal, da überhaupt eine Kamera
> anzuschliessen.
Eine Möglichkeit wurde oben genannt.

PittyJ schrieb:
> Aber Raspi sollte gehen. Wir machen so etwas immer mit 2 Kameras, das
> erhöht die Genauigkeit.
> Allerdings bezweifel ich (von der naiven Frage ausgehend), dass du die
> Algorithmen beherrscht, um eine Bildauswertung programmieren zu können.
> Denn das ist Echtzeit und Multithreaded für Bildaufnahme, Berechnung,
> Darstellung etc.

Und? Was wäre deine Lösung?
Muss man gleich ein optisches Raketenzielsystem bauen, wenn man die 
Position eines Lichtpunktes bestimmen will?

von Frank K. (fchk)


Lesenswert?

STK500-Besitzer schrieb:

> Und? Was wäre deine Lösung?
> Muss man gleich ein optisches Raketenzielsystem bauen, wenn man die
> Position eines Lichtpunktes bestimmen will?

Ein Lichtpunkt in völliger Dunkelheit ist einfach, hast Du aber in der 
Wirklichkeit so gut wie nie. Ein einzelner Lichtpunkt in einem einzelnen 
Frame liefert z.B. auch keine Information über die Richtung. Die will 
man oftmal auch haben.

In realen Szenarien im realen Leben mit realen Objekten wird sowas wie 
das hier ganz gerne verwendet:

https://github.com/dusty-nv/jetson-inference

Hardware: (Minimalversion)
https://www.nvidia.com/de-de/autonomous-machines/embedded-systems/jetson-nano/
https://www.e-consystems.com/nvidia-cameras/jetson-nano-cameras/3mp-mipi-camera.asp

Da kann sich der Fragesteller seine LED auch sparen, sofern die Szene 
gut ausgeleuchtet ist, reicht das völlig.

fchk

von STK500-Besitzer (Gast)


Lesenswert?

Frank K. schrieb:
> STK500-Besitzer schrieb:
>
>> Und? Was wäre deine Lösung?
>> Muss man gleich ein optisches Raketenzielsystem bauen, wenn man die
>> Position eines Lichtpunktes bestimmen will?
>
> Ein Lichtpunkt in völliger Dunkelheit ist einfach, hast Du aber in der
> Wirklichkeit so gut wie nie. Ein einzelner Lichtpunkt in einem einzelnen
> Frame liefert z.B. auch keine Information über die Richtung. Die will
> man oftmal auch haben.
>
> In realen Szenarien im realen Leben mit realen Objekten wird sowas wie
> das hier ganz gerne verwendet:
>
> https://github.com/dusty-nv/jetson-inference
>
> Hardware: (Minimalversion)
> https://www.nvidia.com/de-de/autonomous-machines/embedded-systems/jetson-nano/
> 
https://www.e-consystems.com/nvidia-cameras/jetson-nano-cameras/3mp-mipi-camera.asp
>
> Da kann sich der Fragesteller seine LED auch sparen, sofern die Szene
> gut ausgeleuchtet ist, reicht das völlig.
>
> fchk

Ohne jetzt unfreundlich erscheinen zu wollen:
Wieso antwortest du auf eine Frage, die an jemand anderen ging?

Lernt der Fragesteller etwas dabei, wenn er fertige Bibliotheken 
verwendet?
Oder will er eine fertige Läsung präsentiert haben?

von Frank K. (fchk)


Lesenswert?

STK500-Besitzer schrieb:

> Ohne jetzt unfreundlich erscheinen zu wollen:
> Wieso antwortest du auf eine Frage, die an jemand anderen ging?

Ich habe in den Thread geantwortet und gehe davon aus, dass auch der 
Fragesteller die Antwort liest.

> Lernt der Fragesteller etwas dabei, wenn er fertige Bibliotheken
> verwendet?
> Oder will er eine fertige Läsung präsentiert haben?

Ich denke, er hat primär ein Problem und braucht dafür eine Lösung, die 
möglichst gut in seinem spezifischen Aufbau funktioniert und dabei auch 
noch bezahlbar bleibt.

Zum Lerneffekt: Keine Ahnung. Bei der reinen Bildverarbeitung brauchst 
Du zum Verständnis der Algorithmen erstmal einen Haufen Mathematik. Ich 
weiß nicht, ob er die Grundlagen dafür hat. Für die reine Anwendung sind 
die aber nicht erforderlich. Vielleicht kommt etwas in Richtung Linux, 
Python etc dabei rum.

fchk

von PittyJ (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> PittyJ schrieb:
>> Arduino geht nicht. Versuch mal, da überhaupt eine Kamera
>> anzuschliessen.
> Eine Möglichkeit wurde oben genannt.
>
> PittyJ schrieb:
>> Aber Raspi sollte gehen. Wir machen so etwas immer mit 2 Kameras, das
>> erhöht die Genauigkeit.
>> Allerdings bezweifel ich (von der naiven Frage ausgehend), dass du die
>> Algorithmen beherrscht, um eine Bildauswertung programmieren zu können.
>> Denn das ist Echtzeit und Multithreaded für Bildaufnahme, Berechnung,
>> Darstellung etc.
>
> Und? Was wäre deine Lösung?
> Muss man gleich ein optisches Raketenzielsystem bauen, wenn man die
> Position eines Lichtpunktes bestimmen will?

Klingt jetzt etwas arrogant: aber mit genau solchen Dingen verdiene ich 
mein Geld. Ich kenne den Hardware-Aufwand und die vielen Tausend Zeilen 
Code, die dafür notwendig sind. Und dem TE nehme ich nicht ab, das er es 
schaffen würde mit konstanter Rate ein Bildfolge einzulesen, die passend 
zu filtern und darin dann Objekte zu suchen.
Ich könnte ihm Lösungen anbieten, die kosten aber 5-stellig.

von STK500-Besitzer (Gast)


Lesenswert?

PittyJ schrieb:
> Klingt jetzt etwas arrogant: aber mit genau solchen Dingen verdiene ich
> mein Geld. Ich kenne den Hardware-Aufwand und die vielen Tausend Zeilen
> Code, die dafür notwendig sind. Und dem TE nehme ich nicht ab, das er es
> schaffen würde mit konstanter Rate ein Bildfolge einzulesen, die passend
> zu filtern und darin dann Objekte zu suchen.
> Ich könnte ihm Lösungen anbieten, die kosten aber 5-stellig.

Ja, es klingt arrogant, weil du es ihm nicht zutraust.
Anstatt sich hier selber als "tollen Macker" zu präsentieren, wäre es 
doch eher sinnvoll, zu zeigen, wie man in das Thema einsteigen könnte.

Ich würde zuerst ein Bild machen. Darauf dann den IR-Punkt suchen. Und 
ihn in ein Koordinatensystem der Modellbahnplatte umrechnen.
Nächstes Bild...

von pegel (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Ich würde zuerst ein Bild machen. Darauf dann den IR-Punkt suchen. Und
> ihn in ein Koordinatensystem der Modellbahnplatte umrechnen.

Das ist das Schöne am campos Projekt von Gerd B.
Unten auf der Seite gibt es den Quelltext.

von OT (Gast)


Lesenswert?

Gerd B. schrieb:
> Hab ich mal gemacht.

Ich finde deine Projektseite echt gut! Leider bist du zuletzt nicht mehr 
so produktiv, wie ich das gerne hätte ;-)

von OT (Gast)


Lesenswert?

PS: Die Wii-Remote ("wiimote") hat so eine Kamera mit Auswertung (4 
Punkte?) als Bauteil eingebaut.

von Gerd B. (Gast)


Lesenswert?

@Jonas
Ich habe eine sehr sehr helle, kleine LED benutzt, ich habe einen 
Graufilter davorgesetzt und ich habe die Shutter-Time runter genommen. 
Ergebnis ist ein schwarzes Bild mit nur einem weißen Punkt. Das macht 
vieles einfacher weil der Signal-Rausch-Abstand sehr groß wird. Schau 
also mal, ob Du nicht auch eine IR-Filterscheibe davorsetzen kannst. Und 
nimm helle IR-LEDs. Aber keine gerichteten.

von pegel (Gast)


Lesenswert?

Möglicherweise hat jeder von uns noch antike IR-Filter rumliegen:

https://hackscape.wordpress.com/2010/11/27/using-a-floppy-disk-as-an-ir-filter/

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.