Forum: Mikrocontroller und Digitale Elektronik Eingeschränkte Positionsbestimmung mit dem Arduino


von kuchenkruste (Gast)


Lesenswert?

Hallo liebes Mikrocontroller-Forum!

Schon nach sehr kurzer Suchzeit hat sich für mich herausgestellt: 
Positionsbestimmung innerhalb eines Raumes mit einer Auflösung von cm/mm 
scheint wohl eines der ungelösten Probleme der Elektrotechnik zu sein.

Allerdings zuerst zu meinem Problem: Ziel ist es auf einem Tisch (ca. 2m 
x 1,5m) die Position (Größenordnung wenige zwischen 1cm +- 0,5cm) 
mehrerer kleiner Objekte zu erkennen. Deren Maße liegen ungefähr bei 5cm 
x 5cm x 2cm, die exakten Maße stehen aber nicht fest und dürfen sich 
geringfügig im Bereich von wenigen Zentimetern ändern.

Es gibt hierbei einige Einschränkungen, die die Positionsbestimmung 
hoffentlich einfacher bzw. überhaupt möglich machen. So müssen Objekte 
nur zuverlässig erkannt werden, wenn sie auf dem Tisch stehen. Es ist 
auch nicht zu erwarten, dass Objekte sehr hohe Geschwindigkeiten 
erreichen, stattdessen würde ich hier mit der "üblichen" Geschwindigkeit 
rechnen, mit der man Objekte typischerweise über einen Tisch schiebt 
(z.B. Schachfiguren). Der Tisch selbst darf um Sensoren erweitert 
werden, allerdings dürfen sich diese nicht direkt unter der Tischplatte 
befinden, da es sich hierbei um einen Glastisch mit einem Holzrand 
handelt (nur im Holzrand kann Technik verbaut werden).

Zum aktuellen Zeitpunkt habe ich bereits einen kleinen Testaufbau mit 
einem 9DOF Sensor (LSM9DS1), von dem ich allerdings noch nicht weiß, ob 
er überhaupt genau genug ist. Hierbei habe ich erfahren, dass sich bei 
der Positionsbestimmung über die Beschleunigung sehr schnell Fehler 
einschleichen. Aus diesem Grund suche ich nun nach einer unterstützenden 
Lösung, sodass dieser Fehler in gewissen Zeitabständen korrigiert werden 
kann. Ich hab hier z.B. an Triangulation gedacht, bei der im Tisch 
Sender und in den Objekten Empfänger verbaut sind. Allerdings weiß ich 
nicht, wie man so etwas bewerkstelligen kann (d.h. welche Technik 
verwendet man hier?).

Habt ihr zufällig Erfahrungen konkret mit Triangulation gemacht oder 
habt ihr eine andere Idee wie man so eine Positionsbestimmung umsetzen 
könnte? Ich bin generell für alle Vorschläge offen, das Projekt befindet 
sich noch in seinen Anfängen - es ist deshalb nichts in Stein gemeißelt.

Ideen wie bspw. die Erkennung der Objekte mit einer Kamera und ML habe 
ich vorerst schon verworfen, da ich hier vor allem das Problem sehe, 
dass jemand in das Bild laufen könnte und so auch neue Objekte jedes Mal 
antrainiert werden müssten. Natürlich wäre es auch wünschenswert, wenn 
man keine "externe" Hardware außer dem Tisch und den Objekten benötigt 
(z.B. eine Kamera die an der Decke installiert ist). So viel möchte ich 
aber dann doch nicht verlangen, da es sich ja hierbei ohnehin bereits um 
ein kniffliges Problem handelt.

Liebe Grüße

von Hendrik (Gast)


Lesenswert?

Mit "die Position (Größenordnung wenige zwischen 1cm +- 0,5cm)
mehrerer kleiner Objekte zu erkennen" zu erkennen. Meinst Du die 
Position der Objekte relativ zu dem Tisch (also Anordnung auf dem Tisch) 
oder die Lage der Objekte relativ zueinander, oder die Lage der Objekte 
im Raum (liegend, stehend, gedreht etc)?

von kuchenkruste (Gast)


Lesenswert?

Tut mir Leid, das Wichtigste habe ich natürlich vergessen. :-)

Vielen Dank für den Hinweis!

Ziel ist die Position der Objekte relativ zum Tisch zu erkennen. Da es 
auch nur notwendig ist, die Objekte zu erkennen wenn sie auf dem Tisch 
liegen, kann man das Problem auch auf einen 2D-Raum reduzieren (liegend 
/ stehend ist irrelevant).

Die Orientierung ("Blickrichtung") der Objekte wollte ich mit einem 
Magnetometer messen - sofern das geht (probiert habe ich es noch nicht).

von Wurstrakete (Gast)


Lesenswert?

Die einfachste Lösung wäre eine Webcam über dem Tisch anzubringen. Mit 
einem Raspberry Pi und OpenCV hat man dann sehr schnell eine einfache 
Positionsbestimmung zusammengestrickt.

von Einfach abwarten (Gast)


Lesenswert?

> eines der ungelösten Probleme

Einfach abwarten. Die Automobilindustrie steckt Milliarden in die 
Entwicklung einer universellen Objekterkennung / Positionsbestimmung.

Kann ja nicht mehr lange dauern, bis Werkstudenten die erfolgreichen 
Konzepte als freie Software zusammenstellen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Wurstrakete schrieb:
> Die einfachste Lösung wäre eine Webcam über dem Tisch anzubringen.

Wenn das nicht geht, weil sich dauernd Leute drüber bücken, um die 
Objekte zu verschieben: WebCam unter dem Tisch, da aus Glas. Weiter mit 
OpenCV.

von Harald W. (wilhelms)


Lesenswert?

kuchenkruste schrieb:

> Positionsbestimmung innerhalb eines Raumes mit einer Auflösung von cm/mm
> scheint wohl eines der ungelösten Probleme der Elektrotechnik zu sein.

Sowas kann man schon seit vielen Jahrzehnten, allerdings nicht mit
Spielzeugcomputern.

von kuchenkruste (Gast)


Lesenswert?

Vielen Dank für eure Antworten!

> Die einfachste Lösung wäre eine Webcam über dem Tisch anzubringen. Mit
> einem Raspberry Pi und OpenCV hat man dann sehr schnell eine einfache
> Positionsbestimmung zusammengestrickt.

Ich habe leider auch vergessen zu erwähnen, dass die Objekte eindeutig 
identifizierbar sein müssen. Es reicht also leider nicht aus mit OpenCV 
einfach nur Gegenstände zu erkennen, ich benötige von jedem Objekt eine 
ID und seine Position, da im Nachhinein eine Software die Objekte am PC 
darstellen soll.

> Kann ja nicht mehr lange dauern, bis Werkstudenten die erfolgreichen
> Konzepte als freie Software zusammenstellen.

So lange wollte ich eigentlich nicht mit meinem kleinen, 
"nicht-ganz-milliardenschweren" Hobbyprojekt warten. Wäre aber natürlich 
wirklich toll, wenn das in Zukunft geht und öffentlich zur Verfügung 
steht. :-)

> Wenn das nicht geht, weil sich dauernd Leute drüber bücken, um die
> Objekte zu verschieben: WebCam unter dem Tisch, da aus Glas. Weiter mit
> OpenCV.

Wenn ich noch einmal so darüber nachdenken, ist das Drüberbücken auch 
gar nicht das größte Problem. Es ist nicht schlimm, wenn sich Objekte 
zeitweise vom Tisch "abmelden" um sich dann an einer neuen Position 
wieder "anzumelden" (z.B. wenn sich jemand über den Tisch bückt und das 
Objekt verschiebt). Vielmehr sehe ich bei der Erkennung mit einer Kamera 
das Problem, dass es schwer wird Objekte eindeutig zu identifizieren. 
Außerdem besteht leider keine Möglichkeit unter der Glasplatte Technik 
zu verbauen.

von kuchenkruste (Gast)


Lesenswert?

Harald W. schrieb:
> Sowas kann man schon seit vielen Jahrzehnten, allerdings nicht mit
> Spielzeugcomputern.

Das macht mich neugierig: Welche Technik wird denn hier eingesetzt und 
weshalb ist dafür sehr viel mehr Rechenleistung notwendig (so habe ich 
das herausgelesen)?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

kuchenkruste schrieb:
> Ich habe leider auch vergessen zu erwähnen, dass die Objekte eindeutig
> identifizierbar sein müssen.

Diese Salami-Scheiben, die hier als zusätzliche Infos nachgeschoben 
werden, sind leider nicht sehr erbaulich.

> Außerdem besteht leider keine Möglichkeit unter der Glasplatte Technik
> zu verbauen.

Diese ebenso. Vielleicht rückst Du erstmal mit mehr Details rüber, bevor 
sich hier hunderte von Leuten Gedanken machen, die Du dann einfach mit 
"habe vergessen zu erwähnen" in die Tonne drückst?

Was ist denn mit den Objekten selber, kann man darin "Technik" verbauen 
oder sind das etwa nur Kuchenkrümel?

: Bearbeitet durch Moderator
von kuchenkruste (Gast)


Lesenswert?

> Diese Salami-Scheiben, die hier als zusätzliche Infos nachgeschoben
> werden, sind leider nicht sehr erbaulich.

Das tut mir Leid, wenn es so herübergekommen ist. Das war mit Sicherheit 
nicht meine Absicht. Wie du sicherlich weißt, ist es nicht immer leicht 
ein Projekt von dem man selbst genaue Vorstellungen hat jemand anderem 
vollumfänglich und ohne verbleibende offene Fragestellungen zu erklären.

Ich versuche das Ganze hier noch einmal zu präzisieren:

Es handelt sich um Objekte die ähnlich wie ein Puck beim Eishockey 
geformt sein sollen. Da ich diese selbst im 3D-Drucker drucke, habe ich 
völlige "Narrenfreiheit". Es kann also beliebige Technik verbaut werden. 
Wenn diese erfordert, dass das Objekt nicht rund sein kann, stellt auch 
das kein Problem dar. Die Objekte sollen allerdings einheitlich 
gestaltet sein, eine Identifizierung über optische Unterschiede möchte 
ich also erst einmal ausschließen.

Die Identifizierung der Objekte ist notwendig, damit ich am Rechner 
jedes dieser Objekte grafisch darstellen und ihnen gegebenenfalls noch 
andere Metadaten zuordnen kann. Außerdem ist die Orientierung 
(2D-Blickrichtung auf dem Tisch) wichtig, damit am Rechner nicht nur 
dargestellt werden kann wo sich ein Objekt befindet, sondern auch in 
welche Richtung es blickt. Später soll die Möglichkeit bestehen, auf 
bestimmte Ereignisse zu reagieren (z.B. "Objekt mit der ID 3 steht nun 
an Position XY und blickt in Richtung U" - eine Blickrichtung ist 
hierbei relativ zu einem frei wählbaren Tischkopf zu interpretieren).

Direkt unter der Glasplatte kann keine Technik verbaut werden, da es 
sich hierbei um einen ästhetischen Anspruch handelt - man soll dem 
System seine Technik so wenig wie möglich ansehen. Die Glasplatte selbst 
nimmt nicht die gesamte Größe des Tisches ein, die Tischplatte ist rund 
um die Glasplatte ca. 30cm breiter und besteht dort aus Holz. Hier kann 
auch beliebig viel Technik verbaut werden, da ohnehin unter der 
Tischplatte Lautsprecher verbaut werden und man sich diese 
dementsprechend als Hohlkörper vorstellen kann. Die Glasplatte schließt 
mit dem Holz obenauf eben ab, man kann also keine Ultraschallsensoren 
oder ähnliches im Holz verbauen, die dann horizontal über die Glasplatte 
Objekte erkennen können.

Die Blickrichtung der Objekte darf man hierbei als "Nice-To-Have" 
verstehen, soll heißen: Die Identifizierung und Position der Objekte ist 
wesentlich wichtiger. Der Einsatz des Tisches steht außerdem nicht fest 
- der Nutzer der Software soll selbst darüber entscheiden, was er mit 
den Informationen der Objekte macht (allerdings ist das hauptsächlich 
ein Software-Problem und steht ja erst einmal nicht mit der eigentlichen 
Positionserkennung in Zusammenhang). Denkbar wäre z.B. ein 
Zeichenprogramm, bei dem man mit den Objekten auf dem Tisch malen kann, 
oder aber auch ein Schachspiel bei dem die Objekte die Figuren 
repräsentieren.

Sollte noch etwas unklar sein, bitte ich das zu entschuldigen und mich 
darauf hinzuweisen. Ich versuche gerne, das Ganze noch genauer zu 
beschreiben, wenn ich weiß, wo es hapert.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

kuchenkruste schrieb:
> Die Glasplatte schließt mit dem Holz obenauf eben ab

Damit ist der Holzrahmen für Technik absolut nutzlos.

Auch ist ein IR-Teppich, wie er bei größeren Touchscreens verwendet 
wird, ebenso raus. Dieser müsste nämlich oberhalb der Glasfläche erzeugt 
werden, also am besten in einem 5mm überstehenden Rahmen.

Bleibt nur noch die Kamera von oben. Die Objekte könnten nach oben einen 
eindeutigen "Morse-Code" per IR als Identifikationscode ausstrahlen, 
welcher von der Kamera erfasst werden kann. Die meisten Cams "sehen" IR 
bzw. man kann den IR-Filter ausbauen.

Bleibt noch die Ausrichtung eines Objekts: Wenn dieses von oben nicht 
rotationssymmetrisch aussieht, kann man auch die Ausrichtung erkennen. 
Ist ja auch sinnvoll für den Menschen: Wie soll er eine kreisförmige 
Scheibe wie einen Eishockey-Puck "ausrichten"?

: Bearbeitet durch Moderator
von kuchenkruste (Gast)


Lesenswert?

Vielen Dank für deine Antwort!

> Auch ist ein IR-Teppich, wie er bei größeren Touchscreens verwendet
> wird, ebenso raus. Dieser müsste nämlich oberhalb der Glasfläche erzeugt
> werden, also am besten in einem 5mm überstehenden Rahmen.

Das klingt erst einmal gar nicht nach einer so schlechten Idee - denn an 
einen Rahmen rings um das Glas herum (den man z.B. immer wieder abnehmen 
kann und der nur temporär auf den Tisch gelegt wird) habe ich noch gar 
nicht gedacht. Ich kenne mich leider selbst nur bedingt mit solchen 
Dingen aus, da ich mehr Software- als Hardwareingenieur bin. Wie würde 
denn so ein Aufbau im Prinzip funktionieren? Ich sehe hier vor allem das 
Problem, dass sich gegenüberliegende Infrarotsensoren gegenseitig 
beeinflussen würden, oder? Und wenn man den Sensor nur an einer Seite 
installiert könnten ein "Puck" einen anderen verdecken.

> Bleibt nur noch die Kamera von oben. Die Objekte könnten nach oben einen
> eindeutigen "Morse-Code" per IR als Identifikationscode ausstrahlen,
> welcher von der Kamera erfasst werden kann. Die meisten Cams "sehen" IR
> bzw. man kann den IR-Filter ausbauen.
>
> Bleibt noch die Ausrichtung eines Objekts: Wenn dieses von oben nicht
> rotationssymmetrisch aussieht, kann man auch die Ausrichtung erkennen.
> Ist ja auch sinnvoll für den Menschen: Wie soll er eine kreisförmige
> Scheibe wie einen Eishockey-Puck "ausrichten"?

Das klingt zwar auch nach einer guten Idee um die Objekte zu 
identifizieren, allerdings sehe ich hier das Problem, dass der Einsatz 
des Tisches ja vom Benutzer frei gewählt werden kann:
Angenommen jemand möchte den Tisch für ein Schachspiel verwenden. Dann 
ist es denkbar, dass Bilder von Schachfiguren auf die Objekte geklebt 
werden, was dann eventuell zu einer Verdeckung der Infrarotsender führt. 
Andere Szenarien sind hier auch denkbar, z.B. wenn jemand den Tisch als 
Zeichentisch verwendet und die Objekte vollständig mit farbigen 
Bastelvlies beklebt. Auch hier wäre ein Infrarotsensor vermutlich 
bedeckt.

Würde denn ein Kompass nicht ausreichen um die Orientierung eines 
Objektes zu erkennen? Ich hatte das vorerst für das "kleinere" Problem 
gehalten. Hierbei habe ich mir z.B. vorgestellt einen Kompass in den 
Tisch und in jedes Objekt einzubauen, sodass dann die relative 
Ausrichtung der Objekte zum Tisch berechnet werden kann. Da der Nutzer 
selbst entscheidet, was er mit den Objekten macht, kann er über die 
Software am Rechner auch selbst entscheiden, welche Ausrichtung die 
Nullstellung ist. Ob man dann den Objekten ihre Orientierung ansieht ist 
somit quasi nicht mehr mein Problem.

von Frank K. (fchk)


Lesenswert?

Klebe oben auf Deine Objekte QR-Codes auf. Diese können irgendwelche IDs 
enthalten, die die Objekte unterscheidbar machen, und die Orientierung 
der QR-Codes ist auch eineindeutig und kann festgestellt werden.

Die Basistechnologie ist verfügbar und einfach umsetzbar. Bibliotheken 
gibts fertig. Einzig die Auflösung der Kamera ist der kritische Faktor.

Für Dich ist auch Micro-QR ausreichend.

fchk

von georg (Gast)


Lesenswert?

kuchenkruste schrieb:
> Hierbei habe ich mir z.B. vorgestellt einen Kompass in den
> Tisch und in jedes Objekt einzubauen, sodass dann die relative
> Ausrichtung der Objekte zum Tisch berechnet werden kann

Ist dir klar, dass dazu die Objekte Informationen liefern müssen, also 
Sender enthalten? Es nützt wenig wenn nur das Objekt selbst seine 
Ausrichtung kennt.

Nächste Salamischeibe bitte.

Georg

von kuchenkruste (Gast)


Lesenswert?

> Ist dir klar, dass dazu die Objekte Informationen liefern müssen, also
> Sender enthalten? Es nützt wenig wenn nur das Objekt selbst seine
> Ausrichtung kennt.

Die Wahl des Innenlebens habe ich ja bereits bewusst offen gelassen. Ich 
kann mir zum Beispiel einen Mikrocontroller mit einem BT-Modul 
vorstellen. Über diesen Weg könnte auch von jedem Objekt eine eindeutige 
ID mitgeschickt werden. Wie gesagt: In die Objekte kann beliebige, auch 
aktive, Technik eingebaut werden. Den Größenverhältnissen von ein paar 
Zentimetern entsprechend muss diese Technik natürlich mit einer Batterie 
oder einem Akku betrieben werden können.

Hauptproblem stellt aus meiner Sicht allerdings immer noch die 
eigentliche Positionierung dar. Ich habe bereits etwas über 
Triangulation mit BT-Signalstärken gelesen - ob das wirklich 
funktioniert und eine Möglichkeit darstellt weiß ich allerdings noch 
nicht. Daher kam auch mein ursprünglicher Gedanke, die Triangulation 
betreffend, aus meinem ersten Beitrag.

> Klebe oben auf Deine Objekte QR-Codes auf. Diese können irgendwelche IDs
> enthalten, die die Objekte unterscheidbar machen, und die Orientierung
> der QR-Codes ist auch eineindeutig und kann festgestellt werden.
>
> Die Basistechnologie ist verfügbar und einfach umsetzbar. Bibliotheken
> gibts fertig. Einzig die Auflösung der Kamera ist der kritische Faktor.
>
> Für Dich ist auch Micro-QR ausreichend.

Das ist natürlich eine Idee, die funktionieren würde. Das würde aber 
bedeuten, dass über dem Tisch eine Kamera installiert ist. Diese 
benötigt Sichtkontakt zum Tisch. Über den meisten Tischen hängt eine 
Lampe, welche den Sichtkontakt unterbrechen kann. Und selbst wenn nicht, 
kann ich wegen des QR-Codes keine anderen Motive mehr auf die Objekte 
kleben bzw. Figuren o.ä. darauf stellen. Alles in allem habe ich die 
Idee einer Bilderkennung schon auf dem Schirm (wie ich ja auch 
einleitend geschrieben habe), möchte aber erst nach anderen Lösungen 
Ausschau halten.

Aufbauend auf Frank M. seinem Vorschlag, könnte ich mir zum Beispiel 
auch einen mobilen Rahmen vorstellen, in dem ringsherum Sensoren (IR, 
Ultraschall, Kameras, o.ä.) eingelassen sind. In Kombination mit einem 
9DOF und einer Triangulation (wenn das in der Größenordnung überhaupt 
funktioniert) müsste eine halbwegs passable Positionserkennung doch 
möglich sein, oder?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

kuchenkruste schrieb:

> Das klingt erst einmal gar nicht nach einer so schlechten Idee - denn an
> einen Rahmen rings um das Glas herum (den man z.B. immer wieder abnehmen
> kann und der nur temporär auf den Tisch gelegt wird) habe ich noch gar
> nicht gedacht.

Abnehmen und wieder drauflegen wird aber ziemlich aufwendig.

> Wie würde denn so ein Aufbau im Prinzip funktionieren?

Prinzip solcher größeren IR-Touchscreens ist:

Jeweils an einer langen und einer kurzen Seite kommen IR-Dioden dicht an 
dicht. Auf den jeweils gegenüberliegenden Seiten kommen IR-Sensoren - 
ebenso viele dutzend direkt nebeneinander. Diese "erkennen" dann die 
Abschattungen der Objekte.

> Ich sehe hier vor allem das
> Problem, dass sich gegenüberliegende Infrarotsensoren gegenseitig
> beeinflussen würden, oder?

Siehe oben: Es gibt keine Sensoren "gegenüber". Auf der einen Seite sind 
Sender, auf der jeweils anderen sind IR-Empfänger.

> Und wenn man den Sensor nur an einer Seite
> installiert könnten ein "Puck" einen anderen verdecken.

Ja, kann passieren. Dann hat man von den beiden Koordinaten x,y nur noch 
eine von beiden.

> Das klingt zwar auch nach einer guten Idee um die Objekte zu
> identifizieren, allerdings sehe ich hier das Problem, dass der Einsatz
> des Tisches ja vom Benutzer frei gewählt werden kann: Angenommen jemand
> möchte den Tisch für ein Schachspiel verwenden. Dann ist es denkbar,
> dass Bilder von Schachfiguren auf die Objekte geklebt werden, was dann
> eventuell zu einer Verdeckung der Infrarotsender führt.

Pech gehabt. Einen Tod musst Du sterben. Du kannst nicht alle Parameter 
frei wählbar lassen und trotzdem eine generell funktionierende Lösung 
erwarten.

> Würde denn ein Kompass nicht ausreichen um die Orientierung eines
> Objektes zu erkennen? Ich hatte das vorerst für das "kleinere" Problem
> gehalten. Hierbei habe ich mir z.B. vorgestellt einen Kompass in den
> Tisch und in jedes Objekt einzubauen, sodass dann die relative
> Ausrichtung der Objekte zum Tisch berechnet werden kann.

Dazu muss das Objekt seine Kompass-Info zusammen mit seiner Kennung an 
eine zentrale Stelle senden.

Ich glaube, Du stellst Dir das alles viel zu einfach vor.

: Bearbeitet durch Moderator
von Shellfishgene (Gast)


Lesenswert?

Vielleicht kann man die Glasplatte mit Mustern (qc codes etc.) bedrucken 
die nur in Infrarot oder Schwarzlicht sichtbar sind. Deine Puks könnten 
diese dann mit einer Kamera und enstsprechender LED auslesen und Ihre 
Position funken.

Alternativ funktionieren ordentlich Computermäuse ja auch auf Glas, da 
könnte man eine relative Position besser bekommen als mit deinen 
Beschleunigungssensoren. Geht halt nicht mehr wenn jemand das Teil 
hochhebt, und man muss einmal die Anfangsposition bestimmen. Ist 
vielleicht in Kombination mit der Idee oben brauchbar.

von Frank E. (Firma: Q3) (qualidat)


Angehängte Dateien:

Lesenswert?

An die Objekte gehören Marker (Beispiel: s. Bild), am Besten unten 
drunter. Durch die Glasplatte von Unten guckt eine Kamera, mit 
entsprechendem Rechner u. Software (z.B. OpenCV).

Damit die Kamera nicht zu deutlich zu sehen ist, kann man sie hinter 
einer getönten Glasplatte am Boden des Raumes im Tisch verstecken. Evtl. 
zusätzliche IR-Beleuchtung ...

Wenn die Kamera Full HD Auflösung hat und die Tischplatte ca. 2 x 1 m 
misst, kommt man auf eine Auflösung von ca. 1,5 mm.

Für ein schnelles Erfolgserlebnis kann ich übrigens einen Blick auf die 
Software "Processing" empfehlen, für die es per Klick einzubindende 
OpenCV-Lib (und andere, z.B. "nyartoolkit" zur Objekterkennung) und 
zahlreiche Beispiele zur Marker-Erkennung gibt.

https://www.youtube.com/watch?v=a9nXZqtkrsk

Processing läuft überigens unter Win, Mac u. Linux (auch Raspberry). 
Vlt. hat ja der neue 4er genug Rechenpower. Meine Tests habe ich auf 
einem 10 Jahre alten Macbook gemacht.

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Frank E. schrieb:
> Für ein schnelles Erfolgserlebnis kann ich übrigens einen Blick auf die
> Software "Processing" empfehlen, für die es per Klick einzubindende
> OpenCV-Lib (und andere zur Objekterkennung) und zahlreiche Beispiele zur
> Marker-Erkennung gibt.
>
> Youtube-Video "Multiple augmented reality marker tracking  with
> processing and nyartoolkit (1/2)"

Das ist echt beeindruckend. Ort und Orientierung gehen damit in 
Echtzeit. Schade, dass der TO jedwede Technik unter dem Tisch 
ausschließt. Dann muss er es halt von oben machen und sich mit seinen 
potentiellen "Kunden" auf entsprechende Marker-Muster einigen.

von Matze (Gast)


Lesenswert?


von Laser (Gast)


Lesenswert?

Eine weitere Idee wäre das so ähnlich wie bei den VR Headsets zu lösen.

In deinen Spielsteinen auf der Unterseite Eine oder Mehrere Photodioden
+ einen µC + Funk Modul

Im unterem Teil Tischbeine eine IR-Laserdiode mit einer "Linienoptik" + 
Spiegel und Aktuator für Spiegel(z.B Servo, oder Motor mit präziser 
Drehzahlregelung).

Das machst du an 2 Tischbeinen (X und Y) und "scannst" die Tischplatte 
von unten ab..

Dazu noch ein Paar IR Dioden um die Spielsteine zu "synchronisieren" und 
den Scannvorgang zu initialisieren.

nach dem initialisieren starten die Spielsteine einen Timer.
wenn die Photodioden vom Laser beleuchtet werden, Timer auslesen und mit 
ID und "Scannrichtung" zum PC senden.

wenn du mehrere Photodioden pro Spielstein verwendest, kannst du die 
Blickrichtung auch noch bestimmen.

Sicher kein einfaches Unterfangen aber könnte funktionieren

Beste Grüße
Herr Laser

von kuchenkruste (Gast)


Lesenswert?

> Das ist echt beeindruckend. Ort und Orientierung gehen damit in
> Echtzeit. Schade, dass der TO jedwede Technik unter dem Tisch
> ausschließt. Dann muss er es halt von oben machen und sich mit seinen
> potentiellen "Kunden" auf entsprechende Marker-Muster einigen.

Ich möchte an dieser Stelle klar stellen, dass es sich um ein 
Hobbyprojekt handelt. Wenn du es genau wissen möchtest, schließe ich 
Technik unter der Glasscheibe aus, da ich mit dem Gedanken spiele hier 
einen zusätzlichen Bildschirm anzubringen. Das Ganze soll dann u.A. als 
Tisch für gemütliche Tabletop-RPG-Abende dienen. Da ich aber auch ohne 
den Bildschirm keine Technik durch die Glasscheibe sehen möchte, ist 
eben genau das einfach nicht mein Ziel.

> Vielleicht kann man die Glasplatte mit Mustern (qc codes etc.) bedrucken
> die nur in Infrarot oder Schwarzlicht sichtbar sind. Deine Puks könnten
> diese dann mit einer Kamera und enstsprechender LED auslesen und Ihre
> Position funken.
>
> Alternativ funktionieren ordentlich Computermäuse ja auch auf Glas, da
> könnte man eine relative Position besser bekommen als mit deinen
> Beschleunigungssensoren. Geht halt nicht mehr wenn jemand das Teil
> hochhebt, und man muss einmal die Anfangsposition bestimmen. Ist
> vielleicht in Kombination mit der Idee oben brauchbar.

Das ist ja eine sehr interessante Idee! :-)
Anscheinend gibt es leider keine IR-Farbe wie man das bei UV kennt, aber 
zumindest die Idee mit dem UV-Licht werde ich nochmal weiter verfolgen. 
An Computermäuse habe ich auch noch gar nicht gedacht, vielleicht ließe 
sich die Sensordaten vom Beschleunigungssensor damit irgendwie 
korrigieren (wenn die UV-Idee nichts wird).

> An die Objekte gehören Marker (Beispiel: s. Bild), am Besten unten
> drunter. Durch die Glasplatte von Unten guckt eine Kamera, mit
> entsprechendem Rechner u. Software (z.B. OpenCV).

Die Idee ist auch ziemlich gewitzt: Ich habe davon schon mal ein Video 
gesehen, in dem jemand eine halbtransparente Glasplatte mit einem Beamer 
von unten beleuchtet hat. Eine Infrarotkamera hat dann von unten 
"Touch"-Eingaben verarbeitet. Allerdings gilt leider auch hier: Ich 
würde gerne erst "alles" Mögliche versuchen, bevor ich zum letzten 
Mittel "Technik unter/über der Glasscheibe" greife.

Die Auflösung von 1.5mm klingt sehr vielversprechend - hast du da schon 
Erfahrungen mit der Reaktionszeit gemacht? Wenn es soweit kommt, würde 
ich es vermutlich auch mit dem neuen Raspi ausprobieren.

> Schaust vielleicht mal hier. Die haben ein paar Ideen:
> 
https://www.mi.fu-berlin.de/inf/groups/ag-tech/teaching/2009-10_WS/S_19510b_Proseminar_Technische_Informatik/schmidt10positionsbestimmung.pdf

Danke, solche Links sind immer willkommen! Das lese ich mir definitiv 
durch!

> Im unterem Teil Tischbeine eine IR-Laserdiode mit einer "Linienoptik" +
> Spiegel und Aktuator für Spiegel(z.B Servo, oder Motor mit präziser
> Drehzahlregelung).

So ähnlich machen VR-Headsets das? Klingt wirklich aufwändig, aber 
verdammt genial (zumal die Objekte dann ja kaum "Innereien" benötigen). 
Ich überlege ob ich das vielleicht mit der Infrarot-Teppich Idee 
kombinieren kann - die Spiegel mit den IRs dann eben nicht ans 
Tischbein, sondern in den Rahmen.

von (Gast)


Lesenswert?

Du könntest in deine Objekte eine art rfid tag einbauen und auf dem 
Tisch durchsichtige Leiterbahnen als antennen anbringen 
(Indium-Zinn-Oxid). Ist aber nicht billig.

von kuchenkruste (Gast)


Lesenswert?

> Du könntest in deine Objekte eine art rfid tag einbauen und auf dem
> Tisch durchsichtige Leiterbahnen als antennen anbringen
> (Indium-Zinn-Oxid). Ist aber nicht billig.

Coole Sache! Wenn wir von "nicht billig" sprechen, wie sehr "nicht 
billig" ist das? Und vor allem: Wer macht so etwas oder kann man das 
auch selbst auftragen?

Und verzeih mir meine Unwissenheit: RFID tags kenne ich, aber wofür 
benötige ich die Antennen?

von kuchenkruste (Gast)


Lesenswert?

Mir kam da auch gerade noch ein Gedanke, den ich hier gerne einbringen 
würde.

Hat jemand Erfahrungen was induktive Touchscreens angeht? Ich kenne mich 
hier leider nicht sehr gut aus, aber wäre es nicht möglich die 
Glasscheibe so in einen Touchscreen zu verwandeln, der nur von den 
Objekten gesteuert werden kann?

von Frank K. (fchk)


Lesenswert?

kuchenkruste schrieb:
> Mir kam da auch gerade noch ein Gedanke, den ich hier gerne einbringen
> würde.
>
> Hat jemand Erfahrungen was induktive Touchscreens angeht? Ich kenne mich
> hier leider nicht sehr gut aus, aber wäre es nicht möglich die
> Glasscheibe so in einen Touchscreen zu verwandeln, der nur von den
> Objekten gesteuert werden kann?

Touchscreens sind entweder resistiv (druckempfindlich) oder kapazitiv.

Irgendwelche kapazitiven Lösungen auf Glas sind jenseits Deiner 
Reichweite.

Induktive Positionierung nimmt man bei Grafiktablets mit Stiften. Im 
sensitiven Bereich sind Drähte in X und Y Richtung eingebettet, die als 
Sende- und Empfangsantennen wirken. Mehr wie ein Stift zur Zeit wird 
schwierig.

Wenn ein gewisses Raster ähnlich einem Schachbrett zulässig ist, kann 
man auf jedem Feld eine RFID-Antenne unterbringen und somit RFID-Tags 
orten, die auf einzelnen Feldern liegen. Damit wäre z.B. ein Schachspiel 
(oder Dame, Mühle, Go, Mensch-ärgere-dich-nicht) realisierbar. Jedes 
Feld hat natürlich eine gewisse Mindestgröße von ca 1-2 cm^2. Mit Deinem 
Kenntnisstand wirst Du das wohl eher nicht realisiert bekommen, weil das 
HF- und schaltungstechnisch nicht ganz einfach ist. Du wirst 
13.68MHz-Systeme benutzen müssen, weil nur so die Reichweite gering 
genug ist, damit die Antennen nicht über das jeweilige Feld hinaus 
reichen und auch von der Geometrie klein genug sind. Die Orientierung 
ist so natürlich nicht ermittelbar.

Ich denke, Du wirst keine Lösungen jenseits von kamerabasierten Systemen 
mit irgendwelchen optischen Codes finden, die Du selber mit Deinem 
Know-How umsetzen können wirst. Bei optischen Systemen hast Du den 
großen Vorteil, dass Du Dir die Hardware fertig zusammen kaufen kannst 
und die Bildverarbeitsalgorithmen als open-source bekommen kannst. 
Antennendesign erfordert ganz andere Fähigkeiten und Messtechnik, die 
sehr schnell sehr teuer wird.

fchk

von Timo N. (tnn85)


Lesenswert?

Die einzig wahre Lösung: LASER

von Zombie (Gast)


Lesenswert?

Ich weiss nicht, ob dir das etwas nützt, aber mit kam beim lesen deiner 
Projektbeschreibung spontan das Reactable in den Sinn: 
https://www.youtube.com/watch?v=ltjQJz2uz2E

von Irgendwer (Gast)


Lesenswert?

kuchenkruste schrieb:
> kann ich wegen des QR-Codes keine anderen Motive mehr auf die Objekte
> kleben bzw. Figuren o.ä. darauf stellen.

Eventuell ein kleines Display verwenden.
Ein paar Punkte davon am Rand verwenden um die Infos/ID an die Kamera an 
der Decke zu "morsen". Durch das erkenne der Geometrie der Pixel die da 
blinken kann sogar die Drehrichtung erkannt werden.
Auf dem Rest des Displays dann z.B. die Schachfigur einblenden.

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.