PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Controller mit W-LAN und Video verarbeitung



4d7245
15.07.2005, 11:19
Hi,
ich suche einen etwas rechenstärkeren µController, der Daten von einer Kamera über W-LAN an meinen PC übertragen kann, und es mir gleichzeitig ermöglicht über diese Verbindung Servos/Motoren zu steuern.

Hier gibt es etwas in der art:
http://www.issc.com.tw/ia_ipcam.htm
aber da kann ich nicht unbedingt Ports ansteuern.(ausserdem finde ich keinen Preis/Händler/genauere Beschreibung)

Und die Module unter
http://www.avisaro.com/html/wlan_module.html
können afaik keine größeren Datenmengen (Video) übertragen.

Ich hab schon über nen kleinen Laptop nachgedacht (Pentium2 gibt es ja mittlerweile schon recht billig gebraucht), ist aber eigentlich zu groß.

Im endeffekt will ich ein Fahrzeug über meinen PC per Kamera Fernsteuern können. W-LAN müsste es nicht unbedingt sein, aber ich kenne nix anderes mit ausreichend Bandbreite für Video und ausserdem kenne ich mich mit TCP/IP Programmierung ganz gut aus :-)

Hat jemand von euch ne bessere/billigere Idee oder vielleicht schon erfahrungen mit Video-Übertragung und kann mir nen Controller oder Funkmodule etc. empfehlen?

chr-mt
15.07.2005, 11:37
Das Problem bei WLAN ist die Verzögerung.
Bis ein Bild encoded, durchgeschickt und wieder decoded ist, dauert es ein Weilchen.
Beispiel:
Dein Bot soll nach rechts fahren.
Du gibst den Befehl nach Rechts zu fahren und kontrollierst die Position über's Video.
Wenn die Position erreicht ist, gibst du den Befehl zum stoppen.
Erst verzögert reagiert der Bot und ist ein Stück zu weit gefahren.
Warum ?
Wenn dich die Bilder erreichen sind sie ja verzögert.
Das heisst, wenn du deine Wunschposition im Monitor siehst und stoppst, ist der Bot ja schon einige 100ms lang weitergefahren.
Und das kann je nach Geschwindigkeit recht viel sein.
Für langsam fahrende Bots usw. eventuell kein Problem, aber wenn's ohne Zeitverzögerung sein soll, kommt man an einen analogen Funkstrecke leider nicht vorbei.

Gruß
Christopher

Radian
15.07.2005, 15:47
Statt nem Laptop könntest du doch auch einen PDA benutzen.
Auf den könntest du dann auch gleich eine Kamera stecken.
Wlan hast du dann auch schon oft dabei. Und per RS232 verbindest du den PDA mit deinem Controllerboard.

m.artmann
15.07.2005, 15:53
Wie wäre es wenn Du den Funk von Video und WLAN für die Steuerung trennst?
Für die Bildübertragung eine normale Funkkamera, deren Empfänger Dir das Livebild
direkt über USB in den PC schickt.
Und für die Steuerung und Kommunikation dann WLAN einsetzten.
Ich mach es bei meinem Roboter so und es funktioniert wunderbar
d.h. die beiden Funksysteme stören sich nicht gegenseitig.

Gruß
m.artmann

4d7245
16.07.2005, 00:38
Trennen wollte ich die beiden Übertragungen nicht, sonst könnte ich einfach eine normale Funk oder W-LAN Cam und ne standard Fernsteuerung benutzen ;-)

An die Verzögerung hatte ich nicht gedacht :-(
Aber mit nem Laptop oder PDA (Danke für den Tipp) müsste sich die doch verringern lassen(je nach rechenleistung beim komprimiren)
und wenn ich dann noch über UDP anstatt TCP übertrage müsste es noch schneller gehen, oder? (Na gut bei UDP kanns dann halt mal vorkommen dass nur die Hälfte vom Bild ankommt *g)

...[Tastenklappern vom Taschenrechner]...

Hast aber recht, wenn ich das so durchrechne komme ich immernoch auf 100ms Verzögerung nur beim übertragen(640x480 8bit graustufen -> ca300k Byte/Bild; 11Mbit/s W-LAN -> 1400 kByte/s; >100 ms/Bild) :-(

Na gut aber die W-LAN Karte in meinem Laptop hat ~100Mbit da wären es dann nur noch 10ms
(na gut nich ganz, is ja leider nich unbedingt linear, ausserdem war der Laptop dann doch n bisschen zu teuer um ne als einfache Steuereinheit zu missbrauchen)

Gibt es überhaupt nen (bezahlbaren) Controller der die Datenraten schafft?

Noch irgendwer Ideen wie man die Verzögerung verringern kann?
Und viel wichtiger: Stimmen meine Rechnungen überhaupt? *g

recycle
16.07.2005, 03:12
Hast aber recht, wenn ich das so durchrechne komme ich immernoch auf 100ms Verzögerung nur beim übertragen(640x480 8bit graustufen -> ca300k Byte/Bild; 11Mbit/s W-LAN -> 1400 kByte/s; >100 ms/Bild)

Was du da ausrechnest gilt für unkomprimierte Bilder.
Wenn sich die Datenrate durch Kompression nicht deutlich reduzieren liesse, würden Videokonferenzen und Live-Videostreams über DSL oder sogar ISDN Verbindung kaum funktionieren.

Wie schnell soll dein Roboter denn durch die Gegend rasen?
Bist du sicher, dass die 100ms bei der Zeit die du brauchst um dem Roboter die richtigen Steuerbefehle zu geben großartig ins Gewicht fallen?

Ausserdem kannst du deinem Roboter ja soviel "Intelligenz" mitgeben, dass er im Notfall auch alleine vor der Wand abbremst.



Statt nem Laptop könntest du doch auch einen PDA benutzen.
Auf den könntest du dann auch gleich eine Kamera stecken.

Oder einen PDA nehmen, der die Kamera schon eingebaut hat.

chr-mt
16.07.2005, 09:35
Bist du sicher, dass die 100ms bei der Zeit die du brauchst um dem Roboter die richtigen Steuerbefehle zu geben großartig ins Gewicht fallen?

Bei einer Drehrate von 90°/S wären zB. 200 ms schon 18°
Man müsste mal testen wie groß das Delay wirklich sein wird um eine genaue Aussage darüber treffen zu können ob das was ausmacht.

Gruß
Christopher

Marco78
16.07.2005, 09:41
Soll ein Programm den Bot (nach der Videoauswertung) steuern oder willst du das vom PC aus machen?

4d7245
16.07.2005, 17:50
Soll ein Programm den Bot (nach der Videoauswertung) steuern oder willst du das vom PC aus machen?

Hauptsächlich will ich selber steuern, falls ich später noch ne Automatik hinzufügen sollte würde ich die auch auf meinem PC laufen lassen, und die steuerungsbefehle übertragen.

Ausser natürlich wenn ich sowiso nen Laptop einbauen muss, dann könnte auch n Steuerungsprogramm dadrauf laufen, aber wie gesagt erst sehr viel später.


Was du da ausrechnest gilt für unkomprimierte Bilder.
Wenn sich die Datenrate durch Kompression nicht deutlich reduzieren liesse, würden Videokonferenzen und Live-Videostreams über DSL oder sogar ISDN Verbindung kaum funktionieren.

Schon klar, aber wenn ichs komprimire dauert das auch seine Zeit und dann bräuchte ich auch wohl wirklich nen Laptop/PDA oder nen zusätzlichen Controller nur dafür.

Die Streams werden zwar in guter Qualität übertragen, aber die Verzögerung dabei is enorm(jedenfalls bei Filmen, aber da machts ja auch nichts, es hat ja jedes Bild die gleiche Verzögerung)

Und bei Videokonferenzen sind das auch manchmal über ne sekunde(kurzzeitig, durchschnittlich sinds wohl auch nur 100-500ms)
Dabei is es aber auch nich kritisch, da kanns höchstens passieren dass du wem dazwischenredest.

Aber mein derzeitiger Aufbau is n standard 1:10 Automodell. Bei nur 20km/h sind 500ms schon 2.5m und das teil schafft mit dem derzeitigen Motor 50km/h (ohne Zusatzbelastung durch Controller/Kamera etc.)
(Na gut das wollte ich sowiso drosseln, aber an 10km/h hatte ich schon gedacht)

Marco78
16.07.2005, 18:22
Wenn du alles 'von Hand' steuerst bedenke die menschliche Reaktionszeit. Und dann noch die Art der Steuerung. Beim Auto hast du ein Lenkrad, das je nach Drehwinkel, Bodenbeschaffenheit, Geschwindigkeit, Seitenwind usw eine Richtungsänderung einleitet.
Beim steuern via PC fehlt evtl das feinfühlige steuern, aber auf jeden Fall das Gefühl für die anderen Faktoren.
Vll solltest du dannnicht ganz so schnell durch das Land heizen unabhänig davon wie schnell die Bilder erscheinen.

recycle
16.07.2005, 21:23
@4d7245


Schon klar, aber wenn ichs komprimire dauert das auch seine Zeit und dann bräuchte ich auch wohl wirklich nen Laptop/PDA oder nen zusätzlichen Controller nur dafür.

Ich wollte auch nicht bestreiten, dass es eine Verzögerung geben wird. Du hast aber auch gefragt, ob deine berechneten 100ms überhaupt richtig sind. Wenn du mit Kompression arbeitest, taugt deine Berechnung wenig, weil die Datengösse je nach Kompressionsalgorithmus wesentlich runter geht, dafür aber die Zeit für das Komprimieren und Dekomprimieren dazu kommt.
Was du berechnet hast ist eigentlich eher die maximale Bildrate ohne Kompression. Wenn ein Bild 100ms dauert, könntest du max. 10 Bilder pro Sekunde berechnen.
Wenn du mit Kompression arbeitest, wird die WLAN Verbindung sicher nicht die kritische Grösse sein, sondern eher die Hardware für Kompression und Dekompression. Der verwendete Algorythmus für die Kompression spielt dann auch noch eine Rolle und je nach verwendeter Hardware wird es gar nicht so einfach die Datenkompression überhaupt zu implementieren.
Ich würde lieber überlegen, ob du nicht in der Bildgrösse runtergehen kannst. Bei 320*240 hättest du nur noch 1/4 der Datenmenge und bei unkomprimierter Übertragung 25ms Verzögerung bei bis zu 40 Bildern/Sekunde.


Aber mein derzeitiger Aufbau is n standard 1:10 Automodell. Bei nur 20km/h sind 500ms schon 2.5m
Naja, es heisst doch sowieso immer, man soll vorausschauend fahren ;-)