PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO Kamerasteuerung mit Scilab 2.ter Teil



stochri
18.06.2006, 11:27
Mike hat folgendes geschrieben



ich hab es jetzt wirklich hinbekommen
Geht perfekt aber dauert sehr lange. Ich habe in gopos zwei Fehler gefunden, da waren jeweils x und y vertauscht. Und heute habe ich noch einen Fehler in asuopos gefunden, dass war aber meine schuld, denn hier war auch x y vertauscht. Ich habe in gopos zwei Echtzeitzähler eingebaut und einen in asuropos. Er fährt nun ganz direkt und gerade zum Ziel, wenn er abweicht korrigiert er einwandfrei. Vieleicht kann ich auch einen Zähler weglassen, muss ich noch durchtesten. So dauert es nun 4 Sekunden für eine Bewegung

Ich war ja lange nicht mehr im Forum und ihr habt ja viel geschrieben. Ob du mir noch sagen könntest ob es nun eine Möglichkeit gibt die Bilder schneller in Scilab zubekommen oder ob Scilab nun abfragen kann ob schon ein neues Bild zur Verfügung steht? Ich habe eben mal ne Weile gelesen aber blicke nicht so richtig durch worüber ihr da sprecht


die ersten Teile zu diesem Thread befinden sich hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=146703
https://www.roboternetz.de/phpBB2/viewtopic.php?p=156347

NumberFive hat sein Bildeinleseprogramm unter
www.i-do-more.de/mine-robo/download/VideoCapture.zip
zur Verfügung gestellt.

Damit sollte sich der ASURO wesentlich schneller steuern lassen.

Gruss,
stochri

Xtreme
18.06.2006, 14:01
Wie ich sehe seit ihr während meiner Abwesenheit schon um einiges weiter gekommen... Leider hab ich z.Zt. wenig Zeit für Robotik. Ich komm grad mal alle paar Tage ins Forum. Und übermorgen kommt auch noch mein Austauschschüler aus Amerika #-o
Aber mal sehen, vieleicht kann ich eure Erkenntinise für meinen (noch im Rohbau befindlichen) Offroader gebrauchen O:) als Einparkhilfe...

Mike1
18.06.2006, 19:46
Hi,

also ich habe eben das Programm runter geladen. Und schon wieder ein paar Fragen.
1. Die Funktion getIt muss ich sicher zunächst in Scilab laden. Muss ich dann VideoCapture starten und wenn soll ich dann die Aufnahme starten damit jede Sekunde ein Bild gemacht wird oder nicht?

2. Mit welchen Befehl lade ich dann ein Bild in Scilab? So wie ich das sehe sind das ja viele Funktionen oder?

3. Muss ich sonst noch irgendwas machen? Was ist das für ein dll von dem die sprichst Nr.5?


Ich verwende nur noch einen Echtzeitzähler, wenn das Programm dann geht muss ich ja dann nur noch den Echtzeitzähler durch die Aufforderung ein Bild einzulesen ersetzen.
Außerdem habe ich schonmal ein bisschen herumgespielt und nun ein File erstellt welches einen blauen Ball erkennt und anschließend Asuro dorthin steuert.

Stochri bat mich alle files die ich verwende zu posten, damit auch andere die Windows haben und einen Asuro bestitzen das ganze hier einfach nach machen können.
Das werde ich auch bald tun, will nur noch das Programm zum Bild einlesen zum laufen kriegen.

MfG Mike

NumberFive
19.06.2006, 08:41
Hallo Leute,

erste das VideoCapture starten dann das getIt nach scilab laden.

In der Ini des VideoCapture programm müssen zwei parameter geändert werden.

Diese Parameter müssen auf 1 stehen sonst geht es nicht.

JPG=1
USESCI=1
Laufend=0

Im getIt muß der pfad zu dll an gepasst werden!

wenn alle parameter eingestellt sin un die Pfad angabe passt dann
die dll nach scilab laden das macht man mit init() aus dem getIt file.

mit der funktion Demo oder Demo2 kann man gucken ob alles Funktioniert.
Demo2 funktioniert nur wenn man auch die Graphic routine geladen hat.

in euer programm kommt dann an die Stelle wo ihr das blid braucht die Funktion GetColorBitmap(row,col). Die gibt euch das Bild zurück Also:

ColorArray = GetColorBitmap(row,col)

So zu beispiel.

Zur Zeit ist die Auf lösung hart auf 320*240 Punkt bei 65000 Farben. das muß auch im VideoCaptur so ein gestellt sein sonst geht es nicht bzw die bilder sehen komisch aus.

Auf meine Todoliste stehen noch:

Auflösung variable
Meldung bei falschen einstellungen
Einstellungen speichern

wenn es genug leute benutzen werde ich sicher auch da mal noch ran gehen wenn es mein Zeit erlaubt.

Gruß

Mike1
19.06.2006, 09:41
Hi,

ich habe jetzt oben viermal den Pfad zu dll eingegeben. Aber wenn ich dann init() eingebe kommt folgendes:

-->init()
shared archive loaded
Link done
shared archive loaded
Link done
shared archive loaded
Link done
shared archive loaded
Link done
ans =

1.

Ist das richtig? Wenn ich nun Demo eingebe kommt ein graues Bild und bei Demo2 ein Farbbild.(so weit, so gut)

Wenn ich aber ColorArray = GetColorBitmap(row,col) eingebe erhalte ich folgende Meldung:
-->ColorArray = GetColorBitmap(row,col)
!--error 4
undefined variable : row

Muss ich noch irgendwo einen Pfad eingeben? Habe ich was vergessen?

MfG Mike

P.S.: also ich finde das ist ein super Programm. Danke NumberFive, wenn wir dich nicht hätten!!!

NumberFive
19.06.2006, 09:51
Oh da hat sich ein fehler ein geschlichen die Zeile muß lauten:

ColorArray = GetColorBitmap(240,320);

Die Zwei zahlen ist die Größe des bildes aber zur Zeit nicht änderbar wie gesagt steht noch auf der Todoliste.

shared archive loaded
wenn das kommt ist die Path angabe richtig.

Gruß

Mike1
19.06.2006, 15:51
Tach,

also wenn ich nun ColorArray = GetColorBitmap(240,320); eingebe sieht das dann so aus:
-->ColorArray = GetColorBitmap(240,320);

240. 320. 3.

Ich denke das müsste also richtig sein. Allerdings ein Bild erhalte ich dann nicht. Ich habe dann x=ColorArray = GetColorBitmap(240,320); eingegeben und anschließend imshow(x) probiert aber da erscheint nur ein weißes Bild. dann habe ich es mit
ColorArray = GetColorBitmap(240,320);
x=ColorArray;
imshow(x)

da erhalte ich ein schwarzes Bild. Anschließend habe ich noch imshow(ColorArray) probiert, auch ein schwarzes Bild.
Was mache falsch?

MfG Mike

NumberFive
19.06.2006, 17:18
dann funktioniert die Komunikation zwischen der dll und dem VideoCapture nicht. Aber das Wincapture Programm Läuft ?

HKEY_LOCAL_MACHINE\SOFTWARE\MiNe\VideoCapture

wenn das Programm läuft muß Hier ein Wert für MainWND ein getragen sein.

gibt es bei dir auf C:\VideoToSciLab*.log datei ?

Mike1
19.06.2006, 19:42
???
Also langsam ich stehe mal wieder auf der langen Leitung.
Mit WinCapture meinst du bestimmt VideoCapture oder? Also VideoCapture läuft und ich habe auch die Bildgröße auf 240x320 eingestellt.

HKEY_LOCAL_MACHINE\SOFTWARE\MiNe\VideoCapture

Was einst du damit? Wo soll stehen? Also direkt auf C: habe ich ein Textdokument mit dem Namen "VideoToSciLab20060619" gefunden. Aber das ist ja keine log Datei oder?

NumberFive
19.06.2006, 19:52
Ok zu viele Programmier Kennisse vorraus gesetzt.

Wincapture = VideoCapture da hast du schon recht Tippfehler von mir.

HKEY_LOCAL_MACHINE\SOFTWARE\MiNe\VideoCapture
das Ist ein Pfad in der Regestry Kennst du dich mit dem Programm regedit aus ?

Ja diese datei habe ich gemeint kannst du dir mir schicken ?
du soltest jetzt in meine Profil meine Email adresse sehen können.

Gruß

Mike1
19.06.2006, 20:13
Jo ich habe jetzt mit regedit VideoCapture gefunden. dann kommen zwei files.Bei MainWND ist der Wert 60382 eingetragen. Beim zweiten file mit dem dem Namen ab(Standart) ist kein Wert gesetzt.

NumberFive
20.06.2006, 08:04
@Mike1

Das Logfile sieht gut aus.

kann eigendlich nicht verstehen warum du nur ein schwarzes Bild hast.

Probier doch mal folgendes:

init()
getbitmap()
ColorArray = GetColorBitmap(240,320)
imshow(ColorArray)

init() -- damit die dll geladen wird.
getbitmap() -- sollte das bitmap holen
ColorArray = GetColorBitmap(240,320) -- Kopiert den speicher ins Array
imshow(ColorArray) -- ich denke das kennst du

Bitte vorher das log file löschen.

@Alle

die Dll schreibt ein file nach C:\ das VideoToSciLab<Datum>.txt heist.
zur Zeit kann man das nich abschalten das file brauche ich wenn es probs gibt.

Gibt es jemand der mir helfen würde ein anleitung zu schreiben irgend wie
schein ich das nicht deutlich genuag formulieren zu können ?

Gruß

Mike1
20.06.2006, 09:45
Moin :mrgreen: ,

Jap jetzt funzt es. Geht wunderbar, ich habe gleich alles in den Funktionen und den files umgeschrieben. Jetzt hat Asuro schon ne flottere Gangart. Ich will nochmal probieren ob es was bringt wenn ich die Fahrgeschwindigkeit von Asuro erhöhe. aber eins stört mich noch :roll:
Nach ungefähr 10 ausgewerteten Bildern kommt immer die Meldung:[More (y or n ) ?]
Das war vorher nicht. Ich habe schon geguckt ob ich irgendwo ; vergessen habe, denn dann kam das ja immer aber Fehlanzeige. Liegt das an deinem Programm und wenn kann man das abstellen?

Jedenfalls nochmal vielen Dank NumberFive und Stochri, wenns jetzt hinhaut machts nähmlich ne Menge Spaß!!! Was machen eigentlich deine Versuche Stochri?

Gruß Mike

Mike1
21.06.2006, 15:57
Hi,


Hier nun wie versprochen alle files und Funktionen. Damit sollte jeder der einen Asuro, eine Webcam und WindowsXP hat eine Steuerung per Bildverarbeitung realisieren können.

MfG Mike

NumberFive
22.06.2006, 07:06
Beim durch sehen der files bin ich auf die Idee gekommen jetzt wurd uns eigendlich nur ein etwas weiter gehende Kommunikation nach aussen fehlen dann könnte man damit auch komplexer abläufe / roboter steuern.

noch da zu geht sicher auch ne zeit verloren wenn scilab dauernd consolen fenster auf machen muß.

Was meint ihr ?

@Mike1 was wars jetzt mit dem more ?

Gruß

Mike1
22.06.2006, 10:14
Hi,

naja das mit dem more habe ich noch nicht in den Griff bekommen 8-[ . Aber das wird schon noch klappen.
Ich überlege auch schon was man noch so alles mit der Bildverarbeitung steuern und machen könnte :-k

Was meinst du mit weiter gehende Kommunikation, also soll Asuro ne höhere Reichweite haben? Dann könnte man die Kamera zwar höher positionieren und die Fläche würde auch zunehmen aber das bringts doch auch nicht wirklich oder? Günstiger wäre doch die Kamera dirket auf den Roboter, dann könnte man zum Beispiel programmieren das er einen blauen oder roten Ball folgen soll. oder herumfährt und selbst ständig einen Gegenstand mit einer bestimmten Frabe sucht( nur mal so ne spontane Idee) Jedoch müsste man das Bild der Kamera dann per Funk zum PC senden und das dauert dann alles noch länger :-k Und einen größeren Roboter bräuchte man dann auch.

MfG Mike

stochri
23.06.2006, 22:25
Gegenstand mit einer bestimmten Frabe sucht( nur mal so ne spontane Idee) Jedoch müsste man das Bild der Kamera dann per Funk zum PC senden und das dauert dann alles noch länger Think Und einen größeren Roboter bräuchte man dann auch.


Hallo Mike,

einen Roboter mit Kamera oben drauf wünschen sich warscheinlich die meisten.
Meiner Meinung nach könnte man so etas einfach mit einer Funkkamera und einer normalen TV-Karte machen. Meine alte TV-Karte hat z.B. einen Videoeingang und mit Linux und dem Programm 'webcam' konnte ich dort ein Bile einfach einlesen.

Ein Kamera mit Funkschnittstelle gibt es u.a. ELV:

http://www.elv.de/Main.asp?Menue=Shop&Gruppe=SI-Fk&Stufe=2&refid=18100
http://www.lupus-electronics.de/Lupus_768.html

79€

Die Kamera müsste man halt aus ihrem Gehäuse ausbauen, sonst ist das ganze für en ASURO eventuell etwas zu groß.

Die Bildverarbeitung auf dem stationären PC laufen zu lassen, ist wahrscheinlich wesentlich einfacher, als ein Riesenroboter mit Labtop zu bauen.

Gruss,
stochri

P.S.: wolltest Du nicht mal den Weg aufzeichnen ? Vielliecht kannst Du ja mal das Ergebnisbild posten.

Mike1
24.06.2006, 11:36
Hi,

tut mir leid das hatte ich ganz vergessen. Ich bin zurzeit sehr mit der Planung meines neuen Roboters beschäftigt. Ich kaufe mir doch keinen Robonova sondern baue mir selbst einen. Allerdings keinen Laufroboter sondern einen mit Kettenantrieb. Dadurch ist er gleich Geländefähig und viel billiger auch noch. Als Chassis nehme ich einen RC-Panzer die gibts bei ebay für 49 Euro und sind 53cm lang. Da habe ich einen Kettenantrieb bei dem jede einzelne Laufrolle gefedert ist, die passenden Getriebe mit Motoren und ein Fahrgestell.(die obere Hälfte kommt ab) Als controller nehme ich dieses Roboternetz Board RNBFRA 1.2 Und drei Sharp Infrarotsensoren. Das reicht für den Anfang. Programmieren will ich das ganze in Basic. Das finde ich irgendwie besser als C. Und weil ich Basic noch nicht kann bestell ich mir gleich noch ein passendes Buch mit dazu.
Und später ist da auch noch genug Platz für eine Kamera, denn ich glaube eine Kamera auf dem Asuro das wird nichts. ersten ist der kleine nicht ausgelegt für zusatzlasten und zweitens brauchen diese Funkcams doch meistens 12Volt Stromversorgnung und auch noch einen Akku auf den kleinen Kerl das wird wohl zuviel.

MfG Mike