Hi,
I think this may confuse lots of people, some cellular providers not provide a public ip.this makes our fly difficult.
For me,I'm using China Unicom as both airborne & ground LTE network.It only provide internal address.Now I find a way to overcome this.
The main idea is UDP punching by use a tool called Frp,frp support both TCP&UDP punching, include a frps(server, installed on the server with public ip)and frcp(client, if you use UDP video streaming&mavlink,install it on GCS device, support win, mac,linux,android).
You can download the frp here:https://github.com/fatedier/frp/blob/master/README.md
Below is my steps:
Step1:setup raspberry pi to connect with pixhawk via mavproxy
Step2:install frps on server with public ip address(I'm using my Gen8 server at home, also Unicom network,while it has a public ip),edit frps.ini.I named 2 connection,[UAV]for mavlink connection,[video]for video streaming.
# frps.ini
[common]
bind_port = 7000
[UAV]
type = udp
listen_port = 6000
auth_token = 123
[video] #This is for video streaming
type = udp
listen_port = 5000
auth_token = 123
Step3:install frpc.ini on GCS,I'm using MacBook,so i download darwin version.set the local ip to 127.0.01(if you using a iPad,can set the ip as iPad's,ipad&client within the same LAN)
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
auth_token = 123
[UAV]
type = udp
local_ip = 127.0.0.1
local_port = 6000 #You can use Mission planner or qgoundcontrol-udp connection
[video]
type = udp
local_ip = 127.0.01 #if you're using iPad within same LAN,can set to its address
local_port = 5000 #Qroundcontrol's default UDP video streaming port is 5000,you can modify it
Step4:set RPI video streaming to server, run both frps&frpc,now you can get the streaming.
I'm using Qgoundcontrol,it support udp video streaming.according to my test, the latency is very good, just depends on provider's network latency.
picture:streaming via LTE
So the advantage is that raspberry pi doesn't need additional DDNS,and the server&ground is stable, the change of RPI's ip caused by celluar network can be easily re-connect with server.I'm using a HUAWEI LTE router modem, just connect RPI to it via WIFI
For GCS,I used iPhone as access point, and GCS connect to it, if you're using a laptop or android, you can run frpc directly on it.
For server, you can also use the Cloud server, frps can deploy on it with linux version, this has been tested by others.
The bad news is I crash my Mini-talon for the maiden fly,so I'm working on repair it,not test on flight, but this won't affect the connection.