PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auto-mapping der Umgebung für meinen Roboter?



kyodai
31.12.2009, 00:27
Hallo zusammen,

ich bin momentan auf der Suche nach Lösungen. Grundidee ist daß ich soweit mit dem Roboter in technischer Hinsicht einigermaßen zufrieden bin und gerne etwas "Intelligenz" hätte. Nein er soll mit mir nicht über Politik diskutieren, aber die Grundidee ist daß er selber eine Karte zeichnet.

In meiner kleinen Wohnung kann man ja noch feste Routen definieren, klar - aber was ist wenn Robbie mal jemanden besuchen möchte?.

Habe jetzt etwas rumprobiert, also klar startkoordinaten sind 0,0 und es wird einfach ein virtueller "Norden" definiert, dann zählt man der einfachkeit halber milisekunden fahrt als eine lineare bewegung in die Richtung und schon mappt man sich etwas zusammen.

Leider ist in der Praxis aber eine Drehung um 90 grad dann doch manchmal 91 grad oder so. Was soll ich sagen - je mehr sich Robbie dreht desto mehr wurst wird die karte.


Ja man könnte ja schummeln und da Robbie einen Ultraschall Sensor hat fährt er sowieso nirgendwo gegen, aber ich will gar nicht die Schätzung wie lange er von A nach B braucht mir Wahrscheinlichkeitsrechnung kombinieren sonder es muß "mehr" her.


Nach etwas herumgesuche im Internet bin ich auf das tolle "Robotics Development Studio" von Microsoft gestossen. Leider steht da auf Wikipedia eine Liste von irgendwelchen Robotern die unterstützt werden, aber meiner ist nicht darunter.


Also mein Robbie ist eigentlich auf einem Heathkit hero-1 aufgebaut, aber natürlich mit modernem Motherboard, festplatte und Wlan versorgt. Ich programmier mir sogar ein webinterface falls das notwendig ist, aber auch davon stand ja leider nix von Microsoft's Seite erwähnt.


Ich war beim lesen von der Beschreibung des Robotics Development Studio schon angetan, gerade das mapping hat es mir sehr angetan.


bevor ich jetzt noch einige Stunden verblase mit herumsuchen, probieren usw dachte ich vielleicht hat ja jemand hier Erfahrungen mit der Software. Kann man die mit einem "Custom" interface irgendwie koppeln oder muß es genau der Omnibot 2000 aus Wikipedias Liste sein? Nein Scherz Omnibot ist nicht dabei, aber Lego ist nicht so mein Fall und der Kondo ist ja ganz niedlich, mir aber etwas zu klein.


Hat jemand schon mal mit ähnlichen Problemen gekämpft? Ich denke das Microsoft Framework könnte einem schon einiges an Arbeit abnehmen. Notfalls kommt eben noch ein kleiner Sony U50 oder so rein als Schwester PC, sozusagen nur für das Microsoft Krams. oder gibts ähnliche Frameworks? Im Moment beschäftigt mich zwar nur die Wegfindung aber wäre an anderen interessanten Features interessiert. Ich denke über kurz oder lang kommt auch noch ein GPS Modul hinzu obwohl momentan dafür kein ernsthafter bedarf besteht. Hätt ich nur wie Johnny 5 direkt auf Ketten gesetzt... =;


Für jeden gedanken, Anregung oder Vorschlag im Vorraus vielen Dank!

Günter49
31.12.2009, 08:24
Aus ganz ähnlichen Überlegungen hatte ich mich auch für das MSRDS interessiert.
Ich habe davon dann aber die Finger gelassen, weil
- mir das Ganze zu kompliziert war (keine Erfahrung mit .net-Programmiersprachen, XML,…)
- keine Services für die von mir verwendeten Microcontroller (acroname Brainstems) vorhanden sind,
- keine Unterstützung durch Foren u.ä. im deutschsprachigen Raum,

Ein Mikrocontroller, für den Services angeboten werden, ist der Serializer von RoboticsConnection http://www.roboticsconnection.com/p-16-serializer-robot-controller.aspx in Deutschland erhältlich bei Krause Robotics www.krause-robotik.de .
Services für Sensoren und andere Bauteile von Devantech
http://www.codeplex.com/DevantechMSRS


oder gibts ähnliche Frameworks?
alternative Frameworks (laufen aber nicht auf Windows-Systemen)
http://playerstage.sourceforge.net/
http://www.willowgarage.com/pages/software/overview

Gruß, Günter

Netzman
31.12.2009, 08:35
Hab zwar keine Erfahrung mit dem MRDS, aber das Problem mit der ungenauen Richtungserfassung kann man relativ leicht mit einem Kompass und/oder Gyro in den Griff bekommen. GPS hilft da nur sekundär, da nur eine Position bestimmt wird und es auch zu ungenau für solche Positionieraufgaben ist.

mfg

Thoralf
31.12.2009, 12:14
es gibt wie immer viele Wege...
Zuerst muß man sich mal entscheiden, ob man die "Intelligenz" onboard oder über Funk mit einem stationären PC koppelt. Onboard-Lösungen basieren entweder auch embedded controllern bzw. PC. Ich neige eigentlich zu Netbooks mit USB-RS232-Schnittstelle, weil das in meinen Augen (!!!) die flexibelste und vom Preis-Leistungsverhältnis beste Lösung darstellt. Robotics Studio kann man dann auch bequem onboard unterbringen.
Externe Lösungen kann man leicht mit serieller Funkschnittstelle + stinknormalem PC aufbauen und bieten die meiste Leistung. Bedenken muß man allerdings die beschränkte Funkbandbreite.
Simultanious locating and mapping (SLAM) beschäftigt bereits Generationen von Wissenschaftlern. Wichtig zur Lösung sind möglichst genaue Sensoren, die auch Indoor funktionieren. Damit scheidet GPS schon mal aus (geht sehr selten in Räumen und ist VIEL zu ungenau selbst bei DGPS). Gyrosensoren haben Langzeitdriften, die ein lokalisieren über Stunden verhindern. Üblicherweise arbeitet man der Einfachheit halber mit Odometrie und stüzt sich absolut auf Baken oder landmarks. Wenn man immer dann wenn die Odometrie zu ungenau wird, einen Scan macht, halten sich Fehler in Grenzen.
Ich geh bei IndoorSLAM von einer Auflösung von 10x10cm aus, teile also den Raum in "Fliesen" ein. Zum holen von Gegenständen reicht das.
Odometrie und abundzu ein Scan bringen ausreichend Genauigkeit. Da mit Landmarks zuviel Bildverabeitungspower benötigen hab ich mich für IR-Baken entschieden.
Kompasse brinegn Indoor kaum was, da zu viele Fehler durch Stahl im Gebäude auftreten.
Will man Bildverarbeitung kann man ja kleine farbige Flächen an den Wänden anbringen, die gesucht und lokalisiert werden. Hat man onboard zuwenig Rechenkapazität, sendet man das Bild eben über Funk zum PC (Achtung WLAN stört!!!).
Meist mapped man über US oder LIDAR. Hat man die Form das Raumes in einer Karte, kann man die Position und Orientierung des Robbis im Raum bestimmen.
Das wäre die prinzipielle Herangehensweise. Googel mal nach SLAM. Manche TUs haben ganz nützliche PDFs dazu.

Netzman
31.12.2009, 12:42
Ein Kompass kann auch in Gebäuden den relativen Drehwinkel (zumindest bei einer Drehung am Punkt) genau messen, der Fehler durch Magnetfeldverzerrungen ist ortstabil.

mfg

Thoralf
31.12.2009, 15:13
das ist nicht falsch, Netzman. Aber die verzerrten Feldlinien, die auch zu einem verzerrtem Winkelfeld führen wieder ins kartesische System umzurechnen, ist nicht so einfach.
Man kann aber auch mit so einer verzerrten Karte leben, wen man keinen Bezug zum kartesischen System braucht.
Soll der Robbi nur rumrollern, dann geht das so. Soll der Robbi Koordinaten anfahren um z.B. ein Bier zu holen, muß man entweder umrechnen oder teach-in-Fahrten machen, soviele, wie man braucht um alle gewünschten Positionen anzufahren.
Ok, am Anfang kann man das so machen.

kyodai
01.01.2010, 15:13
Zuerst mal vielen lieben Dank an alle für die netten Antworten.

SLAM scheint ja so der Begriff für das ganze Thema zu sein, also es scheinen sich ja doch noch mehr als nur ich damit zu beschäftigen, das ist ja schopn mal positiv. Wie ich haben auch andere schon an eine "Fuzzy logic" gedacht die das ganze entsprechend interpoliert - Kalman Filter und Particle filter klingt ja alles sehr vielversprechend - teilweise genau wie die Beschreibung des Microsoft Robotics studio.

Was ich aber gerne hätte wäre jemand der sowas schon mal eingesetzt hat und sagen kann "Robotics studio ist super" oder "ich hab mit MRPT gute Erfahrungen gemacht". Gibts denn hier keinen der selber schon mal in der Thematik involviert war? Würde mich super freuen wenn andere mal beschreiben würden wie sie in der Praxis das Problem mit welcher Software gelöst haben.


Das mit den koordinaten habe ich mir schon so vorgestellt - um irgendein mapping zu machen muß die Software ja intern auch irgendwelche koordinaten verwenden, ob die jetzt mit GPS koordinaten oder einem virtuellen, imaginären koordinatensystem arbeiten. Mir geht es hauptsächlich darum ein koordinatensystem zu haben daß ich selbst nutzen kann, z.b. in der Küche vor dem Kühlschrank Koordinaten speichern als "Bierdepot" und Robbie weiß nach rumgefahre im Wohnzimmer und Bad immer noch ungefähr wie er da hinkommt (i.e. er kann zumindest sagen was seine aktuellen Koordinaten sind und wie weit es dann zum Bierdepot ist).


Wie habt ihr das gelöst? Oder nutzt ihr euere Robbies eher wie ein RC-car? (So mache ich das bisher aber ich will mehr).