PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erfahrungen mit Kompassmodul CMPS03



ingo pirker
22.11.2008, 18:01
Hallo!!!

Ich habe vor meinen Roboter mit einer GPS Steuerung auszustatten!!
Was ich noch dazu benötige ist ein Kompass. Nach einiger Suche bin ich dan auf den CMPS03 gestoßen.

Nur habe ich noch einige Fragen zum Einbau - Ich habe gehört, das der ja ziemlich hoch (30cm) über dem Roboter montiert werden soll (wegen Störmagetfelder von Motoren ...), und wie stehts mit der realen Genauigkeit??

Was habt ihr so Erfahrungen damit gemacht??? Postet mir bitte alles!!!
MFG Ingo Pirker

pongi
23.11.2008, 10:39
Hi!

Das Ding ist recht störanfällig, wenn man ganz sicher gehen will, kann man eine Genauigkeit von 10° erreichen. Mit einer ausgeklügelten Schirmung und Messung (nicht messen, wenn die Motoren gerade nicht in einem stationären Zustand sind), kann man noch bessere Resultate erreichen, aber die Reproduzierbarkeit ist recht umweltabhängig.

Fazit: in einer störungsfreien Umgebung (eigene Wohnung, Garten, etc) wird gehen, wenn man keine große Genauigkeit erwartet, aber zB bei einem Turnier in einer Halle würde ich es nicht einsetzen.

MfG

pongi

Jon
23.11.2008, 11:47
Wie schon gesagt wurde, der Sensor ist sehr von der Umgebung anhängig. Allerdings kann man dies mit ein paar Tricks umgehen. So lohnt sich eine ordentliche Abschirmung, die aber nicht all zu einfach herzustellen ist. Da braucht man also entweder einiges an Geld, oder gute Beziehungen. Such mal im Netz dach Mu-Metall.
Damit erreiche in eine Genauigkeit von +-3°, was zwar nicht immer das Gelbe von Ei ist, aber meistens doch reicht. Und wenn man ganz sicher gehen will, kann man mehrere Messungen machen, große Abweichler rausschmeißen und aus den übrigen Messwerten einen Mittelwert bilden. Da kann ich eine Genauigkeit von +-1,5° erreichen. (was leider manchmal trotzdem nicht ausreicht)

Aber mal ne ganz andere Frage:
GPS hat doch nen Kompass dabei. Warum verwendest du den nicht?

Ich hoffe, ich konnte dir wenigstens etwas bei deiner Entscheidung helfen,
jon

Thoralf
23.11.2008, 12:28
GPS hat doch von Haus aus erst mal nix mit Kompass zu tun, soweit ich weiß (zumindest haben wir damals keinen eingebaut in den Empfänger...)

Fertige Geräte haben entweder einen Kompaßmodul mit integriert, zumindest den Sensor, denn der Kompasssensor kann ja auch vom GPS-Mikrocontroller mit gesteuert werden.

Man kann zwar auch aus einem GPS-Differenzsignal ein Kompasssignal ableiten. Wenn an 2 unterschiedlichen Positionen das GPS-Signal gemessen wird, ergibt sich auch eine Richtungsinformation. Im Stand des Roboters bekommt man keine Richtungsinformation. Also wird der Robbi erst einmal in eine beliebige Richtung los fahren. Danach bekommt man die Kursabweichung, mit der man in die richtige Richtung einbiegen kann.
Das ganze sollte aber nicht ganz so einfach sein, wie es theoretisch klingt.
Erstens ist die Messgenauigkeit des GPS nicht so hoch, so daß die Kurs fehler bei kleinen Bewegungen des Robbis ziemlich hoch werden. Man sollte also eine größere Strecke (>> Messfehler GPS) fahren um einigermassen vernünftige Istkurse messen zu können.

Der Robbi hat auch ein dynamisches Lenkverhalten, auf das mit einem PID-regler reagiert werden sollte. Die Parameter müssen dann im Versuch bestimmt, d.h. die eingestellte Lenkdynamik muß ausprobiert werden.

Dann kommen zuguterletzt noch Oberflächenunebenheiten dazu, die den Roboter aus dem Kurs bringen und als zusätzliche Störgröße ausgeregelt werden müssen.

Ich hoffe, diese Tipps helfen dir weiter.

Thoralf
23.11.2008, 12:36
noch ein Nachtrag:
Mit einem Kompassmodul CMPS03, denke ich, läßt sich das System verbessern.
Man erhält von vorn herein eine eindeutige Richtungsinformation (allerdings wie oben schon gesagt mit Fehler), steuert den Robbi auf den Kompaßkurs ein und berechnet den GPS-Kurs (geografischer Kurs) nur aller paar Sekunden oder aller 30...50 metern.

Die Deviation (Kompaßabweichung von geograf. Nord) kannst du hier in D getrost unberücksichtigt lassen, da nur ca. 1°). Willst du im hohem Norden testen, dann könnte man ja die Abweichung tabellieren und in Abh. der Länge und Breite auslesen.

Übrigens vergiß bei der GPS-Auswertung nicht die Längenkorrektur! Wir sind nicht auf dem Äquator!

Ceos
23.11.2008, 13:27
ich habe mein kompassmodul auf dem asuro betrieben, dabei war er auf einer platine mit kalibriertaster und der zugehörigen LED gesteckt, welche wiederum auf das batteriefach aufgeklebt war(also kaum 5cm von den motoren entfernt), die positionsermittlung fand durch impulsbreitenmessung statt und dabei hab ich nicht mal ICP benutzt sondern den pin abgerufen ob er an oder aus ist (auch suboptimal) und bin auf gute 2° gekommen(in einem zimmer !!!!), es gab messfehler die sich auf metallstrukturen im boden zurückführen liessen aber keine ungenauigkeiten ala kompass wackelt mal von 5° links nach 5° rechts

und ich habe keinerlei abschirmung benutzt

also lass dich von der schwarzmalerei nicht entmutigen, mit dem kompass und der odometrie konnte ich die fahrfehler meines asuro erheblich genauer bestimmen und seine wahre position ziemlich genau berechnen, sodass ich selbst nach 10-20 gefahrenen einzelstrecken auf 5cm genau zum ausgangspunkt zurückfinden konnte .... GPS ist da wesentlich ungenauer

um GPS genauer zu bekommen kannste ja versuchen eine relative positionsbestimmung zu machen, du benutzt einfach ein 2tes GPS modul und liesst immer beide gleichzeitig aus und ermittelst die relative position, funktioniert ganz gut (auch selber auspobiert)aber mehr als n halben meter genauigkeit wirste damit auch nicht unbedingt erreichen

ingo pirker
23.11.2008, 19:38
Hi!!
Danke mal für eure Antworten!!!
Ich habe vor den Kompass direkt auf die oberste Plexiglaslage zu schrauben (darüber ist noch die Lexan korosse und darunter kommt die Steuerungselektronik hin) was meint ihr wie ich ihn von stöhren abschirmen kann (anstatt der obersten Plexiglaslage eine einseitig Kupfer beschichtete Print nehmen oder wie). Der Roboter sollte übrigens haupstächlich ausen eingesetzt werden (um mit GPS zu spielen :-) )!!
Aber sehte selbst - ist er nicht ein Meisterstück - war übrigens mal ein Savage von HPI (es fehlen aber noch die Ganzen Sensoren und die Steuerungselektronik)!! Die Elektronik hinten ist übrigens die Strommversorging (unten), der I2C Motor Controller (mitte) und ein Deckel aus einer Einseitig beschichteten Print.

Schaut euch die Bilder bitte an (einfach link anklicken und runterladen)
http://rapidshare.de/files/40977843/Savage_Bilder.rar.html

MFG Ingo Pirker

Ceos
24.11.2008, 07:59
soll dein gefährt nunauch noch wassertauglich werden ?

also vor "stöhren" solltest du mit ner wasserdichten abschirmung schon ausreichend bedient sein :P
SCNR

ich glaube um vor magnetischen felder gesichert zu sein müsstest du etwas anderes als kupfer nehmen!

ich weis ja nicht wie oft du den wert vom kompass pro sekunde brauchst, aber wenns nur ein paar mal pro sekunde sein soll, kannst du ja ne handvoll werte nehmen und nen mittelwert bilden um die störunempfindlichkeit gegen frequente magnetfelder hinzubekommen

gegen permanente effekte wirst du wohl nur mit probieren ankommen

PS achte darauf dass du den kompass vernünftig justierst, das hilft ungemein bei der linearisierung, also indikator LED und den taster irgendwo möglichtst frei zugänglich anbringen, damit du mit deinem körper keinen einfluss auf den kompass bei der justierung nimmst, hab da schon üble fehler bekommen wenn ich meinen finger nciht flach unterhalb der kompassebene gehalten habe während dem justieren

Tido
24.11.2008, 08:57
Hi,

ich verwende das Kompassmodul noch nicht im "Dauerbetrieb", aber bei ersten Tests vor ein paar Monaten habe ich folgendes herausgefunden:

-Die Auswertung mit BASCOM per I²C funktionierte Dank des Beispielprogramms gleich auf Anhieb. Das Modul ist schon kalibriert geliefert worden.
-Anfangs zeigte das auf der Tischplatte gedrehte Modul nur "Müll" an, bis ich ein von unten in der Tischplatte versenkte Gewinde gefunden hatte!
Dies "lenkte" das Modul ab (Entfernung zum Gewinde <20cm). Auf einem reinen Holztisch gab es keine Probleme, die gelieferten Werte waren jederzeit reproduzierbar. Also keine magnetischen Teile (Schrauben) in der Nähe!
-Wird das Modul aus der Waagerechten gebracht (Gefälle/Steigung) so ändert sich auch der Wert. Dies lässt sich (im Stillstand) aber durch einen Beschleunigungssensor herausrechnen.

Diese Ergebnisse habe ich quasi "trocken" gesammelt, d.h. es waren bei mir keinerlei Motoren im Spiel. Das Modul hatte ich huckepack auf meine Auswerteplatine mit einem ATmega8 gelötet. Das Modul hat bei mir direkt auf dem Modul zws. +Ub und GND noch einen 100uF Elko bekommen.