PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Sick"-ähnlicher Laserscanner im Selbstbau?



toemchen
29.11.2005, 21:13
Hallo Gemeinde,

nachdem mein Roboter jetzt mechanisch wirklich langsam ok ist, muß ich wohl das Thema "Navigation im Raum" angehen.

Für Laserscanner von Sick ist mein Robbi, wenngleich nicht klein, doch nicht ausreichend, und mein Geldbeutel bzw. die Lust, ihn auszuleeren auch nicht.

Bei früheren Suchen hatte ich schon einmal eine gute Seite gefunden, bei der jemand mit einem linienprjezierenden Laser und einer Kamera experimentiert. Bzw. wurde in einem Thread darauf gestoßen. Kann sich jemand daran erinnern? Manfred?

Folgendes Prinzip schwebt mir vor: (wahrscheinlich roter) Laserfächer ca. 5cm über dem Boden, vielleicht auch nur 2cm. Kamera etwas weiter oben, schaut parallel oder sogar nach unten geneigt. (Dann wird das Rechnen wohl aufwendiger). Über entsprechende Bildverarbeitung, eventuell sogar mit An/Abschalten des Lasers und Dunkelbilddifferenz, die projizierte Linie (falls der Laser auf etwas trifft) extrahieren. Aus der Höhe der Linie ein Entfernungsprofil errechnen. Damit erkennt man alle Hindernisse, die auf dem Boden stehen. Die Mitte eines Schrankes, der auf Füßen an seinen Ecken steht, natürlich nicht. Aber Lücken gibts bei einem einfachen Prinzip natürlich immer.

So, das ganze würde ich jetzt gerne langsam anpacken.

Für erste Versuche vielleicht mit der vorhandenen Webcam...

Später lieber mit einer Kombination aus (einfach digital auslesbarer) Kamera und Microcontroller. Müßte aber schon ein mächtiger sein... Habe ich keine Erfahrung mit... Mag jemand, der programmierbegeistert ist, mitmachen?

Und hat jemand schon einmal das digitale Kameramodul ausprobiert, das Teil der CMU-Cam ist, aber auch einzeln zu kaufen ist?

Am Schluß darf das ganze ca. 200 Euro Material und beliebig viel Arbeit gekostet haben, und sollte max. 10x10x7 cm groß sein.

Unmöglich?

Toemchen

m.artmann
29.11.2005, 22:02
Hallo Toemchen,

meinst Du diesen Link hier ?

http://b-duschinger.homepage.t-online.de/index.html

Gruß
m.artmann

Manf
29.11.2005, 22:42
Ich habe unter dem Thema den Duschinger-link und noch einen.
http://b-duschinger.homepage.t-online.de/index.html
http://www.marwedels.de/malte/3dscanner.html
Manfred

30.11.2005, 11:42
Der Duschinger-Link ist schon mal super Lesestoff, und der darin am Anfang enthaltene Hinweis auf die Seite von Ken Maxon ist derjenige Link, den ich von damals noch in Erinnerung hatte. Dankeschön!

Jetzt noch Inputs von der technischen Seite.. Am besten aber: "Ich hab' sowas, kannst von mir kaufen." hihi

Der zweite Link bezieht sich auf einen langsam per Servobewegung abtastenden Sensor. Mein Traum wäre jedoch: Eine komplette Einheit, die das Erkennen eines Hindernisses in einem vordefinierten Bereich meldet, und das sehr schnell zum Bremsen des Roboters. Oder ein ganzes Profil abliefert, so ca. mit 100-250ms Wiederholrate.

Naja, ich werde jetzt erstmal bei Duschinger schmökern und mich dann wieder melden.

Tom.

01.12.2005, 16:56
Jetzt muss ich mal draufloslabern, ohne richtig viel Ahnung zu haben. Berichtigt mich!

Bernhard Duschinger verwendet eine S/W-Kamera mit Videoausgang, filtert mit einem sehr guten optischen Filter das rote Laserlicht hervor und kann sich so einigermaßen darauf verlassen, daß der rote Punkt innerhalb jeder abgetasteten TV-Zeile so hervorsticht, daß er mit einer Komparatorschaltung im TV-Signal sicher detektiert werden kann. Die Abstandsmessung reduziert sich somit auf eine Zeitmessung innerhalb jeder TV-Zeile, bis der rote Punkt drankommt. Sehr geschickt.

Über die Sicherheit bei wechselndem Umgebungslicht bin ich mir nicht ganz im klaren. Lieber wäre mir schon eine Bildverarbeitung. Vielleicht nur zeilenweise, über einen Mustervergleich den einige Pixel breiten roten Peak suchen.

Damit sind wir schon bei der Vorstufe zu handgestricktem Videocapture, denn ich muß ja eine ganze Zeile per A/D-Wandler sampeln und in den Speicher stecken. Wenn das von der Geschwindigkeit her mit Hausmitteln geht, kann man wohl auch gleich das ganze Bild digitalisieren. Dann gehts gleich weiter: Ein Dunkelbild mit abgeschaltetem Laser und eines mit Laser aufnehmen und voneinander abziehen. Dann könnte man sich den tollen Rotfilter vielleicht sparen oder durch einen einfacheren ersetzen. Bei der Verarbeitung eines ganzen Kamerabildes muß man die Kamera auch nicht drehen, damit die Zeilen senkrecht stehen. (Wenngleich das eine pfiffige Idee war)

Das war ein bißchen über die Prinzipien schwadroniert, jetzt noch ein bißchen überschlägige Rechnerei:

CMOS-Kameramodul von Conrad, für 12€ mit 352x288 Pixel. Das sind bei 25 Bildern/s ca. 2,5MHz Pixelfrequenz bzw. 0,4us pro Pixel. Oder das ganze doppelt wegen 50 Halbbilder/s?
A/D-Wandler: Kurz bei Farnell geschaut, 8bit mit 0,018us Wandelzeit für etwa 9€ (ADC1173).
Fehlt natürlich noch der muskelstarke spurtstarke Mikrocontroller.
Und der Linienlaser (ca. 40€ bei Conrad) Oder den auch selbst bauen, etwas billiger, aber vor allem vielleicht besser anzusteuern für die schnelle Dunkelbild/Aktivbildabfolge.

So, bin ich verrückt?
Sehe ich alles viel zu rosig?

Bitte Kommentare.

Manf
01.12.2005, 18:00
Bei der Geschwindigkeit mit 2,5MPixel/s wird es vielleicht etwas voll am Controller. (DMA?)
Ich könnte mir vorstellen, dass man das Videosignal abtastet und die Daten über die Dauer von mehreren Bildern hereinholt.

Hat man erst mal ein Sampling Interface, dann kann man mit einer einstallbaren Phasenlage ab Zeilenbeginn und mit einstellbarer Abtastrate die Daten mit beliebig tiefer Rate und auch mit reduzierter Auflösung hereinholen was am Anfang ja auch schon mal ganz gut wäre.

Die Abtastung eines 2,5MHz Signals (bzw entsprechnd tiefer) geht mit relativ einfachen Mitteln wie Analogschaltern MC4016.
Nur erst mal als Richtung zum Nachdenken.
Manfred

toemchen
02.12.2005, 08:42
Bei der Geschwindigkeit mit 2,5MPixel/s wird es vielleicht etwas voll am Controller. (DMA?)


Ja Manfred, das sind die Fragen, die sich bei mir auch aufwerfen, die aber mein Können weit übersteigen. Ich kann nur mutmaßen. Vielleicht klinkt sich ja noch jemand ein.

DMA kenne ich als Begriff aus der PC-Technik. Wie das aber ein Microcontroller nutzen soll... Dann muß man externes RAM einsetzen, das sowohl von der DMA-Logik als auch vom Controller angesprochen werden kann, oder?

Vielleicht geht es doch mit einem flotten Controller. Ich wäre auch durchaus damit zufrieden, mit Undersampling aus den horizontal 352 Pixeln nur ca. 100 zu machen. Bei einem analogen S/W-Signal geht das glaube ich, oder? Der Controller müßte nur die 8bit des Wandlers, die dieser hoffentlich parallel anbietet, von einem Port in den Speicher ablegen.

Lieber wäre mir, ganz schnell ein komplettes Bild zu grabben (oder ein Dunkelbild und eins mit Laser) und sich danach Zeit mit der Verarbeitung zu lassen. Ich denke, ein Entfernungsprofil alle 250ms würde schon ausreichen.

Gerade habe ich auf m.Artmanns Seite die CMU-Cam 2 in Aktion gesehen. Die folgt ja wirklich sehr schnell und sicher einem roten Ball. Leider ist in der Firmware, soweit ich gesehen habe, keine Auswertefunktion enthalten, die mir hilft. Könnte man die nicht umprogrammieren?

m.artmann
02.12.2005, 14:08
Mit der CMU2Cam kannst Du es nur so machen wie Du es oben schon geschildert hast.
Laser ausgeschaltet, Bild aufnehmen, Laser einschalten und wieder ein Bild aufnehmen.
Die CMU2Cam gibt Dir dann die Koordinaten der Differenz der beiden Bilder,
also wo der Laserstrahl ist.
Das Funktioniert aber nur wenn der Roboter dabei steht.
Rückt er zwischen den beiden Bildern auch nur einige cm von der Position ab,
dann sind es zuviele Unterschiede in den Bildern.

Gruß
m.artmann

Bernhard667
03.12.2005, 10:25
Hallo,
freut mich, das euch meine Seite gefallen hat.
Die Geschwindigkeit dabei ist Echtzeit, d.h. 50/25 mal abtasten pro Sekunde.

Der Ansatz mit der CMU Cam klingt auch ganz gut, sollte klappen könnnen. Welche Ortsauflösung dabei erreicht werden kann würde mich jedoch interessieren. Ich vermute, man kommt etwas schlechter weg.
Allerdings: Wenn es für die Anwendung reicht, dann ist es ja gut.

Bernhard

Lunarman
03.12.2005, 10:34
Über die Sicherheit bei wechselndem Umgebungslicht bin ich mir nicht ganz im klaren. Lieber wäre mir schon eine Bildverarbeitung. Vielleicht nur zeilenweise, über einen Mustervergleich den einige Pixel breiten roten Peak suchen.

Wenn du mit Peak den Laserpunkt meinst, dann funktioniert es nicht. Es ist eine S/W Kamera. Und wenn du eine farbige benutzt, und es kommt Rauschen dazu, dann hast du ganz viele lustige rote Punkte. Kann auch sein, dass ich zu doof bin...

03.12.2005, 11:04
Wenn du mit Peak den Laserpunkt meinst funktioniert es nicht. Es ist eine S/W

Und wenn man dann einen ganz schwarzen Laser nimmt?

Lunarman
03.12.2005, 11:38
Wenn du einen schwarzen Laser kennst geht das. Aber schwarzes Licht hab ich noch nicht gesehen, und sogenanntes schwarzes Licht ist nicht wirklich schwarz. Und ausserdem, wenn der strahl gerade auf etwas schwarzes fällt?
Zum Beispiel eine PS, die auf dem Boden steht? Na dann, Glück auf, dann denkt die Kiste nämlich, es steht im Freien, weil der Strahl gar nicht zurückkommt. Hihi

toemchen
03.12.2005, 13:32
Hallo?!?
Man muß natürlich einen schwarz/weißen Laser nehmen, schließlich ist es ja eine S/W-Kamera.

Spaß beiseite.
Mal nochmal Berhards Prinzip mit meinem Traumprinzip vergleichen.

Bernhard: Reduziert das Thema "Bildverarbeitung" geschickt auf das Detektieren eines Peaks in einem elektrischen Signal. Das Grundlevel des Signals, aus dem der Peak herausstechen soll, wird vorher automatisch an die Umgebungslichtverhältnisse angeglichen. Da weiß ich jetzt noch nicht, einmal ganz am Anfang beim Einschalten der Anlage, oder vor jedem Bild?
Vor allem kann ich nicht abschätzen, wie sicher das funktioniert. Z.B. im Bild ist ein heller Fleck, weil Sonne durch ein Fenster hereinscheint. Oder insgesamt ist die Lichtsituation zwar sehr dunkel, aber irgendwo ist eine Reflektion einer Lichtquelle (und zwar nicht der Laser...)
Wie gut der enge Rotfilter wirkt, kann ich nicht richtig abschätzen. Müßte man kaufen und sich die Kamerabilder einfach mal ansehen. Kostet aber anscheinend schon 50 oder 80 Euro, wenn ich im Edmund-Katalog richtig nachgesehen habe.
Also, zusammenfassend: Sehr gut den Aufwand reduziert, der Mikrocontroller hat nicht viel zu tun, das ganze ist sehr exakt, schnell und vollständig (jedes der 25/50 Bilder/s). Ein bißchen stört mich der teure Filter.

So, jetzt meine Ideen (da lasse ich mich aber gerne noch als Träumerle berichtigen):
Doch ein ganzes Bild per A/D-Wandlung in den Speicher schlucken. Und gleich das nächste Bild, mit abgeschaltetem Laser, auch noch. Dann rechnen. Erstmal Differenz bilden. Ich erhoffe mir von dieser Dunkelbild-Differenz eine ähnlich gute Wirkung wie vom Rotlichtfilter. Einen günstigen breitbandigen Rotlichtfilter davor schadet ja trotzdem nicht.
Dann den Peak in jeder Zeile suchen. Da kann man mit einer Art Schwelle rechnen (so wie das Triggern per Komparator), oder auch einen Mustervergleich drüberlaufen lassen. So richtig kenne ich mich mit Bildverarbeitungsalgorithmen und ihrer benötigten Rechenzeit nicht aus, kann mir nur so in etwa die Prinzipien vorstellen.
Und wenn die Rechnerei beendet ist und das Ergebnis abgeliefert, das nächste Bildpaar aufnehmen.
Zusammenfassung: Weniger Aufwand für den Filter, die Hoffnung auf störsicherere Funktion, etwas mehr Aufwand für Elektronik (A/D-Wandler), aber: Riesen-Anforderungen an Rechner und Software. Und dabei habe ich mit sowas gar keine Erfahrung, aber man wächst ja an seinen Aufgaben.

Bernhard, schön daß Du jetzt auch bei der Diskussion dabei bist.
Ich bekomme jetzt nämlich langsam Lust, Dein Prinzip erstmal doch nachzubauen, damit ich auch bei den Grundlagen genau hineinsehen kann. Zum Beispiel das rotgefilterte Kamerabild mit Laserstrich am Fernseher ansehen und daraus Anhaltspunkte für die Störsicherheit bei schwierigen Lichtverhältnissen finden.

Noch etwas: Sieht jemand eigentlich eine Chance, die CMU-Cam durch Ändern der Firmware dafür zu mißbrauchen? Oder wäre das in der CMU-Cam enthaltene digitale Kameramodul etwas, das kann man ja halbwegs günstig kaufen. Aber von der grundsätzlich anfallenden Datenmenge ist man ja trotzdem nicht befreit. Man kann nur vermutlich die Auslesegeshwindigkeit selbst bestimmen.

Bis auf weiteres
Tom

toemchen
03.12.2005, 13:38
Noch etwas zur Anwendung:
Vor allem will ich eine sichere Hinderniserkennung ohne Ultraschall und ohne gewisse Lücken. Ich könnte je z.B. auch einige Sharp-Sensoren in einem Fächer vorne am Roboter anbringen, aber so dicht kann man sie gar nicht packen, daß man nicht doch fröhlich ein Tischbein aufgabelt....
Erst in der zweiten Stufe will ich dann ein richtiges Profil an den Hostrechner hochmelden, damit der das Hindernis richtig einordnen kann (z.B. Zimmerecke, paßt zum bisher getrackten Weg und zur aufgezeichneten Karte, oder z.B. Stuhl mit vier Beinen, stand gestern auch ungefähr in der Gegend...)

Manf
03.12.2005, 14:06
Nur ein ganz kleiner Aspekt am Rande:
Wenn Du ein Bild von der Kamera mit Tageslicht und Laser hast kannt Du ja mal zum Test ein Paar rote Selbstbau-Filter vor die Kamera schieben bevor Du einen teuren Filter kaufst.
Manfred

toemchen
04.12.2005, 18:59
Ok, ich sehe schon, meine erste Hausaufgabe ist: Linienlaser und CMOS-Kamera besorgen und Tests machen.

Es gibt einen von ELV für 35 Euro, einen von Conrad für 50 Euro. Auf ebay hab' ich so schnell nichts gesehn. Bei Pollin kann man für 7 Euro einen Laserpointer-Leuchtkopf haben, die Zylinderlinse (die bei ELV sogar schön auf dem Bild sichtbar ist) muß man dann selbst improvisieren.
Allen gemeinsam ist, daß sie sich nur über das Schalten der Versorgungsspannung ansteuern lassen, das wird dann nicht so schnell gehen, wenn auch nur die geringste Pufferung in der Ansteuerungselektronik ist. Wäre aber später vielleicht wichtig für die Dunkelbildschaltung. Ich habe schon Lasermodule mit einem gesonderten Modulationsanschluß gesehen.
Was meint Ihr? Lassen sich die Linienlaser dennoch schnell schalten? Sollte ich gleich das ganze Ding aus den einzeln erhältlichen Modulen Ansteuerelektronik, Laserdiode, Kollimator und Zylinderlinse selbst bauen?

jörn
04.12.2005, 20:19
Das Modul von Conrad für 50 Euro ist nicht besonders leuchtstark, so dass man sie bei Tageslicht selbst auf relativ geringe Entfernung kaum noch sehen kann. Auch die meisten Selbstbaulösungen (zumindest meine mit rotierendem Spiegel oder selbstgeschliffener Linse) haben das gleiche Problem. Ich denke, die optische Ausgangsleistung von < 1mW ist einfach zu gering. Es lohnt sich deshalb wirklich, ein paar Euro mehr für den Laser auszugeben und dafür einen mit höherer Leistung zu beschaffen.

Gruß,

Jörn

m.artmann
04.12.2005, 21:46
Und was haltet Ihr von folgendem Linien Laser?
eBay Artikelnr. 6002059305

Laut Händler ist bei 1m Abstand der Laserstrahl ca 40-50 cm Breit und 2mm Dick.

Über die Leuchtstärke kann ich allerdings nichts aussagen.
Für 10 Euro aber vielleicht ein Versuch wert.

Gruß
m.artmann

Bernhard667
06.12.2005, 20:32
Hallo,

zu der Frage nach der Erkennung der Umgebungshelligkeit.
Aktuell mache ich es nur einmal beim Einschalten. Nachdem jedoch so ein Durchlauf nur ~100msec dauert, spricht nichts dagegen, es auch öfter zu machen. Die ermittelte Schwelle gilt dann für alle Zeilen des Bildes. Der hellste Punkt gibt also die unterste Schwelle vor.
Prinzipiell könnte man das auch per Zeile machen. Dann braucht man jedoch einen flotten DAC an 8 Portpins und muß per PEC des C164 zu jede r Zeile die passende Schwelle vorgeben.
Aufwand hoch, Verbesserung vermutlich eher gering.

Zum Laser:
Ich verwenden den von ELV. Am Anfang erschrak ich etwas, nachdem ich Ihn auspackte und einschaltete. Es war kein Linien Laser sondern ein Fransen Laser. Die Line war mehr ein ausgefranstes Band.
Nach Überwinden der Ehrfurcht habe ich die Linse abgestaubt, und dann war es wirklich eine Linie.
Vom Selbstbasteln des Linienlasers halte ich nicht soviel. Bei mir kommt bei sowas dann Gemurkse raus. Dann habe ich meine schöne Zeit verbraten und das Resultat ist unbefriedigend. Aber ich will keinen aufhalten.

Bei dem Laser von m.artmann scheint der Öffnungswinkel (1m Abstand, 50 cm breite Linie) etwas klein zu sein. Man muß dann mit dem Laser weit weg von den Objekten (hängt natürlich von der Anwendung ab).

Bei der Laserenergie bitte Maß halten, nicht daß sich jemand die Netzhaut abbrennt, die 1mW müssen reichen, lieber filtern.

Der Laser hat nur 2 Anschlüsse. Soweit ich das am Scope gesehen habe kann man ihn trotzdem sehr schnell einschalten. Es dauert auf jeden Fall <1TV Zeile bis er stabil Leistung bringt.

Für die Leute, denen der Filter zum Testen zu teuer ist:
Probiert die Sache doch zuerst einfach im Dunklen aus. Da erhaltet ihr das bestmögliche Signal zu Störsignal Verhältnis.
Hatte ich ganz am Anfang auch mal probiert.


CMOS Kamera:
Ich hatte eine CCD verwendet, da laut den Datenblättern (Conrad Katalog) die CCD eine höhere Empfindlichkeit (minimale Beleuchtung) hatten als die CMOS. Ich kann aber nicht angeben, wie stark sich das auswirkt.

Gruß und noch viel Spaß
Bernhard

toemchen
07.12.2005, 09:13
Hallo Bernhard,

vielen Dank für Deine fundierten Aussagen, z.B. zur Einschaltzeit. Dann ist das für mich erstmal klar: Den Laser bei ELV einkaufen. Und die dunkle Jahreszeit haben wir ja gerade...

CMOS-Kamera: So ein CMOS-Modul ist halt herrlich günstig (12€) und kompakt. Da werde ich nach dem Prinzip vorgehen: Einfach mal probieren. Klar, die CCD-Module und Kameras, gerade von ELV, glänzen mit Empfindlichkeiten bis herab zu 0,003 Lux statt 1 Lux beim CMOS, aber kosten auch ein Vielfaches. Wenn so etwas nach dem Ausprobieren nötig erscheint, fallen die verschwendeten 12€ auch nicht mehr ins Gewicht.

Berichte demnächst von Versuchen.

Tom.

toemchen
28.12.2005, 09:28
Kurzes Update:

Habe ein CMOS-Kameramodul von Pollin (~20€) und den Linienlaser von ELV gekauft.
Gestern bin ich endlich zum Ausprobieren gekommen.

Die Empfindlichkeit der Kamera scheint auszureichen, bei Dunkelheit war die Laserlinie, sogar in 3m Entfernung an der Wand, im Kamerabild sehr deutlich zu sehen.
Bei normalem Raumlicht muß das Auge schon "bildverarbeiten", um die Laserlinie zu sehen.

Nun gehts um den Rotfilter. Ein mit Folienmarker rotgemaltes Stück Plastik färbt für das Auge alles rot, die Kamera läßt sich davon aber kaum beeindrucken. Das Bild sieht fast gleich aus, d.h. die Laserlinie kommt nicht deutlicher raus. Ich werde jetzt versuchen, dichtere Materialien zu finden, aber werde noch bei Massefiltern, sprich rot durchgefärbtes Plexiglas oder so, bleiben. Der Interferenzfilter ist die letzte Konsequenz.

Außerdem brauch ich wohl einen Framegrabber, um die Arbeit zu dokumentieren. Fernsehbildschirm abfotografieren ist besch...

Bald mehr.
Tom.

ThunderD
28.12.2005, 11:38
Verwende doch ne grüne Folie, dann hast du eine richtig schöne schwarze Linie. Ob die auch so einfach im Tv Bild zu finden ist, ist die andere Frage.

Manf
28.12.2005, 13:32
Verwende doch ne grüne Folie, dann hast du eine richtig schöne schwarze Linie. Ob die auch so einfach im Tv Bild zu finden ist, ist die andere Frage.
Das ist nahezu genial, rot beleuchten und dann das rote Licht durch ein Filter vor der Aufnahme sperren. Nur dunkler als ohne rote Beleuchtung wird es damit nicht werden.
Manfred

Felix G
28.12.2005, 14:24
Das Problem ist ja, daß sowohl weiße Flächen als auch rote Flächen (oder Linien in diesem Fall)
durch ein Rotfilter betrachtet nahezu gleich aussehen. (das ist auch bei den sündhaft teuren Interferenzfiltern nicht anders)

Eine Farbkamera wäre also eine wesentlich sinnvollere Anschaffung als ein Interferenzfilter.
(und vermutlich nichtmal teurer)

jörn
28.12.2005, 15:15
Vielleicht könntest Du mit Filtern so viel Licht ausblenden, dass nur noch der lichtstarke Laser durchkommt. Ich habe das in einem ähnlichen Projekt mit einer S/W-Kamera über die Belichtungszeit geregelt, was aber bei der Verwendung von Kameramodulen wohl schwer umsetzbar ist.
Unter https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=785 habe ich einmal Beispielbilder hochgeladen, die das damit aufgenommene Streifenbild zeigen.

Gruß,

Jörn

toemchen
28.12.2005, 20:05
Also über den Grünfilter bin ich auch gestolpert... Schaue ich nicht weit genug über den Tellerrand? Beherrsche ich die grundlegenden Techniken der Signalmischung und -filterung nicht?

Vorschlag, um mit verbundenen Augen Eiswürfel und Steinchen durch Befühlen auseinanderzusortieren: Dicke Handschuhe anziehen. Jetzt spürt man die Kälte nicht mehr. Die Eiswürfel müßten jetzt verschwinden.

FelixG:
Bei sehr hellem Umgebungslicht stimme ich Dir zu. Es müßte aber schon so hell sein, daß die rote Linie auch mit dem Auge schwer zu erkennen ist. Ansonsten sage ich: Mehr rotes Licht bei Pixeln, die die Laserlinie sehen. Filtern reduziert andere, zufällige Farben, die nicht vom Laser kommen können. Kann also nur gut sein. Und ein sehr enger Filter speziell für das Laserrot ist am besten... Oder?
Farbkamera: Ja, die Farbkamera ist wohl kaum teurer. Und in der Bildverarbeitung farbfiltern wohl eine Möglichkeit. Aber ich glaube, dieses Low-Level-Videograbben, was ich vorhabe, ist auf S/W viel einfacher zu beherrschen. Und ein einfacher Rotfilter kostet echt fast nix (1€)

Jörn:
Die Kameras regeln ihre Empfindlichkeit glaube ich ohnehin selbst. Von daher meine ich, daß ich nur auf optischem Wege (nämlich Filtern) für die Kamera ein Bild bieten muß, auf dem die nebensächliche Information möglichst flau ist und die Laserlinie möglichst stark rauskommt. Das Videosignal ist dann hoffentlich automatisch so ausgesteuert, daß der digitalisierende A/D-Wandler gut damit zurechtkommt.
Die Bilder habe ich mir angeschaut - wow! Du projezierst ja ein ganzes Gitter. Und gewinnst dann vermutlich ein 3D-Bild. Ich wollte mich darauf beschränken, einen zweidimensionalen Schnitt in einer Ebene zu erstellen, die ca. 2cm über dem Boden liegt. Die meisten Hindernisse stehen ja irgendwie auf dem Boden.

Alle:
Vergessen wir nicht die Möglichkeit, das Dunkelbild ohne Laser vom Bild mit Laser Pixel für Pixel zu subtrahieren! Auf diesen Effekt setze ich ganz große Hoffnungen, nur der Weg dahin ist noch weit. Muß mir jetzt echt einen Framegrabber fürn PC besorgen. Sollte es doch USB-mäßig und gebraucht für nen 20er oder drunter geben...

Bis bald
Tom

ThunderD
29.12.2005, 00:40
Meine Güte war ja nur eine Idee, verarschen kann ich mich doch selbst auch danke :)

Ansonsten hättet ihr gleich nen IR Laser nehmen können und mit nem IR Filter nur die Linie sichtbar machen können. Ja ich weiß im normalen Licht ist auch IR enthalten, aber das dürfte wohl nicht alzu hell sein.

Eine ganz andere und wiedermal blöde Idee. Geht nicht irgendwas mit Polarisationsfilter machen? Wie weiß ich selbst nicht, aber vielleicht gehts ja.

jörn
29.12.2005, 01:16
Wenn Du schon USB in Betracht ziehst möchtest, so würde ich zur Verwendung von einfach Webcams anstelle von Kameramodulen mit Framegrabber raten (auch preislich sollten diese deinen Vorstellungen entsprechen). Dort kann man dann tatsächlich die Belichtungszeit herunterregeln (zumindest geht das mit meinen Logitechmodellen) sowie den Farbfilter per Algorithmus umsetzen und die Einbindung in verschiedene Hochsprachen sollte auch keingroßes Problem darstellen.
Ich benutze ebenfalls einen einfachen Linienlaser, den ich allerdings in ca. 20 Positionen schwenke und dann die Einzelbilder zu dem Linienmuster überblende. Es ergibt sich damit ein recht zuverlässiges 3D Bild (abgesehen von Objekten aus Glas). Das untere Bild zeigt diese Daten als Graustufen (helle Objekte sind näher) und als Wireframe, den ich aber nicht richtig zu drehen wußte (Ist jetzt eine Aufsicht).

Gruß,

Jörn

toemchen
29.12.2005, 10:30
@ThunderD:
OK OK OK. Kommt nicht wieder vor.
IR-Laser: Die roten gibts halt wie Sand am Meer, IR ist schon etwas exotisch. Das war das eine. Zum anderen kann man bei Rot das Ganze beobachten und mit dem Auge kontrollieren, UND: Das Auge schließt sich reflexartig bzw. man wendet sich unwillkürlich blitzschnell ab, wenn man direkt in den Strahl blickt. Bei IR läßt man sich aber in aller Seelenruhe die Netzhaut brutzeln. Und zuletzt, hast Du ja selbst schon vermutet, schwirrt wohl auch IR-Licht genauso wie Rotlicht in der normalen Umgebung herum. Wieviel, weiß ich jetzt auch nicht.

Polarisationsfilter: Da hab' ich noch gar nicht dran gedacht, muß ich mal ausprobieren.

@Jörn:
Kameramodul deswegen, weil ich später das Framegrabben und Informationsverarbeiten einem extra dafür abgestellten Microcontroller überlassen will. Wenn ich die Verarbeitung direkt auf dem PC machen wollte, wäre die Webcam praktischer, das stimmt. Könnte vielleicht ein Zwischenschritt in der Entwicklung sein, Webcam (Logitech) ist sowieso an Bord des Roboters.

Übrigens: Gestern endlich wieder die Website mit Informationen gefüllt: www.robofriend.de

Bis bald
Tom.

Fritzli
29.12.2005, 10:44
Wieviel, weiß ich jetzt auch nicht.

Da gäbs z.B. das da: http://www.iundm.de/lars/Image4.gif

Und ja, von IR-Lasern würd ich auch abraten...

Gruess
Fritzli

toemchen
29.12.2005, 11:29
Ahaa...
Da wäre also tatsächlich bei ca. 900-950nm ein Spektrumslücke in der Sonnenbestrahlung, während der sichtbare Bereich, also inkl. Rot, von der Sonne lückenlos abgedeckt wird.
Da hat sich die Natur wohl was gedacht, beim Spektrum der Augenempfindlichkeit.
Und die Ingenieure etwa auch, als sie IR-LEDs mit 955nm bauten?

Aber ich halte mich dennoch von IR-Lasern fern. Schau gar nicht erst nach, wo gibts sowas, welche Wellenlänge hat sowas...

ThunderD
29.12.2005, 15:02
Passt zwar jetzt nicht rein, aber die normalen Laser sind eh nicht die überdrüber Netzhautbruzler. Wer starke Laser braucht geht auf www.wickedlasers.com :D bei denen geht was weiter

Fritzli
29.12.2005, 15:23
Da hat sich die Natur wohl was gedacht, beim Spektrum der Augenempfindlichkeit.
Genau. So ist z.B. die max. Augenempfindlichkeit beim Peak des Sonnenspektrums - bei grün. Und deshalb sind auch Pflanzen (meist) grün.


Und die Ingenieure etwa auch, als sie IR-LEDs mit 955nm bauten?
Ich glaube, das lag eher am verfügbaren Halbleitermaterial...



aber die normalen Laser sind eh nicht die überdrüber Netzhautbruzler
Kommt drauf an. Bei IR reichen ein paar mW locker. Bei rot dürfens ein paar mW mehr sein.
Siehe auch Sams Laserfaq: http://repairfaq.ece.drexel.edu/sam/laserfaq.htm#faqtoc

Gruess
Fritzli

toemchen
29.12.2005, 22:07
Ganz kurzes Update:

Rote Plexiglasscheiben von Conrad, 3mm dick, bringens auch nicht besonders. Das Bild wird schon etwas dunkler, die Laserlinie dadurch nicht unbedingt klarer. Vielleicht ist das auf den Fernseher starrende Auge auch kein gutes Messystem.
Der Laser wird durch die rote Scheibe auch schwächer, eine gesamte Frontscheibe vors Messystem ist also keine gute Idee.

Die Logitech-Webcam ist empfindlich genug. Ich habe zwei Bildpaare mit jeweils Laser an/aus aufgenommen, eins bei eher heller Raumbeleuchtung, eins bei eher dunkler. Nun würde ich sie gerne probehalber voneinander abziehen. Geht das z.B. in Fotoshop? Bin leider sowohl bei BildVERarbeitung als auch bei BildBEarbeitung sehr unbedarft.

CU
Tom

Manf
29.12.2005, 23:47
Weil sie schon angesprochen waren wollte ich doch noch die Filter Funktionen für IR Fotografie einbrigen. Manchmal findet sich irgendwo noch so ein Filter oder es gibt soetwas gebraucht.
http://www.cocam.co.uk/CoCamWS/Infrared/IRCurves/ircurves.htm
http://www.teknooptik.se/foto/filter/
Manfred

http://www.cocam.co.uk/CoCamWS/Infrared/IRCurves/filt_ir.gif http://www.teknooptik.se/images/16-5.jpg

toemchen
06.01.2006, 16:34
So Leute, es gibt neue Ergebnisse.

Ich hab mir einen USB-VideoGrabber besorgt (erstaunlich, wie gut dieses China-Zeugs für 26 Euro funktioniert). Siehe ebay unter Computer -> Multimedia -> Videoschnitt

Und das Subtrahieren eines Dunkelbildes funktioniert schon ganz gut, finde ich. Hab' das heute ungefähr mittag gemacht, um möglichst "schlechte" Verhältnisse mit viel Umgebungslicht zu haben. Ist natürlich dennoch Winter und ein diesiger, dunkler Tag.

Hier die zwei wichtigsten Bilder. Auf meiner Webseite www.robofriend.de habe ich einen Menüpunkt "Laserscanner" aufgemacht, da ist ein bißchen mehr (Geschwafel) zu lesen und zu sehen.

Fritzli
06.01.2006, 17:04
Hallo

Wow! Sieht recht gut aus! Schön grosses FOV ('Field of View')

Ich glaub, ich hör gleich auf, meine Sharp-Sensoren zu optimieren ... :-)

Gruess
Fritzli

Manf
06.01.2006, 18:16
Das scheint ja recht gut zu gehen. Wirklich schön wenn man so interessante Eingabedaten hat, die man dann umrechnen kann.

Es gibt ja USB Kameras, aber es soll eine Kamera mit Video Ausgang genommen werden die vorübergehend über den Grabber an den PC angeschlossen wird weil ein Controller später besser mit den Videosignal umgehen kann. Habe ich das so richtig verstanden?

Der Laser hat so um die 650nm und ist damit für jede Kamera gut sichtbar. Die IR Umstellung ist wirklich nicht geplant? oder ist das noch von den Ergebnissen abhängig?
Manfred

toemchen
08.01.2006, 22:29
Jo Manfred, keine USB Cam.

Wichtig ist mir am Schluß ein eigenständiges System, das über eine noch zu wählende Schnittstelle (RS232, USB) anzusprechen und zu konfigurieren ist, das auf Kommando entweder komplette Entfernungsprofile oder aber auch nur kurze Alarmmeldungen ausgibt, indem man z.B. einen Sicherheitsbereich für Hindernisse oder anzupeilende Landmarken angibt.

Würde ich die Verarbeitung auf dem PC machen wollen, wäre wohl eine USB Webcam die richtige und günstige Wahl.

Ich werde jetzt noch mehr Versuche machen. Ich will gerne richtige Messwerte. Durch diese Differenzbildung ergibt sich ja ein schwarzes Bild, in dem nur die Laserreflektionen hell sind. Wie hell? Wie einheitlich schwarz ist der Rest? Ich weiß noch nicht, ob ich diese Informationen jedem Bildverarbeitungs entlocken kann, aber ich werde dazulernen. Ich war schon angenehm überrascht, wie einfach die Differenzbildung in Photoshop war. Ist doch eigentlich keine technische Bildbearbeitungssoftware. enn ich diese Messwerte gewinnen kann, kann ich auch den Einfluß der Farbfilterung besser beziffern.

Infrarot: Ist noch nicht vom Tisch. Ich habe immer noch nicht geschaut, gibt es überhaupt IR-Linienlaser für vernünftiges Geld. Ein bißchen spukt mir noch die Idee im Kopf herum, aus einer ganzen Zeile IR-LEDs und einer Zylinderlinse einen Lichtfächer zu erzeugen. Reizvoll wäre die unsichtbare Funktion wie von Geisterhand. Aber ich glaube fast, der rote Linienlaser für 35€ ist unschlagbar praktisch.

nochmal zum Thema Farbkamera: Sicher wäre dadurch auch eine Farbfilterung machbar, sozusagen auf der Softwareseite. Der allererste Versuch mit der Webcam sah aber so aus, daß es ziemlich egal war, ob ich vom Differenzbild nur den Rotanteil ansah oder alle Farbanteile. Und im Hinblick auf die Verarbeitung mittels Microcontroller sollte das Arbeitspensum für diesen nicht zu hoch sein. Zwei Farbbilder im Speicher halten und voneinander abziehen ist ungleich mehr zu tun.

So, nun zu den nächsten Schritten:
Langsam aber sicher das Bildverarbeitungssystem planen. Die Daten einer USB-Webcam in einen Microcontroller zu holen, ist grundsätzlich vielleicht möglich. Der Microcontroller müßte dann Host sein, das Übertragungsprotokoll müßte bekannt sein. Für mich unmöglich zu machen. Fast keinerlei Programmierkenntnisse. Selbst wenn ich dazulerne.
Das schwarz-weiße PAL Signal zu sampeln, mit dem im Duschinger-Link (ganz am Anfang dieses Threads) erwähnten IC die Triggersignale für Zeilenanfang rauszuholen und Interrupts zu steuern, das kann ich mir schon irgendwie vorstellen. Da würde ich mich ranwagen, auch wenn der Weg steinig wird.
Übrigens, dieser USB-Grabber (27€) wäre die perfekte Hardware: Ein winzige Platine, vorne Video rein, hinten USB raus, die kleine grüne LED noch als Ansteuerung für den Laser mißbrauchen... Das Ding müßte man komplett umprogrammieren können... Speicher ist bestimmt auch ein bißchen drauf, außerdem ist da nich ein leerer Platz für einen IC, könnte doch ein Speicher sein... Sind aber alles Träume.

Konkreter ist wahrscheinlich ein ARM-Prozessor. Da gibt es Entwicklungsboards mit 64kB RAM schon für 39-55€. Kleines Rechenexempel: 352x288 Pixel sind schon über 100kB - Schluck! Aber ich bin wie gesagt auch mit Undersampling und geringerer Auflösung zufrieden, dann müßten sich zwei Bilder in 64k packen lassen.

Ein wichtiges Thema muß ich auch noch ausprobieren: Bis jetzt ist die Kamera absolut stillgestanden, dann gehen die Differenzbilder natürlich perfekt. Was aber, wenn sie sich bewegt? Ist wahrscheinlich sehr wichtig, daß die beiden Bilder sehr schnell aufeinander folgen, am leibsten zwei aufeinanderfolgende Halbbilder, wenn man eh schon undersampelt.

So, all meine Ideen erstmal ausgespuckt. Ich werde mich weiter melden, wenns neue Meßwerte und Versuche gab. Und würde mich freuen, wenn ein Microcontroller-Experte mit einsteigt.

Tom.

jörn
08.01.2006, 23:33
Du könntest statt des jetzt verwendeten Kameramoduls auch eine umgebaute Gameboy-Kamera verwenden. Die besitzt zwar nur eine Auflösung von 128x123 Bildpunkten, dafür bleiben die Datenmengen gering und Du kannst die Laserlinie über die Belichtungszeit filtern.
Ich habe bei dem oben erwähnten Projekt die Gameboy-Kamera und eine solche Filterung verwendet und die gesamte Berechnung des Tiefenprofils dann mit einem ATmega8515 mit 32KB externem RAM umgesetzt. Das erspart einem die aufwendige USB-Kommunikation (Du würdest wohl auch einen ARM mit USB-Host-Controller benötigen) und auch die Framerate sollte, dank der geringen Belichtungszeit, ganz ordentlich sein.

Gruß,

jörn

Fritzli
09.01.2006, 09:23
Hallo

Um das "Weisse" vom "Schwarzen" robust unterscheiden zu koennen, keonnte man ein Histogramm des Bildes machen und anhand dessen eine Schwellenhelligkeit berechnen. Alles darunter ist schwarz, alles darueber ist weiss. So wirds zumindest in der professionellen Bilderkennung gemacht.

Speicher: Du brauchst im Prinzip nur Platz fuer ein Bild, da du gleich waehrend des Einlesens des zweiten die Differenzbildung machen koenntest.

Gruess
Fritzli

toemchen
09.01.2006, 13:22
@Jörn:
Über eine Gameboy-Kamera habe ich noch nicht nachgedacht. Es stimmt, die geringe Auflösung würde mich nicht schrecken. Ist denn das Teil einfach und günstig zu bekommen? Ist es so gesehen eine Alternative zum CMOS-Modul, das ich ja nun schon zuhause liegen habe?
Das mit dem USB-Host für Webcam war nur der jetzigen Methode (Videograbben) als unwahrscheinliche Alternative gegenübergestellt. Das verfolge ich eigentlich nicht.
Ein USB-SLAVE als mögliche Kommunikationsschnittstelle ist schon möglich, da gibt es ja z.B. den IOWarrior, auch RS/232-USB-Umsetzer sind denkbar, einfach um ein aktuelles Interface zu haben, das ein Roboter-Hauptrechner nutzen kann.
Wahrscheinlich bleibts aber RS232.

@fritzli:

Speicher: Du brauchst im Prinzip nur Platz fuer ein Bild, da du gleich waehrend des Einlesens des zweiten die Differenzbildung machen koenntest.
Ha! Genau! Daran habe ich noch gar nicht gedacht. So wirds wieder einfacher.
Mit dem Schwellenwert: Kommt auf die genaueren Grauwerte pro Pixel an, die ich eben noch herausfinden will. Wenn die Differenzbildung ein sehr sicheres Schwarz für die nicht laserbelichteten Pixel ergibt, kann man vielleicht mit einer festen Schwelle arbeiten.

jörn
09.01.2006, 22:25
Bei ebay findet sich die Gameboy Kamera relativ oft (z. B. http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=8248718268)
Unter http://geocities.com/vjkemp/gbcam.htm findet man einiges zur Ansteuerung. Sie verfügt bereits über Funktionen wie zum Beispiel edge extraction, die Dir eventuell weiterhelfen würden.

toemchen
24.01.2006, 23:52
So, heute war wieder Bastelabend.

Die Bilder des Videograbbers in VisualBasic einzulesen und zu verarbeiten, geht zumindest für Standbilder ganz unkompliziert. Da hab ich mir die Linienprofil-Funktion doch gleich selbstgestrickt, statt mit irgendwelchen Photoshop-Funktionen herumzuhantieren.

Anbei ein Screenshot.

Sieht ganz gut aus mit dem Signal-Rauschverhältnis. Allerdings steht eine Herausforderung noch aus: Bei hellem Tageslicht.

Als nächstes kommt ein automatisiertes Programm, das den Laser selbst an/abschaltet und dann muß das ganze doch mal auf den Roboter drauf. Dann kann man auch mal versuchsweise die Differenzbilder bei realistischer Geschwindigkeit sehen. Auf Verarbeiten in Echtzeit werde ich allerdings verzichten müssen, da wird der Roboter schon stehenbleiben müssen. Aber da gibt's ja noch das ferne Endziel, daß ein Microcontroller die (Echtzeit-)Verarbeitung übernimmt.

Ein bißchen ausführlicher ist das ganze wieder auf robofriend.de beschrieben, unter dem Menüpunkt "Laserscanner".

Gute Nacht
Tom

zeric
07.02.2006, 20:38
Hallo!

Ich bin kürzlich auf dieses Thema gestossen und es hat mich sofort interresiert. Dabei ist mir eine Idee gekommen. Ich weiss nicht ob sie funktioniert, da ich noch überhaupt keine Erfahrungen habe und ich erst 15 Jahre alt bin.

Nun zu der Idee:
Ich frage mich ob es gelingen würde ein besseres Bild zu bekommen, wenn man von einer Kamera das Bild mit einem roten Laser rot herausfilter (Laser als helle Linie) und mit dem Bild mit einem roten Laser grün gefiltert (Laser als sehr dunkle Linie) vergleicht und die Stellen mit dem grössten Unterschied "hervorhebt".

Würde mich interresieren ob meine Idee etwas taugt. und bitte Euch, nicht auf Schreibfeheler zu achten, da ich in Deutsch nicht alzu gut bin.
Ich hoffe Ihr kommt bei meinem Text draus.

Eric

sigo
07.02.2006, 22:59
Hallo!



Nun zu der Idee:
Ich frage mich ob es gelingen würde ein besseres Bild zu bekommen, wenn man von einer Kamera das Bild mit einem roten Laser rot herausfilter (Laser als helle Linie) und mit dem Bild mit einem roten Laser grün gefiltert (Laser als sehr dunkle Linie) vergleicht und die Stellen mit dem grössten Unterschied "hervorhebt".


Eric

Hallo Eric,

mit dem roten Filter kannst du in der Tat die rote Laserlinie im Vergleich zum Hintergrund verstärken, also heller machen. Aber mit der grünen Folie machst du keine dunkle Linie, da du die Linie nur weg machst.

Dh. du siehst die Linie, so wie den Rest, der mit dem Umgebungslicht (meist weiß) beleuchtet wird.

Du hättest also ein Bild mit Linie und ein ohne. Nur, dass das grüne Bild total anders aussieht als das rote. Z.B. werden ja grüne Gegenstände hell, rote dunkel. Es ließe sich also auch nichts mehr subtrahieren..

Seh ich das so richtig?
Gruß Sigo

zeric
08.02.2006, 11:39
Hallo Sigo

Hast recht, hab später mit einem roten LED und einer grünen und einer roten Folie meine Idee ausprobiert.

Die Idee schwierte mir einfach im Kopt umher und habe sie aufgeschrieben.

Na ja, ich bin erst 15 Jahre Alt und noch sehr unfahren, auch bei diesem Thema. Bin aber auf jede Erfahrung froh.

Gruss ZEric