入門大疆 SDK 開發前,你須要瞭解這些…

SDK(Software Development Kit),即軟件開發工具包,用來開發適用於某個產品(好比 DJI Phantom 4)或某個平臺(好比 Windows)的軟件,一般由產品或平臺的廠商提供給開發者使用。在這個工具包裏一般包括各類各樣的調試工具、API 文檔、開發指南和模擬器。

而在大疆 SDK 裏(以 Mobile SDK 爲例),爲開發者提供的工具備:html

  • 容許接入 DJI 產品的 iOS/Android 的代碼庫
  • 飛行模擬器及一些可視化工具
  • 調試工具及遠程日誌記錄
  • 示例代碼及教程
  • 開發者指南及 API 文檔

開發者能夠利用這些 SDK 的工具,從無人機的相機、雲臺、飛控狀態信息獲取等接口入手,經過大疆提供的代碼庫向無人機發送多種控制指令,完成特定的飛行任務。算法

P.S. 對於編程新手來講,可能也會常常聽到 API(Application Programming Interface)並想了解其與 SDK 的關係,鍾德夫恰好在網絡上找到這麼一張圖,很好地闡釋了各個名詞之間的關係:
編程

大疆 SDK 的種類

大疆官方提供了移動端、機載端和視覺導航系統的 SDK(Mobile SDK,Onboard SDK 和 Guidance SDK)。
安全

  • Mobile SDK 幾乎全線支持大疆的硬件產品,在開發平臺上支持如今主流的兩大移動端系統平臺:iOS 和 Android,換句話說,經過 Mobile SDK 最後開發出來的就是咱們常見的手機/平板 app,只不過這個 app 在開發的時候調用了部分 Mobile SDK 的 API 並封裝成一個個能夠用於操控無人機的功能。
  • Onboard SDK 則更強調在機載平臺(包括妙算、禪思系列鏡頭、飛行控制器)上進行開發,屬於硬件開發的範疇,更多的是處理數據通信協議,經過發送碼流來達到控制無人機的目的,對於有高運算數據處理需求的開發者來講,大疆的機載電腦(如妙算)和 Onboard SDK 就是很好的選擇了。
  • Guidance SDK,顧名思義,就是爲 Guidance 導航系統而設的 SDK,經過 SDK 你能夠從 Guidance 硬件上獲取到各類輸出數據,包括實時三維速度、IMU 數據,五向超聲波距離等等。

用大疆 SDK 能夠作什麼?

這取決於官方 SDK 提供的 API 種類,以及開發者的想象力。爲了推廣其 SDK 項目,大疆過去曾開展過 SDK 開發者大賽和編程馬拉松比賽。想了解在這些比賽中開發者利用大疆 SDK 都玩出了什麼「花樣」,能夠經過下方的文章連接進行回顧:網絡

歷屆 DJI 開發者大賽優秀做品彙總app

另外,App Store 或 Google Play 上也有很多基於大疆 SDK 開發的 app,具體可參考鍾德夫以前推薦的部分軟件:框架

須要準備哪些方面的知識(以 Mobile SDK 爲例)

不一樣產品的需求和使用場景會對開發基礎有不一樣的要求,好比在測繪行業的,你須要瞭解有關 GIS 的知識,須要開發圖像識別的,則須要掌握如 OpenCV 等圖像處理的算法。這裏只針對廣泛的狀況進行歸納:工具

  • iOS/Android app 開發:這意味着你須要掌握 Swift/Kotlin 或其餘適用於 iOS/Android 這兩個平臺的開發語言。這個其實與無人機並無關係,但它是最基礎的,由於大疆(Mobile)SDK 開發本質上就是開發 iOS/Android 平臺上的 app。若是這塊知識沒掌握好,極可能在閱讀 API 文檔的時候便會遇到很大的麻煩。
  • DJI 產品組件:由於文檔是英文的,因此須要熟悉一臺無人機各組件的名稱、用途及參數範圍,對於剛從互聯網轉行到無人機行業的開發者來講,這點尤其重要,具體可參考 https://developer.dji.com/cn/mobile-sdk/documentation/introduction/product_introduction.html

  • SDK 框架:由於無人機有不少組件及子組件構成,因此須要大概瞭解每一個組件都分別繼承哪幾個大類。

  • 飛行控制理論:無人機 app 的開發是面向三維的開發,瞭解空間座標系系統(負責定位),及 Roll、Pitch 和 Yaw 的原理(負責移動)將會對開發頗有幫助。
  • API 文檔:最後纔是 SDK 裏最核心部分,你能夠根據需求或本身的想法調用不一樣 API 來控制你的無人機。固然這部分的內容能夠邊開發便查閱。

當一切都準備就緒後,即可以嘗試運行 SDK 提供的示例代碼了,具體操做流程參見:https://developer.dji.com/cn/mobile-sdk/documentation/quick-start/index.html開發工具

小結

因爲安全緣由,大疆並不是徹底開源,在涉及到限高、禁飛區等安全問題,開發者仍是無法經過 SDK 來突破這些限制的。另外,對比開源飛控(如 Pixhawk),大疆飛行系統更爲穩定,也讓開發者更爲放心地進行開發。測試

雖然基於大疆(Mobile)SDK 的開發本質上仍是寫 app,但因其控制的產品須要在半空中移動,對公共安全仍是有必定的威脅,因此在真機測試前必定要先在模擬器上多番測試,對程序穩定性有較高的把握後,再找一個空曠少人的地方進行真機測試。

最後,祝你們順利寫出第一個無人機 app 的「Hello World」。

相關文章
相關標籤/搜索