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!
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?
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
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
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?
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.
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.
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!
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.
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?
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?
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
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.
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...
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.
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 ;-)
@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.