Ardupilot -- APM源碼筆記(重製)~序言

首先,本篇不會涉及到源碼方面的解讀跟指導,只是爲了後續章節做一些說明,並講講寫下這些博文的原因
說起無人機的話,應該很多人會想到大疆、億航這些商業巨頭,這樣的產業能發展起來也跟無人機代碼開源有關。從微型四軸,到中大型的多旋翼、固定翼直升機無人車,國內的研究團隊也是日漸增多,像中小型四軸研發的烈火、無窮等團隊在某寶也都有自己的研發產品在售賣以及相應的技術交流羣,還有像匿名做自己的飛控跟地面站的也有,可見無人機的發展趨向及社會需求性。對於想要入行這一領域的研發者,少不了對開源代碼的解讀跟磨合理解
從筆者接觸無人機開始到現在也就一年時間,實際上對apm源碼的閱讀也就三四個月,所以還是有很多不懂的地方在一邊學習。曾經剛拿到源碼的時候心理是奔潰的,比較少接觸這麼大型的代碼,編譯完後1G左右1w來個文件,不過大部分是中間文件實際也就2600吧,還是感覺無從下手。網上搜源碼解析能找到的有些用的是在apm官網的代碼庫引導翻譯過來的,距今也有兩三年時間了,有其他博主寫的學習文檔多數也是轉載拷貝過來的。對於源碼是共享在github上的版本持續更新,連官網的代碼塊引導路徑都跟現有的版本路徑對不上號,這也是筆者閱讀源碼的時候苦惱的地方,也是想寫這些博文的動力。
標題的命名也是有考慮過的,以前的參考文檔標題開頭如下《Pixhawk源碼筆記###》,也不是說內容寫的不好,都是官網的代碼引導翻譯。但是光一個標題就產生了錯誤引導,首先pixhawk多數玩家一看就知道是說的PX4的飛控,apm源碼自3.2.1版本之後,因apm飛控內存運行不了,都是燒寫在pixhawk飛控上運行的,可以兼容。pixhawk源碼的話就是飛控本身搭配的源碼,也就是pixhawk的原生代碼,跟apm源碼是兩套不同的飛控源碼。所以對於標題命名的不嚴謹也是容易混淆想尋找源碼入口的新手,甚至自己手上的源碼跟博文上講的是不是同一套都不知道,爲了讓讀者明確博文內容,筆者很清楚在標題上只寫明是APM源碼,源碼解析或者是講解,還有很多地方不清楚的,只能是一邊學習一邊記錄寫成筆記,也是照着官網的代碼庫講解步驟跟着走。重製的意思是根據當前源碼的實際路徑進行編寫,參考官網給的路徑及時作出更新。目前筆者手上的apm源碼版本是3.4的,github最新可下載的已經更新到了3.6了,但是因爲編譯出了各種問題沒解決還是隻是用回3.4的。
其實網上的相關源碼文檔對於編譯源碼失敗的原因沒有人做過統一解決及整理一篇文檔分享,這個也是蠻頭痛的問題,連官網也是說明在哪些平臺搭建編譯環境,跟代碼引導,搭建出現的錯誤一概沒有談及。希望有這方面的技術大牛能有空整理一下一些編譯問題的解決方法造福一下同行,哈哈哈。雖說現在有很多pixhawk二次開發培訓班,所以很多有用的信息爲了培訓賺錢也是不對外公開的。
最後分享一下apm官網源碼引導鏈接,除了代碼說明,還有其他相關信息,可能對你有用
http://ardupilot.org/dev/docs/learning-the-ardupilot-codebase.html
廣大讀者如果對筆者博文哪些地方不理解或者是說明有誤的地方,歡迎在討論區提出來,共同學習,共同進步。

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