Tello智能資訊處理平台
- 介紹
- 控制
-
- 鍵盤控制
- 語音控制
- 視覺功能
-
- 人臉跟蹤
- 綠球跟蹤
- 手勢控制
- 體态控制
- 拍照錄像
- 結語
介紹
本項目是我的一個課程設計。本來打算做大型四旋翼無人機的控制,後來老師給了兩個Tello無人機(分别是帶拓展闆和不帶拓展闆的),就轉到了做Tello的控制。項目的GUI界面和背景邏輯以及功能整合、整體優化調試由我完成,其他隊員負責各視覺功能子子產品的實作和調試。
源碼及項目詳細介紹請看GitHub倉庫:Tello智能資訊處理平台
此平台使用python語言開發,可用于控制大疆公司的Tello系列無人機,并利用無人機的攝像頭、紅外等傳感器完成一系列視覺功能,包括:目标檢測與跟蹤(綠色小球與人臉)、手勢控制、體态控制等。
也可控制Tello進行拍照、錄像,以及做出一些抛飛、翻轉、手上降落等花式動作。

控制
鍵盤控制
鍵盤控制一直處于開啟狀态。每個鍵盤鍵位對應的功能如下:
-
起飛tab:
-
降落/懸停/抛飛/手上降落L/P/G/H:
-
向前/左/後/右W/A/S/D:
-
向上/下U/I:
-
順/逆時針旋轉J/K:
-
前/後/左/右空翻Z/X/C/V:
語音控制
有效語音指令如下:
- 起飛;
- 降落;
- 懸停;
- 向前/後/左/右/上/下飛x厘米(x=20~500);
- 順時針旋轉x度(x=1~360);
- 向前/後/左/右翻滾;
- 速度設為x厘米每秒(x=10~100);
- 向前/後/左/右;(不建議,此指令會讓無人機一直朝某個方向飛,直到得到“停”指令);
- 停;
python實作大疆Tello無人機控制平台并實作語音控制/手勢控制/人臉跟蹤/綠球跟蹤/拍照錄像介紹控制視覺功能拍照錄像結語
視覺功能
人臉跟蹤
在菜單欄開啟人臉跟蹤功能後,無人機會搜尋人臉目标(最好隻有一個),然後靠近人臉并保持在一定的安全距離内,且随着人的移動而移動。
綠球跟蹤
與人臉跟蹤類似,開啟此功能後,無人機能夠檢測跟随綠色小球(球不要太小)。
手勢控制
開啟此功能後,會顯示一個子視窗,并顯示計算機攝像頭視訊流。識别出比劃的手勢後,無人機會做出相應的動作。為了避免連續識别并發出指令,我們設定了每次跳過一定幀數後再識别一次。
支援的手勢如下:
-
啟動;雙手合十:
-
起飛;大拇指向上:
-
降落;大拇指向下:
-
向上/下/左/右/前/後飛x厘米;一/二/三/四/五/六:
-
順/逆時針旋轉90度;七/八:
-
懸停;九:
飛行速度與飛行步長與主界面中對滑塊設定的值有關。
體态控制
我們加入這個功能的初衷是想通過人體的姿勢來控制無人機。
但是我們沒有時間去訓練自己的輕量檢測模型。我們尋找到了
AlphaPose
這個開源姿勢檢測庫,并選擇其中運作速度較快的一個模型融合進我們的平台中。
盡管如此,檢測速度還是無法達到我們的預期。而且由于整個項目是在我的macOS系統上建構,無法使用CUDA加速計算,是以整體檢測速度非常慢。
為了避免危險情況發生,我并沒有為體态檢測結果設定相應的無人機指令,隻将體态檢測結果顯示在主界面上。
拍照錄像
在主界面點選拍照後,會将目前無人機原始畫面以jpeg格式存儲到本地。
點選錄像後,程式開始将無人機原始畫面以avi格式編碼為視訊流,再次點選錄像按鈕後,停止錄像并将視訊儲存到本地。
結語
我們大約用了十天左右的時間完成這個平台,比較倉促,有些功能還能夠再完善一下。但是在答辯結束後我們已經将兩個無人機還給老師了,如果你對Tello感興趣的話,可以在我們項目的基礎上添加更多的功能以及完善一下邏輯和bug。
項目源碼在文章開頭的連結裡,感興趣的朋友可以fork一下,點個星星哦