Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro Kamerasteuerung: Big Brother sagt wo!
Hallo allerseits,
hier wieder einmal das Thema Kamerasteuerung mit dem ASURO.
Eine Kamera wird über den ASURO gehängt und beobachtet den ASURO.
Das Programm ist in OpenCV geschrieben und erkennt die Position des ASURO an der roten Farbe.
Was noch fehlt: das Programm soll über die serielle Schnittstelle die Koordinaten auf die IR-Schnittstelle legen, etwas in dem Format
1. StartByte
2. X-Koordinaten-Byte
3. Y-Koordinaten-Byte
Der Vorteil an diesem Verfahren ist dann, dass die Benutzer nichts mehr am Bildverarbeitungsprogramm auf dem PC machen müssen und sich voll auf die Programmierung des ASURO konzentrieren können.
Meiner Meinung nach dürfte das die Möglichkeiten des ASURO ziemlich erweitern. Endlich kann der ASURO seine Position sozusagen über das "Kamera-GPS" ermitteln.
Es sollte möglich sein, dass der ASURO anhand der von der Kamera gelieferten Koordinaten sehr genau anfahren kann.
Interessant könnte auch die Untersuchung der Regelungsschleife Kamera-ASURO-Positonsregler sein.
Gruß,
robo
damaltor
11.11.2007, 13:56
klasse sache. haste da etwas mehr doku dazu? quellcode? was für ne kamera? welches format haben die datenbytes? was muss der asuro haben um erkannt zu werden? usw, usw..
So, hier git es noch den Link auf OpenCV (http://opencvlibrary.sourceforge.net/)
klasse sache. haste da etwas mehr doku dazu? quellcode? was für ne kamera? welches format haben die datenbytes? was muss der asuro haben um erkannt zu werden? usw, usw..
Ziemlich viele Fragen. Hast Du es schon ausprobiert?
nur was ist mit übertragungsfehlern?? Vielleicht sollte man auf eine andere Art der übertragung wechseln.
mfg liggi
Was die Übertragungsfehler angeht, könnte man verschiedene Maßnahmen ergreifen.
1. Der Asuro fährt aus dem Empfangsbereich der IR-Signale
==> es wird ein Suchprogramm gestartet, bei dem der ASURO solange mit Zufallsbewegungen durch das Zimmer fährt, bis er das Signal wieder gefunden hat.
2. Es treten Übertragungsfehler der Koordinaten auf
==> Es wird eine Fehlererkennungsmechanismus eingebaut
Das Protokoll könnte dabei folgendermaßen aussehen:
Kommandobyte, X-Koordinate, Y-Koordinate
Die Koordinaten dürfen nur im Wertebereich von 0-199 liegen. Ein Wert größer als 199 wird als Kommandobyte interpretiert. 4 Bit des Kommandobytes werden aus der Checksumme der beiden Koordinaten X und Y gebildet. Damit dürfte ein Fehler einigermaßen zuverlässig erkannt werden.
damaltor
11.11.2007, 18:34
ich habe es noch nicht getestet, dqa ich linuxer bin.. mal sehen ob ich den code linux-tauglich machen kann. was für eine kamera hast du angeschlossen?
Eine gewöhnlich USB-Webkamera von Logitech. Die Kamera ist für das Programm selbst egal, da das Kamera-Handling vom Kameratreiber übernommen wird. Im Programm wird die Kamera einfach als Kamera 0 angesprochen.
Da das Programm mit OpenCV arbeitet sollte es eigentlich kein Problem mit der Portierung geben. Das Ganze sollte ziemlich 1:1 funktionieren. Einzig mit dem Ansprechen des Kameratreibers unter Linux sehe ich eine Unwägbarkeit.
Wenn Du es hingekriegt hast, poste den Code und das Vorgehen hier, dann kann ich auch wieder auf Linux umsteigen. Ich habe eher ungern Windows verwendet, um das Ganze einem breiteren Pulblikum zugänglich zu machen und weil's mit OpenCV in Verbindung mit VC++ einfacher war.
damaltor
11.11.2007, 19:36
ok, ich werde es mir mal antun bei gelegenheit. ich glaub ich hab noch ne klien philips webcam, die unter linux out-of-the-box funktioniert hat
MartinFunk
11.11.2007, 20:12
Hi,
bei mir läuft das nicht!!
Es wird mit der fehlermeldung abgebrochen(siehe anhang).
Ich benutze windoof XP
MfG Martin
Oha, das ist ja schon mal das erste Ergebnis. Ich habe auch XP und habe es auch auf einem Rechner mit Win2000 ausprobiert. Das Problem auf dem 2.ten Rechner war nur, das dort ein paar DLLs gefehlt haben, die ich dann zusammensuchen musste. Deine Fehlermeldung verstehe ich ehrlich gesagt nicht ganz. Vielleicht weiß hier ein VCC-Experte rat, ich probiere das nämlich quais zum ersten Mal aus.
Hi,
Die Meldung kommt, wenn dll's der Runtimebibliothek fehlen.
Welche kannst Du mit depends.exe herausfinden (http://dependencywalker.com/).
Bei mir fehlen:
CV100.DLL
CXCORE.DLL
HIGHGUI100.DLL
MSVCR80D.DLL
möglicherweise dann auch noch weitere, die von diesen fehlenden ihrerseits wieder gebraucht werden.
Womit wurde das programmiert? VCC sagt mir nix... aber da sollte es eine passende Bibliothek dazu geben.
vcredist, vcredistX86, vbrun, .net 1,2,3, java sind es nicht (die habe ich allesamt)
lg,
Martin
Bei mir fehlen:
1.CV100.DLL
2.CXCORE.DLL
3.HIGHGUI100.DLL
4.MSVCR80D.DLL
Also:
Meine Enwicklungsumgebung ist Visual Studio 2005 Express Edition, war mal in irgend einer c't dabei, war also umsonst. Von dort kommt glaube ich die 4.
1.,2.,3 sind Libraries von OpenCV.
Es gibt folgende Möglichkeiten: im Internet habe ich irgendwo die vorkompilierten Libs von 1.,2.,3. gesehen ( google cv100.dll ) allerdings von einer chinesischen Seite.
Oder OpenCV runterladen.
OpenCV hab ich oben überlesen, und kannte ich noch nicht - alles klar.
msvcr80d.dll muss ich mir nochmal anschauen (die sollte doch im vcredist_x86 drinnen sein? ich habe jetzt aber gar keine v8 msvc*.dll auf meinem PC gefunden, obwohl die runtime installiert ist :-k nur 7 und 7.1 ...)
Danke!
lg,
Martin
msvcr80d.dll muss ich mir nochmal anschauen (die sollte doch im vcredist_x86 drinnen sein
Ähh, weiss nicht. Ich habe leider keine Ahnung, warum die Dll überhaupt gebraucht wird. Das Programm ist ja eine Win32 Konsolenanwendung und verwendet ja ansonsten die Funktionionen von OpenCV. Schöner wäre es natürlich, wenn man ein Programm erstellen könnte, das überhaupt keine Dll's benötigt.
Man könnte vielleicht die Source-Code-Teile aus OpenCV herauskopieren, die benötigt werden und dann einfach alles zusammenkomplilieren. Der Aufwand dazu wäre aber eventuell nicht unbeträchtlich.
reini1305
23.12.2007, 12:24
Wie schnell ist deine Lösung eigentlich? Auf dem Screenshot kann man die Detection Time leider nicht lesen.
mfg
Reini
reini1305
24.12.2007, 11:25
Tschuldige, ich wusste ja nicht dass das ein Geheimnis ist ;) Ich wollt mir das Kompilieren sparen weil ich keinen Windoofrechner zur Hand hab. Hätt nur gern gewusst obs in Echtzeit geht? (In meinem Fall also mit ca. 15 fps).
mfg
Reini
damaltor
27.12.2007, 23:21
Warum fragst Du?
was soll die frage? :/ wie hoch ist sie? ich hab auch keinen windows rechner greifbar...
damaltor
27.12.2007, 23:23
Warum fragst Du?
was soll die frage? :/ wie hoch ist sie? ich hab auch keinen windows rechner greifbar...
>robo.fr schrieb:
>Wenn Du es hingekriegt hast, poste den Code und das Vorgehen hier, dann kann ich auch wieder auf Linux
>umsteigen. Ich habe eher ungern Windows verwendet, um das Ganze einem breiteren Pulblikum zugänglich zu
>machen und weil's mit OpenCV in Verbindung mit VC++ einfacher war.
damaltor schrieb:
ok, ich werde es mir mal antun bei gelegenheit. ich glaub ich hab noch ne klien philips webcam, die unter linux out-of-the-box funktioniert hat
Was macht die Umsetzung auf die Linux Plattform? Mein Tipp: erst Leistung zeigen, dann fordern. :evil:
reini1305
28.12.2007, 08:51
Was macht die Umsetzung auf die Linux Plattform? Mein Tipp: erst Leistung zeigen, dann fordern. :evil:
Es geht sicher unter Linux, wenn deine Kamera ein v4l-device erstellt /dev/video0 zB. Hab selbst schon viel mit der OpenCV gemacht und das schöne daran ist die relative Plattformunabhängigkeit, wenn man sonst nicht viele Bibliotheken braucht.
Um nun zu meiner Frage zurück zu kommen: Wie schnell? ;)
LG
Reini
EDIT: BTW, wo isn der Source hin? Jetzt sitz ich grad an einem Windows rechner in der Arbeit :)
EDIT2: Ich hab mir mal die Mühe gemacht und ein kleines Projekterl von mir von Linux nach Windows portiert. Die Portierung bestand nur in ein paar .h Datein ändern, am Source musste ich nix drehen. Wers probieren will: http://reini.homelinux.net/facetrack.rar
damaltor
28.12.2007, 14:18
so, da die kleine philips cam ein /dev/video0 bereitstelt, halte ich das auf jeden fall für machbar. allerdings habe ich atm einfach keine zeit um mich damit zu beschäftigen.
wie schnell ist es denn nun? =)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.