⚠️新技術突破!60毫秒超低延時 無限遠距離的4G/5G 圖傳系統 成本不到$20美元
我終於可以讓無人機和機器人在無限遠的遙控距離內
實現低延遲的控制和圖傳了
大家好 我是吉賢
今天是11月27號 星期三
先跟您報個平安 一切都挺好的
最近確實一直也沒發視頻
主要就是忙着寫寫代碼什麼的
然後上次咱們不是提到了
我說現在無人機和機器人領域用的圖傳系統
大家爲什麼不用數字的
其實在使用它的這個方式上
有很多不適用的地方
咱一直老說用的都是民用級技術
甚至是影音娛樂級的技術
所以大家都抱怨說這個數字圖傳本身就延時大
就不適合非這種無人機使用 對吧
另外也受遙控距離的限制
所以當時我就跟大家簡單描述了一個情景
有沒有可能我們通過不同的技術
不同的圖像壓縮和傳送協議
解決數字圖傳的延時問題
並且把這些數據載合到4G甚至是5G的網絡上
這樣是不是就可以實現
在全球範圍內只要能構造網
你有網 那機器人有網
就可以無限的遠程遙控
那麼到今天這個激動人心的事
我終於把它做出來了
然後這不是趕緊錄個視頻 搭個模型
我先跟大家看個演示
然後稍後我再給你們講那裏邊的技術原理
我們先看一下今天會用到的一些東西
首先咱們還是一貫的風格
絕對不用貴這種的玩意兒
這個是樹莓派Zero2W 對吧
這個我記得在國內好像100多塊錢
就能買到的一個很便宜的低端開發版
然後這個是它配的一個非原廠的攝像頭
這不是樹莓派的
所以這個攝像頭我在烏克蘭這買才合人民幣100多塊錢
那麼就沒了
真正的你看攝像頭用的是很便宜的數字攝像頭
這個用的叫CSI的這種排線
然後主機是樹莓派
它的電源就是這麼一個充電寶給它供電
現在這一組加上攝像頭它的負載是多少呢
5V 0.1A
跑起來的話回到0.2A
也就是在一瓦到兩瓦的功耗
這個是待會我將給大家演示的它的主要的圖傳系統
然後這也是一個比較DIY的東西
首先這個大家應該能知道
這是4G的無線貓 對吧
這個東西現在買我在那哪兒
Aliexpress好像這個7個美元就老便宜了
幾十塊錢
然後它是USB口的
但是這個玩意得插到機器人上
太大也不好看
所以我直接把它這個殼給拆了
這個就是裏邊它的主板
成這個樣子
然後這個位置是USB口
USB口我給焊下去了
然後直接那個4根線
我引的這個飛線
這樣的話我就可以把這個線
直接和樹莓派的線
直接焊在一起
這樣就能把它設計小的外殼裝進去
然後您可以看到
這有一個天線的接口
SMA的高頻口
我這個用的是一個筆記本天線
最後放到機器人上或者無人機上
我可以用那種硬的塑料的天線
一樣的
這是一個高頻天線
行 硬件就是這兩位
那麼接下來
然後我們怎麼來測試呢
首先我在這個谷歌上找一個描表
我現在這樣錄像
錄着這個描表
那麼待會兒呢
我把這個視頻
就是通過這個圖傳
這是無線的
它現在用的WiFi連到我的這個家裏網絡
那麼我先過一遍WiFi
在另外一個系統
在圖傳它的視頻
我在這錄
然後傳這個畫面放到邊上
你就可以看到
這個圖傳捕獲的圖像的延時
和這個真實的描表之間的關係
那麼在我做這個試驗之前呢
我們先有一個基準
一個Benchmark好吧
這個Benchmark呢
我們就用
我老婆的這個iPhone 15 Pro
就特別高級的這個
這個手機攝像頭來對比一下
好 這一手不好操作啊
現在我拿的是一臺iPhone 15 Pro
大廈的手機
那麼我現在用這手機
也對着這畫面拍
然後呢
我屏幕上是一個真實畫面
注意這兩個畫面
你們可以待會按一下暫停
然後一幀一幀的看
這兩個畫面呢
iPhone手機呢
它屬於攝像頭直接捕獲過來
在屏幕上顯示
和真實的畫面有延時
這個延時呢
大約是0.1秒左右
也就是100毫秒左右
那麼這0.1秒左右的延時呢
對於我們正常的日常使用
大多數人來說
都認爲已經幾乎沒有感覺了
所以呢 是這樣
就是沒有所謂的
絕對的零延時
就是你用iPhone的攝像頭捕獲完了
直接放到那個iPhone的屏幕上顯示
哪兒都不傳
這個就
因爲它要捕獲這個數據
然後再顯示出來
也存在一個編碼和解碼的一個過程
也會有到一個0.1秒
所以大家在看這個延時的時候
我這次強調的0.1秒是
從攝像頭捕獲的數據
到傳完了
到你顯示出圖像來
這個延時0.1秒
好 那我現在準備啓動這個系統
這個系統呢
在我電腦上
本地運行的呢
是一個接收端
這目前是一個黑屏幕
什麼都沒發呢
然後呢
我現在遠程連到這臺機器上
然後啓動它的這個發送端
好 發送端出來
這攝像頭都掉這兒來了
好 你現在可以
可以大概感受到
我這個畫面就已經是
比較跟手的這個狀態了
對吧 畫面在這兒
那麼我現在做一個測試
我把這倆畫面呢
離得近一點
那邊上去
我的這個攝像頭呢
是那個帶紅外夜視的攝像頭
就沒有IR filter
所以你看到畫面的畫質會偏紅
但這不重要
好 我現在拿着攝像頭
離這個描表很近
那麼你們可以隨時截圖
看一下現在的這組畫面的延時是多大
隨時截圖
你看到右邊這個屏幕
就是經過了這組無線圖傳
傳到我的電腦上
已經把它回顯出來
所看到的畫面
也就是你可以假設
這個攝像頭是在一個遠端
這是真實的畫面
那你現在幾乎可以看到
這兩個圓轉的是幾乎同步的
對吧
那麼再給大家看一下
這除了個電源
什麼都沒接
看了吧 樹莓派
OK 大家可以截圖
對 暫停
看一下這兩個延時
這個延時呢
會受到這個一些小的影響波動吧
我這看到最高記錄呢
大約是有0.7
極端的記錄是0.
不是 0.07和0.06
就是60到70毫秒
是有可能的
然後平均的會穩定到這個
100毫秒以內
那你可以看到
這是一個很跟手的狀態
好 那麼我現在給大家看一下
就在這樣的圖傳
用這樣的低端的這個硬件
那麼它實際的負載是多大呢
好 先放這吧
負載是多大呢
這個是它的系統的
叫HTOP的負載
我們可以幾乎看到
它的負載是穩定在
平均15%左右吧
或者10%
看這個還是它
這還連着呢
這我的手
那麼這組圖傳呢
所消耗的帶寬是多大呢
我現在用的這個叫Nload
那麼我們切換到這個
WLAN0
對吧
我的內網地址上
我們可以看到這組圖傳
實際走的帶寬
大約1.2 1.3兆
這時候
它是根據這個壓縮嘛
動態壓縮根據畫面的
這個內容和複雜度來的
那麼現在是4兆
好 1.3兆4兆
那麼這個量級
是什麼概念呢
就是幾乎你可以把它
放到這個
通過4G或者5G
來傳輸這組數據了
好 我先把它停下來
你看這個畫面
要是比較簡單的話
一團黑
它就帶寬就小
一個人
現在是2兆左右
2兆到3兆的帶寬
消耗
這還在這
好 我現在簡單的
連了一下這個線
我給它綁起來了
然後在這個口上
這是USB
我臨時插了個OTG的線
這個USB
連到我的這個
這個無線網卡上
是這樣子連的
這根花的線是
這根電源線
連的是一個外部供電
好 那現在呢
我的這組圖傳
就已經通過
這個當地的
這個4G的信號
走了一圈互聯網
它是一個內網IP
我的這個主機呢
我又重新啓動
它現在用的是一個
點對點的
內網的這個
叫穿透技術
穿透技術
這個稍後我們再來談這個
那您現在看到
我的屏幕上這個畫面
注意啊
這個畫面
這個畫面就已經是
走了一圈公網回來的了
也就是
理論上這組畫面
你可以在互聯網的
任何一個位置
只要你自己網速夠
就能夠看到
那我們再看看
掛了一圈公網以後
它的延時是多大
好 我還是做一樣的
這個測試
還是它
對着這個拍
我大概剛纔測量了一下
應該是能夠穩定到
140毫秒
也就是0.14秒左右
多出來的這40毫秒
是什麼呢
就是
因爲我用的是4G網絡
4G網絡一般就有
幾十毫秒的
這個延時產生
如果你們用的是
5G的無線網絡
那你得到的效果
就跟我做的第一組測試
在這個內網測試速度一樣
這個4G和5G
如果是在中國地區
或者開通的地區
可以自動的切換的
也就是說慢
也就到這程度
但這個你看
也已經非常跟手了
拿這個做無人機
無人車等等
這些東西的這個圖傳
完全沒有問題
然後因爲它是數字的信號
對吧
走的是UDP協議
所以它天生要想做加密
非常容易
並且也可以在
鏈路層上做加密
不需要就是
兩次的數摸摸數轉換
另外呢
它本身就是數字信號
走的就是IP包
所以在上邊再去
偶合更多的控制協議
也是天生就來
不需要像那個
就傳統的
模擬圖傳的無人機一樣
再去掛一個叫數字電臺
好幾組無線電
這一共就一組
那麼這個整個的
架構的設計
就是爲了配合
我之前說的這個
SDR的無線電
也就是一組無線電
我的帶寬夠
然後呢
一組無線電動態跳頻
我可以把所有的數據
都偶合到一起來傳
那我們現在看啊
這個是剛纔的CPU的負載
這是我已經跑到
4G的這個網絡了
然後這呢
你注意看
這現在有了三張網卡
現在是ETH0
WLAN0
WLAN
現在就是我的WiFi
是沒有數據的
對吧
我的數據
這兒有
這是什麼呢
這是這個ETH0
也就是他通過
USB轉過來的
等於是有線的
USB連接嘛
對吧
這樣爲了演示直觀
因爲我剛纔用WiFi
現在我就直接插了USB
那麼你可以看到
現在我的帶寬消耗呢
兩三兆
兩三兆呢
在這個4G上
是完全沒問題的
4G能夠傳幾十兆
就是你實測的這個
用這個叫什麼
NetSpeed
TestSpeed.net
用這個來實測
能夠傳到
二三十兆的有效傳輸載和帶寬
哎
我覺得這些特別厲害
真的
行
視頻的演示部分呢
大概就先到這
有什麼沒演示着的
回頭你們再留言
我再給你們看
那麼接下來呢
我們就來講講這個技術了
對
其實這組圖傳
當時就是爲了
他們哥倆設計的
這是我這兩天正在折騰的UGV模型
這是模型
民用的
這個玩意到時候可以等比放大
放多大都行
得嘞
咱坐這接着聊
好
那接下來我們就聊聊
這些特別牛逼的技術
是什麼原理
怎麼實現出來的
以及爲什麼
我覺得就是
現在市面上的這些技術呢
不適用
或者說不太行
那麼是這樣
我們現在看到
一說這個圖傳啊
大家就都和這個什麼
硬件編碼器
解碼器
什麼H264
H265
跟這些個編碼技術來去較勁
對吧
實際上呢
在傳數據圖像領域呢
有兩塊核心重要的
一個呢
就是你怎麼來去
把這個圖像進行壓縮的
另外一個呢
就是你怎麼把這個圖像
進行傳送的
就這麼兩塊
那麼我們分開了說
說壓縮這塊
目前業界呢
咱們一說這個
關於視頻流
都是264 265
對吧
所有的直播
幾乎都是用的這種技術
最新的是265
最成熟的是264
這倆呢就是265的碼率
可能壓縮率會比它更好
但是他倆是一個
差不多的一個
就是265是264的
一個技術的新版本
那麼他們的壓縮的原理
是類似的
那麼它是什麼樣的
一個壓縮原理呢
我先跟你說說
咱們再回頭再聊
它是甭管軟的
還是硬的
就只要是這麼壓
就不適合在無人機
或者是這種
低延遲的機器人領域
來應用
那麼H264和265的
這種壓縮方式呢
就叫做
幀間壓縮
幀是那個frame
畫面一幀一幀的這個幀
在幀和幀之間
進行壓縮
所以能夠
在保證高畫質的前提下
用最小的帶寬來傳送
也就是說白了
它並不是每幀畫面都傳了
它傳的那個叫關鍵幀
那麼在這個關鍵幀呢
我們假設視頻是連續的
在下一幀
因爲一秒鐘
它可能要跑30幀左右
在下一幀的畫面
比如後背景的這些像素
沒有改變
它就只是來計算
這一秒改變了哪個像素
我就傳變動的這些像素
這樣呢
我每隔若干幀
這個你可以設置
再傳下一秒的畫面
這樣你看
這是264和265的
這種壓縮的技術
它確實就好處是
用很小的帶寬
可以把很高分辨率的畫面
傳送編碼出去
對吧
但缺點在哪呢
缺點在我們
如果用於無人機
或者機神領域
我們假設網絡
是不那麼可靠的
那麼這種情況呢
就是我們需要高實時性
也就是我第二幀畫面出來
你最好馬上給我顯示第二幀
你第二幀畫面出來
你再給我合成第一幀的畫面
都沒多大意義了
對吧
那麼264呢
你就算用硬件來加密它
我這咔都加密好了
我光拿一幀
我是沒法傳264的
我一定得緩存起來很多幀
並且呢
我最好是得從
第一個關鍵幀的出現開始
從這個關鍵幀
我拿出一個底來
然後再把每一幀的
傳輸的像素的差異
編碼過來
發出去
那麼你捕獲這端呢
也就出現了
不可能說我看見一幀畫面
我就給你展示出來
因爲除非這幀是關鍵幀
對吧
而關鍵幀又不是每幀都有
那麼我就算拿到
一個一幀的畫面
我要想給你開始展示
我就得先收集了
若干個這個frame
若干個幀在這個流上
我才能夠去開始渲染
因爲我要拿出一個關鍵幀
再拿出它後續的
這些個像素的變動
這樣我大概這麼說
你應該能理解
就是它本身的協議的設計
就不是爲了實時傳輸
它只是爲了一個高壓縮率來設計
那麼它確實能夠在小帶寬
能夠傳輸大分辨率
關鍵是我無人機
我又不是挨這兒
看高清無碼的大圖
對吧
如果是影視
比如拍攝設置這種
這種是大概可以
它需要高分辨率
稍微有點延時的能湊合
比如說你們看的YouTube直播
就各種網絡視頻直播
有時候你們會發現
你跟主播互動
對吧
你打完字
主播都過了恨不得半分鐘
一般那種
那種就是264 265的
這種廣播級的這種直播
基本上得在幾秒以上
甚至真的能夠
誇張到半分鐘的延時
那這個你根本沒法操作機器人了
它的本質原理
您甭管是硬件還是軟件
你無非算這CPU算力
你就算硬件到頭了
那麼它也是這麼大的延時
而你要知道硬件做264特別貴
因爲它運算的運算量極高
因爲它要把每一幀都緩存起來
它相當於是一個多層通道的
這樣的一個運算
所以它在編碼的時候
特別費CPU
另外您解碼的時候
也相對費CPU運算量
雖然如果說您用軟件去實現
您就是用硬件了
那它這個算法原理不變
那麼說到這兒
你應該大概明白
264 265
只要是基於這兩種技術的圖傳
基本上也是業界標準
適用於影音娛樂沒問題
但是適用於這種
叫什麼低延時的機器人應用
就從協議本身上就不適用
那麼怎麼辦呢
在這塊我們這麼辦
在我這兒呢
當然剛纔我都說到
它的原理了
所以從原理上
我這組圖傳
用的是單幀壓縮
也就是每一幀
是一個獨立的片段
每一幀我取下來
把它切分開
其實我們看
我們真正
在攝像的領域來說
影視領域
它有中心畫質和邊緣畫質
這一說對吧
所以我的壓縮算法裏邊
邊緣的畫質
本身光學的攝像頭
鏡頭就差
所以這地兒
一般沒有什麼太重要的東西
這地兒的畫質比較糙
而中心畫質
我保持一個比較高的畫質
那麼我把這個畫面
拆成比如一個九宮格
這樣來去發送它
來去編碼它
那麼當我的接收端
接收端
我們在模擬
這個網絡環境裏邊
我會採取一個
叫主動丟包的一個機制
因爲我的這套圖傳
或者這套系統裏邊的通訊協議
其實在底層的通訊協議
也已經改變了
剛纔我們不是說
那個264 265
是關於怎麼來去編碼這個圖像
另外一部分
就是怎麼來去傳輸
傳輸這塊
幾乎就是從最底層的IP
IP協議往上
走的UDP
UDP再往上
自己搭的應用
就沒有更多的上層應用了
所以在UDP這裏邊
我就把一個單幀的畫面
用這二進制的
先拆成九宮格
然後設置不同的優先級
去傳這些碎片
當接收端
接收端只要是收到了
只要是收到了
一個不完整的信號
哪怕是中間
它就可以去用於顯示了
所以在接收端的邏輯是這樣
如果我發現
每一幀的畫面
我有一個實戳
如果發現
我正在接收的這一幀
突然我這一幀
我沒接收完
因爲它是多個碎片
來傳輸的
下一幀的數據
我都開始接收了
那怎麼辦
這一幀我就丟棄它
但不是直接扔
而是這一幀
就屬於一個缺失的幀
對吧
注意它是連續畫面
我就可以先記錄
上一幀的畫面是什麼
把這一幀不完整的畫面
貼到上一幀上面去
並且我傳輸的優先級
是從中心的區域開始傳輸
所以通常要丟包
或者要延時
也是邊緣的延時
那麼這樣
我形成了一個不完美的幀
馬上顯示
這個顯示是真正沒延時
因爲我只要看到
下一幀的畫面有了
我就視爲這一幀
我就不等了
一般的這種爲了
像264 265
他們配的這種傳輸協議
比如說你YouTube上面看視頻
走的是TCP
甚至其他高級的控制協議
或者是
我也看網絡資料
有那種叫KCP
就像原神裏邊用的那種
網遊的那種通訊協議
那些通訊協議特別好
但又是一種
不適用於這個領域
那種協議
它主要要控制的是數據完整性
所以它有這個檢測的丟包
重傳等等這些機制
那個就又比較深了
就是它包括在IP層
怎麼來去
用多大的大小來封包
保證你丟包是一個最小損失
以及像原神的KCP協議
它會有一個冗餘的一個方式
就是每
有點像RAID的那種技術
就是每個數據包裏
都包含了一塊
其他包的冗餘的數據
所以允許你丟掉
百分之多少的包
你的數據仍然具有完整性
只要不用重傳
具有完整性
那麼它的延時就小
這個是必要的
在打網遊的時候
就比如說
我網遊上我買了個裝備
你不能你丟包
我裝備沒了對吧
所以網遊呢
是可以允許
再多一點點的延時
但是數據必須得是完整一致的
那種264 265的那種圖傳也是
就是他們的這種直播的畫面
就是我可以容忍
如果網速不好
多一點點延時
但是這個畫面的真理
是不能夠隨便丟掉
完整丟掉真是不行的
並且它的丟真容忍的延時
是非常大的
也就是說
它的工作原理是
下一幀數據來了
行行我先緩存着
我先把這幀的數據
完整的接收完
顯示出來
我再處理下一幀
直到這幀數據超時了
那麼我這塊的
從底層去重新做的
這個數據學習是
只要下一幀數據
開始來接收了
這幀完不完
已經不重要了
因爲下一秒數據產生了
這一幀趕緊給我推出去
然後我去馬上去
把緩存切出來
去接收下一秒的數據
所以我的這個
延時系統裏邊
最多隻容忍
一幀的數據延時
這就是最大的本質區別
那麼當網絡環境不好的時候
會怎麼樣呢
你會看見邊緣畫質
有點往下垮
或者是那塊
角上的畫質有點不跟
但是中心的主體畫質
是完全零延時的
我壓根都沒緩存的
直接就渲染輸出了
這就是爲什麼
我的這個鏈路層
會更適合做這種
實時的視頻推送
然後這個也是參考了
谷歌之前發佈的
那個叫RTC的這種架構
當然我的這個鏈路層上
也會採用了
既然是UDP協議了
所以也是支持
點對點傳送
帶穿牆打動
也可以放中繼
如果說我們爲了
自身的隱蔽性特別高
完全可以通過
一個UDP的服務器
去中繼轉發
但是那樣的話
你就會又多個
幾十毫秒的延時
其實也能接受
看做什麼事
然後在設備上
直接是可以直連的
哪怕兩邊的設備
都不具備公網IP
也沒關係
關於UDP打動的技術
這視頻就太長了
但這也不是我發明的
所以有興趣
回頭我們以後
單獨聊一個視頻再講
總之
它能得到什麼樣的效果
就像您剛纔看的
這個效果
咱再說說應用
就你剛纔看到
這0.1秒的延時
注意
是已經是
從真實發生的物體
到你屏幕這顯示
經過了網絡傳輸
經過了編碼解碼
以後的延時
這個延時的效果
已經和iPhone 15 Pro
直接拍
沒區別了
也就是說
如果你拿iPhone 15 Pro
能夠直接去看這個畫面
去操作東西
您這麼看
也沒問題
說能不能再高一點
因爲我的這套東西
是用的是
比較低端的樹莓派
和一個散裝的老的攝像頭
這個攝像頭本身
它抓這個畫面
就已經給我產生了
50多毫秒延時了
如果是更高的
比如說全域快門的攝像頭
還能更快
但這個已經是很高性價比了
這就200多塊錢的成本
就已經能夠實現到這個水平
反正我很欣慰
好嘞
技術方面
今兒就先聊這麼多
不是我不想分享
我估計再聊
又有好多朋友要睡着了
其實這些技術
我覺得價值挺高
也能夠被商用
我就是把它
再重新再設計個板子
做到板子裏邊
它這個就是一個
固化的一個圖傳的一個產品
這種技術
偉大的中國其實有
誰呢
大疆其實
不多啊
大疆我知道
推出了這種基於4G的
輔助的圖傳
而且它是可能受限於法律法規
是不允許你遠程異地起降無人機的
其實技術本身
和這個法律是兩碼事
這個技術
對吧
你可軍用可民用
你打這
你說從這我飛一個東西到莫斯科
莫斯科那也有4G信號啊
對吧
你天上拿GPS
4G信號
只要你的那個高度
降到大約100米左右的
這個這個海拔高度
你就能收到當地城市的
這個4G信號
那就低延時了
就像送外賣什麼的
就都行了
你明白吧
就這應用的事呢
我估計我點到這
你們的想法就就更多了
好
那節目最後呢
我要再次正式的感謝
近期吧
真金白銀的支持
我去做這些科研的朋友
感謝你們送我的這些個開發板啊
或者一些個小的零件啊
幫我省不少錢
真的
那麼作爲這些投入的回報呢
我目前的和未來的這些研發成果呢
一定在法律允許授權的前提下啊
會開放給支持我的這些朋友
允許他們拿這個去做各種商業化
好嘞
感謝您的關注
我們這還有更多好玩的東西
咱們下期接着聊
拜拜
