PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Navigation eines Outdoorroboters



robonooby
12.11.2010, 17:58
hallo erstmal
ich will mir dem nächst nen Schneeschieb-roboter bauen (Sowas ähnliches hier (http://www.youtube.com/watch?v=tPg1ZMiC9pA&feature=player_embeddedurl)).
also nen Kettenfahrzeug, dass vorne nen Schneeschild dran montiert hat und dann mir im Winter mein Hof lehr räumt.^^
Mechanisch ist das ja alles kein Problem.
aber steuerungstechnisch.
Er soll ja selbstständig den hof lehrräumen und dann wieder zurück zur Basisistation zum Aufladen fahren.

So nun ist aber mein größtes Problem.
Ich weis nicht wie ich ihn beibringen kann zu navigieren.
also er muss ja wissen wo er schon geschoben hat. wo die Grenzen sind
und er muss Hindernissen (Parkendes Auto) ausweichen können.

Das ausweichen ist ja eher net soo das problem, da hab ich auch hier schon einiges gefunden aber woher weis er dass er was er schon geschoben hat?

GPS alleine ist ja zu ungenau und Magnetstreifen oder so würd ich nur ungern verlegen wollen.

könnt ihr mir da vieleicht nen paar tipps geben

und gibs sowas wie nen schneesensor oder so? also irgendwie nen sensor woran er sieht dass es geschneit hat.
regensensoren gibs ja genug aber nen schneesensor hab ich noch net gefunden.

rockin_santa
12.11.2010, 20:55
Schneesensor könnte man recht einfach mit einem Helligkeitssensor unter einer Glasplatte bauen. Vielleicht hast Du eine Straßenlaterne am Grundstück, dann kann auch nachts Schneefall dedektiert werden.

robonooby
13.11.2010, 06:04
hmm okey das is ne gute idee. wenn schnee drauf liegt is es dunkeler. man muss nur das realisieren, dass der neuschnee dann immer wieder runtergewicht wird.
und wenn man das noch mit nem Thermometer koppelt dann hat man auch fehler minimiert.

Aber wie siehts mit der Navigation aus? keiner ne idee?

021aet04
13.11.2010, 09:56
Du könntest mit Baken arbeiten. Der Roboter muss mindestens 3 Baken erkennen (wie z.B. bei GPS auch). So kannst du die genaue Position bestimmen. Je mehr Baken erkannt werden, desto genauer wird es. Baken kann man optisch oder mit Funk/Tönen machen.

Im Forum gibt es einen Thread, da sind auch Baken verwendet worden. Dan Threadnamen weiß ich aber nicht auswendig.

MfG Hannes

steveLB
13.11.2010, 14:57
Such Rasenmäherroboter hier im Forum, die beschäftigen sich auch damit.

robonooby
13.11.2010, 20:09
hmm okey
dann such ich mal danach :-)

robonooby
21.11.2010, 14:29
So hab jetzt mal einiges Durchgelesen. Aber bin da noch net so zufrieden.
Aber hab mir auch schon etwas überlegt. Nur mit der Umsetzung weis ich net wie das funktionieren soll.
Also wegen der Navigation:
da hab ich mir gedacht dass ich das nach dem Prinzip des leica Absolute Trackers mache siehe http://www.youtube.com/watch?v=cxbt262mejI


So nun meine Frage. Wenn ich so nen Teil selber bauen will. Wie realisiere ich das steuerungstechnisch, dass der Laser immer auf diesen Punkt zielt.

also praktisch kann man übern Schritt oder Servomotor ja den Laser in jede richtung drehen lassen
aber woher weis er wo das Target ist, bzw dass er aufs das Target ziehlt? Wie bringe ich es dem bei? Und welche Lasermodule gibs?

weil wenn ich dies realisieren kann, kann ich dann mithilfe des Winkels und der Entfernung und Vektorrechnung die position meines Robos im Hof bestimmen.

Und meine Probleme wären theoretisch gelöst^^

um ein genaueres ergebnis zu erziehlen könnte man auch zwei Laser verwenden.

hab unten auch mal nen Bild beigefügt, auf dem zu erkennen ist wie mein Hof in etwa aussieht und wie ich das mit dem Laser gedacht hab.
Der Hof ist ca 10 Meter Lang.
Orangene Etwas = Robo^^
Rote Punkte= Lasersystem
https://www.roboternetz.de/phpBB2/files/grundst_cksplan-robo.jpg
[/img]

damfino
21.11.2010, 21:31
Hi,
Ich schätze optische Systeme als nicht so praktisch ein, der Aufwand für die Nachführung des Lasers ist schon enorm. Nachdem das bei dir im Winter funktionieren soll sehe ich bei dichten Schneefall auch Probleme mit der Sichtbarkeit des Lasers kommen.
Such mal nach der "Studienarbeit von Stephan Höhrmann" zur Positionsbestimmung durch Ultraschall, das steht bei mir auf der Liste der sinnvollen Erweiterungen ganz oben.

LG!

robonooby
22.11.2010, 06:39
hmm ja stimmt, da haste auch wieder recht.

verdammt. wieso is das so schwirig ^^

Asuro91
22.11.2010, 16:16
hi
nur mal so ne fragen hast du den Type schon mal angeschrieben der des video mit dem Schneeschieb-roboter auf YOUTUBE hochgeladen hat, wie er des gelöst hat oder denkt ihr das der nur ferngesteuert ist??

wisda.noobie
22.11.2010, 17:27
ich hätte noch eine idee zum schneesensor:

ein blechstreifen, der von oben bis knapp auf die Hofoberfläche geht und somit bei schnee gegen einen Widerstand stößt und sonst einfach frei in der Luft hängt. Dürfe bei Kopfsteinpflaster schwierig werden wegen variabler Höhe, aber bei asphalt sollte das funktionieren

mfg wisda.noobie

robonooby
22.11.2010, 20:40
hi
nur mal so ne fragen hast du den Type schon mal angeschrieben der des video mit dem Schneeschieb-roboter auf YOUTUBE hochgeladen hat, wie er des gelöst hat oder denkt ihr das der nur ferngesteuert ist??

der ist nur ferngesteuert ;) Sieht man aber auch im Video.
Das wird meine alternative, falls ich absolut gar nichts autonomes hinbekomme.

robonooby
22.11.2010, 20:42
ich hätte noch eine idee zum schneesensor:

ein blechstreifen, der von oben bis knapp auf die Hofoberfläche geht und somit bei schnee gegen einen Widerstand stößt und sonst einfach frei in der Luft hängt. Dürfe bei Kopfsteinpflaster schwierig werden wegen variabler Höhe, aber bei asphalt sollte das funktionieren

mfg wisda.noobie

hmm das verstehe ich jetzt nicht so recht. Wie meinste das genau?

robonooby
22.11.2010, 20:44
Hi,
Ich schätze optische Systeme als nicht so praktisch ein, der Aufwand für die Nachführung des Lasers ist schon enorm. Nachdem das bei dir im Winter funktionieren soll sehe ich bei dichten Schneefall auch Probleme mit der Sichtbarkeit des Lasers kommen.
Such mal nach der "Studienarbeit von Stephan Höhrmann" zur Positionsbestimmung durch Ultraschall, das steht bei mir auf der Liste der sinnvollen Erweiterungen ganz oben.

LG!
also ich hab mir mal die Studienarbeit durchgelesen. echt nicht schlecht.
Mein problem wird nur sein. die entfernung. da mein Hof ja schon recht groß ist. Und ich bisher maximal 6meter Ultraschallsensoren gefunden hab und bei der entfernung auch das Feld weit gestreut wird.
Und wenn es wirklich schneit dann wird ja auch Ultraschall gestöhrt.

hmm schwirig

oratus sum
23.11.2010, 09:04
stell dir mal die frage ob du überhaupt eine navigation brauchst. sogut wie alle staubsauger und rasenmäher fahren nach dem chaosprinzip. das ist nicht nur leichter zu realisieren, sondern auch effektiver. per navi müsstest du eine hohe genauigkeit haben, wenn du keine 10cm dicke streifen haben möchtedt. mit dem chaosprinzip kreuzt er auch öfter seine wege.

Richard
23.11.2010, 12:59
stell dir mal die frage ob du überhaupt eine navigation brauchst. sogut wie alle staubsauger und rasenmäher fahren nach dem chaosprinzip. das ist nicht nur leichter zu realisieren, sondern auch effektiver. per navi müsstest du eine hohe genauigkeit haben, wenn du keine 10cm dicke streifen haben möchtedt. mit dem chaosprinzip kreuzt er auch öfter seine wege.

Bei einem Kettengetriebenen Schneeschieber??? Was lässt der dann von Deinem Auto übrig, Lametta?

Setze eine Außenkamera so hoch wie möglich ein, baue an den 4 Ecken des Schneeschiebers farbige LED's und steuer den Bot mittels Bildverarbeitung. Schaue Dir dazu einmal die Robo Fußballer an b.z.w. hohle Dir dort Anleitungen. Die steuern ihre Bot's mittels Kamera über dem Spielfeld und Laptop extrem schnell und genau!

Das dürfte auch die heute einzige bezahlbare Lösung sein.

Auch interessant:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=56863


Gruß Richard

oratus sum
23.11.2010, 14:27
Die Idee von Richard ist super, Bildverarbeitung ist sehr logisch und effektiv.

Da es sich sowieso nicht lohnt bei schwerem Schneefall zu schieben (also schlechte Sichtverhältnise) wirst du auch kein Problem damit bekommen.

Trotzdem halte ich die fahrt auf Chaosprinzip effektiv. Wieso sollte er das Auto kaputt machen?

Chaosprinzip heißt ja nicht, 2 Motoren ein Zufallsgenerator und los gehts. Der Roboter weicht ja trotzdem Hindernissen aus. Staubsaugerroboter drehen sich um einen zufälligen Winkel wenn sie auf ein Hindernis stoßen. Schau dir mal die Videos an, sieht man sofort, außerdem beschäftgt sich ein Freund von mir an der Uni damit, also habe ich das nicht aus der Luft gegriffen.

Es steht dir natürlich auch offen dein eigenes kleines "HPS" (Hof-Positioning-System :-D) zu bauen. Triangulation sit das Stichwort. Das größte Problem besteht wohl darin, einen Ursprung zu finden, damit du ein Bezugspunkt hast.

Ich sage dir voraus, dass diese Navigationssachen für so etwas in der Dimension nichts taugen. Wenn du mit dem Chaos unzufrieden bist bzw darauf nicht vertraust ist die Steuerung mittels Kamera sicher eine super Lösung. Allerdings darfst du dann vor Objekterkennung und Verfolgung usw nicht zurückschrecken.

Ein Lichtpunkt oder ähnliches zu erkennen ist nicht schwer. Wenn du auf meine Seite schaust (Robotik-> Lichtpunkterkennung) siehst du das Prinzip.

robonooby
23.11.2010, 16:59
okey ja danke
ich hab mir das mit der Kamera immer sehr schwirig vorgestellt. von der ansteuerung her und so. Zumal man ja auch ne Menge rechenleistung benötigt und mit der hier Empfohlenen RN-Control wohl dann net weit kommt oder?
Also das Chaospriinzip ist für mich weniger hilfreich. Da er ja dann irgendwie schiebt.
daher hab ich dann den schnee überall nur nicht dort wo ich ihn gerne hätt. Außerhalb des hofes auf der Wiese (nicht in meiner Skizze) Also wenn man bei mir ausm Hof über die Straße fährt ist gegenüber ne Wiese. da schieben wir immer unseren Schnee hin und dort soll er auch landen^^

daher müsst ich schon in etwa wissen wo er ist.

ich werd mir mal das mit der kamera angucken. wenn das wirklich nicht so schwirig ist.
kann man dann normale Webcams verwenden oder wie ist das?

oratus sum
23.11.2010, 18:27
Du kannst normale Webcams verwenden. Je höher die Auflösung desdo länger die Rechenzeit.

Das Projekt wäre ziemlich interessant. Eine kleine Schwierigkeit, die man hat, ist, dass du die Kamera nicht parallel zum Boden stellen kannst. Ich nehme an du musst die Kamera in einem Fenster oder ähnliches stellen damit der gesamte Hof im Blickfeld ist. Die Frage ist wie sich das auf die X-Y Ebene auswirkt. Ich würde da in jede Ecke ein Signal setzen (LEDs) damit man die Begrenzungen leichter erkennt.

RN Control wird dich nciht sehr weit bringen. Damit du effektiv arbeiten kannst brauchst du Multithreading, sprich mehrere Prozesse gleichzeitg.

Wenn du das tatsächlich draußen anwenden möchtest, brauchst du auch eine Methode um dein Bot zu identifizieren. IR-LEDs oder starke LEDs sehen die Kameras sehr gut, allerdings musst du natürlich das Umgebungslicht filtern. Aber ich denke ein LED-Strobo mit eigener Frequenz sollte da reichen.

Wenn du in .NET programmierst gibt es eine OpenSource Bibliothek die super ist:
http://www.aforgenet.com/framework/

robonooby
23.11.2010, 20:12
hmm okey. glaub da hab ich dich anfangs etwas falsch verstanden.
Also die Cam soll net aufn roboter sondern eher auf einen Fixen Punkt im Hof der alles übewacht?
Und dann den Robo lokalisiert oder wie?

hmm kannst du mir da irgendlwelche systeme empfehlen? oder geht einfach nen Netbook board mit windoof drauf und dan alles über USB und seriell und so ansteuern?

hmm also Probrammieren wollte ich entweder in C++ oder in delphi. weil ich beide sprachen mehr oder weniger kann^^
Hab bisher nur einfache software und Datenbanken programmiert (Uni-PC-Laborstunden)

oratus sum
23.11.2010, 20:38
Die Kamera muss so hoch wie es geht platziert werden damit der Hof gut sichtbar ist. Am Roboter bringt es dir nicht wirklich was. Eine Navigation mit Sensoren nur im bewegten System ist nicht möglich, da du kein Bezugssystem hast!

Ein Netbook tut es sicher, ein einfacher Desktop PC ebenfalls. Linux oder Windows ist Geschmackssache.

Ein kleiner Tipp: Verwende eine USB Kamera. Wenn du unbedingt eine Funkkamera verwenden möchtest, dann eine mit digitaler Signalübertragung. Die Pollin Funkkameras sind da z.b. völlig ungeeignet weil das rauschen sehr hoch ist.

Programmiertechnisch ist Bildverarbeitung nicht extremst aufwendig. Die Mathematik dahinter ist auch nicht sehr kompliziert. Im Prinzip wenn du dich mit Matrizen und Vektoren auskennst ist das schon die halbe Miete.

robonooby
24.11.2010, 05:00
okey gut hab ich mir gedacht, dass es net viel bringt wenn die cam am robo ist.
dann werd ich mich da mal reinarbeiten.
müsste demnach dann nur die errechnete position per funk übertragen.
joa mit Matrizen und Vektoren kenn ich mich ganz gut aus^^ (zwangsweise :P)

Ich meld mich dann wieder wen ich net weiter komm oder so :P

Richard
24.11.2010, 09:09
hmm okey. glaub da hab ich dich anfangs etwas falsch verstanden.
Also die Cam soll net aufn roboter sondern eher auf einen Fixen Punkt im Hof der alles übewacht?
Und dann den Robo lokalisiert oder wie?


Grau. :-) Wie das geht hat hier schon jemand im Modell (kleiner Bot) gezeigt, ich weiß leider den Thread Namen nicht mehr. Das PC Programm war in VB (?) geschrieben. Vorne und hinten des Bot wurden mittels farbiger LED's ermittelt.
Die Bildverzerrung durch schräg stehender Kamera ist "heraus gerechnet worden".

Wenn ich mich richtig erinnere war das ein Sperrholz Bot mit Knicklenkung?

Gruß Richard

oratus sum
24.11.2010, 10:39
VB.NET ist da sehr effektiv und schnell.

Wenn du meine Video bzgl der Objektverfolgung anschaust, siehst du, dass er das Objekt flüssig verfolgt. Die Kamera schwenkt zwar langsam, das ist aber die Eigenschaft der Kamera.

Und immerhin 640*480 Pixel

robonooby
24.11.2010, 17:12
hmm joa
also werd erstmal gucken müssen wie ich in C++ überhaupt WebcamBilder einlesen kann und wie ich diese dann in nen Array pack.
hab halt bisher nur consolen anwendungen programmiert, das macht das ganze etwas schwiriger.

robonooby
04.12.2010, 14:21
so also mal ein kurzer Statusbericht.
Bin jetzt auf VisualBasic 2010 umgestiegen. und bin sehr froh darüber :-)
weil hab es mitlerweile schon geschafft, damit ein Programm zu schreiben, welches das WebcamBild ausliest, dann dieses in HSV System konvertiert und anschließend in eine Matrix schreibt.
des weiteren ist es mir gelungen einen Laserpointer Punkt zu verfolgen.
zwar noch Virtuell aber immerhin.

Auf den eingefügten Bildern seht ihr das mal.
(Grüner Punkt ist der anvisierte Punkt)

Hab nur noch das problem, dass er je nach Bildhintergrund das net richtig erkennt bzw fehler produziert.
mal sehen wie ich diese noch herausbekomme.
joa ansonsten hab ichs auch noch net geschafft das Bild auf der picturebox als HSV Bild auszugeben.
Aber bin schon mal ganz zu frieden^^

oratus sum
04.12.2010, 15:01
Sieht doch schonmal super aus!

Du kannst die Unabhängigkeit vom Hintergrund mit einer Kombination aus Farb und Frequenzfilter machen.

Einen Farbfilter anzuwenden dürfte ja nicht schwierig sein (Bereiche definieren, keine fixe Farbe). Dann kannst du auch einfach ein Bild aufnehmen ohne Laserpunkt dann mit Laserpunkt, die zwei Matrizen Subtrahieren, was idealerweise übrig bleibt ist nur dein Punkt.

Dann musst du noch schauen wie deine Pixel zusammenhängen. Also wie groß quasi dein Objekt ist. Idealerweise ist das dann dein Laserpunkt.

Wenn du die Pixelmatrix intern (also im Arbeitsspeicher) als HSV liegen hast, gibt er es auch so aus. Die Picturebox wandelt das aber dann in sein internes Format um. Sehen tust du das danna ber sowieso nicht. Außer du hast dein ild gefiltert, dann müsstest du den Unterschied schon sehen.

Pass auf mit deinem "virtuellen Punkt" auf. Vergiss nicht, dass dein Laserpunkt grün ist, aber in der Realität hast du viele Grünstiche drinnen.

Ansonsten immer wieder schön zusehen, dass es noch Menschen gibt, die nicht zu faul sind, dass sie mal "Bildfarbe ändern und ausgeben" oder "Bild abspeichern" ausschreiben anstatt "Save" oder "Convert" zu schreiben. :-D

robonooby
04.12.2010, 15:11
ja danke^^
ja das mit dem Farb bzw Freqzenzfilter is mir noch gar net gekommen^^
das werd ich mal probieren. vielleicht wirds wirklich genauer.

problem mit dem subtrahieren von den beiden Matrizen wäre halt nur, dass man das Licht später pulsieren lassen muss. d.h. ich muss beide frequenzen aufeinander abstimmen. Und da sehe ich das Problem.
will möglichst die Lichtquelle unabhängig von der Kamera machen.

hmm okey. daher es besteht gar keine Möglichkeit das HSV Bild auszugeben oder wie?

ja gut der virtuelle Punkt ist ja nur dazu da, um zu sehen ob er den Laserpunkt richtig folgt. sehen muss man ihn net zwingend. da er ja nach den errechneten Koordinaten geht und net nach dem Grünen Punkt. dieser ist eher nur für mich zur kontrolle da^^

hehe ja ich habs net so mit englisch. und schreib so sachen allgemein eher aussagekräftig^^
so sehen bei mir auch die variablen beim Programmieren aus. ellenlangeWörter^^