PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschallsensor Problematik



eniddelemaj
27.07.2018, 23:52
Guten Abend,

ich habe mir einen sehr billigen Roboter, zum selbst bauen, gekauft.

https://www.banggood.com/DIY-L298N-2WD-Ultrasonic-Smart-Tracking-Moteur-Robot-Car-Kit-For-Arduino-p-1155139.html?rmmds=search

Ist übrigens wegen der Qualität nicht zu empfehlen, aber das ist ein anderes Thema.

Jedenfalls habe ich ihn soweit gebracht, dass er mithilfe seines Ultraschallsensor Hindernisse erkennt
und darauf entsprechend reagiert. Fährt er auf eine Wand zu, hält er an, guckt links und rechts und wählt die Richtung,
bei der die gemessene Distanz am größten ist. Funktioniert auch eigentlich ganz gut.

Das Problem besteht darin, dass der Ultraschallsensor die Oberflächen nicht wirklich erkennt, wenn sie
schräg auf den Sensor gerichtet sind. Sprich der Roboter fährt stur vor die Wand.
Natürlich kann ich bei dem niedrigen Preis nicht viel erwarten, jedoch reicht es mir trotzdem nicht.

Ich habe bereits versucht das mit Programmierung wett zu machen, indem ich beispielsweise den Sensor
während der Fahrt, kontinuierlich links und rechts schwenken lasse, damit er schräge Oberflächen erkennt.
Dass dies sehr unzuverlässig ist, versteht sich von selbst denke ich.

Nun möchte ich den Ultraschallsensor durch ein zuverlässigeren Sensor austauschen.
Ich hätte beispielsweise an Laser oder sowas gedacht. Bevor ich nun aber Geld
ausgebe, frage ich lieber hier im Forum, in der Hoffnung, dass mir jemand weiterhelfen kann.
Ich würde mich über Hilfe sehr freuen!:)

Ceos
28.07.2018, 20:30
Das Problem mit der Reflektivität wirst du immer haben, das ist fast nicht vermeidbar

Das Problem dieses speziellen typs ist einfach dass er eine zu große Keule hat, du solltest es mal mit schaumstoffband als trichter versuchen um ihn ein wenig gezielter sehen zu lassen, vielleicht hilft das schon (oder vll. reicht schon ein bisschen klebeband)

HaWe
28.07.2018, 21:22
Das Problem mit der Reflektivität wirst du immer haben, das ist fast nicht vermeidbar

Das Problem dieses speziellen typs ist einfach dass er eine zu große Keule hat, du solltest es mal mit schaumstoffband als trichter versuchen um ihn ein wenig gezielter sehen zu lassen, vielleicht hilft das schon (oder vll. reicht schon ein bisschen klebeband)

ich würde es auch so machen, und zusammen mit einem Sharp GP2D12 etc auf einen beweglichen Servo montieren, der radarmäßig hin-und-her schwenkt.
Denn sowohl US als auch IR haben Ihre Schwächen, je nach Hindernismaterial, und mit beiden könnte man kombiniert immer den kürzesten gemessenen Wert, geglättet per Lowpassfilter, als Entfernungsmaß verwenden.
Notiert man diese Werte nach Servo-Ausrichtungswinkel und Entfernungsstrecke, in einem Koordinatensystem um den Robot herum, bekommt man eine schon recht brauchbare Karte der Robot-Umgebung.
Kennt man die echte Ausrichtung des Robots, kann man durch Herumfahren sogar eine grobe Raumkarte erstellen.

RoboHolIC
29.07.2018, 00:44
Das Problem mit der Reflektivität wirst du immer haben, das ist fast nicht vermeidbar
Je rauher die Oberfläche ist, desto eher kommt abseits der Flächennormalen ein verwertbares Echo zurück. IR-Entfernungssensoren dürften da in den meisten Fälle bei schrägem Lichteinfall
besser funktionieren. Die Kombination aus US und IR hat bzgl. der Erkennungssicherheit nur Vorteile.


Das Problem dieses speziellen typs ist einfach dass er eine zu große Keule hat
Ne. Je schmaler die Schallkeule ist desto eher verliert man auch noch die grenzwertigen Reflexionen im Randbereich. Breiter ist hier eher vorteilhaft. Klar - die Richtungsauflösung verschlechtert sich mit der Breite der Keule.

Ceos
29.07.2018, 08:59
Ne. Je schmaler die Schallkeule ist desto eher verliert man auch noch die grenzwertigen Reflexionen im Randbereich. Breiter ist hier eher vorteilhaft. Klar - die Richtungsauflösung verschlechtert sich mit der Breite der Keule.

falsch, eine breite keule bedeutet auch mehr echo und störpegel vom boden und teppichkanten, so verliert man empfindlichkeit für schwache echos

Manf
29.07.2018, 10:46
Nach meiner Erfahrung ist bei der relativ großen Wellenlänge von 8mm die Glattheit der meisten Oberflächen und die Spiegelwirkung die dadurch auftritt ein deutlicher Effekt. Eine etwas schräg angefahrene Wand wird dabei nicht als Hindernis erkannt. Hier kann eine etwas breitere Rihtcharakteristik helfen.
Die Störungen kommen zeitlich unabhängig und sind dadurch (solange sie schwächer sind) vom zu messenden Signal recht gut entkoppelt. In einer stark gestörten Umgebung wird man entsprechend mit Mehrfachmessung arbeiten müssen.

Schlimmstenfalls ist es im Einzelfall ganz anders, die Sharpsensoren sind aber in jedem Fall auch zu empfehlen.

eniddelemaj
30.07.2018, 13:28
Wow danke für die ganzen Antworten!
Nun ich habe einen "Avoidance Sensor", also einen Infrarotsensor zu dem Roboter hinzugefügt. Der Infrarotsensor
erkennt schräge Oberflächen. Die Kombination aus Ultraschall- und Infrarotsensor scheint den Roboter
deutlich "unabhängiger" zu machen.

Das "Radarprinzip" ist mir zuerst auch eingefallen. Ich finde die Lösung nur nicht so schön, da man
den Roboter auch etwas langsamer fahren lassen muss, da der Sensor im richtigen Moment auf die Oberfläche zeigen muss.

Das mit der Karte hört sich auch sehr interessant an und ich werde diese Lösung mit dem Radar auf jeden Fall nachholen.
Programmiertechnisch stelle ich mir das relativ anspruchsvoll vor, aber genau darin besteht ja der Reiz.

Gut ich habe trotzdem ein Problem.
Wenn ich den Infrarotsensor mit dem Sensorshield verbinde, erkennt der Infrarotsensor dauernd ein Signal.
Wenn ich den Sensor mit einem anderen Arduino verbinde, funktioniert der Sensor ganz normal.
Dies ist mein erster Roboter, den ich baue und programmiere. Ich habe von Elektrotechnik leider nicht
sehr viel Ahnung. Was muss ich beachten, damit der Sensor auf dem Sensorshield normal funktioniert?