轉載: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
- Linux的匯流排-裝置-驅動三者之間的關係和框架的理解Linux框架
- 【java】類之間的關係Java
- repo和Git的關係 [轉載]Git
- Window、WindowManager、View 之間的關係View
- git、github、gitlab之間的關係GithubGitlab
- 詳解js原型,建構函式以及class之間的原型關係JS原型函式
- DDD與團隊拓撲以及微服務之間的關係圖 - aleixmorgadas微服務
- 不建議用STM32來操作mavlink,用MAVROS會簡單很多。VRROS
- pcl::PointCloud和pcl::PontCloud::Ptr之間的關係和轉換方式Cloud
- TLS與SSL之間關係TLS
- React、Ant Design、DvaJS之間的關係ReactJS
- Activity、View、Window之間關係的分析View
- UML類圖--類之間的關係
- 思考 TPS 與 RT 之間的關係
- Window, WindowManager和WindowManagerService之間的關係
- 類與類之間的基本關係
- 通俗地理解面向服務的架構(SOA)以及微服務之間的關係架構微服務
- 請描述下js的原型和原型鏈的理解以及它們之間的關係JS原型
- Virtuoso 中 display.drf、techfile.tf、tech.db 之間的關係,以及 Packet 在它們之間的作用
- .NET科普:.NET簡史、.NET Standard以及C#和.NET Framework之間的關係C#Framework
- react、redux、react-redux之間的關係ReactRedux
- Java設計模式-類之間的關係Java設計模式
- Linux Shell檔案之間的包含關係Linux
- 類之間的6種關係詳解
- 介面、抽象類、普通類之間的關係抽象
- GeoTools應用-JTS(Geometry之間的關係)
- 關係型資料庫之SQL資料庫SQL
- 關係型資料庫之索引資料庫索引
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- 使用BeetleX.Tracks對APM關係鏈埋點
- CPU、記憶體、磁碟IO之間的關係記憶體
- Kubernetes和Docker之間的關係是什麼?Docker
- 網站和伺服器之間的關係網站伺服器
- ERP與精益生產之間的關係
- Web3和元宇宙之間的關係Web元宇宙
- Maven專案之間關係介紹Maven