PX4開發基礎

一、與無人機的緣分

    做無人機是源於電賽,因爲對無人機比較發燒就分到了無人機的組裏,參加的三次電賽兩次是做的無人機的題目,雖然後來不再做該方向的,但也算我的一項愛好吧,加上現在畢設是給老師搭建一個PX4的平臺(比賽沒用過PX4),因爲無人機開發比較小衆,價格貴、學習環境少並具有一定難度,外加發展的時間並不是很長,開發中就遇到了很多問題,在此做一些記錄。

二、開發前

    這套開源軟件的功能相當的齊全,實際上通過燒錄PX4的固件,通過地面站的設置,就可以實現很多功能了,因此決定了你是否需要涉及到源碼層面的開發。

三、背景知識

注:內容來自於一些資料和自我總結

硬件PIXHAWK

    Pixhawk是第一款專門爲PX4自駕軟件而設計的無人機飛控。Pixhawk飛控是開源硬件架構,pixhawk系列”的板子在NuttX操作系統上運行PX4。全世界很多公司出品了基於Pixhawk的飛控產品。他們都有共同的硬件架構和相同的連接方式、輸出接口及功能,僅僅是具體形式不同而已,例如接口的位置不同、外殼不同等等。

pixhawkV1:

    第一版飛控,也被稱作FMUv1,它包含PX4FMU和PX4IO兩部分。PX4FMU是Pixhawk v1飛控的核心控制部分,主要負責姿態解算等等算法的執行;PX4IO主要負責飛控各外設接口的管理。下面的樣子(市面已經看不到了):

pixhawkV2:

    繼FMUv1飛控之後,第二代飛控被稱爲Pixhawk v2或FMUv2。在FMUv2這個版本飛控中,第一代中的PX4FMU和PX4IO被合併到了一個PCB上,成爲了真正的一體化飛控。(市面還有很多賣的主要都是在這個基礎上改進優化,比如處理器、傳感器等的提升)

pixhawkV3x:

    比如我用的是如下的雷迅生產的V3x,到現在甚至已經出了到了V5,但是主要沒有差太多。

### 軟件代碼 ##### ArduPilot     APM固件程序比較**混亂,零散**。維護者多,代碼風格不太統一,而且是單片機這種調用程序,**不好入門。但是成熟穩定**,支持硬件多。APM固件有ArduCopter社區支撐。
PX4(推薦)

    PX4固件,在nuttx嵌入式實時操作系統上運行。採用多任務,模塊化設計。相對來說方便入門,代碼風格比較統一。PX4的是BSD協議,BSD協議可以將開源軟件二次開發後用作商業用途。 着=這也就是當前很多公司的產品甚至就是直接在這個上面改裝的。

地面站(GCS)

Mission Planner(MP)

    支持Mavlink協議,一般用於APM的代碼,當前使用的人比較多(截至到2020年之前),不支持Mac OS

QGroundControl(QGC)

    支持Mavlink協議,一般用於PX4代碼,使用的人較少(未來趨勢),PX4官方推薦的地面站軟件。

  • 手機系統: Android 和 iOS (目前專注於平板電腦)
  • 桌面系統: Windows, Linux, Mac OS

四、我的開發環境

  1. 硬件(hardware):pixhawkV3x
  2. 軟件(software):PX4
  3. 操作系統(OS):Ubuntu 1804 桌面版
  4. 地面站(GCS):QGC
  5. 集成開發環境(IDE):QT creater

下一篇:開發環境搭建

  
  
Email : [email protected]
Website : http://beyonderwei.com
  
WeChat:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章