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
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)?
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).
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.
> 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.
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.
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.
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.
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)?
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?
> 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.
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"?
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.
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
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
> 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?
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.
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.
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.
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.
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
> 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.
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.
> 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?
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?
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
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.