Archiv verlassen und diese Seite im Standarddesign anzeigen : orientierung im raum...
Bluesmash
30.07.2005, 04:17
hallo zusammen
ist es möglich mit je einem drehgeber an den motorachsen (5mm genau) und einem kompassmodul die ungefähre position in einem raum festzustellen? wie genau sind solche kompassmodule? die werden ja durch andere magnetfelder gestört (motoren und so...) ich hab mal bei jemandem gesehen dass er zwei blechplatten unten und oben montiert hatt... bringt das etwas zur abschirmung?
das ganze soll anhand des koordinatensystem(x,y) geschehen, der kompass ergiebt den winkel und die drehgeber die distanz die der bot gefahren ist. und mit ein bisschen trigo werden dann die jeweiligen x und y koordinaten ausgerechnet und zu den letzten addiert/suptrahiert.
dann muss ich 4 fälle unterscheiden: x+y+/x+y-/x-y+/x-y- jenachdem in welche richtung er fährt oder?
der bot fährt nur geradeaus oder dreht sich auf der stelle, kurvenfahrten muss ich also nicht berücksichtigen...
ich bin für jegliche hilfe dankbar! mfg bluesmash
pebisoft
30.07.2005, 09:34
hallo, habe dieses modul auf meinem küchenbrettroboter.
er geht ist auf ca 0.5 grad genauigkeit.
360grad wird in 3600 teilen ausgegeben.
ich programmier ihn in winavr-c.
da du robbby während der fahrt kontollieren willst, liegt es an dir, bei welchem abkommen er wieder auf die gradzahl kommen soll. der robby ist dann natürlich sehr viel am hin und her pendeln. ich benutze noch ir-baken , die mit dem tsop17... vom robby aus erkannt werden, sind in einer filmdose mit einem 1mm senkrechten schlitz.
weiterhin mache ich jetzt den versuch mit weissen ir-dioden, die ich im raum aufstelle und mit dem video-funk und cmoscam auf dem robby schicke ich das bild zum pc. dort wird der helle lichtpunkt mit einem selbstgeschriebenen visualbasic5.0-programm ausgewertet (video-capture). wie du siehst, der compass cmps03 geht nicht alleine.
meine kombinationen und das proggen macht grossen spass.
mfg pebisoft
ist es möglich mit je einem drehgeber an den motorachsen (5mm genau) und einem kompassmodul die ungefähre position in einem raum festzustellen?
.......
das ganze soll anhand des koordinatensystem(x,y) geschehen, der kompass ergiebt den winkel und die drehgeber die distanz die der bot gefahren ist.
Ich glaube nicht, dass du da mit Kompass bessere Ergebnisse erzielst als ohne.
Ein Kompass zeigt dir nur die Himmelsrichtung an, gibt dir aber keinerlei Information wo du dich befindest.
D.h. wenn dein Roboter irgendwo im Raum steht, kann er mit dem Kompass feststellen wo Norden ist, aber nicht wo der Nullpunkt deine X,Y Koordinatensystems ist.
Der Kompass könnte dir nur zur Kurskorrektur dienen, wenn du dem Roboter z.B. sagts: "bewege dich von Punkt 0,0 in westliche Richtung.
Die Kurskorrekur mit Hilfe des Kompass brauchst du dann aber nur, um Fehler der Odometrie beim Einhalten der Richtung auszugleichen.
Wenn die Odometrie nicht genau genug ist die Richtng einzuhalten, wird sie aber auch nicht genau genug sein die incl. Kurskorekturen zurückgelegte Strecke zu messen.
So wie ich das sehe steht und fällt dabei also alles mit der Genauigkeit der Odometrie und der Kompass nutzt gar nichts.
Der Kompass würde nur etwas nutzen, wenn du irgendwie durch zusätzliche Massnahmen die genaue Richtung und Entfernung zum Ursprung deines Koordinatensystems feststellen kannst.
Bluesmash
30.07.2005, 16:07
ich möchte es so machen dass ich den bot z.b. in der mitte des raumes abstellen und einschalten, dann nimmt er diesen punkt als 0,0 koordinate und wenn er eine weile gefahren ist weiss er ja dann an welcher x,y koordinate er steht und ich kann ihn zum 0,0 punkt zurückkehren lassen oder an irgend eine andere koordinate somit weiss ich ja auch immer wo im raum sich der bot befindet... und anhand des kompass wird die richtung festgestellt und mit der odometrie die zurückgelgete strecke... und dadurch die aktuellen koordinate bestimmt.
Bluesmash
01.08.2005, 21:37
hatt mir sonst noch jemand tipps zu meinem vorhaben? mich würde intressieren wie gross der fehler wird mit kompass und odometrie (meine odometrie ist auf 5mm genau...
gruss bluesmash
Moin,
ich möchte es so machen dass ich den bot z.b. in der mitte des raumes abstellen und einschalten, dann nimmt er diesen punkt als 0,0 koordinate und wenn er eine weile gefahren ist weiss er ja dann an welcher x,y koordinate er steht und ich kann ihn zum 0,0 punkt zurückkehren lassen oder an irgend eine andere koordinate somit weiss ich ja auch immer wo im raum sich der bot befindet... und anhand des kompass wird die richtung festgestellt und mit der odometrie die zurückgelgete strecke... und dadurch die aktuellen koordinate bestimmt.
Das ist alles schön und gut, allerdings ist es so, das Odometrie immer Fehler haben wird ( und seien es nur kleineste ). Dadurch das alle diese Fehler aufintegriert werden wird dein absoluter Fehler immer größer werden. Egal wie genau du deine Odometrie machst, dann dauert es nur eben etwas länger.
Es gibt von diversen Robotikprojekten an den Universitäten Untersuchungen dazu, in denen der Roboter einfach mal eine Weile an der Wand eines Raum entlang fahren gelassen wurde. Bei dem aufgezeichneten Weg sah man dann sehr schön wie die Abweichungen immer größer wurden und der Roboter irgendwann "dachte" er wäre wo ganz anderes.
Daher braucht man zusätzlich andere Verfahren um den Roboter wieder im Koordinatensystem ausrichten zu können.
Ansonsten spricht aber nichts dagegen es so zu machen wie du gemeint hattest, allerdings solltest du bei dem Kompass auch bedenken, dass der nicht absolut genau ist. Durch irgendwelche Metallrohre oder so unter denen der Roboter hindurchfährt kann sich das Magnetfeld leicht ändern und so den Wert verschieben.
MfG Kjion
ich möchte es so machen dass ich den bot z.b. in der mitte des raumes abstellen und einschalten, dann nimmt er diesen punkt als 0,0 koordinate und wenn er eine weile gefahren ist weiss er ja dann an welcher x,y koordinate er steht und ich kann ihn zum 0,0 punkt zurückkehren lassen oder an irgend eine andere koordinate somit weiss ich ja auch immer wo im raum sich der bot befindet... und anhand des kompass wird die richtung festgestellt und mit der odometrie die zurückgelgete strecke
Ich bin mir immer noch nicht sicher, ob du dir die Sache nicht ein bischen zu einfach vorstellst.
Wenn der Roboter von Punkt 0,0 die Strecke x in Richtung a geht, ist der Rückweg einfach. Dann braucht er sich nur mit Hilfe des Kompass um 180grad drehen und die Strecke x zurückgehen.
Der Fehler z.B. duech die Ungenauigkeit der Wegstreckenmessung und des Kompass ist dabei noch kalkulierbar.
Realistischer ist meiner Meinung nach aber, dass der Roboter sich nicht nur geradlinieg bewegt, sondern z.B. unterwegs auch Hindernisse umgehen muss.
Dann setzt sich der zurückgesetzte Weg aus vielen kleinen Teilstrecken zusammen. Jedesmal wenn der Roboter sich dreht oder einen Bogen fährt, kommen weitere Fehler hinzu die sich alle aufaddieren.
Der Kompass kann dir dann nicht mehr "sagen" in welche Richtung dein Punkt 0,0 liegt, diese Richtung musst du aus allen zurückgelegten Teilstrecken errechnen. Jede Teilstrecke enthält aber Fehler und da der Roboter auf dem Rückweg vermutlich auch wieder Hindernisse umgehen muss, kommen dabei wieder weitere Fehler hinzu.
Das Problem bei der Odometrie ist, dass sich sämtliche Fehler aufaddieren und der Gesamtfehler so immer grösser wird.
Ob du die Richtung in die sich der Roboter bewegt mit einem Kompass misst oder z.B. über zwei Radencoder ändert nichts an dem eigentlichen Problem.
Damit will ich dich natürlich nicht von deinem Vorhaben abhalten.
Meist ist beim Roboterbasteln ja der Weg das Zie. Herumzuexperimentieren wie genau die Orientierung über Odometrie funktioniert und was sich dabei alles optimieren lässt ist ganz sicher ein interessantes Projekt.
blizzard
06.08.2005, 20:05
Hallo Bluesmash
Hast du schon mal von sosmar gehört? Hab schon ein paar mal von diesem Projekt hier gelesen. Vielleicht hilft dir das:
www.mindrobots.de/public/algorithms/sosmar.pdf
mfg blizzard
Bluesmash
10.08.2005, 20:27
danke für die tips und anregungen!
@recyle: für den anfang sollte er sich einfach mal in einem leeren raum "zurechtfinden" und koordinaten anfahren können... das mit der hinderniss umfahrung hab ich mir auch schon überlegt und bin zum schluss gekommen das es sehr, sehr kompliziert wird....
@blizzard: danke für den link das wird mich sicher mal für eine recht lange zeit beschäftigen :)
aber momentan muss ich das roboter hobby sowiso ein bisschen in den hintergrund schieben und mal ein wenig für die schule lernen.... vielleicht werde ich dan erst mal die funkverbindung zum pc realisieren und ne funk cam mit servos auf dem bot installieren... vielleicht ist das ein bisschen einfacher ;) und mich ein bisschen in VB einarbeiten...
gruss bluesmash
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.