FPV Rover über Mobilfunknetz

Status
Nicht offen für weitere Antworten.

aargau

Erfahrener Benutzer
#1
Hallo zusammen

Ich habe schon länger die Idee gehabt über das Mobilfunk Netz einen keinen RC Car fernzusteuern mit FPV.
Das ganze wird nun konkreter und einiges läuft auch schon recht gut -> als Steuerung wird ein APM2.5 verwendet, da mit MAVLink die Steuerung via TCP/IP bereits problemlos möglich ist und man zudem noch viele andere Möglichkeiten hat.

Beim Videobild bin ich momentan etwas am grübeln.. Mein Plan wäre es eigentlich gewesen ein Android Smartphone zu verwenden, da man dies wunderbar auch als MAVLink Proxy nutzen kann, Internet hat und sehr wenig Platz braucht. Alternative wäre ein RaspberryPi gewesen, welcher aber wieder ein 3G Stick oder ebenfalls ein Smartphone braucht.

Da es schon einige Android Webcam APPs gibt abe ich diese natürlich geprüft -> IP Camera, Droidcam, Spydroid waren mal meine Versuche.

Droidcam scheidet sofort aus, da sich das Programm ohne Wlan gar nicht zum funktionieren überreden lässt.

Die anderen beiden klappen über Mobilfunk via VPN, haben aber beide vor/nachteile.

Die Bitrate ist leider bei Mobilfunk ziemlich beschränkt, daher muss man das möglichste aus der Bitrate holen ;-).
Bis jetzt klappte IP Camera am besten - ich erreiche problemlos Delays von nur 100ms, über das Internet, via VPN! Das ist für ein Rover schon viel zu gut ;-).
ABER: IP Camera kann nur MJPEG, das bringt leider ziemliche Datenmengen mit sich. Bei 5FPS und 640x480 und 50% JPEG Qualität bin ich bereits fast bei 1Mbit/s und die Qualität ist alles andere als schön. Dafür sind so ca. 200ms möglich.

Spydroid kann h.263/4 und erreicht so mehr Qualität bei weniger Bitrate. Mit 1Mbit kriegt man schon ein brauchbarer HD Stream hin. Nur leider habe ich bei Spydroid immer mind 1-2Sek Verzögerung, durch den RTSP Server -> zu viel.

Mein Problem ist nun: Ich suche ein Kompromiss aus beidem ;-) 500ms wären ganz okay, dafür etwas mehr qualität, sprich es müsste h.264 sein.
Gibt es ev. schon irgend wo ein ansatz ein h.264 Stream von Android via UDP durchs Netzwerk zu jagen und mittels gstreamer zu "empfangen"?
Minimale Java / Android Programmierkentnisse habe ich, wobei ich wenn möglich was Pfannenfertiges nutzen möchte...

Alternativ werde ich wohl doch einen RPi verwenden müssen, da das ganze da absolut kein Problem ist und 500ms lockerst erreicht werden können
 

skydrone

Erfahrener Benutzer
#2
Warum muss es denn unbedingt ein Mobilfunknetz sein? Geht es um die Reichweite oder was ist der ausschlaggebende Grund?

Mit ubiquity Rockets und vernünftigen Antennen lässt sich ein Wlan aufbauen, was einige Kilometer reicht.
Wenn du dann einen Raspberry Pi mit dran baust, kannst du über den Datenstrom alles mögliche Übertragen.
Bild, RC-Stick-Positionen, Telemtrie. Gerade mit dem MavProxy-Protokoll kooperieren RPi und APM/Pixhawk sehr gut.
 

aargau

Erfahrener Benutzer
#3
Es geht um Reichweite und eben darum auch mal hinter ein Objekt fahren zu können und das geht leider nur mit Mobilfunk, da bei 2.4Ghz nach einem hinderniss immer Schluss ist sofern man legal Funkt.

Die Datenverbindung ist auch nicht das Problem, die klappt wunderbar. Habe mich nun für den RPi entschieden, so bin ich offener, habe ein besseres Bild und kann ggf. wenn ich mal endlich Zeit finde auch ein Programm schreiben welches gstreamer abhängig von der Verbindungsqualität die Datenmenge / Auflösung ändern lässt.

Extrem interessant finde ich übrigens, dass ich auch so um die ca 150ms erreiche. Das ist schon extrem wenig wenn man bedenkt dass die Datenstrecke so aussieht:

Rpi ->VPN (Handy (USB Sharing) -> Internet over 4G -> Server hinter Cable Provider) VPN -> (Internet hinter Cable Provider - Home DSL) -> Wlan -> Laptop

Wie das ganze dann aussieht wenn anstelle des Homenetzes ein zweites Handy verwendet wird nimmt mich auch schon wunder, denke aber 200-250ms sollten machbar sein. Leider kann ich den Traffic nicht im Mobilfunknetz direkt "routen", da die Firewall des Anbieters ein direkter Connect zwischen Teilnehmer verbietet und UDP Punching auch nicht klappt da Symetrisches NAT verwendet wird... Sonst wären wohl 150ms locker möglich...

Meine Hoffnung ist mit IPv6 dann endlich den Umweg über den VPN Server weglassen zu können.

Da es sich aber beim Auto um ein langsamen, grossen Rover handelt ist das eh eher zu vernachlässigen.


Ich habe nun einen APM mini direkt ins Case vom RPi verbaut, per GPIO (Serial) connected und so relativ Ordnung :).
Jetzt muss ich nur noch MAVLinkproxy auf dem RPi Installieren, autostarten und eben das Videobild wenn möglich über eine dynamische Pipeline anpassen.
Danach sollte das ganze eigentlich klappen :)

FPV mit "unlimitiert" Reichweite (mind 100Kbit/s. Bandbreite erforderlich)
 

DerKonstrukteur

Erfahrener Benutzer
#4

aargau

Erfahrener Benutzer
#5
hehe sieht spannend aus, nur leider über wlan und somit ziemlich beschränkt :D

Mir fehlt es bei meinem Projekt aktuell an Zeit. Es wäre sonst alles vorhanden
(Auto: Traxxas Summit)
2x Handy über VPN
1x RPi
1x Laptop
Ich denke, dass ich in meinen nächsten Ferien das Projekt fertig umsetzen werde
 

DerKonstrukteur

Erfahrener Benutzer
#6

aargau

Erfahrener Benutzer
#7
Wird dazu zu klein, zu schwach sein. Wenn du das ganze umbaust könnte das klappen, aber auch dann natürlich lange nicht die möglichkeiten die du mit MAVLink und einem APM hast (GPS so als Stichwort ^^).
 

DerKonstrukteur

Erfahrener Benutzer
#8
es braucht nur andere Motoren und ein neues Gestell, das wird reichen.
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten