轉載:APM,PX4,GAZEBO,MAVLINK,MAVROS,ROS之間的關係以及科研裝置選型
0.概述
無人機自主飛行平臺可以分為四個部分:動力平臺,飛行控制器,機載電腦和模擬平臺。
- 動力平臺:負責執行飛行任務,包括螺旋槳、電機、機架等,用於科研的一般都是F380和F450的機架。
- 飛行控制器:無人機使用的控制器取決於採用的韌體:apm和pixhawk。用來調整無人機在空間中的位姿,給各個螺旋槳傳送指令。
- 機載電腦:作為上位機,通過MAVROS或者mavlink協議跟飛控通訊。可以搭載更多的機載裝置諸如相機,各類感測器,通過機載電腦感知周圍環境,做出更多智慧化的工作。常見的機載電腦有x86平臺的upboard,樹莓派,英偉達的jetson。我們自己的實驗平臺機載電腦使用的是樹莓派3b+,飛控是pixhawk,搭在了intel的realsense攝像頭,深度攝像頭,超聲波和鐳射感測器。
- 模擬平臺:無人機作為航空裝置,操作複雜,危險性高,就算是成熟的商業產品諸如大疆,也存在很多的炸雞事故。所以,在進行實際飛行之前,一定要進行模擬操作,將程式修改好之後,才可以進行實機測試。
1.APM和PX4:飛行控制器和
APM和PX4是自動駕駛和無人機領域最出名的兩個韌體。而因為歷史原因,國內在兩個韌體的叫法上一直巨大的混淆。
淘寶上比較常見的無人機飛控韌體大體分為三類:APM,pixhawk2.4.8和pixhawk4。其中apm價格最便宜,px4價格最便宜。一般的無人機玩家,從預算考慮會購買apm,稍微預算充足的會購買pixhawk2.4.8的硬體。雖然從硬體配置和效能上,apm的硬體是遠遠不如pixhawk2.4.8的。
但是一般使用者購買的pixhawk產品,商家會提供一些pix_3.*.*之類的韌體,這些韌體實際上是樂迪公司修改過的apm的韌體,商家提供的地面站也是apm公司mp地面站,而且是版本較老,漢化不全地面站。
如果僅僅把無人機當做航拍裝置,或者就是自己遙控玩一玩,這種刷著樂迪修改版韌體的飛機是足夠穩定的,還可以搭配樂迪自己的光流感測器和超聲波避障模組,足夠穩定,不管是室內還是室外。
但是,如果需要用機載電腦進行自主控制,這一套就玩不轉。
如果需要使用px4的韌體,則需要訪問下面的地址,下載QGC地面站,刷pixhawk官方的韌體。px4的韌體最新的版本號也只有1.10.0。
APM網站:https://ardupilot.org/dev/index.html
PX4網站:https://docs.px4.io/master/en/index.html
2.地面站:MissionPlan(MP)和QGroundControl(QGC)
2.1 APM
MP是APM公司推出的地面站軟體,用來進行apm飛控的韌體刷寫,更新和監控飛行器狀態,定點飛行的規劃。國內常見的是不知道哪個大佬漢化的版本,漢化不全,版本很老,刷的韌體也是樂迪公司修改過的韌體。最新版的MP地面站和韌體,可以通過訪問上面的網站獲取。
2.2 PX4
QGroundControl(QGC)是px4官方出的地面站,用來進行px4韌體的刷寫,調參,監控飛行狀態,定點飛行規劃。一般國內玩家使用的較少,然而刷了PX4韌體的機器,是沒法跟APM地面站進行資料通訊的,所以如果需要使用PX4的平臺,就必須使用QGC,國內也有漢化版可以下載。
2.MAVLINK和MAVROS:通訊協議
MAV協議是上位機和飛控通訊的通訊協議,MAVROS是基於ROS系統的MAV協議,可以和ROS系統相結合。
3.GAZEBO模擬軟體
Gazebo是ROS系統自帶的模擬平臺,可以通過mavros通訊協議,將飛控的運算元據反饋到模擬平臺。進行無人機的模擬操作。
4.ROS:機器人作業系統
國際最通用的機器人作業系統,將不同硬體的操作進行封裝,通過簡單的話題釋出和訂閱,可以讓演算法開發者不必考慮不同的硬體平臺,以及各種硬體之間的配合,僅需要用自己的熟悉的Python或者C++語言編寫演算法,ROS負責聯通演算法實施和硬體驅動和模擬模擬。
5.自主無人飛行平臺選型
PX4官方出了整套解決方案px4-vision價格大概在16000元,國內有阿木實驗室在做整機銷售,樹莓派版本也在12000多左右。我們自己做的效能相近或者超越的整機平臺價格在6000以下。有需要的也可以聯絡我們。
相關文章
- ROS筆記[3]-安裝mavrosROS筆記VR
- 專案,計劃以及總體工作之間的關係(轉)
- 虛擬機器下ros安裝結束後gazebo執行相關問題虛擬機ROS
- PHP的工作原理以及lamp四者之間的關係PHPLAMP
- 談Ubuntu與FOSS之間的關係(轉)Ubuntu
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- 類之間的關係
- 談談 JDK 和 SAPMachine 的關係JDKMac
- 【java】類之間的關係Java
- Cursor_sharing,Histogram,Analyze之間的關係(轉)Histogram
- 不建議用STM32來操作mavlink,用MAVROS會簡單很多。VRROS
- Linux的匯流排-裝置-驅動三者之間的關係和框架的理解Linux框架
- Linux裸裝置相關命令[轉載]Linux
- Window、WindowManager、View 之間的關係View
- ODS與DW之間的關係
- UML中類之間的關係
- tablespace和datafile之間的關係
- 不同層之間的物件關係物件
- Guru of the Week 條款14:類之間的關係(上篇) (轉)
- Guru of the Week 條款15:類之間的關係(下篇) (轉)
- 詳解js原型,建構函式以及class之間的原型關係JS原型函式
- flashback與dmt tbs以及trigger,materialized view log之間的關係!ZedView
- 品牌關係管理(轉載)
- 互惠關係定律(轉載)
- repo和Git的關係 [轉載]Git
- PCI裝置的地址空間 【轉】
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- DDD與團隊拓撲以及微服務之間的關係圖 - aleixmorgadas微服務
- Window, WindowManager和WindowManagerService之間的關係
- git、github、gitlab之間的關係GithubGitlab
- UML類圖--類之間的關係
- Activity、View、Window之間關係的分析View
- QT中類之間的關係圖QT
- .Net Framework各版本之間的關係Framework
- 類與類之間的基本關係
- 通俗地理解面向服務的架構(SOA)以及微服務之間的關係架構微服務
- oracle 裸裝置(轉載)Oracle