一直是對(duì)無人機(jī)的二次開發(fā)具有濃厚的興趣,現(xiàn)在正好是手邊有著全套的無人機(jī)開發(fā)的套件,這種機(jī)會(huì)可不能浪費(fèi)掉。
之前倒是寫過較為全面的SDK文章,但是過了太久了,有些遺忘,那么這篇文章算復(fù)習(xí),其次是現(xiàn)在OSDK已經(jīng)到了5的時(shí)代,很多東西都變換了。我對(duì)Linux下的開發(fā)其實(shí)是不熟悉的,那么這里就以STM32 串口控制無人機(jī)為一個(gè)路,從代碼層面對(duì)SDK來一個(gè)認(rèn)識(shí),等我寫完這些我就開一門叫OSDK二次開發(fā)入門的課。
因?yàn)樽罱谘芯縎LAM系統(tǒng),有一些SLAM是需要精確授時(shí)的,但是demo里面都是使用的RTK,太貴了,我后來發(fā)現(xiàn)其實(shí)飛控也控制發(fā)送這種硬件的信號(hào),我這里和時(shí)間混為一談了,其實(shí)就是多傳感器之間的同步問題。但是我發(fā)現(xiàn)我的A3飛控其實(shí)是不支持這樣輸出的,但是無妨, 也不妨礙我寫這個(gè)東西。
示意圖
pps英文全稱是 Pulse Per Second,中文解釋為秒脈沖,脈沖數(shù)/秒,PPS即每秒脈沖數(shù)的縮寫,一般出現(xiàn)在通信行業(yè)中。
獲取時(shí)間的時(shí)間同步信息: 獲取NMEA數(shù)據(jù):獲取無人機(jī)使用的定位系統(tǒng)的數(shù)據(jù),如GPS、伽利略、北斗及GLONASS 等 獲取PPS數(shù)據(jù):獲取無人機(jī)的硬件觸發(fā)脈沖信號(hào) 獲取UTC時(shí)間:獲取統(tǒng)一的UTC時(shí)間
運(yùn)動(dòng)控制功能:
航點(diǎn)任務(wù):控制DJI 的無人機(jī)按照預(yù)設(shè)的多個(gè)航點(diǎn)實(shí)現(xiàn)自主飛行 熱點(diǎn)任務(wù):控制無人機(jī)圍繞設(shè)置的興趣點(diǎn)環(huán)繞飛行 控制權(quán)限聲明 DJI 無人機(jī)的飛行控制器能夠根據(jù)實(shí)際的飛行狀態(tài)和用戶的需求,調(diào)整受控主體,無人機(jī)控制權(quán)限的等級(jí)由高至低依次為遙控器、基于MSDK 開發(fā)的移動(dòng)端APP 和基于OSDK 開發(fā)的應(yīng)用程序。在DJI 的控制體系中,DJI 遙控器的控制權(quán)限最高,可隨時(shí)獲取控制DJI 無人機(jī)的控制權(quán)。
偏航是飛機(jī)繞機(jī)體坐標(biāo)系豎軸的短時(shí)旋轉(zhuǎn)運(yùn)動(dòng)。豎軸通過飛機(jī)重心在飛機(jī)對(duì)稱平面內(nèi)并垂直于縱軸。偏航運(yùn)動(dòng)的主要參數(shù)有偏航角、偏航角速度、偏航角加速度。偏航運(yùn)動(dòng)通過踩腳蹬使方向舵偏轉(zhuǎn)產(chǎn)生繞飛機(jī)重心的偏航力矩來實(shí)現(xiàn)。
這個(gè)是從上到下的看視角
在航點(diǎn)任務(wù)中,用戶使用操縱桿能控制無人機(jī)的飛行速度和偏航角度; 熱點(diǎn)任務(wù):用戶使用操縱桿能控制無人機(jī)執(zhí)行任務(wù)的速度、飛行半徑(執(zhí)行熱點(diǎn)任務(wù))、飛行方向和偏航角度。 就是相當(dāng)于旋轉(zhuǎn)機(jī)身,然后就是一個(gè)油門。 在P 模式下,使用基于MSDK 開發(fā)的移動(dòng)端APP 向無人機(jī)發(fā)送控制指令。 當(dāng)使用基于MSDK 開發(fā)的移動(dòng)端APP 向無人機(jī)不再發(fā)送控制指令時(shí),遙控器會(huì)獲得無人機(jī)控制權(quán)。嘿嘿,我又控制回來了。 基于OSDK 開發(fā)的應(yīng)用程序在控制無人機(jī)執(zhí)行指定的任務(wù)時(shí),基于MSDK 開發(fā)的移動(dòng)端APP 可搶占該應(yīng)用程序?qū)o人機(jī)的控制權(quán),優(yōu)先控制無人機(jī)執(zhí)行指定的動(dòng)作,確保無人機(jī)和用戶的安全。
這里使用的是妙算2G
方法1:使用Manifold 2 中的串口線連接無人機(jī)尾部的拓展接口和Manifold 2 的UART1 接口(Manifold 2 中的設(shè)備號(hào)為ttyTHS2); 方法2:使用USB轉(zhuǎn)串口線連接飛機(jī)尾部的拓展接口和Manifold 2 的USB 接口(Manifold 2 中的設(shè)備號(hào)為ttyUSBn,n為0、1、2.....)。
為避免干擾無人機(jī)的正常工作,請(qǐng)確保機(jī)載計(jì)算機(jī)的電壓在18V~26V 間,電流恒定為2A。
明天去樓下偷一個(gè)
遙控器的搖桿
接收機(jī)
參數(shù)
PPM就可以加多協(xié)議的高頻頭了
對(duì)頻
接收機(jī)的LED燈
在OSDK的4.0之前的STM32 都是裸機(jī)執(zhí)行的程序,但是4.0以后就變成了這個(gè)RTOS,媽的,還是強(qiáng)制執(zhí)行哪種的。
不過有個(gè)優(yōu)點(diǎn)是,裸機(jī)的難度會(huì)更小,以及代碼量也會(huì)變少。
其實(shí)還有一個(gè)版本是針對(duì)樹莓派2B的,別問我為什么知道
這個(gè)是幾個(gè)子項(xiàng)目之間的cmake文件
現(xiàn)在都11:30 了,這里給大家展示一個(gè)DJI的FPV天空端拆機(jī):
攝像頭開蓋
CMOS后面的芯片
接口
鏡頭
CMOS的樣子
也不知道是幾層板
天空蝸牛
戰(zhàn)損發(fā)射機(jī)
后面的接口和天線
開蓋
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210392 -
無人機(jī)
+關(guān)注
關(guān)注
230文章
10515瀏覽量
182410 -
SDK
+關(guān)注
關(guān)注
3文章
1045瀏覽量
46273
原文標(biāo)題:DJI OSDK開發(fā).1(回憶)
文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
CAXA2011二次開發(fā),CRX; CAX2007二次開發(fā)
手機(jī)模塊二次開發(fā)
面向?qū)ο蟮膮?shù)化CAD二次開發(fā)方法研究
AutoCAD的二次開發(fā)
ANSYS的二次開發(fā)技術(shù)
基于VC的Cadence二次開發(fā)
![基于VC的Cadence<b class='flag-5'>二次開發(fā)</b>](https://file.elecfans.com/web2/M00/49/2B/pYYBAGKhtDyAIgnfAAAOX9-xjMY182.jpg)
可支持快速二次開發(fā)的zigbee核心板
GIS 二次開發(fā)概述
![GIS <b class='flag-5'>二次開發(fā)</b>概述](https://file1.elecfans.com//web2/M00/A7/29/wKgZomUMQsCAINqYAAAgU_kexfc796.png)
對(duì)功率計(jì)進(jìn)行二次開發(fā)
空間光調(diào)制器的簡便控制方法:靈活應(yīng)用二次開發(fā)
![空間光調(diào)制器的簡便控制方法:靈活應(yīng)用<b class='flag-5'>二次開發(fā)</b>](https://file.elecfans.com/web2/M00/A4/B9/pYYBAGRcfrOATd-LAABAM_x2PfY730.png)
【產(chǎn)品應(yīng)用】LoRa網(wǎng)關(guān)與二次開發(fā)終端的神仙搭配
![【產(chǎn)品應(yīng)用】LoRa網(wǎng)關(guān)與<b class='flag-5'>二次開發(fā)</b>終端的神仙搭配](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
評(píng)論