PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entfernungsmessung



Jacob2
28.11.2008, 15:33
Hi,
ich würd mal gerne eure Meinung über folgendes hören:

Siehe auch Bild!
Man könnte doch theoretisch eine Entfernung zwischen 2 Bots messen, indem man einen Laserstrahl von A aus in einem bestimmten Winkel bewegt, und den Abstand zwischen 1 und 2 am anderen Bot misst. Den Laser würde ich mit einem Schrittmotor + Getriebe drehen, zwecks Genauigkeit. Würde das hinhauen? Ich weiß bloß keinen Sensor um den Abstand zwischen 1 und 2 zu messen.

bb_stefan
28.11.2008, 16:39
Klassisches Triangulationsprinzip!

Einen Sensor zu finden, der die Strecke 1-2 Messen kann wird wahrscheinlich schwierig, weil der ziemlich lang sein müsste! Besserer Ansatz vielleicht, zwei Photodioden (-transistoren) bei 1 und 2 an fester und bekannter Position. Dann müsstest Du stattdessen die Winkelpositionen des Lasers messen, bei denen der Laser auf 1 bzw. 2 trifft.
Aber hast Du Dir auch schon überlegt, was passiert, wenn sich Sender und Empfänger nicht exakt parallel gegenüber stehen, sondern gegeneinander verdreht und versetzt sind?
Aus dem hohlen Bauch raus würde ich mal schätzen, dass die Genauigkeit so eines Systems im Zentimeterbereich liegt...!

Jacob2
28.11.2008, 16:53
Im Zentimeterbereich würde auch reichen. Zu dem anderen Problem hab ich noch keine Idee!

oberallgeier
28.11.2008, 18:56
Hi, Jacob2,

die Navigation in dieser Art ist nur möglich mit drei Punkten, bei denen man deren Abstand voneinander kennt. Andernfalls fehlt eine Angabe (weniger Angaben als Gleichungen). Ein ähnliches Problem wurde vor einer Weile beschrieben. Damals hatte ich dazu eine Anleitung gezeigt. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=382648#382648) Im Prinzip ist es eine einfache Aufgabe aus der Geometrie - rechentechnisch müsste das mit analytischer Geometrie gelöst werden.

Zu diesem Navigationsproblem gibt es immer wieder Diskussionen und Ratschläge. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=390861#390861) Leider sind sie nicht immer ergiebig. Eine einfache(re) Lösung fällt mir dazu nicht ein. Na ja, ein Rollmaßband *ggggg*.

Übrigens messen die Sharpsensoren der GP2D..-Familie recht genau. Das könnte evtl. etwas für Dich sein - wenn der Abstand sich in Grenzen hält. Schau mal in die Datenblätter. Dann müsstest Du aber irgendwie "rundumschauen" - Sensor auf einem Servo, aber er sollte eben eine vollständige Umdrehung machen können . . . . .

Bei Deiner Aufgabe gäbe es aber eine Lösung, wenn Deine Bots ziemlich rund und von etwa gleichem Durchmesser sind. Dann misst Du einfach den sichtbaren Durchmesser - und rechnest simpel daraus die Entfernung. Das ginge auch bei eckigen Bots - wenn die beide die gleiche Höhe haben. Durchmesser oder Höhe muss dem Sensorträger bekannt sein.

Viel Erfolg

Jacob2
29.11.2008, 11:28
Eigentlich ging es darum, dass zwei Roboter ZUSAMMEN etwas lösen und da dachte ich, sie könnten so die Entfernung zwischen sich messen. Aber ich glaub ich werd doch lieber das mit den Sharp's machen! Wie soll ich denn sichtbaren Durchmesser messen?

oberallgeier
29.11.2008, 12:37
Eigentlich ging es darum, dass zwei Roboter ZUSAMMEN etwas lösen und da dachte ich, sie könnten so die Entfernung zwischen sich messen ...Ich habe noch nie mit Ultraschall gearbeitet, aber das würde ich mit US lösen. Bot 1 piepst und startet einen Timer. Bot 2 empfängt den Piepser und antwortet. Bot 1 empfängt die Antwort und stoppt die gesamte Laufzeit. Abzüglich der Empfängs-Sende-Verzögerung von Bot2 und geteilt durch 2 gibts die Schall-Laufzeit. Daraus rechnet man relativ gut die Entfernung (ist halt im Sommer und Winter anders, im Gebirge sowieso etc).


... Wie soll ich denn sichtbaren Durchmesser messen?Sensor auf Bot 1 dreht sich. Timer oder Winkelmesser oder so startet, sobald eine Kante erkannt wird. Timer o.ä. stoppt, sobald die zweite Kante erkannt wird. Aus dem Winkel und der wahren Länge wird die (Dreiecks-Höhe) Entfernung gerechnet. Achtung: Die erste Kante sollte in Drehrichtung (des Sensors/Bots) am "Beginn" des anderen Teils sein.

Jacob2
29.11.2008, 14:11
Das mit Ultraschall klingt gut, aber ist die Schalllaufzeit nicht zu kurz, um einigermaßen brauchbare (+- 1cm) Ergebnisse zu erhalten?
Außerdem wie findet man die Sende- und Empfangsverzögerung heraus?

oberallgeier
29.11.2008, 15:47
Schallgeschwindigkeit auf MSL ca. 300 m/s, d.h. 300 mm/ms. Diese 30 cm werden nicht unübliche Abstände von Deinen beiden Robotern sein. Bei diesem Verfahren wird dieser Abstand zweimal durchlaufen.

Nehme ich als Dauer zur Signalverarbeitung beim "Antworter" 1 ms, dann habe ich bei 15 cm Abstand schon 2 ms, die ich auf wenige µs auflösen kann. Eine Mikrosekunde entspricht 0,3 mm. 2 ms sind für (m)einen mega168 mit 20 MHz satt Zeit.


... wie findet man die Sende- und Empfangsverzögerung heraus?Darüber solltest Du nachdenken.

Jacob2
29.11.2008, 18:51
Könnte man also theoretisch, wenn man 20 Mio. mal in der Sekunde messen könnte (geht wahrscheinlich nicht oder?) auf 0,0075mm genau messen? Oder hab ich mich jetzt da vertan? Das wär dann theoretisch auch der kleinste messbare Abstand zwischen den Robotern :wink:
Zu der Verzögerung: Ich könnte natürlich die Länge der Leiterbahnen etc. messen und dann mit der Geschwindigkeit des Stroms rechnen, aber spätestens wenn man am Pin des AVR's angekommen ist, gehts nicht weiter!

oberallgeier
29.11.2008, 19:00
Könnte man also theoretisch... auf 0,0075mm ...Bei Deiner Genaugikeitsanforderung "... Zentimeter ..." denke ich über so etwas garnicht nach.


... Zu der Verzögerung könnte natürlich die Länge der Leiterbahnen etc. messen ...Hmmmm. Auch von solchen Dingen halte ich mein Gehirn nach Möglichkeit frei. Ich würde so etwas experimentell aufbauen, drei, vier Messungen mit unterschiedlichen Entfernungen machen - und das ist es. Zuviel Theorie schadet (da gibt es immer VIELE Abzweigungen vom geraden Weg - nicht dass ich Theorie scheuen müsste).

Jacob2
29.11.2008, 19:21
Das stimmt natürlich beides! Wenn man eine Genauigkeit von 1mm schafft wär das natürlich auch toll, aber 1cm würde genügen. Aber wenn der Sender nun vom Empfänger abgewendet ist, "hört" er doch nur das Echo, überhaupt, wie soll man Echo und echtes Signal trennen? Das was als erstes ankommt ist richtig?

Richard
30.11.2008, 16:28
Hi, Jacob2,

die Navigation in dieser Art ist nur möglich mit drei Punkten, bei denen man deren Abstand voneinander kennt. Andernfalls fehlt eine Angabe (weniger Angaben als Gleichungen). Ein ähnliches Problem wurde vor einer Weile beschrieben. Damals hatte ich dazu eine Anleitung gezeigt.

Viel Erfolg

Die habe ich etliche male gelesen. :-) Aber trotzdem nicht real gerafft weil
...Wenn zwei Barken mit bekannten Abstand (außerhalb) der gewünschten Arbeitsfläche nie auf einer linie stehen können.

Ein Problem ist allerdings das es unendliche Möglichkeiten von NICHT
rechtwinkligen Dreiecken gibt und bei denen reicht anscheinend der Winkel
zu den Barken + Abstand der Barken untereinander (Gegenkathete) nicht aus um die eigene Position zu bestimmen?

Was aber wenn zusätzlich der "Nullpunkt" vom z.B. Rasen bekannt ist?
Also Winkel und Abstand zu den Barken?

Ich habe allerdings seit ..56 Jahren außerhalb einer Lehre nie wieder
etwas mit sinus u.s.w. zu tun gehabt und etwas Probleme mich z.B.

Mit [url]http://www.fh-muenchen.de/fk08/fk/profs/lother/TR_1G_B07.pdf (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=382648#382648)

Ab Seite 33 geht es um nicht rechtwinklige Dreiecke.

anzufreundenj, da ruaucht der Schädel. :-(

Gruß Richard

Michael
30.11.2008, 19:36
Hallo Richard,

ich wollte nur mal kurz den Unterschied zwischen einer Bake und einer Barke anhand zweier Bilder verdeutlichen.

Hier die Bake (ohne R):

http://upload.wikimedia.org/wikipedia/de/thumb/8/82/Wangerooge_Ostende_Bake.jpg/180px-Wangerooge_Ostende_Bake.jpg

und hier die Barke(mit R):

http://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Anantanagaraj.jpg/700px-Anantanagaraj.jpg

Gruß, Michael