Low Cost HD-Video Übertragung + Telemetrie

Status
Nicht offen für weitere Antworten.

nique

Legal-LongRanger
Kann man eigentlich den GStreamer-Stream als Hintergrund des HUD vom Missionplanner legen? Hab schon Videos gesehen, wo das analoge Bild hinterlegt ist. Geht das mit diesem hier auch?
 

nique

Legal-LongRanger
Hmmm, müsste eine MJPEG-Source sein. Klappt dann wohl nicht, oder gibts da was?
 
Klasse sache die ihr da bastelt! ABONIERT!
Müsste man ja fast mal versuchen, wenn da nicht so viele andere Projekte wären?

Habt ihr mal drüber nachgedacht auch die Steuerung über WLAN zu übertragen?
z.B. Steuern aus der App raus und am Rasp wird ein Summensignal am GPio ausgegeben?
Wäre zumindest für Bodengebundene Fahrzeuge ne nette Sache, beim Kopter wäre ich da auch vorsichtiger.

Weiter so!
 

aargau

Erfahrener Benutzer
Klasse sache die ihr da bastelt! ABONIERT!
Müsste man ja fast mal versuchen, wenn da nicht so viele andere Projekte wären?

Habt ihr mal drüber nachgedacht auch die Steuerung über WLAN zu übertragen?
z.B. Steuern aus der App raus und am Rasp wird ein Summensignal am GPio ausgegeben?
Wäre zumindest für Bodengebundene Fahrzeuge ne nette Sache, beim Kopter wäre ich da auch vorsichtiger.

Weiter so!
Genau an sowas bastel ich gerade, da bei mir (Alfa Wlan HW) die Bitrate total einbricht wenn ich die Funke einschalte. Die "Sender" Seite funktioniert soweit zwar, aber mangels VB.net Kenntnisse ist das Programm dafür noch nicht wirklich brauchbar. Zwar "streamt" es die PPM Kanäle via UDP durchs Netzwerk, aber wehe du klickst irgend wo start / stop um den Com Port nochmals zu öffnen, dann kann man das Programm neustarten.
Auf der Empfängerseite bin ich noch nicht weiter gekommen, kann die Werte zwar im Terminal anzeigen aber die Ausgabe fehlt noch. Ob dies über GPIO klappt weis ich nicht (nur 3.3V), werde da aber mal was testen.

Aja, auf der sender Seite ist ein Arduino (wie von mir gewöhnt ein pro micro xD) in Verwendung, ggf. könnte man auch so ein 5$ Wlan Modul für den Ardu nehmen und die Daten direkt streamen.

Hmmm, müsste eine MJPEG-Source sein. Klappt dann wohl nicht, oder gibts da was?
Bin mir nicht mehr ganz sicher, meinte aber hier hat das schon mal jemand gemacht ;) Notfalls kann man ja auch einfach kurz die Source umschreiben und den gstreamer integrieren, da es aber so viele Updates gibt weis ich nicht ob das so eine gute idee ist.
 

aargau

Erfahrener Benutzer
Das sieht ja richtig gut aus :D Auf die Idee google damit zu beschäftigen bin ich gar noch nicht gekommen.
Wenn das wirklich geht dann schaffe ich mein Ferienziel ja doch noch xD

Ich versuch das wenn ich dazu komme heute Nacht mal noch, sollte es klappen werde ich den Code natürlich gerne auch veröffentlichen.
 

aargau

Erfahrener Benutzer
Denke 200-300m müssten schon gehen mit einem guten, ich habs mal getestet, aber nach 1m schon nur noch Brei erhalteb, lag aber wohl auch da an meiner Funke die einfach zu stark störte. Ich krieg ja schon 150m mit dem Handy als Hotspot hin
 

aargau

Erfahrener Benutzer
So, ich habe es mit diesem ServoBlaster wirklich hingekriegt, das ganze läuft ganz gut, hat jedoch einen kleinen Nachteil: Es sind maximal 100 Schritte möglich (100-200), aber für ein FPV Auto reicht das Problemlos. Momentan ist auch noch kein Failsafe oder so eingebaut und selbst mit Failsafe: Wenn das python Script abkratzen würde im Betrieb, würde der "ServoBlaster" weiterhin sein letztes Signal ausgeben - das ist etwas doof und in der Luft je nach dem doch recht gefährlich.

Ich habe mir heute mal das aktuellste Image von Lonestar heruntergeladen. Leider habe ich darauf Probleme den ServoBlaster zu Kompilieren und auch einiges anderes ist irgend wie ziemlich merkwürdig, bin mir aber nicht ganz sicher ob es nicht ev. an meiner SD Karte liegt, ist eine 64GB die ev. nicht 100% geeignet ist für den PI.
Werde jetzt über "Nacht" mal noch apt-get update && apt-get upgrade laufen lassen und morgen mal schauen ob es besser wird dadurch.
 

Lonestar78

Erfahrener Benutzer
Nur noch ein paar mal schlafen...
Dann kommt von Sledge ein neues Image :)
Das ist dann sicher nicht ganz so verhunzt wie meins...
 
Klasse Jungs!

Aargau, wenn ich die doku vom servoblaster richtig verstehe kannst Schrittweite und auch Wiederholrate per Parameter andern.

Und beim stoppen des deamons sollte er kein signal mehr ausgeben. Evtl als failsave zu gebrauchen.

P.s. noch besser, du kannst ihm sagen das er kein signal mehr ausgibt wenn ne Zeit keine updates kamen.
Das sollte ne nachgeschaltete FC als failsave erkennen können.
Evtl den code noch erweitern und als letztes signal failsave Werte ausgeben vor dem shutdown.

Code:
--pcm               tells servod to use PCM rather than PWM hardware
                      to implement delays
  --idle-timeout=Nms  tells servod to stop sending servo pulses for a
                      given output N milliseconds after the last update
  --cycle-time=Nus    Control pulse cycle time in microseconds, default
                      20000us
  --step-size=Nus     Pulse width increment step size in microseconds,
                      default 10us
 
Zuletzt bearbeitet:

aargau

Erfahrener Benutzer
Nur noch ein paar mal schlafen...
Dann kommt von Sledge ein neues Image :)
Das ist dann sicher nicht ganz so verhunzt wie meins...
Ok Super, dann warte ich mal noch mit der Installation von der Wlan Steuerung bis das Image Verfügbar ist

@der-Frickler: Okay, das macht die ganze Sache natürlich relativ einfach und 100% Sicher wird man eh nie sein können.

Ich habe mal noch ein kleines Experiment getätigt und den Stream über das Internet gejagt, konkret:

PI im Netzwerk zuhause -> NAT -> Internet -> (anderer Provider) 4G via Handy Hotspot -> Windows 8.1 Tablet.
Erreicht habe ich bei einem Stream von 1.5Mbit/s. und 1280x720 um die 300ms, wobei das Tablet sicher auch noch einiges mithilft, müsste den Versuch mal mit dem PC testen, 300ms wären aber soweit okay.
Kommt noch dazu, dass das ganze scheinbar per TCP abläuft (der RTSP Server will irgend wie kein UDP rausrücken?!)
 

hornetwl

Erfahrener Benutzer
Kommt noch dazu, dass das ganze scheinbar per TCP abläuft (der RTSP Server will irgend wie kein UDP rausrücken?!)
Bis Du Dir da sicher? Das glaube ich nicht so recht - bei RTSP läuft zwar die Aushandlung der Caps und die Abspielsteuerung über TCP, der Stream allerdings nach wie vor per UDP/RTP. Wirf mal einen Blick mit Wireshark auf den tatsächlichen Netzwerktraffic.
 

aargau

Erfahrener Benutzer
Ne, bei mir (lokal) kommt immer dieser "Fehler": Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blo
cking it. Retrying using a TCP connection. Ich habe aber weder auf der Windows Kiste noch auf dem Pi eine Firewall aktiv.

Habe zum test mal noch versucht wie hoch die Verzögerung im Netzwerk selber liegt und da bin ich auch bei guten 250ms, also das Internet wird wohl etwa 50ms ausmachen, wobei der Test natürlich erst dann interessant werden würde, wenn man beide Seiten mit 4G erschliesst, da die Provider aber auch alles NATen bzw. sogar über Proxyies jagen ist eine direkt Verbindung eh meistens nicht möglich und man müsste sich da was überlegen. Ausser natürlich man sitzt zuhause vor dem TV und lässt drausen den Copter / Auto was auch immer fliegen ^^ Wäre natürlich schon toll, ein etwas grösseres RC Auto kurz in den Supermarkt schicken *g*
 

aargau

Erfahrener Benutzer
So, ich hab mal einen ersten Versuch gemacht mit der Steuerung.
Mit dem Image von Lonestar hat es leider nicht geklappt bzw. war es so extrem verzögert, dass das Videobild gleich richtig echtzeit war.
Mein Image klappt, aber wirklich top ist es auch nicht. Ich denke das Problem liegt an der Belastung der CPU. Leider braucht mein Script irgend wie 30% CPU und mit Stream bin ich dann bei 100% :(
Weis nun nicht ob das updaten der Servos zu viel Leistung verbraucht oder was es sonst ist...

Failsafe klappt übrigens ganz gut. Schalte ich die Funke aus fährt das Auto nicht einfach weiter sondern Stoppt nach ca. 1Sek.

Hab das ganze mal gefilmt:
[video=youtube;F2q5VneaWgs]https://www.youtube.com/watch?v=F2q5VneaWgs&feature=youtu.be[/video]
 
Sehr cool!

Klappt ja ganz gut.
Wenn ich das richtig sehe hat die Funke per USB am REchner (als USB Joystick vermute ich), ließt da ein und sendest es an nen virtuellen Com-Port der es dann an den PI schickt?

Am PI schaut es auchso aus das nicht der ServoD die Last erzeugt sondern dein script. Denke da geht noch was, die paar Komandos schaufeln dürfte nicht viel kosten. Könnte sogar mit nem einfachen netcat auf das Servodevice tun.

Kann zwar nicht wirklich python, aber code is code ;_) Schick doch mal das python script, dann schaue ich mal rein.

So, hab auch mal Hardware zum spielen bestellt.
 

Lonestar78

Erfahrener Benutzer
Hi Frickler, schön, dass Du hier mitmischt.
Frage: wie wirst Du die WLAN-Hardware anschließen und welche nimmst Du?
Ich liebäugel auch mit nem Odroid wegen des Formfaktors.
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten