- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Robo: Autmatisch Boden scannen und als Gesamtild speichern

  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449

    Robo: Autmatisch Boden scannen und als Gesamtild speichern

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    ich hätte eine Idee für ein schätzungsweise relativ aufwendiges Projekt, zu dem ich gerne eure Meinungen/Vorschläge etc. hören würde.

    Es geht um folgendes:
    Ein Roboter soll einen Raum (meist ohne Möbel, wenn doch, dann nur da wo er nicht zu scannen braucht -> Robo muss nicht flach sein) automatisch vollständig durchfahren und dabei den Boden scannen und als ein Gesamtbild speichern.


    Anforderungen an den Bot:
    - Akkubetrieb
    - Gute Scannauflösung: Holzporen, leichte Krazer, Dellen etc. sollen deutlich erkennbar sein
    - autonomes Verhalten: Soll sich selbst zurechtfinden (Anfangs nur in rechteckigen Räumen)
    - Zeitlimit soll erst mal keine Rolle spielen


    Umsetzung:

    - Grundgerüst:
    Asuro-ähnlich, nur Größer und mit Stützrad o.ä. statt Tischtennisballhälfte
    Größe: Grundfläche ca. DinA4-Blatt, Höhe uneingeschränkt

    - Komponenten:
    - Scannen: Leiste samt Elektronik aus Flachbettscanner (Leiste wird wie bei nem Mähdrescher angebracht)
    - Fahrwerk: warscheinlich Schrittmotoren, an die direkt die Räder drankommen
    - Main-Control: alter Laptop (256MB Ram, 700Mhz CPU, 10GB HDD) mit Linux (warsch. DSL oder Lubuntu) wird einfach auf den Robo gestellt
    - Spannungsversorgung: Noch nicht genau festgelegt, irgendwelche Klotzakkus o.ä.

    - Details:
    - Fortbewegung:
    Für die Fortbewegung ist ein Atmega zuständig, der vom PC via USB-UART angesprochen wird
    - Scannen:
    Der Scanner wir ganz normal via USB an den Laptop angeschlossen. Der Laptop macht eine Scan-anfrage. Dort wo normal der Motor vom Scanner sitzt zapft der Atmega die Signale ab und lässt den Roboter geradeaus fahren -> Seite für Seite wird gescannt und erst mal einzeln abgespeichert
    - Orientierung:
    In jeder Ecke des Raumes wird eine Kleine Platine mit IR-LED und Empfänger angebracht. Der Roboter fragt immer nacheinander die Platinen in den Ecken nach einem Signal. Je nach Zeitverzögerung der Antwort oder Winkel des eintreffenden Signals soll die Position bestimmt werden. Vielleicht kommt auch noch ein digitaler Kompass dazu. (Geforderte Genauigkeit: ca. 2-3mm währen schon gut, der Rest lässt sich ja per Software korrigieren)
    - Rohdaten-Auswertung:
    1. Möglichkeit: Laptop fügt die einzellnen Bilder selbst zusammen -> warscheinlich zu langsahm
    2. Via Wlan oder Bluetooth werden die einzellnen Bilder gleich übertragen oder mit einem Stick o.ä. zu einen anderen PC transveriert, der das ganze zusammenfügt (zur Verfügung stünden 1. Lappie mit 2x2Ghz + 2GB Ram oder 2. Desktop-PC 4x3Ghz + 8GB Ram. Den werd ich allerdings warscheinlich nur benutzen können wenn sich der Robo als wirklich produktiv erweist)


    Ist dieses Projekt so realisierbar? Gibt es so ein Projekt schon iwo und ich habs blos nicht gefunden?
    Über Anregungen und Kritik würde ich mich sehr freuen!

    Grüße
    -schumi-

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Was mir spontan als möglicherweise kritisch einfällt:

    1. Scannen:
    Übliche preiswerte Flachbettscanner können etwa DIN A 4 - das macht also 16 Bilder pro Quadratmeter - weil man eine Überlappung braucht vielleicht eher 18 bis 20. Gibt es ein brauchbares Tool, diese Kacheln zu einem Gesamtbild zusammenzusetzen? Welche Software kann entsprechend große Bilder noch handhaben?

    2. Orientierung:
    Das scheint mir noch sehr wenig durchdacht, aber eventuell die größte Herausforderung zu sein. Laufzeitmessungen von Licht sind für die geforderte Genauigkeit vom Amateur nicht machbar. Bei Ultraschall gehen Laufzeitmessungen, aber wahrscheinlich nicht in der geforderten Auflösung, zumal man gerade in möbelfreien Räumen starke Echos bekommt. Winkelmessung scheint auch eher aufwändig: Eine Abweichung von +/- 1 mm auf eine Distanz von 10 Metern ergibt nur eine Winkeländerung von +/- 0,4 Winkelminuten, das entspricht etwa der doppelten Auflösung des menschlichen Auges (siehe: http://de.wikipedia.org/wiki/Auflösungsvermögen#Auge ). Mit einem Kompass kann man da auch nichts verbessern. Hier muss also unbedingt ein Konzept gefunden werden.

    3. Antriebskonzept: Hier könnte man sich überlegen, ob ein Omniwheel Antrieb günstiger wäre, man muss ja häufiger (bei jeder neuen "Spalte") um 90° versetzen, was beim Dreiradkonzept ein gewisses Rangieren erfordert. Denkbar wären auch zwei unabhängige Antriebe für Längs- und Querfahrt. Ist aber vermutlich Geschmackssache.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    Hallo ranke,

    danke für deine Antwort!

    Zur Scannsoftware:
    Ja, die Software gibt es und ich hab sie auch zur Verfügung wenns sein muss. Allerdings muss man da alles von Hand machen (in etwa andeuten wo was hingehört).
    Desshalb spiele ich mit dem Gedanken, dann selbst eine Software zu schreiben, die hier einen Teil übernimmt:
    Der Robo erstellt eine Textdatei, in der für jedes Bild die ungefähre Koordinate hinterlegt ist. Dann fügt die Software die Bildchen so zusammen, dass noch Lücken dazwischen sind. Das richtige Zusammenfügen mit Überschneidung kann die oben genannte Software dann von alleine.

    Orientierung:
    Ja, ich muss dir Zustimmen: Das Konzept ist nicht so der Hit, aber mir fällt Spontan noch weiteres ein:
    Laser:
    Es wird eine Laser-Fläche erzeugt (wie bei den Laserwasserwagen). Dann wird mit einer Kamera ermittelt wo sich der Strich auf dem Boden knickt und an er Wand weiterläuft. Das dann rundherum abtasten
    -> Nachteile: 1. Sehr schwierig zu realisieren 2. funzt nicht wenn der Robo senkrecht auf die Wand zufährt 3. Gefahr von Netzhautverbrennung des Anwenders
    Lasermäuse ausschlachten:
    Man könnte sich auch noch der Sensoren zweier Lasermäuse bedienen und diese dann in höhe der Räder platzieren, um den Weg jedes Rades zu messen.
    -> Nachteile: Stimmt 1 Wert nicht stimmt keiner danach mehr

    Aber eine gute Lösung ist da immer noch nicht dabei

    Zum Antrieb:
    Ich hab Omniweels noch nie praktisch ausprobiert, aber ich schätze mal dass die auch nicht perfekt rund sind und desshalb das gescannte Bild dann so leichte Horizontale Absätze hat, oder?
    Ansonsten währen die schon praktischer, aber ich glaube es genügt auch wenn sich der Bot auf der Stelle drehen kann...

    MfG
    -schumi-

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Deine Argumentation gegen Omniwheels finde ich überzeugend. das Asuro-Konzept wird das richtige sein.

    Ein Vorschlag zur Orientierung:
    Man bringt eine Bake in einer Raumecke an, die längs der längsten Kante des Raums einen Laserstrahl aussendet (z.B. das Lasermodul von Pollin). Der Robo richtet seine Fahrtrichtung anhand des Laserstrahls exakt senkrecht zu diesem Strahl aus und fährt seine erste Messfahrt. Anschließend Rückfahrt, Versatz um eine Bahnbreite (bei dem Versatz vertraut man auf die Genauigkeit der Schrittmotoransteuerung, es sind ja nur etwa 20 cm), erneutes Ausrichten, nächste Messfahrt.
    Nachteil ist, dass die Ausrichtung nur an der Raumkante mit dem Laserstrahl gemacht werden kann, während der Messfahrt muss man darauf vertrauen, dass die Ausrichtung bleibt (indem man links und rechts den selben Weg fährt).
    Will man diesen Nachteil vermeiden, kann man einen zusätzlichen Aufwand treiben, indem man einen Spiegel in den Laserstrahl stellt, der den Strahl um 90° in die Fahrtrichtung des Robo umlenkt. Damit gibt es für jede Messfahrt einen echten Leitstrahl. Allerdings muss der Spiegel nach jeder Messfahrt um die Bahnbreite versetzt und neu justiert werden. Das könnte durch eine zusätzliche Kinematik am Robo erfolgen (oder man baut den Spiegel selbstfahrend).
    Einige Fragen (z.B. wie man die senkrechte Ausrichtung bzw. die Ausrichtung des 90° Spiegels konkret macht) sind jetzt noch offen. Ich denke aber, das wäre hinreichend genau lösbar.

    Sicherheitsbedenken gegenüber der Laserstrahlung: Hier wird man auf jeden Fall einen sichtbaren Laser geringer Leistung verwenden, ausserdem sollte man den Strahl modulieren (damit nimmt die Leistung zusätzlich ab, ausserdem kann man bei der Erfassung das Laserlicht von unmodulierten Fremdlicht unterscheiden). Wenn man zusätzlich während der Messfahrt nur "eingewiesenen" Personen den Zutritt zum Raum erlaubt, hätte ich keine Bedenken.

    Ach ja, bevor ich es vergesse: Alles Gute zum Geburtstag!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    Ach ja, bevor ich es vergesse: Alles Gute zum Geburtstag!
    Danke!

    Ich finde deine Idee sehr gut!
    Allerdings bin ich mir nicht sicher ob die Position die den Bildern beigelegt wird dann quasi in der X-Richtung (Richtung in die der Laser zeigt) noch ausreichend ist, wenn er sich schon Xmal umgedreht hat, denn vor allem beim Kurven-fahren und Drehen ist der schlupf der Räder doch erheblich...

    Bin grad am Überlegen ob man auch folgendes machen könnte:
    In 2 Ecken des Raumes kommt eine Platine mit kleinem Atmega, RFM12-Funkmodul und und kleinem LDR oder sontigem Lichtsensor.

    Auf dem Roboter wird ein Schrittmotor mit möglichst vielen Schritten und Getriebe montiert (für ausreichende Genauigkeit). Dadrauf kommt widerum ein Laserpointer, der dann so gedreht werden kann dass er quasi 360° um sich blicken kann.

    Jetzt such sich der Robo an Anfang die Position der 2 Platinen in Abhängigkeit vom Winkel des Laserpointers. Zur Unterscheidung der Platinen werden verschiedenen Modulationen des Laserstrahls verwendet.
    Ob der Laser gerade auf die Platine zeigt oder nicht wird dem Robo mithilfe des RFM12 mitgeteilt

    Jetzt fragt er z.B. nach jedem gescannten Blatt nach der Position, indem er in etwa die Position anpeilt die der Laser vorher hatte um die Postition der 1. Platine in den Ecken zu treffen und sucht dort nach ihr. Dann sucht er die 2.
    (Könnte auch 360° Absuchen, aber dann dauerts so lange)

    Jetzt sollte es dem Robo möglich sein seine Position zu ermitteln (Trigonometrie)

    Evtl. kann man auch in alle Ecken so eine Platine anbringen, Dann könnte man mehrere Positionwerte ausrechnen und den Durchschnitt bilden um die Genauigkeit zu erhöhen.

    Die Richtung in die der Robo zeigt könnte man dann mit Digitalem Kompass ermitteln...

    Grüße
    -schumi-

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Ja, das scheint mir auch ein gangbarer Weg zu sein.

    Man braucht zur Positionsermittlung in der Ebene (mindestens) 3 Baken. Der "Laser-Leuchtturm " auf dem Robo überstreicht den Raum und jede vom Licht getroffene Bake antwortet unverzüglich (oder mit definierter Verzögerung) per Funksignal (jede mit einem eigenen Code zur Identifikation).
    Die Auswertung und Verrechnung kann dann im Roboter geschehen.
    Notwendig ist allerdings, dass die Position der Baken im Raum sorgfältig vermessen wurde (das ist vielleicht bei der Installation etwas aufwendig).
    Ein zusätzlicher Kompass ist nicht notwendig, weil der Roboter die Ausrichtung seines Laserstrahls in Bezug auf seine Fahrtrichtung ohne großen Aufwand messen kann.
    Ich denke schon, dass eine Rotation des Lasers mit 1 Hz machbar sein sollte (das hängt auch etwas von den maximalen Raumgrößen ab). Damit kann man kontinuierlich drehen, was der Genauigkeit sicher zugute kommt (im Gegensatz zum gezielten suchen und "Anpeilen" einer Bake).

    Jetzt haben wir schon mehr als ein Konzept, dann kann man sich ja schon spezifische Stärken und Schwächen der Konzepte ansehen, um einer Entscheidung näher zu kommen. Oder will noch jemand eine Alternative in den Raum werfen?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2009
    Beiträge
    8
    Ich glaube mal, dass bei so einer Scanner Einheit die Anforderungen an den Geradeauslauf und die exakte Einhaltung der Geschwindigkeit das Ganze echt schwierig machen.
    Einfacher wäre es wohl, wenn man eine Kamera mit der Linse nach unten an ein Gestell befestigt und die Bilder davon aneinannder hängt. Der Vorteil wäre, dass man sich sicher sein kann, dass das Bild selbst nicht verzogen ist.

    Wofür soll das Ganze denn gut sein? Spräche etwas gegen die Kamera Lösung?

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    @ranke
    Man braucht zur Positionsermittlung in der Ebene (mindestens) 3 Baken.
    Normalerweise schon, aber da der Handlungsraum ja durch Wände eingeschränkt ist, reichen 2

    Ein zusätzlicher Kompass ist nicht notwendig, weil der Roboter die Ausrichtung seines Laserstrahls in Bezug auf seine Fahrtrichtung ohne großen Aufwand messen kann.
    Stimmt, daran hab ich gar nicht gedacht...

    @fuxxx
    Das mit dem Geradeausfahren mit Konstanter Geschwindigkeit könnte wirklich zum Problem werden...
    Allerdings ist bei einer Kamera der Boden wieder verzerrt, das sieht dann zusammengesetzt warscheinlich so aus als ob der Boden in der Mitte jedes Bildes so eine große Beule nach oben hätte...
    Ich hab zwar Software zur Entzerrung solcher Bilder zur Verfügung, aber das müsste man dann mit jedem Bild machen, und noch dazu von Hand weil sich das so glaub ich nicht automatisieren lässt...

    Ich hab mal kurz die Ideen Skizziert, hier zu finden:
    http://schuhumi.lima-city.de/rn-bilder/

    MfG
    -schumi-

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    ... Normalerweise schon, aber da der Handlungsraum ja durch Wände eingeschränkt ist, reichen 2 <Baken>
    Ich denke schon, dass man auch in diesem Fall mindestens 3 Baken benötigt. Ich nehme Bezug auf Dein verlinktes 2.jpg: Hier sind Winkel alpha und beta eingezeichnet, die Robo aber nicht kennt. Robo kann ausschließlich gamma = 180°-(alpha+beta) messen, außerdem ist die Basislänge zwischen den Baken bekannt. Damit ist das Dreieck noch nicht eindeutig definiert.

    Zum Lösungsansatz 1.jpg: Das setzt die Begrenzung mit lotrechten, reflektierenden Wänden voraus. Problematisch ist, dass das "Abknicken" des Lichtstrahls gerade von der Position der Lichtquelle nicht sichtbar ist. Es handelt sich im Prinzip um eine optische Triangulation, die einen (möglichst großen) Abstand zwischen Lichtquelle und Lichtempfänger (Kamera) benötigt. Da der Robbi nur eine begrenzte räumliche Ausdehnung hat, wird es schwierig dort die nötige Basisbreite zu installieren. Man bräuchte übrigens nicht unbedingt Linien zu projizieren, ein Lichtpunkt an die Wand würde so auch genügen (und wäre wegen der höheren Leuchtdichte auch besser zu vermessen).

    Kamera vs Scannerbalken:
    Beide Systeme haben Vor- und Nachteile. Die von Schumi angesprochene Verzerrung bei Kameraaufnahmen kenne ich auch, speziell wenn man wie hier mit kurzen Brennweiten arbeiten muss. Noch problematischer sehe ich bei der Kameraaufnahme die ungleiche Beleuchtungssituation über die Bildfläche, die auch durch nachträgliche Bildbearbeitung praktisch nicht korrigierbar ist, speziell wenn die Oberfläche unter bestimmten Winkeln spiegelt. Solche Dinge sind mit dem Scannerbalken mit integrierter Beleuchtung prinzipiell besser beherrschbar. Auf einem ebenen Boden bekommt man vermutlich schon ganz brauchbare Ergebnisse mit dem Scanner, die Frage ist, was passiert wenn ein Rad in eine Delle fährt, oder über ein Schmutzpartikel. Da wird man sich nochmal einige Gedanken über das Antriebskonzept machen müssen, mal sehen, ob das Asurokonzept hier wirklich am günstigsten ist.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    Ich denke schon, dass man auch in diesem Fall mindestens 3 Baken benötigt.
    Oh, stimmt.. Oder eben doch einen Kompass

    Zu Loesungsansatz (oe: Amerikanische Tastatur ) Nr. 1:
    Ich glaub dass das in diesem Fall einfach nicht praktikabel ist... Man koennte zwar den ganzen Raum betrachten, aber die Ungenauigkeit wird schaetzngsweise zu gross sein ausserdem wird die Auswertung via Kamera warscheinlich auch viel zu aufwendig und Leistungsfressend fuer den Lappi...

    Nr. 4:
    Waehre relativ einfach zu realisieren, aber die Genauikeit ist schaetzungsweise viel zu gering...

    Also favorisiere im Moment noch die Nr. 1 mit dem drehbaren Laserpointer auf dem Robo...

    Zu den Raedern in Bezug auf Dellen im Boden und Staubkoerner:
    Vielleicht wuerden da Raupenketten wie beim RP6 abhilfe schaffen, aber dann wird der Schlupf eben auch wieder viel krasser...

    Hat jemand eine Idee wie man das machen koennte??

    MfG
    -schumi-

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen