Explorer/RaspberryPi/Wifibroadcast/Integration

From PaparazziUAV
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Wifibroadcast channels:

  • channel 1: downlink camera live video
  • channel 2: downlink autopilot telemetry
  • channel 3: uplink autopilot telemetry
  • channel 4: uplink UDP tunnel
  • channel 5: downlink UDP tunnel
#Airpi
/home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 1 -u 5600 wlan1
/home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 2 -u 4242 -k 1 -n 2 wlan1
/home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 3 -u 4243 -c 127.0.0.1 -k 1 -n 2 wlan1
/home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 5 -u 14900 -k 1 -n 2 wlan1
/home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 4 -u 14901 -c 127.0.0.1 -k 1 -n 2 wlan1
#Groundpi
#Update GCS_IP with yours
export GCS_IP=192.168.1.46
/home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 1 -c 127.0.0.1 -u 5600 wlan1
/home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 2 -u 4242 -c $GCS_IP wlan1
/home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 3 -u 4243 wlan1
/home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 4 -u 14800 -k 1 -n 2 wlan1
/home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 5 -u 14801 -c 127.0.0.1 -k 1 -n 2 wlan1

Camera stream:

#Airpi: input camera, outputs: /tmp/camera1 (shmsrc), port 5600 (wfb_tx) 
rm /tmp/camera*; \
/usr/bin/raspivid -t 0 -w 640 -h 480 -fps 30/1 -b 3000000 -g 5 -cd H264 -n -fl -ih -pf high -if both -ex sports -mm average -awb horizon -a ENAC -ae 22 -o - \
 | gst-launch-1.0 fdsrc \
   ! h264parse \
   ! video/x-h264,stream-format=byte-stream,alignment=au \
   ! tee name=streams \
   ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
   ! rtph264pay name=pay0 pt=96 config-interval=1 \
   ! udpsink host=127.0.0.1 port=5600 streams. \
   ! shmsink socket-path=/tmp/camera1 wait-for-connection=false sync=false
#GroundPi: input: 5600, outputs: port 5610 (rtst server), fpv_video (displays HDMI)
gst-launch-1.0 udpsrc port=5600 \
   ! tee name=streams \
   ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
   ! udpsink host=127.0.0.1 port=5610 streams. \
   ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
   ! application/x-rtp, encoding-name=H264,payload=96 \
   ! rtph264depay ! video/x-h264,stream-format=byte-stream \
   ! fdsink \
   | /home/pi/wifibroadcast_osd/fpv_video/fpv_video &
/home/pi/gst-rtsp-server-1.14.4/examples/.libs/test-launch \
  "\"udpsrc port=5610 do-timestamp=true ! application/x-rtp, encoding-name=H264,payload=96 ! rtph264depay ! video/x-h264,stream-format=byte-stream,alignment=au ! rtph264pay name=pay0 pt=96 config-interval=1\"" "\" "


Telemetry stream:

#Airpi: send to autopilot from port 4243, get from autopilot to port 4242 locally
socat -u udp-listen:4243,reuseaddr,fork /dev/ttyAMA0,raw,echo=0,b115200 &
socat -u /dev/ttyAMA0,raw,echo=0,b115200 udp-sendto:127.0.0.1:4242 &
#GroundPi: inputs on port 4242, outputs on 4243
#default pprlink ports

Tunnel stream: (ex: ssh 10.0.1.1)

#Airpi: 
socat TUN:10.0.1.2/24,tun-name=airpituntx,iff-no-pi,tun-type=tun,su=pi,iff-up udp-sendto:127.0.0.1:14900
socat udp-listen:14901 TUN:10.0.1.2/24,tun-name=airpitunrx,iff-no-pi,tun-type=tun,su=pi,iff-up
sleep 1
ifconfig airpituntx mtu 1400 up &
#GroundPi:
socat -u TUN:10.0.1.1/24,tun-name=groundpituntx,iff-no-pi,tun-type=tun,iff-up udp-sendto:127.0.0.1:14800
socat -u udp-listen:14801 TUN:10.0.1.1/24,tun-name=groundpitunrx,iff-no-pi,tun-type=tun,iff-up
sleep 1
ifconfig groundpituntx mtu 1400 up &


Explorer/RaspberryPi/Wifibroadcast/Run