PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lichtschranke(n) o.ä. zur 2D Positionserkennung



ma4er
13.10.2017, 11:00
Hallo Zusammen,

vorneweg. Bin Neu hier und absoluter Neuling auf dem Gebiet.
Für mein Hobby hab ich da eine Idee und würde gerne wissen ob das überhaupt technisch umsetzbar ist.

Ist es möglich mit einer Lichtschranke o.ä. eine Position von einem bzw. max drei dünnen (1mm) Objekten auf den mm genau! zu erkennen?
Die Mögliche Fläche wäre ca. 50x50cm groß?

Die Erkennung müsste seitlich und nicht von oben erfolgen. Als Laie würde ich vermuten das es evtl. mit zwei Lichtschranken gehen könnte.

Wenn noch weiter ausholen soll dann sagt bescheid.

Würd mich über feedback freuen!:)


Gruß
Ma4er

Mxt
13.10.2017, 16:58
Hallo,

eine Lichtschranke liefert nur ein Ein/Aus Signal. Entweder unterbricht etwas den Lichtstrahl oder nicht.

Um auf diese Weise Objekte auf einer Fläche zu finden müsste man schon je eine Lichtschranke längs und quer über die Fläche bewegen. Das würde natürlich auch eine entsprechend genaue Mechanik erfordern.

Bei mehr als zwei Objekten hätte man aber auch da das Problem, dass sich ein Objekt im Schatten der anderen verstecken könnte.

Peter(TOO)
13.10.2017, 22:15
Hallo,

Eine Lichtschranke ist nicht das Richtige.

Was du brauchst ist eine Foto-Dioden Array wie sie in Scannern und Fax-Geräten verbaut sind.

Aber jetzt wird es kompliziert.
Nimmst du zwei Arrays und montierst diese im 90° Winkel funktioniert dies bestens mit einem Objekt. Du bekommst einen Wert für die X- und Y-Position.
Bei 3 Objekten bekommst du je 3 Werte für X und Y, weisst aber nicht welche Zwei zusammen gehören. :-(

Eine andere Möglichkeit wäre noch die Breite des Schattens auszumessen. Bei einer nicht punktförmigen Lichtquelle ist die Breite des Schattens vom Abstand abhängig. Man könnte also daraus den Abstand berechnen. Geometrisch würde dies so aussehen (Die Zeichnung ist für Sonne, Erde und Mond, aber das mit dem Kernschatten ist gleich)
32937

Falls man höhenversetzt Markierungen an deinen Objekten anbringen kann, könnte man zwei Webcams, auch 90° versetzt, verwenden. Eine billige VGA-CAM hätte eine Auflösung von 480x640 Pixeln, damit könnte man 1mm Auflösung erreichen.

So meine ersten Ideen.

Es würde vielleicht helfen, wenn man genauer wüsste um was es geht, besonders die Geschwindigkeit der Objekte wäre noch wichtig.

MfG Peter(TOO)

Mxt
14.10.2017, 07:53
Mit Schatten könnte man da sehr viel machen, besonders falls man von oben mit einer (guten) Kamera draufschauen könnte. Dann braucht man nur vier LED-Streifen zur Beleuchtung an allen Seiten. Jede Beleuchtung einzeln einschalten und von oben ein Bild machen. Aus den vier Schatten, die jedes Objekt da liefert, kann es mit wenig Programmieraufwand bestimmen.

Wenn man nur von der Seite schauen darf, könnte man mit mehreren Kameras und unterschiedlichen Blickwinkeln arbeiten. Dazu LEDs an verschiedenen Positionen. Immer nur eine LED einschalten und alle Kameras machen ein Bild. Aus der Lage der Reflektionen kann man die Lage der Objekte berechnen. Wird aber viel aufwendiger als von oben.

ma4er
16.10.2017, 08:17
Uih. Danke erstmal für die Ideen.:)

Das hört sich erstmal sehr aufwändig an für mich.

Bei meinem Hobby geht es um Dart.
Ich bin ein kleiner Statistik und Auswertungsnerd.
Daher hatte ich mir überlegt sämtliche Treffer für jeden einzelnen Dart Punktgenau auszuwerten.
So wollte ich Muster bzw. veränderungen im Muster des Trefferbildes zu erkennen und so mein Spiel zu optimieren.

Da die Darts unterschiedliche Größen haben können, und auch in unterschiedlichen Winkeln im Board stecken können, fällt wohl die Schattenvariante weg.

Ich hab schon modifizierte Steeldartscheiben gesehen. Aber die messen nur die Treffer in den einzelnen Segmenten und nicht die genaue Stelle des Treffers.

Mxt
16.10.2017, 09:36
Also eine Google Suche mit "raspi darts opencv" liefert da schon mal einiges, z.B.
https://github.com/hanneshoettinger/opencv-steel-darts

Es muss kein Raspi sein, OpenCV läuft auf Linux, Windows, Mac, Smartphone usw., ein Raspi 3 mit Kamera ist nur die günstigste Variante.

oberallgeier
16.10.2017, 10:11
.. hört sich erstmal sehr aufwändig an für mich ..
Ich bin ein kleiner Statistik und Auswertungsnerd .. sämtliche Treffer für jeden einzelnen Dart Punktgenau auszuwerten ..Na da wolln wa mal etwas rechnen (für nen Statistik- und Auswertungsnerd hast Du bisher ja durch "keine" Zahlenangaben nicht gerade geprunkt) - und stelln uns dazu mal jantz domm. Den Rechnungen lege ich Standard- (und geschätzte Standard- *gg*) -werte zugrunde.


.. mit einer Lichtschranke o.ä. eine Position von einem bzw. max drei dünnen (1mm) Objekten auf den mm genau! zu erkennen ..Auf den Millimeter ? ? Selbst die Stahlspitzen sind doch meist Ø2 ! ? ! ? ? ? Du hast natürlich Recht, je genauer - desto Statistik. Sprich: die Größe der Grundgesamtheit bringts *gg*.

Ausgangswerte
Dartscheibe Ø340 => 90 800 mm²
zugehöriges Quadrat 340mm*340mm => 115 600 mm².
Barrels aus Tungsten mit Ø7 mm als kleinstmögliche Größe.
Wurffrequenz nicht schneller als 3 sec/Wurf. Einerseits glaube ich dass selbst van Gerwen selten schneller feuert und Evans 180er in 2,3 (?) Sekunden ist ja nu sehr, sehr untypisch.
Abtastung in (üblicher) Barrelhöhe mit Lichtschranken aus zyklisch leuchtenden LED-Photodioden/-transistoren. Vermutlich doppelte Abtastung mit geringen Abstand um rückprallende/abfallende Darts zu erkennen. Das Abfallen eines Darts durch einen Nachfolger dürfte ein extrem schwierig zu handelndes Problem sein - würd ich nicht berücksichtigen.

Die punktgenaue Auswertung im Millimetergitter scheint mir durch den Aufwand (hobby-Maßstab) a) kaum möglich bzw. sinnvoll und b) auch nicht sportgerecht.

Mit Blick auf Barreldurchmesser von knapp Ø7 mm (feinfühliges Greifen!!) erscheint ne Abtastung mit Abständen von 7mm als ausreichend. Damit wird über die Dartscheibe ein Quadrat von 49 mal 49 Lichtschranken gelegt.

Anmerkung, trotzdem wichtig: ich meine, dass "dazwischenliegende" Darts - zwischen zwei Lichtschranken - durch Schrägstellung, dickere Barrels, Sonstiges ausreichend erkannt werden (eigentlich würde ich NUR auf Barrelhöhe messen). Das würde ich auf einer einfachen, mit etwa vier, fünf Lichtschranken bestückten Testbahn in der vorgeschlagenen Teilung genau ausmessen/-testen bei der die Darts von Hand in entsprechenden Positionen gesteckt werden. Schwieriger scheint mir die Abtastung waagrecht, über die HÖhe gestaffelt, im 20er-Tripelbereich, evtl. auch im 19er, zu sein. Hier könnte eine feinere Aufteilung Sinn machen. Das sonstige Feld müsste aber im erwähnten 7mm-Raster, evtl., je nach Zuverlässigkeitsanforderungen, sogar 6mm- oder 5mm-Raster abgetastet werden.

Damit scheint es ETWAS machbarer: zwei benachbarte Seitenkanten - 340 mm Seitenlänge - mit LEDs (Ø5 oder Ø3) gleichmässig bestücken, also das hier NUR geschätzte 7mm-Raster. Die gegenüber liegenden Seitenkanten mit Phototransistoren/-dioden. Die LEDs werden im Millisekundentakt sequentiell bestromt, die gegenüberliegenden Phototransistoren werden simultan abgefragt. Diese Abtastung kann bis in den Bereich Hunderstelsekunden erfolgen - immer Blick auf die schellste Wurffolge (Annahme: Werfer ist total sauer, zugedröhnt oder so).

Die 49 bzw. 50 abzufragenden Phototransistoren kann ein Mikrocontroller mit Portvervielfacher sicher verarbeiten. Das ist dann wieder ein anders Thema.

ma4er
16.10.2017, 11:30
Auf den Millimeter ? ? Selbst die Stahlspitzen sind doch meist Ø2 ! ? ! ? ? ? Du hast natürlich Recht, je genauer - desto Statistik. Sprich: die Größe der Grundgesamtheit bringts *gg*.
Die punktgenaue Auswertung im Millimetergitter scheint mir durch den Aufwand (hobby-Maßstab) a) kaum möglich bzw. sinnvoll und b) auch nicht sportgerecht.



Schwieriger scheint mir die Abtastung waagrecht, über die HÖhe gestaffelt, im 20er-Tripelbereich, evtl. auch im 19er, zu sein. Hier könnte eine feinere Aufteilung Sinn machen. Das sonstige Feld müsste aber im erwähnten 7mm-Raster, evtl., je nach Zuverlässigkeitsanforderungen, sogar 6mm- oder 5mm-Raster abgetastet werden.
Da bin ich deiner Meinung.

Ich bin davon ausgegangen nur die Spitze zu erfassen und nicht den Barrel. Denn der Barrel sagt nichts darüber aus wo die Spitze steckt.
Wenn man sich das 5mm breite trippel oder Doppelsegment und den Bereich darum betrachtet muss ich auf 1mm oder auch 2mm runter gehen. Ansonsten wird es zu ungenau.



Also eine Google Suche mit "raspi darts opencv" liefert da schon mal einiges, z.B.
https://github.com/hanneshoettinger/opencv-steel-darts

Es muss kein Raspi sein, OpenCV läuft auf Linux, Windows, Mac, Smartphone usw., ein Raspi 3 mit Kamera ist nur die günstigste Variante.

Das ist genau so wir ich mir das Vorgestellt hatte!

Die Treffer in der Suchmachine sind eben nur so gut wie die Suchbegriffe die man eingibt.:rolleyes:

Das Projekt scheint mir noch nicht fertig zu sein.

Ich könnte mir also das opencv auf einem Laptop installieren.
Was benötige ich noch außer eine bzw zwei cams? Hab da leider fast null Ahnung.

oberallgeier
16.10.2017, 12:17
.. Ich bin davon ausgegangen nur die Spitze zu erfassen und nicht den Barrel. Denn der Barrel sagt nichts darüber aus wo die Spitze steckt ..Au weia - da hatte ich ja wirklich nicht richtig überlegt. Tut mir leid - zu dumm, wenn man so daneben liegt :-/

Mxt
16.10.2017, 13:56
Was benötige ich noch außer eine bzw zwei cams? Hab da leider fast null Ahnung.
Der große Bildverarbeitungsexperte bin ich auch nicht, dafür habe ich keine Zeit.

Vielleicht mal hier reinschnuppern
https://docs.opencv.org/master/d9/df8/tutorial_root.html

ma4er
17.10.2017, 08:15
Vielen Dank euch allen für die Infos und Eure Mühe.:)
Werde jetzt mal versuchen über den Link von Mxt weiter zu kommen.

Gruß
ma4er

hbquax
17.10.2017, 15:48
Wie wärs mit einem bis zwei rotierenden Laserentfernungsmessern?