PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Navigation für Roboter?



HannoHupmann
02.02.2007, 09:45
Gleich nochmal ein Thread von mir zum Thema Navigation.

"Gibt es im Forum User (also keine professionelen Teams oder Forschungsprojekte) die es bereits erfolgreich geschafft haben auf ihrem Roboter einen funktionierenden Navigationsalgorithmus* zu implementieren?" Selbige User sollen sich doch bitte mal melden.

*: Soll heissen der Roboter erkennt/merkt sich einen Punkt A und fährt dann eigenständig zu einem Punkt B (welcher nicht auf einer Geraden Linie liegt) und kann von Punkt B selbstständig mit einer gewissen Tolleranz +/- 10-20cm den Punkt A wieder finden.

Gesucht werden auch Roboter die eine für sich erstellen (nicht vorgegeben bekommen).

Das Thema ist deswegen für mich so interessant, weil ich den Eindruck habe, es ist immernoch sehr kompliziert und es gibt wenige die es hinbekommen haben. Oder ist das nicht mehr so schwer?

Achja ich suche hier KEINE Lösungsvorschläge!!! Wer eine funktionierende fertige Lösung hat möge sie Posten. Aber KEINE geplanten oder überlegten.

Eure Meinung bitte :-)

mfg HannoHupmann

squelver
02.02.2007, 10:02
Ist in Arbeit :mrgreen:

Bluesmash
02.02.2007, 15:06
bei mir auch :) aber ist momentan auf eis gelegt da ich andere projekte momentan vorziehe :)

gruss bluesmash

Manf
02.02.2007, 15:24
Nach der Beschreibung gehören wohl auch diese Lösungen hier dazu:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10291

HannoHupmann
02.02.2007, 15:55
@Manf fast, das einzige Problem ist, dass hier der Weg nicht eigenständig ermittelt wird sondern vorgegeben ist. Im sinne von 100 Schritte vor drehen 100Schritte drehen 100 Schritte drehen.

Ich meine aber: Punkt A ist bekannt Punkt B wird angefahren und Punkt A muss dann wiedergefunden werden. Dabei wird der Punkt B entweder Manuell als erreicht gewertet oder durch ein bestimmtes Sensorsignal.

Eine Aufgabe dafür wäre z.B. Start --> suche hellsten Punkt im Raum --> fahre zurck zu Start.

Falls der Roboter nun auch noch den schnellsten Weg ermitteln kann wäre er ganz grosse Klasse ^^

hacker
02.02.2007, 16:18
Ein Kumpel und ich haben solch ein Projekt geplant und sind so ziemlich fertig damit (ca. 85%). Startpunkt des Einschalten des Roboters markiert den Ursprung eines nach Norden ausgerichteten Koordinatensystems. Mit einer Kombination von US und IR, welche drehbar montiert sind, kann er die Hindernisse in seiner Umgebung messen. In jedem Punkt ensteht eine neues Koordinatensystem mit den Hindernisspunkten, welche dann in das Hauptkoordinatensystem transformiert werden. Die ganzen Berechnungen basieren auf Vektoren. Mit seinen Radencoder (und auch noch einem Maussensor in Planung) kann er millimetergenau fahren. Wir haben uns dafür entschieden, dass wir die Rechnenleistung auslagern. Somit werden alle Daten über Funk an einem PC geschickt, der daraus die Realität in einer gezeichneten Map simuliert. Dort gibt wird der Roboter auch animiert. Man kann ihn anklicken und zu einem bestimmten Punkt fahren lassen. Der Weg dorthin wird mittels dem Graph - Search Algo a* berechnet. Die Animation wird ständig mit der Realität synchronisiert. Die aufgrund von neuen Sensorwerten entstehenden Hindernisse werden in die Karte eingetragen und gezeichnet. Hierbei werden die ganzen Punkte gefiltert, sodass man am Ende keine vielen Einzelpunkte mit Fehlmessungen hat, sondern ein in sich geschlossenes Hinderniss mit Eckpunkten.

So weit ist alles realisiert. Mein großes Ziel ist noch, den berechneten Pfad, der nachher gefahren wird, zu interpolieren. Sprich die Ecken abrunden, sodass er keine Drehungen auf der Stelle macht. Das wird aber noch eine große Herrausforderung werden. Wie man Ecken mathematisch abrundet, ist nicht schwer. Dies jedoch auf die Radencoder um zu setzen um so mehr.

/edit

Ich sehe gerade:


"Gibt es im Forum User die es bereits erfolgreich geschafft haben auf ihrem Roboter einen funktionierenden Navigationsalgorithmus* zu implementieren?" Selbige User sollen sich doch bitte mal melden.

Unsers ist ja nicht wirklich komplett auf dem Roboter...ca. 25% der KI auf dem Roboter, der Rest auf einem Rechner...

squelver
02.02.2007, 17:59
Mal ne Frage:
Wäre es nicht einfacher und von Vorteil, wenn der Roboter sich immer mittig zwischen zwei Wänden (Beispiel) und nur maximal von einer Wand entlang bewegt?

Also er fährt nen langen Gang entlang und via Sensoren wird der Abstand vom Bot zur linken und vom Bot zur rechten Seite gemessen, demnach richtet er sich entsprechend in die Richtung aus, damit (unter Berücksichtigung seiner eigenen Breite) der Bot genau mittig, also mit gleichem Abstand links und rechts den Gang entlang fährt \:D/

HannoHupmann
02.02.2007, 18:41
@copious was soll es bringen?

@hacker schon gut eure Idee ist ja so gut wie fertig

Mit seinen Radencoder (und auch noch einem Maussensor in Planung) kann er millimetergenau fahren.

Äh ihr berücksichtigt schon, dass ein Rad durchdrehen oder hängenbleiben kann?
Soweit ich es verstanden hab, baut der Roboter ja seine Karte selbständig auf. Frage habt ihr mal getestet eine vorgegebene Karte zu implementiren und den Roboter nach dieser fahren lassen?

Was auch noch ganz spannen ist, eine feste Testumgebung, immer der gleiche Startpunkt. Mehrmaliges Karte erstellen und diese dann übereinander legen um die Abweichungen zwischen den einzelnen Karten zu ermitteln.
Klingt übrigens nach viel Arbeit, wie lange habt ihr zu zweit gebraucht?

Noch andere, die soweit oder weiter sind mit Mapping und Navigation?

squelver
02.02.2007, 21:23
Was es bringen soll?

Es schliesst Fehldaten durch Durchdrehen der Räder aus ;)

Jon
02.02.2007, 21:28
Ich denke mal, dass das Hauptproblem das Durchdrehen ist.
Ich beobachte bei meinem Bot, dass er bei Feuchtigkeit etwas durchdreht. Also nur spontan und kurz, das ist aber zum Erstellen von Karten etwas kompliziert und störend. Ich habe noch nichts gefunden, wie ich das Durchdrehen unterbinden kann. Wenn jemand eine Möglichkeit gefunden hat bitte melden. Ich würde mich sehr freuen.

Sonst; ich bin dabei, habe nur Probleme mit unserem großen Hof. Sind etwas viele Daten.
Auf dem geraden Bürgersteig ist es kein Problem ;)
Kurven gehen auch noch, war aber auch etwas schwierig. Mittlerweile geht es einigermaßen.
Einen Code kann ich leider nicht reinstellen. JuFo.

jon

lpw
02.02.2007, 22:50
Was es bringen soll?

Es schliesst Fehldaten durch Durchdrehen der Räder aus ;)

Die kann man auch durch Maussensoren unterbinden....

squelver
02.02.2007, 23:17
Was es bringen soll?

Es schliesst Fehldaten durch Durchdrehen der Räder aus ;)

Die kann man auch durch Maussensoren unterbinden....

Aber nur olange, wie der Maussensor funzt ;)

lpw
03.02.2007, 00:49
Was es bringen soll?

Es schliesst Fehldaten durch Durchdrehen der Räder aus ;)

Die kann man auch durch Maussensoren unterbinden....

Aber nur olange, wie der Maussensor funzt ;)

Und wenn nen reifen Platz kannste alles vergessen.... dann stimmt nähmlich vermutlich kein Messwehrt mehr, da das Programm ja für eine Senkrechte Aussrichtung der Sensoren programmiert ist.....

Also, wenn die hardware nicht mehr geht ist klar, dass das ganze nicht mehr perfekt läuf.....

HannoHupmann
03.02.2007, 09:41
Back to topic bitte.

Es geht hier nicht um die Lösung wie man theoretisch eine saubere Karte erstellen kann oder wie man gewisse Sensoren entsprechend fehlerfrei bekommt.

Hier werden noch immer funktionierende Lösungen gesucht.
@Jon, funktioniert, was du planst, den schon? Den Code will ich gar nicht es geht mir nur schlicht darum, ob du gute Ergebnisse bekommst und ob es mit A nach B nach A fahren über eine Karte funktioniert.


Ansonsten kann man als Fazit schon mal sagen, viele beschäftigen sich damit aber, die wo schon etwas weiter sind stellen fest, die Probleme sind doch noch ziemlich gross und die wo erst am Anfang stehen, denke es ist eigentlich ganz einfach.

Wirklich gelungen ist es bisher eigentlich noch keinem (gut Hackers Team vielleicht schon fast).

Jon
03.02.2007, 09:45
Auf dem Bürgersteig geht es recht gut. Von A nach B und wieder zurück nach A geht es mit einer Abweichung von ca 15cm. Bin ich auf eine gesamt strecke von 150metrn zufrieden. Sind ca 15% Abweichung und das ist für mich erstmal in Ordnung.
Im Hof sind es nur zu viele Infos. Ist einfach eine zu große Fläche und der Speicher reicht dann nicht aus. Muss mal einen externen anbauen.

jon

HannoHupmann
03.02.2007, 10:01
auf 150m eine Abweichung von 15cm ist mehr als gut. Damit kann man schon recht gut arbeiten. Sehr viel genauere kenn ich nur auf keinen Flächen.

Manf
03.02.2007, 10:16
Es gibt Fahrten in Labyrinthen (eigentlich Irrgarten) in denen seit langer Zeit erfolgreich Navigation durchgeführt wird. Es handelt sich dabei um eine spezielle Umgebung mit reduzierter Komplexität für die Karten erstellt werden nach denen navigiert wird.
Ein weiteres Beispiel sind die Fussballroboter die selbständig auf dem Spielfeld navigieren, (auch Sumo Roboter, Teile Sammler...).
Transportroboter in Industrieanlagen, Hier werden nicht nur Fahrspuren sondern auch Markierungen und Baken eingesetzt.
Die Wüsten Rallye mit GPS Navigation...
Robot rescue: http://www.dis.uniroma1.it/~iocchi/
Wie ist das gemeint, dass es keinen noch wirklich gelungen wäre?

scales
03.02.2007, 10:17
was genau suchst du denn?
einen Navigationsalgorithmus der in einer unbekannten Umgebung ohne äußere Hilfsmittel funktioniert,
oder einen mit Hilfe von z.B. IR-Baken, oder einer vorgefertigten Karte?

Bei meinem Bot will ich das grade in vorgefertigter Umgebung machen,
aber die Idee wie genau ich das machen will hatte ich auch noch nicht.
Aufjedenfall will ich das nicht über Radencoder machen, sondern irgendwie absolut über IR oder so.

HannoHupmann
03.02.2007, 10:24
@Manf, halt halt lies oben, ich rede von USERN hier im RN nicht von Forschungseinrichtungen oder anderen Professionellen Teams, sondern einzig von Hobbyschraubern wie wir hier sind.
Dass es möglich ist bezweifle ich ja gar nicht.

@Scales, ich suche nur User die es geschaft haben, oder die nahe dran sind. Keine Lösungen wie es gehen müsste, sondern eben User die schon eine Lösung haben, wie die auch immer aussieht. Genau diese Leute bitte ich ihre Lösung kurz vorzustellen.

Manf
03.02.2007, 10:37
Ach so, einen Teil davon habe ich schon gemacht, aber ich muß zugeben, dass ich kein Hobbyschrauber bin, das hatte ich dann wohl oben nicht so genau gelesen.
Manfred

O:)

loetman
03.02.2007, 12:15
Hallo,

OT: aber könnte man die Wegemeßensoren nicht an das Stützrad anbringen? Einmal zur Wegmessung und zum andere die Richtung. Der Vorteil währe das die Antriebsräder beim durchdrehen nicht die Messdaten verfälschen könnten?

Ein Gruß

HannoHupmann
03.02.2007, 15:18
Das Stützrad ist vor durchdrehen hängenbleiben etc auch nicht sicher.

hacker
03.02.2007, 15:48
@HannoHupmann

Das mit dem Rad durchdrehen ist so ne Sache..bei uns eigentlich noch nie vorgekommen. Dennoch machen wir ja dann ein Maussensor noch dran. Dieser ist dann fast unbeeinflussbar.

Man kann auch fertige Karten in die Software laden. Klar. Dann muss man aber am Anfang die Startkoordinate des Roboters festlegen.

Worauf ich besonders stolz bin, ist das, wenn der Roboter schon ein Weg gerade abfährt mit allen Drehungen usw. direkt dem Roboter ein neuen Zielpunkt mitteilen kann. Es wird sofort der neue Pfad dorthin berechnet und der Kurs sofort geändert.
Eine lange Zeit konnte der Roboter während dem Fahren keine neuen Fahrtbefehle umsetzen. Nun hab ich aber die Fahrroutinen auf Timer umgesetzt. Somit wird immer nur der Startimpulse gegeben und der Vorgang läuft parallel ab.

Nach meiner Meinung ist die Navigation und die Genauigkeit ziemlich gut. Sogar so gut, dass ich beim Fahren um Hindernisse nicht nochmal die Sensorn einschalten muss, sondern der Roboter dem Pfad, der aus der Karte berechnet wurde, voll vertrauen kann.

Mit diesem Projekt wollten wir bei JuFo mitmachen..aber dieses Jahr hat uns die Zeit leider nicht ganz gelangt. Wir wollten schon zu 100% dorthin gehn. Und auf die Dokumentation hatte auch keiner Lust.

Gruss Hacker

Jon
03.02.2007, 16:48
Das mit dem Stützrad habe ich auch schon überlegt, um die Daten mit den Teilen im Bot abzugleichen. Aber das Rad so zu positionieren, dass es nicht stört, war nicht machbar :(

jon

HannoHupmann
03.02.2007, 20:20
@Hacker wenn es bei mir soweit ist sich an die Elektronik und die Navigation zu machen, werd ich mir euer System nochmal genauer anschauen. Bis dahin müsstet ihr aber die Dokumentation eh schon fertig haben. Ich rechne nicht vor Sommer 07 mit der Elektronik