PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fuge nachfahren?! Welcher Sensor



Bloodyben
22.07.2009, 10:56
Geschlossen.....

Ozzy
23.07.2009, 19:39
Moin,

also meiner Meinung nach ist das mit dem Sensor nicht möglich! Ich denke, ohne Bildverarbeitung wird es relativ schwierig. Es gibt aber ein paar einfache Algorithmen, mit denen das relativ einfach möglich ist. Musst mal im Forum nach "Lichtschnittverfahren" suchen, ich denke, da findest Du etwas passendes...

MfG, Ozzy

yaro
23.07.2009, 20:15
Darfst du das Material berühren? wenn ja, dann fahr doch einfach einen kleinen beweglichen Stift in die Fuge. Den stand des Stifts kannst du mit 2 Potis abmessen.
Sollte nicht sehr schwer sein.

Ansonsten kannst du das mit einer 2 Leuchtdioden und 2 Phototransistoren realisieren, mit denen du guckst, wie weit du vom Material weg bist. 2 Phototransistoren im Abstand vom 1cm müssen gleichen Abstand zum Untergrund haben (=gleiche Helligkeitswerte), wenn du sie mittig über der Fuge plazierst. Dann einfach "linienfolgen".
Ist zwar nicht ganz so einfach wie Linienfolgen, sollte aber Realisierbar sein.

Gruß, Yaro

vohopri
23.07.2009, 20:25
Hallo Ben,

wenn deine Zeichnung stimmt, ist das eine V Nut mit ca 10 mm Tiefe.

Mit einem Linienlaser, Farbfilter und Kamera ist das ganz einfach und seehr präzise zu lösen. Linienlaser schräg draufleuchten lassen und gegenschräg mit der Kamera Aufnehmen. Da kannst du den tiefsten Punkt mit beliebiger Präzision lokalisieren. Wenn +- 1 Pixel zuwenig ist, dann einfach Linsen vorsetzen.

grüsse,
Hannes

Rofo88
24.07.2009, 04:18
Mit 3 CNY70 sollte das auch zu schaffen sein.

MfG

PicNick
24.07.2009, 08:04
Auf einem Feld eine Nut v. 2 cm ?
Die ist ja beim ersten Wind / Regen weg und zwar spurlos.

vohopri
24.07.2009, 12:20
wenn man das mit einer kamera und einem laser macht, ist mir momentan die videobearbeitung/filterung das größte problem...

Hallo Ben,

wo sollte da das Problem liegen? Es ist von einer Linie lediglich zu ermitteln, bei welchem y - Wert der minimale x - Wert liegt.

Auch wenn die Furche verrundet oder verflacht ist, ändert sich nichts am Verfahren.

grüsse,
Hannes

Richard
24.07.2009, 19:23
wenn man das mit einer kamera und einem laser macht, ist mir momentan die videobearbeitung/filterung das größte problem...

Hallo Ben,

wo sollte da das Problem liegen? Es ist von einer Linie lediglich zu ermitteln, bei welchem y - Wert der minimale x - Wert liegt.

Auch wenn die Furche verrundet oder verflacht ist, ändert sich nichts am Verfahren.

grüsse,
Hannes

Moin moin Hannes.

Das DU weißt wie es geht ist bekannt und wenn man weiß wie es geht
ist auch alles einfach. :-) Es gibt aber auch etwas ungebildete User wie
auch z.B. mich, welche Dein KnoffHoff nicht besitzen. Möglicherweise
sich auch nicht mal so eben aneignen können weil dazu z.B. die
Englischkenntnisse zum Verständniss der WIN API`s nicht vorhanden
sind.....Solche Menschen fragen dann halt in diesem Forum und hoffen
auf (pracktische) Hilfe. "Ist doch gaaanz einfach" , ist in solch einem
Fall eher eine relative, "unpracktische" Hilfe. :-( Sie hilft nicht wirklich.

Ds soll jetzt keine Kritick Dir gegenüber sein, Du hast ganz klar das
Recht Deine Erkenntnisse/Lösungsansätze für Dich zu behalten. Sind
ja Dein Urhebereigentum! Gefühlt als Leser kommt da aber auf...
"Ich weiß es, sag es aber nicht" und das tut manchem Leser weh!

Warum schreibst Du nicht ein RN Wissen Artikel und vermittelst den
lesrerInnen etwas KoffHoff? der Autor (Uhrheberrecht) ist dann ja klar
und es dürfte auch ein absolut "warmes Gefühl" sein Menschen Sein Wissen näher zu bringen.

Liebe Grüße Richard

Willa
24.07.2009, 20:42
Mit Matlab kann man das Kamerabild auswerten und nach dem tiefsten Punkt suchen. Bist du Student? Evtl. sogar Informatik/ Maschbau/ etc? Dann würde sich die Einarbeitung in Matlab sowieso lohnen. Eigentlich für jeden Studenten, sogar Biologen brauchen das manchmal (so wie ich...)

vohopri
24.07.2009, 22:02
Hallo Richard,

da hast du was ganz gründlich missverstanden. Niemand will irgendwem Wissen vorenthalten.

Wenn ich schreibe, es ist einfach, dann heisst das, das ichs auf Anfrage hin erklären kann. Und es heisst, dass ich weiss, wo man sich "eben einfach" die Info holen kann. Das heisst auch: "frage doch genauer danach, falls du es wissen willst."

Ben hat mich richtig verstanden und hat weitergefragt.

Richard dein Wunsch nach einem Wissensartikel über die Bildanalyse ist schon ein wenig naiv. Dazu fehlen mir Zeit und das Fachwissen. Als Laie hab ich mich mit der nötigen Energie da reingearbeitet, hab meine Projekte erfolgreich aufgebaut, aber das heisst nicht, dass ich da jetzt allgemeingültiges drüber schreiben könnte. Den bequemen Weg habe auch ich nicht anzubieten.

Dein Posting hat ja einen ganz schön starken emotionalen Gehalt. Du scheinst ordentlich sauer zu sein. Die Dinge sind anscheinend manchmal nicht so einfach, wie wir uns das wünschen.

Hallo Ben,

ich habe in einem meiner Projekte Webcambilder analysiert und da habe ich entdeckt, dass das eigentlich recht einfach ist. In meinem Projekt vom autonomen Fahrzeug (LANDfahrzeug) hab ich das auch dargestellt.

Ein wenig allgemeines kenne ich und das Spezielle kenne ich nur auf einer Windowsmaschine ein wenig mehr, da bin ich tiefer eingestiegen. Ich weiss nicht, ob du auch mit einer Wndowsmaschine arbeiten willst. Das wäre zu klären.

Grundsätzlich würde ich mit der Kamera in 45° voraus in Fahrtrichtung auf den Boden schauen. Der Linienlaser ist vor der Kamera montiert und wirft seine Linie im Winkel von 45 nach hinten auf den Boden, mitten in den Ausschnitt, den die Kamera vom Boden sieht. Vor die Kamera setze ich ein Farbfilter von der Farbe, die die Laserlinie hat. Das dunkelt das Bodenbild ab und die Laserlinie wird hell. Die Kamera sieht eine waagrechte Linie mit einem Zacken nach unten, wo die Furche liegt. So ein Linienlaser hat nichts mit einem teuren Laserabstandsmesser zu tun, sondern kann zB. aus einer billigen Laserwasserwaage aus dem Baumarkt ausgebaut werden. Der malt nur eine Linie aus Licht auf den Boden.

Da fangt die Bildanalyse an. Ich habe mir schon öfter Bildanalysetools geschrieben. Dazu verwende ich Object Pascal in der IDE Delphi. Es sollte auch jede andere höhere Programmiersprache gehen, die einen Komfortablen Zugang zu den Windows Mechanismen erlaubt, die das Kamerabild zur Verfügung stellen. Auch C und Derivate gehen. Ich bevorzuge Delphi und weiss darüber mehr. Die Programmiersprache muss sich aber jeder selbst aussuchen.

Einen Weg zur Bildanalyse ohne zu programmieren kenne ich nicht. Ich habe auch noch keinen nachvollziehbaren Bericht darüber gesehen. Ich glaube, nicht, dass man sich da ein paar tools herunterladen kann und dann anklixt, was man haben will. Ich selbst bin kein Profiprogrammierer. Und doch habe ich die Bildanalyse hingekriegt.

Egal, in welcher Programmiersprache man das jetzt angeht: Im Windows API hat Microsoft beschrieben, wie die Webcambilder ans System übermittelt werden. Wie man sie auffängt und wie sie strukturiert sind. In der msdn library steht alles drin.

Ben schreib mal, ob du mit einer Windowsmaschine arbeitetest, ob du programmierst, oder es lernen willst, für welche Sprache du dich entschieden hast (wenn überhaupt).

Hier noch ein Beispiel aus meinem Projekt:

http://www.jbergsmann.at/test03.gif

Da wird keine Furche erkannt, sondern ein Fahrzueg und seine Richtung anhand von Leuchtmarkierungen.

grüsse,
Hannes

Richard
25.07.2009, 06:20
deswegen sage ich ja, dass es gehen müsste ABER für mich ein Einstieg in di Materie fehlt.

Ich nehme mir eine Webcam und einen Linien Laser... so und jetzt geht es los... gibt es tools, die mir über das bild der webcam einen filter legen? mit welcher programmiersprache oder mit welchen tools, kann ich dann das bild nach dem tiefsten punkt scannen lassen...


aber danke schonmal für die netten antworten!

Es gibt in der Industrie Laserabstandsmesser, allerdings arneiten die
µm genau. Quasie das gleiche etwas ungenauer verwendet hier beinahe
jeder. So ein Teil muß man dann allerdings quer zur Furche hin/her
bewegen (servo z,B.) und den tiefstzen Pumkt auswerten. Dazu muß
aber ein µC eingestetzt werden der die aufbereiteten Werte zum
Laptopp sendet wo diese dann weiterverarbeitet werden können.

Es isr extrem wichtig das Du möglichst genau beschreibst was Du
letztendlich als Endergebniss haben möchtest! Es soll ja sicherlich
irgend etwas gesteuert/geregelt werden? Was und wie schnell muß
das geschehen?

Du schreibst "mehrere Durchgänge", wie genau müssen die einzelnen
Durchgänge "aufeinanderliegen", Toleranz? Wenn so ein Akker
Bearbeitungsgerät übers Feld "Brettert" entstehen quasie IMMER
Abweichungen (z,B, alte Furchen) und "Waggeln" wird das auch nicht
schlecht! Das (Waggeln) läßt sich "rausrechnen" wie Verwaggelschutz
bei Digikamms, aber dann wird es Aufwändig und auch etwas teurer!

gruß Richard

i_make_it
26.07.2009, 00:22
Da das Ganze bei Tageslicht im freihen stattfindet, also Störlichter nicht auszuschließen sind,
Wäre neben Filter für die Laserwellenlänge noch ein Polarisationsfilter sinnvoll.

Zur Verbesserung der Furschenerkennung, ist es Sinnvoll mehrere Laser striche zu verwenden, so kann bei jedem Bild auch gleich schon ein Richtungstrend ermittelt werden.

Also HW Kosten sind dann bei 5 Lasern ca. 30,-€ für 5 Lidel/Aldi Laserwasserwagen.
30,-€ füreine USB Webcam.
20,-€ für einen Hama Polarisationsfilter
20,-€ für einen Hama Farbfilter
Also 100,-€ plus großzügig noch mal 100,-€ für Gehäuse und Befestigung des ganzen.
Fehlt noch ein PC:
ab ca. 200,-€ gibt es PC104 Industrie PC. (Für den Fall daß man sein Notebook irgendwann wieder mal für was anderes verwenden möchte)

MATLAB Student Edition ca. 90,-€

Also alles in allem knapp 500,-€ plus 20 - 150 Arbeitsstunden je nach Vorkenntnissen.

Allerdings sehe auch ich die Gefahr das diese winzige Furche auf einem Acker schon alleine durch den aufgewirbelten Staub beim mehrfachen Abfahren einfach irgendwann zugesetzt sein wird und somit nicht mehr erkennbar.

vohopri
26.07.2009, 06:26
Hi Ben,

da hast du ja gute Voraussetzungen.

Ich würd ein Netbook mit USB Kamera verwenden und gleich im Netbook die Steuersignale für Lenkservo und andere Aktuatoren erzeugen.

Das mit Dauerhaftigkeit der Furche ist für mich als Landwirtschfts- und Gartenbaulaien schwer vorstellbar, aber du scheinst dich da ja in der Praxis auszukennen. Man könnte vielleicht bei jeder Fahrt so nebenher die Markierungsfurche auffrischen. Oder stehen dann die Pflänzchen genau da drin?

Zur Bildanalyse: Windows und C sind eine gute Kombination, denn Microsoft beschreibt sein ganzes API in C.

Teste doch mal, wie du in deinem C Compiler Zugang zur Windows Api bekommst. Beispielsweise mit der Funktion capGetDriverDescription des Windows API. Hier ist sie beschrieben: http://msdn.microsoft.com/en-us/library/ms707201(VS.85).aspx . Rufe die Funktion auf, ab besten mit angesteckter USB Kamera und werte die Rückgaben aus.

Wenn das funktioniert, kannst du hier weiter stöbern: http://msdn.microsoft.com/en-us/library/ms713478(VS.85).aspx

Dann bist du schon mitten drin. Für Fragen bin ich da.

grüsse,
Hannes

Bluebunny
26.07.2009, 13:54
Wie ruhig fährt eigentlich so ein Traktor über den Acker?

Wenn ich mir vorstelle das ich eine Webcam auf eine Ackerschiene schraube dürfte das ein sehr unruhiges Bild ergeben.

Bluebunny

vohopri
28.07.2009, 05:19
Hallo Ben,

das wird sich alles finden lassen, ich hab aber ein Verständnisproblem, wo du gerade stehst.

1. wurde vorher von einem Linienlaser gesprochen, jetzt lese ich das Laserpointer. Das sind 2 verschiedene Dinge. Gibts da ein Missverständnis, oder ist das mal ein Vorversuch?

2. ich kenne das Programm nicht, mit dem du arbeitest und will mich nicht mit schriftlichen Beschreibungen herumquälen. Poste bitte die Bilder von den verschiedenen Stufen der Bildberabeitung, die du durchführst. Dann kann ich auch sehen, was du mit Kantenerkennung erreichst. Den Sinn davon kann ich so nicht nachvollziehen.

Das Wackeln vom Fahrzeug wird nicht das Problem wein. Das kriegt man mit Mittelwertbildung raus.

grüsse,
Hannes

vohopri
28.07.2009, 12:18
Hi Ben,

wach bin ich noch früher, das ist nur die Zeit vom Posting. ;) :) 8)

Alles klar, du machst Vortests mit dem Pointer. Dann ein Prisma dazu und du hast den Linienlaser. Weinglas ist vielleicht ein wenig sperrig und unpraktisch auf dem Acker so ganz ohne Inhalt. :)

Was lena betrifft: Man sieht du hast Geschmack. Lena würd ich auch ohne Kantenerkennung zu Abendessen einladen. ;) 8)

Nein im Ernst:

Farbfilter vor dem Objektiv wird sicher zusätzlich für Störungsfreiheit sorgen. Ob ein Plarisationsfilter was bringt, kann ich nich sagen, ich würd da eher zuwarten, ob sich störende Reflexionen zeigen.

Dein Ansatz, mit Software Farbfilter ein Graustufen Bild zu erzeugenn ist schon einmal gut.

Ich seh aber grad den Nutzen der Kantenerkennung nicht, wenn ohnehin schon eine Linie (oder im Vortest ein Punkt) vorliegt. Kantenerkennung verwende ich doch, um Flächen in Kanten aufzulösen.

Aber lassen wir uns überraschen, was das bei einer Laserlinie bringt.

Was mehrere Lasererlinien auf einem Bild betrifft, würde ich meinen, dass das nichts zusätzlich bringt, wenn ich Kameraposition und -ausrichtung kenne und ohnehin nur den Boden ansehe. Später kann man immer noch alles komplizierter machen. Zunächst gehts darum, aus der einfachsten Variante ein Maximum an Information und Zuverlässigkeit herauszuholen.

Bin schon neugierig auf weitere Bilder.

grüsse,
Hannes

vohopri
28.07.2009, 17:59
Hi Ben,

wenn ich über dein furche1.jpg ein Farbfilter drüberlaufen lasse, dann kommt das raus:

http://www.jbergsmann.at/bildanalyse-ackerfurche-01.gif

Der Algo besteht nur darin, die Farbdistanz zur reinen Farbe Rot zu berechnen und dann mit einem Grenzwert zu binarisieren.

Das waren schon sehr leichte Testdaten, drum schauts ohne Aufwand schon soo schön aus. Bei realistischeren Daten muss man sich dann noch ein wenig mehr einfallen lassen. Aber der Weg passt.

Übrigens die Furche schaut ein wenig breiter aus, als 2 cm.

EDIT UPDATE:

Weils so lustig ist, hab ich weiter spielen müssen.

Jetzt hab ich die Binarisierung wieder weggelassen. Die vernichtet nämlich Information. die war nur für die schöne Darstellung gut. Dafür hab ich für jede Pixelspalte das schwärzeste Pixel suchen lassen. Das wurde grün gekennzeichnet. Und in einem Aufwasch hab ich von diesen Pixeln das suchen lassen, das am weitesten unten liegt. Dort hab ich ein Kreuzchen malen lassen.

http://www.jbergsmann.at/Furchenvisier.gif

Schaut doch gut aus? 8) 8) 8)

grüsse,
Hannes

vohopri
28.07.2009, 22:21
Hi Ben,

nicht neidisch sein, nachbauen 8) .

Das ist ein Delphi Miniprogramm. Da lade ich das jpg ins Programm. Das wird in ein Bitmap umgewandelt. und das Bitmap gehe ich dann durch, um es zu analysieren.

Den selben Analysevorgang kann man aber mit jedem Frame der USB Kamera anstellen. Das ist der selbe Vorgang. Die Kameraframes liegen ja auch als Bitmaps vor. Und falls sie als jpgs daherkommen kann man sie in Bitmaps umwandeln lassen. Man sieht das aber, was die Kamera liefert, an bestimmten Variablen. Wenn man dann bei laufender Kamera die berechneten Ergebnisse grafisch anzeigen lässt und über das Kamerabild legt, dann schaut das nicht nur sehr cool aus, sondern man hat auch einen wirklich komfortablen Debuggingmechanismus.

Von dem Delphicode hättest du nix, weil das so direkt nicht in c umsetzbar ist. Ausserdem will ich laufend mitdiskutieren und auch was lernen. Schau dir besser nur den Algo ab und setz ihn in C um.


function rl(map1:tbitmap):tbitmap;
var i,j:integer;
p1,p2,pr:pbytearray;
res: tbitmap;
dist:integer;
begin
res:=tbitmap.Create;
res.Height:=map1.Height;
res.Width:=map1.width;
res.PixelFormat:=map1.PixelFormat;
for j:=0 to map1.Height-1 do
begin
pr:=res.ScanLine[j];
p1:=map1.ScanLine[j];
for i:=0 to (map1.Width-1) do
begin
dist := round(sqrt((sqr(p1[i*3]-0)+sqr(p1[i*3-0]-0)+sqr(p1[i*3+2]-255))/3));
dist:=round((dist*dist)/30);
if dist>255 then dist:=255 ;
pr[i*3]:=dist;
pr[i*3+1]:=dist;
pr[i*3+2]:=dist;
end;
end;
result:=res;
end;



Grundsätzlich ist die Bildanalyse für deine Aufgabenstellung so einfach, dass ich eine BA Bibliothek für eine unnötige Verkomplizierung halte.

Und ich meine nur mit selbst geschriebener BA kannst du die Verarbeitung für deine Zwecke zielgerichtet optimieren.

grüsse,
Hannes

vohopri
30.07.2009, 21:39
Hi Ben,

freut mich, das schaut gut aus.

Kann sein, dass du auf dem Acker bei Sonnenschein ein Farbfilter vor dem Objektiv brauchst.

bitte melde dich nicht erst bei Problemen ](*,) , auch die Erfolge und Teilerfolge :-({|= sind für uns Mitlernende wichtig.

Weiter so!

grüsse,
Hannes

Edit: Welchen Linienlaser nimmst du? Sind die nicht etwas teuer, wenn sie nicht aus einer Wasserwaage ausgebaut werden?

http://www.jbergsmann.at/Furchenvisier2.gif

021aet04
30.07.2009, 23:10
Bei David-Laserscanner gibt es einen Linienlaser it 5mW für ca 13€.
http://shop.david-vision-systems.de/index.php/cPath/25/category/Laser/XTCsid/1be54e531e9c3ef587a3187a53cac014

vohopri
31.07.2009, 07:18
danke beiden,

gut zu wissen

grüsse
Hannes

MystBoy
12.08.2009, 17:51
die cam ist eine reine ir cam wie z.b. wii mote oder eine webcam mit filter davor


ich behaupte so is das bild leichter zu erkennen mit open cv

bei dem bild ist die rote linie auf grund von den inneren schatten und die lilane durch die kanten berechnet worden

die grüne ist der mittelwert...

think about it

TechnoRando
26.08.2009, 09:41
Hallo, für eine ähnliche Frage im Forum habe ich die folgende Seite gefunden

hier gibt es einen 2D Laserscanner der die Daten für die HöheZ und BreiteX in 0-10V oder auf einer PC Schnittstelle ausgibt.
http://waycon.de/lasersensor.html