【大疆無人機OnboardSDK(一)Assistant2仿真系統搭建】
首先:一定要仔細閱讀官網給出的說明書!M600用戶使用說明,以及妙算2-C使用說明,不然都搞不清哪些線的作用是幹什麼的,也不清楚飛控上面哪些預留口是正常有用的!
爲了想要完成OnboardSDK開發,首先要對其仿真模擬平臺進行搭建,大疆自帶了Assistant2軟件(貌似只有windows和mac版本)該軟件可對無人機固件升級,OnboardSDK開發API設置,波特率設置,以及仿真模擬GUI顯示無人機飛行姿態等。
硬件平臺準備:
-
大疆M600無人機(A3飛控);
- win10電腦一臺(用來安裝Assistant2);
- ubuntu16.04電腦一臺(我使用的妙算2-C用來編譯運行OnboardSDK);妙算2-C 是大疆自己出產的inter i7的處理器即CPU版本。
- 無人機遙控器(用來將檔位調至F檔,表示採用OnboardSDK控制,具體檔位說明見其用戶說明書。)
軟件準備:
-
DJI Assistant2下載:https://www.dji.com/cn/downloads/softwares/assistant-dji-2
-
OnboardSDK下載(注意下載到連接飛控的Ubuntu電腦上纔行,我這裏下載到妙算2裏面了):
- https://github.com/dji-sdk/Onboard-SDK/releases
重點來了,如何連接線?按照上面的準備工作,查看大疆開發者官網給出的連線示意圖:
https://developer.dji.com/onboard-sdk/documentation/development-workflow/hardware-setup.html
官網給出的圖其實很清楚:
A3也就是我們M600蓋子下面的飛控了,打開頂蓋即可發現:
1、而只需要用API接口就行,那我怎麼知道API那幾個孔端點是啥?所以官網給出了下面示意圖來說明:從左往右依次對應:
(我試了USB轉TTL之後的波特率也可以自行設置,例如230400。用轉接後USB可以隨便插妙算任意一個USB口即可,USB對應的設備爲ttyUSB0)因此這時需要使用USB-TTL的轉接線才能連接到Ubuntu(妙算2)的USB插口上。貌似默認配件裏面沒有,要向廠家要,或者網上買一根。這個線長這樣:
然後就可以將A3和Ubuntu連接起來了(只需要用到下面三個線):還是上面第一張圖。
注意TXD表示發送數據,RXD表示接受數據!一般串口就用這二個來表示。左邊發送,右邊接收,右邊發送,左邊接收!
2、M600無人機外面的LED指示燈下給出的一個Micro-USB接口(即之前常用的安卓數據線的另一頭)。這個是用來連接windows電腦usb,進而利用Assistant2來進行執行仿真模擬,固件升級等都是這個口。
3、連接完成之後:飛控上面的紅色指示燈會亮起。
仿真模擬實驗:
首先:獲取權限
您需要將您的用戶添加到dialout
組中,以獲取uart通信的讀/寫權限。請按照以下步驟操作:
- 在終端鍵入
sudo usermod -a -G dialout $USER
- 註銷您的用戶帳戶,然後再次登錄以使權限生效。
1.打開妙算終端下載OnboardSDK:
從github下載OnBoard-SDK源碼
git clone https://github.com/dji-sdk/Onboard-SDK
2.下載好源碼之後進入源碼並編譯:
cd Onboard-SDK
mkdir build
cd build
cmake ..
make
3.將配置複製進當前Onboard-SDK下面的UserConfig.txt到:bin/目錄下:
cp ../sample/linux/common/UserConfig.txt bin/
4.進入bin/目錄下修改上面複製過來的用戶配置文件。
cd ./bin
vim UserConfig.txt
配置文件如下:
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去大疆開發者網站:https://developer.dji.com/cn/
註冊賬號並審覈升級爲開發者用戶,在用戶中心創建一個app點進去即可獲得:填好上面內容。
5.執行官方Samples示例程序,並在Assistant2中查看仿真Demo軌跡。
cd bin
./djiosdk-flightcontrol-sample UserConfig.txt
成功運行後,會提示你數據命令,這時你需要講遙控器撥到F檔,然後終端會提示你輸入命令a或b。
效果如下:
注意事項:
①最好跑程序的時候就提前將遙控器打開,並撥到F擋位。注意把無人機旋翼收起來(儘管它也飛不起來)
②使用Onboard SDK前,注意將Ubuntu(執行時不需聯網,但是下載onboardSDK時需要聯網)通過USB-TTL連接A3飛控,遙控器連接手機,手機連網,windows電腦(聯網)連接Micro-USB,首次執行Samples時會在軟件DJI Assistant2上面要登陸進行激活。
③注意在Windows電腦下打開Assistant2時選擇SDK,並勾選啓動API控制,波特率調整和上面UserConfig.txt中填寫的一致。調完波特率之後需重新啓動一下無人機A3飛控。
④串口打開失敗
ls -l /dev |grep ttyU
開放權限:
sudo chmod 666 /dev/ttyUSB0
⑤沒有檢測到上面串口,檢查TXD和RXD二者收發方是否接正確。