-         
Ergebnis 1 bis 7 von 7

Thema: Flaschenhals im Slam?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    233

    Flaschenhals im Slam?

    Anzeige

    Hallihallo,

    folgende Grafik zeigt die von meinem aktuellen Robbiprojekt erzeugte Karte meines Kellers. Als Linien schwarz eingezeichnet der über Raddecoder gemessene Kurs, blau der korrigierte Kurs.
    Start ist mittig links, danach einmal durch den unteren Bereich, dann nach oben durch die Waschküche (der große Raum oben), anschließend wieder zurück zum Ausgangspunkt.
    Die Kurskorrekturen habe ich aus den Rundumscan-Daten erzeugt, die als Kreuzchen und Linien (über einen Algorithmus gebildet) die Konturen der Hindernisse grob abbilden. Dabei habe ich erst einmal nur die von der aktuellen Position gemessenen Hindernislinien mit den in der Karte bereits vorhandenen Linien verglichen.

    Klicke auf die Grafik für eine größere Ansicht

Name:	SlamSample.jpg
Hits:	77
Größe:	78,3 KB
ID:	30064

    Mit einem Pfeil rot gekennzeichnet mein Problem: Der zweimal durchfahrene "Flaschenhals", der als Bindeglied die Waschküche mit dem Rest verbindet und dessen Messungen (wie bei allen Messungen) Fehler aufweisen, die eine Winkelverschiebung der beiden Kartenteile relativ zueinander bewirken (Die Waschküche steht zum Rest des Flurs unten etwas schräg und NEIN, DER MAURER HAT NICHT GETRUNKEN).

    Jetzt also meine Frage: Kann man das irgendwie kompensieren? Wie macht ein offizieller SLAM-Algorithmus das? Oder treten bei der Verwendung von SLAM beim Durchfahren solcher Flaschenhälse die gleichen Winkelfehler von Kartenteilen zueinander auf?

    Mir fallen für dieses Problem eigentlich nur zwei Lösungen ein:
    - die Pfuschlösung: GEHE VON RECHTWINKELIGEN UMRISSEN AUS UND KORRIGIERE DIE LAGE DER HINDERNISSE UND DER POSITION ENTSPRECHEND.
    - Die Messlösung: verbessere die Flaschenhalsmessung durch wiederholte Messungen und Mittelwertbildung. Dann aber das Folgeproblem: woher weiß der Robbi, wo ein Flaschenhals liegt?


    Fällt Euch da etwa Besseres ein?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    508
    Wie oft wurde der Keller abgefahren? Kann mir vorstellen dass das mit nur 1 Durchgang nicht genau wird. SLAM sollte bei jedem Durchgang die Positionen der Hindernisse vermessen und die Karte korrgieren bzw erweitern.
    Startpunkt: Dort sollte doch schwarze und blaue Linie identisch starten, oder sehe ich das nicht?
    Ist beim Flaschenhals ein Hinderniss (Rohre, andere Oberfläche) das die Messung verfälscht?

    Wie schaut der Roboter aus, wie ist der Messaufbau?
    Odometrie ok
    Kompass?
    Radar?
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    50
    Beiträge
    2.816
    Hm im ersten Post steht (fast) doch alles drin.
    Odometrie = Schwarze Linie, blaue Linie anhand der rundum scan Daten (Sendortyp nicht angegeben).
    2 mal durchfahren, da es Sackgassen sind (bis auf die Waschküche, die wurde im Uhrzeigersinn einmal durchfahren).
    Am Startpunkt sehe ich beide Linien deckungsgleich und zwei Endpunkte.
    Wenn man das zu einer "closed Loop" machen würde ,sollten sich die Fehler schon mal deutlich verkleinern.
    Mit Ecken als Landmarken sollten sich "closed Loops" realisieren lassen.
    Sind alle Landmarken gleich gewichtet?
    Oder gibt es einen unterschied zwichen vorspringenden Ecken und zurückweichenden?
    Vorspringende Ecken sind markanter und können mit höherer Gewichtung, bei mehrfacher Messung als Fixpunkte genutzt werden um Driftfehler zu kompensieren.
    Generell würde ich aber mindestens 5 mal abfahren (rein persönliche Meinung)
    Ggf. bei Wiederholungsmessungen Teilstücke als Loops erfassen indem man nicht mittig sondern z.B. rechts näher an der Wand fährt und bei bestimmten Landmarken jeweils einen Loop für ein Teilstück schließt.
    Und bei den Messergebnissen der Sensoren kann man mit statistischen Methoden Ausreißer ausmerzen und Bedarf für Wiederolungsmessungen ermitteln.
    X-quer, R über mehrere Messwerte bei kurzem Stillstand, idealerweise bei Landmarken.
    X-Quer ist der Mittelwert über mehrere Messungen und R (Range) die Spanne über größtem und kleinstem Messwert. ein kleines R gibt also eine hohe Verlässlichkleit der Messwerte an. Ein großes R kann darauf hindeuten, das man den selben bereich noch mal aus anderen Blickwinkeln / von anderen Positionen / aus einem geringerem Abstand vermessen sollte.
    Geändert von i_make_it (14.04.2015 um 11:39 Uhr)

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    233
    Hallo Damfino,

    "Wie oft wurde der Keller abgefahren? Kann mir vorstellen dass das mit nur 1 Durchgang nicht genau wird. SLAM sollte bei jedem Durchgang die Positionen der Hindernisse vermessen und die Karte korrgieren bzw erweitern."

    Das Problem ist, dass meiner Ansicht nach der SLAM-Algorithmus den Flaschenhalsfehler nicht systematisch angehen kann, wenn der Bezug zwischen zwei Kartenteilen auf zu geringen Datenmengen basiert (z.B. nur ein Türdurchgang, der zwei größere Kartenteile miteinander verbindet).

    Startpunkt: Dort sollte doch schwarze und blaue Linie identisch starten, oder sehe ich das nicht?

    Schlecht zu erkennen, Die blaue Linie überlagert hier die schwarze.

    Ist beim Flaschenhals ein Hinderniss (Rohre, andere Oberfläche) das die Messung verfälscht?

    Es ist eigentlich der Übergang zwischen Kellerflur und Waschküche, in dem ich "GUTE BEZUGSPUNKTE" verliere.

    Wie schaut der Roboter aus, wie ist der Messaufbau?
    Odometrie ok
    Kompass?
    Radar?

    Zwei Motoren mit Inkrementalgebern (2,1mm Schrittauflösung, 40 cm Radabstand), geregelter Beschleunigungs-/Bremsrampe sowie angenäherte Berücksichtigung der Regelungsabweichungen in den Odometriedaten geben eine schon "gute" Annäherung (Im Beispielbild oben bin ich ca. 40m Strecke gefahren).
    Weniger gut sind die Daten des Rundumsensors (128 Scans/ 360°), basierend auf zwei Sharp-Distanzsensoren (20..150cm, 100..550cm fusioniert). Die haben einerseits erhebliche Messfehler auf größere Distanz, andererseits beinhalten sie auch so einige zu filternde Fehlmessungen an reflektierenden Flächen (jo, ich war auch überrascht, dass eine grau gestrichene Metalltür ein reflektierendes Objekt ist)
    Kompass habe ich nicht, weil ich keinen Weg gefunden habe, Fehler durch elektromagnetische Felder (Waschmaschinenmotor, Heizung, Metall, Leitungen,...) auszuschließen.

    Ich reduziere das Problem noch mal aufs Wesentliche:

    Wenn ich aus einem sehr großen Raum (Bezugspunkte durch Lidar o.Ä. nur an einer Wand messbar) durch einen Türdurchgang in einen zweiten sehr großen Raum fahre, wird die Lage beim durchqueren des Türdurchganges alleine an den Türflanken festgemacht (2 kurze Linien). Wenn jetzt diese beiden Linien auch nur ein wenig falsch in die Map eingetragen werden (Winkelfehler <1°), ergibt dies für absolute Positionen im zweiten Raum später doch einen relativ großen Fehler.

    Klicke auf die Grafik für eine größere Ansicht

Name:	SlamExpectedError.jpg
Hits:	20
Größe:	10,9 KB
ID:	30067

    Die Grafik zeigt meinen Flaschenhals: Ausgehend von A hat der Robbi gute Bezugsmessungen (schwarze Linie) bis B
    Bei B sind die vorhergehenden Bezugspunkte mit Ausnahme der beiden kurzen grünen Linien nicht mehr verwendbar. Sind diese beiden Linien nur etwas ungenau, liegen alle folgenden Messungen (blaue Linie) und die eingetragene Position um den Winkelfehler aus der Messung von B falsch.
    Die Erkennung des Fehlers und dessen Korrektur kann frühestens an C erfolgen. Entweder orientiert sich der Algorithmus nun an den Matches der Messungen zwischen A und B, trägt neue Punkte sozusagen als 0-Wandstärke ein und korrigiert die Position entsprechend oder, wenn es ein Linienalgorithmus ist, kann die Syntax maximal sagen: "Oh, hier liegen zwei gegengerichtete Linien übereinander, das ist nicht plausibel"


    Ein auf MonteCarlo basierender SLAM-Algorithmus KÖNNTE die richtige Lage des Türdurchganges als Partikel für einen gewissen Zeitraum beinhalten. Allerdings ist die Wahrscheinlichkeit, dass genau dieser Partikel durch höher gewichtete Alternativen vernichtet wird, genauso groß, wie der Erhalt der richtigen Alternative. Aus praktischen Gründen entwirft ein solcher Algorithmus ja nur eine festgelegte Anzahl von Altenativmaps und ggf. fliegt die richtige Alternative schon aus dem Map-Pool heraus, bevor der Fehler erkennbar wird.
    Geändert von Holomino (14.04.2015 um 12:06 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    50
    Beiträge
    2.816
    Was spricht dagegen, sobald die Anzahl erkannter Landmarken unter 3 fällt, eine 90° Drehung durchzuführen und den Türrahmen einmal quer zu durchfahren. Durch den steileren "Sichtwinkel" werden eventuell wieder mehr Landmarken auf einmal sichtbar.

    Was für ein Modell die Sensoren sind steht zwar nicht da, aber z.B. der SRF05 hat im Nahfeld fast 120° und im Fernfeld immer noch 60° die er bestrahlt.
    Ich bau meine US-Sensoren immer selbst auf (alte Gewohnheit, da es 1991 in DE noch keine fertigen zu kaufen gab), und habe da auch schon mit einem Tubus am Sender gearbeitet um eine schmalere Signalkeule zu bekommen. Damit wird die Winkelauflösung unterschiedlicher Ziele besser. Allerdings habe ich dafür einen um 180° schwenkbaren Sensor.

    Bei den Sharp IR Sensoren habe ich mit Tisch und Stuhlbeinen unter 40mm Durchmesser überproportional viele Fehlmessungen.
    Geändert von i_make_it (14.04.2015 um 14:29 Uhr)

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    233
    Machen wir's mal praktisch.
    Bei einem Sensor mit 10 Bit Auflösung und einem 5m Messbereich hast Du im Idealfall eine Auflösung von 0,5cm.
    Bei der Durchquerung des Türrahmens (80cm breit, 15 cm tief) hast Du in der Messung einzelner Punkte (ohne Bezug auf weitere Fehlerquellen) mit diesem Quantisierungsfehler zu rechnen. Du siehst vor dem Durchqueren der Tür bereits die Backen der Tür und kannst sie relativ zur umgebenden Wand eintragen (allerdings mit den o.g. Fehlern) Beim Messen im Türrahmen selbst kannst Du anhand der bereits eingetragenen Punkte sowohl durch Mittelwertbildung (Matching) die Lage korrellierender Punkte korrigieren, als auch Deine Position prüfen, aber alles nur im Rahmen des Quantisierungsfehlers, d.h. bei einer Messabweichung von 0,5cm und einer Tiefe von 15 cm bekommst Du einen Winkelfehler von max. ArcSin(0,5/15)= 2°. Danach werden alle weiteren Messwerte relativ dazu eingetragen um genau diesen einmalig bekommenen Fehler versetzt.

    Abgesehen davon, dass ich kaum glaube, dass ein Messfehler von 0,5cm unter allen Umständen realistisch mit Bordmitteln zu garantieren ist: Mir scheint nicht einmal das Problem zu sein, dass der Roboter beim Navigieren (Rematch des Türrahmens) nicht mit diesem geringen Fehler leben könnte. Das Problem ist die korrekte Darstellung der Map für den Menschen. Wie sehen hier die praktischen Ergebnisse aus? Bilden über SLAM erzeugte Maps, die als einzigen Verbindungspunkt eine Tür zwischen zwei größeren Bereichen haben (also keine Rundkurse) auch immer die relative Lage der Bereiche zueinander sauber und zuverlässig ab? Oder werden die auch krumm?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    233
    Und schwupp, bin ich ein Stückchen weiter.

    Man nehme...
    ...einen Sensor mit höherer Reichweite, der beim durchqueren des Flaschenhalses auch die gegenüberliegende Wand zuverlässig misst.
    Klicke auf die Grafik für eine größere Ansicht

Name:	CompareSlam.jpg
Hits:	22
Größe:	54,0 KB
ID:	30220

    Dann wird's besser!!!

Ähnliche Themen

  1. Roboter mit Neato Lidar und SLAM
    Von teamohnename im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 4
    Letzter Beitrag: 20.04.2015, 12:41
  2. 360° Laser-Scanner für 360€, SLAM
    Von Günter49 im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 16.11.2014, 18:19
  3. Angebot eines SLAM Kurses
    Von Magox im Forum Offtopic und Community Tratsch
    Antworten: 2
    Letzter Beitrag: 26.09.2014, 17:18
  4. Visuelle Odometrie/SLAM für Outdoor-Roboter
    Von Seppl Meyer im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 04.07.2013, 14:36
  5. Autonomer Roboter, SLAM, dynamische Routenplanung -> Mindestanfordung an die Hardware
    Von AlexJ im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 13.05.2012, 09:12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •