1. 程式人生 > >大疆無人機M100的onboard sdk開發-啟用(linux平臺)

大疆無人機M100的onboard sdk開發-啟用(linux平臺)

上面一篇基於QT平臺的OSDK開發,這裡研究一下linux平臺的OSDK開發,硬體連線和前期工作參考上篇即可,這裡不做過多說明;

進行OSDK開發的準備工作:

https://developer.dji.com/onboard-sdk/documentation/sample-doc/sample-setup.html#before-you-start

先進行硬體連線,確保你在遵循這些步驟硬體設定指南讓您的連線正確。https://developer.dji.com/onboard-sdk/documentation/development-workflow/hardware-setup.html

執行OSDK的處理器叫做onboard computer ,飛行器叫做Dji aircraft。

首先說一下M100的相關協議,連線如下:

https://developer.dji.com/cn/onboard-sdk/documentation/protocol-doc/open-protocol.html

其次言歸正傳,說說linux平臺的OSDK:

從github中下載onboard sdk包,https://github.com/dji-sdk/Onboard-SDK。 

目前的最新版本是3.7,

1.下載開發包

2.如果沒有安裝git的話請先安裝git,安裝過的跳過

sudo apt-get install git

3.開啟一個終端,Building the OSDK and Samples

下載好原始碼之後進入原始碼

cd Onboard-SDK
編譯SDK

mkdir build
cd build
cmake ..
make

注意cmake一定要有兩個. 也就是cmake..

make 結束,在build檔案下生成如下:

4.配置 進入build資料夾下,將配置檔案複製進bin/目錄下

cp ../sample/linux/common/UserConfig.txt bin/
開啟使用者配置檔案UserConfig.txt

5.開啟配置檔案UserConfig.txt ,在相應位置填寫App ID, Key, Baudrate and Port name in the designated places.

vim UserConfig.txt

vim編輯器開啟後顯示如下:

app_id : your_app_id_here   //App ID
app_key : your_key_here     //Key
device : /dev/ttyUSB0   //USB連線飛控後在電腦中顯示的串列埠名稱
baudrate : 230400   //在 DJI Assitant 2 中修改的波特率

app_id 和 app_key需要註冊成為DJI開發者Level 2級開發者後可以看到
進入http://www.dji.com/cnDJI官網,往下拖動網頁,在右下角點選開發者進行註冊。

在註冊完畢並通過稽核之後,點選下圖中的圖示既可得到你的app_id和app_key.

例如:
app_id : 1027xxx                                                   
app_key : 4ec5625bb6de9875b844cb8f8937012b21caeba708dcc8089995b4c78e8xxxxx
device : /dev/ttyUSB0
baudrate : 115200

6.執行Linux sample ,以飛控演示為例,Samples (e.g. flight control sample) 

cd bin
./djiosdk-flightcontrol-sample UserConfig.txt

成功執行後,會提示你資料命令,這時你需要講遙控器撥到F檔,然後輸入命令

隨便輸入a或者b

 即可看到飛機開始運動,切記要把機槳取下來,注意安全。

可能遇到的問題

1.串列埠開啟失敗

解決方案
有可能是因為沒有將串列埠的許可權開放出來
檢視USB轉串列埠模組的標號

ls -l /dev |grep ttyU

 

通過上圖可以看出來串列埠的標號是ttyUSB0,接下來將該串列埠的許可權開放:

sudo chmod 666 /dev/ttyUSB0
 

2.其他問題


參考文獻:https://blog.csdn.net/qq_16775293/article/details/78144156

解決方案
1)檢查是否在DJI Assistant 2軟體上勾選開發者選項,並且檢查在本文前面修改的波特率和DJI Assistant 2上設定的是否一致。

2)在使用Onboard SDK前,遙控器連線手機,手機連網,然後在軟體DJI GO上面登陸進行啟用。
3)最好跑程式的時候就講遙控器開啟,並撥到F擋位。
4)記得我們用的是USB轉串列埠模組,從飛機機身 UART_CAN2介面都的資料,使用的是官方送的三根的資料線,RT,TX記得對調,而不是使用USB線直接從飛機機身連線到電腦