Laserscanner oder 3D Kamera ist schon ein Anfang. Mein Vorschlag wäre einen leg detector zu nehmen. Damit sollte die Unterscheidung Hindernis vs Fuß deutlich einfacher werden.
Druckbare Version
Laserscanner oder 3D Kamera ist schon ein Anfang. Mein Vorschlag wäre einen leg detector zu nehmen. Damit sollte die Unterscheidung Hindernis vs Fuß deutlich einfacher werden.
Hallo Defiant,
das mit dem leg detector ist wirklich eine interessante Idee und sicherlich auch eine Überlegung wert. Da mein Roboter allerdings nur 30cm hoch ist, wird die seeded-Variante sicherlich schwer umzusetzen. Nichtsdestotrotz kann man auch mit der unseeded-Variante sicherlich einige Informationen gewinnen. Insbesondere auch in Verbindung mit eines Sensor Fusion Konzept.
Viele Grüße,
Astro
als Idee vielleicht mal TOF Sensoren in Betracht ziehen
Die senden moduliertes Licht und werten das reflektierte Licht speziell aus um eine Abstandsinformation zu erhalten.
Vorteil ist, man kann mittels einfacher optischer Linsen bequem den Empfangsbereich tunen und die Hindernissgröße ist auch relativ irrelevant, solange es wenigstens etwas Licht reflektiert (das Betrifft auch den Boden, man müsset also eine art künstlichen Horizont haben damit man kein Licht vom Teppich oder so empfängt)
Außerdem kann man solche ToF Receiver praktisch selber bauen :) (Die geschwindigkeit und Auflösung wird nur etwas schlechter als bei den Integrierten Lösungen)
Fotoelement/Transistor + Kondensatoren + schnelle Analoge Schalter + µC mit differentiellem ADC
Hallo Ceos,
vielen Dank für deinen Vorschlag!
Ja, ich stimme dir zu. Eine ToF-Kamera (wie z.B. die von mir untersuchte Intel RealSense) ist sicherlich eine sinnvolle Ergänzung meines Systems. Ich bin mir sicher, dass ich diese in nicht allzu ferner Zukunft einbinden werde. Hier lassen sich viele zusätzliche Informationen gewinnen und mittels Sensorfusion kann die Stabilität des Gesamtsystems deutlich erhöht werden.
Zunächst jedoch arbeite ich an einem Ultraschallsensor / LIDAR Konzept. Ich habe mich dazu entschlossen, die US-Sensoren in sich kreuzenden Bahnen anzuordnen. Dadurch erhalte ich eine höhere Genauigkeit, da ich Felder identifizieren kann, in denen sich die Detektionsbereiche der Sensoren überschneiden. Hier mal eine grobe Skizze: Anhang 33236
Viele Grüße,
Astro
denk daran dass gleichzeitiges senden der sensoren zur interferenz untereinander führt, die arbeiten schließlich mit echo laufzeit und wenn sensor 1 genau das gleiche brüllt (gleiche frequenz) weis sensor 2 garnicht ob es überhaupt sein eigenes echo ist, du brauchst also US sensoren die immer abwechselnd abtasten oder du machst ein empfänger-array und einen einzigen senderZitat:
die US-Sensoren in sich kreuzenden Bahnen anzuordnen
Hast Du die R 200 schon? Ist ja nicht wirklich günstig ! ? Ich liebäugle gerade mit den deutlich günstigeren, aber sicher leistungsschwächeren VL53L0X/ToF-breakout, die es bei pololu (und anderen) - je Stück - für den Bruchteil gibt. Dort bin ich aber noch nciht über die maximale Messrate gestolpert - nur über die angegebene, gute Funktion von I²C bis 400 kHz.Zitat:
.. ToF-Kamera (wie z.B. die von mir untersuchte Intel RealSense) ist sicherlich eine sinnvolle Ergänzung meines Systems ..
Die Warnung von Ceos wegen der Interferenzen bei US kann ich nur bestätigen. Ich habe ein Pärchen, die krächzen in leicht unterschiedliche Richtungen - entsprechend der Keule aus dem Datenblatt. Zur Maximierung der Abtastrate werden die wechselweise so bedient, dass ich die Nummer zwei starte, >unmittelbar< bevor ich die Daten von der Nummer eins abhole und sinngemäß. Das klappt ganz gut, aber die Messsfrequenz ist dann statt rund 15 Hz nur noch gute 7,5 Hz. Deine Messanordnung "über Kreuz" mache ist gut, dieses System nutze ich auch um mich über untere Bereichsgrenzen etwas hinwegzuschummeln.
er spricht von einer ToF Kamera, die hat mehrere pixel die entsprechend aufgebaut sind und kann dir quasi ein 3d abstands-bild generieren, deine version kann stumpf nur den abstand von allem messen was gerade das modulierte licht reflektiert, also nur das "hellste" objekt oder einen wert dazwischen wenn man 2 gleich helle objekte hat
meine idee war es den fototransistor in diesem sensor zum beispiel mit einer linse nur eine bgrenzten bereich sehen zu lassen um dann mit mehreren dieser sensoren abzutasten
aber am besten wäre es nur eine einzige modulierte lichtquelle zu haben und dann mehrere empfänger (achtung das geht nicht indem du die LEDs der anderen sensoren abklebst, die empfänger müssen mit der modulierenden lichtquelle synchron laufen und das geht eben nur pro sensor, aber neuere sensoren können die modulation anpassen um interferrenzen zu minimieren)
Ja, daran habe ich gedacht. Ich schalte die Sensoren so nacheinander, dass die Sensoren auch möglichst nicht nach ihrem direkten Nachbarn "funken". Somit wird die Wahrscheinlichkeit einer Interferenz weiter minimiert. Zudem halte ich Abklingzeit (bei mir 70ms) ein.
Bezüglich der RealSense: Mit den Messergebnissen bin ich soweit sehr zufrieden. Auch gibt es viele Source Code Beispiele und ein großes Support Forum von Intel. Die Library ist recht gut dokumentiert. Dennoch ist es relativ komplex mit der Kamera zu arbeiten, da man viele programmiertechnischen Aspekte beachten muss, so wie z.B. Zeiger und Multi-Threading. Besonders für Programmier-Anfänger würde ich die Kamera nicht empfehlen, ebenso nicht für Leute, die sich vor C++ scheuen. (Es sind auch andere Sprachen, so wie z.B. Java und C# verfügbar, allerdings muss man hier öfters „unmanaged Code“ einbinden, was das Ganze in meinen Augen unnötig komplizierter macht.) Wenn man allerdings mit diesen Umständen umgehen kann, erhält man sicherlich ein mächtiges Sensorpaket. Toll finde ich vor allem den Aspekt, dass man neben der reinen ToF-Kamera, die Tiefenwerte liefert, auch ein Farbbild bekommt. Somit könnte man theoretisch auch ein Computervision Algorithmus nebenherlaufen lassen, um das Gesamtsystem noch weiter zu stabilisieren. Klar, das braucht sehr viel Rechenleistung, aber die ist ja heutzutage selbst auf Notebooks recht gut verfügbar. Als Ausblick bleibt ja noch die CUDA GPU-Beschleunigung, welche die Berechnung noch weiter antreiben könnte. Ich denke, im Bereich ToF-Kamera/Computervision steckt enorm viel Potenzial.
Viele Grüße, Astro
_______ EDIT1 _______
Auch toll finde ich bei der RealSense Kamera, dass man damit theoretisch eine 3D Map der Umgebung erstellen kann. Somit kann man die Orientierung deutlich verbessern. Zudem kann neben den XYZ Werten der Map auch Farben hinzufügen, sodass die Präzision gesteigert werden kann. Ihr merkt, ich bin von dem Potenzial der Kamera sehr begeistert… :D
Allerdings kann IR-Strahlung (wie z.B. von direktem oder indirektem Sonnenlicht) die Messung stark beeinflussen. Hier müsste man dann mittels Sensor Fusion durch das Einbinden anderer Sensoren, wie z.B. RADAR oder Ultraschall Abhilfeschaffen. Aber nun genug der Werbung für RealSense! ;)
Ein paar Anmerkungen:
- Du kannst die 3D-Kamera auch für den LegDetector benutzen. Dafür wird ein Laserscanner "simuliert" indem vom Tiefenbild nur n horizontale Zeiten (z.B. nur die mittlere) verwendet werden.
- Bei der Verwendung von ROS kannst du dir die direkte Programmierung für die RealSense sparen, da ROS einen Treiber mitbringt.
- Ich hab zwar auch eine ältere RealSense, bisher allerdings wenig verwendet. Ich verwende immer noch die Asus Xtion. Meine Erfahrung ist aber bisher, dass sich beide Techniken bei direktem Sonnenlicht ähnlich verhalten: Ein Totalausfall.
- Ich habe auch 3D-Kamera und Sonarsensoren an meinem Roboter. Zur "Sensor Fusion" verwende ich aber eine einfache OR-Verküpfung. Das dazu passende Standardwerkzeug unter ROS ist die layered costmap.
Der Wellenlängen-Empfindlichkeitsbereich der Empfänger liegt (MEISTENS) genau in dem Bereich der bei natürlichem Sonnenlicht kaum zu finden ist, da gibt es wohl ne Lücke im Spektrum der Sonne :)Zitat:
Allerdings kann IR-Strahlung (wie z.B. von direktem oder indirektem Sonnenlicht)
Außerdem ist das Licht moduliert. Nur ein direkter Lichteinfall in die Linse würde stören. Solange der empfangende Pixel nicht in Sättigung geht wird man trotzdem Tiefeninformation bekommen.
EDIT: Zur Info, ich habe Berufsbedingt ne Schulung von Texas Instuments für ihren TOF Sensor mitgemacht und hab verschiedene Szenarien ausprobiert. Die Testgeräte hatten allerdings alle jeweils 4 Laserdioden für maximale Helligkeit und selbst 8 Kameras die gelichzeitig in den gleichen Raum hinein blitzen hatten fast keine Interferenz, nur wenn man direkt in den Lichtstrahl eines anderen Modul geguckt hat gabs eine Übersteuerung der Pixel nahe der Lichtquelle.