日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PX4-1-开源飞控项目

發布時間:2023/12/31 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PX4-1-开源飞控项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分享完工具系列,我們開始PX4飛控技術的分享,寫分享相對于自己寫筆記要難很多,在整理自己筆記的過程中也重新思考很多問題。

飛控技術的分享系列更多分享的是思路和框架。對于PX4這種大型開源項目,源碼的學習和思路框架的學習同樣重要,專于源碼容易迷失在代碼之中,找不到方向。

當然個人的水平和編輯能力有限,如果有理解不一樣的地方,歡迎私信我討論,我會在后續的分享中更正。

我們后面主要分享的是PX4這一個開源飛控,當然目前世界上有很多的優秀開源飛控項目,在開始PX4的分享之前,我們先聊一下一些著名的開源飛控項目。他們都有哪些,有什么特點等等。

  • Cleanflight/betaflight/Baseflight/MultiWii

  • crazyflie

  • paparazzi

  • fprime

  • ardupilot

  • PX4

以上是我接觸過的主要開源飛控,目前還比較活躍的開源項目,如果大家有了解其它優秀的開源飛控項目,歡迎私信我,我補充進去。

Cleanflight/betaflight/Baseflight/MultiWii

這是一個系列的開源項目,歷史非常悠久。

這個系列的飛控在穿越機等小四軸上使用非常廣泛。

  • c編寫,stm32官方庫,代碼非常簡潔

  • 功能也比較有限,姿態融合算法沒有使用ekf,使用的是MahonyAHRS算法

它比較適合飛控入門,學習一些基礎知識。

crazyflie

crazyflie也是一款微型四軸飛行器開源項目

  • 同樣使用c編寫,stm32官方庫,

  • 使用了ekf融合算法,代碼比較簡潔

想要研究基本的ekf算法的可以看看這個代碼,入門比較簡單

paparazzi

Paparazzi 項目起始于2003年,由法國民航大學發起的一套軟硬件開源無人機項目,它提供了一整套完整的無人機軟硬件解決方案。

  • 使用c編寫,libopencm3開源庫

  • 代碼規模較大,支持固定翼、多旋翼、小車等

  • 有完善的傳感器融合算法和飛行模式控制應用

fprime

fprime是經過飛行驗證的多平臺開源飛行軟件框架(一個組件驅動的框架),可以快速開發和部署太空飛行及其他嵌入式軟件應用程序,美國首個火星飛行器即使用該軟件框架。

實際上它不屬于開源飛控,是一個軟件框架,可以應用于無人平臺中,也在美國太空設備中得到應用,證明它的可靠性。它本身沒有飛行控制相關的代碼算法,當然作為一個非常好的軟件框架,大家可以往里面填充自己的算法和設備,實現一個飛控軟件。

ardupilot(APM)/PX4

把這兩個項目放在一起描述,因為它們是目前最為成熟完善的開源飛控項目,非常強大,且充滿活力,相信大家都有一定了解了。

它們的共同點:

  • 不同于其它大部分開源飛控使用c開發,他們都主要使用c++開發,代碼的封裝比較復雜,理解上有一定的難度

  • 支持非常豐富的無人設備:多旋翼、固定翼、VTOL、小車、水下航行器、飛艇等等

  • 支持的硬件非常豐富,基本支持目前主流的開源飛控硬件

  • 都擁有非常豐富的軟件包,傳感器驅動、導航算法軟件包、控制軟件棧、仿真環境等等

  • 使用了一些相同的中間件軟件:Mavlink、uavcan

它們本身有非常密切的關系,但是由于開源協議的不同(APM使用GPL-3,PX4使用BSD-3協議),兩個項目目前處于獨立開發狀態。它們在源碼框架上的一些不同:

  • 使用的RTOS不同:APM目前使用ChibiOS,而PX4使用Nuttx,當然他們都支持linux系統

  • 消息機制不同:PX4使用uORB的微消息代理機制進行任務間的數據傳遞和消息同步等,任務間耦合校低;APM的模塊封裝在libraries中的各個類模塊中,在應用層(ArduCopter、ArduPlane、Rover等)通過實例化具體的類來完成具體的功能,比如傳感器、EKF、位置控制、motor等模塊,模塊間的數據傳遞通過類的輸入輸出接口完成。

  • 任務框架不同:PX4的每個任務均運行在獨立的task和工作隊列中;APM的應用層自己實現了一個調度器(AP_Scheduler)

  • 代碼框架的復雜程度上PX4會比APM復雜一些,模塊的封裝程度更高,在task、uorb、傳感器的驅動封裝上更為復雜一些,當然如果僅僅使用的話只要參考demo也能非??斓娜腴T。

當然它們有很多的不同點,我個人認為PX4偏向于學院風格,而APM是應用風格,我更喜歡PX4的代碼框架,后面的分享也會圍繞PX4展開。

下一期分享將簡單分析px4的代碼架構。

這個博客轉載自我個人的微信公眾號,這里會不定期更新一些我整理的無人機相關知識和個人設計,歡迎添加關注。

總結

以上是生活随笔為你收集整理的PX4-1-开源飞控项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。