你對APM飛控的源碼做過哪些有意思的改動?

RT


基於APM3.2.1源碼,搭建了Visual Studio開發平台,做過代碼裁剪、串口和避障開發。

本人也是小白,從無到有摸索了APM的入門,也記錄了自己的APM學習之路,歡迎拍磚。

APM飛控學習之路:1 無人機的分類與發展

APM飛控學習之路:2 四旋翼的工作原理與系統組成

APM飛控學習之路:3 APM系統介紹與開發環境搭建(置頂)

APM飛控學習之路:4 源碼裁剪與下載

APM飛控學習之路:5 串口概述與收發調試

代碼和資料都在博客中,希望能給初學者一點幫助,算是給開源盡自己的一份力~

官方也有很好的入門教程:Working with the ArduPilot Project Code


APM我大一的時候把定位部分重新掉,替換成我們基於CV的定位。APM說實話並不是一個太好的適合於智能化的工程,PIXHAWK好一些。

不過也很頭疼啦,最近正在開發PX4的Heli版


想簡單的話就自己寫一個簡單的基本飛控,參考一下arducopter和multiwii的軟體開源軟體即可。

想複雜的最好還是用PX4吧。

Arducopter因為是愛好者們自己一起做修改的,所以非常片段化。不過如果想做一些簡單的高階控制的話,Arducopter也有個userhook可以把自己的代碼方便地放進去,我去年有一個project就是raspberry pi cam做optical flow然後給Arducopter發信息做到定點的。

--------------------

看到自己半年多前的答案,更新一下,現在的arducopter 3.3 代碼架構改變了不少,越來越完善了,ardupilot dev的頁面也越來越詳盡。開發起來難度越來越小啦。不過由於3.3功能太多,APM2x好像不能很好支持了,建議使用強大的pixhawk。

真是感嘆無人機這個行業進步的速度,一年前做的project現在基本可以丟進垃圾堆了,都沒什麼價值了。


謝邀。沒怎麼深入看代碼,改過後發現很很沒意思,性能通常會變差,雖然結構挺亂的,一個原因可能是因為他不斷調優的結果。今年和哥幾個把px4flow加到Arducopter3.2上了,也算定住了。但改的過程發現APM的信息流極其混亂,不好分析,遠不如其他開源飛控結構清晰。補充句,3.1結構更差。求拍磚


因為是在linux環境下開發出來的,而且是N多人搞出來,稍顯亂,如果移植,那是個大工程,不知道有沒有移植成功的


在Arduino環境下編譯Ardupilot-Arducopter v3.0.1時出錯,發現Ardupilot-Arducopter v3.0.1程序里引用的頭文件Ardupilot-Arducopter v3.0.1自己庫文件里根本沒有。後來發現PX4Fimware裡面的src文件夾里能提供這些引用的文件,但是不知道怎麼讓Ardupilot-Arducopter v3.0.1載入這些頭文件,試了很多辦法,編譯時就是沒法找到這些頭文件。頭大中.....................請大神指教一二,不甚感激。


apm 因為空間限制,加上編程風格混搭,結構稍顯凌亂,所以不適合大規模重構。 但順著它的思路改還是有些有意思的玩法。

簡單的,apm程序因為和地面站有個開發不同步的問題,所以有些功能通過代碼才能深入挖掘,比如噴頭水泵降落傘啥的。

apm地理圍欄的設計屬於最終的安全措施, 我一般會在這一層圍欄之內做一層圍欄,做些限高限距的措施, 而不是觸碰直接返航或降落。

還有,自動飛行腳本這些,可以用遊戲AI裡面的行為樹替代,配合上AI編輯器讓可玩性大大增加。


對APM飛控的源碼做改動?太發麻煩了,自己寫吧


APM轉移到PX4平台後,運行在nuttx系統上,對於想移植和優化的同學頗為不爽。。。最近整個控制環讀完,在MDK下重寫了。最近準備看看EKF部分。


推薦閱讀:

修改基於GPL協議的軟體,不公開源代碼,如何規避那個狗比協議?
有必要深入研究 PHP 源碼嗎?有哪些好的方法?
修改基於GPL協議的軟體,不公開源代碼,如何規避那個協議??
閱讀離職程序員遺留下來的垃圾源代碼是怎樣一種體驗?
哪些源碼下載網站比較可靠?

TAG:極客Geek | 源代碼 | 飛控航拍 |