Es muss eigendlich keine 3D Karte sein es soll nur so sein das der Roboter einen ungefähren Grundriss des Hauses hat und kein kompettes 3D Modell. Theoretisch würde es dann reichen den Us-Sensor mit einem Servo nur um 360 Grad zu drehen.
Es muss eigendlich keine 3D Karte sein es soll nur so sein das der Roboter einen ungefähren Grundriss des Hauses hat und kein kompettes 3D Modell. Theoretisch würde es dann reichen den Us-Sensor mit einem Servo nur um 360 Grad zu drehen.
Mein aktuelles Konzept sind zwei hc-sr04 auf normalen Servos mit je 180° Stellbereich, in Fahrtrichtung links und rechts.
Bei normaler Gradeausfahrt schauen die beide nach vorne, 10° nach außen (für die Hindernisserkennung).
Bei Rundumblick fährt der eine auf 180° (nach hinten) und der andere auf 0° (nach vorne) und messen dann in 10° Schritten je einen Halbkreis.
Somit gibt es zwei Messungen die jeweils von beiden Sensoren durchgeführt werden und die man somit gegeneinander abgleichen kann (sofern der Roboter nicht so breit ist, das es einen spürbaren offset zwichen den Sensoren gibt).
Geändert von i_make_it (13.02.2016 um 20:15 Uhr)
Momentan habe ich nur das Konzept und einen Arduino Nano an dem zwei hc-sr04 hängen und die ihre Daten an den seriellen Monitor senden.
Die Entfernungsauflösung ist in ein Zentimeter Schritten und die Reichweite ist knapp über 4 Meter.
Bei 10° seitlicher Auflösung und 4 Metern Entfernung kommt man auf eine seitliche Auflösung von fast 70 cm.
Allerdings hat man ja auch den Öffnungswinkel des Sensors der eine feinere Auflösung wie 10° unsinnig macht.
Wenn man eine gute Odometrie realisiert, ist aber auch damit SLAM möglich. Man kann dann ja für höhere Auflösung näher an Objekte heranfahren.
So um mal bei dem Beispiel hc-sr04 zu bleiben, hier mal 2 Links zu Unterlagen.
https://docs.google.com/document/d/1...t?pref=2&pli=1
Hier findet man auf Seite 3 die Angabe zum Öffnungswinkel von 30° und auf Seite 5 eine Grafik.
http://www.mikrocontroller.net/attac...hreibung_3.pdf
Hier sind noch ein paar Infos in Deutsch.
Bei einem Selbstbau eines US-Sensors kann man die Auflösung etwas verbessern, indem man den Öffnungswinkel des Empfängers verkleinert und ggf. durch mehrere Empfänger mit leicht unterschiedlichen Blickrichtungen eine vergleichende Messung durchführt.
Bei Sharp IR Sensoren erreicht man eine bessere seitliche Auflösung, aber dafür braucht man da dann 2 bis 3 Sensoren um vom Nahfeld bis zum Fernfeld alles abzudecken.
Achtung die Bezeichnungen der Modelle haben sich mittlerweile geändert.
Man kann einen optischen Sensor nach dem Triangulationssystem auch selbst bauen, das ist dann aber schon etwas Arbeit (grade beim genauen ausrichten) Und bei meinem Versuch war die Detektion ließ die Erkennung noch zu wünschen übrig.
Man braucht einen Laser mit Koliminatoroptik, einen Polarisationsfilter (Folie einer billig 3D-Brille) eine Zeilenlupe (gibt es immer wieder mal günstik aus Acryl in Billigmärkten) ggf. einen gewölbten Spiegel (selbst machen) und eine Sensorzeile von einem Flachbettscanner.
#
Geändert von i_make_it (14.02.2016 um 09:49 Uhr)
Ok gehe wir davon aus ich bau diese Apparatur auf meinen Roboter, dann braucht es ja noch eine Programm das wenn der Roboter in einen Raum fährt, sieht das er geradeaus weiterfahren kann. Er stellt sich hin scannt einmal den Raum aus seiner jetzigen Sicht, fährt dann weiter sieht das er jetzt auch meinetwegen um eine Ecke gucken kann und stellt sich dort hin und scannt erneut womit er auch den alten schon vorher gescannten Teil aus seiner jetzigen Sicht aktualisiert bzw. verfeinert. Jetzt dreht er sich einmal im Kreis und sieht z.B. das dort eine offene Tür ist, er fährt durch diese Tür und fängt auch an diesen Raum zu scannen. Währe das so als Programm realisierbar ?
ToastCrafterHD
Geändert von Anonym (14.02.2016 um 14:07 Uhr)
Das ist realisierbar, ist sogar bei schnellen Sensoren bei der Fahrt realisierbar.
Mann muß sich aber mit den Fehlern auseinadersetzen, die die erstellte Karte verzerren können.
Das ganze Thema nennt man SLAM.
https://de.wikipedia.org/wiki/Simult...on_and_Mapping
So, ich habe mal etwas auf der Festplatte gewühlt.
Eine Liste von Sensoren die ich mir im Laufe der Zeit mal für SLAM zusammengestellt habe.
Sensoren
============
Odometrie
-Quadratur/CPC Shaft encoder
-optischer Fluß (optical flow sensor)
Kollision
-Mikroschalter
-Kapazitive Kontaktfolie (Leitsilikon: Elastosil)
Nahbereich 0mm - 30mm
-Induktiver Näherungssensor
-Kapazitiver Näherungssensor
-Reflexlichtschranke mit/ohne Signallaufzeitauswertung
Mittelbereich 20mm - 800mm
-Reflexlichtschranke mit Signallaufzeitauswertung (TOF)
-Reflexlichtschranke mit Triangulation (SHARP)
-Puls Ultraschall Echolot
-FMCW Ultraschall echolot
-Puls RADAR
-FMCW RADAR
-Lichtschnitt mit Linienlaser und Kamera
-Stereo Kamera (Triangulation)
--optischer Fluß (Odometrie)
Fehrnbereich 400mm - 10000mm
-Reflexlichtschranke mit Signallaufzeitauswertung (TOF)
-Puls Ultraschall Echolot
-FMCW Ultraschall echolot
-Puls RADAR
-FMCW RADAR
-Lichtschnitt mit Linienlaser und Kamera
-Stereo Kamera (Triangulation)
-PDM/TOF Kamera
Beim SLAM geht der Roboter beim Einschalten erst mal davon aus das sein momentaner Standort der Koordinatennullpunkt auf einer unbekannten Karte ist.
Sinnvollerweise ist das Koordinatensystem der Karte karthesisch.
Die Sensor Daten kommen allerdings als Polarkoordinaten (mit dem Roboter als Ursprung des polaren Koordinatensystems) rein.
Das Karthesische Koordinatensystem kann man entweder beliebig ausrichten oder auch nach Wänden oder z.B. Kompass ausrichten.
Der Roboter erstellt am Startpunkt erst mal eine Karte und tastet sich dann vor.
Sind schon Karten im Speicher, kann er anhand von Landmarken versuchen ob sich seine Position auf einer der schon vorhandenen Karten befindet und ab da dann immer abgleichen ob das zutrifft oder nur eine lokale Übereinstimmung vorhanden war.
Geändert von i_make_it (14.02.2016 um 13:07 Uhr)
Ein Lösungsansatz:
LidarLite als 360° Rundumsensor, ca. 13ms/ Messung, 128 Messungen/Umdrehung.
Links mit/rechts ohne Slam, Auflösung 10cm/Kästchen, gefahrene Strecke ca. 85m auf einem Terrain von etwa 10x10m Grundfläche (der typische Kellerflur).
Links in schwarz von Odometrie gemessene Position/Weg, in blau durch Slam korrigiert.
Der Slam läuft übrigens nicht auf dem Controller, sondern auf einem mitgeführten Tablet.
Aber ich habe keine Ahnung, ob ich da mit Kanonen auf Spatzen schieße. Kommt hier jemand mit "weniger" Sensorik auf gleichwertige Ergebnisse?
Geändert von Holomino (14.02.2016 um 13:24 Uhr)
Was meinst Du mit "weniger" Sensorik?
Das ist ja ein einziger Sensor. Mit null Sensoren geht es nicht.
Oder meinst Du preislich günstiger, da der ja um die 115US$ kostet?
Natürlich kann ein Roboter mit Radencodern und Bumpern das ebenfalls. (Wenn kein Schlupf auftritt)
Allerdings dauert das dann entsprechend lange.
Es Kommt halt drauf an was an Präzision und an Geschwindigkeit gefordert ist.
Das nächst teurere wäre dann ein RADAR wie das "MIT IAP 2011 Laptop Based Radar" das dann auch mehr als 40 Meter Reichweite hat.
Da kosten die Teile aber auch einiges mehr.
http://ocw.mit.edu/resources/res-ll-...11_proj_in.pdf
Auf Seite 16 liegen die bei 360US$.
Und die Auswertung ist "etwas" anspruchsvoller.
Hmmm,
mit der Sensorik und der korrekten Odometrie ist's so 'ne Sache. Meine bisherigen Erfahrungen mit dem SLAM-Gedöns: Es verbessert die Lokalisierung und damit die Maperstellung, es heilt sie allerdings nicht. Auch bei mir zerfasert die Map schlagartig, wenn eine Bewegung des Roboters außerhalb der vorgegebenen Toleranzen landet und irgendwo ist Schluss, wenn der Sensor mal spinnt. Ganz ohne Annahmen geht's nun mal nicht.
Daher die Frage: wo ist nach unten hin Schluss? Wo geht's auch mit vieeeel Rechenaufwand nicht weiter?
Kannst Du z.B. mit Deinem preislich durchaus attraktiven Sensorsetup die Aufgabenstellung des TE bewältigen? Ich definier das mal als Otto-Normal-Wohnung 100...150qm u.a. mit großem Wohnzimmer, ggf. einem Kreisdurchbruch (ClosedLoop) und ja, es liegt natürlich Teppich und auch der tödliche Langhaar-Flokati darf den Boden irgendwo mal zieren. Die Aufgabe wäre dann: Reinfahren, rauskommen, Map haben!
Ganz ehrlich? Ich kann's nicht! So schön das Bild oben aussieht, in der Simulation zickt mein Slam immer noch beim ClosedLoop-Problem, meine Nahfeldsensorik ist immer noch Bockmist, der Pathfinder bricht teilweise an Engpässen ab und nach zwei Jahren Kellerbastelei bin ich noch nicht mal auf dem Niveau der Funktion eines Miele-Robotersaugers, hab aber den Preis desselbigen im Budget (inbegriffen aller Fehlschläge) um ein mehrfaches überschritten.
Was soll's
Der Weg ist das Ziel.![]()
Geändert von Holomino (14.02.2016 um 17:11 Uhr)
Lesezeichen