Hallo,
ich arbeite gerade an einen Roboter (Kehrmaschine). Als Basis dient da eine Kärcher Kehrmaschine mit 2 Seitenbesen. Soweit alles gut. Zurzeit kann der Bot nur planlos (zufälliges Muster) hin und her fahren. Der Bot hat Ultraschall
Sensoren um Hindernisse zuerkennen, einen Kompass für die Richtung. Solange das Areal abgeschlossen ist, ist alles super, wenn jemand das Hoftor offen lässt geht er stiften und macht gleich mal die ganze Straße mit. Das gleich auch wenn er vom Hof auf den Weg in den Garten kommt... Fegen des Rasens kommt nicht gut.
Damit ich nicht alles absperren muss, wollte ich dem kleinen jetzt eine Navigation gönnen. Angedacht bzw. schon umgesetzt ist folgendes.
2 Baken mit einem Laser. Der Laser wird über einen Spiegel
360 Grad im Kreis abgelenkt und zusätzlich mit einem Prisma noch vertikal gestreut. Die Baken haben keinen Fest Platz!
Der Roboter besitzt einen Kompass. Auf dem Roboter ist ein Empfänger der sich kontinuierlich dreht und die Winkel (immer ab der Nordausrichtung) Mist. Das läuft auch schon sehr gut und zuverlässig.
Zeichnung:
Anhang 32796
Ich möchte keine absolute Position nun berechnen, sondern eine Relative.
Der Plan war, die Baken zu positionieren. Den Roboter auf der Startposition (Gleich der Ladestation) einmal die Winkel zu wessen zu den Baken. Diese Position (Position 1) ist dann x=0 und y=0. Danach fährt der BOT und kann anhand der unterschiedlichen Winkel gemessen zur Nordausrichtung seine x und y Position (Position 2) bestimmen. Wenn man dann die Grenze einmal abfährt die der Bot nicht verlassen darf, habe ich sozusagen einen virtuellen Zaun und der Bot weiß wo er überall war bzw. wo er noch hin muss. Das braucht man nur einmal machen. Es sei denn man verstellt die Baken.
Einige Punkte beim Nachlesen bzw. den ersten versuchen sich mit Triangulation Dreiecks Berechnung habe ich erkannt, komme aber hier nicht weiter. Eins kann ich mit Sicherheit sagen, da ich das simuliert habe. Die Winkel zu Bake 1 und der Winkel zu Bake 2 sind (immer gemessen anhand der Nordausrichtung , siehe Zeichnung) immer unterschiedlich, so das der Winkel W1 und W2 mehr oder weniger die Position angibt und ich somit Beide Baken in die Berechnung immer einbinden muss. Auch das nur mit Winkel, ich nur eine Form eines Dreieck, aber nie eine Größe bekommen kann, da ich hierzu mindestens eine längen Angabe brauche. Eine Radsensor fällt aus, der Schlupf der Räder ist zu groß um genaue Werte zu bekommen. Alternativ könnte man anstatt der "realen" Längenangabe eine Fiktive Größe anzugeben. Es geht hier nicht um genaue Meter angaben, sondern nur darum die Position (relativ) wiederzufinden.
Des Weiteren muss man auch beachten, dass wenn der Winkel über die 180 Grad hinaus geht es sich hier um negative "Koordinaten" handelt, was sich aber via Software geht.
Wenn jemand Ansätze hat, vielen Dank, ich denke das ich damals bei Triangulation und Dreiecken immer Kreide holen war...
Lesezeichen