PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Erkennung von Objekten im Nahfeld



Moppi
18.11.2020, 08:26
Guten Morgen,

hat schon jemand irgendwann Objekterkennung im Nahfeld betrieben?

Ich habe drüber nachgedacht, wie man das machen könnte. Ich bin auf Abtasten gekommen, mit irgendeiner Art von Fühler. Dann habe ich hier im Forum was zum GP2Y0A41SK0F Distanzsensor gefunden. Aber nichts weiter darüber, wie genau der nun wirklich misst (0.1mm ... 2mm ?). Nachteil ist, näherliegende Objekte rundum abzutasten, dass das lange dauert. Evtl. könnte man deshalb auch mit mehreren Sensoren hantieren. Eine genaue Lösung habe ich noch nicht.

Habt Ihr Ideen dazu?


Freundlichen Gruß
Moppi

Rabenauge
18.11.2020, 09:33
Ich hab nen ähnlichen hier (die Variante, die bis 80cm messen kann)- die Dinger liefern ein analoges Signal.
Je nachdem, wie fein du das auflösen kannst, dürfte die Genauigkeit durchaus bis auf ca. 5-6mm runter zu bekommen sein.
Ich bin so auf ungefähr 10mm gekommen-genauer hab ich das nie probiert.
Der NiboBee konnte damit durch einen "Wald" aus aufgestellten Bleistiften fahren.

Wenn du von nem Roboter aus allerdings rausfinden willst, ob da nun ein Würfel oder ne Kugel liegt- hm....kannst du denn den Roboter überhaupt _so_ genau platzieren?
Ein supergenauer Sensor nutzt dir nämlich nichts, wenn du ihn nicht präzise positionieren kannst.
Dann gibt es noch weitere Tücken: das Ding arbeitet mit IR-Licht.
Manche Dinge reflektieren das überhaupt nicht (versuch mal Alpinaweiss-Wandfarbe) ich glaub, braune Wellpappe (die üblichen Kisten in denen die Schneckenpost alles Mögiche anschleppt) hatte auch gar nicht funktioniert).
Und natürlich hat er das Problem, was alle Sensoren, die mit Reflexion arbeiten, auch haben: sehr spitze Winkel funktionieren nicht (wenn auch besser als mit nem Ultraschall-Sensor z.B).

Hauptvorteile der Dinger, gegenüber Ultraschall sind halt, dass sie einen sehr kleinen Erfassungsbereich haben, wesentlich schneller sind, und unempfindlicher auf Störungen (Reflexion usw.).
Nachteil: er muss seinen Lichtpunkt auch erkennen.

Moppi
18.11.2020, 11:31
Wenn die nur ein analoges Signal liefern, hat sich das mit der Genauigkeit dann so weit schon geklärt. Mit den Störfaktoren dann auch.


Ich bin so auf ungefähr 10mm gekommen-genauer hab ich das nie probiert.

Das wäre mir evtl. zu wenig. Ich habe schon spekuliert, dass man ein Objekt auf ein paar Millimeter genau vermessen kann. Wobei es mir erst einmal nur um die Erkennung ginge. Weil Kamera ist mir zunächst zu rechenintensiv. Will nicht gleich mit Kanonen auf Spatzen schießen.


Wenn du von nem Roboter aus allerdings rausfinden willst, ob da nun ein Würfel oder ne Kugel liegt- hm....kannst du denn den Roboter überhaupt _so_ genau platzieren?

Mich würde dann vor allem zunächst interessieren, was für ein Objekt. Also es geht eher um die Objekterkennung. Kugeln, Zylinder, Quader, Absätze (auch unter 1cm Höhe), vielleicht auch die Höhen von Teppichkanten bestimmen zu können z.b.

Mit den Sharp-Sensoren habe ich noch keine Erfahrung. Wenn es dort auch Probleme bei der Abtastung bezüglich Farbe gibt, wäre es nicht gut. Allerdings hatte ich gelesen, dass trotz Farben die doch genaue Ergebnisse liefern?

Insgesamt macht mir das nicht so große Hoffnung, was Du schreibst, Rabenauge. Ich suche nach was, was verlässlich ist und eine hohe Auflösung ermöglicht.


MfG

- - - Aktualisiert - - -

Eventuell eine Lösung könnten Sensoren sein, die sich biegen lassen und dann ihren Widerstand ändern (oder so ähnlich, vlt. auch eine Spannung erzeugen). Aber die dürften keinen hohen mechanischen Widerstand haben, damit Objekte nicht verschoben werden.

- - - Aktualisiert - - -

Auf verschiedenen Wegen bin ich nun schon auf das Tfmini-Lidar-Modul gestoßen. Mindestabstand 10cm, Auflösung 1mm. Ich muss mir so ein Teil mal zulegen.

MfG

Gerdchen
18.11.2020, 11:31
Mich würde dann vor allem zunächst interessieren, was für ein Objekt. Also es geht eher um die Objekterkennung. Kugeln, Zylinder, Quader, Absätze (auch unter 1cm Höhe), vielleicht auch die Höhen von Teppichkanten bestimmen zu können z.b.

MfG

- - - Aktualisiert - - -


Eine präzise 3D-Abtastung ist schon anspruchsvoll.
Eine denkbare Möglichkeit wäre ein einfaches schwenkbares 2D-LIDAR.

Diese Abstandssensoren sehen für den Nahbereich auch brauchbar aus: https://www.amazon.de/VL53L0X-Flight-Distanz-Messmodul-Schnittstelle/dp/B06Y5V8GGJ



Eventuell eine Lösung könnten Sensoren sein, die sich biegen lassen und dann ihren Widerstand ändern (oder so ähnlich, vlt. auch eine Spannung erzeugen). Aber die dürften keinen hohen mechanischen Widerstand haben, damit Objekte nicht verschoben werden.

Das wäre dann aber nicht mehr berührungslos. Ich hab da Bedenken, ob das funktioniert, wenn der Robi da irgendwas befummeln muss.;)

Rabenauge
18.11.2020, 12:23
Abtasten (mechanisch)- hm..da fiel mir eben ein, dass manche 3D-Drucker das Bett tatsächlich mechanisch abtasten- mit nem Sensor namens BLTouch.
Hatte ich noch nicht in den Fingern, aber das Ding ist genau genug, um ein Druckbett zu leveln (also im Bereich 1/10mm), und irgendwo hatte ich sowas mal in Aktion gesehn (auf nem Video), der hatte nen Taststift, der bei geringster Berührung reingezogen wurde (magnetisch, vermutlich).
Da der rein mechanisch zu tasten scheint, müsste das eigentlich funktionieren.

Nachtrag: was ich nicht weiss, ist, ob der auch horizontal funktioniert. Kann auch sein, der arbeitet nur. wenn der Taststift vertikal steht.

Moppi
18.11.2020, 13:37
Ja das stimmt, die BLTouch sind für Untergrund gut. Habe ich ja auch dran. Der ist für vertikalen Einbau gedacht, die Messspitze fällt nach unten raus. Die hatte ich schon mal im Visier. Aber jetzt gar nicht. Funktioniert mit Magnetismus und einem HAL-Sensor. Ist sehr genau, ca. 0.005mm Abweichung habe ich gelesen. Der Widerstand den der Sensor zum Schalten benötigt, ist wirklich sehr gering. Das ist auf jeden Fall eine Option. Man muss nur mit der Messspitze den Gegenstand treffen. Horizontaler Einbau fragwürdig.

Funktioniert auch noch horizontal. Am besten Vertikal nach unten zeigend. Über Kopf nicht.

jmoors
18.11.2020, 20:43
Wie wäre es mit einer TOF-Kamera? Damit kannst Du ein 3D-Modell erstellen.

Moppi
18.11.2020, 21:49
Zur TOF habe ich noch keine Idee, wie das einsetzen sollte. Ansonsten habe ich 2 Kameras, 1 davon eine Pixy2. Damit werde ich mich später mal beschäftigen, um zu sehen, was da so geht und was nicht. Beim mechanischen Abtasten habe ich zumindest eine Vorstellung, wie das funktionieren könnte, welche Daten dabei anfallen und wie man die verwerten könnte. Kamerabilder auszuwerten ist dagegen um einiges aufwendiger. Die Kameramodule haben ja die CPUs dann schon an Board, die man zur Erkennung benötigt. Da kann man seine eigenen Programme drauf laden, um die Objekterkennung irgendwie zu bewerkstelligen. Dort fange ich dann bei Null an, bei TOF ebenfalls.

Rabenauge
19.11.2020, 09:12
Billiger als der BLTouch: Mikrotaster.
Die haben auch nicht viel mechanischen Widerstand- und den kann man noch verringern, indem man den Hebel verlängert.
Manche 3D-Drucker leveln damit auch- die fahren den mittels Servo aufs Bett bis es klick macht.
Und im Gegensatz zum BLTouch funktionieren die in jeder Lage.
Beim BLTouch steht auf der Hersteller-Webseite, dass er _nur_ senkrecht genau misst.

Das könnte man so bauen, dass ein Servo den rausschiebt, bis er auslöst. Aus der Servoposition lässt sich dann die Entfernung zum abgetasteten Punkt ermitteln.

Moppi
19.11.2020, 10:34
Der BLTouch ist wirklich mit Abstand im Moment das Beste, was man einsetzen kann, wenn es funktionell machbar ist. Wegen dem Auslösewiderstand. Taster können da nicht mithalten. Hebelverlängerung ja, aber ob man damit auf so geringen mechanischen Widerstand kommt? Ich habe da auch erst dran gedacht. Aber auch die Häufigkeit der Auslösung: wann ist so ein Schalter dann hinüber? Vorteil wäre aber, dass das Abtasten mit Schalter schneller vonstatten gehen könnte. Da müsste man mal verschiedene Hebellängen ausprobieren. Könnte man den BLTousch senkrecht nach oben betreiben, würde - Pi mal Daumen - schon ein Blatt von einem Baum ausreichen, dass auf die Messspitze herabsegelt, um den auszulösen. Welche Wiederholgenauigkeit hat ein Mikroschalter (Abweichung auch so 0.005mm?)? Man müsste das wirklich ausprobieren. Ich habe bloß jetzt keinen Mikroschalter. Die Abtastmechanik müsste auch sehr genau sein. Da könnte ein kleiner Schrittmotor funktionieren, dessen Umdrehungen dann übersetzt werden, um die Genauigkeit zu erreichen, die man evtl. benötigt.

Rabenauge
19.11.2020, 17:44
Mein 3D-Drucker hat Mikrotaster (entgegen der allgemeinen Ansicht halte ich die für zuverlässiger als die Lichtschranken)- die werden bei jedem Start zweimal betätigt- manchmal zwischendrin auch.
Wechseln musste ich noch keinen.
Ist ja nicht so, dass hier ernsthafte Ströme fliessen (wodurch die Kontakte evtl. verschleissen würden).
Die Genauigkeit kann ich nicht mal messen- ich muss mitunter monatelang nicht neu leveln, das spricht für eine recht hohe.
Da ich meistens auf Flussglas drucke, denke ich, die liegt <0.1mm.

Die Auslösekraft dürfte im einstelligen Grammbereich liegen.
Kann das grad nich ausprobieren- der Drucker ist am bauen.

inka
20.11.2020, 07:50
habe die kraft "gemessen"...
(https://youtu.be/GBHXzpjyiCY)https://youtu.be/GBHXzpjyiCY

liegt bei 18gramm

oberallgeier
20.11.2020, 10:50
habe die kraft "gemessen" .. liegt bei 18grammJa, das kann ich bestätigen *). Allerdings vewende ich diese Minitaster OHNE Hebel (https://csd-electronics.de/Mechanische-Komponenten/Taster-Schalter/Mini-Taster-print/SMD/MiniTaster-3-5x6-SMD-4-3mm::2102.html). Der Hersteller gibt dafür 1,6 N als Betätigungsrkraft an - meine Messungen bestätigen es mit Toleranz ±15%. Dein Taster hat aber einen HEBEL ! Rechne ich die Hebelübersetzung mit 1:10 so errechne ich aus 18g => 0,177N - und daraus ca. 1,8 N Schaltkraft am eigentlichen Schalter. Und diese Kraft ist für die Kontaktgabe eben nötig - Hebel können das vermindern **). Durch die Hebel wird aber der Betätigungsweg von ca. 0,2 mm (bei meinen Tastern) proportional zur Hebelübersetzung vergrößert.

*) Kraft rechne ich in Übereinstimmung mit EinhZeitG (https://www.gesetze-im-internet.de/me_einhg/BJNR007090969.html) in der abgeleiteten SI-Einheit Newton. Waagen zeigen Kräfte üblicherweise in kg oder g an - wobei sie fast durchgängig eine feste Größe für die Erdbeschleunigung zugrunde legen. Für mich auf 47,51 N/10.28E und 812 m AMSL wäre für feinste Messungen (die hier nicht vorliegen) eine Korrektur nötig *gg*.

**) mittels "Fühlern" am Nibobee (https://www.roboternetz.de/community/threads/45049-Testpersonen-f%C3%BCr-NIBObee-gesucht?p=431291&viewfull=1#post431291) wurde so ein Hebel gebaut - ich hab dabei an meinem bee sehr auf leichte Lagerung (https://www.roboternetz.de/community/threads/45237-NIBObee-Erfahrungsberichte?p=435341&viewfull=1#post435341) geachtet.

Rabenauge
20.11.2020, 11:01
Mein Drucker ist auch grade fertig-die haben erstaunlich viel Widerstand. Da hatte ich weniger erwartet (gibts die auch mit weniger?).
Das ist zwar _erstmal_ kein grosses Problem (Hebel) aber durch nen Hebel verlängert sich auch der tote Weg (um irgendwas abzutasten muss man ihn ja nach jedem Punkt soweit zurückfahren, dass er wieder umschaltet), das könnte unpraktisch werden.

Moppi
20.11.2020, 12:12
Hey, Klasse! Super dass sogar jemand hier weiß, wo man diese Angaben finden kann! Damit kann man auch was anfangen. Beim BLTouch habe ich solche Angaben nicht gefunden (oder übersehen).
Mit dem Nibobee geht das schon in die Richtung, die ich mir vorstellen könnte.

Übrigens war mir da gestern noch was anderes eingefallen und ich habe mich versucht zu informieren, bin aber noch nicht weit gekommen. Nämlich Piezo-Elemente. Die reagieren auf Druck oder Vibration. Die gibt es auch als Streifen; bin nicht sicher, ob die dann auch auf Biegung reagieren, würde ich aber vermuten, weil das dann auch mechanisch verformt wird. Hat jemand Erfahrung oder weiß, wie "feinfühlig" ein Piezo-Element wäre, wenn man es als Klopfsensor zum Abtasten von Gegenständen einsetzen würde? Also wenn das Element auf einen Gegenstand trifft, würde dies ja eine Schwingung erzeugen, die man messen könnte. Leider habe ich noch nie Piezo - Elemente verbaut, mir fehlt jegliche Erfahrung. Könnte man damit z.B. einen Luftballon "abklopfen", das Auftreffen der Piezo-Elementoberfläche auf den Ballon sicher messen, ohne dass der Ballon sich bewegen würde?

MfG

- - - Aktualisiert - - -

Ich habe mir ein Video angeschaut, wo die Piezo-Elemente mit einem Durchmesser von ca. 27mm verwendeten werden. Drauf Klopfen ergibt große Werte nach dem ADC. Drauf pusten kleine Werte, um die 20 bis 35. Wenn ich mir das so anschaue, sollte man noch ein brauchbares Ergebnis bekommen, wenn das Auslöseereignis 5mal schwächer wäre. Das wäre schon mal nicht schlecht. Ich denke, man darf so ein Element ruhig noch mit einem einfachen Transistor als Verstärker versehen, eine genaue Schaltung dazu fehlt mir jetzt aber. Ich weiß nicht, welche Spannung so ein Piezo-Element erzeugt. Mir ist auch nicht geläufig, was man tun würde, um einen zu großen Pegel am Eingang eines Verstärkers zu unterbinden / eliminieren. Am Ende muss das aufeinander abgestimmt sein. Aber ich schaue mal weiter. Diese Richtung mit Piezo finde ich sehr interessant.

- - - Aktualisiert - - -

In einem Weihnachtskalender von Conrad (http://www.elektronik-labor.de/Lernpakete/Kalender18/Kalender18.htm) habe ich gerade ein paar Schaltungen gefunden. Da wird auch ein Piezo-Element direkt an die Basis eines Darlington-Transistors angeschlossen, Spannungsversorgung ist ein 9V-Block.

Rabenauge
20.11.2020, 12:36
Die Dinger werden auch in Waagen verbaut.
Das heisst: das geht mindestens bis in den Zehntel-Gramm-Bereich runter.

Klingt nach nem Plan.

Fix mal gegockelt: der hier (https://esp8266-server.de/tropfenzaehler.html) zählt Tropfen mit sowas.

oberallgeier
20.11.2020, 14:02
Mein Drucker ist auch grade fertig-die haben erstaunlich viel Widerstand. Da hatte ich weniger erwartet (gibts die auch mit weniger?) ..Es gibt ja (fast) alles was denkbar ist.
(Nicht lesen: momentan sitze ich über meinem 3pi und will den, als neues Teilprojektchen, als Experimentierträger für ne Orientierungseinrichtung "fahr um mehrere Hindernisse" vorbereiten. Der Liniensensor ist dabei KEIN Thema).

Der 3pi hat nen schicken Liniensensor, der ziemlich gut auch als Abstandssensor für kurze Entfernungen benutzt werden kann.

......35317
......
Als Reflexionssensors dient der Fototransistor in U4, der mit dem Kondensator C21 in Reihe geschaltet ist. Der Mikrocontroller kann einen Pin als Ausgang oder Eingang im laufenden Betrieb neu konfigurieren. Und dann wird "gemessen". Die LED leuchtet Dauerlicht. Der Pin PC0 ist als Ausgang konfiguriert und lädt den Kondensator C21 auf. Der Pin wird dann zum Eingang umkonfiguriert und die Spannung fällt ab, da ein Strom durch den Fototransistor fließt. Die Geschwindigkeit des Stromflusses durch den Transistor hängt vom Lichtpegel ab sowie vom Widerstand R12. Über einer hellen Oberfläche kehrt der Wert viel schneller auf Null zurück als auf einer dunklen Oberfläche. Aber auch mit steigendem Abstand von einer Oberfläche ändert sich der Entladestrom - in einem (nicht linearen) Verhältnis zum Abstand. Bei gleichbleibender Oberfläche (z.B. Platte 3D-Drucker) kann dabei ein recht genauer Zeitabschnitt für einen bestimmten kleinen Abstand gemessen werden, Bereich beim 3pi ca. 0..10 mm. Durch R12 ist dieser Zeitablauf auch einstellbar.
Beim 3pi werden die Spannungen VCC (5,0V) und VBOOST (9,25V) sauber konstant gehalten, daher ist die Messeinrichtung für reproduzierbare Ergebnisse gut geeignet; natürlich kann VBOOST gleich VCC genommen werden. Die Schaltung ist natürlich übertragbar. Ich vermute, dass für die hier diskutierten Einsätze Abstände von 1 mm bis deutlich drunter messbar sind.

Vorteile: Berührungslos - keine Auslösekraft
............Sehr einfacher Aufbau
............Dimensionierung über Widerstand für breiten Einsatzbereich und AD-Wandlung über 10 Bit hinaus.
Nachteil: Verlangt saubere Versorgungsspannung(en).
............ Die Messung ist bei verschiedenen Oberflächen recht unterschiedlich (Albedo im IR-Bereich).

Nachtrag: so ein bißchen ähnlich funktioniert meine Reflexlichtschranke ähnlich "Typ waste" bei WALL-R, MiniD0 etc - nur ist die für größere Abstände, etwa im Dezimeterbereich.

Moppi
22.11.2020, 10:29
Gestern kamen die Piezo-Elemente. Ich habe damit herumprobiert. Ist an sich nicht schlecht. Mit einem Verstärker kann man was draus machen. Für grobe Sachen auch ohne. Ich habe das Piezo-Element an die Basis eines Transistors angeschlossen und den als Open Collector betrieben, am Collector eine LED mit Vorwiderstand dran gehängt. Zusätzlich einen 1000kOhm Spindeltrimmer zwischen +5V und GND und den Mittelabgriff an die Transistorbasis mit dran. Zum rumspielen dann so eingestellt, dass die LED schwach leuchtet. Leider reagieren diese Piezo-Elemente auch auf Wärme (s. Conrad Weihnachtskalender). Aber für so einen ganz einfachen Detektor, ob da was am Piezo-Element anstößt, zunächst ausreichend. Operationsverstärker habe ich nicht ausprobiert, weil ich nicht weiß, ob ich einen habe. Muss ich später mal nach schauen. Das ist noch einen Versuchsaufbau Wert. Entscheidend wäre, dass man bei der kleinsten Berührung (Tick) einen möglichst großen Ausschlag am Analog-Eingang eines µC bekommt. Durch die hohe Verstärkung bleibt ein instabiles Grundsignal (ohne dass da ein mechanischer Tick erfolgt) nicht aus, das sich in der Stärke auch verändert (schon wegen der Temperatur des Piezo-Elements). Wegen der Temperatur müsste man sich evtl. was einfallen lassen.

MfG

Rabenauge
22.11.2020, 17:13
Hm..das mit der Erwärmung kenne ich, jetzt, wo dus sagst: früher hatte ich in den Modellhelis zu Anfang auch Piezo-Kreisel drin.
Es stimmt: die Dinger drifteten, wenn sie eine Weile in Betrieb waren, grundsätzlich- eben weil sie sich dabei erwärmen (oder halt die ganze Baugruppe).
An den Dingern konnte man das nich ändern (und später gab es dann andere, die das Problem nicht hatten), aber wenn der quasi frei aufgebaut ist, ausreichend weit von Wärmequellen weg..?

Moppi
21.03.2021, 13:13
Zum Abschluss noch eine Überlegung, wegen der Temperaturempfindlichkeit:

Wärme und Kälte wirkt sich aus. Aber wenn das in geringen Grenzen stattfindet, sollten Gedanken darum unnötig sein. Da nur ein Spitzenwert festgestellt werden soll, der aus der Menge der anderen sonst gemessenen Werte - am besten deutlich - ausbricht, kann das per Software geregelt werden. Wenn die Ruhewerte dann im Betrieb leicht fallen oder steigen (das findet ja nicht abrupt statt), sollte das nicht stören.

Ich habe noch eine zweite, sehr einfache Verstärkerstufe an die erste angeschlossen. Damit sieht das Ganze schon super aus. Am Analogeingang des Arduino UNO gemessen und die Werte ausgegeben, zeigt, dass damit Signalsprünge über den gesamten Messbereich des ADC möglich sind. Wobei sich die Verstärkung einstellen lässt. Damit ist von starkem Klopfen bis leichtem Berühren viel Spielraum für Experimente.