PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstandsmessungen sinnvoll verarbeiten



boecki91
10.12.2011, 21:14
Hallo,

ich habe einen Roboter (RP6) und oben drauf eine schwenkbare Ultraschall-Abstandsmessung.
Die Messungen passen soweit, bilde den Durchschnitt über mehrere Messungen, und fahre die 180° in 5° Schritten ab
Ich kann das ganze mittlerweile auch von Polar in kartesische Koordinaten umwandeln und in einer Excel-Diagramm am PC darstellen.

Nun suche ich Algorithmen für ein paar Ziele (je immer nur eins):

Hindernis ausweichen
Idee: Messungen voraus anschauen, wenn < 60cm, dann gucke rechts und links, und fahr dahin wo mehr Platz ist, aber es soll mehr flüssig sein, das er weiter vorausschaut ;) Irgendwie schon vor den 60cm erkennen das es eng wird und schon mal etwas nach links oder rechts schwenken
Immer an der Wand lang, im Abstand von 50
Idee: Abstand messen, wenn > dann mehr rechts, sonst links, vlt. PD-Regler ähnlich
Karte des Raumes erstellen
Idee: Messpunkte aufzeichnen und Fahrstrecke des Roboters,
Problem: Schlupf vom Roboter, Wo wie speichere ich das am besten?


Letzteres würde mich am meisten interessieren, ist aber wohl auch das Schwerste fürchte ich.

seite5
11.12.2011, 08:25
Hallo,

ich mache ähnliches mit einem RP5 und einem optischen Sensor (Sharp). 5° scheint mir allerdings eine zu geringe Auflösung, ich arbeite mit weniger als einem Grad.
Problem 1: Ich untersuche das Array auf zusammenhängende "Lücken" in einer Programmschleife, also Wert[i] erfüllt Bedigung (Abstand) bool wert auf true, nächster Wert..
bleibt der bool wert für die minimale "Lücke" true, ist dort eine Möglichkeit weiterzufahren. Findet sich überhaupt keine Lücke --> zurück.
Problem 3: Ich übermittle via Bluetooth die Array-Daten zum PC. Gleichzeitig errechnet der µC des RP5 aus gefahrenen Strecken seine Position und sendet diese auch
an den PC für eine "Karte des Raumes". Ist aber tatsächlich das grösste Problem, da sich alle Fehler im Laufe der Zeit aufsummieren (Schlupf, Ungenauigkeiten der
Algorithmen, gerade bei Kurven erheblich) und die Position und der Winkel des RP5 im Raum immer ungenauer werden.
Hier ein Bild (C#) meines "Optimierungsprogramms", im Diagramm das Array (RADAR), die Lücke (GAP) und die mögliche Zielposition des RP5 (Rover).
20749
mfg
Achim

boecki91
11.12.2011, 12:23
Im Anhang ein Bild wie es bei mir aussieht.

Das Problem bei einer höheren Auflösung ist auch, das der Roboter länger benötigt den Bereich zu scannen.
Aktuell mache ich pro Winkel 4 Messungen, nehmen wir mal an durchschnittlich alles 1,5m weg, bei 343 m/s habe ich alleine schon Signallaufzeiten von 35ms, den Servo stellt sich auch nur alle 20 ms neu ein, und muss dann noch zur neuen Position, also dauert ein Messvorgang 55ms, arbeite ich mit 1°, habe ich 180° komme ich auf gut 10 Sekunden Scannzeit. Mit 5° lande ich bei 2 Sekunden. Hier spielen die Servo-Fahrzeiten eine größere Rolle, die bei dieser Rechnung noch unberücksichtigt sind.

Bei einem Strahl hätte man bei 5° bei einem Meter "Lücken" von unter 9cm, bei 1° unter 2cm, spricht also eher für eine kleinere Winkeldifferenzen.

Allerdings habe ich keinen Strahl sondern Wellen. Wenn ich das DB des 400ST richtig lese, bei +-30° noch ca. die Hälfte an Signalstärke hat. Somit bekomme ich ja eigentlich gar keinen Punkte, sondern einen Kreisbogen.

20753Darstellung in Excel, 4 Scans, jeder Scan in 5° Schritten, pro Schritt 4 Messungen. Ein Programm in deiner Richtung ist der nächste Schritt.

seite5
14.12.2011, 08:13
hallo,
ist der Vorteil der optischen Sensoren, ich kann die "Stepzeit" bis auf 12ms runtersetzen, ohne dass Fehler auftreten, mitteln muss ich auch nicht.
Manchmal treten Fehler durch (ich vermute) besonders extrem reflektierende Flächen auf, die gehen aber auf grund der Algorithmen im Lauf "verloren".
Momentan versuche ich Programm zu schreiben, um die Fehler bei der Wegbestimmung (Raumkarte) zur "selbstständigen" Korrektur der Berechnungen
zu verwenden - ist nach wie vor mein Hauptproblem: Position und Winkel im Raum möglichst lange exakt zu bestimmen.
mfg
Achim