PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rauschen bei Sharp Sensoren



ACU
30.01.2005, 15:29
Hallo!
Ich habe folgendes Problem:
Sobald mein Sharp Sensor (GP2D120) [4-30cm] keinen Gegenstand mehr in Reichweite hat, fängt er an zu Rauschen.
Ein bischen Rauschen ist kein Problem, aber das Rauschen ist so stark, dass ich es softwaremäßig nichtmehr rausfiltern kann.

Dieses Problem ist bei einem meiner beiden Sensoren besonders stark.
Die Zimmerbeleuchtung, die ich erst als Schuldigen im Verdacht hatte, stellte sich als unschuldig raus.

In diesem Diagramm sieht man das normale Rauschen bei einem Gegenstand in 11cm Entfernung.
Bild vom normalen Rauschen (http://www.roboterbastler.de/Bilder/Rauschen.JPG)
Mit dieser Abweichung kann ich leben.

Und jetzt kommen die werte, wenn der Roboter keine Hindernisse mehr sieht:


ROBOTER: 0
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 0
ROBOTER: 0
ROBOTER: 0
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 0
ROBOTER: 30
ROBOTER: 30
ROBOTER: 0
ROBOTER: 30
ROBOTER: 30
ROBOTER: 0
ROBOTER: 0
ROBOTER: 30
ROBOTER: 0
ROBOTER: 0
ROBOTER: 0
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30
ROBOTER: 30

Die Werte ermittle ich mit der HIER (https://www.roboternetz.de/phpBB2/viewtopic.php?t=174) gezeigten Formel.

Vielleicht ist noch wichtig, dass eine Abfrage vor dem Senden alle Werte kleiner 0 und größer 30 zu 30 macht.


MfG ACU

pebisoft
30.01.2005, 17:47
hallo, ich höre kein rauschen.
hallo, da die sharpsensoren in grobnotorischen einrichtungen verwendet werden: pissbecken-wasserautomatic, händewaschautomatik usw, sollte man von diesen billigbauteilen keine hohen erwartungen setzen hinsichtlich unserer roboter-fein-notorik-technik. es kann von diesen bauteilen keine präzision erwartet werden. wollte man die steuerung genauer machen, geht kein weg an der finanzierung von guten bauteilen vorbei.
mfg pebisoft

ACU
30.01.2005, 18:20
@pebisoft

hallo, ich höre kein rauschen.

Ich dachte erst das ist dein ganzer Beitrag, aber es ist ja zum Glück noch etwas mehr geworden.

Was sind deiner Meinung nach "gute Sensoren".
Ist nach deiner Definition ein SRF10 ein gutes Bauteil???

MfG ACU

pebisoft
30.01.2005, 18:35
hallo, ich habe den srf08 i2c getestet und der hat schon messwerte, die könne sich sehen lassen. der srf10 ist nur eine verkleinerte version von dem srf08 und ist die preisdifferenz nicht wert. wer genaue messwerte erzielen möchte, kommt zur zeit an dem srf08 nicht vorbei.
mfg pebisoft

Kjion
30.01.2005, 18:45
Naja, Ultraschall und genaue Messwerte ?? Bei Ultraschall hast du enorme Problem mit Signalreflektionen usw...

SO schlecht sind die Sharp Sensoren gar nicht. Ein so großes Rauschen kann ich mir eigentlich nicht vorstellen bzw. hatte ich bei den Sensoren die ich getestet hab auch noch nie gehabt. Vielleicht liegt es an der Formel die du verwendest ?? Wie sehen den die "Rohdaten" ohne Auswertung aus ??

MfG Kjion

ACU
30.01.2005, 18:51
Ja,
mich wundert das auch.
Als nächsten Schritt werde ich einfach mal schauen, ob das die negativen Werte sind, die die Probleme machen (oben hatte ich ja geschrieben, dass Werte über 30 und unter 30 automatisch 30 werden.
Vielleicht bringt es schon was, wenn ich die Werte unter 30 einfach unter den Tisch fallen lasse.

@pebisoft
Dafür gibt es beim SRF08 nicht diesen schicken Halter (ich weiß, dass man sowas auch selber bauen kann).




MfG ACU

recycle
30.01.2005, 19:05
Ich erkenne auf deiner Liste ehrlich gesagt auch kein Rauschen. Du bekommst doch nur abwechselnd 2 unterschiedliche Werte.
Mir sieht das mehr nach einem systematischen Fehler aus.

Ich kenne das Datenblatt von deinem Sensor nicht, habe aber hier das Datenblatt vom GP2D12 vor mir liegen. Ich vermute das ist ähnlich.
Darin ist die Spannung über der Entfernung zu einem Hindernis als Kurve abgebildet. Aus dieser Kurve geht hervor, dass der Sensor keine eindeutigen Ergebnisse liefert, sondern für jede Spannung zwei Entfernungen zum Hindernis in Frage kommen.
Kann es sein, dass das die Ursache für deine beiden verschiedenen Werte ist?

ACU
30.01.2005, 19:26
Stimmt du hast Recht.
Streng genommen ist es kein Rauschen.

Das mit der Kurve spielt keine Rolle.
Das merkt man nur daran, dass der Abstand scheinbar steigt, wenn man ganz nah an dem Sensor ist.

Ich werde jetzt einfach mal versuchen die 0 rauszufiltern.
Entfernung 0 kommt bei mir in der Realität eh nicht vor, da der Sensor nicht direkt am Rand vom Roboter sitzt.

MfG ACU

Fritzli
30.01.2005, 20:07
Hallo

Zum Thema Rauschreduktion bei Sharp's:

Laut diversen Quellen im Internet soll man das Gehäuse (ist aus leitfähigem Plastik) an GND legen, falls Du das noch nicht gemacht hast. Laut diesen Quellen kriegt man sonst u.U. ziemliches Rauschen v.a. wenn kein Objekt "in Sicht" ist.

Ausserdem empfiehlt es sich, zwischen V+ (nicht Vout) und GND einen gröberen Elko anzuschliessen, um die 1kHz Transienten (von der LED) zu dämpfen, aber das kennst Du ev. auch schon.

Gruess
Felix

ACU
30.01.2005, 20:12
Danke für die Tipps!
Werde ich bei Gelegenheit mal ausprobieren.
Ich habe eben ein bischen mit meinem Programm rumgespielt.
Wenn ich die 0 Werte rausfiltere, ist das Ergebniss schon ganz anständig, d.h. ich habe nichtmehr diese krassen Schwankungen.

MfG ACU

Manf
30.01.2005, 22:14
Vielleicht ist noch wichtig, dass eine Abfrage vor dem Senden alle Werte kleiner 0 und größer 30 zu 30 macht.
"Alle Werte kleiner 0" steht da.
Es kommen Werte kleiner 0 vor? (nach der Berechnung). Dann kann natürlich das kleinste Rauschen zwischen 0 und -1 zu dem großen Rauschen zwischen 0 und 30 führen.
Könntest Du das mal prüfen?
Manfred

ACU
31.01.2005, 13:47
Ja ich wundere mich auch, aber manchmal kommt bei der Berechnung ein negativer Wert raus.
Ich filtere jetzt einfach die 0 raus, dann funktioniert es ganz gut.
Hier mal ein Programmausschnitt:

thread Entfernung //thread zur Berechnung der Entfernung in cm
{
U1=ports.adc(0);
U1=U1/204.6;
Entfernunglinkstemp=(A1/(U1-B1));
if Entfernunglinkstemp <= 30 & Entfernunglinkstemp >= 1
{
Entfernunglinks = Entfernunglinkstemp;
}

if Entfernunglinkstemp > 30 or Entfernunglinks < 0
{
Entfernunglinks = 30;
}

U2=ports.adc(1);
U2=U2/204.6;
Entfernungrechtstemp=(A2/(U2-B2));

if Entfernungrechtstemp <= 30 & Entfernungrechtstemp >= 1
{
Entfernungrechts = Entfernungrechtstemp;
}
if Entfernungrechtstemp > 30 or Entfernungrechtstemp < 0
{
Entfernungrechts = 30;
}
}

Manf
31.01.2005, 16:28
manchmal kommt bei der Berechnung ein negativer Wert raus.

Wie sieht es denn aus mit den Werten für B1 und B2?
Manfred

ACU
31.01.2005, 16:41
A1 = 10.8;
B1 = 0.58;
A2 = 10.51;
B2 = 0.6;

Da sind sie.
Ist aber eigentlich relativ genau (wenn er einen Gegenstand sieht).
Mít dem verbesserten Programm geht es aber auch ganz gut.


MfG ACU

Manf
31.01.2005, 17:46
U1=ports.adc(0);
IF U1 < 192
{
U1=192;
}
U1=U1/204.6;
Entfernunglinks=(A1/(U1-B1));
Das ist dann die Berechnung, die die Polstelle für U1=B1 schon vor der Division eliminiert.

(Ich wollte es mir nur noch mal klar machen und habe mir den Funktionsverlauf für Entfernung (U1) in Excel angesehen. Offensichtlich ist für den Abstand >30cm ein tiefer Spannungswert erlaubt. Seine Schwankung sollte nicht auf das Ergebnis durchschlagen. )

Es kommt das gleiche heraus wie wenn man das Ergebnis 0 auf 30 setzt.
Manfred

ACU
31.01.2005, 20:35
Ja genau so habe ich mir das auch gedacht.
Deshalb habe ich ja diese Abfrage

f Entfernungrechtstemp > 30 or Entfernungrechtstemp < 0
{
Entfernungrechts = 30;
}

Jetzt eingefügt.

In den Ferien werde ich nochmal ausprobieren, in wie Fern das Erden der Gehäuse und ein Kondensator eine Besserung bringen.


ACU