【大疆無人機Assistant2仿真OnboardSDK系統搭建】
【大疆無人機Assistant2仿真OnboardSDK系統搭建】
首先:一定要仔細閱讀官網給出的說明書!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的轉接線才能連接到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二者收發方是否接正確。
智能推薦
盤一盤 Python 特別篇 22 - 分箱之 cut
本文含 1852 字,14 圖表截屏 建議閱讀 10 分鐘 掃碼下載本貼用到的數據 本文是 Python 系列的特別篇的第二十二篇 特別篇 1 - PyEcharts TreeMap 特別篇 2 - 面向對象編程 特別篇 3 - 兩大利「器」 特別篇 4 - 裝飾器 特別篇 5 -&nbs...
LeetCode-47.全排列Ⅱ、深度優先搜索
深度優先搜索 深度優先搜索(DFS)就是在每一步時對每一種可能的選擇一條道走到底,然后再回過頭嘗試另外一種選擇。 深度優先搜索的關鍵是要考慮“當前這一步”該如何做,至于“下一步”該怎么做和當前這一步的解決方法是一樣的。在進行當前步的選擇之前要確定已經做出的選擇列表,然后在剩余可供選擇的每一種可能進行遍歷,對于每一種選擇將選擇結果以及選擇狀態代入下一步...
知識點最全的數據庫面試題
來源:https://zhuanlan.zhihu.com/p/150959652 13道sql,基本上覆蓋了所有sql的核心點。 要求寫出一下SQL語句 1、查詢位于“華東”或“華南”地區的供應商的ID、公司名稱、地區、城市和電話字段的值 a. 地區=”華東” OR a.地區=”華南”; 2、查詢&l...
猜你喜歡
面向切面編程(AOP)知識總結
目錄 1.存在問題 2.AOP的概念 3.AOP應用范圍 3.AOP實現方式 4.應用舉例 5.結束語 本文在學習【老張的哲學】系列文章AOP相關章節后,自己歸納總結的筆記。 1.存在問題 最近,其它項目小組在開發的過程中遇到了一個問題,在日志記錄時,用戶明明點擊的是更新操作,可翻看記錄時卻發現是查詢操作,起初是一頭霧水,后面跟蹤該更新操作的代碼后才發現,在日志記錄時確實是寫著查詢,說到這里,大家...
集合中出現的問題
1.Java集合框架的長處? 2.集合框架中的泛型有什么長處? 3.Java集合框架的基礎接口有哪些? 4.為何Map接口不繼承Collection接口? 5.Iterater和ListIterator之間有什么差別? 6.fail-fast與fail-safe有什么差別? 7.在迭代一個集合的時候,怎樣避免ConcurrentModificationException?8.在Java中,Hash...
三元運算符引起的bug
三元運算符引起的bug 前言 延伸 總結 前言 今天測試提交了一個bug,跟蹤發現了一段代碼,初看還沒什么問題,簡易后的代碼: 這段代碼想要實現的功能是返回 細看發現后面使用的是三元運算符,這就是造成這個bug的元兇。 解決方案:使用括號括起來。 延伸 在做這個例子的時候,使用ideal,習慣性的使用sonar掃描: 這里很明顯的提醒這里表達式有問題。 總結 三元運算符格式:expression1...
利用dom4j來生成xml
xml比較常用,處理xml的方式也比較多。現在就聊聊如何用dom4j來生成xml吧 先看看效果。。。 上傳代碼: 大概說下主要步驟吧: 1.創建document對象,創建root根節點,然后通過根節點繼續生成節點。其中也可以給該節點添加屬性,復制等。 2.創建輸出流,將該對象輸出到xml文件中去。需要設置好路徑和文件名等。...
Android輪播圖原理思路分析+實現方案
來自:http://blog.csdn.net/wubihang/article/details/52512597 ListView的headerView設置為輪播圖之后結合上/下拉刷新/加載的模式成為現在大多數APP的一個必須具備的功能,對于許多初學者來說想要實現輪播圖這樣一個集線程睡眠、自動處理、替換過程中刷新UI界面的組合功能非常困難,沒有思路,感覺無從下手,去搜索各種實現方案,發現目前充斥...