無人機上需要哪些程序? 以及如何進行無人機編程?
作為機器人總師來回答這個問題。
1,首先,是狀態估計。無人機在天上飛,它必須明白自己的狀態,例如姿態,位置,速度等,才能根據控制演算法來調整控制。機器人依靠各種感測器來獲取離散數據,但不幸的是,各種基礎感測器,例如陀螺儀,加速度計等,功能是很有限的,不能給你太多信息,那麼就需要你寫一個狀態估計程序,來把這些感測器數據處理、融合成你需要的信息。
2,是濾波。感測器的數據,在現實中,是很「臟」的,也就是說被各種雜訊污染得很厲害。要從大量雜訊中過濾出真實的感測器數據,這就涉及到濾波。比較常用的濾波演算法有卡爾曼濾波與其各種非線性變體,新一點的還有粒子濾波,能更適應非線性的真實環境。
3,控制演算法。現在你已經估計了無人機的狀態了,那麼就需要調整各個控制力矩的輸出,將無人機調整到你需要的狀態。控制演算法里比較簡單和常用的有pid以及其各種變體,但pid也是一種線性控制,真實環境是非線性的,我們一般可以通過加快控制-反饋的頻率來近似。
4,任務邏輯。無人機執行具體任務的流程和邏輯。
5,通訊程序。你的指令要發給無人機,無人機的數據要傳給你,涉及到通訊的問題,這個問題比較簡單,不多提。
6,上位機、地面站。要為無人機的操作準備一套人機界面。
基本上就是這些了。答主自己就在做無人機研究,也期待更多青年投身這一行。未來是機器人的天下,廣闊世界大有所為!
這個話題擴展開去就太大了...簡單說一下吧
無人機本身是個非常綜合性的系統。就基本的核心的飛行控制部分來說,一般包括內環和外環。內環負責控制飛機的姿態,外環負責控制飛機在三維空間的運動軌跡。
高端的無人機,依靠高精度的加速度計和激光陀螺等先進的感測器(現在流行的都是基於捷連慣導而不是平台式),計算維持飛機的姿態。低端的型號則用一些MEMS器件來做姿態估算。但它們的數學原理基本是相同的。具體的演算法根據硬體平台的能力,可能採用離散餘弦矩陣/四元數/雙子樣/多子樣....
高端的無人機,AHRS/IMU採用的基本都是民航或者軍用的著名產品。例如全球鷹的利頓LN-100G/LN-200等。這些系統價格昂貴但精密,內部往往是零鎖激光陀螺之類。例如LN-100G的GPS-INS組合,即使丟失GPS,靠慣性器件漂移仍可以控制在120m/min。
低端的無人機就沒那麼精密講究了,一般都依賴GPS等定位系統來進行外環控制,內環用MEMS陀螺和加速度計進行姿態估算。
如果把無人機看成一個完整的系統,那麼還需要很多其他支持,例如任務規劃,地面跟蹤等等....
進行無人機編程,得看你具體是指哪方面。如果是飛控系統,你得需要比較紮實的數學知識,對各種矩陣運算/控制率什麼的有深刻的了解。如果只是希望現有的帶飛控的平台去做一些任務,那麼需要根據具體的平台來考慮。有些平台提供了任務編輯器,甚至更靈活的任務腳本。
我們提供當前入門級別最好的控制系統,想深入了解可以與我聯繫 ^_^
無人機編程:
1.硬體介面編程:如控制器和各感測器之間
2.控制演算法程序實現,控制姿態調整的演算法,編隊飛行的演算法,自主飛行智能演算法等等。這些演算法需要在主控器上通過機器語言(程序)實現。
3.感測器數據處理。如陀螺儀的角速度,強磁計的偏航信息,加速度計的線性加速度等等,這些信息反饋回主控器,需要經過數據處理如濾波,融合,反饋回演算法等。
此外如地面站(電腦中,手機中)都需要編程實現,還有一些單獨模塊是可以選擇個人編程的,如電調,GPS,遙控器等。
__________________________________________________________________________________________________________________________________________________________________
這個回複比較久。這段時間無人機也開始加上了「系統」,因此Linux對應的嵌入式編程,IOS、安卓對應的軟體APP平台也出現在無人機系統需求中。
作者:無人機中的城堡,公眾號:CastleUAVStudio
MR.城堡為您提供涵蓋無人機技術分析與分享,無人機產品評測(參評、機評),行業分析等領域的專業內容
作者為環球網無人機頻道,深圳灣,UAVSNEWS等行業媒體特約撰稿人。
個人認為可以分開模塊考慮,最粗的分法就是兩個模塊,一個模塊負責飛行,維持飛機航線和姿態,以及和地面控制的通信,另一個模塊就是功能模塊,因為無人機總是要完成一些任務,具有一定功能的,如果再細分的話飛行模塊里還有姿態控制,航線控制,GPS定位,電源或者燃料的管理等等。功能那一部分就看無人機要完成的任務了。
如果說編程的話任何一個部分都可以通過程序自動劃實現的。
基於WICED的WIFI四軸飛行器,手機APP控制(硬體、核心代碼、演算法等) - 飛行器 - 電路城
本設計中四軸飛行器無線控制使用WiFi方案,具有更加通用易用性。可以實現飛行器姿態數據、控制參數、狀態信息等數據的更新和控制。
WiFi方案基於博通BCM43364(STM32F411+BCM43364),使用WICED開發。 四軸飛行器主控單元採用STM32F103+MPU6050+HMC5883+MS5611方案,可提供加速度、角速度、方向和高度反饋。在調試中還使用了OpenGL實時模擬顯示飛行器姿態,更加直觀。
最後使用WiFi實時圖傳模塊(FPV)實現手機APP控制和簡單的航拍功能(為了演示戶外飛行,圖傳功能並非本項目中開發,而是直接採用成熟方案)。
【飛控DIY】四軸飛行器畢業作品,完整項目開源(電路圖、源代碼、畢業論文) - 飛行器 - 電路城四軸飛行器作為低成本的實驗平台,在各個領域都有發揮作用的潛力。本設計使用的陀螺儀MAX21000,加速度計ADXL362(ADI無人機解決方案),磁阻HMC5983,氣壓計MS5611,感測器全部使用SPI介面,軟體利用RTT的SPI驅動,所以ODR非常高。
基於國產GD32的四軸飛行器,試飛成功! - 飛行器 - 電路城今天本來也沒做好起飛的準備,不過感覺老是在屋裡調有些東西是觀察不到的,因此就冒險去戶外飛了一下。果然。。。。。。墜機了,原因是其中一個非自緊螺旋槳的螺絲鬆了,稍後上圖,之前也松過一次,沒處理好,這次得到教訓了。這一摔就是400塊錢沒了,維修也得1到2個星期。
目前的功能:
- 1.開啟感測器低通濾波98Hz,濾掉電機震動對加速度計和陀螺儀的影響。
- 2.磁力計現場校準,代碼直接完成,不需要PC干預。換個地方飛不用再帶個電腦做校準了。
- 3.陀螺儀零偏自校準
- 4.加速度計零偏和靈敏度校準
- 4.代碼時間片管理,姿態融合500Hz,PID控制200Hz
- 5.位置式PID控制,控制參數採用kp,Ti,Td,從今天飛行狀況來看,此功能日後需大力改進
- 6.固定航向模式。日後加入可控航向。
- 7.串口在線調試,支持在線參數保存和讀取,採用GD32F103內部Flash來保存參數,不用外擴存儲晶元,也方便調試PID參數和磁力計校準。
- 8.飛行模式:x模式
請問專家們,無人機飛控系統是用什麼軟體或者什麼編程語言開發的?
你首先得界定你準備從事什麼領域的無人機。如果是消費級無人機,上面好多回答了。
如果是軍用大型無人機,那程序就多了,幾十上百個配置項,而且無所謂「無人機」軟體開發,因為程序員就是coder,你只要把系統/分系統技術人員的演算法用軟體實現就好了,你的輸入就是軟體研製任務書,邏輯、變數、參數,每一個功能的進入/退出條件,異常處理等等,甚至軟體架構都給你定好了,你不用發揮也不允許發揮(軟體三測必須文實一致)。
很多的,先能寫出個飛控就已經很牛逼了
推薦閱讀:
※你學工科到底學到了什麼?
※戰鬥機超音速巡航時怎麼與控制中心通訊?
※在世界頂尖的光電子實驗室學習或工作是什麼樣的一種體驗?
※光通信的前景如何?能具體談談嗎?
※海南海航信息技術有限公司是家什麼樣的公司?有了解的童鞋嗎?