-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Visuelle Raumerkennung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2009
    Beiträge
    6

    Visuelle Raumerkennung

    Anzeige

    Hallo Comunity!

    ich möchte mich als nächstes Projekt mit einem Roboter beschäftigen der seine Umwelt per Kameras wahrnehmen kann. Leider habe ich dazu noch kein passendes Thema gefunden.

    Die Aufgabe:
    In kurzer Zeit die Möbel und Personen im Raum erkennen und daraus einen Kurs festlegen um den Hindernissen ausweichen. Logischerweise sollen die Möbel und Personen nicht angemalt werden.
    Auch sollten die Scanner sich im Roboter befinden und nicht ausserhalb. Die Verarbeitung könnte in einem PC stattfinden.

    Der erste halbwegs sinnvolle Gedanke war eine Objekterkennung mit zwei Kameras zu realisieren und diese dann durch LAser/ Ultraschall etc. Entfernungsmessungen zu präzisieren.

    Jemand Ideen zu dem Thema?


    Danke für Eure Vorschläge!

    Viele Grüße

    Werner

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Ich würde es mit einem Strichlaser machen. Stichwort ist optische Triangulation. Es gibt auch einige Bücher. Ich habe eines bei elektor bestellt, das kann ich sehr empfehlen. Der Link zum Buch http://www.elektor.de/products/books...n.195612.lynkx

    MfG Hannes

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    Sehe ich genauso...
    Aus einer Kamera und einem Linienlaser (der eine waagerechte Linie auf den Boden vor dem Roboter projiziert) kann man recht einfach einen sehr effektiven Sensor bauen, mit dem sich das Höhenprofil (und damit gleichzeitig auch eventuelle Hindernisse) unmittelbar vor dem Roboter scannen lässt.

    Deiner Beschreibung entnehme ich allerdings, daß dir das wohl nicht ausreichen dürfte, denn dein Roboter soll wohl recht weit im Voraus schon planen wo er lang fahren kann.

    Allerdings wird das dann sehr schnell extrem anspruchsvoll...
    ich denke dazu benötigst du im ersten Schritt ein vollständiges 3D-Bild der Umgebung vor dem Roboter, denn nur aus einem 2D-Bild zu ermitteln welche Bereiche passierbar sind und welche nicht, ist kaum machbar. Um dieses 3D-Bild zu erzeugen hast du mehrere Möglichkeiten:

    - Wie gehabt Laser und Kamera, aber die ganze Konstruktion schwenkbar (senkrecht zur Orientierung der Laserlinie)
    - 2 waagerecht nebeneinander angeordnete Kameras

    es gibt noch viele andere Varianten, aber die meisten sind entweder deutlich teurer oder deutlich anspruchsvoller was die Auswertung betrifft.


    Mt 2 Kameras hast du den Vorteil, daß du schneller scannen kannst, aber das Resultat ist relativ ungenau und du brauchst viel Rechenleistung um das 3D-Bild zu erstellen. Bei der Laserscanner-Variante ist das genau umgekehrt, du brauchst länger für einen Scan (denn du musst das Teil schwenken und dabei viele Bilder aufnehmen und auswerten) aber dafür ist die Auswertung sehr viel einfacher, und das Ergebnis i.d.R. genauer.

    Ich persönlich würde da übrigens ganz klar einen Laserscanner nutzen, und diesen relativ schnell schwenken (auf Kosten der Auflösung).


    Wenn du dann erstmal dein 3D-Bild hast, musst du nurnoch Hindernisse darauf erkennen und eine geeignete Route planen (auch das ist alles andere als trivial, ja sogar noch erheblich komplexer als der Bau des Laserscanners).
    So viele Treppen und so wenig Zeit!

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    17.07.2004
    Alter
    30
    Beiträge
    81
    Unterschätz den Aufwand nicht, wenn du 2 Kameras verwenden willst (Ich spreche da aus Erfahrung).

    Wenn du die einfachsten Spezialfälle zur Stilisierung des ganzen Problems annimmst, kommst du schnell auf passable Ergebnisse was die Tiefenberechnung an sich betrifft.
    Allerdings ist alles was darüber hinaus geht ein tierischer Aufwand (respektive Objekterkennung+Matching, u.U. Tracking)

    Falls du es doch versuchen willst:
    Das Buch "Multiple View Geometry in Computer Vision" von Richard Hartley und Andrew Zisserman ist zu empfehlen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    Ich hab mir das nochmal durch den Kopf gehen lassen...

    nehmen wir an du baust einen Laserscanner, dann erhältst du Messdaten in Form einer 3D-Punktwolke in irgendeinem für uns nutzlosen Koordinatensystem.

    Im ersten Schritt sollte man daher diese Punktwolke mal in ein kartesisches Koordinatensystem transformieren, idealerweise mit dem Bot im Ursprung (z.B. Y = vor/zurück, X = rechts/links, Z = hoch/runter).

    Als nächstes gilt es, die Daten so weit wie möglich zu reduzieren, damit die Weiterverarbeitung nicht so viel Zeit benötigt.

    Dabei würde ich folgendermaßen vorgehen:

    1. Alle Voxel löschen, deren Z-Koordinate unterhalb einer bestimmten Schwelle liegt, denn es interessieren ja nur Hindernisse die der Bot nicht überfahren kann (und der Boden selbst ist eh uninteressant)

    2. Alle verbleibenden Voxel deren Z-Koordinate kleiner ist als eine zweite Schwelle (Höhe des Bots + ein bischen Luft nach oben), gehören zu einem Hindernis

    3. Voxel, deren Z-Koordinate über der zweiten Schwelle liegt, unter denen sich aber keine Hindernis-Voxel befinden, können gelöscht werden (denn das sind Hindernisse unter denen der Bot hindurch fahren kann)

    4. die Z-Koordinaten aller Hindernis-Voxel können entfernt (bzw. im weiteren Verlauf ignoriert) werden, denn die genaue Höhe eines Hindernisses interessiert den Bot nicht, da er sich nur zweidimensional fortbewegen kann.

    5. die X/Y-Koordinaten der Hindernis-Voxel werden in eine 2D Rasterkarte eingetragen, also z.B. ein weißes Bild mit schwarzen Hindernis-Pixeln.

    6. etwas Bildverarbeitung dürfte jetzt angebracht sein, konkret z.B. eine Schließungsoperation um einzelne fehlerhafte Pixel zu entfernen.

    7. Ausgehend vom Ursprung (also dem Bot) werden jetzt die durch die Hindernisse abgeschatteten (also nicht gescannten) Bereiche ermittelt und als unbekanntes Terrain markiert. Alle Pixel die jetzt noch übrig sind (also weder Hindernis noch unbekannt), müssen passierbar sein.
    So viele Treppen und so wenig Zeit!

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.434
    Zitat Zitat von Felix G
    Im ersten Schritt sollte man daher diese Punktwolke mal in ein kartesisches Koordinatensystem transformieren, idealerweise mit dem Bot im Ursprung
    Zu dem Vorschlag gibts ein klares JAIN.
    1.Kartesisches Koordinatensystem ist langfristig zum kartieren besser als Polarkoordinaten. Also ein klares JA!

    2. Der Bot als Ursprung/Nullpunkt. Wärend jeder einzelnen Messung und genau für die eine Messung, JA, und dann auch in Polarkoordinaten, da der schwenkende Sensor die sowieso schon so liefert.
    Nachdem man die von Felix G angeführten Schritte 1 - 5 durchgeführt wurden sollte man sich aber gedanken über das Gedächtniss machen.

    Der Bot soll ja nicht statisch sein sondern sich im Gelände bewegen.
    Folgt man der Methode mit Ursprung des Koordinatensystems im Bot, muß man die Karte der vorhergehenden Messung verwerfen.
    Nimmt man aber beide Karten und sucht nach gemeinsamen Landmarken um so eine größere und genauere Karte zu erhalten, bekommt man eine Übersichtskarte die das Navigieren später vereinfacht, da die Routenplanung an der bestehenden Karte erfolgen kann. nur sperren wie Menschen die von Zeit zu Zeit mal im Weg stehen, eine neuerdings geschloßene Tür oder ein Möbel das die Umzugsleute im Flur haben stehen lassen zwingen zur Neuplanung. somit ist es wie beim Autofahren. Wenn man das erste mal in eine neue Stadt kommt, fährt man langsamer und achtet auf Straßennamen um das Ziel zu finden. Später werden solche infos nur noch am Rande benötigt. Meist geht das dann so an der Großen Ampel bei der Feuerwehr links, nach der Tanke kommt der Fußweg und dann die zweite links rein. Jetzt bis zur Telefonzelle und dann die nächste rechts. Das große blaue Haus und da nebendrann ist das Ziel.
    Das sind Landmarken die markant sind und so hervorstechend sind, das sie einfacher als Straßenschilder und Hausnummern wahrnehmbar sind.
    Und aus diesem Beispiel wird noch etwas ersichtlich: Reduktion des Speicherbedarf durch Umwandlung der Rasterkarte in eine Vektorkarte.
    Da sich in 2D-Karten jedes Objekt als geschlossener Linienzug aus graden Teilstücken beschreiben lässt, kann man also eine 10 Meter lange dünne Trennwand mit zwei Datensätzen beschreiben. Jeder Punkt wird durch seine X & Y Koordinate beschrieben sowie Winkel und Entfernung zum vorhergehenden Punkt und ebenso zum folgenden Punkt.
    Man könnte zwar einen Satz von Winkel und Entfernung sparen, aber so hat man eine Fehlertolleranz eingebaut, da theoretisch jeder zweite Punkt der Karte gelöscht werden könnte ohne das ein Objekt mit grader Punktzahl unvollstandig beschrieben wäre. Allerdings benötigt man so ein drittel mehr an Speicher.
    Muß man also nach den Gegebenheiten entscheiden.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2009
    Beiträge
    6

    Viele gute Tips!!!

    Hallo Zusammen,

    Danke für die vielen sehr zielführenden Tips!!!

    Ich denke auch ein Laserscanner sollte die passende Auflösung haben, Ultraschall streut vermutlich zu sehr.
    Dann habe ich mir gedacht das man ein oder zwei Kameras nimmt.

    Wobei eine ja reichen könnte. Das Bild wird aufgelöst und Ziel wäre an den Bildern schon das Objekt zu erkennen. Die Positionsbestimmung machen wir dann über die Koordinaten des Scanners.
    Es müsste eine Datenbank angelegt werden das die Kiste zusammenhängende Objekte erkennen kann.

    Als "Gehirn" könnte man einen Laptop nehmen der im Roboter verbaut wird.

    Ich werde mir aber erst einmal das Buch bestellen und mich einlesen, bevor ich die notwendige Hardware organisieren werde.

    Viele Grüße


    Werner

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.434
    Also mit dem Thema Bildverarbeitung (Linienerkennung, Flächenerkennung, Objekterkennung) betrittst du ein seeehr weites Feld.
    Da ist neben einigen guten Büchern auch angesagt nach entsprechenden Begriffen zu Googlen und dabei vor allem an Unis in den Informatik Fachbereichen mal nach den Semesterarbeiten zu dem Themenkreis zu suchen.
    Bsp.:
    http://robotics.ee.uwa.edu.au/theses...Bourgou-SA.pdf

    Diplom oder gar Doktorarbeiten wirst du in der Regel nur vor Ort in den Bibliotheken einsehen können.
    Ich habe auf meinem Notebook immer eine Liste von gefundenen Titeln mit allen Angaben und nach Städten sortiert. Wenn ich auf Geschäftsreise in der Nähe eines interessanten Artikels bin, versuche ich immer etwas Zeit für einen Bibliotheks Besuch freizuschaufeln.
    Notebook mit externem Zusatzaccu, zusätzliche USB Platte und ein Notebook Scanner sind da hilfreich.
    Bei zügigem Arbeiten, kann ich bei einem Besuch eine 100Seiten Diplomarbeit einscannen und speichern.
    Je nach dem wie ich Zeit habe lasse ich zuhause dann OCR drüberlaufen oder drucke es einfach aus.

    Als Rechenknecht kann ich PC104 Systeme mit Windows oder Linux drauf empfehlen.

    http://www.pc104.org/specifications.php

    Kostenpunkt für ein Low Power System sind so 250,-€ - 400,-€ der Stromverbrauch ist deutlich günstiger als beim Notebook.

    Wenn der Roby schnell sein soll, nim Linux, da windows von hause aus nicht echtzeitfähig ist.
    Bei Linux einfach mal unter "echtzeitfähiges Linux" Googeln und downloaden.

    http://www.schwebel.de/authoring/elektronik-rtai.pdf
    http://www.fh-wedel.de/~si/seminare/...t/LinuxRT0.htm

    http://www.informatik.uni-bremen.de/...ngssysteme.pdf
    Etwas veraltet, stellt aber verschiedene Systeme gegenüber, bietet somit mal einen Einblick in Auswahlkriterien und einen Einstiegspunkt um nach aktuellen systemen und Komponenten zu suchen.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780

    Re: Viele gute Tips!!!

    Zitat Zitat von RoboDrache
    Ich denke auch ein Laserscanner sollte die passende Auflösung haben, Ultraschall streut vermutlich zu sehr.
    Dann habe ich mir gedacht das man ein oder zwei Kameras nimmt.

    Wobei eine ja reichen könnte. Das Bild wird aufgelöst und Ziel wäre an den Bildern schon das Objekt zu erkennen. Die Positionsbestimmung machen wir dann über die Koordinaten des Scanners.
    Es müsste eine Datenbank angelegt werden das die Kiste zusammenhängende Objekte erkennen kann.
    Prinzipiell keine ganz verkehrte Vorgehensweise...

    aber ganz ehrlich, ich würde Sachen wie Objekterkennung und Ähnliches erstmal nach hinten verschieben. Die vom Laserscanner gelieferten Daten, wie von mir beschrieben ausgewertet (ggf. mit den von i_make_it vorgeschlagenen Verbesserungen), sind bereits für einfache Navigationsaufgaben ausreichend und die Algorithmen noch recht einfach zu implementieren. Das dann mit Objekterkennung zu kombinieren, ist allerdings sehr aufwendig.
    So viele Treppen und so wenig Zeit!

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2009
    Beiträge
    6

    Aufwand vs Aufwand :-)

    Hallo!

    Wenn ich ind er Nähe eines Artikels bin, kling gut. Aber tatsächlich muss ich ziemlich viel reisen...

    Meine "Sorge" ist das ein Laserscanner zu langsam arbeiten könnte. Wobei ich jetzt am Wochenende "Kurt3d" vom Fraunhofer gesehen habe und der ist ja ziemlich schnell unterwegs gewesen. Wobei einen zu teuren Scanner zu verbauen ist meiner Meinung nach auch nicht sinnvoll.

    Schauen wir mal...

    Werner

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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