-
        

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 46

Thema: 3D Map erstellen

  1. #1

    3D Map erstellen

    Anzeige

    Hey Leute

    Ich bin nun endlich fertig mit meinem ,,Erkundungsroboter" (Fotos siehe Anhang), zur Steuerung ein Arduino UNO mit Motorshield, zwei Getriebemotoren und zum Kontrollieren über Funk ein Sparkfun Bluetooth Mate Gold. Ich habe eine Gehäuse aus Plexiglas gefertigt und außen zwei Ketten angebracht um auch einfache Stufen etc. hoch bzw. herunter zu fahren.
    Nun möchte ich das wenn der Roboter in einen fremden Raum fährt, dass er dann automatisch eine 3D Map erstellt und diese vllt. auf einer Micro-SD Karte speichert. Wenn möglich soll der Roboter wenn der unbekannte Raum durch eine offene Tür mit einem anderen Raum verbunden ist auch in diesen fährt und auch von diesem ein 3D Bild erstellt. Das Endergebnis soll sein das wenn der Roboter in ein fremdes Haus gelassen wird, er autonom durch das Haus fährt und einen Grundriss von dem Haus erstellt und durch selbständiges herausfinden aus dem Haus die auf der SD-Karte gespeicherten Daten automatisch aus dem Haus herausfährt. Ich habe schon überlegt ob ich einen 360 Grad Laser Scanner nehmen sollte aber da dieser sehr teuer ist ( http://www.robotshop.com/eu/en/rplid...r-scanner.html (400€)) habe ich als Alternative überlegt ob man einfach einen ultraschall abstandssensor auf einen Servo setzen sollte, würde das ausreichen um ein 3D Modell zu erstellen?
    Dann gibt es noch diese Sachen wie z.B. ,,Optical Flow Sensoren" ( http://www.amazon.de/Optical-APM2-52...al+Flow+Sensor ) oder diese Pixy CMUcam5 ( http://www.amazon.com/Pixy-CMUcam5-S.../dp/B00IUYUA80 ) können diese irgendwie hilfreich sein?

    Danke schon mal im Voraus
    ToastCrafterHD
    Geändert von Anonym (13.02.2016 um 17:32 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.521
    Meinst Du wirklich eine 3D-Karte oder eine 2D-Karte?
    Mit einem US Sensor auf einem Servo bekommt man "nur" eine 2D-Karte.
    Bei Anordnung des Sensors rechtwinkelig zur Rotationsachse eine Schnitteben einer Kugel (Polarkoordinatensystem).
    Bei nicht rechtwinkeliger Anordnung einen Kegel.
    Mit einer Gimbal Anordnung von 2 Servos kann man eine komplette Kugel scannen.
    Je nach Sensor muß man aber das Verhalten bei Überschreiten der maximalen Meßdistanz berücksichtigen.
    Beim hc-sr04 zum Beispiel dauert eine Messung 20ms.
    Bei Überschreitung der maximalen Meßdistanz steht das Echosignal allerdings 200ms an.
    Wenn man also fest mit einem Zeitrahmen von 20ms pro Messung misst, hat man bei den nächsten 9 Messungen einen fehlerhaften Messwert.
    Optical Flow liefert Bewegungsvektoren, also Geschwindigkeitsdaten.
    Damit kann man die Eigenbewegung bzw. die Relativbewegung zu anderen bewegten Objekten und der nicht bewegten Landschaft ermitteln.
    Also ein Odometriesensor.
    https://de.wikipedia.org/wiki/Optischer_Fluss

  3. #3
    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.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.521
    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 21:15 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    208
    Zitat Zitat von i_make_it Beitrag anzeigen
    Mein aktuelles Konzept sind zwei hc-sr04 auf normalen Servos mit je 180° Stellbereich, in Fahrtrichtung links und rechts....
    Mal interessehalber: Bekommst Du damit ein sauberes Mapping eines Grundrisses hin? (Wenn ja, mit welcher Auflösung?)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.521
    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.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.521
    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.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Antenne.JPG
Hits:	31
Größe:	40,5 KB
ID:	31295


    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.
    Klicke auf die Grafik für eine größere Ansicht

Name:	sharp_11.jpg
Hits:	21
Größe:	20,5 KB
ID:	31294
    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 10:49 Uhr)

  8. #8
    Zitat Zitat von i_make_it Beitrag anzeigen
    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).
    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 15:07 Uhr)

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.521
    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 14:07 Uhr)

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    208
    Ein Lösungsansatz:
    LidarLite als 360° Rundumsensor, ca. 13ms/ Messung, 128 Messungen/Umdrehung.

    Klicke auf die Grafik für eine größere Ansicht

Name:	CellarMap.jpg
Hits:	62
Größe:	40,0 KB
ID:	31296
    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 14:24 Uhr)

Seite 1 von 5 123 ... LetzteLetzte

Ähnliche Themen

  1. Umgebungsbild erstellen
    Von Mc Delta im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 09.03.2010, 18:12
  2. make erstellen
    Von Thomas$ im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 01.03.2010, 19:41
  3. Ein Menü erstellen
    Von pat2381 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 09.07.2007, 21:47
  4. Sensortabellen erstellen
    Von Xam im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.10.2005, 23:36
  5. Karten erstellen
    Von tornado im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 23.10.2005, 13:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •